From 7b9987202fa818c16dd8cf45a9589209dd9ed1e7 Mon Sep 17 00:00:00 2001
From: Shengjing Zhu <zsj950618@gmail.com>
Date: Jun 13 2017 10:54:46 +0000
Subject: [PATCH 1/2] cleanup: move static js/css to vendor dir


Signed-off-by: Shengjing Zhu <zsj950618@gmail.com>

---

diff --git a/pagure/static/atwho/jquery.atwho-1.5.1.css b/pagure/static/atwho/jquery.atwho-1.5.1.css
deleted file mode 100644
index dad94ed..0000000
--- a/pagure/static/atwho/jquery.atwho-1.5.1.css
+++ /dev/null
@@ -1,72 +0,0 @@
-.atwho-view {
-    position:absolute;
-    top: 0;
-    left: 0;
-    display: none;
-    margin-top: 18px;
-    background: white;
-    color: black;
-    border: 1px solid #DDD;
-    border-radius: 3px;
-    box-shadow: 0 0 5px rgba(0,0,0,0.1);
-    min-width: 120px;
-    z-index: 11110 !important;
-}
-
-.atwho-view .atwho-header {
-    padding: 5px;
-    margin: 5px;
-    cursor: pointer;
-    border-bottom: solid 1px #eaeff1;
-    color: #6f8092;
-    font-size: 11px;
-    font-weight: bold;
-}
-
-.atwho-view .atwho-header .small {
-    color: #6f8092;
-    float: right;
-    padding-top: 2px;
-    margin-right: -5px;
-    font-size: 12px;
-    font-weight: normal;
-}
-
-.atwho-view .atwho-header:hover {
-    cursor: default;
-}
-
-.atwho-view .cur {
-    background: #3366FF;
-    color: white;
-}
-.atwho-view .cur small {
-    color: white;
-}
-.atwho-view strong {
-    color: #3366FF;
-}
-.atwho-view .cur strong {
-    color: white;
-    font:bold;
-}
-.atwho-view ul {
-    /* width: 100px; */
-    list-style:none;
-    padding:0;
-    margin:auto;
-    max-height: 200px;
-    overflow-y: auto;
-}
-.atwho-view ul li {
-    display: block;
-    padding: 5px 10px;
-    border-bottom: 1px solid #DDD;
-    cursor: pointer;
-    /* border-top: 1px solid #C8C8C8; */
-}
-.atwho-view small {
-    font-size: smaller;
-    color: #777;
-    font-weight: normal;
-}
diff --git a/pagure/static/atwho/jquery.atwho-1.5.1.js b/pagure/static/atwho/jquery.atwho-1.5.1.js
deleted file mode 100644
index 0d295eb..0000000
--- a/pagure/static/atwho/jquery.atwho-1.5.1.js
+++ /dev/null
@@ -1,1202 +0,0 @@
-/**
- * at.js - 1.5.1
- * Copyright (c) 2016 chord.luo <chord.luo@gmail.com>;
- * Homepage: http://ichord.github.com/At.js
- * License: MIT
- */
-(function (root, factory) {
-  if (typeof define === 'function' && define.amd) {
-    // AMD. Register as an anonymous module unless amdModuleId is set
-    define(["jquery"], function (a0) {
-      return (factory(a0));
-    });
-  } else if (typeof exports === 'object') {
-    // Node. Does not work with strict CommonJS, but
-    // only CommonJS-like environments that support module.exports,
-    // like Node.
-    module.exports = factory(require("jquery"));
-  } else {
-    factory(jQuery);
-  }
-}(this, function ($) {
-var DEFAULT_CALLBACKS, KEY_CODE;
-
-KEY_CODE = {
-  DOWN: 40,
-  UP: 38,
-  ESC: 27,
-  TAB: 9,
-  ENTER: 13,
-  CTRL: 17,
-  A: 65,
-  P: 80,
-  N: 78,
-  LEFT: 37,
-  UP: 38,
-  RIGHT: 39,
-  DOWN: 40,
-  BACKSPACE: 8,
-  SPACE: 32
-};
-
-DEFAULT_CALLBACKS = {
-  beforeSave: function(data) {
-    return Controller.arrayToDefaultHash(data);
-  },
-  matcher: function(flag, subtext, should_startWithSpace, acceptSpaceBar) {
-    var _a, _y, match, regexp, space;
-    flag = flag.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
-    if (should_startWithSpace) {
-      flag = '(?:^|\\s)' + flag;
-    }
-    _a = decodeURI("%C3%80");
-    _y = decodeURI("%C3%BF");
-    space = acceptSpaceBar ? "\ " : "";
-    regexp = new RegExp(flag + "([A-Za-z" + _a + "-" + _y + "0-9_" + space + "\'\.\+\-]*)$|" + flag + "([^\\x00-\\xff]*)$", 'gi');
-    match = regexp.exec(subtext);
-    if (match) {
-      return match[2] || match[1];
-    } else {
-      return null;
-    }
-  },
-  filter: function(query, data, searchKey) {
-    var _results, i, item, len;
-    _results = [];
-    for (i = 0, len = data.length; i < len; i++) {
-      item = data[i];
-      if (~new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase())) {
-        _results.push(item);
-      }
-    }
-    return _results;
-  },
-  remoteFilter: null,
-  sorter: function(query, items, searchKey) {
-    var _results, i, item, len;
-    if (!query) {
-      return items;
-    }
-    _results = [];
-    for (i = 0, len = items.length; i < len; i++) {
-      item = items[i];
-      item.atwho_order = new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase());
-      if (item.atwho_order > -1) {
-        _results.push(item);
-      }
-    }
-    return _results.sort(function(a, b) {
-      return a.atwho_order - b.atwho_order;
-    });
-  },
-  tplEval: function(tpl, map) {
-    var error, error1, template;
-    template = tpl;
-    try {
-      if (typeof tpl !== 'string') {
-        template = tpl(map);
-      }
-      return template.replace(/\$\{([^\}]*)\}/g, function(tag, key, pos) {
-        return map[key];
-      });
-    } catch (error1) {
-      error = error1;
-      return "";
-    }
-  },
-  highlighter: function(li, query) {
-    var regexp;
-    if (!query) {
-      return li;
-    }
-    regexp = new RegExp(">\\s*(\\w*?)(" + query.replace("+", "\\+") + ")(\\w*)\\s*<", 'ig');
-    return li.replace(regexp, function(str, $1, $2, $3) {
-      return '> ' + $1 + '<strong>' + $2 + '</strong>' + $3 + ' <';
-    });
-  },
-  beforeInsert: function(value, $li, e) {
-    return value;
-  },
-  beforeReposition: function(offset) {
-    return offset;
-  },
-  afterMatchFailed: function(at, el) {}
-};
-
-var App;
-
-App = (function() {
-  function App(inputor) {
-    this.currentFlag = null;
-    this.controllers = {};
-    this.aliasMaps = {};
-    this.$inputor = $(inputor);
-    this.setupRootElement();
-    this.listen();
-  }
-
-  App.prototype.createContainer = function(doc) {
-    var ref;
-    if ((ref = this.$el) != null) {
-      ref.remove();
-    }
-    return $(doc.body).append(this.$el = $("<div class='atwho-container'></div>"));
-  };
-
-  App.prototype.setupRootElement = function(iframe, asRoot) {
-    var error, error1;
-    if (asRoot == null) {
-      asRoot = false;
-    }
-    if (iframe) {
-      this.window = iframe.contentWindow;
-      this.document = iframe.contentDocument || this.window.document;
-      this.iframe = iframe;
-    } else {
-      this.document = this.$inputor[0].ownerDocument;
-      this.window = this.document.defaultView || this.document.parentWindow;
-      try {
-        this.iframe = this.window.frameElement;
-      } catch (error1) {
-        error = error1;
-        this.iframe = null;
-        if ($.fn.atwho.debug) {
-          throw new Error("iframe auto-discovery is failed.\nPlease use `setIframe` to set the target iframe manually.\n" + error);
-        }
-      }
-    }
-    return this.createContainer((this.iframeAsRoot = asRoot) ? this.document : document);
-  };
-
-  App.prototype.controller = function(at) {
-    var c, current, currentFlag, ref;
-    if (this.aliasMaps[at]) {
-      current = this.controllers[this.aliasMaps[at]];
-    } else {
-      ref = this.controllers;
-      for (currentFlag in ref) {
-        c = ref[currentFlag];
-        if (currentFlag === at) {
-          current = c;
-          break;
-        }
-      }
-    }
-    if (current) {
-      return current;
-    } else {
-      return this.controllers[this.currentFlag];
-    }
-  };
-
-  App.prototype.setContextFor = function(at) {
-    this.currentFlag = at;
-    return this;
-  };
-
-  App.prototype.reg = function(flag, setting) {
-    var base, controller;
-    controller = (base = this.controllers)[flag] || (base[flag] = this.$inputor.is('[contentEditable]') ? new EditableController(this, flag) : new TextareaController(this, flag));
-    if (setting.alias) {
-      this.aliasMaps[setting.alias] = flag;
-    }
-    controller.init(setting);
-    return this;
-  };
-
-  App.prototype.listen = function() {
-    return this.$inputor.on('compositionstart', (function(_this) {
-      return function(e) {
-        var ref;
-        if ((ref = _this.controller()) != null) {
-          ref.view.hide();
-        }
-        _this.isComposing = true;
-        return null;
-      };
-    })(this)).on('compositionend', (function(_this) {
-      return function(e) {
-        _this.isComposing = false;
-        setTimeout(function(e) {
-          return _this.dispatch(e);
-        });
-        return null;
-      };
-    })(this)).on('keyup.atwhoInner', (function(_this) {
-      return function(e) {
-        return _this.onKeyup(e);
-      };
-    })(this)).on('keydown.atwhoInner', (function(_this) {
-      return function(e) {
-        return _this.onKeydown(e);
-      };
-    })(this)).on('blur.atwhoInner', (function(_this) {
-      return function(e) {
-        var c;
-        if (c = _this.controller()) {
-          c.expectedQueryCBId = null;
-          return c.view.hide(e, c.getOpt("displayTimeout"));
-        }
-      };
-    })(this)).on('click.atwhoInner', (function(_this) {
-      return function(e) {
-        return _this.dispatch(e);
-      };
-    })(this)).on('scroll.atwhoInner', (function(_this) {
-      return function() {
-        var lastScrollTop;
-        lastScrollTop = _this.$inputor.scrollTop();
-        return function(e) {
-          var currentScrollTop, ref;
-          currentScrollTop = e.target.scrollTop;
-          if (lastScrollTop !== currentScrollTop) {
-            if ((ref = _this.controller()) != null) {
-              ref.view.hide(e);
-            }
-          }
-          lastScrollTop = currentScrollTop;
-          return true;
-        };
-      };
-    })(this)());
-  };
-
-  App.prototype.shutdown = function() {
-    var _, c, ref;
-    ref = this.controllers;
-    for (_ in ref) {
-      c = ref[_];
-      c.destroy();
-      delete this.controllers[_];
-    }
-    this.$inputor.off('.atwhoInner');
-    return this.$el.remove();
-  };
-
-  App.prototype.dispatch = function(e) {
-    var _, c, ref, results;
-    ref = this.controllers;
-    results = [];
-    for (_ in ref) {
-      c = ref[_];
-      results.push(c.lookUp(e));
-    }
-    return results;
-  };
-
-  App.prototype.onKeyup = function(e) {
-    var ref;
-    switch (e.keyCode) {
-      case KEY_CODE.ESC:
-        e.preventDefault();
-        if ((ref = this.controller()) != null) {
-          ref.view.hide();
-        }
-        break;
-      case KEY_CODE.DOWN:
-      case KEY_CODE.UP:
-      case KEY_CODE.CTRL:
-      case KEY_CODE.ENTER:
-        $.noop();
-        break;
-      case KEY_CODE.P:
-      case KEY_CODE.N:
-        if (!e.ctrlKey) {
-          this.dispatch(e);
-        }
-        break;
-      default:
-        this.dispatch(e);
-    }
-  };
-
-  App.prototype.onKeydown = function(e) {
-    var ref, view;
-    view = (ref = this.controller()) != null ? ref.view : void 0;
-    if (!(view && view.visible())) {
-      return;
-    }
-    switch (e.keyCode) {
-      case KEY_CODE.ESC:
-        e.preventDefault();
-        view.hide(e);
-        break;
-      case KEY_CODE.UP:
-        e.preventDefault();
-        view.prev();
-        break;
-      case KEY_CODE.DOWN:
-        e.preventDefault();
-        view.next();
-        break;
-      case KEY_CODE.P:
-        if (!e.ctrlKey) {
-          return;
-        }
-        e.preventDefault();
-        view.prev();
-        break;
-      case KEY_CODE.N:
-        if (!e.ctrlKey) {
-          return;
-        }
-        e.preventDefault();
-        view.next();
-        break;
-      case KEY_CODE.TAB:
-      case KEY_CODE.ENTER:
-      case KEY_CODE.SPACE:
-        if (!view.visible()) {
-          return;
-        }
-        if (!this.controller().getOpt('spaceSelectsMatch') && e.keyCode === KEY_CODE.SPACE) {
-          return;
-        }
-        if (!this.controller().getOpt('tabSelectsMatch') && e.keyCode === KEY_CODE.TAB) {
-          return;
-        }
-        if (view.highlighted()) {
-          e.preventDefault();
-          view.choose(e);
-        } else {
-          view.hide(e);
-        }
-        break;
-      default:
-        $.noop();
-    }
-  };
-
-  return App;
-
-})();
-
-var Controller,
-  slice = [].slice;
-
-Controller = (function() {
-  Controller.prototype.uid = function() {
-    return (Math.random().toString(16) + "000000000").substr(2, 8) + (new Date().getTime());
-  };
-
-  function Controller(app, at1) {
-    this.app = app;
-    this.at = at1;
-    this.$inputor = this.app.$inputor;
-    this.id = this.$inputor[0].id || this.uid();
-    this.expectedQueryCBId = null;
-    this.setting = null;
-    this.query = null;
-    this.pos = 0;
-    this.range = null;
-    if ((this.$el = $("#atwho-ground-" + this.id, this.app.$el)).length === 0) {
-      this.app.$el.append(this.$el = $("<div id='atwho-ground-" + this.id + "'></div>"));
-    }
-    this.model = new Model(this);
-    this.view = new View(this);
-  }
-
-  Controller.prototype.init = function(setting) {
-    this.setting = $.extend({}, this.setting || $.fn.atwho["default"], setting);
-    this.view.init();
-    return this.model.reload(this.setting.data);
-  };
-
-  Controller.prototype.destroy = function() {
-    this.trigger('beforeDestroy');
-    this.model.destroy();
-    this.view.destroy();
-    return this.$el.remove();
-  };
-
-  Controller.prototype.callDefault = function() {
-    var args, error, error1, funcName;
-    funcName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];
-    try {
-      return DEFAULT_CALLBACKS[funcName].apply(this, args);
-    } catch (error1) {
-      error = error1;
-      return $.error(error + " Or maybe At.js doesn't have function " + funcName);
-    }
-  };
-
-  Controller.prototype.trigger = function(name, data) {
-    var alias, eventName;
-    if (data == null) {
-      data = [];
-    }
-    data.push(this);
-    alias = this.getOpt('alias');
-    eventName = alias ? name + "-" + alias + ".atwho" : name + ".atwho";
-    return this.$inputor.trigger(eventName, data);
-  };
-
-  Controller.prototype.callbacks = function(funcName) {
-    return this.getOpt("callbacks")[funcName] || DEFAULT_CALLBACKS[funcName];
-  };
-
-  Controller.prototype.getOpt = function(at, default_value) {
-    var e, error1;
-    try {
-      return this.setting[at];
-    } catch (error1) {
-      e = error1;
-      return null;
-    }
-  };
-
-  Controller.prototype.insertContentFor = function($li) {
-    var data, tpl;
-    tpl = this.getOpt('insertTpl');
-    data = $.extend({}, $li.data('item-data'), {
-      'atwho-at': this.at
-    });
-    return this.callbacks("tplEval").call(this, tpl, data, "onInsert");
-  };
-
-  Controller.prototype.renderView = function(data) {
-    var searchKey;
-    searchKey = this.getOpt("searchKey");
-    data = this.callbacks("sorter").call(this, this.query.text, data.slice(0, 1001), searchKey);
-    return this.view.render(data.slice(0, this.getOpt('limit')));
-  };
-
-  Controller.arrayToDefaultHash = function(data) {
-    var i, item, len, results;
-    if (!$.isArray(data)) {
-      return data;
-    }
-    results = [];
-    for (i = 0, len = data.length; i < len; i++) {
-      item = data[i];
-      if ($.isPlainObject(item)) {
-        results.push(item);
-      } else {
-        results.push({
-          name: item
-        });
-      }
-    }
-    return results;
-  };
-
-  Controller.prototype.lookUp = function(e) {
-    var query, wait;
-    if (e && e.type === 'click' && !this.getOpt('lookUpOnClick')) {
-      return;
-    }
-    if (this.getOpt('suspendOnComposing') && this.app.isComposing) {
-      return;
-    }
-    query = this.catchQuery(e);
-    if (!query) {
-      this.expectedQueryCBId = null;
-      return query;
-    }
-    this.app.setContextFor(this.at);
-    if (wait = this.getOpt('delay')) {
-      this._delayLookUp(query, wait);
-    } else {
-      this._lookUp(query);
-    }
-    return query;
-  };
-
-  Controller.prototype._delayLookUp = function(query, wait) {
-    var now, remaining;
-    now = Date.now ? Date.now() : new Date().getTime();
-    this.previousCallTime || (this.previousCallTime = now);
-    remaining = wait - (now - this.previousCallTime);
-    if ((0 < remaining && remaining < wait)) {
-      this.previousCallTime = now;
-      this._stopDelayedCall();
-      return this.delayedCallTimeout = setTimeout((function(_this) {
-        return function() {
-          _this.previousCallTime = 0;
-          _this.delayedCallTimeout = null;
-          return _this._lookUp(query);
-        };
-      })(this), wait);
-    } else {
-      this._stopDelayedCall();
-      if (this.previousCallTime !== now) {
-        this.previousCallTime = 0;
-      }
-      return this._lookUp(query);
-    }
-  };
-
-  Controller.prototype._stopDelayedCall = function() {
-    if (this.delayedCallTimeout) {
-      clearTimeout(this.delayedCallTimeout);
-      return this.delayedCallTimeout = null;
-    }
-  };
-
-  Controller.prototype._generateQueryCBId = function() {
-    return {};
-  };
-
-  Controller.prototype._lookUp = function(query) {
-    var _callback;
-    _callback = function(queryCBId, data) {
-      if (queryCBId !== this.expectedQueryCBId) {
-        return;
-      }
-      if (data && data.length > 0) {
-        return this.renderView(this.constructor.arrayToDefaultHash(data));
-      } else {
-        return this.view.hide();
-      }
-    };
-    this.expectedQueryCBId = this._generateQueryCBId();
-    return this.model.query(query.text, $.proxy(_callback, this, this.expectedQueryCBId));
-  };
-
-  return Controller;
-
-})();
-
-var TextareaController,
-  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
-  hasProp = {}.hasOwnProperty;
-
-TextareaController = (function(superClass) {
-  extend(TextareaController, superClass);
-
-  function TextareaController() {
-    return TextareaController.__super__.constructor.apply(this, arguments);
-  }
-
-  TextareaController.prototype.catchQuery = function() {
-    var caretPos, content, end, isString, query, start, subtext;
-    content = this.$inputor.val();
-    caretPos = this.$inputor.caret('pos', {
-      iframe: this.app.iframe
-    });
-    subtext = content.slice(0, caretPos);
-    query = this.callbacks("matcher").call(this, this.at, subtext, this.getOpt('startWithSpace'), this.getOpt("acceptSpaceBar"));
-    isString = typeof query === 'string';
-    if (isString && query.length < this.getOpt('minLen', 0)) {
-      return;
-    }
-    if (isString && query.length <= this.getOpt('maxLen', 20)) {
-      start = caretPos - query.length;
-      end = start + query.length;
-      this.pos = start;
-      query = {
-        'text': query,
-        'headPos': start,
-        'endPos': end
-      };
-      this.trigger("matched", [this.at, query.text]);
-    } else {
-      query = null;
-      this.view.hide();
-    }
-    return this.query = query;
-  };
-
-  TextareaController.prototype.rect = function() {
-    var c, iframeOffset, scaleBottom;
-    if (!(c = this.$inputor.caret('offset', this.pos - 1, {
-      iframe: this.app.iframe
-    }))) {
-      return;
-    }
-    if (this.app.iframe && !this.app.iframeAsRoot) {
-      iframeOffset = $(this.app.iframe).offset();
-      c.left += iframeOffset.left;
-      c.top += iframeOffset.top;
-    }
-    scaleBottom = this.app.document.selection ? 0 : 2;
-    return {
-      left: c.left,
-      top: c.top,
-      bottom: c.top + c.height + scaleBottom
-    };
-  };
-
-  TextareaController.prototype.insert = function(content, $li) {
-    var $inputor, source, startStr, suffix, text;
-    $inputor = this.$inputor;
-    source = $inputor.val();
-    startStr = source.slice(0, Math.max(this.query.headPos - this.at.length, 0));
-    suffix = (suffix = this.getOpt('suffix')) === "" ? suffix : suffix || " ";
-    content += suffix;
-    text = "" + startStr + content + (source.slice(this.query['endPos'] || 0));
-    $inputor.val(text);
-    $inputor.caret('pos', startStr.length + content.length, {
-      iframe: this.app.iframe
-    });
-    if (!$inputor.is(':focus')) {
-      $inputor.focus();
-    }
-    return $inputor.change();
-  };
-
-  return TextareaController;
-
-})(Controller);
-
-var EditableController,
-  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
-  hasProp = {}.hasOwnProperty;
-
-EditableController = (function(superClass) {
-  extend(EditableController, superClass);
-
-  function EditableController() {
-    return EditableController.__super__.constructor.apply(this, arguments);
-  }
-
-  EditableController.prototype._getRange = function() {
-    var sel;
-    sel = this.app.window.getSelection();
-    if (sel.rangeCount > 0) {
-      return sel.getRangeAt(0);
-    }
-  };
-
-  EditableController.prototype._setRange = function(position, node, range) {
-    if (range == null) {
-      range = this._getRange();
-    }
-    if (!range) {
-      return;
-    }
-    node = $(node)[0];
-    if (position === 'after') {
-      range.setEndAfter(node);
-      range.setStartAfter(node);
-    } else {
-      range.setEndBefore(node);
-      range.setStartBefore(node);
-    }
-    range.collapse(false);
-    return this._clearRange(range);
-  };
-
-  EditableController.prototype._clearRange = function(range) {
-    var sel;
-    if (range == null) {
-      range = this._getRange();
-    }
-    sel = this.app.window.getSelection();
-    if (this.ctrl_a_pressed == null) {
-      sel.removeAllRanges();
-      return sel.addRange(range);
-    }
-  };
-
-  EditableController.prototype._movingEvent = function(e) {
-    var ref;
-    return e.type === 'click' || ((ref = e.which) === KEY_CODE.RIGHT || ref === KEY_CODE.LEFT || ref === KEY_CODE.UP || ref === KEY_CODE.DOWN);
-  };
-
-  EditableController.prototype._unwrap = function(node) {
-    var next;
-    node = $(node).unwrap().get(0);
-    if ((next = node.nextSibling) && next.nodeValue) {
-      node.nodeValue += next.nodeValue;
-      $(next).remove();
-    }
-    return node;
-  };
-
-  EditableController.prototype.catchQuery = function(e) {
-    var $inserted, $query, _range, index, inserted, isString, lastNode, matched, offset, query, query_content, range;
-    if (!(range = this._getRange())) {
-      return;
-    }
-    if (!range.collapsed) {
-      return;
-    }
-    if (e.which === KEY_CODE.ENTER) {
-      ($query = $(range.startContainer).closest('.atwho-query')).contents().unwrap();
-      if ($query.is(':empty')) {
-        $query.remove();
-      }
-      ($query = $(".atwho-query", this.app.document)).text($query.text()).contents().last().unwrap();
-      this._clearRange();
-      return;
-    }
-    if (/firefox/i.test(navigator.userAgent)) {
-      if ($(range.startContainer).is(this.$inputor)) {
-        this._clearRange();
-        return;
-      }
-      if (e.which === KEY_CODE.BACKSPACE && range.startContainer.nodeType === document.ELEMENT_NODE && (offset = range.startOffset - 1) >= 0) {
-        _range = range.cloneRange();
-        _range.setStart(range.startContainer, offset);
-        if ($(_range.cloneContents()).contents().last().is('.atwho-inserted')) {
-          inserted = $(range.startContainer).contents().get(offset);
-          this._setRange('after', $(inserted).contents().last());
-        }
-      } else if (e.which === KEY_CODE.LEFT && range.startContainer.nodeType === document.TEXT_NODE) {
-        $inserted = $(range.startContainer.previousSibling);
-        if ($inserted.is('.atwho-inserted') && range.startOffset === 0) {
-          this._setRange('after', $inserted.contents().last());
-        }
-      }
-    }
-    $(range.startContainer).closest('.atwho-inserted').addClass('atwho-query').siblings().removeClass('atwho-query');
-    if (($query = $(".atwho-query", this.app.document)).length > 0 && $query.is(':empty') && $query.text().length === 0) {
-      $query.remove();
-    }
-    if (!this._movingEvent(e)) {
-      $query.removeClass('atwho-inserted');
-    }
-    if ($query.length > 0) {
-      switch (e.which) {
-        case KEY_CODE.LEFT:
-          this._setRange('before', $query.get(0), range);
-          $query.removeClass('atwho-query');
-          return;
-        case KEY_CODE.RIGHT:
-          this._setRange('after', $query.get(0).nextSibling, range);
-          $query.removeClass('atwho-query');
-          return;
-      }
-    }
-    if ($query.length > 0 && (query_content = $query.attr('data-atwho-at-query'))) {
-      $query.empty().html(query_content).attr('data-atwho-at-query', null);
-      this._setRange('after', $query.get(0), range);
-    }
-    _range = range.cloneRange();
-    _range.setStart(range.startContainer, 0);
-    matched = this.callbacks("matcher").call(this, this.at, _range.toString(), this.getOpt('startWithSpace'), this.getOpt("acceptSpaceBar"));
-    isString = typeof matched === 'string';
-    if ($query.length === 0 && isString && (index = range.startOffset - this.at.length - matched.length) >= 0) {
-      range.setStart(range.startContainer, index);
-      $query = $('<span/>', this.app.document).attr(this.getOpt("editableAtwhoQueryAttrs")).addClass('atwho-query');
-      range.surroundContents($query.get(0));
-      lastNode = $query.contents().last().get(0);
-      if (/firefox/i.test(navigator.userAgent)) {
-        range.setStart(lastNode, lastNode.length);
-        range.setEnd(lastNode, lastNode.length);
-        this._clearRange(range);
-      } else {
-        this._setRange('after', lastNode, range);
-      }
-    }
-    if (isString && matched.length < this.getOpt('minLen', 0)) {
-      return;
-    }
-    if (isString && matched.length <= this.getOpt('maxLen', 20)) {
-      query = {
-        text: matched,
-        el: $query
-      };
-      this.trigger("matched", [this.at, query.text]);
-      return this.query = query;
-    } else {
-      this.view.hide();
-      this.query = {
-        el: $query
-      };
-      if ($query.text().indexOf(this.at) >= 0) {
-        if (this._movingEvent(e) && $query.hasClass('atwho-inserted')) {
-          $query.removeClass('atwho-query');
-        } else if (false !== this.callbacks('afterMatchFailed').call(this, this.at, $query)) {
-          this._setRange("after", this._unwrap($query.text($query.text()).contents().first()));
-        }
-      }
-      return null;
-    }
-  };
-
-  EditableController.prototype.rect = function() {
-    var $iframe, iframeOffset, rect;
-    rect = this.query.el.offset();
-    if (this.app.iframe && !this.app.iframeAsRoot) {
-      iframeOffset = ($iframe = $(this.app.iframe)).offset();
-      rect.left += iframeOffset.left - this.$inputor.scrollLeft();
-      rect.top += iframeOffset.top - this.$inputor.scrollTop();
-    }
-    rect.bottom = rect.top + this.query.el.height();
-    return rect;
-  };
-
-  EditableController.prototype.insert = function(content, $li) {
-    var data, range, suffix, suffixNode;
-    if (!this.$inputor.is(':focus')) {
-      this.$inputor.focus();
-    }
-    suffix = (suffix = this.getOpt('suffix')) === "" ? suffix : suffix || "\u00A0";
-    data = $li.data('item-data');
-    this.query.el.removeClass('atwho-query').addClass('atwho-inserted').html(content).attr('data-atwho-at-query', "" + data['atwho-at'] + this.query.text);
-    if (range = this._getRange()) {
-      range.setEndAfter(this.query.el[0]);
-      range.collapse(false);
-      range.insertNode(suffixNode = this.app.document.createTextNode("\u200D" + suffix));
-      this._setRange('after', suffixNode, range);
-    }
-    if (!this.$inputor.is(':focus')) {
-      this.$inputor.focus();
-    }
-    return this.$inputor.change();
-  };
-
-  return EditableController;
-
-})(Controller);
-
-var Model;
-
-Model = (function() {
-  function Model(context) {
-    this.context = context;
-    this.at = this.context.at;
-    this.storage = this.context.$inputor;
-  }
-
-  Model.prototype.destroy = function() {
-    return this.storage.data(this.at, null);
-  };
-
-  Model.prototype.saved = function() {
-    return this.fetch() > 0;
-  };
-
-  Model.prototype.query = function(query, callback) {
-    var _remoteFilter, data, searchKey;
-    data = this.fetch();
-    searchKey = this.context.getOpt("searchKey");
-    data = this.context.callbacks('filter').call(this.context, query, data, searchKey) || [];
-    _remoteFilter = this.context.callbacks('remoteFilter');
-    if (data.length > 0 || (!_remoteFilter && data.length === 0)) {
-      return callback(data);
-    } else {
-      return _remoteFilter.call(this.context, query, callback);
-    }
-  };
-
-  Model.prototype.fetch = function() {
-    return this.storage.data(this.at) || [];
-  };
-
-  Model.prototype.save = function(data) {
-    return this.storage.data(this.at, this.context.callbacks("beforeSave").call(this.context, data || []));
-  };
-
-  Model.prototype.load = function(data) {
-    if (!(this.saved() || !data)) {
-      return this._load(data);
-    }
-  };
-
-  Model.prototype.reload = function(data) {
-    return this._load(data);
-  };
-
-  Model.prototype._load = function(data) {
-    if (typeof data === "string") {
-      return $.ajax(data, {
-        dataType: "json"
-      }).done((function(_this) {
-        return function(data) {
-          return _this.save(data);
-        };
-      })(this));
-    } else {
-      return this.save(data);
-    }
-  };
-
-  return Model;
-
-})();
-
-var View;
-
-View = (function() {
-  function View(context) {
-    this.context = context;
-    this.$el = $("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>");
-    this.$elUl = this.$el.children();
-    this.timeoutID = null;
-    this.context.$el.append(this.$el);
-    this.bindEvent();
-  }
-
-  View.prototype.init = function() {
-    var header_tpl, id;
-    id = this.context.getOpt("alias") || this.context.at.charCodeAt(0);
-    header_tpl = this.context.getOpt("headerTpl");
-    if (header_tpl && this.$el.children().length === 1) {
-      this.$el.prepend(header_tpl);
-    }
-    return this.$el.attr({
-      'id': "at-view-" + id
-    });
-  };
-
-  View.prototype.destroy = function() {
-    return this.$el.remove();
-  };
-
-  View.prototype.bindEvent = function() {
-    var $menu, lastCoordX, lastCoordY;
-    $menu = this.$el.find('ul');
-    lastCoordX = 0;
-    lastCoordY = 0;
-    return $menu.on('mousemove.atwho-view', 'li', (function(_this) {
-      return function(e) {
-        var $cur;
-        if (lastCoordX === e.clientX && lastCoordY === e.clientY) {
-          return;
-        }
-        lastCoordX = e.clientX;
-        lastCoordY = e.clientY;
-        $cur = $(e.currentTarget);
-        if ($cur.hasClass('cur')) {
-          return;
-        }
-        $menu.find('.cur').removeClass('cur');
-        return $cur.addClass('cur');
-      };
-    })(this)).on('click.atwho-view', 'li', (function(_this) {
-      return function(e) {
-        $menu.find('.cur').removeClass('cur');
-        $(e.currentTarget).addClass('cur');
-        _this.choose(e);
-        return e.preventDefault();
-      };
-    })(this));
-  };
-
-  View.prototype.visible = function() {
-    return this.$el.is(":visible");
-  };
-
-  View.prototype.highlighted = function() {
-    return this.$el.find(".cur").length > 0;
-  };
-
-  View.prototype.choose = function(e) {
-    var $li, content;
-    if (($li = this.$el.find(".cur")).length) {
-      content = this.context.insertContentFor($li);
-      this.context._stopDelayedCall();
-      this.context.insert(this.context.callbacks("beforeInsert").call(this.context, content, $li, e), $li);
-      this.context.trigger("inserted", [$li, e]);
-      this.hide(e);
-    }
-    if (this.context.getOpt("hideWithoutSuffix")) {
-      return this.stopShowing = true;
-    }
-  };
-
-  View.prototype.reposition = function(rect) {
-    var _window, offset, overflowOffset, ref;
-    _window = this.context.app.iframeAsRoot ? this.context.app.window : window;
-    if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {
-      rect.bottom = rect.top - this.$el.height();
-    }
-    if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {
-      rect.left = overflowOffset;
-    }
-    offset = {
-      left: rect.left,
-      top: rect.bottom
-    };
-    if ((ref = this.context.callbacks("beforeReposition")) != null) {
-      ref.call(this.context, offset);
-    }
-    this.$el.offset(offset);
-    return this.context.trigger("reposition", [offset]);
-  };
-
-  View.prototype.next = function() {
-    var cur, next, nextEl, offset;
-    cur = this.$el.find('.cur').removeClass('cur');
-    next = cur.next();
-    if (!next.length) {
-      next = this.$el.find('li:first');
-    }
-    next.addClass('cur');
-    nextEl = next[0];
-    offset = nextEl.offsetTop + nextEl.offsetHeight + (nextEl.nextSibling ? nextEl.nextSibling.offsetHeight : 0);
-    return this.scrollTop(Math.max(0, offset - this.$el.height()));
-  };
-
-  View.prototype.prev = function() {
-    var cur, offset, prev, prevEl;
-    cur = this.$el.find('.cur').removeClass('cur');
-    prev = cur.prev();
-    if (!prev.length) {
-      prev = this.$el.find('li:last');
-    }
-    prev.addClass('cur');
-    prevEl = prev[0];
-    offset = prevEl.offsetTop + prevEl.offsetHeight + (prevEl.nextSibling ? prevEl.nextSibling.offsetHeight : 0);
-    return this.scrollTop(Math.max(0, offset - this.$el.height()));
-  };
-
-  View.prototype.scrollTop = function(scrollTop) {
-    var scrollDuration;
-    scrollDuration = this.context.getOpt('scrollDuration');
-    if (scrollDuration) {
-      return this.$elUl.animate({
-        scrollTop: scrollTop
-      }, scrollDuration);
-    } else {
-      return this.$elUl.scrollTop(scrollTop);
-    }
-  };
-
-  View.prototype.show = function() {
-    var rect;
-    if (this.stopShowing) {
-      this.stopShowing = false;
-      return;
-    }
-    if (!this.visible()) {
-      this.$el.show();
-      this.$el.scrollTop(0);
-      this.context.trigger('shown');
-    }
-    if (rect = this.context.rect()) {
-      return this.reposition(rect);
-    }
-  };
-
-  View.prototype.hide = function(e, time) {
-    var callback;
-    if (!this.visible()) {
-      return;
-    }
-    if (isNaN(time)) {
-      this.$el.hide();
-      return this.context.trigger('hidden', [e]);
-    } else {
-      callback = (function(_this) {
-        return function() {
-          return _this.hide();
-        };
-      })(this);
-      clearTimeout(this.timeoutID);
-      return this.timeoutID = setTimeout(callback, time);
-    }
-  };
-
-  View.prototype.render = function(list) {
-    var $li, $ul, i, item, len, li, tpl;
-    if (!($.isArray(list) && list.length > 0)) {
-      this.hide();
-      return;
-    }
-    this.$el.find('ul').empty();
-    $ul = this.$el.find('ul');
-    tpl = this.context.getOpt('displayTpl');
-    for (i = 0, len = list.length; i < len; i++) {
-      item = list[i];
-      item = $.extend({}, item, {
-        'atwho-at': this.context.at
-      });
-      li = this.context.callbacks("tplEval").call(this.context, tpl, item, "onDisplay");
-      $li = $(this.context.callbacks("highlighter").call(this.context, li, this.context.query.text));
-      $li.data("item-data", item);
-      $ul.append($li);
-    }
-    this.show();
-    if (this.context.getOpt('highlightFirst')) {
-      return $ul.find("li:first").addClass("cur");
-    }
-  };
-
-  return View;
-
-})();
-
-var Api;
-
-Api = {
-  load: function(at, data) {
-    var c;
-    if (c = this.controller(at)) {
-      return c.model.load(data);
-    }
-  },
-  isSelecting: function() {
-    var ref;
-    return !!((ref = this.controller()) != null ? ref.view.visible() : void 0);
-  },
-  hide: function() {
-    var ref;
-    return (ref = this.controller()) != null ? ref.view.hide() : void 0;
-  },
-  reposition: function() {
-    var c;
-    if (c = this.controller()) {
-      return c.view.reposition(c.rect());
-    }
-  },
-  setIframe: function(iframe, asRoot) {
-    this.setupRootElement(iframe, asRoot);
-    return null;
-  },
-  run: function() {
-    return this.dispatch();
-  },
-  destroy: function() {
-    this.shutdown();
-    return this.$inputor.data('atwho', null);
-  }
-};
-
-$.fn.atwho = function(method) {
-  var _args, result;
-  _args = arguments;
-  result = null;
-  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
-    var $this, app;
-    if (!(app = ($this = $(this)).data("atwho"))) {
-      $this.data('atwho', (app = new App(this)));
-    }
-    if (typeof method === 'object' || !method) {
-      return app.reg(method.at, method);
-    } else if (Api[method] && app) {
-      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
-    } else {
-      return $.error("Method " + method + " does not exist on jQuery.atwho");
-    }
-  });
-  if (result != null) {
-    return result;
-  } else {
-    return this;
-  }
-};
-
-$.fn.atwho["default"] = {
-  at: void 0,
-  alias: void 0,
-  data: null,
-  displayTpl: "<li>${name}</li>",
-  insertTpl: "${atwho-at}${name}",
-  headerTpl: null,
-  callbacks: DEFAULT_CALLBACKS,
-  searchKey: "name",
-  suffix: void 0,
-  hideWithoutSuffix: false,
-  startWithSpace: true,
-  acceptSpaceBar: false,
-  highlightFirst: true,
-  limit: 5,
-  maxLen: 20,
-  minLen: 0,
-  displayTimeout: 300,
-  delay: null,
-  spaceSelectsMatch: false,
-  tabSelectsMatch: true,
-  editableAtwhoQueryAttrs: {},
-  scrollDuration: 150,
-  suspendOnComposing: true,
-  lookUpOnClick: true
-};
-
-$.fn.atwho.debug = false;
-
-}));
diff --git a/pagure/static/atwho/jquery.atwho-1.5.1.min.css b/pagure/static/atwho/jquery.atwho-1.5.1.min.css
deleted file mode 100644
index f770dc7..0000000
--- a/pagure/static/atwho/jquery.atwho-1.5.1.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.atwho-view{position:absolute;top:0;left:0;display:none;margin-top:18px;background:#fff;color:#000;border:1px solid #DDD;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.1);min-width:120px;z-index:11110!important}.atwho-view .atwho-header{padding:5px;margin:5px;cursor:pointer;border-bottom:solid 1px #eaeff1;color:#6f8092;font-size:11px;font-weight:700}.atwho-view .atwho-header .small{color:#6f8092;float:right;padding-top:2px;margin-right:-5px;font-size:12px;font-weight:400}.atwho-view .atwho-header:hover{cursor:default}.atwho-view .cur{background:#36F;color:#fff}.atwho-view .cur small{color:#fff}.atwho-view strong{color:#36F}.atwho-view .cur strong{color:#fff;font:700}.atwho-view ul{list-style:none;padding:0;margin:auto;max-height:200px;overflow-y:auto}.atwho-view ul li{display:block;padding:5px 10px;border-bottom:1px solid #DDD;cursor:pointer}.atwho-view small{font-size:smaller;color:#777;font-weight:400}
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.atwho-1.5.1.min.js b/pagure/static/atwho/jquery.atwho-1.5.1.min.js
deleted file mode 100644
index 71e9a10..0000000
--- a/pagure/static/atwho/jquery.atwho-1.5.1.min.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t)}):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(this,function(t){var e,i;i={DOWN:40,UP:38,ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return r.arrayToDefaultHash(t)},matcher:function(t,e,i,n){var r,o,s,a,h;return t=t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),i&&(t="(?:^|\\s)"+t),r=decodeURI("%C3%80"),o=decodeURI("%C3%BF"),h=n?" ":"",a=new RegExp(t+"([A-Za-z"+r+"-"+o+"0-9_"+h+"'.+-]*)$|"+t+"([^\\x00-\\xff]*)$","gi"),s=a.exec(e),s?s[2]||s[1]:null},filter:function(t,e,i){var n,r,o,s;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],~new String(o[i]).toLowerCase().indexOf(t.toLowerCase())&&n.push(o);return n},remoteFilter:null,sorter:function(t,e,i){var n,r,o,s;if(!t)return e;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],o.atwho_order=new String(o[i]).toLowerCase().indexOf(t.toLowerCase()),o.atwho_order>-1&&n.push(o);return n.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var i,n,r;r=t;try{return"string"!=typeof t&&(r=t(e)),r.replace(/\$\{([^\}]*)\}/g,function(t,i,n){return e[i]})}catch(n){return i=n,""}},highlighter:function(t,e){var i;return e?(i=new RegExp(">\\s*(\\w*?)("+e.replace("+","\\+")+")(\\w*)\\s*<","ig"),t.replace(i,function(t,e,i,n){return"> "+e+"<strong>"+i+"</strong>"+n+" <"})):t},beforeInsert:function(t,e,i){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}};var n;n=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var i;return null!=(i=this.$el)&&i.remove(),t(e.body).append(this.$el=t("<div class='atwho-container'></div>"))},e.prototype.setupRootElement=function(e,i){var n,r;if(null==i&&(i=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(r){if(n=r,this.iframe=null,t.fn.atwho.debug)throw new Error("iframe auto-discovery is failed.\nPlease use `setIframe` to set the target iframe manually.\n"+n)}}return this.createContainer((this.iframeAsRoot=i)?this.document:document)},e.prototype.controller=function(t){var e,i,n,r;if(this.aliasMaps[t])i=this.controllers[this.aliasMaps[t]];else{r=this.controllers;for(n in r)if(e=r[n],n===t){i=e;break}}return i?i:this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var i,n;return n=(i=this.controllers)[t]||(i[t]=this.$inputor.is("[contentEditable]")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),n.init(e),this},e.prototype.listen=function(){return this.$inputor.on("compositionstart",function(t){return function(e){var i;return null!=(i=t.controller())&&i.view.hide(),t.isComposing=!0,null}}(this)).on("compositionend",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on("keyup.atwhoInner",function(t){return function(e){return t.onKeyup(e)}}(this)).on("keydown.atwhoInner",function(t){return function(e){return t.onKeydown(e)}}(this)).on("blur.atwhoInner",function(t){return function(e){var i;return(i=t.controller())?(i.expectedQueryCBId=null,i.view.hide(e,i.getOpt("displayTimeout"))):void 0}}(this)).on("click.atwhoInner",function(t){return function(e){return t.dispatch(e)}}(this)).on("scroll.atwhoInner",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(i){var n,r;return n=i.target.scrollTop,e!==n&&null!=(r=t.controller())&&r.view.hide(i),e=n,!0}}}(this)())},e.prototype.shutdown=function(){var t,e,i;i=this.controllers;for(t in i)e=i[t],e.destroy(),delete this.controllers[t];return this.$inputor.off(".atwhoInner"),this.$el.remove()},e.prototype.dispatch=function(t){var e,i,n,r;n=this.controllers,r=[];for(e in n)i=n[e],r.push(i.lookUp(t));return r},e.prototype.onKeyup=function(e){var n;switch(e.keyCode){case i.ESC:e.preventDefault(),null!=(n=this.controller())&&n.view.hide();break;case i.DOWN:case i.UP:case i.CTRL:case i.ENTER:t.noop();break;case i.P:case i.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var n,r;if(r=null!=(n=this.controller())?n.view:void 0,r&&r.visible())switch(e.keyCode){case i.ESC:e.preventDefault(),r.hide(e);break;case i.UP:e.preventDefault(),r.prev();break;case i.DOWN:e.preventDefault(),r.next();break;case i.P:if(!e.ctrlKey)return;e.preventDefault(),r.prev();break;case i.N:if(!e.ctrlKey)return;e.preventDefault(),r.next();break;case i.TAB:case i.ENTER:case i.SPACE:if(!r.visible())return;if(!this.controller().getOpt("spaceSelectsMatch")&&e.keyCode===i.SPACE)return;if(!this.controller().getOpt("tabSelectsMatch")&&e.keyCode===i.TAB)return;r.highlighted()?(e.preventDefault(),r.choose(e)):r.hide(e);break;default:t.noop()}},e}();var r,o=[].slice;r=function(){function i(e,i){this.app=e,this.at=i,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t("#atwho-ground-"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t("<div id='atwho-ground-"+this.id+"'></div>")),this.model=new u(this),this.view=new c(this)}return i.prototype.uid=function(){return(Math.random().toString(16)+"000000000").substr(2,8)+(new Date).getTime()},i.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho["default"],e),this.view.init(),this.model.reload(this.setting.data)},i.prototype.destroy=function(){return this.trigger("beforeDestroy"),this.model.destroy(),this.view.destroy(),this.$el.remove()},i.prototype.callDefault=function(){var i,n,r,s;s=arguments[0],i=2<=arguments.length?o.call(arguments,1):[];try{return e[s].apply(this,i)}catch(r){return n=r,t.error(n+" Or maybe At.js doesn't have function "+s)}},i.prototype.trigger=function(t,e){var i,n;return null==e&&(e=[]),e.push(this),i=this.getOpt("alias"),n=i?t+"-"+i+".atwho":t+".atwho",this.$inputor.trigger(n,e)},i.prototype.callbacks=function(t){return this.getOpt("callbacks")[t]||e[t]},i.prototype.getOpt=function(t,e){var i,n;try{return this.setting[t]}catch(n){return i=n,null}},i.prototype.insertContentFor=function(e){var i,n;return n=this.getOpt("insertTpl"),i=t.extend({},e.data("item-data"),{"atwho-at":this.at}),this.callbacks("tplEval").call(this,n,i,"onInsert")},i.prototype.renderView=function(t){var e;return e=this.getOpt("searchKey"),t=this.callbacks("sorter").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt("limit")))},i.arrayToDefaultHash=function(e){var i,n,r,o;if(!t.isArray(e))return e;for(o=[],i=0,r=e.length;r>i;i++)n=e[i],t.isPlainObject(n)?o.push(n):o.push({name:n});return o},i.prototype.lookUp=function(t){var e,i;if((!t||"click"!==t.type||this.getOpt("lookUpOnClick"))&&(!this.getOpt("suspendOnComposing")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(i=this.getOpt("delay"))?this._delayLookUp(e,i):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},i.prototype._delayLookUp=function(t,e){var i,n;return i=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=i),n=e-(i-this.previousCallTime),n>0&&e>n?(this.previousCallTime=i,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==i&&(this.previousCallTime=0),this._lookUp(t))},i.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},i.prototype._generateQueryCBId=function(){return{}},i.prototype._lookUp=function(e){var i;return i=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(i,this,this.expectedQueryCBId))},i}();var s,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;s=function(e){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,e),i.prototype.catchQuery=function(){var t,e,i,n,r,o,s;return e=this.$inputor.val(),t=this.$inputor.caret("pos",{iframe:this.app.iframe}),s=e.slice(0,t),r=this.callbacks("matcher").call(this,this.at,s,this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar")),n="string"==typeof r,n&&r.length<this.getOpt("minLen",0)?void 0:(n&&r.length<=this.getOpt("maxLen",20)?(o=t-r.length,i=o+r.length,this.pos=o,r={text:r,headPos:o,endPos:i},this.trigger("matched",[this.at,r.text])):(r=null,this.view.hide()),this.query=r)},i.prototype.rect=function(){var e,i,n;if(e=this.$inputor.caret("offset",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(i=t(this.app.iframe).offset(),e.left+=i.left,e.top+=i.top),n=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+n}},i.prototype.insert=function(t,e){var i,n,r,o,s;return i=this.$inputor,n=i.val(),r=n.slice(0,Math.max(this.query.headPos-this.at.length,0)),o=""===(o=this.getOpt("suffix"))?o:o||" ",t+=o,s=""+r+t+n.slice(this.query.endPos||0),i.val(s),i.caret("pos",r.length+t.length,{iframe:this.app.iframe}),i.is(":focus")||i.focus(),i.change()},i}(r);var l,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;l=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return a(n,e),n.prototype._getRange=function(){var t;return t=this.app.window.getSelection(),t.rangeCount>0?t.getRangeAt(0):void 0},n.prototype._setRange=function(e,i,n){return null==n&&(n=this._getRange()),n?(i=t(i)[0],"after"===e?(n.setEndAfter(i),n.setStartAfter(i)):(n.setEndBefore(i),n.setStartBefore(i)),n.collapse(!1),this._clearRange(n)):void 0},n.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},n.prototype._movingEvent=function(t){var e;return"click"===t.type||(e=t.which)===i.RIGHT||e===i.LEFT||e===i.UP||e===i.DOWN},n.prototype._unwrap=function(e){var i;return e=t(e).unwrap().get(0),(i=e.nextSibling)&&i.nodeValue&&(e.nodeValue+=i.nodeValue,t(i).remove()),e},n.prototype.catchQuery=function(e){var n,r,o,s,a,h,l,u,c,p,f,d;if((d=this._getRange())&&d.collapsed){if(e.which===i.ENTER)return(r=t(d.startContainer).closest(".atwho-query")).contents().unwrap(),r.is(":empty")&&r.remove(),(r=t(".atwho-query",this.app.document)).text(r.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(d.startContainer).is(this.$inputor))return void this._clearRange();e.which===i.BACKSPACE&&d.startContainer.nodeType===document.ELEMENT_NODE&&(c=d.startOffset-1)>=0?(o=d.cloneRange(),o.setStart(d.startContainer,c),t(o.cloneContents()).contents().last().is(".atwho-inserted")&&(a=t(d.startContainer).contents().get(c),this._setRange("after",t(a).contents().last()))):e.which===i.LEFT&&d.startContainer.nodeType===document.TEXT_NODE&&(n=t(d.startContainer.previousSibling),n.is(".atwho-inserted")&&0===d.startOffset&&this._setRange("after",n.contents().last()))}if(t(d.startContainer).closest(".atwho-inserted").addClass("atwho-query").siblings().removeClass("atwho-query"),(r=t(".atwho-query",this.app.document)).length>0&&r.is(":empty")&&0===r.text().length&&r.remove(),this._movingEvent(e)||r.removeClass("atwho-inserted"),r.length>0)switch(e.which){case i.LEFT:return this._setRange("before",r.get(0),d),void r.removeClass("atwho-query");case i.RIGHT:return this._setRange("after",r.get(0).nextSibling,d),void r.removeClass("atwho-query")}if(r.length>0&&(f=r.attr("data-atwho-at-query"))&&(r.empty().html(f).attr("data-atwho-at-query",null),this._setRange("after",r.get(0),d)),o=d.cloneRange(),o.setStart(d.startContainer,0),u=this.callbacks("matcher").call(this,this.at,o.toString(),this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar")),h="string"==typeof u,0===r.length&&h&&(s=d.startOffset-this.at.length-u.length)>=0&&(d.setStart(d.startContainer,s),r=t("<span/>",this.app.document).attr(this.getOpt("editableAtwhoQueryAttrs")).addClass("atwho-query"),d.surroundContents(r.get(0)),l=r.contents().last().get(0),/firefox/i.test(navigator.userAgent)?(d.setStart(l,l.length),d.setEnd(l,l.length),this._clearRange(d)):this._setRange("after",l,d)),!(h&&u.length<this.getOpt("minLen",0)))return h&&u.length<=this.getOpt("maxLen",20)?(p={text:u,el:r},this.trigger("matched",[this.at,p.text]),this.query=p):(this.view.hide(),this.query={el:r},r.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&r.hasClass("atwho-inserted")?r.removeClass("atwho-query"):!1!==this.callbacks("afterMatchFailed").call(this,this.at,r)&&this._setRange("after",this._unwrap(r.text(r.text()).contents().first()))),null)}},n.prototype.rect=function(){var e,i,n;return n=this.query.el.offset(),this.app.iframe&&!this.app.iframeAsRoot&&(i=(e=t(this.app.iframe)).offset(),n.left+=i.left-this.$inputor.scrollLeft(),n.top+=i.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n},n.prototype.insert=function(t,e){var i,n,r,o;return this.$inputor.is(":focus")||this.$inputor.focus(),r=""===(r=this.getOpt("suffix"))?r:r||" ",i=e.data("item-data"),this.query.el.removeClass("atwho-query").addClass("atwho-inserted").html(t).attr("data-atwho-at-query",""+i["atwho-at"]+this.query.text),(n=this._getRange())&&(n.setEndAfter(this.query.el[0]),n.collapse(!1),n.insertNode(o=this.app.document.createTextNode("‍"+r)),this._setRange("after",o,n)),this.$inputor.is(":focus")||this.$inputor.focus(),this.$inputor.change()},n}(r);var u;u=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var i,n,r;return n=this.fetch(),r=this.context.getOpt("searchKey"),n=this.context.callbacks("filter").call(this.context,t,n,r)||[],i=this.context.callbacks("remoteFilter"),n.length>0||!i&&0===n.length?e(n):i.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks("beforeSave").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return"string"==typeof e?t.ajax(e,{dataType:"json"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}();var c;c=function(){function e(e){this.context=e,this.$el=t("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt("alias")||this.context.at.charCodeAt(0),t=this.context.getOpt("headerTpl"),t&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:"at-view-"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,i,n;return e=this.$el.find("ul"),i=0,n=0,e.on("mousemove.atwho-view","li",function(r){return function(r){var o;if((i!==r.clientX||n!==r.clientY)&&(i=r.clientX,n=r.clientY,o=t(r.currentTarget),!o.hasClass("cur")))return e.find(".cur").removeClass("cur"),o.addClass("cur")}}(this)).on("click.atwho-view","li",function(i){return function(n){return e.find(".cur").removeClass("cur"),t(n.currentTarget).addClass("cur"),i.choose(n),n.preventDefault()}}(this))},e.prototype.visible=function(){return this.$el.is(":visible")},e.prototype.highlighted=function(){return this.$el.find(".cur").length>0},e.prototype.choose=function(t){var e,i;return(e=this.$el.find(".cur")).length&&(i=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks("beforeInsert").call(this.context,i,e,t),e),this.context.trigger("inserted",[e,t]),this.hide(t)),this.context.getOpt("hideWithoutSuffix")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var i,n,r,o;return i=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(i).scrollTop()>t(i).height()&&(e.bottom=e.top-this.$el.height()),e.left>(r=t(i).width()-this.$el.width()-5)&&(e.left=r),n={left:e.left,top:e.bottom},null!=(o=this.context.callbacks("beforeReposition"))&&o.call(this.context,n),this.$el.offset(n),this.context.trigger("reposition",[n])},e.prototype.next=function(){var t,e,i,n;return t=this.$el.find(".cur").removeClass("cur"),e=t.next(),e.length||(e=this.$el.find("li:first")),e.addClass("cur"),i=e[0],n=i.offsetTop+i.offsetHeight+(i.nextSibling?i.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,i,n;return t=this.$el.find(".cur").removeClass("cur"),i=t.prev(),i.length||(i=this.$el.find("li:last")),i.addClass("cur"),n=i[0],e=n.offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,e-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return e=this.context.getOpt("scrollDuration"),e?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger("shown")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var i;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger("hidden",[t])):(i=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(i,e))},e.prototype.render=function(e){var i,n,r,o,s,a,h;if(!(t.isArray(e)&&e.length>0))return void this.hide();for(this.$el.find("ul").empty(),n=this.$el.find("ul"),h=this.context.getOpt("displayTpl"),r=0,s=e.length;s>r;r++)o=e[r],o=t.extend({},o,{"atwho-at":this.context.at}),a=this.context.callbacks("tplEval").call(this.context,h,o,"onDisplay"),i=t(this.context.callbacks("highlighter").call(this.context,a,this.context.query.text)),i.data("item-data",o),n.append(i);return this.show(),this.context.getOpt("highlightFirst")?n.find("li:first").addClass("cur"):void 0},e}();var p;p={load:function(t,e){var i;return(i=this.controller(t))?i.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data("atwho",null)}},t.fn.atwho=function(e){var i,r;return i=arguments,r=null,this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function(){var o,s;return(s=(o=t(this)).data("atwho"))||o.data("atwho",s=new n(this)),"object"!=typeof e&&e?p[e]&&s?r=p[e].apply(s,Array.prototype.slice.call(i,1)):t.error("Method "+e+" does not exist on jQuery.atwho"):s.reg(e.at,e)}),null!=r?r:this},t.fn.atwho["default"]={at:void 0,alias:void 0,data:null,displayTpl:"<li>${name}</li>",insertTpl:"${atwho-at}${name}",headerTpl:null,callbacks:e,searchKey:"name",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1});
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.atwho.css b/pagure/static/atwho/jquery.atwho.css
deleted file mode 120000
index 7cdb23b..0000000
--- a/pagure/static/atwho/jquery.atwho.css
+++ /dev/null
@@ -1 +0,0 @@
-jquery.atwho-1.5.1.css
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.atwho.js b/pagure/static/atwho/jquery.atwho.js
deleted file mode 120000
index 71094fd..0000000
--- a/pagure/static/atwho/jquery.atwho.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.atwho-1.5.1.js
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.atwho.min.css b/pagure/static/atwho/jquery.atwho.min.css
deleted file mode 120000
index 9f0145a..0000000
--- a/pagure/static/atwho/jquery.atwho.min.css
+++ /dev/null
@@ -1 +0,0 @@
-jquery.atwho-1.5.1.min.css
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.atwho.min.js b/pagure/static/atwho/jquery.atwho.min.js
deleted file mode 120000
index e1879fd..0000000
--- a/pagure/static/atwho/jquery.atwho.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.atwho-1.5.1.min.js
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.caret-0.3.1.js b/pagure/static/atwho/jquery.caret-0.3.1.js
deleted file mode 100644
index 811ec63..0000000
--- a/pagure/static/atwho/jquery.caret-0.3.1.js
+++ /dev/null
@@ -1,436 +0,0 @@
-(function (root, factory) {
-  if (typeof define === 'function' && define.amd) {
-    // AMD. Register as an anonymous module.
-    define(["jquery"], function ($) {
-      return (root.returnExportsGlobal = factory($));
-    });
-  } else if (typeof exports === 'object') {
-    // Node. Does not work with strict CommonJS, but
-    // only CommonJS-like enviroments that support module.exports,
-    // like Node.
-    module.exports = factory(require("jquery"));
-  } else {
-    factory(jQuery);
-  }
-}(this, function ($) {
-
-/*
-  Implement Github like autocomplete mentions
-  http://ichord.github.com/At.js
-
-  Copyright (c) 2013 chord.luo@gmail.com
-  Licensed under the MIT license.
-*/
-
-/*
-本插件操作 textarea 或者 input 内的插入符
-只实现了获得插入符在文本框中的位置，我设置
-插入符的位置.
-*/
-
-"use strict";
-var EditableCaret, InputCaret, Mirror, Utils, discoveryIframeOf, methods, oDocument, oFrame, oWindow, pluginName, setContextBy;
-
-pluginName = 'caret';
-
-EditableCaret = (function() {
-  function EditableCaret($inputor) {
-    this.$inputor = $inputor;
-    this.domInputor = this.$inputor[0];
-  }
-
-  EditableCaret.prototype.setPos = function(pos) {
-    var fn, found, offset, sel;
-    if (sel = oWindow.getSelection()) {
-      offset = 0;
-      found = false;
-      (fn = function(pos, parent) {
-        var node, range, _i, _len, _ref, _results;
-        _ref = parent.childNodes;
-        _results = [];
-        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
-          node = _ref[_i];
-          if (found) {
-            break;
-          }
-          if (node.nodeType === 3) {
-            if (offset + node.length >= pos) {
-              found = true;
-              range = oDocument.createRange();
-              range.setStart(node, pos - offset);
-              sel.removeAllRanges();
-              sel.addRange(range);
-              break;
-            } else {
-              _results.push(offset += node.length);
-            }
-          } else {
-            _results.push(fn(pos, node));
-          }
-        }
-        return _results;
-      })(pos, this.domInputor);
-    }
-    return this.domInputor;
-  };
-
-  EditableCaret.prototype.getIEPosition = function() {
-    return this.getPosition();
-  };
-
-  EditableCaret.prototype.getPosition = function() {
-    var inputor_offset, offset;
-    offset = this.getOffset();
-    inputor_offset = this.$inputor.offset();
-    offset.left -= inputor_offset.left;
-    offset.top -= inputor_offset.top;
-    return offset;
-  };
-
-  EditableCaret.prototype.getOldIEPos = function() {
-    var preCaretTextRange, textRange;
-    textRange = oDocument.selection.createRange();
-    preCaretTextRange = oDocument.body.createTextRange();
-    preCaretTextRange.moveToElementText(this.domInputor);
-    preCaretTextRange.setEndPoint("EndToEnd", textRange);
-    return preCaretTextRange.text.length;
-  };
-
-  EditableCaret.prototype.getPos = function() {
-    var clonedRange, pos, range;
-    if (range = this.range()) {
-      clonedRange = range.cloneRange();
-      clonedRange.selectNodeContents(this.domInputor);
-      clonedRange.setEnd(range.endContainer, range.endOffset);
-      pos = clonedRange.toString().length;
-      clonedRange.detach();
-      return pos;
-    } else if (oDocument.selection) {
-      return this.getOldIEPos();
-    }
-  };
-
-  EditableCaret.prototype.getOldIEOffset = function() {
-    var range, rect;
-    range = oDocument.selection.createRange().duplicate();
-    range.moveStart("character", -1);
-    rect = range.getBoundingClientRect();
-    return {
-      height: rect.bottom - rect.top,
-      left: rect.left,
-      top: rect.top
-    };
-  };
-
-  EditableCaret.prototype.getOffset = function(pos) {
-    var clonedRange, offset, range, rect, shadowCaret;
-    if (oWindow.getSelection && (range = this.range())) {
-      if (range.endOffset - 1 > 0 && range.endContainer !== this.domInputor) {
-        clonedRange = range.cloneRange();
-        clonedRange.setStart(range.endContainer, range.endOffset - 1);
-        clonedRange.setEnd(range.endContainer, range.endOffset);
-        rect = clonedRange.getBoundingClientRect();
-        offset = {
-          height: rect.height,
-          left: rect.left + rect.width,
-          top: rect.top
-        };
-        clonedRange.detach();
-      }
-      if (!offset || (offset != null ? offset.height : void 0) === 0) {
-        clonedRange = range.cloneRange();
-        shadowCaret = $(oDocument.createTextNode("|"));
-        clonedRange.insertNode(shadowCaret[0]);
-        clonedRange.selectNode(shadowCaret[0]);
-        rect = clonedRange.getBoundingClientRect();
-        offset = {
-          height: rect.height,
-          left: rect.left,
-          top: rect.top
-        };
-        shadowCaret.remove();
-        clonedRange.detach();
-      }
-    } else if (oDocument.selection) {
-      offset = this.getOldIEOffset();
-    }
-    if (offset) {
-      offset.top += $(oWindow).scrollTop();
-      offset.left += $(oWindow).scrollLeft();
-    }
-    return offset;
-  };
-
-  EditableCaret.prototype.range = function() {
-    var sel;
-    if (!oWindow.getSelection) {
-      return;
-    }
-    sel = oWindow.getSelection();
-    if (sel.rangeCount > 0) {
-      return sel.getRangeAt(0);
-    } else {
-      return null;
-    }
-  };
-
-  return EditableCaret;
-
-})();
-
-InputCaret = (function() {
-  function InputCaret($inputor) {
-    this.$inputor = $inputor;
-    this.domInputor = this.$inputor[0];
-  }
-
-  InputCaret.prototype.getIEPos = function() {
-    var endRange, inputor, len, normalizedValue, pos, range, textInputRange;
-    inputor = this.domInputor;
-    range = oDocument.selection.createRange();
-    pos = 0;
-    if (range && range.parentElement() === inputor) {
-      normalizedValue = inputor.value.replace(/\r\n/g, "\n");
-      len = normalizedValue.length;
-      textInputRange = inputor.createTextRange();
-      textInputRange.moveToBookmark(range.getBookmark());
-      endRange = inputor.createTextRange();
-      endRange.collapse(false);
-      if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
-        pos = len;
-      } else {
-        pos = -textInputRange.moveStart("character", -len);
-      }
-    }
-    return pos;
-  };
-
-  InputCaret.prototype.getPos = function() {
-    if (oDocument.selection) {
-      return this.getIEPos();
-    } else {
-      return this.domInputor.selectionStart;
-    }
-  };
-
-  InputCaret.prototype.setPos = function(pos) {
-    var inputor, range;
-    inputor = this.domInputor;
-    if (oDocument.selection) {
-      range = inputor.createTextRange();
-      range.move("character", pos);
-      range.select();
-    } else if (inputor.setSelectionRange) {
-      inputor.setSelectionRange(pos, pos);
-    }
-    return inputor;
-  };
-
-  InputCaret.prototype.getIEOffset = function(pos) {
-    var h, textRange, x, y;
-    textRange = this.domInputor.createTextRange();
-    pos || (pos = this.getPos());
-    textRange.move('character', pos);
-    x = textRange.boundingLeft;
-    y = textRange.boundingTop;
-    h = textRange.boundingHeight;
-    return {
-      left: x,
-      top: y,
-      height: h
-    };
-  };
-
-  InputCaret.prototype.getOffset = function(pos) {
-    var $inputor, offset, position;
-    $inputor = this.$inputor;
-    if (oDocument.selection) {
-      offset = this.getIEOffset(pos);
-      offset.top += $(oWindow).scrollTop() + $inputor.scrollTop();
-      offset.left += $(oWindow).scrollLeft() + $inputor.scrollLeft();
-      return offset;
-    } else {
-      offset = $inputor.offset();
-      position = this.getPosition(pos);
-      return offset = {
-        left: offset.left + position.left - $inputor.scrollLeft(),
-        top: offset.top + position.top - $inputor.scrollTop(),
-        height: position.height
-      };
-    }
-  };
-
-  InputCaret.prototype.getPosition = function(pos) {
-    var $inputor, at_rect, end_range, format, html, mirror, start_range;
-    $inputor = this.$inputor;
-    format = function(value) {
-      value = value.replace(/<|>|`|"|&/g, '?').replace(/\r\n|\r|\n/g, "<br/>");
-      if (/firefox/i.test(navigator.userAgent)) {
-        value = value.replace(/\s/g, '&nbsp;');
-      }
-      return value;
-    };
-    if (pos === void 0) {
-      pos = this.getPos();
-    }
-    start_range = $inputor.val().slice(0, pos);
-    end_range = $inputor.val().slice(pos);
-    html = "<span style='position: relative; display: inline;'>" + format(start_range) + "</span>";
-    html += "<span id='caret' style='position: relative; display: inline;'>|</span>";
-    html += "<span style='position: relative; display: inline;'>" + format(end_range) + "</span>";
-    mirror = new Mirror($inputor);
-    return at_rect = mirror.create(html).rect();
-  };
-
-  InputCaret.prototype.getIEPosition = function(pos) {
-    var h, inputorOffset, offset, x, y;
-    offset = this.getIEOffset(pos);
-    inputorOffset = this.$inputor.offset();
-    x = offset.left - inputorOffset.left;
-    y = offset.top - inputorOffset.top;
-    h = offset.height;
-    return {
-      left: x,
-      top: y,
-      height: h
-    };
-  };
-
-  return InputCaret;
-
-})();
-
-Mirror = (function() {
-  Mirror.prototype.css_attr = ["borderBottomWidth", "borderLeftWidth", "borderRightWidth", "borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle", "borderTopWidth", "boxSizing", "fontFamily", "fontSize", "fontWeight", "height", "letterSpacing", "lineHeight", "marginBottom", "marginLeft", "marginRight", "marginTop", "outlineWidth", "overflow", "overflowX", "overflowY", "paddingBottom", "paddingLeft", "paddingRight", "paddingTop", "textAlign", "textOverflow", "textTransform", "whiteSpace", "wordBreak", "wordWrap"];
-
-  function Mirror($inputor) {
-    this.$inputor = $inputor;
-  }
-
-  Mirror.prototype.mirrorCss = function() {
-    var css,
-      _this = this;
-    css = {
-      position: 'absolute',
-      left: -9999,
-      top: 0,
-      zIndex: -20000
-    };
-    if (this.$inputor.prop('tagName') === 'TEXTAREA') {
-      this.css_attr.push('width');
-    }
-    $.each(this.css_attr, function(i, p) {
-      return css[p] = _this.$inputor.css(p);
-    });
-    return css;
-  };
-
-  Mirror.prototype.create = function(html) {
-    this.$mirror = $('<div></div>');
-    this.$mirror.css(this.mirrorCss());
-    this.$mirror.html(html);
-    this.$inputor.after(this.$mirror);
-    return this;
-  };
-
-  Mirror.prototype.rect = function() {
-    var $flag, pos, rect;
-    $flag = this.$mirror.find("#caret");
-    pos = $flag.position();
-    rect = {
-      left: pos.left,
-      top: pos.top,
-      height: $flag.height()
-    };
-    this.$mirror.remove();
-    return rect;
-  };
-
-  return Mirror;
-
-})();
-
-Utils = {
-  contentEditable: function($inputor) {
-    return !!($inputor[0].contentEditable && $inputor[0].contentEditable === 'true');
-  }
-};
-
-methods = {
-  pos: function(pos) {
-    if (pos || pos === 0) {
-      return this.setPos(pos);
-    } else {
-      return this.getPos();
-    }
-  },
-  position: function(pos) {
-    if (oDocument.selection) {
-      return this.getIEPosition(pos);
-    } else {
-      return this.getPosition(pos);
-    }
-  },
-  offset: function(pos) {
-    var offset;
-    offset = this.getOffset(pos);
-    return offset;
-  }
-};
-
-oDocument = null;
-
-oWindow = null;
-
-oFrame = null;
-
-setContextBy = function(settings) {
-  var iframe;
-  if (iframe = settings != null ? settings.iframe : void 0) {
-    oFrame = iframe;
-    oWindow = iframe.contentWindow;
-    return oDocument = iframe.contentDocument || oWindow.document;
-  } else {
-    oFrame = void 0;
-    oWindow = window;
-    return oDocument = document;
-  }
-};
-
-discoveryIframeOf = function($dom) {
-  var error;
-  oDocument = $dom[0].ownerDocument;
-  oWindow = oDocument.defaultView || oDocument.parentWindow;
-  try {
-    return oFrame = oWindow.frameElement;
-  } catch (_error) {
-    error = _error;
-  }
-};
-
-$.fn.caret = function(method, value, settings) {
-  var caret;
-  if (methods[method]) {
-    if ($.isPlainObject(value)) {
-      setContextBy(value);
-      value = void 0;
-    } else {
-      setContextBy(settings);
-    }
-    caret = Utils.contentEditable(this) ? new EditableCaret(this) : new InputCaret(this);
-    return methods[method].apply(caret, [value]);
-  } else {
-    return $.error("Method " + method + " does not exist on jQuery.caret");
-  }
-};
-
-$.fn.caret.EditableCaret = EditableCaret;
-
-$.fn.caret.InputCaret = InputCaret;
-
-$.fn.caret.Utils = Utils;
-
-$.fn.caret.apis = methods;
-
-
-}));
diff --git a/pagure/static/atwho/jquery.caret-0.3.1.min.js b/pagure/static/atwho/jquery.caret-0.3.1.min.js
deleted file mode 100644
index a25584e..0000000
--- a/pagure/static/atwho/jquery.caret-0.3.1.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! jquery.caret 2016-02-27 */
-!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return a.returnExportsGlobal=b(c)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){"use strict";var b,c,d,e,f,g,h,i,j,k,l;k="caret",b=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.setPos=function(a){var b,c,d,e;return(e=j.getSelection())&&(d=0,c=!1,(b=function(a,f){var g,i,j,k,l,m;for(l=f.childNodes,m=[],j=0,k=l.length;k>j&&(g=l[j],!c);j++)if(3===g.nodeType){if(d+g.length>=a){c=!0,i=h.createRange(),i.setStart(g,a-d),e.removeAllRanges(),e.addRange(i);break}m.push(d+=g.length)}else m.push(b(a,g));return m})(a,this.domInputor)),this.domInputor},b.prototype.getIEPosition=function(){return this.getPosition()},b.prototype.getPosition=function(){var a,b;return b=this.getOffset(),a=this.$inputor.offset(),b.left-=a.left,b.top-=a.top,b},b.prototype.getOldIEPos=function(){var a,b;return b=h.selection.createRange(),a=h.body.createTextRange(),a.moveToElementText(this.domInputor),a.setEndPoint("EndToEnd",b),a.text.length},b.prototype.getPos=function(){var a,b,c;return(c=this.range())?(a=c.cloneRange(),a.selectNodeContents(this.domInputor),a.setEnd(c.endContainer,c.endOffset),b=a.toString().length,a.detach(),b):h.selection?this.getOldIEPos():void 0},b.prototype.getOldIEOffset=function(){var a,b;return a=h.selection.createRange().duplicate(),a.moveStart("character",-1),b=a.getBoundingClientRect(),{height:b.bottom-b.top,left:b.left,top:b.top}},b.prototype.getOffset=function(){var b,c,d,e,f;return j.getSelection&&(d=this.range())?(d.endOffset-1>0&&d.endContainer!==this.domInputor&&(b=d.cloneRange(),b.setStart(d.endContainer,d.endOffset-1),b.setEnd(d.endContainer,d.endOffset),e=b.getBoundingClientRect(),c={height:e.height,left:e.left+e.width,top:e.top},b.detach()),c&&0!==(null!=c?c.height:void 0)||(b=d.cloneRange(),f=a(h.createTextNode("|")),b.insertNode(f[0]),b.selectNode(f[0]),e=b.getBoundingClientRect(),c={height:e.height,left:e.left,top:e.top},f.remove(),b.detach())):h.selection&&(c=this.getOldIEOffset()),c&&(c.top+=a(j).scrollTop(),c.left+=a(j).scrollLeft()),c},b.prototype.range=function(){var a;if(j.getSelection)return a=j.getSelection(),a.rangeCount>0?a.getRangeAt(0):null},b}(),c=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.getIEPos=function(){var a,b,c,d,e,f,g;return b=this.domInputor,f=h.selection.createRange(),e=0,f&&f.parentElement()===b&&(d=b.value.replace(/\r\n/g,"\n"),c=d.length,g=b.createTextRange(),g.moveToBookmark(f.getBookmark()),a=b.createTextRange(),a.collapse(!1),e=g.compareEndPoints("StartToEnd",a)>-1?c:-g.moveStart("character",-c)),e},b.prototype.getPos=function(){return h.selection?this.getIEPos():this.domInputor.selectionStart},b.prototype.setPos=function(a){var b,c;return b=this.domInputor,h.selection?(c=b.createTextRange(),c.move("character",a),c.select()):b.setSelectionRange&&b.setSelectionRange(a,a),b},b.prototype.getIEOffset=function(a){var b,c,d,e;return c=this.domInputor.createTextRange(),a||(a=this.getPos()),c.move("character",a),d=c.boundingLeft,e=c.boundingTop,b=c.boundingHeight,{left:d,top:e,height:b}},b.prototype.getOffset=function(b){var c,d,e;return c=this.$inputor,h.selection?(d=this.getIEOffset(b),d.top+=a(j).scrollTop()+c.scrollTop(),d.left+=a(j).scrollLeft()+c.scrollLeft(),d):(d=c.offset(),e=this.getPosition(b),d={left:d.left+e.left-c.scrollLeft(),top:d.top+e.top-c.scrollTop(),height:e.height})},b.prototype.getPosition=function(a){var b,c,e,f,g,h,i;return b=this.$inputor,f=function(a){return a=a.replace(/<|>|`|"|&/g,"?").replace(/\r\n|\r|\n/g,"<br/>"),/firefox/i.test(navigator.userAgent)&&(a=a.replace(/\s/g,"&nbsp;")),a},void 0===a&&(a=this.getPos()),i=b.val().slice(0,a),e=b.val().slice(a),g="<span style='position: relative; display: inline;'>"+f(i)+"</span>",g+="<span id='caret' style='position: relative; display: inline;'>|</span>",g+="<span style='position: relative; display: inline;'>"+f(e)+"</span>",h=new d(b),c=h.create(g).rect()},b.prototype.getIEPosition=function(a){var b,c,d,e,f;return d=this.getIEOffset(a),c=this.$inputor.offset(),e=d.left-c.left,f=d.top-c.top,b=d.height,{left:e,top:f,height:b}},b}(),d=function(){function b(a){this.$inputor=a}return b.prototype.css_attr=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderTopWidth","boxSizing","fontFamily","fontSize","fontWeight","height","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","outlineWidth","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","textAlign","textOverflow","textTransform","whiteSpace","wordBreak","wordWrap"],b.prototype.mirrorCss=function(){var b,c=this;return b={position:"absolute",left:-9999,top:0,zIndex:-2e4},"TEXTAREA"===this.$inputor.prop("tagName")&&this.css_attr.push("width"),a.each(this.css_attr,function(a,d){return b[d]=c.$inputor.css(d)}),b},b.prototype.create=function(b){return this.$mirror=a("<div></div>"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(b),this.$inputor.after(this.$mirror),this},b.prototype.rect=function(){var a,b,c;return a=this.$mirror.find("#caret"),b=a.position(),c={left:b.left,top:b.top,height:a.height()},this.$mirror.remove(),c},b}(),e={contentEditable:function(a){return!(!a[0].contentEditable||"true"!==a[0].contentEditable)}},g={pos:function(a){return a||0===a?this.setPos(a):this.getPos()},position:function(a){return h.selection?this.getIEPosition(a):this.getPosition(a)},offset:function(a){var b;return b=this.getOffset(a)}},h=null,j=null,i=null,l=function(a){var b;return(b=null!=a?a.iframe:void 0)?(i=b,j=b.contentWindow,h=b.contentDocument||j.document):(i=void 0,j=window,h=document)},f=function(a){var b;h=a[0].ownerDocument,j=h.defaultView||h.parentWindow;try{return i=j.frameElement}catch(c){b=c}},a.fn.caret=function(d,f,h){var i;return g[d]?(a.isPlainObject(f)?(l(f),f=void 0):l(h),i=e.contentEditable(this)?new b(this):new c(this),g[d].apply(i,[f])):a.error("Method "+d+" does not exist on jQuery.caret")},a.fn.caret.EditableCaret=b,a.fn.caret.InputCaret=c,a.fn.caret.Utils=e,a.fn.caret.apis=g});
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.caret.js b/pagure/static/atwho/jquery.caret.js
deleted file mode 120000
index e0b716b..0000000
--- a/pagure/static/atwho/jquery.caret.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.caret-0.3.1.js
\ No newline at end of file
diff --git a/pagure/static/atwho/jquery.caret.min.js b/pagure/static/atwho/jquery.caret.min.js
deleted file mode 120000
index 0cfd9eb..0000000
--- a/pagure/static/atwho/jquery.caret.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.caret-0.3.1.min.js
\ No newline at end of file
diff --git a/pagure/static/cal-heatmap/cal-heatmap.3.3.10.css b/pagure/static/cal-heatmap/cal-heatmap.3.3.10.css
deleted file mode 100644
index 83e43fb..0000000
--- a/pagure/static/cal-heatmap/cal-heatmap.3.3.10.css
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Cal-HeatMap CSS */
-
-.cal-heatmap-container {
-	display: block;
-}
-
-.graph
-{
-	font-family: "Lucida Grande", Lucida, Verdana, sans-serif;
-}
-
-.graph-label
-{
-	fill: #999;
-	font-size: 10px
-}
-
-.graph, .graph-legend rect {
-	shape-rendering: crispedges
-}
-
-.graph-rect
-{
-	fill: #ededed
-}
-
-.graph-subdomain-group rect:hover
-{
-	stroke: #000;
-	stroke-width: 1px
-}
-
-.subdomain-text {
-	font-size: 8px;
-	fill: #999;
-	pointer-events: none
-}
-
-.hover_cursor:hover {
-	cursor: pointer
-}
-
-.qi {
-	background-color: #999;
-	fill: #999
-}
-
-/*
-Remove comment to apply this style to date with value equal to 0
-.q0
-{
-	background-color: #fff;
-	fill: #fff;
-	stroke: #ededed
-}
-*/
-
-.q1
-{
-	background-color: #dae289;
-	fill: #dae289
-}
-
-.q2
-{
-	background-color: #cedb9c;
-	fill: #9cc069
-}
-
-.q3
-{
-	background-color: #b5cf6b;
-	fill: #669d45
-}
-
-.q4
-{
-	background-color: #637939;
-	fill: #637939
-}
-
-.q5
-{
-	background-color: #3b6427;
-	fill: #3b6427
-}
-
-rect.highlight
-{
-	stroke:#444;
-	stroke-width:1
-}
-
-text.highlight
-{
-	fill: #444
-}
-
-rect.now
-{
-	stroke: red
-}
-
-text.now
-{
-	fill: red;
-	font-weight: 800
-}
-
-.domain-background {
-	fill: none;
-	shape-rendering: crispedges
-}
-
-.ch-tooltip {
-	padding: 10px;
-	background: #222;
-	color: #bbb;
-	font-size: 12px;
-	line-height: 1.4;
-	width: 140px;
-	position: absolute;
-	z-index: 99999;
-	text-align: center;
-	border-radius: 2px;
-	box-shadow: 2px 2px 2px rgba(0,0,0,0.2);
-	display: none;
-	box-sizing: border-box;
-}
-
-.ch-tooltip::after{
-	position: absolute;
-	width: 0;
-	height: 0;
-	border-color: transparent;
-	border-style: solid;
-	content: "";
-	padding: 0;
-	display: "block";
-	bottom: -6px;
-	left: 50%;
-	margin-left: -6px;
-    border-width: 6px 6px 0;
-    border-top-color: #222;
-}
diff --git a/pagure/static/cal-heatmap/cal-heatmap.3.3.10.js b/pagure/static/cal-heatmap/cal-heatmap.3.3.10.js
deleted file mode 100644
index 9cd7626..0000000
--- a/pagure/static/cal-heatmap/cal-heatmap.3.3.10.js
+++ /dev/null
@@ -1,3348 +0,0 @@
-/*! cal-heatmap v3.3.10 (Tue Dec 03 2013 19:30:01)
- *  ---------------------------------------------
- *  Cal-Heatmap is a javascript module to create calendar heatmap to visualize time series data
- *  https://github.com/kamisama/cal-heatmap
- *  Licensed under the MIT license
- *  Copyright 2013 Wan Qi Chen
- */
-
-var CalHeatMap = function() {
-	"use strict";
-
-	var self = this;
-
-	this.allowedDataType = ["json", "csv", "tsv", "txt"];
-
-	// Default settings
-	this.options = {
-		// selector string of the container to append the graph to
-		// Accept any string value accepted by document.querySelector or CSS3
-		// or an Element object
-		itemSelector: "#cal-heatmap",
-
-		// Whether to paint the calendar on init()
-		// Used by testsuite to reduce testing time
-		paintOnLoad: true,
-
-		// ================================================
-		// DOMAIN
-		// ================================================
-
-		// Number of domain to display on the graph
-		range: 12,
-
-		// Size of each cell, in pixel
-		cellSize: 10,
-
-		// Padding between each cell, in pixel
-		cellPadding: 2,
-
-		// For rounded subdomain rectangles, in pixels
-		cellRadius: 0,
-
-		domainGutter: 2,
-
-		domainMargin: [0, 0, 0, 0],
-
-		domain: "hour",
-
-		subDomain: "min",
-
-		// Number of columns to split the subDomains to
-		// If not null, will takes precedence over rowLimit
-		colLimit: null,
-
-		// Number of rows to split the subDomains to
-		// Will be ignored if colLimit is not null
-		rowLimit: null,
-
-		// First day of the week is Monday
-		// 0 to start the week on Sunday
-		weekStartOnMonday: true,
-
-		// Start date of the graph
-		// @default now
-		start: new Date(),
-
-		minDate: null,
-
-		maxDate: null,
-
-		// URL, where to fetch the original datas
-		data: "",
-
-		dataType: this.allowedDataType[0],
-
-		// Whether to consider missing date:value from the datasource
-		// as equal to 0, or just leave them as missing
-		considerMissingDataAsZero: false,
-
-		// Load remote data on calendar creation
-		// When false, the calendar will be left empty
-		loadOnInit: true,
-
-		// Calendar orientation
-		// false: display domains side by side
-		// true : display domains one under the other
-		verticalOrientation: false,
-
-		// Domain dynamic width/height
-		// The width on a domain depends on the number of
-		domainDynamicDimension: true,
-
-		// Domain Label properties
-		label: {
-			// valid: top, right, bottom, left
-			position: "bottom",
-
-			// Valid: left, center, right
-			// Also valid are the direct svg values: start, middle, end
-			align: "center",
-
-			// By default, there is no margin/padding around the label
-			offset: {
-				x: 0,
-				y: 0
-			},
-
-			rotate: null,
-
-			// Used only on vertical orientation
-			width: 100,
-
-			// Used only on horizontal orientation
-			height: null
-		},
-
-		// ================================================
-		// LEGEND
-		// ================================================
-
-		// Threshold for the legend
-		legend: [10, 20, 30, 40],
-
-		// Whether to display the legend
-		displayLegend: true,
-
-		legendCellSize: 10,
-
-		legendCellPadding: 2,
-
-		legendMargin: [0, 0, 0, 0],
-
-		// Legend vertical position
-		// top: place legend above calendar
-		// bottom: place legend below the calendar
-		legendVerticalPosition: "bottom",
-
-		// Legend horizontal position
-		// accepted values: left, center, right
-		legendHorizontalPosition: "left",
-
-		// Legend rotation
-		// accepted values: horizontal, vertical
-		legendOrientation: "horizontal",
-
-		// Objects holding all the heatmap different colors
-		// null to disable, and use the default css styles
-		//
-		// Examples:
-		// legendColors: {
-		//		min: "green",
-		//		max: "red",
-		//		empty: "#ffffff",
-		//		base: "grey",
-		//		overflow: "red"
-		// }
-		legendColors: null,
-
-		// ================================================
-		// HIGHLIGHT
-		// ================================================
-
-		// List of dates to highlight
-		// Valid values:
-		// - []: don't highlight anything
-		// - "now": highlight the current date
-		// - an array of Date objects: highlight the specified dates
-		highlight: [],
-
-		// ================================================
-		// TEXT FORMATTING / i18n
-		// ================================================
-
-		// Name of the items to represent in the calendar
-		itemName: ["item", "items"],
-
-		// Formatting of the domain label
-		// @default: null, will use the formatting according to domain type
-		// Accept a string used as specifier by d3.time.format()
-		// or a function
-		//
-		// Refer to https://github.com/mbostock/d3/wiki/Time-Formatting
-		// for accepted date formatting used by d3.time.format()
-		domainLabelFormat: null,
-
-		// Formatting of the title displayed when hovering a subDomain cell
-		subDomainTitleFormat: {
-			empty: "{date}",
-			filled: "{count} {name} {connector} {date}"
-		},
-
-		// Formatting of the {date} used in subDomainTitleFormat
-		// @default: null, will use the formatting according to subDomain type
-		// Accept a string used as specifier by d3.time.format()
-		// or a function
-		//
-		// Refer to https://github.com/mbostock/d3/wiki/Time-Formatting
-		// for accepted date formatting used by d3.time.format()
-		subDomainDateFormat: null,
-
-		// Formatting of the text inside each subDomain cell
-		// @default: null, no text
-		// Accept a string used as specifier by d3.time.format()
-		// or a function
-		//
-		// Refer to https://github.com/mbostock/d3/wiki/Time-Formatting
-		// for accepted date formatting used by d3.time.format()
-		subDomainTextFormat: null,
-
-		// Formatting of the title displayed when hovering a legend cell
-		legendTitleFormat: {
-			lower: "less than {min} {name}",
-			inner: "between {down} and {up} {name}",
-			upper: "more than {max} {name}"
-		},
-
-		// Animation duration, in ms
-		animationDuration: 500,
-
-		nextSelector: false,
-
-		previousSelector: false,
-
-		itemNamespace: "cal-heatmap",
-
-		tooltip: false,
-
-		// ================================================
-		// EVENTS CALLBACK
-		// ================================================
-
-		// Callback when clicking on a time block
-		onClick: null,
-
-		// Callback after painting the empty calendar
-		// Can be used to trigger an API call, once the calendar is ready to be filled
-		afterLoad: null,
-
-		// Callback after loading the next domain in the calendar
-		afterLoadNextDomain: null,
-
-		// Callback after loading the previous domain in the calendar
-		afterLoadPreviousDomain: null,
-
-		// Callback after finishing all actions on the calendar
-		onComplete: null,
-
-		// Callback after fetching the datas, but before applying them to the calendar
-		// Used mainly to convert the datas if they're not formatted like expected
-		// Takes the fetched "data" object as argument, must return a json object
-		// formatted like {timestamp:count, timestamp2:count2},
-		afterLoadData: function(data) { return data; },
-
-		// Callback triggered after calling next().
-		// The `status` argument is equal to true if there is no
-		// more next domain to load
-		//
-		// This callback is also executed once, after calling previous(),
-		// only when the max domain is reached
-		onMaxDomainReached: null,
-
-		// Callback triggered after calling previous().
-		// The `status` argument is equal to true if there is no
-		// more previous domain to load
-		//
-		// This callback is also executed once, after calling next(),
-		// only when the min domain is reached
-		onMinDomainReached: null
-	};
-
-	this._domainType = {
-		"min": {
-			name: "minute",
-			level: 10,
-			maxItemNumber: 60,
-			defaultRowNumber: 10,
-			defaultColumnNumber: 6,
-			row: function(d) { return self.getSubDomainRowNumber(d); },
-			column: function(d) { return self.getSubDomainColumnNumber(d); },
-			position: {
-				x: function(d) { return Math.floor(d.getMinutes() / self._domainType.min.row(d)); },
-				y: function(d) { return d.getMinutes() % self._domainType.min.row(d); }
-			},
-			format: {
-				date: "%H:%M, %A %B %-e, %Y",
-				legend: "",
-				connector: "at"
-			},
-			extractUnit: function(d) {
-				return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()).getTime();
-			}
-		},
-		"hour": {
-			name: "hour",
-			level: 20,
-			maxItemNumber: function(d) {
-				switch(self.options.domain) {
-				case "day":
-					return 24;
-				case "week":
-					return 24 * 7;
-				case "month":
-					return 24 * (self.options.domainDynamicDimension ? self.getDayCountInMonth(d): 31);
-				}
-			},
-			defaultRowNumber: 6,
-			defaultColumnNumber: function(d) {
-				switch(self.options.domain) {
-				case "day":
-					return 4;
-				case "week":
-					return 28;
-				case "month":
-					return self.options.domainDynamicDimension ? self.getDayCountInMonth(d): 31;
-				}
-			},
-			row: function(d) { return self.getSubDomainRowNumber(d); },
-			column: function(d) { return self.getSubDomainColumnNumber(d); },
-			position: {
-				x: function(d) {
-					if (self.options.domain === "month") {
-						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
-							return Math.floor((d.getHours() + (d.getDate()-1)*24) / self._domainType.hour.row(d));
-						}
-						return Math.floor(d.getHours() / self._domainType.hour.row(d)) + (d.getDate()-1)*4;
-					} else if (self.options.domain === "week") {
-						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
-							return Math.floor((d.getHours() + self.getWeekDay(d)*24) / self._domainType.hour.row(d));
-						}
-						return Math.floor(d.getHours() / self._domainType.hour.row(d)) + self.getWeekDay(d)*4;
-					}
-					return Math.floor(d.getHours() / self._domainType.hour.row(d));
-				},
-				y: function(d) {
-					var p = d.getHours();
-					if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
-						switch(self.options.domain) {
-						case "month":
-							p += (d.getDate()-1) * 24;
-							break;
-						case "week":
-							p += self.getWeekDay(d) * 24;
-							break;
-						}
-					}
-					return Math.floor(p % self._domainType.hour.row(d));
-				}
-			},
-			format: {
-				date: "%Hh, %A %B %-e, %Y",
-				legend: "%H:00",
-				connector: "at"
-			},
-			extractUnit: function(d) {
-				return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours()).getTime();
-			}
-		},
-		"day": {
-			name: "day",
-			level: 30,
-			maxItemNumber: function(d) {
-				switch(self.options.domain) {
-				case "week":
-					return 7;
-				case "month":
-					return self.options.domainDynamicDimension ? self.getDayCountInMonth(d) : 31;
-				case "year":
-					return self.options.domainDynamicDimension ? self.getDayCountInYear(d) : 366;
-				}
-			},
-			defaultColumnNumber: function(d) {
-				d = new Date(d);
-				switch(self.options.domain) {
-				case "week":
-					return 1;
-				case "month":
-					return (self.options.domainDynamicDimension && !self.options.verticalOrientation) ? (self.getWeekNumber(new Date(d.getFullYear(), d.getMonth()+1, 0)) - self.getWeekNumber(d) + 1): 6;
-				case "year":
-					return (self.options.domainDynamicDimension ? (self.getWeekNumber(new Date(d.getFullYear(), 11, 31)) - self.getWeekNumber(new Date(d.getFullYear(), 0)) + 1): 54);
-				}
-			},
-			defaultRowNumber: 7,
-			row: function(d) { return self.getSubDomainRowNumber(d); },
-			column: function(d) { return self.getSubDomainColumnNumber(d); },
-			position: {
-				x: function(d) {
-					switch(self.options.domain) {
-					case "week":
-						return Math.floor(self.getWeekDay(d) / self._domainType.day.row(d));
-					case "month":
-						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
-							return Math.floor((d.getDate() - 1)/ self._domainType.day.row(d));
-						}
-						return self.getWeekNumber(d) - self.getWeekNumber(new Date(d.getFullYear(), d.getMonth()));
-					case "year":
-						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
-							return Math.floor((self.getDayOfYear(d) - 1) / self._domainType.day.row(d));
-						}
-						return self.getWeekNumber(d);
-					}
-				},
-				y: function(d) {
-					var p = self.getWeekDay(d);
-					if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
-						switch(self.options.domain) {
-						case "year":
-							p = self.getDayOfYear(d) - 1;
-							break;
-						case "week":
-							p = self.getWeekDay(d);
-							break;
-						case "month":
-							p = d.getDate() - 1;
-							break;
-						}
-					}
-					return Math.floor(p % self._domainType.day.row(d));
-				}
-			},
-			format: {
-				date: "%A %B %-e, %Y",
-				legend: "%e %b",
-				connector: "on"
-			},
-			extractUnit: function(d) {
-				return new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();
-			}
-		},
-		"week": {
-			name: "week",
-			level: 40,
-			maxItemNumber: 54,
-			defaultColumnNumber: function(d) {
-				d = new Date(d);
-				switch(self.options.domain) {
-				case "year":
-					return self._domainType.week.maxItemNumber;
-				case "month":
-					return self.getWeekNumber(new Date(d.getFullYear(), d.getMonth()+1, 0)) - self.getWeekNumber(d);
-				}
-			},
-			defaultRowNumber: 1,
-			row: function(d) { return self.getSubDomainRowNumber(d); },
-			column: function(d) { return self.getSubDomainColumnNumber(d); },
-			position: {
-				x: function(d) {
-					switch(self.options.domain) {
-					case "year":
-						return Math.floor(self.getWeekNumber(d) / self._domainType.week.row(d));
-					case "month":
-						return Math.floor(self.getMonthWeekNumber(d) / self._domainType.week.row(d));
-					}
-				},
-				y: function(d) {
-					return self.getWeekNumber(d) % self._domainType.week.row(d);
-				}
-			},
-			format: {
-				date: "%B Week #%W",
-				legend: "%B Week #%W",
-				connector: "on"
-			},
-			extractUnit: function(d) {
-				var dt = new Date(d.getFullYear(), d.getMonth(), d.getDate());
-				// According to ISO-8601, week number computation are based on week starting on Monday
-				var weekDay = dt.getDay()-1;
-				if (weekDay < 0) {
-					weekDay = 6;
-				}
-				dt.setDate(dt.getDate() - weekDay);
-				return dt.getTime();
-			}
-		},
-		"month": {
-			name: "month",
-			level: 50,
-			maxItemNumber: 12,
-			defaultColumnNumber: 12,
-			defaultRowNumber: 1,
-			row: function() { return self.getSubDomainRowNumber(); },
-			column: function() { return self.getSubDomainColumnNumber(); },
-			position: {
-				x: function(d) { return Math.floor(d.getMonth() / self._domainType.month.row(d)); },
-				y: function(d) { return d.getMonth() % self._domainType.month.row(d); }
-			},
-			format: {
-				date: "%B %Y",
-				legend: "%B",
-				connector: "on"
-			},
-			extractUnit: function(d) {
-				return new Date(d.getFullYear(), d.getMonth()).getTime();
-			}
-		},
-		"year": {
-			name: "year",
-			level: 60,
-			row: function() { return self.options.rowLimit || 1; },
-			column: function() { return self.options.colLimit || 1; },
-			position: {
-				x: function() { return 1; },
-				y: function() { return 1; }
-			},
-			format: {
-				date: "%Y",
-				legend: "%Y",
-				connector: "on"
-			},
-			extractUnit: function(d) {
-				return new Date(d.getFullYear()).getTime();
-			}
-		}
-	};
-
-	for (var type in this._domainType) {
-		if (this._domainType.hasOwnProperty(type)) {
-			var d = this._domainType[type];
-			this._domainType["x_" + type] = {
-				name: "x_" + type,
-				level: d.type,
-				maxItemNumber: d.maxItemNumber,
-				defaultRowNumber: d.defaultRowNumber,
-				defaultColumnNumber: d.defaultColumnNumber,
-				row: d.column,
-				column: d.row,
-				position: {
-					x: d.position.y,
-					y: d.position.x,
-				},
-				format: d.format,
-				extractUnit: d.extractUnit
-			};
-		}
-	}
-
-	// Record the address of the last inserted domain when browsing
-	this.lastInsertedSvg = null;
-
-	this._completed = false;
-
-	// Record all the valid domains
-	// Each domain value is a timestamp in milliseconds
-	this._domains = d3.map();
-
-	this.graphDim = {
-		width: 0,
-		height: 0
-	};
-
-	this.legendDim = {
-		width: 0,
-		height: 0
-	};
-
-	this.NAVIGATE_LEFT = 1;
-	this.NAVIGATE_RIGHT = 2;
-
-	// Various update mode when using the update() API
-	this.RESET_ALL_ON_UPDATE = 0;
-	this.RESET_SINGLE_ON_UPDATE = 1;
-	this.APPEND_ON_UPDATE = 2;
-
-	this.DEFAULT_LEGEND_MARGIN = 10;
-
-	this.root = null;
-	this.tooltip = null;
-
-	this._maxDomainReached = false;
-	this._minDomainReached = false;
-
-	this.domainPosition = new DomainPosition();
-	this.Legend = null;
-	this.legendScale = null;
-
-	// List of domains that are skipped because of DST
-	// All times belonging to these domains should be re-assigned to the previous domain
-	this.DSTDomain = [];
-
-	/**
-	 * Display the graph for the first time
-	 * @return bool True if the calendar is created
-	 */
-	this._init = function() {
-
-		self.getDomain(self.options.start).map(function(d) { return d.getTime(); }).map(function(d) {
-			self._domains.set(d, self.getSubDomain(d).map(function(d) { return {t: self._domainType[self.options.subDomain].extractUnit(d), v: null}; }));
-		});
-
-		self.root = d3.select(self.options.itemSelector).append("svg").attr("class", "cal-heatmap-container");
-
-		self.tooltip = d3.select(self.options.itemSelector)
-			.attr("style", function() {
-				var current = d3.select(self.options.itemSelector).attr("style");
-				return (current !== null ? current : "") + "position:relative;";
-			})
-			.append("div")
-			.attr("class", "ch-tooltip")
-		;
-
-		self.root.attr("x", 0).attr("y", 0).append("svg").attr("class", "graph");
-
-		self.Legend = new Legend(self);
-
-		if (self.options.paintOnLoad) {
-			_initCalendar();
-		}
-
-		return true;
-	};
-
-	function _initCalendar() {
-		self.verticalDomainLabel = (self.options.label.position === "top" || self.options.label.position === "bottom");
-
-		self.domainVerticalLabelHeight = self.options.label.height === null ? Math.max(25, self.options.cellSize*2): self.options.label.height;
-		self.domainHorizontalLabelWidth = 0;
-
-		if (self.options.domainLabelFormat === "" && self.options.label.height === null) {
-			self.domainVerticalLabelHeight = 0;
-		}
-
-		if (!self.verticalDomainLabel) {
-			self.domainVerticalLabelHeight = 0;
-			self.domainHorizontalLabelWidth = self.options.label.width;
-		}
-
-		self.paint();
-
-		// =========================================================================//
-		// ATTACHING DOMAIN NAVIGATION EVENT										//
-		// =========================================================================//
-		if (self.options.nextSelector !== false) {
-			d3.select(self.options.nextSelector).on("click." + self.options.itemNamespace, function() {
-				d3.event.preventDefault();
-				return self.loadNextDomain(1);
-			});
-		}
-
-		if (self.options.previousSelector !== false) {
-			d3.select(self.options.previousSelector).on("click." + self.options.itemNamespace, function() {
-				d3.event.preventDefault();
-				return self.loadPreviousDomain(1);
-			});
-		}
-
-		self.Legend.redraw(self.graphDim.width - self.options.domainGutter - self.options.cellPadding);
-		self.afterLoad();
-
-		var domains = self.getDomainKeys();
-
-		// Fill the graph with some datas
-		if (self.options.loadOnInit) {
-			self.getDatas(
-				self.options.data,
-				new Date(domains[0]),
-				self.getSubDomain(domains[domains.length-1]).pop(),
-				function() {
-					self.fill();
-					self.onComplete();
-				}
-			);
-		} else {
-			self.onComplete();
-		}
-
-		self.checkIfMinDomainIsReached(domains[0]);
-		self.checkIfMaxDomainIsReached(self.getNextDomain().getTime());
-	}
-
-	// Return the width of the domain block, without the domain gutter
-	// @param int d Domain start timestamp
-	function w(d, outer) {
-		var width = self.options.cellSize*self._domainType[self.options.subDomain].column(d) + self.options.cellPadding*self._domainType[self.options.subDomain].column(d);
-		if (arguments.length === 2 && outer === true) {
-			return width += self.domainHorizontalLabelWidth + self.options.domainGutter + self.options.domainMargin[1] + self.options.domainMargin[3];
-		}
-		return width;
-	}
-
-	// Return the height of the domain block, without the domain gutter
-	function h(d, outer) {
-		var height = self.options.cellSize*self._domainType[self.options.subDomain].row(d) + self.options.cellPadding*self._domainType[self.options.subDomain].row(d);
-		if (arguments.length === 2 && outer === true) {
-			height += self.options.domainGutter + self.domainVerticalLabelHeight + self.options.domainMargin[0] + self.options.domainMargin[2];
-		}
-		return height;
-	}
-
-	/**
-	 *
-	 *
-	 * @param int navigationDir
-	 */
-	this.paint = function(navigationDir) {
-
-		var options = self.options;
-
-		if (arguments.length === 0) {
-			navigationDir = false;
-		}
-
-		// Painting all the domains
-		var domainSvg = self.root.select(".graph")
-			.selectAll(".graph-domain")
-			.data(
-				function() {
-					var data = self.getDomainKeys();
-					return navigationDir === self.NAVIGATE_LEFT ? data.reverse(): data;
-				},
-				function(d) { return d; }
-			)
-		;
-
-		var enteringDomainDim = 0;
-		var exitingDomainDim = 0;
-
-		// =========================================================================//
-		// PAINTING DOMAIN															//
-		// =========================================================================//
-
-		var svg = domainSvg
-			.enter()
-			.append("svg")
-			.attr("width", function(d) {
-				return w(d, true);
-			})
-			.attr("height", function(d) {
-				return h(d, true);
-			})
-			.attr("x", function(d) {
-				if (options.verticalOrientation) {
-					self.graphDim.width = Math.max(self.graphDim.width, w(d, true));
-					return 0;
-				} else {
-					return getDomainPosition(d, self.graphDim, "width", w(d, true));
-				}
-			})
-			.attr("y", function(d) {
-				if (options.verticalOrientation) {
-					return getDomainPosition(d, self.graphDim, "height", h(d, true));
-				} else {
-					self.graphDim.height = Math.max(self.graphDim.height, h(d, true));
-					return 0;
-				}
-			})
-			.attr("class", function(d) {
-				var classname = "graph-domain";
-				var date = new Date(d);
-				switch(options.domain) {
-				case "hour":
-					classname += " h_" + date.getHours();
-					/* falls through */
-				case "day":
-					classname += " d_" + date.getDate() + " dy_" + date.getDay();
-					/* falls through */
-				case "week":
-					classname += " w_" + self.getWeekNumber(date);
-					/* falls through */
-				case "month":
-					classname += " m_" + (date.getMonth() + 1);
-					/* falls through */
-				case "year":
-					classname += " y_" + date.getFullYear();
-				}
-				return classname;
-			})
-		;
-
-		self.lastInsertedSvg = svg;
-
-		function getDomainPosition(domainIndex, graphDim, axis, domainDim) {
-			var tmp = 0;
-			switch(navigationDir) {
-			case false:
-				tmp = graphDim[axis];
-
-				graphDim[axis] += domainDim;
-				self.domainPosition.setPosition(domainIndex, tmp);
-				return tmp;
-
-			case self.NAVIGATE_RIGHT:
-				self.domainPosition.setPosition(domainIndex, graphDim[axis]);
-
-				enteringDomainDim = domainDim;
-				exitingDomainDim = self.domainPosition.getPositionFromIndex(1);
-
-				self.domainPosition.shiftRightBy(exitingDomainDim);
-				return graphDim[axis];
-
-			case self.NAVIGATE_LEFT:
-				tmp = -domainDim;
-
-				enteringDomainDim = -tmp;
-				exitingDomainDim = graphDim[axis] - self.domainPosition.getLast();
-
-				self.domainPosition.setPosition(domainIndex, tmp);
-				self.domainPosition.shiftLeftBy(enteringDomainDim);
-				return tmp;
-			}
-		}
-
-		svg.append("rect")
-			.attr("width", function(d) { return w(d, true) - options.domainGutter - options.cellPadding; })
-			.attr("height", function(d) { return h(d, true) - options.domainGutter - options.cellPadding; })
-			.attr("class", "domain-background")
-		;
-
-		// =========================================================================//
-		// PAINTING SUBDOMAINS														//
-		// =========================================================================//
-		var subDomainSvgGroup = svg.append("svg")
-			.attr("x", function() {
-				if (options.label.position === "left") {
-					return self.domainHorizontalLabelWidth + options.domainMargin[3];
-				} else {
-					return options.domainMargin[3];
-				}
-			})
-			.attr("y", function() {
-				if (options.label.position === "top") {
-					return self.domainVerticalLabelHeight + options.domainMargin[0];
-				} else {
-					return options.domainMargin[0];
-				}
-			})
-			.attr("class", "graph-subdomain-group")
-		;
-
-		var rect = subDomainSvgGroup
-			.selectAll("g")
-			.data(function(d) { return self._domains.get(d); })
-			.enter()
-			.append("g")
-		;
-
-		rect
-			.append("rect")
-			.attr("class", function(d) {
-				return "graph-rect" + self.getHighlightClassName(d.t) + (options.onClick !== null ? " hover_cursor": "");
-			})
-			.attr("width", options.cellSize)
-			.attr("height", options.cellSize)
-			.attr("x", function(d) { return self.positionSubDomainX(d.t); })
-			.attr("y", function(d) { return self.positionSubDomainY(d.t); })
-			.on("click", function(d) {
-				if (options.onClick !== null) {
-					return self.onClick(new Date(d.t), d.v);
-				}
-			})
-			.call(function(selection) {
-				if (options.cellRadius > 0) {
-					selection
-						.attr("rx", options.cellRadius)
-						.attr("ry", options.cellRadius)
-					;
-				}
-
-				if (self.legendScale !== null && options.legendColors !== null && options.legendColors.hasOwnProperty("base")) {
-					selection.attr("fill", options.legendColors.base);
-				}
-
-				if (options.tooltip) {
-					selection.on("mouseover", function(d) {
-						var domainNode = this.parentNode.parentNode.parentNode;
-
-						self.tooltip
-						.html(self.getSubDomainTitle(d))
-						.attr("style", "display: block;")
-						;
-
-						self.tooltip.attr("style",
-							"display: block; " +
-							"left: " + (self.positionSubDomainX(d.t) - self.tooltip[0][0].offsetWidth/2 + options.cellSize/2 + parseInt(domainNode.getAttribute("x"), 10)) + "px; " +
-							"top: " + (self.positionSubDomainY(d.t) - self.tooltip[0][0].offsetHeight - options.cellSize/2 + parseInt(domainNode.getAttribute("y"), 10)) + "px;")
-						;
-					});
-
-					selection.on("mouseout", function() {
-						self.tooltip
-						.attr("style", "display:none")
-						.html("");
-					});
-				}
-			})
-		;
-
-		// Appending a title to each subdomain
-		if (!options.tooltip) {
-			rect.append("title").text(function(d){ return self.formatDate(new Date(d.t), options.subDomainDateFormat); });
-		}
-
-		// =========================================================================//
-		// PAINTING LABEL															//
-		// =========================================================================//
-		if (options.domainLabelFormat !== "") {
-			svg.append("text")
-				.attr("class", "graph-label")
-				.attr("y", function(d) {
-					var y = options.domainMargin[0];
-					switch(options.label.position) {
-					case "top":
-						y += self.domainVerticalLabelHeight/2;
-						break;
-					case "bottom":
-						y += h(d) + self.domainVerticalLabelHeight/2;
-					}
-
-					return y + options.label.offset.y *
-					(
-						((options.label.rotate === "right" && options.label.position === "right") ||
-						(options.label.rotate === "left" && options.label.position === "left")) ?
-						-1: 1
-					);
-				})
-				.attr("x", function(d){
-					var x = options.domainMargin[3];
-					switch(options.label.position) {
-					case "right":
-						x += w(d);
-						break;
-					case "bottom":
-					case "top":
-						x += w(d)/2;
-					}
-
-					if (options.label.align === "right") {
-						return x + self.domainHorizontalLabelWidth - options.label.offset.x *
-						(options.label.rotate === "right" ? -1: 1);
-					}
-					return x + options.label.offset.x;
-
-				})
-				.attr("text-anchor", function() {
-					switch(options.label.align) {
-					case "start":
-					case "left":
-						return "start";
-					case "end":
-					case "right":
-						return "end";
-					default:
-						return "middle";
-					}
-				})
-				.attr("dominant-baseline", function() { return self.verticalDomainLabel ? "middle": "top"; })
-				.text(function(d) { return self.formatDate(new Date(d), options.domainLabelFormat); })
-				.call(domainRotate)
-			;
-		}
-
-		function domainRotate(selection) {
-			switch (options.label.rotate) {
-			case "right":
-				selection
-				.attr("transform", function(d) {
-					var s = "rotate(90), ";
-					switch(options.label.position) {
-					case "right":
-						s += "translate(-" + w(d) + " , -" + w(d) + ")";
-						break;
-					case "left":
-						s += "translate(0, -" + self.domainHorizontalLabelWidth + ")";
-						break;
-					}
-
-					return s;
-				});
-				break;
-			case "left":
-				selection
-				.attr("transform", function(d) {
-					var s = "rotate(270), ";
-					switch(options.label.position) {
-					case "right":
-						s += "translate(-" + (w(d) + self.domainHorizontalLabelWidth) + " , " + w(d) + ")";
-						break;
-					case "left":
-						s += "translate(-" + (self.domainHorizontalLabelWidth) + " , " + self.domainHorizontalLabelWidth + ")";
-						break;
-					}
-
-					return s;
-				});
-				break;
-			}
-		}
-
-		// =========================================================================//
-		// PAINTING DOMAIN SUBDOMAIN CONTENT										//
-		// =========================================================================//
-		if (options.subDomainTextFormat !== null) {
-			rect
-				.append("text")
-				.attr("class", function(d) { return "subdomain-text" + self.getHighlightClassName(d.t); })
-				.attr("x", function(d) { return self.positionSubDomainX(d.t) + options.cellSize/2; })
-				.attr("y", function(d) { return self.positionSubDomainY(d.t) + options.cellSize/2; })
-				.attr("text-anchor", "middle")
-				.attr("dominant-baseline", "central")
-				.text(function(d){ return self.formatDate(new Date(d.t), options.subDomainTextFormat); })
-			;
-		}
-
-		// =========================================================================//
-		// ANIMATION																//
-		// =========================================================================//
-
-		if (navigationDir !== false) {
-			domainSvg.transition().duration(options.animationDuration)
-				.attr("x", function(d){
-					return options.verticalOrientation ? 0: self.domainPosition.getPosition(d);
-				})
-				.attr("y", function(d){
-					return options.verticalOrientation? self.domainPosition.getPosition(d): 0;
-				})
-			;
-		}
-
-		var tempWidth = self.graphDim.width;
-		var tempHeight = self.graphDim.height;
-
-		if (options.verticalOrientation) {
-			self.graphDim.height += enteringDomainDim - exitingDomainDim;
-		} else {
-			self.graphDim.width += enteringDomainDim - exitingDomainDim;
-		}
-
-		// At the time of exit, domainsWidth and domainsHeight already automatically shifted
-		domainSvg.exit().transition().duration(options.animationDuration)
-			.attr("x", function(d){
-				if (options.verticalOrientation) {
-					return 0;
-				} else {
-					switch(navigationDir) {
-					case self.NAVIGATE_LEFT:
-						return Math.min(self.graphDim.width, tempWidth);
-					case self.NAVIGATE_RIGHT:
-						return -w(d, true);
-					}
-				}
-			})
-			.attr("y", function(d){
-				if (options.verticalOrientation) {
-					switch(navigationDir) {
-					case self.NAVIGATE_LEFT:
-						return Math.min(self.graphDim.height, tempHeight);
-					case self.NAVIGATE_RIGHT:
-						return -h(d, true);
-					}
-				} else {
-					return 0;
-				}
-			})
-			.remove()
-		;
-
-		// Resize the root container
-		self.resize();
-	};
-};
-
-CalHeatMap.prototype = {
-
-	/**
-	 * Validate and merge user settings with default settings
-	 *
-	 * @param  {object} settings User settings
-	 * @return {bool} False if settings contains error
-	 */
-	/* jshint maxstatements:false */
-	init: function(settings) {
-		"use strict";
-
-		var parent = this;
-
-		var options = parent.options = mergeRecursive(parent.options, settings);
-
-		// Fatal errors
-		// Stop script execution on error
-		validateDomainType();
-		validateSelector(options.itemSelector, false, "itemSelector");
-
-		if (parent.allowedDataType.indexOf(options.dataType) === -1) {
-			throw new Error("The data type '" + options.dataType + "' is not valid data type");
-		}
-
-		if (d3.select(options.itemSelector)[0][0] === null) {
-			throw new Error("The node '" + options.itemSelector + "' specified in itemSelector does not exists");
-		}
-
-		try {
-			validateSelector(options.nextSelector, true, "nextSelector");
-			validateSelector(options.previousSelector, true, "previousSelector");
-		} catch(error) {
-			console.log(error.message);
-			return false;
-		}
-
-		// If other settings contains error, will fallback to default
-
-		if (!settings.hasOwnProperty("subDomain")) {
-			this.options.subDomain = getOptimalSubDomain(settings.domain);
-		}
-
-		if (typeof options.itemNamespace !== "string" || options.itemNamespace === "") {
-			console.log("itemNamespace can not be empty, falling back to cal-heatmap");
-			options.itemNamespace = "cal-heatmap";
-		}
-
-		// Don't touch these settings
-		var s = ["data", "onComplete", "onClick", "afterLoad", "afterLoadData", "afterLoadPreviousDomain", "afterLoadNextDomain"];
-
-		for (var k in s) {
-			if (settings.hasOwnProperty(s[k])) {
-				options[s[k]] = settings[s[k]];
-			}
-		}
-
-		options.subDomainDateFormat = (typeof options.subDomainDateFormat === "string" || typeof options.subDomainDateFormat === "function" ? options.subDomainDateFormat : this._domainType[options.subDomain].format.date);
-		options.domainLabelFormat = (typeof options.domainLabelFormat === "string" || typeof options.domainLabelFormat === "function" ? options.domainLabelFormat : this._domainType[options.domain].format.legend);
-		options.subDomainTextFormat = ((typeof options.subDomainTextFormat === "string" && options.subDomainTextFormat !== "") || typeof options.subDomainTextFormat === "function" ? options.subDomainTextFormat : null);
-		options.domainMargin = expandMarginSetting(options.domainMargin);
-		options.legendMargin = expandMarginSetting(options.legendMargin);
-		options.highlight = parent.expandDateSetting(options.highlight);
-		options.itemName = expandItemName(options.itemName);
-		options.colLimit = parseColLimit(options.colLimit);
-		options.rowLimit = parseRowLimit(options.rowLimit);
-		if (!settings.hasOwnProperty("legendMargin")) {
-			autoAddLegendMargin();
-		}
-		autoAlignLabel();
-
-		/**
-		 * Validate that a queryString is valid
-		 *
-		 * @param  {Element|string|bool} selector   The queryString to test
-		 * @param  {bool}	canBeFalse	Whether false is an accepted and valid value
-		 * @param  {string} name		Name of the tested selector
-		 * @throws {Error}				If the selector is not valid
-		 * @return {bool}				True if the selector is a valid queryString
-		 */
-		function validateSelector(selector, canBeFalse, name) {
-			if (((canBeFalse && selector === false) || selector instanceof Element || typeof selector === "string") && selector !== "") {
-				return true;
-			}
-			throw new Error("The " + name + " is not valid");
-		}
-
-		/**
-		 * Return the optimal subDomain for the specified domain
-		 *
-		 * @param  {string} domain a domain name
-		 * @return {string}        the subDomain name
-		 */
-		function getOptimalSubDomain(domain) {
-			switch(domain) {
-			case "year":
-				return "month";
-			case "month":
-				return "day";
-			case "week":
-				return "day";
-			case "day":
-				return "hour";
-			default:
-				return "min";
-			}
-		}
-
-		/**
-		 * Ensure that the domain and subdomain are valid
-		 *
-		 * @throw {Error} when domain or subdomain are not valid
-		 * @return {bool} True if domain and subdomain are valid and compatible
-		 */
-		function validateDomainType() {
-			if (!parent._domainType.hasOwnProperty(options.domain) || options.domain === "min" || options.domain.substring(0, 2) === "x_") {
-				throw new Error("The domain '" + options.domain + "' is not valid");
-			}
-
-			if (!parent._domainType.hasOwnProperty(options.subDomain) || options.subDomain === "year") {
-				throw new Error("The subDomain '" + options.subDomain + "' is not valid");
-			}
-
-			if (parent._domainType[options.domain].level <= parent._domainType[options.subDomain].level) {
-				throw new Error("'" + options.subDomain + "' is not a valid subDomain to '" + options.domain +  "'");
-			}
-
-			return true;
-		}
-
-		/**
-		 * Fine-tune the label alignement depending on its position
-		 *
-		 * @return void
-		 */
-		function autoAlignLabel() {
-			// Auto-align label, depending on it's position
-			if (!settings.hasOwnProperty("label") || (settings.hasOwnProperty("label") && !settings.label.hasOwnProperty("align"))) {
-				switch(options.label.position) {
-				case "left":
-					options.label.align = "right";
-					break;
-				case "right":
-					options.label.align = "left";
-					break;
-				default:
-					options.label.align = "center";
-				}
-
-				if (options.label.rotate === "left") {
-					options.label.align = "right";
-				} else if (options.label.rotate === "right") {
-					options.label.align = "left";
-				}
-			}
-
-			if (!settings.hasOwnProperty("label") || (settings.hasOwnProperty("label") && !settings.label.hasOwnProperty("offset"))) {
-				if (options.label.position === "left" || options.label.position === "right") {
-					options.label.offset = {
-						x: 10,
-						y: 15
-					};
-				}
-			}
-		}
-
-		/**
-		 * If not specified, add some margin around the legend depending on its position
-		 *
-		 * @return void
-		 */
-		function autoAddLegendMargin() {
-			switch(options.legendVerticalPosition) {
-			case "top":
-				options.legendMargin[2] = parent.DEFAULT_LEGEND_MARGIN;
-				break;
-			case "bottom":
-				options.legendMargin[0] = parent.DEFAULT_LEGEND_MARGIN;
-				break;
-			case "middle":
-			case "center":
-				options.legendMargin[options.legendHorizontalPosition === "right" ? 3 : 1] = parent.DEFAULT_LEGEND_MARGIN;
-			}
-		}
-
-		/**
-		 * Expand a number of an array of numbers to an usable 4 values array
-		 *
-		 * @param  {integer|array} value
-		 * @return {array}        array
-		 */
-		function expandMarginSetting(value) {
-			if (typeof value === "number") {
-				value = [value];
-			}
-
-			if (!Array.isArray(value)) {
-				console.log("Margin only takes an integer or an array of integers");
-				value = [0];
-			}
-
-			switch(value.length) {
-			case 1:
-				return [value[0], value[0], value[0], value[0]];
-			case 2:
-				return [value[0], value[1], value[0], value[1]];
-			case 3:
-				return [value[0], value[1], value[2], value[1]];
-			case 4:
-				return value;
-			default:
-				return value.slice(0, 4);
-			}
-		}
-
-		/**
-		 * Convert a string to an array like [singular-form, plural-form]
-		 *
-		 * @param  {string|array} value Date to convert
-		 * @return {array}       An array like [singular-form, plural-form]
-		 */
-		function expandItemName(value) {
-			if (typeof value === "string") {
-				return [value, value + (value !== "" ? "s" : "")];
-			}
-
-			if (Array.isArray(value)) {
-				if (value.length === 1) {
-					return [value[0], value[0] + "s"];
-				} else if (value.length > 2) {
-					return value.slice(0, 2);
-				}
-
-				return value;
-			}
-
-			return ["item", "items"];
-		}
-
-		function parseColLimit(value) {
-			return value > 0 ? value : null;
-		}
-
-		function parseRowLimit(value) {
-			if (value > 0 && options.colLimit > 0) {
-				console.log("colLimit and rowLimit are mutually exclusive, rowLimit will be ignored");
-				return null;
-			}
-			return value > 0 ? value : null;
-		}
-
-		return this._init();
-
-	},
-
-	/**
-	 * Convert a keyword or an array of keyword/date to an array of date objects
-	 *
-	 * @param  {string|array|Date} value Data to convert
-	 * @return {array}       An array of Dates
-	 */
-	expandDateSetting: function(value) {
-		"use strict";
-
-		if (!Array.isArray(value)) {
-			value = [value];
-		}
-
-		return value.map(function(data) {
-			if (data === "now") {
-				return new Date();
-			}
-			if (data instanceof Date) {
-				return data;
-			}
-			return false;
-		}).filter(function(d) { return d !== false; });
-	},
-
-	/**
-	 * Fill the calendar by coloring the cells
-	 *
-	 * @param array svg An array of html node to apply the transformation to (optional)
-	 *                  It's used to limit the painting to only a subset of the calendar
-	 * @return void
-	 */
-	fill: function(svg) {
-		"use strict";
-
-		var parent = this;
-		var options = parent.options;
-
-		if (arguments.length === 0) {
-			svg = parent.root.selectAll(".graph-domain");
-		}
-
-		var rect = svg
-			.selectAll("svg").selectAll("g")
-			.data(function(d) { return parent._domains.get(d); })
-		;
-
-		/**
-		 * Colorize the cell via a style attribute if enabled
-		 */
-		function addStyle(element) {
-			if (parent.legendScale === null) {
-				return false;
-			}
-
-			element.attr("fill", function(d) {
-				if (d.v === 0 && options.legendColors !== null && options.legendColors.hasOwnProperty("empty")) {
-					return options.legendColors.empty;
-				}
-
-				if (d.v < 0 && options.legend[0] > 0 && options.legendColors !== null && options.legendColors.hasOwnProperty("overflow")) {
-					return options.legendColors.overflow;
-				}
-
-				return parent.legendScale(Math.min(d.v, options.legend[options.legend.length-1]));
-			});
-		}
-
-		rect.transition().duration(options.animationDuration).select("rect")
-			.attr("class", function(d) {
-
-				var htmlClass = parent.getHighlightClassName(d.t);
-
-				if (parent.legendScale === null) {
-					htmlClass += " graph-rect";
-				}
-
-				if (d.v !== null) {
-					htmlClass += " " + parent.Legend.getClass(d.v, (parent.legendScale === null));
-				} else if (options.considerMissingDataAsZero) {
-					htmlClass += " " + parent.Legend.getClass(0, (parent.legendScale === null));
-				}
-
-				if (options.onClick !== null) {
-					htmlClass += " hover_cursor";
-				}
-
-				return htmlClass;
-			})
-			.call(addStyle)
-		;
-
-		rect.transition().duration(options.animationDuration).select("title")
-			.text(function(d) { return parent.getSubDomainTitle(d); })
-		;
-	},
-
-	// =========================================================================//
-	// EVENTS CALLBACK															//
-	// =========================================================================//
-
-	/**
-	 * Helper method for triggering event callback
-	 *
-	 * @param  string	eventName       Name of the event to trigger
-	 * @param  array	successArgs     List of argument to pass to the callback
-	 * @param  boolean  skip			Whether to skip the event triggering
-	 * @return mixed	True when the triggering was skipped, false on error, else the callback function
-	 */
-	triggerEvent: function(eventName, successArgs, skip) {
-		"use strict";
-
-		if ((arguments.length === 3 && skip) || this.options[eventName] === null) {
-			return true;
-		}
-
-		if (typeof this.options[eventName] === "function") {
-			if (typeof successArgs === "function") {
-				successArgs = successArgs();
-			}
-			return this.options[eventName].apply(this, successArgs);
-		} else {
-			console.log("Provided callback for " + eventName + " is not a function.");
-			return false;
-		}
-	},
-
-	/**
-	 * Event triggered on a mouse click on a subDomain cell
-	 *
-	 * @param  Date		d		Date of the subdomain block
-	 * @param  int		itemNb	Number of items in that date
-	 */
-	onClick: function(d, itemNb) {
-		"use strict";
-
-		return this.triggerEvent("onClick", [d, itemNb]);
-	},
-
-	/**
-	 * Event triggered after drawing the calendar, byt before filling it with data
-	 */
-	afterLoad: function() {
-		"use strict";
-
-		return this.triggerEvent("afterLoad");
-	},
-
-	/**
-	 * Event triggered after completing drawing and filling the calendar
-	 */
-	onComplete: function() {
-		"use strict";
-
-		var response = this.triggerEvent("onComplete", [], this._completed);
-		this._completed = true;
-		return response;
-	},
-
-	/**
-	 * Event triggered after shifting the calendar one domain back
-	 *
-	 * @param  Date		start	Domain start date
-	 * @param  Date		end		Domain end date
-	 */
-	afterLoadPreviousDomain: function(start) {
-		"use strict";
-
-		var parent = this;
-		return this.triggerEvent("afterLoadPreviousDomain", function() {
-			var subDomain = parent.getSubDomain(start);
-			return [subDomain.shift(), subDomain.pop()];
-		});
-	},
-
-	/**
-	 * Event triggered after shifting the calendar one domain above
-	 *
-	 * @param  Date		start	Domain start date
-	 * @param  Date		end		Domain end date
-	 */
-	afterLoadNextDomain: function(start) {
-		"use strict";
-
-		var parent = this;
-		return this.triggerEvent("afterLoadNextDomain", function() {
-			var subDomain = parent.getSubDomain(start);
-			return [subDomain.shift(), subDomain.pop()];
-		});
-	},
-
-	/**
-	 * Event triggered after loading the leftmost domain allowed by minDate
-	 *
-	 * @param  boolean  reached True if the leftmost domain was reached
-	 */
-	onMinDomainReached: function(reached) {
-		"use strict";
-
-		this._minDomainReached = reached;
-		return this.triggerEvent("onMinDomainReached", [reached]);
-	},
-
-	/**
-	 * Event triggered after loading the rightmost domain allowed by maxDate
-	 *
-	 * @param  boolean  reached True if the rightmost domain was reached
-	 */
-	onMaxDomainReached: function(reached) {
-		"use strict";
-
-		this._maxDomainReached = reached;
-		return this.triggerEvent("onMaxDomainReached", [reached]);
-	},
-
-	checkIfMinDomainIsReached: function(date, upperBound) {
-		"use strict";
-
-		if (this.minDomainIsReached(date)) {
-			this.onMinDomainReached(true);
-		}
-
-		if (arguments.length === 2) {
-			if (this._maxDomainReached && !this.maxDomainIsReached(upperBound)) {
-				this.onMaxDomainReached(false);
-			}
-		}
-	},
-
-	checkIfMaxDomainIsReached: function(date, lowerBound) {
-		"use strict";
-
-		if (this.maxDomainIsReached(date)) {
-			this.onMaxDomainReached(true);
-		}
-
-		if (arguments.length === 2) {
-			if (this._minDomainReached && !this.minDomainIsReached(lowerBound)) {
-				this.onMinDomainReached(false);
-			}
-		}
-	},
-
-	// =========================================================================//
-	// FORMATTER																//
-	// =========================================================================//
-
-	formatNumber: d3.format(",g"),
-
-	formatDate: function(d, format) {
-		"use strict";
-
-		if (arguments.length < 2) {
-			format = "title";
-		}
-
-		if (typeof format === "function") {
-			return format(d);
-		} else {
-			var f = d3.time.format(format);
-			return f(d);
-		}
-	},
-
-	getSubDomainTitle: function(d) {
-		"use strict";
-
-		if (d.v === null && !this.options.considerMissingDataAsZero) {
-			return (this.options.subDomainTitleFormat.empty).format({
-				date: this.formatDate(new Date(d.t), this.options.subDomainDateFormat)
-			});
-		} else {
-			var value = d.v;
-			// Consider null as 0
-			if (value === null && this.options.considerMissingDataAsZero) {
-				value = 0;
-			}
-
-			return (this.options.subDomainTitleFormat.filled).format({
-				count: this.formatNumber(value),
-				name: this.options.itemName[(value !== 1 ? 1: 0)],
-				connector: this._domainType[this.options.subDomain].format.connector,
-				date: this.formatDate(new Date(d.t), this.options.subDomainDateFormat)
-			});
-		}
-	},
-
-	// =========================================================================//
-	// DOMAIN NAVIGATION														//
-	// =========================================================================//
-
-	/**
-	 * Shift the calendar one domain forward
-	 *
-	 * The new domain is loaded only if it's not beyond maxDate
-	 *
-	 * @param int n Number of domains to load
-	 * @return bool True if the next domain was loaded, else false
-	 */
-	loadNextDomain: function(n) {
-		"use strict";
-
-		if (this._maxDomainReached || n === 0) {
-			return false;
-		}
-
-		var bound = this.loadNewDomains(this.NAVIGATE_RIGHT, this.getDomain(this.getNextDomain(), n));
-
-		this.afterLoadNextDomain(bound.end);
-		this.checkIfMaxDomainIsReached(this.getNextDomain().getTime(), bound.start);
-
-		return true;
-	},
-
-	/**
-	 * Shift the calendar one domain backward
-	 *
-	 * The previous domain is loaded only if it's not beyond the minDate
-	 *
-	 * @param int n Number of domains to load
-	 * @return bool True if the previous domain was loaded, else false
-	 */
-	loadPreviousDomain: function(n) {
-		"use strict";
-
-		if (this._minDomainReached || n === 0) {
-			return false;
-		}
-
-		var bound = this.loadNewDomains(this.NAVIGATE_LEFT, this.getDomain(this.getDomainKeys()[0], -n).reverse());
-
-		this.afterLoadPreviousDomain(bound.start);
-		this.checkIfMinDomainIsReached(bound.start, bound.end);
-
-		return true;
-	},
-
-	loadNewDomains: function(direction, newDomains) {
-		"use strict";
-
-		var parent = this;
-		var backward = direction === this.NAVIGATE_LEFT;
-		var i = -1;
-		var total = newDomains.length;
-		var domains = this.getDomainKeys();
-
-		function buildSubDomain(d) {
-			return {t: parent._domainType[parent.options.subDomain].extractUnit(d), v: null};
-		}
-
-		// Remove out of bound domains from list of new domains to prepend
-		while (++i < total) {
-			if (backward && this.minDomainIsReached(newDomains[i])) {
-				newDomains = newDomains.slice(0, i+1);
-				break;
-			}
-			if (!backward && this.maxDomainIsReached(newDomains[i])) {
-				newDomains = newDomains.slice(0, i);
-				break;
-			}
-		}
-
-		newDomains = newDomains.slice(-this.options.range);
-
-		for (i = 0, total = newDomains.length; i < total; i++) {
-			this._domains.set(
-				newDomains[i].getTime(),
-				this.getSubDomain(newDomains[i]).map(buildSubDomain)
-			);
-
-			this._domains.remove(backward ? domains.pop() : domains.shift());
-		}
-
-		domains = this.getDomainKeys();
-
-		if (backward) {
-			newDomains = newDomains.reverse();
-		}
-
-		this.paint(direction);
-
-		this.getDatas(
-			this.options.data,
-			newDomains[0],
-			this.getSubDomain(newDomains[newDomains.length-1]).pop(),
-			function() {
-				parent.fill(parent.lastInsertedSvg);
-			}
-		);
-
-		return {
-			start: newDomains[backward ? 0 : 1],
-			end: domains[domains.length-1]
-		};
-	},
-
-	/**
-	 * Return whether a date is inside the scope determined by maxDate
-	 *
-	 * @param int datetimestamp The timestamp in ms to test
-	 * @return bool True if the specified date correspond to the calendar upper bound
-	 */
-	maxDomainIsReached: function(datetimestamp) {
-		"use strict";
-
-		return (this.options.maxDate !== null && (this.options.maxDate.getTime() < datetimestamp));
-	},
-
-	/**
-	 * Return whether a date is inside the scope determined by minDate
-	 *
-	 * @param int datetimestamp The timestamp in ms to test
-	 * @return bool True if the specified date correspond to the calendar lower bound
-	 */
-	minDomainIsReached: function (datetimestamp) {
-		"use strict";
-
-		return (this.options.minDate !== null && (this.options.minDate.getTime() >= datetimestamp));
-	},
-
-	/**
-	 * Return the list of the calendar's domain timestamp
-	 *
-	 * @return Array a sorted array of timestamp
-	 */
-	getDomainKeys: function() {
-		"use strict";
-
-		return this._domains.keys()
-			.map(function(d) { return parseInt(d, 10); })
-			.sort(function(a,b) { return a-b; });
-	},
-
-	// =========================================================================//
-	// POSITIONNING																//
-	// =========================================================================//
-
-	positionSubDomainX: function(d) {
-		"use strict";
-
-		var index = this._domainType[this.options.subDomain].position.x(new Date(d));
-		return index * this.options.cellSize + index * this.options.cellPadding;
-	},
-
-	positionSubDomainY: function(d) {
-		"use strict";
-
-		var index = this._domainType[this.options.subDomain].position.y(new Date(d));
-		return index * this.options.cellSize + index * this.options.cellPadding;
-	},
-
-	getSubDomainColumnNumber: function(d) {
-		"use strict";
-
-		if (this.options.rowLimit > 0) {
-			var i = this._domainType[this.options.subDomain].maxItemNumber;
-			if (typeof i === "function") {
-				i = i(d);
-			}
-			return Math.ceil(i / this.options.rowLimit);
-		}
-
-		var j = this._domainType[this.options.subDomain].defaultColumnNumber;
-		if (typeof j === "function") {
-			j = j(d);
-
-		}
-		return this.options.colLimit || j;
-	},
-
-	getSubDomainRowNumber: function(d) {
-		"use strict";
-
-		if (this.options.colLimit > 0) {
-			var i = this._domainType[this.options.subDomain].maxItemNumber;
-			if (typeof i === "function") {
-				i = i(d);
-			}
-			return Math.ceil(i / this.options.colLimit);
-		}
-
-		var j = this._domainType[this.options.subDomain].defaultRowNumber;
-		if (typeof j === "function") {
-			j = j(d);
-
-		}
-		return this.options.rowLimit || j;
-	},
-
-	/**
-	 * Return a classname if the specified date should be highlighted
-	 *
-	 * @param  timestamp date Date of the current subDomain
-	 * @return String the highlight class
-	 */
-	getHighlightClassName: function(d) {
-		"use strict";
-
-		d = new Date(d);
-
-		if (this.options.highlight.length > 0) {
-			for (var i in this.options.highlight) {
-				if (this.options.highlight[i] instanceof Date && this.dateIsEqual(this.options.highlight[i], d)) {
-					return " highlight" + (this.isNow(this.options.highlight[i]) ? " now": "");
-				}
-			}
-		}
-		return "";
-	},
-
-	/**
-	 * Return whether the specified date is now,
-	 * according to the type of subdomain
-	 *
-	 * @param  Date d The date to compare
-	 * @return bool True if the date correspond to a subdomain cell
-	 */
-	isNow: function(d) {
-		"use strict";
-
-		return this.dateIsEqual(d, new Date());
-	},
-
-	/**
-	 * Return whether 2 dates are equals
-	 * This function is subdomain-aware,
-	 * and dates comparison are dependent of the subdomain
-	 *
-	 * @param  Date dateA First date to compare
-	 * @param  Date dateB Secon date to compare
-	 * @return bool true if the 2 dates are equals
-	 */
-	/* jshint maxcomplexity: false */
-	dateIsEqual: function(dateA, dateB) {
-		"use strict";
-
-		switch(this.options.subDomain) {
-		case "x_min":
-		case "min":
-			return dateA.getFullYear() === dateB.getFullYear() &&
-				dateA.getMonth() === dateB.getMonth() &&
-				dateA.getDate() === dateB.getDate() &&
-				dateA.getHours() === dateB.getHours() &&
-				dateA.getMinutes() === dateB.getMinutes();
-		case "x_hour":
-		case "hour":
-			return dateA.getFullYear() === dateB.getFullYear() &&
-				dateA.getMonth() === dateB.getMonth() &&
-				dateA.getDate() === dateB.getDate() &&
-				dateA.getHours() === dateB.getHours();
-		case "x_day":
-		case "day":
-			return dateA.getFullYear() === dateB.getFullYear() &&
-				dateA.getMonth() === dateB.getMonth() &&
-				dateA.getDate() === dateB.getDate();
-		case "x_week":
-		case "week":
-		case "x_month":
-		case "month":
-			return dateA.getFullYear() === dateB.getFullYear() &&
-				dateA.getMonth() === dateB.getMonth();
-		default:
-			return false;
-		}
-	},
-
-	// =========================================================================//
-	// DATE COMPUTATION															//
-	// =========================================================================//
-
-	/**
-	 * Return the day of the year for the date
-	 * @param	Date
-	 * @return  int Day of the year [1,366]
-	 */
-	getDayOfYear: d3.time.format("%j"),
-
-	/**
-	 * Return the week number of the year
-	 * Monday as the first day of the week
-	 * @return int	Week number [0-53]
-	 */
-	getWeekNumber: function(d) {
-		"use strict";
-
-		var f = this.options.weekStartOnMonday === true ? d3.time.format("%W"): d3.time.format("%U");
-		return f(d);
-	},
-
-	/**
-	 * Return the week number, relative to its month
-	 *
-	 * @param  int|Date d Date or timestamp in milliseconds
-	 * @return int Week number, relative to the month [0-5]
-	 */
-	getMonthWeekNumber: function (d) {
-		"use strict";
-
-		if (typeof d === "number") {
-			d = new Date(d);
-		}
-
-		var monthFirstWeekNumber = this.getWeekNumber(new Date(d.getFullYear(), d.getMonth()));
-		return this.getWeekNumber(d) - monthFirstWeekNumber - 1;
-	},
-
-	/**
-	 * Return the number of weeks in the dates' year
-	 *
-	 * @param  int|Date d Date or timestamp in milliseconds
-	 * @return int Number of weeks in the date's year
-	 */
-	getWeekNumberInYear: function(d) {
-		"use strict";
-
-		if (typeof d === "number") {
-			d = new Date(d);
-		}
-	},
-
-	/**
-	 * Return the number of days in the date's month
-	 *
-	 * @param  int|Date d Date or timestamp in milliseconds
-	 * @return int Number of days in the date's month
-	 */
-	getDayCountInMonth: function(d) {
-		"use strict";
-
-		return this.getEndOfMonth(d).getDate();
-	},
-
-	/**
-	 * Return the number of days in the date's year
-	 *
-	 * @param  int|Date d Date or timestamp in milliseconds
-	 * @return int Number of days in the date's year
-	 */
-	getDayCountInYear: function(d) {
-		"use strict";
-
-		if (typeof d === "number") {
-			d = new Date(d);
-		}
-		return (new Date(d.getFullYear(), 1, 29).getMonth() === 1) ? 366 : 365;
-	},
-
-	/**
-	 * Get the weekday from a date
-	 *
-	 * Return the week day number (0-6) of a date,
-	 * depending on whether the week start on monday or sunday
-	 *
-	 * @param  Date d
-	 * @return int The week day number (0-6)
-	 */
-	getWeekDay: function(d) {
-		"use strict";
-
-		if (this.options.weekStartOnMonday === false) {
-			return d.getDay();
-		}
-		return d.getDay() === 0 ? 6 : (d.getDay()-1);
-	},
-
-	/**
-	 * Get the last day of the month
-	 * @param  Date|int	d	Date or timestamp in milliseconds
-	 * @return Date			Last day of the month
-	 */
-	getEndOfMonth: function(d) {
-		"use strict";
-
-		if (typeof d === "number") {
-			d = new Date(d);
-		}
-		return new Date(d.getFullYear(), d.getMonth()+1, 0);
-	},
-
-	/**
-	 *
-	 * @param  Date date
-	 * @param  int count
-	 * @param  string step
-	 * @return Date
-	 */
-	jumpDate: function(date, count, step) {
-		"use strict";
-
-		var d = new Date(date);
-		switch(step) {
-		case "hour":
-			d.setHours(d.getHours() + count);
-			break;
-		case "day":
-			d.setHours(d.getHours() + count * 24);
-			break;
-		case "week":
-			d.setHours(d.getHours() + count * 24 * 7);
-			break;
-		case "month":
-			d.setMonth(d.getMonth() + count);
-			break;
-		case "year":
-			d.setFullYear(d.getFullYear() + count);
-		}
-
-		return new Date(d);
-	},
-
-	// =========================================================================//
-	// DOMAIN COMPUTATION														//
-	// =========================================================================//
-
-	/**
-	 * Return all the minutes between 2 dates
-	 *
-	 * @param  Date	d	date	A date
-	 * @param  int|date	range	Number of minutes in the range, or a stop date
-	 * @return array	An array of minutes
-	 */
-	getMinuteDomain: function (d, range) {
-		"use strict";
-
-		var start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours());
-		var stop = null;
-		if (range instanceof Date) {
-			stop = new Date(range.getFullYear(), range.getMonth(), range.getDate(), range.getHours());
-		} else {
-			stop = new Date(+start + range * 1000 * 60);
-		}
-		return d3.time.minutes(Math.min(start, stop), Math.max(start, stop));
-	},
-
-	/**
-	 * Return all the hours between 2 dates
-	 *
-	 * @param  Date	d	A date
-	 * @param  int|date	range	Number of hours in the range, or a stop date
-	 * @return array	An array of hours
-	 */
-	getHourDomain: function (d, range) {
-		"use strict";
-
-		var start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours());
-		var stop = null;
-		if (range instanceof Date) {
-			stop = new Date(range.getFullYear(), range.getMonth(), range.getDate(), range.getHours());
-		} else {
-			stop = new Date(start);
-			stop.setHours(stop.getHours() + range);
-		}
-
-		var domains = d3.time.hours(Math.min(start, stop), Math.max(start, stop));
-
-		// Passing from DST to standard time
-		// If there are 25 hours, let's compress the duplicate hours
-		var i = 0;
-		var total = domains.length;
-		for(i = 0; i < total; i++) {
-			if (i > 0 && (domains[i].getHours() === domains[i-1].getHours())) {
-				this.DSTDomain.push(domains[i].getTime());
-				domains.splice(i, 1);
-				break;
-			}
-		}
-
-		// d3.time.hours is returning more hours than needed when changing
-		// from DST to standard time, because there is really 2 hours between
-		// 1am and 2am!
-		if (typeof range === "number" && domains.length > Math.abs(range)) {
-			domains.splice(domains.length-1, 1);
-		}
-
-		return domains;
-	},
-
-	/**
-	 * Return all the days between 2 dates
-	 *
-	 * @param  Date		d		A date
-	 * @param  int|date	range	Number of days in the range, or a stop date
-	 * @return array	An array of weeks
-	 */
-	getDayDomain: function (d, range) {
-		"use strict";
-
-		var start = new Date(d.getFullYear(), d.getMonth(), d.getDate());
-		var stop = null;
-		if (range instanceof Date) {
-			stop = new Date(range.getFullYear(), range.getMonth(), range.getDate());
-		} else {
-			stop = new Date(start);
-			stop = new Date(stop.setDate(stop.getDate() + parseInt(range, 10)));
-		}
-
-		return d3.time.days(Math.min(start, stop), Math.max(start, stop));
-	},
-
-	/**
-	 * Return all the weeks between 2 dates
-	 *
-	 * @param  Date	d	A date
-	 * @param  int|date	range	Number of minutes in the range, or a stop date
-	 * @return array	An array of weeks
-	 */
-	getWeekDomain: function (d, range) {
-		"use strict";
-
-		var weekStart;
-
-		if (this.options.weekStartOnMonday === false) {
-			weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate() - d.getDay());
-		} else {
-			if (d.getDay() === 1) {
-				weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate());
-			} else if (d.getDay() === 0) {
-				weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate());
-				weekStart.setDate(weekStart.getDate() - 6);
-			} else {
-				weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate()-d.getDay()+1);
-			}
-		}
-
-		var endDate = new Date(weekStart);
-
-		var stop = range;
-		if (typeof range !== "object") {
-			stop = new Date(endDate.setDate(endDate.getDate() + range * 7));
-		}
-
-		return (this.options.weekStartOnMonday === true) ?
-			d3.time.mondays(Math.min(weekStart, stop), Math.max(weekStart, stop)):
-			d3.time.sundays(Math.min(weekStart, stop), Math.max(weekStart, stop))
-		;
-	},
-
-	/**
-	 * Return all the months between 2 dates
-	 *
-	 * @param  Date		d		A date
-	 * @param  int|date	range	Number of months in the range, or a stop date
-	 * @return array	An array of months
-	 */
-	getMonthDomain: function (d, range) {
-		"use strict";
-
-		var start = new Date(d.getFullYear(), d.getMonth());
-		var stop = null;
-		if (range instanceof Date) {
-			stop = new Date(range.getFullYear(), range.getMonth());
-		} else {
-			stop = new Date(start);
-			stop = stop.setMonth(stop.getMonth()+range);
-		}
-
-		return d3.time.months(Math.min(start, stop), Math.max(start, stop));
-	},
-
-	/**
-	 * Return all the years between 2 dates
-	 *
-	 * @param  Date	d	date	A date
-	 * @param  int|date	range	Number of minutes in the range, or a stop date
-	 * @return array	An array of hours
-	 */
-	getYearDomain: function(d, range){
-		"use strict";
-
-		var start = new Date(d.getFullYear(), 0);
-		var stop = null;
-		if (range instanceof Date) {
-			stop = new Date(range.getFullYear(), 0);
-		} else {
-			stop = new Date(d.getFullYear()+range, 0);
-		}
-
-		return d3.time.years(Math.min(start, stop), Math.max(start, stop));
-	},
-
-	/**
-	 * Get an array of domain start dates
-	 *
-	 * @param  int|Date date A random date included in the wanted domain
-	 * @param  int|Date range Number of dates to get, or a stop date
-	 * @return Array of dates
-	 */
-	getDomain: function(date, range) {
-		"use strict";
-
-		if (typeof date === "number") {
-			date = new Date(date);
-		}
-
-		if (arguments.length < 2) {
-			range = this.options.range;
-		}
-
-		switch(this.options.domain) {
-		case "hour" :
-			var domains = this.getHourDomain(date, range);
-
-			// Case where an hour is missing, when passing from standard time to DST
-			// Missing hour is perfectly acceptabl in subDomain, but not in domains
-			if (typeof range === "number" && domains.length < range) {
-				if (range > 0) {
-					domains.push(this.getHourDomain(domains[domains.length-1], 2)[1]);
-				} else {
-					domains.shift(this.getHourDomain(domains[0], -2)[0]);
-				}
-			}
-			return domains;
-		case "day"  :
-			return this.getDayDomain(date, range);
-		case "week" :
-			return this.getWeekDomain(date, range);
-		case "month":
-			return this.getMonthDomain(date, range);
-		case "year" :
-			return this.getYearDomain(date, range);
-		}
-	},
-
-	/* jshint maxcomplexity: false */
-	getSubDomain: function(date) {
-		"use strict";
-
-		if (typeof date === "number") {
-			date = new Date(date);
-		}
-
-		var parent = this;
-
-		/**
-		 * @return int
-		 */
-		var computeDaySubDomainSize = function(date, domain) {
-			switch(domain) {
-			case "year":
-				return parent.getDayCountInYear(date);
-			case "month":
-				return parent.getDayCountInMonth(date);
-			case "week":
-				return 7;
-			}
-		};
-
-		/**
-		 * @return int
-		 */
-		var computeMinSubDomainSize = function(date, domain) {
-			switch (domain) {
-			case "hour":
-				return 60;
-			case "day":
-				return 60 * 24;
-			case "week":
-				return 60 * 24 * 7;
-			}
-		};
-
-		/**
-		 * @return int
-		 */
-		var computeHourSubDomainSize = function(date, domain) {
-			switch(domain) {
-			case "day":
-				return 24;
-			case "week":
-				return 168;
-			case "month":
-				return parent.getDayCountInMonth(date) * 24;
-			}
-		};
-
-		/**
-		 * @return int
-		 */
-		var computeWeekSubDomainSize = function(date, domain) {
-			if (domain === "month") {
-				var endOfMonth = new Date(date.getFullYear(), date.getMonth()+1, 0);
-				var endWeekNb = parent.getWeekNumber(endOfMonth);
-				var startWeekNb = parent.getWeekNumber(new Date(date.getFullYear(), date.getMonth()));
-
-				if (startWeekNb > endWeekNb) {
-					startWeekNb = 0;
-					endWeekNb++;
-				}
-
-				return endWeekNb - startWeekNb + 1;
-			} else if (domain === "year") {
-				return parent.getWeekNumber(new Date(date.getFullYear(), 11, 31));
-			}
-		};
-
-		switch(this.options.subDomain) {
-		case "x_min":
-		case "min"  :
-			return this.getMinuteDomain(date, computeMinSubDomainSize(date, this.options.domain));
-		case "x_hour":
-		case "hour" :
-			return this.getHourDomain(date, computeHourSubDomainSize(date, this.options.domain));
-		case "x_day":
-		case "day"  :
-			return this.getDayDomain(date, computeDaySubDomainSize(date, this.options.domain));
-		case "x_week":
-		case "week" :
-			return this.getWeekDomain(date, computeWeekSubDomainSize(date, this.options.domain));
-		case "x_month":
-		case "month":
-			return this.getMonthDomain(date, 12);
-		}
-	},
-
-	/**
-	 * Get the n-th next domain after the calendar newest (rightmost) domain
-	 * @param  int n
-	 * @return Date The start date of the wanted domain
-	 */
-	getNextDomain: function(n) {
-		"use strict";
-
-		if (arguments.length === 0) {
-			n = 1;
-		}
-		return this.getDomain(this.jumpDate(this.getDomainKeys().pop(), n, this.options.domain), 1)[0];
-	},
-
-	/**
-	 * Get the n-th domain before the calendar oldest (leftmost) domain
-	 * @param  int n
-	 * @return Date The start date of the wanted domain
-	 */
-	getPreviousDomain: function(n) {
-		"use strict";
-
-		if (arguments.length === 0) {
-			n = 1;
-		}
-		return this.getDomain(this.jumpDate(this.getDomainKeys().shift(), -n, this.options.domain), 1)[0];
-	},
-
-
-	// =========================================================================//
-	// DATAS																	//
-	// =========================================================================//
-
-	/**
-	 * Fetch and interpret data from the datasource
-	 *
-	 * @param string|object source
-	 * @param Date startDate
-	 * @param Date endDate
-	 * @param function callback
-	 * @param function|boolean afterLoad function used to convert the data into a json object. Use true to use the afterLoad callback
-	 * @param updateMode
-	 *
-	 * @return mixed
-	 * - True if there are no data to load
-	 * - False if data are loaded asynchronously
-	 */
-	getDatas: function(source, startDate, endDate, callback, afterLoad, updateMode) {
-		"use strict";
-
-		var self = this;
-		if (arguments.length < 5) {
-			afterLoad = true;
-		}
-		if (arguments.length < 6) {
-			updateMode = this.APPEND_ON_UPDATE;
-		}
-		var _callback = function(data) {
-			if (afterLoad !== false) {
-				if (typeof afterLoad === "function") {
-					data = afterLoad(data);
-				} else if (typeof (self.options.afterLoadData) === "function") {
-					data = self.options.afterLoadData(data);
-				} else {
-					console.log("Provided callback for afterLoadData is not a function.");
-				}
-			} else if (self.options.dataType === "csv" || self.options.dataType === "tsv") {
-				data = this.interpretCSV(data);
-			}
-			self.parseDatas(data, updateMode, startDate, endDate);
-			if (typeof callback === "function") {
-				callback();
-			}
-		};
-
-		switch(typeof source) {
-		case "string":
-			if (source === "") {
-				_callback({});
-				return true;
-			} else {
-				switch(this.options.dataType) {
-				case "json":
-					d3.json(this.parseURI(source, startDate, endDate), _callback);
-					break;
-				case "csv":
-					d3.csv(this.parseURI(source, startDate, endDate), _callback);
-					break;
-				case "tsv":
-					d3.tsv(this.parseURI(source, startDate, endDate), _callback);
-					break;
-				case "txt":
-					d3.text(this.parseURI(source, startDate, endDate), "text/plain", _callback);
-					break;
-				}
-			}
-			return false;
-		case "object":
-			if (source === Object(source)) {
-				_callback(source);
-				return false;
-			}
-			/* falls through */
-		default:
-			_callback({});
-			return true;
-		}
-	},
-
-	/**
-	 * Populate the calendar internal data
-	 *
-	 * @param object data
-	 * @param constant updateMode
-	 * @param Date startDate
-	 * @param Date endDate
-	 *
-	 * @return void
-	 */
-	parseDatas: function(data, updateMode, startDate, endDate) {
-		"use strict";
-
-		if (updateMode === this.RESET_ALL_ON_UPDATE) {
-			this._domains.forEach(function(key, value) {
-				value.forEach(function(element, index, array) {
-					array[index].v = null;
-				});
-			});
-		}
-
-		var temp = {};
-
-		var extractTime = function(d) { return d.t; };
-
-		/*jshint forin:false */
-		for (var d in data) {
-			var date = new Date(d*1000);
-			var domainUnit = this.getDomain(date)[0].getTime();
-
-			// The current data belongs to a domain that was compressed
-			// Compress the data for the two duplicate hours into the same hour
-			if (this.DSTDomain.indexOf(domainUnit) >= 0) {
-
-				// Re-assign all data to the first or the second duplicate hours
-				// depending on which is visible
-				if (this._domains.has(domainUnit - 3600 * 1000)) {
-					domainUnit -= 3600 * 1000;
-				}
-			}
-
-			// Skip if data is not relevant to current domain
-			if (isNaN(d) || !data.hasOwnProperty(d) || !this._domains.has(domainUnit) || !(domainUnit >= +startDate && domainUnit < +endDate)) {
-				continue;
-			}
-
-			var subDomainsData = this._domains.get(domainUnit);
-
-			if (!temp.hasOwnProperty(domainUnit)) {
-				temp[domainUnit] = subDomainsData.map(extractTime);
-			}
-
-			var index = temp[domainUnit].indexOf(this._domainType[this.options.subDomain].extractUnit(date));
-
-			if (updateMode === this.RESET_SINGLE_ON_UPDATE) {
-				subDomainsData[index].v = data[d];
-			} else {
-				if (!isNaN(subDomainsData[index].v)) {
-					subDomainsData[index].v += data[d];
-				} else {
-					subDomainsData[index].v = data[d];
-				}
-			}
-		}
-	},
-
-	parseURI: function(str, startDate, endDate) {
-		"use strict";
-
-		// Use a timestamp in seconds
-		str = str.replace(/\{\{t:start\}\}/g, startDate.getTime()/1000);
-		str = str.replace(/\{\{t:end\}\}/g, endDate.getTime()/1000);
-
-		// Use a string date, following the ISO-8601
-		str = str.replace(/\{\{d:start\}\}/g, startDate.toISOString());
-		str = str.replace(/\{\{d:end\}\}/g, endDate.toISOString());
-
-		return str;
-	},
-
-	interpretCSV: function(data) {
-		"use strict";
-
-		var d = {};
-		var keys = Object.keys(data[0]);
-		var i, total;
-		for (i = 0, total = data.length; i < total; i++) {
-			d[data[i][keys[0]]] = +data[i][keys[1]];
-		}
-		return d;
-	},
-
-	/**
-	 * Handle the calendar layout and dimension
-	 *
-	 * Expand and shrink the container depending on its children dimension
-	 * Also rearrange the children position depending on their dimension,
-	 * and the legend position
-	 *
-	 * @return void
-	 */
-	resize: function() {
-		"use strict";
-
-		var parent = this;
-		var options = parent.options;
-		var legendWidth = options.displayLegend ? (parent.Legend.getDim("width") + options.legendMargin[1] + options.legendMargin[3]) : 0;
-		var legendHeight = options.displayLegend ? (parent.Legend.getDim("height") + options.legendMargin[0] + options.legendMargin[2]) : 0;
-
-		var graphWidth = parent.graphDim.width - options.domainGutter - options.cellPadding;
-		var graphHeight = parent.graphDim.height - options.domainGutter - options.cellPadding;
-
-		this.root.transition().duration(options.animationDuration)
-			.attr("width", function() {
-				if (options.legendVerticalPosition === "middle" || options.legendVerticalPosition === "center") {
-					return graphWidth + legendWidth;
-				}
-				return Math.max(graphWidth, legendWidth);
-			})
-			.attr("height", function() {
-				if (options.legendVerticalPosition === "middle" || options.legendVerticalPosition === "center") {
-					return Math.max(graphHeight, legendHeight);
-				}
-				return graphHeight + legendHeight;
-			})
-		;
-
-		this.root.select(".graph").transition().duration(options.animationDuration)
-			.attr("y", function() {
-				if (options.legendVerticalPosition === "top") {
-					return legendHeight;
-				}
-				return 0;
-			})
-			.attr("x", function() {
-				if (
-					(options.legendVerticalPosition === "middle" || options.legendVerticalPosition === "center") &&
-					options.legendHorizontalPosition === "left") {
-					return legendWidth;
-				}
-				return 0;
-
-			})
-		;
-	},
-
-	// =========================================================================//
-	// PUBLIC API																//
-	// =========================================================================//
-
-	/**
-	 * Shift the calendar forward
-	 */
-	next: function(n) {
-		"use strict";
-
-		if (arguments.length === 0) {
-			n = 1;
-		}
-		return this.loadNextDomain(n);
-	},
-
-	/**
-	 * Shift the calendar backward
-	 */
-	previous: function(n) {
-		"use strict";
-
-		if (arguments.length === 0) {
-			n = 1;
-		}
-		return this.loadPreviousDomain(n);
-	},
-
-	/**
-	 * Jump directly to a specific date
-	 *
-	 * JumpTo will scroll the calendar until the wanted domain with the specified
-	 * date is visible. Unless you set reset to true, the wanted domain
-	 * will not necessarily be the first (leftmost) domain of the calendar.
-	 *
-	 * @param Date date Jump to the domain containing that date
-	 * @param bool reset Whether the wanted domain should be the first domain of the calendar
-	 * @param bool True of the calendar was scrolled
-	 */
-	jumpTo: function(date, reset) {
-		"use strict";
-
-		if (arguments.length < 2) {
-			reset = false;
-		}
-		var domains = this.getDomainKeys();
-		var firstDomain = domains[0];
-		var lastDomain = domains[domains.length-1];
-
-		if (date < firstDomain) {
-			return this.loadPreviousDomain(this.getDomain(firstDomain, date).length);
-		} else {
-			if (reset) {
-				return this.loadNextDomain(this.getDomain(firstDomain, date).length);
-			}
-
-			if (date > lastDomain) {
-				return this.loadNextDomain(this.getDomain(lastDomain, date).length);
-			}
-		}
-
-		return false;
-	},
-
-	/**
-	 * Navigate back to the start date
-	 *
-	 * @since  3.3.8
-	 * @return void
-	 */
-	rewind: function() {
-		"use strict";
-
-		this.jumpTo(this.options.start, true);
-	},
-
-	/**
-	 * Update the calendar with new data
-	 *
-	 * @param  object|string		dataSource		The calendar's datasource, same type as this.options.data
-	 * @param  boolean|function		afterLoad		Whether to execute afterLoad() on the data. Pass directly a function
-	 * if you don't want to use the afterLoad() callback
-	 */
-	update: function(dataSource, afterLoad, updateMode) {
-		"use strict";
-
-		if (arguments.length < 2) {
-			afterLoad = true;
-		}
-		if (arguments.length < 3) {
-			updateMode = this.RESET_ALL_ON_UPDATE;
-		}
-
-		var domains = this.getDomainKeys();
-		var self = this;
-		this.getDatas(
-			dataSource,
-			new Date(domains[0]),
-			this.getSubDomain(domains[domains.length-1]).pop(),
-			function() {
-				self.fill();
-			},
-			afterLoad,
-			updateMode
-		);
-	},
-
-	/**
-	 * Set the legend
-	 *
-	 * @param array legend an array of integer, representing the different threshold value
-	 * @param array colorRange an array of 2 hex colors, for the minimum and maximum colors
-	 */
-	setLegend: function() {
-		"use strict";
-
-		var oldLegend = this.options.legend.slice(0);
-		if (arguments.length >= 1 && Array.isArray(arguments[0])) {
-			this.options.legend = arguments[0];
-		}
-		if (arguments.length >= 2) {
-			if (Array.isArray(arguments[1]) && arguments[1].length >= 2) {
-				this.options.legendColors = [arguments[1][0], arguments[1][1]];
-			} else {
-				this.options.legendColors = arguments[1];
-			}
-		}
-
-		if ((arguments.length > 0 && !arrayEquals(oldLegend, this.options.legend)) || arguments.length >= 2) {
-			this.Legend.buildColors();
-			this.fill();
-		}
-
-		this.Legend.redraw(this.graphDim.width - this.options.domainGutter - this.options.cellPadding);
-	},
-
-	/**
-	 * Remove the legend
-	 *
-	 * @return bool False if there is no legend to remove
-	 */
-	removeLegend: function() {
-		"use strict";
-
-		if (!this.options.displayLegend) {
-			return false;
-		}
-		this.options.displayLegend = false;
-		this.Legend.remove();
-		return true;
-	},
-
-	/**
-	 * Display the legend
-	 *
-	 * @return bool False if the legend was already displayed
-	 */
-	showLegend: function() {
-		"use strict";
-
-		if (this.options.displayLegend) {
-			return false;
-		}
-		this.options.displayLegend = true;
-		this.Legend.redraw(this.graphDim.width - this.options.domainGutter - this.options.cellPadding);
-		return true;
-	},
-
-	/**
-	 * Highlight dates
-	 *
-	 * Add a highlight class to a set of dates
-	 *
-	 * @since  3.3.5
-	 * @param  array Array of dates to highlight
-	 * @return bool True if dates were highlighted
-	 */
-	highlight: function(args) {
-		"use strict";
-
-		if ((this.options.highlight = this.expandDateSetting(args)).length > 0) {
-			this.fill();
-			return true;
-		}
-		return false;
-	},
-
-	/**
-	 * Destroy the calendar
-	 *
-	 * Usage: cal = cal.destroy();
-	 *
-	 * @since  3.3.6
-	 * @param function A callback function to trigger after destroying the calendar
-	 * @return null
-	 */
-	destroy: function(callback) {
-		"use strict";
-
-		this.root.transition().duration(this.options.animationDuration)
-			.attr("width", 0)
-			.attr("height", 0)
-			.remove()
-			.each("end", function() {
-				if (typeof callback === "function") {
-					callback();
-				} else if (arguments.length > 0) {
-					console.log("Provided callback for destroy() is not a function.");
-				}
-			})
-		;
-
-		return null;
-	},
-
-	getSVG: function() {
-		"use strict";
-
-		var styles = {
-			".cal-heatmap-container": {},
-			".graph": {},
-			".graph-rect": {},
-			"rect.highlight": {},
-			"rect.now": {},
-			"text.highlight": {},
-			"text.now": {},
-			".domain-background": {},
-			".graph-label": {},
-			".subdomain-text": {},
-			".q0": {},
-			".qi": {}
-		};
-
-		for (var j = 1, total = this.options.legend.length+1; j <= total; j++) {
-			styles[".q" + j] = {};
-		}
-
-		var root = this.root;
-
-		var whitelistStyles = [
-			// SVG specific properties
-			"stroke", "stroke-width", "stroke-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-miterlimit",
-			"fill", "fill-opacity", "fill-rule",
-			"marker", "marker-start", "marker-mid", "marker-end",
-			"alignement-baseline", "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal", "glyph-orientation-vertical", "kerning", "text-anchor",
-			"shape-rendering",
-
-			// Text Specific properties
-			"text-transform", "font-family", "font", "font-size", "font-weight"
-		];
-
-		var filterStyles = function(attribute, property, value) {
-			if (whitelistStyles.indexOf(property) !== -1) {
-				styles[attribute][property] = value;
-			}
-		};
-
-		var getElement = function(e) {
-			return root.select(e)[0][0];
-		};
-
-		/* jshint forin:false */
-		for (var element in styles) {
-			if (!styles.hasOwnProperty(element)) {
-				continue;
-			}
-
-			var dom = getElement(element);
-
-			if (dom === null) {
-				continue;
-			}
-
-			// The DOM Level 2 CSS way
-			/* jshint maxdepth: false */
-			if ("getComputedStyle" in window) {
-				var cs = getComputedStyle(dom, null);
-				if (cs.length !== 0) {
-					for (var i = 0; i < cs.length; i++) {
-						filterStyles(element, cs.item(i), cs.getPropertyValue(cs.item(i)));
-					}
-
-				// Opera workaround. Opera doesn"t support `item`/`length`
-				// on CSSStyleDeclaration.
-				} else {
-					for (var k in cs) {
-						if (cs.hasOwnProperty(k)) {
-							filterStyles(element, k, cs[k]);
-						}
-					}
-				}
-
-			// The IE way
-			} else if ("currentStyle" in dom) {
-				var css = dom.currentStyle;
-				for (var p in css) {
-					filterStyles(element, p, css[p]);
-				}
-			}
-		}
-
-		var string = "<svg xmlns=\"http://www.w3.org/2000/svg\" "+
-		"xmlns:xlink=\"http://www.w3.org/1999/xlink\"><style type=\"text/css\"><![CDATA[ ";
-
-		for (var style in styles) {
-			string += style + " {\n";
-			for (var l in styles[style]) {
-				string += "\t" + l + ":" + styles[style][l] + ";\n";
-			}
-			string += "}\n";
-		}
-
-		string += "]]></style>";
-		string += new XMLSerializer().serializeToString(this.root[0][0]);
-		string += "</svg>";
-
-		return string;
-	}
-};
-
-// =========================================================================//
-// DOMAIN POSITION COMPUTATION												//
-// =========================================================================//
-
-/**
- * Compute the position of a domain, relative to the calendar
- */
-var DomainPosition = function() {
-	"use strict";
-
-	this.positions = d3.map();
-};
-
-DomainPosition.prototype.getPosition = function(d) {
-	"use strict";
-
-	return this.positions.get(d);
-};
-
-DomainPosition.prototype.getPositionFromIndex = function(i) {
-	"use strict";
-
-	var domains = this.getKeys();
-	return this.positions.get(domains[i]);
-};
-
-DomainPosition.prototype.getLast = function() {
-	"use strict";
-
-	var domains = this.getKeys();
-	return this.positions.get(domains[domains.length-1]);
-};
-
-DomainPosition.prototype.setPosition = function(d, dim) {
-	"use strict";
-
-	this.positions.set(d, dim);
-};
-
-DomainPosition.prototype.shiftRightBy = function(exitingDomainDim) {
-	"use strict";
-
-	this.positions.forEach(function(key, value) {
-		this.set(key, value - exitingDomainDim);
-	});
-
-	var domains = this.getKeys();
-	this.positions.remove(domains[0]);
-};
-
-DomainPosition.prototype.shiftLeftBy = function(enteringDomainDim) {
-	"use strict";
-
-	this.positions.forEach(function(key, value) {
-		this.set(key, value + enteringDomainDim);
-	});
-
-	var domains = this.getKeys();
-	this.positions.remove(domains[domains.length-1]);
-};
-
-DomainPosition.prototype.getKeys = function() {
-	"use strict";
-
-	return this.positions.keys().sort(function(a, b) {
-		return parseInt(a, 10) - parseInt(b, 10);
-	});
-};
-
-// =========================================================================//
-// LEGEND																	//
-// =========================================================================//
-
-var Legend = function(calendar) {
-	"use strict";
-
-	this.calendar = calendar;
-	this.computeDim();
-
-	if (calendar.options.legendColors !== null) {
-		this.buildColors();
-	}
-};
-
-Legend.prototype.computeDim = function() {
-	"use strict";
-
-	var options = this.calendar.options; // Shorter accessor for variable name mangling when minifying
-	this.dim = {
-		width:
-			options.legendCellSize * (options.legend.length+1) +
-			options.legendCellPadding * (options.legend.length),
-		height:
-			options.legendCellSize
-	};
-};
-
-Legend.prototype.remove = function() {
-	"use strict";
-
-	this.calendar.root.select(".graph-legend").remove();
-	this.calendar.resize();
-};
-
-Legend.prototype.redraw = function(width) {
-	"use strict";
-
-	if (!this.calendar.options.displayLegend) {
-		return false;
-	}
-
-	var parent = this;
-	var calendar = this.calendar;
-	var legend = calendar.root;
-	var legendItem;
-	var options = calendar.options; // Shorter accessor for variable name mangling when minifying
-
-	this.computeDim();
-
-	var _legend = options.legend.slice(0);
-	_legend.push(_legend[_legend.length-1]+1);
-
-	var legendElement = calendar.root.select(".graph-legend");
-	if (legendElement[0][0] !== null) {
-		legend = legendElement;
-		legendItem = legend
-			.select("g")
-			.selectAll("rect").data(_legend)
-		;
-	} else {
-		// Creating the new legend DOM if it doesn't already exist
-		legend = options.legendVerticalPosition === "top" ? legend.insert("svg", ".graph") : legend.append("svg");
-
-		legend
-			.attr("x", getLegendXPosition())
-			.attr("y", getLegendYPosition())
-		;
-
-		legendItem = legend
-			.attr("class", "graph-legend")
-			.attr("height", parent.getDim("height"))
-			.attr("width", parent.getDim("width"))
-			.append("g")
-			.selectAll().data(_legend)
-		;
-	}
-
-	legendItem
-		.enter()
-		.append("rect")
-		.call(legendCellLayout)
-		.attr("class", function(d){ return calendar.Legend.getClass(d, (calendar.legendScale === null)); })
-		.attr("fill-opacity", 0)
-		.call(function(selection) {
-			if (calendar.legendScale !== null && options.legendColors !== null && options.legendColors.hasOwnProperty("base")) {
-				selection.attr("fill", options.legendColors.base);
-			}
-		})
-		.append("title")
-	;
-
-	legendItem.exit().transition().duration(options.animationDuration)
-	.attr("fill-opacity", 0)
-	.remove();
-
-	legendItem.transition().delay(function(d, i) { return options.animationDuration * i/10; })
-		.call(legendCellLayout)
-		.attr("fill-opacity", 1)
-		.call(function(element) {
-			element.attr("fill", function(d, i) {
-				if (calendar.legendScale === null) {
-					return "";
-				}
-
-				if (i === 0) {
-					return calendar.legendScale(d - 1);
-				}
-				return calendar.legendScale(options.legend[i-1]);
-			});
-
-			element.attr("class", function(d) { return calendar.Legend.getClass(d, (calendar.legendScale === null)); });
-		})
-	;
-
-	function legendCellLayout(selection) {
-		selection
-			.attr("width", options.legendCellSize)
-			.attr("height", options.legendCellSize)
-			.attr("x", function(d, i) {
-				return i * (options.legendCellSize + options.legendCellPadding);
-			})
-		;
-	}
-
-	legendItem.select("title").text(function(d, i) {
-		if (i === 0) {
-			return (options.legendTitleFormat.lower).format({
-				min: options.legend[i],
-				name: options.itemName[1]
-			});
-		} else if (i === _legend.length-1) {
-			return (options.legendTitleFormat.upper).format({
-				max: options.legend[i-1],
-				name: options.itemName[1]
-			});
-		} else {
-			return (options.legendTitleFormat.inner).format({
-				down: options.legend[i-1],
-				up: options.legend[i],
-				name: options.itemName[1]
-			});
-		}
-	})
-	;
-
-	legend.transition().duration(options.animationDuration)
-		.attr("x", getLegendXPosition())
-		.attr("y", getLegendYPosition())
-		.attr("width", parent.getDim("width"))
-		.attr("height", parent.getDim("height"))
-	;
-
-	legend.select("g").transition().duration(options.animationDuration)
-		.attr("transform", function() {
-			if (options.legendOrientation === "vertical")	{
-				return "rotate(90 " + options.legendCellSize/2 + " " + options.legendCellSize/2 + ")";
-			}
-			return "";
-		})
-	;
-
-	function getLegendXPosition() {
-		switch(options.legendHorizontalPosition) {
-		case "right":
-			if (options.legendVerticalPosition === "center" || options.legendVerticalPosition === "middle") {
-				return width + options.legendMargin[3];
-			}
-			return width - parent.getDim("width") - options.legendMargin[1];
-		case "middle":
-		case "center":
-			return Math.round(width/2 - parent.getDim("width")/2);
-		default:
-			return options.legendMargin[3];
-		}
-	}
-
-	function getLegendYPosition() {
-		if (options.legendVerticalPosition === "bottom") {
-			return calendar.graphDim.height + options.legendMargin[0] - options.domainGutter - options.cellPadding;
-		}
-		return options.legendMargin[0];
-	}
-
-	calendar.resize();
-};
-
-/**
- * Return the dimension of the legend
- *
- * Takes into account rotation
- *
- * @param  string axis Width or height
- * @return int height or width in pixels
- */
-Legend.prototype.getDim = function(axis) {
-	"use strict";
-
-	var isHorizontal = (this.calendar.options.legendOrientation === "horizontal");
-
-	switch(axis) {
-	case "width":
-		return this.dim[isHorizontal ? "width": "height"];
-	case "height":
-		return this.dim[isHorizontal ? "height": "width"];
-	}
-};
-
-Legend.prototype.buildColors = function() {
-	"use strict";
-
-	var options = this.calendar.options; // Shorter accessor for variable name mangling when minifying
-
-	if (options.legendColors === null) {
-		this.calendar.legendScale = null;
-		return false;
-	}
-
-	var _colorRange = [];
-
-	if (Array.isArray(options.legendColors)) {
-		_colorRange = options.legendColors;
-	} else if (options.legendColors.hasOwnProperty("min") && options.legendColors.hasOwnProperty("max")) {
-		_colorRange = [options.legendColors.min, options.legendColors.max];
-	} else {
-		options.legendColors = null;
-		return false;
-	}
-
-	var _legend = options.legend.slice(0);
-
-	if (_legend[0] > 0) {
-		_legend.unshift(0);
-	} else if (_legend[0] < 0) {
-		// Let's guess the leftmost value, it we have to add one
-		_legend.unshift(_legend[0] - (_legend[_legend.length-1] - _legend[0])/_legend.length);
-	}
-
-	var colorScale = d3.scale.linear()
-		.range(_colorRange)
-		.interpolate(d3.interpolateHcl)
-		.domain([d3.min(_legend), d3.max(_legend)])
-	;
-
-	var legendColors = _legend.map(function(element) { return colorScale(element); });
-	this.calendar.legendScale = d3.scale.threshold().domain(options.legend).range(legendColors);
-
-	return true;
-};
-
-/**
- * Return the classname on the legend for the specified value
- *
- * @param integer n Value associated to a date
- * @param bool withCssClass Whether to display the css class used to style the cell.
- *                          Disabling will allow styling directly via html fill attribute
- *
- * @return string Classname according to the legend
- */
-Legend.prototype.getClass = function(n, withCssClass) {
-	"use strict";
-
-	if (n === null || isNaN(n)) {
-		return "";
-	}
-
-	var index = [this.calendar.options.legend.length + 1];
-
-	for (var i = 0, total = this.calendar.options.legend.length-1; i <= total; i++) {
-
-		if (this.calendar.options.legend[0] > 0 && n < 0) {
-			index = ["1", "i"];
-			break;
-		}
-
-		if (n <= this.calendar.options.legend[i]) {
-			index = [i+1];
-			break;
-		}
-	}
-
-	if (n === 0) {
-		index.push(0);
-	}
-
-	index.unshift("");
-	return (index.join(" r") + (withCssClass ? index.join(" q"): "")).trim();
-};
-
-/**
- * Sprintf like function
- * @source http://stackoverflow.com/a/4795914/805649
- * @return String
- */
-String.prototype.format = function () {
-	"use strict";
-
-	var formatted = this;
-	for (var prop in arguments[0]) {
-		if (arguments[0].hasOwnProperty(prop)) {
-			var regexp = new RegExp("\\{" + prop + "\\}", "gi");
-			formatted = formatted.replace(regexp, arguments[0][prop]);
-		}
-	}
-	return formatted;
-};
-
-/**
- * #source http://stackoverflow.com/a/383245/805649
- */
-function mergeRecursive(obj1, obj2) {
-	"use strict";
-
-	/*jshint forin:false */
-	for (var p in obj2) {
-		try {
-			// Property in destination object set; update its value.
-			if (obj2[p].constructor === Object) {
-				obj1[p] = mergeRecursive(obj1[p], obj2[p]);
-			} else {
-				obj1[p] = obj2[p];
-			}
-		} catch(e) {
-			// Property in destination object not set; create it and set its value.
-			obj1[p] = obj2[p];
-		}
-	}
-
-	return obj1;
-}
-
-/**
- * Check if 2 arrays are equals
- *
- * @link http://stackoverflow.com/a/14853974/805649
- * @param  array array the array to compare to
- * @return bool true of the 2 arrays are equals
- */
-function arrayEquals(arrayA, arrayB) {
-	"use strict";
-
-    // if the other array is a falsy value, return
-    if (!arrayB || !arrayA) {
-        return false;
-    }
-
-    // compare lengths - can save a lot of time
-    if (arrayA.length !== arrayB.length) {
-        return false;
-    }
-
-    for (var i = 0; i < arrayA.length; i++) {
-        // Check if we have nested arrays
-        if (arrayA[i] instanceof Array && arrayB[i] instanceof Array) {
-            // recurse into the nested arrays
-            if (!arrayEquals(arrayA[i], arrayB[i])) {
-                return false;
-            }
-        }
-        else if (arrayA[i] !== arrayB[i]) {
-            // Warning - two different object instances will never be equal: {x:20} != {x:20}
-            return false;
-        }
-    }
-    return true;
-}
-
-/**
- * AMD Loader
- */
-if (typeof define === "function" && define.amd) {
-	define(["d3"], function() {
-		"use strict";
-
-		return CalHeatMap;
-	});
-}
diff --git a/pagure/static/cal-heatmap/cal-heatmap.3.3.10.min.js b/pagure/static/cal-heatmap/cal-heatmap.3.3.10.min.js
deleted file mode 100644
index 1828163..0000000
--- a/pagure/static/cal-heatmap/cal-heatmap.3.3.10.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/*! cal-heatmap v3.3.10 (Tue Dec 03 2013 19:30:23)
- *  ---------------------------------------------
- *  Cal-Heatmap is a javascript module to create calendar heatmap to visualize time series data
- *  https://github.com/kamisama/cal-heatmap
- *  Licensed under the MIT license
- *  Copyright 2013 Wan Qi Chen
- */
-function mergeRecursive(t,e){"use strict";for(var n in e)try{t[n]=e[n].constructor===Object?mergeRecursive(t[n],e[n]):e[n]}catch(i){t[n]=e[n]}return t}function arrayEquals(t,e){"use strict";if(!e||!t)return!1;if(t.length!==e.length)return!1;for(var n=0;t.length>n;n++)if(t[n]instanceof Array&&e[n]instanceof Array){if(!arrayEquals(t[n],e[n]))return!1}else if(t[n]!==e[n])return!1;return!0}var CalHeatMap=function(){"use strict";function t(){i.verticalDomainLabel="top"===i.options.label.position||"bottom"===i.options.label.position,i.domainVerticalLabelHeight=null===i.options.label.height?Math.max(25,2*i.options.cellSize):i.options.label.height,i.domainHorizontalLabelWidth=0,""===i.options.domainLabelFormat&&null===i.options.label.height&&(i.domainVerticalLabelHeight=0),i.verticalDomainLabel||(i.domainVerticalLabelHeight=0,i.domainHorizontalLabelWidth=i.options.label.width),i.paint(),i.options.nextSelector!==!1&&d3.select(i.options.nextSelector).on("click."+i.options.itemNamespace,function(){return d3.event.preventDefault(),i.loadNextDomain(1)}),i.options.previousSelector!==!1&&d3.select(i.options.previousSelector).on("click."+i.options.itemNamespace,function(){return d3.event.preventDefault(),i.loadPreviousDomain(1)}),i.Legend.redraw(i.graphDim.width-i.options.domainGutter-i.options.cellPadding),i.afterLoad();var t=i.getDomainKeys();i.options.loadOnInit?i.getDatas(i.options.data,new Date(t[0]),i.getSubDomain(t[t.length-1]).pop(),function(){i.fill(),i.onComplete()}):i.onComplete(),i.checkIfMinDomainIsReached(t[0]),i.checkIfMaxDomainIsReached(i.getNextDomain().getTime())}function e(t,e){var n=i.options.cellSize*i._domainType[i.options.subDomain].column(t)+i.options.cellPadding*i._domainType[i.options.subDomain].column(t);return 2===arguments.length&&e===!0?n+=i.domainHorizontalLabelWidth+i.options.domainGutter+i.options.domainMargin[1]+i.options.domainMargin[3]:n}function n(t,e){var n=i.options.cellSize*i._domainType[i.options.subDomain].row(t)+i.options.cellPadding*i._domainType[i.options.subDomain].row(t);return 2===arguments.length&&e===!0&&(n+=i.options.domainGutter+i.domainVerticalLabelHeight+i.options.domainMargin[0]+i.options.domainMargin[2]),n}var i=this;this.allowedDataType=["json","csv","tsv","txt"],this.options={itemSelector:"#cal-heatmap",paintOnLoad:!0,range:12,cellSize:10,cellPadding:2,cellRadius:0,domainGutter:2,domainMargin:[0,0,0,0],domain:"hour",subDomain:"min",colLimit:null,rowLimit:null,weekStartOnMonday:!0,start:new Date,minDate:null,maxDate:null,data:"",dataType:this.allowedDataType[0],considerMissingDataAsZero:!1,loadOnInit:!0,verticalOrientation:!1,domainDynamicDimension:!0,label:{position:"bottom",align:"center",offset:{x:0,y:0},rotate:null,width:100,height:null},legend:[10,20,30,40],displayLegend:!0,legendCellSize:10,legendCellPadding:2,legendMargin:[0,0,0,0],legendVerticalPosition:"bottom",legendHorizontalPosition:"left",legendOrientation:"horizontal",legendColors:null,highlight:[],itemName:["item","items"],domainLabelFormat:null,subDomainTitleFormat:{empty:"{date}",filled:"{count} {name} {connector} {date}"},subDomainDateFormat:null,subDomainTextFormat:null,legendTitleFormat:{lower:"less than {min} {name}",inner:"between {down} and {up} {name}",upper:"more than {max} {name}"},animationDuration:500,nextSelector:!1,previousSelector:!1,itemNamespace:"cal-heatmap",tooltip:!1,onClick:null,afterLoad:null,afterLoadNextDomain:null,afterLoadPreviousDomain:null,onComplete:null,afterLoadData:function(t){return t},onMaxDomainReached:null,onMinDomainReached:null},this._domainType={min:{name:"minute",level:10,maxItemNumber:60,defaultRowNumber:10,defaultColumnNumber:6,row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){return Math.floor(t.getMinutes()/i._domainType.min.row(t))},y:function(t){return t.getMinutes()%i._domainType.min.row(t)}},format:{date:"%H:%M, %A %B %-e, %Y",legend:"",connector:"at"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes()).getTime()}},hour:{name:"hour",level:20,maxItemNumber:function(t){switch(i.options.domain){case"day":return 24;case"week":return 168;case"month":return 24*(i.options.domainDynamicDimension?i.getDayCountInMonth(t):31)}},defaultRowNumber:6,defaultColumnNumber:function(t){switch(i.options.domain){case"day":return 4;case"week":return 28;case"month":return i.options.domainDynamicDimension?i.getDayCountInMonth(t):31}},row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){return"month"===i.options.domain?i.options.colLimit>0||i.options.rowLimit>0?Math.floor((t.getHours()+24*(t.getDate()-1))/i._domainType.hour.row(t)):Math.floor(t.getHours()/i._domainType.hour.row(t))+4*(t.getDate()-1):"week"===i.options.domain?i.options.colLimit>0||i.options.rowLimit>0?Math.floor((t.getHours()+24*i.getWeekDay(t))/i._domainType.hour.row(t)):Math.floor(t.getHours()/i._domainType.hour.row(t))+4*i.getWeekDay(t):Math.floor(t.getHours()/i._domainType.hour.row(t))},y:function(t){var e=t.getHours();if(i.options.colLimit>0||i.options.rowLimit>0)switch(i.options.domain){case"month":e+=24*(t.getDate()-1);break;case"week":e+=24*i.getWeekDay(t)}return Math.floor(e%i._domainType.hour.row(t))}},format:{date:"%Hh, %A %B %-e, %Y",legend:"%H:00",connector:"at"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours()).getTime()}},day:{name:"day",level:30,maxItemNumber:function(t){switch(i.options.domain){case"week":return 7;case"month":return i.options.domainDynamicDimension?i.getDayCountInMonth(t):31;case"year":return i.options.domainDynamicDimension?i.getDayCountInYear(t):366}},defaultColumnNumber:function(t){switch(t=new Date(t),i.options.domain){case"week":return 1;case"month":return i.options.domainDynamicDimension&&!i.options.verticalOrientation?i.getWeekNumber(new Date(t.getFullYear(),t.getMonth()+1,0))-i.getWeekNumber(t)+1:6;case"year":return i.options.domainDynamicDimension?i.getWeekNumber(new Date(t.getFullYear(),11,31))-i.getWeekNumber(new Date(t.getFullYear(),0))+1:54}},defaultRowNumber:7,row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){switch(i.options.domain){case"week":return Math.floor(i.getWeekDay(t)/i._domainType.day.row(t));case"month":return i.options.colLimit>0||i.options.rowLimit>0?Math.floor((t.getDate()-1)/i._domainType.day.row(t)):i.getWeekNumber(t)-i.getWeekNumber(new Date(t.getFullYear(),t.getMonth()));case"year":return i.options.colLimit>0||i.options.rowLimit>0?Math.floor((i.getDayOfYear(t)-1)/i._domainType.day.row(t)):i.getWeekNumber(t)}},y:function(t){var e=i.getWeekDay(t);if(i.options.colLimit>0||i.options.rowLimit>0)switch(i.options.domain){case"year":e=i.getDayOfYear(t)-1;break;case"week":e=i.getWeekDay(t);break;case"month":e=t.getDate()-1}return Math.floor(e%i._domainType.day.row(t))}},format:{date:"%A %B %-e, %Y",legend:"%e %b",connector:"on"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}},week:{name:"week",level:40,maxItemNumber:54,defaultColumnNumber:function(t){switch(t=new Date(t),i.options.domain){case"year":return i._domainType.week.maxItemNumber;case"month":return i.getWeekNumber(new Date(t.getFullYear(),t.getMonth()+1,0))-i.getWeekNumber(t)}},defaultRowNumber:1,row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){switch(i.options.domain){case"year":return Math.floor(i.getWeekNumber(t)/i._domainType.week.row(t));case"month":return Math.floor(i.getMonthWeekNumber(t)/i._domainType.week.row(t))}},y:function(t){return i.getWeekNumber(t)%i._domainType.week.row(t)}},format:{date:"%B Week #%W",legend:"%B Week #%W",connector:"on"},extractUnit:function(t){var e=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n=e.getDay()-1;return 0>n&&(n=6),e.setDate(e.getDate()-n),e.getTime()}},month:{name:"month",level:50,maxItemNumber:12,defaultColumnNumber:12,defaultRowNumber:1,row:function(){return i.getSubDomainRowNumber()},column:function(){return i.getSubDomainColumnNumber()},position:{x:function(t){return Math.floor(t.getMonth()/i._domainType.month.row(t))},y:function(t){return t.getMonth()%i._domainType.month.row(t)}},format:{date:"%B %Y",legend:"%B",connector:"on"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth()).getTime()}},year:{name:"year",level:60,row:function(){return i.options.rowLimit||1},column:function(){return i.options.colLimit||1},position:{x:function(){return 1},y:function(){return 1}},format:{date:"%Y",legend:"%Y",connector:"on"},extractUnit:function(t){return new Date(t.getFullYear()).getTime()}}};for(var o in this._domainType)if(this._domainType.hasOwnProperty(o)){var a=this._domainType[o];this._domainType["x_"+o]={name:"x_"+o,level:a.type,maxItemNumber:a.maxItemNumber,defaultRowNumber:a.defaultRowNumber,defaultColumnNumber:a.defaultColumnNumber,row:a.column,column:a.row,position:{x:a.position.y,y:a.position.x},format:a.format,extractUnit:a.extractUnit}}this.lastInsertedSvg=null,this._completed=!1,this._domains=d3.map(),this.graphDim={width:0,height:0},this.legendDim={width:0,height:0},this.NAVIGATE_LEFT=1,this.NAVIGATE_RIGHT=2,this.RESET_ALL_ON_UPDATE=0,this.RESET_SINGLE_ON_UPDATE=1,this.APPEND_ON_UPDATE=2,this.DEFAULT_LEGEND_MARGIN=10,this.root=null,this.tooltip=null,this._maxDomainReached=!1,this._minDomainReached=!1,this.domainPosition=new DomainPosition,this.Legend=null,this.legendScale=null,this.DSTDomain=[],this._init=function(){return i.getDomain(i.options.start).map(function(t){return t.getTime()}).map(function(t){i._domains.set(t,i.getSubDomain(t).map(function(t){return{t:i._domainType[i.options.subDomain].extractUnit(t),v:null}}))}),i.root=d3.select(i.options.itemSelector).append("svg").attr("class","cal-heatmap-container"),i.tooltip=d3.select(i.options.itemSelector).attr("style",function(){var t=d3.select(i.options.itemSelector).attr("style");return(null!==t?t:"")+"position:relative;"}).append("div").attr("class","ch-tooltip"),i.root.attr("x",0).attr("y",0).append("svg").attr("class","graph"),i.Legend=new Legend(i),i.options.paintOnLoad&&t(),!0},this.paint=function(t){function o(e,n,o,a){var r=0;switch(t){case!1:return r=n[o],n[o]+=a,i.domainPosition.setPosition(e,r),r;case i.NAVIGATE_RIGHT:return i.domainPosition.setPosition(e,n[o]),l=a,u=i.domainPosition.getPositionFromIndex(1),i.domainPosition.shiftRightBy(u),n[o];case i.NAVIGATE_LEFT:return r=-a,l=-r,u=n[o]-i.domainPosition.getLast(),i.domainPosition.setPosition(e,r),i.domainPosition.shiftLeftBy(l),r}}function a(t){switch(r.label.rotate){case"right":t.attr("transform",function(t){var n="rotate(90), ";switch(r.label.position){case"right":n+="translate(-"+e(t)+" , -"+e(t)+")";break;case"left":n+="translate(0, -"+i.domainHorizontalLabelWidth+")"}return n});break;case"left":t.attr("transform",function(t){var n="rotate(270), ";switch(r.label.position){case"right":n+="translate(-"+(e(t)+i.domainHorizontalLabelWidth)+" , "+e(t)+")";break;case"left":n+="translate(-"+i.domainHorizontalLabelWidth+" , "+i.domainHorizontalLabelWidth+")"}return n})}}var r=i.options;0===arguments.length&&(t=!1);var s=i.root.select(".graph").selectAll(".graph-domain").data(function(){var e=i.getDomainKeys();return t===i.NAVIGATE_LEFT?e.reverse():e},function(t){return t}),l=0,u=0,m=s.enter().append("svg").attr("width",function(t){return e(t,!0)}).attr("height",function(t){return n(t,!0)}).attr("x",function(t){return r.verticalOrientation?(i.graphDim.width=Math.max(i.graphDim.width,e(t,!0)),0):o(t,i.graphDim,"width",e(t,!0))}).attr("y",function(t){return r.verticalOrientation?o(t,i.graphDim,"height",n(t,!0)):(i.graphDim.height=Math.max(i.graphDim.height,n(t,!0)),0)}).attr("class",function(t){var e="graph-domain",n=new Date(t);switch(r.domain){case"hour":e+=" h_"+n.getHours();case"day":e+=" d_"+n.getDate()+" dy_"+n.getDay();case"week":e+=" w_"+i.getWeekNumber(n);case"month":e+=" m_"+(n.getMonth()+1);case"year":e+=" y_"+n.getFullYear()}return e});i.lastInsertedSvg=m,m.append("rect").attr("width",function(t){return e(t,!0)-r.domainGutter-r.cellPadding}).attr("height",function(t){return n(t,!0)-r.domainGutter-r.cellPadding}).attr("class","domain-background");var c=m.append("svg").attr("x",function(){return"left"===r.label.position?i.domainHorizontalLabelWidth+r.domainMargin[3]:r.domainMargin[3]}).attr("y",function(){return"top"===r.label.position?i.domainVerticalLabelHeight+r.domainMargin[0]:r.domainMargin[0]}).attr("class","graph-subdomain-group"),h=c.selectAll("g").data(function(t){return i._domains.get(t)}).enter().append("g");h.append("rect").attr("class",function(t){return"graph-rect"+i.getHighlightClassName(t.t)+(null!==r.onClick?" hover_cursor":"")}).attr("width",r.cellSize).attr("height",r.cellSize).attr("x",function(t){return i.positionSubDomainX(t.t)}).attr("y",function(t){return i.positionSubDomainY(t.t)}).on("click",function(t){return null!==r.onClick?i.onClick(new Date(t.t),t.v):void 0}).call(function(t){r.cellRadius>0&&t.attr("rx",r.cellRadius).attr("ry",r.cellRadius),null!==i.legendScale&&null!==r.legendColors&&r.legendColors.hasOwnProperty("base")&&t.attr("fill",r.legendColors.base),r.tooltip&&(t.on("mouseover",function(t){var e=this.parentNode.parentNode.parentNode;i.tooltip.html(i.getSubDomainTitle(t)).attr("style","display: block;"),i.tooltip.attr("style","display: block; left: "+(i.positionSubDomainX(t.t)-i.tooltip[0][0].offsetWidth/2+r.cellSize/2+parseInt(e.getAttribute("x"),10))+"px; "+"top: "+(i.positionSubDomainY(t.t)-i.tooltip[0][0].offsetHeight-r.cellSize/2+parseInt(e.getAttribute("y"),10))+"px;")}),t.on("mouseout",function(){i.tooltip.attr("style","display:none").html("")}))}),r.tooltip||h.append("title").text(function(t){return i.formatDate(new Date(t.t),r.subDomainDateFormat)}),""!==r.domainLabelFormat&&m.append("text").attr("class","graph-label").attr("y",function(t){var e=r.domainMargin[0];switch(r.label.position){case"top":e+=i.domainVerticalLabelHeight/2;break;case"bottom":e+=n(t)+i.domainVerticalLabelHeight/2}return e+r.label.offset.y*("right"===r.label.rotate&&"right"===r.label.position||"left"===r.label.rotate&&"left"===r.label.position?-1:1)}).attr("x",function(t){var n=r.domainMargin[3];switch(r.label.position){case"right":n+=e(t);break;case"bottom":case"top":n+=e(t)/2}return"right"===r.label.align?n+i.domainHorizontalLabelWidth-r.label.offset.x*("right"===r.label.rotate?-1:1):n+r.label.offset.x}).attr("text-anchor",function(){switch(r.label.align){case"start":case"left":return"start";case"end":case"right":return"end";default:return"middle"}}).attr("dominant-baseline",function(){return i.verticalDomainLabel?"middle":"top"}).text(function(t){return i.formatDate(new Date(t),r.domainLabelFormat)}).call(a),null!==r.subDomainTextFormat&&h.append("text").attr("class",function(t){return"subdomain-text"+i.getHighlightClassName(t.t)}).attr("x",function(t){return i.positionSubDomainX(t.t)+r.cellSize/2}).attr("y",function(t){return i.positionSubDomainY(t.t)+r.cellSize/2}).attr("text-anchor","middle").attr("dominant-baseline","central").text(function(t){return i.formatDate(new Date(t.t),r.subDomainTextFormat)}),t!==!1&&s.transition().duration(r.animationDuration).attr("x",function(t){return r.verticalOrientation?0:i.domainPosition.getPosition(t)}).attr("y",function(t){return r.verticalOrientation?i.domainPosition.getPosition(t):0});var g=i.graphDim.width,d=i.graphDim.height;r.verticalOrientation?i.graphDim.height+=l-u:i.graphDim.width+=l-u,s.exit().transition().duration(r.animationDuration).attr("x",function(n){if(r.verticalOrientation)return 0;switch(t){case i.NAVIGATE_LEFT:return Math.min(i.graphDim.width,g);case i.NAVIGATE_RIGHT:return-e(n,!0)}}).attr("y",function(e){if(!r.verticalOrientation)return 0;switch(t){case i.NAVIGATE_LEFT:return Math.min(i.graphDim.height,d);case i.NAVIGATE_RIGHT:return-n(e,!0)}}).remove(),i.resize()}};CalHeatMap.prototype={init:function(t){"use strict";function e(t,e,n){if((e&&t===!1||t instanceof Element||"string"==typeof t)&&""!==t)return!0;throw Error("The "+n+" is not valid")}function n(t){switch(t){case"year":return"month";case"month":return"day";case"week":return"day";case"day":return"hour";default:return"min"}}function i(){if(!m._domainType.hasOwnProperty(c.domain)||"min"===c.domain||"x_"===c.domain.substring(0,2))throw Error("The domain '"+c.domain+"' is not valid");if(!m._domainType.hasOwnProperty(c.subDomain)||"year"===c.subDomain)throw Error("The subDomain '"+c.subDomain+"' is not valid");if(m._domainType[c.domain].level<=m._domainType[c.subDomain].level)throw Error("'"+c.subDomain+"' is not a valid subDomain to '"+c.domain+"'");return!0}function o(){if(!t.hasOwnProperty("label")||t.hasOwnProperty("label")&&!t.label.hasOwnProperty("align")){switch(c.label.position){case"left":c.label.align="right";break;case"right":c.label.align="left";break;default:c.label.align="center"}"left"===c.label.rotate?c.label.align="right":"right"===c.label.rotate&&(c.label.align="left")}(!t.hasOwnProperty("label")||t.hasOwnProperty("label")&&!t.label.hasOwnProperty("offset"))&&("left"===c.label.position||"right"===c.label.position)&&(c.label.offset={x:10,y:15})}function a(){switch(c.legendVerticalPosition){case"top":c.legendMargin[2]=m.DEFAULT_LEGEND_MARGIN;break;case"bottom":c.legendMargin[0]=m.DEFAULT_LEGEND_MARGIN;break;case"middle":case"center":c.legendMargin["right"===c.legendHorizontalPosition?3:1]=m.DEFAULT_LEGEND_MARGIN}}function r(t){switch("number"==typeof t&&(t=[t]),Array.isArray(t)||(console.log("Margin only takes an integer or an array of integers"),t=[0]),t.length){case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];case 4:return t;default:return t.slice(0,4)}}function s(t){return"string"==typeof t?[t,t+(""!==t?"s":"")]:Array.isArray(t)?1===t.length?[t[0],t[0]+"s"]:t.length>2?t.slice(0,2):t:["item","items"]}function l(t){return t>0?t:null}function u(t){return t>0&&c.colLimit>0?(console.log("colLimit and rowLimit are mutually exclusive, rowLimit will be ignored"),null):t>0?t:null}var m=this,c=m.options=mergeRecursive(m.options,t);if(i(),e(c.itemSelector,!1,"itemSelector"),-1===m.allowedDataType.indexOf(c.dataType))throw Error("The data type '"+c.dataType+"' is not valid data type");if(null===d3.select(c.itemSelector)[0][0])throw Error("The node '"+c.itemSelector+"' specified in itemSelector does not exists");try{e(c.nextSelector,!0,"nextSelector"),e(c.previousSelector,!0,"previousSelector")}catch(h){return console.log(h.message),!1}t.hasOwnProperty("subDomain")||(this.options.subDomain=n(t.domain)),("string"!=typeof c.itemNamespace||""===c.itemNamespace)&&(console.log("itemNamespace can not be empty, falling back to cal-heatmap"),c.itemNamespace="cal-heatmap");var g=["data","onComplete","onClick","afterLoad","afterLoadData","afterLoadPreviousDomain","afterLoadNextDomain"];for(var d in g)t.hasOwnProperty(g[d])&&(c[g[d]]=t[g[d]]);return c.subDomainDateFormat="string"==typeof c.subDomainDateFormat||"function"==typeof c.subDomainDateFormat?c.subDomainDateFormat:this._domainType[c.subDomain].format.date,c.domainLabelFormat="string"==typeof c.domainLabelFormat||"function"==typeof c.domainLabelFormat?c.domainLabelFormat:this._domainType[c.domain].format.legend,c.subDomainTextFormat="string"==typeof c.subDomainTextFormat&&""!==c.subDomainTextFormat||"function"==typeof c.subDomainTextFormat?c.subDomainTextFormat:null,c.domainMargin=r(c.domainMargin),c.legendMargin=r(c.legendMargin),c.highlight=m.expandDateSetting(c.highlight),c.itemName=s(c.itemName),c.colLimit=l(c.colLimit),c.rowLimit=u(c.rowLimit),t.hasOwnProperty("legendMargin")||a(),o(),this._init()},expandDateSetting:function(t){"use strict";return Array.isArray(t)||(t=[t]),t.map(function(t){return"now"===t?new Date:t instanceof Date?t:!1}).filter(function(t){return t!==!1})},fill:function(t){"use strict";function e(t){return null===n.legendScale?!1:(t.attr("fill",function(t){return 0===t.v&&null!==i.legendColors&&i.legendColors.hasOwnProperty("empty")?i.legendColors.empty:0>t.v&&i.legend[0]>0&&null!==i.legendColors&&i.legendColors.hasOwnProperty("overflow")?i.legendColors.overflow:n.legendScale(Math.min(t.v,i.legend[i.legend.length-1]))}),void 0)}var n=this,i=n.options;0===arguments.length&&(t=n.root.selectAll(".graph-domain"));var o=t.selectAll("svg").selectAll("g").data(function(t){return n._domains.get(t)});o.transition().duration(i.animationDuration).select("rect").attr("class",function(t){var e=n.getHighlightClassName(t.t);return null===n.legendScale&&(e+=" graph-rect"),null!==t.v?e+=" "+n.Legend.getClass(t.v,null===n.legendScale):i.considerMissingDataAsZero&&(e+=" "+n.Legend.getClass(0,null===n.legendScale)),null!==i.onClick&&(e+=" hover_cursor"),e}).call(e),o.transition().duration(i.animationDuration).select("title").text(function(t){return n.getSubDomainTitle(t)})},triggerEvent:function(t,e,n){"use strict";return 3===arguments.length&&n||null===this.options[t]?!0:"function"==typeof this.options[t]?("function"==typeof e&&(e=e()),this.options[t].apply(this,e)):(console.log("Provided callback for "+t+" is not a function."),!1)},onClick:function(t,e){"use strict";return this.triggerEvent("onClick",[t,e])},afterLoad:function(){"use strict";return this.triggerEvent("afterLoad")},onComplete:function(){"use strict";var t=this.triggerEvent("onComplete",[],this._completed);return this._completed=!0,t},afterLoadPreviousDomain:function(t){"use strict";var e=this;return this.triggerEvent("afterLoadPreviousDomain",function(){var n=e.getSubDomain(t);return[n.shift(),n.pop()]})},afterLoadNextDomain:function(t){"use strict";var e=this;return this.triggerEvent("afterLoadNextDomain",function(){var n=e.getSubDomain(t);return[n.shift(),n.pop()]})},onMinDomainReached:function(t){"use strict";return this._minDomainReached=t,this.triggerEvent("onMinDomainReached",[t])},onMaxDomainReached:function(t){"use strict";return this._maxDomainReached=t,this.triggerEvent("onMaxDomainReached",[t])},checkIfMinDomainIsReached:function(t,e){"use strict";this.minDomainIsReached(t)&&this.onMinDomainReached(!0),2===arguments.length&&this._maxDomainReached&&!this.maxDomainIsReached(e)&&this.onMaxDomainReached(!1)},checkIfMaxDomainIsReached:function(t,e){"use strict";this.maxDomainIsReached(t)&&this.onMaxDomainReached(!0),2===arguments.length&&this._minDomainReached&&!this.minDomainIsReached(e)&&this.onMinDomainReached(!1)},formatNumber:d3.format(",g"),formatDate:function(t,e){"use strict";if(2>arguments.length&&(e="title"),"function"==typeof e)return e(t);var n=d3.time.format(e);return n(t)},getSubDomainTitle:function(t){"use strict";if(null!==t.v||this.options.considerMissingDataAsZero){var e=t.v;return null===e&&this.options.considerMissingDataAsZero&&(e=0),this.options.subDomainTitleFormat.filled.format({count:this.formatNumber(e),name:this.options.itemName[1!==e?1:0],connector:this._domainType[this.options.subDomain].format.connector,date:this.formatDate(new Date(t.t),this.options.subDomainDateFormat)})}return this.options.subDomainTitleFormat.empty.format({date:this.formatDate(new Date(t.t),this.options.subDomainDateFormat)})},loadNextDomain:function(t){"use strict";if(this._maxDomainReached||0===t)return!1;var e=this.loadNewDomains(this.NAVIGATE_RIGHT,this.getDomain(this.getNextDomain(),t));return this.afterLoadNextDomain(e.end),this.checkIfMaxDomainIsReached(this.getNextDomain().getTime(),e.start),!0},loadPreviousDomain:function(t){"use strict";if(this._minDomainReached||0===t)return!1;var e=this.loadNewDomains(this.NAVIGATE_LEFT,this.getDomain(this.getDomainKeys()[0],-t).reverse());return this.afterLoadPreviousDomain(e.start),this.checkIfMinDomainIsReached(e.start,e.end),!0},loadNewDomains:function(t,e){"use strict";function n(t){return{t:i._domainType[i.options.subDomain].extractUnit(t),v:null}}for(var i=this,o=t===this.NAVIGATE_LEFT,a=-1,r=e.length,s=this.getDomainKeys();r>++a;){if(o&&this.minDomainIsReached(e[a])){e=e.slice(0,a+1);break}if(!o&&this.maxDomainIsReached(e[a])){e=e.slice(0,a);break}}for(e=e.slice(-this.options.range),a=0,r=e.length;r>a;a++)this._domains.set(e[a].getTime(),this.getSubDomain(e[a]).map(n)),this._domains.remove(o?s.pop():s.shift());return s=this.getDomainKeys(),o&&(e=e.reverse()),this.paint(t),this.getDatas(this.options.data,e[0],this.getSubDomain(e[e.length-1]).pop(),function(){i.fill(i.lastInsertedSvg)}),{start:e[o?0:1],end:s[s.length-1]}},maxDomainIsReached:function(t){"use strict";return null!==this.options.maxDate&&t>this.options.maxDate.getTime()},minDomainIsReached:function(t){"use strict";return null!==this.options.minDate&&this.options.minDate.getTime()>=t},getDomainKeys:function(){"use strict";return this._domains.keys().map(function(t){return parseInt(t,10)}).sort(function(t,e){return t-e})},positionSubDomainX:function(t){"use strict";var e=this._domainType[this.options.subDomain].position.x(new Date(t));return e*this.options.cellSize+e*this.options.cellPadding},positionSubDomainY:function(t){"use strict";var e=this._domainType[this.options.subDomain].position.y(new Date(t));return e*this.options.cellSize+e*this.options.cellPadding},getSubDomainColumnNumber:function(t){"use strict";if(this.options.rowLimit>0){var e=this._domainType[this.options.subDomain].maxItemNumber;return"function"==typeof e&&(e=e(t)),Math.ceil(e/this.options.rowLimit)}var n=this._domainType[this.options.subDomain].defaultColumnNumber;return"function"==typeof n&&(n=n(t)),this.options.colLimit||n},getSubDomainRowNumber:function(t){"use strict";if(this.options.colLimit>0){var e=this._domainType[this.options.subDomain].maxItemNumber;return"function"==typeof e&&(e=e(t)),Math.ceil(e/this.options.colLimit)}var n=this._domainType[this.options.subDomain].defaultRowNumber;return"function"==typeof n&&(n=n(t)),this.options.rowLimit||n},getHighlightClassName:function(t){"use strict";if(t=new Date(t),this.options.highlight.length>0)for(var e in this.options.highlight)if(this.options.highlight[e]instanceof Date&&this.dateIsEqual(this.options.highlight[e],t))return" highlight"+(this.isNow(this.options.highlight[e])?" now":"");return""},isNow:function(t){"use strict";return this.dateIsEqual(t,new Date)},dateIsEqual:function(t,e){"use strict";switch(this.options.subDomain){case"x_min":case"min":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()&&t.getHours()===e.getHours()&&t.getMinutes()===e.getMinutes();case"x_hour":case"hour":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()&&t.getHours()===e.getHours();case"x_day":case"day":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate();case"x_week":case"week":case"x_month":case"month":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth();default:return!1}},getDayOfYear:d3.time.format("%j"),getWeekNumber:function(t){"use strict";var e=this.options.weekStartOnMonday===!0?d3.time.format("%W"):d3.time.format("%U");return e(t)},getMonthWeekNumber:function(t){"use strict";"number"==typeof t&&(t=new Date(t));var e=this.getWeekNumber(new Date(t.getFullYear(),t.getMonth()));return this.getWeekNumber(t)-e-1},getWeekNumberInYear:function(t){"use strict";"number"==typeof t&&(t=new Date(t))},getDayCountInMonth:function(t){"use strict";return this.getEndOfMonth(t).getDate()},getDayCountInYear:function(t){"use strict";return"number"==typeof t&&(t=new Date(t)),1===new Date(t.getFullYear(),1,29).getMonth()?366:365},getWeekDay:function(t){"use strict";return this.options.weekStartOnMonday===!1?t.getDay():0===t.getDay()?6:t.getDay()-1},getEndOfMonth:function(t){"use strict";return"number"==typeof t&&(t=new Date(t)),new Date(t.getFullYear(),t.getMonth()+1,0)},jumpDate:function(t,e,n){"use strict";var i=new Date(t);switch(n){case"hour":i.setHours(i.getHours()+e);break;case"day":i.setHours(i.getHours()+24*e);break;case"week":i.setHours(i.getHours()+7*24*e);break;case"month":i.setMonth(i.getMonth()+e);break;case"year":i.setFullYear(i.getFullYear()+e)}return new Date(i)},getMinuteDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours()),i=null;return i=e instanceof Date?new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()):new Date(+n+60*1e3*e),d3.time.minutes(Math.min(n,i),Math.max(n,i))},getHourDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours()),i=null;e instanceof Date?i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()):(i=new Date(n),i.setHours(i.getHours()+e));var o=d3.time.hours(Math.min(n,i),Math.max(n,i)),a=0,r=o.length;for(a=0;r>a;a++)if(a>0&&o[a].getHours()===o[a-1].getHours()){this.DSTDomain.push(o[a].getTime()),o.splice(a,1);break}return"number"==typeof e&&o.length>Math.abs(e)&&o.splice(o.length-1,1),o},getDayDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),i=null;return e instanceof Date?i=new Date(e.getFullYear(),e.getMonth(),e.getDate()):(i=new Date(n),i=new Date(i.setDate(i.getDate()+parseInt(e,10)))),d3.time.days(Math.min(n,i),Math.max(n,i))},getWeekDomain:function(t,e){"use strict";var n;this.options.weekStartOnMonday===!1?n=new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()):1===t.getDay()?n=new Date(t.getFullYear(),t.getMonth(),t.getDate()):0===t.getDay()?(n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n.setDate(n.getDate()-6)):n=new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()+1);var i=new Date(n),o=e;return"object"!=typeof e&&(o=new Date(i.setDate(i.getDate()+7*e))),this.options.weekStartOnMonday===!0?d3.time.mondays(Math.min(n,o),Math.max(n,o)):d3.time.sundays(Math.min(n,o),Math.max(n,o))},getMonthDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth()),i=null;return e instanceof Date?i=new Date(e.getFullYear(),e.getMonth()):(i=new Date(n),i=i.setMonth(i.getMonth()+e)),d3.time.months(Math.min(n,i),Math.max(n,i))},getYearDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),0),i=null;return i=e instanceof Date?new Date(e.getFullYear(),0):new Date(t.getFullYear()+e,0),d3.time.years(Math.min(n,i),Math.max(n,i))},getDomain:function(t,e){"use strict";switch("number"==typeof t&&(t=new Date(t)),2>arguments.length&&(e=this.options.range),this.options.domain){case"hour":var n=this.getHourDomain(t,e);return"number"==typeof e&&e>n.length&&(e>0?n.push(this.getHourDomain(n[n.length-1],2)[1]):n.shift(this.getHourDomain(n[0],-2)[0])),n;case"day":return this.getDayDomain(t,e);case"week":return this.getWeekDomain(t,e);case"month":return this.getMonthDomain(t,e);case"year":return this.getYearDomain(t,e)}},getSubDomain:function(t){"use strict";"number"==typeof t&&(t=new Date(t));var e=this,n=function(t,n){switch(n){case"year":return e.getDayCountInYear(t);case"month":return e.getDayCountInMonth(t);case"week":return 7}},i=function(t,e){switch(e){case"hour":return 60;case"day":return 1440;case"week":return 10080}},o=function(t,n){switch(n){case"day":return 24;case"week":return 168;case"month":return 24*e.getDayCountInMonth(t)}},a=function(t,n){if("month"===n){var i=new Date(t.getFullYear(),t.getMonth()+1,0),o=e.getWeekNumber(i),a=e.getWeekNumber(new Date(t.getFullYear(),t.getMonth()));return a>o&&(a=0,o++),o-a+1}return"year"===n?e.getWeekNumber(new Date(t.getFullYear(),11,31)):void 0};switch(this.options.subDomain){case"x_min":case"min":return this.getMinuteDomain(t,i(t,this.options.domain));case"x_hour":case"hour":return this.getHourDomain(t,o(t,this.options.domain));case"x_day":case"day":return this.getDayDomain(t,n(t,this.options.domain));case"x_week":case"week":return this.getWeekDomain(t,a(t,this.options.domain));case"x_month":case"month":return this.getMonthDomain(t,12)}},getNextDomain:function(t){"use strict";return 0===arguments.length&&(t=1),this.getDomain(this.jumpDate(this.getDomainKeys().pop(),t,this.options.domain),1)[0]
-},getPreviousDomain:function(t){"use strict";return 0===arguments.length&&(t=1),this.getDomain(this.jumpDate(this.getDomainKeys().shift(),-t,this.options.domain),1)[0]},getDatas:function(t,e,n,i,o,a){"use strict";var r=this;5>arguments.length&&(o=!0),6>arguments.length&&(a=this.APPEND_ON_UPDATE);var s=function(t){o!==!1?"function"==typeof o?t=o(t):"function"==typeof r.options.afterLoadData?t=r.options.afterLoadData(t):console.log("Provided callback for afterLoadData is not a function."):("csv"===r.options.dataType||"tsv"===r.options.dataType)&&(t=this.interpretCSV(t)),r.parseDatas(t,a,e,n),"function"==typeof i&&i()};switch(typeof t){case"string":if(""===t)return s({}),!0;switch(this.options.dataType){case"json":d3.json(this.parseURI(t,e,n),s);break;case"csv":d3.csv(this.parseURI(t,e,n),s);break;case"tsv":d3.tsv(this.parseURI(t,e,n),s);break;case"txt":d3.text(this.parseURI(t,e,n),"text/plain",s)}return!1;case"object":if(t===Object(t))return s(t),!1;default:return s({}),!0}},parseDatas:function(t,e,n,i){"use strict";e===this.RESET_ALL_ON_UPDATE&&this._domains.forEach(function(t,e){e.forEach(function(t,e,n){n[e].v=null})});var o={},a=function(t){return t.t};for(var r in t){var s=new Date(1e3*r),l=this.getDomain(s)[0].getTime();if(this.DSTDomain.indexOf(l)>=0&&this._domains.has(l-36e5)&&(l-=36e5),!isNaN(r)&&t.hasOwnProperty(r)&&this._domains.has(l)&&l>=+n&&+i>l){var u=this._domains.get(l);o.hasOwnProperty(l)||(o[l]=u.map(a));var m=o[l].indexOf(this._domainType[this.options.subDomain].extractUnit(s));e===this.RESET_SINGLE_ON_UPDATE?u[m].v=t[r]:isNaN(u[m].v)?u[m].v=t[r]:u[m].v+=t[r]}}},parseURI:function(t,e,n){"use strict";return t=t.replace(/\{\{t:start\}\}/g,e.getTime()/1e3),t=t.replace(/\{\{t:end\}\}/g,n.getTime()/1e3),t=t.replace(/\{\{d:start\}\}/g,e.toISOString()),t=t.replace(/\{\{d:end\}\}/g,n.toISOString())},interpretCSV:function(t){"use strict";var e,n,i={},o=Object.keys(t[0]);for(e=0,n=t.length;n>e;e++)i[t[e][o[0]]]=+t[e][o[1]];return i},resize:function(){"use strict";var t=this,e=t.options,n=e.displayLegend?t.Legend.getDim("width")+e.legendMargin[1]+e.legendMargin[3]:0,i=e.displayLegend?t.Legend.getDim("height")+e.legendMargin[0]+e.legendMargin[2]:0,o=t.graphDim.width-e.domainGutter-e.cellPadding,a=t.graphDim.height-e.domainGutter-e.cellPadding;this.root.transition().duration(e.animationDuration).attr("width",function(){return"middle"===e.legendVerticalPosition||"center"===e.legendVerticalPosition?o+n:Math.max(o,n)}).attr("height",function(){return"middle"===e.legendVerticalPosition||"center"===e.legendVerticalPosition?Math.max(a,i):a+i}),this.root.select(".graph").transition().duration(e.animationDuration).attr("y",function(){return"top"===e.legendVerticalPosition?i:0}).attr("x",function(){return"middle"!==e.legendVerticalPosition&&"center"!==e.legendVerticalPosition||"left"!==e.legendHorizontalPosition?0:n})},next:function(t){"use strict";return 0===arguments.length&&(t=1),this.loadNextDomain(t)},previous:function(t){"use strict";return 0===arguments.length&&(t=1),this.loadPreviousDomain(t)},jumpTo:function(t,e){"use strict";2>arguments.length&&(e=!1);var n=this.getDomainKeys(),i=n[0],o=n[n.length-1];return i>t?this.loadPreviousDomain(this.getDomain(i,t).length):e?this.loadNextDomain(this.getDomain(i,t).length):t>o?this.loadNextDomain(this.getDomain(o,t).length):!1},rewind:function(){"use strict";this.jumpTo(this.options.start,!0)},update:function(t,e,n){"use strict";2>arguments.length&&(e=!0),3>arguments.length&&(n=this.RESET_ALL_ON_UPDATE);var i=this.getDomainKeys(),o=this;this.getDatas(t,new Date(i[0]),this.getSubDomain(i[i.length-1]).pop(),function(){o.fill()},e,n)},setLegend:function(){"use strict";var t=this.options.legend.slice(0);arguments.length>=1&&Array.isArray(arguments[0])&&(this.options.legend=arguments[0]),arguments.length>=2&&(this.options.legendColors=Array.isArray(arguments[1])&&arguments[1].length>=2?[arguments[1][0],arguments[1][1]]:arguments[1]),(arguments.length>0&&!arrayEquals(t,this.options.legend)||arguments.length>=2)&&(this.Legend.buildColors(),this.fill()),this.Legend.redraw(this.graphDim.width-this.options.domainGutter-this.options.cellPadding)},removeLegend:function(){"use strict";return this.options.displayLegend?(this.options.displayLegend=!1,this.Legend.remove(),!0):!1},showLegend:function(){"use strict";return this.options.displayLegend?!1:(this.options.displayLegend=!0,this.Legend.redraw(this.graphDim.width-this.options.domainGutter-this.options.cellPadding),!0)},highlight:function(t){"use strict";return(this.options.highlight=this.expandDateSetting(t)).length>0?(this.fill(),!0):!1},destroy:function(t){"use strict";return this.root.transition().duration(this.options.animationDuration).attr("width",0).attr("height",0).remove().each("end",function(){"function"==typeof t?t():arguments.length>0&&console.log("Provided callback for destroy() is not a function.")}),null},getSVG:function(){"use strict";for(var t={".cal-heatmap-container":{},".graph":{},".graph-rect":{},"rect.highlight":{},"rect.now":{},"text.highlight":{},"text.now":{},".domain-background":{},".graph-label":{},".subdomain-text":{},".q0":{},".qi":{}},e=1,n=this.options.legend.length+1;n>=e;e++)t[".q"+e]={};var i=this.root,o=["stroke","stroke-width","stroke-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-miterlimit","fill","fill-opacity","fill-rule","marker","marker-start","marker-mid","marker-end","alignement-baseline","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","kerning","text-anchor","shape-rendering","text-transform","font-family","font","font-size","font-weight"],a=function(e,n,i){-1!==o.indexOf(n)&&(t[e][n]=i)},r=function(t){return i.select(t)[0][0]};for(var s in t)if(t.hasOwnProperty(s)){var l=r(s);if(null!==l)if("getComputedStyle"in window){var u=getComputedStyle(l,null);if(0!==u.length)for(var m=0;u.length>m;m++)a(s,u.item(m),u.getPropertyValue(u.item(m)));else for(var c in u)u.hasOwnProperty(c)&&a(s,c,u[c])}else if("currentStyle"in l){var h=l.currentStyle;for(var g in h)a(s,g,h[g])}}var d='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css"><![CDATA[ ';for(var p in t){d+=p+" {\n";for(var f in t[p])d+="	"+f+":"+t[p][f]+";\n";d+="}\n"}return d+="]]></style>",d+=(new XMLSerializer).serializeToString(this.root[0][0]),d+="</svg>"}};var DomainPosition=function(){"use strict";this.positions=d3.map()};DomainPosition.prototype.getPosition=function(t){"use strict";return this.positions.get(t)},DomainPosition.prototype.getPositionFromIndex=function(t){"use strict";var e=this.getKeys();return this.positions.get(e[t])},DomainPosition.prototype.getLast=function(){"use strict";var t=this.getKeys();return this.positions.get(t[t.length-1])},DomainPosition.prototype.setPosition=function(t,e){"use strict";this.positions.set(t,e)},DomainPosition.prototype.shiftRightBy=function(t){"use strict";this.positions.forEach(function(e,n){this.set(e,n-t)});var e=this.getKeys();this.positions.remove(e[0])},DomainPosition.prototype.shiftLeftBy=function(t){"use strict";this.positions.forEach(function(e,n){this.set(e,n+t)});var e=this.getKeys();this.positions.remove(e[e.length-1])},DomainPosition.prototype.getKeys=function(){"use strict";return this.positions.keys().sort(function(t,e){return parseInt(t,10)-parseInt(e,10)})};var Legend=function(t){"use strict";this.calendar=t,this.computeDim(),null!==t.options.legendColors&&this.buildColors()};Legend.prototype.computeDim=function(){"use strict";var t=this.calendar.options;this.dim={width:t.legendCellSize*(t.legend.length+1)+t.legendCellPadding*t.legend.length,height:t.legendCellSize}},Legend.prototype.remove=function(){"use strict";this.calendar.root.select(".graph-legend").remove(),this.calendar.resize()},Legend.prototype.redraw=function(t){"use strict";function e(t){t.attr("width",l.legendCellSize).attr("height",l.legendCellSize).attr("x",function(t,e){return e*(l.legendCellSize+l.legendCellPadding)})}function n(){switch(l.legendHorizontalPosition){case"right":return"center"===l.legendVerticalPosition||"middle"===l.legendVerticalPosition?t+l.legendMargin[3]:t-a.getDim("width")-l.legendMargin[1];case"middle":case"center":return Math.round(t/2-a.getDim("width")/2);default:return l.legendMargin[3]}}function i(){return"bottom"===l.legendVerticalPosition?r.graphDim.height+l.legendMargin[0]-l.domainGutter-l.cellPadding:l.legendMargin[0]}if(!this.calendar.options.displayLegend)return!1;var o,a=this,r=this.calendar,s=r.root,l=r.options;this.computeDim();var u=l.legend.slice(0);u.push(u[u.length-1]+1);var m=r.root.select(".graph-legend");null!==m[0][0]?(s=m,o=s.select("g").selectAll("rect").data(u)):(s="top"===l.legendVerticalPosition?s.insert("svg",".graph"):s.append("svg"),s.attr("x",n()).attr("y",i()),o=s.attr("class","graph-legend").attr("height",a.getDim("height")).attr("width",a.getDim("width")).append("g").selectAll().data(u)),o.enter().append("rect").call(e).attr("class",function(t){return r.Legend.getClass(t,null===r.legendScale)}).attr("fill-opacity",0).call(function(t){null!==r.legendScale&&null!==l.legendColors&&l.legendColors.hasOwnProperty("base")&&t.attr("fill",l.legendColors.base)}).append("title"),o.exit().transition().duration(l.animationDuration).attr("fill-opacity",0).remove(),o.transition().delay(function(t,e){return l.animationDuration*e/10}).call(e).attr("fill-opacity",1).call(function(t){t.attr("fill",function(t,e){return null===r.legendScale?"":0===e?r.legendScale(t-1):r.legendScale(l.legend[e-1])}),t.attr("class",function(t){return r.Legend.getClass(t,null===r.legendScale)})}),o.select("title").text(function(t,e){return 0===e?l.legendTitleFormat.lower.format({min:l.legend[e],name:l.itemName[1]}):e===u.length-1?l.legendTitleFormat.upper.format({max:l.legend[e-1],name:l.itemName[1]}):l.legendTitleFormat.inner.format({down:l.legend[e-1],up:l.legend[e],name:l.itemName[1]})}),s.transition().duration(l.animationDuration).attr("x",n()).attr("y",i()).attr("width",a.getDim("width")).attr("height",a.getDim("height")),s.select("g").transition().duration(l.animationDuration).attr("transform",function(){return"vertical"===l.legendOrientation?"rotate(90 "+l.legendCellSize/2+" "+l.legendCellSize/2+")":""}),r.resize()},Legend.prototype.getDim=function(t){"use strict";var e="horizontal"===this.calendar.options.legendOrientation;switch(t){case"width":return this.dim[e?"width":"height"];case"height":return this.dim[e?"height":"width"]}},Legend.prototype.buildColors=function(){"use strict";var t=this.calendar.options;if(null===t.legendColors)return this.calendar.legendScale=null,!1;var e=[];if(Array.isArray(t.legendColors))e=t.legendColors;else{if(!t.legendColors.hasOwnProperty("min")||!t.legendColors.hasOwnProperty("max"))return t.legendColors=null,!1;e=[t.legendColors.min,t.legendColors.max]}var n=t.legend.slice(0);n[0]>0?n.unshift(0):0>n[0]&&n.unshift(n[0]-(n[n.length-1]-n[0])/n.length);var i=d3.scale.linear().range(e).interpolate(d3.interpolateHcl).domain([d3.min(n),d3.max(n)]),o=n.map(function(t){return i(t)});return this.calendar.legendScale=d3.scale.threshold().domain(t.legend).range(o),!0},Legend.prototype.getClass=function(t,e){"use strict";if(null===t||isNaN(t))return"";for(var n=[this.calendar.options.legend.length+1],i=0,o=this.calendar.options.legend.length-1;o>=i;i++){if(this.calendar.options.legend[0]>0&&0>t){n=["1","i"];break}if(this.calendar.options.legend[i]>=t){n=[i+1];break}}return 0===t&&n.push(0),n.unshift(""),(n.join(" r")+(e?n.join(" q"):"")).trim()},String.prototype.format=function(){"use strict";var t=this;for(var e in arguments[0])if(arguments[0].hasOwnProperty(e)){var n=RegExp("\\{"+e+"\\}","gi");t=t.replace(n,arguments[0][e])}return t},"function"==typeof define&&define.amd&&define(["d3"],function(){"use strict";return CalHeatMap});
-//@ sourceMappingURL=cal-heatmap.source-map.js
\ No newline at end of file
diff --git a/pagure/static/codemirror/codemirror-5.18.2.css b/pagure/static/codemirror/codemirror-5.18.2.css
deleted file mode 100644
index 18b0bf7..0000000
--- a/pagure/static/codemirror/codemirror-5.18.2.css
+++ /dev/null
@@ -1,347 +0,0 @@
-/* BASICS */
-
-.CodeMirror {
-  /* Set height, width, borders, and global font properties here */
-  font-family: monospace;
-  height: 300px;
-  color: black;
-}
-
-/* PADDING */
-
-.CodeMirror-lines {
-  padding: 4px 0; /* Vertical padding around content */
-}
-.CodeMirror pre {
-  padding: 0 4px; /* Horizontal padding of content */
-}
-
-.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
-  background-color: white; /* The little square between H and V scrollbars */
-}
-
-/* GUTTER */
-
-.CodeMirror-gutters {
-  border-right: 1px solid #ddd;
-  background-color: #f7f7f7;
-  white-space: nowrap;
-}
-.CodeMirror-linenumbers {}
-.CodeMirror-linenumber {
-  padding: 0 3px 0 5px;
-  min-width: 20px;
-  text-align: right;
-  color: #999;
-  white-space: nowrap;
-}
-
-.CodeMirror-guttermarker { color: black; }
-.CodeMirror-guttermarker-subtle { color: #999; }
-
-/* CURSOR */
-
-.CodeMirror-cursor {
-  border-left: 1px solid black;
-  border-right: none;
-  width: 0;
-}
-/* Shown when moving in bi-directional text */
-.CodeMirror div.CodeMirror-secondarycursor {
-  border-left: 1px solid silver;
-}
-.cm-fat-cursor .CodeMirror-cursor {
-  width: auto;
-  border: 0 !important;
-  background: #7e7;
-}
-.cm-fat-cursor div.CodeMirror-cursors {
-  z-index: 1;
-}
-
-.cm-animate-fat-cursor {
-  width: auto;
-  border: 0;
-  -webkit-animation: blink 1.06s steps(1) infinite;
-  -moz-animation: blink 1.06s steps(1) infinite;
-  animation: blink 1.06s steps(1) infinite;
-  background-color: #7e7;
-}
-@-moz-keyframes blink {
-  0% {}
-  50% { background-color: transparent; }
-  100% {}
-}
-@-webkit-keyframes blink {
-  0% {}
-  50% { background-color: transparent; }
-  100% {}
-}
-@keyframes blink {
-  0% {}
-  50% { background-color: transparent; }
-  100% {}
-}
-
-/* Can style cursor different in overwrite (non-insert) mode */
-.CodeMirror-overwrite .CodeMirror-cursor {}
-
-.cm-tab { display: inline-block; text-decoration: inherit; }
-
-.CodeMirror-rulers {
-  position: absolute;
-  left: 0; right: 0; top: -50px; bottom: -20px;
-  overflow: hidden;
-}
-.CodeMirror-ruler {
-  border-left: 1px solid #ccc;
-  top: 0; bottom: 0;
-  position: absolute;
-}
-
-/* DEFAULT THEME */
-
-.cm-s-default .cm-header {color: blue;}
-.cm-s-default .cm-quote {color: #090;}
-.cm-negative {color: #d44;}
-.cm-positive {color: #292;}
-.cm-header, .cm-strong {font-weight: bold;}
-.cm-em {font-style: italic;}
-.cm-link {text-decoration: underline;}
-.cm-strikethrough {text-decoration: line-through;}
-
-.cm-s-default .cm-keyword {color: #708;}
-.cm-s-default .cm-atom {color: #219;}
-.cm-s-default .cm-number {color: #164;}
-.cm-s-default .cm-def {color: #00f;}
-.cm-s-default .cm-variable,
-.cm-s-default .cm-punctuation,
-.cm-s-default .cm-property,
-.cm-s-default .cm-operator {}
-.cm-s-default .cm-variable-2 {color: #05a;}
-.cm-s-default .cm-variable-3 {color: #085;}
-.cm-s-default .cm-comment {color: #a50;}
-.cm-s-default .cm-string {color: #a11;}
-.cm-s-default .cm-string-2 {color: #f50;}
-.cm-s-default .cm-meta {color: #555;}
-.cm-s-default .cm-qualifier {color: #555;}
-.cm-s-default .cm-builtin {color: #30a;}
-.cm-s-default .cm-bracket {color: #997;}
-.cm-s-default .cm-tag {color: #170;}
-.cm-s-default .cm-attribute {color: #00c;}
-.cm-s-default .cm-hr {color: #999;}
-.cm-s-default .cm-link {color: #00c;}
-
-.cm-s-default .cm-error {color: #f00;}
-.cm-invalidchar {color: #f00;}
-
-.CodeMirror-composing { border-bottom: 2px solid; }
-
-/* Default styles for common addons */
-
-div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
-div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
-.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
-.CodeMirror-activeline-background {background: #e8f2ff;}
-
-/* STOP */
-
-/* The rest of this file contains styles related to the mechanics of
-   the editor. You probably shouldn't touch them. */
-
-.CodeMirror {
-  position: relative;
-  overflow: hidden;
-  background: white;
-}
-
-.CodeMirror-scroll {
-  overflow: scroll !important; /* Things will break if this is overridden */
-  /* 30px is the magic margin used to hide the element's real scrollbars */
-  /* See overflow: hidden in .CodeMirror */
-  margin-bottom: -30px; margin-right: -30px;
-  padding-bottom: 30px;
-  height: 100%;
-  outline: none; /* Prevent dragging from highlighting the element */
-  position: relative;
-}
-.CodeMirror-sizer {
-  position: relative;
-  border-right: 30px solid transparent;
-}
-
-/* The fake, visible scrollbars. Used to force redraw during scrolling
-   before actual scrolling happens, thus preventing shaking and
-   flickering artifacts. */
-.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
-  position: absolute;
-  z-index: 6;
-  display: none;
-}
-.CodeMirror-vscrollbar {
-  right: 0; top: 0;
-  overflow-x: hidden;
-  overflow-y: scroll;
-}
-.CodeMirror-hscrollbar {
-  bottom: 0; left: 0;
-  overflow-y: hidden;
-  overflow-x: scroll;
-}
-.CodeMirror-scrollbar-filler {
-  right: 0; bottom: 0;
-}
-.CodeMirror-gutter-filler {
-  left: 0; bottom: 0;
-}
-
-.CodeMirror-gutters {
-  position: absolute; left: 0; top: 0;
-  min-height: 100%;
-  z-index: 3;
-}
-.CodeMirror-gutter {
-  white-space: normal;
-  height: 100%;
-  display: inline-block;
-  vertical-align: top;
-  margin-bottom: -30px;
-  /* Hack to make IE7 behave */
-  *zoom:1;
-  *display:inline;
-}
-.CodeMirror-gutter-wrapper {
-  position: absolute;
-  z-index: 4;
-  background: none !important;
-  border: none !important;
-}
-.CodeMirror-gutter-background {
-  position: absolute;
-  top: 0; bottom: 0;
-  z-index: 4;
-}
-.CodeMirror-gutter-elt {
-  position: absolute;
-  cursor: default;
-  z-index: 4;
-}
-.CodeMirror-gutter-wrapper {
-  -webkit-user-select: none;
-  -moz-user-select: none;
-  user-select: none;
-}
-
-.CodeMirror-lines {
-  cursor: text;
-  min-height: 1px; /* prevents collapsing before first draw */
-}
-.CodeMirror pre {
-  /* Reset some styles that the rest of the page might have set */
-  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
-  border-width: 0;
-  background: transparent;
-  font-family: inherit;
-  font-size: inherit;
-  margin: 0;
-  white-space: pre;
-  word-wrap: normal;
-  line-height: inherit;
-  color: inherit;
-  z-index: 2;
-  position: relative;
-  overflow: visible;
-  -webkit-tap-highlight-color: transparent;
-  -webkit-font-variant-ligatures: none;
-  font-variant-ligatures: none;
-}
-.CodeMirror-wrap pre {
-  word-wrap: break-word;
-  white-space: pre-wrap;
-  word-break: normal;
-}
-
-.CodeMirror-linebackground {
-  position: absolute;
-  left: 0; right: 0; top: 0; bottom: 0;
-  z-index: 0;
-}
-
-.CodeMirror-linewidget {
-  position: relative;
-  z-index: 2;
-  overflow: auto;
-}
-
-.CodeMirror-widget {}
-
-.CodeMirror-code {
-  outline: none;
-}
-
-/* Force content-box sizing for the elements where we expect it */
-.CodeMirror-scroll,
-.CodeMirror-sizer,
-.CodeMirror-gutter,
-.CodeMirror-gutters,
-.CodeMirror-linenumber {
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
-}
-
-.CodeMirror-measure {
-  position: absolute;
-  width: 100%;
-  height: 0;
-  overflow: hidden;
-  visibility: hidden;
-}
-
-.CodeMirror-cursor {
-  position: absolute;
-  pointer-events: none;
-}
-.CodeMirror-measure pre { position: static; }
-
-div.CodeMirror-cursors {
-  visibility: hidden;
-  position: relative;
-  z-index: 3;
-}
-div.CodeMirror-dragcursors {
-  visibility: visible;
-}
-
-.CodeMirror-focused div.CodeMirror-cursors {
-  visibility: visible;
-}
-
-.CodeMirror-selected { background: #d9d9d9; }
-.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
-.CodeMirror-crosshair { cursor: crosshair; }
-.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
-.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
-
-.cm-searching {
-  background: #ffa;
-  background: rgba(255, 255, 0, .4);
-}
-
-/* IE7 hack to prevent it from returning funny offsetTops on the spans */
-.CodeMirror span { *vertical-align: text-bottom; }
-
-/* Used to force a border model for a node */
-.cm-force-border { padding-right: .1px; }
-
-@media print {
-  /* Hide the cursor when printing */
-  .CodeMirror div.CodeMirror-cursors {
-    visibility: hidden;
-  }
-}
-
-/* See issue #2901 */
-.cm-tab-wrap-hack:after { content: ''; }
-
-/* Help users use markselection to safely style text background */
-span.CodeMirror-selectedtext { background: none; }
diff --git a/pagure/static/codemirror/codemirror-5.18.2.js b/pagure/static/codemirror/codemirror-5.18.2.js
deleted file mode 100644
index 1071bb9..0000000
--- a/pagure/static/codemirror/codemirror-5.18.2.js
+++ /dev/null
@@ -1,8961 +0,0 @@
-// CodeMirror, copyright (c) by Marijn Haverbeke and others
-// Distributed under an MIT license: http://codemirror.net/LICENSE
-
-// This is CodeMirror (http://codemirror.net), a code editor
-// implemented in JavaScript on top of the browser's DOM.
-//
-// You can find some technical background for some of the code below
-// at http://marijnhaverbeke.nl/blog/#cm-internals .
-
-(function(mod) {
-  if (typeof exports == "object" && typeof module == "object") // CommonJS
-    module.exports = mod();
-  else if (typeof define == "function" && define.amd) // AMD
-    return define([], mod);
-  else // Plain browser env
-    (this || window).CodeMirror = mod();
-})(function() {
-  "use strict";
-
-  // BROWSER SNIFFING
-
-  // Kludges for bugs and behavior differences that can't be feature
-  // detected are enabled based on userAgent etc sniffing.
-  var userAgent = navigator.userAgent;
-  var platform = navigator.platform;
-
-  var gecko = /gecko\/\d/i.test(userAgent);
-  var ie_upto10 = /MSIE \d/.test(userAgent);
-  var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent);
-  var ie = ie_upto10 || ie_11up;
-  var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]);
-  var webkit = /WebKit\//.test(userAgent);
-  var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent);
-  var chrome = /Chrome\//.test(userAgent);
-  var presto = /Opera\//.test(userAgent);
-  var safari = /Apple Computer/.test(navigator.vendor);
-  var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent);
-  var phantom = /PhantomJS/.test(userAgent);
-
-  var ios = /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent);
-  // This is woefully incomplete. Suggestions for alternative methods welcome.
-  var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
-  var mac = ios || /Mac/.test(platform);
-  var chromeOS = /\bCrOS\b/.test(userAgent);
-  var windows = /win/i.test(platform);
-
-  var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
-  if (presto_version) presto_version = Number(presto_version[1]);
-  if (presto_version && presto_version >= 15) { presto = false; webkit = true; }
-  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X
-  var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));
-  var captureRightClick = gecko || (ie && ie_version >= 9);
-
-  // Optimize some code when these features are not used.
-  var sawReadOnlySpans = false, sawCollapsedSpans = false;
-
-  // EDITOR CONSTRUCTOR
-
-  // A CodeMirror instance represents an editor. This is the object
-  // that user code is usually dealing with.
-
-  function CodeMirror(place, options) {
-    if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);
-
-    this.options = options = options ? copyObj(options) : {};
-    // Determine effective options based on given values and defaults.
-    copyObj(defaults, options, false);
-    setGuttersForLineNumbers(options);
-
-    var doc = options.value;
-    if (typeof doc == "string") doc = new Doc(doc, options.mode, null, options.lineSeparator);
-    this.doc = doc;
-
-    var input = new CodeMirror.inputStyles[options.inputStyle](this);
-    var display = this.display = new Display(place, doc, input);
-    display.wrapper.CodeMirror = this;
-    updateGutters(this);
-    themeChanged(this);
-    if (options.lineWrapping)
-      this.display.wrapper.className += " CodeMirror-wrap";
-    if (options.autofocus && !mobile) display.input.focus();
-    initScrollbars(this);
-
-    this.state = {
-      keyMaps: [],  // stores maps added by addKeyMap
-      overlays: [], // highlighting overlays, as added by addOverlay
-      modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info
-      overwrite: false,
-      delayingBlurEvent: false,
-      focused: false,
-      suppressEdits: false, // used to disable editing during key handlers when in readOnly mode
-      pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll
-      selectingText: false,
-      draggingText: false,
-      highlight: new Delayed(), // stores highlight worker timeout
-      keySeq: null,  // Unfinished key sequence
-      specialChars: null
-    };
-
-    var cm = this;
-
-    // Override magic textarea content restore that IE sometimes does
-    // on our hidden textarea on reload
-    if (ie && ie_version < 11) setTimeout(function() { cm.display.input.reset(true); }, 20);
-
-    registerEventHandlers(this);
-    ensureGlobalHandlers();
-
-    startOperation(this);
-    this.curOp.forceUpdate = true;
-    attachDoc(this, doc);
-
-    if ((options.autofocus && !mobile) || cm.hasFocus())
-      setTimeout(bind(onFocus, this), 20);
-    else
-      onBlur(this);
-
-    for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt))
-      optionHandlers[opt](this, options[opt], Init);
-    maybeUpdateLineNumberWidth(this);
-    if (options.finishInit) options.finishInit(this);
-    for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);
-    endOperation(this);
-    // Suppress optimizelegibility in Webkit, since it breaks text
-    // measuring on line wrapping boundaries.
-    if (webkit && options.lineWrapping &&
-        getComputedStyle(display.lineDiv).textRendering == "optimizelegibility")
-      display.lineDiv.style.textRendering = "auto";
-  }
-
-  // DISPLAY CONSTRUCTOR
-
-  // The display handles the DOM integration, both for input reading
-  // and content drawing. It holds references to DOM nodes and
-  // display-related state.
-
-  function Display(place, doc, input) {
-    var d = this;
-    this.input = input;
-
-    // Covers bottom-right square when both scrollbars are present.
-    d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler");
-    d.scrollbarFiller.setAttribute("cm-not-content", "true");
-    // Covers bottom of gutter when coverGutterNextToScrollbar is on
-    // and h scrollbar is present.
-    d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler");
-    d.gutterFiller.setAttribute("cm-not-content", "true");
-    // Will contain the actual code, positioned to cover the viewport.
-    d.lineDiv = elt("div", null, "CodeMirror-code");
-    // Elements are added to these to represent selection and cursors.
-    d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1");
-    d.cursorDiv = elt("div", null, "CodeMirror-cursors");
-    // A visibility: hidden element used to find the size of things.
-    d.measure = elt("div", null, "CodeMirror-measure");
-    // When lines outside of the viewport are measured, they are drawn in this.
-    d.lineMeasure = elt("div", null, "CodeMirror-measure");
-    // Wraps everything that needs to exist inside the vertically-padded coordinate system
-    d.lineSpace = elt("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],
-                      null, "position: relative; outline: none");
-    // Moved around its parent to cover visible view.
-    d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative");
-    // Set to the height of the document, allowing scrolling.
-    d.sizer = elt("div", [d.mover], "CodeMirror-sizer");
-    d.sizerWidth = null;
-    // Behavior of elts with overflow: auto and padding is
-    // inconsistent across browsers. This is used to ensure the
-    // scrollable area is big enough.
-    d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;");
-    // Will contain the gutters, if any.
-    d.gutters = elt("div", null, "CodeMirror-gutters");
-    d.lineGutter = null;
-    // Actual scrollable element.
-    d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll");
-    d.scroller.setAttribute("tabIndex", "-1");
-    // The element in which the editor lives.
-    d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror");
-
-    // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)
-    if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }
-    if (!webkit && !(gecko && mobile)) d.scroller.draggable = true;
-
-    if (place) {
-      if (place.appendChild) place.appendChild(d.wrapper);
-      else place(d.wrapper);
-    }
-
-    // Current rendered range (may be bigger than the view window).
-    d.viewFrom = d.viewTo = doc.first;
-    d.reportedViewFrom = d.reportedViewTo = doc.first;
-    // Information about the rendered lines.
-    d.view = [];
-    d.renderedView = null;
-    // Holds info about a single rendered line when it was rendered
-    // for measurement, while not in view.
-    d.externalMeasured = null;
-    // Empty space (in pixels) above the view
-    d.viewOffset = 0;
-    d.lastWrapHeight = d.lastWrapWidth = 0;
-    d.updateLineNumbers = null;
-
-    d.nativeBarWidth = d.barHeight = d.barWidth = 0;
-    d.scrollbarsClipped = false;
-
-    // Used to only resize the line number gutter when necessary (when
-    // the amount of lines crosses a boundary that makes its width change)
-    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;
-    // Set to true when a non-horizontal-scrolling line widget is
-    // added. As an optimization, line widget aligning is skipped when
-    // this is false.
-    d.alignWidgets = false;
-
-    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
-
-    // Tracks the maximum line length so that the horizontal scrollbar
-    // can be kept static when scrolling.
-    d.maxLine = null;
-    d.maxLineLength = 0;
-    d.maxLineChanged = false;
-
-    // Used for measuring wheel scrolling granularity
-    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;
-
-    // True when shift is held down.
-    d.shift = false;
-
-    // Used to track whether anything happened since the context menu
-    // was opened.
-    d.selForContextMenu = null;
-
-    d.activeTouch = null;
-
-    input.init(d);
-  }
-
-  // STATE UPDATES
-
-  // Used to get the editor into a consistent state again when options change.
-
-  function loadMode(cm) {
-    cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);
-    resetModeState(cm);
-  }
-
-  function resetModeState(cm) {
-    cm.doc.iter(function(line) {
-      if (line.stateAfter) line.stateAfter = null;
-      if (line.styles) line.styles = null;
-    });
-    cm.doc.frontier = cm.doc.first;
-    startWorker(cm, 100);
-    cm.state.modeGen++;
-    if (cm.curOp) regChange(cm);
-  }
-
-  function wrappingChanged(cm) {
-    if (cm.options.lineWrapping) {
-      addClass(cm.display.wrapper, "CodeMirror-wrap");
-      cm.display.sizer.style.minWidth = "";
-      cm.display.sizerWidth = null;
-    } else {
-      rmClass(cm.display.wrapper, "CodeMirror-wrap");
-      findMaxLine(cm);
-    }
-    estimateLineHeights(cm);
-    regChange(cm);
-    clearCaches(cm);
-    setTimeout(function(){updateScrollbars(cm);}, 100);
-  }
-
-  // Returns a function that estimates the height of a line, to use as
-  // first approximation until the line becomes visible (and is thus
-  // properly measurable).
-  function estimateHeight(cm) {
-    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;
-    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);
-    return function(line) {
-      if (lineIsHidden(cm.doc, line)) return 0;
-
-      var widgetsHeight = 0;
-      if (line.widgets) for (var i = 0; i < line.widgets.length; i++) {
-        if (line.widgets[i].height) widgetsHeight += line.widgets[i].height;
-      }
-
-      if (wrapping)
-        return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th;
-      else
-        return widgetsHeight + th;
-    };
-  }
-
-  function estimateLineHeights(cm) {
-    var doc = cm.doc, est = estimateHeight(cm);
-    doc.iter(function(line) {
-      var estHeight = est(line);
-      if (estHeight != line.height) updateLineHeight(line, estHeight);
-    });
-  }
-
-  function themeChanged(cm) {
-    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") +
-      cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-");
-    clearCaches(cm);
-  }
-
-  function guttersChanged(cm) {
-    updateGutters(cm);
-    regChange(cm);
-    setTimeout(function(){alignHorizontally(cm);}, 20);
-  }
-
-  // Rebuild the gutter elements, ensure the margin to the left of the
-  // code matches their width.
-  function updateGutters(cm) {
-    var gutters = cm.display.gutters, specs = cm.options.gutters;
-    removeChildren(gutters);
-    for (var i = 0; i < specs.length; ++i) {
-      var gutterClass = specs[i];
-      var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass));
-      if (gutterClass == "CodeMirror-linenumbers") {
-        cm.display.lineGutter = gElt;
-        gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
-      }
-    }
-    gutters.style.display = i ? "" : "none";
-    updateGutterSpace(cm);
-  }
-
-  function updateGutterSpace(cm) {
-    var width = cm.display.gutters.offsetWidth;
-    cm.display.sizer.style.marginLeft = width + "px";
-  }
-
-  // Compute the character length of a line, taking into account
-  // collapsed ranges (see markText) that might hide parts, and join
-  // other lines onto it.
-  function lineLength(line) {
-    if (line.height == 0) return 0;
-    var len = line.text.length, merged, cur = line;
-    while (merged = collapsedSpanAtStart(cur)) {
-      var found = merged.find(0, true);
-      cur = found.from.line;
-      len += found.from.ch - found.to.ch;
-    }
-    cur = line;
-    while (merged = collapsedSpanAtEnd(cur)) {
-      var found = merged.find(0, true);
-      len -= cur.text.length - found.from.ch;
-      cur = found.to.line;
-      len += cur.text.length - found.to.ch;
-    }
-    return len;
-  }
-
-  // Find the longest line in the document.
-  function findMaxLine(cm) {
-    var d = cm.display, doc = cm.doc;
-    d.maxLine = getLine(doc, doc.first);
-    d.maxLineLength = lineLength(d.maxLine);
-    d.maxLineChanged = true;
-    doc.iter(function(line) {
-      var len = lineLength(line);
-      if (len > d.maxLineLength) {
-        d.maxLineLength = len;
-        d.maxLine = line;
-      }
-    });
-  }
-
-  // Make sure the gutters options contains the element
-  // "CodeMirror-linenumbers" when the lineNumbers option is true.
-  function setGuttersForLineNumbers(options) {
-    var found = indexOf(options.gutters, "CodeMirror-linenumbers");
-    if (found == -1 && options.lineNumbers) {
-      options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
-    } else if (found > -1 && !options.lineNumbers) {
-      options.gutters = options.gutters.slice(0);
-      options.gutters.splice(found, 1);
-    }
-  }
-
-  // SCROLLBARS
-
-  // Prepare DOM reads needed to update the scrollbars. Done in one
-  // shot to minimize update/measure roundtrips.
-  function measureForScrollbars(cm) {
-    var d = cm.display, gutterW = d.gutters.offsetWidth;
-    var docH = Math.round(cm.doc.height + paddingVert(cm.display));
-    return {
-      clientHeight: d.scroller.clientHeight,
-      viewHeight: d.wrapper.clientHeight,
-      scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,
-      viewWidth: d.wrapper.clientWidth,
-      barLeft: cm.options.fixedGutter ? gutterW : 0,
-      docHeight: docH,
-      scrollHeight: docH + scrollGap(cm) + d.barHeight,
-      nativeBarWidth: d.nativeBarWidth,
-      gutterWidth: gutterW
-    };
-  }
-
-  function NativeScrollbars(place, scroll, cm) {
-    this.cm = cm;
-    var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
-    var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
-    place(vert); place(horiz);
-
-    on(vert, "scroll", function() {
-      if (vert.clientHeight) scroll(vert.scrollTop, "vertical");
-    });
-    on(horiz, "scroll", function() {
-      if (horiz.clientWidth) scroll(horiz.scrollLeft, "horizontal");
-    });
-
-    this.checkedZeroWidth = false;
-    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
-    if (ie && ie_version < 8) this.horiz.style.minHeight = this.vert.style.minWidth = "18px";
-  }
-
-  NativeScrollbars.prototype = copyObj({
-    update: function(measure) {
-      var needsH = measure.scrollWidth > measure.clientWidth + 1;
-      var needsV = measure.scrollHeight > measure.clientHeight + 1;
-      var sWidth = measure.nativeBarWidth;
-
-      if (needsV) {
-        this.vert.style.display = "block";
-        this.vert.style.bottom = needsH ? sWidth + "px" : "0";
-        var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);
-        // A bug in IE8 can cause this value to be negative, so guard it.
-        this.vert.firstChild.style.height =
-          Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px";
-      } else {
-        this.vert.style.display = "";
-        this.vert.firstChild.style.height = "0";
-      }
-
-      if (needsH) {
-        this.horiz.style.display = "block";
-        this.horiz.style.right = needsV ? sWidth + "px" : "0";
-        this.horiz.style.left = measure.barLeft + "px";
-        var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);
-        this.horiz.firstChild.style.width =
-          (measure.scrollWidth - measure.clientWidth + totalWidth) + "px";
-      } else {
-        this.horiz.style.display = "";
-        this.horiz.firstChild.style.width = "0";
-      }
-
-      if (!this.checkedZeroWidth && measure.clientHeight > 0) {
-        if (sWidth == 0) this.zeroWidthHack();
-        this.checkedZeroWidth = true;
-      }
-
-      return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0};
-    },
-    setScrollLeft: function(pos) {
-      if (this.horiz.scrollLeft != pos) this.horiz.scrollLeft = pos;
-      if (this.disableHoriz) this.enableZeroWidthBar(this.horiz, this.disableHoriz);
-    },
-    setScrollTop: function(pos) {
-      if (this.vert.scrollTop != pos) this.vert.scrollTop = pos;
-      if (this.disableVert) this.enableZeroWidthBar(this.vert, this.disableVert);
-    },
-    zeroWidthHack: function() {
-      var w = mac && !mac_geMountainLion ? "12px" : "18px";
-      this.horiz.style.height = this.vert.style.width = w;
-      this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none";
-      this.disableHoriz = new Delayed;
-      this.disableVert = new Delayed;
-    },
-    enableZeroWidthBar: function(bar, delay) {
-      bar.style.pointerEvents = "auto";
-      function maybeDisable() {
-        // To find out whether the scrollbar is still visible, we
-        // check whether the element under the pixel in the bottom
-        // left corner of the scrollbar box is the scrollbar box
-        // itself (when the bar is still visible) or its filler child
-        // (when the bar is hidden). If it is still visible, we keep
-        // it enabled, if it's hidden, we disable pointer events.
-        var box = bar.getBoundingClientRect();
-        var elt = document.elementFromPoint(box.left + 1, box.bottom - 1);
-        if (elt != bar) bar.style.pointerEvents = "none";
-        else delay.set(1000, maybeDisable);
-      }
-      delay.set(1000, maybeDisable);
-    },
-    clear: function() {
-      var parent = this.horiz.parentNode;
-      parent.removeChild(this.horiz);
-      parent.removeChild(this.vert);
-    }
-  }, NativeScrollbars.prototype);
-
-  function NullScrollbars() {}
-
-  NullScrollbars.prototype = copyObj({
-    update: function() { return {bottom: 0, right: 0}; },
-    setScrollLeft: function() {},
-    setScrollTop: function() {},
-    clear: function() {}
-  }, NullScrollbars.prototype);
-
-  CodeMirror.scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars};
-
-  function initScrollbars(cm) {
-    if (cm.display.scrollbars) {
-      cm.display.scrollbars.clear();
-      if (cm.display.scrollbars.addClass)
-        rmClass(cm.display.wrapper, cm.display.scrollbars.addClass);
-    }
-
-    cm.display.scrollbars = new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node) {
-      cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);
-      // Prevent clicks in the scrollbars from killing focus
-      on(node, "mousedown", function() {
-        if (cm.state.focused) setTimeout(function() { cm.display.input.focus(); }, 0);
-      });
-      node.setAttribute("cm-not-content", "true");
-    }, function(pos, axis) {
-      if (axis == "horizontal") setScrollLeft(cm, pos);
-      else setScrollTop(cm, pos);
-    }, cm);
-    if (cm.display.scrollbars.addClass)
-      addClass(cm.display.wrapper, cm.display.scrollbars.addClass);
-  }
-
-  function updateScrollbars(cm, measure) {
-    if (!measure) measure = measureForScrollbars(cm);
-    var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;
-    updateScrollbarsInner(cm, measure);
-    for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {
-      if (startWidth != cm.display.barWidth && cm.options.lineWrapping)
-        updateHeightsInViewport(cm);
-      updateScrollbarsInner(cm, measureForScrollbars(cm));
-      startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;
-    }
-  }
-
-  // Re-synchronize the fake scrollbars with the actual size of the
-  // content.
-  function updateScrollbarsInner(cm, measure) {
-    var d = cm.display;
-    var sizes = d.scrollbars.update(measure);
-
-    d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px";
-    d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px";
-    d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"
-
-    if (sizes.right && sizes.bottom) {
-      d.scrollbarFiller.style.display = "block";
-      d.scrollbarFiller.style.height = sizes.bottom + "px";
-      d.scrollbarFiller.style.width = sizes.right + "px";
-    } else d.scrollbarFiller.style.display = "";
-    if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {
-      d.gutterFiller.style.display = "block";
-      d.gutterFiller.style.height = sizes.bottom + "px";
-      d.gutterFiller.style.width = measure.gutterWidth + "px";
-    } else d.gutterFiller.style.display = "";
-  }
-
-  // Compute the lines that are visible in a given viewport (defaults
-  // the the current scroll position). viewport may contain top,
-  // height, and ensure (see op.scrollToPos) properties.
-  function visibleLines(display, doc, viewport) {
-    var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;
-    top = Math.floor(top - paddingTop(display));
-    var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;
-
-    var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);
-    // Ensure is a {from: {line, ch}, to: {line, ch}} object, and
-    // forces those lines into the viewport (if possible).
-    if (viewport && viewport.ensure) {
-      var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;
-      if (ensureFrom < from) {
-        from = ensureFrom;
-        to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);
-      } else if (Math.min(ensureTo, doc.lastLine()) >= to) {
-        from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);
-        to = ensureTo;
-      }
-    }
-    return {from: from, to: Math.max(to, from + 1)};
-  }
-
-  // LINE NUMBERS
-
-  // Re-align line numbers and gutter marks to compensate for
-  // horizontal scrolling.
-  function alignHorizontally(cm) {
-    var display = cm.display, view = display.view;
-    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;
-    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
-    var gutterW = display.gutters.offsetWidth, left = comp + "px";
-    for (var i = 0; i < view.length; i++) if (!view[i].hidden) {
-      if (cm.options.fixedGutter) {
-        if (view[i].gutter)
-          view[i].gutter.style.left = left;
-        if (view[i].gutterBackground)
-          view[i].gutterBackground.style.left = left;
-      }
-      var align = view[i].alignable;
-      if (align) for (var j = 0; j < align.length; j++)
-        align[j].style.left = left;
-    }
-    if (cm.options.fixedGutter)
-      display.gutters.style.left = (comp + gutterW) + "px";
-  }
-
-  // Used to ensure that the line number gutter is still the right
-  // size for the current document size. Returns true when an update
-  // is needed.
-  function maybeUpdateLineNumberWidth(cm) {
-    if (!cm.options.lineNumbers) return false;
-    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
-    if (last.length != display.lineNumChars) {
-      var test = display.measure.appendChild(elt("div", [elt("div", last)],
-                                                 "CodeMirror-linenumber CodeMirror-gutter-elt"));
-      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
-      display.lineGutter.style.width = "";
-      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
-      display.lineNumWidth = display.lineNumInnerWidth + padding;
-      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
-      display.lineGutter.style.width = display.lineNumWidth + "px";
-      updateGutterSpace(cm);
-      return true;
-    }
-    return false;
-  }
-
-  function lineNumberFor(options, i) {
-    return String(options.lineNumberFormatter(i + options.firstLineNumber));
-  }
-
-  // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,
-  // but using getBoundingClientRect to get a sub-pixel-accurate
-  // result.
-  function compensateForHScroll(display) {
-    return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left;
-  }
-
-  // DISPLAY DRAWING
-
-  function DisplayUpdate(cm, viewport, force) {
-    var display = cm.display;
-
-    this.viewport = viewport;
-    // Store some values that we'll need later (but don't want to force a relayout for)
-    this.visible = visibleLines(display, cm.doc, viewport);
-    this.editorIsHidden = !display.wrapper.offsetWidth;
-    this.wrapperHeight = display.wrapper.clientHeight;
-    this.wrapperWidth = display.wrapper.clientWidth;
-    this.oldDisplayWidth = displayWidth(cm);
-    this.force = force;
-    this.dims = getDimensions(cm);
-    this.events = [];
-  }
-
-  DisplayUpdate.prototype.signal = function(emitter, type) {
-    if (hasHandler(emitter, type))
-      this.events.push(arguments);
-  };
-  DisplayUpdate.prototype.finish = function() {
-    for (var i = 0; i < this.events.length; i++)
-      signal.apply(null, this.events[i]);
-  };
-
-  function maybeClipScrollbars(cm) {
-    var display = cm.display;
-    if (!display.scrollbarsClipped && display.scroller.offsetWidth) {
-      display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;
-      display.heightForcer.style.height = scrollGap(cm) + "px";
-      display.sizer.style.marginBottom = -display.nativeBarWidth + "px";
-      display.sizer.style.borderRightWidth = scrollGap(cm) + "px";
-      display.scrollbarsClipped = true;
-    }
-  }
-
-  // Does the actual updating of the line display. Bails out
-  // (returning false) when there is nothing to be done and forced is
-  // false.
-  function updateDisplayIfNeeded(cm, update) {
-    var display = cm.display, doc = cm.doc;
-
-    if (update.editorIsHidden) {
-      resetView(cm);
-      return false;
-    }
-
-    // Bail out if the visible area is already rendered and nothing changed.
-    if (!update.force &&
-        update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&
-        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&
-        display.renderedView == display.view && countDirtyView(cm) == 0)
-      return false;
-
-    if (maybeUpdateLineNumberWidth(cm)) {
-      resetView(cm);
-      update.dims = getDimensions(cm);
-    }
-
-    // Compute a suitable new viewport (from & to)
-    var end = doc.first + doc.size;
-    var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);
-    var to = Math.min(end, update.visible.to + cm.options.viewportMargin);
-    if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom);
-    if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo);
-    if (sawCollapsedSpans) {
-      from = visualLineNo(cm.doc, from);
-      to = visualLineEndNo(cm.doc, to);
-    }
-
-    var different = from != display.viewFrom || to != display.viewTo ||
-      display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;
-    adjustView(cm, from, to);
-
-    display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));
-    // Position the mover div to align with the current scroll position
-    cm.display.mover.style.top = display.viewOffset + "px";
-
-    var toUpdate = countDirtyView(cm);
-    if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&
-        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))
-      return false;
-
-    // For big changes, we hide the enclosing element during the
-    // update, since that speeds up the operations on most browsers.
-    var focused = activeElt();
-    if (toUpdate > 4) display.lineDiv.style.display = "none";
-    patchDisplay(cm, display.updateLineNumbers, update.dims);
-    if (toUpdate > 4) display.lineDiv.style.display = "";
-    display.renderedView = display.view;
-    // There might have been a widget with a focused element that got
-    // hidden or updated, if so re-focus it.
-    if (focused && activeElt() != focused && focused.offsetHeight) focused.focus();
-
-    // Prevent selection and cursors from interfering with the scroll
-    // width and height.
-    removeChildren(display.cursorDiv);
-    removeChildren(display.selectionDiv);
-    display.gutters.style.height = display.sizer.style.minHeight = 0;
-
-    if (different) {
-      display.lastWrapHeight = update.wrapperHeight;
-      display.lastWrapWidth = update.wrapperWidth;
-      startWorker(cm, 400);
-    }
-
-    display.updateLineNumbers = null;
-
-    return true;
-  }
-
-  function postUpdateDisplay(cm, update) {
-    var viewport = update.viewport;
-
-    for (var first = true;; first = false) {
-      if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
-        // Clip forced viewport to actual scrollable area.
-        if (viewport && viewport.top != null)
-          viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)};
-        // Updated line heights might result in the drawn area not
-        // actually covering the viewport. Keep looping until it does.
-        update.visible = visibleLines(cm.display, cm.doc, viewport);
-        if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)
-          break;
-      }
-      if (!updateDisplayIfNeeded(cm, update)) break;
-      updateHeightsInViewport(cm);
-      var barMeasure = measureForScrollbars(cm);
-      updateSelection(cm);
-      updateScrollbars(cm, barMeasure);
-      setDocumentHeight(cm, barMeasure);
-    }
-
-    update.signal(cm, "update", cm);
-    if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {
-      update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo);
-      cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;
-    }
-  }
-
-  function updateDisplaySimple(cm, viewport) {
-    var update = new DisplayUpdate(cm, viewport);
-    if (updateDisplayIfNeeded(cm, update)) {
-      updateHeightsInViewport(cm);
-      postUpdateDisplay(cm, update);
-      var barMeasure = measureForScrollbars(cm);
-      updateSelection(cm);
-      updateScrollbars(cm, barMeasure);
-      setDocumentHeight(cm, barMeasure);
-      update.finish();
-    }
-  }
-
-  function setDocumentHeight(cm, measure) {
-    cm.display.sizer.style.minHeight = measure.docHeight + "px";
-    cm.display.heightForcer.style.top = measure.docHeight + "px";
-    cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px";
-  }
-
-  // Read the actual heights of the rendered lines, and update their
-  // stored heights to match.
-  function updateHeightsInViewport(cm) {
-    var display = cm.display;
-    var prevBottom = display.lineDiv.offsetTop;
-    for (var i = 0; i < display.view.length; i++) {
-      var cur = display.view[i], height;
-      if (cur.hidden) continue;
-      if (ie && ie_version < 8) {
-        var bot = cur.node.offsetTop + cur.node.offsetHeight;
-        height = bot - prevBottom;
-        prevBottom = bot;
-      } else {
-        var box = cur.node.getBoundingClientRect();
-        height = box.bottom - box.top;
-      }
-      var diff = cur.line.height - height;
-      if (height < 2) height = textHeight(display);
-      if (diff > .001 || diff < -.001) {
-        updateLineHeight(cur.line, height);
-        updateWidgetHeight(cur.line);
-        if (cur.rest) for (var j = 0; j < cur.rest.length; j++)
-          updateWidgetHeight(cur.rest[j]);
-      }
-    }
-  }
-
-  // Read and store the height of line widgets associated with the
-  // given line.
-  function updateWidgetHeight(line) {
-    if (line.widgets) for (var i = 0; i < line.widgets.length; ++i)
-      line.widgets[i].height = line.widgets[i].node.parentNode.offsetHeight;
-  }
-
-  // Do a bulk-read of the DOM positions and sizes needed to draw the
-  // view, so that we don't interleave reading and writing to the DOM.
-  function getDimensions(cm) {
-    var d = cm.display, left = {}, width = {};
-    var gutterLeft = d.gutters.clientLeft;
-    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {
-      left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;
-      width[cm.options.gutters[i]] = n.clientWidth;
-    }
-    return {fixedPos: compensateForHScroll(d),
-            gutterTotalWidth: d.gutters.offsetWidth,
-            gutterLeft: left,
-            gutterWidth: width,
-            wrapperWidth: d.wrapper.clientWidth};
-  }
-
-  // Sync the actual display DOM structure with display.view, removing
-  // nodes for lines that are no longer in view, and creating the ones
-  // that are not there yet, and updating the ones that are out of
-  // date.
-  function patchDisplay(cm, updateNumbersFrom, dims) {
-    var display = cm.display, lineNumbers = cm.options.lineNumbers;
-    var container = display.lineDiv, cur = container.firstChild;
-
-    function rm(node) {
-      var next = node.nextSibling;
-      // Works around a throw-scroll bug in OS X Webkit
-      if (webkit && mac && cm.display.currentWheelTarget == node)
-        node.style.display = "none";
-      else
-        node.parentNode.removeChild(node);
-      return next;
-    }
-
-    var view = display.view, lineN = display.viewFrom;
-    // Loop over the elements in the view, syncing cur (the DOM nodes
-    // in display.lineDiv) with the view as we go.
-    for (var i = 0; i < view.length; i++) {
-      var lineView = view[i];
-      if (lineView.hidden) {
-      } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet
-        var node = buildLineElement(cm, lineView, lineN, dims);
-        container.insertBefore(node, cur);
-      } else { // Already drawn
-        while (cur != lineView.node) cur = rm(cur);
-        var updateNumber = lineNumbers && updateNumbersFrom != null &&
-          updateNumbersFrom <= lineN && lineView.lineNumber;
-        if (lineView.changes) {
-          if (indexOf(lineView.changes, "gutter") > -1) updateNumber = false;
-          updateLineForChanges(cm, lineView, lineN, dims);
-        }
-        if (updateNumber) {
-          removeChildren(lineView.lineNumber);
-          lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));
-        }
-        cur = lineView.node.nextSibling;
-      }
-      lineN += lineView.size;
-    }
-    while (cur) cur = rm(cur);
-  }
-
-  // When an aspect of a line changes, a string is added to
-  // lineView.changes. This updates the relevant part of the line's
-  // DOM structure.
-  function updateLineForChanges(cm, lineView, lineN, dims) {
-    for (var j = 0; j < lineView.changes.length; j++) {
-      var type = lineView.changes[j];
-      if (type == "text") updateLineText(cm, lineView);
-      else if (type == "gutter") updateLineGutter(cm, lineView, lineN, dims);
-      else if (type == "class") updateLineClasses(lineView);
-      else if (type == "widget") updateLineWidgets(cm, lineView, dims);
-    }
-    lineView.changes = null;
-  }
-
-  // Lines with gutter elements, widgets or a background class need to
-  // be wrapped, and have the extra elements added to the wrapper div
-  function ensureLineWrapped(lineView) {
-    if (lineView.node == lineView.text) {
-      lineView.node = elt("div", null, null, "position: relative");
-      if (lineView.text.parentNode)
-        lineView.text.parentNode.replaceChild(lineView.node, lineView.text);
-      lineView.node.appendChild(lineView.text);
-      if (ie && ie_version < 8) lineView.node.style.zIndex = 2;
-    }
-    return lineView.node;
-  }
-
-  function updateLineBackground(lineView) {
-    var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass;
-    if (cls) cls += " CodeMirror-linebackground";
-    if (lineView.background) {
-      if (cls) lineView.background.className = cls;
-      else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }
-    } else if (cls) {
-      var wrap = ensureLineWrapped(lineView);
-      lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild);
-    }
-  }
-
-  // Wrapper around buildLineContent which will reuse the structure
-  // in display.externalMeasured when possible.
-  function getLineContent(cm, lineView) {
-    var ext = cm.display.externalMeasured;
-    if (ext && ext.line == lineView.line) {
-      cm.display.externalMeasured = null;
-      lineView.measure = ext.measure;
-      return ext.built;
-    }
-    return buildLineContent(cm, lineView);
-  }
-
-  // Redraw the line's text. Interacts with the background and text
-  // classes because the mode may output tokens that influence these
-  // classes.
-  function updateLineText(cm, lineView) {
-    var cls = lineView.text.className;
-    var built = getLineContent(cm, lineView);
-    if (lineView.text == lineView.node) lineView.node = built.pre;
-    lineView.text.parentNode.replaceChild(built.pre, lineView.text);
-    lineView.text = built.pre;
-    if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {
-      lineView.bgClass = built.bgClass;
-      lineView.textClass = built.textClass;
-      updateLineClasses(lineView);
-    } else if (cls) {
-      lineView.text.className = cls;
-    }
-  }
-
-  function updateLineClasses(lineView) {
-    updateLineBackground(lineView);
-    if (lineView.line.wrapClass)
-      ensureLineWrapped(lineView).className = lineView.line.wrapClass;
-    else if (lineView.node != lineView.text)
-      lineView.node.className = "";
-    var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass;
-    lineView.text.className = textClass || "";
-  }
-
-  function updateLineGutter(cm, lineView, lineN, dims) {
-    if (lineView.gutter) {
-      lineView.node.removeChild(lineView.gutter);
-      lineView.gutter = null;
-    }
-    if (lineView.gutterBackground) {
-      lineView.node.removeChild(lineView.gutterBackground);
-      lineView.gutterBackground = null;
-    }
-    if (lineView.line.gutterClass) {
-      var wrap = ensureLineWrapped(lineView);
-      lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass,
-                                      "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) +
-                                      "px; width: " + dims.gutterTotalWidth + "px");
-      wrap.insertBefore(lineView.gutterBackground, lineView.text);
-    }
-    var markers = lineView.line.gutterMarkers;
-    if (cm.options.lineNumbers || markers) {
-      var wrap = ensureLineWrapped(lineView);
-      var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", "left: " +
-                                             (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px");
-      cm.display.input.setUneditable(gutterWrap);
-      wrap.insertBefore(gutterWrap, lineView.text);
-      if (lineView.line.gutterClass)
-        gutterWrap.className += " " + lineView.line.gutterClass;
-      if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"]))
-        lineView.lineNumber = gutterWrap.appendChild(
-          elt("div", lineNumberFor(cm.options, lineN),
-              "CodeMirror-linenumber CodeMirror-gutter-elt",
-              "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: "
-              + cm.display.lineNumInnerWidth + "px"));
-      if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) {
-        var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];
-        if (found)
-          gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " +
-                                     dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px"));
-      }
-    }
-  }
-
-  function updateLineWidgets(cm, lineView, dims) {
-    if (lineView.alignable) lineView.alignable = null;
-    for (var node = lineView.node.firstChild, next; node; node = next) {
-      var next = node.nextSibling;
-      if (node.className == "CodeMirror-linewidget")
-        lineView.node.removeChild(node);
-    }
-    insertLineWidgets(cm, lineView, dims);
-  }
-
-  // Build a line's DOM representation from scratch
-  function buildLineElement(cm, lineView, lineN, dims) {
-    var built = getLineContent(cm, lineView);
-    lineView.text = lineView.node = built.pre;
-    if (built.bgClass) lineView.bgClass = built.bgClass;
-    if (built.textClass) lineView.textClass = built.textClass;
-
-    updateLineClasses(lineView);
-    updateLineGutter(cm, lineView, lineN, dims);
-    insertLineWidgets(cm, lineView, dims);
-    return lineView.node;
-  }
-
-  // A lineView may contain multiple logical lines (when merged by
-  // collapsed spans). The widgets for all of them need to be drawn.
-  function insertLineWidgets(cm, lineView, dims) {
-    insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);
-    if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
-      insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false);
-  }
-
-  function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
-    if (!line.widgets) return;
-    var wrap = ensureLineWrapped(lineView);
-    for (var i = 0, ws = line.widgets; i < ws.length; ++i) {
-      var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget");
-      if (!widget.handleMouseEvents) node.setAttribute("cm-ignore-events", "true");
-      positionLineWidget(widget, node, lineView, dims);
-      cm.display.input.setUneditable(node);
-      if (allowAbove && widget.above)
-        wrap.insertBefore(node, lineView.gutter || lineView.text);
-      else
-        wrap.appendChild(node);
-      signalLater(widget, "redraw");
-    }
-  }
-
-  function positionLineWidget(widget, node, lineView, dims) {
-    if (widget.noHScroll) {
-      (lineView.alignable || (lineView.alignable = [])).push(node);
-      var width = dims.wrapperWidth;
-      node.style.left = dims.fixedPos + "px";
-      if (!widget.coverGutter) {
-        width -= dims.gutterTotalWidth;
-        node.style.paddingLeft = dims.gutterTotalWidth + "px";
-      }
-      node.style.width = width + "px";
-    }
-    if (widget.coverGutter) {
-      node.style.zIndex = 5;
-      node.style.position = "relative";
-      if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px";
-    }
-  }
-
-  // POSITION OBJECT
-
-  // A Pos instance represents a position within the text.
-  var Pos = CodeMirror.Pos = function(line, ch) {
-    if (!(this instanceof Pos)) return new Pos(line, ch);
-    this.line = line; this.ch = ch;
-  };
-
-  // Compare two positions, return 0 if they are the same, a negative
-  // number when a is less, and a positive number otherwise.
-  var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; };
-
-  function copyPos(x) {return Pos(x.line, x.ch);}
-  function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }
-  function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }
-
-  // INPUT HANDLING
-
-  function ensureFocus(cm) {
-    if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
-  }
-
-  // This will be set to a {lineWise: bool, text: [string]} object, so
-  // that, when pasting, we know what kind of selections the copied
-  // text was made out of.
-  var lastCopied = null;
-
-  function applyTextInput(cm, inserted, deleted, sel, origin) {
-    var doc = cm.doc;
-    cm.display.shift = false;
-    if (!sel) sel = doc.sel;
-
-    var paste = cm.state.pasteIncoming || origin == "paste";
-    var textLines = doc.splitLines(inserted), multiPaste = null
-    // When pasing N lines into N selections, insert one line per selection
-    if (paste && sel.ranges.length > 1) {
-      if (lastCopied && lastCopied.text.join("\n") == inserted) {
-        if (sel.ranges.length % lastCopied.text.length == 0) {
-          multiPaste = [];
-          for (var i = 0; i < lastCopied.text.length; i++)
-            multiPaste.push(doc.splitLines(lastCopied.text[i]));
-        }
-      } else if (textLines.length == sel.ranges.length) {
-        multiPaste = map(textLines, function(l) { return [l]; });
-      }
-    }
-
-    // Normal behavior is to insert the new text into every selection
-    for (var i = sel.ranges.length - 1; i >= 0; i--) {
-      var range = sel.ranges[i];
-      var from = range.from(), to = range.to();
-      if (range.empty()) {
-        if (deleted && deleted > 0) // Handle deletion
-          from = Pos(from.line, from.ch - deleted);
-        else if (cm.state.overwrite && !paste) // Handle overwrite
-          to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));
-        else if (lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted)
-          from = to = Pos(from.line, 0)
-      }
-      var updateInput = cm.curOp.updateInput;
-      var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,
-                         origin: origin || (paste ? "paste" : cm.state.cutIncoming ? "cut" : "+input")};
-      makeChange(cm.doc, changeEvent);
-      signalLater(cm, "inputRead", cm, changeEvent);
-    }
-    if (inserted && !paste)
-      triggerElectric(cm, inserted);
-
-    ensureCursorVisible(cm);
-    cm.curOp.updateInput = updateInput;
-    cm.curOp.typing = true;
-    cm.state.pasteIncoming = cm.state.cutIncoming = false;
-  }
-
-  function handlePaste(e, cm) {
-    var pasted = e.clipboardData && e.clipboardData.getData("Text");
-    if (pasted) {
-      e.preventDefault();
-      if (!cm.isReadOnly() && !cm.options.disableInput)
-        runInOp(cm, function() { applyTextInput(cm, pasted, 0, null, "paste"); });
-      return true;
-    }
-  }
-
-  function triggerElectric(cm, inserted) {
-    // When an 'electric' character is inserted, immediately trigger a reindent
-    if (!cm.options.electricChars || !cm.options.smartIndent) return;
-    var sel = cm.doc.sel;
-
-    for (var i = sel.ranges.length - 1; i >= 0; i--) {
-      var range = sel.ranges[i];
-      if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) continue;
-      var mode = cm.getModeAt(range.head);
-      var indented = false;
-      if (mode.electricChars) {
-        for (var j = 0; j < mode.electricChars.length; j++)
-          if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
-            indented = indentLine(cm, range.head.line, "smart");
-            break;
-          }
-      } else if (mode.electricInput) {
-        if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))
-          indented = indentLine(cm, range.head.line, "smart");
-      }
-      if (indented) signalLater(cm, "electricInput", cm, range.head.line);
-    }
-  }
-
-  function copyableRanges(cm) {
-    var text = [], ranges = [];
-    for (var i = 0; i < cm.doc.sel.ranges.length; i++) {
-      var line = cm.doc.sel.ranges[i].head.line;
-      var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};
-      ranges.push(lineRange);
-      text.push(cm.getRange(lineRange.anchor, lineRange.head));
-    }
-    return {text: text, ranges: ranges};
-  }
-
-  function disableBrowserMagic(field, spellcheck) {
-    field.setAttribute("autocorrect", "off");
-    field.setAttribute("autocapitalize", "off");
-    field.setAttribute("spellcheck", !!spellcheck);
-  }
-
-  // TEXTAREA INPUT STYLE
-
-  function TextareaInput(cm) {
-    this.cm = cm;
-    // See input.poll and input.reset
-    this.prevInput = "";
-
-    // Flag that indicates whether we expect input to appear real soon
-    // now (after some event like 'keypress' or 'input') and are
-    // polling intensively.
-    this.pollingFast = false;
-    // Self-resetting timeout for the poller
-    this.polling = new Delayed();
-    // Tracks when input.reset has punted to just putting a short
-    // string into the textarea instead of the full selection.
-    this.inaccurateSelection = false;
-    // Used to work around IE issue with selection being forgotten when focus moves away from textarea
-    this.hasSelection = false;
-    this.composing = null;
-  };
-
-  function hiddenTextarea() {
-    var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none");
-    var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
-    // The textarea is kept positioned near the cursor to prevent the
-    // fact that it'll be scrolled into view on input from scrolling
-    // our fake cursor out of view. On webkit, when wrap=off, paste is
-    // very slow. So make the area wide instead.
-    if (webkit) te.style.width = "1000px";
-    else te.setAttribute("wrap", "off");
-    // If border: 0; -- iOS fails to open keyboard (issue #1287)
-    if (ios) te.style.border = "1px solid black";
-    disableBrowserMagic(te);
-    return div;
-  }
-
-  TextareaInput.prototype = copyObj({
-    init: function(display) {
-      var input = this, cm = this.cm;
-
-      // Wraps and hides input textarea
-      var div = this.wrapper = hiddenTextarea();
-      // The semihidden textarea that is focused when the editor is
-      // focused, and receives input.
-      var te = this.textarea = div.firstChild;
-      display.wrapper.insertBefore(div, display.wrapper.firstChild);
-
-      // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
-      if (ios) te.style.width = "0px";
-
-      on(te, "input", function() {
-        if (ie && ie_version >= 9 && input.hasSelection) input.hasSelection = null;
-        input.poll();
-      });
-
-      on(te, "paste", function(e) {
-        if (signalDOMEvent(cm, e) || handlePaste(e, cm)) return
-
-        cm.state.pasteIncoming = true;
-        input.fastPoll();
-      });
-
-      function prepareCopyCut(e) {
-        if (signalDOMEvent(cm, e)) return
-        if (cm.somethingSelected()) {
-          lastCopied = {lineWise: false, text: cm.getSelections()};
-          if (input.inaccurateSelection) {
-            input.prevInput = "";
-            input.inaccurateSelection = false;
-            te.value = lastCopied.text.join("\n");
-            selectInput(te);
-          }
-        } else if (!cm.options.lineWiseCopyCut) {
-          return;
-        } else {
-          var ranges = copyableRanges(cm);
-          lastCopied = {lineWise: true, text: ranges.text};
-          if (e.type == "cut") {
-            cm.setSelections(ranges.ranges, null, sel_dontScroll);
-          } else {
-            input.prevInput = "";
-            te.value = ranges.text.join("\n");
-            selectInput(te);
-          }
-        }
-        if (e.type == "cut") cm.state.cutIncoming = true;
-      }
-      on(te, "cut", prepareCopyCut);
-      on(te, "copy", prepareCopyCut);
-
-      on(display.scroller, "paste", function(e) {
-        if (eventInWidget(display, e) || signalDOMEvent(cm, e)) return;
-        cm.state.pasteIncoming = true;
-        input.focus();
-      });
-
-      // Prevent normal selection in the editor (we handle our own)
-      on(display.lineSpace, "selectstart", function(e) {
-        if (!eventInWidget(display, e)) e_preventDefault(e);
-      });
-
-      on(te, "compositionstart", function() {
-        var start = cm.getCursor("from");
-        if (input.composing) input.composing.range.clear()
-        input.composing = {
-          start: start,
-          range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"})
-        };
-      });
-      on(te, "compositionend", function() {
-        if (input.composing) {
-          input.poll();
-          input.composing.range.clear();
-          input.composing = null;
-        }
-      });
-    },
-
-    prepareSelection: function() {
-      // Redraw the selection and/or cursor
-      var cm = this.cm, display = cm.display, doc = cm.doc;
-      var result = prepareSelection(cm);
-
-      // Move the hidden textarea near the cursor to prevent scrolling artifacts
-      if (cm.options.moveInputWithCursor) {
-        var headPos = cursorCoords(cm, doc.sel.primary().head, "div");
-        var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();
-        result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
-                                            headPos.top + lineOff.top - wrapOff.top));
-        result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
-                                             headPos.left + lineOff.left - wrapOff.left));
-      }
-
-      return result;
-    },
-
-    showSelection: function(drawn) {
-      var cm = this.cm, display = cm.display;
-      removeChildrenAndAdd(display.cursorDiv, drawn.cursors);
-      removeChildrenAndAdd(display.selectionDiv, drawn.selection);
-      if (drawn.teTop != null) {
-        this.wrapper.style.top = drawn.teTop + "px";
-        this.wrapper.style.left = drawn.teLeft + "px";
-      }
-    },
-
-    // Reset the input to correspond to the selection (or to be empty,
-    // when not typing and nothing is selected)
-    reset: function(typing) {
-      if (this.contextMenuPending) return;
-      var minimal, selected, cm = this.cm, doc = cm.doc;
-      if (cm.somethingSelected()) {
-        this.prevInput = "";
-        var range = doc.sel.primary();
-        minimal = hasCopyEvent &&
-          (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000);
-        var content = minimal ? "-" : selected || cm.getSelection();
-        this.textarea.value = content;
-        if (cm.state.focused) selectInput(this.textarea);
-        if (ie && ie_version >= 9) this.hasSelection = content;
-      } else if (!typing) {
-        this.prevInput = this.textarea.value = "";
-        if (ie && ie_version >= 9) this.hasSelection = null;
-      }
-      this.inaccurateSelection = minimal;
-    },
-
-    getField: function() { return this.textarea; },
-
-    supportsTouch: function() { return false; },
-
-    focus: function() {
-      if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) {
-        try { this.textarea.focus(); }
-        catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM
-      }
-    },
-
-    blur: function() { this.textarea.blur(); },
-
-    resetPosition: function() {
-      this.wrapper.style.top = this.wrapper.style.left = 0;
-    },
-
-    receivedFocus: function() { this.slowPoll(); },
-
-    // Poll for input changes, using the normal rate of polling. This
-    // runs as long as the editor is focused.
-    slowPoll: function() {
-      var input = this;
-      if (input.pollingFast) return;
-      input.polling.set(this.cm.options.pollInterval, function() {
-        input.poll();
-        if (input.cm.state.focused) input.slowPoll();
-      });
-    },
-
-    // When an event has just come in that is likely to add or change
-    // something in the input textarea, we poll faster, to ensure that
-    // the change appears on the screen quickly.
-    fastPoll: function() {
-      var missed = false, input = this;
-      input.pollingFast = true;
-      function p() {
-        var changed = input.poll();
-        if (!changed && !missed) {missed = true; input.polling.set(60, p);}
-        else {input.pollingFast = false; input.slowPoll();}
-      }
-      input.polling.set(20, p);
-    },
-
-    // Read input from the textarea, and update the document to match.
-    // When something is selected, it is present in the textarea, and
-    // selected (unless it is huge, in which case a placeholder is
-    // used). When nothing is selected, the cursor sits after previously
-    // seen text (can be empty), which is stored in prevInput (we must
-    // not reset the textarea when typing, because that breaks IME).
-    poll: function() {
-      var cm = this.cm, input = this.textarea, prevInput = this.prevInput;
-      // Since this is called a *lot*, try to bail out as cheaply as
-      // possible when it is clear that nothing happened. hasSelection
-      // will be the case when there is a lot of text in the textarea,
-      // in which case reading its value would be expensive.
-      if (this.contextMenuPending || !cm.state.focused ||
-          (hasSelection(input) && !prevInput && !this.composing) ||
-          cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)
-        return false;
-
-      var text = input.value;
-      // If nothing changed, bail.
-      if (text == prevInput && !cm.somethingSelected()) return false;
-      // Work around nonsensical selection resetting in IE9/10, and
-      // inexplicable appearance of private area unicode characters on
-      // some key combos in Mac (#2689).
-      if (ie && ie_version >= 9 && this.hasSelection === text ||
-          mac && /[\uf700-\uf7ff]/.test(text)) {
-        cm.display.input.reset();
-        return false;
-      }
-
-      if (cm.doc.sel == cm.display.selForContextMenu) {
-        var first = text.charCodeAt(0);
-        if (first == 0x200b && !prevInput) prevInput = "\u200b";
-        if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo"); }
-      }
-      // Find the part of the input that is actually new
-      var same = 0, l = Math.min(prevInput.length, text.length);
-      while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;
-
-      var self = this;
-      runInOp(cm, function() {
-        applyTextInput(cm, text.slice(same), prevInput.length - same,
-                       null, self.composing ? "*compose" : null);
-
-        // Don't leave long text in the textarea, since it makes further polling slow
-        if (text.length > 1000 || text.indexOf("\n") > -1) input.value = self.prevInput = "";
-        else self.prevInput = text;
-
-        if (self.composing) {
-          self.composing.range.clear();
-          self.composing.range = cm.markText(self.composing.start, cm.getCursor("to"),
-                                             {className: "CodeMirror-composing"});
-        }
-      });
-      return true;
-    },
-
-    ensurePolled: function() {
-      if (this.pollingFast && this.poll()) this.pollingFast = false;
-    },
-
-    onKeyPress: function() {
-      if (ie && ie_version >= 9) this.hasSelection = null;
-      this.fastPoll();
-    },
-
-    onContextMenu: function(e) {
-      var input = this, cm = input.cm, display = cm.display, te = input.textarea;
-      var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
-      if (!pos || presto) return; // Opera is difficult.
-
-      // Reset the current text selection only if the click is done outside of the selection
-      // and 'resetSelectionOnContextMenu' option is true.
-      var reset = cm.options.resetSelectionOnContextMenu;
-      if (reset && cm.doc.sel.contains(pos) == -1)
-        operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll);
-
-      var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;
-      input.wrapper.style.cssText = "position: absolute"
-      var wrapperBox = input.wrapper.getBoundingClientRect()
-      te.style.cssText = "position: absolute; width: 30px; height: 30px; top: " + (e.clientY - wrapperBox.top - 5) +
-        "px; left: " + (e.clientX - wrapperBox.left - 5) + "px; z-index: 1000; background: " +
-        (ie ? "rgba(255, 255, 255, .05)" : "transparent") +
-        "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
-      if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)
-      display.input.focus();
-      if (webkit) window.scrollTo(null, oldScrollY);
-      display.input.reset();
-      // Adds "Select all" to context menu in FF
-      if (!cm.somethingSelected()) te.value = input.prevInput = " ";
-      input.contextMenuPending = true;
-      display.selForContextMenu = cm.doc.sel;
-      clearTimeout(display.detectingSelectAll);
-
-      // Select-all will be greyed out if there's nothing to select, so
-      // this adds a zero-width space so that we can later check whether
-      // it got selected.
-      function prepareSelectAllHack() {
-        if (te.selectionStart != null) {
-          var selected = cm.somethingSelected();
-          var extval = "\u200b" + (selected ? te.value : "");
-          te.value = "\u21da"; // Used to catch context-menu undo
-          te.value = extval;
-          input.prevInput = selected ? "" : "\u200b";
-          te.selectionStart = 1; te.selectionEnd = extval.length;
-          // Re-set this, in case some other handler touched the
-          // selection in the meantime.
-          display.selForContextMenu = cm.doc.sel;
-        }
-      }
-      function rehide() {
-        input.contextMenuPending = false;
-        input.wrapper.style.cssText = oldWrapperCSS
-        te.style.cssText = oldCSS;
-        if (ie && ie_version < 9) display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos);
-
-        // Try to detect the user choosing select-all
-        if (te.selectionStart != null) {
-          if (!ie || (ie && ie_version < 9)) prepareSelectAllHack();
-          var i = 0, poll = function() {
-            if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&
-                te.selectionEnd > 0 && input.prevInput == "\u200b")
-              operation(cm, commands.selectAll)(cm);
-            else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500);
-            else display.input.reset();
-          };
-          display.detectingSelectAll = setTimeout(poll, 200);
-        }
-      }
-
-      if (ie && ie_version >= 9) prepareSelectAllHack();
-      if (captureRightClick) {
-        e_stop(e);
-        var mouseup = function() {
-          off(window, "mouseup", mouseup);
-          setTimeout(rehide, 20);
-        };
-        on(window, "mouseup", mouseup);
-      } else {
-        setTimeout(rehide, 50);
-      }
-    },
-
-    readOnlyChanged: function(val) {
-      if (!val) this.reset();
-    },
-
-    setUneditable: nothing,
-
-    needsContentAttribute: false
-  }, TextareaInput.prototype);
-
-  // CONTENTEDITABLE INPUT STYLE
-
-  function ContentEditableInput(cm) {
-    this.cm = cm;
-    this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;
-    this.polling = new Delayed();
-    this.gracePeriod = false;
-  }
-
-  ContentEditableInput.prototype = copyObj({
-    init: function(display) {
-      var input = this, cm = input.cm;
-      var div = input.div = display.lineDiv;
-      disableBrowserMagic(div, cm.options.spellcheck);
-
-      on(div, "paste", function(e) {
-        if (signalDOMEvent(cm, e) || handlePaste(e, cm)) return
-        // IE doesn't fire input events, so we schedule a read for the pasted content in this way
-        if (ie_version <= 11) setTimeout(operation(cm, function() {
-          if (!input.pollContent()) regChange(cm);
-        }), 20)
-      })
-
-      on(div, "compositionstart", function(e) {
-        var data = e.data;
-        input.composing = {sel: cm.doc.sel, data: data, startData: data};
-        if (!data) return;
-        var prim = cm.doc.sel.primary();
-        var line = cm.getLine(prim.head.line);
-        var found = line.indexOf(data, Math.max(0, prim.head.ch - data.length));
-        if (found > -1 && found <= prim.head.ch)
-          input.composing.sel = simpleSelection(Pos(prim.head.line, found),
-                                                Pos(prim.head.line, found + data.length));
-      });
-      on(div, "compositionupdate", function(e) {
-        input.composing.data = e.data;
-      });
-      on(div, "compositionend", function(e) {
-        var ours = input.composing;
-        if (!ours) return;
-        if (e.data != ours.startData && !/\u200b/.test(e.data))
-          ours.data = e.data;
-        // Need a small delay to prevent other code (input event,
-        // selection polling) from doing damage when fired right after
-        // compositionend.
-        setTimeout(function() {
-          if (!ours.handled)
-            input.applyComposition(ours);
-          if (input.composing == ours)
-            input.composing = null;
-        }, 50);
-      });
-
-      on(div, "touchstart", function() {
-        input.forceCompositionEnd();
-      });
-
-      on(div, "input", function() {
-        if (input.composing) return;
-        if (cm.isReadOnly() || !input.pollContent())
-          runInOp(input.cm, function() {regChange(cm);});
-      });
-
-      function onCopyCut(e) {
-        if (signalDOMEvent(cm, e)) return
-        if (cm.somethingSelected()) {
-          lastCopied = {lineWise: false, text: cm.getSelections()};
-          if (e.type == "cut") cm.replaceSelection("", null, "cut");
-        } else if (!cm.options.lineWiseCopyCut) {
-          return;
-        } else {
-          var ranges = copyableRanges(cm);
-          lastCopied = {lineWise: true, text: ranges.text};
-          if (e.type == "cut") {
-            cm.operation(function() {
-              cm.setSelections(ranges.ranges, 0, sel_dontScroll);
-              cm.replaceSelection("", null, "cut");
-            });
-          }
-        }
-        if (e.clipboardData) {
-          e.clipboardData.clearData();
-          var content = lastCopied.text.join("\n")
-          // iOS exposes the clipboard API, but seems to discard content inserted into it
-          e.clipboardData.setData("Text", content);
-          if (e.clipboardData.getData("Text") == content) {
-            e.preventDefault();
-            return
-          }
-        }
-        // Old-fashioned briefly-focus-a-textarea hack
-        var kludge = hiddenTextarea(), te = kludge.firstChild;
-        cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
-        te.value = lastCopied.text.join("\n");
-        var hadFocus = document.activeElement;
-        selectInput(te);
-        setTimeout(function() {
-          cm.display.lineSpace.removeChild(kludge);
-          hadFocus.focus();
-          if (hadFocus == div) input.showPrimarySelection()
-        }, 50);
-      }
-      on(div, "copy", onCopyCut);
-      on(div, "cut", onCopyCut);
-    },
-
-    prepareSelection: function() {
-      var result = prepareSelection(this.cm, false);
-      result.focus = this.cm.state.focused;
-      return result;
-    },
-
-    showSelection: function(info, takeFocus) {
-      if (!info || !this.cm.display.view.length) return;
-      if (info.focus || takeFocus) this.showPrimarySelection();
-      this.showMultipleSelections(info);
-    },
-
-    showPrimarySelection: function() {
-      var sel = window.getSelection(), prim = this.cm.doc.sel.primary();
-      var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset);
-      var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);
-      if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
-          cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&
-          cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)
-        return;
-
-      var start = posToDOM(this.cm, prim.from());
-      var end = posToDOM(this.cm, prim.to());
-      if (!start && !end) return;
-
-      var view = this.cm.display.view;
-      var old = sel.rangeCount && sel.getRangeAt(0);
-      if (!start) {
-        start = {node: view[0].measure.map[2], offset: 0};
-      } else if (!end) { // FIXME dangerously hacky
-        var measure = view[view.length - 1].measure;
-        var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
-        end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};
-      }
-
-      try { var rng = range(start.node, start.offset, end.offset, end.node); }
-      catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
-      if (rng) {
-        if (!gecko && this.cm.state.focused) {
-          sel.collapse(start.node, start.offset);
-          if (!rng.collapsed) sel.addRange(rng);
-        } else {
-          sel.removeAllRanges();
-          sel.addRange(rng);
-        }
-        if (old && sel.anchorNode == null) sel.addRange(old);
-        else if (gecko) this.startGracePeriod();
-      }
-      this.rememberSelection();
-    },
-
-    startGracePeriod: function() {
-      var input = this;
-      clearTimeout(this.gracePeriod);
-      this.gracePeriod = setTimeout(function() {
-        input.gracePeriod = false;
-        if (input.selectionChanged())
-          input.cm.operation(function() { input.cm.curOp.selectionChanged = true; });
-      }, 20);
-    },
-
-    showMultipleSelections: function(info) {
-      removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);
-      removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);
-    },
-
-    rememberSelection: function() {
-      var sel = window.getSelection();
-      this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
-      this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
-    },
-
-    selectionInEditor: function() {
-      var sel = window.getSelection();
-      if (!sel.rangeCount) return false;
-      var node = sel.getRangeAt(0).commonAncestorContainer;
-      return contains(this.div, node);
-    },
-
-    focus: function() {
-      if (this.cm.options.readOnly != "nocursor") this.div.focus();
-    },
-    blur: function() { this.div.blur(); },
-    getField: function() { return this.div; },
-
-    supportsTouch: function() { return true; },
-
-    receivedFocus: function() {
-      var input = this;
-      if (this.selectionInEditor())
-        this.pollSelection();
-      else
-        runInOp(this.cm, function() { input.cm.curOp.selectionChanged = true; });
-
-      function poll() {
-        if (input.cm.state.focused) {
-          input.pollSelection();
-          input.polling.set(input.cm.options.pollInterval, poll);
-        }
-      }
-      this.polling.set(this.cm.options.pollInterval, poll);
-    },
-
-    selectionChanged: function() {
-      var sel = window.getSelection();
-      return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
-        sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset;
-    },
-
-    pollSelection: function() {
-      if (!this.composing && !this.gracePeriod && this.selectionChanged()) {
-        var sel = window.getSelection(), cm = this.cm;
-        this.rememberSelection();
-        var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
-        var head = domToPos(cm, sel.focusNode, sel.focusOffset);
-        if (anchor && head) runInOp(cm, function() {
-          setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);
-          if (anchor.bad || head.bad) cm.curOp.selectionChanged = true;
-        });
-      }
-    },
-
-    pollContent: function() {
-      var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();
-      var from = sel.from(), to = sel.to();
-      if (from.line < display.viewFrom || to.line > display.viewTo - 1) return false;
-
-      var fromIndex;
-      if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {
-        var fromLine = lineNo(display.view[0].line);
-        var fromNode = display.view[0].node;
-      } else {
-        var fromLine = lineNo(display.view[fromIndex].line);
-        var fromNode = display.view[fromIndex - 1].node.nextSibling;
-      }
-      var toIndex = findViewIndex(cm, to.line);
-      if (toIndex == display.view.length - 1) {
-        var toLine = display.viewTo - 1;
-        var toNode = display.lineDiv.lastChild;
-      } else {
-        var toLine = lineNo(display.view[toIndex + 1].line) - 1;
-        var toNode = display.view[toIndex + 1].node.previousSibling;
-      }
-
-      var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));
-      var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));
-      while (newText.length > 1 && oldText.length > 1) {
-        if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }
-        else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }
-        else break;
-      }
-
-      var cutFront = 0, cutEnd = 0;
-      var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);
-      while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))
-        ++cutFront;
-      var newBot = lst(newText), oldBot = lst(oldText);
-      var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),
-                               oldBot.length - (oldText.length == 1 ? cutFront : 0));
-      while (cutEnd < maxCutEnd &&
-             newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))
-        ++cutEnd;
-
-      newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd);
-      newText[0] = newText[0].slice(cutFront);
-
-      var chFrom = Pos(fromLine, cutFront);
-      var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);
-      if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {
-        replaceRange(cm.doc, newText, chFrom, chTo, "+input");
-        return true;
-      }
-    },
-
-    ensurePolled: function() {
-      this.forceCompositionEnd();
-    },
-    reset: function() {
-      this.forceCompositionEnd();
-    },
-    forceCompositionEnd: function() {
-      if (!this.composing || this.composing.handled) return;
-      this.applyComposition(this.composing);
-      this.composing.handled = true;
-      this.div.blur();
-      this.div.focus();
-    },
-    applyComposition: function(composing) {
-      if (this.cm.isReadOnly())
-        operation(this.cm, regChange)(this.cm)
-      else if (composing.data && composing.data != composing.startData)
-        operation(this.cm, applyTextInput)(this.cm, composing.data, 0, composing.sel);
-    },
-
-    setUneditable: function(node) {
-      node.contentEditable = "false"
-    },
-
-    onKeyPress: function(e) {
-      e.preventDefault();
-      if (!this.cm.isReadOnly())
-        operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0);
-    },
-
-    readOnlyChanged: function(val) {
-      this.div.contentEditable = String(val != "nocursor")
-    },
-
-    onContextMenu: nothing,
-    resetPosition: nothing,
-
-    needsContentAttribute: true
-  }, ContentEditableInput.prototype);
-
-  function posToDOM(cm, pos) {
-    var view = findViewForLine(cm, pos.line);
-    if (!view || view.hidden) return null;
-    var line = getLine(cm.doc, pos.line);
-    var info = mapFromLineView(view, line, pos.line);
-
-    var order = getOrder(line), side = "left";
-    if (order) {
-      var partPos = getBidiPartAt(order, pos.ch);
-      side = partPos % 2 ? "right" : "left";
-    }
-    var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);
-    result.offset = result.collapse == "right" ? result.end : result.start;
-    return result;
-  }
-
-  function badPos(pos, bad) { if (bad) pos.bad = true; return pos; }
-
-  function domToPos(cm, node, offset) {
-    var lineNode;
-    if (node == cm.display.lineDiv) {
-      lineNode = cm.display.lineDiv.childNodes[offset];
-      if (!lineNode) return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true);
-      node = null; offset = 0;
-    } else {
-      for (lineNode = node;; lineNode = lineNode.parentNode) {
-        if (!lineNode || lineNode == cm.display.lineDiv) return null;
-        if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) break;
-      }
-    }
-    for (var i = 0; i < cm.display.view.length; i++) {
-      var lineView = cm.display.view[i];
-      if (lineView.node == lineNode)
-        return locateNodeInLineView(lineView, node, offset);
-    }
-  }
-
-  function locateNodeInLineView(lineView, node, offset) {
-    var wrapper = lineView.text.firstChild, bad = false;
-    if (!node || !contains(wrapper, node)) return badPos(Pos(lineNo(lineView.line), 0), true);
-    if (node == wrapper) {
-      bad = true;
-      node = wrapper.childNodes[offset];
-      offset = 0;
-      if (!node) {
-        var line = lineView.rest ? lst(lineView.rest) : lineView.line;
-        return badPos(Pos(lineNo(line), line.text.length), bad);
-      }
-    }
-
-    var textNode = node.nodeType == 3 ? node : null, topNode = node;
-    if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {
-      textNode = node.firstChild;
-      if (offset) offset = textNode.nodeValue.length;
-    }
-    while (topNode.parentNode != wrapper) topNode = topNode.parentNode;
-    var measure = lineView.measure, maps = measure.maps;
-
-    function find(textNode, topNode, offset) {
-      for (var i = -1; i < (maps ? maps.length : 0); i++) {
-        var map = i < 0 ? measure.map : maps[i];
-        for (var j = 0; j < map.length; j += 3) {
-          var curNode = map[j + 2];
-          if (curNode == textNode || curNode == topNode) {
-            var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);
-            var ch = map[j] + offset;
-            if (offset < 0 || curNode != textNode) ch = map[j + (offset ? 1 : 0)];
-            return Pos(line, ch);
-          }
-        }
-      }
-    }
-    var found = find(textNode, topNode, offset);
-    if (found) return badPos(found, bad);
-
-    // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems
-    for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {
-      found = find(after, after.firstChild, 0);
-      if (found)
-        return badPos(Pos(found.line, found.ch - dist), bad);
-      else
-        dist += after.textContent.length;
-    }
-    for (var before = topNode.previousSibling, dist = offset; before; before = before.previousSibling) {
-      found = find(before, before.firstChild, -1);
-      if (found)
-        return badPos(Pos(found.line, found.ch + dist), bad);
-      else
-        dist += before.textContent.length;
-    }
-  }
-
-  function domTextBetween(cm, from, to, fromLine, toLine) {
-    var text = "", closing = false, lineSep = cm.doc.lineSeparator();
-    function recognizeMarker(id) { return function(marker) { return marker.id == id; }; }
-    function walk(node) {
-      if (node.nodeType == 1) {
-        var cmText = node.getAttribute("cm-text");
-        if (cmText != null) {
-          if (cmText == "") cmText = node.textContent.replace(/\u200b/g, "");
-          text += cmText;
-          return;
-        }
-        var markerID = node.getAttribute("cm-marker"), range;
-        if (markerID) {
-          var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
-          if (found.length && (range = found[0].find()))
-            text += getBetween(cm.doc, range.from, range.to).join(lineSep);
-          return;
-        }
-        if (node.getAttribute("contenteditable") == "false") return;
-        for (var i = 0; i < node.childNodes.length; i++)
-          walk(node.childNodes[i]);
-        if (/^(pre|div|p)$/i.test(node.nodeName))
-          closing = true;
-      } else if (node.nodeType == 3) {
-        var val = node.nodeValue;
-        if (!val) return;
-        if (closing) {
-          text += lineSep;
-          closing = false;
-        }
-        text += val;
-      }
-    }
-    for (;;) {
-      walk(from);
-      if (from == to) break;
-      from = from.nextSibling;
-    }
-    return text;
-  }
-
-  CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput};
-
-  // SELECTION / CURSOR
-
-  // Selection objects are immutable. A new one is created every time
-  // the selection changes. A selection is one or more non-overlapping
-  // (and non-touching) ranges, sorted, and an integer that indicates
-  // which one is the primary selection (the one that's scrolled into
-  // view, that getCursor returns, etc).
-  function Selection(ranges, primIndex) {
-    this.ranges = ranges;
-    this.primIndex = primIndex;
-  }
-
-  Selection.prototype = {
-    primary: function() { return this.ranges[this.primIndex]; },
-    equals: function(other) {
-      if (other == this) return true;
-      if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false;
-      for (var i = 0; i < this.ranges.length; i++) {
-        var here = this.ranges[i], there = other.ranges[i];
-        if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false;
-      }
-      return true;
-    },
-    deepCopy: function() {
-      for (var out = [], i = 0; i < this.ranges.length; i++)
-        out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head));
-      return new Selection(out, this.primIndex);
-    },
-    somethingSelected: function() {
-      for (var i = 0; i < this.ranges.length; i++)
-        if (!this.ranges[i].empty()) return true;
-      return false;
-    },
-    contains: function(pos, end) {
-      if (!end) end = pos;
-      for (var i = 0; i < this.ranges.length; i++) {
-        var range = this.ranges[i];
-        if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)
-          return i;
-      }
-      return -1;
-    }
-  };
-
-  function Range(anchor, head) {
-    this.anchor = anchor; this.head = head;
-  }
-
-  Range.prototype = {
-    from: function() { return minPos(this.anchor, this.head); },
-    to: function() { return maxPos(this.anchor, this.head); },
-    empty: function() {
-      return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch;
-    }
-  };
-
-  // Take an unsorted, potentially overlapping set of ranges, and
-  // build a selection out of it. 'Consumes' ranges array (modifying
-  // it).
-  function normalizeSelection(ranges, primIndex) {
-    var prim = ranges[primIndex];
-    ranges.sort(function(a, b) { return cmp(a.from(), b.from()); });
-    primIndex = indexOf(ranges, prim);
-    for (var i = 1; i < ranges.length; i++) {
-      var cur = ranges[i], prev = ranges[i - 1];
-      if (cmp(prev.to(), cur.from()) >= 0) {
-        var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());
-        var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;
-        if (i <= primIndex) --primIndex;
-        ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));
-      }
-    }
-    return new Selection(ranges, primIndex);
-  }
-
-  function simpleSelection(anchor, head) {
-    return new Selection([new Range(anchor, head || anchor)], 0);
-  }
-
-  // Most of the external API clips given positions to make sure they
-  // actually exist within the document.
-  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}
-  function clipPos(doc, pos) {
-    if (pos.line < doc.first) return Pos(doc.first, 0);
-    var last = doc.first + doc.size - 1;
-    if (pos.line > last) return Pos(last, getLine(doc, last).text.length);
-    return clipToLen(pos, getLine(doc, pos.line).text.length);
-  }
-  function clipToLen(pos, linelen) {
-    var ch = pos.ch;
-    if (ch == null || ch > linelen) return Pos(pos.line, linelen);
-    else if (ch < 0) return Pos(pos.line, 0);
-    else return pos;
-  }
-  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}
-  function clipPosArray(doc, array) {
-    for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]);
-    return out;
-  }
-
-  // SELECTION UPDATES
-
-  // The 'scroll' parameter given to many of these indicated whether
-  // the new cursor position should be scrolled into view after
-  // modifying the selection.
-
-  // If shift is held or the extend flag is set, extends a range to
-  // include a given position (and optionally a second position).
-  // Otherwise, simply returns the range between the given positions.
-  // Used for cursor motion and such.
-  function extendRange(doc, range, head, other) {
-    if (doc.cm && doc.cm.display.shift || doc.extend) {
-      var anchor = range.anchor;
-      if (other) {
-        var posBefore = cmp(head, anchor) < 0;
-        if (posBefore != (cmp(other, anchor) < 0)) {
-          anchor = head;
-          head = other;
-        } else if (posBefore != (cmp(head, other) < 0)) {
-          head = other;
-        }
-      }
-      return new Range(anchor, head);
-    } else {
-      return new Range(other || head, head);
-    }
-  }
-
-  // Extend the primary selection range, discard the rest.
-  function extendSelection(doc, head, other, options) {
-    setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options);
-  }
-
-  // Extend all selections (pos is an array of selections with length
-  // equal the number of selections)
-  function extendSelections(doc, heads, options) {
-    for (var out = [], i = 0; i < doc.sel.ranges.length; i++)
-      out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null);
-    var newSel = normalizeSelection(out, doc.sel.primIndex);
-    setSelection(doc, newSel, options);
-  }
-
-  // Updates a single range in the selection.
-  function replaceOneSelection(doc, i, range, options) {
-    var ranges = doc.sel.ranges.slice(0);
-    ranges[i] = range;
-    setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options);
-  }
-
-  // Reset the selection to a single range.
-  function setSimpleSelection(doc, anchor, head, options) {
-    setSelection(doc, simpleSelection(anchor, head), options);
-  }
-
-  // Give beforeSelectionChange handlers a change to influence a
-  // selection update.
-  function filterSelectionChange(doc, sel, options) {
-    var obj = {
-      ranges: sel.ranges,
-      update: function(ranges) {
-        this.ranges = [];
-        for (var i = 0; i < ranges.length; i++)
-          this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),
-                                     clipPos(doc, ranges[i].head));
-      },
-      origin: options && options.origin
-    };
-    signal(doc, "beforeSelectionChange", doc, obj);
-    if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj);
-    if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1);
-    else return sel;
-  }
-
-  function setSelectionReplaceHistory(doc, sel, options) {
-    var done = doc.history.done, last = lst(done);
-    if (last && last.ranges) {
-      done[done.length - 1] = sel;
-      setSelectionNoUndo(doc, sel, options);
-    } else {
-      setSelection(doc, sel, options);
-    }
-  }
-
-  // Set a new selection.
-  function setSelection(doc, sel, options) {
-    setSelectionNoUndo(doc, sel, options);
-    addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);
-  }
-
-  function setSelectionNoUndo(doc, sel, options) {
-    if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange"))
-      sel = filterSelectionChange(doc, sel, options);
-
-    var bias = options && options.bias ||
-      (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);
-    setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));
-
-    if (!(options && options.scroll === false) && doc.cm)
-      ensureCursorVisible(doc.cm);
-  }
-
-  function setSelectionInner(doc, sel) {
-    if (sel.equals(doc.sel)) return;
-
-    doc.sel = sel;
-
-    if (doc.cm) {
-      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;
-      signalCursorActivity(doc.cm);
-    }
-    signalLater(doc, "cursorActivity", doc);
-  }
-
-  // Verify that the selection does not partially select any atomic
-  // marked ranges.
-  function reCheckSelection(doc) {
-    setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll);
-  }
-
-  // Return a selection that does not partially select any atomic
-  // ranges.
-  function skipAtomicInSelection(doc, sel, bias, mayClear) {
-    var out;
-    for (var i = 0; i < sel.ranges.length; i++) {
-      var range = sel.ranges[i];
-      var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];
-      var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);
-      var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);
-      if (out || newAnchor != range.anchor || newHead != range.head) {
-        if (!out) out = sel.ranges.slice(0, i);
-        out[i] = new Range(newAnchor, newHead);
-      }
-    }
-    return out ? normalizeSelection(out, sel.primIndex) : sel;
-  }
-
-  function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {
-    var line = getLine(doc, pos.line);
-    if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
-      var sp = line.markedSpans[i], m = sp.marker;
-      if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&
-          (sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) {
-        if (mayClear) {
-          signal(m, "beforeCursorEnter");
-          if (m.explicitlyCleared) {
-            if (!line.markedSpans) break;
-            else {--i; continue;}
-          }
-        }
-        if (!m.atomic) continue;
-
-        if (oldPos) {
-          var near = m.find(dir < 0 ? 1 : -1), diff;
-          if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft)
-            near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null);
-          if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))
-            return skipAtomicInner(doc, near, pos, dir, mayClear);
-        }
-
-        var far = m.find(dir < 0 ? -1 : 1);
-        if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight)
-          far = movePos(doc, far, dir, far.line == pos.line ? line : null);
-        return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null;
-      }
-    }
-    return pos;
-  }
-
-  // Ensure a given position is not inside an atomic range.
-  function skipAtomic(doc, pos, oldPos, bias, mayClear) {
-    var dir = bias || 1;
-    var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||
-        (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||
-        skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||
-        (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));
-    if (!found) {
-      doc.cantEdit = true;
-      return Pos(doc.first, 0);
-    }
-    return found;
-  }
-
-  function movePos(doc, pos, dir, line) {
-    if (dir < 0 && pos.ch == 0) {
-      if (pos.line > doc.first) return clipPos(doc, Pos(pos.line - 1));
-      else return null;
-    } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {
-      if (pos.line < doc.first + doc.size - 1) return Pos(pos.line + 1, 0);
-      else return null;
-    } else {
-      return new Pos(pos.line, pos.ch + dir);
-    }
-  }
-
-  // SELECTION DRAWING
-
-  function updateSelection(cm) {
-    cm.display.input.showSelection(cm.display.input.prepareSelection());
-  }
-
-  function prepareSelection(cm, primary) {
-    var doc = cm.doc, result = {};
-    var curFragment = result.cursors = document.createDocumentFragment();
-    var selFragment = result.selection = document.createDocumentFragment();
-
-    for (var i = 0; i < doc.sel.ranges.length; i++) {
-      if (primary === false && i == doc.sel.primIndex) continue;
-      var range = doc.sel.ranges[i];
-      if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) continue;
-      var collapsed = range.empty();
-      if (collapsed || cm.options.showCursorWhenSelecting)
-        drawSelectionCursor(cm, range.head, curFragment);
-      if (!collapsed)
-        drawSelectionRange(cm, range, selFragment);
-    }
-    return result;
-  }
-
-  // Draws a cursor for the given range
-  function drawSelectionCursor(cm, head, output) {
-    var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine);
-
-    var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor"));
-    cursor.style.left = pos.left + "px";
-    cursor.style.top = pos.top + "px";
-    cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px";
-
-    if (pos.other) {
-      // Secondary cursor, shown when on a 'jump' in bi-directional text
-      var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"));
-      otherCursor.style.display = "";
-      otherCursor.style.left = pos.other.left + "px";
-      otherCursor.style.top = pos.other.top + "px";
-      otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px";
-    }
-  }
-
-  // Draws the given range as a highlighted selection
-  function drawSelectionRange(cm, range, output) {
-    var display = cm.display, doc = cm.doc;
-    var fragment = document.createDocumentFragment();
-    var padding = paddingH(cm.display), leftSide = padding.left;
-    var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
-
-    function add(left, top, width, bottom) {
-      if (top < 0) top = 0;
-      top = Math.round(top);
-      bottom = Math.round(bottom);
-      fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left +
-                               "px; top: " + top + "px; width: " + (width == null ? rightSide - left : width) +
-                               "px; height: " + (bottom - top) + "px"));
-    }
-
-    function drawForLine(line, fromArg, toArg) {
-      var lineObj = getLine(doc, line);
-      var lineLen = lineObj.text.length;
-      var start, end;
-      function coords(ch, bias) {
-        return charCoords(cm, Pos(line, ch), "div", lineObj, bias);
-      }
-
-      iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {
-        var leftPos = coords(from, "left"), rightPos, left, right;
-        if (from == to) {
-          rightPos = leftPos;
-          left = right = leftPos.left;
-        } else {
-          rightPos = coords(to - 1, "right");
-          if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }
-          left = leftPos.left;
-          right = rightPos.right;
-        }
-        if (fromArg == null && from == 0) left = leftSide;
-        if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
-          add(left, leftPos.top, null, leftPos.bottom);
-          left = leftSide;
-          if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);
-        }
-        if (toArg == null && to == lineLen) right = rightSide;
-        if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
-          start = leftPos;
-        if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
-          end = rightPos;
-        if (left < leftSide + 1) left = leftSide;
-        add(left, rightPos.top, right - left, rightPos.bottom);
-      });
-      return {start: start, end: end};
-    }
-
-    var sFrom = range.from(), sTo = range.to();
-    if (sFrom.line == sTo.line) {
-      drawForLine(sFrom.line, sFrom.ch, sTo.ch);
-    } else {
-      var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);
-      var singleVLine = visualLine(fromLine) == visualLine(toLine);
-      var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;
-      var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;
-      if (singleVLine) {
-        if (leftEnd.top < rightStart.top - 2) {
-          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);
-          add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);
-        } else {
-          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);
-        }
-      }
-      if (leftEnd.bottom < rightStart.top)
-        add(leftSide, leftEnd.bottom, null, rightStart.top);
-    }
-
-    output.appendChild(fragment);
-  }
-
-  // Cursor-blinking
-  function restartBlink(cm) {
-    if (!cm.state.focused) return;
-    var display = cm.display;
-    clearInterval(display.blinker);
-    var on = true;
-    display.cursorDiv.style.visibility = "";
-    if (cm.options.cursorBlinkRate > 0)
-      display.blinker = setInterval(function() {
-        display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden";
-      }, cm.options.cursorBlinkRate);
-    else if (cm.options.cursorBlinkRate < 0)
-      display.cursorDiv.style.visibility = "hidden";
-  }
-
-  // HIGHLIGHT WORKER
-
-  function startWorker(cm, time) {
-    if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo)
-      cm.state.highlight.set(time, bind(highlightWorker, cm));
-  }
-
-  function highlightWorker(cm) {
-    var doc = cm.doc;
-    if (doc.frontier < doc.first) doc.frontier = doc.first;
-    if (doc.frontier >= cm.display.viewTo) return;
-    var end = +new Date + cm.options.workTime;
-    var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));
-    var changedLines = [];
-
-    doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) {
-      if (doc.frontier >= cm.display.viewFrom) { // Visible
-        var oldStyles = line.styles, tooLong = line.text.length > cm.options.maxHighlightLength;
-        var highlighted = highlightLine(cm, line, tooLong ? copyState(doc.mode, state) : state, true);
-        line.styles = highlighted.styles;
-        var oldCls = line.styleClasses, newCls = highlighted.classes;
-        if (newCls) line.styleClasses = newCls;
-        else if (oldCls) line.styleClasses = null;
-        var ischange = !oldStyles || oldStyles.length != line.styles.length ||
-          oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
-        for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];
-        if (ischange) changedLines.push(doc.frontier);
-        line.stateAfter = tooLong ? state : copyState(doc.mode, state);
-      } else {
-        if (line.text.length <= cm.options.maxHighlightLength)
-          processLine(cm, line.text, state);
-        line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;
-      }
-      ++doc.frontier;
-      if (+new Date > end) {
-        startWorker(cm, cm.options.workDelay);
-        return true;
-      }
-    });
-    if (changedLines.length) runInOp(cm, function() {
-      for (var i = 0; i < changedLines.length; i++)
-        regLineChange(cm, changedLines[i], "text");
-    });
-  }
-
-  // Finds the line to start with when starting a parse. Tries to
-  // find a line with a stateAfter, so that it can start with a
-  // valid state. If that fails, it returns the line with the
-  // smallest indentation, which tends to need the least context to
-  // parse correctly.
-  function findStartLine(cm, n, precise) {
-    var minindent, minline, doc = cm.doc;
-    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
-    for (var search = n; search > lim; --search) {
-      if (search <= doc.first) return doc.first;
-      var line = getLine(doc, search - 1);
-      if (line.stateAfter && (!precise || search <= doc.frontier)) return search;
-      var indented = countColumn(line.text, null, cm.options.tabSize);
-      if (minline == null || minindent > indented) {
-        minline = search - 1;
-        minindent = indented;
-      }
-    }
-    return minline;
-  }
-
-  function getStateBefore(cm, n, precise) {
-    var doc = cm.doc, display = cm.display;
-    if (!doc.mode.startState) return true;
-    var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;
-    if (!state) state = startState(doc.mode);
-    else state = copyState(doc.mode, state);
-    doc.iter(pos, n, function(line) {
-      processLine(cm, line.text, state);
-      var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo;
-      line.stateAfter = save ? copyState(doc.mode, state) : null;
-      ++pos;
-    });
-    if (precise) doc.frontier = pos;
-    return state;
-  }
-
-  // POSITION MEASUREMENT
-
-  function paddingTop(display) {return display.lineSpace.offsetTop;}
-  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}
-  function paddingH(display) {
-    if (display.cachedPaddingH) return display.cachedPaddingH;
-    var e = removeChildrenAndAdd(display.measure, elt("pre", "x"));
-    var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;
-    var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};
-    if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data;
-    return data;
-  }
-
-  function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; }
-  function displayWidth(cm) {
-    return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth;
-  }
-  function displayHeight(cm) {
-    return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight;
-  }
-
-  // Ensure the lineView.wrapping.heights array is populated. This is
-  // an array of bottom offsets for the lines that make up a drawn
-  // line. When lineWrapping is on, there might be more than one
-  // height.
-  function ensureLineHeights(cm, lineView, rect) {
-    var wrapping = cm.options.lineWrapping;
-    var curWidth = wrapping && displayWidth(cm);
-    if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {
-      var heights = lineView.measure.heights = [];
-      if (wrapping) {
-        lineView.measure.width = curWidth;
-        var rects = lineView.text.firstChild.getClientRects();
-        for (var i = 0; i < rects.length - 1; i++) {
-          var cur = rects[i], next = rects[i + 1];
-          if (Math.abs(cur.bottom - next.bottom) > 2)
-            heights.push((cur.bottom + next.top) / 2 - rect.top);
-        }
-      }
-      heights.push(rect.bottom - rect.top);
-    }
-  }
-
-  // Find a line map (mapping character offsets to text nodes) and a
-  // measurement cache for the given line number. (A line view might
-  // contain multiple lines when collapsed ranges are present.)
-  function mapFromLineView(lineView, line, lineN) {
-    if (lineView.line == line)
-      return {map: lineView.measure.map, cache: lineView.measure.cache};
-    for (var i = 0; i < lineView.rest.length; i++)
-      if (lineView.rest[i] == line)
-        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]};
-    for (var i = 0; i < lineView.rest.length; i++)
-      if (lineNo(lineView.rest[i]) > lineN)
-        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true};
-  }
-
-  // Render a line into the hidden node display.externalMeasured. Used
-  // when measurement is needed for a line that's not in the viewport.
-  function updateExternalMeasurement(cm, line) {
-    line = visualLine(line);
-    var lineN = lineNo(line);
-    var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);
-    view.lineN = lineN;
-    var built = view.built = buildLineContent(cm, view);
-    view.text = built.pre;
-    removeChildrenAndAdd(cm.display.lineMeasure, built.pre);
-    return view;
-  }
-
-  // Get a {top, bottom, left, right} box (in line-local coordinates)
-  // for a given character.
-  function measureChar(cm, line, ch, bias) {
-    return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias);
-  }
-
-  // Find a line view that corresponds to the given line number.
-  function findViewForLine(cm, lineN) {
-    if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)
-      return cm.display.view[findViewIndex(cm, lineN)];
-    var ext = cm.display.externalMeasured;
-    if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)
-      return ext;
-  }
-
-  // Measurement can be split in two steps, the set-up work that
-  // applies to the whole line, and the measurement of the actual
-  // character. Functions like coordsChar, that need to do a lot of
-  // measurements in a row, can thus ensure that the set-up work is
-  // only done once.
-  function prepareMeasureForLine(cm, line) {
-    var lineN = lineNo(line);
-    var view = findViewForLine(cm, lineN);
-    if (view && !view.text) {
-      view = null;
-    } else if (view && view.changes) {
-      updateLineForChanges(cm, view, lineN, getDimensions(cm));
-      cm.curOp.forceUpdate = true;
-    }
-    if (!view)
-      view = updateExternalMeasurement(cm, line);
-
-    var info = mapFromLineView(view, line, lineN);
-    return {
-      line: line, view: view, rect: null,
-      map: info.map, cache: info.cache, before: info.before,
-      hasHeights: false
-    };
-  }
-
-  // Given a prepared measurement object, measures the position of an
-  // actual character (or fetches it from the cache).
-  function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
-    if (prepared.before) ch = -1;
-    var key = ch + (bias || ""), found;
-    if (prepared.cache.hasOwnProperty(key)) {
-      found = prepared.cache[key];
-    } else {
-      if (!prepared.rect)
-        prepared.rect = prepared.view.text.getBoundingClientRect();
-      if (!prepared.hasHeights) {
-        ensureLineHeights(cm, prepared.view, prepared.rect);
-        prepared.hasHeights = true;
-      }
-      found = measureCharInner(cm, prepared, ch, bias);
-      if (!found.bogus) prepared.cache[key] = found;
-    }
-    return {left: found.left, right: found.right,
-            top: varHeight ? found.rtop : found.top,
-            bottom: varHeight ? found.rbottom : found.bottom};
-  }
-
-  var nullRect = {left: 0, right: 0, top: 0, bottom: 0};
-
-  function nodeAndOffsetInLineMap(map, ch, bias) {
-    var node, start, end, collapse;
-    // First, search the line map for the text node corresponding to,
-    // or closest to, the target character.
-    for (var i = 0; i < map.length; i += 3) {
-      var mStart = map[i], mEnd = map[i + 1];
-      if (ch < mStart) {
-        start = 0; end = 1;
-        collapse = "left";
-      } else if (ch < mEnd) {
-        start = ch - mStart;
-        end = start + 1;
-      } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {
-        end = mEnd - mStart;
-        start = end - 1;
-        if (ch >= mEnd) collapse = "right";
-      }
-      if (start != null) {
-        node = map[i + 2];
-        if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right"))
-          collapse = bias;
-        if (bias == "left" && start == 0)
-          while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {
-            node = map[(i -= 3) + 2];
-            collapse = "left";
-          }
-        if (bias == "right" && start == mEnd - mStart)
-          while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {
-            node = map[(i += 3) + 2];
-            collapse = "right";
-          }
-        break;
-      }
-    }
-    return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd};
-  }
-
-  function getUsefulRect(rects, bias) {
-    var rect = nullRect
-    if (bias == "left") for (var i = 0; i < rects.length; i++) {
-      if ((rect = rects[i]).left != rect.right) break
-    } else for (var i = rects.length - 1; i >= 0; i--) {
-      if ((rect = rects[i]).left != rect.right) break
-    }
-    return rect
-  }
-
-  function measureCharInner(cm, prepared, ch, bias) {
-    var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);
-    var node = place.node, start = place.start, end = place.end, collapse = place.collapse;
-
-    var rect;
-    if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.
-      for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned
-        while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) --start;
-        while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) ++end;
-        if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)
-          rect = node.parentNode.getBoundingClientRect();
-        else
-          rect = getUsefulRect(range(node, start, end).getClientRects(), bias)
-        if (rect.left || rect.right || start == 0) break;
-        end = start;
-        start = start - 1;
-        collapse = "right";
-      }
-      if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect);
-    } else { // If it is a widget, simply get the box for the whole widget.
-      if (start > 0) collapse = bias = "right";
-      var rects;
-      if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)
-        rect = rects[bias == "right" ? rects.length - 1 : 0];
-      else
-        rect = node.getBoundingClientRect();
-    }
-    if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {
-      var rSpan = node.parentNode.getClientRects()[0];
-      if (rSpan)
-        rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom};
-      else
-        rect = nullRect;
-    }
-
-    var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;
-    var mid = (rtop + rbot) / 2;
-    var heights = prepared.view.measure.heights;
-    for (var i = 0; i < heights.length - 1; i++)
-      if (mid < heights[i]) break;
-    var top = i ? heights[i - 1] : 0, bot = heights[i];
-    var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left,
-                  right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left,
-                  top: top, bottom: bot};
-    if (!rect.left && !rect.right) result.bogus = true;
-    if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }
-
-    return result;
-  }
-
-  // Work around problem with bounding client rects on ranges being
-  // returned incorrectly when zoomed on IE10 and below.
-  function maybeUpdateRectForZooming(measure, rect) {
-    if (!window.screen || screen.logicalXDPI == null ||
-        screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))
-      return rect;
-    var scaleX = screen.logicalXDPI / screen.deviceXDPI;
-    var scaleY = screen.logicalYDPI / screen.deviceYDPI;
-    return {left: rect.left * scaleX, right: rect.right * scaleX,
-            top: rect.top * scaleY, bottom: rect.bottom * scaleY};
-  }
-
-  function clearLineMeasurementCacheFor(lineView) {
-    if (lineView.measure) {
-      lineView.measure.cache = {};
-      lineView.measure.heights = null;
-      if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
-        lineView.measure.caches[i] = {};
-    }
-  }
-
-  function clearLineMeasurementCache(cm) {
-    cm.display.externalMeasure = null;
-    removeChildren(cm.display.lineMeasure);
-    for (var i = 0; i < cm.display.view.length; i++)
-      clearLineMeasurementCacheFor(cm.display.view[i]);
-  }
-
-  function clearCaches(cm) {
-    clearLineMeasurementCache(cm);
-    cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;
-    if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;
-    cm.display.lineNumChars = null;
-  }
-
-  function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }
-  function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }
-
-  // Converts a {top, bottom, left, right} box from line-local
-  // coordinates into another coordinate system. Context may be one of
-  // "line", "div" (display.lineDiv), "local"/null (editor), "window",
-  // or "page".
-  function intoCoordSystem(cm, lineObj, rect, context) {
-    if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {
-      var size = widgetHeight(lineObj.widgets[i]);
-      rect.top += size; rect.bottom += size;
-    }
-    if (context == "line") return rect;
-    if (!context) context = "local";
-    var yOff = heightAtLine(lineObj);
-    if (context == "local") yOff += paddingTop(cm.display);
-    else yOff -= cm.display.viewOffset;
-    if (context == "page" || context == "window") {
-      var lOff = cm.display.lineSpace.getBoundingClientRect();
-      yOff += lOff.top + (context == "window" ? 0 : pageScrollY());
-      var xOff = lOff.left + (context == "window" ? 0 : pageScrollX());
-      rect.left += xOff; rect.right += xOff;
-    }
-    rect.top += yOff; rect.bottom += yOff;
-    return rect;
-  }
-
-  // Coverts a box from "div" coords to another coordinate system.
-  // Context may be "window", "page", "div", or "local"/null.
-  function fromCoordSystem(cm, coords, context) {
-    if (context == "div") return coords;
-    var left = coords.left, top = coords.top;
-    // First move into "page" coordinate system
-    if (context == "page") {
-      left -= pageScrollX();
-      top -= pageScrollY();
-    } else if (context == "local" || !context) {
-      var localBox = cm.display.sizer.getBoundingClientRect();
-      left += localBox.left;
-      top += localBox.top;
-    }
-
-    var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();
-    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};
-  }
-
-  function charCoords(cm, pos, context, lineObj, bias) {
-    if (!lineObj) lineObj = getLine(cm.doc, pos.line);
-    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context);
-  }
-
-  // Returns a box for a given cursor position, which may have an
-  // 'other' property containing the position of the secondary cursor
-  // on a bidi boundary.
-  function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
-    lineObj = lineObj || getLine(cm.doc, pos.line);
-    if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj);
-    function get(ch, right) {
-      var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight);
-      if (right) m.left = m.right; else m.right = m.left;
-      return intoCoordSystem(cm, lineObj, m, context);
-    }
-    function getBidi(ch, partPos) {
-      var part = order[partPos], right = part.level % 2;
-      if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {
-        part = order[--partPos];
-        ch = bidiRight(part) - (part.level % 2 ? 0 : 1);
-        right = true;
-      } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {
-        part = order[++partPos];
-        ch = bidiLeft(part) - part.level % 2;
-        right = false;
-      }
-      if (right && ch == part.to && ch > part.from) return get(ch - 1);
-      return get(ch, right);
-    }
-    var order = getOrder(lineObj), ch = pos.ch;
-    if (!order) return get(ch);
-    var partPos = getBidiPartAt(order, ch);
-    var val = getBidi(ch, partPos);
-    if (bidiOther != null) val.other = getBidi(ch, bidiOther);
-    return val;
-  }
-
-  // Used to cheaply estimate the coordinates for a position. Used for
-  // intermediate scroll updates.
-  function estimateCoords(cm, pos) {
-    var left = 0, pos = clipPos(cm.doc, pos);
-    if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch;
-    var lineObj = getLine(cm.doc, pos.line);
-    var top = heightAtLine(lineObj) + paddingTop(cm.display);
-    return {left: left, right: left, top: top, bottom: top + lineObj.height};
-  }
-
-  // Positions returned by coordsChar contain some extra information.
-  // xRel is the relative x position of the input coordinates compared
-  // to the found position (so xRel > 0 means the coordinates are to
-  // the right of the character position, for example). When outside
-  // is true, that means the coordinates lie outside the line's
-  // vertical range.
-  function PosWithInfo(line, ch, outside, xRel) {
-    var pos = Pos(line, ch);
-    pos.xRel = xRel;
-    if (outside) pos.outside = true;
-    return pos;
-  }
-
-  // Compute the character position closest to the given coordinates.
-  // Input must be lineSpace-local ("div" coordinate system).
-  function coordsChar(cm, x, y) {
-    var doc = cm.doc;
-    y += cm.display.viewOffset;
-    if (y < 0) return PosWithInfo(doc.first, 0, true, -1);
-    var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
-    if (lineN > last)
-      return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);
-    if (x < 0) x = 0;
-
-    var lineObj = getLine(doc, lineN);
-    for (;;) {
-      var found = coordsCharInner(cm, lineObj, lineN, x, y);
-      var merged = collapsedSpanAtEnd(lineObj);
-      var mergedPos = merged && merged.find(0, true);
-      if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))
-        lineN = lineNo(lineObj = mergedPos.to.line);
-      else
-        return found;
-    }
-  }
-
-  function coordsCharInner(cm, lineObj, lineNo, x, y) {
-    var innerOff = y - heightAtLine(lineObj);
-    var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;
-    var preparedMeasure = prepareMeasureForLine(cm, lineObj);
-
-    function getX(ch) {
-      var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, preparedMeasure);
-      wrongLine = true;
-      if (innerOff > sp.bottom) return sp.left - adjust;
-      else if (innerOff < sp.top) return sp.left + adjust;
-      else wrongLine = false;
-      return sp.left;
-    }
-
-    var bidi = getOrder(lineObj), dist = lineObj.text.length;
-    var from = lineLeft(lineObj), to = lineRight(lineObj);
-    var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;
-
-    if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);
-    // Do a binary search between these bounds.
-    for (;;) {
-      if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {
-        var ch = x < fromX || x - fromX <= toX - x ? from : to;
-        var outside = ch == from ? fromOutside : toOutside
-        var xDiff = x - (ch == from ? fromX : toX);
-        // This is a kludge to handle the case where the coordinates
-        // are after a line-wrapped line. We should replace it with a
-        // more general handling of cursor positions around line
-        // breaks. (Issue #4078)
-        if (toOutside && !bidi && !/\s/.test(lineObj.text.charAt(ch)) && xDiff > 0 &&
-            ch < lineObj.text.length && preparedMeasure.view.measure.heights.length > 1) {
-          var charSize = measureCharPrepared(cm, preparedMeasure, ch, "right");
-          if (innerOff <= charSize.bottom && innerOff >= charSize.top && Math.abs(x - charSize.right) < xDiff) {
-            outside = false
-            ch++
-            xDiff = x - charSize.right
-          }
-        }
-        while (isExtendingChar(lineObj.text.charAt(ch))) ++ch;
-        var pos = PosWithInfo(lineNo, ch, outside, xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0);
-        return pos;
-      }
-      var step = Math.ceil(dist / 2), middle = from + step;
-      if (bidi) {
-        middle = from;
-        for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);
-      }
-      var middleX = getX(middle);
-      if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}
-      else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}
-    }
-  }
-
-  var measureText;
-  // Compute the default text height.
-  function textHeight(display) {
-    if (display.cachedTextHeight != null) return display.cachedTextHeight;
-    if (measureText == null) {
-      measureText = elt("pre");
-      // Measure a bunch of lines, for browsers that compute
-      // fractional heights.
-      for (var i = 0; i < 49; ++i) {
-        measureText.appendChild(document.createTextNode("x"));
-        measureText.appendChild(elt("br"));
-      }
-      measureText.appendChild(document.createTextNode("x"));
-    }
-    removeChildrenAndAdd(display.measure, measureText);
-    var height = measureText.offsetHeight / 50;
-    if (height > 3) display.cachedTextHeight = height;
-    removeChildren(display.measure);
-    return height || 1;
-  }
-
-  // Compute the default character width.
-  function charWidth(display) {
-    if (display.cachedCharWidth != null) return display.cachedCharWidth;
-    var anchor = elt("span", "xxxxxxxxxx");
-    var pre = elt("pre", [anchor]);
-    removeChildrenAndAdd(display.measure, pre);
-    var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;
-    if (width > 2) display.cachedCharWidth = width;
-    return width || 10;
-  }
-
-  // OPERATIONS
-
-  // Operations are used to wrap a series of changes to the editor
-  // state in such a way that each change won't have to update the
-  // cursor and display (which would be awkward, slow, and
-  // error-prone). Instead, display updates are batched and then all
-  // combined and executed at once.
-
-  var operationGroup = null;
-
-  var nextOpId = 0;
-  // Start a new operation.
-  function startOperation(cm) {
-    cm.curOp = {
-      cm: cm,
-      viewChanged: false,      // Flag that indicates that lines might need to be redrawn
-      startHeight: cm.doc.height, // Used to detect need to update scrollbar
-      forceUpdate: false,      // Used to force a redraw
-      updateInput: null,       // Whether to reset the input textarea
-      typing: false,           // Whether this reset should be careful to leave existing text (for compositing)
-      changeObjs: null,        // Accumulated changes, for firing change events
-      cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on
-      cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already
-      selectionChanged: false, // Whether the selection needs to be redrawn
-      updateMaxLine: false,    // Set when the widest line needs to be determined anew
-      scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet
-      scrollToPos: null,       // Used to scroll to a specific position
-      focus: false,
-      id: ++nextOpId           // Unique ID
-    };
-    if (operationGroup) {
-      operationGroup.ops.push(cm.curOp);
-    } else {
-      cm.curOp.ownsGroup = operationGroup = {
-        ops: [cm.curOp],
-        delayedCallbacks: []
-      };
-    }
-  }
-
-  function fireCallbacksForOps(group) {
-    // Calls delayed callbacks and cursorActivity handlers until no
-    // new ones appear
-    var callbacks = group.delayedCallbacks, i = 0;
-    do {
-      for (; i < callbacks.length; i++)
-        callbacks[i].call(null);
-      for (var j = 0; j < group.ops.length; j++) {
-        var op = group.ops[j];
-        if (op.cursorActivityHandlers)
-          while (op.cursorActivityCalled < op.cursorActivityHandlers.length)
-            op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm);
-      }
-    } while (i < callbacks.length);
-  }
-
-  // Finish an operation, updating the display and signalling delayed events
-  function endOperation(cm) {
-    var op = cm.curOp, group = op.ownsGroup;
-    if (!group) return;
-
-    try { fireCallbacksForOps(group); }
-    finally {
-      operationGroup = null;
-      for (var i = 0; i < group.ops.length; i++)
-        group.ops[i].cm.curOp = null;
-      endOperations(group);
-    }
-  }
-
-  // The DOM updates done when an operation finishes are batched so
-  // that the minimum number of relayouts are required.
-  function endOperations(group) {
-    var ops = group.ops;
-    for (var i = 0; i < ops.length; i++) // Read DOM
-      endOperation_R1(ops[i]);
-    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
-      endOperation_W1(ops[i]);
-    for (var i = 0; i < ops.length; i++) // Read DOM
-      endOperation_R2(ops[i]);
-    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
-      endOperation_W2(ops[i]);
-    for (var i = 0; i < ops.length; i++) // Read DOM
-      endOperation_finish(ops[i]);
-  }
-
-  function endOperation_R1(op) {
-    var cm = op.cm, display = cm.display;
-    maybeClipScrollbars(cm);
-    if (op.updateMaxLine) findMaxLine(cm);
-
-    op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||
-      op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||
-                         op.scrollToPos.to.line >= display.viewTo) ||
-      display.maxLineChanged && cm.options.lineWrapping;
-    op.update = op.mustUpdate &&
-      new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);
-  }
-
-  function endOperation_W1(op) {
-    op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);
-  }
-
-  function endOperation_R2(op) {
-    var cm = op.cm, display = cm.display;
-    if (op.updatedDisplay) updateHeightsInViewport(cm);
-
-    op.barMeasure = measureForScrollbars(cm);
-
-    // If the max line changed since it was last measured, measure it,
-    // and ensure the document's width matches it.
-    // updateDisplay_W2 will use these properties to do the actual resizing
-    if (display.maxLineChanged && !cm.options.lineWrapping) {
-      op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;
-      cm.display.sizerWidth = op.adjustWidthTo;
-      op.barMeasure.scrollWidth =
-        Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);
-      op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));
-    }
-
-    if (op.updatedDisplay || op.selectionChanged)
-      op.preparedSelection = display.input.prepareSelection(op.focus);
-  }
-
-  function endOperation_W2(op) {
-    var cm = op.cm;
-
-    if (op.adjustWidthTo != null) {
-      cm.display.sizer.style.minWidth = op.adjustWidthTo + "px";
-      if (op.maxScrollLeft < cm.doc.scrollLeft)
-        setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true);
-      cm.display.maxLineChanged = false;
-    }
-
-    var takeFocus = op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus())
-    if (op.preparedSelection)
-      cm.display.input.showSelection(op.preparedSelection, takeFocus);
-    if (op.updatedDisplay || op.startHeight != cm.doc.height)
-      updateScrollbars(cm, op.barMeasure);
-    if (op.updatedDisplay)
-      setDocumentHeight(cm, op.barMeasure);
-
-    if (op.selectionChanged) restartBlink(cm);
-
-    if (cm.state.focused && op.updateInput)
-      cm.display.input.reset(op.typing);
-    if (takeFocus) ensureFocus(op.cm);
-  }
-
-  function endOperation_finish(op) {
-    var cm = op.cm, display = cm.display, doc = cm.doc;
-
-    if (op.updatedDisplay) postUpdateDisplay(cm, op.update);
-
-    // Abort mouse wheel delta measurement, when scrolling explicitly
-    if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))
-      display.wheelStartX = display.wheelStartY = null;
-
-    // Propagate the scroll position to the actual DOM scroller
-    if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) {
-      doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));
-      display.scrollbars.setScrollTop(doc.scrollTop);
-      display.scroller.scrollTop = doc.scrollTop;
-    }
-    if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {
-      doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft));
-      display.scrollbars.setScrollLeft(doc.scrollLeft);
-      display.scroller.scrollLeft = doc.scrollLeft;
-      alignHorizontally(cm);
-    }
-    // If we need to scroll a specific position into view, do so.
-    if (op.scrollToPos) {
-      var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
-                                     clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);
-      if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords);
-    }
-
-    // Fire events for markers that are hidden/unidden by editing or
-    // undoing
-    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;
-    if (hidden) for (var i = 0; i < hidden.length; ++i)
-      if (!hidden[i].lines.length) signal(hidden[i], "hide");
-    if (unhidden) for (var i = 0; i < unhidden.length; ++i)
-      if (unhidden[i].lines.length) signal(unhidden[i], "unhide");
-
-    if (display.wrapper.offsetHeight)
-      doc.scrollTop = cm.display.scroller.scrollTop;
-
-    // Fire change events, and delayed event handlers
-    if (op.changeObjs)
-      signal(cm, "changes", cm, op.changeObjs);
-    if (op.update)
-      op.update.finish();
-  }
-
-  // Run the given function in an operation
-  function runInOp(cm, f) {
-    if (cm.curOp) return f();
-    startOperation(cm);
-    try { return f(); }
-    finally { endOperation(cm); }
-  }
-  // Wraps a function in an operation. Returns the wrapped function.
-  function operation(cm, f) {
-    return function() {
-      if (cm.curOp) return f.apply(cm, arguments);
-      startOperation(cm);
-      try { return f.apply(cm, arguments); }
-      finally { endOperation(cm); }
-    };
-  }
-  // Used to add methods to editor and doc instances, wrapping them in
-  // operations.
-  function methodOp(f) {
-    return function() {
-      if (this.curOp) return f.apply(this, arguments);
-      startOperation(this);
-      try { return f.apply(this, arguments); }
-      finally { endOperation(this); }
-    };
-  }
-  function docMethodOp(f) {
-    return function() {
-      var cm = this.cm;
-      if (!cm || cm.curOp) return f.apply(this, arguments);
-      startOperation(cm);
-      try { return f.apply(this, arguments); }
-      finally { endOperation(cm); }
-    };
-  }
-
-  // VIEW TRACKING
-
-  // These objects are used to represent the visible (currently drawn)
-  // part of the document. A LineView may correspond to multiple
-  // logical lines, if those are connected by collapsed ranges.
-  function LineView(doc, line, lineN) {
-    // The starting line
-    this.line = line;
-    // Continuing lines, if any
-    this.rest = visualLineContinued(line);
-    // Number of logical lines in this visual line
-    this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;
-    this.node = this.text = null;
-    this.hidden = lineIsHidden(doc, line);
-  }
-
-  // Create a range of LineView objects for the given lines.
-  function buildViewArray(cm, from, to) {
-    var array = [], nextPos;
-    for (var pos = from; pos < to; pos = nextPos) {
-      var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);
-      nextPos = pos + view.size;
-      array.push(view);
-    }
-    return array;
-  }
-
-  // Updates the display.view data structure for a given change to the
-  // document. From and to are in pre-change coordinates. Lendiff is
-  // the amount of lines added or subtracted by the change. This is
-  // used for changes that span multiple lines, or change the way
-  // lines are divided into visual lines. regLineChange (below)
-  // registers single-line changes.
-  function regChange(cm, from, to, lendiff) {
-    if (from == null) from = cm.doc.first;
-    if (to == null) to = cm.doc.first + cm.doc.size;
-    if (!lendiff) lendiff = 0;
-
-    var display = cm.display;
-    if (lendiff && to < display.viewTo &&
-        (display.updateLineNumbers == null || display.updateLineNumbers > from))
-      display.updateLineNumbers = from;
-
-    cm.curOp.viewChanged = true;
-
-    if (from >= display.viewTo) { // Change after
-      if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)
-        resetView(cm);
-    } else if (to <= display.viewFrom) { // Change before
-      if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {
-        resetView(cm);
-      } else {
-        display.viewFrom += lendiff;
-        display.viewTo += lendiff;
-      }
-    } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap
-      resetView(cm);
-    } else if (from <= display.viewFrom) { // Top overlap
-      var cut = viewCuttingPoint(cm, to, to + lendiff, 1);
-      if (cut) {
-        display.view = display.view.slice(cut.index);
-        display.viewFrom = cut.lineN;
-        display.viewTo += lendiff;
-      } else {
-        resetView(cm);
-      }
-    } else if (to >= display.viewTo) { // Bottom overlap
-      var cut = viewCuttingPoint(cm, from, from, -1);
-      if (cut) {
-        display.view = display.view.slice(0, cut.index);
-        display.viewTo = cut.lineN;
-      } else {
-        resetView(cm);
-      }
-    } else { // Gap in the middle
-      var cutTop = viewCuttingPoint(cm, from, from, -1);
-      var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);
-      if (cutTop && cutBot) {
-        display.view = display.view.slice(0, cutTop.index)
-          .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))
-          .concat(display.view.slice(cutBot.index));
-        display.viewTo += lendiff;
-      } else {
-        resetView(cm);
-      }
-    }
-
-    var ext = display.externalMeasured;
-    if (ext) {
-      if (to < ext.lineN)
-        ext.lineN += lendiff;
-      else if (from < ext.lineN + ext.size)
-        display.externalMeasured = null;
-    }
-  }
-
-  // Register a change to a single line. Type must be one of "text",
-  // "gutter", "class", "widget"
-  function regLineChange(cm, line, type) {
-    cm.curOp.viewChanged = true;
-    var display = cm.display, ext = cm.display.externalMeasured;
-    if (ext && line >= ext.lineN && line < ext.lineN + ext.size)
-      display.externalMeasured = null;
-
-    if (line < display.viewFrom || line >= display.viewTo) return;
-    var lineView = display.view[findViewIndex(cm, line)];
-    if (lineView.node == null) return;
-    var arr = lineView.changes || (lineView.changes = []);
-    if (indexOf(arr, type) == -1) arr.push(type);
-  }
-
-  // Clear the view.
-  function resetView(cm) {
-    cm.display.viewFrom = cm.display.viewTo = cm.doc.first;
-    cm.display.view = [];
-    cm.display.viewOffset = 0;
-  }
-
-  // Find the view element corresponding to a given line. Return null
-  // when the line isn't visible.
-  function findViewIndex(cm, n) {
-    if (n >= cm.display.viewTo) return null;
-    n -= cm.display.viewFrom;
-    if (n < 0) return null;
-    var view = cm.display.view;
-    for (var i = 0; i < view.length; i++) {
-      n -= view[i].size;
-      if (n < 0) return i;
-    }
-  }
-
-  function viewCuttingPoint(cm, oldN, newN, dir) {
-    var index = findViewIndex(cm, oldN), diff, view = cm.display.view;
-    if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)
-      return {index: index, lineN: newN};
-    for (var i = 0, n = cm.display.viewFrom; i < index; i++)
-      n += view[i].size;
-    if (n != oldN) {
-      if (dir > 0) {
-        if (index == view.length - 1) return null;
-        diff = (n + view[index].size) - oldN;
-        index++;
-      } else {
-        diff = n - oldN;
-      }
-      oldN += diff; newN += diff;
-    }
-    while (visualLineNo(cm.doc, newN) != newN) {
-      if (index == (dir < 0 ? 0 : view.length - 1)) return null;
-      newN += dir * view[index - (dir < 0 ? 1 : 0)].size;
-      index += dir;
-    }
-    return {index: index, lineN: newN};
-  }
-
-  // Force the view to cover a given range, adding empty view element
-  // or clipping off existing ones as needed.
-  function adjustView(cm, from, to) {
-    var display = cm.display, view = display.view;
-    if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {
-      display.view = buildViewArray(cm, from, to);
-      display.viewFrom = from;
-    } else {
-      if (display.viewFrom > from)
-        display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view);
-      else if (display.viewFrom < from)
-        display.view = display.view.slice(findViewIndex(cm, from));
-      display.viewFrom = from;
-      if (display.viewTo < to)
-        display.view = display.view.concat(buildViewArray(cm, display.viewTo, to));
-      else if (display.viewTo > to)
-        display.view = display.view.slice(0, findViewIndex(cm, to));
-    }
-    display.viewTo = to;
-  }
-
-  // Count the number of lines in the view whose DOM representation is
-  // out of date (or nonexistent).
-  function countDirtyView(cm) {
-    var view = cm.display.view, dirty = 0;
-    for (var i = 0; i < view.length; i++) {
-      var lineView = view[i];
-      if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty;
-    }
-    return dirty;
-  }
-
-  // EVENT HANDLERS
-
-  // Attach the necessary event handlers when initializing the editor
-  function registerEventHandlers(cm) {
-    var d = cm.display;
-    on(d.scroller, "mousedown", operation(cm, onMouseDown));
-    // Older IE's will not fire a second mousedown for a double click
-    if (ie && ie_version < 11)
-      on(d.scroller, "dblclick", operation(cm, function(e) {
-        if (signalDOMEvent(cm, e)) return;
-        var pos = posFromMouse(cm, e);
-        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;
-        e_preventDefault(e);
-        var word = cm.findWordAt(pos);
-        extendSelection(cm.doc, word.anchor, word.head);
-      }));
-    else
-      on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });
-    // Some browsers fire contextmenu *after* opening the menu, at
-    // which point we can't mess with it anymore. Context menu is
-    // handled in onMouseDown for these browsers.
-    if (!captureRightClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);});
-
-    // Used to suppress mouse event handling when a touch happens
-    var touchFinished, prevTouch = {end: 0};
-    function finishTouch() {
-      if (d.activeTouch) {
-        touchFinished = setTimeout(function() {d.activeTouch = null;}, 1000);
-        prevTouch = d.activeTouch;
-        prevTouch.end = +new Date;
-      }
-    };
-    function isMouseLikeTouchEvent(e) {
-      if (e.touches.length != 1) return false;
-      var touch = e.touches[0];
-      return touch.radiusX <= 1 && touch.radiusY <= 1;
-    }
-    function farAway(touch, other) {
-      if (other.left == null) return true;
-      var dx = other.left - touch.left, dy = other.top - touch.top;
-      return dx * dx + dy * dy > 20 * 20;
-    }
-    on(d.scroller, "touchstart", function(e) {
-      if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e)) {
-        clearTimeout(touchFinished);
-        var now = +new Date;
-        d.activeTouch = {start: now, moved: false,
-                         prev: now - prevTouch.end <= 300 ? prevTouch : null};
-        if (e.touches.length == 1) {
-          d.activeTouch.left = e.touches[0].pageX;
-          d.activeTouch.top = e.touches[0].pageY;
-        }
-      }
-    });
-    on(d.scroller, "touchmove", function() {
-      if (d.activeTouch) d.activeTouch.moved = true;
-    });
-    on(d.scroller, "touchend", function(e) {
-      var touch = d.activeTouch;
-      if (touch && !eventInWidget(d, e) && touch.left != null &&
-          !touch.moved && new Date - touch.start < 300) {
-        var pos = cm.coordsChar(d.activeTouch, "page"), range;
-        if (!touch.prev || farAway(touch, touch.prev)) // Single tap
-          range = new Range(pos, pos);
-        else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap
-          range = cm.findWordAt(pos);
-        else // Triple tap
-          range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0)));
-        cm.setSelection(range.anchor, range.head);
-        cm.focus();
-        e_preventDefault(e);
-      }
-      finishTouch();
-    });
-    on(d.scroller, "touchcancel", finishTouch);
-
-    // Sync scrolling between fake scrollbars and real scrollable
-    // area, ensure viewport is updated when scrolling.
-    on(d.scroller, "scroll", function() {
-      if (d.scroller.clientHeight) {
-        setScrollTop(cm, d.scroller.scrollTop);
-        setScrollLeft(cm, d.scroller.scrollLeft, true);
-        signal(cm, "scroll", cm);
-      }
-    });
-
-    // Listen to wheel events in order to try and update the viewport on time.
-    on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);});
-    on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);});
-
-    // Prevent wrapper from ever scrolling
-    on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });
-
-    d.dragFunctions = {
-      enter: function(e) {if (!signalDOMEvent(cm, e)) e_stop(e);},
-      over: function(e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
-      start: function(e){onDragStart(cm, e);},
-      drop: operation(cm, onDrop),
-      leave: function(e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}
-    };
-
-    var inp = d.input.getField();
-    on(inp, "keyup", function(e) { onKeyUp.call(cm, e); });
-    on(inp, "keydown", operation(cm, onKeyDown));
-    on(inp, "keypress", operation(cm, onKeyPress));
-    on(inp, "focus", bind(onFocus, cm));
-    on(inp, "blur", bind(onBlur, cm));
-  }
-
-  function dragDropChanged(cm, value, old) {
-    var wasOn = old && old != CodeMirror.Init;
-    if (!value != !wasOn) {
-      var funcs = cm.display.dragFunctions;
-      var toggle = value ? on : off;
-      toggle(cm.display.scroller, "dragstart", funcs.start);
-      toggle(cm.display.scroller, "dragenter", funcs.enter);
-      toggle(cm.display.scroller, "dragover", funcs.over);
-      toggle(cm.display.scroller, "dragleave", funcs.leave);
-      toggle(cm.display.scroller, "drop", funcs.drop);
-    }
-  }
-
-  // Called when the window resizes
-  function onResize(cm) {
-    var d = cm.display;
-    if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)
-      return;
-    // Might be a text scaling operation, clear size caches.
-    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
-    d.scrollbarsClipped = false;
-    cm.setSize();
-  }
-
-  // MOUSE EVENTS
-
-  // Return true when the given mouse event happened in a widget
-  function eventInWidget(display, e) {
-    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {
-      if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") ||
-          (n.parentNode == display.sizer && n != display.mover))
-        return true;
-    }
-  }
-
-  // Given a mouse event, find the corresponding position. If liberal
-  // is false, it checks whether a gutter or scrollbar was clicked,
-  // and returns null if it was. forRect is used by rectangular
-  // selections, and tries to estimate a character position even for
-  // coordinates beyond the right of the text.
-  function posFromMouse(cm, e, liberal, forRect) {
-    var display = cm.display;
-    if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") return null;
-
-    var x, y, space = display.lineSpace.getBoundingClientRect();
-    // Fails unpredictably on IE[67] when mouse is dragged around quickly.
-    try { x = e.clientX - space.left; y = e.clientY - space.top; }
-    catch (e) { return null; }
-    var coords = coordsChar(cm, x, y), line;
-    if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {
-      var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;
-      coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));
-    }
-    return coords;
-  }
-
-  // A mouse down can be a single click, double click, triple click,
-  // start of selection drag, start of text drag, new cursor
-  // (ctrl-click), rectangle drag (alt-drag), or xwin
-  // middle-click-paste. Or it might be a click on something we should
-  // not interfere with, such as a scrollbar or widget.
-  function onMouseDown(e) {
-    var cm = this, display = cm.display;
-    if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) return;
-    display.shift = e.shiftKey;
-
-    if (eventInWidget(display, e)) {
-      if (!webkit) {
-        // Briefly turn off draggability, to allow widgets to do
-        // normal dragging things.
-        display.scroller.draggable = false;
-        setTimeout(function(){display.scroller.draggable = true;}, 100);
-      }
-      return;
-    }
-    if (clickInGutter(cm, e)) return;
-    var start = posFromMouse(cm, e);
-    window.focus();
-
-    switch (e_button(e)) {
-    case 1:
-      // #3261: make sure, that we're not starting a second selection
-      if (cm.state.selectingText)
-        cm.state.selectingText(e);
-      else if (start)
-        leftButtonDown(cm, e, start);
-      else if (e_target(e) == display.scroller)
-        e_preventDefault(e);
-      break;
-    case 2:
-      if (webkit) cm.state.lastMiddleDown = +new Date;
-      if (start) extendSelection(cm.doc, start);
-      setTimeout(function() {display.input.focus();}, 20);
-      e_preventDefault(e);
-      break;
-    case 3:
-      if (captureRightClick) onContextMenu(cm, e);
-      else delayBlurEvent(cm);
-      break;
-    }
-  }
-
-  var lastClick, lastDoubleClick;
-  function leftButtonDown(cm, e, start) {
-    if (ie) setTimeout(bind(ensureFocus, cm), 0);
-    else cm.curOp.focus = activeElt();
-
-    var now = +new Date, type;
-    if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {
-      type = "triple";
-    } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {
-      type = "double";
-      lastDoubleClick = {time: now, pos: start};
-    } else {
-      type = "single";
-      lastClick = {time: now, pos: start};
-    }
-
-    var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained;
-    if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
-        type == "single" && (contained = sel.contains(start)) > -1 &&
-        (cmp((contained = sel.ranges[contained]).from(), start) < 0 || start.xRel > 0) &&
-        (cmp(contained.to(), start) > 0 || start.xRel < 0))
-      leftButtonStartDrag(cm, e, start, modifier);
-    else
-      leftButtonSelect(cm, e, start, type, modifier);
-  }
-
-  // Start a text drag. When it ends, see if any dragging actually
-  // happen, and treat as a click if it didn't.
-  function leftButtonStartDrag(cm, e, start, modifier) {
-    var display = cm.display, startTime = +new Date;
-    var dragEnd = operation(cm, function(e2) {
-      if (webkit) display.scroller.draggable = false;
-      cm.state.draggingText = false;
-      off(document, "mouseup", dragEnd);
-      off(display.scroller, "drop", dragEnd);
-      if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
-        e_preventDefault(e2);
-        if (!modifier && +new Date - 200 < startTime)
-          extendSelection(cm.doc, start);
-        // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
-        if (webkit || ie && ie_version == 9)
-          setTimeout(function() {document.body.focus(); display.input.focus();}, 20);
-        else
-          display.input.focus();
-      }
-    });
-    // Let the drag handler handle this.
-    if (webkit) display.scroller.draggable = true;
-    cm.state.draggingText = dragEnd;
-    dragEnd.copy = mac ? e.altKey : e.ctrlKey
-    // IE's approach to draggable
-    if (display.scroller.dragDrop) display.scroller.dragDrop();
-    on(document, "mouseup", dragEnd);
-    on(display.scroller, "drop", dragEnd);
-  }
-
-  // Normal selection, as opposed to text dragging.
-  function leftButtonSelect(cm, e, start, type, addNew) {
-    var display = cm.display, doc = cm.doc;
-    e_preventDefault(e);
-
-    var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
-    if (addNew && !e.shiftKey) {
-      ourIndex = doc.sel.contains(start);
-      if (ourIndex > -1)
-        ourRange = ranges[ourIndex];
-      else
-        ourRange = new Range(start, start);
-    } else {
-      ourRange = doc.sel.primary();
-      ourIndex = doc.sel.primIndex;
-    }
-
-    if (chromeOS ? e.shiftKey && e.metaKey : e.altKey) {
-      type = "rect";
-      if (!addNew) ourRange = new Range(start, start);
-      start = posFromMouse(cm, e, true, true);
-      ourIndex = -1;
-    } else if (type == "double") {
-      var word = cm.findWordAt(start);
-      if (cm.display.shift || doc.extend)
-        ourRange = extendRange(doc, ourRange, word.anchor, word.head);
-      else
-        ourRange = word;
-    } else if (type == "triple") {
-      var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));
-      if (cm.display.shift || doc.extend)
-        ourRange = extendRange(doc, ourRange, line.anchor, line.head);
-      else
-        ourRange = line;
-    } else {
-      ourRange = extendRange(doc, ourRange, start);
-    }
-
-    if (!addNew) {
-      ourIndex = 0;
-      setSelection(doc, new Selection([ourRange], 0), sel_mouse);
-      startSel = doc.sel;
-    } else if (ourIndex == -1) {
-      ourIndex = ranges.length;
-      setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
-                   {scroll: false, origin: "*mouse"});
-    } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == "single" && !e.shiftKey) {
-      setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
-                   {scroll: false, origin: "*mouse"});
-      startSel = doc.sel;
-    } else {
-      replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);
-    }
-
-    var lastPos = start;
-    function extendTo(pos) {
-      if (cmp(lastPos, pos) == 0) return;
-      lastPos = pos;
-
-      if (type == "rect") {
-        var ranges = [], tabSize = cm.options.tabSize;
-        var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
-        var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
-        var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);
-        for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));
-             line <= end; line++) {
-          var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);
-          if (left == right)
-            ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos)));
-          else if (text.length > leftPos)
-            ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize))));
-        }
-        if (!ranges.length) ranges.push(new Range(start, start));
-        setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),
-                     {origin: "*mouse", scroll: false});
-        cm.scrollIntoView(pos);
-      } else {
-        var oldRange = ourRange;
-        var anchor = oldRange.anchor, head = pos;
-        if (type != "single") {
-          if (type == "double")
-            var range = cm.findWordAt(pos);
-          else
-            var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0)));
-          if (cmp(range.anchor, anchor) > 0) {
-            head = range.head;
-            anchor = minPos(oldRange.from(), range.anchor);
-          } else {
-            head = range.anchor;
-            anchor = maxPos(oldRange.to(), range.head);
-          }
-        }
-        var ranges = startSel.ranges.slice(0);
-        ranges[ourIndex] = new Range(clipPos(doc, anchor), head);
-        setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse);
-      }
-    }
-
-    var editorSize = display.wrapper.getBoundingClientRect();
-    // Used to ensure timeout re-tries don't fire when another extend
-    // happened in the meantime (clearTimeout isn't reliable -- at
-    // least on Chrome, the timeouts still happen even when cleared,
-    // if the clear happens after their scheduled firing time).
-    var counter = 0;
-
-    function extend(e) {
-      var curCount = ++counter;
-      var cur = posFromMouse(cm, e, true, type == "rect");
-      if (!cur) return;
-      if (cmp(cur, lastPos) != 0) {
-        cm.curOp.focus = activeElt();
-        extendTo(cur);
-        var visible = visibleLines(display, doc);
-        if (cur.line >= visible.to || cur.line < visible.from)
-          setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);
-      } else {
-        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;
-        if (outside) setTimeout(operation(cm, function() {
-          if (counter != curCount) return;
-          display.scroller.scrollTop += outside;
-          extend(e);
-        }), 50);
-      }
-    }
-
-    function done(e) {
-      cm.state.selectingText = false;
-      counter = Infinity;
-      e_preventDefault(e);
-      display.input.focus();
-      off(document, "mousemove", move);
-      off(document, "mouseup", up);
-      doc.history.lastSelOrigin = null;
-    }
-
-    var move = operation(cm, function(e) {
-      if (!e_button(e)) done(e);
-      else extend(e);
-    });
-    var up = operation(cm, done);
-    cm.state.selectingText = up;
-    on(document, "mousemove", move);
-    on(document, "mouseup", up);
-  }
-
-  // Determines whether an event happened in the gutter, and fires the
-  // handlers for the corresponding event.
-  function gutterEvent(cm, e, type, prevent) {
-    try { var mX = e.clientX, mY = e.clientY; }
-    catch(e) { return false; }
-    if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false;
-    if (prevent) e_preventDefault(e);
-
-    var display = cm.display;
-    var lineBox = display.lineDiv.getBoundingClientRect();
-
-    if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);
-    mY -= lineBox.top - display.viewOffset;
-
-    for (var i = 0; i < cm.options.gutters.length; ++i) {
-      var g = display.gutters.childNodes[i];
-      if (g && g.getBoundingClientRect().right >= mX) {
-        var line = lineAtHeight(cm.doc, mY);
-        var gutter = cm.options.gutters[i];
-        signal(cm, type, cm, line, gutter, e);
-        return e_defaultPrevented(e);
-      }
-    }
-  }
-
-  function clickInGutter(cm, e) {
-    return gutterEvent(cm, e, "gutterClick", true);
-  }
-
-  // Kludge to work around strange IE behavior where it'll sometimes
-  // re-fire a series of drag-related events right after the drop (#1551)
-  var lastDrop = 0;
-
-  function onDrop(e) {
-    var cm = this;
-    clearDragCursor(cm);
-    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))
-      return;
-    e_preventDefault(e);
-    if (ie) lastDrop = +new Date;
-    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;
-    if (!pos || cm.isReadOnly()) return;
-    // Might be a file drop, in which case we simply extract the text
-    // and insert it.
-    if (files && files.length && window.FileReader && window.File) {
-      var n = files.length, text = Array(n), read = 0;
-      var loadFile = function(file, i) {
-        if (cm.options.allowDropFileTypes &&
-            indexOf(cm.options.allowDropFileTypes, file.type) == -1)
-          return;
-
-        var reader = new FileReader;
-        reader.onload = operation(cm, function() {
-          var content = reader.result;
-          if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) content = "";
-          text[i] = content;
-          if (++read == n) {
-            pos = clipPos(cm.doc, pos);
-            var change = {from: pos, to: pos,
-                          text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())),
-                          origin: "paste"};
-            makeChange(cm.doc, change);
-            setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));
-          }
-        });
-        reader.readAsText(file);
-      };
-      for (var i = 0; i < n; ++i) loadFile(files[i], i);
-    } else { // Normal drop
-      // Don't do a replace if the drop happened inside of the selected text.
-      if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {
-        cm.state.draggingText(e);
-        // Ensure the editor is re-focused
-        setTimeout(function() {cm.display.input.focus();}, 20);
-        return;
-      }
-      try {
-        var text = e.dataTransfer.getData("Text");
-        if (text) {
-          if (cm.state.draggingText && !cm.state.draggingText.copy)
-            var selected = cm.listSelections();
-          setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));
-          if (selected) for (var i = 0; i < selected.length; ++i)
-            replaceRange(cm.doc, "", selected[i].anchor, selected[i].head, "drag");
-          cm.replaceSelection(text, "around", "paste");
-          cm.display.input.focus();
-        }
-      }
-      catch(e){}
-    }
-  }
-
-  function onDragStart(cm, e) {
-    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }
-    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;
-
-    e.dataTransfer.setData("Text", cm.getSelection());
-    e.dataTransfer.effectAllowed = "copyMove"
-
-    // Use dummy image instead of default browsers image.
-    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
-    if (e.dataTransfer.setDragImage && !safari) {
-      var img = elt("img", null, null, "position: fixed; left: 0; top: 0;");
-      img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
-      if (presto) {
-        img.width = img.height = 1;
-        cm.display.wrapper.appendChild(img);
-        // Force a relayout, or Opera won't use our image for some obscure reason
-        img._top = img.offsetTop;
-      }
-      e.dataTransfer.setDragImage(img, 0, 0);
-      if (presto) img.parentNode.removeChild(img);
-    }
-  }
-
-  function onDragOver(cm, e) {
-    var pos = posFromMouse(cm, e);
-    if (!pos) return;
-    var frag = document.createDocumentFragment();
-    drawSelectionCursor(cm, pos, frag);
-    if (!cm.display.dragCursor) {
-      cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors");
-      cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);
-    }
-    removeChildrenAndAdd(cm.display.dragCursor, frag);
-  }
-
-  function clearDragCursor(cm) {
-    if (cm.display.dragCursor) {
-      cm.display.lineSpace.removeChild(cm.display.dragCursor);
-      cm.display.dragCursor = null;
-    }
-  }
-
-  // SCROLL EVENTS
-
-  // Sync the scrollable area and scrollbars, ensure the viewport
-  // covers the visible area.
-  function setScrollTop(cm, val) {
-    if (Math.abs(cm.doc.scrollTop - val) < 2) return;
-    cm.doc.scrollTop = val;
-    if (!gecko) updateDisplaySimple(cm, {top: val});
-    if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;
-    cm.display.scrollbars.setScrollTop(val);
-    if (gecko) updateDisplaySimple(cm);
-    startWorker(cm, 100);
-  }
-  // Sync scroller and scrollbar, ensure the gutter elements are
-  // aligned.
-  function setScrollLeft(cm, val, isScroller) {
-    if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;
-    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
-    cm.doc.scrollLeft = val;
-    alignHorizontally(cm);
-    if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;
-    cm.display.scrollbars.setScrollLeft(val);
-  }
-
-  // Since the delta values reported on mouse wheel events are
-  // unstandardized between browsers and even browser versions, and
-  // generally horribly unpredictable, this code starts by measuring
-  // the scroll effect that the first few mouse wheel events have,
-  // and, from that, detects the way it can convert deltas to pixel
-  // offsets afterwards.
-  //
-  // The reason we want to know the amount a wheel event will scroll
-  // is that it gives us a chance to update the display before the
-  // actual scrolling happens, reducing flickering.
-
-  var wheelSamples = 0, wheelPixelsPerUnit = null;
-  // Fill in a browser-detected starting value on browsers where we
-  // know one. These don't have to be accurate -- the result of them
-  // being wrong would just be a slight flicker on the first wheel
-  // scroll (if it is large enough).
-  if (ie) wheelPixelsPerUnit = -.53;
-  else if (gecko) wheelPixelsPerUnit = 15;
-  else if (chrome) wheelPixelsPerUnit = -.7;
-  else if (safari) wheelPixelsPerUnit = -1/3;
-
-  var wheelEventDelta = function(e) {
-    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
-    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;
-    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;
-    else if (dy == null) dy = e.wheelDelta;
-    return {x: dx, y: dy};
-  };
-  CodeMirror.wheelEventPixels = function(e) {
-    var delta = wheelEventDelta(e);
-    delta.x *= wheelPixelsPerUnit;
-    delta.y *= wheelPixelsPerUnit;
-    return delta;
-  };
-
-  function onScrollWheel(cm, e) {
-    var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
-
-    var display = cm.display, scroll = display.scroller;
-    // Quit if there's nothing to scroll here
-    var canScrollX = scroll.scrollWidth > scroll.clientWidth;
-    var canScrollY = scroll.scrollHeight > scroll.clientHeight;
-    if (!(dx && canScrollX || dy && canScrollY)) return;
-
-    // Webkit browsers on OS X abort momentum scrolls when the target
-    // of the scroll event is removed from the scrollable element.
-    // This hack (see related code in patchDisplay) makes sure the
-    // element is kept around.
-    if (dy && mac && webkit) {
-      outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
-        for (var i = 0; i < view.length; i++) {
-          if (view[i].node == cur) {
-            cm.display.currentWheelTarget = cur;
-            break outer;
-          }
-        }
-      }
-    }
-
-    // On some browsers, horizontal scrolling will cause redraws to
-    // happen before the gutter has been realigned, causing it to
-    // wriggle around in a most unseemly way. When we have an
-    // estimated pixels/delta value, we just handle horizontal
-    // scrolling entirely here. It'll be slightly off from native, but
-    // better than glitching out.
-    if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
-      if (dy && canScrollY)
-        setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));
-      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
-      // Only prevent default scrolling if vertical scrolling is
-      // actually possible. Otherwise, it causes vertical scroll
-      // jitter on OSX trackpads when deltaX is small and deltaY
-      // is large (issue #3579)
-      if (!dy || (dy && canScrollY))
-        e_preventDefault(e);
-      display.wheelStartX = null; // Abort measurement, if in progress
-      return;
-    }
-
-    // 'Project' the visible viewport to cover the area that is being
-    // scrolled into view (if we know enough to estimate it).
-    if (dy && wheelPixelsPerUnit != null) {
-      var pixels = dy * wheelPixelsPerUnit;
-      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
-      if (pixels < 0) top = Math.max(0, top + pixels - 50);
-      else bot = Math.min(cm.doc.height, bot + pixels + 50);
-      updateDisplaySimple(cm, {top: top, bottom: bot});
-    }
-
-    if (wheelSamples < 20) {
-      if (display.wheelStartX == null) {
-        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
-        display.wheelDX = dx; display.wheelDY = dy;
-        setTimeout(function() {
-          if (display.wheelStartX == null) return;
-          var movedX = scroll.scrollLeft - display.wheelStartX;
-          var movedY = scroll.scrollTop - display.wheelStartY;
-          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
-            (movedX && display.wheelDX && movedX / display.wheelDX);
-          display.wheelStartX = display.wheelStartY = null;
-          if (!sample) return;
-          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
-          ++wheelSamples;
-        }, 200);
-      } else {
-        display.wheelDX += dx; display.wheelDY += dy;
-      }
-    }
-  }
-
-  // KEY EVENTS
-
-  // Run a handler that was bound to a key.
-  function doHandleBinding(cm, bound, dropShift) {
-    if (typeof bound == "string") {
-      bound = commands[bound];
-      if (!bound) return false;
-    }
-    // Ensure previous input has been read, so that the handler sees a
-    // consistent view of the document
-    cm.display.input.ensurePolled();
-    var prevShift = cm.display.shift, done = false;
-    try {
-      if (cm.isReadOnly()) cm.state.suppressEdits = true;
-      if (dropShift) cm.display.shift = false;
-      done = bound(cm) != Pass;
-    } finally {
-      cm.display.shift = prevShift;
-      cm.state.suppressEdits = false;
-    }
-    return done;
-  }
-
-  function lookupKeyForEditor(cm, name, handle) {
-    for (var i = 0; i < cm.state.keyMaps.length; i++) {
-      var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);
-      if (result) return result;
-    }
-    return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))
-      || lookupKey(name, cm.options.keyMap, handle, cm);
-  }
-
-  var stopSeq = new Delayed;
-  function dispatchKey(cm, name, e, handle) {
-    var seq = cm.state.keySeq;
-    if (seq) {
-      if (isModifierKey(name)) return "handled";
-      stopSeq.set(50, function() {
-        if (cm.state.keySeq == seq) {
-          cm.state.keySeq = null;
-          cm.display.input.reset();
-        }
-      });
-      name = seq + " " + name;
-    }
-    var result = lookupKeyForEditor(cm, name, handle);
-
-    if (result == "multi")
-      cm.state.keySeq = name;
-    if (result == "handled")
-      signalLater(cm, "keyHandled", cm, name, e);
-
-    if (result == "handled" || result == "multi") {
-      e_preventDefault(e);
-      restartBlink(cm);
-    }
-
-    if (seq && !result && /\'$/.test(name)) {
-      e_preventDefault(e);
-      return true;
-    }
-    return !!result;
-  }
-
-  // Handle a key from the keydown event.
-  function handleKeyBinding(cm, e) {
-    var name = keyName(e, true);
-    if (!name) return false;
-
-    if (e.shiftKey && !cm.state.keySeq) {
-      // First try to resolve full name (including 'Shift-'). Failing
-      // that, see if there is a cursor-motion command (starting with
-      // 'go') bound to the keyname without 'Shift-'.
-      return dispatchKey(cm, "Shift-" + name, e, function(b) {return doHandleBinding(cm, b, true);})
-          || dispatchKey(cm, name, e, function(b) {
-               if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion)
-                 return doHandleBinding(cm, b);
-             });
-    } else {
-      return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); });
-    }
-  }
-
-  // Handle a key from the keypress event
-  function handleCharBinding(cm, e, ch) {
-    return dispatchKey(cm, "'" + ch + "'", e,
-                       function(b) { return doHandleBinding(cm, b, true); });
-  }
-
-  var lastStoppedKey = null;
-  function onKeyDown(e) {
-    var cm = this;
-    cm.curOp.focus = activeElt();
-    if (signalDOMEvent(cm, e)) return;
-    // IE does strange things with escape.
-    if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false;
-    var code = e.keyCode;
-    cm.display.shift = code == 16 || e.shiftKey;
-    var handled = handleKeyBinding(cm, e);
-    if (presto) {
-      lastStoppedKey = handled ? code : null;
-      // Opera has no cut event... we try to at least catch the key combo
-      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))
-        cm.replaceSelection("", null, "cut");
-    }
-
-    // Turn mouse into crosshair when Alt is held on Mac.
-    if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className))
-      showCrossHair(cm);
-  }
-
-  function showCrossHair(cm) {
-    var lineDiv = cm.display.lineDiv;
-    addClass(lineDiv, "CodeMirror-crosshair");
-
-    function up(e) {
-      if (e.keyCode == 18 || !e.altKey) {
-        rmClass(lineDiv, "CodeMirror-crosshair");
-        off(document, "keyup", up);
-        off(document, "mouseover", up);
-      }
-    }
-    on(document, "keyup", up);
-    on(document, "mouseover", up);
-  }
-
-  function onKeyUp(e) {
-    if (e.keyCode == 16) this.doc.sel.shift = false;
-    signalDOMEvent(this, e);
-  }
-
-  function onKeyPress(e) {
-    var cm = this;
-    if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return;
-    var keyCode = e.keyCode, charCode = e.charCode;
-    if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}
-    if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) return;
-    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
-    if (handleCharBinding(cm, e, ch)) return;
-    cm.display.input.onKeyPress(e);
-  }
-
-  // FOCUS/BLUR EVENTS
-
-  function delayBlurEvent(cm) {
-    cm.state.delayingBlurEvent = true;
-    setTimeout(function() {
-      if (cm.state.delayingBlurEvent) {
-        cm.state.delayingBlurEvent = false;
-        onBlur(cm);
-      }
-    }, 100);
-  }
-
-  function onFocus(cm) {
-    if (cm.state.delayingBlurEvent) cm.state.delayingBlurEvent = false;
-
-    if (cm.options.readOnly == "nocursor") return;
-    if (!cm.state.focused) {
-      signal(cm, "focus", cm);
-      cm.state.focused = true;
-      addClass(cm.display.wrapper, "CodeMirror-focused");
-      // This test prevents this from firing when a context
-      // menu is closed (since the input reset would kill the
-      // select-all detection hack)
-      if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
-        cm.display.input.reset();
-        if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730
-      }
-      cm.display.input.receivedFocus();
-    }
-    restartBlink(cm);
-  }
-  function onBlur(cm) {
-    if (cm.state.delayingBlurEvent) return;
-
-    if (cm.state.focused) {
-      signal(cm, "blur", cm);
-      cm.state.focused = false;
-      rmClass(cm.display.wrapper, "CodeMirror-focused");
-    }
-    clearInterval(cm.display.blinker);
-    setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150);
-  }
-
-  // CONTEXT MENU HANDLING
-
-  // To make the context menu work, we need to briefly unhide the
-  // textarea (making it as unobtrusive as possible) to let the
-  // right-click take effect on it.
-  function onContextMenu(cm, e) {
-    if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return;
-    if (signalDOMEvent(cm, e, "contextmenu")) return;
-    cm.display.input.onContextMenu(e);
-  }
-
-  function contextMenuInGutter(cm, e) {
-    if (!hasHandler(cm, "gutterContextMenu")) return false;
-    return gutterEvent(cm, e, "gutterContextMenu", false);
-  }
-
-  // UPDATING
-
-  // Compute the position of the end of a change (its 'to' property
-  // refers to the pre-change end).
-  var changeEnd = CodeMirror.changeEnd = function(change) {
-    if (!change.text) return change.to;
-    return Pos(change.from.line + change.text.length - 1,
-               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));
-  };
-
-  // Adjust a position to refer to the post-change position of the
-  // same text, or the end of the change if the change covers it.
-  function adjustForChange(pos, change) {
-    if (cmp(pos, change.from) < 0) return pos;
-    if (cmp(pos, change.to) <= 0) return changeEnd(change);
-
-    var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;
-    if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch;
-    return Pos(line, ch);
-  }
-
-  function computeSelAfterChange(doc, change) {
-    var out = [];
-    for (var i = 0; i < doc.sel.ranges.length; i++) {
-      var range = doc.sel.ranges[i];
-      out.push(new Range(adjustForChange(range.anchor, change),
-                         adjustForChange(range.head, change)));
-    }
-    return normalizeSelection(out, doc.sel.primIndex);
-  }
-
-  function offsetPos(pos, old, nw) {
-    if (pos.line == old.line)
-      return Pos(nw.line, pos.ch - old.ch + nw.ch);
-    else
-      return Pos(nw.line + (pos.line - old.line), pos.ch);
-  }
-
-  // Used by replaceSelections to allow moving the selection to the
-  // start or around the replaced test. Hint may be "start" or "around".
-  function computeReplacedSel(doc, changes, hint) {
-    var out = [];
-    var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;
-    for (var i = 0; i < changes.length; i++) {
-      var change = changes[i];
-      var from = offsetPos(change.from, oldPrev, newPrev);
-      var to = offsetPos(changeEnd(change), oldPrev, newPrev);
-      oldPrev = change.to;
-      newPrev = to;
-      if (hint == "around") {
-        var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;
-        out[i] = new Range(inv ? to : from, inv ? from : to);
-      } else {
-        out[i] = new Range(from, from);
-      }
-    }
-    return new Selection(out, doc.sel.primIndex);
-  }
-
-  // Allow "beforeChange" event handlers to influence a change
-  function filterChange(doc, change, update) {
-    var obj = {
-      canceled: false,
-      from: change.from,
-      to: change.to,
-      text: change.text,
-      origin: change.origin,
-      cancel: function() { this.canceled = true; }
-    };
-    if (update) obj.update = function(from, to, text, origin) {
-      if (from) this.from = clipPos(doc, from);
-      if (to) this.to = clipPos(doc, to);
-      if (text) this.text = text;
-      if (origin !== undefined) this.origin = origin;
-    };
-    signal(doc, "beforeChange", doc, obj);
-    if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj);
-
-    if (obj.canceled) return null;
-    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};
-  }
-
-  // Apply a change to a document, and add it to the document's
-  // history, and propagating it to all linked documents.
-  function makeChange(doc, change, ignoreReadOnly) {
-    if (doc.cm) {
-      if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly);
-      if (doc.cm.state.suppressEdits) return;
-    }
-
-    if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) {
-      change = filterChange(doc, change, true);
-      if (!change) return;
-    }
-
-    // Possibly split or suppress the update based on the presence
-    // of read-only spans in its range.
-    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
-    if (split) {
-      for (var i = split.length - 1; i >= 0; --i)
-        makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text});
-    } else {
-      makeChangeInner(doc, change);
-    }
-  }
-
-  function makeChangeInner(doc, change) {
-    if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) return;
-    var selAfter = computeSelAfterChange(doc, change);
-    addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);
-
-    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));
-    var rebased = [];
-
-    linkedDocs(doc, function(doc, sharedHist) {
-      if (!sharedHist && indexOf(rebased, doc.history) == -1) {
-        rebaseHist(doc.history, change);
-        rebased.push(doc.history);
-      }
-      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));
-    });
-  }
-
-  // Revert a change stored in a document's history.
-  function makeChangeFromHistory(doc, type, allowSelectionOnly) {
-    if (doc.cm && doc.cm.state.suppressEdits && !allowSelectionOnly) return;
-
-    var hist = doc.history, event, selAfter = doc.sel;
-    var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
-
-    // Verify that there is a useable event (so that ctrl-z won't
-    // needlessly clear selection events)
-    for (var i = 0; i < source.length; i++) {
-      event = source[i];
-      if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)
-        break;
-    }
-    if (i == source.length) return;
-    hist.lastOrigin = hist.lastSelOrigin = null;
-
-    for (;;) {
-      event = source.pop();
-      if (event.ranges) {
-        pushSelectionToHistory(event, dest);
-        if (allowSelectionOnly && !event.equals(doc.sel)) {
-          setSelection(doc, event, {clearRedo: false});
-          return;
-        }
-        selAfter = event;
-      }
-      else break;
-    }
-
-    // Build up a reverse change object to add to the opposite history
-    // stack (redo when undoing, and vice versa).
-    var antiChanges = [];
-    pushSelectionToHistory(selAfter, dest);
-    dest.push({changes: antiChanges, generation: hist.generation});
-    hist.generation = event.generation || ++hist.maxGeneration;
-
-    var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange");
-
-    for (var i = event.changes.length - 1; i >= 0; --i) {
-      var change = event.changes[i];
-      change.origin = type;
-      if (filter && !filterChange(doc, change, false)) {
-        source.length = 0;
-        return;
-      }
-
-      antiChanges.push(historyChangeFromChange(doc, change));
-
-      var after = i ? computeSelAfterChange(doc, change) : lst(source);
-      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));
-      if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)});
-      var rebased = [];
-
-      // Propagate to the linked documents
-      linkedDocs(doc, function(doc, sharedHist) {
-        if (!sharedHist && indexOf(rebased, doc.history) == -1) {
-          rebaseHist(doc.history, change);
-          rebased.push(doc.history);
-        }
-        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));
-      });
-    }
-  }
-
-  // Sub-views need their line numbers shifted when text is added
-  // above or below them in the parent document.
-  function shiftDoc(doc, distance) {
-    if (distance == 0) return;
-    doc.first += distance;
-    doc.sel = new Selection(map(doc.sel.ranges, function(range) {
-      return new Range(Pos(range.anchor.line + distance, range.anchor.ch),
-                       Pos(range.head.line + distance, range.head.ch));
-    }), doc.sel.primIndex);
-    if (doc.cm) {
-      regChange(doc.cm, doc.first, doc.first - distance, distance);
-      for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)
-        regLineChange(doc.cm, l, "gutter");
-    }
-  }
-
-  // More lower-level change function, handling only a single document
-  // (not linked ones).
-  function makeChangeSingleDoc(doc, change, selAfter, spans) {
-    if (doc.cm && !doc.cm.curOp)
-      return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);
-
-    if (change.to.line < doc.first) {
-      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
-      return;
-    }
-    if (change.from.line > doc.lastLine()) return;
-
-    // Clip the change to the size of this doc
-    if (change.from.line < doc.first) {
-      var shift = change.text.length - 1 - (doc.first - change.from.line);
-      shiftDoc(doc, shift);
-      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
-                text: [lst(change.text)], origin: change.origin};
-    }
-    var last = doc.lastLine();
-    if (change.to.line > last) {
-      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
-                text: [change.text[0]], origin: change.origin};
-    }
-
-    change.removed = getBetween(doc, change.from, change.to);
-
-    if (!selAfter) selAfter = computeSelAfterChange(doc, change);
-    if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans);
-    else updateDoc(doc, change, spans);
-    setSelectionNoUndo(doc, selAfter, sel_dontScroll);
-  }
-
-  // Handle the interaction of a change to a document with the editor
-  // that this document is part of.
-  function makeChangeSingleDocInEditor(cm, change, spans) {
-    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;
-
-    var recomputeMaxLength = false, checkWidthStart = from.line;
-    if (!cm.options.lineWrapping) {
-      checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));
-      doc.iter(checkWidthStart, to.line + 1, function(line) {
-        if (line == display.maxLine) {
-          recomputeMaxLength = true;
-          return true;
-        }
-      });
-    }
-
-    if (doc.sel.contains(change.from, change.to) > -1)
-      signalCursorActivity(cm);
-
-    updateDoc(doc, change, spans, estimateHeight(cm));
-
-    if (!cm.options.lineWrapping) {
-      doc.iter(checkWidthStart, from.line + change.text.length, function(line) {
-        var len = lineLength(line);
-        if (len > display.maxLineLength) {
-          display.maxLine = line;
-          display.maxLineLength = len;
-          display.maxLineChanged = true;
-          recomputeMaxLength = false;
-        }
-      });
-      if (recomputeMaxLength) cm.curOp.updateMaxLine = true;
-    }
-
-    // Adjust frontier, schedule worker
-    doc.frontier = Math.min(doc.frontier, from.line);
-    startWorker(cm, 400);
-
-    var lendiff = change.text.length - (to.line - from.line) - 1;
-    // Remember that these lines changed, for updating the display
-    if (change.full)
-      regChange(cm);
-    else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))
-      regLineChange(cm, from.line, "text");
-    else
-      regChange(cm, from.line, to.line + 1, lendiff);
-
-    var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change");
-    if (changeHandler || changesHandler) {
-      var obj = {
-        from: from, to: to,
-        text: change.text,
-        removed: change.removed,
-        origin: change.origin
-      };
-      if (changeHandler) signalLater(cm, "change", cm, obj);
-      if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj);
-    }
-    cm.display.selForContextMenu = null;
-  }
-
-  function replaceRange(doc, code, from, to, origin) {
-    if (!to) to = from;
-    if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }
-    if (typeof code == "string") code = doc.splitLines(code);
-    makeChange(doc, {from: from, to: to, text: code, origin: origin});
-  }
-
-  // SCROLLING THINGS INTO VIEW
-
-  // If an editor sits on the top or bottom of the window, partially
-  // scrolled out of view, this ensures that the cursor is visible.
-  function maybeScrollWindow(cm, coords) {
-    if (signalDOMEvent(cm, "scrollCursorIntoView")) return;
-
-    var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
-    if (coords.top + box.top < 0) doScroll = true;
-    else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;
-    if (doScroll != null && !phantom) {
-      var scrollNode = elt("div", "\u200b", null, "position: absolute; top: " +
-                           (coords.top - display.viewOffset - paddingTop(cm.display)) + "px; height: " +
-                           (coords.bottom - coords.top + scrollGap(cm) + display.barHeight) + "px; left: " +
-                           coords.left + "px; width: 2px;");
-      cm.display.lineSpace.appendChild(scrollNode);
-      scrollNode.scrollIntoView(doScroll);
-      cm.display.lineSpace.removeChild(scrollNode);
-    }
-  }
-
-  // Scroll a given position into view (immediately), verifying that
-  // it actually became visible (as line heights are accurately
-  // measured, the position of something may 'drift' during drawing).
-  function scrollPosIntoView(cm, pos, end, margin) {
-    if (margin == null) margin = 0;
-    for (var limit = 0; limit < 5; limit++) {
-      var changed = false, coords = cursorCoords(cm, pos);
-      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
-      var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),
-                                         Math.min(coords.top, endCoords.top) - margin,
-                                         Math.max(coords.left, endCoords.left),
-                                         Math.max(coords.bottom, endCoords.bottom) + margin);
-      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
-      if (scrollPos.scrollTop != null) {
-        setScrollTop(cm, scrollPos.scrollTop);
-        if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;
-      }
-      if (scrollPos.scrollLeft != null) {
-        setScrollLeft(cm, scrollPos.scrollLeft);
-        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;
-      }
-      if (!changed) break;
-    }
-    return coords;
-  }
-
-  // Scroll a given set of coordinates into view (immediately).
-  function scrollIntoView(cm, x1, y1, x2, y2) {
-    var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);
-    if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);
-    if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);
-  }
-
-  // Calculate a new scroll position needed to scroll the given
-  // rectangle into view. Returns an object with scrollTop and
-  // scrollLeft properties. When these are undefined, the
-  // vertical/horizontal position does not need to be adjusted.
-  function calculateScrollPos(cm, x1, y1, x2, y2) {
-    var display = cm.display, snapMargin = textHeight(cm.display);
-    if (y1 < 0) y1 = 0;
-    var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
-    var screen = displayHeight(cm), result = {};
-    if (y2 - y1 > screen) y2 = y1 + screen;
-    var docBottom = cm.doc.height + paddingVert(display);
-    var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;
-    if (y1 < screentop) {
-      result.scrollTop = atTop ? 0 : y1;
-    } else if (y2 > screentop + screen) {
-      var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);
-      if (newTop != screentop) result.scrollTop = newTop;
-    }
-
-    var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
-    var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
-    var tooWide = x2 - x1 > screenw;
-    if (tooWide) x2 = x1 + screenw;
-    if (x1 < 10)
-      result.scrollLeft = 0;
-    else if (x1 < screenleft)
-      result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10));
-    else if (x2 > screenw + screenleft - 3)
-      result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw;
-    return result;
-  }
-
-  // Store a relative adjustment to the scroll position in the current
-  // operation (to be applied when the operation finishes).
-  function addToScrollPos(cm, left, top) {
-    if (left != null || top != null) resolveScrollToPos(cm);
-    if (left != null)
-      cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left;
-    if (top != null)
-      cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
-  }
-
-  // Make sure that at the end of the operation the current cursor is
-  // shown.
-  function ensureCursorVisible(cm) {
-    resolveScrollToPos(cm);
-    var cur = cm.getCursor(), from = cur, to = cur;
-    if (!cm.options.lineWrapping) {
-      from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;
-      to = Pos(cur.line, cur.ch + 1);
-    }
-    cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true};
-  }
-
-  // When an operation has its scrollToPos property set, and another
-  // scroll action is applied before the end of the operation, this
-  // 'simulates' scrolling that position into view in a cheap way, so
-  // that the effect of intermediate scroll commands is not ignored.
-  function resolveScrollToPos(cm) {
-    var range = cm.curOp.scrollToPos;
-    if (range) {
-      cm.curOp.scrollToPos = null;
-      var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);
-      var sPos = calculateScrollPos(cm, Math.min(from.left, to.left),
-                                    Math.min(from.top, to.top) - range.margin,
-                                    Math.max(from.right, to.right),
-                                    Math.max(from.bottom, to.bottom) + range.margin);
-      cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);
-    }
-  }
-
-  // API UTILITIES
-
-  // Indent the given line. The how parameter can be "smart",
-  // "add"/null, "subtract", or "prev". When aggressive is false
-  // (typically set to true for forced single-line indents), empty
-  // lines are not indented, and places where the mode returns Pass
-  // are left alone.
-  function indentLine(cm, n, how, aggressive) {
-    var doc = cm.doc, state;
-    if (how == null) how = "add";
-    if (how == "smart") {
-      // Fall back to "prev" when the mode doesn't have an indentation
-      // method.
-      if (!doc.mode.indent) how = "prev";
-      else state = getStateBefore(cm, n);
-    }
-
-    var tabSize = cm.options.tabSize;
-    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);
-    if (line.stateAfter) line.stateAfter = null;
-    var curSpaceString = line.text.match(/^\s*/)[0], indentation;
-    if (!aggressive && !/\S/.test(line.text)) {
-      indentation = 0;
-      how = "not";
-    } else if (how == "smart") {
-      indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);
-      if (indentation == Pass || indentation > 150) {
-        if (!aggressive) return;
-        how = "prev";
-      }
-    }
-    if (how == "prev") {
-      if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);
-      else indentation = 0;
-    } else if (how == "add") {
-      indentation = curSpace + cm.options.indentUnit;
-    } else if (how == "subtract") {
-      indentation = curSpace - cm.options.indentUnit;
-    } else if (typeof how == "number") {
-      indentation = curSpace + how;
-    }
-    indentation = Math.max(0, indentation);
-
-    var indentString = "", pos = 0;
-    if (cm.options.indentWithTabs)
-      for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";}
-    if (pos < indentation) indentString += spaceStr(indentation - pos);
-
-    if (indentString != curSpaceString) {
-      replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input");
-      line.stateAfter = null;
-      return true;
-    } else {
-      // Ensure that, if the cursor was in the whitespace at the start
-      // of the line, it is moved to the end of that space.
-      for (var i = 0; i < doc.sel.ranges.length; i++) {
-        var range = doc.sel.ranges[i];
-        if (range.head.line == n && range.head.ch < curSpaceString.length) {
-          var pos = Pos(n, curSpaceString.length);
-          replaceOneSelection(doc, i, new Range(pos, pos));
-          break;
-        }
-      }
-    }
-  }
-
-  // Utility for applying a change to a line by handle or number,
-  // returning the number and optionally registering the line as
-  // changed.
-  function changeLine(doc, handle, changeType, op) {
-    var no = handle, line = handle;
-    if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle));
-    else no = lineNo(handle);
-    if (no == null) return null;
-    if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType);
-    return line;
-  }
-
-  // Helper for deleting text near the selection(s), used to implement
-  // backspace, delete, and similar functionality.
-  function deleteNearSelection(cm, compute) {
-    var ranges = cm.doc.sel.ranges, kill = [];
-    // Build up a set of ranges to kill first, merging overlapping
-    // ranges.
-    for (var i = 0; i < ranges.length; i++) {
-      var toKill = compute(ranges[i]);
-      while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {
-        var replaced = kill.pop();
-        if (cmp(replaced.from, toKill.from) < 0) {
-          toKill.from = replaced.from;
-          break;
-        }
-      }
-      kill.push(toKill);
-    }
-    // Next, remove those actual ranges.
-    runInOp(cm, function() {
-      for (var i = kill.length - 1; i >= 0; i--)
-        replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete");
-      ensureCursorVisible(cm);
-    });
-  }
-
-  // Used for horizontal relative motion. Dir is -1 or 1 (left or
-  // right), unit can be "char", "column" (like char, but doesn't
-  // cross line boundaries), "word" (across next word), or "group" (to
-  // the start of next group of word or non-word-non-whitespace
-  // chars). The visually param controls whether, in right-to-left
-  // text, direction 1 means to move towards the next index in the
-  // string, or towards the character to the right of the current
-  // position. The resulting position will have a hitSide=true
-  // property if it reached the end of the document.
-  function findPosH(doc, pos, dir, unit, visually) {
-    var line = pos.line, ch = pos.ch, origDir = dir;
-    var lineObj = getLine(doc, line);
-    function findNextLine() {
-      var l = line + dir;
-      if (l < doc.first || l >= doc.first + doc.size) return false
-      line = l;
-      return lineObj = getLine(doc, l);
-    }
-    function moveOnce(boundToLine) {
-      var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);
-      if (next == null) {
-        if (!boundToLine && findNextLine()) {
-          if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);
-          else ch = dir < 0 ? lineObj.text.length : 0;
-        } else return false
-      } else ch = next;
-      return true;
-    }
-
-    if (unit == "char") {
-      moveOnce()
-    } else if (unit == "column") {
-      moveOnce(true)
-    } else if (unit == "word" || unit == "group") {
-      var sawType = null, group = unit == "group";
-      var helper = doc.cm && doc.cm.getHelper(pos, "wordChars");
-      for (var first = true;; first = false) {
-        if (dir < 0 && !moveOnce(!first)) break;
-        var cur = lineObj.text.charAt(ch) || "\n";
-        var type = isWordChar(cur, helper) ? "w"
-          : group && cur == "\n" ? "n"
-          : !group || /\s/.test(cur) ? null
-          : "p";
-        if (group && !first && !type) type = "s";
-        if (sawType && sawType != type) {
-          if (dir < 0) {dir = 1; moveOnce();}
-          break;
-        }
-
-        if (type) sawType = type;
-        if (dir > 0 && !moveOnce(!first)) break;
-      }
-    }
-    var result = skipAtomic(doc, Pos(line, ch), pos, origDir, true);
-    if (!cmp(pos, result)) result.hitSide = true;
-    return result;
-  }
-
-  // For relative vertical movement. Dir may be -1 or 1. Unit can be
-  // "page" or "line". The resulting position will have a hitSide=true
-  // property if it reached the end of the document.
-  function findPosV(cm, pos, dir, unit) {
-    var doc = cm.doc, x = pos.left, y;
-    if (unit == "page") {
-      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);
-      y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));
-    } else if (unit == "line") {
-      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;
-    }
-    for (;;) {
-      var target = coordsChar(cm, x, y);
-      if (!target.outside) break;
-      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }
-      y += dir * 5;
-    }
-    return target;
-  }
-
-  // EDITOR METHODS
-
-  // The publicly visible API. Note that methodOp(f) means
-  // 'wrap f in an operation, performed on its `this` parameter'.
-
-  // This is not the complete set of editor methods. Most of the
-  // methods defined on the Doc type are also injected into
-  // CodeMirror.prototype, for backwards compatibility and
-  // convenience.
-
-  CodeMirror.prototype = {
-    constructor: CodeMirror,
-    focus: function(){window.focus(); this.display.input.focus();},
-
-    setOption: function(option, value) {
-      var options = this.options, old = options[option];
-      if (options[option] == value && option != "mode") return;
-      options[option] = value;
-      if (optionHandlers.hasOwnProperty(option))
-        operation(this, optionHandlers[option])(this, value, old);
-    },
-
-    getOption: function(option) {return this.options[option];},
-    getDoc: function() {return this.doc;},
-
-    addKeyMap: function(map, bottom) {
-      this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map));
-    },
-    removeKeyMap: function(map) {
-      var maps = this.state.keyMaps;
-      for (var i = 0; i < maps.length; ++i)
-        if (maps[i] == map || maps[i].name == map) {
-          maps.splice(i, 1);
-          return true;
-        }
-    },
-
-    addOverlay: methodOp(function(spec, options) {
-      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);
-      if (mode.startState) throw new Error("Overlays may not be stateful.");
-      insertSorted(this.state.overlays,
-                   {mode: mode, modeSpec: spec, opaque: options && options.opaque,
-                    priority: (options && options.priority) || 0},
-                   function(overlay) { return overlay.priority })
-      this.state.modeGen++;
-      regChange(this);
-    }),
-    removeOverlay: methodOp(function(spec) {
-      var overlays = this.state.overlays;
-      for (var i = 0; i < overlays.length; ++i) {
-        var cur = overlays[i].modeSpec;
-        if (cur == spec || typeof spec == "string" && cur.name == spec) {
-          overlays.splice(i, 1);
-          this.state.modeGen++;
-          regChange(this);
-          return;
-        }
-      }
-    }),
-
-    indentLine: methodOp(function(n, dir, aggressive) {
-      if (typeof dir != "string" && typeof dir != "number") {
-        if (dir == null) dir = this.options.smartIndent ? "smart" : "prev";
-        else dir = dir ? "add" : "subtract";
-      }
-      if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);
-    }),
-    indentSelection: methodOp(function(how) {
-      var ranges = this.doc.sel.ranges, end = -1;
-      for (var i = 0; i < ranges.length; i++) {
-        var range = ranges[i];
-        if (!range.empty()) {
-          var from = range.from(), to = range.to();
-          var start = Math.max(end, from.line);
-          end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;
-          for (var j = start; j < end; ++j)
-            indentLine(this, j, how);
-          var newRanges = this.doc.sel.ranges;
-          if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)
-            replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll);
-        } else if (range.head.line > end) {
-          indentLine(this, range.head.line, how, true);
-          end = range.head.line;
-          if (i == this.doc.sel.primIndex) ensureCursorVisible(this);
-        }
-      }
-    }),
-
-    // Fetch the parser token for a given character. Useful for hacks
-    // that want to inspect the mode state (say, for completion).
-    getTokenAt: function(pos, precise) {
-      return takeToken(this, pos, precise);
-    },
-
-    getLineTokens: function(line, precise) {
-      return takeToken(this, Pos(line), precise, true);
-    },
-
-    getTokenTypeAt: function(pos) {
-      pos = clipPos(this.doc, pos);
-      var styles = getLineStyles(this, getLine(this.doc, pos.line));
-      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;
-      var type;
-      if (ch == 0) type = styles[2];
-      else for (;;) {
-        var mid = (before + after) >> 1;
-        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;
-        else if (styles[mid * 2 + 1] < ch) before = mid + 1;
-        else { type = styles[mid * 2 + 2]; break; }
-      }
-      var cut = type ? type.indexOf("cm-overlay ") : -1;
-      return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1);
-    },
-
-    getModeAt: function(pos) {
-      var mode = this.doc.mode;
-      if (!mode.innerMode) return mode;
-      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;
-    },
-
-    getHelper: function(pos, type) {
-      return this.getHelpers(pos, type)[0];
-    },
-
-    getHelpers: function(pos, type) {
-      var found = [];
-      if (!helpers.hasOwnProperty(type)) return found;
-      var help = helpers[type], mode = this.getModeAt(pos);
-      if (typeof mode[type] == "string") {
-        if (help[mode[type]]) found.push(help[mode[type]]);
-      } else if (mode[type]) {
-        for (var i = 0; i < mode[type].length; i++) {
-          var val = help[mode[type][i]];
-          if (val) found.push(val);
-        }
-      } else if (mode.helperType && help[mode.helperType]) {
-        found.push(help[mode.helperType]);
-      } else if (help[mode.name]) {
-        found.push(help[mode.name]);
-      }
-      for (var i = 0; i < help._global.length; i++) {
-        var cur = help._global[i];
-        if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)
-          found.push(cur.val);
-      }
-      return found;
-    },
-
-    getStateAfter: function(line, precise) {
-      var doc = this.doc;
-      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
-      return getStateBefore(this, line + 1, precise);
-    },
-
-    cursorCoords: function(start, mode) {
-      var pos, range = this.doc.sel.primary();
-      if (start == null) pos = range.head;
-      else if (typeof start == "object") pos = clipPos(this.doc, start);
-      else pos = start ? range.from() : range.to();
-      return cursorCoords(this, pos, mode || "page");
-    },
-
-    charCoords: function(pos, mode) {
-      return charCoords(this, clipPos(this.doc, pos), mode || "page");
-    },
-
-    coordsChar: function(coords, mode) {
-      coords = fromCoordSystem(this, coords, mode || "page");
-      return coordsChar(this, coords.left, coords.top);
-    },
-
-    lineAtHeight: function(height, mode) {
-      height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top;
-      return lineAtHeight(this.doc, height + this.display.viewOffset);
-    },
-    heightAtLine: function(line, mode) {
-      var end = false, lineObj;
-      if (typeof line == "number") {
-        var last = this.doc.first + this.doc.size - 1;
-        if (line < this.doc.first) line = this.doc.first;
-        else if (line > last) { line = last; end = true; }
-        lineObj = getLine(this.doc, line);
-      } else {
-        lineObj = line;
-      }
-      return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page").top +
-        (end ? this.doc.height - heightAtLine(lineObj) : 0);
-    },
-
-    defaultTextHeight: function() { return textHeight(this.display); },
-    defaultCharWidth: function() { return charWidth(this.display); },
-
-    setGutterMarker: methodOp(function(line, gutterID, value) {
-      return changeLine(this.doc, line, "gutter", function(line) {
-        var markers = line.gutterMarkers || (line.gutterMarkers = {});
-        markers[gutterID] = value;
-        if (!value && isEmpty(markers)) line.gutterMarkers = null;
-        return true;
-      });
-    }),
-
-    clearGutter: methodOp(function(gutterID) {
-      var cm = this, doc = cm.doc, i = doc.first;
-      doc.iter(function(line) {
-        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
-          line.gutterMarkers[gutterID] = null;
-          regLineChange(cm, i, "gutter");
-          if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;
-        }
-        ++i;
-      });
-    }),
-
-    lineInfo: function(line) {
-      if (typeof line == "number") {
-        if (!isLine(this.doc, line)) return null;
-        var n = line;
-        line = getLine(this.doc, line);
-        if (!line) return null;
-      } else {
-        var n = lineNo(line);
-        if (n == null) return null;
-      }
-      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,
-              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,
-              widgets: line.widgets};
-    },
-
-    getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};},
-
-    addWidget: function(pos, node, scroll, vert, horiz) {
-      var display = this.display;
-      pos = cursorCoords(this, clipPos(this.doc, pos));
-      var top = pos.bottom, left = pos.left;
-      node.style.position = "absolute";
-      node.setAttribute("cm-ignore-events", "true");
-      this.display.input.setUneditable(node);
-      display.sizer.appendChild(node);
-      if (vert == "over") {
-        top = pos.top;
-      } else if (vert == "above" || vert == "near") {
-        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),
-        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);
-        // Default to positioning above (if specified and possible); otherwise default to positioning below
-        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)
-          top = pos.top - node.offsetHeight;
-        else if (pos.bottom + node.offsetHeight <= vspace)
-          top = pos.bottom;
-        if (left + node.offsetWidth > hspace)
-          left = hspace - node.offsetWidth;
-      }
-      node.style.top = top + "px";
-      node.style.left = node.style.right = "";
-      if (horiz == "right") {
-        left = display.sizer.clientWidth - node.offsetWidth;
-        node.style.right = "0px";
-      } else {
-        if (horiz == "left") left = 0;
-        else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2;
-        node.style.left = left + "px";
-      }
-      if (scroll)
-        scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);
-    },
-
-    triggerOnKeyDown: methodOp(onKeyDown),
-    triggerOnKeyPress: methodOp(onKeyPress),
-    triggerOnKeyUp: onKeyUp,
-
-    execCommand: function(cmd) {
-      if (commands.hasOwnProperty(cmd))
-        return commands[cmd].call(null, this);
-    },
-
-    triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),
-
-    findPosH: function(from, amount, unit, visually) {
-      var dir = 1;
-      if (amount < 0) { dir = -1; amount = -amount; }
-      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
-        cur = findPosH(this.doc, cur, dir, unit, visually);
-        if (cur.hitSide) break;
-      }
-      return cur;
-    },
-
-    moveH: methodOp(function(dir, unit) {
-      var cm = this;
-      cm.extendSelectionsBy(function(range) {
-        if (cm.display.shift || cm.doc.extend || range.empty())
-          return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually);
-        else
-          return dir < 0 ? range.from() : range.to();
-      }, sel_move);
-    }),
-
-    deleteH: methodOp(function(dir, unit) {
-      var sel = this.doc.sel, doc = this.doc;
-      if (sel.somethingSelected())
-        doc.replaceSelection("", null, "+delete");
-      else
-        deleteNearSelection(this, function(range) {
-          var other = findPosH(doc, range.head, dir, unit, false);
-          return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other};
-        });
-    }),
-
-    findPosV: function(from, amount, unit, goalColumn) {
-      var dir = 1, x = goalColumn;
-      if (amount < 0) { dir = -1; amount = -amount; }
-      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
-        var coords = cursorCoords(this, cur, "div");
-        if (x == null) x = coords.left;
-        else coords.left = x;
-        cur = findPosV(this, coords, dir, unit);
-        if (cur.hitSide) break;
-      }
-      return cur;
-    },
-
-    moveV: methodOp(function(dir, unit) {
-      var cm = this, doc = this.doc, goals = [];
-      var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected();
-      doc.extendSelectionsBy(function(range) {
-        if (collapse)
-          return dir < 0 ? range.from() : range.to();
-        var headPos = cursorCoords(cm, range.head, "div");
-        if (range.goalColumn != null) headPos.left = range.goalColumn;
-        goals.push(headPos.left);
-        var pos = findPosV(cm, headPos, dir, unit);
-        if (unit == "page" && range == doc.sel.primary())
-          addToScrollPos(cm, null, charCoords(cm, pos, "div").top - headPos.top);
-        return pos;
-      }, sel_move);
-      if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++)
-        doc.sel.ranges[i].goalColumn = goals[i];
-    }),
-
-    // Find the word at the given position (as returned by coordsChar).
-    findWordAt: function(pos) {
-      var doc = this.doc, line = getLine(doc, pos.line).text;
-      var start = pos.ch, end = pos.ch;
-      if (line) {
-        var helper = this.getHelper(pos, "wordChars");
-        if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;
-        var startChar = line.charAt(start);
-        var check = isWordChar(startChar, helper)
-          ? function(ch) { return isWordChar(ch, helper); }
-          : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);}
-          : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);};
-        while (start > 0 && check(line.charAt(start - 1))) --start;
-        while (end < line.length && check(line.charAt(end))) ++end;
-      }
-      return new Range(Pos(pos.line, start), Pos(pos.line, end));
-    },
-
-    toggleOverwrite: function(value) {
-      if (value != null && value == this.state.overwrite) return;
-      if (this.state.overwrite = !this.state.overwrite)
-        addClass(this.display.cursorDiv, "CodeMirror-overwrite");
-      else
-        rmClass(this.display.cursorDiv, "CodeMirror-overwrite");
-
-      signal(this, "overwriteToggle", this, this.state.overwrite);
-    },
-    hasFocus: function() { return this.display.input.getField() == activeElt(); },
-    isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit); },
-
-    scrollTo: methodOp(function(x, y) {
-      if (x != null || y != null) resolveScrollToPos(this);
-      if (x != null) this.curOp.scrollLeft = x;
-      if (y != null) this.curOp.scrollTop = y;
-    }),
-    getScrollInfo: function() {
-      var scroller = this.display.scroller;
-      return {left: scroller.scrollLeft, top: scroller.scrollTop,
-              height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,
-              width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,
-              clientHeight: displayHeight(this), clientWidth: displayWidth(this)};
-    },
-
-    scrollIntoView: methodOp(function(range, margin) {
-      if (range == null) {
-        range = {from: this.doc.sel.primary().head, to: null};
-        if (margin == null) margin = this.options.cursorScrollMargin;
-      } else if (typeof range == "number") {
-        range = {from: Pos(range, 0), to: null};
-      } else if (range.from == null) {
-        range = {from: range, to: null};
-      }
-      if (!range.to) range.to = range.from;
-      range.margin = margin || 0;
-
-      if (range.from.line != null) {
-        resolveScrollToPos(this);
-        this.curOp.scrollToPos = range;
-      } else {
-        var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left),
-                                      Math.min(range.from.top, range.to.top) - range.margin,
-                                      Math.max(range.from.right, range.to.right),
-                                      Math.max(range.from.bottom, range.to.bottom) + range.margin);
-        this.scrollTo(sPos.scrollLeft, sPos.scrollTop);
-      }
-    }),
-
-    setSize: methodOp(function(width, height) {
-      var cm = this;
-      function interpret(val) {
-        return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val;
-      }
-      if (width != null) cm.display.wrapper.style.width = interpret(width);
-      if (height != null) cm.display.wrapper.style.height = interpret(height);
-      if (cm.options.lineWrapping) clearLineMeasurementCache(this);
-      var lineNo = cm.display.viewFrom;
-      cm.doc.iter(lineNo, cm.display.viewTo, function(line) {
-        if (line.widgets) for (var i = 0; i < line.widgets.length; i++)
-          if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, "widget"); break; }
-        ++lineNo;
-      });
-      cm.curOp.forceUpdate = true;
-      signal(cm, "refresh", this);
-    }),
-
-    operation: function(f){return runInOp(this, f);},
-
-    refresh: methodOp(function() {
-      var oldHeight = this.display.cachedTextHeight;
-      regChange(this);
-      this.curOp.forceUpdate = true;
-      clearCaches(this);
-      this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop);
-      updateGutterSpace(this);
-      if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
-        estimateLineHeights(this);
-      signal(this, "refresh", this);
-    }),
-
-    swapDoc: methodOp(function(doc) {
-      var old = this.doc;
-      old.cm = null;
-      attachDoc(this, doc);
-      clearCaches(this);
-      this.display.input.reset();
-      this.scrollTo(doc.scrollLeft, doc.scrollTop);
-      this.curOp.forceScroll = true;
-      signalLater(this, "swapDoc", this, old);
-      return old;
-    }),
-
-    getInputField: function(){return this.display.input.getField();},
-    getWrapperElement: function(){return this.display.wrapper;},
-    getScrollerElement: function(){return this.display.scroller;},
-    getGutterElement: function(){return this.display.gutters;}
-  };
-  eventMixin(CodeMirror);
-
-  // OPTION DEFAULTS
-
-  // The default configuration options.
-  var defaults = CodeMirror.defaults = {};
-  // Functions to run when options are changed.
-  var optionHandlers = CodeMirror.optionHandlers = {};
-
-  function option(name, deflt, handle, notOnInit) {
-    CodeMirror.defaults[name] = deflt;
-    if (handle) optionHandlers[name] =
-      notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;
-  }
-
-  // Passed to option handlers when there is no old value.
-  var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}};
-
-  // These two are, on init, called from the constructor because they
-  // have to be initialized before the editor can start at all.
-  option("value", "", function(cm, val) {
-    cm.setValue(val);
-  }, true);
-  option("mode", null, function(cm, val) {
-    cm.doc.modeOption = val;
-    loadMode(cm);
-  }, true);
-
-  option("indentUnit", 2, loadMode, true);
-  option("indentWithTabs", false);
-  option("smartIndent", true);
-  option("tabSize", 4, function(cm) {
-    resetModeState(cm);
-    clearCaches(cm);
-    regChange(cm);
-  }, true);
-  option("lineSeparator", null, function(cm, val) {
-    cm.doc.lineSep = val;
-    if (!val) return;
-    var newBreaks = [], lineNo = cm.doc.first;
-    cm.doc.iter(function(line) {
-      for (var pos = 0;;) {
-        var found = line.text.indexOf(val, pos);
-        if (found == -1) break;
-        pos = found + val.length;
-        newBreaks.push(Pos(lineNo, found));
-      }
-      lineNo++;
-    });
-    for (var i = newBreaks.length - 1; i >= 0; i--)
-      replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length))
-  });
-  option("specialChars", /[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val, old) {
-    cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
-    if (old != CodeMirror.Init) cm.refresh();
-  });
-  option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);
-  option("electricChars", true);
-  option("inputStyle", mobile ? "contenteditable" : "textarea", function() {
-    throw new Error("inputStyle can not (yet) be changed in a running editor"); // FIXME
-  }, true);
-  option("spellcheck", false, function(cm, val) {
-    cm.getInputField().spellcheck = val
-  }, true);
-  option("rtlMoveVisually", !windows);
-  option("wholeLineUpdateBefore", true);
-
-  option("theme", "default", function(cm) {
-    themeChanged(cm);
-    guttersChanged(cm);
-  }, true);
-  option("keyMap", "default", function(cm, val, old) {
-    var next = getKeyMap(val);
-    var prev = old != CodeMirror.Init && getKeyMap(old);
-    if (prev && prev.detach) prev.detach(cm, next);
-    if (next.attach) next.attach(cm, prev || null);
-  });
-  option("extraKeys", null);
-
-  option("lineWrapping", false, wrappingChanged, true);
-  option("gutters", [], function(cm) {
-    setGuttersForLineNumbers(cm.options);
-    guttersChanged(cm);
-  }, true);
-  option("fixedGutter", true, function(cm, val) {
-    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0";
-    cm.refresh();
-  }, true);
-  option("coverGutterNextToScrollbar", false, function(cm) {updateScrollbars(cm);}, true);
-  option("scrollbarStyle", "native", function(cm) {
-    initScrollbars(cm);
-    updateScrollbars(cm);
-    cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);
-    cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);
-  }, true);
-  option("lineNumbers", false, function(cm) {
-    setGuttersForLineNumbers(cm.options);
-    guttersChanged(cm);
-  }, true);
-  option("firstLineNumber", 1, guttersChanged, true);
-  option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true);
-  option("showCursorWhenSelecting", false, updateSelection, true);
-
-  option("resetSelectionOnContextMenu", true);
-  option("lineWiseCopyCut", true);
-
-  option("readOnly", false, function(cm, val) {
-    if (val == "nocursor") {
-      onBlur(cm);
-      cm.display.input.blur();
-      cm.display.disabled = true;
-    } else {
-      cm.display.disabled = false;
-    }
-    cm.display.input.readOnlyChanged(val)
-  });
-  option("disableInput", false, function(cm, val) {if (!val) cm.display.input.reset();}, true);
-  option("dragDrop", true, dragDropChanged);
-  option("allowDropFileTypes", null);
-
-  option("cursorBlinkRate", 530);
-  option("cursorScrollMargin", 0);
-  option("cursorHeight", 1, updateSelection, true);
-  option("singleCursorHeightPerLine", true, updateSelection, true);
-  option("workTime", 100);
-  option("workDelay", 100);
-  option("flattenSpans", true, resetModeState, true);
-  option("addModeClass", false, resetModeState, true);
-  option("pollInterval", 100);
-  option("undoDepth", 200, function(cm, val){cm.doc.history.undoDepth = val;});
-  option("historyEventDelay", 1250);
-  option("viewportMargin", 10, function(cm){cm.refresh();}, true);
-  option("maxHighlightLength", 10000, resetModeState, true);
-  option("moveInputWithCursor", true, function(cm, val) {
-    if (!val) cm.display.input.resetPosition();
-  });
-
-  option("tabindex", null, function(cm, val) {
-    cm.display.input.getField().tabIndex = val || "";
-  });
-  option("autofocus", null);
-
-  // MODE DEFINITION AND QUERYING
-
-  // Known modes, by name and by MIME
-  var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};
-
-  // Extra arguments are stored as the mode's dependencies, which is
-  // used by (legacy) mechanisms like loadmode.js to automatically
-  // load a mode. (Preferred mechanism is the require/define calls.)
-  CodeMirror.defineMode = function(name, mode) {
-    if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name;
-    if (arguments.length > 2)
-      mode.dependencies = Array.prototype.slice.call(arguments, 2);
-    modes[name] = mode;
-  };
-
-  CodeMirror.defineMIME = function(mime, spec) {
-    mimeModes[mime] = spec;
-  };
-
-  // Given a MIME type, a {name, ...options} config object, or a name
-  // string, return a mode config object.
-  CodeMirror.resolveMode = function(spec) {
-    if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
-      spec = mimeModes[spec];
-    } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
-      var found = mimeModes[spec.name];
-      if (typeof found == "string") found = {name: found};
-      spec = createObj(found, spec);
-      spec.name = found.name;
-    } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
-      return CodeMirror.resolveMode("application/xml");
-    } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) {
-      return CodeMirror.resolveMode("application/json");
-    }
-    if (typeof spec == "string") return {name: spec};
-    else return spec || {name: "null"};
-  };
-
-  // Given a mode spec (anything that resolveMode accepts), find and
-  // initialize an actual mode object.
-  CodeMirror.getMode = function(options, spec) {
-    var spec = CodeMirror.resolveMode(spec);
-    var mfactory = modes[spec.name];
-    if (!mfactory) return CodeMirror.getMode(options, "text/plain");
-    var modeObj = mfactory(options, spec);
-    if (modeExtensions.hasOwnProperty(spec.name)) {
-      var exts = modeExtensions[spec.name];
-      for (var prop in exts) {
-        if (!exts.hasOwnProperty(prop)) continue;
-        if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop];
-        modeObj[prop] = exts[prop];
-      }
-    }
-    modeObj.name = spec.name;
-    if (spec.helperType) modeObj.helperType = spec.helperType;
-    if (spec.modeProps) for (var prop in spec.modeProps)
-      modeObj[prop] = spec.modeProps[prop];
-
-    return modeObj;
-  };
-
-  // Minimal default mode.
-  CodeMirror.defineMode("null", function() {
-    return {token: function(stream) {stream.skipToEnd();}};
-  });
-  CodeMirror.defineMIME("text/plain", "null");
-
-  // This can be used to attach properties to mode objects from
-  // outside the actual mode definition.
-  var modeExtensions = CodeMirror.modeExtensions = {};
-  CodeMirror.extendMode = function(mode, properties) {
-    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
-    copyObj(properties, exts);
-  };
-
-  // EXTENSIONS
-
-  CodeMirror.defineExtension = function(name, func) {
-    CodeMirror.prototype[name] = func;
-  };
-  CodeMirror.defineDocExtension = function(name, func) {
-    Doc.prototype[name] = func;
-  };
-  CodeMirror.defineOption = option;
-
-  var initHooks = [];
-  CodeMirror.defineInitHook = function(f) {initHooks.push(f);};
-
-  var helpers = CodeMirror.helpers = {};
-  CodeMirror.registerHelper = function(type, name, value) {
-    if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []};
-    helpers[type][name] = value;
-  };
-  CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {
-    CodeMirror.registerHelper(type, name, value);
-    helpers[type]._global.push({pred: predicate, val: value});
-  };
-
-  // MODE STATE HANDLING
-
-  // Utility functions for working with state. Exported because nested
-  // modes need to do this for their inner modes.
-
-  var copyState = CodeMirror.copyState = function(mode, state) {
-    if (state === true) return state;
-    if (mode.copyState) return mode.copyState(state);
-    var nstate = {};
-    for (var n in state) {
-      var val = state[n];
-      if (val instanceof Array) val = val.concat([]);
-      nstate[n] = val;
-    }
-    return nstate;
-  };
-
-  var startState = CodeMirror.startState = function(mode, a1, a2) {
-    return mode.startState ? mode.startState(a1, a2) : true;
-  };
-
-  // Given a mode and a state (for that mode), find the inner mode and
-  // state at the position that the state refers to.
-  CodeMirror.innerMode = function(mode, state) {
-    while (mode.innerMode) {
-      var info = mode.innerMode(state);
-      if (!info || info.mode == mode) break;
-      state = info.state;
-      mode = info.mode;
-    }
-    return info || {mode: mode, state: state};
-  };
-
-  // STANDARD COMMANDS
-
-  // Commands are parameter-less actions that can be performed on an
-  // editor, mostly used for keybindings.
-  var commands = CodeMirror.commands = {
-    selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);},
-    singleSelection: function(cm) {
-      cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll);
-    },
-    killLine: function(cm) {
-      deleteNearSelection(cm, function(range) {
-        if (range.empty()) {
-          var len = getLine(cm.doc, range.head.line).text.length;
-          if (range.head.ch == len && range.head.line < cm.lastLine())
-            return {from: range.head, to: Pos(range.head.line + 1, 0)};
-          else
-            return {from: range.head, to: Pos(range.head.line, len)};
-        } else {
-          return {from: range.from(), to: range.to()};
-        }
-      });
-    },
-    deleteLine: function(cm) {
-      deleteNearSelection(cm, function(range) {
-        return {from: Pos(range.from().line, 0),
-                to: clipPos(cm.doc, Pos(range.to().line + 1, 0))};
-      });
-    },
-    delLineLeft: function(cm) {
-      deleteNearSelection(cm, function(range) {
-        return {from: Pos(range.from().line, 0), to: range.from()};
-      });
-    },
-    delWrappedLineLeft: function(cm) {
-      deleteNearSelection(cm, function(range) {
-        var top = cm.charCoords(range.head, "div").top + 5;
-        var leftPos = cm.coordsChar({left: 0, top: top}, "div");
-        return {from: leftPos, to: range.from()};
-      });
-    },
-    delWrappedLineRight: function(cm) {
-      deleteNearSelection(cm, function(range) {
-        var top = cm.charCoords(range.head, "div").top + 5;
-        var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
-        return {from: range.from(), to: rightPos };
-      });
-    },
-    undo: function(cm) {cm.undo();},
-    redo: function(cm) {cm.redo();},
-    undoSelection: function(cm) {cm.undoSelection();},
-    redoSelection: function(cm) {cm.redoSelection();},
-    goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},
-    goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},
-    goLineStart: function(cm) {
-      cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); },
-                            {origin: "+move", bias: 1});
-    },
-    goLineStartSmart: function(cm) {
-      cm.extendSelectionsBy(function(range) {
-        return lineStartSmart(cm, range.head);
-      }, {origin: "+move", bias: 1});
-    },
-    goLineEnd: function(cm) {
-      cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); },
-                            {origin: "+move", bias: -1});
-    },
-    goLineRight: function(cm) {
-      cm.extendSelectionsBy(function(range) {
-        var top = cm.charCoords(range.head, "div").top + 5;
-        return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
-      }, sel_move);
-    },
-    goLineLeft: function(cm) {
-      cm.extendSelectionsBy(function(range) {
-        var top = cm.charCoords(range.head, "div").top + 5;
-        return cm.coordsChar({left: 0, top: top}, "div");
-      }, sel_move);
-    },
-    goLineLeftSmart: function(cm) {
-      cm.extendSelectionsBy(function(range) {
-        var top = cm.charCoords(range.head, "div").top + 5;
-        var pos = cm.coordsChar({left: 0, top: top}, "div");
-        if (pos.ch < cm.getLine(pos.line).search(/\S/)) return lineStartSmart(cm, range.head);
-        return pos;
-      }, sel_move);
-    },
-    goLineUp: function(cm) {cm.moveV(-1, "line");},
-    goLineDown: function(cm) {cm.moveV(1, "line");},
-    goPageUp: function(cm) {cm.moveV(-1, "page");},
-    goPageDown: function(cm) {cm.moveV(1, "page");},
-    goCharLeft: function(cm) {cm.moveH(-1, "char");},
-    goCharRight: function(cm) {cm.moveH(1, "char");},
-    goColumnLeft: function(cm) {cm.moveH(-1, "column");},
-    goColumnRight: function(cm) {cm.moveH(1, "column");},
-    goWordLeft: function(cm) {cm.moveH(-1, "word");},
-    goGroupRight: function(cm) {cm.moveH(1, "group");},
-    goGroupLeft: function(cm) {cm.moveH(-1, "group");},
-    goWordRight: function(cm) {cm.moveH(1, "word");},
-    delCharBefore: function(cm) {cm.deleteH(-1, "char");},
-    delCharAfter: function(cm) {cm.deleteH(1, "char");},
-    delWordBefore: function(cm) {cm.deleteH(-1, "word");},
-    delWordAfter: function(cm) {cm.deleteH(1, "word");},
-    delGroupBefore: function(cm) {cm.deleteH(-1, "group");},
-    delGroupAfter: function(cm) {cm.deleteH(1, "group");},
-    indentAuto: function(cm) {cm.indentSelection("smart");},
-    indentMore: function(cm) {cm.indentSelection("add");},
-    indentLess: function(cm) {cm.indentSelection("subtract");},
-    insertTab: function(cm) {cm.replaceSelection("\t");},
-    insertSoftTab: function(cm) {
-      var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;
-      for (var i = 0; i < ranges.length; i++) {
-        var pos = ranges[i].from();
-        var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
-        spaces.push(spaceStr(tabSize - col % tabSize));
-      }
-      cm.replaceSelections(spaces);
-    },
-    defaultTab: function(cm) {
-      if (cm.somethingSelected()) cm.indentSelection("add");
-      else cm.execCommand("insertTab");
-    },
-    transposeChars: function(cm) {
-      runInOp(cm, function() {
-        var ranges = cm.listSelections(), newSel = [];
-        for (var i = 0; i < ranges.length; i++) {
-          var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;
-          if (line) {
-            if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1);
-            if (cur.ch > 0) {
-              cur = new Pos(cur.line, cur.ch + 1);
-              cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),
-                              Pos(cur.line, cur.ch - 2), cur, "+transpose");
-            } else if (cur.line > cm.doc.first) {
-              var prev = getLine(cm.doc, cur.line - 1).text;
-              if (prev)
-                cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +
-                                prev.charAt(prev.length - 1),
-                                Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), "+transpose");
-            }
-          }
-          newSel.push(new Range(cur, cur));
-        }
-        cm.setSelections(newSel);
-      });
-    },
-    newlineAndIndent: function(cm) {
-      runInOp(cm, function() {
-        var len = cm.listSelections().length;
-        for (var i = 0; i < len; i++) {
-          var range = cm.listSelections()[i];
-          cm.replaceRange(cm.doc.lineSeparator(), range.anchor, range.head, "+input");
-          cm.indentLine(range.from().line + 1, null, true);
-        }
-        ensureCursorVisible(cm);
-      });
-    },
-    openLine: function(cm) {cm.replaceSelection("\n", "start")},
-    toggleOverwrite: function(cm) {cm.toggleOverwrite();}
-  };
-
-
-  // STANDARD KEYMAPS
-
-  var keyMap = CodeMirror.keyMap = {};
-
-  keyMap.basic = {
-    "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
-    "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
-    "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
-    "Tab": "defaultTab", "Shift-Tab": "indentAuto",
-    "Enter": "newlineAndIndent", "Insert": "toggleOverwrite",
-    "Esc": "singleSelection"
-  };
-  // Note that the save and find-related commands aren't defined by
-  // default. User code or addons can define them. Unknown commands
-  // are simply ignored.
-  keyMap.pcDefault = {
-    "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
-    "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown",
-    "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
-    "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find",
-    "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
-    "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
-    "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
-    fallthrough: "basic"
-  };
-  // Very basic readline/emacs-style bindings, which are standard on Mac.
-  keyMap.emacsy = {
-    "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
-    "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
-    "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
-    "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars",
-    "Ctrl-O": "openLine"
-  };
-  keyMap.macDefault = {
-    "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
-    "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft",
-    "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore",
-    "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find",
-    "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
-    "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
-    "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
-    fallthrough: ["basic", "emacsy"]
-  };
-  keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
-
-  // KEYMAP DISPATCH
-
-  function normalizeKeyName(name) {
-    var parts = name.split(/-(?!$)/), name = parts[parts.length - 1];
-    var alt, ctrl, shift, cmd;
-    for (var i = 0; i < parts.length - 1; i++) {
-      var mod = parts[i];
-      if (/^(cmd|meta|m)$/i.test(mod)) cmd = true;
-      else if (/^a(lt)?$/i.test(mod)) alt = true;
-      else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true;
-      else if (/^s(hift)$/i.test(mod)) shift = true;
-      else throw new Error("Unrecognized modifier name: " + mod);
-    }
-    if (alt) name = "Alt-" + name;
-    if (ctrl) name = "Ctrl-" + name;
-    if (cmd) name = "Cmd-" + name;
-    if (shift) name = "Shift-" + name;
-    return name;
-  }
-
-  // This is a kludge to keep keymaps mostly working as raw objects
-  // (backwards compatibility) while at the same time support features
-  // like normalization and multi-stroke key bindings. It compiles a
-  // new normalized keymap, and then updates the old object to reflect
-  // this.
-  CodeMirror.normalizeKeyMap = function(keymap) {
-    var copy = {};
-    for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) {
-      var value = keymap[keyname];
-      if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue;
-      if (value == "...") { delete keymap[keyname]; continue; }
-
-      var keys = map(keyname.split(" "), normalizeKeyName);
-      for (var i = 0; i < keys.length; i++) {
-        var val, name;
-        if (i == keys.length - 1) {
-          name = keys.join(" ");
-          val = value;
-        } else {
-          name = keys.slice(0, i + 1).join(" ");
-          val = "...";
-        }
-        var prev = copy[name];
-        if (!prev) copy[name] = val;
-        else if (prev != val) throw new Error("Inconsistent bindings for " + name);
-      }
-      delete keymap[keyname];
-    }
-    for (var prop in copy) keymap[prop] = copy[prop];
-    return keymap;
-  };
-
-  var lookupKey = CodeMirror.lookupKey = function(key, map, handle, context) {
-    map = getKeyMap(map);
-    var found = map.call ? map.call(key, context) : map[key];
-    if (found === false) return "nothing";
-    if (found === "...") return "multi";
-    if (found != null && handle(found)) return "handled";
-
-    if (map.fallthrough) {
-      if (Object.prototype.toString.call(map.fallthrough) != "[object Array]")
-        return lookupKey(key, map.fallthrough, handle, context);
-      for (var i = 0; i < map.fallthrough.length; i++) {
-        var result = lookupKey(key, map.fallthrough[i], handle, context);
-        if (result) return result;
-      }
-    }
-  };
-
-  // Modifier key presses don't count as 'real' key presses for the
-  // purpose of keymap fallthrough.
-  var isModifierKey = CodeMirror.isModifierKey = function(value) {
-    var name = typeof value == "string" ? value : keyNames[value.keyCode];
-    return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod";
-  };
-
-  // Look up the name of a key as indicated by an event object.
-  var keyName = CodeMirror.keyName = function(event, noShift) {
-    if (presto && event.keyCode == 34 && event["char"]) return false;
-    var base = keyNames[event.keyCode], name = base;
-    if (name == null || event.altGraphKey) return false;
-    if (event.altKey && base != "Alt") name = "Alt-" + name;
-    if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") name = "Ctrl-" + name;
-    if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") name = "Cmd-" + name;
-    if (!noShift && event.shiftKey && base != "Shift") name = "Shift-" + name;
-    return name;
-  };
-
-  function getKeyMap(val) {
-    return typeof val == "string" ? keyMap[val] : val;
-  }
-
-  // FROMTEXTAREA
-
-  CodeMirror.fromTextArea = function(textarea, options) {
-    options = options ? copyObj(options) : {};
-    options.value = textarea.value;
-    if (!options.tabindex && textarea.tabIndex)
-      options.tabindex = textarea.tabIndex;
-    if (!options.placeholder && textarea.placeholder)
-      options.placeholder = textarea.placeholder;
-    // Set autofocus to true if this textarea is focused, or if it has
-    // autofocus and no other element is focused.
-    if (options.autofocus == null) {
-      var hasFocus = activeElt();
-      options.autofocus = hasFocus == textarea ||
-        textarea.getAttribute("autofocus") != null && hasFocus == document.body;
-    }
-
-    function save() {textarea.value = cm.getValue();}
-    if (textarea.form) {
-      on(textarea.form, "submit", save);
-      // Deplorable hack to make the submit method do the right thing.
-      if (!options.leaveSubmitMethodAlone) {
-        var form = textarea.form, realSubmit = form.submit;
-        try {
-          var wrappedSubmit = form.submit = function() {
-            save();
-            form.submit = realSubmit;
-            form.submit();
-            form.submit = wrappedSubmit;
-          };
-        } catch(e) {}
-      }
-    }
-
-    options.finishInit = function(cm) {
-      cm.save = save;
-      cm.getTextArea = function() { return textarea; };
-      cm.toTextArea = function() {
-        cm.toTextArea = isNaN; // Prevent this from being ran twice
-        save();
-        textarea.parentNode.removeChild(cm.getWrapperElement());
-        textarea.style.display = "";
-        if (textarea.form) {
-          off(textarea.form, "submit", save);
-          if (typeof textarea.form.submit == "function")
-            textarea.form.submit = realSubmit;
-        }
-      };
-    };
-
-    textarea.style.display = "none";
-    var cm = CodeMirror(function(node) {
-      textarea.parentNode.insertBefore(node, textarea.nextSibling);
-    }, options);
-    return cm;
-  };
-
-  // STRING STREAM
-
-  // Fed to the mode parsers, provides helper functions to make
-  // parsers more succinct.
-
-  var StringStream = CodeMirror.StringStream = function(string, tabSize) {
-    this.pos = this.start = 0;
-    this.string = string;
-    this.tabSize = tabSize || 8;
-    this.lastColumnPos = this.lastColumnValue = 0;
-    this.lineStart = 0;
-  };
-
-  StringStream.prototype = {
-    eol: function() {return this.pos >= this.string.length;},
-    sol: function() {return this.pos == this.lineStart;},
-    peek: function() {return this.string.charAt(this.pos) || undefined;},
-    next: function() {
-      if (this.pos < this.string.length)
-        return this.string.charAt(this.pos++);
-    },
-    eat: function(match) {
-      var ch = this.string.charAt(this.pos);
-      if (typeof match == "string") var ok = ch == match;
-      else var ok = ch && (match.test ? match.test(ch) : match(ch));
-      if (ok) {++this.pos; return ch;}
-    },
-    eatWhile: function(match) {
-      var start = this.pos;
-      while (this.eat(match)){}
-      return this.pos > start;
-    },
-    eatSpace: function() {
-      var start = this.pos;
-      while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
-      return this.pos > start;
-    },
-    skipToEnd: function() {this.pos = this.string.length;},
-    skipTo: function(ch) {
-      var found = this.string.indexOf(ch, this.pos);
-      if (found > -1) {this.pos = found; return true;}
-    },
-    backUp: function(n) {this.pos -= n;},
-    column: function() {
-      if (this.lastColumnPos < this.start) {
-        this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
-        this.lastColumnPos = this.start;
-      }
-      return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
-    },
-    indentation: function() {
-      return countColumn(this.string, null, this.tabSize) -
-        (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
-    },
-    match: function(pattern, consume, caseInsensitive) {
-      if (typeof pattern == "string") {
-        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
-        var substr = this.string.substr(this.pos, pattern.length);
-        if (cased(substr) == cased(pattern)) {
-          if (consume !== false) this.pos += pattern.length;
-          return true;
-        }
-      } else {
-        var match = this.string.slice(this.pos).match(pattern);
-        if (match && match.index > 0) return null;
-        if (match && consume !== false) this.pos += match[0].length;
-        return match;
-      }
-    },
-    current: function(){return this.string.slice(this.start, this.pos);},
-    hideFirstChars: function(n, inner) {
-      this.lineStart += n;
-      try { return inner(); }
-      finally { this.lineStart -= n; }
-    }
-  };
-
-  // TEXTMARKERS
-
-  // Created with markText and setBookmark methods. A TextMarker is a
-  // handle that can be used to clear or find a marked position in the
-  // document. Line objects hold arrays (markedSpans) containing
-  // {from, to, marker} object pointing to such marker objects, and
-  // indicating that such a marker is present on that line. Multiple
-  // lines may point to the same marker when it spans across lines.
-  // The spans will have null for their from/to properties when the
-  // marker continues beyond the start/end of the line. Markers have
-  // links back to the lines they currently touch.
-
-  var nextMarkerId = 0;
-
-  var TextMarker = CodeMirror.TextMarker = function(doc, type) {
-    this.lines = [];
-    this.type = type;
-    this.doc = doc;
-    this.id = ++nextMarkerId;
-  };
-  eventMixin(TextMarker);
-
-  // Clear the marker.
-  TextMarker.prototype.clear = function() {
-    if (this.explicitlyCleared) return;
-    var cm = this.doc.cm, withOp = cm && !cm.curOp;
-    if (withOp) startOperation(cm);
-    if (hasHandler(this, "clear")) {
-      var found = this.find();
-      if (found) signalLater(this, "clear", found.from, found.to);
-    }
-    var min = null, max = null;
-    for (var i = 0; i < this.lines.length; ++i) {
-      var line = this.lines[i];
-      var span = getMarkedSpanFor(line.markedSpans, this);
-      if (cm && !this.collapsed) regLineChange(cm, lineNo(line), "text");
-      else if (cm) {
-        if (span.to != null) max = lineNo(line);
-        if (span.from != null) min = lineNo(line);
-      }
-      line.markedSpans = removeMarkedSpan(line.markedSpans, span);
-      if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)
-        updateLineHeight(line, textHeight(cm.display));
-    }
-    if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {
-      var visual = visualLine(this.lines[i]), len = lineLength(visual);
-      if (len > cm.display.maxLineLength) {
-        cm.display.maxLine = visual;
-        cm.display.maxLineLength = len;
-        cm.display.maxLineChanged = true;
-      }
-    }
-
-    if (min != null && cm && this.collapsed) regChange(cm, min, max + 1);
-    this.lines.length = 0;
-    this.explicitlyCleared = true;
-    if (this.atomic && this.doc.cantEdit) {
-      this.doc.cantEdit = false;
-      if (cm) reCheckSelection(cm.doc);
-    }
-    if (cm) signalLater(cm, "markerCleared", cm, this);
-    if (withOp) endOperation(cm);
-    if (this.parent) this.parent.clear();
-  };
-
-  // Find the position of the marker in the document. Returns a {from,
-  // to} object by default. Side can be passed to get a specific side
-  // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the
-  // Pos objects returned contain a line object, rather than a line
-  // number (used to prevent looking up the same line twice).
-  TextMarker.prototype.find = function(side, lineObj) {
-    if (side == null && this.type == "bookmark") side = 1;
-    var from, to;
-    for (var i = 0; i < this.lines.length; ++i) {
-      var line = this.lines[i];
-      var span = getMarkedSpanFor(line.markedSpans, this);
-      if (span.from != null) {
-        from = Pos(lineObj ? line : lineNo(line), span.from);
-        if (side == -1) return from;
-      }
-      if (span.to != null) {
-        to = Pos(lineObj ? line : lineNo(line), span.to);
-        if (side == 1) return to;
-      }
-    }
-    return from && {from: from, to: to};
-  };
-
-  // Signals that the marker's widget changed, and surrounding layout
-  // should be recomputed.
-  TextMarker.prototype.changed = function() {
-    var pos = this.find(-1, true), widget = this, cm = this.doc.cm;
-    if (!pos || !cm) return;
-    runInOp(cm, function() {
-      var line = pos.line, lineN = lineNo(pos.line);
-      var view = findViewForLine(cm, lineN);
-      if (view) {
-        clearLineMeasurementCacheFor(view);
-        cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;
-      }
-      cm.curOp.updateMaxLine = true;
-      if (!lineIsHidden(widget.doc, line) && widget.height != null) {
-        var oldHeight = widget.height;
-        widget.height = null;
-        var dHeight = widgetHeight(widget) - oldHeight;
-        if (dHeight)
-          updateLineHeight(line, line.height + dHeight);
-      }
-    });
-  };
-
-  TextMarker.prototype.attachLine = function(line) {
-    if (!this.lines.length && this.doc.cm) {
-      var op = this.doc.cm.curOp;
-      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)
-        (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);
-    }
-    this.lines.push(line);
-  };
-  TextMarker.prototype.detachLine = function(line) {
-    this.lines.splice(indexOf(this.lines, line), 1);
-    if (!this.lines.length && this.doc.cm) {
-      var op = this.doc.cm.curOp;
-      (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);
-    }
-  };
-
-  // Collapsed markers have unique ids, in order to be able to order
-  // them, which is needed for uniquely determining an outer marker
-  // when they overlap (they may nest, but not partially overlap).
-  var nextMarkerId = 0;
-
-  // Create a marker, wire it up to the right lines, and
-  function markText(doc, from, to, options, type) {
-    // Shared markers (across linked documents) are handled separately
-    // (markTextShared will call out to this again, once per
-    // document).
-    if (options && options.shared) return markTextShared(doc, from, to, options, type);
-    // Ensure we are in an operation.
-    if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);
-
-    var marker = new TextMarker(doc, type), diff = cmp(from, to);
-    if (options) copyObj(options, marker, false);
-    // Don't connect empty markers unless clearWhenEmpty is false
-    if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)
-      return marker;
-    if (marker.replacedWith) {
-      // Showing up as a widget implies collapsed (widget replaces text)
-      marker.collapsed = true;
-      marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget");
-      if (!options.handleMouseEvents) marker.widgetNode.setAttribute("cm-ignore-events", "true");
-      if (options.insertLeft) marker.widgetNode.insertLeft = true;
-    }
-    if (marker.collapsed) {
-      if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||
-          from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))
-        throw new Error("Inserting collapsed marker partially overlapping an existing one");
-      sawCollapsedSpans = true;
-    }
-
-    if (marker.addToHistory)
-      addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN);
-
-    var curLine = from.line, cm = doc.cm, updateMaxLine;
-    doc.iter(curLine, to.line + 1, function(line) {
-      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)
-        updateMaxLine = true;
-      if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0);
-      addMarkedSpan(line, new MarkedSpan(marker,
-                                         curLine == from.line ? from.ch : null,
-                                         curLine == to.line ? to.ch : null));
-      ++curLine;
-    });
-    // lineIsHidden depends on the presence of the spans, so needs a second pass
-    if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {
-      if (lineIsHidden(doc, line)) updateLineHeight(line, 0);
-    });
-
-    if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); });
-
-    if (marker.readOnly) {
-      sawReadOnlySpans = true;
-      if (doc.history.done.length || doc.history.undone.length)
-        doc.clearHistory();
-    }
-    if (marker.collapsed) {
-      marker.id = ++nextMarkerId;
-      marker.atomic = true;
-    }
-    if (cm) {
-      // Sync editor state
-      if (updateMaxLine) cm.curOp.updateMaxLine = true;
-      if (marker.collapsed)
-        regChange(cm, from.line, to.line + 1);
-      else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)
-        for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, "text");
-      if (marker.atomic) reCheckSelection(cm.doc);
-      signalLater(cm, "markerAdded", cm, marker);
-    }
-    return marker;
-  }
-
-  // SHARED TEXTMARKERS
-
-  // A shared marker spans multiple linked documents. It is
-  // implemented as a meta-marker-object controlling multiple normal
-  // markers.
-  var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) {
-    this.markers = markers;
-    this.primary = primary;
-    for (var i = 0; i < markers.length; ++i)
-      markers[i].parent = this;
-  };
-  eventMixin(SharedTextMarker);
-
-  SharedTextMarker.prototype.clear = function() {
-    if (this.explicitlyCleared) return;
-    this.explicitlyCleared = true;
-    for (var i = 0; i < this.markers.length; ++i)
-      this.markers[i].clear();
-    signalLater(this, "clear");
-  };
-  SharedTextMarker.prototype.find = function(side, lineObj) {
-    return this.primary.find(side, lineObj);
-  };
-
-  function markTextShared(doc, from, to, options, type) {
-    options = copyObj(options);
-    options.shared = false;
-    var markers = [markText(doc, from, to, options, type)], primary = markers[0];
-    var widget = options.widgetNode;
-    linkedDocs(doc, function(doc) {
-      if (widget) options.widgetNode = widget.cloneNode(true);
-      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));
-      for (var i = 0; i < doc.linked.length; ++i)
-        if (doc.linked[i].isParent) return;
-      primary = lst(markers);
-    });
-    return new SharedTextMarker(markers, primary);
-  }
-
-  function findSharedMarkers(doc) {
-    return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())),
-                         function(m) { return m.parent; });
-  }
-
-  function copySharedMarkers(doc, markers) {
-    for (var i = 0; i < markers.length; i++) {
-      var marker = markers[i], pos = marker.find();
-      var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);
-      if (cmp(mFrom, mTo)) {
-        var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);
-        marker.markers.push(subMark);
-        subMark.parent = marker;
-      }
-    }
-  }
-
-  function detachSharedMarkers(markers) {
-    for (var i = 0; i < markers.length; i++) {
-      var marker = markers[i], linked = [marker.primary.doc];;
-      linkedDocs(marker.primary.doc, function(d) { linked.push(d); });
-      for (var j = 0; j < marker.markers.length; j++) {
-        var subMarker = marker.markers[j];
-        if (indexOf(linked, subMarker.doc) == -1) {
-          subMarker.parent = null;
-          marker.markers.splice(j--, 1);
-        }
-      }
-    }
-  }
-
-  // TEXTMARKER SPANS
-
-  function MarkedSpan(marker, from, to) {
-    this.marker = marker;
-    this.from = from; this.to = to;
-  }
-
-  // Search an array of spans for a span matching the given marker.
-  function getMarkedSpanFor(spans, marker) {
-    if (spans) for (var i = 0; i < spans.length; ++i) {
-      var span = spans[i];
-      if (span.marker == marker) return span;
-    }
-  }
-  // Remove a span from an array, returning undefined if no spans are
-  // left (we don't store arrays for lines without spans).
-  function removeMarkedSpan(spans, span) {
-    for (var r, i = 0; i < spans.length; ++i)
-      if (spans[i] != span) (r || (r = [])).push(spans[i]);
-    return r;
-  }
-  // Add a span to a line.
-  function addMarkedSpan(line, span) {
-    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];
-    span.marker.attachLine(line);
-  }
-
-  // Used for the algorithm that adjusts markers for a change in the
-  // document. These functions cut an array of spans at a given
-  // character position, returning an array of remaining chunks (or
-  // undefined if nothing remains).
-  function markedSpansBefore(old, startCh, isInsert) {
-    if (old) for (var i = 0, nw; i < old.length; ++i) {
-      var span = old[i], marker = span.marker;
-      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
-      if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) {
-        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);
-        (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));
-      }
-    }
-    return nw;
-  }
-  function markedSpansAfter(old, endCh, isInsert) {
-    if (old) for (var i = 0, nw; i < old.length; ++i) {
-      var span = old[i], marker = span.marker;
-      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
-      if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) {
-        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);
-        (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,
-                                              span.to == null ? null : span.to - endCh));
-      }
-    }
-    return nw;
-  }
-
-  // Given a change object, compute the new set of marker spans that
-  // cover the line in which the change took place. Removes spans
-  // entirely within the change, reconnects spans belonging to the
-  // same marker that appear on both sides of the change, and cuts off
-  // spans partially within the change. Returns an array of span
-  // arrays with one element for each line in (after) the change.
-  function stretchSpansOverChange(doc, change) {
-    if (change.full) return null;
-    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
-    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
-    if (!oldFirst && !oldLast) return null;
-
-    var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;
-    // Get the spans that 'stick out' on both sides
-    var first = markedSpansBefore(oldFirst, startCh, isInsert);
-    var last = markedSpansAfter(oldLast, endCh, isInsert);
-
-    // Next, merge those two ends
-    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);
-    if (first) {
-      // Fix up .to properties of first
-      for (var i = 0; i < first.length; ++i) {
-        var span = first[i];
-        if (span.to == null) {
-          var found = getMarkedSpanFor(last, span.marker);
-          if (!found) span.to = startCh;
-          else if (sameLine) span.to = found.to == null ? null : found.to + offset;
-        }
-      }
-    }
-    if (last) {
-      // Fix up .from in last (or move them into first in case of sameLine)
-      for (var i = 0; i < last.length; ++i) {
-        var span = last[i];
-        if (span.to != null) span.to += offset;
-        if (span.from == null) {
-          var found = getMarkedSpanFor(first, span.marker);
-          if (!found) {
-            span.from = offset;
-            if (sameLine) (first || (first = [])).push(span);
-          }
-        } else {
-          span.from += offset;
-          if (sameLine) (first || (first = [])).push(span);
-        }
-      }
-    }
-    // Make sure we didn't create any zero-length spans
-    if (first) first = clearEmptySpans(first);
-    if (last && last != first) last = clearEmptySpans(last);
-
-    var newMarkers = [first];
-    if (!sameLine) {
-      // Fill gap with whole-line-spans
-      var gap = change.text.length - 2, gapMarkers;
-      if (gap > 0 && first)
-        for (var i = 0; i < first.length; ++i)
-          if (first[i].to == null)
-            (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null));
-      for (var i = 0; i < gap; ++i)
-        newMarkers.push(gapMarkers);
-      newMarkers.push(last);
-    }
-    return newMarkers;
-  }
-
-  // Remove spans that are empty and don't have a clearWhenEmpty
-  // option of false.
-  function clearEmptySpans(spans) {
-    for (var i = 0; i < spans.length; ++i) {
-      var span = spans[i];
-      if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)
-        spans.splice(i--, 1);
-    }
-    if (!spans.length) return null;
-    return spans;
-  }
-
-  // Used for un/re-doing changes from the history. Combines the
-  // result of computing the existing spans with the set of spans that
-  // existed in the history (so that deleting around a span and then
-  // undoing brings back the span).
-  function mergeOldSpans(doc, change) {
-    var old = getOldSpans(doc, change);
-    var stretched = stretchSpansOverChange(doc, change);
-    if (!old) return stretched;
-    if (!stretched) return old;
-
-    for (var i = 0; i < old.length; ++i) {
-      var oldCur = old[i], stretchCur = stretched[i];
-      if (oldCur && stretchCur) {
-        spans: for (var j = 0; j < stretchCur.length; ++j) {
-          var span = stretchCur[j];
-          for (var k = 0; k < oldCur.length; ++k)
-            if (oldCur[k].marker == span.marker) continue spans;
-          oldCur.push(span);
-        }
-      } else if (stretchCur) {
-        old[i] = stretchCur;
-      }
-    }
-    return old;
-  }
-
-  // Used to 'clip' out readOnly ranges when making a change.
-  function removeReadOnlyRanges(doc, from, to) {
-    var markers = null;
-    doc.iter(from.line, to.line + 1, function(line) {
-      if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
-        var mark = line.markedSpans[i].marker;
-        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))
-          (markers || (markers = [])).push(mark);
-      }
-    });
-    if (!markers) return null;
-    var parts = [{from: from, to: to}];
-    for (var i = 0; i < markers.length; ++i) {
-      var mk = markers[i], m = mk.find(0);
-      for (var j = 0; j < parts.length; ++j) {
-        var p = parts[j];
-        if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue;
-        var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);
-        if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)
-          newParts.push({from: p.from, to: m.from});
-        if (dto > 0 || !mk.inclusiveRight && !dto)
-          newParts.push({from: m.to, to: p.to});
-        parts.splice.apply(parts, newParts);
-        j += newParts.length - 1;
-      }
-    }
-    return parts;
-  }
-
-  // Connect or disconnect spans from a line.
-  function detachMarkedSpans(line) {
-    var spans = line.markedSpans;
-    if (!spans) return;
-    for (var i = 0; i < spans.length; ++i)
-      spans[i].marker.detachLine(line);
-    line.markedSpans = null;
-  }
-  function attachMarkedSpans(line, spans) {
-    if (!spans) return;
-    for (var i = 0; i < spans.length; ++i)
-      spans[i].marker.attachLine(line);
-    line.markedSpans = spans;
-  }
-
-  // Helpers used when computing which overlapping collapsed span
-  // counts as the larger one.
-  function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }
-  function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }
-
-  // Returns a number indicating which of two overlapping collapsed
-  // spans is larger (and thus includes the other). Falls back to
-  // comparing ids when the spans cover exactly the same range.
-  function compareCollapsedMarkers(a, b) {
-    var lenDiff = a.lines.length - b.lines.length;
-    if (lenDiff != 0) return lenDiff;
-    var aPos = a.find(), bPos = b.find();
-    var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);
-    if (fromCmp) return -fromCmp;
-    var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);
-    if (toCmp) return toCmp;
-    return b.id - a.id;
-  }
-
-  // Find out whether a line ends or starts in a collapsed span. If
-  // so, return the marker for that span.
-  function collapsedSpanAtSide(line, start) {
-    var sps = sawCollapsedSpans && line.markedSpans, found;
-    if (sps) for (var sp, i = 0; i < sps.length; ++i) {
-      sp = sps[i];
-      if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&
-          (!found || compareCollapsedMarkers(found, sp.marker) < 0))
-        found = sp.marker;
-    }
-    return found;
-  }
-  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); }
-  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); }
-
-  // Test whether there exists a collapsed span that partially
-  // overlaps (covers the start or end, but not both) of a new span.
-  // Such overlap is not allowed.
-  function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
-    var line = getLine(doc, lineNo);
-    var sps = sawCollapsedSpans && line.markedSpans;
-    if (sps) for (var i = 0; i < sps.length; ++i) {
-      var sp = sps[i];
-      if (!sp.marker.collapsed) continue;
-      var found = sp.marker.find(0);
-      var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
-      var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
-      if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;
-      if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||
-          fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))
-        return true;
-    }
-  }
-
-  // A visual line is a line as drawn on the screen. Folding, for
-  // example, can cause multiple logical lines to appear on the same
-  // visual line. This finds the start of the visual line that the
-  // given line is part of (usually that is the line itself).
-  function visualLine(line) {
-    var merged;
-    while (merged = collapsedSpanAtStart(line))
-      line = merged.find(-1, true).line;
-    return line;
-  }
-
-  // Returns an array of logical lines that continue the visual line
-  // started by the argument, or undefined if there are no such lines.
-  function visualLineContinued(line) {
-    var merged, lines;
-    while (merged = collapsedSpanAtEnd(line)) {
-      line = merged.find(1, true).line;
-      (lines || (lines = [])).push(line);
-    }
-    return lines;
-  }
-
-  // Get the line number of the start of the visual line that the
-  // given line number is part of.
-  function visualLineNo(doc, lineN) {
-    var line = getLine(doc, lineN), vis = visualLine(line);
-    if (line == vis) return lineN;
-    return lineNo(vis);
-  }
-  // Get the line number of the start of the next visual line after
-  // the given line.
-  function visualLineEndNo(doc, lineN) {
-    if (lineN > doc.lastLine()) return lineN;
-    var line = getLine(doc, lineN), merged;
-    if (!lineIsHidden(doc, line)) return lineN;
-    while (merged = collapsedSpanAtEnd(line))
-      line = merged.find(1, true).line;
-    return lineNo(line) + 1;
-  }
-
-  // Compute whether a line is hidden. Lines count as hidden when they
-  // are part of a visual line that starts with another line, or when
-  // they are entirely covered by collapsed, non-widget span.
-  function lineIsHidden(doc, line) {
-    var sps = sawCollapsedSpans && line.markedSpans;
-    if (sps) for (var sp, i = 0; i < sps.length; ++i) {
-      sp = sps[i];
-      if (!sp.marker.collapsed) continue;
-      if (sp.from == null) return true;
-      if (sp.marker.widgetNode) continue;
-      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))
-        return true;
-    }
-  }
-  function lineIsHiddenInner(doc, line, span) {
-    if (span.to == null) {
-      var end = span.marker.find(1, true);
-      return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker));
-    }
-    if (span.marker.inclusiveRight && span.to == line.text.length)
-      return true;
-    for (var sp, i = 0; i < line.markedSpans.length; ++i) {
-      sp = line.markedSpans[i];
-      if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&
-          (sp.to == null || sp.to != span.from) &&
-          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
-          lineIsHiddenInner(doc, line, sp)) return true;
-    }
-  }
-
-  // LINE WIDGETS
-
-  // Line widgets are block elements displayed above or below a line.
-
-  var LineWidget = CodeMirror.LineWidget = function(doc, node, options) {
-    if (options) for (var opt in options) if (options.hasOwnProperty(opt))
-      this[opt] = options[opt];
-    this.doc = doc;
-    this.node = node;
-  };
-  eventMixin(LineWidget);
-
-  function adjustScrollWhenAboveVisible(cm, line, diff) {
-    if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
-      addToScrollPos(cm, null, diff);
-  }
-
-  LineWidget.prototype.clear = function() {
-    var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);
-    if (no == null || !ws) return;
-    for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);
-    if (!ws.length) line.widgets = null;
-    var height = widgetHeight(this);
-    updateLineHeight(line, Math.max(0, line.height - height));
-    if (cm) runInOp(cm, function() {
-      adjustScrollWhenAboveVisible(cm, line, -height);
-      regLineChange(cm, no, "widget");
-    });
-  };
-  LineWidget.prototype.changed = function() {
-    var oldH = this.height, cm = this.doc.cm, line = this.line;
-    this.height = null;
-    var diff = widgetHeight(this) - oldH;
-    if (!diff) return;
-    updateLineHeight(line, line.height + diff);
-    if (cm) runInOp(cm, function() {
-      cm.curOp.forceUpdate = true;
-      adjustScrollWhenAboveVisible(cm, line, diff);
-    });
-  };
-
-  function widgetHeight(widget) {
-    if (widget.height != null) return widget.height;
-    var cm = widget.doc.cm;
-    if (!cm) return 0;
-    if (!contains(document.body, widget.node)) {
-      var parentStyle = "position: relative;";
-      if (widget.coverGutter)
-        parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;";
-      if (widget.noHScroll)
-        parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;";
-      removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle));
-    }
-    return widget.height = widget.node.parentNode.offsetHeight;
-  }
-
-  function addLineWidget(doc, handle, node, options) {
-    var widget = new LineWidget(doc, node, options);
-    var cm = doc.cm;
-    if (cm && widget.noHScroll) cm.display.alignWidgets = true;
-    changeLine(doc, handle, "widget", function(line) {
-      var widgets = line.widgets || (line.widgets = []);
-      if (widget.insertAt == null) widgets.push(widget);
-      else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);
-      widget.line = line;
-      if (cm && !lineIsHidden(doc, line)) {
-        var aboveVisible = heightAtLine(line) < doc.scrollTop;
-        updateLineHeight(line, line.height + widgetHeight(widget));
-        if (aboveVisible) addToScrollPos(cm, null, widget.height);
-        cm.curOp.forceUpdate = true;
-      }
-      return true;
-    });
-    return widget;
-  }
-
-  // LINE DATA STRUCTURE
-
-  // Line objects. These hold state related to a line, including
-  // highlighting info (the styles array).
-  var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {
-    this.text = text;
-    attachMarkedSpans(this, markedSpans);
-    this.height = estimateHeight ? estimateHeight(this) : 1;
-  };
-  eventMixin(Line);
-  Line.prototype.lineNo = function() { return lineNo(this); };
-
-  // Change the content (text, markers) of a line. Automatically
-  // invalidates cached information and tries to re-estimate the
-  // line's height.
-  function updateLine(line, text, markedSpans, estimateHeight) {
-    line.text = text;
-    if (line.stateAfter) line.stateAfter = null;
-    if (line.styles) line.styles = null;
-    if (line.order != null) line.order = null;
-    detachMarkedSpans(line);
-    attachMarkedSpans(line, markedSpans);
-    var estHeight = estimateHeight ? estimateHeight(line) : 1;
-    if (estHeight != line.height) updateLineHeight(line, estHeight);
-  }
-
-  // Detach a line from the document tree and its markers.
-  function cleanUpLine(line) {
-    line.parent = null;
-    detachMarkedSpans(line);
-  }
-
-  function extractLineClasses(type, output) {
-    if (type) for (;;) {
-      var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/);
-      if (!lineClass) break;
-      type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);
-      var prop = lineClass[1] ? "bgClass" : "textClass";
-      if (output[prop] == null)
-        output[prop] = lineClass[2];
-      else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop]))
-        output[prop] += " " + lineClass[2];
-    }
-    return type;
-  }
-
-  function callBlankLine(mode, state) {
-    if (mode.blankLine) return mode.blankLine(state);
-    if (!mode.innerMode) return;
-    var inner = CodeMirror.innerMode(mode, state);
-    if (inner.mode.blankLine) return inner.mode.blankLine(inner.state);
-  }
-
-  function readToken(mode, stream, state, inner) {
-    for (var i = 0; i < 10; i++) {
-      if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode;
-      var style = mode.token(stream, state);
-      if (stream.pos > stream.start) return style;
-    }
-    throw new Error("Mode " + mode.name + " failed to advance stream.");
-  }
-
-  // Utility for getTokenAt and getLineTokens
-  function takeToken(cm, pos, precise, asArray) {
-    function getObj(copy) {
-      return {start: stream.start, end: stream.pos,
-              string: stream.current(),
-              type: style || null,
-              state: copy ? copyState(doc.mode, state) : state};
-    }
-
-    var doc = cm.doc, mode = doc.mode, style;
-    pos = clipPos(doc, pos);
-    var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise);
-    var stream = new StringStream(line.text, cm.options.tabSize), tokens;
-    if (asArray) tokens = [];
-    while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
-      stream.start = stream.pos;
-      style = readToken(mode, stream, state);
-      if (asArray) tokens.push(getObj(true));
-    }
-    return asArray ? tokens : getObj();
-  }
-
-  // Run the given mode's parser over a line, calling f for each token.
-  function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
-    var flattenSpans = mode.flattenSpans;
-    if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;
-    var curStart = 0, curStyle = null;
-    var stream = new StringStream(text, cm.options.tabSize), style;
-    var inner = cm.options.addModeClass && [null];
-    if (text == "") extractLineClasses(callBlankLine(mode, state), lineClasses);
-    while (!stream.eol()) {
-      if (stream.pos > cm.options.maxHighlightLength) {
-        flattenSpans = false;
-        if (forceToEnd) processLine(cm, text, state, stream.pos);
-        stream.pos = text.length;
-        style = null;
-      } else {
-        style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);
-      }
-      if (inner) {
-        var mName = inner[0].name;
-        if (mName) style = "m-" + (style ? mName + " " + style : mName);
-      }
-      if (!flattenSpans || curStyle != style) {
-        while (curStart < stream.start) {
-          curStart = Math.min(stream.start, curStart + 50000);
-          f(curStart, curStyle);
-        }
-        curStyle = style;
-      }
-      stream.start = stream.pos;
-    }
-    while (curStart < stream.pos) {
-      // Webkit seems to refuse to render text nodes longer than 57444 characters
-      var pos = Math.min(stream.pos, curStart + 50000);
-      f(pos, curStyle);
-      curStart = pos;
-    }
-  }
-
-  // Compute a style array (an array starting with a mode generation
-  // -- for invalidation -- followed by pairs of end positions and
-  // style strings), which is used to highlight the tokens on the
-  // line.
-  function highlightLine(cm, line, state, forceToEnd) {
-    // A styles array always starts with a number identifying the
-    // mode/overlays that it is based on (for easy invalidation).
-    var st = [cm.state.modeGen], lineClasses = {};
-    // Compute the base array of styles
-    runMode(cm, line.text, cm.doc.mode, state, function(end, style) {
-      st.push(end, style);
-    }, lineClasses, forceToEnd);
-
-    // Run overlays, adjust style array.
-    for (var o = 0; o < cm.state.overlays.length; ++o) {
-      var overlay = cm.state.overlays[o], i = 1, at = 0;
-      runMode(cm, line.text, overlay.mode, true, function(end, style) {
-        var start = i;
-        // Ensure there's a token end at the current position, and that i points at it
-        while (at < end) {
-          var i_end = st[i];
-          if (i_end > end)
-            st.splice(i, 1, end, st[i+1], i_end);
-          i += 2;
-          at = Math.min(end, i_end);
-        }
-        if (!style) return;
-        if (overlay.opaque) {
-          st.splice(start, i - start, end, "cm-overlay " + style);
-          i = start + 2;
-        } else {
-          for (; start < i; start += 2) {
-            var cur = st[start+1];
-            st[start+1] = (cur ? cur + " " : "") + "cm-overlay " + style;
-          }
-        }
-      }, lineClasses);
-    }
-
-    return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null};
-  }
-
-  function getLineStyles(cm, line, updateFrontier) {
-    if (!line.styles || line.styles[0] != cm.state.modeGen) {
-      var state = getStateBefore(cm, lineNo(line));
-      var result = highlightLine(cm, line, line.text.length > cm.options.maxHighlightLength ? copyState(cm.doc.mode, state) : state);
-      line.stateAfter = state;
-      line.styles = result.styles;
-      if (result.classes) line.styleClasses = result.classes;
-      else if (line.styleClasses) line.styleClasses = null;
-      if (updateFrontier === cm.doc.frontier) cm.doc.frontier++;
-    }
-    return line.styles;
-  }
-
-  // Lightweight form of highlight -- proceed over this line and
-  // update state, but don't save a style array. Used for lines that
-  // aren't currently visible.
-  function processLine(cm, text, state, startAt) {
-    var mode = cm.doc.mode;
-    var stream = new StringStream(text, cm.options.tabSize);
-    stream.start = stream.pos = startAt || 0;
-    if (text == "") callBlankLine(mode, state);
-    while (!stream.eol()) {
-      readToken(mode, stream, state);
-      stream.start = stream.pos;
-    }
-  }
-
-  // Convert a style as returned by a mode (either null, or a string
-  // containing one or more styles) to a CSS style. This is cached,
-  // and also looks for line-wide styles.
-  var styleToClassCache = {}, styleToClassCacheWithMode = {};
-  function interpretTokenStyle(style, options) {
-    if (!style || /^\s*$/.test(style)) return null;
-    var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;
-    return cache[style] ||
-      (cache[style] = style.replace(/\S+/g, "cm-$&"));
-  }
-
-  // Render the DOM representation of the text of a line. Also builds
-  // up a 'line map', which points at the DOM nodes that represent
-  // specific stretches of text, and is used by the measuring code.
-  // The returned object contains the DOM node, this map, and
-  // information about line-wide styles that were set by the mode.
-  function buildLineContent(cm, lineView) {
-    // The padding-right forces the element to have a 'border', which
-    // is needed on Webkit to be able to get line-level bounding
-    // rectangles for it (in measureChar).
-    var content = elt("span", null, null, webkit ? "padding-right: .1px" : null);
-    var builder = {pre: elt("pre", [content], "CodeMirror-line"), content: content,
-                   col: 0, pos: 0, cm: cm,
-                   trailingSpace: false,
-                   splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")};
-    lineView.measure = {};
-
-    // Iterate over the logical lines that make up this visual line.
-    for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {
-      var line = i ? lineView.rest[i - 1] : lineView.line, order;
-      builder.pos = 0;
-      builder.addToken = buildToken;
-      // Optionally wire in some hacks into the token-rendering
-      // algorithm, to deal with browser quirks.
-      if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line)))
-        builder.addToken = buildTokenBadBidi(builder.addToken, order);
-      builder.map = [];
-      var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);
-      insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));
-      if (line.styleClasses) {
-        if (line.styleClasses.bgClass)
-          builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || "");
-        if (line.styleClasses.textClass)
-          builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || "");
-      }
-
-      // Ensure at least a single node is present, for measuring.
-      if (builder.map.length == 0)
-        builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure)));
-
-      // Store the map and a cache object for the current logical line
-      if (i == 0) {
-        lineView.measure.map = builder.map;
-        lineView.measure.cache = {};
-      } else {
-        (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map);
-        (lineView.measure.caches || (lineView.measure.caches = [])).push({});
-      }
-    }
-
-    // See issue #2901
-    if (webkit) {
-      var last = builder.content.lastChild
-      if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab")))
-        builder.content.className = "cm-tab-wrap-hack";
-    }
-
-    signal(cm, "renderLine", cm, lineView.line, builder.pre);
-    if (builder.pre.className)
-      builder.textClass = joinClasses(builder.pre.className, builder.textClass || "");
-
-    return builder;
-  }
-
-  function defaultSpecialCharPlaceholder(ch) {
-    var token = elt("span", "\u2022", "cm-invalidchar");
-    token.title = "\\u" + ch.charCodeAt(0).toString(16);
-    token.setAttribute("aria-label", token.title);
-    return token;
-  }
-
-  // Build up the DOM representation for a single token, and add it to
-  // the line map. Takes care to render special characters separately.
-  function buildToken(builder, text, style, startStyle, endStyle, title, css) {
-    if (!text) return;
-    var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text
-    var special = builder.cm.state.specialChars, mustWrap = false;
-    if (!special.test(text)) {
-      builder.col += text.length;
-      var content = document.createTextNode(displayText);
-      builder.map.push(builder.pos, builder.pos + text.length, content);
-      if (ie && ie_version < 9) mustWrap = true;
-      builder.pos += text.length;
-    } else {
-      var content = document.createDocumentFragment(), pos = 0;
-      while (true) {
-        special.lastIndex = pos;
-        var m = special.exec(text);
-        var skipped = m ? m.index - pos : text.length - pos;
-        if (skipped) {
-          var txt = document.createTextNode(displayText.slice(pos, pos + skipped));
-          if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
-          else content.appendChild(txt);
-          builder.map.push(builder.pos, builder.pos + skipped, txt);
-          builder.col += skipped;
-          builder.pos += skipped;
-        }
-        if (!m) break;
-        pos += skipped + 1;
-        if (m[0] == "\t") {
-          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;
-          var txt = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"));
-          txt.setAttribute("role", "presentation");
-          txt.setAttribute("cm-text", "\t");
-          builder.col += tabWidth;
-        } else if (m[0] == "\r" || m[0] == "\n") {
-          var txt = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar"));
-          txt.setAttribute("cm-text", m[0]);
-          builder.col += 1;
-        } else {
-          var txt = builder.cm.options.specialCharPlaceholder(m[0]);
-          txt.setAttribute("cm-text", m[0]);
-          if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
-          else content.appendChild(txt);
-          builder.col += 1;
-        }
-        builder.map.push(builder.pos, builder.pos + 1, txt);
-        builder.pos++;
-      }
-    }
-    builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32
-    if (style || startStyle || endStyle || mustWrap || css) {
-      var fullStyle = style || "";
-      if (startStyle) fullStyle += startStyle;
-      if (endStyle) fullStyle += endStyle;
-      var token = elt("span", [content], fullStyle, css);
-      if (title) token.title = title;
-      return builder.content.appendChild(token);
-    }
-    builder.content.appendChild(content);
-  }
-
-  function splitSpaces(text, trailingBefore) {
-    if (text.length > 1 && !/  /.test(text)) return text
-    var spaceBefore = trailingBefore, result = ""
-    for (var i = 0; i < text.length; i++) {
-      var ch = text.charAt(i)
-      if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))
-        ch = "\u00a0"
-      result += ch
-      spaceBefore = ch == " "
-    }
-    return result
-  }
-
-  // Work around nonsense dimensions being reported for stretches of
-  // right-to-left text.
-  function buildTokenBadBidi(inner, order) {
-    return function(builder, text, style, startStyle, endStyle, title, css) {
-      style = style ? style + " cm-force-border" : "cm-force-border";
-      var start = builder.pos, end = start + text.length;
-      for (;;) {
-        // Find the part that overlaps with the start of this text
-        for (var i = 0; i < order.length; i++) {
-          var part = order[i];
-          if (part.to > start && part.from <= start) break;
-        }
-        if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title, css);
-        inner(builder, text.slice(0, part.to - start), style, startStyle, null, title, css);
-        startStyle = null;
-        text = text.slice(part.to - start);
-        start = part.to;
-      }
-    };
-  }
-
-  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
-    var widget = !ignoreWidget && marker.widgetNode;
-    if (widget) builder.map.push(builder.pos, builder.pos + size, widget);
-    if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {
-      if (!widget)
-        widget = builder.content.appendChild(document.createElement("span"));
-      widget.setAttribute("cm-marker", marker.id);
-    }
-    if (widget) {
-      builder.cm.display.input.setUneditable(widget);
-      builder.content.appendChild(widget);
-    }
-    builder.pos += size;
-    builder.trailingSpace = false
-  }
-
-  // Outputs a number of spans to make up a line, taking highlighting
-  // and marked text into account.
-  function insertLineContent(line, builder, styles) {
-    var spans = line.markedSpans, allText = line.text, at = 0;
-    if (!spans) {
-      for (var i = 1; i < styles.length; i+=2)
-        builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options));
-      return;
-    }
-
-    var len = allText.length, pos = 0, i = 1, text = "", style, css;
-    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;
-    for (;;) {
-      if (nextChange == pos) { // Update current marker set
-        spanStyle = spanEndStyle = spanStartStyle = title = css = "";
-        collapsed = null; nextChange = Infinity;
-        var foundBookmarks = [], endStyles
-        for (var j = 0; j < spans.length; ++j) {
-          var sp = spans[j], m = sp.marker;
-          if (m.type == "bookmark" && sp.from == pos && m.widgetNode) {
-            foundBookmarks.push(m);
-          } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {
-            if (sp.to != null && sp.to != pos && nextChange > sp.to) {
-              nextChange = sp.to;
-              spanEndStyle = "";
-            }
-            if (m.className) spanStyle += " " + m.className;
-            if (m.css) css = (css ? css + ";" : "") + m.css;
-            if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle;
-            if (m.endStyle && sp.to == nextChange) (endStyles || (endStyles = [])).push(m.endStyle, sp.to)
-            if (m.title && !title) title = m.title;
-            if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))
-              collapsed = sp;
-          } else if (sp.from > pos && nextChange > sp.from) {
-            nextChange = sp.from;
-          }
-        }
-        if (endStyles) for (var j = 0; j < endStyles.length; j += 2)
-          if (endStyles[j + 1] == nextChange) spanEndStyle += " " + endStyles[j]
-
-        if (!collapsed || collapsed.from == pos) for (var j = 0; j < foundBookmarks.length; ++j)
-          buildCollapsedSpan(builder, 0, foundBookmarks[j]);
-        if (collapsed && (collapsed.from || 0) == pos) {
-          buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,
-                             collapsed.marker, collapsed.from == null);
-          if (collapsed.to == null) return;
-          if (collapsed.to == pos) collapsed = false;
-        }
-      }
-      if (pos >= len) break;
-
-      var upto = Math.min(len, nextChange);
-      while (true) {
-        if (text) {
-          var end = pos + text.length;
-          if (!collapsed) {
-            var tokenText = end > upto ? text.slice(0, upto - pos) : text;
-            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,
-                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title, css);
-          }
-          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
-          pos = end;
-          spanStartStyle = "";
-        }
-        text = allText.slice(at, at = styles[i++]);
-        style = interpretTokenStyle(styles[i++], builder.cm.options);
-      }
-    }
-  }
-
-  // DOCUMENT DATA STRUCTURE
-
-  // By default, updates that start and end at the beginning of a line
-  // are treated specially, in order to make the association of line
-  // widgets and marker elements with the text behave more intuitive.
-  function isWholeLineUpdate(doc, change) {
-    return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" &&
-      (!doc.cm || doc.cm.options.wholeLineUpdateBefore);
-  }
-
-  // Perform a change on the document data structure.
-  function updateDoc(doc, change, markedSpans, estimateHeight) {
-    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}
-    function update(line, text, spans) {
-      updateLine(line, text, spans, estimateHeight);
-      signalLater(line, "change", line, change);
-    }
-    function linesFor(start, end) {
-      for (var i = start, result = []; i < end; ++i)
-        result.push(new Line(text[i], spansFor(i), estimateHeight));
-      return result;
-    }
-
-    var from = change.from, to = change.to, text = change.text;
-    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);
-    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;
-
-    // Adjust the line structure
-    if (change.full) {
-      doc.insert(0, linesFor(0, text.length));
-      doc.remove(text.length, doc.size - text.length);
-    } else if (isWholeLineUpdate(doc, change)) {
-      // This is a whole-line replace. Treated specially to make
-      // sure line objects move the way they are supposed to.
-      var added = linesFor(0, text.length - 1);
-      update(lastLine, lastLine.text, lastSpans);
-      if (nlines) doc.remove(from.line, nlines);
-      if (added.length) doc.insert(from.line, added);
-    } else if (firstLine == lastLine) {
-      if (text.length == 1) {
-        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);
-      } else {
-        var added = linesFor(1, text.length - 1);
-        added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));
-        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
-        doc.insert(from.line + 1, added);
-      }
-    } else if (text.length == 1) {
-      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));
-      doc.remove(from.line + 1, nlines);
-    } else {
-      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
-      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);
-      var added = linesFor(1, text.length - 1);
-      if (nlines > 1) doc.remove(from.line + 1, nlines - 1);
-      doc.insert(from.line + 1, added);
-    }
-
-    signalLater(doc, "change", doc, change);
-  }
-
-  // The document is represented as a BTree consisting of leaves, with
-  // chunk of lines in them, and branches, with up to ten leaves or
-  // other branch nodes below them. The top node is always a branch
-  // node, and is the document object itself (meaning it has
-  // additional methods and properties).
-  //
-  // All nodes have parent links. The tree is used both to go from
-  // line numbers to line objects, and to go from objects to numbers.
-  // It also indexes by height, and is used to convert between height
-  // and line object, and to find the total height of the document.
-  //
-  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
-
-  function LeafChunk(lines) {
-    this.lines = lines;
-    this.parent = null;
-    for (var i = 0, height = 0; i < lines.length; ++i) {
-      lines[i].parent = this;
-      height += lines[i].height;
-    }
-    this.height = height;
-  }
-
-  LeafChunk.prototype = {
-    chunkSize: function() { return this.lines.length; },
-    // Remove the n lines at offset 'at'.
-    removeInner: function(at, n) {
-      for (var i = at, e = at + n; i < e; ++i) {
-        var line = this.lines[i];
-        this.height -= line.height;
-        cleanUpLine(line);
-        signalLater(line, "delete");
-      }
-      this.lines.splice(at, n);
-    },
-    // Helper used to collapse a small branch into a single leaf.
-    collapse: function(lines) {
-      lines.push.apply(lines, this.lines);
-    },
-    // Insert the given array of lines at offset 'at', count them as
-    // having the given height.
-    insertInner: function(at, lines, height) {
-      this.height += height;
-      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
-      for (var i = 0; i < lines.length; ++i) lines[i].parent = this;
-    },
-    // Used to iterate over a part of the tree.
-    iterN: function(at, n, op) {
-      for (var e = at + n; at < e; ++at)
-        if (op(this.lines[at])) return true;
-    }
-  };
-
-  function BranchChunk(children) {
-    this.children = children;
-    var size = 0, height = 0;
-    for (var i = 0; i < children.length; ++i) {
-      var ch = children[i];
-      size += ch.chunkSize(); height += ch.height;
-      ch.parent = this;
-    }
-    this.size = size;
-    this.height = height;
-    this.parent = null;
-  }
-
-  BranchChunk.prototype = {
-    chunkSize: function() { return this.size; },
-    removeInner: function(at, n) {
-      this.size -= n;
-      for (var i = 0; i < this.children.length; ++i) {
-        var child = this.children[i], sz = child.chunkSize();
-        if (at < sz) {
-          var rm = Math.min(n, sz - at), oldHeight = child.height;
-          child.removeInner(at, rm);
-          this.height -= oldHeight - child.height;
-          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }
-          if ((n -= rm) == 0) break;
-          at = 0;
-        } else at -= sz;
-      }
-      // If the result is smaller than 25 lines, ensure that it is a
-      // single leaf node.
-      if (this.size - n < 25 &&
-          (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
-        var lines = [];
-        this.collapse(lines);
-        this.children = [new LeafChunk(lines)];
-        this.children[0].parent = this;
-      }
-    },
-    collapse: function(lines) {
-      for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines);
-    },
-    insertInner: function(at, lines, height) {
-      this.size += lines.length;
-      this.height += height;
-      for (var i = 0; i < this.children.length; ++i) {
-        var child = this.children[i], sz = child.chunkSize();
-        if (at <= sz) {
-          child.insertInner(at, lines, height);
-          if (child.lines && child.lines.length > 50) {
-            // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
-            // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
-            var remaining = child.lines.length % 25 + 25
-            for (var pos = remaining; pos < child.lines.length;) {
-              var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
-              child.height -= leaf.height;
-              this.children.splice(++i, 0, leaf);
-              leaf.parent = this;
-            }
-            child.lines = child.lines.slice(0, remaining);
-            this.maybeSpill();
-          }
-          break;
-        }
-        at -= sz;
-      }
-    },
-    // When a node has grown, check whether it should be split.
-    maybeSpill: function() {
-      if (this.children.length <= 10) return;
-      var me = this;
-      do {
-        var spilled = me.children.splice(me.children.length - 5, 5);
-        var sibling = new BranchChunk(spilled);
-        if (!me.parent) { // Become the parent node
-          var copy = new BranchChunk(me.children);
-          copy.parent = me;
-          me.children = [copy, sibling];
-          me = copy;
-       } else {
-          me.size -= sibling.size;
-          me.height -= sibling.height;
-          var myIndex = indexOf(me.parent.children, me);
-          me.parent.children.splice(myIndex + 1, 0, sibling);
-        }
-        sibling.parent = me.parent;
-      } while (me.children.length > 10);
-      me.parent.maybeSpill();
-    },
-    iterN: function(at, n, op) {
-      for (var i = 0; i < this.children.length; ++i) {
-        var child = this.children[i], sz = child.chunkSize();
-        if (at < sz) {
-          var used = Math.min(n, sz - at);
-          if (child.iterN(at, used, op)) return true;
-          if ((n -= used) == 0) break;
-          at = 0;
-        } else at -= sz;
-      }
-    }
-  };
-
-  var nextDocId = 0;
-  var Doc = CodeMirror.Doc = function(text, mode, firstLine, lineSep) {
-    if (!(this instanceof Doc)) return new Doc(text, mode, firstLine, lineSep);
-    if (firstLine == null) firstLine = 0;
-
-    BranchChunk.call(this, [new LeafChunk([new Line("", null)])]);
-    this.first = firstLine;
-    this.scrollTop = this.scrollLeft = 0;
-    this.cantEdit = false;
-    this.cleanGeneration = 1;
-    this.frontier = firstLine;
-    var start = Pos(firstLine, 0);
-    this.sel = simpleSelection(start);
-    this.history = new History(null);
-    this.id = ++nextDocId;
-    this.modeOption = mode;
-    this.lineSep = lineSep;
-    this.extend = false;
-
-    if (typeof text == "string") text = this.splitLines(text);
-    updateDoc(this, {from: start, to: start, text: text});
-    setSelection(this, simpleSelection(start), sel_dontScroll);
-  };
-
-  Doc.prototype = createObj(BranchChunk.prototype, {
-    constructor: Doc,
-    // Iterate over the document. Supports two forms -- with only one
-    // argument, it calls that for each line in the document. With
-    // three, it iterates over the range given by the first two (with
-    // the second being non-inclusive).
-    iter: function(from, to, op) {
-      if (op) this.iterN(from - this.first, to - from, op);
-      else this.iterN(this.first, this.first + this.size, from);
-    },
-
-    // Non-public interface for adding and removing lines.
-    insert: function(at, lines) {
-      var height = 0;
-      for (var i = 0; i < lines.length; ++i) height += lines[i].height;
-      this.insertInner(at - this.first, lines, height);
-    },
-    remove: function(at, n) { this.removeInner(at - this.first, n); },
-
-    // From here, the methods are part of the public interface. Most
-    // are also available from CodeMirror (editor) instances.
-
-    getValue: function(lineSep) {
-      var lines = getLines(this, this.first, this.first + this.size);
-      if (lineSep === false) return lines;
-      return lines.join(lineSep || this.lineSeparator());
-    },
-    setValue: docMethodOp(function(code) {
-      var top = Pos(this.first, 0), last = this.first + this.size - 1;
-      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
-                        text: this.splitLines(code), origin: "setValue", full: true}, true);
-      setSelection(this, simpleSelection(top));
-    }),
-    replaceRange: function(code, from, to, origin) {
-      from = clipPos(this, from);
-      to = to ? clipPos(this, to) : from;
-      replaceRange(this, code, from, to, origin);
-    },
-    getRange: function(from, to, lineSep) {
-      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));
-      if (lineSep === false) return lines;
-      return lines.join(lineSep || this.lineSeparator());
-    },
-
-    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},
-
-    getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},
-    getLineNumber: function(line) {return lineNo(line);},
-
-    getLineHandleVisualStart: function(line) {
-      if (typeof line == "number") line = getLine(this, line);
-      return visualLine(line);
-    },
-
-    lineCount: function() {return this.size;},
-    firstLine: function() {return this.first;},
-    lastLine: function() {return this.first + this.size - 1;},
-
-    clipPos: function(pos) {return clipPos(this, pos);},
-
-    getCursor: function(start) {
-      var range = this.sel.primary(), pos;
-      if (start == null || start == "head") pos = range.head;
-      else if (start == "anchor") pos = range.anchor;
-      else if (start == "end" || start == "to" || start === false) pos = range.to();
-      else pos = range.from();
-      return pos;
-    },
-    listSelections: function() { return this.sel.ranges; },
-    somethingSelected: function() {return this.sel.somethingSelected();},
-
-    setCursor: docMethodOp(function(line, ch, options) {
-      setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options);
-    }),
-    setSelection: docMethodOp(function(anchor, head, options) {
-      setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);
-    }),
-    extendSelection: docMethodOp(function(head, other, options) {
-      extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);
-    }),
-    extendSelections: docMethodOp(function(heads, options) {
-      extendSelections(this, clipPosArray(this, heads), options);
-    }),
-    extendSelectionsBy: docMethodOp(function(f, options) {
-      var heads = map(this.sel.ranges, f);
-      extendSelections(this, clipPosArray(this, heads), options);
-    }),
-    setSelections: docMethodOp(function(ranges, primary, options) {
-      if (!ranges.length) return;
-      for (var i = 0, out = []; i < ranges.length; i++)
-        out[i] = new Range(clipPos(this, ranges[i].anchor),
-                           clipPos(this, ranges[i].head));
-      if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex);
-      setSelection(this, normalizeSelection(out, primary), options);
-    }),
-    addSelection: docMethodOp(function(anchor, head, options) {
-      var ranges = this.sel.ranges.slice(0);
-      ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));
-      setSelection(this, normalizeSelection(ranges, ranges.length - 1), options);
-    }),
-
-    getSelection: function(lineSep) {
-      var ranges = this.sel.ranges, lines;
-      for (var i = 0; i < ranges.length; i++) {
-        var sel = getBetween(this, ranges[i].from(), ranges[i].to());
-        lines = lines ? lines.concat(sel) : sel;
-      }
-      if (lineSep === false) return lines;
-      else return lines.join(lineSep || this.lineSeparator());
-    },
-    getSelections: function(lineSep) {
-      var parts = [], ranges = this.sel.ranges;
-      for (var i = 0; i < ranges.length; i++) {
-        var sel = getBetween(this, ranges[i].from(), ranges[i].to());
-        if (lineSep !== false) sel = sel.join(lineSep || this.lineSeparator());
-        parts[i] = sel;
-      }
-      return parts;
-    },
-    replaceSelection: function(code, collapse, origin) {
-      var dup = [];
-      for (var i = 0; i < this.sel.ranges.length; i++)
-        dup[i] = code;
-      this.replaceSelections(dup, collapse, origin || "+input");
-    },
-    replaceSelections: docMethodOp(function(code, collapse, origin) {
-      var changes = [], sel = this.sel;
-      for (var i = 0; i < sel.ranges.length; i++) {
-        var range = sel.ranges[i];
-        changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};
-      }
-      var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse);
-      for (var i = changes.length - 1; i >= 0; i--)
-        makeChange(this, changes[i]);
-      if (newSel) setSelectionReplaceHistory(this, newSel);
-      else if (this.cm) ensureCursorVisible(this.cm);
-    }),
-    undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}),
-    redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}),
-    undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}),
-    redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}),
-
-    setExtending: function(val) {this.extend = val;},
-    getExtending: function() {return this.extend;},
-
-    historySize: function() {
-      var hist = this.history, done = 0, undone = 0;
-      for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done;
-      for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone;
-      return {undo: done, redo: undone};
-    },
-    clearHistory: function() {this.history = new History(this.history.maxGeneration);},
-
-    markClean: function() {
-      this.cleanGeneration = this.changeGeneration(true);
-    },
-    changeGeneration: function(forceSplit) {
-      if (forceSplit)
-        this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null;
-      return this.history.generation;
-    },
-    isClean: function (gen) {
-      return this.history.generation == (gen || this.cleanGeneration);
-    },
-
-    getHistory: function() {
-      return {done: copyHistoryArray(this.history.done),
-              undone: copyHistoryArray(this.history.undone)};
-    },
-    setHistory: function(histData) {
-      var hist = this.history = new History(this.history.maxGeneration);
-      hist.done = copyHistoryArray(histData.done.slice(0), null, true);
-      hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
-    },
-
-    addLineClass: docMethodOp(function(handle, where, cls) {
-      return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
-        var prop = where == "text" ? "textClass"
-                 : where == "background" ? "bgClass"
-                 : where == "gutter" ? "gutterClass" : "wrapClass";
-        if (!line[prop]) line[prop] = cls;
-        else if (classTest(cls).test(line[prop])) return false;
-        else line[prop] += " " + cls;
-        return true;
-      });
-    }),
-    removeLineClass: docMethodOp(function(handle, where, cls) {
-      return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
-        var prop = where == "text" ? "textClass"
-                 : where == "background" ? "bgClass"
-                 : where == "gutter" ? "gutterClass" : "wrapClass";
-        var cur = line[prop];
-        if (!cur) return false;
-        else if (cls == null) line[prop] = null;
-        else {
-          var found = cur.match(classTest(cls));
-          if (!found) return false;
-          var end = found.index + found[0].length;
-          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null;
-        }
-        return true;
-      });
-    }),
-
-    addLineWidget: docMethodOp(function(handle, node, options) {
-      return addLineWidget(this, handle, node, options);
-    }),
-    removeLineWidget: function(widget) { widget.clear(); },
-
-    markText: function(from, to, options) {
-      return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range");
-    },
-    setBookmark: function(pos, options) {
-      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
-                      insertLeft: options && options.insertLeft,
-                      clearWhenEmpty: false, shared: options && options.shared,
-                      handleMouseEvents: options && options.handleMouseEvents};
-      pos = clipPos(this, pos);
-      return markText(this, pos, pos, realOpts, "bookmark");
-    },
-    findMarksAt: function(pos) {
-      pos = clipPos(this, pos);
-      var markers = [], spans = getLine(this, pos.line).markedSpans;
-      if (spans) for (var i = 0; i < spans.length; ++i) {
-        var span = spans[i];
-        if ((span.from == null || span.from <= pos.ch) &&
-            (span.to == null || span.to >= pos.ch))
-          markers.push(span.marker.parent || span.marker);
-      }
-      return markers;
-    },
-    findMarks: function(from, to, filter) {
-      from = clipPos(this, from); to = clipPos(this, to);
-      var found = [], lineNo = from.line;
-      this.iter(from.line, to.line + 1, function(line) {
-        var spans = line.markedSpans;
-        if (spans) for (var i = 0; i < spans.length; i++) {
-          var span = spans[i];
-          if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||
-                span.from == null && lineNo != from.line ||
-                span.from != null && lineNo == to.line && span.from >= to.ch) &&
-              (!filter || filter(span.marker)))
-            found.push(span.marker.parent || span.marker);
-        }
-        ++lineNo;
-      });
-      return found;
-    },
-    getAllMarks: function() {
-      var markers = [];
-      this.iter(function(line) {
-        var sps = line.markedSpans;
-        if (sps) for (var i = 0; i < sps.length; ++i)
-          if (sps[i].from != null) markers.push(sps[i].marker);
-      });
-      return markers;
-    },
-
-    posFromIndex: function(off) {
-      var ch, lineNo = this.first, sepSize = this.lineSeparator().length;
-      this.iter(function(line) {
-        var sz = line.text.length + sepSize;
-        if (sz > off) { ch = off; return true; }
-        off -= sz;
-        ++lineNo;
-      });
-      return clipPos(this, Pos(lineNo, ch));
-    },
-    indexFromPos: function (coords) {
-      coords = clipPos(this, coords);
-      var index = coords.ch;
-      if (coords.line < this.first || coords.ch < 0) return 0;
-      var sepSize = this.lineSeparator().length;
-      this.iter(this.first, coords.line, function (line) {
-        index += line.text.length + sepSize;
-      });
-      return index;
-    },
-
-    copy: function(copyHistory) {
-      var doc = new Doc(getLines(this, this.first, this.first + this.size),
-                        this.modeOption, this.first, this.lineSep);
-      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;
-      doc.sel = this.sel;
-      doc.extend = false;
-      if (copyHistory) {
-        doc.history.undoDepth = this.history.undoDepth;
-        doc.setHistory(this.getHistory());
-      }
-      return doc;
-    },
-
-    linkedDoc: function(options) {
-      if (!options) options = {};
-      var from = this.first, to = this.first + this.size;
-      if (options.from != null && options.from > from) from = options.from;
-      if (options.to != null && options.to < to) to = options.to;
-      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep);
-      if (options.sharedHist) copy.history = this.history;
-      (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});
-      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];
-      copySharedMarkers(copy, findSharedMarkers(this));
-      return copy;
-    },
-    unlinkDoc: function(other) {
-      if (other instanceof CodeMirror) other = other.doc;
-      if (this.linked) for (var i = 0; i < this.linked.length; ++i) {
-        var link = this.linked[i];
-        if (link.doc != other) continue;
-        this.linked.splice(i, 1);
-        other.unlinkDoc(this);
-        detachSharedMarkers(findSharedMarkers(this));
-        break;
-      }
-      // If the histories were shared, split them again
-      if (other.history == this.history) {
-        var splitIds = [other.id];
-        linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);
-        other.history = new History(null);
-        other.history.done = copyHistoryArray(this.history.done, splitIds);
-        other.history.undone = copyHistoryArray(this.history.undone, splitIds);
-      }
-    },
-    iterLinkedDocs: function(f) {linkedDocs(this, f);},
-
-    getMode: function() {return this.mode;},
-    getEditor: function() {return this.cm;},
-
-    splitLines: function(str) {
-      if (this.lineSep) return str.split(this.lineSep);
-      return splitLinesAuto(str);
-    },
-    lineSeparator: function() { return this.lineSep || "\n"; }
-  });
-
-  // Public alias.
-  Doc.prototype.eachLine = Doc.prototype.iter;
-
-  // Set up methods on CodeMirror's prototype to redirect to the editor's document.
-  var dontDelegate = "iter insert remove copy getEditor constructor".split(" ");
-  for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
-    CodeMirror.prototype[prop] = (function(method) {
-      return function() {return method.apply(this.doc, arguments);};
-    })(Doc.prototype[prop]);
-
-  eventMixin(Doc);
-
-  // Call f for all linked documents.
-  function linkedDocs(doc, f, sharedHistOnly) {
-    function propagate(doc, skip, sharedHist) {
-      if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {
-        var rel = doc.linked[i];
-        if (rel.doc == skip) continue;
-        var shared = sharedHist && rel.sharedHist;
-        if (sharedHistOnly && !shared) continue;
-        f(rel.doc, shared);
-        propagate(rel.doc, doc, shared);
-      }
-    }
-    propagate(doc, null, true);
-  }
-
-  // Attach a document to an editor.
-  function attachDoc(cm, doc) {
-    if (doc.cm) throw new Error("This document is already in use.");
-    cm.doc = doc;
-    doc.cm = cm;
-    estimateLineHeights(cm);
-    loadMode(cm);
-    if (!cm.options.lineWrapping) findMaxLine(cm);
-    cm.options.mode = doc.modeOption;
-    regChange(cm);
-  }
-
-  // LINE UTILITIES
-
-  // Find the line object corresponding to the given line number.
-  function getLine(doc, n) {
-    n -= doc.first;
-    if (n < 0 || n >= doc.size) throw new Error("There is no line " + (n + doc.first) + " in the document.");
-    for (var chunk = doc; !chunk.lines;) {
-      for (var i = 0;; ++i) {
-        var child = chunk.children[i], sz = child.chunkSize();
-        if (n < sz) { chunk = child; break; }
-        n -= sz;
-      }
-    }
-    return chunk.lines[n];
-  }
-
-  // Get the part of a document between two positions, as an array of
-  // strings.
-  function getBetween(doc, start, end) {
-    var out = [], n = start.line;
-    doc.iter(start.line, end.line + 1, function(line) {
-      var text = line.text;
-      if (n == end.line) text = text.slice(0, end.ch);
-      if (n == start.line) text = text.slice(start.ch);
-      out.push(text);
-      ++n;
-    });
-    return out;
-  }
-  // Get the lines between from and to, as array of strings.
-  function getLines(doc, from, to) {
-    var out = [];
-    doc.iter(from, to, function(line) { out.push(line.text); });
-    return out;
-  }
-
-  // Update the height of a line, propagating the height change
-  // upwards to parent nodes.
-  function updateLineHeight(line, height) {
-    var diff = height - line.height;
-    if (diff) for (var n = line; n; n = n.parent) n.height += diff;
-  }
-
-  // Given a line object, find its line number by walking up through
-  // its parent links.
-  function lineNo(line) {
-    if (line.parent == null) return null;
-    var cur = line.parent, no = indexOf(cur.lines, line);
-    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
-      for (var i = 0;; ++i) {
-        if (chunk.children[i] == cur) break;
-        no += chunk.children[i].chunkSize();
-      }
-    }
-    return no + cur.first;
-  }
-
-  // Find the line at the given vertical position, using the height
-  // information in the document tree.
-  function lineAtHeight(chunk, h) {
-    var n = chunk.first;
-    outer: do {
-      for (var i = 0; i < chunk.children.length; ++i) {
-        var child = chunk.children[i], ch = child.height;
-        if (h < ch) { chunk = child; continue outer; }
-        h -= ch;
-        n += child.chunkSize();
-      }
-      return n;
-    } while (!chunk.lines);
-    for (var i = 0; i < chunk.lines.length; ++i) {
-      var line = chunk.lines[i], lh = line.height;
-      if (h < lh) break;
-      h -= lh;
-    }
-    return n + i;
-  }
-
-
-  // Find the height above the given line.
-  function heightAtLine(lineObj) {
-    lineObj = visualLine(lineObj);
-
-    var h = 0, chunk = lineObj.parent;
-    for (var i = 0; i < chunk.lines.length; ++i) {
-      var line = chunk.lines[i];
-      if (line == lineObj) break;
-      else h += line.height;
-    }
-    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {
-      for (var i = 0; i < p.children.length; ++i) {
-        var cur = p.children[i];
-        if (cur == chunk) break;
-        else h += cur.height;
-      }
-    }
-    return h;
-  }
-
-  // Get the bidi ordering for the given line (and cache it). Returns
-  // false for lines that are fully left-to-right, and an array of
-  // BidiSpan objects otherwise.
-  function getOrder(line) {
-    var order = line.order;
-    if (order == null) order = line.order = bidiOrdering(line.text);
-    return order;
-  }
-
-  // HISTORY
-
-  function History(startGen) {
-    // Arrays of change events and selections. Doing something adds an
-    // event to done and clears undo. Undoing moves events from done
-    // to undone, redoing moves them in the other direction.
-    this.done = []; this.undone = [];
-    this.undoDepth = Infinity;
-    // Used to track when changes can be merged into a single undo
-    // event
-    this.lastModTime = this.lastSelTime = 0;
-    this.lastOp = this.lastSelOp = null;
-    this.lastOrigin = this.lastSelOrigin = null;
-    // Used by the isClean() method
-    this.generation = this.maxGeneration = startGen || 1;
-  }
-
-  // Create a history change event from an updateDoc-style change
-  // object.
-  function historyChangeFromChange(doc, change) {
-    var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};
-    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);
-    linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);
-    return histChange;
-  }
-
-  // Pop all selection events off the end of a history array. Stop at
-  // a change event.
-  function clearSelectionEvents(array) {
-    while (array.length) {
-      var last = lst(array);
-      if (last.ranges) array.pop();
-      else break;
-    }
-  }
-
-  // Find the top change event in the history. Pop off selection
-  // events that are in the way.
-  function lastChangeEvent(hist, force) {
-    if (force) {
-      clearSelectionEvents(hist.done);
-      return lst(hist.done);
-    } else if (hist.done.length && !lst(hist.done).ranges) {
-      return lst(hist.done);
-    } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {
-      hist.done.pop();
-      return lst(hist.done);
-    }
-  }
-
-  // Register a change in the history. Merges changes that are within
-  // a single operation, or are close together with an origin that
-  // allows merging (starting with "+") into a single event.
-  function addChangeToHistory(doc, change, selAfter, opId) {
-    var hist = doc.history;
-    hist.undone.length = 0;
-    var time = +new Date, cur;
-
-    if ((hist.lastOp == opId ||
-         hist.lastOrigin == change.origin && change.origin &&
-         ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||
-          change.origin.charAt(0) == "*")) &&
-        (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
-      // Merge this change into the last event
-      var last = lst(cur.changes);
-      if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {
-        // Optimized case for simple insertion -- don't want to add
-        // new changesets for every character typed
-        last.to = changeEnd(change);
-      } else {
-        // Add new sub-event
-        cur.changes.push(historyChangeFromChange(doc, change));
-      }
-    } else {
-      // Can not be merged, start a new event.
-      var before = lst(hist.done);
-      if (!before || !before.ranges)
-        pushSelectionToHistory(doc.sel, hist.done);
-      cur = {changes: [historyChangeFromChange(doc, change)],
-             generation: hist.generation};
-      hist.done.push(cur);
-      while (hist.done.length > hist.undoDepth) {
-        hist.done.shift();
-        if (!hist.done[0].ranges) hist.done.shift();
-      }
-    }
-    hist.done.push(selAfter);
-    hist.generation = ++hist.maxGeneration;
-    hist.lastModTime = hist.lastSelTime = time;
-    hist.lastOp = hist.lastSelOp = opId;
-    hist.lastOrigin = hist.lastSelOrigin = change.origin;
-
-    if (!last) signal(doc, "historyAdded");
-  }
-
-  function selectionEventCanBeMerged(doc, origin, prev, sel) {
-    var ch = origin.charAt(0);
-    return ch == "*" ||
-      ch == "+" &&
-      prev.ranges.length == sel.ranges.length &&
-      prev.somethingSelected() == sel.somethingSelected() &&
-      new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500);
-  }
-
-  // Called whenever the selection changes, sets the new selection as
-  // the pending selection in the history, and pushes the old pending
-  // selection into the 'done' array when it was significantly
-  // different (in number of selected ranges, emptiness, or time).
-  function addSelectionToHistory(doc, sel, opId, options) {
-    var hist = doc.history, origin = options && options.origin;
-
-    // A new event is started when the previous origin does not match
-    // the current, or the origins don't allow matching. Origins
-    // starting with * are always merged, those starting with + are
-    // merged when similar and close together in time.
-    if (opId == hist.lastSelOp ||
-        (origin && hist.lastSelOrigin == origin &&
-         (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||
-          selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))
-      hist.done[hist.done.length - 1] = sel;
-    else
-      pushSelectionToHistory(sel, hist.done);
-
-    hist.lastSelTime = +new Date;
-    hist.lastSelOrigin = origin;
-    hist.lastSelOp = opId;
-    if (options && options.clearRedo !== false)
-      clearSelectionEvents(hist.undone);
-  }
-
-  function pushSelectionToHistory(sel, dest) {
-    var top = lst(dest);
-    if (!(top && top.ranges && top.equals(sel)))
-      dest.push(sel);
-  }
-
-  // Used to store marked span information in the history.
-  function attachLocalSpans(doc, change, from, to) {
-    var existing = change["spans_" + doc.id], n = 0;
-    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {
-      if (line.markedSpans)
-        (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans;
-      ++n;
-    });
-  }
-
-  // When un/re-doing restores text containing marked spans, those
-  // that have been explicitly cleared should not be restored.
-  function removeClearedSpans(spans) {
-    if (!spans) return null;
-    for (var i = 0, out; i < spans.length; ++i) {
-      if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }
-      else if (out) out.push(spans[i]);
-    }
-    return !out ? spans : out.length ? out : null;
-  }
-
-  // Retrieve and filter the old marked spans stored in a change event.
-  function getOldSpans(doc, change) {
-    var found = change["spans_" + doc.id];
-    if (!found) return null;
-    for (var i = 0, nw = []; i < change.text.length; ++i)
-      nw.push(removeClearedSpans(found[i]));
-    return nw;
-  }
-
-  // Used both to provide a JSON-safe object in .getHistory, and, when
-  // detaching a document, to split the history in two
-  function copyHistoryArray(events, newGroup, instantiateSel) {
-    for (var i = 0, copy = []; i < events.length; ++i) {
-      var event = events[i];
-      if (event.ranges) {
-        copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);
-        continue;
-      }
-      var changes = event.changes, newChanges = [];
-      copy.push({changes: newChanges});
-      for (var j = 0; j < changes.length; ++j) {
-        var change = changes[j], m;
-        newChanges.push({from: change.from, to: change.to, text: change.text});
-        if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) {
-          if (indexOf(newGroup, Number(m[1])) > -1) {
-            lst(newChanges)[prop] = change[prop];
-            delete change[prop];
-          }
-        }
-      }
-    }
-    return copy;
-  }
-
-  // Rebasing/resetting history to deal with externally-sourced changes
-
-  function rebaseHistSelSingle(pos, from, to, diff) {
-    if (to < pos.line) {
-      pos.line += diff;
-    } else if (from < pos.line) {
-      pos.line = from;
-      pos.ch = 0;
-    }
-  }
-
-  // Tries to rebase an array of history events given a change in the
-  // document. If the change touches the same lines as the event, the
-  // event, and everything 'behind' it, is discarded. If the change is
-  // before the event, the event's positions are updated. Uses a
-  // copy-on-write scheme for the positions, to avoid having to
-  // reallocate them all on every rebase, but also avoid problems with
-  // shared position objects being unsafely updated.
-  function rebaseHistArray(array, from, to, diff) {
-    for (var i = 0; i < array.length; ++i) {
-      var sub = array[i], ok = true;
-      if (sub.ranges) {
-        if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }
-        for (var j = 0; j < sub.ranges.length; j++) {
-          rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);
-          rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);
-        }
-        continue;
-      }
-      for (var j = 0; j < sub.changes.length; ++j) {
-        var cur = sub.changes[j];
-        if (to < cur.from.line) {
-          cur.from = Pos(cur.from.line + diff, cur.from.ch);
-          cur.to = Pos(cur.to.line + diff, cur.to.ch);
-        } else if (from <= cur.to.line) {
-          ok = false;
-          break;
-        }
-      }
-      if (!ok) {
-        array.splice(0, i + 1);
-        i = 0;
-      }
-    }
-  }
-
-  function rebaseHist(hist, change) {
-    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;
-    rebaseHistArray(hist.done, from, to, diff);
-    rebaseHistArray(hist.undone, from, to, diff);
-  }
-
-  // EVENT UTILITIES
-
-  // Due to the fact that we still support jurassic IE versions, some
-  // compatibility wrappers are needed.
-
-  var e_preventDefault = CodeMirror.e_preventDefault = function(e) {
-    if (e.preventDefault) e.preventDefault();
-    else e.returnValue = false;
-  };
-  var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) {
-    if (e.stopPropagation) e.stopPropagation();
-    else e.cancelBubble = true;
-  };
-  function e_defaultPrevented(e) {
-    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;
-  }
-  var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);};
-
-  function e_target(e) {return e.target || e.srcElement;}
-  function e_button(e) {
-    var b = e.which;
-    if (b == null) {
-      if (e.button & 1) b = 1;
-      else if (e.button & 2) b = 3;
-      else if (e.button & 4) b = 2;
-    }
-    if (mac && e.ctrlKey && b == 1) b = 3;
-    return b;
-  }
-
-  // EVENT HANDLING
-
-  // Lightweight event framework. on/off also work on DOM nodes,
-  // registering native DOM handlers.
-
-  var on = CodeMirror.on = function(emitter, type, f) {
-    if (emitter.addEventListener)
-      emitter.addEventListener(type, f, false);
-    else if (emitter.attachEvent)
-      emitter.attachEvent("on" + type, f);
-    else {
-      var map = emitter._handlers || (emitter._handlers = {});
-      var arr = map[type] || (map[type] = []);
-      arr.push(f);
-    }
-  };
-
-  var noHandlers = []
-  function getHandlers(emitter, type, copy) {
-    var arr = emitter._handlers && emitter._handlers[type]
-    if (copy) return arr && arr.length > 0 ? arr.slice() : noHandlers
-    else return arr || noHandlers
-  }
-
-  var off = CodeMirror.off = function(emitter, type, f) {
-    if (emitter.removeEventListener)
-      emitter.removeEventListener(type, f, false);
-    else if (emitter.detachEvent)
-      emitter.detachEvent("on" + type, f);
-    else {
-      var handlers = getHandlers(emitter, type, false)
-      for (var i = 0; i < handlers.length; ++i)
-        if (handlers[i] == f) { handlers.splice(i, 1); break; }
-    }
-  };
-
-  var signal = CodeMirror.signal = function(emitter, type /*, values...*/) {
-    var handlers = getHandlers(emitter, type, true)
-    if (!handlers.length) return;
-    var args = Array.prototype.slice.call(arguments, 2);
-    for (var i = 0; i < handlers.length; ++i) handlers[i].apply(null, args);
-  };
-
-  var orphanDelayedCallbacks = null;
-
-  // Often, we want to signal events at a point where we are in the
-  // middle of some work, but don't want the handler to start calling
-  // other methods on the editor, which might be in an inconsistent
-  // state or simply not expect any other events to happen.
-  // signalLater looks whether there are any handlers, and schedules
-  // them to be executed when the last operation ends, or, if no
-  // operation is active, when a timeout fires.
-  function signalLater(emitter, type /*, values...*/) {
-    var arr = getHandlers(emitter, type, false)
-    if (!arr.length) return;
-    var args = Array.prototype.slice.call(arguments, 2), list;
-    if (operationGroup) {
-      list = operationGroup.delayedCallbacks;
-    } else if (orphanDelayedCallbacks) {
-      list = orphanDelayedCallbacks;
-    } else {
-      list = orphanDelayedCallbacks = [];
-      setTimeout(fireOrphanDelayed, 0);
-    }
-    function bnd(f) {return function(){f.apply(null, args);};};
-    for (var i = 0; i < arr.length; ++i)
-      list.push(bnd(arr[i]));
-  }
-
-  function fireOrphanDelayed() {
-    var delayed = orphanDelayedCallbacks;
-    orphanDelayedCallbacks = null;
-    for (var i = 0; i < delayed.length; ++i) delayed[i]();
-  }
-
-  // The DOM events that CodeMirror handles can be overridden by
-  // registering a (non-DOM) handler on the editor for the event name,
-  // and preventDefault-ing the event in that handler.
-  function signalDOMEvent(cm, e, override) {
-    if (typeof e == "string")
-      e = {type: e, preventDefault: function() { this.defaultPrevented = true; }};
-    signal(cm, override || e.type, cm, e);
-    return e_defaultPrevented(e) || e.codemirrorIgnore;
-  }
-
-  function signalCursorActivity(cm) {
-    var arr = cm._handlers && cm._handlers.cursorActivity;
-    if (!arr) return;
-    var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);
-    for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1)
-      set.push(arr[i]);
-  }
-
-  function hasHandler(emitter, type) {
-    return getHandlers(emitter, type).length > 0
-  }
-
-  // Add on and off methods to a constructor's prototype, to make
-  // registering events on such objects more convenient.
-  function eventMixin(ctor) {
-    ctor.prototype.on = function(type, f) {on(this, type, f);};
-    ctor.prototype.off = function(type, f) {off(this, type, f);};
-  }
-
-  // MISC UTILITIES
-
-  // Number of pixels added to scroller and sizer to hide scrollbar
-  var scrollerGap = 30;
-
-  // Returned or thrown by various protocols to signal 'I'm not
-  // handling this'.
-  var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}};
-
-  // Reused option objects for setSelection & friends
-  var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"};
-
-  function Delayed() {this.id = null;}
-  Delayed.prototype.set = function(ms, f) {
-    clearTimeout(this.id);
-    this.id = setTimeout(f, ms);
-  };
-
-  // Counts the column offset in a string, taking tabs into account.
-  // Used mostly to find indentation.
-  var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) {
-    if (end == null) {
-      end = string.search(/[^\s\u00a0]/);
-      if (end == -1) end = string.length;
-    }
-    for (var i = startIndex || 0, n = startValue || 0;;) {
-      var nextTab = string.indexOf("\t", i);
-      if (nextTab < 0 || nextTab >= end)
-        return n + (end - i);
-      n += nextTab - i;
-      n += tabSize - (n % tabSize);
-      i = nextTab + 1;
-    }
-  };
-
-  // The inverse of countColumn -- find the offset that corresponds to
-  // a particular column.
-  var findColumn = CodeMirror.findColumn = function(string, goal, tabSize) {
-    for (var pos = 0, col = 0;;) {
-      var nextTab = string.indexOf("\t", pos);
-      if (nextTab == -1) nextTab = string.length;
-      var skipped = nextTab - pos;
-      if (nextTab == string.length || col + skipped >= goal)
-        return pos + Math.min(skipped, goal - col);
-      col += nextTab - pos;
-      col += tabSize - (col % tabSize);
-      pos = nextTab + 1;
-      if (col >= goal) return pos;
-    }
-  }
-
-  var spaceStrs = [""];
-  function spaceStr(n) {
-    while (spaceStrs.length <= n)
-      spaceStrs.push(lst(spaceStrs) + " ");
-    return spaceStrs[n];
-  }
-
-  function lst(arr) { return arr[arr.length-1]; }
-
-  var selectInput = function(node) { node.select(); };
-  if (ios) // Mobile Safari apparently has a bug where select() is broken.
-    selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; };
-  else if (ie) // Suppress mysterious IE10 errors
-    selectInput = function(node) { try { node.select(); } catch(_e) {} };
-
-  function indexOf(array, elt) {
-    for (var i = 0; i < array.length; ++i)
-      if (array[i] == elt) return i;
-    return -1;
-  }
-  function map(array, f) {
-    var out = [];
-    for (var i = 0; i < array.length; i++) out[i] = f(array[i], i);
-    return out;
-  }
-
-  function insertSorted(array, value, score) {
-    var pos = 0, priority = score(value)
-    while (pos < array.length && score(array[pos]) <= priority) pos++
-    array.splice(pos, 0, value)
-  }
-
-  function nothing() {}
-
-  function createObj(base, props) {
-    var inst;
-    if (Object.create) {
-      inst = Object.create(base);
-    } else {
-      nothing.prototype = base;
-      inst = new nothing();
-    }
-    if (props) copyObj(props, inst);
-    return inst;
-  };
-
-  function copyObj(obj, target, overwrite) {
-    if (!target) target = {};
-    for (var prop in obj)
-      if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
-        target[prop] = obj[prop];
-    return target;
-  }
-
-  function bind(f) {
-    var args = Array.prototype.slice.call(arguments, 1);
-    return function(){return f.apply(null, args);};
-  }
-
-  var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
-  var isWordCharBasic = CodeMirror.isWordChar = function(ch) {
-    return /\w/.test(ch) || ch > "\x80" &&
-      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));
-  };
-  function isWordChar(ch, helper) {
-    if (!helper) return isWordCharBasic(ch);
-    if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) return true;
-    return helper.test(ch);
-  }
-
-  function isEmpty(obj) {
-    for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;
-    return true;
-  }
-
-  // Extending unicode characters. A series of a non-extending char +
-  // any number of extending chars is treated as a single unit as far
-  // as editing and measuring is concerned. This is not fully correct,
-  // since some scripts/fonts/browsers also treat other configurations
-  // of code points as a group.
-  var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;
-  function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); }
-
-  // DOM UTILITIES
-
-  function elt(tag, content, className, style) {
-    var e = document.createElement(tag);
-    if (className) e.className = className;
-    if (style) e.style.cssText = style;
-    if (typeof content == "string") e.appendChild(document.createTextNode(content));
-    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
-    return e;
-  }
-
-  var range;
-  if (document.createRange) range = function(node, start, end, endNode) {
-    var r = document.createRange();
-    r.setEnd(endNode || node, end);
-    r.setStart(node, start);
-    return r;
-  };
-  else range = function(node, start, end) {
-    var r = document.body.createTextRange();
-    try { r.moveToElementText(node.parentNode); }
-    catch(e) { return r; }
-    r.collapse(true);
-    r.moveEnd("character", end);
-    r.moveStart("character", start);
-    return r;
-  };
-
-  function removeChildren(e) {
-    for (var count = e.childNodes.length; count > 0; --count)
-      e.removeChild(e.firstChild);
-    return e;
-  }
-
-  function removeChildrenAndAdd(parent, e) {
-    return removeChildren(parent).appendChild(e);
-  }
-
-  var contains = CodeMirror.contains = function(parent, child) {
-    if (child.nodeType == 3) // Android browser always returns false when child is a textnode
-      child = child.parentNode;
-    if (parent.contains)
-      return parent.contains(child);
-    do {
-      if (child.nodeType == 11) child = child.host;
-      if (child == parent) return true;
-    } while (child = child.parentNode);
-  };
-
-  function activeElt() {
-    var activeElement = document.activeElement;
-    while (activeElement && activeElement.root && activeElement.root.activeElement)
-      activeElement = activeElement.root.activeElement;
-    return activeElement;
-  }
-  // Older versions of IE throws unspecified error when touching
-  // document.activeElement in some cases (during loading, in iframe)
-  if (ie && ie_version < 11) activeElt = function() {
-    try { return document.activeElement; }
-    catch(e) { return document.body; }
-  };
-
-  function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); }
-  var rmClass = CodeMirror.rmClass = function(node, cls) {
-    var current = node.className;
-    var match = classTest(cls).exec(current);
-    if (match) {
-      var after = current.slice(match.index + match[0].length);
-      node.className = current.slice(0, match.index) + (after ? match[1] + after : "");
-    }
-  };
-  var addClass = CodeMirror.addClass = function(node, cls) {
-    var current = node.className;
-    if (!classTest(cls).test(current)) node.className += (current ? " " : "") + cls;
-  };
-  function joinClasses(a, b) {
-    var as = a.split(" ");
-    for (var i = 0; i < as.length; i++)
-      if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i];
-    return b;
-  }
-
-  // WINDOW-WIDE EVENTS
-
-  // These must be handled carefully, because naively registering a
-  // handler for each editor will cause the editors to never be
-  // garbage collected.
-
-  function forEachCodeMirror(f) {
-    if (!document.body.getElementsByClassName) return;
-    var byClass = document.body.getElementsByClassName("CodeMirror");
-    for (var i = 0; i < byClass.length; i++) {
-      var cm = byClass[i].CodeMirror;
-      if (cm) f(cm);
-    }
-  }
-
-  var globalsRegistered = false;
-  function ensureGlobalHandlers() {
-    if (globalsRegistered) return;
-    registerGlobalHandlers();
-    globalsRegistered = true;
-  }
-  function registerGlobalHandlers() {
-    // When the window resizes, we need to refresh active editors.
-    var resizeTimer;
-    on(window, "resize", function() {
-      if (resizeTimer == null) resizeTimer = setTimeout(function() {
-        resizeTimer = null;
-        forEachCodeMirror(onResize);
-      }, 100);
-    });
-    // When the window loses focus, we want to show the editor as blurred
-    on(window, "blur", function() {
-      forEachCodeMirror(onBlur);
-    });
-  }
-
-  // FEATURE DETECTION
-
-  // Detect drag-and-drop
-  var dragAndDrop = function() {
-    // There is *some* kind of drag-and-drop support in IE6-8, but I
-    // couldn't get it to work yet.
-    if (ie && ie_version < 9) return false;
-    var div = elt('div');
-    return "draggable" in div || "dragDrop" in div;
-  }();
-
-  var zwspSupported;
-  function zeroWidthElement(measure) {
-    if (zwspSupported == null) {
-      var test = elt("span", "\u200b");
-      removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")]));
-      if (measure.firstChild.offsetHeight != 0)
-        zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8);
-    }
-    var node = zwspSupported ? elt("span", "\u200b") :
-      elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px");
-    node.setAttribute("cm-text", "");
-    return node;
-  }
-
-  // Feature-detect IE's crummy client rect reporting for bidi text
-  var badBidiRects;
-  function hasBadBidiRects(measure) {
-    if (badBidiRects != null) return badBidiRects;
-    var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
-    var r0 = range(txt, 0, 1).getBoundingClientRect();
-    var r1 = range(txt, 1, 2).getBoundingClientRect();
-    removeChildren(measure);
-    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
-    return badBidiRects = (r1.right - r0.right < 3);
-  }
-
-  // See if "".split is the broken IE version, if so, provide an
-  // alternative way to split lines.
-  var splitLinesAuto = CodeMirror.splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) {
-    var pos = 0, result = [], l = string.length;
-    while (pos <= l) {
-      var nl = string.indexOf("\n", pos);
-      if (nl == -1) nl = string.length;
-      var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl);
-      var rt = line.indexOf("\r");
-      if (rt != -1) {
-        result.push(line.slice(0, rt));
-        pos += rt + 1;
-      } else {
-        result.push(line);
-        pos = nl + 1;
-      }
-    }
-    return result;
-  } : function(string){return string.split(/\r\n?|\n/);};
-
-  var hasSelection = window.getSelection ? function(te) {
-    try { return te.selectionStart != te.selectionEnd; }
-    catch(e) { return false; }
-  } : function(te) {
-    try {var range = te.ownerDocument.selection.createRange();}
-    catch(e) {}
-    if (!range || range.parentElement() != te) return false;
-    return range.compareEndPoints("StartToEnd", range) != 0;
-  };
-
-  var hasCopyEvent = (function() {
-    var e = elt("div");
-    if ("oncopy" in e) return true;
-    e.setAttribute("oncopy", "return;");
-    return typeof e.oncopy == "function";
-  })();
-
-  var badZoomedRects = null;
-  function hasBadZoomedRects(measure) {
-    if (badZoomedRects != null) return badZoomedRects;
-    var node = removeChildrenAndAdd(measure, elt("span", "x"));
-    var normal = node.getBoundingClientRect();
-    var fromRange = range(node, 0, 1).getBoundingClientRect();
-    return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1;
-  }
-
-  // KEY NAMES
-
-  var keyNames = CodeMirror.keyNames = {
-    3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
-    19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
-    36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
-    46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
-    106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete",
-    173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
-    221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
-    63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
-  };
-  (function() {
-    // Number keys
-    for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i);
-    // Alphabetic keys
-    for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);
-    // Function keys
-    for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i;
-  })();
-
-  // BIDI HELPERS
-
-  function iterateBidiSections(order, from, to, f) {
-    if (!order) return f(from, to, "ltr");
-    var found = false;
-    for (var i = 0; i < order.length; ++i) {
-      var part = order[i];
-      if (part.from < to && part.to > from || from == to && part.to == from) {
-        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
-        found = true;
-      }
-    }
-    if (!found) f(from, to, "ltr");
-  }
-
-  function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }
-  function bidiRight(part) { return part.level % 2 ? part.from : part.to; }
-
-  function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }
-  function lineRight(line) {
-    var order = getOrder(line);
-    if (!order) return line.text.length;
-    return bidiRight(lst(order));
-  }
-
-  function lineStart(cm, lineN) {
-    var line = getLine(cm.doc, lineN);
-    var visual = visualLine(line);
-    if (visual != line) lineN = lineNo(visual);
-    var order = getOrder(visual);
-    var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);
-    return Pos(lineN, ch);
-  }
-  function lineEnd(cm, lineN) {
-    var merged, line = getLine(cm.doc, lineN);
-    while (merged = collapsedSpanAtEnd(line)) {
-      line = merged.find(1, true).line;
-      lineN = null;
-    }
-    var order = getOrder(line);
-    var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);
-    return Pos(lineN == null ? lineNo(line) : lineN, ch);
-  }
-  function lineStartSmart(cm, pos) {
-    var start = lineStart(cm, pos.line);
-    var line = getLine(cm.doc, start.line);
-    var order = getOrder(line);
-    if (!order || order[0].level == 0) {
-      var firstNonWS = Math.max(0, line.text.search(/\S/));
-      var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;
-      return Pos(start.line, inWS ? 0 : firstNonWS);
-    }
-    return start;
-  }
-
-  function compareBidiLevel(order, a, b) {
-    var linedir = order[0].level;
-    if (a == linedir) return true;
-    if (b == linedir) return false;
-    return a < b;
-  }
-  var bidiOther;
-  function getBidiPartAt(order, pos) {
-    bidiOther = null;
-    for (var i = 0, found; i < order.length; ++i) {
-      var cur = order[i];
-      if (cur.from < pos && cur.to > pos) return i;
-      if ((cur.from == pos || cur.to == pos)) {
-        if (found == null) {
-          found = i;
-        } else if (compareBidiLevel(order, cur.level, order[found].level)) {
-          if (cur.from != cur.to) bidiOther = found;
-          return i;
-        } else {
-          if (cur.from != cur.to) bidiOther = i;
-          return found;
-        }
-      }
-    }
-    return found;
-  }
-
-  function moveInLine(line, pos, dir, byUnit) {
-    if (!byUnit) return pos + dir;
-    do pos += dir;
-    while (pos > 0 && isExtendingChar(line.text.charAt(pos)));
-    return pos;
-  }
-
-  // This is needed in order to move 'visually' through bi-directional
-  // text -- i.e., pressing left should make the cursor go left, even
-  // when in RTL text. The tricky part is the 'jumps', where RTL and
-  // LTR text touch each other. This often requires the cursor offset
-  // to move more than one unit, in order to visually move one unit.
-  function moveVisually(line, start, dir, byUnit) {
-    var bidi = getOrder(line);
-    if (!bidi) return moveLogically(line, start, dir, byUnit);
-    var pos = getBidiPartAt(bidi, start), part = bidi[pos];
-    var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);
-
-    for (;;) {
-      if (target > part.from && target < part.to) return target;
-      if (target == part.from || target == part.to) {
-        if (getBidiPartAt(bidi, target) == pos) return target;
-        part = bidi[pos += dir];
-        return (dir > 0) == part.level % 2 ? part.to : part.from;
-      } else {
-        part = bidi[pos += dir];
-        if (!part) return null;
-        if ((dir > 0) == part.level % 2)
-          target = moveInLine(line, part.to, -1, byUnit);
-        else
-          target = moveInLine(line, part.from, 1, byUnit);
-      }
-    }
-  }
-
-  function moveLogically(line, start, dir, byUnit) {
-    var target = start + dir;
-    if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir;
-    return target < 0 || target > line.text.length ? null : target;
-  }
-
-  // Bidirectional ordering algorithm
-  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
-  // that this (partially) implements.
-
-  // One-char codes used for character types:
-  // L (L):   Left-to-Right
-  // R (R):   Right-to-Left
-  // r (AL):  Right-to-Left Arabic
-  // 1 (EN):  European Number
-  // + (ES):  European Number Separator
-  // % (ET):  European Number Terminator
-  // n (AN):  Arabic Number
-  // , (CS):  Common Number Separator
-  // m (NSM): Non-Spacing Mark
-  // b (BN):  Boundary Neutral
-  // s (B):   Paragraph Separator
-  // t (S):   Segment Separator
-  // w (WS):  Whitespace
-  // N (ON):  Other Neutrals
-
-  // Returns null if characters are ordered as they appear
-  // (left-to-right), or an array of sections ({from, to, level}
-  // objects) in the order in which they occur visually.
-  var bidiOrdering = (function() {
-    // Character types for codepoints 0 to 0xff
-    var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";
-    // Character types for codepoints 0x600 to 0x6ff
-    var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm";
-    function charType(code) {
-      if (code <= 0xf7) return lowTypes.charAt(code);
-      else if (0x590 <= code && code <= 0x5f4) return "R";
-      else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600);
-      else if (0x6ee <= code && code <= 0x8ac) return "r";
-      else if (0x2000 <= code && code <= 0x200b) return "w";
-      else if (code == 0x200c) return "b";
-      else return "L";
-    }
-
-    var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;
-    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;
-    // Browsers seem to always treat the boundaries of block elements as being L.
-    var outerType = "L";
-
-    function BidiSpan(level, from, to) {
-      this.level = level;
-      this.from = from; this.to = to;
-    }
-
-    return function(str) {
-      if (!bidiRE.test(str)) return false;
-      var len = str.length, types = [];
-      for (var i = 0, type; i < len; ++i)
-        types.push(type = charType(str.charCodeAt(i)));
-
-      // W1. Examine each non-spacing mark (NSM) in the level run, and
-      // change the type of the NSM to the type of the previous
-      // character. If the NSM is at the start of the level run, it will
-      // get the type of sor.
-      for (var i = 0, prev = outerType; i < len; ++i) {
-        var type = types[i];
-        if (type == "m") types[i] = prev;
-        else prev = type;
-      }
-
-      // W2. Search backwards from each instance of a European number
-      // until the first strong type (R, L, AL, or sor) is found. If an
-      // AL is found, change the type of the European number to Arabic
-      // number.
-      // W3. Change all ALs to R.
-      for (var i = 0, cur = outerType; i < len; ++i) {
-        var type = types[i];
-        if (type == "1" && cur == "r") types[i] = "n";
-        else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; }
-      }
-
-      // W4. A single European separator between two European numbers
-      // changes to a European number. A single common separator between
-      // two numbers of the same type changes to that type.
-      for (var i = 1, prev = types[0]; i < len - 1; ++i) {
-        var type = types[i];
-        if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1";
-        else if (type == "," && prev == types[i+1] &&
-                 (prev == "1" || prev == "n")) types[i] = prev;
-        prev = type;
-      }
-
-      // W5. A sequence of European terminators adjacent to European
-      // numbers changes to all European numbers.
-      // W6. Otherwise, separators and terminators change to Other
-      // Neutral.
-      for (var i = 0; i < len; ++i) {
-        var type = types[i];
-        if (type == ",") types[i] = "N";
-        else if (type == "%") {
-          for (var end = i + 1; end < len && types[end] == "%"; ++end) {}
-          var replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N";
-          for (var j = i; j < end; ++j) types[j] = replace;
-          i = end - 1;
-        }
-      }
-
-      // W7. Search backwards from each instance of a European number
-      // until the first strong type (R, L, or sor) is found. If an L is
-      // found, then change the type of the European number to L.
-      for (var i = 0, cur = outerType; i < len; ++i) {
-        var type = types[i];
-        if (cur == "L" && type == "1") types[i] = "L";
-        else if (isStrong.test(type)) cur = type;
-      }
-
-      // N1. A sequence of neutrals takes the direction of the
-      // surrounding strong text if the text on both sides has the same
-      // direction. European and Arabic numbers act as if they were R in
-      // terms of their influence on neutrals. Start-of-level-run (sor)
-      // and end-of-level-run (eor) are used at level run boundaries.
-      // N2. Any remaining neutrals take the embedding direction.
-      for (var i = 0; i < len; ++i) {
-        if (isNeutral.test(types[i])) {
-          for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}
-          var before = (i ? types[i-1] : outerType) == "L";
-          var after = (end < len ? types[end] : outerType) == "L";
-          var replace = before || after ? "L" : "R";
-          for (var j = i; j < end; ++j) types[j] = replace;
-          i = end - 1;
-        }
-      }
-
-      // Here we depart from the documented algorithm, in order to avoid
-      // building up an actual levels array. Since there are only three
-      // levels (0, 1, 2) in an implementation that doesn't take
-      // explicit embedding into account, we can build up the order on
-      // the fly, without following the level-based algorithm.
-      var order = [], m;
-      for (var i = 0; i < len;) {
-        if (countsAsLeft.test(types[i])) {
-          var start = i;
-          for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}
-          order.push(new BidiSpan(0, start, i));
-        } else {
-          var pos = i, at = order.length;
-          for (++i; i < len && types[i] != "L"; ++i) {}
-          for (var j = pos; j < i;) {
-            if (countsAsNum.test(types[j])) {
-              if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j));
-              var nstart = j;
-              for (++j; j < i && countsAsNum.test(types[j]); ++j) {}
-              order.splice(at, 0, new BidiSpan(2, nstart, j));
-              pos = j;
-            } else ++j;
-          }
-          if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i));
-        }
-      }
-      if (order[0].level == 1 && (m = str.match(/^\s+/))) {
-        order[0].from = m[0].length;
-        order.unshift(new BidiSpan(0, 0, m[0].length));
-      }
-      if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
-        lst(order).to -= m[0].length;
-        order.push(new BidiSpan(0, len - m[0].length, len));
-      }
-      if (order[0].level == 2)
-        order.unshift(new BidiSpan(1, order[0].to, order[0].to));
-      if (order[0].level != lst(order).level)
-        order.push(new BidiSpan(order[0].level, len, len));
-
-      return order;
-    };
-  })();
-
-  // THE END
-
-  CodeMirror.version = "5.18.2";
-
-  return CodeMirror;
-});
diff --git a/pagure/static/codemirror/codemirror.css b/pagure/static/codemirror/codemirror.css
deleted file mode 120000
index 9132274..0000000
--- a/pagure/static/codemirror/codemirror.css
+++ /dev/null
@@ -1 +0,0 @@
-codemirror-5.18.2.css
\ No newline at end of file
diff --git a/pagure/static/codemirror/codemirror.js b/pagure/static/codemirror/codemirror.js
deleted file mode 120000
index 0b38438..0000000
--- a/pagure/static/codemirror/codemirror.js
+++ /dev/null
@@ -1 +0,0 @@
-codemirror-5.18.2.js
\ No newline at end of file
diff --git a/pagure/static/codemirror/solarized-5.18.2.css b/pagure/static/codemirror/solarized-5.18.2.css
deleted file mode 100644
index 1f39c7e..0000000
--- a/pagure/static/codemirror/solarized-5.18.2.css
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
-Solarized theme for code-mirror
-http://ethanschoonover.com/solarized
-*/
-
-/*
-Solarized color palette
-http://ethanschoonover.com/solarized/img/solarized-palette.png
-*/
-
-.solarized.base03 { color: #002b36; }
-.solarized.base02 { color: #073642; }
-.solarized.base01 { color: #586e75; }
-.solarized.base00 { color: #657b83; }
-.solarized.base0 { color: #839496; }
-.solarized.base1 { color: #93a1a1; }
-.solarized.base2 { color: #eee8d5; }
-.solarized.base3  { color: #fdf6e3; }
-.solarized.solar-yellow  { color: #b58900; }
-.solarized.solar-orange  { color: #cb4b16; }
-.solarized.solar-red { color: #dc322f; }
-.solarized.solar-magenta { color: #d33682; }
-.solarized.solar-violet  { color: #6c71c4; }
-.solarized.solar-blue { color: #268bd2; }
-.solarized.solar-cyan { color: #2aa198; }
-.solarized.solar-green { color: #859900; }
-
-/* Color scheme for code-mirror */
-
-.cm-s-solarized {
-  line-height: 1.45em;
-  color-profile: sRGB;
-  rendering-intent: auto;
-}
-.cm-s-solarized.cm-s-dark {
-  color: #839496;
-  background-color: #002b36;
-  text-shadow: #002b36 0 1px;
-}
-.cm-s-solarized.cm-s-light {
-  background-color: #fdf6e3;
-  color: #657b83;
-  text-shadow: #eee8d5 0 1px;
-}
-
-.cm-s-solarized .CodeMirror-widget {
-  text-shadow: none;
-}
-
-.cm-s-solarized .cm-header { color: #586e75; }
-.cm-s-solarized .cm-quote { color: #93a1a1; }
-
-.cm-s-solarized .cm-keyword { color: #cb4b16; }
-.cm-s-solarized .cm-atom { color: #d33682; }
-.cm-s-solarized .cm-number { color: #d33682; }
-.cm-s-solarized .cm-def { color: #2aa198; }
-
-.cm-s-solarized .cm-variable { color: #839496; }
-.cm-s-solarized .cm-variable-2 { color: #b58900; }
-.cm-s-solarized .cm-variable-3 { color: #6c71c4; }
-
-.cm-s-solarized .cm-property { color: #2aa198; }
-.cm-s-solarized .cm-operator { color: #6c71c4; }
-
-.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
-
-.cm-s-solarized .cm-string { color: #859900; }
-.cm-s-solarized .cm-string-2 { color: #b58900; }
-
-.cm-s-solarized .cm-meta { color: #859900; }
-.cm-s-solarized .cm-qualifier { color: #b58900; }
-.cm-s-solarized .cm-builtin { color: #d33682; }
-.cm-s-solarized .cm-bracket { color: #cb4b16; }
-.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
-.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
-.cm-s-solarized .cm-tag { color: #93a1a1; }
-.cm-s-solarized .cm-attribute { color: #2aa198; }
-.cm-s-solarized .cm-hr {
-  color: transparent;
-  border-top: 1px solid #586e75;
-  display: block;
-}
-.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
-.cm-s-solarized .cm-special { color: #6c71c4; }
-.cm-s-solarized .cm-em {
-  color: #999;
-  text-decoration: underline;
-  text-decoration-style: dotted;
-}
-.cm-s-solarized .cm-strong { color: #eee; }
-.cm-s-solarized .cm-error,
-.cm-s-solarized .cm-invalidchar {
-  color: #586e75;
-  border-bottom: 1px dotted #dc322f;
-}
-
-.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
-.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
-.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }
-
-.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
-.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
-.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-ligh .CodeMirror-line > span::-moz-selection, .cm-s-ligh .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }
-
-/* Editor styling */
-
-
-
-/* Little shadow on the view-port of the buffer view */
-.cm-s-solarized.CodeMirror {
-  -moz-box-shadow: inset 7px 0 12px -6px #000;
-  -webkit-box-shadow: inset 7px 0 12px -6px #000;
-  box-shadow: inset 7px 0 12px -6px #000;
-}
-
-/* Remove gutter border */
-.cm-s-solarized .CodeMirror-gutters {
-  border-right: 0;
-}
-
-/* Gutter colors and line number styling based of color scheme (dark / light) */
-
-/* Dark */
-.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
-  background-color: #073642;
-}
-
-.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
-  color: #586e75;
-  text-shadow: #021014 0 -1px;
-}
-
-/* Light */
-.cm-s-solarized.cm-s-light .CodeMirror-gutters {
-  background-color: #eee8d5;
-}
-
-.cm-s-solarized.cm-s-light .CodeMirror-linenumber {
-  color: #839496;
-}
-
-/* Common */
-.cm-s-solarized .CodeMirror-linenumber {
-  padding: 0 5px;
-}
-.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
-.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
-.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
-
-.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
-  color: #586e75;
-}
-
-/* Cursor */
-.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }
-
-/* Fat cursor */
-.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor { background: #77ee77; }
-.cm-s-solarized.cm-s-light .cm-animate-fat-cursor { background-color: #77ee77; }
-.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor { background: #586e75; }
-.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor { background-color: #586e75; }
-
-/* Active line */
-.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
-  background: rgba(255, 255, 255, 0.06);
-}
-.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
-  background: rgba(0, 0, 0, 0.06);
-}
diff --git a/pagure/static/codemirror/solarized.css b/pagure/static/codemirror/solarized.css
deleted file mode 120000
index 372d39a..0000000
--- a/pagure/static/codemirror/solarized.css
+++ /dev/null
@@ -1 +0,0 @@
-solarized-5.18.2.css
\ No newline at end of file
diff --git a/pagure/static/d3/d3.v3.js b/pagure/static/d3/d3.v3.js
deleted file mode 100644
index ec7c983..0000000
--- a/pagure/static/d3/d3.v3.js
+++ /dev/null
@@ -1,9554 +0,0 @@
-!function() {
-  var d3 = {
-    version: "3.5.17"
-  };
-  var d3_arraySlice = [].slice, d3_array = function(list) {
-    return d3_arraySlice.call(list);
-  };
-  var d3_document = this.document;
-  function d3_documentElement(node) {
-    return node && (node.ownerDocument || node.document || node).documentElement;
-  }
-  function d3_window(node) {
-    return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);
-  }
-  if (d3_document) {
-    try {
-      d3_array(d3_document.documentElement.childNodes)[0].nodeType;
-    } catch (e) {
-      d3_array = function(list) {
-        var i = list.length, array = new Array(i);
-        while (i--) array[i] = list[i];
-        return array;
-      };
-    }
-  }
-  if (!Date.now) Date.now = function() {
-    return +new Date();
-  };
-  if (d3_document) {
-    try {
-      d3_document.createElement("DIV").style.setProperty("opacity", 0, "");
-    } catch (error) {
-      var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
-      d3_element_prototype.setAttribute = function(name, value) {
-        d3_element_setAttribute.call(this, name, value + "");
-      };
-      d3_element_prototype.setAttributeNS = function(space, local, value) {
-        d3_element_setAttributeNS.call(this, space, local, value + "");
-      };
-      d3_style_prototype.setProperty = function(name, value, priority) {
-        d3_style_setProperty.call(this, name, value + "", priority);
-      };
-    }
-  }
-  d3.ascending = d3_ascending;
-  function d3_ascending(a, b) {
-    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
-  }
-  d3.descending = function(a, b) {
-    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
-  };
-  d3.min = function(array, f) {
-    var i = -1, n = array.length, a, b;
-    if (arguments.length === 1) {
-      while (++i < n) if ((b = array[i]) != null && b >= b) {
-        a = b;
-        break;
-      }
-      while (++i < n) if ((b = array[i]) != null && a > b) a = b;
-    } else {
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
-        a = b;
-        break;
-      }
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
-    }
-    return a;
-  };
-  d3.max = function(array, f) {
-    var i = -1, n = array.length, a, b;
-    if (arguments.length === 1) {
-      while (++i < n) if ((b = array[i]) != null && b >= b) {
-        a = b;
-        break;
-      }
-      while (++i < n) if ((b = array[i]) != null && b > a) a = b;
-    } else {
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
-        a = b;
-        break;
-      }
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
-    }
-    return a;
-  };
-  d3.extent = function(array, f) {
-    var i = -1, n = array.length, a, b, c;
-    if (arguments.length === 1) {
-      while (++i < n) if ((b = array[i]) != null && b >= b) {
-        a = c = b;
-        break;
-      }
-      while (++i < n) if ((b = array[i]) != null) {
-        if (a > b) a = b;
-        if (c < b) c = b;
-      }
-    } else {
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
-        a = c = b;
-        break;
-      }
-      while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
-        if (a > b) a = b;
-        if (c < b) c = b;
-      }
-    }
-    return [ a, c ];
-  };
-  function d3_number(x) {
-    return x === null ? NaN : +x;
-  }
-  function d3_numeric(x) {
-    return !isNaN(x);
-  }
-  d3.sum = function(array, f) {
-    var s = 0, n = array.length, a, i = -1;
-    if (arguments.length === 1) {
-      while (++i < n) if (d3_numeric(a = +array[i])) s += a;
-    } else {
-      while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;
-    }
-    return s;
-  };
-  d3.mean = function(array, f) {
-    var s = 0, n = array.length, a, i = -1, j = n;
-    if (arguments.length === 1) {
-      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;
-    } else {
-      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;
-    }
-    if (j) return s / j;
-  };
-  d3.quantile = function(values, p) {
-    var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
-    return e ? v + e * (values[h] - v) : v;
-  };
-  d3.median = function(array, f) {
-    var numbers = [], n = array.length, a, i = -1;
-    if (arguments.length === 1) {
-      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);
-    } else {
-      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);
-    }
-    if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);
-  };
-  d3.variance = function(array, f) {
-    var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;
-    if (arguments.length === 1) {
-      while (++i < n) {
-        if (d3_numeric(a = d3_number(array[i]))) {
-          d = a - m;
-          m += d / ++j;
-          s += d * (a - m);
-        }
-      }
-    } else {
-      while (++i < n) {
-        if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {
-          d = a - m;
-          m += d / ++j;
-          s += d * (a - m);
-        }
-      }
-    }
-    if (j > 1) return s / (j - 1);
-  };
-  d3.deviation = function() {
-    var v = d3.variance.apply(this, arguments);
-    return v ? Math.sqrt(v) : v;
-  };
-  function d3_bisector(compare) {
-    return {
-      left: function(a, x, lo, hi) {
-        if (arguments.length < 3) lo = 0;
-        if (arguments.length < 4) hi = a.length;
-        while (lo < hi) {
-          var mid = lo + hi >>> 1;
-          if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;
-        }
-        return lo;
-      },
-      right: function(a, x, lo, hi) {
-        if (arguments.length < 3) lo = 0;
-        if (arguments.length < 4) hi = a.length;
-        while (lo < hi) {
-          var mid = lo + hi >>> 1;
-          if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;
-        }
-        return lo;
-      }
-    };
-  }
-  var d3_bisect = d3_bisector(d3_ascending);
-  d3.bisectLeft = d3_bisect.left;
-  d3.bisect = d3.bisectRight = d3_bisect.right;
-  d3.bisector = function(f) {
-    return d3_bisector(f.length === 1 ? function(d, x) {
-      return d3_ascending(f(d), x);
-    } : f);
-  };
-  d3.shuffle = function(array, i0, i1) {
-    if ((m = arguments.length) < 3) {
-      i1 = array.length;
-      if (m < 2) i0 = 0;
-    }
-    var m = i1 - i0, t, i;
-    while (m) {
-      i = Math.random() * m-- | 0;
-      t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;
-    }
-    return array;
-  };
-  d3.permute = function(array, indexes) {
-    var i = indexes.length, permutes = new Array(i);
-    while (i--) permutes[i] = array[indexes[i]];
-    return permutes;
-  };
-  d3.pairs = function(array) {
-    var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);
-    while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];
-    return pairs;
-  };
-  d3.transpose = function(matrix) {
-    if (!(n = matrix.length)) return [];
-    for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {
-      for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {
-        row[j] = matrix[j][i];
-      }
-    }
-    return transpose;
-  };
-  function d3_transposeLength(d) {
-    return d.length;
-  }
-  d3.zip = function() {
-    return d3.transpose(arguments);
-  };
-  d3.keys = function(map) {
-    var keys = [];
-    for (var key in map) keys.push(key);
-    return keys;
-  };
-  d3.values = function(map) {
-    var values = [];
-    for (var key in map) values.push(map[key]);
-    return values;
-  };
-  d3.entries = function(map) {
-    var entries = [];
-    for (var key in map) entries.push({
-      key: key,
-      value: map[key]
-    });
-    return entries;
-  };
-  d3.merge = function(arrays) {
-    var n = arrays.length, m, i = -1, j = 0, merged, array;
-    while (++i < n) j += arrays[i].length;
-    merged = new Array(j);
-    while (--n >= 0) {
-      array = arrays[n];
-      m = array.length;
-      while (--m >= 0) {
-        merged[--j] = array[m];
-      }
-    }
-    return merged;
-  };
-  var abs = Math.abs;
-  d3.range = function(start, stop, step) {
-    if (arguments.length < 3) {
-      step = 1;
-      if (arguments.length < 2) {
-        stop = start;
-        start = 0;
-      }
-    }
-    if ((stop - start) / step === Infinity) throw new Error("infinite range");
-    var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;
-    start *= k, stop *= k, step *= k;
-    if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
-    return range;
-  };
-  function d3_range_integerScale(x) {
-    var k = 1;
-    while (x * k % 1) k *= 10;
-    return k;
-  }
-  function d3_class(ctor, properties) {
-    for (var key in properties) {
-      Object.defineProperty(ctor.prototype, key, {
-        value: properties[key],
-        enumerable: false
-      });
-    }
-  }
-  d3.map = function(object, f) {
-    var map = new d3_Map();
-    if (object instanceof d3_Map) {
-      object.forEach(function(key, value) {
-        map.set(key, value);
-      });
-    } else if (Array.isArray(object)) {
-      var i = -1, n = object.length, o;
-      if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);
-    } else {
-      for (var key in object) map.set(key, object[key]);
-    }
-    return map;
-  };
-  function d3_Map() {
-    this._ = Object.create(null);
-  }
-  var d3_map_proto = "__proto__", d3_map_zero = "\x00";
-  d3_class(d3_Map, {
-    has: d3_map_has,
-    get: function(key) {
-      return this._[d3_map_escape(key)];
-    },
-    set: function(key, value) {
-      return this._[d3_map_escape(key)] = value;
-    },
-    remove: d3_map_remove,
-    keys: d3_map_keys,
-    values: function() {
-      var values = [];
-      for (var key in this._) values.push(this._[key]);
-      return values;
-    },
-    entries: function() {
-      var entries = [];
-      for (var key in this._) entries.push({
-        key: d3_map_unescape(key),
-        value: this._[key]
-      });
-      return entries;
-    },
-    size: d3_map_size,
-    empty: d3_map_empty,
-    forEach: function(f) {
-      for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);
-    }
-  });
-  function d3_map_escape(key) {
-    return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;
-  }
-  function d3_map_unescape(key) {
-    return (key += "")[0] === d3_map_zero ? key.slice(1) : key;
-  }
-  function d3_map_has(key) {
-    return d3_map_escape(key) in this._;
-  }
-  function d3_map_remove(key) {
-    return (key = d3_map_escape(key)) in this._ && delete this._[key];
-  }
-  function d3_map_keys() {
-    var keys = [];
-    for (var key in this._) keys.push(d3_map_unescape(key));
-    return keys;
-  }
-  function d3_map_size() {
-    var size = 0;
-    for (var key in this._) ++size;
-    return size;
-  }
-  function d3_map_empty() {
-    for (var key in this._) return false;
-    return true;
-  }
-  d3.nest = function() {
-    var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
-    function map(mapType, array, depth) {
-      if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
-      var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;
-      while (++i < n) {
-        if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
-          values.push(object);
-        } else {
-          valuesByKey.set(keyValue, [ object ]);
-        }
-      }
-      if (mapType) {
-        object = mapType();
-        setter = function(keyValue, values) {
-          object.set(keyValue, map(mapType, values, depth));
-        };
-      } else {
-        object = {};
-        setter = function(keyValue, values) {
-          object[keyValue] = map(mapType, values, depth);
-        };
-      }
-      valuesByKey.forEach(setter);
-      return object;
-    }
-    function entries(map, depth) {
-      if (depth >= keys.length) return map;
-      var array = [], sortKey = sortKeys[depth++];
-      map.forEach(function(key, keyMap) {
-        array.push({
-          key: key,
-          values: entries(keyMap, depth)
-        });
-      });
-      return sortKey ? array.sort(function(a, b) {
-        return sortKey(a.key, b.key);
-      }) : array;
-    }
-    nest.map = function(array, mapType) {
-      return map(mapType, array, 0);
-    };
-    nest.entries = function(array) {
-      return entries(map(d3.map, array, 0), 0);
-    };
-    nest.key = function(d) {
-      keys.push(d);
-      return nest;
-    };
-    nest.sortKeys = function(order) {
-      sortKeys[keys.length - 1] = order;
-      return nest;
-    };
-    nest.sortValues = function(order) {
-      sortValues = order;
-      return nest;
-    };
-    nest.rollup = function(f) {
-      rollup = f;
-      return nest;
-    };
-    return nest;
-  };
-  d3.set = function(array) {
-    var set = new d3_Set();
-    if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);
-    return set;
-  };
-  function d3_Set() {
-    this._ = Object.create(null);
-  }
-  d3_class(d3_Set, {
-    has: d3_map_has,
-    add: function(key) {
-      this._[d3_map_escape(key += "")] = true;
-      return key;
-    },
-    remove: d3_map_remove,
-    values: d3_map_keys,
-    size: d3_map_size,
-    empty: d3_map_empty,
-    forEach: function(f) {
-      for (var key in this._) f.call(this, d3_map_unescape(key));
-    }
-  });
-  d3.behavior = {};
-  function d3_identity(d) {
-    return d;
-  }
-  d3.rebind = function(target, source) {
-    var i = 1, n = arguments.length, method;
-    while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
-    return target;
-  };
-  function d3_rebind(target, source, method) {
-    return function() {
-      var value = method.apply(source, arguments);
-      return value === source ? target : value;
-    };
-  }
-  function d3_vendorSymbol(object, name) {
-    if (name in object) return name;
-    name = name.charAt(0).toUpperCase() + name.slice(1);
-    for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {
-      var prefixName = d3_vendorPrefixes[i] + name;
-      if (prefixName in object) return prefixName;
-    }
-  }
-  var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ];
-  function d3_noop() {}
-  d3.dispatch = function() {
-    var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
-    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
-    return dispatch;
-  };
-  function d3_dispatch() {}
-  d3_dispatch.prototype.on = function(type, listener) {
-    var i = type.indexOf("."), name = "";
-    if (i >= 0) {
-      name = type.slice(i + 1);
-      type = type.slice(0, i);
-    }
-    if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
-    if (arguments.length === 2) {
-      if (listener == null) for (type in this) {
-        if (this.hasOwnProperty(type)) this[type].on(name, null);
-      }
-      return this;
-    }
-  };
-  function d3_dispatch_event(dispatch) {
-    var listeners = [], listenerByName = new d3_Map();
-    function event() {
-      var z = listeners, i = -1, n = z.length, l;
-      while (++i < n) if (l = z[i].on) l.apply(this, arguments);
-      return dispatch;
-    }
-    event.on = function(name, listener) {
-      var l = listenerByName.get(name), i;
-      if (arguments.length < 2) return l && l.on;
-      if (l) {
-        l.on = null;
-        listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
-        listenerByName.remove(name);
-      }
-      if (listener) listeners.push(listenerByName.set(name, {
-        on: listener
-      }));
-      return dispatch;
-    };
-    return event;
-  }
-  d3.event = null;
-  function d3_eventPreventDefault() {
-    d3.event.preventDefault();
-  }
-  function d3_eventSource() {
-    var e = d3.event, s;
-    while (s = e.sourceEvent) e = s;
-    return e;
-  }
-  function d3_eventDispatch(target) {
-    var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
-    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
-    dispatch.of = function(thiz, argumentz) {
-      return function(e1) {
-        try {
-          var e0 = e1.sourceEvent = d3.event;
-          e1.target = target;
-          d3.event = e1;
-          dispatch[e1.type].apply(thiz, argumentz);
-        } finally {
-          d3.event = e0;
-        }
-      };
-    };
-    return dispatch;
-  }
-  d3.requote = function(s) {
-    return s.replace(d3_requote_re, "\\$&");
-  };
-  var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
-  var d3_subclass = {}.__proto__ ? function(object, prototype) {
-    object.__proto__ = prototype;
-  } : function(object, prototype) {
-    for (var property in prototype) object[property] = prototype[property];
-  };
-  function d3_selection(groups) {
-    d3_subclass(groups, d3_selectionPrototype);
-    return groups;
-  }
-  var d3_select = function(s, n) {
-    return n.querySelector(s);
-  }, d3_selectAll = function(s, n) {
-    return n.querySelectorAll(s);
-  }, d3_selectMatches = function(n, s) {
-    var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")];
-    d3_selectMatches = function(n, s) {
-      return d3_selectMatcher.call(n, s);
-    };
-    return d3_selectMatches(n, s);
-  };
-  if (typeof Sizzle === "function") {
-    d3_select = function(s, n) {
-      return Sizzle(s, n)[0] || null;
-    };
-    d3_selectAll = Sizzle;
-    d3_selectMatches = Sizzle.matchesSelector;
-  }
-  d3.selection = function() {
-    return d3.select(d3_document.documentElement);
-  };
-  var d3_selectionPrototype = d3.selection.prototype = [];
-  d3_selectionPrototype.select = function(selector) {
-    var subgroups = [], subgroup, subnode, group, node;
-    selector = d3_selection_selector(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = (group = this[j]).parentNode;
-      for (var i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroup.push(subnode = selector.call(node, node.__data__, i, j));
-          if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  function d3_selection_selector(selector) {
-    return typeof selector === "function" ? selector : function() {
-      return d3_select(selector, this);
-    };
-  }
-  d3_selectionPrototype.selectAll = function(selector) {
-    var subgroups = [], subgroup, node;
-    selector = d3_selection_selectorAll(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));
-          subgroup.parentNode = node;
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  function d3_selection_selectorAll(selector) {
-    return typeof selector === "function" ? selector : function() {
-      return d3_selectAll(selector, this);
-    };
-  }
-  var d3_nsXhtml = "http://www.w3.org/1999/xhtml";
-  var d3_nsPrefix = {
-    svg: "http://www.w3.org/2000/svg",
-    xhtml: d3_nsXhtml,
-    xlink: "http://www.w3.org/1999/xlink",
-    xml: "http://www.w3.org/XML/1998/namespace",
-    xmlns: "http://www.w3.org/2000/xmlns/"
-  };
-  d3.ns = {
-    prefix: d3_nsPrefix,
-    qualify: function(name) {
-      var i = name.indexOf(":"), prefix = name;
-      if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
-      return d3_nsPrefix.hasOwnProperty(prefix) ? {
-        space: d3_nsPrefix[prefix],
-        local: name
-      } : name;
-    }
-  };
-  d3_selectionPrototype.attr = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") {
-        var node = this.node();
-        name = d3.ns.qualify(name);
-        return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
-      }
-      for (value in name) this.each(d3_selection_attr(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_attr(name, value));
-  };
-  function d3_selection_attr(name, value) {
-    name = d3.ns.qualify(name);
-    function attrNull() {
-      this.removeAttribute(name);
-    }
-    function attrNullNS() {
-      this.removeAttributeNS(name.space, name.local);
-    }
-    function attrConstant() {
-      this.setAttribute(name, value);
-    }
-    function attrConstantNS() {
-      this.setAttributeNS(name.space, name.local, value);
-    }
-    function attrFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
-    }
-    function attrFunctionNS() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
-    }
-    return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
-  }
-  function d3_collapse(s) {
-    return s.trim().replace(/\s+/g, " ");
-  }
-  d3_selectionPrototype.classed = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") {
-        var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;
-        if (value = node.classList) {
-          while (++i < n) if (!value.contains(name[i])) return false;
-        } else {
-          value = node.getAttribute("class");
-          while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
-        }
-        return true;
-      }
-      for (value in name) this.each(d3_selection_classed(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_classed(name, value));
-  };
-  function d3_selection_classedRe(name) {
-    return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
-  }
-  function d3_selection_classes(name) {
-    return (name + "").trim().split(/^|\s+/);
-  }
-  function d3_selection_classed(name, value) {
-    name = d3_selection_classes(name).map(d3_selection_classedName);
-    var n = name.length;
-    function classedConstant() {
-      var i = -1;
-      while (++i < n) name[i](this, value);
-    }
-    function classedFunction() {
-      var i = -1, x = value.apply(this, arguments);
-      while (++i < n) name[i](this, x);
-    }
-    return typeof value === "function" ? classedFunction : classedConstant;
-  }
-  function d3_selection_classedName(name) {
-    var re = d3_selection_classedRe(name);
-    return function(node, value) {
-      if (c = node.classList) return value ? c.add(name) : c.remove(name);
-      var c = node.getAttribute("class") || "";
-      if (value) {
-        re.lastIndex = 0;
-        if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
-      } else {
-        node.setAttribute("class", d3_collapse(c.replace(re, " ")));
-      }
-    };
-  }
-  d3_selectionPrototype.style = function(name, value, priority) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof name !== "string") {
-        if (n < 2) value = "";
-        for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
-        return this;
-      }
-      if (n < 2) {
-        var node = this.node();
-        return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);
-      }
-      priority = "";
-    }
-    return this.each(d3_selection_style(name, value, priority));
-  };
-  function d3_selection_style(name, value, priority) {
-    function styleNull() {
-      this.style.removeProperty(name);
-    }
-    function styleConstant() {
-      this.style.setProperty(name, value, priority);
-    }
-    function styleFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
-    }
-    return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
-  }
-  d3_selectionPrototype.property = function(name, value) {
-    if (arguments.length < 2) {
-      if (typeof name === "string") return this.node()[name];
-      for (value in name) this.each(d3_selection_property(value, name[value]));
-      return this;
-    }
-    return this.each(d3_selection_property(name, value));
-  };
-  function d3_selection_property(name, value) {
-    function propertyNull() {
-      delete this[name];
-    }
-    function propertyConstant() {
-      this[name] = value;
-    }
-    function propertyFunction() {
-      var x = value.apply(this, arguments);
-      if (x == null) delete this[name]; else this[name] = x;
-    }
-    return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
-  }
-  d3_selectionPrototype.text = function(value) {
-    return arguments.length ? this.each(typeof value === "function" ? function() {
-      var v = value.apply(this, arguments);
-      this.textContent = v == null ? "" : v;
-    } : value == null ? function() {
-      this.textContent = "";
-    } : function() {
-      this.textContent = value;
-    }) : this.node().textContent;
-  };
-  d3_selectionPrototype.html = function(value) {
-    return arguments.length ? this.each(typeof value === "function" ? function() {
-      var v = value.apply(this, arguments);
-      this.innerHTML = v == null ? "" : v;
-    } : value == null ? function() {
-      this.innerHTML = "";
-    } : function() {
-      this.innerHTML = value;
-    }) : this.node().innerHTML;
-  };
-  d3_selectionPrototype.append = function(name) {
-    name = d3_selection_creator(name);
-    return this.select(function() {
-      return this.appendChild(name.apply(this, arguments));
-    });
-  };
-  function d3_selection_creator(name) {
-    function create() {
-      var document = this.ownerDocument, namespace = this.namespaceURI;
-      return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);
-    }
-    function createNS() {
-      return this.ownerDocument.createElementNS(name.space, name.local);
-    }
-    return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;
-  }
-  d3_selectionPrototype.insert = function(name, before) {
-    name = d3_selection_creator(name);
-    before = d3_selection_selector(before);
-    return this.select(function() {
-      return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);
-    });
-  };
-  d3_selectionPrototype.remove = function() {
-    return this.each(d3_selectionRemove);
-  };
-  function d3_selectionRemove() {
-    var parent = this.parentNode;
-    if (parent) parent.removeChild(this);
-  }
-  d3_selectionPrototype.data = function(value, key) {
-    var i = -1, n = this.length, group, node;
-    if (!arguments.length) {
-      value = new Array(n = (group = this[0]).length);
-      while (++i < n) {
-        if (node = group[i]) {
-          value[i] = node.__data__;
-        }
-      }
-      return value;
-    }
-    function bind(group, groupData) {
-      var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
-      if (key) {
-        var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;
-        for (i = -1; ++i < n; ) {
-          if (node = group[i]) {
-            if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {
-              exitNodes[i] = node;
-            } else {
-              nodeByKeyValue.set(keyValue, node);
-            }
-            keyValues[i] = keyValue;
-          }
-        }
-        for (i = -1; ++i < m; ) {
-          if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {
-            enterNodes[i] = d3_selection_dataNode(nodeData);
-          } else if (node !== true) {
-            updateNodes[i] = node;
-            node.__data__ = nodeData;
-          }
-          nodeByKeyValue.set(keyValue, true);
-        }
-        for (i = -1; ++i < n; ) {
-          if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {
-            exitNodes[i] = group[i];
-          }
-        }
-      } else {
-        for (i = -1; ++i < n0; ) {
-          node = group[i];
-          nodeData = groupData[i];
-          if (node) {
-            node.__data__ = nodeData;
-            updateNodes[i] = node;
-          } else {
-            enterNodes[i] = d3_selection_dataNode(nodeData);
-          }
-        }
-        for (;i < m; ++i) {
-          enterNodes[i] = d3_selection_dataNode(groupData[i]);
-        }
-        for (;i < n; ++i) {
-          exitNodes[i] = group[i];
-        }
-      }
-      enterNodes.update = updateNodes;
-      enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
-      enter.push(enterNodes);
-      update.push(updateNodes);
-      exit.push(exitNodes);
-    }
-    var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
-    if (typeof value === "function") {
-      while (++i < n) {
-        bind(group = this[i], value.call(group, group.parentNode.__data__, i));
-      }
-    } else {
-      while (++i < n) {
-        bind(group = this[i], value);
-      }
-    }
-    update.enter = function() {
-      return enter;
-    };
-    update.exit = function() {
-      return exit;
-    };
-    return update;
-  };
-  function d3_selection_dataNode(data) {
-    return {
-      __data__: data
-    };
-  }
-  d3_selectionPrototype.datum = function(value) {
-    return arguments.length ? this.property("__data__", value) : this.property("__data__");
-  };
-  d3_selectionPrototype.filter = function(filter) {
-    var subgroups = [], subgroup, group, node;
-    if (typeof filter !== "function") filter = d3_selection_filter(filter);
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = (group = this[j]).parentNode;
-      for (var i = 0, n = group.length; i < n; i++) {
-        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
-          subgroup.push(node);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  function d3_selection_filter(selector) {
-    return function() {
-      return d3_selectMatches(this, selector);
-    };
-  }
-  d3_selectionPrototype.order = function() {
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
-        if (node = group[i]) {
-          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
-          next = node;
-        }
-      }
-    }
-    return this;
-  };
-  d3_selectionPrototype.sort = function(comparator) {
-    comparator = d3_selection_sortComparator.apply(this, arguments);
-    for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
-    return this.order();
-  };
-  function d3_selection_sortComparator(comparator) {
-    if (!arguments.length) comparator = d3_ascending;
-    return function(a, b) {
-      return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
-    };
-  }
-  d3_selectionPrototype.each = function(callback) {
-    return d3_selection_each(this, function(node, i, j) {
-      callback.call(node, node.__data__, i, j);
-    });
-  };
-  function d3_selection_each(groups, callback) {
-    for (var j = 0, m = groups.length; j < m; j++) {
-      for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
-        if (node = group[i]) callback(node, i, j);
-      }
-    }
-    return groups;
-  }
-  d3_selectionPrototype.call = function(callback) {
-    var args = d3_array(arguments);
-    callback.apply(args[0] = this, args);
-    return this;
-  };
-  d3_selectionPrototype.empty = function() {
-    return !this.node();
-  };
-  d3_selectionPrototype.node = function() {
-    for (var j = 0, m = this.length; j < m; j++) {
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        var node = group[i];
-        if (node) return node;
-      }
-    }
-    return null;
-  };
-  d3_selectionPrototype.size = function() {
-    var n = 0;
-    d3_selection_each(this, function() {
-      ++n;
-    });
-    return n;
-  };
-  function d3_selection_enter(selection) {
-    d3_subclass(selection, d3_selection_enterPrototype);
-    return selection;
-  }
-  var d3_selection_enterPrototype = [];
-  d3.selection.enter = d3_selection_enter;
-  d3.selection.enter.prototype = d3_selection_enterPrototype;
-  d3_selection_enterPrototype.append = d3_selectionPrototype.append;
-  d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
-  d3_selection_enterPrototype.node = d3_selectionPrototype.node;
-  d3_selection_enterPrototype.call = d3_selectionPrototype.call;
-  d3_selection_enterPrototype.size = d3_selectionPrototype.size;
-  d3_selection_enterPrototype.select = function(selector) {
-    var subgroups = [], subgroup, subnode, upgroup, group, node;
-    for (var j = -1, m = this.length; ++j < m; ) {
-      upgroup = (group = this[j]).update;
-      subgroups.push(subgroup = []);
-      subgroup.parentNode = group.parentNode;
-      for (var i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));
-          subnode.__data__ = node.__data__;
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_selection(subgroups);
-  };
-  d3_selection_enterPrototype.insert = function(name, before) {
-    if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);
-    return d3_selectionPrototype.insert.call(this, name, before);
-  };
-  function d3_selection_enterInsertBefore(enter) {
-    var i0, j0;
-    return function(d, i, j) {
-      var group = enter[j].update, n = group.length, node;
-      if (j != j0) j0 = j, i0 = 0;
-      if (i >= i0) i0 = i + 1;
-      while (!(node = group[i0]) && ++i0 < n) ;
-      return node;
-    };
-  }
-  d3.select = function(node) {
-    var group;
-    if (typeof node === "string") {
-      group = [ d3_select(node, d3_document) ];
-      group.parentNode = d3_document.documentElement;
-    } else {
-      group = [ node ];
-      group.parentNode = d3_documentElement(node);
-    }
-    return d3_selection([ group ]);
-  };
-  d3.selectAll = function(nodes) {
-    var group;
-    if (typeof nodes === "string") {
-      group = d3_array(d3_selectAll(nodes, d3_document));
-      group.parentNode = d3_document.documentElement;
-    } else {
-      group = d3_array(nodes);
-      group.parentNode = null;
-    }
-    return d3_selection([ group ]);
-  };
-  d3_selectionPrototype.on = function(type, listener, capture) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof type !== "string") {
-        if (n < 2) listener = false;
-        for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
-        return this;
-      }
-      if (n < 2) return (n = this.node()["__on" + type]) && n._;
-      capture = false;
-    }
-    return this.each(d3_selection_on(type, listener, capture));
-  };
-  function d3_selection_on(type, listener, capture) {
-    var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
-    if (i > 0) type = type.slice(0, i);
-    var filter = d3_selection_onFilters.get(type);
-    if (filter) type = filter, wrap = d3_selection_onFilter;
-    function onRemove() {
-      var l = this[name];
-      if (l) {
-        this.removeEventListener(type, l, l.$);
-        delete this[name];
-      }
-    }
-    function onAdd() {
-      var l = wrap(listener, d3_array(arguments));
-      onRemove.call(this);
-      this.addEventListener(type, this[name] = l, l.$ = capture);
-      l._ = listener;
-    }
-    function removeAll() {
-      var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match;
-      for (var name in this) {
-        if (match = name.match(re)) {
-          var l = this[name];
-          this.removeEventListener(match[1], l, l.$);
-          delete this[name];
-        }
-      }
-    }
-    return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;
-  }
-  var d3_selection_onFilters = d3.map({
-    mouseenter: "mouseover",
-    mouseleave: "mouseout"
-  });
-  if (d3_document) {
-    d3_selection_onFilters.forEach(function(k) {
-      if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
-    });
-  }
-  function d3_selection_onListener(listener, argumentz) {
-    return function(e) {
-      var o = d3.event;
-      d3.event = e;
-      argumentz[0] = this.__data__;
-      try {
-        listener.apply(this, argumentz);
-      } finally {
-        d3.event = o;
-      }
-    };
-  }
-  function d3_selection_onFilter(listener, argumentz) {
-    var l = d3_selection_onListener(listener, argumentz);
-    return function(e) {
-      var target = this, related = e.relatedTarget;
-      if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {
-        l.call(target, e);
-      }
-    };
-  }
-  var d3_event_dragSelect, d3_event_dragId = 0;
-  function d3_event_dragSuppress(node) {
-    var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window(node)).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault);
-    if (d3_event_dragSelect == null) {
-      d3_event_dragSelect = "onselectstart" in node ? false : d3_vendorSymbol(node.style, "userSelect");
-    }
-    if (d3_event_dragSelect) {
-      var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];
-      style[d3_event_dragSelect] = "none";
-    }
-    return function(suppressClick) {
-      w.on(name, null);
-      if (d3_event_dragSelect) style[d3_event_dragSelect] = select;
-      if (suppressClick) {
-        var off = function() {
-          w.on(click, null);
-        };
-        w.on(click, function() {
-          d3_eventPreventDefault();
-          off();
-        }, true);
-        setTimeout(off, 0);
-      }
-    };
-  }
-  d3.mouse = function(container) {
-    return d3_mousePoint(container, d3_eventSource());
-  };
-  var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
-  function d3_mousePoint(container, e) {
-    if (e.changedTouches) e = e.changedTouches[0];
-    var svg = container.ownerSVGElement || container;
-    if (svg.createSVGPoint) {
-      var point = svg.createSVGPoint();
-      if (d3_mouse_bug44083 < 0) {
-        var window = d3_window(container);
-        if (window.scrollX || window.scrollY) {
-          svg = d3.select("body").append("svg").style({
-            position: "absolute",
-            top: 0,
-            left: 0,
-            margin: 0,
-            padding: 0,
-            border: "none"
-          }, "important");
-          var ctm = svg[0][0].getScreenCTM();
-          d3_mouse_bug44083 = !(ctm.f || ctm.e);
-          svg.remove();
-        }
-      }
-      if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX,
-      point.y = e.clientY;
-      point = point.matrixTransform(container.getScreenCTM().inverse());
-      return [ point.x, point.y ];
-    }
-    var rect = container.getBoundingClientRect();
-    return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
-  }
-  d3.touch = function(container, touches, identifier) {
-    if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
-    if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
-      if ((touch = touches[i]).identifier === identifier) {
-        return d3_mousePoint(container, touch);
-      }
-    }
-  };
-  d3.behavior.drag = function() {
-    var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend");
-    function drag() {
-      this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart);
-    }
-    function dragstart(id, position, subject, move, end) {
-      return function() {
-        var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);
-        if (origin) {
-          dragOffset = origin.apply(that, arguments);
-          dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];
-        } else {
-          dragOffset = [ 0, 0 ];
-        }
-        dispatch({
-          type: "dragstart"
-        });
-        function moved() {
-          var position1 = position(parent, dragId), dx, dy;
-          if (!position1) return;
-          dx = position1[0] - position0[0];
-          dy = position1[1] - position0[1];
-          dragged |= dx | dy;
-          position0 = position1;
-          dispatch({
-            type: "drag",
-            x: position1[0] + dragOffset[0],
-            y: position1[1] + dragOffset[1],
-            dx: dx,
-            dy: dy
-          });
-        }
-        function ended() {
-          if (!position(parent, dragId)) return;
-          dragSubject.on(move + dragName, null).on(end + dragName, null);
-          dragRestore(dragged);
-          dispatch({
-            type: "dragend"
-          });
-        }
-      };
-    }
-    drag.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = x;
-      return drag;
-    };
-    return d3.rebind(drag, event, "on");
-  };
-  function d3_behavior_dragTouchId() {
-    return d3.event.changedTouches[0].identifier;
-  }
-  d3.touches = function(container, touches) {
-    if (arguments.length < 2) touches = d3_eventSource().touches;
-    return touches ? d3_array(touches).map(function(touch) {
-      var point = d3_mousePoint(container, touch);
-      point.identifier = touch.identifier;
-      return point;
-    }) : [];
-  };
-  var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
-  function d3_sgn(x) {
-    return x > 0 ? 1 : x < 0 ? -1 : 0;
-  }
-  function d3_cross2d(a, b, c) {
-    return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
-  }
-  function d3_acos(x) {
-    return x > 1 ? 0 : x < -1 ? π : Math.acos(x);
-  }
-  function d3_asin(x) {
-    return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);
-  }
-  function d3_sinh(x) {
-    return ((x = Math.exp(x)) - 1 / x) / 2;
-  }
-  function d3_cosh(x) {
-    return ((x = Math.exp(x)) + 1 / x) / 2;
-  }
-  function d3_tanh(x) {
-    return ((x = Math.exp(2 * x)) - 1) / (x + 1);
-  }
-  function d3_haversin(x) {
-    return (x = Math.sin(x / 2)) * x;
-  }
-  var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;
-  d3.interpolateZoom = function(p0, p1) {
-    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;
-    if (d2 < ε2) {
-      S = Math.log(w1 / w0) / ρ;
-      i = function(t) {
-        return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];
-      };
-    } else {
-      var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
-      S = (r1 - r0) / ρ;
-      i = function(t) {
-        var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));
-        return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];
-      };
-    }
-    i.duration = S * 1e3;
-    return i;
-  };
-  d3.behavior.zoom = function() {
-    var view = {
-      x: 0,
-      y: 0,
-      k: 1
-    }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
-    if (!d3_behavior_zoomWheel) {
-      d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
-        return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
-      }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
-        return d3.event.wheelDelta;
-      }, "mousewheel") : (d3_behavior_zoomDelta = function() {
-        return -d3.event.detail;
-      }, "MozMousePixelScroll");
-    }
-    function zoom(g) {
-      g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted);
-    }
-    zoom.event = function(g) {
-      g.each(function() {
-        var dispatch = event.of(this, arguments), view1 = view;
-        if (d3_transitionInheritId) {
-          d3.select(this).transition().each("start.zoom", function() {
-            view = this.__chart__ || {
-              x: 0,
-              y: 0,
-              k: 1
-            };
-            zoomstarted(dispatch);
-          }).tween("zoom:zoom", function() {
-            var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);
-            return function(t) {
-              var l = i(t), k = dx / l[2];
-              this.__chart__ = view = {
-                x: cx - l[0] * k,
-                y: cy - l[1] * k,
-                k: k
-              };
-              zoomed(dispatch);
-            };
-          }).each("interrupt.zoom", function() {
-            zoomended(dispatch);
-          }).each("end.zoom", function() {
-            zoomended(dispatch);
-          });
-        } else {
-          this.__chart__ = view;
-          zoomstarted(dispatch);
-          zoomed(dispatch);
-          zoomended(dispatch);
-        }
-      });
-    };
-    zoom.translate = function(_) {
-      if (!arguments.length) return [ view.x, view.y ];
-      view = {
-        x: +_[0],
-        y: +_[1],
-        k: view.k
-      };
-      rescale();
-      return zoom;
-    };
-    zoom.scale = function(_) {
-      if (!arguments.length) return view.k;
-      view = {
-        x: view.x,
-        y: view.y,
-        k: null
-      };
-      scaleTo(+_);
-      rescale();
-      return zoom;
-    };
-    zoom.scaleExtent = function(_) {
-      if (!arguments.length) return scaleExtent;
-      scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];
-      return zoom;
-    };
-    zoom.center = function(_) {
-      if (!arguments.length) return center;
-      center = _ && [ +_[0], +_[1] ];
-      return zoom;
-    };
-    zoom.size = function(_) {
-      if (!arguments.length) return size;
-      size = _ && [ +_[0], +_[1] ];
-      return zoom;
-    };
-    zoom.duration = function(_) {
-      if (!arguments.length) return duration;
-      duration = +_;
-      return zoom;
-    };
-    zoom.x = function(z) {
-      if (!arguments.length) return x1;
-      x1 = z;
-      x0 = z.copy();
-      view = {
-        x: 0,
-        y: 0,
-        k: 1
-      };
-      return zoom;
-    };
-    zoom.y = function(z) {
-      if (!arguments.length) return y1;
-      y1 = z;
-      y0 = z.copy();
-      view = {
-        x: 0,
-        y: 0,
-        k: 1
-      };
-      return zoom;
-    };
-    function location(p) {
-      return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];
-    }
-    function point(l) {
-      return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];
-    }
-    function scaleTo(s) {
-      view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
-    }
-    function translateTo(p, l) {
-      l = point(l);
-      view.x += p[0] - l[0];
-      view.y += p[1] - l[1];
-    }
-    function zoomTo(that, p, l, k) {
-      that.__chart__ = {
-        x: view.x,
-        y: view.y,
-        k: view.k
-      };
-      scaleTo(Math.pow(2, k));
-      translateTo(center0 = p, l);
-      that = d3.select(that);
-      if (duration > 0) that = that.transition().duration(duration);
-      that.call(zoom.event);
-    }
-    function rescale() {
-      if (x1) x1.domain(x0.range().map(function(x) {
-        return (x - view.x) / view.k;
-      }).map(x0.invert));
-      if (y1) y1.domain(y0.range().map(function(y) {
-        return (y - view.y) / view.k;
-      }).map(y0.invert));
-    }
-    function zoomstarted(dispatch) {
-      if (!zooming++) dispatch({
-        type: "zoomstart"
-      });
-    }
-    function zoomed(dispatch) {
-      rescale();
-      dispatch({
-        type: "zoom",
-        scale: view.k,
-        translate: [ view.x, view.y ]
-      });
-    }
-    function zoomended(dispatch) {
-      if (!--zooming) dispatch({
-        type: "zoomend"
-      }), center0 = null;
-    }
-    function mousedowned() {
-      var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);
-      d3_selection_interrupt.call(that);
-      zoomstarted(dispatch);
-      function moved() {
-        dragged = 1;
-        translateTo(d3.mouse(that), location0);
-        zoomed(dispatch);
-      }
-      function ended() {
-        subject.on(mousemove, null).on(mouseup, null);
-        dragRestore(dragged);
-        zoomended(dispatch);
-      }
-    }
-    function touchstarted() {
-      var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);
-      started();
-      zoomstarted(dispatch);
-      subject.on(mousedown, null).on(touchstart, started);
-      function relocate() {
-        var touches = d3.touches(that);
-        scale0 = view.k;
-        touches.forEach(function(t) {
-          if (t.identifier in locations0) locations0[t.identifier] = location(t);
-        });
-        return touches;
-      }
-      function started() {
-        var target = d3.event.target;
-        d3.select(target).on(touchmove, moved).on(touchend, ended);
-        targets.push(target);
-        var changed = d3.event.changedTouches;
-        for (var i = 0, n = changed.length; i < n; ++i) {
-          locations0[changed[i].identifier] = null;
-        }
-        var touches = relocate(), now = Date.now();
-        if (touches.length === 1) {
-          if (now - touchtime < 500) {
-            var p = touches[0];
-            zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);
-            d3_eventPreventDefault();
-          }
-          touchtime = now;
-        } else if (touches.length > 1) {
-          var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];
-          distance0 = dx * dx + dy * dy;
-        }
-      }
-      function moved() {
-        var touches = d3.touches(that), p0, l0, p1, l1;
-        d3_selection_interrupt.call(that);
-        for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
-          p1 = touches[i];
-          if (l1 = locations0[p1.identifier]) {
-            if (l0) break;
-            p0 = p1, l0 = l1;
-          }
-        }
-        if (l1) {
-          var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);
-          p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
-          l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
-          scaleTo(scale1 * scale0);
-        }
-        touchtime = null;
-        translateTo(p0, l0);
-        zoomed(dispatch);
-      }
-      function ended() {
-        if (d3.event.touches.length) {
-          var changed = d3.event.changedTouches;
-          for (var i = 0, n = changed.length; i < n; ++i) {
-            delete locations0[changed[i].identifier];
-          }
-          for (var identifier in locations0) {
-            return void relocate();
-          }
-        }
-        d3.selectAll(targets).on(zoomName, null);
-        subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
-        dragRestore();
-        zoomended(dispatch);
-      }
-    }
-    function mousewheeled() {
-      var dispatch = event.of(this, arguments);
-      if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this),
-      translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);
-      mousewheelTimer = setTimeout(function() {
-        mousewheelTimer = null;
-        zoomended(dispatch);
-      }, 50);
-      d3_eventPreventDefault();
-      scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
-      translateTo(center0, translate0);
-      zoomed(dispatch);
-    }
-    function dblclicked() {
-      var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;
-      zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);
-    }
-    return d3.rebind(zoom, event, "on");
-  };
-  var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;
-  d3.color = d3_color;
-  function d3_color() {}
-  d3_color.prototype.toString = function() {
-    return this.rgb() + "";
-  };
-  d3.hsl = d3_hsl;
-  function d3_hsl(h, s, l) {
-    return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);
-  }
-  var d3_hslPrototype = d3_hsl.prototype = new d3_color();
-  d3_hslPrototype.brighter = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return new d3_hsl(this.h, this.s, this.l / k);
-  };
-  d3_hslPrototype.darker = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return new d3_hsl(this.h, this.s, k * this.l);
-  };
-  d3_hslPrototype.rgb = function() {
-    return d3_hsl_rgb(this.h, this.s, this.l);
-  };
-  function d3_hsl_rgb(h, s, l) {
-    var m1, m2;
-    h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;
-    s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;
-    l = l < 0 ? 0 : l > 1 ? 1 : l;
-    m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
-    m1 = 2 * l - m2;
-    function v(h) {
-      if (h > 360) h -= 360; else if (h < 0) h += 360;
-      if (h < 60) return m1 + (m2 - m1) * h / 60;
-      if (h < 180) return m2;
-      if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
-      return m1;
-    }
-    function vv(h) {
-      return Math.round(v(h) * 255);
-    }
-    return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));
-  }
-  d3.hcl = d3_hcl;
-  function d3_hcl(h, c, l) {
-    return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);
-  }
-  var d3_hclPrototype = d3_hcl.prototype = new d3_color();
-  d3_hclPrototype.brighter = function(k) {
-    return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
-  };
-  d3_hclPrototype.darker = function(k) {
-    return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
-  };
-  d3_hclPrototype.rgb = function() {
-    return d3_hcl_lab(this.h, this.c, this.l).rgb();
-  };
-  function d3_hcl_lab(h, c, l) {
-    if (isNaN(h)) h = 0;
-    if (isNaN(c)) c = 0;
-    return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
-  }
-  d3.lab = d3_lab;
-  function d3_lab(l, a, b) {
-    return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);
-  }
-  var d3_lab_K = 18;
-  var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
-  var d3_labPrototype = d3_lab.prototype = new d3_color();
-  d3_labPrototype.brighter = function(k) {
-    return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-  d3_labPrototype.darker = function(k) {
-    return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
-  };
-  d3_labPrototype.rgb = function() {
-    return d3_lab_rgb(this.l, this.a, this.b);
-  };
-  function d3_lab_rgb(l, a, b) {
-    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
-    x = d3_lab_xyz(x) * d3_lab_X;
-    y = d3_lab_xyz(y) * d3_lab_Y;
-    z = d3_lab_xyz(z) * d3_lab_Z;
-    return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
-  }
-  function d3_lab_hcl(l, a, b) {
-    return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);
-  }
-  function d3_lab_xyz(x) {
-    return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
-  }
-  function d3_xyz_lab(x) {
-    return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
-  }
-  function d3_xyz_rgb(r) {
-    return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
-  }
-  d3.rgb = d3_rgb;
-  function d3_rgb(r, g, b) {
-    return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);
-  }
-  function d3_rgbNumber(value) {
-    return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);
-  }
-  function d3_rgbString(value) {
-    return d3_rgbNumber(value) + "";
-  }
-  var d3_rgbPrototype = d3_rgb.prototype = new d3_color();
-  d3_rgbPrototype.brighter = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    var r = this.r, g = this.g, b = this.b, i = 30;
-    if (!r && !g && !b) return new d3_rgb(i, i, i);
-    if (r && r < i) r = i;
-    if (g && g < i) g = i;
-    if (b && b < i) b = i;
-    return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));
-  };
-  d3_rgbPrototype.darker = function(k) {
-    k = Math.pow(.7, arguments.length ? k : 1);
-    return new d3_rgb(k * this.r, k * this.g, k * this.b);
-  };
-  d3_rgbPrototype.hsl = function() {
-    return d3_rgb_hsl(this.r, this.g, this.b);
-  };
-  d3_rgbPrototype.toString = function() {
-    return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
-  };
-  function d3_rgb_hex(v) {
-    return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
-  }
-  function d3_rgb_parse(format, rgb, hsl) {
-    var r = 0, g = 0, b = 0, m1, m2, color;
-    m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase());
-    if (m1) {
-      m2 = m1[2].split(",");
-      switch (m1[1]) {
-       case "hsl":
-        {
-          return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
-        }
-
-       case "rgb":
-        {
-          return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
-        }
-      }
-    }
-    if (color = d3_rgb_names.get(format)) {
-      return rgb(color.r, color.g, color.b);
-    }
-    if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) {
-      if (format.length === 4) {
-        r = (color & 3840) >> 4;
-        r = r >> 4 | r;
-        g = color & 240;
-        g = g >> 4 | g;
-        b = color & 15;
-        b = b << 4 | b;
-      } else if (format.length === 7) {
-        r = (color & 16711680) >> 16;
-        g = (color & 65280) >> 8;
-        b = color & 255;
-      }
-    }
-    return rgb(r, g, b);
-  }
-  function d3_rgb_hsl(r, g, b) {
-    var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
-    if (d) {
-      s = l < .5 ? d / (max + min) : d / (2 - max - min);
-      if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
-      h *= 60;
-    } else {
-      h = NaN;
-      s = l > 0 && l < 1 ? 0 : h;
-    }
-    return new d3_hsl(h, s, l);
-  }
-  function d3_rgb_lab(r, g, b) {
-    r = d3_rgb_xyz(r);
-    g = d3_rgb_xyz(g);
-    b = d3_rgb_xyz(b);
-    var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
-    return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
-  }
-  function d3_rgb_xyz(r) {
-    return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
-  }
-  function d3_rgb_parseNumber(c) {
-    var f = parseFloat(c);
-    return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
-  }
-  var d3_rgb_names = d3.map({
-    aliceblue: 15792383,
-    antiquewhite: 16444375,
-    aqua: 65535,
-    aquamarine: 8388564,
-    azure: 15794175,
-    beige: 16119260,
-    bisque: 16770244,
-    black: 0,
-    blanchedalmond: 16772045,
-    blue: 255,
-    blueviolet: 9055202,
-    brown: 10824234,
-    burlywood: 14596231,
-    cadetblue: 6266528,
-    chartreuse: 8388352,
-    chocolate: 13789470,
-    coral: 16744272,
-    cornflowerblue: 6591981,
-    cornsilk: 16775388,
-    crimson: 14423100,
-    cyan: 65535,
-    darkblue: 139,
-    darkcyan: 35723,
-    darkgoldenrod: 12092939,
-    darkgray: 11119017,
-    darkgreen: 25600,
-    darkgrey: 11119017,
-    darkkhaki: 12433259,
-    darkmagenta: 9109643,
-    darkolivegreen: 5597999,
-    darkorange: 16747520,
-    darkorchid: 10040012,
-    darkred: 9109504,
-    darksalmon: 15308410,
-    darkseagreen: 9419919,
-    darkslateblue: 4734347,
-    darkslategray: 3100495,
-    darkslategrey: 3100495,
-    darkturquoise: 52945,
-    darkviolet: 9699539,
-    deeppink: 16716947,
-    deepskyblue: 49151,
-    dimgray: 6908265,
-    dimgrey: 6908265,
-    dodgerblue: 2003199,
-    firebrick: 11674146,
-    floralwhite: 16775920,
-    forestgreen: 2263842,
-    fuchsia: 16711935,
-    gainsboro: 14474460,
-    ghostwhite: 16316671,
-    gold: 16766720,
-    goldenrod: 14329120,
-    gray: 8421504,
-    green: 32768,
-    greenyellow: 11403055,
-    grey: 8421504,
-    honeydew: 15794160,
-    hotpink: 16738740,
-    indianred: 13458524,
-    indigo: 4915330,
-    ivory: 16777200,
-    khaki: 15787660,
-    lavender: 15132410,
-    lavenderblush: 16773365,
-    lawngreen: 8190976,
-    lemonchiffon: 16775885,
-    lightblue: 11393254,
-    lightcoral: 15761536,
-    lightcyan: 14745599,
-    lightgoldenrodyellow: 16448210,
-    lightgray: 13882323,
-    lightgreen: 9498256,
-    lightgrey: 13882323,
-    lightpink: 16758465,
-    lightsalmon: 16752762,
-    lightseagreen: 2142890,
-    lightskyblue: 8900346,
-    lightslategray: 7833753,
-    lightslategrey: 7833753,
-    lightsteelblue: 11584734,
-    lightyellow: 16777184,
-    lime: 65280,
-    limegreen: 3329330,
-    linen: 16445670,
-    magenta: 16711935,
-    maroon: 8388608,
-    mediumaquamarine: 6737322,
-    mediumblue: 205,
-    mediumorchid: 12211667,
-    mediumpurple: 9662683,
-    mediumseagreen: 3978097,
-    mediumslateblue: 8087790,
-    mediumspringgreen: 64154,
-    mediumturquoise: 4772300,
-    mediumvioletred: 13047173,
-    midnightblue: 1644912,
-    mintcream: 16121850,
-    mistyrose: 16770273,
-    moccasin: 16770229,
-    navajowhite: 16768685,
-    navy: 128,
-    oldlace: 16643558,
-    olive: 8421376,
-    olivedrab: 7048739,
-    orange: 16753920,
-    orangered: 16729344,
-    orchid: 14315734,
-    palegoldenrod: 15657130,
-    palegreen: 10025880,
-    paleturquoise: 11529966,
-    palevioletred: 14381203,
-    papayawhip: 16773077,
-    peachpuff: 16767673,
-    peru: 13468991,
-    pink: 16761035,
-    plum: 14524637,
-    powderblue: 11591910,
-    purple: 8388736,
-    rebeccapurple: 6697881,
-    red: 16711680,
-    rosybrown: 12357519,
-    royalblue: 4286945,
-    saddlebrown: 9127187,
-    salmon: 16416882,
-    sandybrown: 16032864,
-    seagreen: 3050327,
-    seashell: 16774638,
-    sienna: 10506797,
-    silver: 12632256,
-    skyblue: 8900331,
-    slateblue: 6970061,
-    slategray: 7372944,
-    slategrey: 7372944,
-    snow: 16775930,
-    springgreen: 65407,
-    steelblue: 4620980,
-    tan: 13808780,
-    teal: 32896,
-    thistle: 14204888,
-    tomato: 16737095,
-    turquoise: 4251856,
-    violet: 15631086,
-    wheat: 16113331,
-    white: 16777215,
-    whitesmoke: 16119285,
-    yellow: 16776960,
-    yellowgreen: 10145074
-  });
-  d3_rgb_names.forEach(function(key, value) {
-    d3_rgb_names.set(key, d3_rgbNumber(value));
-  });
-  function d3_functor(v) {
-    return typeof v === "function" ? v : function() {
-      return v;
-    };
-  }
-  d3.functor = d3_functor;
-  d3.xhr = d3_xhrType(d3_identity);
-  function d3_xhrType(response) {
-    return function(url, mimeType, callback) {
-      if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
-      mimeType = null;
-      return d3_xhr(url, mimeType, response, callback);
-    };
-  }
-  function d3_xhr(url, mimeType, response, callback) {
-    var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null;
-    if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest();
-    "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
-      request.readyState > 3 && respond();
-    };
-    function respond() {
-      var status = request.status, result;
-      if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {
-        try {
-          result = response.call(xhr, request);
-        } catch (e) {
-          dispatch.error.call(xhr, e);
-          return;
-        }
-        dispatch.load.call(xhr, result);
-      } else {
-        dispatch.error.call(xhr, request);
-      }
-    }
-    request.onprogress = function(event) {
-      var o = d3.event;
-      d3.event = event;
-      try {
-        dispatch.progress.call(xhr, request);
-      } finally {
-        d3.event = o;
-      }
-    };
-    xhr.header = function(name, value) {
-      name = (name + "").toLowerCase();
-      if (arguments.length < 2) return headers[name];
-      if (value == null) delete headers[name]; else headers[name] = value + "";
-      return xhr;
-    };
-    xhr.mimeType = function(value) {
-      if (!arguments.length) return mimeType;
-      mimeType = value == null ? null : value + "";
-      return xhr;
-    };
-    xhr.responseType = function(value) {
-      if (!arguments.length) return responseType;
-      responseType = value;
-      return xhr;
-    };
-    xhr.response = function(value) {
-      response = value;
-      return xhr;
-    };
-    [ "get", "post" ].forEach(function(method) {
-      xhr[method] = function() {
-        return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
-      };
-    });
-    xhr.send = function(method, data, callback) {
-      if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
-      request.open(method, url, true);
-      if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
-      if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
-      if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
-      if (responseType != null) request.responseType = responseType;
-      if (callback != null) xhr.on("error", callback).on("load", function(request) {
-        callback(null, request);
-      });
-      dispatch.beforesend.call(xhr, request);
-      request.send(data == null ? null : data);
-      return xhr;
-    };
-    xhr.abort = function() {
-      request.abort();
-      return xhr;
-    };
-    d3.rebind(xhr, dispatch, "on");
-    return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
-  }
-  function d3_xhr_fixCallback(callback) {
-    return callback.length === 1 ? function(error, request) {
-      callback(error == null ? request : null);
-    } : callback;
-  }
-  function d3_xhrHasResponse(request) {
-    var type = request.responseType;
-    return type && type !== "text" ? request.response : request.responseText;
-  }
-  d3.dsv = function(delimiter, mimeType) {
-    var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
-    function dsv(url, row, callback) {
-      if (arguments.length < 3) callback = row, row = null;
-      var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);
-      xhr.row = function(_) {
-        return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;
-      };
-      return xhr;
-    }
-    function response(request) {
-      return dsv.parse(request.responseText);
-    }
-    function typedResponse(f) {
-      return function(request) {
-        return dsv.parse(request.responseText, f);
-      };
-    }
-    dsv.parse = function(text, f) {
-      var o;
-      return dsv.parseRows(text, function(row, i) {
-        if (o) return o(row, i - 1);
-        var a = new Function("d", "return {" + row.map(function(name, i) {
-          return JSON.stringify(name) + ": d[" + i + "]";
-        }).join(",") + "}");
-        o = f ? function(row, i) {
-          return f(a(row), i);
-        } : a;
-      });
-    };
-    dsv.parseRows = function(text, f) {
-      var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
-      function token() {
-        if (I >= N) return EOF;
-        if (eol) return eol = false, EOL;
-        var j = I;
-        if (text.charCodeAt(j) === 34) {
-          var i = j;
-          while (i++ < N) {
-            if (text.charCodeAt(i) === 34) {
-              if (text.charCodeAt(i + 1) !== 34) break;
-              ++i;
-            }
-          }
-          I = i + 2;
-          var c = text.charCodeAt(i + 1);
-          if (c === 13) {
-            eol = true;
-            if (text.charCodeAt(i + 2) === 10) ++I;
-          } else if (c === 10) {
-            eol = true;
-          }
-          return text.slice(j + 1, i).replace(/""/g, '"');
-        }
-        while (I < N) {
-          var c = text.charCodeAt(I++), k = 1;
-          if (c === 10) eol = true; else if (c === 13) {
-            eol = true;
-            if (text.charCodeAt(I) === 10) ++I, ++k;
-          } else if (c !== delimiterCode) continue;
-          return text.slice(j, I - k);
-        }
-        return text.slice(j);
-      }
-      while ((t = token()) !== EOF) {
-        var a = [];
-        while (t !== EOL && t !== EOF) {
-          a.push(t);
-          t = token();
-        }
-        if (f && (a = f(a, n++)) == null) continue;
-        rows.push(a);
-      }
-      return rows;
-    };
-    dsv.format = function(rows) {
-      if (Array.isArray(rows[0])) return dsv.formatRows(rows);
-      var fieldSet = new d3_Set(), fields = [];
-      rows.forEach(function(row) {
-        for (var field in row) {
-          if (!fieldSet.has(field)) {
-            fields.push(fieldSet.add(field));
-          }
-        }
-      });
-      return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {
-        return fields.map(function(field) {
-          return formatValue(row[field]);
-        }).join(delimiter);
-      })).join("\n");
-    };
-    dsv.formatRows = function(rows) {
-      return rows.map(formatRow).join("\n");
-    };
-    function formatRow(row) {
-      return row.map(formatValue).join(delimiter);
-    }
-    function formatValue(text) {
-      return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
-    }
-    return dsv;
-  };
-  d3.csv = d3.dsv(",", "text/csv");
-  d3.tsv = d3.dsv("	", "text/tab-separated-values");
-  var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) {
-    setTimeout(callback, 17);
-  };
-  d3.timer = function() {
-    d3_timer.apply(this, arguments);
-  };
-  function d3_timer(callback, delay, then) {
-    var n = arguments.length;
-    if (n < 2) delay = 0;
-    if (n < 3) then = Date.now();
-    var time = then + delay, timer = {
-      c: callback,
-      t: time,
-      n: null
-    };
-    if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;
-    d3_timer_queueTail = timer;
-    if (!d3_timer_interval) {
-      d3_timer_timeout = clearTimeout(d3_timer_timeout);
-      d3_timer_interval = 1;
-      d3_timer_frame(d3_timer_step);
-    }
-    return timer;
-  }
-  function d3_timer_step() {
-    var now = d3_timer_mark(), delay = d3_timer_sweep() - now;
-    if (delay > 24) {
-      if (isFinite(delay)) {
-        clearTimeout(d3_timer_timeout);
-        d3_timer_timeout = setTimeout(d3_timer_step, delay);
-      }
-      d3_timer_interval = 0;
-    } else {
-      d3_timer_interval = 1;
-      d3_timer_frame(d3_timer_step);
-    }
-  }
-  d3.timer.flush = function() {
-    d3_timer_mark();
-    d3_timer_sweep();
-  };
-  function d3_timer_mark() {
-    var now = Date.now(), timer = d3_timer_queueHead;
-    while (timer) {
-      if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;
-      timer = timer.n;
-    }
-    return now;
-  }
-  function d3_timer_sweep() {
-    var t0, t1 = d3_timer_queueHead, time = Infinity;
-    while (t1) {
-      if (t1.c) {
-        if (t1.t < time) time = t1.t;
-        t1 = (t0 = t1).n;
-      } else {
-        t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
-      }
-    }
-    d3_timer_queueTail = t0;
-    return time;
-  }
-  function d3_format_precision(x, p) {
-    return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
-  }
-  d3.round = function(x, n) {
-    return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
-  };
-  var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
-  d3.formatPrefix = function(value, precision) {
-    var i = 0;
-    if (value = +value) {
-      if (value < 0) value *= -1;
-      if (precision) value = d3.round(value, d3_format_precision(value, precision));
-      i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
-      i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));
-    }
-    return d3_formatPrefixes[8 + i / 3];
-  };
-  function d3_formatPrefix(d, i) {
-    var k = Math.pow(10, abs(8 - i) * 3);
-    return {
-      scale: i > 8 ? function(d) {
-        return d / k;
-      } : function(d) {
-        return d * k;
-      },
-      symbol: d
-    };
-  }
-  function d3_locale_numberFormat(locale) {
-    var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {
-      var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;
-      while (i > 0 && g > 0) {
-        if (length + g + 1 > width) g = Math.max(1, width - length);
-        t.push(value.substring(i -= g, i + g));
-        if ((length += g + 1) > width) break;
-        g = locale_grouping[j = (j + 1) % locale_grouping.length];
-      }
-      return t.reverse().join(locale_thousands);
-    } : d3_identity;
-    return function(specifier) {
-      var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true;
-      if (precision) precision = +precision.substring(1);
-      if (zfill || fill === "0" && align === "=") {
-        zfill = fill = "0";
-        align = "=";
-      }
-      switch (type) {
-       case "n":
-        comma = true;
-        type = "g";
-        break;
-
-       case "%":
-        scale = 100;
-        suffix = "%";
-        type = "f";
-        break;
-
-       case "p":
-        scale = 100;
-        suffix = "%";
-        type = "r";
-        break;
-
-       case "b":
-       case "o":
-       case "x":
-       case "X":
-        if (symbol === "#") prefix = "0" + type.toLowerCase();
-
-       case "c":
-        exponent = false;
-
-       case "d":
-        integer = true;
-        precision = 0;
-        break;
-
-       case "s":
-        scale = -1;
-        type = "r";
-        break;
-      }
-      if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1];
-      if (type == "r" && !precision) type = "g";
-      if (precision != null) {
-        if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision));
-      }
-      type = d3_format_types.get(type) || d3_format_typeDefault;
-      var zcomma = zfill && comma;
-      return function(value) {
-        var fullSuffix = suffix;
-        if (integer && value % 1) return "";
-        var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign;
-        if (scale < 0) {
-          var unit = d3.formatPrefix(value, precision);
-          value = unit.scale(value);
-          fullSuffix = unit.symbol + suffix;
-        } else {
-          value *= scale;
-        }
-        value = type(value, precision);
-        var i = value.lastIndexOf("."), before, after;
-        if (i < 0) {
-          var j = exponent ? value.lastIndexOf("e") : -1;
-          if (j < 0) before = value, after = ""; else before = value.substring(0, j), after = value.substring(j);
-        } else {
-          before = value.substring(0, i);
-          after = locale_decimal + value.substring(i + 1);
-        }
-        if (!zfill && comma) before = formatGroup(before, Infinity);
-        var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
-        if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);
-        negative += prefix;
-        value = before + after;
-        return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;
-      };
-    };
-  }
-  var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;
-  var d3_format_types = d3.map({
-    b: function(x) {
-      return x.toString(2);
-    },
-    c: function(x) {
-      return String.fromCharCode(x);
-    },
-    o: function(x) {
-      return x.toString(8);
-    },
-    x: function(x) {
-      return x.toString(16);
-    },
-    X: function(x) {
-      return x.toString(16).toUpperCase();
-    },
-    g: function(x, p) {
-      return x.toPrecision(p);
-    },
-    e: function(x, p) {
-      return x.toExponential(p);
-    },
-    f: function(x, p) {
-      return x.toFixed(p);
-    },
-    r: function(x, p) {
-      return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
-    }
-  });
-  function d3_format_typeDefault(x) {
-    return x + "";
-  }
-  var d3_time = d3.time = {}, d3_date = Date;
-  function d3_date_utc() {
-    this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
-  }
-  d3_date_utc.prototype = {
-    getDate: function() {
-      return this._.getUTCDate();
-    },
-    getDay: function() {
-      return this._.getUTCDay();
-    },
-    getFullYear: function() {
-      return this._.getUTCFullYear();
-    },
-    getHours: function() {
-      return this._.getUTCHours();
-    },
-    getMilliseconds: function() {
-      return this._.getUTCMilliseconds();
-    },
-    getMinutes: function() {
-      return this._.getUTCMinutes();
-    },
-    getMonth: function() {
-      return this._.getUTCMonth();
-    },
-    getSeconds: function() {
-      return this._.getUTCSeconds();
-    },
-    getTime: function() {
-      return this._.getTime();
-    },
-    getTimezoneOffset: function() {
-      return 0;
-    },
-    valueOf: function() {
-      return this._.valueOf();
-    },
-    setDate: function() {
-      d3_time_prototype.setUTCDate.apply(this._, arguments);
-    },
-    setDay: function() {
-      d3_time_prototype.setUTCDay.apply(this._, arguments);
-    },
-    setFullYear: function() {
-      d3_time_prototype.setUTCFullYear.apply(this._, arguments);
-    },
-    setHours: function() {
-      d3_time_prototype.setUTCHours.apply(this._, arguments);
-    },
-    setMilliseconds: function() {
-      d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
-    },
-    setMinutes: function() {
-      d3_time_prototype.setUTCMinutes.apply(this._, arguments);
-    },
-    setMonth: function() {
-      d3_time_prototype.setUTCMonth.apply(this._, arguments);
-    },
-    setSeconds: function() {
-      d3_time_prototype.setUTCSeconds.apply(this._, arguments);
-    },
-    setTime: function() {
-      d3_time_prototype.setTime.apply(this._, arguments);
-    }
-  };
-  var d3_time_prototype = Date.prototype;
-  function d3_time_interval(local, step, number) {
-    function round(date) {
-      var d0 = local(date), d1 = offset(d0, 1);
-      return date - d0 < d1 - date ? d0 : d1;
-    }
-    function ceil(date) {
-      step(date = local(new d3_date(date - 1)), 1);
-      return date;
-    }
-    function offset(date, k) {
-      step(date = new d3_date(+date), k);
-      return date;
-    }
-    function range(t0, t1, dt) {
-      var time = ceil(t0), times = [];
-      if (dt > 1) {
-        while (time < t1) {
-          if (!(number(time) % dt)) times.push(new Date(+time));
-          step(time, 1);
-        }
-      } else {
-        while (time < t1) times.push(new Date(+time)), step(time, 1);
-      }
-      return times;
-    }
-    function range_utc(t0, t1, dt) {
-      try {
-        d3_date = d3_date_utc;
-        var utc = new d3_date_utc();
-        utc._ = t0;
-        return range(utc, t1, dt);
-      } finally {
-        d3_date = Date;
-      }
-    }
-    local.floor = local;
-    local.round = round;
-    local.ceil = ceil;
-    local.offset = offset;
-    local.range = range;
-    var utc = local.utc = d3_time_interval_utc(local);
-    utc.floor = utc;
-    utc.round = d3_time_interval_utc(round);
-    utc.ceil = d3_time_interval_utc(ceil);
-    utc.offset = d3_time_interval_utc(offset);
-    utc.range = range_utc;
-    return local;
-  }
-  function d3_time_interval_utc(method) {
-    return function(date, k) {
-      try {
-        d3_date = d3_date_utc;
-        var utc = new d3_date_utc();
-        utc._ = date;
-        return method(utc, k)._;
-      } finally {
-        d3_date = Date;
-      }
-    };
-  }
-  d3_time.year = d3_time_interval(function(date) {
-    date = d3_time.day(date);
-    date.setMonth(0, 1);
-    return date;
-  }, function(date, offset) {
-    date.setFullYear(date.getFullYear() + offset);
-  }, function(date) {
-    return date.getFullYear();
-  });
-  d3_time.years = d3_time.year.range;
-  d3_time.years.utc = d3_time.year.utc.range;
-  d3_time.day = d3_time_interval(function(date) {
-    var day = new d3_date(2e3, 0);
-    day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
-    return day;
-  }, function(date, offset) {
-    date.setDate(date.getDate() + offset);
-  }, function(date) {
-    return date.getDate() - 1;
-  });
-  d3_time.days = d3_time.day.range;
-  d3_time.days.utc = d3_time.day.utc.range;
-  d3_time.dayOfYear = function(date) {
-    var year = d3_time.year(date);
-    return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
-  };
-  [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) {
-    i = 7 - i;
-    var interval = d3_time[day] = d3_time_interval(function(date) {
-      (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
-      return date;
-    }, function(date, offset) {
-      date.setDate(date.getDate() + Math.floor(offset) * 7);
-    }, function(date) {
-      var day = d3_time.year(date).getDay();
-      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
-    });
-    d3_time[day + "s"] = interval.range;
-    d3_time[day + "s"].utc = interval.utc.range;
-    d3_time[day + "OfYear"] = function(date) {
-      var day = d3_time.year(date).getDay();
-      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);
-    };
-  });
-  d3_time.week = d3_time.sunday;
-  d3_time.weeks = d3_time.sunday.range;
-  d3_time.weeks.utc = d3_time.sunday.utc.range;
-  d3_time.weekOfYear = d3_time.sundayOfYear;
-  function d3_locale_timeFormat(locale) {
-    var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;
-    function d3_time_format(template) {
-      var n = template.length;
-      function format(date) {
-        var string = [], i = -1, j = 0, c, p, f;
-        while (++i < n) {
-          if (template.charCodeAt(i) === 37) {
-            string.push(template.slice(j, i));
-            if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
-            if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
-            string.push(c);
-            j = i + 1;
-          }
-        }
-        string.push(template.slice(j, i));
-        return string.join("");
-      }
-      format.parse = function(string) {
-        var d = {
-          y: 1900,
-          m: 0,
-          d: 1,
-          H: 0,
-          M: 0,
-          S: 0,
-          L: 0,
-          Z: null
-        }, i = d3_time_parse(d, template, string, 0);
-        if (i != string.length) return null;
-        if ("p" in d) d.H = d.H % 12 + d.p * 12;
-        var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();
-        if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("W" in d || "U" in d) {
-          if (!("w" in d)) d.w = "W" in d ? 1 : 0;
-          date.setFullYear(d.y, 0, 1);
-          date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);
-        } else date.setFullYear(d.y, d.m, d.d);
-        date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);
-        return localZ ? date._ : date;
-      };
-      format.toString = function() {
-        return template;
-      };
-      return format;
-    }
-    function d3_time_parse(date, template, string, j) {
-      var c, p, t, i = 0, n = template.length, m = string.length;
-      while (i < n) {
-        if (j >= m) return -1;
-        c = template.charCodeAt(i++);
-        if (c === 37) {
-          t = template.charAt(i++);
-          p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];
-          if (!p || (j = p(date, string, j)) < 0) return -1;
-        } else if (c != string.charCodeAt(j++)) {
-          return -1;
-        }
-      }
-      return j;
-    }
-    d3_time_format.utc = function(template) {
-      var local = d3_time_format(template);
-      function format(date) {
-        try {
-          d3_date = d3_date_utc;
-          var utc = new d3_date();
-          utc._ = date;
-          return local(utc);
-        } finally {
-          d3_date = Date;
-        }
-      }
-      format.parse = function(string) {
-        try {
-          d3_date = d3_date_utc;
-          var date = local.parse(string);
-          return date && date._;
-        } finally {
-          d3_date = Date;
-        }
-      };
-      format.toString = local.toString;
-      return format;
-    };
-    d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;
-    var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);
-    locale_periods.forEach(function(p, i) {
-      d3_time_periodLookup.set(p.toLowerCase(), i);
-    });
-    var d3_time_formats = {
-      a: function(d) {
-        return locale_shortDays[d.getDay()];
-      },
-      A: function(d) {
-        return locale_days[d.getDay()];
-      },
-      b: function(d) {
-        return locale_shortMonths[d.getMonth()];
-      },
-      B: function(d) {
-        return locale_months[d.getMonth()];
-      },
-      c: d3_time_format(locale_dateTime),
-      d: function(d, p) {
-        return d3_time_formatPad(d.getDate(), p, 2);
-      },
-      e: function(d, p) {
-        return d3_time_formatPad(d.getDate(), p, 2);
-      },
-      H: function(d, p) {
-        return d3_time_formatPad(d.getHours(), p, 2);
-      },
-      I: function(d, p) {
-        return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
-      },
-      j: function(d, p) {
-        return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);
-      },
-      L: function(d, p) {
-        return d3_time_formatPad(d.getMilliseconds(), p, 3);
-      },
-      m: function(d, p) {
-        return d3_time_formatPad(d.getMonth() + 1, p, 2);
-      },
-      M: function(d, p) {
-        return d3_time_formatPad(d.getMinutes(), p, 2);
-      },
-      p: function(d) {
-        return locale_periods[+(d.getHours() >= 12)];
-      },
-      S: function(d, p) {
-        return d3_time_formatPad(d.getSeconds(), p, 2);
-      },
-      U: function(d, p) {
-        return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);
-      },
-      w: function(d) {
-        return d.getDay();
-      },
-      W: function(d, p) {
-        return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);
-      },
-      x: d3_time_format(locale_date),
-      X: d3_time_format(locale_time),
-      y: function(d, p) {
-        return d3_time_formatPad(d.getFullYear() % 100, p, 2);
-      },
-      Y: function(d, p) {
-        return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
-      },
-      Z: d3_time_zone,
-      "%": function() {
-        return "%";
-      }
-    };
-    var d3_time_parsers = {
-      a: d3_time_parseWeekdayAbbrev,
-      A: d3_time_parseWeekday,
-      b: d3_time_parseMonthAbbrev,
-      B: d3_time_parseMonth,
-      c: d3_time_parseLocaleFull,
-      d: d3_time_parseDay,
-      e: d3_time_parseDay,
-      H: d3_time_parseHour24,
-      I: d3_time_parseHour24,
-      j: d3_time_parseDayOfYear,
-      L: d3_time_parseMilliseconds,
-      m: d3_time_parseMonthNumber,
-      M: d3_time_parseMinutes,
-      p: d3_time_parseAmPm,
-      S: d3_time_parseSeconds,
-      U: d3_time_parseWeekNumberSunday,
-      w: d3_time_parseWeekdayNumber,
-      W: d3_time_parseWeekNumberMonday,
-      x: d3_time_parseLocaleDate,
-      X: d3_time_parseLocaleTime,
-      y: d3_time_parseYear,
-      Y: d3_time_parseFullYear,
-      Z: d3_time_parseZone,
-      "%": d3_time_parseLiteralPercent
-    };
-    function d3_time_parseWeekdayAbbrev(date, string, i) {
-      d3_time_dayAbbrevRe.lastIndex = 0;
-      var n = d3_time_dayAbbrevRe.exec(string.slice(i));
-      return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-    }
-    function d3_time_parseWeekday(date, string, i) {
-      d3_time_dayRe.lastIndex = 0;
-      var n = d3_time_dayRe.exec(string.slice(i));
-      return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-    }
-    function d3_time_parseMonthAbbrev(date, string, i) {
-      d3_time_monthAbbrevRe.lastIndex = 0;
-      var n = d3_time_monthAbbrevRe.exec(string.slice(i));
-      return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-    }
-    function d3_time_parseMonth(date, string, i) {
-      d3_time_monthRe.lastIndex = 0;
-      var n = d3_time_monthRe.exec(string.slice(i));
-      return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
-    }
-    function d3_time_parseLocaleFull(date, string, i) {
-      return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
-    }
-    function d3_time_parseLocaleDate(date, string, i) {
-      return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
-    }
-    function d3_time_parseLocaleTime(date, string, i) {
-      return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
-    }
-    function d3_time_parseAmPm(date, string, i) {
-      var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());
-      return n == null ? -1 : (date.p = n, i);
-    }
-    return d3_time_format;
-  }
-  var d3_time_formatPads = {
-    "-": "",
-    _: " ",
-    "0": "0"
-  }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/;
-  function d3_time_formatPad(value, fill, width) {
-    var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length;
-    return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
-  }
-  function d3_time_formatRe(names) {
-    return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
-  }
-  function d3_time_formatLookup(names) {
-    var map = new d3_Map(), i = -1, n = names.length;
-    while (++i < n) map.set(names[i].toLowerCase(), i);
-    return map;
-  }
-  function d3_time_parseWeekdayNumber(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 1));
-    return n ? (date.w = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseWeekNumberSunday(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i));
-    return n ? (date.U = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseWeekNumberMonday(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i));
-    return n ? (date.W = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseFullYear(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 4));
-    return n ? (date.y = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseYear(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
-    return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;
-  }
-  function d3_time_parseZone(date, string, i) {
-    return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string,
-    i + 5) : -1;
-  }
-  function d3_time_expandYear(d) {
-    return d + (d > 68 ? 1900 : 2e3);
-  }
-  function d3_time_parseMonthNumber(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
-    return n ? (date.m = n[0] - 1, i + n[0].length) : -1;
-  }
-  function d3_time_parseDay(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
-    return n ? (date.d = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseDayOfYear(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 3));
-    return n ? (date.j = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseHour24(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
-    return n ? (date.H = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseMinutes(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
-    return n ? (date.M = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseSeconds(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
-    return n ? (date.S = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_parseMilliseconds(date, string, i) {
-    d3_time_numberRe.lastIndex = 0;
-    var n = d3_time_numberRe.exec(string.slice(i, i + 3));
-    return n ? (date.L = +n[0], i + n[0].length) : -1;
-  }
-  function d3_time_zone(d) {
-    var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60;
-    return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
-  }
-  function d3_time_parseLiteralPercent(date, string, i) {
-    d3_time_percentRe.lastIndex = 0;
-    var n = d3_time_percentRe.exec(string.slice(i, i + 1));
-    return n ? i + n[0].length : -1;
-  }
-  function d3_time_formatMulti(formats) {
-    var n = formats.length, i = -1;
-    while (++i < n) formats[i][0] = this(formats[i][0]);
-    return function(date) {
-      var i = 0, f = formats[i];
-      while (!f[1](date)) f = formats[++i];
-      return f[0](date);
-    };
-  }
-  d3.locale = function(locale) {
-    return {
-      numberFormat: d3_locale_numberFormat(locale),
-      timeFormat: d3_locale_timeFormat(locale)
-    };
-  };
-  var d3_locale_enUS = d3.locale({
-    decimal: ".",
-    thousands: ",",
-    grouping: [ 3 ],
-    currency: [ "$", "" ],
-    dateTime: "%a %b %e %X %Y",
-    date: "%m/%d/%Y",
-    time: "%H:%M:%S",
-    periods: [ "AM", "PM" ],
-    days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ],
-    shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ],
-    months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ],
-    shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
-  });
-  d3.format = d3_locale_enUS.numberFormat;
-  d3.geo = {};
-  function d3_adder() {}
-  d3_adder.prototype = {
-    s: 0,
-    t: 0,
-    add: function(y) {
-      d3_adderSum(y, this.t, d3_adderTemp);
-      d3_adderSum(d3_adderTemp.s, this.s, this);
-      if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;
-    },
-    reset: function() {
-      this.s = this.t = 0;
-    },
-    valueOf: function() {
-      return this.s;
-    }
-  };
-  var d3_adderTemp = new d3_adder();
-  function d3_adderSum(a, b, o) {
-    var x = o.s = a + b, bv = x - a, av = x - bv;
-    o.t = a - av + (b - bv);
-  }
-  d3.geo.stream = function(object, listener) {
-    if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
-      d3_geo_streamObjectType[object.type](object, listener);
-    } else {
-      d3_geo_streamGeometry(object, listener);
-    }
-  };
-  function d3_geo_streamGeometry(geometry, listener) {
-    if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
-      d3_geo_streamGeometryType[geometry.type](geometry, listener);
-    }
-  }
-  var d3_geo_streamObjectType = {
-    Feature: function(feature, listener) {
-      d3_geo_streamGeometry(feature.geometry, listener);
-    },
-    FeatureCollection: function(object, listener) {
-      var features = object.features, i = -1, n = features.length;
-      while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
-    }
-  };
-  var d3_geo_streamGeometryType = {
-    Sphere: function(object, listener) {
-      listener.sphere();
-    },
-    Point: function(object, listener) {
-      object = object.coordinates;
-      listener.point(object[0], object[1], object[2]);
-    },
-    MultiPoint: function(object, listener) {
-      var coordinates = object.coordinates, i = -1, n = coordinates.length;
-      while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);
-    },
-    LineString: function(object, listener) {
-      d3_geo_streamLine(object.coordinates, listener, 0);
-    },
-    MultiLineString: function(object, listener) {
-      var coordinates = object.coordinates, i = -1, n = coordinates.length;
-      while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
-    },
-    Polygon: function(object, listener) {
-      d3_geo_streamPolygon(object.coordinates, listener);
-    },
-    MultiPolygon: function(object, listener) {
-      var coordinates = object.coordinates, i = -1, n = coordinates.length;
-      while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
-    },
-    GeometryCollection: function(object, listener) {
-      var geometries = object.geometries, i = -1, n = geometries.length;
-      while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
-    }
-  };
-  function d3_geo_streamLine(coordinates, listener, closed) {
-    var i = -1, n = coordinates.length - closed, coordinate;
-    listener.lineStart();
-    while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);
-    listener.lineEnd();
-  }
-  function d3_geo_streamPolygon(coordinates, listener) {
-    var i = -1, n = coordinates.length;
-    listener.polygonStart();
-    while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
-    listener.polygonEnd();
-  }
-  d3.geo.area = function(object) {
-    d3_geo_areaSum = 0;
-    d3.geo.stream(object, d3_geo_area);
-    return d3_geo_areaSum;
-  };
-  var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();
-  var d3_geo_area = {
-    sphere: function() {
-      d3_geo_areaSum += 4 * π;
-    },
-    point: d3_noop,
-    lineStart: d3_noop,
-    lineEnd: d3_noop,
-    polygonStart: function() {
-      d3_geo_areaRingSum.reset();
-      d3_geo_area.lineStart = d3_geo_areaRingStart;
-    },
-    polygonEnd: function() {
-      var area = 2 * d3_geo_areaRingSum;
-      d3_geo_areaSum += area < 0 ? 4 * π + area : area;
-      d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
-    }
-  };
-  function d3_geo_areaRingStart() {
-    var λ00, φ00, λ0, cosφ0, sinφ0;
-    d3_geo_area.point = function(λ, φ) {
-      d3_geo_area.point = nextPoint;
-      λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
-      sinφ0 = Math.sin(φ);
-    };
-    function nextPoint(λ, φ) {
-      λ *= d3_radians;
-      φ = φ * d3_radians / 2 + π / 4;
-      var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);
-      d3_geo_areaRingSum.add(Math.atan2(v, u));
-      λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
-    }
-    d3_geo_area.lineEnd = function() {
-      nextPoint(λ00, φ00);
-    };
-  }
-  function d3_geo_cartesian(spherical) {
-    var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
-    return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
-  }
-  function d3_geo_cartesianDot(a, b) {
-    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
-  }
-  function d3_geo_cartesianCross(a, b) {
-    return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
-  }
-  function d3_geo_cartesianAdd(a, b) {
-    a[0] += b[0];
-    a[1] += b[1];
-    a[2] += b[2];
-  }
-  function d3_geo_cartesianScale(vector, k) {
-    return [ vector[0] * k, vector[1] * k, vector[2] * k ];
-  }
-  function d3_geo_cartesianNormalize(d) {
-    var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
-    d[0] /= l;
-    d[1] /= l;
-    d[2] /= l;
-  }
-  function d3_geo_spherical(cartesian) {
-    return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];
-  }
-  function d3_geo_sphericalEqual(a, b) {
-    return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;
-  }
-  d3.geo.bounds = function() {
-    var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;
-    var bound = {
-      point: point,
-      lineStart: lineStart,
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        bound.point = ringPoint;
-        bound.lineStart = ringStart;
-        bound.lineEnd = ringEnd;
-        dλSum = 0;
-        d3_geo_area.polygonStart();
-      },
-      polygonEnd: function() {
-        d3_geo_area.polygonEnd();
-        bound.point = point;
-        bound.lineStart = lineStart;
-        bound.lineEnd = lineEnd;
-        if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;
-        range[0] = λ0, range[1] = λ1;
-      }
-    };
-    function point(λ, φ) {
-      ranges.push(range = [ λ0 = λ, λ1 = λ ]);
-      if (φ < φ0) φ0 = φ;
-      if (φ > φ1) φ1 = φ;
-    }
-    function linePoint(λ, φ) {
-      var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);
-      if (p0) {
-        var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);
-        d3_geo_cartesianNormalize(inflection);
-        inflection = d3_geo_spherical(inflection);
-        var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;
-        if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
-          var φi = inflection[1] * d3_degrees;
-          if (φi > φ1) φ1 = φi;
-        } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
-          var φi = -inflection[1] * d3_degrees;
-          if (φi < φ0) φ0 = φi;
-        } else {
-          if (φ < φ0) φ0 = φ;
-          if (φ > φ1) φ1 = φ;
-        }
-        if (antimeridian) {
-          if (λ < λ_) {
-            if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
-          } else {
-            if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
-          }
-        } else {
-          if (λ1 >= λ0) {
-            if (λ < λ0) λ0 = λ;
-            if (λ > λ1) λ1 = λ;
-          } else {
-            if (λ > λ_) {
-              if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
-            } else {
-              if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
-            }
-          }
-        }
-      } else {
-        point(λ, φ);
-      }
-      p0 = p, λ_ = λ;
-    }
-    function lineStart() {
-      bound.point = linePoint;
-    }
-    function lineEnd() {
-      range[0] = λ0, range[1] = λ1;
-      bound.point = point;
-      p0 = null;
-    }
-    function ringPoint(λ, φ) {
-      if (p0) {
-        var dλ = λ - λ_;
-        dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
-      } else λ__ = λ, φ__ = φ;
-      d3_geo_area.point(λ, φ);
-      linePoint(λ, φ);
-    }
-    function ringStart() {
-      d3_geo_area.lineStart();
-    }
-    function ringEnd() {
-      ringPoint(λ__, φ__);
-      d3_geo_area.lineEnd();
-      if (abs(dλSum) > ε) λ0 = -(λ1 = 180);
-      range[0] = λ0, range[1] = λ1;
-      p0 = null;
-    }
-    function angle(λ0, λ1) {
-      return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;
-    }
-    function compareRanges(a, b) {
-      return a[0] - b[0];
-    }
-    function withinRange(x, range) {
-      return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
-    }
-    return function(feature) {
-      φ1 = λ1 = -(λ0 = φ0 = Infinity);
-      ranges = [];
-      d3.geo.stream(feature, bound);
-      var n = ranges.length;
-      if (n) {
-        ranges.sort(compareRanges);
-        for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {
-          b = ranges[i];
-          if (withinRange(b[0], a) || withinRange(b[1], a)) {
-            if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
-            if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
-          } else {
-            merged.push(a = b);
-          }
-        }
-        var best = -Infinity, dλ;
-        for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {
-          b = merged[i];
-          if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];
-        }
-      }
-      ranges = range = null;
-      return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];
-    };
-  }();
-  d3.geo.centroid = function(object) {
-    d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
-    d3.geo.stream(object, d3_geo_centroid);
-    var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;
-    if (m < ε2) {
-      x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;
-      if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;
-      m = x * x + y * y + z * z;
-      if (m < ε2) return [ NaN, NaN ];
-    }
-    return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];
-  };
-  var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;
-  var d3_geo_centroid = {
-    sphere: d3_noop,
-    point: d3_geo_centroidPoint,
-    lineStart: d3_geo_centroidLineStart,
-    lineEnd: d3_geo_centroidLineEnd,
-    polygonStart: function() {
-      d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
-    },
-    polygonEnd: function() {
-      d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
-    }
-  };
-  function d3_geo_centroidPoint(λ, φ) {
-    λ *= d3_radians;
-    var cosφ = Math.cos(φ *= d3_radians);
-    d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));
-  }
-  function d3_geo_centroidPointXYZ(x, y, z) {
-    ++d3_geo_centroidW0;
-    d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;
-    d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;
-    d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;
-  }
-  function d3_geo_centroidLineStart() {
-    var x0, y0, z0;
-    d3_geo_centroid.point = function(λ, φ) {
-      λ *= d3_radians;
-      var cosφ = Math.cos(φ *= d3_radians);
-      x0 = cosφ * Math.cos(λ);
-      y0 = cosφ * Math.sin(λ);
-      z0 = Math.sin(φ);
-      d3_geo_centroid.point = nextPoint;
-      d3_geo_centroidPointXYZ(x0, y0, z0);
-    };
-    function nextPoint(λ, φ) {
-      λ *= d3_radians;
-      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
-      d3_geo_centroidW1 += w;
-      d3_geo_centroidX1 += w * (x0 + (x0 = x));
-      d3_geo_centroidY1 += w * (y0 + (y0 = y));
-      d3_geo_centroidZ1 += w * (z0 + (z0 = z));
-      d3_geo_centroidPointXYZ(x0, y0, z0);
-    }
-  }
-  function d3_geo_centroidLineEnd() {
-    d3_geo_centroid.point = d3_geo_centroidPoint;
-  }
-  function d3_geo_centroidRingStart() {
-    var λ00, φ00, x0, y0, z0;
-    d3_geo_centroid.point = function(λ, φ) {
-      λ00 = λ, φ00 = φ;
-      d3_geo_centroid.point = nextPoint;
-      λ *= d3_radians;
-      var cosφ = Math.cos(φ *= d3_radians);
-      x0 = cosφ * Math.cos(λ);
-      y0 = cosφ * Math.sin(λ);
-      z0 = Math.sin(φ);
-      d3_geo_centroidPointXYZ(x0, y0, z0);
-    };
-    d3_geo_centroid.lineEnd = function() {
-      nextPoint(λ00, φ00);
-      d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
-      d3_geo_centroid.point = d3_geo_centroidPoint;
-    };
-    function nextPoint(λ, φ) {
-      λ *= d3_radians;
-      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);
-      d3_geo_centroidX2 += v * cx;
-      d3_geo_centroidY2 += v * cy;
-      d3_geo_centroidZ2 += v * cz;
-      d3_geo_centroidW1 += w;
-      d3_geo_centroidX1 += w * (x0 + (x0 = x));
-      d3_geo_centroidY1 += w * (y0 + (y0 = y));
-      d3_geo_centroidZ1 += w * (z0 + (z0 = z));
-      d3_geo_centroidPointXYZ(x0, y0, z0);
-    }
-  }
-  function d3_geo_compose(a, b) {
-    function compose(x, y) {
-      return x = a(x, y), b(x[0], x[1]);
-    }
-    if (a.invert && b.invert) compose.invert = function(x, y) {
-      return x = b.invert(x, y), x && a.invert(x[0], x[1]);
-    };
-    return compose;
-  }
-  function d3_true() {
-    return true;
-  }
-  function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {
-    var subject = [], clip = [];
-    segments.forEach(function(segment) {
-      if ((n = segment.length - 1) <= 0) return;
-      var n, p0 = segment[0], p1 = segment[n];
-      if (d3_geo_sphericalEqual(p0, p1)) {
-        listener.lineStart();
-        for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
-        listener.lineEnd();
-        return;
-      }
-      var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);
-      a.o = b;
-      subject.push(a);
-      clip.push(b);
-      a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);
-      b = new d3_geo_clipPolygonIntersection(p1, null, a, true);
-      a.o = b;
-      subject.push(a);
-      clip.push(b);
-    });
-    clip.sort(compare);
-    d3_geo_clipPolygonLinkCircular(subject);
-    d3_geo_clipPolygonLinkCircular(clip);
-    if (!subject.length) return;
-    for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {
-      clip[i].e = entry = !entry;
-    }
-    var start = subject[0], points, point;
-    while (1) {
-      var current = start, isSubject = true;
-      while (current.v) if ((current = current.n) === start) return;
-      points = current.z;
-      listener.lineStart();
-      do {
-        current.v = current.o.v = true;
-        if (current.e) {
-          if (isSubject) {
-            for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);
-          } else {
-            interpolate(current.x, current.n.x, 1, listener);
-          }
-          current = current.n;
-        } else {
-          if (isSubject) {
-            points = current.p.z;
-            for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);
-          } else {
-            interpolate(current.x, current.p.x, -1, listener);
-          }
-          current = current.p;
-        }
-        current = current.o;
-        points = current.z;
-        isSubject = !isSubject;
-      } while (!current.v);
-      listener.lineEnd();
-    }
-  }
-  function d3_geo_clipPolygonLinkCircular(array) {
-    if (!(n = array.length)) return;
-    var n, i = 0, a = array[0], b;
-    while (++i < n) {
-      a.n = b = array[i];
-      b.p = a;
-      a = b;
-    }
-    a.n = b = array[0];
-    b.p = a;
-  }
-  function d3_geo_clipPolygonIntersection(point, points, other, entry) {
-    this.x = point;
-    this.z = points;
-    this.o = other;
-    this.e = entry;
-    this.v = false;
-    this.n = this.p = null;
-  }
-  function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {
-    return function(rotate, listener) {
-      var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);
-      var clip = {
-        point: point,
-        lineStart: lineStart,
-        lineEnd: lineEnd,
-        polygonStart: function() {
-          clip.point = pointRing;
-          clip.lineStart = ringStart;
-          clip.lineEnd = ringEnd;
-          segments = [];
-          polygon = [];
-        },
-        polygonEnd: function() {
-          clip.point = point;
-          clip.lineStart = lineStart;
-          clip.lineEnd = lineEnd;
-          segments = d3.merge(segments);
-          var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
-          if (segments.length) {
-            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
-            d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
-          } else if (clipStartInside) {
-            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
-            listener.lineStart();
-            interpolate(null, null, 1, listener);
-            listener.lineEnd();
-          }
-          if (polygonStarted) listener.polygonEnd(), polygonStarted = false;
-          segments = polygon = null;
-        },
-        sphere: function() {
-          listener.polygonStart();
-          listener.lineStart();
-          interpolate(null, null, 1, listener);
-          listener.lineEnd();
-          listener.polygonEnd();
-        }
-      };
-      function point(λ, φ) {
-        var point = rotate(λ, φ);
-        if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);
-      }
-      function pointLine(λ, φ) {
-        var point = rotate(λ, φ);
-        line.point(point[0], point[1]);
-      }
-      function lineStart() {
-        clip.point = pointLine;
-        line.lineStart();
-      }
-      function lineEnd() {
-        clip.point = point;
-        line.lineEnd();
-      }
-      var segments;
-      var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;
-      function pointRing(λ, φ) {
-        ring.push([ λ, φ ]);
-        var point = rotate(λ, φ);
-        ringListener.point(point[0], point[1]);
-      }
-      function ringStart() {
-        ringListener.lineStart();
-        ring = [];
-      }
-      function ringEnd() {
-        pointRing(ring[0][0], ring[0][1]);
-        ringListener.lineEnd();
-        var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
-        ring.pop();
-        polygon.push(ring);
-        ring = null;
-        if (!n) return;
-        if (clean & 1) {
-          segment = ringSegments[0];
-          var n = segment.length - 1, i = -1, point;
-          if (n > 0) {
-            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
-            listener.lineStart();
-            while (++i < n) listener.point((point = segment[i])[0], point[1]);
-            listener.lineEnd();
-          }
-          return;
-        }
-        if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
-        segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
-      }
-      return clip;
-    };
-  }
-  function d3_geo_clipSegmentLength1(segment) {
-    return segment.length > 1;
-  }
-  function d3_geo_clipBufferListener() {
-    var lines = [], line;
-    return {
-      lineStart: function() {
-        lines.push(line = []);
-      },
-      point: function(λ, φ) {
-        line.push([ λ, φ ]);
-      },
-      lineEnd: d3_noop,
-      buffer: function() {
-        var buffer = lines;
-        lines = [];
-        line = null;
-        return buffer;
-      },
-      rejoin: function() {
-        if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
-      }
-    };
-  }
-  function d3_geo_clipSort(a, b) {
-    return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);
-  }
-  var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);
-  function d3_geo_clipAntimeridianLine(listener) {
-    var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
-    return {
-      lineStart: function() {
-        listener.lineStart();
-        clean = 1;
-      },
-      point: function(λ1, φ1) {
-        var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);
-        if (abs(dλ - π) < ε) {
-          listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);
-          listener.point(sλ0, φ0);
-          listener.lineEnd();
-          listener.lineStart();
-          listener.point(sλ1, φ0);
-          listener.point(λ1, φ0);
-          clean = 0;
-        } else if (sλ0 !== sλ1 && dλ >= π) {
-          if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
-          if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
-          φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
-          listener.point(sλ0, φ0);
-          listener.lineEnd();
-          listener.lineStart();
-          listener.point(sλ1, φ0);
-          clean = 0;
-        }
-        listener.point(λ0 = λ1, φ0 = φ1);
-        sλ0 = sλ1;
-      },
-      lineEnd: function() {
-        listener.lineEnd();
-        λ0 = φ0 = NaN;
-      },
-      clean: function() {
-        return 2 - clean;
-      }
-    };
-  }
-  function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
-    var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
-    return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
-  }
-  function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
-    var φ;
-    if (from == null) {
-      φ = direction * halfπ;
-      listener.point(-π, φ);
-      listener.point(0, φ);
-      listener.point(π, φ);
-      listener.point(π, 0);
-      listener.point(π, -φ);
-      listener.point(0, -φ);
-      listener.point(-π, -φ);
-      listener.point(-π, 0);
-      listener.point(-π, φ);
-    } else if (abs(from[0] - to[0]) > ε) {
-      var s = from[0] < to[0] ? π : -π;
-      φ = direction * s / 2;
-      listener.point(-s, φ);
-      listener.point(0, φ);
-      listener.point(s, φ);
-    } else {
-      listener.point(to[0], to[1]);
-    }
-  }
-  function d3_geo_pointInPolygon(point, polygon) {
-    var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;
-    d3_geo_areaRingSum.reset();
-    for (var i = 0, n = polygon.length; i < n; ++i) {
-      var ring = polygon[i], m = ring.length;
-      if (!m) continue;
-      var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;
-      while (true) {
-        if (j === m) j = 0;
-        point = ring[j];
-        var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;
-        d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));
-        polarAngle += antimeridian ? dλ + sdλ * τ : dλ;
-        if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
-          var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
-          d3_geo_cartesianNormalize(arc);
-          var intersection = d3_geo_cartesianCross(meridianNormal, arc);
-          d3_geo_cartesianNormalize(intersection);
-          var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
-          if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
-            winding += antimeridian ^ dλ >= 0 ? 1 : -1;
-          }
-        }
-        if (!j++) break;
-        λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
-      }
-    }
-    return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;
-  }
-  function d3_geo_clipCircle(radius) {
-    var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
-    return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);
-    function visible(λ, φ) {
-      return Math.cos(λ) * Math.cos(φ) > cr;
-    }
-    function clipLine(listener) {
-      var point0, c0, v0, v00, clean;
-      return {
-        lineStart: function() {
-          v00 = v0 = false;
-          clean = 1;
-        },
-        point: function(λ, φ) {
-          var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
-          if (!point0 && (v00 = v0 = v)) listener.lineStart();
-          if (v !== v0) {
-            point2 = intersect(point0, point1);
-            if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
-              point1[0] += ε;
-              point1[1] += ε;
-              v = visible(point1[0], point1[1]);
-            }
-          }
-          if (v !== v0) {
-            clean = 0;
-            if (v) {
-              listener.lineStart();
-              point2 = intersect(point1, point0);
-              listener.point(point2[0], point2[1]);
-            } else {
-              point2 = intersect(point0, point1);
-              listener.point(point2[0], point2[1]);
-              listener.lineEnd();
-            }
-            point0 = point2;
-          } else if (notHemisphere && point0 && smallRadius ^ v) {
-            var t;
-            if (!(c & c0) && (t = intersect(point1, point0, true))) {
-              clean = 0;
-              if (smallRadius) {
-                listener.lineStart();
-                listener.point(t[0][0], t[0][1]);
-                listener.point(t[1][0], t[1][1]);
-                listener.lineEnd();
-              } else {
-                listener.point(t[1][0], t[1][1]);
-                listener.lineEnd();
-                listener.lineStart();
-                listener.point(t[0][0], t[0][1]);
-              }
-            }
-          }
-          if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
-            listener.point(point1[0], point1[1]);
-          }
-          point0 = point1, v0 = v, c0 = c;
-        },
-        lineEnd: function() {
-          if (v0) listener.lineEnd();
-          point0 = null;
-        },
-        clean: function() {
-          return clean | (v00 && v0) << 1;
-        }
-      };
-    }
-    function intersect(a, b, two) {
-      var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);
-      var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
-      if (!determinant) return !two && a;
-      var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
-      d3_geo_cartesianAdd(A, B);
-      var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
-      if (t2 < 0) return;
-      var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);
-      d3_geo_cartesianAdd(q, A);
-      q = d3_geo_spherical(q);
-      if (!two) return q;
-      var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;
-      if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
-      var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;
-      if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
-      if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
-        var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
-        d3_geo_cartesianAdd(q1, A);
-        return [ q, d3_geo_spherical(q1) ];
-      }
-    }
-    function code(λ, φ) {
-      var r = smallRadius ? radius : π - radius, code = 0;
-      if (λ < -r) code |= 1; else if (λ > r) code |= 2;
-      if (φ < -r) code |= 4; else if (φ > r) code |= 8;
-      return code;
-    }
-  }
-  function d3_geom_clipLine(x0, y0, x1, y1) {
-    return function(line) {
-      var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;
-      r = x0 - ax;
-      if (!dx && r > 0) return;
-      r /= dx;
-      if (dx < 0) {
-        if (r < t0) return;
-        if (r < t1) t1 = r;
-      } else if (dx > 0) {
-        if (r > t1) return;
-        if (r > t0) t0 = r;
-      }
-      r = x1 - ax;
-      if (!dx && r < 0) return;
-      r /= dx;
-      if (dx < 0) {
-        if (r > t1) return;
-        if (r > t0) t0 = r;
-      } else if (dx > 0) {
-        if (r < t0) return;
-        if (r < t1) t1 = r;
-      }
-      r = y0 - ay;
-      if (!dy && r > 0) return;
-      r /= dy;
-      if (dy < 0) {
-        if (r < t0) return;
-        if (r < t1) t1 = r;
-      } else if (dy > 0) {
-        if (r > t1) return;
-        if (r > t0) t0 = r;
-      }
-      r = y1 - ay;
-      if (!dy && r < 0) return;
-      r /= dy;
-      if (dy < 0) {
-        if (r > t1) return;
-        if (r > t0) t0 = r;
-      } else if (dy > 0) {
-        if (r < t0) return;
-        if (r < t1) t1 = r;
-      }
-      if (t0 > 0) line.a = {
-        x: ax + t0 * dx,
-        y: ay + t0 * dy
-      };
-      if (t1 < 1) line.b = {
-        x: ax + t1 * dx,
-        y: ay + t1 * dy
-      };
-      return line;
-    };
-  }
-  var d3_geo_clipExtentMAX = 1e9;
-  d3.geo.clipExtent = function() {
-    var x0, y0, x1, y1, stream, clip, clipExtent = {
-      stream: function(output) {
-        if (stream) stream.valid = false;
-        stream = clip(output);
-        stream.valid = true;
-        return stream;
-      },
-      extent: function(_) {
-        if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
-        clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);
-        if (stream) stream.valid = false, stream = null;
-        return clipExtent;
-      }
-    };
-    return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);
-  };
-  function d3_geo_clipExtent(x0, y0, x1, y1) {
-    return function(listener) {
-      var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;
-      var clip = {
-        point: point,
-        lineStart: lineStart,
-        lineEnd: lineEnd,
-        polygonStart: function() {
-          listener = bufferListener;
-          segments = [];
-          polygon = [];
-          clean = true;
-        },
-        polygonEnd: function() {
-          listener = listener_;
-          segments = d3.merge(segments);
-          var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;
-          if (inside || visible) {
-            listener.polygonStart();
-            if (inside) {
-              listener.lineStart();
-              interpolate(null, null, 1, listener);
-              listener.lineEnd();
-            }
-            if (visible) {
-              d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);
-            }
-            listener.polygonEnd();
-          }
-          segments = polygon = ring = null;
-        }
-      };
-      function insidePolygon(p) {
-        var wn = 0, n = polygon.length, y = p[1];
-        for (var i = 0; i < n; ++i) {
-          for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {
-            b = v[j];
-            if (a[1] <= y) {
-              if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;
-            } else {
-              if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;
-            }
-            a = b;
-          }
-        }
-        return wn !== 0;
-      }
-      function interpolate(from, to, direction, listener) {
-        var a = 0, a1 = 0;
-        if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {
-          do {
-            listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
-          } while ((a = (a + direction + 4) % 4) !== a1);
-        } else {
-          listener.point(to[0], to[1]);
-        }
-      }
-      function pointVisible(x, y) {
-        return x0 <= x && x <= x1 && y0 <= y && y <= y1;
-      }
-      function point(x, y) {
-        if (pointVisible(x, y)) listener.point(x, y);
-      }
-      var x__, y__, v__, x_, y_, v_, first, clean;
-      function lineStart() {
-        clip.point = linePoint;
-        if (polygon) polygon.push(ring = []);
-        first = true;
-        v_ = false;
-        x_ = y_ = NaN;
-      }
-      function lineEnd() {
-        if (segments) {
-          linePoint(x__, y__);
-          if (v__ && v_) bufferListener.rejoin();
-          segments.push(bufferListener.buffer());
-        }
-        clip.point = point;
-        if (v_) listener.lineEnd();
-      }
-      function linePoint(x, y) {
-        x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));
-        y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));
-        var v = pointVisible(x, y);
-        if (polygon) ring.push([ x, y ]);
-        if (first) {
-          x__ = x, y__ = y, v__ = v;
-          first = false;
-          if (v) {
-            listener.lineStart();
-            listener.point(x, y);
-          }
-        } else {
-          if (v && v_) listener.point(x, y); else {
-            var l = {
-              a: {
-                x: x_,
-                y: y_
-              },
-              b: {
-                x: x,
-                y: y
-              }
-            };
-            if (clipLine(l)) {
-              if (!v_) {
-                listener.lineStart();
-                listener.point(l.a.x, l.a.y);
-              }
-              listener.point(l.b.x, l.b.y);
-              if (!v) listener.lineEnd();
-              clean = false;
-            } else if (v) {
-              listener.lineStart();
-              listener.point(x, y);
-              clean = false;
-            }
-          }
-        }
-        x_ = x, y_ = y, v_ = v;
-      }
-      return clip;
-    };
-    function corner(p, direction) {
-      return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;
-    }
-    function compare(a, b) {
-      return comparePoints(a.x, b.x);
-    }
-    function comparePoints(a, b) {
-      var ca = corner(a, 1), cb = corner(b, 1);
-      return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
-    }
-  }
-  function d3_geo_conic(projectAt) {
-    var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
-    p.parallels = function(_) {
-      if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];
-      return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
-    };
-    return p;
-  }
-  function d3_geo_conicEqualArea(φ0, φ1) {
-    var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
-    function forward(λ, φ) {
-      var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
-      return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
-    }
-    forward.invert = function(x, y) {
-      var ρ0_y = ρ0 - y;
-      return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
-    };
-    return forward;
-  }
-  (d3.geo.conicEqualArea = function() {
-    return d3_geo_conic(d3_geo_conicEqualArea);
-  }).raw = d3_geo_conicEqualArea;
-  d3.geo.albers = function() {
-    return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);
-  };
-  d3.geo.albersUsa = function() {
-    var lower48 = d3.geo.albers();
-    var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);
-    var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);
-    var point, pointStream = {
-      point: function(x, y) {
-        point = [ x, y ];
-      }
-    }, lower48Point, alaskaPoint, hawaiiPoint;
-    function albersUsa(coordinates) {
-      var x = coordinates[0], y = coordinates[1];
-      point = null;
-      (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);
-      return point;
-    }
-    albersUsa.invert = function(coordinates) {
-      var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;
-      return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);
-    };
-    albersUsa.stream = function(stream) {
-      var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);
-      return {
-        point: function(x, y) {
-          lower48Stream.point(x, y);
-          alaskaStream.point(x, y);
-          hawaiiStream.point(x, y);
-        },
-        sphere: function() {
-          lower48Stream.sphere();
-          alaskaStream.sphere();
-          hawaiiStream.sphere();
-        },
-        lineStart: function() {
-          lower48Stream.lineStart();
-          alaskaStream.lineStart();
-          hawaiiStream.lineStart();
-        },
-        lineEnd: function() {
-          lower48Stream.lineEnd();
-          alaskaStream.lineEnd();
-          hawaiiStream.lineEnd();
-        },
-        polygonStart: function() {
-          lower48Stream.polygonStart();
-          alaskaStream.polygonStart();
-          hawaiiStream.polygonStart();
-        },
-        polygonEnd: function() {
-          lower48Stream.polygonEnd();
-          alaskaStream.polygonEnd();
-          hawaiiStream.polygonEnd();
-        }
-      };
-    };
-    albersUsa.precision = function(_) {
-      if (!arguments.length) return lower48.precision();
-      lower48.precision(_);
-      alaska.precision(_);
-      hawaii.precision(_);
-      return albersUsa;
-    };
-    albersUsa.scale = function(_) {
-      if (!arguments.length) return lower48.scale();
-      lower48.scale(_);
-      alaska.scale(_ * .35);
-      hawaii.scale(_);
-      return albersUsa.translate(lower48.translate());
-    };
-    albersUsa.translate = function(_) {
-      if (!arguments.length) return lower48.translate();
-      var k = lower48.scale(), x = +_[0], y = +_[1];
-      lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;
-      alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
-      hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
-      return albersUsa;
-    };
-    return albersUsa.scale(1070);
-  };
-  var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
-    point: d3_noop,
-    lineStart: d3_noop,
-    lineEnd: d3_noop,
-    polygonStart: function() {
-      d3_geo_pathAreaPolygon = 0;
-      d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
-    },
-    polygonEnd: function() {
-      d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
-      d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);
-    }
-  };
-  function d3_geo_pathAreaRingStart() {
-    var x00, y00, x0, y0;
-    d3_geo_pathArea.point = function(x, y) {
-      d3_geo_pathArea.point = nextPoint;
-      x00 = x0 = x, y00 = y0 = y;
-    };
-    function nextPoint(x, y) {
-      d3_geo_pathAreaPolygon += y0 * x - x0 * y;
-      x0 = x, y0 = y;
-    }
-    d3_geo_pathArea.lineEnd = function() {
-      nextPoint(x00, y00);
-    };
-  }
-  var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;
-  var d3_geo_pathBounds = {
-    point: d3_geo_pathBoundsPoint,
-    lineStart: d3_noop,
-    lineEnd: d3_noop,
-    polygonStart: d3_noop,
-    polygonEnd: d3_noop
-  };
-  function d3_geo_pathBoundsPoint(x, y) {
-    if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;
-    if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;
-    if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;
-    if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;
-  }
-  function d3_geo_pathBuffer() {
-    var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];
-    var stream = {
-      point: point,
-      lineStart: function() {
-        stream.point = pointLineStart;
-      },
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        stream.lineEnd = lineEndPolygon;
-      },
-      polygonEnd: function() {
-        stream.lineEnd = lineEnd;
-        stream.point = point;
-      },
-      pointRadius: function(_) {
-        pointCircle = d3_geo_pathBufferCircle(_);
-        return stream;
-      },
-      result: function() {
-        if (buffer.length) {
-          var result = buffer.join("");
-          buffer = [];
-          return result;
-        }
-      }
-    };
-    function point(x, y) {
-      buffer.push("M", x, ",", y, pointCircle);
-    }
-    function pointLineStart(x, y) {
-      buffer.push("M", x, ",", y);
-      stream.point = pointLine;
-    }
-    function pointLine(x, y) {
-      buffer.push("L", x, ",", y);
-    }
-    function lineEnd() {
-      stream.point = point;
-    }
-    function lineEndPolygon() {
-      buffer.push("Z");
-    }
-    return stream;
-  }
-  function d3_geo_pathBufferCircle(radius) {
-    return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z";
-  }
-  var d3_geo_pathCentroid = {
-    point: d3_geo_pathCentroidPoint,
-    lineStart: d3_geo_pathCentroidLineStart,
-    lineEnd: d3_geo_pathCentroidLineEnd,
-    polygonStart: function() {
-      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
-    },
-    polygonEnd: function() {
-      d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
-      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
-      d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
-    }
-  };
-  function d3_geo_pathCentroidPoint(x, y) {
-    d3_geo_centroidX0 += x;
-    d3_geo_centroidY0 += y;
-    ++d3_geo_centroidZ0;
-  }
-  function d3_geo_pathCentroidLineStart() {
-    var x0, y0;
-    d3_geo_pathCentroid.point = function(x, y) {
-      d3_geo_pathCentroid.point = nextPoint;
-      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
-    };
-    function nextPoint(x, y) {
-      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
-      d3_geo_centroidX1 += z * (x0 + x) / 2;
-      d3_geo_centroidY1 += z * (y0 + y) / 2;
-      d3_geo_centroidZ1 += z;
-      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
-    }
-  }
-  function d3_geo_pathCentroidLineEnd() {
-    d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
-  }
-  function d3_geo_pathCentroidRingStart() {
-    var x00, y00, x0, y0;
-    d3_geo_pathCentroid.point = function(x, y) {
-      d3_geo_pathCentroid.point = nextPoint;
-      d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);
-    };
-    function nextPoint(x, y) {
-      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
-      d3_geo_centroidX1 += z * (x0 + x) / 2;
-      d3_geo_centroidY1 += z * (y0 + y) / 2;
-      d3_geo_centroidZ1 += z;
-      z = y0 * x - x0 * y;
-      d3_geo_centroidX2 += z * (x0 + x);
-      d3_geo_centroidY2 += z * (y0 + y);
-      d3_geo_centroidZ2 += z * 3;
-      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
-    }
-    d3_geo_pathCentroid.lineEnd = function() {
-      nextPoint(x00, y00);
-    };
-  }
-  function d3_geo_pathContext(context) {
-    var pointRadius = 4.5;
-    var stream = {
-      point: point,
-      lineStart: function() {
-        stream.point = pointLineStart;
-      },
-      lineEnd: lineEnd,
-      polygonStart: function() {
-        stream.lineEnd = lineEndPolygon;
-      },
-      polygonEnd: function() {
-        stream.lineEnd = lineEnd;
-        stream.point = point;
-      },
-      pointRadius: function(_) {
-        pointRadius = _;
-        return stream;
-      },
-      result: d3_noop
-    };
-    function point(x, y) {
-      context.moveTo(x + pointRadius, y);
-      context.arc(x, y, pointRadius, 0, τ);
-    }
-    function pointLineStart(x, y) {
-      context.moveTo(x, y);
-      stream.point = pointLine;
-    }
-    function pointLine(x, y) {
-      context.lineTo(x, y);
-    }
-    function lineEnd() {
-      stream.point = point;
-    }
-    function lineEndPolygon() {
-      context.closePath();
-    }
-    return stream;
-  }
-  function d3_geo_resample(project) {
-    var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;
-    function resample(stream) {
-      return (maxDepth ? resampleRecursive : resampleNone)(stream);
-    }
-    function resampleNone(stream) {
-      return d3_geo_transformPoint(stream, function(x, y) {
-        x = project(x, y);
-        stream.point(x[0], x[1]);
-      });
-    }
-    function resampleRecursive(stream) {
-      var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;
-      var resample = {
-        point: point,
-        lineStart: lineStart,
-        lineEnd: lineEnd,
-        polygonStart: function() {
-          stream.polygonStart();
-          resample.lineStart = ringStart;
-        },
-        polygonEnd: function() {
-          stream.polygonEnd();
-          resample.lineStart = lineStart;
-        }
-      };
-      function point(x, y) {
-        x = project(x, y);
-        stream.point(x[0], x[1]);
-      }
-      function lineStart() {
-        x0 = NaN;
-        resample.point = linePoint;
-        stream.lineStart();
-      }
-      function linePoint(λ, φ) {
-        var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
-        resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
-        stream.point(x0, y0);
-      }
-      function lineEnd() {
-        resample.point = point;
-        stream.lineEnd();
-      }
-      function ringStart() {
-        lineStart();
-        resample.point = ringPoint;
-        resample.lineEnd = ringEnd;
-      }
-      function ringPoint(λ, φ) {
-        linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
-        resample.point = linePoint;
-      }
-      function ringEnd() {
-        resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
-        resample.lineEnd = lineEnd;
-        lineEnd();
-      }
-      return resample;
-    }
-    function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
-      var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
-      if (d2 > 4 * δ2 && depth--) {
-        var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
-        if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {
-          resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
-          stream.point(x2, y2);
-          resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
-        }
-      }
-    }
-    resample.precision = function(_) {
-      if (!arguments.length) return Math.sqrt(δ2);
-      maxDepth = (δ2 = _ * _) > 0 && 16;
-      return resample;
-    };
-    return resample;
-  }
-  d3.geo.path = function() {
-    var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;
-    function path(object) {
-      if (object) {
-        if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
-        if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);
-        d3.geo.stream(object, cacheStream);
-      }
-      return contextStream.result();
-    }
-    path.area = function(object) {
-      d3_geo_pathAreaSum = 0;
-      d3.geo.stream(object, projectStream(d3_geo_pathArea));
-      return d3_geo_pathAreaSum;
-    };
-    path.centroid = function(object) {
-      d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
-      d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
-      return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];
-    };
-    path.bounds = function(object) {
-      d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);
-      d3.geo.stream(object, projectStream(d3_geo_pathBounds));
-      return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];
-    };
-    path.projection = function(_) {
-      if (!arguments.length) return projection;
-      projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
-      return reset();
-    };
-    path.context = function(_) {
-      if (!arguments.length) return context;
-      contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
-      if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
-      return reset();
-    };
-    path.pointRadius = function(_) {
-      if (!arguments.length) return pointRadius;
-      pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
-      return path;
-    };
-    function reset() {
-      cacheStream = null;
-      return path;
-    }
-    return path.projection(d3.geo.albersUsa()).context(null);
-  };
-  function d3_geo_pathProjectStream(project) {
-    var resample = d3_geo_resample(function(x, y) {
-      return project([ x * d3_degrees, y * d3_degrees ]);
-    });
-    return function(stream) {
-      return d3_geo_projectionRadians(resample(stream));
-    };
-  }
-  d3.geo.transform = function(methods) {
-    return {
-      stream: function(stream) {
-        var transform = new d3_geo_transform(stream);
-        for (var k in methods) transform[k] = methods[k];
-        return transform;
-      }
-    };
-  };
-  function d3_geo_transform(stream) {
-    this.stream = stream;
-  }
-  d3_geo_transform.prototype = {
-    point: function(x, y) {
-      this.stream.point(x, y);
-    },
-    sphere: function() {
-      this.stream.sphere();
-    },
-    lineStart: function() {
-      this.stream.lineStart();
-    },
-    lineEnd: function() {
-      this.stream.lineEnd();
-    },
-    polygonStart: function() {
-      this.stream.polygonStart();
-    },
-    polygonEnd: function() {
-      this.stream.polygonEnd();
-    }
-  };
-  function d3_geo_transformPoint(stream, point) {
-    return {
-      point: point,
-      sphere: function() {
-        stream.sphere();
-      },
-      lineStart: function() {
-        stream.lineStart();
-      },
-      lineEnd: function() {
-        stream.lineEnd();
-      },
-      polygonStart: function() {
-        stream.polygonStart();
-      },
-      polygonEnd: function() {
-        stream.polygonEnd();
-      }
-    };
-  }
-  d3.geo.projection = d3_geo_projection;
-  d3.geo.projectionMutator = d3_geo_projectionMutator;
-  function d3_geo_projection(project) {
-    return d3_geo_projectionMutator(function() {
-      return project;
-    })();
-  }
-  function d3_geo_projectionMutator(projectAt) {
-    var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
-      x = project(x, y);
-      return [ x[0] * k + δx, δy - x[1] * k ];
-    }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;
-    function projection(point) {
-      point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
-      return [ point[0] * k + δx, δy - point[1] * k ];
-    }
-    function invert(point) {
-      point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
-      return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
-    }
-    projection.stream = function(output) {
-      if (stream) stream.valid = false;
-      stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));
-      stream.valid = true;
-      return stream;
-    };
-    projection.clipAngle = function(_) {
-      if (!arguments.length) return clipAngle;
-      preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
-      return invalidate();
-    };
-    projection.clipExtent = function(_) {
-      if (!arguments.length) return clipExtent;
-      clipExtent = _;
-      postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;
-      return invalidate();
-    };
-    projection.scale = function(_) {
-      if (!arguments.length) return k;
-      k = +_;
-      return reset();
-    };
-    projection.translate = function(_) {
-      if (!arguments.length) return [ x, y ];
-      x = +_[0];
-      y = +_[1];
-      return reset();
-    };
-    projection.center = function(_) {
-      if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
-      λ = _[0] % 360 * d3_radians;
-      φ = _[1] % 360 * d3_radians;
-      return reset();
-    };
-    projection.rotate = function(_) {
-      if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
-      δλ = _[0] % 360 * d3_radians;
-      δφ = _[1] % 360 * d3_radians;
-      δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
-      return reset();
-    };
-    d3.rebind(projection, projectResample, "precision");
-    function reset() {
-      projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
-      var center = project(λ, φ);
-      δx = x - center[0] * k;
-      δy = y + center[1] * k;
-      return invalidate();
-    }
-    function invalidate() {
-      if (stream) stream.valid = false, stream = null;
-      return projection;
-    }
-    return function() {
-      project = projectAt.apply(this, arguments);
-      projection.invert = project.invert && invert;
-      return reset();
-    };
-  }
-  function d3_geo_projectionRadians(stream) {
-    return d3_geo_transformPoint(stream, function(x, y) {
-      stream.point(x * d3_radians, y * d3_radians);
-    });
-  }
-  function d3_geo_equirectangular(λ, φ) {
-    return [ λ, φ ];
-  }
-  (d3.geo.equirectangular = function() {
-    return d3_geo_projection(d3_geo_equirectangular);
-  }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
-  d3.geo.rotation = function(rotate) {
-    rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
-    function forward(coordinates) {
-      coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
-      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
-    }
-    forward.invert = function(coordinates) {
-      coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
-      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
-    };
-    return forward;
-  };
-  function d3_geo_identityRotation(λ, φ) {
-    return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
-  }
-  d3_geo_identityRotation.invert = d3_geo_equirectangular;
-  function d3_geo_rotation(δλ, δφ, δγ) {
-    return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;
-  }
-  function d3_geo_forwardRotationλ(δλ) {
-    return function(λ, φ) {
-      return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
-    };
-  }
-  function d3_geo_rotationλ(δλ) {
-    var rotation = d3_geo_forwardRotationλ(δλ);
-    rotation.invert = d3_geo_forwardRotationλ(-δλ);
-    return rotation;
-  }
-  function d3_geo_rotationφγ(δφ, δγ) {
-    var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
-    function rotation(λ, φ) {
-      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
-      return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];
-    }
-    rotation.invert = function(λ, φ) {
-      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
-      return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];
-    };
-    return rotation;
-  }
-  d3.geo.circle = function() {
-    var origin = [ 0, 0 ], angle, precision = 6, interpolate;
-    function circle() {
-      var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
-      interpolate(null, null, 1, {
-        point: function(x, y) {
-          ring.push(x = rotate(x, y));
-          x[0] *= d3_degrees, x[1] *= d3_degrees;
-        }
-      });
-      return {
-        type: "Polygon",
-        coordinates: [ ring ]
-      };
-    }
-    circle.origin = function(x) {
-      if (!arguments.length) return origin;
-      origin = x;
-      return circle;
-    };
-    circle.angle = function(x) {
-      if (!arguments.length) return angle;
-      interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
-      return circle;
-    };
-    circle.precision = function(_) {
-      if (!arguments.length) return precision;
-      interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
-      return circle;
-    };
-    return circle.angle(90);
-  };
-  function d3_geo_circleInterpolate(radius, precision) {
-    var cr = Math.cos(radius), sr = Math.sin(radius);
-    return function(from, to, direction, listener) {
-      var step = direction * precision;
-      if (from != null) {
-        from = d3_geo_circleAngle(cr, from);
-        to = d3_geo_circleAngle(cr, to);
-        if (direction > 0 ? from < to : from > to) from += direction * τ;
-      } else {
-        from = radius + direction * τ;
-        to = radius - .5 * step;
-      }
-      for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {
-        listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
-      }
-    };
-  }
-  function d3_geo_circleAngle(cr, point) {
-    var a = d3_geo_cartesian(point);
-    a[0] -= cr;
-    d3_geo_cartesianNormalize(a);
-    var angle = d3_acos(-a[1]);
-    return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
-  }
-  d3.geo.distance = function(a, b) {
-    var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;
-    return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);
-  };
-  d3.geo.graticule = function() {
-    var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;
-    function graticule() {
-      return {
-        type: "MultiLineString",
-        coordinates: lines()
-      };
-    }
-    function lines() {
-      return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {
-        return abs(x % DX) > ε;
-      }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {
-        return abs(y % DY) > ε;
-      }).map(y));
-    }
-    graticule.lines = function() {
-      return lines().map(function(coordinates) {
-        return {
-          type: "LineString",
-          coordinates: coordinates
-        };
-      });
-    };
-    graticule.outline = function() {
-      return {
-        type: "Polygon",
-        coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]
-      };
-    };
-    graticule.extent = function(_) {
-      if (!arguments.length) return graticule.minorExtent();
-      return graticule.majorExtent(_).minorExtent(_);
-    };
-    graticule.majorExtent = function(_) {
-      if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];
-      X0 = +_[0][0], X1 = +_[1][0];
-      Y0 = +_[0][1], Y1 = +_[1][1];
-      if (X0 > X1) _ = X0, X0 = X1, X1 = _;
-      if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
-      return graticule.precision(precision);
-    };
-    graticule.minorExtent = function(_) {
-      if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
-      x0 = +_[0][0], x1 = +_[1][0];
-      y0 = +_[0][1], y1 = +_[1][1];
-      if (x0 > x1) _ = x0, x0 = x1, x1 = _;
-      if (y0 > y1) _ = y0, y0 = y1, y1 = _;
-      return graticule.precision(precision);
-    };
-    graticule.step = function(_) {
-      if (!arguments.length) return graticule.minorStep();
-      return graticule.majorStep(_).minorStep(_);
-    };
-    graticule.majorStep = function(_) {
-      if (!arguments.length) return [ DX, DY ];
-      DX = +_[0], DY = +_[1];
-      return graticule;
-    };
-    graticule.minorStep = function(_) {
-      if (!arguments.length) return [ dx, dy ];
-      dx = +_[0], dy = +_[1];
-      return graticule;
-    };
-    graticule.precision = function(_) {
-      if (!arguments.length) return precision;
-      precision = +_;
-      x = d3_geo_graticuleX(y0, y1, 90);
-      y = d3_geo_graticuleY(x0, x1, precision);
-      X = d3_geo_graticuleX(Y0, Y1, 90);
-      Y = d3_geo_graticuleY(X0, X1, precision);
-      return graticule;
-    };
-    return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);
-  };
-  function d3_geo_graticuleX(y0, y1, dy) {
-    var y = d3.range(y0, y1 - ε, dy).concat(y1);
-    return function(x) {
-      return y.map(function(y) {
-        return [ x, y ];
-      });
-    };
-  }
-  function d3_geo_graticuleY(x0, x1, dx) {
-    var x = d3.range(x0, x1 - ε, dx).concat(x1);
-    return function(y) {
-      return x.map(function(x) {
-        return [ x, y ];
-      });
-    };
-  }
-  function d3_source(d) {
-    return d.source;
-  }
-  function d3_target(d) {
-    return d.target;
-  }
-  d3.geo.greatArc = function() {
-    var source = d3_source, source_, target = d3_target, target_;
-    function greatArc() {
-      return {
-        type: "LineString",
-        coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]
-      };
-    }
-    greatArc.distance = function() {
-      return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));
-    };
-    greatArc.source = function(_) {
-      if (!arguments.length) return source;
-      source = _, source_ = typeof _ === "function" ? null : _;
-      return greatArc;
-    };
-    greatArc.target = function(_) {
-      if (!arguments.length) return target;
-      target = _, target_ = typeof _ === "function" ? null : _;
-      return greatArc;
-    };
-    greatArc.precision = function() {
-      return arguments.length ? greatArc : 0;
-    };
-    return greatArc;
-  };
-  d3.geo.interpolate = function(source, target) {
-    return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
-  };
-  function d3_geo_interpolate(x0, y0, x1, y1) {
-    var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);
-    var interpolate = d ? function(t) {
-      var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
-      return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
-    } : function() {
-      return [ x0 * d3_degrees, y0 * d3_degrees ];
-    };
-    interpolate.distance = d;
-    return interpolate;
-  }
-  d3.geo.length = function(object) {
-    d3_geo_lengthSum = 0;
-    d3.geo.stream(object, d3_geo_length);
-    return d3_geo_lengthSum;
-  };
-  var d3_geo_lengthSum;
-  var d3_geo_length = {
-    sphere: d3_noop,
-    point: d3_noop,
-    lineStart: d3_geo_lengthLineStart,
-    lineEnd: d3_noop,
-    polygonStart: d3_noop,
-    polygonEnd: d3_noop
-  };
-  function d3_geo_lengthLineStart() {
-    var λ0, sinφ0, cosφ0;
-    d3_geo_length.point = function(λ, φ) {
-      λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);
-      d3_geo_length.point = nextPoint;
-    };
-    d3_geo_length.lineEnd = function() {
-      d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;
-    };
-    function nextPoint(λ, φ) {
-      var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);
-      d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);
-      λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;
-    }
-  }
-  function d3_geo_azimuthal(scale, angle) {
-    function azimuthal(λ, φ) {
-      var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
-      return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
-    }
-    azimuthal.invert = function(x, y) {
-      var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
-      return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
-    };
-    return azimuthal;
-  }
-  var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
-    return Math.sqrt(2 / (1 + cosλcosφ));
-  }, function(ρ) {
-    return 2 * Math.asin(ρ / 2);
-  });
-  (d3.geo.azimuthalEqualArea = function() {
-    return d3_geo_projection(d3_geo_azimuthalEqualArea);
-  }).raw = d3_geo_azimuthalEqualArea;
-  var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
-    var c = Math.acos(cosλcosφ);
-    return c && c / Math.sin(c);
-  }, d3_identity);
-  (d3.geo.azimuthalEquidistant = function() {
-    return d3_geo_projection(d3_geo_azimuthalEquidistant);
-  }).raw = d3_geo_azimuthalEquidistant;
-  function d3_geo_conicConformal(φ0, φ1) {
-    var cosφ0 = Math.cos(φ0), t = function(φ) {
-      return Math.tan(π / 4 + φ / 2);
-    }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
-    if (!n) return d3_geo_mercator;
-    function forward(λ, φ) {
-      if (F > 0) {
-        if (φ < -halfπ + ε) φ = -halfπ + ε;
-      } else {
-        if (φ > halfπ - ε) φ = halfπ - ε;
-      }
-      var ρ = F / Math.pow(t(φ), n);
-      return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
-    }
-    forward.invert = function(x, y) {
-      var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);
-      return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];
-    };
-    return forward;
-  }
-  (d3.geo.conicConformal = function() {
-    return d3_geo_conic(d3_geo_conicConformal);
-  }).raw = d3_geo_conicConformal;
-  function d3_geo_conicEquidistant(φ0, φ1) {
-    var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;
-    if (abs(n) < ε) return d3_geo_equirectangular;
-    function forward(λ, φ) {
-      var ρ = G - φ;
-      return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];
-    }
-    forward.invert = function(x, y) {
-      var ρ0_y = G - y;
-      return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];
-    };
-    return forward;
-  }
-  (d3.geo.conicEquidistant = function() {
-    return d3_geo_conic(d3_geo_conicEquidistant);
-  }).raw = d3_geo_conicEquidistant;
-  var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
-    return 1 / cosλcosφ;
-  }, Math.atan);
-  (d3.geo.gnomonic = function() {
-    return d3_geo_projection(d3_geo_gnomonic);
-  }).raw = d3_geo_gnomonic;
-  function d3_geo_mercator(λ, φ) {
-    return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];
-  }
-  d3_geo_mercator.invert = function(x, y) {
-    return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];
-  };
-  function d3_geo_mercatorProjection(project) {
-    var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;
-    m.scale = function() {
-      var v = scale.apply(m, arguments);
-      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
-    };
-    m.translate = function() {
-      var v = translate.apply(m, arguments);
-      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
-    };
-    m.clipExtent = function(_) {
-      var v = clipExtent.apply(m, arguments);
-      if (v === m) {
-        if (clipAuto = _ == null) {
-          var k = π * scale(), t = translate();
-          clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);
-        }
-      } else if (clipAuto) {
-        v = null;
-      }
-      return v;
-    };
-    return m.clipExtent(null);
-  }
-  (d3.geo.mercator = function() {
-    return d3_geo_mercatorProjection(d3_geo_mercator);
-  }).raw = d3_geo_mercator;
-  var d3_geo_orthographic = d3_geo_azimuthal(function() {
-    return 1;
-  }, Math.asin);
-  (d3.geo.orthographic = function() {
-    return d3_geo_projection(d3_geo_orthographic);
-  }).raw = d3_geo_orthographic;
-  var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
-    return 1 / (1 + cosλcosφ);
-  }, function(ρ) {
-    return 2 * Math.atan(ρ);
-  });
-  (d3.geo.stereographic = function() {
-    return d3_geo_projection(d3_geo_stereographic);
-  }).raw = d3_geo_stereographic;
-  function d3_geo_transverseMercator(λ, φ) {
-    return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];
-  }
-  d3_geo_transverseMercator.invert = function(x, y) {
-    return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];
-  };
-  (d3.geo.transverseMercator = function() {
-    var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;
-    projection.center = function(_) {
-      return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);
-    };
-    projection.rotate = function(_) {
-      return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(),
-      [ _[0], _[1], _[2] - 90 ]);
-    };
-    return rotate([ 0, 0, 90 ]);
-  }).raw = d3_geo_transverseMercator;
-  d3.geom = {};
-  function d3_geom_pointX(d) {
-    return d[0];
-  }
-  function d3_geom_pointY(d) {
-    return d[1];
-  }
-  d3.geom.hull = function(vertices) {
-    var x = d3_geom_pointX, y = d3_geom_pointY;
-    if (arguments.length) return hull(vertices);
-    function hull(data) {
-      if (data.length < 3) return [];
-      var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];
-      for (i = 0; i < n; i++) {
-        points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);
-      }
-      points.sort(d3_geom_hullOrder);
-      for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);
-      var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);
-      var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];
-      for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);
-      for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);
-      return polygon;
-    }
-    hull.x = function(_) {
-      return arguments.length ? (x = _, hull) : x;
-    };
-    hull.y = function(_) {
-      return arguments.length ? (y = _, hull) : y;
-    };
-    return hull;
-  };
-  function d3_geom_hullUpper(points) {
-    var n = points.length, hull = [ 0, 1 ], hs = 2;
-    for (var i = 2; i < n; i++) {
-      while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;
-      hull[hs++] = i;
-    }
-    return hull.slice(0, hs);
-  }
-  function d3_geom_hullOrder(a, b) {
-    return a[0] - b[0] || a[1] - b[1];
-  }
-  d3.geom.polygon = function(coordinates) {
-    d3_subclass(coordinates, d3_geom_polygonPrototype);
-    return coordinates;
-  };
-  var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];
-  d3_geom_polygonPrototype.area = function() {
-    var i = -1, n = this.length, a, b = this[n - 1], area = 0;
-    while (++i < n) {
-      a = b;
-      b = this[i];
-      area += a[1] * b[0] - a[0] * b[1];
-    }
-    return area * .5;
-  };
-  d3_geom_polygonPrototype.centroid = function(k) {
-    var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;
-    if (!arguments.length) k = -1 / (6 * this.area());
-    while (++i < n) {
-      a = b;
-      b = this[i];
-      c = a[0] * b[1] - b[0] * a[1];
-      x += (a[0] + b[0]) * c;
-      y += (a[1] + b[1]) * c;
-    }
-    return [ x * k, y * k ];
-  };
-  d3_geom_polygonPrototype.clip = function(subject) {
-    var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;
-    while (++i < n) {
-      input = subject.slice();
-      subject.length = 0;
-      b = this[i];
-      c = input[(m = input.length - closed) - 1];
-      j = -1;
-      while (++j < m) {
-        d = input[j];
-        if (d3_geom_polygonInside(d, a, b)) {
-          if (!d3_geom_polygonInside(c, a, b)) {
-            subject.push(d3_geom_polygonIntersect(c, d, a, b));
-          }
-          subject.push(d);
-        } else if (d3_geom_polygonInside(c, a, b)) {
-          subject.push(d3_geom_polygonIntersect(c, d, a, b));
-        }
-        c = d;
-      }
-      if (closed) subject.push(subject[0]);
-      a = b;
-    }
-    return subject;
-  };
-  function d3_geom_polygonInside(p, a, b) {
-    return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
-  }
-  function d3_geom_polygonIntersect(c, d, a, b) {
-    var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
-    return [ x1 + ua * x21, y1 + ua * y21 ];
-  }
-  function d3_geom_polygonClosed(coordinates) {
-    var a = coordinates[0], b = coordinates[coordinates.length - 1];
-    return !(a[0] - b[0] || a[1] - b[1]);
-  }
-  var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];
-  function d3_geom_voronoiBeach() {
-    d3_geom_voronoiRedBlackNode(this);
-    this.edge = this.site = this.circle = null;
-  }
-  function d3_geom_voronoiCreateBeach(site) {
-    var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();
-    beach.site = site;
-    return beach;
-  }
-  function d3_geom_voronoiDetachBeach(beach) {
-    d3_geom_voronoiDetachCircle(beach);
-    d3_geom_voronoiBeaches.remove(beach);
-    d3_geom_voronoiBeachPool.push(beach);
-    d3_geom_voronoiRedBlackNode(beach);
-  }
-  function d3_geom_voronoiRemoveBeach(beach) {
-    var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {
-      x: x,
-      y: y
-    }, previous = beach.P, next = beach.N, disappearing = [ beach ];
-    d3_geom_voronoiDetachBeach(beach);
-    var lArc = previous;
-    while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {
-      previous = lArc.P;
-      disappearing.unshift(lArc);
-      d3_geom_voronoiDetachBeach(lArc);
-      lArc = previous;
-    }
-    disappearing.unshift(lArc);
-    d3_geom_voronoiDetachCircle(lArc);
-    var rArc = next;
-    while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {
-      next = rArc.N;
-      disappearing.push(rArc);
-      d3_geom_voronoiDetachBeach(rArc);
-      rArc = next;
-    }
-    disappearing.push(rArc);
-    d3_geom_voronoiDetachCircle(rArc);
-    var nArcs = disappearing.length, iArc;
-    for (iArc = 1; iArc < nArcs; ++iArc) {
-      rArc = disappearing[iArc];
-      lArc = disappearing[iArc - 1];
-      d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);
-    }
-    lArc = disappearing[0];
-    rArc = disappearing[nArcs - 1];
-    rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);
-    d3_geom_voronoiAttachCircle(lArc);
-    d3_geom_voronoiAttachCircle(rArc);
-  }
-  function d3_geom_voronoiAddBeach(site) {
-    var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;
-    while (node) {
-      dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;
-      if (dxl > ε) node = node.L; else {
-        dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);
-        if (dxr > ε) {
-          if (!node.R) {
-            lArc = node;
-            break;
-          }
-          node = node.R;
-        } else {
-          if (dxl > -ε) {
-            lArc = node.P;
-            rArc = node;
-          } else if (dxr > -ε) {
-            lArc = node;
-            rArc = node.N;
-          } else {
-            lArc = rArc = node;
-          }
-          break;
-        }
-      }
-    }
-    var newArc = d3_geom_voronoiCreateBeach(site);
-    d3_geom_voronoiBeaches.insert(lArc, newArc);
-    if (!lArc && !rArc) return;
-    if (lArc === rArc) {
-      d3_geom_voronoiDetachCircle(lArc);
-      rArc = d3_geom_voronoiCreateBeach(lArc.site);
-      d3_geom_voronoiBeaches.insert(newArc, rArc);
-      newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
-      d3_geom_voronoiAttachCircle(lArc);
-      d3_geom_voronoiAttachCircle(rArc);
-      return;
-    }
-    if (!rArc) {
-      newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
-      return;
-    }
-    d3_geom_voronoiDetachCircle(lArc);
-    d3_geom_voronoiDetachCircle(rArc);
-    var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {
-      x: (cy * hb - by * hc) / d + ax,
-      y: (bx * hc - cx * hb) / d + ay
-    };
-    d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);
-    newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);
-    rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);
-    d3_geom_voronoiAttachCircle(lArc);
-    d3_geom_voronoiAttachCircle(rArc);
-  }
-  function d3_geom_voronoiLeftBreakPoint(arc, directrix) {
-    var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;
-    if (!pby2) return rfocx;
-    var lArc = arc.P;
-    if (!lArc) return -Infinity;
-    site = lArc.site;
-    var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;
-    if (!plby2) return lfocx;
-    var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;
-    if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
-    return (rfocx + lfocx) / 2;
-  }
-  function d3_geom_voronoiRightBreakPoint(arc, directrix) {
-    var rArc = arc.N;
-    if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);
-    var site = arc.site;
-    return site.y === directrix ? site.x : Infinity;
-  }
-  function d3_geom_voronoiCell(site) {
-    this.site = site;
-    this.edges = [];
-  }
-  d3_geom_voronoiCell.prototype.prepare = function() {
-    var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;
-    while (iHalfEdge--) {
-      edge = halfEdges[iHalfEdge].edge;
-      if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);
-    }
-    halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);
-    return halfEdges.length;
-  };
-  function d3_geom_voronoiCloseCells(extent) {
-    var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;
-    while (iCell--) {
-      cell = cells[iCell];
-      if (!cell || !cell.prepare()) continue;
-      halfEdges = cell.edges;
-      nHalfEdges = halfEdges.length;
-      iHalfEdge = 0;
-      while (iHalfEdge < nHalfEdges) {
-        end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;
-        start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;
-        if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {
-          halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {
-            x: x0,
-            y: abs(x2 - x0) < ε ? y2 : y1
-          } : abs(y3 - y1) < ε && x1 - x3 > ε ? {
-            x: abs(y2 - y1) < ε ? x2 : x1,
-            y: y1
-          } : abs(x3 - x1) < ε && y3 - y0 > ε ? {
-            x: x1,
-            y: abs(x2 - x1) < ε ? y2 : y0
-          } : abs(y3 - y0) < ε && x3 - x0 > ε ? {
-            x: abs(y2 - y0) < ε ? x2 : x0,
-            y: y0
-          } : null), cell.site, null));
-          ++nHalfEdges;
-        }
-      }
-    }
-  }
-  function d3_geom_voronoiHalfEdgeOrder(a, b) {
-    return b.angle - a.angle;
-  }
-  function d3_geom_voronoiCircle() {
-    d3_geom_voronoiRedBlackNode(this);
-    this.x = this.y = this.arc = this.site = this.cy = null;
-  }
-  function d3_geom_voronoiAttachCircle(arc) {
-    var lArc = arc.P, rArc = arc.N;
-    if (!lArc || !rArc) return;
-    var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;
-    if (lSite === rSite) return;
-    var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;
-    var d = 2 * (ax * cy - ay * cx);
-    if (d >= -ε2) return;
-    var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;
-    var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();
-    circle.arc = arc;
-    circle.site = cSite;
-    circle.x = x + bx;
-    circle.y = cy + Math.sqrt(x * x + y * y);
-    circle.cy = cy;
-    arc.circle = circle;
-    var before = null, node = d3_geom_voronoiCircles._;
-    while (node) {
-      if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {
-        if (node.L) node = node.L; else {
-          before = node.P;
-          break;
-        }
-      } else {
-        if (node.R) node = node.R; else {
-          before = node;
-          break;
-        }
-      }
-    }
-    d3_geom_voronoiCircles.insert(before, circle);
-    if (!before) d3_geom_voronoiFirstCircle = circle;
-  }
-  function d3_geom_voronoiDetachCircle(arc) {
-    var circle = arc.circle;
-    if (circle) {
-      if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;
-      d3_geom_voronoiCircles.remove(circle);
-      d3_geom_voronoiCirclePool.push(circle);
-      d3_geom_voronoiRedBlackNode(circle);
-      arc.circle = null;
-    }
-  }
-  function d3_geom_voronoiClipEdges(extent) {
-    var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;
-    while (i--) {
-      e = edges[i];
-      if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {
-        e.a = e.b = null;
-        edges.splice(i, 1);
-      }
-    }
-  }
-  function d3_geom_voronoiConnectEdge(edge, extent) {
-    var vb = edge.b;
-    if (vb) return true;
-    var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;
-    if (ry === ly) {
-      if (fx < x0 || fx >= x1) return;
-      if (lx > rx) {
-        if (!va) va = {
-          x: fx,
-          y: y0
-        }; else if (va.y >= y1) return;
-        vb = {
-          x: fx,
-          y: y1
-        };
-      } else {
-        if (!va) va = {
-          x: fx,
-          y: y1
-        }; else if (va.y < y0) return;
-        vb = {
-          x: fx,
-          y: y0
-        };
-      }
-    } else {
-      fm = (lx - rx) / (ry - ly);
-      fb = fy - fm * fx;
-      if (fm < -1 || fm > 1) {
-        if (lx > rx) {
-          if (!va) va = {
-            x: (y0 - fb) / fm,
-            y: y0
-          }; else if (va.y >= y1) return;
-          vb = {
-            x: (y1 - fb) / fm,
-            y: y1
-          };
-        } else {
-          if (!va) va = {
-            x: (y1 - fb) / fm,
-            y: y1
-          }; else if (va.y < y0) return;
-          vb = {
-            x: (y0 - fb) / fm,
-            y: y0
-          };
-        }
-      } else {
-        if (ly < ry) {
-          if (!va) va = {
-            x: x0,
-            y: fm * x0 + fb
-          }; else if (va.x >= x1) return;
-          vb = {
-            x: x1,
-            y: fm * x1 + fb
-          };
-        } else {
-          if (!va) va = {
-            x: x1,
-            y: fm * x1 + fb
-          }; else if (va.x < x0) return;
-          vb = {
-            x: x0,
-            y: fm * x0 + fb
-          };
-        }
-      }
-    }
-    edge.a = va;
-    edge.b = vb;
-    return true;
-  }
-  function d3_geom_voronoiEdge(lSite, rSite) {
-    this.l = lSite;
-    this.r = rSite;
-    this.a = this.b = null;
-  }
-  function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {
-    var edge = new d3_geom_voronoiEdge(lSite, rSite);
-    d3_geom_voronoiEdges.push(edge);
-    if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);
-    if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);
-    d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));
-    d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));
-    return edge;
-  }
-  function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {
-    var edge = new d3_geom_voronoiEdge(lSite, null);
-    edge.a = va;
-    edge.b = vb;
-    d3_geom_voronoiEdges.push(edge);
-    return edge;
-  }
-  function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {
-    if (!edge.a && !edge.b) {
-      edge.a = vertex;
-      edge.l = lSite;
-      edge.r = rSite;
-    } else if (edge.l === rSite) {
-      edge.b = vertex;
-    } else {
-      edge.a = vertex;
-    }
-  }
-  function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {
-    var va = edge.a, vb = edge.b;
-    this.edge = edge;
-    this.site = lSite;
-    this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);
-  }
-  d3_geom_voronoiHalfEdge.prototype = {
-    start: function() {
-      return this.edge.l === this.site ? this.edge.a : this.edge.b;
-    },
-    end: function() {
-      return this.edge.l === this.site ? this.edge.b : this.edge.a;
-    }
-  };
-  function d3_geom_voronoiRedBlackTree() {
-    this._ = null;
-  }
-  function d3_geom_voronoiRedBlackNode(node) {
-    node.U = node.C = node.L = node.R = node.P = node.N = null;
-  }
-  d3_geom_voronoiRedBlackTree.prototype = {
-    insert: function(after, node) {
-      var parent, grandpa, uncle;
-      if (after) {
-        node.P = after;
-        node.N = after.N;
-        if (after.N) after.N.P = node;
-        after.N = node;
-        if (after.R) {
-          after = after.R;
-          while (after.L) after = after.L;
-          after.L = node;
-        } else {
-          after.R = node;
-        }
-        parent = after;
-      } else if (this._) {
-        after = d3_geom_voronoiRedBlackFirst(this._);
-        node.P = null;
-        node.N = after;
-        after.P = after.L = node;
-        parent = after;
-      } else {
-        node.P = node.N = null;
-        this._ = node;
-        parent = null;
-      }
-      node.L = node.R = null;
-      node.U = parent;
-      node.C = true;
-      after = node;
-      while (parent && parent.C) {
-        grandpa = parent.U;
-        if (parent === grandpa.L) {
-          uncle = grandpa.R;
-          if (uncle && uncle.C) {
-            parent.C = uncle.C = false;
-            grandpa.C = true;
-            after = grandpa;
-          } else {
-            if (after === parent.R) {
-              d3_geom_voronoiRedBlackRotateLeft(this, parent);
-              after = parent;
-              parent = after.U;
-            }
-            parent.C = false;
-            grandpa.C = true;
-            d3_geom_voronoiRedBlackRotateRight(this, grandpa);
-          }
-        } else {
-          uncle = grandpa.L;
-          if (uncle && uncle.C) {
-            parent.C = uncle.C = false;
-            grandpa.C = true;
-            after = grandpa;
-          } else {
-            if (after === parent.L) {
-              d3_geom_voronoiRedBlackRotateRight(this, parent);
-              after = parent;
-              parent = after.U;
-            }
-            parent.C = false;
-            grandpa.C = true;
-            d3_geom_voronoiRedBlackRotateLeft(this, grandpa);
-          }
-        }
-        parent = after.U;
-      }
-      this._.C = false;
-    },
-    remove: function(node) {
-      if (node.N) node.N.P = node.P;
-      if (node.P) node.P.N = node.N;
-      node.N = node.P = null;
-      var parent = node.U, sibling, left = node.L, right = node.R, next, red;
-      if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);
-      if (parent) {
-        if (parent.L === node) parent.L = next; else parent.R = next;
-      } else {
-        this._ = next;
-      }
-      if (left && right) {
-        red = next.C;
-        next.C = node.C;
-        next.L = left;
-        left.U = next;
-        if (next !== right) {
-          parent = next.U;
-          next.U = node.U;
-          node = next.R;
-          parent.L = node;
-          next.R = right;
-          right.U = next;
-        } else {
-          next.U = parent;
-          parent = next;
-          node = next.R;
-        }
-      } else {
-        red = node.C;
-        node = next;
-      }
-      if (node) node.U = parent;
-      if (red) return;
-      if (node && node.C) {
-        node.C = false;
-        return;
-      }
-      do {
-        if (node === this._) break;
-        if (node === parent.L) {
-          sibling = parent.R;
-          if (sibling.C) {
-            sibling.C = false;
-            parent.C = true;
-            d3_geom_voronoiRedBlackRotateLeft(this, parent);
-            sibling = parent.R;
-          }
-          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
-            if (!sibling.R || !sibling.R.C) {
-              sibling.L.C = false;
-              sibling.C = true;
-              d3_geom_voronoiRedBlackRotateRight(this, sibling);
-              sibling = parent.R;
-            }
-            sibling.C = parent.C;
-            parent.C = sibling.R.C = false;
-            d3_geom_voronoiRedBlackRotateLeft(this, parent);
-            node = this._;
-            break;
-          }
-        } else {
-          sibling = parent.L;
-          if (sibling.C) {
-            sibling.C = false;
-            parent.C = true;
-            d3_geom_voronoiRedBlackRotateRight(this, parent);
-            sibling = parent.L;
-          }
-          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
-            if (!sibling.L || !sibling.L.C) {
-              sibling.R.C = false;
-              sibling.C = true;
-              d3_geom_voronoiRedBlackRotateLeft(this, sibling);
-              sibling = parent.L;
-            }
-            sibling.C = parent.C;
-            parent.C = sibling.L.C = false;
-            d3_geom_voronoiRedBlackRotateRight(this, parent);
-            node = this._;
-            break;
-          }
-        }
-        sibling.C = true;
-        node = parent;
-        parent = parent.U;
-      } while (!node.C);
-      if (node) node.C = false;
-    }
-  };
-  function d3_geom_voronoiRedBlackRotateLeft(tree, node) {
-    var p = node, q = node.R, parent = p.U;
-    if (parent) {
-      if (parent.L === p) parent.L = q; else parent.R = q;
-    } else {
-      tree._ = q;
-    }
-    q.U = parent;
-    p.U = q;
-    p.R = q.L;
-    if (p.R) p.R.U = p;
-    q.L = p;
-  }
-  function d3_geom_voronoiRedBlackRotateRight(tree, node) {
-    var p = node, q = node.L, parent = p.U;
-    if (parent) {
-      if (parent.L === p) parent.L = q; else parent.R = q;
-    } else {
-      tree._ = q;
-    }
-    q.U = parent;
-    p.U = q;
-    p.L = q.R;
-    if (p.L) p.L.U = p;
-    q.R = p;
-  }
-  function d3_geom_voronoiRedBlackFirst(node) {
-    while (node.L) node = node.L;
-    return node;
-  }
-  function d3_geom_voronoi(sites, bbox) {
-    var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;
-    d3_geom_voronoiEdges = [];
-    d3_geom_voronoiCells = new Array(sites.length);
-    d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();
-    d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();
-    while (true) {
-      circle = d3_geom_voronoiFirstCircle;
-      if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {
-        if (site.x !== x0 || site.y !== y0) {
-          d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);
-          d3_geom_voronoiAddBeach(site);
-          x0 = site.x, y0 = site.y;
-        }
-        site = sites.pop();
-      } else if (circle) {
-        d3_geom_voronoiRemoveBeach(circle.arc);
-      } else {
-        break;
-      }
-    }
-    if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);
-    var diagram = {
-      cells: d3_geom_voronoiCells,
-      edges: d3_geom_voronoiEdges
-    };
-    d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;
-    return diagram;
-  }
-  function d3_geom_voronoiVertexOrder(a, b) {
-    return b.y - a.y || b.x - a.x;
-  }
-  d3.geom.voronoi = function(points) {
-    var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;
-    if (points) return voronoi(points);
-    function voronoi(data) {
-      var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];
-      d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {
-        var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {
-          var s = e.start();
-          return [ s.x, s.y ];
-        }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];
-        polygon.point = data[i];
-      });
-      return polygons;
-    }
-    function sites(data) {
-      return data.map(function(d, i) {
-        return {
-          x: Math.round(fx(d, i) / ε) * ε,
-          y: Math.round(fy(d, i) / ε) * ε,
-          i: i
-        };
-      });
-    }
-    voronoi.links = function(data) {
-      return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {
-        return edge.l && edge.r;
-      }).map(function(edge) {
-        return {
-          source: data[edge.l.i],
-          target: data[edge.r.i]
-        };
-      });
-    };
-    voronoi.triangles = function(data) {
-      var triangles = [];
-      d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {
-        var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;
-        while (++j < m) {
-          e0 = e1;
-          s0 = s1;
-          e1 = edges[j].edge;
-          s1 = e1.l === site ? e1.r : e1.l;
-          if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {
-            triangles.push([ data[i], data[s0.i], data[s1.i] ]);
-          }
-        }
-      });
-      return triangles;
-    };
-    voronoi.x = function(_) {
-      return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;
-    };
-    voronoi.y = function(_) {
-      return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;
-    };
-    voronoi.clipExtent = function(_) {
-      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;
-      clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;
-      return voronoi;
-    };
-    voronoi.size = function(_) {
-      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];
-      return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);
-    };
-    return voronoi;
-  };
-  var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];
-  function d3_geom_voronoiTriangleArea(a, b, c) {
-    return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);
-  }
-  d3.geom.delaunay = function(vertices) {
-    return d3.geom.voronoi().triangles(vertices);
-  };
-  d3.geom.quadtree = function(points, x1, y1, x2, y2) {
-    var x = d3_geom_pointX, y = d3_geom_pointY, compat;
-    if (compat = arguments.length) {
-      x = d3_geom_quadtreeCompatX;
-      y = d3_geom_quadtreeCompatY;
-      if (compat === 3) {
-        y2 = y1;
-        x2 = x1;
-        y1 = x1 = 0;
-      }
-      return quadtree(points);
-    }
-    function quadtree(data) {
-      var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;
-      if (x1 != null) {
-        x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;
-      } else {
-        x2_ = y2_ = -(x1_ = y1_ = Infinity);
-        xs = [], ys = [];
-        n = data.length;
-        if (compat) for (i = 0; i < n; ++i) {
-          d = data[i];
-          if (d.x < x1_) x1_ = d.x;
-          if (d.y < y1_) y1_ = d.y;
-          if (d.x > x2_) x2_ = d.x;
-          if (d.y > y2_) y2_ = d.y;
-          xs.push(d.x);
-          ys.push(d.y);
-        } else for (i = 0; i < n; ++i) {
-          var x_ = +fx(d = data[i], i), y_ = +fy(d, i);
-          if (x_ < x1_) x1_ = x_;
-          if (y_ < y1_) y1_ = y_;
-          if (x_ > x2_) x2_ = x_;
-          if (y_ > y2_) y2_ = y_;
-          xs.push(x_);
-          ys.push(y_);
-        }
-      }
-      var dx = x2_ - x1_, dy = y2_ - y1_;
-      if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;
-      function insert(n, d, x, y, x1, y1, x2, y2) {
-        if (isNaN(x) || isNaN(y)) return;
-        if (n.leaf) {
-          var nx = n.x, ny = n.y;
-          if (nx != null) {
-            if (abs(nx - x) + abs(ny - y) < .01) {
-              insertChild(n, d, x, y, x1, y1, x2, y2);
-            } else {
-              var nPoint = n.point;
-              n.x = n.y = n.point = null;
-              insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);
-              insertChild(n, d, x, y, x1, y1, x2, y2);
-            }
-          } else {
-            n.x = x, n.y = y, n.point = d;
-          }
-        } else {
-          insertChild(n, d, x, y, x1, y1, x2, y2);
-        }
-      }
-      function insertChild(n, d, x, y, x1, y1, x2, y2) {
-        var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;
-        n.leaf = false;
-        n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
-        if (right) x1 = xm; else x2 = xm;
-        if (below) y1 = ym; else y2 = ym;
-        insert(n, d, x, y, x1, y1, x2, y2);
-      }
-      var root = d3_geom_quadtreeNode();
-      root.add = function(d) {
-        insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);
-      };
-      root.visit = function(f) {
-        d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
-      };
-      root.find = function(point) {
-        return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);
-      };
-      i = -1;
-      if (x1 == null) {
-        while (++i < n) {
-          insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);
-        }
-        --i;
-      } else data.forEach(root.add);
-      xs = ys = data = d = null;
-      return root;
-    }
-    quadtree.x = function(_) {
-      return arguments.length ? (x = _, quadtree) : x;
-    };
-    quadtree.y = function(_) {
-      return arguments.length ? (y = _, quadtree) : y;
-    };
-    quadtree.extent = function(_) {
-      if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];
-      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0],
-      y2 = +_[1][1];
-      return quadtree;
-    };
-    quadtree.size = function(_) {
-      if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];
-      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];
-      return quadtree;
-    };
-    return quadtree;
-  };
-  function d3_geom_quadtreeCompatX(d) {
-    return d.x;
-  }
-  function d3_geom_quadtreeCompatY(d) {
-    return d.y;
-  }
-  function d3_geom_quadtreeNode() {
-    return {
-      leaf: true,
-      nodes: [],
-      point: null,
-      x: null,
-      y: null
-    };
-  }
-  function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
-    if (!f(node, x1, y1, x2, y2)) {
-      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
-      if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
-      if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
-      if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
-      if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
-    }
-  }
-  function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {
-    var minDistance2 = Infinity, closestPoint;
-    (function find(node, x1, y1, x2, y2) {
-      if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;
-      if (point = node.point) {
-        var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;
-        if (distance2 < minDistance2) {
-          var distance = Math.sqrt(minDistance2 = distance2);
-          x0 = x - distance, y0 = y - distance;
-          x3 = x + distance, y3 = y + distance;
-          closestPoint = point;
-        }
-      }
-      var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;
-      for (var i = below << 1 | right, j = i + 4; i < j; ++i) {
-        if (node = children[i & 3]) switch (i & 3) {
-         case 0:
-          find(node, x1, y1, xm, ym);
-          break;
-
-         case 1:
-          find(node, xm, y1, x2, ym);
-          break;
-
-         case 2:
-          find(node, x1, ym, xm, y2);
-          break;
-
-         case 3:
-          find(node, xm, ym, x2, y2);
-          break;
-        }
-      }
-    })(root, x0, y0, x3, y3);
-    return closestPoint;
-  }
-  d3.interpolateRgb = d3_interpolateRgb;
-  function d3_interpolateRgb(a, b) {
-    a = d3.rgb(a);
-    b = d3.rgb(b);
-    var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
-    return function(t) {
-      return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
-    };
-  }
-  d3.interpolateObject = d3_interpolateObject;
-  function d3_interpolateObject(a, b) {
-    var i = {}, c = {}, k;
-    for (k in a) {
-      if (k in b) {
-        i[k] = d3_interpolate(a[k], b[k]);
-      } else {
-        c[k] = a[k];
-      }
-    }
-    for (k in b) {
-      if (!(k in a)) {
-        c[k] = b[k];
-      }
-    }
-    return function(t) {
-      for (k in i) c[k] = i[k](t);
-      return c;
-    };
-  }
-  d3.interpolateNumber = d3_interpolateNumber;
-  function d3_interpolateNumber(a, b) {
-    a = +a, b = +b;
-    return function(t) {
-      return a * (1 - t) + b * t;
-    };
-  }
-  d3.interpolateString = d3_interpolateString;
-  function d3_interpolateString(a, b) {
-    var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
-    a = a + "", b = b + "";
-    while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {
-      if ((bs = bm.index) > bi) {
-        bs = b.slice(bi, bs);
-        if (s[i]) s[i] += bs; else s[++i] = bs;
-      }
-      if ((am = am[0]) === (bm = bm[0])) {
-        if (s[i]) s[i] += bm; else s[++i] = bm;
-      } else {
-        s[++i] = null;
-        q.push({
-          i: i,
-          x: d3_interpolateNumber(am, bm)
-        });
-      }
-      bi = d3_interpolate_numberB.lastIndex;
-    }
-    if (bi < b.length) {
-      bs = b.slice(bi);
-      if (s[i]) s[i] += bs; else s[++i] = bs;
-    }
-    return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {
-      return b(t) + "";
-    }) : function() {
-      return b;
-    } : (b = q.length, function(t) {
-      for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    });
-  }
-  var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g");
-  d3.interpolate = d3_interpolate;
-  function d3_interpolate(a, b) {
-    var i = d3.interpolators.length, f;
-    while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
-    return f;
-  }
-  d3.interpolators = [ function(a, b) {
-    var t = typeof b;
-    return (t === "string" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);
-  } ];
-  d3.interpolateArray = d3_interpolateArray;
-  function d3_interpolateArray(a, b) {
-    var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
-    for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
-    for (;i < na; ++i) c[i] = a[i];
-    for (;i < nb; ++i) c[i] = b[i];
-    return function(t) {
-      for (i = 0; i < n0; ++i) c[i] = x[i](t);
-      return c;
-    };
-  }
-  var d3_ease_default = function() {
-    return d3_identity;
-  };
-  var d3_ease = d3.map({
-    linear: d3_ease_default,
-    poly: d3_ease_poly,
-    quad: function() {
-      return d3_ease_quad;
-    },
-    cubic: function() {
-      return d3_ease_cubic;
-    },
-    sin: function() {
-      return d3_ease_sin;
-    },
-    exp: function() {
-      return d3_ease_exp;
-    },
-    circle: function() {
-      return d3_ease_circle;
-    },
-    elastic: d3_ease_elastic,
-    back: d3_ease_back,
-    bounce: function() {
-      return d3_ease_bounce;
-    }
-  });
-  var d3_ease_mode = d3.map({
-    "in": d3_identity,
-    out: d3_ease_reverse,
-    "in-out": d3_ease_reflect,
-    "out-in": function(f) {
-      return d3_ease_reflect(d3_ease_reverse(f));
-    }
-  });
-  d3.ease = function(name) {
-    var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in";
-    t = d3_ease.get(t) || d3_ease_default;
-    m = d3_ease_mode.get(m) || d3_identity;
-    return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));
-  };
-  function d3_ease_clamp(f) {
-    return function(t) {
-      return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
-    };
-  }
-  function d3_ease_reverse(f) {
-    return function(t) {
-      return 1 - f(1 - t);
-    };
-  }
-  function d3_ease_reflect(f) {
-    return function(t) {
-      return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
-    };
-  }
-  function d3_ease_quad(t) {
-    return t * t;
-  }
-  function d3_ease_cubic(t) {
-    return t * t * t;
-  }
-  function d3_ease_cubicInOut(t) {
-    if (t <= 0) return 0;
-    if (t >= 1) return 1;
-    var t2 = t * t, t3 = t2 * t;
-    return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
-  }
-  function d3_ease_poly(e) {
-    return function(t) {
-      return Math.pow(t, e);
-    };
-  }
-  function d3_ease_sin(t) {
-    return 1 - Math.cos(t * halfπ);
-  }
-  function d3_ease_exp(t) {
-    return Math.pow(2, 10 * (t - 1));
-  }
-  function d3_ease_circle(t) {
-    return 1 - Math.sqrt(1 - t * t);
-  }
-  function d3_ease_elastic(a, p) {
-    var s;
-    if (arguments.length < 2) p = .45;
-    if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;
-    return function(t) {
-      return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);
-    };
-  }
-  function d3_ease_back(s) {
-    if (!s) s = 1.70158;
-    return function(t) {
-      return t * t * ((s + 1) * t - s);
-    };
-  }
-  function d3_ease_bounce(t) {
-    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
-  }
-  d3.interpolateHcl = d3_interpolateHcl;
-  function d3_interpolateHcl(a, b) {
-    a = d3.hcl(a);
-    b = d3.hcl(b);
-    var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
-    if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;
-    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
-    return function(t) {
-      return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
-    };
-  }
-  d3.interpolateHsl = d3_interpolateHsl;
-  function d3_interpolateHsl(a, b) {
-    a = d3.hsl(a);
-    b = d3.hsl(b);
-    var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;
-    if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;
-    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
-    return function(t) {
-      return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + "";
-    };
-  }
-  d3.interpolateLab = d3_interpolateLab;
-  function d3_interpolateLab(a, b) {
-    a = d3.lab(a);
-    b = d3.lab(b);
-    var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
-    return function(t) {
-      return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
-    };
-  }
-  d3.interpolateRound = d3_interpolateRound;
-  function d3_interpolateRound(a, b) {
-    b -= a;
-    return function(t) {
-      return Math.round(a + b * t);
-    };
-  }
-  d3.transform = function(string) {
-    var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
-    return (d3.transform = function(string) {
-      if (string != null) {
-        g.setAttribute("transform", string);
-        var t = g.transform.baseVal.consolidate();
-      }
-      return new d3_transform(t ? t.matrix : d3_transformIdentity);
-    })(string);
-  };
-  function d3_transform(m) {
-    var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
-    if (r0[0] * r1[1] < r1[0] * r0[1]) {
-      r0[0] *= -1;
-      r0[1] *= -1;
-      kx *= -1;
-      kz *= -1;
-    }
-    this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
-    this.translate = [ m.e, m.f ];
-    this.scale = [ kx, ky ];
-    this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
-  }
-  d3_transform.prototype.toString = function() {
-    return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
-  };
-  function d3_transformDot(a, b) {
-    return a[0] * b[0] + a[1] * b[1];
-  }
-  function d3_transformNormalize(a) {
-    var k = Math.sqrt(d3_transformDot(a, a));
-    if (k) {
-      a[0] /= k;
-      a[1] /= k;
-    }
-    return k;
-  }
-  function d3_transformCombine(a, b, k) {
-    a[0] += k * b[0];
-    a[1] += k * b[1];
-    return a;
-  }
-  var d3_transformIdentity = {
-    a: 1,
-    b: 0,
-    c: 0,
-    d: 1,
-    e: 0,
-    f: 0
-  };
-  d3.interpolateTransform = d3_interpolateTransform;
-  function d3_interpolateTransformPop(s) {
-    return s.length ? s.pop() + "," : "";
-  }
-  function d3_interpolateTranslate(ta, tb, s, q) {
-    if (ta[0] !== tb[0] || ta[1] !== tb[1]) {
-      var i = s.push("translate(", null, ",", null, ")");
-      q.push({
-        i: i - 4,
-        x: d3_interpolateNumber(ta[0], tb[0])
-      }, {
-        i: i - 2,
-        x: d3_interpolateNumber(ta[1], tb[1])
-      });
-    } else if (tb[0] || tb[1]) {
-      s.push("translate(" + tb + ")");
-    }
-  }
-  function d3_interpolateRotate(ra, rb, s, q) {
-    if (ra !== rb) {
-      if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
-      q.push({
-        i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2,
-        x: d3_interpolateNumber(ra, rb)
-      });
-    } else if (rb) {
-      s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")");
-    }
-  }
-  function d3_interpolateSkew(wa, wb, s, q) {
-    if (wa !== wb) {
-      q.push({
-        i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2,
-        x: d3_interpolateNumber(wa, wb)
-      });
-    } else if (wb) {
-      s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")");
-    }
-  }
-  function d3_interpolateScale(ka, kb, s, q) {
-    if (ka[0] !== kb[0] || ka[1] !== kb[1]) {
-      var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")");
-      q.push({
-        i: i - 4,
-        x: d3_interpolateNumber(ka[0], kb[0])
-      }, {
-        i: i - 2,
-        x: d3_interpolateNumber(ka[1], kb[1])
-      });
-    } else if (kb[0] !== 1 || kb[1] !== 1) {
-      s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")");
-    }
-  }
-  function d3_interpolateTransform(a, b) {
-    var s = [], q = [];
-    a = d3.transform(a), b = d3.transform(b);
-    d3_interpolateTranslate(a.translate, b.translate, s, q);
-    d3_interpolateRotate(a.rotate, b.rotate, s, q);
-    d3_interpolateSkew(a.skew, b.skew, s, q);
-    d3_interpolateScale(a.scale, b.scale, s, q);
-    a = b = null;
-    return function(t) {
-      var i = -1, n = q.length, o;
-      while (++i < n) s[(o = q[i]).i] = o.x(t);
-      return s.join("");
-    };
-  }
-  function d3_uninterpolateNumber(a, b) {
-    b = (b -= a = +a) || 1 / b;
-    return function(x) {
-      return (x - a) / b;
-    };
-  }
-  function d3_uninterpolateClamp(a, b) {
-    b = (b -= a = +a) || 1 / b;
-    return function(x) {
-      return Math.max(0, Math.min(1, (x - a) / b));
-    };
-  }
-  d3.layout = {};
-  d3.layout.bundle = function() {
-    return function(links) {
-      var paths = [], i = -1, n = links.length;
-      while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
-      return paths;
-    };
-  };
-  function d3_layout_bundlePath(link) {
-    var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
-    while (start !== lca) {
-      start = start.parent;
-      points.push(start);
-    }
-    var k = points.length;
-    while (end !== lca) {
-      points.splice(k, 0, end);
-      end = end.parent;
-    }
-    return points;
-  }
-  function d3_layout_bundleAncestors(node) {
-    var ancestors = [], parent = node.parent;
-    while (parent != null) {
-      ancestors.push(node);
-      node = parent;
-      parent = parent.parent;
-    }
-    ancestors.push(node);
-    return ancestors;
-  }
-  function d3_layout_bundleLeastCommonAncestor(a, b) {
-    if (a === b) return a;
-    var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
-    while (aNode === bNode) {
-      sharedNode = aNode;
-      aNode = aNodes.pop();
-      bNode = bNodes.pop();
-    }
-    return sharedNode;
-  }
-  d3.layout.chord = function() {
-    var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
-    function relayout() {
-      var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
-      chords = [];
-      groups = [];
-      k = 0, i = -1;
-      while (++i < n) {
-        x = 0, j = -1;
-        while (++j < n) {
-          x += matrix[i][j];
-        }
-        groupSums.push(x);
-        subgroupIndex.push(d3.range(n));
-        k += x;
-      }
-      if (sortGroups) {
-        groupIndex.sort(function(a, b) {
-          return sortGroups(groupSums[a], groupSums[b]);
-        });
-      }
-      if (sortSubgroups) {
-        subgroupIndex.forEach(function(d, i) {
-          d.sort(function(a, b) {
-            return sortSubgroups(matrix[i][a], matrix[i][b]);
-          });
-        });
-      }
-      k = (τ - padding * n) / k;
-      x = 0, i = -1;
-      while (++i < n) {
-        x0 = x, j = -1;
-        while (++j < n) {
-          var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
-          subgroups[di + "-" + dj] = {
-            index: di,
-            subindex: dj,
-            startAngle: a0,
-            endAngle: a1,
-            value: v
-          };
-        }
-        groups[di] = {
-          index: di,
-          startAngle: x0,
-          endAngle: x,
-          value: groupSums[di]
-        };
-        x += padding;
-      }
-      i = -1;
-      while (++i < n) {
-        j = i - 1;
-        while (++j < n) {
-          var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
-          if (source.value || target.value) {
-            chords.push(source.value < target.value ? {
-              source: target,
-              target: source
-            } : {
-              source: source,
-              target: target
-            });
-          }
-        }
-      }
-      if (sortChords) resort();
-    }
-    function resort() {
-      chords.sort(function(a, b) {
-        return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
-      });
-    }
-    chord.matrix = function(x) {
-      if (!arguments.length) return matrix;
-      n = (matrix = x) && matrix.length;
-      chords = groups = null;
-      return chord;
-    };
-    chord.padding = function(x) {
-      if (!arguments.length) return padding;
-      padding = x;
-      chords = groups = null;
-      return chord;
-    };
-    chord.sortGroups = function(x) {
-      if (!arguments.length) return sortGroups;
-      sortGroups = x;
-      chords = groups = null;
-      return chord;
-    };
-    chord.sortSubgroups = function(x) {
-      if (!arguments.length) return sortSubgroups;
-      sortSubgroups = x;
-      chords = null;
-      return chord;
-    };
-    chord.sortChords = function(x) {
-      if (!arguments.length) return sortChords;
-      sortChords = x;
-      if (chords) resort();
-      return chord;
-    };
-    chord.chords = function() {
-      if (!chords) relayout();
-      return chords;
-    };
-    chord.groups = function() {
-      if (!groups) relayout();
-      return groups;
-    };
-    return chord;
-  };
-  d3.layout.force = function() {
-    var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;
-    function repulse(node) {
-      return function(quad, x1, _, x2) {
-        if (quad.point !== node) {
-          var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;
-          if (dw * dw / theta2 < dn) {
-            if (dn < chargeDistance2) {
-              var k = quad.charge / dn;
-              node.px -= dx * k;
-              node.py -= dy * k;
-            }
-            return true;
-          }
-          if (quad.point && dn && dn < chargeDistance2) {
-            var k = quad.pointCharge / dn;
-            node.px -= dx * k;
-            node.py -= dy * k;
-          }
-        }
-        return !quad.charge;
-      };
-    }
-    force.tick = function() {
-      if ((alpha *= .99) < .005) {
-        timer = null;
-        event.end({
-          type: "end",
-          alpha: alpha = 0
-        });
-        return true;
-      }
-      var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
-      for (i = 0; i < m; ++i) {
-        o = links[i];
-        s = o.source;
-        t = o.target;
-        x = t.x - s.x;
-        y = t.y - s.y;
-        if (l = x * x + y * y) {
-          l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
-          x *= l;
-          y *= l;
-          t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);
-          t.y -= y * k;
-          s.x += x * (k = 1 - k);
-          s.y += y * k;
-        }
-      }
-      if (k = alpha * gravity) {
-        x = size[0] / 2;
-        y = size[1] / 2;
-        i = -1;
-        if (k) while (++i < n) {
-          o = nodes[i];
-          o.x += (x - o.x) * k;
-          o.y += (y - o.y) * k;
-        }
-      }
-      if (charge) {
-        d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
-        i = -1;
-        while (++i < n) {
-          if (!(o = nodes[i]).fixed) {
-            q.visit(repulse(o));
-          }
-        }
-      }
-      i = -1;
-      while (++i < n) {
-        o = nodes[i];
-        if (o.fixed) {
-          o.x = o.px;
-          o.y = o.py;
-        } else {
-          o.x -= (o.px - (o.px = o.x)) * friction;
-          o.y -= (o.py - (o.py = o.y)) * friction;
-        }
-      }
-      event.tick({
-        type: "tick",
-        alpha: alpha
-      });
-    };
-    force.nodes = function(x) {
-      if (!arguments.length) return nodes;
-      nodes = x;
-      return force;
-    };
-    force.links = function(x) {
-      if (!arguments.length) return links;
-      links = x;
-      return force;
-    };
-    force.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return force;
-    };
-    force.linkDistance = function(x) {
-      if (!arguments.length) return linkDistance;
-      linkDistance = typeof x === "function" ? x : +x;
-      return force;
-    };
-    force.distance = force.linkDistance;
-    force.linkStrength = function(x) {
-      if (!arguments.length) return linkStrength;
-      linkStrength = typeof x === "function" ? x : +x;
-      return force;
-    };
-    force.friction = function(x) {
-      if (!arguments.length) return friction;
-      friction = +x;
-      return force;
-    };
-    force.charge = function(x) {
-      if (!arguments.length) return charge;
-      charge = typeof x === "function" ? x : +x;
-      return force;
-    };
-    force.chargeDistance = function(x) {
-      if (!arguments.length) return Math.sqrt(chargeDistance2);
-      chargeDistance2 = x * x;
-      return force;
-    };
-    force.gravity = function(x) {
-      if (!arguments.length) return gravity;
-      gravity = +x;
-      return force;
-    };
-    force.theta = function(x) {
-      if (!arguments.length) return Math.sqrt(theta2);
-      theta2 = x * x;
-      return force;
-    };
-    force.alpha = function(x) {
-      if (!arguments.length) return alpha;
-      x = +x;
-      if (alpha) {
-        if (x > 0) {
-          alpha = x;
-        } else {
-          timer.c = null, timer.t = NaN, timer = null;
-          event.end({
-            type: "end",
-            alpha: alpha = 0
-          });
-        }
-      } else if (x > 0) {
-        event.start({
-          type: "start",
-          alpha: alpha = x
-        });
-        timer = d3_timer(force.tick);
-      }
-      return force;
-    };
-    force.start = function() {
-      var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
-      for (i = 0; i < n; ++i) {
-        (o = nodes[i]).index = i;
-        o.weight = 0;
-      }
-      for (i = 0; i < m; ++i) {
-        o = links[i];
-        if (typeof o.source == "number") o.source = nodes[o.source];
-        if (typeof o.target == "number") o.target = nodes[o.target];
-        ++o.source.weight;
-        ++o.target.weight;
-      }
-      for (i = 0; i < n; ++i) {
-        o = nodes[i];
-        if (isNaN(o.x)) o.x = position("x", w);
-        if (isNaN(o.y)) o.y = position("y", h);
-        if (isNaN(o.px)) o.px = o.x;
-        if (isNaN(o.py)) o.py = o.y;
-      }
-      distances = [];
-      if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
-      strengths = [];
-      if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
-      charges = [];
-      if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
-      function position(dimension, size) {
-        if (!neighbors) {
-          neighbors = new Array(n);
-          for (j = 0; j < n; ++j) {
-            neighbors[j] = [];
-          }
-          for (j = 0; j < m; ++j) {
-            var o = links[j];
-            neighbors[o.source.index].push(o.target);
-            neighbors[o.target.index].push(o.source);
-          }
-        }
-        var candidates = neighbors[i], j = -1, l = candidates.length, x;
-        while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;
-        return Math.random() * size;
-      }
-      return force.resume();
-    };
-    force.resume = function() {
-      return force.alpha(.1);
-    };
-    force.stop = function() {
-      return force.alpha(0);
-    };
-    force.drag = function() {
-      if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
-      if (!arguments.length) return drag;
-      this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
-    };
-    function dragmove(d) {
-      d.px = d3.event.x, d.py = d3.event.y;
-      force.resume();
-    }
-    return d3.rebind(force, event, "on");
-  };
-  function d3_layout_forceDragstart(d) {
-    d.fixed |= 2;
-  }
-  function d3_layout_forceDragend(d) {
-    d.fixed &= ~6;
-  }
-  function d3_layout_forceMouseover(d) {
-    d.fixed |= 4;
-    d.px = d.x, d.py = d.y;
-  }
-  function d3_layout_forceMouseout(d) {
-    d.fixed &= ~4;
-  }
-  function d3_layout_forceAccumulate(quad, alpha, charges) {
-    var cx = 0, cy = 0;
-    quad.charge = 0;
-    if (!quad.leaf) {
-      var nodes = quad.nodes, n = nodes.length, i = -1, c;
-      while (++i < n) {
-        c = nodes[i];
-        if (c == null) continue;
-        d3_layout_forceAccumulate(c, alpha, charges);
-        quad.charge += c.charge;
-        cx += c.charge * c.cx;
-        cy += c.charge * c.cy;
-      }
-    }
-    if (quad.point) {
-      if (!quad.leaf) {
-        quad.point.x += Math.random() - .5;
-        quad.point.y += Math.random() - .5;
-      }
-      var k = alpha * charges[quad.point.index];
-      quad.charge += quad.pointCharge = k;
-      cx += k * quad.point.x;
-      cy += k * quad.point.y;
-    }
-    quad.cx = cx / quad.charge;
-    quad.cy = cy / quad.charge;
-  }
-  var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;
-  d3.layout.hierarchy = function() {
-    var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
-    function hierarchy(root) {
-      var stack = [ root ], nodes = [], node;
-      root.depth = 0;
-      while ((node = stack.pop()) != null) {
-        nodes.push(node);
-        if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {
-          var n, childs, child;
-          while (--n >= 0) {
-            stack.push(child = childs[n]);
-            child.parent = node;
-            child.depth = node.depth + 1;
-          }
-          if (value) node.value = 0;
-          node.children = childs;
-        } else {
-          if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;
-          delete node.children;
-        }
-      }
-      d3_layout_hierarchyVisitAfter(root, function(node) {
-        var childs, parent;
-        if (sort && (childs = node.children)) childs.sort(sort);
-        if (value && (parent = node.parent)) parent.value += node.value;
-      });
-      return nodes;
-    }
-    hierarchy.sort = function(x) {
-      if (!arguments.length) return sort;
-      sort = x;
-      return hierarchy;
-    };
-    hierarchy.children = function(x) {
-      if (!arguments.length) return children;
-      children = x;
-      return hierarchy;
-    };
-    hierarchy.value = function(x) {
-      if (!arguments.length) return value;
-      value = x;
-      return hierarchy;
-    };
-    hierarchy.revalue = function(root) {
-      if (value) {
-        d3_layout_hierarchyVisitBefore(root, function(node) {
-          if (node.children) node.value = 0;
-        });
-        d3_layout_hierarchyVisitAfter(root, function(node) {
-          var parent;
-          if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;
-          if (parent = node.parent) parent.value += node.value;
-        });
-      }
-      return root;
-    };
-    return hierarchy;
-  };
-  function d3_layout_hierarchyRebind(object, hierarchy) {
-    d3.rebind(object, hierarchy, "sort", "children", "value");
-    object.nodes = object;
-    object.links = d3_layout_hierarchyLinks;
-    return object;
-  }
-  function d3_layout_hierarchyVisitBefore(node, callback) {
-    var nodes = [ node ];
-    while ((node = nodes.pop()) != null) {
-      callback(node);
-      if ((children = node.children) && (n = children.length)) {
-        var n, children;
-        while (--n >= 0) nodes.push(children[n]);
-      }
-    }
-  }
-  function d3_layout_hierarchyVisitAfter(node, callback) {
-    var nodes = [ node ], nodes2 = [];
-    while ((node = nodes.pop()) != null) {
-      nodes2.push(node);
-      if ((children = node.children) && (n = children.length)) {
-        var i = -1, n, children;
-        while (++i < n) nodes.push(children[i]);
-      }
-    }
-    while ((node = nodes2.pop()) != null) {
-      callback(node);
-    }
-  }
-  function d3_layout_hierarchyChildren(d) {
-    return d.children;
-  }
-  function d3_layout_hierarchyValue(d) {
-    return d.value;
-  }
-  function d3_layout_hierarchySort(a, b) {
-    return b.value - a.value;
-  }
-  function d3_layout_hierarchyLinks(nodes) {
-    return d3.merge(nodes.map(function(parent) {
-      return (parent.children || []).map(function(child) {
-        return {
-          source: parent,
-          target: child
-        };
-      });
-    }));
-  }
-  d3.layout.partition = function() {
-    var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
-    function position(node, x, dx, dy) {
-      var children = node.children;
-      node.x = x;
-      node.y = node.depth * dy;
-      node.dx = dx;
-      node.dy = dy;
-      if (children && (n = children.length)) {
-        var i = -1, n, c, d;
-        dx = node.value ? dx / node.value : 0;
-        while (++i < n) {
-          position(c = children[i], x, d = c.value * dx, dy);
-          x += d;
-        }
-      }
-    }
-    function depth(node) {
-      var children = node.children, d = 0;
-      if (children && (n = children.length)) {
-        var i = -1, n;
-        while (++i < n) d = Math.max(d, depth(children[i]));
-      }
-      return 1 + d;
-    }
-    function partition(d, i) {
-      var nodes = hierarchy.call(this, d, i);
-      position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
-      return nodes;
-    }
-    partition.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return partition;
-    };
-    return d3_layout_hierarchyRebind(partition, hierarchy);
-  };
-  d3.layout.pie = function() {
-    var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;
-    function pie(data) {
-      var n = data.length, values = data.map(function(d, i) {
-        return +value.call(pie, d, i);
-      }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;
-      if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
-        return values[j] - values[i];
-      } : function(i, j) {
-        return sort(data[i], data[j]);
-      });
-      index.forEach(function(i) {
-        arcs[i] = {
-          data: data[i],
-          value: v = values[i],
-          startAngle: a,
-          endAngle: a += v * k + pa,
-          padAngle: p
-        };
-      });
-      return arcs;
-    }
-    pie.value = function(_) {
-      if (!arguments.length) return value;
-      value = _;
-      return pie;
-    };
-    pie.sort = function(_) {
-      if (!arguments.length) return sort;
-      sort = _;
-      return pie;
-    };
-    pie.startAngle = function(_) {
-      if (!arguments.length) return startAngle;
-      startAngle = _;
-      return pie;
-    };
-    pie.endAngle = function(_) {
-      if (!arguments.length) return endAngle;
-      endAngle = _;
-      return pie;
-    };
-    pie.padAngle = function(_) {
-      if (!arguments.length) return padAngle;
-      padAngle = _;
-      return pie;
-    };
-    return pie;
-  };
-  var d3_layout_pieSortByValue = {};
-  d3.layout.stack = function() {
-    var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
-    function stack(data, index) {
-      if (!(n = data.length)) return data;
-      var series = data.map(function(d, i) {
-        return values.call(stack, d, i);
-      });
-      var points = series.map(function(d) {
-        return d.map(function(v, i) {
-          return [ x.call(stack, v, i), y.call(stack, v, i) ];
-        });
-      });
-      var orders = order.call(stack, points, index);
-      series = d3.permute(series, orders);
-      points = d3.permute(points, orders);
-      var offsets = offset.call(stack, points, index);
-      var m = series[0].length, n, i, j, o;
-      for (j = 0; j < m; ++j) {
-        out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
-        for (i = 1; i < n; ++i) {
-          out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
-        }
-      }
-      return data;
-    }
-    stack.values = function(x) {
-      if (!arguments.length) return values;
-      values = x;
-      return stack;
-    };
-    stack.order = function(x) {
-      if (!arguments.length) return order;
-      order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
-      return stack;
-    };
-    stack.offset = function(x) {
-      if (!arguments.length) return offset;
-      offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
-      return stack;
-    };
-    stack.x = function(z) {
-      if (!arguments.length) return x;
-      x = z;
-      return stack;
-    };
-    stack.y = function(z) {
-      if (!arguments.length) return y;
-      y = z;
-      return stack;
-    };
-    stack.out = function(z) {
-      if (!arguments.length) return out;
-      out = z;
-      return stack;
-    };
-    return stack;
-  };
-  function d3_layout_stackX(d) {
-    return d.x;
-  }
-  function d3_layout_stackY(d) {
-    return d.y;
-  }
-  function d3_layout_stackOut(d, y0, y) {
-    d.y0 = y0;
-    d.y = y;
-  }
-  var d3_layout_stackOrders = d3.map({
-    "inside-out": function(data) {
-      var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
-        return max[a] - max[b];
-      }), top = 0, bottom = 0, tops = [], bottoms = [];
-      for (i = 0; i < n; ++i) {
-        j = index[i];
-        if (top < bottom) {
-          top += sums[j];
-          tops.push(j);
-        } else {
-          bottom += sums[j];
-          bottoms.push(j);
-        }
-      }
-      return bottoms.reverse().concat(tops);
-    },
-    reverse: function(data) {
-      return d3.range(data.length).reverse();
-    },
-    "default": d3_layout_stackOrderDefault
-  });
-  var d3_layout_stackOffsets = d3.map({
-    silhouette: function(data) {
-      var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
-      for (j = 0; j < m; ++j) {
-        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-        if (o > max) max = o;
-        sums.push(o);
-      }
-      for (j = 0; j < m; ++j) {
-        y0[j] = (max - sums[j]) / 2;
-      }
-      return y0;
-    },
-    wiggle: function(data) {
-      var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
-      y0[0] = o = o0 = 0;
-      for (j = 1; j < m; ++j) {
-        for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
-        for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
-          for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
-            s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
-          }
-          s2 += s3 * data[i][j][1];
-        }
-        y0[j] = o -= s1 ? s2 / s1 * dx : 0;
-        if (o < o0) o0 = o;
-      }
-      for (j = 0; j < m; ++j) y0[j] -= o0;
-      return y0;
-    },
-    expand: function(data) {
-      var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
-      for (j = 0; j < m; ++j) {
-        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
-        if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
-      }
-      for (j = 0; j < m; ++j) y0[j] = 0;
-      return y0;
-    },
-    zero: d3_layout_stackOffsetZero
-  });
-  function d3_layout_stackOrderDefault(data) {
-    return d3.range(data.length);
-  }
-  function d3_layout_stackOffsetZero(data) {
-    var j = -1, m = data[0].length, y0 = [];
-    while (++j < m) y0[j] = 0;
-    return y0;
-  }
-  function d3_layout_stackMaxIndex(array) {
-    var i = 1, j = 0, v = array[0][1], k, n = array.length;
-    for (;i < n; ++i) {
-      if ((k = array[i][1]) > v) {
-        j = i;
-        v = k;
-      }
-    }
-    return j;
-  }
-  function d3_layout_stackReduceSum(d) {
-    return d.reduce(d3_layout_stackSum, 0);
-  }
-  function d3_layout_stackSum(p, d) {
-    return p + d[1];
-  }
-  d3.layout.histogram = function() {
-    var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
-    function histogram(data, i) {
-      var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
-      while (++i < m) {
-        bin = bins[i] = [];
-        bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
-        bin.y = 0;
-      }
-      if (m > 0) {
-        i = -1;
-        while (++i < n) {
-          x = values[i];
-          if (x >= range[0] && x <= range[1]) {
-            bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
-            bin.y += k;
-            bin.push(data[i]);
-          }
-        }
-      }
-      return bins;
-    }
-    histogram.value = function(x) {
-      if (!arguments.length) return valuer;
-      valuer = x;
-      return histogram;
-    };
-    histogram.range = function(x) {
-      if (!arguments.length) return ranger;
-      ranger = d3_functor(x);
-      return histogram;
-    };
-    histogram.bins = function(x) {
-      if (!arguments.length) return binner;
-      binner = typeof x === "number" ? function(range) {
-        return d3_layout_histogramBinFixed(range, x);
-      } : d3_functor(x);
-      return histogram;
-    };
-    histogram.frequency = function(x) {
-      if (!arguments.length) return frequency;
-      frequency = !!x;
-      return histogram;
-    };
-    return histogram;
-  };
-  function d3_layout_histogramBinSturges(range, values) {
-    return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
-  }
-  function d3_layout_histogramBinFixed(range, n) {
-    var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
-    while (++x <= n) f[x] = m * x + b;
-    return f;
-  }
-  function d3_layout_histogramRange(values) {
-    return [ d3.min(values), d3.max(values) ];
-  }
-  d3.layout.pack = function() {
-    var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;
-    function pack(d, i) {
-      var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() {
-        return radius;
-      };
-      root.x = root.y = 0;
-      d3_layout_hierarchyVisitAfter(root, function(d) {
-        d.r = +r(d.value);
-      });
-      d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
-      if (padding) {
-        var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;
-        d3_layout_hierarchyVisitAfter(root, function(d) {
-          d.r += dr;
-        });
-        d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
-        d3_layout_hierarchyVisitAfter(root, function(d) {
-          d.r -= dr;
-        });
-      }
-      d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));
-      return nodes;
-    }
-    pack.size = function(_) {
-      if (!arguments.length) return size;
-      size = _;
-      return pack;
-    };
-    pack.radius = function(_) {
-      if (!arguments.length) return radius;
-      radius = _ == null || typeof _ === "function" ? _ : +_;
-      return pack;
-    };
-    pack.padding = function(_) {
-      if (!arguments.length) return padding;
-      padding = +_;
-      return pack;
-    };
-    return d3_layout_hierarchyRebind(pack, hierarchy);
-  };
-  function d3_layout_packSort(a, b) {
-    return a.value - b.value;
-  }
-  function d3_layout_packInsert(a, b) {
-    var c = a._pack_next;
-    a._pack_next = b;
-    b._pack_prev = a;
-    b._pack_next = c;
-    c._pack_prev = b;
-  }
-  function d3_layout_packSplice(a, b) {
-    a._pack_next = b;
-    b._pack_prev = a;
-  }
-  function d3_layout_packIntersects(a, b) {
-    var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
-    return .999 * dr * dr > dx * dx + dy * dy;
-  }
-  function d3_layout_packSiblings(node) {
-    if (!(nodes = node.children) || !(n = nodes.length)) return;
-    var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
-    function bound(node) {
-      xMin = Math.min(node.x - node.r, xMin);
-      xMax = Math.max(node.x + node.r, xMax);
-      yMin = Math.min(node.y - node.r, yMin);
-      yMax = Math.max(node.y + node.r, yMax);
-    }
-    nodes.forEach(d3_layout_packLink);
-    a = nodes[0];
-    a.x = -a.r;
-    a.y = 0;
-    bound(a);
-    if (n > 1) {
-      b = nodes[1];
-      b.x = b.r;
-      b.y = 0;
-      bound(b);
-      if (n > 2) {
-        c = nodes[2];
-        d3_layout_packPlace(a, b, c);
-        bound(c);
-        d3_layout_packInsert(a, c);
-        a._pack_prev = c;
-        d3_layout_packInsert(c, b);
-        b = a._pack_next;
-        for (i = 3; i < n; i++) {
-          d3_layout_packPlace(a, b, c = nodes[i]);
-          var isect = 0, s1 = 1, s2 = 1;
-          for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
-            if (d3_layout_packIntersects(j, c)) {
-              isect = 1;
-              break;
-            }
-          }
-          if (isect == 1) {
-            for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
-              if (d3_layout_packIntersects(k, c)) {
-                break;
-              }
-            }
-          }
-          if (isect) {
-            if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
-            i--;
-          } else {
-            d3_layout_packInsert(a, c);
-            b = c;
-            bound(c);
-          }
-        }
-      }
-    }
-    var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
-    for (i = 0; i < n; i++) {
-      c = nodes[i];
-      c.x -= cx;
-      c.y -= cy;
-      cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
-    }
-    node.r = cr;
-    nodes.forEach(d3_layout_packUnlink);
-  }
-  function d3_layout_packLink(node) {
-    node._pack_next = node._pack_prev = node;
-  }
-  function d3_layout_packUnlink(node) {
-    delete node._pack_next;
-    delete node._pack_prev;
-  }
-  function d3_layout_packTransform(node, x, y, k) {
-    var children = node.children;
-    node.x = x += k * node.x;
-    node.y = y += k * node.y;
-    node.r *= k;
-    if (children) {
-      var i = -1, n = children.length;
-      while (++i < n) d3_layout_packTransform(children[i], x, y, k);
-    }
-  }
-  function d3_layout_packPlace(a, b, c) {
-    var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
-    if (db && (dx || dy)) {
-      var da = b.r + c.r, dc = dx * dx + dy * dy;
-      da *= da;
-      db *= db;
-      var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
-      c.x = a.x + x * dx + y * dy;
-      c.y = a.y + x * dy - y * dx;
-    } else {
-      c.x = a.x + db;
-      c.y = a.y;
-    }
-  }
-  d3.layout.tree = function() {
-    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;
-    function tree(d, i) {
-      var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);
-      d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;
-      d3_layout_hierarchyVisitBefore(root1, secondWalk);
-      if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {
-        var left = root0, right = root0, bottom = root0;
-        d3_layout_hierarchyVisitBefore(root0, function(node) {
-          if (node.x < left.x) left = node;
-          if (node.x > right.x) right = node;
-          if (node.depth > bottom.depth) bottom = node;
-        });
-        var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);
-        d3_layout_hierarchyVisitBefore(root0, function(node) {
-          node.x = (node.x + tx) * kx;
-          node.y = node.depth * ky;
-        });
-      }
-      return nodes;
-    }
-    function wrapTree(root0) {
-      var root1 = {
-        A: null,
-        children: [ root0 ]
-      }, queue = [ root1 ], node1;
-      while ((node1 = queue.pop()) != null) {
-        for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {
-          queue.push((children[i] = child = {
-            _: children[i],
-            parent: node1,
-            children: (child = children[i].children) && child.slice() || [],
-            A: null,
-            a: null,
-            z: 0,
-            m: 0,
-            c: 0,
-            s: 0,
-            t: null,
-            i: i
-          }).a = child);
-        }
-      }
-      return root1.children[0];
-    }
-    function firstWalk(v) {
-      var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;
-      if (children.length) {
-        d3_layout_treeShift(v);
-        var midpoint = (children[0].z + children[children.length - 1].z) / 2;
-        if (w) {
-          v.z = w.z + separation(v._, w._);
-          v.m = v.z - midpoint;
-        } else {
-          v.z = midpoint;
-        }
-      } else if (w) {
-        v.z = w.z + separation(v._, w._);
-      }
-      v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
-    }
-    function secondWalk(v) {
-      v._.x = v.z + v.parent.m;
-      v.m += v.parent.m;
-    }
-    function apportion(v, w, ancestor) {
-      if (w) {
-        var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;
-        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
-          vom = d3_layout_treeLeft(vom);
-          vop = d3_layout_treeRight(vop);
-          vop.a = v;
-          shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
-          if (shift > 0) {
-            d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);
-            sip += shift;
-            sop += shift;
-          }
-          sim += vim.m;
-          sip += vip.m;
-          som += vom.m;
-          sop += vop.m;
-        }
-        if (vim && !d3_layout_treeRight(vop)) {
-          vop.t = vim;
-          vop.m += sim - sop;
-        }
-        if (vip && !d3_layout_treeLeft(vom)) {
-          vom.t = vip;
-          vom.m += sip - som;
-          ancestor = v;
-        }
-      }
-      return ancestor;
-    }
-    function sizeNode(node) {
-      node.x *= size[0];
-      node.y = node.depth * size[1];
-    }
-    tree.separation = function(x) {
-      if (!arguments.length) return separation;
-      separation = x;
-      return tree;
-    };
-    tree.size = function(x) {
-      if (!arguments.length) return nodeSize ? null : size;
-      nodeSize = (size = x) == null ? sizeNode : null;
-      return tree;
-    };
-    tree.nodeSize = function(x) {
-      if (!arguments.length) return nodeSize ? size : null;
-      nodeSize = (size = x) == null ? null : sizeNode;
-      return tree;
-    };
-    return d3_layout_hierarchyRebind(tree, hierarchy);
-  };
-  function d3_layout_treeSeparation(a, b) {
-    return a.parent == b.parent ? 1 : 2;
-  }
-  function d3_layout_treeLeft(v) {
-    var children = v.children;
-    return children.length ? children[0] : v.t;
-  }
-  function d3_layout_treeRight(v) {
-    var children = v.children, n;
-    return (n = children.length) ? children[n - 1] : v.t;
-  }
-  function d3_layout_treeMove(wm, wp, shift) {
-    var change = shift / (wp.i - wm.i);
-    wp.c -= change;
-    wp.s += shift;
-    wm.c += change;
-    wp.z += shift;
-    wp.m += shift;
-  }
-  function d3_layout_treeShift(v) {
-    var shift = 0, change = 0, children = v.children, i = children.length, w;
-    while (--i >= 0) {
-      w = children[i];
-      w.z += shift;
-      w.m += shift;
-      shift += w.s + (change += w.c);
-    }
-  }
-  function d3_layout_treeAncestor(vim, v, ancestor) {
-    return vim.a.parent === v.parent ? vim.a : ancestor;
-  }
-  d3.layout.cluster = function() {
-    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
-    function cluster(d, i) {
-      var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
-      d3_layout_hierarchyVisitAfter(root, function(node) {
-        var children = node.children;
-        if (children && children.length) {
-          node.x = d3_layout_clusterX(children);
-          node.y = d3_layout_clusterY(children);
-        } else {
-          node.x = previousNode ? x += separation(node, previousNode) : 0;
-          node.y = 0;
-          previousNode = node;
-        }
-      });
-      var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
-      d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {
-        node.x = (node.x - root.x) * size[0];
-        node.y = (root.y - node.y) * size[1];
-      } : function(node) {
-        node.x = (node.x - x0) / (x1 - x0) * size[0];
-        node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
-      });
-      return nodes;
-    }
-    cluster.separation = function(x) {
-      if (!arguments.length) return separation;
-      separation = x;
-      return cluster;
-    };
-    cluster.size = function(x) {
-      if (!arguments.length) return nodeSize ? null : size;
-      nodeSize = (size = x) == null;
-      return cluster;
-    };
-    cluster.nodeSize = function(x) {
-      if (!arguments.length) return nodeSize ? size : null;
-      nodeSize = (size = x) != null;
-      return cluster;
-    };
-    return d3_layout_hierarchyRebind(cluster, hierarchy);
-  };
-  function d3_layout_clusterY(children) {
-    return 1 + d3.max(children, function(child) {
-      return child.y;
-    });
-  }
-  function d3_layout_clusterX(children) {
-    return children.reduce(function(x, child) {
-      return x + child.x;
-    }, 0) / children.length;
-  }
-  function d3_layout_clusterLeft(node) {
-    var children = node.children;
-    return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
-  }
-  function d3_layout_clusterRight(node) {
-    var children = node.children, n;
-    return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
-  }
-  d3.layout.treemap = function() {
-    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
-    function scale(children, k) {
-      var i = -1, n = children.length, child, area;
-      while (++i < n) {
-        area = (child = children[i]).value * (k < 0 ? 0 : k);
-        child.area = isNaN(area) || area <= 0 ? 0 : area;
-      }
-    }
-    function squarify(node) {
-      var children = node.children;
-      if (children && children.length) {
-        var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
-        scale(remaining, rect.dx * rect.dy / node.value);
-        row.area = 0;
-        while ((n = remaining.length) > 0) {
-          row.push(child = remaining[n - 1]);
-          row.area += child.area;
-          if (mode !== "squarify" || (score = worst(row, u)) <= best) {
-            remaining.pop();
-            best = score;
-          } else {
-            row.area -= row.pop().area;
-            position(row, u, rect, false);
-            u = Math.min(rect.dx, rect.dy);
-            row.length = row.area = 0;
-            best = Infinity;
-          }
-        }
-        if (row.length) {
-          position(row, u, rect, true);
-          row.length = row.area = 0;
-        }
-        children.forEach(squarify);
-      }
-    }
-    function stickify(node) {
-      var children = node.children;
-      if (children && children.length) {
-        var rect = pad(node), remaining = children.slice(), child, row = [];
-        scale(remaining, rect.dx * rect.dy / node.value);
-        row.area = 0;
-        while (child = remaining.pop()) {
-          row.push(child);
-          row.area += child.area;
-          if (child.z != null) {
-            position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
-            row.length = row.area = 0;
-          }
-        }
-        children.forEach(stickify);
-      }
-    }
-    function worst(row, u) {
-      var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
-      while (++i < n) {
-        if (!(r = row[i].area)) continue;
-        if (r < rmin) rmin = r;
-        if (r > rmax) rmax = r;
-      }
-      s *= s;
-      u *= u;
-      return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
-    }
-    function position(row, u, rect, flush) {
-      var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
-      if (u == rect.dx) {
-        if (flush || v > rect.dy) v = rect.dy;
-        while (++i < n) {
-          o = row[i];
-          o.x = x;
-          o.y = y;
-          o.dy = v;
-          x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
-        }
-        o.z = true;
-        o.dx += rect.x + rect.dx - x;
-        rect.y += v;
-        rect.dy -= v;
-      } else {
-        if (flush || v > rect.dx) v = rect.dx;
-        while (++i < n) {
-          o = row[i];
-          o.x = x;
-          o.y = y;
-          o.dx = v;
-          y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
-        }
-        o.z = false;
-        o.dy += rect.y + rect.dy - y;
-        rect.x += v;
-        rect.dx -= v;
-      }
-    }
-    function treemap(d) {
-      var nodes = stickies || hierarchy(d), root = nodes[0];
-      root.x = root.y = 0;
-      if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;
-      if (stickies) hierarchy.revalue(root);
-      scale([ root ], root.dx * root.dy / root.value);
-      (stickies ? stickify : squarify)(root);
-      if (sticky) stickies = nodes;
-      return nodes;
-    }
-    treemap.size = function(x) {
-      if (!arguments.length) return size;
-      size = x;
-      return treemap;
-    };
-    treemap.padding = function(x) {
-      if (!arguments.length) return padding;
-      function padFunction(node) {
-        var p = x.call(treemap, node, node.depth);
-        return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
-      }
-      function padConstant(node) {
-        return d3_layout_treemapPad(node, x);
-      }
-      var type;
-      pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
-      padConstant) : padConstant;
-      return treemap;
-    };
-    treemap.round = function(x) {
-      if (!arguments.length) return round != Number;
-      round = x ? Math.round : Number;
-      return treemap;
-    };
-    treemap.sticky = function(x) {
-      if (!arguments.length) return sticky;
-      sticky = x;
-      stickies = null;
-      return treemap;
-    };
-    treemap.ratio = function(x) {
-      if (!arguments.length) return ratio;
-      ratio = x;
-      return treemap;
-    };
-    treemap.mode = function(x) {
-      if (!arguments.length) return mode;
-      mode = x + "";
-      return treemap;
-    };
-    return d3_layout_hierarchyRebind(treemap, hierarchy);
-  };
-  function d3_layout_treemapPadNull(node) {
-    return {
-      x: node.x,
-      y: node.y,
-      dx: node.dx,
-      dy: node.dy
-    };
-  }
-  function d3_layout_treemapPad(node, padding) {
-    var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
-    if (dx < 0) {
-      x += dx / 2;
-      dx = 0;
-    }
-    if (dy < 0) {
-      y += dy / 2;
-      dy = 0;
-    }
-    return {
-      x: x,
-      y: y,
-      dx: dx,
-      dy: dy
-    };
-  }
-  d3.random = {
-    normal: function(µ, σ) {
-      var n = arguments.length;
-      if (n < 2) σ = 1;
-      if (n < 1) µ = 0;
-      return function() {
-        var x, y, r;
-        do {
-          x = Math.random() * 2 - 1;
-          y = Math.random() * 2 - 1;
-          r = x * x + y * y;
-        } while (!r || r > 1);
-        return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
-      };
-    },
-    logNormal: function() {
-      var random = d3.random.normal.apply(d3, arguments);
-      return function() {
-        return Math.exp(random());
-      };
-    },
-    bates: function(m) {
-      var random = d3.random.irwinHall(m);
-      return function() {
-        return random() / m;
-      };
-    },
-    irwinHall: function(m) {
-      return function() {
-        for (var s = 0, j = 0; j < m; j++) s += Math.random();
-        return s;
-      };
-    }
-  };
-  d3.scale = {};
-  function d3_scaleExtent(domain) {
-    var start = domain[0], stop = domain[domain.length - 1];
-    return start < stop ? [ start, stop ] : [ stop, start ];
-  }
-  function d3_scaleRange(scale) {
-    return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
-  }
-  function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
-    var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
-    return function(x) {
-      return i(u(x));
-    };
-  }
-  function d3_scale_nice(domain, nice) {
-    var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
-    if (x1 < x0) {
-      dx = i0, i0 = i1, i1 = dx;
-      dx = x0, x0 = x1, x1 = dx;
-    }
-    domain[i0] = nice.floor(x0);
-    domain[i1] = nice.ceil(x1);
-    return domain;
-  }
-  function d3_scale_niceStep(step) {
-    return step ? {
-      floor: function(x) {
-        return Math.floor(x / step) * step;
-      },
-      ceil: function(x) {
-        return Math.ceil(x / step) * step;
-      }
-    } : d3_scale_niceIdentity;
-  }
-  var d3_scale_niceIdentity = {
-    floor: d3_identity,
-    ceil: d3_identity
-  };
-  function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
-    var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
-    if (domain[k] < domain[0]) {
-      domain = domain.slice().reverse();
-      range = range.slice().reverse();
-    }
-    while (++j <= k) {
-      u.push(uninterpolate(domain[j - 1], domain[j]));
-      i.push(interpolate(range[j - 1], range[j]));
-    }
-    return function(x) {
-      var j = d3.bisect(domain, x, 1, k) - 1;
-      return i[j](u[j](x));
-    };
-  }
-  d3.scale.linear = function() {
-    return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
-  };
-  function d3_scale_linear(domain, range, interpolate, clamp) {
-    var output, input;
-    function rescale() {
-      var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
-      output = linear(domain, range, uninterpolate, interpolate);
-      input = linear(range, domain, uninterpolate, d3_interpolate);
-      return scale;
-    }
-    function scale(x) {
-      return output(x);
-    }
-    scale.invert = function(y) {
-      return input(y);
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.map(Number);
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.rangeRound = function(x) {
-      return scale.range(x).interpolate(d3_interpolateRound);
-    };
-    scale.clamp = function(x) {
-      if (!arguments.length) return clamp;
-      clamp = x;
-      return rescale();
-    };
-    scale.interpolate = function(x) {
-      if (!arguments.length) return interpolate;
-      interpolate = x;
-      return rescale();
-    };
-    scale.ticks = function(m) {
-      return d3_scale_linearTicks(domain, m);
-    };
-    scale.tickFormat = function(m, format) {
-      return d3_scale_linearTickFormat(domain, m, format);
-    };
-    scale.nice = function(m) {
-      d3_scale_linearNice(domain, m);
-      return rescale();
-    };
-    scale.copy = function() {
-      return d3_scale_linear(domain, range, interpolate, clamp);
-    };
-    return rescale();
-  }
-  function d3_scale_linearRebind(scale, linear) {
-    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
-  }
-  function d3_scale_linearNice(domain, m) {
-    d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
-    d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
-    return domain;
-  }
-  function d3_scale_linearTickRange(domain, m) {
-    if (m == null) m = 10;
-    var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
-    if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
-    extent[0] = Math.ceil(extent[0] / step) * step;
-    extent[1] = Math.floor(extent[1] / step) * step + step * .5;
-    extent[2] = step;
-    return extent;
-  }
-  function d3_scale_linearTicks(domain, m) {
-    return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
-  }
-  function d3_scale_linearTickFormat(domain, m, format) {
-    var range = d3_scale_linearTickRange(domain, m);
-    if (format) {
-      var match = d3_format_re.exec(format);
-      match.shift();
-      if (match[8] === "s") {
-        var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));
-        if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2]));
-        match[8] = "f";
-        format = d3.format(match.join(""));
-        return function(d) {
-          return format(prefix.scale(d)) + prefix.symbol;
-        };
-      }
-      if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range);
-      format = match.join("");
-    } else {
-      format = ",." + d3_scale_linearPrecision(range[2]) + "f";
-    }
-    return d3.format(format);
-  }
-  var d3_scale_linearFormatSignificant = {
-    s: 1,
-    g: 1,
-    p: 1,
-    r: 1,
-    e: 1
-  };
-  function d3_scale_linearPrecision(value) {
-    return -Math.floor(Math.log(value) / Math.LN10 + .01);
-  }
-  function d3_scale_linearFormatPrecision(type, range) {
-    var p = d3_scale_linearPrecision(range[2]);
-    return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2;
-  }
-  d3.scale.log = function() {
-    return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);
-  };
-  function d3_scale_log(linear, base, positive, domain) {
-    function log(x) {
-      return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);
-    }
-    function pow(x) {
-      return positive ? Math.pow(base, x) : -Math.pow(base, -x);
-    }
-    function scale(x) {
-      return linear(log(x));
-    }
-    scale.invert = function(x) {
-      return pow(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      positive = x[0] >= 0;
-      linear.domain((domain = x.map(Number)).map(log));
-      return scale;
-    };
-    scale.base = function(_) {
-      if (!arguments.length) return base;
-      base = +_;
-      linear.domain(domain.map(log));
-      return scale;
-    };
-    scale.nice = function() {
-      var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);
-      linear.domain(niced);
-      domain = niced.map(pow);
-      return scale;
-    };
-    scale.ticks = function() {
-      var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;
-      if (isFinite(j - i)) {
-        if (positive) {
-          for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);
-          ticks.push(pow(i));
-        } else {
-          ticks.push(pow(i));
-          for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);
-        }
-        for (i = 0; ticks[i] < u; i++) {}
-        for (j = ticks.length; ticks[j - 1] > v; j--) {}
-        ticks = ticks.slice(i, j);
-      }
-      return ticks;
-    };
-    scale.tickFormat = function(n, format) {
-      if (!arguments.length) return d3_scale_logFormat;
-      if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format);
-      var k = Math.max(1, base * n / scale.ticks().length);
-      return function(d) {
-        var i = d / pow(Math.round(log(d)));
-        if (i * base < base - .5) i *= base;
-        return i <= k ? format(d) : "";
-      };
-    };
-    scale.copy = function() {
-      return d3_scale_log(linear.copy(), base, positive, domain);
-    };
-    return d3_scale_linearRebind(scale, linear);
-  }
-  var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = {
-    floor: function(x) {
-      return -Math.ceil(-x);
-    },
-    ceil: function(x) {
-      return -Math.floor(-x);
-    }
-  };
-  d3.scale.pow = function() {
-    return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);
-  };
-  function d3_scale_pow(linear, exponent, domain) {
-    var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
-    function scale(x) {
-      return linear(powp(x));
-    }
-    scale.invert = function(x) {
-      return powb(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      linear.domain((domain = x.map(Number)).map(powp));
-      return scale;
-    };
-    scale.ticks = function(m) {
-      return d3_scale_linearTicks(domain, m);
-    };
-    scale.tickFormat = function(m, format) {
-      return d3_scale_linearTickFormat(domain, m, format);
-    };
-    scale.nice = function(m) {
-      return scale.domain(d3_scale_linearNice(domain, m));
-    };
-    scale.exponent = function(x) {
-      if (!arguments.length) return exponent;
-      powp = d3_scale_powPow(exponent = x);
-      powb = d3_scale_powPow(1 / exponent);
-      linear.domain(domain.map(powp));
-      return scale;
-    };
-    scale.copy = function() {
-      return d3_scale_pow(linear.copy(), exponent, domain);
-    };
-    return d3_scale_linearRebind(scale, linear);
-  }
-  function d3_scale_powPow(e) {
-    return function(x) {
-      return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
-    };
-  }
-  d3.scale.sqrt = function() {
-    return d3.scale.pow().exponent(.5);
-  };
-  d3.scale.ordinal = function() {
-    return d3_scale_ordinal([], {
-      t: "range",
-      a: [ [] ]
-    });
-  };
-  function d3_scale_ordinal(domain, ranger) {
-    var index, range, rangeBand;
-    function scale(x) {
-      return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];
-    }
-    function steps(start, step) {
-      return d3.range(domain.length).map(function(i) {
-        return start + step * i;
-      });
-    }
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = [];
-      index = new d3_Map();
-      var i = -1, n = x.length, xi;
-      while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
-      return scale[ranger.t].apply(scale, ranger.a);
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      rangeBand = 0;
-      ranger = {
-        t: "range",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangePoints = function(x, padding) {
-      if (arguments.length < 2) padding = 0;
-      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2,
-      0) : (stop - start) / (domain.length - 1 + padding);
-      range = steps(start + step * padding / 2, step);
-      rangeBand = 0;
-      ranger = {
-        t: "rangePoints",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeRoundPoints = function(x, padding) {
-      if (arguments.length < 2) padding = 0;
-      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2),
-      0) : (stop - start) / (domain.length - 1 + padding) | 0;
-      range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);
-      rangeBand = 0;
-      ranger = {
-        t: "rangeRoundPoints",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeBands = function(x, padding, outerPadding) {
-      if (arguments.length < 2) padding = 0;
-      if (arguments.length < 3) outerPadding = padding;
-      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
-      range = steps(start + step * outerPadding, step);
-      if (reverse) range.reverse();
-      rangeBand = step * (1 - padding);
-      ranger = {
-        t: "rangeBands",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeRoundBands = function(x, padding, outerPadding) {
-      if (arguments.length < 2) padding = 0;
-      if (arguments.length < 3) outerPadding = padding;
-      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));
-      range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
-      if (reverse) range.reverse();
-      rangeBand = Math.round(step * (1 - padding));
-      ranger = {
-        t: "rangeRoundBands",
-        a: arguments
-      };
-      return scale;
-    };
-    scale.rangeBand = function() {
-      return rangeBand;
-    };
-    scale.rangeExtent = function() {
-      return d3_scaleExtent(ranger.a[0]);
-    };
-    scale.copy = function() {
-      return d3_scale_ordinal(domain, ranger);
-    };
-    return scale.domain(domain);
-  }
-  d3.scale.category10 = function() {
-    return d3.scale.ordinal().range(d3_category10);
-  };
-  d3.scale.category20 = function() {
-    return d3.scale.ordinal().range(d3_category20);
-  };
-  d3.scale.category20b = function() {
-    return d3.scale.ordinal().range(d3_category20b);
-  };
-  d3.scale.category20c = function() {
-    return d3.scale.ordinal().range(d3_category20c);
-  };
-  var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);
-  var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);
-  var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);
-  var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);
-  d3.scale.quantile = function() {
-    return d3_scale_quantile([], []);
-  };
-  function d3_scale_quantile(domain, range) {
-    var thresholds;
-    function rescale() {
-      var k = 0, q = range.length;
-      thresholds = [];
-      while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
-      return scale;
-    }
-    function scale(x) {
-      if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];
-    }
-    scale.domain = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.quantiles = function() {
-      return thresholds;
-    };
-    scale.invertExtent = function(y) {
-      y = range.indexOf(y);
-      return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];
-    };
-    scale.copy = function() {
-      return d3_scale_quantile(domain, range);
-    };
-    return rescale();
-  }
-  d3.scale.quantize = function() {
-    return d3_scale_quantize(0, 1, [ 0, 1 ]);
-  };
-  function d3_scale_quantize(x0, x1, range) {
-    var kx, i;
-    function scale(x) {
-      return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
-    }
-    function rescale() {
-      kx = range.length / (x1 - x0);
-      i = range.length - 1;
-      return scale;
-    }
-    scale.domain = function(x) {
-      if (!arguments.length) return [ x0, x1 ];
-      x0 = +x[0];
-      x1 = +x[x.length - 1];
-      return rescale();
-    };
-    scale.range = function(x) {
-      if (!arguments.length) return range;
-      range = x;
-      return rescale();
-    };
-    scale.invertExtent = function(y) {
-      y = range.indexOf(y);
-      y = y < 0 ? NaN : y / kx + x0;
-      return [ y, y + 1 / kx ];
-    };
-    scale.copy = function() {
-      return d3_scale_quantize(x0, x1, range);
-    };
-    return rescale();
-  }
-  d3.scale.threshold = function() {
-    return d3_scale_threshold([ .5 ], [ 0, 1 ]);
-  };
-  function d3_scale_threshold(domain, range) {
-    function scale(x) {
-      if (x <= x) return range[d3.bisect(domain, x)];
-    }
-    scale.domain = function(_) {
-      if (!arguments.length) return domain;
-      domain = _;
-      return scale;
-    };
-    scale.range = function(_) {
-      if (!arguments.length) return range;
-      range = _;
-      return scale;
-    };
-    scale.invertExtent = function(y) {
-      y = range.indexOf(y);
-      return [ domain[y - 1], domain[y] ];
-    };
-    scale.copy = function() {
-      return d3_scale_threshold(domain, range);
-    };
-    return scale;
-  }
-  d3.scale.identity = function() {
-    return d3_scale_identity([ 0, 1 ]);
-  };
-  function d3_scale_identity(domain) {
-    function identity(x) {
-      return +x;
-    }
-    identity.invert = identity;
-    identity.domain = identity.range = function(x) {
-      if (!arguments.length) return domain;
-      domain = x.map(identity);
-      return identity;
-    };
-    identity.ticks = function(m) {
-      return d3_scale_linearTicks(domain, m);
-    };
-    identity.tickFormat = function(m, format) {
-      return d3_scale_linearTickFormat(domain, m, format);
-    };
-    identity.copy = function() {
-      return d3_scale_identity(domain);
-    };
-    return identity;
-  }
-  d3.svg = {};
-  function d3_zero() {
-    return 0;
-  }
-  d3.svg.arc = function() {
-    var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;
-    function arc() {
-      var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;
-      if (r1 < r0) rc = r1, r1 = r0, r0 = rc;
-      if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z";
-      var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];
-      if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {
-        rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);
-        if (!cw) p1 *= -1;
-        if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));
-        if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));
-      }
-      if (r1) {
-        x0 = r1 * Math.cos(a0 + p1);
-        y0 = r1 * Math.sin(a0 + p1);
-        x1 = r1 * Math.cos(a1 - p1);
-        y1 = r1 * Math.sin(a1 - p1);
-        var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;
-        if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {
-          var h1 = (a0 + a1) / 2;
-          x0 = r1 * Math.cos(h1);
-          y0 = r1 * Math.sin(h1);
-          x1 = y1 = null;
-        }
-      } else {
-        x0 = y0 = 0;
-      }
-      if (r0) {
-        x2 = r0 * Math.cos(a1 - p0);
-        y2 = r0 * Math.sin(a1 - p0);
-        x3 = r0 * Math.cos(a0 + p0);
-        y3 = r0 * Math.sin(a0 + p0);
-        var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;
-        if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {
-          var h0 = (a0 + a1) / 2;
-          x2 = r0 * Math.cos(h0);
-          y2 = r0 * Math.sin(h0);
-          x3 = y3 = null;
-        }
-      } else {
-        x2 = y2 = 0;
-      }
-      if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {
-        cr = r0 < r1 ^ cw ? 0 : 1;
-        var rc1 = rc, rc0 = rc;
-        if (da < π) {
-          var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
-          rc0 = Math.min(rc, (r0 - lc) / (kc - 1));
-          rc1 = Math.min(rc, (r1 - lc) / (kc + 1));
-        }
-        if (x1 != null) {
-          var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);
-          if (rc === rc1) {
-            path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]);
-          } else {
-            path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]);
-          }
-        } else {
-          path.push("M", x0, ",", y0);
-        }
-        if (x3 != null) {
-          var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);
-          if (rc === rc0) {
-            path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
-          } else {
-            path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
-          }
-        } else {
-          path.push("L", x2, ",", y2);
-        }
-      } else {
-        path.push("M", x0, ",", y0);
-        if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1);
-        path.push("L", x2, ",", y2);
-        if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3);
-      }
-      path.push("Z");
-      return path.join("");
-    }
-    function circleSegment(r1, cw) {
-      return "M0," + r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1;
-    }
-    arc.innerRadius = function(v) {
-      if (!arguments.length) return innerRadius;
-      innerRadius = d3_functor(v);
-      return arc;
-    };
-    arc.outerRadius = function(v) {
-      if (!arguments.length) return outerRadius;
-      outerRadius = d3_functor(v);
-      return arc;
-    };
-    arc.cornerRadius = function(v) {
-      if (!arguments.length) return cornerRadius;
-      cornerRadius = d3_functor(v);
-      return arc;
-    };
-    arc.padRadius = function(v) {
-      if (!arguments.length) return padRadius;
-      padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);
-      return arc;
-    };
-    arc.startAngle = function(v) {
-      if (!arguments.length) return startAngle;
-      startAngle = d3_functor(v);
-      return arc;
-    };
-    arc.endAngle = function(v) {
-      if (!arguments.length) return endAngle;
-      endAngle = d3_functor(v);
-      return arc;
-    };
-    arc.padAngle = function(v) {
-      if (!arguments.length) return padAngle;
-      padAngle = d3_functor(v);
-      return arc;
-    };
-    arc.centroid = function() {
-      var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;
-      return [ Math.cos(a) * r, Math.sin(a) * r ];
-    };
-    return arc;
-  };
-  var d3_svg_arcAuto = "auto";
-  function d3_svg_arcInnerRadius(d) {
-    return d.innerRadius;
-  }
-  function d3_svg_arcOuterRadius(d) {
-    return d.outerRadius;
-  }
-  function d3_svg_arcStartAngle(d) {
-    return d.startAngle;
-  }
-  function d3_svg_arcEndAngle(d) {
-    return d.endAngle;
-  }
-  function d3_svg_arcPadAngle(d) {
-    return d && d.padAngle;
-  }
-  function d3_svg_arcSweep(x0, y0, x1, y1) {
-    return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;
-  }
-  function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {
-    var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;
-    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
-    return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];
-  }
-  function d3_svg_line(projection) {
-    var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
-    function line(data) {
-      var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
-      function segment() {
-        segments.push("M", interpolate(projection(points), tension));
-      }
-      while (++i < n) {
-        if (defined.call(this, d = data[i], i)) {
-          points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
-        } else if (points.length) {
-          segment();
-          points = [];
-        }
-      }
-      if (points.length) segment();
-      return segments.length ? segments.join("") : null;
-    }
-    line.x = function(_) {
-      if (!arguments.length) return x;
-      x = _;
-      return line;
-    };
-    line.y = function(_) {
-      if (!arguments.length) return y;
-      y = _;
-      return line;
-    };
-    line.defined = function(_) {
-      if (!arguments.length) return defined;
-      defined = _;
-      return line;
-    };
-    line.interpolate = function(_) {
-      if (!arguments.length) return interpolateKey;
-      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
-      return line;
-    };
-    line.tension = function(_) {
-      if (!arguments.length) return tension;
-      tension = _;
-      return line;
-    };
-    return line;
-  }
-  d3.svg.line = function() {
-    return d3_svg_line(d3_identity);
-  };
-  var d3_svg_lineInterpolators = d3.map({
-    linear: d3_svg_lineLinear,
-    "linear-closed": d3_svg_lineLinearClosed,
-    step: d3_svg_lineStep,
-    "step-before": d3_svg_lineStepBefore,
-    "step-after": d3_svg_lineStepAfter,
-    basis: d3_svg_lineBasis,
-    "basis-open": d3_svg_lineBasisOpen,
-    "basis-closed": d3_svg_lineBasisClosed,
-    bundle: d3_svg_lineBundle,
-    cardinal: d3_svg_lineCardinal,
-    "cardinal-open": d3_svg_lineCardinalOpen,
-    "cardinal-closed": d3_svg_lineCardinalClosed,
-    monotone: d3_svg_lineMonotone
-  });
-  d3_svg_lineInterpolators.forEach(function(key, value) {
-    value.key = key;
-    value.closed = /-closed$/.test(key);
-  });
-  function d3_svg_lineLinear(points) {
-    return points.length > 1 ? points.join("L") : points + "Z";
-  }
-  function d3_svg_lineLinearClosed(points) {
-    return points.join("L") + "Z";
-  }
-  function d3_svg_lineStep(points) {
-    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
-    while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]);
-    if (n > 1) path.push("H", p[0]);
-    return path.join("");
-  }
-  function d3_svg_lineStepBefore(points) {
-    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
-    while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
-    return path.join("");
-  }
-  function d3_svg_lineStepAfter(points) {
-    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
-    while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
-    return path.join("");
-  }
-  function d3_svg_lineCardinalOpen(points, tension) {
-    return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));
-  }
-  function d3_svg_lineCardinalClosed(points, tension) {
-    return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
-    points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
-  }
-  function d3_svg_lineCardinal(points, tension) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
-  }
-  function d3_svg_lineHermite(points, tangents) {
-    if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
-      return d3_svg_lineLinear(points);
-    }
-    var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
-    if (quad) {
-      path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
-      p0 = points[1];
-      pi = 2;
-    }
-    if (tangents.length > 1) {
-      t = tangents[1];
-      p = points[pi];
-      pi++;
-      path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
-      for (var i = 2; i < tangents.length; i++, pi++) {
-        p = points[pi];
-        t = tangents[i];
-        path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
-      }
-    }
-    if (quad) {
-      var lp = points[pi];
-      path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
-    }
-    return path;
-  }
-  function d3_svg_lineCardinalTangents(points, tension) {
-    var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
-    while (++i < n) {
-      p0 = p1;
-      p1 = p2;
-      p2 = points[i];
-      tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
-    }
-    return tangents;
-  }
-  function d3_svg_lineBasis(points) {
-    if (points.length < 3) return d3_svg_lineLinear(points);
-    var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
-    points.push(points[n - 1]);
-    while (++i <= n) {
-      pi = points[i];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    points.pop();
-    path.push("L", pi);
-    return path.join("");
-  }
-  function d3_svg_lineBasisOpen(points) {
-    if (points.length < 4) return d3_svg_lineLinear(points);
-    var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
-    while (++i < 3) {
-      pi = points[i];
-      px.push(pi[0]);
-      py.push(pi[1]);
-    }
-    path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
-    --i;
-    while (++i < n) {
-      pi = points[i];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBasisClosed(points) {
-    var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
-    while (++i < 4) {
-      pi = points[i % n];
-      px.push(pi[0]);
-      py.push(pi[1]);
-    }
-    path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
-    --i;
-    while (++i < m) {
-      pi = points[i % n];
-      px.shift();
-      px.push(pi[0]);
-      py.shift();
-      py.push(pi[1]);
-      d3_svg_lineBasisBezier(path, px, py);
-    }
-    return path.join("");
-  }
-  function d3_svg_lineBundle(points, tension) {
-    var n = points.length - 1;
-    if (n) {
-      var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
-      while (++i <= n) {
-        p = points[i];
-        t = i / n;
-        p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
-        p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
-      }
-    }
-    return d3_svg_lineBasis(points);
-  }
-  function d3_svg_lineDot4(a, b) {
-    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
-  }
-  var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
-  function d3_svg_lineBasisBezier(path, x, y) {
-    path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
-  }
-  function d3_svg_lineSlope(p0, p1) {
-    return (p1[1] - p0[1]) / (p1[0] - p0[0]);
-  }
-  function d3_svg_lineFiniteDifferences(points) {
-    var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
-    while (++i < j) {
-      m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
-    }
-    m[i] = d;
-    return m;
-  }
-  function d3_svg_lineMonotoneTangents(points) {
-    var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
-    while (++i < j) {
-      d = d3_svg_lineSlope(points[i], points[i + 1]);
-      if (abs(d) < ε) {
-        m[i] = m[i + 1] = 0;
-      } else {
-        a = m[i] / d;
-        b = m[i + 1] / d;
-        s = a * a + b * b;
-        if (s > 9) {
-          s = d * 3 / Math.sqrt(s);
-          m[i] = s * a;
-          m[i + 1] = s * b;
-        }
-      }
-    }
-    i = -1;
-    while (++i <= j) {
-      s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
-      tangents.push([ s || 0, m[i] * s || 0 ]);
-    }
-    return tangents;
-  }
-  function d3_svg_lineMonotone(points) {
-    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
-  }
-  d3.svg.line.radial = function() {
-    var line = d3_svg_line(d3_svg_lineRadial);
-    line.radius = line.x, delete line.x;
-    line.angle = line.y, delete line.y;
-    return line;
-  };
-  function d3_svg_lineRadial(points) {
-    var point, i = -1, n = points.length, r, a;
-    while (++i < n) {
-      point = points[i];
-      r = point[0];
-      a = point[1] - halfπ;
-      point[0] = r * Math.cos(a);
-      point[1] = r * Math.sin(a);
-    }
-    return points;
-  }
-  function d3_svg_area(projection) {
-    var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
-    function area(data) {
-      var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
-        return x;
-      } : d3_functor(x1), fy1 = y0 === y1 ? function() {
-        return y;
-      } : d3_functor(y1), x, y;
-      function segment() {
-        segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
-      }
-      while (++i < n) {
-        if (defined.call(this, d = data[i], i)) {
-          points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
-          points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
-        } else if (points0.length) {
-          segment();
-          points0 = [];
-          points1 = [];
-        }
-      }
-      if (points0.length) segment();
-      return segments.length ? segments.join("") : null;
-    }
-    area.x = function(_) {
-      if (!arguments.length) return x1;
-      x0 = x1 = _;
-      return area;
-    };
-    area.x0 = function(_) {
-      if (!arguments.length) return x0;
-      x0 = _;
-      return area;
-    };
-    area.x1 = function(_) {
-      if (!arguments.length) return x1;
-      x1 = _;
-      return area;
-    };
-    area.y = function(_) {
-      if (!arguments.length) return y1;
-      y0 = y1 = _;
-      return area;
-    };
-    area.y0 = function(_) {
-      if (!arguments.length) return y0;
-      y0 = _;
-      return area;
-    };
-    area.y1 = function(_) {
-      if (!arguments.length) return y1;
-      y1 = _;
-      return area;
-    };
-    area.defined = function(_) {
-      if (!arguments.length) return defined;
-      defined = _;
-      return area;
-    };
-    area.interpolate = function(_) {
-      if (!arguments.length) return interpolateKey;
-      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
-      interpolateReverse = interpolate.reverse || interpolate;
-      L = interpolate.closed ? "M" : "L";
-      return area;
-    };
-    area.tension = function(_) {
-      if (!arguments.length) return tension;
-      tension = _;
-      return area;
-    };
-    return area;
-  }
-  d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
-  d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
-  d3.svg.area = function() {
-    return d3_svg_area(d3_identity);
-  };
-  d3.svg.area.radial = function() {
-    var area = d3_svg_area(d3_svg_lineRadial);
-    area.radius = area.x, delete area.x;
-    area.innerRadius = area.x0, delete area.x0;
-    area.outerRadius = area.x1, delete area.x1;
-    area.angle = area.y, delete area.y;
-    area.startAngle = area.y0, delete area.y0;
-    area.endAngle = area.y1, delete area.y1;
-    return area;
-  };
-  d3.svg.chord = function() {
-    var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
-    function chord(d, i) {
-      var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
-      return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
-    }
-    function subgroup(self, f, d, i) {
-      var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;
-      return {
-        r: r,
-        a0: a0,
-        a1: a1,
-        p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
-        p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
-      };
-    }
-    function equals(a, b) {
-      return a.a0 == b.a0 && a.a1 == b.a1;
-    }
-    function arc(r, p, a) {
-      return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
-    }
-    function curve(r0, p0, r1, p1) {
-      return "Q 0,0 " + p1;
-    }
-    chord.radius = function(v) {
-      if (!arguments.length) return radius;
-      radius = d3_functor(v);
-      return chord;
-    };
-    chord.source = function(v) {
-      if (!arguments.length) return source;
-      source = d3_functor(v);
-      return chord;
-    };
-    chord.target = function(v) {
-      if (!arguments.length) return target;
-      target = d3_functor(v);
-      return chord;
-    };
-    chord.startAngle = function(v) {
-      if (!arguments.length) return startAngle;
-      startAngle = d3_functor(v);
-      return chord;
-    };
-    chord.endAngle = function(v) {
-      if (!arguments.length) return endAngle;
-      endAngle = d3_functor(v);
-      return chord;
-    };
-    return chord;
-  };
-  function d3_svg_chordRadius(d) {
-    return d.radius;
-  }
-  d3.svg.diagonal = function() {
-    var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
-    function diagonal(d, i) {
-      var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
-        x: p0.x,
-        y: m
-      }, {
-        x: p3.x,
-        y: m
-      }, p3 ];
-      p = p.map(projection);
-      return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
-    }
-    diagonal.source = function(x) {
-      if (!arguments.length) return source;
-      source = d3_functor(x);
-      return diagonal;
-    };
-    diagonal.target = function(x) {
-      if (!arguments.length) return target;
-      target = d3_functor(x);
-      return diagonal;
-    };
-    diagonal.projection = function(x) {
-      if (!arguments.length) return projection;
-      projection = x;
-      return diagonal;
-    };
-    return diagonal;
-  };
-  function d3_svg_diagonalProjection(d) {
-    return [ d.x, d.y ];
-  }
-  d3.svg.diagonal.radial = function() {
-    var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
-    diagonal.projection = function(x) {
-      return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
-    };
-    return diagonal;
-  };
-  function d3_svg_diagonalRadialProjection(projection) {
-    return function() {
-      var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;
-      return [ r * Math.cos(a), r * Math.sin(a) ];
-    };
-  }
-  d3.svg.symbol = function() {
-    var type = d3_svg_symbolType, size = d3_svg_symbolSize;
-    function symbol(d, i) {
-      return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
-    }
-    symbol.type = function(x) {
-      if (!arguments.length) return type;
-      type = d3_functor(x);
-      return symbol;
-    };
-    symbol.size = function(x) {
-      if (!arguments.length) return size;
-      size = d3_functor(x);
-      return symbol;
-    };
-    return symbol;
-  };
-  function d3_svg_symbolSize() {
-    return 64;
-  }
-  function d3_svg_symbolType() {
-    return "circle";
-  }
-  function d3_svg_symbolCircle(size) {
-    var r = Math.sqrt(size / π);
-    return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
-  }
-  var d3_svg_symbols = d3.map({
-    circle: d3_svg_symbolCircle,
-    cross: function(size) {
-      var r = Math.sqrt(size / 5) / 2;
-      return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
-    },
-    diamond: function(size) {
-      var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
-      return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
-    },
-    square: function(size) {
-      var r = Math.sqrt(size) / 2;
-      return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
-    },
-    "triangle-down": function(size) {
-      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
-      return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
-    },
-    "triangle-up": function(size) {
-      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
-      return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
-    }
-  });
-  d3.svg.symbolTypes = d3_svg_symbols.keys();
-  var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
-  d3_selectionPrototype.transition = function(name) {
-    var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {
-      time: Date.now(),
-      ease: d3_ease_cubicInOut,
-      delay: 0,
-      duration: 250
-    };
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);
-        subgroup.push(node);
-      }
-    }
-    return d3_transition(subgroups, ns, id);
-  };
-  d3_selectionPrototype.interrupt = function(name) {
-    return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));
-  };
-  var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());
-  function d3_selection_interruptNS(ns) {
-    return function() {
-      var lock, activeId, active;
-      if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {
-        active.timer.c = null;
-        active.timer.t = NaN;
-        if (--lock.count) delete lock[activeId]; else delete this[ns];
-        lock.active += .5;
-        active.event && active.event.interrupt.call(this, this.__data__, active.index);
-      }
-    };
-  }
-  function d3_transition(groups, ns, id) {
-    d3_subclass(groups, d3_transitionPrototype);
-    groups.namespace = ns;
-    groups.id = id;
-    return groups;
-  }
-  var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;
-  d3_transitionPrototype.call = d3_selectionPrototype.call;
-  d3_transitionPrototype.empty = d3_selectionPrototype.empty;
-  d3_transitionPrototype.node = d3_selectionPrototype.node;
-  d3_transitionPrototype.size = d3_selectionPrototype.size;
-  d3.transition = function(selection, name) {
-    return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);
-  };
-  d3.transition.prototype = d3_transitionPrototype;
-  d3_transitionPrototype.select = function(selector) {
-    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;
-    selector = d3_selection_selector(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {
-          if ("__data__" in node) subnode.__data__ = node.__data__;
-          d3_transitionNode(subnode, i, ns, id, node[ns][id]);
-          subgroup.push(subnode);
-        } else {
-          subgroup.push(null);
-        }
-      }
-    }
-    return d3_transition(subgroups, ns, id);
-  };
-  d3_transitionPrototype.selectAll = function(selector) {
-    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;
-    selector = d3_selection_selectorAll(selector);
-    for (var j = -1, m = this.length; ++j < m; ) {
-      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
-        if (node = group[i]) {
-          transition = node[ns][id];
-          subnodes = selector.call(node, node.__data__, i, j);
-          subgroups.push(subgroup = []);
-          for (var k = -1, o = subnodes.length; ++k < o; ) {
-            if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);
-            subgroup.push(subnode);
-          }
-        }
-      }
-    }
-    return d3_transition(subgroups, ns, id);
-  };
-  d3_transitionPrototype.filter = function(filter) {
-    var subgroups = [], subgroup, group, node;
-    if (typeof filter !== "function") filter = d3_selection_filter(filter);
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
-          subgroup.push(node);
-        }
-      }
-    }
-    return d3_transition(subgroups, this.namespace, this.id);
-  };
-  d3_transitionPrototype.tween = function(name, tween) {
-    var id = this.id, ns = this.namespace;
-    if (arguments.length < 2) return this.node()[ns][id].tween.get(name);
-    return d3_selection_each(this, tween == null ? function(node) {
-      node[ns][id].tween.remove(name);
-    } : function(node) {
-      node[ns][id].tween.set(name, tween);
-    });
-  };
-  function d3_transition_tween(groups, name, value, tween) {
-    var id = groups.id, ns = groups.namespace;
-    return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
-      node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
-    } : (value = tween(value), function(node) {
-      node[ns][id].tween.set(name, value);
-    }));
-  }
-  d3_transitionPrototype.attr = function(nameNS, value) {
-    if (arguments.length < 2) {
-      for (value in nameNS) this.attr(value, nameNS[value]);
-      return this;
-    }
-    var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);
-    function attrNull() {
-      this.removeAttribute(name);
-    }
-    function attrNullNS() {
-      this.removeAttributeNS(name.space, name.local);
-    }
-    function attrTween(b) {
-      return b == null ? attrNull : (b += "", function() {
-        var a = this.getAttribute(name), i;
-        return a !== b && (i = interpolate(a, b), function(t) {
-          this.setAttribute(name, i(t));
-        });
-      });
-    }
-    function attrTweenNS(b) {
-      return b == null ? attrNullNS : (b += "", function() {
-        var a = this.getAttributeNS(name.space, name.local), i;
-        return a !== b && (i = interpolate(a, b), function(t) {
-          this.setAttributeNS(name.space, name.local, i(t));
-        });
-      });
-    }
-    return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween);
-  };
-  d3_transitionPrototype.attrTween = function(nameNS, tween) {
-    var name = d3.ns.qualify(nameNS);
-    function attrTween(d, i) {
-      var f = tween.call(this, d, i, this.getAttribute(name));
-      return f && function(t) {
-        this.setAttribute(name, f(t));
-      };
-    }
-    function attrTweenNS(d, i) {
-      var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
-      return f && function(t) {
-        this.setAttributeNS(name.space, name.local, f(t));
-      };
-    }
-    return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
-  };
-  d3_transitionPrototype.style = function(name, value, priority) {
-    var n = arguments.length;
-    if (n < 3) {
-      if (typeof name !== "string") {
-        if (n < 2) value = "";
-        for (priority in name) this.style(priority, name[priority], value);
-        return this;
-      }
-      priority = "";
-    }
-    function styleNull() {
-      this.style.removeProperty(name);
-    }
-    function styleString(b) {
-      return b == null ? styleNull : (b += "", function() {
-        var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;
-        return a !== b && (i = d3_interpolate(a, b), function(t) {
-          this.style.setProperty(name, i(t), priority);
-        });
-      });
-    }
-    return d3_transition_tween(this, "style." + name, value, styleString);
-  };
-  d3_transitionPrototype.styleTween = function(name, tween, priority) {
-    if (arguments.length < 3) priority = "";
-    function styleTween(d, i) {
-      var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));
-      return f && function(t) {
-        this.style.setProperty(name, f(t), priority);
-      };
-    }
-    return this.tween("style." + name, styleTween);
-  };
-  d3_transitionPrototype.text = function(value) {
-    return d3_transition_tween(this, "text", value, d3_transition_text);
-  };
-  function d3_transition_text(b) {
-    if (b == null) b = "";
-    return function() {
-      this.textContent = b;
-    };
-  }
-  d3_transitionPrototype.remove = function() {
-    var ns = this.namespace;
-    return this.each("end.transition", function() {
-      var p;
-      if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
-    });
-  };
-  d3_transitionPrototype.ease = function(value) {
-    var id = this.id, ns = this.namespace;
-    if (arguments.length < 1) return this.node()[ns][id].ease;
-    if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
-    return d3_selection_each(this, function(node) {
-      node[ns][id].ease = value;
-    });
-  };
-  d3_transitionPrototype.delay = function(value) {
-    var id = this.id, ns = this.namespace;
-    if (arguments.length < 1) return this.node()[ns][id].delay;
-    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
-      node[ns][id].delay = +value.call(node, node.__data__, i, j);
-    } : (value = +value, function(node) {
-      node[ns][id].delay = value;
-    }));
-  };
-  d3_transitionPrototype.duration = function(value) {
-    var id = this.id, ns = this.namespace;
-    if (arguments.length < 1) return this.node()[ns][id].duration;
-    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
-      node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));
-    } : (value = Math.max(1, value), function(node) {
-      node[ns][id].duration = value;
-    }));
-  };
-  d3_transitionPrototype.each = function(type, listener) {
-    var id = this.id, ns = this.namespace;
-    if (arguments.length < 2) {
-      var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
-      try {
-        d3_transitionInheritId = id;
-        d3_selection_each(this, function(node, i, j) {
-          d3_transitionInherit = node[ns][id];
-          type.call(node, node.__data__, i, j);
-        });
-      } finally {
-        d3_transitionInherit = inherit;
-        d3_transitionInheritId = inheritId;
-      }
-    } else {
-      d3_selection_each(this, function(node) {
-        var transition = node[ns][id];
-        (transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener);
-      });
-    }
-    return this;
-  };
-  d3_transitionPrototype.transition = function() {
-    var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;
-    for (var j = 0, m = this.length; j < m; j++) {
-      subgroups.push(subgroup = []);
-      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
-        if (node = group[i]) {
-          transition = node[ns][id0];
-          d3_transitionNode(node, i, ns, id1, {
-            time: transition.time,
-            ease: transition.ease,
-            delay: transition.delay + transition.duration,
-            duration: transition.duration
-          });
-        }
-        subgroup.push(node);
-      }
-    }
-    return d3_transition(subgroups, ns, id1);
-  };
-  function d3_transitionNamespace(name) {
-    return name == null ? "__transition__" : "__transition_" + name + "__";
-  }
-  function d3_transitionNode(node, i, ns, id, inherit) {
-    var lock = node[ns] || (node[ns] = {
-      active: 0,
-      count: 0
-    }), transition = lock[id], time, timer, duration, ease, tweens;
-    function schedule(elapsed) {
-      var delay = transition.delay;
-      timer.t = delay + time;
-      if (delay <= elapsed) return start(elapsed - delay);
-      timer.c = start;
-    }
-    function start(elapsed) {
-      var activeId = lock.active, active = lock[activeId];
-      if (active) {
-        active.timer.c = null;
-        active.timer.t = NaN;
-        --lock.count;
-        delete lock[activeId];
-        active.event && active.event.interrupt.call(node, node.__data__, active.index);
-      }
-      for (var cancelId in lock) {
-        if (+cancelId < id) {
-          var cancel = lock[cancelId];
-          cancel.timer.c = null;
-          cancel.timer.t = NaN;
-          --lock.count;
-          delete lock[cancelId];
-        }
-      }
-      timer.c = tick;
-      d3_timer(function() {
-        if (timer.c && tick(elapsed || 1)) {
-          timer.c = null;
-          timer.t = NaN;
-        }
-        return 1;
-      }, 0, time);
-      lock.active = id;
-      transition.event && transition.event.start.call(node, node.__data__, i);
-      tweens = [];
-      transition.tween.forEach(function(key, value) {
-        if (value = value.call(node, node.__data__, i)) {
-          tweens.push(value);
-        }
-      });
-      ease = transition.ease;
-      duration = transition.duration;
-    }
-    function tick(elapsed) {
-      var t = elapsed / duration, e = ease(t), n = tweens.length;
-      while (n > 0) {
-        tweens[--n].call(node, e);
-      }
-      if (t >= 1) {
-        transition.event && transition.event.end.call(node, node.__data__, i);
-        if (--lock.count) delete lock[id]; else delete node[ns];
-        return 1;
-      }
-    }
-    if (!transition) {
-      time = inherit.time;
-      timer = d3_timer(schedule, 0, time);
-      transition = lock[id] = {
-        tween: new d3_Map(),
-        time: time,
-        timer: timer,
-        delay: inherit.delay,
-        duration: inherit.duration,
-        ease: inherit.ease,
-        index: i
-      };
-      inherit = null;
-      ++lock.count;
-    }
-  }
-  d3.svg.axis = function() {
-    var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;
-    function axis(g) {
-      g.each(function() {
-        var g = d3.select(this);
-        var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();
-        var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;
-        var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
-        d3.transition(path));
-        tickEnter.append("line");
-        tickEnter.append("text");
-        var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2;
-        if (orient === "bottom" || orient === "top") {
-          tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2";
-          text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle");
-          pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize);
-        } else {
-          tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2";
-          text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start");
-          pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize);
-        }
-        lineEnter.attr(y2, sign * innerTickSize);
-        textEnter.attr(y1, sign * tickSpacing);
-        lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);
-        textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);
-        if (scale1.rangeBand) {
-          var x = scale1, dx = x.rangeBand() / 2;
-          scale0 = scale1 = function(d) {
-            return x(d) + dx;
-          };
-        } else if (scale0.rangeBand) {
-          scale0 = scale1;
-        } else {
-          tickExit.call(tickTransform, scale1, scale0);
-        }
-        tickEnter.call(tickTransform, scale0, scale1);
-        tickUpdate.call(tickTransform, scale1, scale1);
-      });
-    }
-    axis.scale = function(x) {
-      if (!arguments.length) return scale;
-      scale = x;
-      return axis;
-    };
-    axis.orient = function(x) {
-      if (!arguments.length) return orient;
-      orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
-      return axis;
-    };
-    axis.ticks = function() {
-      if (!arguments.length) return tickArguments_;
-      tickArguments_ = d3_array(arguments);
-      return axis;
-    };
-    axis.tickValues = function(x) {
-      if (!arguments.length) return tickValues;
-      tickValues = x;
-      return axis;
-    };
-    axis.tickFormat = function(x) {
-      if (!arguments.length) return tickFormat_;
-      tickFormat_ = x;
-      return axis;
-    };
-    axis.tickSize = function(x) {
-      var n = arguments.length;
-      if (!n) return innerTickSize;
-      innerTickSize = +x;
-      outerTickSize = +arguments[n - 1];
-      return axis;
-    };
-    axis.innerTickSize = function(x) {
-      if (!arguments.length) return innerTickSize;
-      innerTickSize = +x;
-      return axis;
-    };
-    axis.outerTickSize = function(x) {
-      if (!arguments.length) return outerTickSize;
-      outerTickSize = +x;
-      return axis;
-    };
-    axis.tickPadding = function(x) {
-      if (!arguments.length) return tickPadding;
-      tickPadding = +x;
-      return axis;
-    };
-    axis.tickSubdivide = function() {
-      return arguments.length && axis;
-    };
-    return axis;
-  };
-  var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
-    top: 1,
-    right: 1,
-    bottom: 1,
-    left: 1
-  };
-  function d3_svg_axisX(selection, x0, x1) {
-    selection.attr("transform", function(d) {
-      var v0 = x0(d);
-      return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)";
-    });
-  }
-  function d3_svg_axisY(selection, y0, y1) {
-    selection.attr("transform", function(d) {
-      var v0 = y0(d);
-      return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")";
-    });
-  }
-  d3.svg.brush = function() {
-    var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];
-    function brush(g) {
-      g.each(function() {
-        var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
-        var background = g.selectAll(".background").data([ 0 ]);
-        background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
-        g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move");
-        var resize = g.selectAll(".resize").data(resizes, d3_identity);
-        resize.exit().remove();
-        resize.enter().append("g").attr("class", function(d) {
-          return "resize " + d;
-        }).style("cursor", function(d) {
-          return d3_svg_brushCursor[d];
-        }).append("rect").attr("x", function(d) {
-          return /[ew]$/.test(d) ? -3 : null;
-        }).attr("y", function(d) {
-          return /^[ns]/.test(d) ? -3 : null;
-        }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
-        resize.style("display", brush.empty() ? "none" : null);
-        var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;
-        if (x) {
-          range = d3_scaleRange(x);
-          backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]);
-          redrawX(gUpdate);
-        }
-        if (y) {
-          range = d3_scaleRange(y);
-          backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]);
-          redrawY(gUpdate);
-        }
-        redraw(gUpdate);
-      });
-    }
-    brush.event = function(g) {
-      g.each(function() {
-        var event_ = event.of(this, arguments), extent1 = {
-          x: xExtent,
-          y: yExtent,
-          i: xExtentDomain,
-          j: yExtentDomain
-        }, extent0 = this.__chart__ || extent1;
-        this.__chart__ = extent1;
-        if (d3_transitionInheritId) {
-          d3.select(this).transition().each("start.brush", function() {
-            xExtentDomain = extent0.i;
-            yExtentDomain = extent0.j;
-            xExtent = extent0.x;
-            yExtent = extent0.y;
-            event_({
-              type: "brushstart"
-            });
-          }).tween("brush:brush", function() {
-            var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);
-            xExtentDomain = yExtentDomain = null;
-            return function(t) {
-              xExtent = extent1.x = xi(t);
-              yExtent = extent1.y = yi(t);
-              event_({
-                type: "brush",
-                mode: "resize"
-              });
-            };
-          }).each("end.brush", function() {
-            xExtentDomain = extent1.i;
-            yExtentDomain = extent1.j;
-            event_({
-              type: "brush",
-              mode: "resize"
-            });
-            event_({
-              type: "brushend"
-            });
-          });
-        } else {
-          event_({
-            type: "brushstart"
-          });
-          event_({
-            type: "brush",
-            mode: "resize"
-          });
-          event_({
-            type: "brushend"
-          });
-        }
-      });
-    };
-    function redraw(g) {
-      g.selectAll(".resize").attr("transform", function(d) {
-        return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")";
-      });
-    }
-    function redrawX(g) {
-      g.select(".extent").attr("x", xExtent[0]);
-      g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]);
-    }
-    function redrawY(g) {
-      g.select(".extent").attr("y", yExtent[0]);
-      g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]);
-    }
-    function brushstart() {
-      var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;
-      var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup);
-      if (d3.event.changedTouches) {
-        w.on("touchmove.brush", brushmove).on("touchend.brush", brushend);
-      } else {
-        w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend);
-      }
-      g.interrupt().selectAll("*").interrupt();
-      if (dragging) {
-        origin[0] = xExtent[0] - origin[0];
-        origin[1] = yExtent[0] - origin[1];
-      } else if (resizing) {
-        var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
-        offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];
-        origin[0] = xExtent[ex];
-        origin[1] = yExtent[ey];
-      } else if (d3.event.altKey) center = origin.slice();
-      g.style("pointer-events", "none").selectAll(".resize").style("display", null);
-      d3.select("body").style("cursor", eventTarget.style("cursor"));
-      event_({
-        type: "brushstart"
-      });
-      brushmove();
-      function keydown() {
-        if (d3.event.keyCode == 32) {
-          if (!dragging) {
-            center = null;
-            origin[0] -= xExtent[1];
-            origin[1] -= yExtent[1];
-            dragging = 2;
-          }
-          d3_eventPreventDefault();
-        }
-      }
-      function keyup() {
-        if (d3.event.keyCode == 32 && dragging == 2) {
-          origin[0] += xExtent[1];
-          origin[1] += yExtent[1];
-          dragging = 0;
-          d3_eventPreventDefault();
-        }
-      }
-      function brushmove() {
-        var point = d3.mouse(target), moved = false;
-        if (offset) {
-          point[0] += offset[0];
-          point[1] += offset[1];
-        }
-        if (!dragging) {
-          if (d3.event.altKey) {
-            if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];
-            origin[0] = xExtent[+(point[0] < center[0])];
-            origin[1] = yExtent[+(point[1] < center[1])];
-          } else center = null;
-        }
-        if (resizingX && move1(point, x, 0)) {
-          redrawX(g);
-          moved = true;
-        }
-        if (resizingY && move1(point, y, 1)) {
-          redrawY(g);
-          moved = true;
-        }
-        if (moved) {
-          redraw(g);
-          event_({
-            type: "brush",
-            mode: dragging ? "move" : "resize"
-          });
-        }
-      }
-      function move1(point, scale, i) {
-        var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;
-        if (dragging) {
-          r0 -= position;
-          r1 -= size + position;
-        }
-        min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];
-        if (dragging) {
-          max = (min += position) + size;
-        } else {
-          if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
-          if (position < min) {
-            max = min;
-            min = position;
-          } else {
-            max = position;
-          }
-        }
-        if (extent[0] != min || extent[1] != max) {
-          if (i) yExtentDomain = null; else xExtentDomain = null;
-          extent[0] = min;
-          extent[1] = max;
-          return true;
-        }
-      }
-      function brushend() {
-        brushmove();
-        g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
-        d3.select("body").style("cursor", null);
-        w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
-        dragRestore();
-        event_({
-          type: "brushend"
-        });
-      }
-    }
-    brush.x = function(z) {
-      if (!arguments.length) return x;
-      x = z;
-      resizes = d3_svg_brushResizes[!x << 1 | !y];
-      return brush;
-    };
-    brush.y = function(z) {
-      if (!arguments.length) return y;
-      y = z;
-      resizes = d3_svg_brushResizes[!x << 1 | !y];
-      return brush;
-    };
-    brush.clamp = function(z) {
-      if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;
-      if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;
-      return brush;
-    };
-    brush.extent = function(z) {
-      var x0, x1, y0, y1, t;
-      if (!arguments.length) {
-        if (x) {
-          if (xExtentDomain) {
-            x0 = xExtentDomain[0], x1 = xExtentDomain[1];
-          } else {
-            x0 = xExtent[0], x1 = xExtent[1];
-            if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
-            if (x1 < x0) t = x0, x0 = x1, x1 = t;
-          }
-        }
-        if (y) {
-          if (yExtentDomain) {
-            y0 = yExtentDomain[0], y1 = yExtentDomain[1];
-          } else {
-            y0 = yExtent[0], y1 = yExtent[1];
-            if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
-            if (y1 < y0) t = y0, y0 = y1, y1 = t;
-          }
-        }
-        return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
-      }
-      if (x) {
-        x0 = z[0], x1 = z[1];
-        if (y) x0 = x0[0], x1 = x1[0];
-        xExtentDomain = [ x0, x1 ];
-        if (x.invert) x0 = x(x0), x1 = x(x1);
-        if (x1 < x0) t = x0, x0 = x1, x1 = t;
-        if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];
-      }
-      if (y) {
-        y0 = z[0], y1 = z[1];
-        if (x) y0 = y0[1], y1 = y1[1];
-        yExtentDomain = [ y0, y1 ];
-        if (y.invert) y0 = y(y0), y1 = y(y1);
-        if (y1 < y0) t = y0, y0 = y1, y1 = t;
-        if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];
-      }
-      return brush;
-    };
-    brush.clear = function() {
-      if (!brush.empty()) {
-        xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];
-        xExtentDomain = yExtentDomain = null;
-      }
-      return brush;
-    };
-    brush.empty = function() {
-      return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];
-    };
-    return d3.rebind(brush, event, "on");
-  };
-  var d3_svg_brushCursor = {
-    n: "ns-resize",
-    e: "ew-resize",
-    s: "ns-resize",
-    w: "ew-resize",
-    nw: "nwse-resize",
-    ne: "nesw-resize",
-    se: "nwse-resize",
-    sw: "nesw-resize"
-  };
-  var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
-  var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;
-  var d3_time_formatUtc = d3_time_format.utc;
-  var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ");
-  d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
-  function d3_time_formatIsoNative(date) {
-    return date.toISOString();
-  }
-  d3_time_formatIsoNative.parse = function(string) {
-    var date = new Date(string);
-    return isNaN(date) ? null : date;
-  };
-  d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
-  d3_time.second = d3_time_interval(function(date) {
-    return new d3_date(Math.floor(date / 1e3) * 1e3);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 1e3);
-  }, function(date) {
-    return date.getSeconds();
-  });
-  d3_time.seconds = d3_time.second.range;
-  d3_time.seconds.utc = d3_time.second.utc.range;
-  d3_time.minute = d3_time_interval(function(date) {
-    return new d3_date(Math.floor(date / 6e4) * 6e4);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 6e4);
-  }, function(date) {
-    return date.getMinutes();
-  });
-  d3_time.minutes = d3_time.minute.range;
-  d3_time.minutes.utc = d3_time.minute.utc.range;
-  d3_time.hour = d3_time_interval(function(date) {
-    var timezone = date.getTimezoneOffset() / 60;
-    return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
-  }, function(date, offset) {
-    date.setTime(date.getTime() + Math.floor(offset) * 36e5);
-  }, function(date) {
-    return date.getHours();
-  });
-  d3_time.hours = d3_time.hour.range;
-  d3_time.hours.utc = d3_time.hour.utc.range;
-  d3_time.month = d3_time_interval(function(date) {
-    date = d3_time.day(date);
-    date.setDate(1);
-    return date;
-  }, function(date, offset) {
-    date.setMonth(date.getMonth() + offset);
-  }, function(date) {
-    return date.getMonth();
-  });
-  d3_time.months = d3_time.month.range;
-  d3_time.months.utc = d3_time.month.utc.range;
-  function d3_time_scale(linear, methods, format) {
-    function scale(x) {
-      return linear(x);
-    }
-    scale.invert = function(x) {
-      return d3_time_scaleDate(linear.invert(x));
-    };
-    scale.domain = function(x) {
-      if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
-      linear.domain(x);
-      return scale;
-    };
-    function tickMethod(extent, count) {
-      var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);
-      return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {
-        return d / 31536e6;
-      }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];
-    }
-    scale.nice = function(interval, skip) {
-      var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval);
-      if (method) interval = method[0], skip = method[1];
-      function skipped(date) {
-        return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;
-      }
-      return scale.domain(d3_scale_nice(domain, skip > 1 ? {
-        floor: function(date) {
-          while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);
-          return date;
-        },
-        ceil: function(date) {
-          while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);
-          return date;
-        }
-      } : interval));
-    };
-    scale.ticks = function(interval, skip) {
-      var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ {
-        range: interval
-      }, skip ];
-      if (method) interval = method[0], skip = method[1];
-      return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);
-    };
-    scale.tickFormat = function() {
-      return format;
-    };
-    scale.copy = function() {
-      return d3_time_scale(linear.copy(), methods, format);
-    };
-    return d3_scale_linearRebind(scale, linear);
-  }
-  function d3_time_scaleDate(t) {
-    return new Date(t);
-  }
-  var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
-  var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];
-  var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) {
-    return d.getMilliseconds();
-  } ], [ ":%S", function(d) {
-    return d.getSeconds();
-  } ], [ "%I:%M", function(d) {
-    return d.getMinutes();
-  } ], [ "%I %p", function(d) {
-    return d.getHours();
-  } ], [ "%a %d", function(d) {
-    return d.getDay() && d.getDate() != 1;
-  } ], [ "%b %d", function(d) {
-    return d.getDate() != 1;
-  } ], [ "%B", function(d) {
-    return d.getMonth();
-  } ], [ "%Y", d3_true ] ]);
-  var d3_time_scaleMilliseconds = {
-    range: function(start, stop, step) {
-      return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);
-    },
-    floor: d3_identity,
-    ceil: d3_identity
-  };
-  d3_time_scaleLocalMethods.year = d3_time.year;
-  d3_time.scale = function() {
-    return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
-  };
-  var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {
-    return [ m[0].utc, m[1] ];
-  });
-  var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) {
-    return d.getUTCMilliseconds();
-  } ], [ ":%S", function(d) {
-    return d.getUTCSeconds();
-  } ], [ "%I:%M", function(d) {
-    return d.getUTCMinutes();
-  } ], [ "%I %p", function(d) {
-    return d.getUTCHours();
-  } ], [ "%a %d", function(d) {
-    return d.getUTCDay() && d.getUTCDate() != 1;
-  } ], [ "%b %d", function(d) {
-    return d.getUTCDate() != 1;
-  } ], [ "%B", function(d) {
-    return d.getUTCMonth();
-  } ], [ "%Y", d3_true ] ]);
-  d3_time_scaleUtcMethods.year = d3_time.year.utc;
-  d3_time.scale.utc = function() {
-    return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);
-  };
-  d3.text = d3_xhrType(function(request) {
-    return request.responseText;
-  });
-  d3.json = function(url, callback) {
-    return d3_xhr(url, "application/json", d3_json, callback);
-  };
-  function d3_json(request) {
-    return JSON.parse(request.responseText);
-  }
-  d3.html = function(url, callback) {
-    return d3_xhr(url, "text/html", d3_html, callback);
-  };
-  function d3_html(request) {
-    var range = d3_document.createRange();
-    range.selectNode(d3_document.body);
-    return range.createContextualFragment(request.responseText);
-  }
-  d3.xml = d3_xhrType(function(request) {
-    return request.responseXML;
-  });
-  if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; else this.d3 = d3;
-}();
\ No newline at end of file
diff --git a/pagure/static/d3/d3.v3.min.js b/pagure/static/d3/d3.v3.min.js
deleted file mode 100644
index 1664873..0000000
--- a/pagure/static/d3/d3.v3.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new c;return t.on=function(t,i){var u,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,u=e.indexOf(o)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function S(){ao.event.preventDefault()}function k(){for(var n,t=ao.event;n=t.sourceEvent;)t=n;return t}function N(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=ao.event;i.target=n,ao.event=i,t[i.type].apply(e,r)}finally{ao.event=u}}},t}function E(n){return ko(n,Co),n}function A(n){return"function"==typeof n?n:function(){return No(n,this)}}function C(n){return"function"==typeof n?n:function(){return Eo(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function i(){this.setAttribute(n,t)}function u(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ao.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?u:i}function L(n){return n.trim().replace(/\s+/g," ")}function q(n){return new RegExp("(?:^|\\s+)"+ao.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<i;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<i;)n[e](this,r)}n=T(n).map(D);var i=n.length;return"function"==typeof t?r:e}function D(n){var t=q(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(i)||e.setAttribute("class",L(i+" "+n))):e.setAttribute("class",L(i.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function i(){this.style.setProperty(n,t,e)}function u(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?u:i}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function i(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?i:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e===zo&&t.documentElement.namespaceURI===zo?t.createElement(n):t.createElementNS(e,n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ao.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return Ao(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t<l;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function i(){var i=l(t,co(arguments));r.call(this),this.addEventListener(n,this[o]=i,i.$=e),i._=t}function u(){var t,e=new RegExp("^__on([^.]+)"+ao.requote(n)+"$");for(var r in this)if(t=r.match(e)){var i=this[r];this.removeEventListener(t[1],i,i.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),l=$;a>0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t<e&&(e=t.t),t=(n=t).n):t=n?n.n=t.n:oa=t.n;return aa=n,e}function Pn(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Un(n,t){var e=Math.pow(10,3*xo(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(l,a)),null!=(i=ya[e=n.charAt(++a)])&&(e=n.charAt(++a)),(u=A[e])&&(e=u(t,null==i?"e"===e?" ":"0":i)),o.push(e),l=a+1);return o.push(n.slice(l,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=e(r,n,t,0);if(i!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var u=null!=r.Z&&va!==Hn,o=new(u?Hn:va);return"j"in r?o.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),u?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var i,u,o,a=0,l=t.length,c=e.length;l>a;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function $n(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Bn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function Wn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Jn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Gn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.y=Qn(+r[0]),e+r[0].length):-1}function Kn(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Qn(n){return n+(n>68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ft(){}function st(n,t,e){var r=e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function ht(n,t){n&&wa.hasOwnProperty(n.type)&&wa[n.type](n,t)}function pt(n,t,e){var r,i=-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function gt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)pt(n[e],t,1);t.polygonEnd()}function vt(){function n(n,t){n*=Yo,t=t*Yo/2+Fo/4;var e=n-r,o=e>=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])<Uo&&xo(n[1]-t[1])<Uo}function St(n,t){n*=Yo;var e=Math.cos(t*=Yo);kt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function kt(n,t,e){++Ea,Ca+=(n-Ca)/Ea,za+=(t-za)/Ea,La+=(e-La)/Ea}function Nt(){function n(n,i){n*=Yo;var u=Math.cos(i*=Yo),o=u*Math.cos(n),a=u*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*a)*c+(c=r*o-t*l)*c+(c=t*a-e*o)*c),t*o+e*a+r*l);Aa+=c,qa+=c*(t+(t=o)),Ta+=c*(e+(e=a)),Ra+=c*(r+(r=l)),kt(t,e,r)}var t,e,r;ja.point=function(i,u){i*=Yo;var o=Math.cos(u*=Yo);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(u),ja.point=n,kt(t,e,r)}}function Et(){ja.point=St}function At(){function n(n,t){n*=Yo;var e=Math.cos(t*=Yo),o=e*Math.cos(n),a=e*Math.sin(n),l=Math.sin(t),c=i*l-u*a,f=u*o-r*l,s=r*a-i*o,h=Math.sqrt(c*c+f*f+s*s),p=r*o+i*a+u*l,g=h&&-nn(p)/h,v=Math.atan2(h,p);Da+=g*c,Pa+=g*f,Ua+=g*s,Aa+=v,qa+=v*(r+(r=o)),Ta+=v*(i+(i=a)),Ra+=v*(u+(u=l)),kt(r,i,u)}var t,e,r,i,u;ja.point=function(o,a){t=o,e=a,ja.point=n,o*=Yo;var l=Math.cos(a*=Yo);r=l*Math.cos(o),i=l*Math.sin(o),u=Math.sin(a),kt(r,i,u)},ja.lineEnd=function(){n(t,e),ja.lineEnd=Et,ja.point=St}}function Ct(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function zt(){return!0}function Lt(n,t,e,r,i){var u=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(wt(e,r)){i.lineStart();for(var a=0;t>a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function Tt(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Rt(n,t,e,r){return function(i,u){function o(t,e){var r=i(t,e);n(t=r[0],e=r[1])&&u.point(t,e)}function a(n,t){var e=i(n,t);d.point(e[0],e[1])}function l(){m.point=a,d.lineStart()}function c(){m.point=o,d.lineEnd()}function f(n,t){v.push([n,t]);var e=i(n,t);x.point(e[0],e[1])}function s(){x.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),g.push(v),v=null,r)if(1&t){n=e[0];var i,r=n.length-1,o=-1;if(r>0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);u.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)<Uo?(n.point(e,r=(r+o)/2>0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)<Uo&&(e-=i*Uo),xo(u-a)<Uo&&(u-=a*Uo),r=Ft(e,r,u,o),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineEnd:function(){n.lineEnd(),e=r=NaN},clean:function(){return 2-t}}}function Ft(n,t,e,r){var i,u,o=Math.sin(n-e);return xo(o)>Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]<t[0]?Fo:-Fo;i=e*u/2,r.point(-u,i),r.point(0,i),r.point(u,i)}else r.point(t[0],t[1])}function Ot(n,t){var e=n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,o=0;ka.reset();for(var a=0,l=t.length;l>a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)<Uo,C=A||Uo>E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)<Uo?k:N):k<=b[1]&&b[1]<=N:E>Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)<Uo?i>0?0:3:xo(r[0]-e)<Uo?i>0?2:1:xo(r[1]-t)<Uo?i>0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){
-r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)<Uo||xo(r-h)<Uo?(r+h)/2:Math.atan2(_,b),E=n(N,k),A=E[0],C=E[1],z=A-t,L=C-e,q=M*z-m*L;(q*q/x>u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)<Uo?ce:(e.invert=function(n,t){var e=u-t;return[Math.atan2(n,e)/i,u-K(i)*Math.sqrt(n*n+e*e)]},e)}function Ne(n,t){return[n,Math.log(Math.tan(Fo/4+t/2))]}function Ee(n){var t,e=oe(n),r=e.scale,i=e.translate,u=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=i.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=u.apply(e,arguments);if(o===e){if(t=null==n){var a=Fo*r(),l=i();u([[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ae(n,t){return[Math.log(Math.tan(Fo/4+t/2)),-n]}function Ce(n){return n[0]}function ze(n){return n[1]}function Le(n){for(var t=n.length,e=[0,1],r=2,i=2;t>i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)<Uo&&xo(r-l.circle.cy)<Uo;)u=l.P,a.unshift(l),je(l),l=u;a.unshift(l),Be(l);for(var c=o;c.circle&&xo(e-c.circle.x)<Uo&&xo(r-c.circle.cy)<Uo;)o=c.N,a.push(c),je(c),c=o;a.push(c),Be(c);var f,s=a.length;for(f=1;s>f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)<Uo&&g-i>Uo?{x:s,y:xo(t-s)<Uo?e:g}:xo(i-g)<Uo&&h-r>Uo?{x:xo(e-g)<Uo?t:h,y:g}:xo(r-h)<Uo&&i-p>Uo?{x:h,y:xo(t-h)<Uo?e:p}:xo(i-p)<Uo&&r-s>Uo?{x:xo(e-p)<Uo?t:s,y:p}:null),u.site,null)),++l)}function Ve(n,t){return t.angle-n.angle}function Xe(){rr(this),this.x=this.y=this.arc=this.site=this.cy=null}function $e(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,i=n.site,u=e.site;if(r!==u){var o=i.x,a=i.y,l=r.x-o,c=r.y-a,f=u.x-o,s=u.y-a,h=2*(l*s-c*f);if(!(h>=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.y<M.y||y.y===M.y&&y.x<=M.x){if(!M.L){m=M.P;break}M=M.L}else{if(!M.R){m=M;break}M=M.R}ll.insert(m,y),m||(al=y)}}}}function Be(n){var t=n.circle;t&&(t.P||(al=t.N),ll.remove(t),fl.push(t),rr(t),n.circle=null)}function We(n){for(var t,e=il,r=Yt(n[0][0],n[0][1],n[1][0],n[1][1]),i=e.length;i--;)t=e[i],(!Je(t,n)||!r(t)||xo(t.a.x-t.b.x)<Uo&&xo(t.a.y-t.b.y)<Uo)&&(t.a=t.b=null,e.splice(i,1))}function Je(n,t){var e=n.b;if(e)return!0;var r,i,u=n.a,o=t[0][0],a=t[1][0],l=t[0][1],c=t[1][1],f=n.l,s=n.r,h=f.x,p=f.y,g=s.x,v=s.y,d=(h+g)/2,y=(p+v)/2;if(v===p){if(o>d||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.y<l)return}else u={x:d,y:c};e={x:d,y:l}}}else if(r=(h-g)/(v-p),i=y-r*d,-1>r||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.y<l)return}else u={x:(c-i)/r,y:c};e={x:(l-i)/r,y:l}}else if(v>p){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.x<o)return}else u={x:a,y:r*a+i};e={x:o,y:r*o+i}}return n.a=u,n.b=e,!0}function Ge(n,t){this.l=n,this.r=t,this.a=this.b=null}function Ke(n,t,e,r){var i=new Ge(n,t);return il.push(i),e&&nr(i,n,t,e),r&&nr(i,t,n,r),ul[n.i].edges.push(new tr(i,n,t)),ul[t.i].edges.push(new tr(i,t,n)),i}function Qe(n,t,e){var r=new Ge(n,null);return r.a=t,r.b=e,il.push(r),r}function nr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function tr(n,t,e){var r=n.a,i=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function er(){this._=null}function rr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function ir(n,t){var e=t,r=t.R,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ur(n,t){var e=t,r=t.L,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function or(n){for(;n.L;)n=n.L;return n}function ar(n,t){var e,r,i,u=n.sort(lr).pop();for(il=[],ul=new Array(n.length),ol=new er,ll=new er;;)if(i=al,u&&(!i||u.y<i.y||u.y===i.y&&u.x<i.x))u.x===e&&u.y===r||(ul[u.i]=new Ye(u),He(u),e=u.x,r=u.y),u=n.pop();else{if(!i)break;Fe(i.arc)}t&&(We(t),Ze(t));var o={cells:ul,edges:il};return ol=ll=il=ul=null,o}function lr(n,t){return t.y-n.y||t.x-n.x}function cr(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function fr(n){return n.x}function sr(n){return n.y}function hr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function pr(n,t,e,r,i,u){if(!n(t,e,r,i,u)){var o=.5*(e+i),a=.5*(r+u),l=t.nodes;l[0]&&pr(n,l[0],e,r,o,a),l[1]&&pr(n,l[1],o,r,i,a),l[2]&&pr(n,l[2],e,a,o,u),l[3]&&pr(n,l[3],o,a,i,u)}}function gr(n,t,e,r,i,u,o){var a,l=1/0;return function c(n,f,s,h,p){if(!(f>u||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return u<t.length&&(i=t.slice(u),a[o]?a[o]+=i:a[++o]=i),a.length<2?l[0]?(t=l[0].x,function(n){return t(n)+""}):function(){return t}:(t=l.length,function(n){for(var e,r=0;t>r;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Zo,this.translate=[n.e,n.f],this.scale=[r,u],this.skew=u?Math.atan2(i,u)*Zo:0}function Fr(n,t){return n[0]*t[0]+n[1]*t[1]}function Hr(n){var t=Math.sqrt(Fr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Or(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Ir(n){return n.length?n.pop()+",":""}function Yr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push("translate(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else(t[0]||t[1])&&e.push("translate("+t+")")}function Zr(n,t,e,r){n!==t?(n-t>180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i<u;)e[(t=r[i]).i]=t.x(n);return e.join("")}}function Br(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Wr(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Jr(n){for(var t=n.source,e=n.target,r=Kr(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var u=i.length;e!==r;)i.splice(u,0,e),e=e.parent;return i}function Gr(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Kr(n,t){if(n===t)return n;for(var e=Gr(n),r=Gr(t),i=e.pop(),u=r.pop(),o=null;i===u;)o=i,i=e.pop(),u=r.pop();return o}function Qr(n){n.fixed|=2}function ni(n){n.fixed&=-7}function ti(n){n.fixed|=4,n.px=n.x,n.py=n.y}function ei(n){n.fixed&=-5}function ri(n,t,e){var r=0,i=0;if(n.charge=0,!n.leaf)for(var u,o=n.nodes,a=o.length,l=-1;++l<a;)u=o[l],null!=u&&(ri(u,t,e),n.charge+=u.charge,r+=u.charge*u.cx,i+=u.charge*u.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var c=t*e[n.point.index];n.charge+=n.pointCharge=c,r+=c*n.point.x,i+=c*n.point.y}n.cx=r/n.charge,n.cy=i/n.charge}function ii(n,t){return ao.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=fi,n}function ui(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(i=n.children)&&(r=i.length))for(var r,i;--r>=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++o<i;)e.push(u[o]);for(;null!=(n=r.pop());)t(n)}function ai(n){return n.children}function li(n){return n.value}function ci(n,t){return t.value-n.value}function fi(n){return ao.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function si(n){return n.x}function hi(n){return n.y}function pi(n,t,e){n.y0=t,n.y=e}function gi(n){return ao.range(n.length)}function vi(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function di(n){for(var t,e=1,r=0,i=n[0][1],u=n.length;u>e;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.r<r.r?Si(r,i=a):Si(r=l,i),o--):(wi(r,u),i=u,t(u))}var y=(f+s)/2,m=(h+p)/2,M=0;for(o=0;c>o;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u<o;)Ci(i[u],t,e,r)}function zi(n,t,e){var r=n.r+e.r,i=t.x-n.x,u=t.y-n.y;if(r&&(i||u)){var o=t.r+e.r,a=i*i+u*u;o*=o,r*=r;var l=.5+(r-o)/(2*a),c=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+l*i+c*u,e.y=n.y+l*u-c*i}else e.x=n.x+r,e.y=n.y}function Li(n,t){return n.parent==t.parent?1:2}function qi(n){var t=n.children;return t.length?t[0]:n.t}function Ti(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ri(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Di(n){for(var t,e=0,r=0,i=n.children,u=i.length;--u>=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)i.push(e(n[o-1],n[o])),u.push(r(t[o-1],t[o]));return function(t){var e=ao.bisect(n,t,1,a)-1;return u[e](i[e](t))}}function Wi(n,t,e,r){function i(){var i=Math.min(n.length,t.length)>2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++<f;)for(var h=s-1;h>0;h--)o.push(u(c)*h);for(c=0;o[c]<a;c++);for(f=o.length;o[f-1]>l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++o<a;)i.has(u=r[o])||i.set(u,n.push(u));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(u=n,o=0,t={t:"range",a:arguments},e):u},e.rangePoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=(l+c)/2,0):(c-l)/(n.length-1+a);return u=r(l+f*a/2,f),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=c=Math.round((l+c)/2),0):(c-l)/(n.length-1+a)|0;return u=r(l+Math.round(f*a/2+(c-l-(n.length-1+a)*f)/2),f),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=(s-f)/(n.length-a+2*l);return u=r(f+h*l,h),c&&u.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=Math.floor((s-f)/(n.length-a+2*l));return u=r(f+Math.round((s-f-(n.length-a)*h)/2),h),c&&u.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Yi(t.a[0])},e.copy=function(){return ou(n,t)},e.domain(n)}function au(n,t){function u(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ao.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ao.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(i).sort(e),u()):n},o.range=function(n){return arguments.length?(t=n,u()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[NaN,NaN]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return au(n,t)},u()}function lu(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(u*(t-n))))]}function i(){return u=e.length/(t-n),o=e.length-1,r}var u,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],i()):[n,t]},r.range=function(n){return arguments.length?(e=n,i()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s<h;)i.call(this,l=t[s],s)?f.push([+p.call(this,l,s),+g.call(this,l,s)]):f.length&&(o(),f=[]);return f.length&&o(),c.length?c.join(""):null}var e=Ce,r=ze,i=zt,u=xu,o=u.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(i=n,t):i},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?u=n:(u=Tl.get(n)||xu).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function xu(n){return n.length>1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("V",(r=n[t])[1],"H",r[0]);return i.join("")}function Su(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r=n[t])[0],"V",r[1]);return i.join("")}function ku(n,t){return n.length<4?xu(n):n[1]+Au(n.slice(1,-1),Cu(n,t))}function Nu(n,t){return n.length<3?bu(n):n[0]+Au((n.push(n[0]),n),Cu([n[n.length-2]].concat(n,[n[1]]),t))}function Eu(n,t){return n.length<3?xu(n):n[0]+Au(n,Cu(n,t))}function Au(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return xu(n);var e=n.length!=t.length,r="",i=n[0],u=n[1],o=t[0],a=o,l=1;if(e&&(r+="Q"+(u[0]-2*o[0]/3)+","+(u[1]-2*o[1]/3)+","+u[0]+","+u[1],i=n[1],l=2),t.length>1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c<t.length;c++,l++)u=n[l],a=t[c],r+="S"+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1]}if(e){var f=n[l];r+="Q"+(u[0]+2*a[0]/3)+","+(u[1]+2*a[1]/3)+","+f[0]+","+f[1]}return r}function Cu(n,t){for(var e,r=[],i=(1-t)/2,u=n[0],o=n[1],a=1,l=n.length;++a<l;)e=u,u=o,o=n[a],r.push([i*(o[0]-e[0]),i*(o[1]-e[1])]);return r}function zu(n){if(n.length<3)return xu(n);var t=1,e=n.length,r=n[0],i=r[0],u=r[1],o=[i,i,i,(r=n[1])[0]],a=[u,u,u,r[1]],l=[i,",",u,"L",Ru(Pl,o),",",Ru(Pl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Du(l,o,a);return n.pop(),l.push("L",r),l.join("")}function Lu(n){if(n.length<4)return xu(n);for(var t,e=[],r=-1,i=n.length,u=[0],o=[0];++r<3;)t=n[r],u.push(t[0]),o.push(t[1]);for(e.push(Ru(Pl,u)+","+Ru(Pl,o)),--r;++r<i;)t=n[r],u.shift(),u.push(t[0]),o.shift(),o.push(t[1]),Du(e,u,o);return e.join("")}function qu(n){for(var t,e,r=-1,i=n.length,u=i+4,o=[],a=[];++r<4;)e=n[r%i],o.push(e[0]),a.push(e[1]);for(t=[Ru(Pl,o),",",Ru(Pl,a)],--r;++r<u;)e=n[r%i],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Du(t,o,a);return t.join("")}function Tu(n,t){var e=n.length-1;if(e)for(var r,i,u=n[0][0],o=n[0][1],a=n[e][0]-u,l=n[e][1]-o,c=-1;++c<=e;)r=n[c],i=c/e,r[0]=t*r[0]+(1-t)*(u+i*a),r[1]=t*r[1]+(1-t)*(o+i*l);return zu(n)}function Ru(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Du(n,t,e){n.push("C",Ru(Rl,t),",",Ru(Rl,e),",",Ru(Dl,t),",",Ru(Dl,e),",",Ru(Pl,t),",",Ru(Pl,e))}function Pu(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Uu(n){for(var t=0,e=n.length-1,r=[],i=n[0],u=n[1],o=r[0]=Pu(i,u);++t<e;)r[t]=(o+(o=Pu(i=u,u=n[t+1])))/2;return r[t]=o,r}function ju(n){for(var t,e,r,i,u=[],o=Uu(n),a=-1,l=n.length-1;++a<l;)t=Pu(n[a],n[a+1]),xo(t)<Uo?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,i=e*e+r*r,i>9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i<u;)t=n[i],e=t[0],r=t[1]-Io,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Ou(n){function t(t){function l(){v.push("M",a(n(y),s),f,c(n(d.reverse()),s),"Z")}for(var h,p,g,v=[],d=[],y=[],m=-1,M=t.length,x=En(e),b=En(i),_=e===r?function(){
-return p}:En(r),w=i===u?function(){return g}:En(u);++m<M;)o.call(this,h=t[m],m)?(d.push([p=+x.call(this,h,m),g=+b.call(this,h,m)]),y.push([+_.call(this,h,m),+w.call(this,h,m)])):d.length&&(l(),d=[],y=[]);return d.length&&l(),v.length?v.join(""):null}var e=Ce,r=Ce,i=0,u=ze,o=zt,a=xu,l=a.key,c=a,f="L",s=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(i=u=n,t):u},t.y0=function(n){return arguments.length?(i=n,t):i},t.y1=function(n){return arguments.length?(u=n,t):u},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(l="function"==typeof n?a=n:(a=Tl.get(n)||xu).key,c=a.reverse||a,f=a.closed?"M":"L",t):l},t.tension=function(n){return arguments.length?(s=n,t):s},t}function Iu(n){return n.radius}function Yu(n){return[n.x,n.y]}function Zu(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Io;return[e*Math.cos(r),e*Math.sin(r)]}}function Vu(){return 64}function Xu(){return"circle"}function $u(n){var t=Math.sqrt(n/Fo);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Bu(n){return function(){var t,e,r;(t=this[n])&&(r=t[e=t.active])&&(r.timer.c=null,r.timer.t=NaN,--t.count?delete t[e]:delete this[n],t.active+=.5,r.event&&r.event.interrupt.call(this,this.__data__,r.index))}}function Wu(n,t,e){return ko(n,Yl),n.namespace=t,n.id=e,n}function Ju(n,t,e,r){var i=n.id,u=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[u][i].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[u][i].tween.set(t,e)}))}function Gu(n){return null==n&&(n=""),function(){this.textContent=n}}function Ku(n){return null==n?"__transition__":"__transition_"+n+"__"}function Qu(n,t,e,r,i){function u(n){var t=v.delay;return f.t=t+l,n>=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]<Kl[u]/i?u-1:u]:[tc,Ki(n,e)[2]]}return r.invert=function(t){return io(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(io)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,io(+e+1),t).length}var u=r.domain(),o=Yi(u),a=null==n?i(o,10):"number"==typeof n&&i(o,n);return a&&(n=a[0],t=a[1]),r.domain(Xi(u,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&e>r&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&e>r&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&r>e&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&r>e&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u<o;)if(null!=(r=n[u])&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=n[u])&&(e>r&&(e=r),r>i&&(i=r))}else{for(;++u<o;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=t.call(n,n[u],u))&&(e>r&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o<u;)i(e=+n[o])&&(r+=e);else for(;++o<u;)i(e=+t.call(n,n[o],o))&&(r+=e);return r},ao.mean=function(n,t){var e,u=0,o=n.length,a=-1,l=o;if(1===arguments.length)for(;++a<o;)i(e=r(n[a]))?u+=e:--l;else for(;++a<o;)i(e=r(t.call(n,n[a],a)))?u+=e:--l;return l?u/l:void 0},ao.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),i=+n[r-1],u=e-r;return u?i+u*(n[r]-i):i},ao.median=function(n,t){var u,o=[],a=n.length,l=-1;if(1===arguments.length)for(;++l<a;)i(u=r(n[l]))&&o.push(u);else for(;++l<a;)i(u=r(t.call(n,n[l],l)))&&o.push(u);return o.length?ao.quantile(o.sort(e),.5):void 0},ao.variance=function(n,t){var e,u,o=n.length,a=0,l=0,c=-1,f=0;if(1===arguments.length)for(;++c<o;)i(e=r(n[c]))&&(u=e-a,a+=u/++f,l+=u*(e-a));else for(;++c<o;)i(e=r(t.call(n,n[c],c)))&&(u=e-a,a+=u/++f,l+=u*(e-a));return f>1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t<e;)for(var i,u=-1,a=r[t]=new Array(i);++u<i;)a[u]=n[u][t];return r},ao.zip=function(){return ao.transpose(arguments)},ao.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ao.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ao.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ao.merge=function(n){for(var t,e,r,i=n.length,u=-1,o=0;++u<i;)o+=n[u].length;for(e=new Array(o);--i>=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)<t;)i.push(r/u);return i},ao.map=function(n,t){var e=new c;if(n instanceof c)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,i=-1,u=n.length;if(1===arguments.length)for(;++i<u;)e.set(i,n[i]);else for(;++i<u;)e.set(t.call(n,r=n[i],i),r)}else for(var o in n)e.set(o,n[o]);return e};var bo="__proto__",_o="\x00";l(c,{has:h,get:function(n){return this._[f(n)]},set:function(n,t){return this._[f(n)]=t},remove:p,keys:g,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:s(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t),this._[t])}}),ao.nest=function(){function n(t,o,a){if(a>=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p<g;)(h=d.get(l=v(f=o[p])))?h.push(f):d.set(l,[f]);return t?(f=t(),s=function(e,r){f.set(e,n(t,r,a))}):(f={},s=function(e,r){f[e]=n(t,r,a)}),d.forEach(s),f}function t(n,e){if(e>=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r<i;)n[e=arguments[r]]=M(n,t,t[e]);return n};var wo=["webkit","ms","moz","Moz","o","O"];ao.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o<a;){u.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var l=-1,c=r.length;++l<c;)(i=r[l])?(t.push(e=n.call(i,i.__data__,l,o)),e&&"__data__"in i&&(e.__data__=i.__data__)):t.push(null)}return E(u)},Co.selectAll=function(n){var t,e,r=[];n=C(n);for(var i=-1,u=this.length;++i<u;)for(var o=this[i],a=-1,l=o.length;++a<l;)(e=o[a])&&(r.push(t=co(n.call(e,e.__data__,a,i))),t.parentNode=e);return E(r)};var zo="http://www.w3.org/1999/xhtml",Lo={svg:"http://www.w3.org/2000/svg",xhtml:zo,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ao.ns={prefix:Lo,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++i<r;)if(!t.contains(n[i]))return!1}else for(t=e.getAttribute("class");++i<r;)if(!q(n[i]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},Co.style=function(n,e,r){var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++r<o;)(i=n[r])&&(y.has(d=t.call(i,i.__data__,r))?v[r]=i:y.set(d,i),m[r]=d);for(r=-1;++r<s;)(i=y.get(d=t.call(e,u=e[r],r)))?i!==!0&&(p[r]=i,i.__data__=u):g[r]=H(u),y.set(d,!0);for(r=-1;++r<o;)r in m&&y.get(m[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],u=e[r],i?(i.__data__=u,p[r]=i):g[r]=H(u);for(;s>r;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++u<o;)(i=r[u])&&(n[u]=i.__data__);return n}var a=Z([]),l=E([]),f=E([]);if("function"==typeof n)for(;++u<o;)e(r=this[u],n.call(r,r.parentNode.__data__,u));else for(;++u<o;)e(r=this[u],n);return l.enter=function(){return a},l.exit=function(){return f},l},Co.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},Co.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],i=r.length-1,u=r[i];--i>=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},Co.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},Co.call=function(n){var t=co(arguments);return n.apply(t[0]=this,t),this},Co.empty=function(){return!this.node()},Co.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++a<l;){r=(i=this[a]).update,o.push(t=[]),t.parentNode=i.parentNode;for(var c=-1,f=i.length;++c<f;)(u=i[c])?(t.push(r[c]=e=n.call(i.parentNode,u.__data__,c,a)),e.__data__=u.__data__):t.push(null)}return E(o)},qo.insert=function(n,t){return arguments.length<2&&(t=V(this)),Co.insert.call(this,n,t)},ao.select=function(t){var e;return"string"==typeof t?(e=[No(t,fo)],e.parentNode=fo.documentElement):(e=[t],e.parentNode=n(t)),E([e])},ao.selectAll=function(n){var t;return"string"==typeof n?(t=co(Eo(n,fo)),t.parentNode=fo.documentElement):(t=co(n),t.parentNode=null),E([t])},Co.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}f=e+2;var r=n.charCodeAt(e+1);return 13===r?(i=!0,10===n.charCodeAt(e+2)&&++f):10===r&&(i=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;c>f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv("	","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
-shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++r<i;)ht(e[r].geometry,t)}},wa={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){pt(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)pt(e[r],t,0)},Polygon:function(n,t){gt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)gt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,i=e.length;++r<i;)ht(e[r],t)}};ao.geo.area=function(n){return Sa=0,ao.geo.stream(n,Na),Sa};var Sa,ka=new ft,Na={sphere:function(){Sa+=4*Fo},point:b,lineStart:b,lineEnd:b,polygonStart:function(){ka.reset(),Na.lineStart=vt},polygonEnd:function(){var n=2*ka;Sa+=0>n?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var f,s,h,p,g,v,d,y,m,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=i,b.lineStart=u,b.lineEnd=o,m=0,Na.polygonStart()},polygonEnd:function(){Na.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>ka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t<f.length-h;++t)p.push(n[a[f[t]][2]]);return p}var e=Ce,r=ze;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ao.geom.polygon=function(n){return ko(n,rl),n};var rl=ao.geom.polygon.prototype=[];rl.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],i=0;++t<e;)n=r,r=this[t],i+=n[1]*r[0]-n[0]*r[1];return.5*i},rl.centroid=function(n){var t,e,r=-1,i=this.length,u=0,o=0,a=this[i-1];for(arguments.length||(n=-1/(6*this.area()));++r<i;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],u+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[u*n,o*n]},rl.clip=function(n){for(var t,e,r,i,u,o,a=De(n),l=-1,c=this.length-De(this),f=this[c-1];++l<c;){for(t=n.slice(),n.length=0,i=this[l],u=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Te(o,f,i)?(Te(u,f,i)||n.push(Re(u,o,f,i)),n.push(o)):Te(u,f,i)&&n.push(Re(u,o,f,i)),u=o;a&&n.push(n[0]),f=i}return n};var il,ul,ol,al,ll,cl=[],fl=[];Ye.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Ve),t.length},tr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},er.prototype={insert:function(n,t){var e,r,i;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=or(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.R&&(ir(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ur(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.L&&(ur(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ir(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,i=n.U,u=n.L,o=n.R;if(e=u?o?or(o):u:o,i?i.L===n?i.L=e:i.R=e:this._=e,u&&o?(r=e.C,e.C=n.C,e.L=u,u.U=e,e!==o?(i=e.U,e.U=n.U,n=e.R,i.L=n,e.R=o,o.U=e):(e.U=i,i=e,n=e.R)):(r=n.C,n=e),n&&(n.U=i),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===i.L){if(t=i.R,t.C&&(t.C=!1,i.C=!0,ir(this,i),t=i.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ur(this,t),t=i.R),t.C=i.C,i.C=t.R.C=!1,ir(this,i),n=this._;break}}else if(t=i.L,t.C&&(t.C=!1,i.C=!0,ur(this,i),t=i.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,ir(this,t),t=i.L),t.C=i.C,i.C=t.L.C=!1,ur(this,i),n=this._;break}t.C=!0,n=i,i=i.U}while(!n.C);n&&(n.C=!1)}}},ao.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],i=a[0][1],u=a[1][0],o=a[1][1];return ar(e(n),a).cells.forEach(function(e,a){var l=e.edges,c=e.site,f=t[a]=l.length?l.map(function(n){var t=n.start();return[t.x,t.y]}):c.x>=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l<c;)i=f,u=s,f=a[l].edge,s=f.l===o?f.r:f.l,r<u.i&&r<s.i&&cr(o,u,s)<0&&t.push([n[r],n[u.i],n[s.i]])}),t},t.x=function(n){return arguments.length?(u=En(r=n),t):r},t.y=function(n){return arguments.length?(o=En(i=n),t):i},t.clipExtent=function(n){return arguments.length?(a=null==n?sl:n,t):a===sl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===sl?null:a&&a[1]},t)};var sl=[[-1e6,-1e6],[1e6,1e6]];ao.geom.delaunay=function(n){return ao.geom.voronoi().triangles(n)},ao.geom.quadtree=function(n,t,e,r,i){function u(n){function u(n,t,e,r,i,u,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var l=n.x,f=n.y;if(null!=l)if(xo(l-e)+xo(f-r)<.01)c(n,t,e,r,i,u,o,a);else{var s=n.point;n.x=n.y=n.point=null,c(n,s,l,f,i,u,o,a),c(n,t,e,r,i,u,o,a)}else n.x=e,n.y=r,n.point=t}else c(n,t,e,r,i,u,o,a)}function c(n,t,e,r,i,o,a,l){var c=.5*(i+a),f=.5*(o+l),s=e>=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.x<v&&(v=f.x),f.y<d&&(d=f.y),f.x>y&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p<g;)u(k,n[p],s[p],h[p],v,d,y,m);--p}else n.forEach(k.add);return s=h=n=f=null,k}var o,a=Ce,l=ze;return(o=arguments.length)?(a=fr,l=sr,3===o&&(i=e,r=t,e=t=0),u(n)):(u.x=function(n){return arguments.length?(a=n,u):a},u.y=function(n){return arguments.length?(l=n,u):l},u.extent=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],i=+n[1][1]),u):null==t?null:[[t,e],[r,i]]},u.size=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=e=0,r=+n[0],i=+n[1]),u):null==t?null:[r-t,i-e]},u)},ao.interpolateRgb=vr,ao.interpolateObject=dr,ao.interpolateNumber=yr,ao.interpolateString=mr;var hl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pl=new RegExp(hl.source,"g");ao.interpolate=Mr,ao.interpolators=[function(n,t){var e=typeof t;return("string"===e?ua.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?vr:mr:t instanceof an?vr:Array.isArray(t)?xr:"object"===e&&isNaN(t)?dr:yr)(n,t)}],ao.interpolateArray=xr;var gl=function(){return m},vl=ao.map({linear:gl,poly:Er,quad:function(){return Sr},cubic:function(){return kr},sin:function(){return Ar},exp:function(){return Cr},circle:function(){return zr},elastic:Lr,back:qr,bounce:function(){return Tr}}),dl=ao.map({"in":m,out:_r,"in-out":wr,"out-in":function(n){return wr(_r(n))}});ao.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Jr(n[e]));return t}},ao.layout.chord=function(){function n(){var n,c,s,h,p,g={},v=[],d=ao.range(u),y=[];for(e=[],r=[],n=0,h=-1;++h<u;){for(c=0,p=-1;++p<u;)c+=i[h][p];v.push(c),y.push(ao.range(u)),n+=c}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&y.forEach(function(n,t){n.sort(function(n,e){return a(i[t][n],i[t][e])})}),n=(Ho-f*u)/n,c=0,h=-1;++h<u;){for(s=c,p=-1;++p<u;){var m=d[h],M=y[m][p],x=i[m][M],b=c,_=c+=x*n;g[m+"-"+M]={index:m,subindex:M,startAngle:b,endAngle:_,value:x}}r[m]={index:m,startAngle:s,endAngle:c,value:v[m]},c+=f}for(h=-1;++h<u;)for(p=h-1;++p<u;){var w=g[h+"-"+p],S=g[p+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}l&&t()}function t(){e.sort(function(n,t){return l((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,i,u,o,a,l,c={},f=0;return c.matrix=function(n){return arguments.length?(u=(i=n)&&i.length,e=r=null,c):i},c.padding=function(n){return arguments.length?(f=n,e=r=null,c):f},c.sortGroups=function(n){return arguments.length?(o=n,e=r=null,c):o},c.sortSubgroups=function(n){return arguments.length?(a=n,e=null,c):a},c.sortChords=function(n){return arguments.length?(l=n,e&&t(),c):l},c.chords=function(){return e||n(),e},c.groups=function(){return r||n(),r},c},ao.layout.force=function(){function n(n){return function(t,e,r,i){if(t.point!==n){var u=t.cx-n.x,o=t.cy-n.y,a=i-e,l=u*u+o*o;if(l>a*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++l<f;)if(!isNaN(o=a[l][n]))return o;return Math.random()*r}var t,e,r,i=M.length,c=x.length,s=f[0],v=f[1];for(t=0;i>t;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++c<o;)n(a=u[c],e,l=a.value*r,i),e+=l}}function t(n){var e=n.children,r=0;if(e&&(i=e.length))for(var i,u=-1;++u<i;)r=Math.max(r,t(e[u]));return 1+r}function e(e,u){var o=r.call(this,e,u);return n(o[0],0,i[0],i[1]/t(o[0])),o}var r=ao.layout.hierarchy(),i=[1,1];return e.size=function(n){return arguments.length?(i=n,e):i},ii(e,r)},ao.layout.pie=function(){function n(o){var a,l=o.length,c=o.map(function(e,r){return+t.call(n,e,r)}),f=+("function"==typeof r?r.apply(this,arguments):r),s=("function"==typeof i?i.apply(this,arguments):i)-f,h=Math.min(Math.abs(s)/l,+("function"==typeof u?u.apply(this,arguments):u)),p=h*(0>s?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u<p;)o=l[u]=[],o.dx=s[u+1]-(o.x=s[u]),o.y=0;if(p>0)for(u=-1;++u<h;)a=c[u],a>=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.x<p.x&&(p=n),n.x>g.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++i<u;)r=(e=n[i]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(u>e&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0;
-if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++u<o;)i=n[u],i.x=a,i.y=c,i.dy=f,a+=i.dx=Math.min(e.x+e.dx-a,f?l(i.area/f):0);i.z=!0,i.dx+=e.x+e.dx-a,e.y+=f,e.dy-=f}else{for((r||f>e.dx)&&(f=e.dx);++u<o;)i=n[u],i.x=a,i.y=c,i.dx=f,c+=i.dy=Math.min(e.y+e.dy-c,f?l(i.area/f):0);i.z=!1,i.dy+=e.y+e.dy-c,e.x+=f,e.dx-=f}}function u(r){var i=o||a(r),u=i[0];return u.x=u.y=0,u.value?(u.dx=c[0],u.dy=c[1]):u.dx=u.dy=0,o&&a.revalue(u),n([u],u.dx*u.dy/u.value),(o?e:t)(u),h&&(o=i),i}var o,a=ao.layout.hierarchy(),l=Math.round,c=[1,1],f=null,s=Oi,h=!1,p="squarify",g=.5*(1+Math.sqrt(5));return u.size=function(n){return arguments.length?(c=n,u):c},u.padding=function(n){function t(t){var e=n.call(u,t,t.depth);return null==e?Oi(t):Ii(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Ii(t,n)}if(!arguments.length)return f;var r;return s=null==(f=n)?Oi:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,u},u.round=function(n){return arguments.length?(l=n?Math.round:Number,u):l!=Number},u.sticky=function(n){return arguments.length?(h=n,o=null,u):h},u.ratio=function(n){return arguments.length?(g=n,u):g},u.mode=function(n){return arguments.length?(p=n+"",u):p},ii(u,a)},ao.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++a<l;){u.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(e=c[f])&&Qu(e,f,i,r,o),t.push(e)}return Wu(u,i,r)},Co.interrupt=function(n){return this.each(null==n?Il:Bu(Ku(n)))};var Hl,Ol,Il=Bu(Ku()),Yl=[],Zl=0;Yl.call=Co.call,Yl.empty=Co.empty,Yl.node=Co.node,Yl.size=Co.size,ao.transition=function(n,t){return n&&n.transition?Hl?n.transition(t):n:ao.selection().transition(n)},ao.transition.prototype=Yl,Yl.select=function(n){var t,e,r,i=this.id,u=this.namespace,o=[];n=A(n);for(var a=-1,l=this.length;++a<l;){o.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(r=c[f])&&(e=n.call(r,r.__data__,f,a))?("__data__"in r&&(e.__data__=r.__data__),Qu(e,f,u,i,r[u][i]),t.push(e)):t.push(null)}return Wu(o,u,i)},Yl.selectAll=function(n){var t,e,r,i,u,o=this.id,a=this.namespace,l=[];n=C(n);for(var c=-1,f=this.length;++c<f;)for(var s=this[c],h=-1,p=s.length;++h<p;)if(r=s[h]){u=r[a][o],e=n.call(r,r.__data__,h,c),l.push(t=[]);for(var g=-1,v=e.length;++g<v;)(i=e[g])&&Qu(i,g,a,o,u),t.push(i)}return Wu(l,a,o)},Yl.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]<M[0])],L[1]=h[+(n[1]<M[1])]):M=null),E&&y(n,c,0)&&(r(k),t=!0),A&&y(n,f,1)&&(i(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function y(n,t,e){var r,i,u=Zi(t),l=u[0],c=u[1],f=L[e],v=e?h:s,d=v[1]-v[0];return C&&(l-=f,c-=d+f),r=(e?g:p)?Math.max(l,Math.min(c,n[e])):n[e],C?i=(r+=f)+d:(M&&(f=Math.max(l,Math.min(c,2*M[e]-r))),r>f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}();
\ No newline at end of file
diff --git a/pagure/static/emoji/emoji_strategy-1.3.1.json b/pagure/static/emoji/emoji_strategy-1.3.1.json
deleted file mode 100644
index 169e6ca..0000000
--- a/pagure/static/emoji/emoji_strategy-1.3.1.json
+++ /dev/null
@@ -1 +0,0 @@
-{"wine_glass": {"keywords": "wine glass alcohol beverage booze bottle drink drunk fermented glass grapes tasting wine winery", "shortname": ":wine_glass:", "unicode": "1F377", "aliases": ""}, "clock830": {"keywords": "clock face eight-thirty clock time", "shortname": ":clock830:", "unicode": "1F563", "aliases": ""}, "rabbit": {"keywords": "rabbit face animal nature", "shortname": ":rabbit:", "unicode": "1F430", "aliases": ""}, "european_post_office": {"keywords": "european post office building", "shortname": ":european_post_office:", "unicode": "1F3E4", "aliases": ""}, "dollar": {"keywords": "banknote with dollar sign bill currency money dollar united states canada australia banknote money currency paper cash bills", "shortname": ":dollar:", "unicode": "1F4B5", "aliases": ""}, "alien": {"keywords": "extraterrestrial alien UFO paul alien ufo", "shortname": ":alien:", "unicode": "1F47D", "aliases": ""}, "crocodile": {"keywords": "crocodile animal nature crocodile croc alligator gator cranky", "shortname": ":crocodile:", "unicode": "1F40A", "aliases": ""}, "smoking": {"keywords": "smoking symbol cigarette kills tobacco smoking cigarette smoke cancer lungs inhale tar nicotine", "shortname": ":smoking:", "unicode": "1F6AC", "aliases": ""}, "white_square_button": {"keywords": "white square button shape", "shortname": ":white_square_button:", "unicode": "1F533", "aliases": ""}, "maple_leaf": {"keywords": "maple leaf canada nature plant vegetable maple leaf syrup canada tree", "shortname": ":maple_leaf:", "unicode": "1F341", "aliases": ""}, "no_bicycles": {"keywords": "no bicycles cyclist prohibited bicycle bike pedal no", "shortname": ":no_bicycles:", "unicode": "1F6B3", "aliases": ""}, "man_with_gua_pi_mao": {"keywords": "man with gua pi mao boy male skullcap chinese asian qing", "shortname": ":man_with_gua_pi_mao:", "unicode": "1F472", "aliases": ""}, "e-mail": {"keywords": "e-mail symbol communication inbox", "shortname": ":e-mail:", "unicode": "1F4E7", "aliases": ":email:"}, "tv": {"keywords": "television oldschool program show technology", "shortname": ":tv:", "unicode": "1F4FA", "aliases": ""}, "open_hands": {"keywords": "open hands sign butterfly fingers", "shortname": ":open_hands:", "unicode": "1F450", "aliases": ""}, "rotating_light": {"keywords": "police cars revolving light 911 ambulance emergency police light police emergency", "shortname": ":rotating_light:", "unicode": "1F6A8", "aliases": ""}, "part_alternation_mark": {"keywords": "part alternation mark graph sing song vocal music karaoke cue letter m japanese", "shortname": ":part_alternation_mark:", "unicode": "303D", "aliases": ""}, "tm": {"keywords": "trade mark sign brand trademark", "shortname": ":tm:", "unicode": "2122", "aliases": ""}, "mountain_cableway": {"keywords": "mountain cableway transportation vehicle mountain cable rail train railway", "shortname": ":mountain_cableway:", "unicode": "1F6A0", "aliases": ""}, "recycle": {"keywords": "black universal recycling symbol arrow environment garbage trash", "shortname": ":recycle:", "unicode": "267B", "aliases": ""}, "smile": {"keywords": "smiling face with open mouth and smiling eyes face funny haha happy joy laugh smile smiley smiling", "shortname": ":smile:", "unicode": "1F604", "aliases": ""}, "large_blue_circle": {"keywords": "large blue circle ", "shortname": ":large_blue_circle:", "unicode": "1F535", "aliases": ""}, "persevere": {"keywords": "persevering face endure persevere face no sick upset", "shortname": ":persevere:", "unicode": "1F623", "aliases": ""}, "open_file_folder": {"keywords": "open file folder documents load", "shortname": ":open_file_folder:", "unicode": "1F4C2", "aliases": ""}, "fax": {"keywords": "fax machine communication technology", "shortname": ":fax:", "unicode": "1F4E0", "aliases": ""}, "woman": {"keywords": "woman female girls", "shortname": ":woman:", "unicode": "1F469", "aliases": ""}, "eight_pointed_black_star": {"keywords": "eight pointed black star ", "shortname": ":eight_pointed_black_star:", "unicode": "2734", "aliases": ""}, "department_store": {"keywords": "department store building mall shopping department store retail sale merchandise", "shortname": ":department_store:", "unicode": "1F3EC", "aliases": ""}, "trident": {"keywords": "trident emblem spear weapon", "shortname": ":trident:", "unicode": "1F531", "aliases": ""}, "oncoming_automobile": {"keywords": "oncoming automobile car transportation vehicle sedan car automobile", "shortname": ":oncoming_automobile:", "unicode": "1F698", "aliases": ""}, "wave": {"keywords": "waving hand sign farewell gesture goodbye hands solong", "shortname": ":wave:", "unicode": "1F44B", "aliases": ""}, "u7a7a": {"keywords": "squared cjk unified ideograph-7a7a chinese empty japanese kanji", "shortname": ":u7a7a:", "unicode": "1F233", "aliases": ""}, "arrow_right": {"keywords": "black rightwards arrow blue-square next", "shortname": ":arrow_right:", "unicode": "27A1", "aliases": ""}, "ticket": {"keywords": "ticket concert event pass ticket show entertainment stub admission proof purchase", "shortname": ":ticket:", "unicode": "1F3AB", "aliases": ""}, "ramen": {"keywords": "steaming bowl chipsticks food japanese noodle ramen noodles bowl steaming soup", "shortname": ":ramen:", "unicode": "1F35C", "aliases": ""}, "twisted_rightwards_arrows": {"keywords": "twisted rightwards arrows blue-square", "shortname": ":twisted_rightwards_arrows:", "unicode": "1F500", "aliases": ""}, "cool": {"keywords": "squared cool blue-square words", "shortname": ":cool:", "unicode": "1F192", "aliases": ""}, "four": {"keywords": "digit four 4 blue-square numbers", "shortname": ":four:", "unicode": "0034-20E3", "aliases": ""}, "school": {"keywords": "school building school university elementary middle high college teach education", "shortname": ":school:", "unicode": "1F3EB", "aliases": ""}, "high_brightness": {"keywords": "high brightness symbol light summer sun", "shortname": ":high_brightness:", "unicode": "1F506", "aliases": ""}, "railway_car": {"keywords": "railway car transportation vehicle railway rail car coach train", "shortname": ":railway_car:", "unicode": "1F683", "aliases": ""}, "notes": {"keywords": "multiple musical notes music score musical music notes music sound melody", "shortname": ":notes:", "unicode": "1F3B6", "aliases": ""}, "white_flower": {"keywords": "white flower japanese white flower teacher school grade score brilliance intelligence homework student assignment praise", "shortname": ":white_flower:", "unicode": "1F4AE", "aliases": ""}, "gun": {"keywords": "pistol violence weapon", "shortname": ":gun:", "unicode": "1F52B", "aliases": ""}, "couple_with_heart": {"keywords": "couple with heart affection dating human like love marriage valentines", "shortname": ":couple_with_heart:", "unicode": "1F491", "aliases": ""}, "no_good": {"keywords": "face with no good gesture female girl woman no stop nope don&#039;t not", "shortname": ":no_good:", "unicode": "1F645", "aliases": ""}, "saxophone": {"keywords": "saxophone instrument music saxophone sax music instrument woodwind", "shortname": ":saxophone:", "unicode": "1F3B7", "aliases": ""}, "notebook_with_decorative_cover": {"keywords": "notebook with decorative cover classroom notes paper record", "shortname": ":notebook_with_decorative_cover:", "unicode": "1F4D4", "aliases": ""}, "triumph": {"keywords": "face with look of triumph face gas phew triumph steam breath", "shortname": ":triumph:", "unicode": "1F624", "aliases": ""}, "tea": {"keywords": "teacup without handle bowl breakfast british drink green tea leaf drink teacup hot beverage", "shortname": ":tea:", "unicode": "1F375", "aliases": ""}, "suspension_railway": {"keywords": "suspension railway transportation vehicle suspension railway rail train transportation", "shortname": ":suspension_railway:", "unicode": "1F69F", "aliases": ""}, "arrow_left": {"keywords": "leftwards black arrow arrow blue-square previous", "shortname": ":arrow_left:", "unicode": "2B05", "aliases": ""}, "zero": {"keywords": "digit zero blue-square null numbers", "shortname": ":zero:", "unicode": "0030-20E3", "aliases": ""}, "small_orange_diamond": {"keywords": "small orange diamond shape", "shortname": ":small_orange_diamond:", "unicode": "1F538", "aliases": ""}, "cactus": {"keywords": "cactus nature plant vegetable cactus desert drought spike poke", "shortname": ":cactus:", "unicode": "1F335", "aliases": ""}, "spaghetti": {"keywords": "spaghetti food italian noodle spaghetti noodles tomato sauce italian", "shortname": ":spaghetti:", "unicode": "1F35D", "aliases": ""}, "white_small_square": {"keywords": "white small square shape", "shortname": ":white_small_square:", "unicode": "25AB", "aliases": ""}, "ribbon": {"keywords": "ribbon bowtie decoration girl pink ribbon lace wrap decorate", "shortname": ":ribbon:", "unicode": "1F380", "aliases": ""}, "cinema": {"keywords": "cinema blue-square film movie record cinema movie theater motion picture", "shortname": ":cinema:", "unicode": "1F3A6", "aliases": ""}, "mega": {"keywords": "cheering megaphone sound speaker volume", "shortname": ":mega:", "unicode": "1F4E3", "aliases": ""}, "abc": {"keywords": "input symbol for latin letters alphabet blue-square", "shortname": ":abc:", "unicode": "1F524", "aliases": ""}, "purple_heart": {"keywords": "purple heart affection like love valentines purple violet heart love sensitive understanding compassionate compassion duty honor royalty veteran sacrifice", "shortname": ":purple_heart:", "unicode": "1F49C", "aliases": ""}, "love_letter": {"keywords": "love letter affection email envelope like valentines love letter kiss heart", "shortname": ":love_letter:", "unicode": "1F48C", "aliases": ""}, "file_folder": {"keywords": "file folder documents", "shortname": ":file_folder:", "unicode": "1F4C1", "aliases": ""}, "clipboard": {"keywords": "clipboard documents stationery", "shortname": ":clipboard:", "unicode": "1F4CB", "aliases": ""}, "baby_bottle": {"keywords": "baby bottle container food baby bottle milk mother nipple newborn formula", "shortname": ":baby_bottle:", "unicode": "1F37C", "aliases": ""}, "new": {"keywords": "squared new blue-square", "shortname": ":new:", "unicode": "1F195", "aliases": ""}, "bird": {"keywords": "bird animal fly nature tweet", "shortname": ":bird:", "unicode": "1F426", "aliases": ""}, "1234": {"keywords": "input symbol for numbers blue-square numbers", "shortname": ":1234:", "unicode": "1F522", "aliases": ""}, "smiling_imp": {"keywords": "smiling face with horns devil horns horns devil impish trouble", "shortname": ":smiling_imp:", "unicode": "1F608", "aliases": ""}, "no_smoking": {"keywords": "no smoking symbol cigarette no smoking cigarette smoke cancer lungs inhale tar nicotine", "shortname": ":no_smoking:", "unicode": "1F6AD", "aliases": ""}, "herb": {"keywords": "herb grass lawn medicine plant vegetable weed herb spice plant cook cooking", "shortname": ":herb:", "unicode": "1F33F", "aliases": ""}, "pouting_cat": {"keywords": "pouting cat face animal cats pout annoyed miffed glower frown", "shortname": ":pouting_cat:", "unicode": "1F63E", "aliases": ""}, "u5408": {"keywords": "squared cjk unified ideograph-5408 chinese japanese join kanji", "shortname": ":u5408:", "unicode": "1F234", "aliases": ""}, "punch": {"keywords": "fisted hand sign fist hand", "shortname": ":punch:", "unicode": "1F44A", "aliases": ""}, "surfer": {"keywords": "surfer ocean sea sports surfer surf wave ocean ride swell", "shortname": ":surfer:", "unicode": "1F3C4", "aliases": ""}, "house_with_garden": {"keywords": "house with garden home nature plant", "shortname": ":house_with_garden:", "unicode": "1F3E1", "aliases": ""}, "baseball": {"keywords": "baseball MLB balls sports", "shortname": ":baseball:", "unicode": "26BE", "aliases": ""}, "busstop": {"keywords": "bus stop transportation bus stop city transport transportation", "shortname": ":busstop:", "unicode": "1F68F", "aliases": ""}, "new_moon": {"keywords": "new moon symbol nature moon new sky night cheese phase", "shortname": ":new_moon:", "unicode": "1F311", "aliases": ""}, "100": {"keywords": "hundred points symbol numbers perfect score 100 percent a plus perfect school quiz score test exam", "shortname": ":100:", "unicode": "1F4AF", "aliases": ""}, "thumbsup": {"keywords": "thumbs up sign cool hand like yes", "shortname": ":thumbsup:", "unicode": "1F44D", "aliases": ":+1:"}, "bust_in_silhouette": {"keywords": "bust in silhouette human man person user silhouette person user member account guest icon avatar profile me myself i", "shortname": ":bust_in_silhouette:", "unicode": "1F464", "aliases": ""}, "boy": {"keywords": "boy guy male man", "shortname": ":boy:", "unicode": "1F466", "aliases": ""}, "arrow_lower_left": {"keywords": "south west arrow arrow blue-square", "shortname": ":arrow_lower_left:", "unicode": "2199", "aliases": ""}, "no_entry": {"keywords": "no entry bad denied limit privacy security stop", "shortname": ":no_entry:", "unicode": "26D4", "aliases": ""}, "see_no_evil": {"keywords": "see-no-evil monkey animal monkey nature monkey see eyes vision sight mizaru", "shortname": ":see_no_evil:", "unicode": "1F648", "aliases": ""}, "metro": {"keywords": "metro blue-square mrt transportation tube underground metro subway underground train", "shortname": ":metro:", "unicode": "1F687", "aliases": ""}, "leaves": {"keywords": "leaf fluttering in wind grass lawn nature plant tree vegetable leaves leaf wind float fluttering", "shortname": ":leaves:", "unicode": "1F343", "aliases": ""}, "heavy_plus_sign": {"keywords": "heavy plus sign calculation math", "shortname": ":heavy_plus_sign:", "unicode": "2795", "aliases": ""}, "roller_coaster": {"keywords": "roller coaster carnival fun photo play playground roller coaster amusement park fair ride entertainment", "shortname": ":roller_coaster:", "unicode": "1F3A2", "aliases": ""}, "thought_balloon": {"keywords": "thought balloon bubble cloud speech thought balloon comic think day dream wonder", "shortname": ":thought_balloon:", "unicode": "1F4AD", "aliases": ""}, "bow": {"keywords": "person bowing deeply boy male man sorry bow respect curtsy bend", "shortname": ":bow:", "unicode": "1F647", "aliases": ""}, "dragon_face": {"keywords": "dragon face animal chinese green myth nature dragon head fire legendary myth", "shortname": ":dragon_face:", "unicode": "1F432", "aliases": ""}, "hamster": {"keywords": "hamster face animal nature", "shortname": ":hamster:", "unicode": "1F439", "aliases": ""}, "waxing_gibbous_moon": {"keywords": "waxing gibbous moon symbol nature", "shortname": ":waxing_gibbous_moon:", "unicode": "1F314", "aliases": ""}, "cookie": {"keywords": "cookie chocolate food oreo snack cookie dessert biscuit sweet chocolate", "shortname": ":cookie:", "unicode": "1F36A", "aliases": ""}, "massage": {"keywords": "face massage female girl woman", "shortname": ":massage:", "unicode": "1F486", "aliases": ""}, "children_crossing": {"keywords": "children crossing school children kids caution crossing street crosswalk slow", "shortname": ":children_crossing:", "unicode": "1F6B8", "aliases": ""}, "apple": {"keywords": "red apple fruit mac apple fruit electronics red doctor teacher school core", "shortname": ":apple:", "unicode": "1F34E", "aliases": ""}, "family": {"keywords": "family child dad father home mom mother parents family mother father child girl boy group unit", "shortname": ":family:", "unicode": "1F46A", "aliases": ""}, "arrow_up_down": {"keywords": "up down arrow blue-square", "shortname": ":arrow_up_down:", "unicode": "2195", "aliases": ""}, "mount_fuji": {"keywords": "mount fuji japan mountain nature photo", "shortname": ":mount_fuji:", "unicode": "1F5FB", "aliases": ""}, "keycap_ten": {"keywords": "keycap ten 10 blue-square numbers", "shortname": ":keycap_ten:", "unicode": "1F51F", "aliases": ""}, "outbox_tray": {"keywords": "outbox tray email inbox", "shortname": ":outbox_tray:", "unicode": "1F4E4", "aliases": ""}, "clock330": {"keywords": "clock face three-thirty clock time", "shortname": ":clock330:", "unicode": "1F55E", "aliases": ""}, "cloud": {"keywords": "cloud sky weather", "shortname": ":cloud:", "unicode": "2601", "aliases": ""}, "honey_pot": {"keywords": "honey pot bees sweet honey pot bees pooh bear", "shortname": ":honey_pot:", "unicode": "1F36F", "aliases": ""}, "red_car": {"keywords": "automobile transportation vehicle", "shortname": ":red_car:", "unicode": "1F697", "aliases": ""}, "sake": {"keywords": "sake bottle and cup beverage drink drunk wine sake wine rice ferment alcohol japanese drink", "shortname": ":sake:", "unicode": "1F376", "aliases": ""}, "confounded": {"keywords": "confounded face confused face sick unwell confound amaze perplex puzzle mystify", "shortname": ":confounded:", "unicode": "1F616", "aliases": ""}, "angry": {"keywords": "angry face angry livid mad vexed irritated annoyed face frustrated mad", "shortname": ":angry:", "unicode": "1F620", "aliases": ""}, "poodle": {"keywords": "poodle 101 animal dog nature poodle dog clip showy sophisticated vain", "shortname": ":poodle:", "unicode": "1F429", "aliases": ""}, "frog": {"keywords": "frog face animal nature", "shortname": ":frog:", "unicode": "1F438", "aliases": ""}, "musical_note": {"keywords": "musical note score musical music note music sound", "shortname": ":musical_note:", "unicode": "1F3B5", "aliases": ""}, "camera": {"keywords": "camera gadgets photo", "shortname": ":camera:", "unicode": "1F4F7", "aliases": ""}, "iphone": {"keywords": "mobile phone apple dial gadgets technology", "shortname": ":iphone:", "unicode": "1F4F1", "aliases": ""}, "sweat_smile": {"keywords": "smiling face with open mouth and cold sweat face happy hot smiling cold sweat perspiration", "shortname": ":sweat_smile:", "unicode": "1F605", "aliases": ""}, "aries": {"keywords": "aries aries ram astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":aries:", "unicode": "2648", "aliases": ""}, "ear_of_rice": {"keywords": "ear of rice nature plant ear rice food plant seed", "shortname": ":ear_of_rice:", "unicode": "1F33E", "aliases": ""}, "video_camera": {"keywords": "video camera film record", "shortname": ":video_camera:", "unicode": "1F4F9", "aliases": ""}, "mouse2": {"keywords": "mouse animal nature mouse mice rodent", "shortname": ":mouse2:", "unicode": "1F401", "aliases": ""}, "chestnut": {"keywords": "chestnut food squirrel chestnut roasted food tree", "shortname": ":chestnut:", "unicode": "1F330", "aliases": ""}, "pencil": {"keywords": "memo documents paper station write", "shortname": ":pencil:", "unicode": "1F4DD", "aliases": ""}, "guardsman": {"keywords": "guardsman british gb male man uk guardsman guard bearskin hat british queen ceremonial military", "shortname": ":guardsman:", "unicode": "1F482", "aliases": ""}, "door": {"keywords": "door entry exit house door doorway entrance enter exit entry", "shortname": ":door:", "unicode": "1F6AA", "aliases": ""}, "steam_locomotive": {"keywords": "steam locomotive train transportation vehicle locomotive steam train engine", "shortname": ":steam_locomotive:", "unicode": "1F682", "aliases": ""}, "tangerine": {"keywords": "tangerine food fruit nature tangerine citrus orange", "shortname": ":tangerine:", "unicode": "1F34A", "aliases": ""}, "bike": {"keywords": "bicycle bicycle exercise hipster sports bike pedal bicycle transportation", "shortname": ":bike:", "unicode": "1F6B2", "aliases": ""}, "melon": {"keywords": "melon food fruit nature melon cantaloupe honeydew", "shortname": ":melon:", "unicode": "1F348", "aliases": ""}, "train": {"keywords": "Tram Car tram rail", "shortname": ":train:", "unicode": "1F68B", "aliases": ""}, "beers": {"keywords": "clinking beer mugs beverage drink drunk party pub relax beer beers cheers mug toast celebrate pub bar jolly hops clink", "shortname": ":beers:", "unicode": "1F37B", "aliases": ""}, "water_buffalo": {"keywords": "water buffalo animal cow nature ox water buffalo asia bovine milk dairy", "shortname": ":water_buffalo:", "unicode": "1F403", "aliases": ""}, "baby": {"keywords": "baby boy child infant", "shortname": ":baby:", "unicode": "1F476", "aliases": ""}, "mailbox_closed": {"keywords": "closed mailbox with lowered flag communication email inbox", "shortname": ":mailbox_closed:", "unicode": "1F4EA", "aliases": ""}, "curly_loop": {"keywords": "curly loop scribble", "shortname": ":curly_loop:", "unicode": "27B0", "aliases": ""}, "sleeping": {"keywords": "sleeping face face sleepy tired sleep sleepy sleeping snore", "shortname": ":sleeping:", "unicode": "1F634", "aliases": ""}, "pouch": {"keywords": "pouch accessories bag pouch bag cosmetic packing grandma makeup", "shortname": ":pouch:", "unicode": "1F45D", "aliases": ""}, "jack_o_lantern": {"keywords": "jack-o-lantern halloween jack-o-lantern pumpkin halloween holiday carve autumn fall october saints costume spooky horror scary scared dead", "shortname": ":jack_o_lantern:", "unicode": "1F383", "aliases": ""}, "izakaya_lantern": {"keywords": "izakaya lantern light izakaya lantern stay drink alcohol bar sake restaurant", "shortname": ":izakaya_lantern:", "unicode": "1F3EE", "aliases": ""}, "palm_tree": {"keywords": "palm tree nature plant vegetable palm tree coconuts fronds warm tropical", "shortname": ":palm_tree:", "unicode": "1F334", "aliases": ""}, "cat": {"keywords": "cat face animal meow", "shortname": ":cat:", "unicode": "1F431", "aliases": ""}, "dizzy": {"keywords": "dizzy symbol shoot sparkle star dizzy drunk sick intoxicated squeans starburst star", "shortname": ":dizzy:", "unicode": "1F4AB", "aliases": ""}, "nine": {"keywords": "digit nine 9 blue-square numbers", "shortname": ":nine:", "unicode": "0039-20E3", "aliases": ""}, "chocolate_bar": {"keywords": "chocolate bar desert food snack chocolate bar candy coca hershey&#039;s", "shortname": ":chocolate_bar:", "unicode": "1F36B", "aliases": ""}, "v": {"keywords": "victory hand fingers hand ohyeah peace two victory", "shortname": ":v:", "unicode": "270C", "aliases": ""}, "running_shirt_with_sash": {"keywords": "running shirt with sash pageant play running run shirt cloths compete sports", "shortname": ":running_shirt_with_sash:", "unicode": "1F3BD", "aliases": ""}, "raised_hands": {"keywords": "person raising both hands in celebration gesture hooray winning woot yay banzai", "shortname": ":raised_hands:", "unicode": "1F64C", "aliases": ""}, "put_litter_in_its_place": {"keywords": "put litter in its place symbol blue-square litter waste trash garbage receptacle can", "shortname": ":put_litter_in_its_place:", "unicode": "1F6AE", "aliases": ""}, "game_die": {"keywords": "game die dice game die dice craps gamble play", "shortname": ":game_die:", "unicode": "1F3B2", "aliases": ""}, "abcd": {"keywords": "input symbol for latin small letters alphabet blue-square", "shortname": ":abcd:", "unicode": "1F521", "aliases": ""}, "heart": {"keywords": "heavy black heart like love red pink black heart love passion romance intense desire death evil cold valentines", "shortname": ":heart:", "unicode": "2764", "aliases": ""}, "chart_with_upwards_trend": {"keywords": "chart with upwards trend graph", "shortname": ":chart_with_upwards_trend:", "unicode": "1F4C8", "aliases": ""}, "green_heart": {"keywords": "green heart affection like love valentines green heart love nature rebirth reborn jealous clingy envious possessive", "shortname": ":green_heart:", "unicode": "1F49A", "aliases": ""}, "hamburger": {"keywords": "hamburger food meat hamburger burger meat cow beef", "shortname": ":hamburger:", "unicode": "1F354", "aliases": ""}, "pushpin": {"keywords": "pushpin stationery", "shortname": ":pushpin:", "unicode": "1F4CC", "aliases": ""}, "lock": {"keywords": "lock password security", "shortname": ":lock:", "unicode": "1F512", "aliases": ""}, "dolphin": {"keywords": "dolphin animal fins fish flipper nature ocean sea", "shortname": ":dolphin:", "unicode": "1F42C", "aliases": ""}, "confused": {"keywords": "confused face confused confuse daze perplex puzzle indifference skeptical undecided uneasy hesitant", "shortname": ":confused:", "unicode": "1F615", "aliases": ""}, "accept": {"keywords": "circled ideograph accept agree chinese good kanji ok yes", "shortname": ":accept:", "unicode": "1F251", "aliases": ""}, "night_with_stars": {"keywords": "night with stars night star cloudless evening planets space sky", "shortname": ":night_with_stars:", "unicode": "1F303", "aliases": ""}, "pig2": {"keywords": "pig animal nature pig piggy pork ham hog bacon oink slop livestock greed greedy", "shortname": ":pig2:", "unicode": "1F416", "aliases": ""}, "white_medium_small_square": {"keywords": "white medium small square shape", "shortname": ":white_medium_small_square:", "unicode": "25FD", "aliases": ""}, "sunglasses": {"keywords": "smiling face with sunglasses cool face smiling sunglasses sun glasses sunny cool smooth", "shortname": ":sunglasses:", "unicode": "1F60E", "aliases": ""}, "airplane": {"keywords": "airplane flight transportation vehicle airplane plane airport travel airlines fly jet jumbo boeing airbus", "shortname": ":airplane:", "unicode": "2708", "aliases": ""}, "dress": {"keywords": "dress clothes fashion", "shortname": ":dress:", "unicode": "1F457", "aliases": ""}, "kissing_closed_eyes": {"keywords": "kissing face with closed eyes affection face infatuation like love valentines kissing kiss passion puckered heart love smooch", "shortname": ":kissing_closed_eyes:", "unicode": "1F61A", "aliases": ""}, "earth_americas": {"keywords": "earth globe americas USA globe international world earth globe space planet north south america americas home", "shortname": ":earth_americas:", "unicode": "1F30E", "aliases": ""}, "scorpius": {"keywords": "scorpius scorpius scorpion scorpio astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":scorpius:", "unicode": "264F", "aliases": ""}, "sailboat": {"keywords": "sailboat ship transportation", "shortname": ":sailboat:", "unicode": "26F5", "aliases": ""}, "speedboat": {"keywords": "speedboat ship transportation vehicle motor speed ski power boat", "shortname": ":speedboat:", "unicode": "1F6A4", "aliases": ""}, "six": {"keywords": "digit six 6 blue-square numbers", "shortname": ":six:", "unicode": "0036-20E3", "aliases": ""}, "ledger": {"keywords": "ledger notes paper", "shortname": ":ledger:", "unicode": "1F4D2", "aliases": ""}, "id": {"keywords": "squared id purple-square words", "shortname": ":id:", "unicode": "1F194", "aliases": ""}, "tomato": {"keywords": "tomato food fruit nature vegetable tomato fruit sauce italian", "shortname": ":tomato:", "unicode": "1F345", "aliases": ""}, "leftwards_arrow_with_hook": {"keywords": "leftwards arrow with hook ", "shortname": ":leftwards_arrow_with_hook:", "unicode": "21A9", "aliases": ""}, "rewind": {"keywords": "black left-pointing double triangle blue-square play", "shortname": ":rewind:", "unicode": "23EA", "aliases": ""}, "wavy_dash": {"keywords": "wavy dash draw line", "shortname": ":wavy_dash:", "unicode": "3030", "aliases": ""}, "earth_asia": {"keywords": "earth globe asia-australia east globe international world earth globe space planet asia australia home", "shortname": ":earth_asia:", "unicode": "1F30F", "aliases": ""}, "goat": {"keywords": "goat animal nature goat sheep kid billy livestock", "shortname": ":goat:", "unicode": "1F410", "aliases": ""}, "pizza": {"keywords": "slice of pizza food party pizza pie new york italian italy slice peperoni", "shortname": ":pizza:", "unicode": "1F355", "aliases": ""}, "heavy_check_mark": {"keywords": "heavy check mark nike ok", "shortname": ":heavy_check_mark:", "unicode": "2714", "aliases": ""}, "bouquet": {"keywords": "bouquet flowers nature", "shortname": ":bouquet:", "unicode": "1F490", "aliases": ""}, "disappointed_relieved": {"keywords": "disappointed but relieved face face nervous phew sweat disappoint relief", "shortname": ":disappointed_relieved:", "unicode": "1F625", "aliases": ""}, "sunny": {"keywords": "black sun with rays brightness weather", "shortname": ":sunny:", "unicode": "2600", "aliases": ""}, "customs": {"keywords": "customs border passport customs travel foreign goods check authority government", "shortname": ":customs:", "unicode": "1F6C3", "aliases": ""}, "sun_with_face": {"keywords": "sun with face morning sun anthropomorphic face sky", "shortname": ":sun_with_face:", "unicode": "1F31E", "aliases": ""}, "birthday": {"keywords": "birthday cake cake party birthday birth cake dessert wish celebrate", "shortname": ":birthday:", "unicode": "1F382", "aliases": ""}, "fast_forward": {"keywords": "black right-pointing double triangle blue-square", "shortname": ":fast_forward:", "unicode": "23E9", "aliases": ""}, "heartpulse": {"keywords": "growing heart affection like love valentines", "shortname": ":heartpulse:", "unicode": "1F497", "aliases": ""}, "mag": {"keywords": "left-pointing magnifying glass search zoom detective investigator detail details", "shortname": ":mag:", "unicode": "1F50D", "aliases": ""}, "date": {"keywords": "calendar calendar schedule", "shortname": ":date:", "unicode": "1F4C5", "aliases": ""}, "sparkles": {"keywords": "sparkles cool shine shiny stars", "shortname": ":sparkles:", "unicode": "2728", "aliases": ""}, "man": {"keywords": "man classy dad father guy mustashe", "shortname": ":man:", "unicode": "1F468", "aliases": ""}, "a": {"keywords": "negative squared latin capital letter a alphabet letter red-square", "shortname": ":a:", "unicode": "1F170", "aliases": ""}, "headphones": {"keywords": "headphone gadgets music score headphone sound music ears beats buds audio listen", "shortname": ":headphones:", "unicode": "1F3A7", "aliases": ""}, "curry": {"keywords": "curry and rice food hot indian spicy curry spice flavor food meal", "shortname": ":curry:", "unicode": "1F35B", "aliases": ""}, "wheelchair": {"keywords": "wheelchair symbol blue-square disabled", "shortname": ":wheelchair:", "unicode": "267F", "aliases": ""}, "dragon": {"keywords": "dragon animal chinese green myth nature dragon fire legendary myth", "shortname": ":dragon:", "unicode": "1F409", "aliases": ""}, "tulip": {"keywords": "tulip flowers nature plant tulip flower bulb spring easter", "shortname": ":tulip:", "unicode": "1F337", "aliases": ""}, "truck": {"keywords": "delivery truck cars transportation truck delivery package", "shortname": ":truck:", "unicode": "1F69A", "aliases": ""}, "wrench": {"keywords": "wrench diy ikea tools", "shortname": ":wrench:", "unicode": "1F527", "aliases": ""}, "ambulance": {"keywords": "ambulance 911 health ambulance emergency medical help assistance", "shortname": ":ambulance:", "unicode": "1F691", "aliases": ""}, "sa": {"keywords": "squared katakana sa blue-square japanese", "shortname": ":sa:", "unicode": "1F202", "aliases": ""}, "point_up_2": {"keywords": "white up pointing backhand index direction fingers hand", "shortname": ":point_up_2:", "unicode": "1F446", "aliases": ""}, "egg": {"keywords": "cooking breakfast food egg fry pan flat cook frying cooking utensil", "shortname": ":egg:", "unicode": "1F373", "aliases": ""}, "small_red_triangle": {"keywords": "up-pointing red triangle shape", "shortname": ":small_red_triangle:", "unicode": "1F53A", "aliases": ""}, "office": {"keywords": "office building building bureau work", "shortname": ":office:", "unicode": "1F3E2", "aliases": ""}, "mute": {"keywords": "speaker with cancellation stroke sound volume", "shortname": ":mute:", "unicode": "1F507", "aliases": ""}, "clapper": {"keywords": "clapper board film movie record clapper board clapboard movie film take", "shortname": ":clapper:", "unicode": "1F3AC", "aliases": ""}, "haircut": {"keywords": "haircut female girl woman", "shortname": ":haircut:", "unicode": "1F487", "aliases": ""}, "soon": {"keywords": "soon with rightwards arrow above arrow words", "shortname": ":soon:", "unicode": "1F51C", "aliases": ""}, "symbols": {"keywords": "input symbol for symbols blue-square", "shortname": ":symbols:", "unicode": "1F523", "aliases": ""}, "sob": {"keywords": "loudly crying face cry face sad tears upset cry sob tears sad melancholy morn somber hurt", "shortname": ":sob:", "unicode": "1F62D", "aliases": ""}, "wolf": {"keywords": "wolf face animal nature", "shortname": ":wolf:", "unicode": "1F43A", "aliases": ""}, "japan": {"keywords": "silhouette of japan nation", "shortname": ":japan:", "unicode": "1F5FE", "aliases": ""}, "post_office": {"keywords": "japanese post office building communication email", "shortname": ":post_office:", "unicode": "1F3E3", "aliases": ""}, "last_quarter_moon_with_face": {"keywords": "last quarter moon with face nature moon last quarter anthropomorphic face sky night cheese phase", "shortname": ":last_quarter_moon_with_face:", "unicode": "1F31C", "aliases": ""}, "pray": {"keywords": "person with folded hands highfive hope namaste please wish pray high five hands sorrow regret sorry", "shortname": ":pray:", "unicode": "1F64F", "aliases": ""}, "flushed": {"keywords": "flushed face blush face flattered flush blush red pink cheeks shy", "shortname": ":flushed:", "unicode": "1F633", "aliases": ""}, "dizzy_face": {"keywords": "dizzy face dizzy drunk inebriated face spent unconscious xox", "shortname": ":dizzy_face:", "unicode": "1F635", "aliases": ""}, "rugby_football": {"keywords": "rugby football sports rugby football ball sport team england", "shortname": ":rugby_football:", "unicode": "1F3C9", "aliases": ""}, "currency_exchange": {"keywords": "currency exchange dollar money travel", "shortname": ":currency_exchange:", "unicode": "1F4B1", "aliases": ""}, "paperclip": {"keywords": "paperclip documents stationery", "shortname": ":paperclip:", "unicode": "1F4CE", "aliases": ""}, "moneybag": {"keywords": "money bag coins dollar payment", "shortname": ":moneybag:", "unicode": "1F4B0", "aliases": ""}, "mailbox_with_no_mail": {"keywords": "open mailbox with lowered flag email inbox", "shortname": ":mailbox_with_no_mail:", "unicode": "1F4ED", "aliases": ""}, "soccer": {"keywords": "soccer ball balls fifa football sports european football", "shortname": ":soccer:", "unicode": "26BD", "aliases": ""}, "dolls": {"keywords": "japanese dolls japanese kimono toy dolls japan japanese day girls emperor empress pray blessing imperial family royal", "shortname": ":dolls:", "unicode": "1F38E", "aliases": ""}, "poop": {"keywords": "pile of poo poop shit shitface turd poo", "shortname": ":poop:", "unicode": "1F4A9", "aliases": ":shit: :hankey: :poo:"}, "coffee": {"keywords": "hot beverage beverage cafe drink espresso", "shortname": ":coffee:", "unicode": "2615", "aliases": ""}, "full_moon_with_face": {"keywords": "full moon with face night moon full anthropomorphic face sky night cheese phase spooky werewolves monsters", "shortname": ":full_moon_with_face:", "unicode": "1F31D", "aliases": ""}, "neutral_face": {"keywords": "neutral face face indifference neutral objective impartial blank", "shortname": ":neutral_face:", "unicode": "1F610", "aliases": ""}, "elephant": {"keywords": "elephant animal nature nose thailand", "shortname": ":elephant:", "unicode": "1F418", "aliases": ""}, "open_mouth": {"keywords": "face with open mouth face impressed mouth open jaw gapping surprise wow", "shortname": ":open_mouth:", "unicode": "1F62E", "aliases": ""}, "bar_chart": {"keywords": "bar chart graph presentation stats", "shortname": ":bar_chart:", "unicode": "1F4CA", "aliases": ""}, "european_castle": {"keywords": "european castle building history royalty castle european residence royalty disneyland disney fort fortified moat tower princess prince lord king queen fortress nobel stronghold", "shortname": ":european_castle:", "unicode": "1F3F0", "aliases": ""}, "signal_strength": {"keywords": "antenna with bars blue-square", "shortname": ":signal_strength:", "unicode": "1F4F6", "aliases": ""}, "monkey_face": {"keywords": "monkey face animal nature", "shortname": ":monkey_face:", "unicode": "1F435", "aliases": ""}, "snake": {"keywords": "snake animal evil", "shortname": ":snake:", "unicode": "1F40D", "aliases": ""}, "kiss": {"keywords": "kiss mark affection face like lips love valentines", "shortname": ":kiss:", "unicode": "1F48B", "aliases": ""}, "blue_car": {"keywords": "recreational vehicle car suv car wagon automobile", "shortname": ":blue_car:", "unicode": "1F699", "aliases": ""}, "confetti_ball": {"keywords": "confetti ball festival party party congratulations confetti ball celebrate win birthday new years wedding", "shortname": ":confetti_ball:", "unicode": "1F38A", "aliases": ""}, "bath": {"keywords": "bath clean shower bath tub basin wash bubble soak bathroom soap water clean shampoo lather water", "shortname": ":bath:", "unicode": "1F6C0", "aliases": ""}, "bank": {"keywords": "bank building", "shortname": ":bank:", "unicode": "1F3E6", "aliases": ""}, "bread": {"keywords": "bread breakfast food toast wheat bread loaf yeast", "shortname": ":bread:", "unicode": "1F35E", "aliases": ""}, "rice_ball": {"keywords": "rice ball food japanese rice ball white nori seaweed japanese", "shortname": ":rice_ball:", "unicode": "1F359", "aliases": ""}, "oncoming_police_car": {"keywords": "oncoming police car enforcement law vehicle police car emergency ticket citation crime help officer", "shortname": ":oncoming_police_car:", "unicode": "1F694", "aliases": ""}, "tram": {"keywords": "tram transportation vehicle tram transportation transport", "shortname": ":tram:", "unicode": "1F68A", "aliases": ""}, "point_left": {"keywords": "white left pointing backhand index direction fingers hand", "shortname": ":point_left:", "unicode": "1F448", "aliases": ""}, "tokyo_tower": {"keywords": "tokyo tower japan photo", "shortname": ":tokyo_tower:", "unicode": "1F5FC", "aliases": ""}, "sos": {"keywords": "squared sos emergency help red-square words", "shortname": ":sos:", "unicode": "1F198", "aliases": ""}, "weary": {"keywords": "weary face face frustrated sad sleepy tired weary sleepy tired tiredness study finals school exhausted", "shortname": ":weary:", "unicode": "1F629", "aliases": ""}, "clock930": {"keywords": "clock face nine-thirty clock time", "shortname": ":clock930:", "unicode": "1F564", "aliases": ""}, "fishing_pole_and_fish": {"keywords": "fishing pole and fish food hobby fish fishing pole", "shortname": ":fishing_pole_and_fish:", "unicode": "1F3A3", "aliases": ""}, "repeat_one": {"keywords": "clockwise rightwards and leftwards open circle arr blue-square loop", "shortname": ":repeat_one:", "unicode": "1F502", "aliases": ""}, "bowling": {"keywords": "bowling fun play sports bowl bowling ball pin strike spare game", "shortname": ":bowling:", "unicode": "1F3B3", "aliases": ""}, "thumbsdown": {"keywords": "thumbs down sign hand no", "shortname": ":thumbsdown:", "unicode": "1F44E", "aliases": ":-1:"}, "older_woman": {"keywords": "older woman female girl women grandma grandmother", "shortname": ":older_woman:", "unicode": "1F475", "aliases": ":grandma:"}, "smiley_cat": {"keywords": "smiling cat face with open mouth animal cats happy smile smiley cat happy", "shortname": ":smiley_cat:", "unicode": "1F63A", "aliases": ""}, "information_source": {"keywords": "information source alphabet blue-square letter", "shortname": ":information_source:", "unicode": "2139", "aliases": ""}, "telescope": {"keywords": "telescope space stars", "shortname": ":telescope:", "unicode": "1F52D", "aliases": ""}, "beginner": {"keywords": "japanese symbol for beginner badge shield", "shortname": ":beginner:", "unicode": "1F530", "aliases": ""}, "postal_horn": {"keywords": "postal horn instrument music", "shortname": ":postal_horn:", "unicode": "1F4EF", "aliases": ""}, "house": {"keywords": "house building building home house home residence dwelling mansion bungalow ranch craftsman", "shortname": ":house:", "unicode": "1F3E0", "aliases": ""}, "fish": {"keywords": "fish animal food nature", "shortname": ":fish:", "unicode": "1F41F", "aliases": ""}, "construction_worker": {"keywords": "construction worker human male man wip", "shortname": ":construction_worker:", "unicode": "1F477", "aliases": ""}, "u7121": {"keywords": "squared cjk unified ideograph-7121 chinese japanese kanji no nothing orange-square", "shortname": ":u7121:", "unicode": "1F21A", "aliases": ""}, "mobile_phone_off": {"keywords": "mobile phone off mute", "shortname": ":mobile_phone_off:", "unicode": "1F4F4", "aliases": ""}, "unlock": {"keywords": "open lock privacy security", "shortname": ":unlock:", "unicode": "1F513", "aliases": ""}, "books": {"keywords": "books library literature", "shortname": ":books:", "unicode": "1F4DA", "aliases": ""}, "fist": {"keywords": "raised fist fingers grasp hand", "shortname": ":fist:", "unicode": "270A", "aliases": ""}, "beetle": {"keywords": "lady beetle insect nature lady bug ladybug ladybird beetle cow lady cow insect endearment", "shortname": ":beetle:", "unicode": "1F41E", "aliases": ""}, "lock_with_ink_pen": {"keywords": "lock with ink pen secret security", "shortname": ":lock_with_ink_pen:", "unicode": "1F50F", "aliases": ""}, "girl": {"keywords": "girl female woman", "shortname": ":girl:", "unicode": "1F467", "aliases": ""}, "calling": {"keywords": "mobile phone with rightwards arrow at left incoming iphone", "shortname": ":calling:", "unicode": "1F4F2", "aliases": ""}, "sunrise": {"keywords": "sunrise morning photo vacation view sunrise sun morning color sky", "shortname": ":sunrise:", "unicode": "1F305", "aliases": ""}, "briefcase": {"keywords": "briefcase business documents work", "shortname": ":briefcase:", "unicode": "1F4BC", "aliases": ""}, "exclamation": {"keywords": "heavy exclamation mark symbol surprise", "shortname": ":exclamation:", "unicode": "2757", "aliases": ""}, "video_game": {"keywords": "video game PS4 console controller play video game console controller nintendo xbox playstation", "shortname": ":video_game:", "unicode": "1F3AE", "aliases": ""}, "lipstick": {"keywords": "lipstick fashion female girl", "shortname": ":lipstick:", "unicode": "1F484", "aliases": ""}, "smirk": {"keywords": "smirking face mean prank smile smug smirking smirk smug smile half-smile conceited", "shortname": ":smirk:", "unicode": "1F60F", "aliases": ""}, "fish_cake": {"keywords": "fish cake with swirl design food fish cake kamboko swirl ramen noodles naruto", "shortname": ":fish_cake:", "unicode": "1F365", "aliases": ""}, "factory": {"keywords": "factory building", "shortname": ":factory:", "unicode": "1F3ED", "aliases": ""}, "baggage_claim": {"keywords": "baggage claim airport blue-square transport bag baggage luggage travel", "shortname": ":baggage_claim:", "unicode": "1F6C4", "aliases": ""}, "cherry_blossom": {"keywords": "cherry blossom flower nature plant cherry blossom tree flower", "shortname": ":cherry_blossom:", "unicode": "1F338", "aliases": ""}, "sparkle": {"keywords": "sparkle green-square stars", "shortname": ":sparkle:", "unicode": "2747", "aliases": ""}, "fountain": {"keywords": "fountain photo", "shortname": ":fountain:", "unicode": "26F2", "aliases": ""}, "zap": {"keywords": "high voltage sign lightning bolt thunder weather", "shortname": ":zap:", "unicode": "26A1", "aliases": ""}, "speak_no_evil": {"keywords": "speak-no-evil monkey animal monkey monkey mouth talk say words verbal verbalize oral iwazaru", "shortname": ":speak_no_evil:", "unicode": "1F64A", "aliases": ""}, "cyclone": {"keywords": "cyclone blue cloud swirl weather cyclone hurricane typhoon storm ocean", "shortname": ":cyclone:", "unicode": "1F300", "aliases": ""}, "blue_book": {"keywords": "blue book knowledge library read", "shortname": ":blue_book:", "unicode": "1F4D8", "aliases": ""}, "dancers": {"keywords": "woman with bunny ears bunny female girls women dancing dancers showgirl playboy costume bunny cancan", "shortname": ":dancers:", "unicode": "1F46F", "aliases": ""}, "flower_playing_cards": {"keywords": "flower playing cards playing card flower game august moon special", "shortname": ":flower_playing_cards:", "unicode": "1F3B4", "aliases": ""}, "umbrella": {"keywords": "umbrella with rain drops rain weather", "shortname": ":umbrella:", "unicode": "2614", "aliases": ""}, "octopus": {"keywords": "octopus animal creature ocean sea", "shortname": ":octopus:", "unicode": "1F419", "aliases": ""}, "hatching_chick": {"keywords": "hatching chick born chicken egg chick egg baby bird chicken young woman cute", "shortname": ":hatching_chick:", "unicode": "1F423", "aliases": ""}, "free": {"keywords": "squared free blue-square words", "shortname": ":free:", "unicode": "1F193", "aliases": ""}, "traffic_light": {"keywords": "horizontal traffic light traffic transportation traffic light stop go yield horizontal", "shortname": ":traffic_light:", "unicode": "1F6A5", "aliases": ""}, "grimacing": {"keywords": "grimacing face face grimace teeth grimace disapprove pain", "shortname": ":grimacing:", "unicode": "1F62C", "aliases": ""}, "bullettrain_side": {"keywords": "high-speed train transportation vehicle train bullet rail", "shortname": ":bullettrain_side:", "unicode": "1F684", "aliases": ""}, "poultry_leg": {"keywords": "poultry leg food meat poultry leg chicken fried", "shortname": ":poultry_leg:", "unicode": "1F357", "aliases": ""}, "grapes": {"keywords": "grapes food fruit grapes wine vinegar fruit cluster vine", "shortname": ":grapes:", "unicode": "1F347", "aliases": ""}, "smirk_cat": {"keywords": "cat face with wry smile animal cats smirk smirking wry confident confidence", "shortname": ":smirk_cat:", "unicode": "1F63C", "aliases": ""}, "lollipop": {"keywords": "lollipop candy food snack sweet lollipop stick lick sweet sugar candy", "shortname": ":lollipop:", "unicode": "1F36D", "aliases": ""}, "high_heel": {"keywords": "high-heeled shoe fashion female shoes", "shortname": ":high_heel:", "unicode": "1F460", "aliases": ""}, "black_medium_small_square": {"keywords": "black medium small square ", "shortname": ":black_medium_small_square:", "unicode": "25FE", "aliases": ""}, "green_book": {"keywords": "green book knowledge library read", "shortname": ":green_book:", "unicode": "1F4D7", "aliases": ""}, "atm": {"keywords": "automated teller machine atm cash withdrawal money deposit financial bank adam payday bank blue-square cash money payment", "shortname": ":atm:", "unicode": "1F3E7", "aliases": ""}, "fork_and_knife": {"keywords": "fork and knife cutlery kitchen fork knife restaurant meal food eat", "shortname": ":fork_and_knife:", "unicode": "1F374", "aliases": ""}, "passport_control": {"keywords": "passport control blue-square custom passport official travel control foreign identification", "shortname": ":passport_control:", "unicode": "1F6C2", "aliases": ""}, "bookmark": {"keywords": "bookmark favorite", "shortname": ":bookmark:", "unicode": "1F516", "aliases": ""}, "small_blue_diamond": {"keywords": "small blue diamond shape", "shortname": ":small_blue_diamond:", "unicode": "1F539", "aliases": ""}, "yum": {"keywords": "face savouring delicious food face happy joy smile tongue delicious savoring food eat yummy yum tasty savory", "shortname": ":yum:", "unicode": "1F60B", "aliases": ""}, "closed_lock_with_key": {"keywords": "closed lock with key privacy security", "shortname": ":closed_lock_with_key:", "unicode": "1F510", "aliases": ""}, "heartbeat": {"keywords": "beating heart affection like love valentines", "shortname": ":heartbeat:", "unicode": "1F493", "aliases": ""}, "blush": {"keywords": "smiling face with smiling eyes crush embarrassed face flushed happy shy smile smiling smile smiley", "shortname": ":blush:", "unicode": "1F60A", "aliases": ""}, "warning": {"keywords": "warning sign exclamation wip", "shortname": ":warning:", "unicode": "26A0", "aliases": ""}, "ophiuchus": {"keywords": "ophiuchus ophiuchus serpent snake astrology greek constellation stars zodiac purple-square sign horoscope", "shortname": ":ophiuchus:", "unicode": "26CE", "aliases": ""}, "revolving_hearts": {"keywords": "revolving hearts affection like love valentines heart hearts revolving moving circle multiple lovers", "shortname": ":revolving_hearts:", "unicode": "1F49E", "aliases": ""}, "fire_engine": {"keywords": "fire engine cars transportation vehicle fire fighter engine truck emergency medical", "shortname": ":fire_engine:", "unicode": "1F692", "aliases": ""}, "one": {"keywords": "digit one 1 blue-square numbers", "shortname": ":one:", "unicode": "0031-20E3", "aliases": ""}, "feet": {"keywords": "paw prints animal cat dog footprints paw pet tracking paw prints mark imprints footsteps animal lion bear dog cat raccoon critter feet pawsteps", "shortname": ":feet:", "unicode": "1F43E", "aliases": ""}, "sparkler": {"keywords": "firework sparkler night shine stars", "shortname": ":sparkler:", "unicode": "1F387", "aliases": ""}, "cow2": {"keywords": "cow animal beef nature ox cow milk dairy beef bessie moo", "shortname": ":cow2:", "unicode": "1F404", "aliases": ""}, "scissors": {"keywords": "black scissors cut stationery", "shortname": ":scissors:", "unicode": "2702", "aliases": ""}, "ring": {"keywords": "ring marriage propose valentines wedding", "shortname": ":ring:", "unicode": "1F48D", "aliases": ""}, "whale": {"keywords": "spouting whale animal nature ocean sea", "shortname": ":whale:", "unicode": "1F433", "aliases": ""}, "point_right": {"keywords": "white right pointing backhand index direction fingers hand", "shortname": ":point_right:", "unicode": "1F449", "aliases": ""}, "sheep": {"keywords": "sheep animal nature sheep wool flock follower ewe female lamb", "shortname": ":sheep:", "unicode": "1F411", "aliases": ""}, "horse": {"keywords": "horse face animal brown", "shortname": ":horse:", "unicode": "1F434", "aliases": ""}, "basketball": {"keywords": "basketball and hoop NBA balls sports basketball bball dribble hoop net swish rip city", "shortname": ":basketball:", "unicode": "1F3C0", "aliases": ""}, "monkey": {"keywords": "monkey animal nature monkey primate banana silly", "shortname": ":monkey:", "unicode": "1F412", "aliases": ""}, "blossom": {"keywords": "blossom flowers nature yellow blossom daisy flower", "shortname": ":blossom:", "unicode": "1F33C", "aliases": ""}, "gift_heart": {"keywords": "heart with ribbon love valentines", "shortname": ":gift_heart:", "unicode": "1F49D", "aliases": ""}, "top": {"keywords": "top with upwards arrow above blue-square words", "shortname": ":top:", "unicode": "1F51D", "aliases": ""}, "arrow_upper_right": {"keywords": "north east arrow blue-square", "shortname": ":arrow_upper_right:", "unicode": "2197", "aliases": ""}, "clock630": {"keywords": "clock face six-thirty clock time", "shortname": ":clock630:", "unicode": "1F561", "aliases": ""}, "station": {"keywords": "station public transportation vehicle station train subway", "shortname": ":station:", "unicode": "1F689", "aliases": ""}, "clock730": {"keywords": "clock face seven-thirty clock time", "shortname": ":clock730:", "unicode": "1F562", "aliases": ""}, "banana": {"keywords": "banana food fruit banana peel bunch", "shortname": ":banana:", "unicode": "1F34C", "aliases": ""}, "crescent_moon": {"keywords": "crescent moon night moon crescent waxing sky night cheese phase", "shortname": ":crescent_moon:", "unicode": "1F319", "aliases": ""}, "nail_care": {"keywords": "nail polish beauty manicure", "shortname": ":nail_care:", "unicode": "1F485", "aliases": ""}, "eyes": {"keywords": "eyes look peek stalk watch", "shortname": ":eyes:", "unicode": "1F440", "aliases": ""}, "shell": {"keywords": "spiral shell beach nature sea shell spiral beach sand crab nautilus", "shortname": ":shell:", "unicode": "1F41A", "aliases": ""}, "relieved": {"keywords": "relieved face face happiness massage phew relaxed relieved satisfied phew relief", "shortname": ":relieved:", "unicode": "1F60C", "aliases": ""}, "hotel": {"keywords": "hotel accomodation building checkin whotel hotel motel holiday inn hospital", "shortname": ":hotel:", "unicode": "1F3E8", "aliases": ""}, "small_red_triangle_down": {"keywords": "down-pointing red triangle shape", "shortname": ":small_red_triangle_down:", "unicode": "1F53B", "aliases": ""}, "broken_heart": {"keywords": "broken heart sad sorry", "shortname": ":broken_heart:", "unicode": "1F494", "aliases": ""}, "nut_and_bolt": {"keywords": "nut and bolt handy tools", "shortname": ":nut_and_bolt:", "unicode": "1F529", "aliases": ""}, "aerial_tramway": {"keywords": "aerial tramway transportation vehicle aerial tram tramway cable transport", "shortname": ":aerial_tramway:", "unicode": "1F6A1", "aliases": ""}, "sweat_drops": {"keywords": "splashing sweat symbol water", "shortname": ":sweat_drops:", "unicode": "1F4A6", "aliases": ""}, "panda_face": {"keywords": "panda face animal nature panda bear face cub cute endearment friendship love bamboo china black white", "shortname": ":panda_face:", "unicode": "1F43C", "aliases": ""}, "minibus": {"keywords": "minibus car transportation vehicle bus city transport transportation", "shortname": ":minibus:", "unicode": "1F690", "aliases": ""}, "b": {"keywords": "negative squared latin capital letter b alphabet letter red-square", "shortname": ":b:", "unicode": "1F171", "aliases": ""}, "unamused": {"keywords": "unamused face bored face indifference serious straight face unamused not amused depressed unhappy disapprove lame", "shortname": ":unamused:", "unicode": "1F612", "aliases": ""}, "fuelpump": {"keywords": "fuel pump gas station petroleum", "shortname": ":fuelpump:", "unicode": "26FD", "aliases": ""}, "bee": {"keywords": "honeybee animal insect bee queen buzz flower pollen sting honey hive bumble pollination", "shortname": ":bee:", "unicode": "1F41D", "aliases": ""}, "scream_cat": {"keywords": "weary cat face animal cats munch weary sleepy tired tiredness study finals school exhausted scream painting artist", "shortname": ":scream_cat:", "unicode": "1F640", "aliases": ""}, "musical_score": {"keywords": "musical score clef treble music musical score clef g-clef stave staff", "shortname": ":musical_score:", "unicode": "1F3BC", "aliases": ""}, "hourglass_flowing_sand": {"keywords": "hourglass with flowing sand countdown oldschool time", "shortname": ":hourglass_flowing_sand:", "unicode": "23F3", "aliases": ""}, "round_pushpin": {"keywords": "round pushpin stationery", "shortname": ":round_pushpin:", "unicode": "1F4CD", "aliases": ""}, "tophat": {"keywords": "top hat classy gentleman magic top hat cap beaver high tall stove pipe chimney topper london period piece magic magician", "shortname": ":tophat:", "unicode": "1F3A9", "aliases": ""}, "six_pointed_star": {"keywords": "six pointed star with middle dot purple-square", "shortname": ":six_pointed_star:", "unicode": "1F52F", "aliases": ""}, "dog2": {"keywords": "dog animal doge friend nature pet dog puppy pet friend woof bark fido", "shortname": ":dog2:", "unicode": "1F415", "aliases": ""}, "tractor": {"keywords": "tractor agriculture car farming vehicle tractor farm construction machine digger", "shortname": ":tractor:", "unicode": "1F69C", "aliases": ""}, "u6709": {"keywords": "squared cjk unified ideograph-6709 chinese have kanji orange-square", "shortname": ":u6709:", "unicode": "1F236", "aliases": ""}, "u6708": {"keywords": "squared cjk unified ideograph-6708 chinese japanese kanji moon orange-square", "shortname": ":u6708:", "unicode": "1F237", "aliases": ""}, "crying_cat_face": {"keywords": "crying cat face animal cats sad tears weep cry cat sob tears sad melancholy morn somber hurt", "shortname": ":crying_cat_face:", "unicode": "1F63F", "aliases": ""}, "loud_sound": {"keywords": "speaker with three sound waves ", "shortname": ":loud_sound:", "unicode": "1F50A", "aliases": ""}, "arrow_backward": {"keywords": "black left-pointing triangle arrow blue-square", "shortname": ":arrow_backward:", "unicode": "25C0", "aliases": ""}, "runner": {"keywords": "runner exercise man walking run runner jog exercise sprint race dash", "shortname": ":runner:", "unicode": "1F3C3", "aliases": ""}, "ram": {"keywords": "ram animal nature sheep ram sheep male horn horns", "shortname": ":ram:", "unicode": "1F40F", "aliases": ""}, "notebook": {"keywords": "notebook notes paper record stationery", "shortname": ":notebook:", "unicode": "1F4D3", "aliases": ""}, "dash": {"keywords": "dash symbol air fast shoo wind", "shortname": ":dash:", "unicode": "1F4A8", "aliases": ""}, "rat": {"keywords": "rat animal mouse rat rodent crooked snitch", "shortname": ":rat:", "unicode": "1F400", "aliases": ""}, "information_desk_person": {"keywords": "information desk person female girl human woman information help question answer sassy unimpressed attitude snarky", "shortname": ":information_desk_person:", "unicode": "1F481", "aliases": ""}, "anger": {"keywords": "anger symbol anger angry mad", "shortname": ":anger:", "unicode": "1F4A2", "aliases": ""}, "mailbox_with_mail": {"keywords": "open mailbox with raised flag communication email inbox", "shortname": ":mailbox_with_mail:", "unicode": "1F4EC", "aliases": ""}, "milky_way": {"keywords": "milky way photo space milky galaxy star stars planets space sky", "shortname": ":milky_way:", "unicode": "1F30C", "aliases": ""}, "pencil2": {"keywords": "pencil paper stationery write", "shortname": ":pencil2:", "unicode": "270F", "aliases": ""}, "microphone": {"keywords": "microphone PA music sound microphone mic audio sound voice karaoke", "shortname": ":microphone:", "unicode": "1F3A4", "aliases": ""}, "koala": {"keywords": "koala animal nature", "shortname": ":koala:", "unicode": "1F428", "aliases": ""}, "necktie": {"keywords": "necktie cloth fashion formal shirt suitup", "shortname": ":necktie:", "unicode": "1F454", "aliases": ""}, "wink": {"keywords": "winking face face happy mischievous secret wink winking friendly joke", "shortname": ":wink:", "unicode": "1F609", "aliases": ""}, "monorail": {"keywords": "monorail transportation vehicle train mono rail transport", "shortname": ":monorail:", "unicode": "1F69D", "aliases": ""}, "kissing_cat": {"keywords": "kissing cat face with closed eyes animal cats passion kiss puckered heart love", "shortname": ":kissing_cat:", "unicode": "1F63D", "aliases": ""}, "u55b6": {"keywords": "squared cjk unified ideograph-55b6 japanese opening hours", "shortname": ":u55b6:", "unicode": "1F23A", "aliases": ""}, "globe_with_meridians": {"keywords": "globe with meridians earth international world earth meridian globe space planet home", "shortname": ":globe_with_meridians:", "unicode": "1F310", "aliases": ""}, "snowflake": {"keywords": "snowflake christmas cold season weather winter xmas snowflake snow frozen droplet ice crystal cold chilly winter unique special below zero elsa", "shortname": ":snowflake:", "unicode": "2744", "aliases": ""}, "hibiscus": {"keywords": "hibiscus flowers plant vegetable hibiscus flower warm", "shortname": ":hibiscus:", "unicode": "1F33A", "aliases": ""}, "crystal_ball": {"keywords": "crystal ball disco party", "shortname": ":crystal_ball:", "unicode": "1F52E", "aliases": ""}, "koko": {"keywords": "squared katakana koko blue-square destination here japanese katakana", "shortname": ":koko:", "unicode": "1F201", "aliases": ""}, "chart": {"keywords": "chart with upwards trend and yen sign graph green-square", "shortname": ":chart:", "unicode": "1F4B9", "aliases": ""}, "credit_card": {"keywords": "credit card bill dollar money pay payment credit card loan purchase shopping mastercard visa american express wallet signature", "shortname": ":credit_card:", "unicode": "1F4B3", "aliases": ""}, "checkered_flag": {"keywords": "chequered flag contest finishline gokart rase checkered chequred race flag finish complete end", "shortname": ":checkered_flag:", "unicode": "1F3C1", "aliases": ""}, "eight": {"keywords": "digit eight 8 blue-square numbers", "shortname": ":eight:", "unicode": "0038-20E3", "aliases": ""}, "handbag": {"keywords": "handbag accessories accessory bag fashion", "shortname": ":handbag:", "unicode": "1F45C", "aliases": ""}, "pensive": {"keywords": "pensive face face okay sad pensive thoughtful think reflective wistful meditate serious", "shortname": ":pensive:", "unicode": "1F614", "aliases": ""}, "pager": {"keywords": "pager bbcall oldschool", "shortname": ":pager:", "unicode": "1F4DF", "aliases": ""}, "arrows_clockwise": {"keywords": "clockwise downwards and upwards open circle arrows sync", "shortname": ":arrows_clockwise:", "unicode": "1F503", "aliases": ""}, "ballot_box_with_check": {"keywords": "ballot box with check agree ok", "shortname": ":ballot_box_with_check:", "unicode": "2611", "aliases": ""}, "fried_shrimp": {"keywords": "fried shrimp animal food shrimp fried seafood small fish", "shortname": ":fried_shrimp:", "unicode": "1F364", "aliases": ""}, "mans_shoe": {"keywords": "mans shoe fashion male", "shortname": ":mans_shoe:", "unicode": "1F45E", "aliases": ""}, "raised_hand": {"keywords": "raised hand female girl woman", "shortname": ":raised_hand:", "unicode": "270B", "aliases": ""}, "m": {"keywords": "circled latin capital letter m alphabet blue-circle letter", "shortname": ":m:", "unicode": "24C2", "aliases": ""}, "dog": {"keywords": "dog face animal friend nature woof", "shortname": ":dog:", "unicode": "1F436", "aliases": ""}, "police_car": {"keywords": "police car cars enforcement law transportation vehicle police car emergency ticket citation crime help officer", "shortname": ":police_car:", "unicode": "1F693", "aliases": ""}, "new_moon_with_face": {"keywords": "new moon with face nature moon new anthropomorphic face sky night cheese phase", "shortname": ":new_moon_with_face:", "unicode": "1F31A", "aliases": ""}, "ideograph_advantage": {"keywords": "circled ideograph advantage chinese get kanji obtain", "shortname": ":ideograph_advantage:", "unicode": "1F250", "aliases": ""}, "pineapple": {"keywords": "pineapple food fruit nature pineapple pina tropical flower", "shortname": ":pineapple:", "unicode": "1F34D", "aliases": ""}, "black_circle": {"keywords": "medium black circle shape", "shortname": ":black_circle:", "unicode": "26AB", "aliases": ""}, "scream": {"keywords": "face screaming in fear face munch scream painting artist alien", "shortname": ":scream:", "unicode": "1F631", "aliases": ""}, "taxi": {"keywords": "taxi cars transportation uber vehicle taxi car automobile city transport service", "shortname": ":taxi:", "unicode": "1F695", "aliases": ""}, "walking": {"keywords": "pedestrian human man walk pedestrian stroll stride foot feet", "shortname": ":walking:", "unicode": "1F6B6", "aliases": ""}, "golf": {"keywords": "flag in hole business sports", "shortname": ":golf:", "unicode": "26F3", "aliases": ""}, "minidisc": {"keywords": "minidisc data disc disk record technology", "shortname": ":minidisc:", "unicode": "1F4BD", "aliases": ""}, "horse_racing": {"keywords": "horse racing animal betting competition horse race racing jockey triple crown", "shortname": ":horse_racing:", "unicode": "1F3C7", "aliases": ""}, "radio": {"keywords": "radio communication music podcast program", "shortname": ":radio:", "unicode": "1F4FB", "aliases": ""}, "point_down": {"keywords": "white down pointing backhand index direction fingers hand", "shortname": ":point_down:", "unicode": "1F447", "aliases": ""}, "chicken": {"keywords": "chicken animal cluck chicken hen poultry livestock", "shortname": ":chicken:", "unicode": "1F414", "aliases": ""}, "copyright": {"keywords": "copyright sign ip license", "shortname": ":copyright:", "unicode": "00A9", "aliases": ""}, "arrow_lower_right": {"keywords": "south east arrow arrow blue-square", "shortname": ":arrow_lower_right:", "unicode": "2198", "aliases": ""}, "city_sunset": {"keywords": "sunset over buildings photo city scape sunrise dawn light morning metropolitan rise sun", "shortname": ":city_sunset:", "unicode": "1F307", "aliases": ":city_sunrise:"}, "camel": {"keywords": "bactrian camel animal hot nature bactrian camel hump desert central asia heat hot water hump day wednesday sex", "shortname": ":camel:", "unicode": "1F42B", "aliases": ""}, "waning_crescent_moon": {"keywords": "waning crescent moon symbol nature moon crescent waning sky night cheese phase", "shortname": ":waning_crescent_moon:", "unicode": "1F318", "aliases": ""}, "cupid": {"keywords": "heart with arrow affection heart like love valentines", "shortname": ":cupid:", "unicode": "1F498", "aliases": ""}, "mens": {"keywords": "mens symbol restroom toilet wc men bathroom restroom sign boy male avatar", "shortname": ":mens:", "unicode": "1F6B9", "aliases": ""}, "virgo": {"keywords": "virgo sign virgo maiden astrology greek constellation stars zodiac sign zodiac horoscope", "shortname": ":virgo:", "unicode": "264D", "aliases": ""}, "libra": {"keywords": "libra libra scales astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":libra:", "unicode": "264E", "aliases": ""}, "busts_in_silhouette": {"keywords": "busts in silhouette group human man person team user silhouette silhouettes people user members accounts relationship shadow", "shortname": ":busts_in_silhouette:", "unicode": "1F465", "aliases": ""}, "rice": {"keywords": "cooked rice food rice white grain food bowl", "shortname": ":rice:", "unicode": "1F35A", "aliases": ""}, "lips": {"keywords": "mouth kiss mouth", "shortname": ":lips:", "unicode": "1F444", "aliases": ""}, "alarm_clock": {"keywords": "alarm clock time wake", "shortname": ":alarm_clock:", "unicode": "23F0", "aliases": ""}, "couplekiss": {"keywords": "kiss dating like love marriage valentines", "shortname": ":couplekiss:", "unicode": "1F48F", "aliases": ""}, "sagittarius": {"keywords": "sagittarius sagittarius centaur archer astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":sagittarius:", "unicode": "2650", "aliases": ""}, "electric_plug": {"keywords": "electric plug charger power", "shortname": ":electric_plug:", "unicode": "1F50C", "aliases": ""}, "circus_tent": {"keywords": "circus tent carnival festival party circus tent event carnival big top canvas", "shortname": ":circus_tent:", "unicode": "1F3AA", "aliases": ""}, "watch": {"keywords": "watch accessories time", "shortname": ":watch:", "unicode": "231A", "aliases": ""}, "arrow_up": {"keywords": "upwards black arrow blue-square", "shortname": ":arrow_up:", "unicode": "2B06", "aliases": ""}, "bear": {"keywords": "bear face animal nature", "shortname": ":bear:", "unicode": "1F43B", "aliases": ""}, "frowning": {"keywords": "frowning face with open mouth aw face frown sad pout sulk glower", "shortname": ":frowning:", "unicode": "1F626", "aliases": ""}, "incoming_envelope": {"keywords": "incoming envelope email inbox", "shortname": ":incoming_envelope:", "unicode": "1F4E8", "aliases": ""}, "watermelon": {"keywords": "watermelon food fruit melon watermelon summer fruit large", "shortname": ":watermelon:", "unicode": "1F349", "aliases": ""}, "wedding": {"keywords": "wedding affection bride couple groom like love marriage", "shortname": ":wedding:", "unicode": "1F492", "aliases": ""}, "yellow_heart": {"keywords": "yellow heart affection like love valentines yellow gold heart love friendship happy happiness trust compassionate respectful honest caring selfless", "shortname": ":yellow_heart:", "unicode": "1F49B", "aliases": ""}, "no_mobile_phones": {"keywords": "no mobile phones iphone mute", "shortname": ":no_mobile_phones:", "unicode": "1F4F5", "aliases": ""}, "negative_squared_cross_mark": {"keywords": "negative squared cross mark deny green-square no x", "shortname": ":negative_squared_cross_mark:", "unicode": "274E", "aliases": ""}, "cry": {"keywords": "crying face face sad sad cry tear weep tears", "shortname": ":cry:", "unicode": "1F622", "aliases": ""}, "worried": {"keywords": "worried face concern face nervous worried anxious distressed nervous tense", "shortname": ":worried:", "unicode": "1F61F", "aliases": ""}, "microscope": {"keywords": "microscope experiment laboratory zoomin", "shortname": ":microscope:", "unicode": "1F52C", "aliases": ""}, "older_man": {"keywords": "older man human male men", "shortname": ":older_man:", "unicode": "1F474", "aliases": ""}, "whale2": {"keywords": "whale animal nature ocean sea whale blubber bloated fat large massive", "shortname": ":whale2:", "unicode": "1F40B", "aliases": ""}, "x": {"keywords": "cross mark delete no remove", "shortname": ":x:", "unicode": "274C", "aliases": ""}, "interrobang": {"keywords": "exclamation question mark punctuation surprise wat", "shortname": ":interrobang:", "unicode": "2049", "aliases": ""}, "japanese_ogre": {"keywords": "japanese ogre monster japanese oni demon troll ogre folklore monster devil mask theater horns teeth", "shortname": ":japanese_ogre:", "unicode": "1F479", "aliases": ""}, "evergreen_tree": {"keywords": "evergreen tree nature plant evergreen tree needles christmas", "shortname": ":evergreen_tree:", "unicode": "1F332", "aliases": ""}, "oncoming_taxi": {"keywords": "oncoming taxi cars uber vehicle taxi car automobile city transport service", "shortname": ":oncoming_taxi:", "unicode": "1F696", "aliases": ""}, "man_with_turban": {"keywords": "man with turban male turban headdress headwear pagri india indian mummy wisdom peace", "shortname": ":man_with_turban:", "unicode": "1F473", "aliases": ""}, "arrow_up_small": {"keywords": "up-pointing small red triangle blue-square", "shortname": ":arrow_up_small:", "unicode": "1F53C", "aliases": ""}, "art": {"keywords": "artist palette design draw paint artist palette art colors paint draw brush pastels oils", "shortname": ":art:", "unicode": "1F3A8", "aliases": ""}, "cocktail": {"keywords": "cocktail glass alcohol beverage drink drunk cocktail mixed drink alcohol glass martini bar", "shortname": ":cocktail:", "unicode": "1F378", "aliases": ""}, "fries": {"keywords": "french fries chips food fries french potato fry russet idaho", "shortname": ":fries:", "unicode": "1F35F", "aliases": ""}, "hear_no_evil": {"keywords": "hear-no-evil monkey animal monkey monkey ears hear sound kikazaru", "shortname": ":hear_no_evil:", "unicode": "1F649", "aliases": ""}, "convenience_store": {"keywords": "convenience store building", "shortname": ":convenience_store:", "unicode": "1F3EA", "aliases": ""}, "seat": {"keywords": "seat sit", "shortname": ":seat:", "unicode": "1F4BA", "aliases": ""}, "computer": {"keywords": "personal computer laptop tech", "shortname": ":computer:", "unicode": "1F4BB", "aliases": ""}, "arrow_down": {"keywords": "downwards black arrow arrow blue-square", "shortname": ":arrow_down:", "unicode": "2B07", "aliases": ""}, "arrow_upper_left": {"keywords": "north west arrow blue-square", "shortname": ":arrow_upper_left:", "unicode": "2196", "aliases": ""}, "parking": {"keywords": "negative squared latin capital letter p alphabet blue-square cars letter", "shortname": ":parking:", "unicode": "1F17F", "aliases": ""}, "pisces": {"keywords": "pisces pisces fish astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":pisces:", "unicode": "2653", "aliases": ""}, "calendar": {"keywords": "tear-off calendar schedule", "shortname": ":calendar:", "unicode": "1F4C6", "aliases": ""}, "hammer": {"keywords": "hammer done judge law ruling tools verdict", "shortname": ":hammer:", "unicode": "1F528", "aliases": ""}, "bomb": {"keywords": "bomb boom explode", "shortname": ":bomb:", "unicode": "1F4A3", "aliases": ""}, "hourglass": {"keywords": "hourglass clock oldschool time", "shortname": ":hourglass:", "unicode": "231B", "aliases": ""}, "loudspeaker": {"keywords": "public address loudspeaker sound volume", "shortname": ":loudspeaker:", "unicode": "1F4E2", "aliases": ""}, "shower": {"keywords": "shower bath clean wash bathroom shower soap water clean shampoo lather", "shortname": ":shower:", "unicode": "1F6BF", "aliases": ""}, "black_joker": {"keywords": "playing card black joker cards game poker", "shortname": ":black_joker:", "unicode": "1F0CF", "aliases": ""}, "ferris_wheel": {"keywords": "ferris wheel carnival londoneye photo farris wheel amusement park fair ride entertainment", "shortname": ":ferris_wheel:", "unicode": "1F3A1", "aliases": ""}, "bicyclist": {"keywords": "bicyclist bike exercise hipster sports bicyclist road bike pedal bicycle transportation", "shortname": ":bicyclist:", "unicode": "1F6B4", "aliases": ""}, "no_mouth": {"keywords": "face without mouth face hellokitty mouth silent vapid", "shortname": ":no_mouth:", "unicode": "1F636", "aliases": ""}, "postbox": {"keywords": "postbox email envelope letter", "shortname": ":postbox:", "unicode": "1F4EE", "aliases": ""}, "large_blue_diamond": {"keywords": "large blue diamond shape", "shortname": ":large_blue_diamond:", "unicode": "1F537", "aliases": ""}, "non-potable_water": {"keywords": "non-potable water symbol drink faucet tap non-potable water not drinkable dirty gross aqua h20", "shortname": ":non-potable_water:", "unicode": "1F6B1", "aliases": ""}, "icecream": {"keywords": "soft ice cream desert food hot icecream ice cream dairy dessert cold soft serve cone yogurt", "shortname": ":icecream:", "unicode": "1F366", "aliases": ""}, "diamonds": {"keywords": "black diamond suit cards poker", "shortname": ":diamonds:", "unicode": "2666", "aliases": ""}, "princess": {"keywords": "princess blond crown female girl woman princess royal royalty king queen daughter disney high-maintenance", "shortname": ":princess:", "unicode": "1F478", "aliases": ""}, "no_entry_sign": {"keywords": "no entry sign denied disallow forbid limit stop no stop entry", "shortname": ":no_entry_sign:", "unicode": "1F6AB", "aliases": ""}, "shaved_ice": {"keywords": "shaved ice desert hot shaved ice dessert treat syrup flavoring", "shortname": ":shaved_ice:", "unicode": "1F367", "aliases": ""}, "tent": {"keywords": "tent camp outdoors photo", "shortname": ":tent:", "unicode": "26FA", "aliases": ""}, "flashlight": {"keywords": "electric torch dark", "shortname": ":flashlight:", "unicode": "1F526", "aliases": ""}, "raising_hand": {"keywords": "happy person raising one hand female girl woman hand raise notice attention answer", "shortname": ":raising_hand:", "unicode": "1F64B", "aliases": ""}, "wc": {"keywords": "water closet blue-square restroom toilet water closet toilet bathroom throne porcelain waste flush plumbing", "shortname": ":wc:", "unicode": "1F6BE", "aliases": ""}, "joy": {"keywords": "face with tears of joy cry face haha happy tears tears cry joy happy weep", "shortname": ":joy:", "unicode": "1F602", "aliases": ""}, "moyai": {"keywords": "moyai island stone", "shortname": ":moyai:", "unicode": "1F5FF", "aliases": ""}, "aquarius": {"keywords": "aquarius aquarius water bearer astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":aquarius:", "unicode": "2652", "aliases": ""}, "mailbox": {"keywords": "closed mailbox with raised flag communication email inbox", "shortname": ":mailbox:", "unicode": "1F4EB", "aliases": ""}, "guitar": {"keywords": "guitar instrument music guitar string music instrument jam rock acoustic electric", "shortname": ":guitar:", "unicode": "1F3B8", "aliases": ""}, "ok_woman": {"keywords": "face with ok gesture female girl human pink women yes ok okay accept", "shortname": ":ok_woman:", "unicode": "1F646", "aliases": ""}, "key": {"keywords": "key door lock password", "shortname": ":key:", "unicode": "1F511", "aliases": ""}, "blue_heart": {"keywords": "blue heart affection like love valentines blue heart love stability truth loyalty trust", "shortname": ":blue_heart:", "unicode": "1F499", "aliases": ""}, "statue_of_liberty": {"keywords": "statue of liberty american newyork", "shortname": ":statue_of_liberty:", "unicode": "1F5FD", "aliases": ""}, "cop": {"keywords": "police officer arrest enforcement law man police", "shortname": ":cop:", "unicode": "1F46E", "aliases": ""}, "clock1230": {"keywords": "clock face twelve-thirty clock time", "shortname": ":clock1230:", "unicode": "1F567", "aliases": ""}, "tropical_drink": {"keywords": "tropical drink beverage tropical drink mixed pineapple coconut pina fruit umbrella", "shortname": ":tropical_drink:", "unicode": "1F379", "aliases": ""}, "cow": {"keywords": "cow face animal beef ox", "shortname": ":cow:", "unicode": "1F42E", "aliases": ""}, "restroom": {"keywords": "restroom blue-square woman man unisex bathroom restroom sign shared toilet", "shortname": ":restroom:", "unicode": "1F6BB", "aliases": ""}, "white_large_square": {"keywords": "white large square shape", "shortname": ":white_large_square:", "unicode": "2B1C", "aliases": ""}, "eggplant": {"keywords": "aubergine aubergine food nature vegetable eggplant aubergine fruit purple penis", "shortname": ":eggplant:", "unicode": "1F346", "aliases": ""}, "low_brightness": {"keywords": "low brightness symbol summer sun", "shortname": ":low_brightness:", "unicode": "1F505", "aliases": ""}, "four_leaf_clover": {"keywords": "four leaf clover lucky nature plant vegetable clover four leaf luck irish saint patrick green", "shortname": ":four_leaf_clover:", "unicode": "1F340", "aliases": ""}, "space_invader": {"keywords": "alien monster arcade game", "shortname": ":space_invader:", "unicode": "1F47E", "aliases": ""}, "pig_nose": {"keywords": "pig nose animal oink pig nose snout food eat cute oink pink smell truffle", "shortname": ":pig_nose:", "unicode": "1F43D", "aliases": ""}, "cancer": {"keywords": "cancer cancer crab astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":cancer:", "unicode": "264B", "aliases": ""}, "bell": {"keywords": "bell chime christmas notification sound xmas", "shortname": ":bell:", "unicode": "1F514", "aliases": ""}, "battery": {"keywords": "battery energy power sustain", "shortname": ":battery:", "unicode": "1F50B", "aliases": ""}, "jeans": {"keywords": "jeans fashion shopping jeans pants blue denim levi&#039;s levi designer work skinny", "shortname": ":jeans:", "unicode": "1F456", "aliases": ""}, "leo": {"keywords": "leo leo lion astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":leo:", "unicode": "264C", "aliases": ""}, "cd": {"keywords": "optical disc disc disk dvd technology", "shortname": ":cd:", "unicode": "1F4BF", "aliases": ""}, "dancer": {"keywords": "dancer female fun girl woman dance dancer dress fancy boogy party celebrate ballet tango cha cha music", "shortname": ":dancer:", "unicode": "1F483", "aliases": ""}, "page_facing_up": {"keywords": "page facing up documents", "shortname": ":page_facing_up:", "unicode": "1F4C4", "aliases": ""}, "church": {"keywords": "church building christ religion", "shortname": ":church:", "unicode": "26EA", "aliases": ""}, "boar": {"keywords": "boar animal nature", "shortname": ":boar:", "unicode": "1F417", "aliases": ""}, "trumpet": {"keywords": "trumpet brass music trumpet brass music instrument", "shortname": ":trumpet:", "unicode": "1F3BA", "aliases": ""}, "angel": {"keywords": "baby angel baby angel halo cupid wings halo heaven wings jesus", "shortname": ":angel:", "unicode": "1F47C", "aliases": ""}, "imp": {"keywords": "imp angry devil evil horns cute devil", "shortname": ":imp:", "unicode": "1F47F", "aliases": ""}, "underage": {"keywords": "no one under eighteen symbol 18 drink night pub", "shortname": ":underage:", "unicode": "1F51E", "aliases": ""}, "three": {"keywords": "digit three 3 blue-square numbers prime", "shortname": ":three:", "unicode": "0033-20E3", "aliases": ""}, "oden": {"keywords": "oden food japanese oden seafood casserole stew", "shortname": ":oden:", "unicode": "1F362", "aliases": ""}, "beer": {"keywords": "beer mug beverage drink drunk party pub relax beer hops mug barley malt yeast portland oregon brewery micro pint boot", "shortname": ":beer:", "unicode": "1F37A", "aliases": ""}, "clock430": {"keywords": "clock face four-thirty clock time", "shortname": ":clock430:", "unicode": "1F55F", "aliases": ""}, "stuck_out_tongue_closed_eyes": {"keywords": "face with stuck-out tongue and tightly-closed eyes face mischievous playful prank tongue kidding silly playful ecstatic", "shortname": ":stuck_out_tongue_closed_eyes:", "unicode": "1F61D", "aliases": ""}, "helicopter": {"keywords": "helicopter transportation vehicle helicopter helo gyro gyrocopter", "shortname": ":helicopter:", "unicode": "1F681", "aliases": ""}, "heavy_division_sign": {"keywords": "heavy division sign calculation divide math", "shortname": ":heavy_division_sign:", "unicode": "2797", "aliases": ""}, "disappointed": {"keywords": "disappointed face disappointed disappoint frown depressed discouraged face sad upset", "shortname": ":disappointed:", "unicode": "1F61E", "aliases": ""}, "performing_arts": {"keywords": "performing arts acting drama theater performing arts performance entertainment acting story mask masks", "shortname": ":performing_arts:", "unicode": "1F3AD", "aliases": ""}, "mushroom": {"keywords": "mushroom plant vegetable mushroom fungi food fungus", "shortname": ":mushroom:", "unicode": "1F344", "aliases": ""}, "fire": {"keywords": "fire cook hot flame", "shortname": ":fire:", "unicode": "1F525", "aliases": ":flame:"}, "two_hearts": {"keywords": "two hearts affection like love valentines heart hearts two love emotion", "shortname": ":two_hearts:", "unicode": "1F495", "aliases": ""}, "arrow_down_small": {"keywords": "down-pointing small red triangle arrow blue-square", "shortname": ":arrow_down_small:", "unicode": "1F53D", "aliases": ""}, "tiger": {"keywords": "tiger face animal", "shortname": ":tiger:", "unicode": "1F42F", "aliases": ""}, "cold_sweat": {"keywords": "face with open mouth and cold sweat face nervous sweat exasperated frustrated", "shortname": ":cold_sweat:", "unicode": "1F630", "aliases": ""}, "bulb": {"keywords": "electric light bulb electricity light idea bulb light", "shortname": ":bulb:", "unicode": "1F4A1", "aliases": ""}, "heart_eyes": {"keywords": "smiling face with heart-shaped eyes affection crush face infatuation like love valentines smiling heart lovestruck love flirt smile heart-shaped", "shortname": ":heart_eyes:", "unicode": "1F60D", "aliases": ""}, "sound": {"keywords": "speaker with one sound wave speaker volume", "shortname": ":sound:", "unicode": "1F509", "aliases": ""}, "ant": {"keywords": "ant animal insect ant queen insect team", "shortname": ":ant:", "unicode": "1F41C", "aliases": ""}, "blowfish": {"keywords": "blowfish food nature ocean sea blowfish pufferfish puffer ballonfish toadfish fugu fish sushi", "shortname": ":blowfish:", "unicode": "1F421", "aliases": ""}, "speech_balloon": {"keywords": "speech balloon bubble words speech balloon talk conversation communication comic dialogue", "shortname": ":speech_balloon:", "unicode": "1F4AC", "aliases": ""}, "earth_africa": {"keywords": "earth globe europe-africa globe international world earth globe space planet africa europe home", "shortname": ":earth_africa:", "unicode": "1F30D", "aliases": ""}, "arrow_right_hook": {"keywords": "rightwards arrow with hook blue-square", "shortname": ":arrow_right_hook:", "unicode": "21AA", "aliases": ""}, "seedling": {"keywords": "seedling grass lawn nature plant seedling plant new start grow", "shortname": ":seedling:", "unicode": "1F331", "aliases": ""}, "fearful": {"keywords": "fearful face face nervous oops scared terrified fear fearful scared frightened", "shortname": ":fearful:", "unicode": "1F628", "aliases": ""}, "envelope_with_arrow": {"keywords": "envelope with downwards arrow above email", "shortname": ":envelope_with_arrow:", "unicode": "1F4E9", "aliases": ""}, "gem": {"keywords": "gem stone blue ruby", "shortname": ":gem:", "unicode": "1F48E", "aliases": ""}, "grinning": {"keywords": "grinning face face happy joy smile grin grinning smiling smile smiley", "shortname": ":grinning:", "unicode": "1F600", "aliases": ""}, "bikini": {"keywords": "bikini beach fashion female girl swimming woman", "shortname": ":bikini:", "unicode": "1F459", "aliases": ""}, "gemini": {"keywords": "gemini gemini twins astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":gemini:", "unicode": "264A", "aliases": ""}, "vertical_traffic_light": {"keywords": "vertical traffic light transportation traffic light stop go yield vertical", "shortname": ":vertical_traffic_light:", "unicode": "1F6A6", "aliases": ""}, "newspaper": {"keywords": "newspaper headline press", "shortname": ":newspaper:", "unicode": "1F4F0", "aliases": ""}, "kissing": {"keywords": "kissing face 3 face infatuation like love valentines kissing kiss pucker lips smooch", "shortname": ":kissing:", "unicode": "1F617", "aliases": ""}, "bathtub": {"keywords": "bathtub clean shower bath tub basin wash bubble soak bathroom soap water clean shampoo lather water", "shortname": ":bathtub:", "unicode": "1F6C1", "aliases": ""}, "anchor": {"keywords": "anchor ferry ship anchor ship boat ocean harbor marina shipyard sailor tattoo", "shortname": ":anchor:", "unicode": "2693", "aliases": ""}, "loop": {"keywords": "double curly loop curly", "shortname": ":loop:", "unicode": "27BF", "aliases": ""}, "swimmer": {"keywords": "swimmer sports swimmer swim water pool laps freestyle butterfly breaststroke backstroke", "shortname": ":swimmer:", "unicode": "1F3CA", "aliases": ""}, "seven": {"keywords": "digit seven 7 blue-square numbers prime", "shortname": ":seven:", "unicode": "0037-20E3", "aliases": ""}, "pound": {"keywords": "banknote with pound sign bills british currency england money sterling uk pound britain british banknote money currency paper cash bills", "shortname": ":pound:", "unicode": "1F4B7", "aliases": ""}, "two_women_holding_hands": {"keywords": "two women holding hands couple female friends like love women hands girlfriends friends sisters mother daughter gay homosexual couple unity", "shortname": ":two_women_holding_hands:", "unicode": "1F46D", "aliases": ""}, "sushi": {"keywords": "sushi food japanese sushi fish raw nigiri japanese", "shortname": ":sushi:", "unicode": "1F363", "aliases": ""}, "purse": {"keywords": "purse accessories fashion money purse clutch bag handbag coin bag accessory money ladies shopping", "shortname": ":purse:", "unicode": "1F45B", "aliases": ""}, "telephone": {"keywords": "black telephone communication dial technology", "shortname": ":telephone:", "unicode": "260E", "aliases": ""}, "u5272": {"keywords": "squared cjk unified ideograph-5272 chinese cut divide kanji pink", "shortname": ":u5272:", "unicode": "1F239", "aliases": ""}, "rooster": {"keywords": "rooster animal chicken nature rooster cockerel cock male cock-a-doodle-doo crowing", "shortname": ":rooster:", "unicode": "1F413", "aliases": ""}, "rice_scene": {"keywords": "moon viewing ceremony photo moon viewing observing otsukimi tsukimi rice scene festival autumn", "shortname": ":rice_scene:", "unicode": "1F391", "aliases": ""}, "vs": {"keywords": "squared vs orange-square words", "shortname": ":vs:", "unicode": "1F19A", "aliases": ""}, "arrow_forward": {"keywords": "black right-pointing triangle arrow blue-square", "shortname": ":arrow_forward:", "unicode": "25B6", "aliases": ""}, "violin": {"keywords": "violin instrument music violin fiddle music instrument", "shortname": ":violin:", "unicode": "1F3BB", "aliases": ""}, "bullettrain_front": {"keywords": "high-speed train with bullet nose transportation train bullet rail", "shortname": ":bullettrain_front:", "unicode": "1F685", "aliases": ""}, "mouse": {"keywords": "mouse face animal nature", "shortname": ":mouse:", "unicode": "1F42D", "aliases": ""}, "bookmark_tabs": {"keywords": "bookmark tabs favorite", "shortname": ":bookmark_tabs:", "unicode": "1F4D1", "aliases": ""}, "shirt": {"keywords": "t-shirt cloth fashion", "shortname": ":shirt:", "unicode": "1F455", "aliases": ""}, "white_circle": {"keywords": "medium white circle shape", "shortname": ":white_circle:", "unicode": "26AA", "aliases": ""}, "balloon": {"keywords": "balloon celebration party balloon birthday celebration helium gas children float", "shortname": ":balloon:", "unicode": "1F388", "aliases": ""}, "heart_decoration": {"keywords": "heart decoration like love purple-square", "shortname": ":heart_decoration:", "unicode": "1F49F", "aliases": ""}, "joy_cat": {"keywords": "cat face with tears of joy animal cats haha happy tears happy tears cry joy", "shortname": ":joy_cat:", "unicode": "1F639", "aliases": ""}, "kimono": {"keywords": "kimono dress fashion female japanese women", "shortname": ":kimono:", "unicode": "1F458", "aliases": ""}, "speaker": {"keywords": "speaker sound listen hear noise", "shortname": ":speaker:", "unicode": "1F508", "aliases": ""}, "train2": {"keywords": "train transportation vehicle train locomotive rail", "shortname": ":train2:", "unicode": "1F686", "aliases": ""}, "first_quarter_moon": {"keywords": "first quarter moon symbol nature moon quarter first sky night cheese phase", "shortname": ":first_quarter_moon:", "unicode": "1F313", "aliases": ""}, "left_luggage": {"keywords": "left luggage blue-square travel bag baggage luggage travel", "shortname": ":left_luggage:", "unicode": "1F6C5", "aliases": ""}, "meat_on_bone": {"keywords": "meat on bone food good meat bone animal cooked", "shortname": ":meat_on_bone:", "unicode": "1F356", "aliases": ""}, "light_rail": {"keywords": "light rail transportation vehicle train rail light", "shortname": ":light_rail:", "unicode": "1F688", "aliases": ""}, "satellite": {"keywords": "satellite antenna communication", "shortname": ":satellite:", "unicode": "1F4E1", "aliases": ""}, "arrow_heading_up": {"keywords": "arrow pointing rightwards then curving upwards arrow blue-square", "shortname": ":arrow_heading_up:", "unicode": "2934", "aliases": ""}, "snail": {"keywords": "snail animal shell slow snail slow escargot french appetizer", "shortname": ":snail:", "unicode": "1F40C", "aliases": ""}, "rainbow": {"keywords": "rainbow happy nature photo sky unicorn rainbow color pride diversity spectrum refract leprechaun gold", "shortname": ":rainbow:", "unicode": "1F308", "aliases": ""}, "u6307": {"keywords": "squared cjk unified ideograph-6307 chinese green-square kanji point", "shortname": ":u6307:", "unicode": "1F22F", "aliases": ""}, "leopard": {"keywords": "leopard animal nature leopard cat spot spotted sexy", "shortname": ":leopard:", "unicode": "1F406", "aliases": ""}, "diamond_shape_with_a_dot_inside": {"keywords": "diamond shape with a dot inside diamond cute cuteness kawaii japanese glyph adorable", "shortname": ":diamond_shape_with_a_dot_inside:", "unicode": "1F4A0", "aliases": ""}, "barber": {"keywords": "barber pole hair salon style", "shortname": ":barber:", "unicode": "1F488", "aliases": ""}, "christmas_tree": {"keywords": "christmas tree celebration december festival vacation xmas christmas xmas santa holiday winter december santa evergreen ornaments jesus gifts presents", "shortname": ":christmas_tree:", "unicode": "1F384", "aliases": ""}, "slot_machine": {"keywords": "slot machine bet gamble vegas slot machine gamble one-armed bandit slots luck", "shortname": ":slot_machine:", "unicode": "1F3B0", "aliases": ""}, "ice_cream": {"keywords": "ice cream desert food hot icecream ice cream dairy dessert cold soft serve cone waffle", "shortname": ":ice_cream:", "unicode": "1F368", "aliases": ""}, "foggy": {"keywords": "foggy mountain photo bridge weather fog foggy", "shortname": ":foggy:", "unicode": "1F301", "aliases": ""}, "euro": {"keywords": "banknote with euro sign currency dollar money euro europe banknote money currency paper cash bills", "shortname": ":euro:", "unicode": "1F4B6", "aliases": ""}, "crossed_flags": {"keywords": "crossed flags japan", "shortname": ":crossed_flags:", "unicode": "1F38C", "aliases": ""}, "smile_cat": {"keywords": "grinning cat face with smiling eyes animal cats cat smile grin grinning", "shortname": ":smile_cat:", "unicode": "1F638", "aliases": ""}, "hushed": {"keywords": "hushed face face woo quiet hush whisper silent", "shortname": ":hushed:", "unicode": "1F62F", "aliases": ""}, "triangular_ruler": {"keywords": "triangular ruler architect math sketch stationery", "shortname": ":triangular_ruler:", "unicode": "1F4D0", "aliases": ""}, "ocean": {"keywords": "water wave sea water wave ocean wave surf beach tide", "shortname": ":ocean:", "unicode": "1F30A", "aliases": ""}, "page_with_curl": {"keywords": "page with curl documents", "shortname": ":page_with_curl:", "unicode": "1F4C3", "aliases": ""}, "flags": {"keywords": "carp streamer banner carp fish japanese koinobori children kids boys celebration happiness carp streamers japanese holiday flags", "shortname": ":flags:", "unicode": "1F38F", "aliases": ""}, "hearts": {"keywords": "black heart suit cards poker", "shortname": ":hearts:", "unicode": "2665", "aliases": ""}, "muscle": {"keywords": "flexed biceps arm flex hand strong muscle bicep", "shortname": ":muscle:", "unicode": "1F4AA", "aliases": ""}, "love_hotel": {"keywords": "love hotel affection dating like love hotel love sex romance leisure adultery prostitution hospital birth happy", "shortname": ":love_hotel:", "unicode": "1F3E9", "aliases": ""}, "snowman": {"keywords": "snowman without snow christmas cold season weather winter xmas", "shortname": ":snowman:", "unicode": "26C4", "aliases": ""}, "eyeglasses": {"keywords": "eyeglasses accessories eyesight fashion eyeglasses spectacles eye sight nearsightedness myopia farsightedness hyperopia frames vision see blurry contacts", "shortname": ":eyeglasses:", "unicode": "1F453", "aliases": ""}, "rocket": {"keywords": "rocket launch ship staffmode rocket space spacecraft astronaut cosmonaut", "shortname": ":rocket:", "unicode": "1F680", "aliases": ""}, "yen": {"keywords": "banknote with yen sign currency dollar japanese money yen japan japanese banknote money currency paper cash bill", "shortname": ":yen:", "unicode": "1F4B4", "aliases": ""}, "straight_ruler": {"keywords": "straight ruler stationery", "shortname": ":straight_ruler:", "unicode": "1F4CF", "aliases": ""}, "u7533": {"keywords": "squared cjk unified ideograph-7533 chinese japanese kanji", "shortname": ":u7533:", "unicode": "1F238", "aliases": ""}, "racehorse": {"keywords": "horse animal gamble horse powerful draft calvary cowboy cowgirl mounted race ride gallop trot colt filly mare stallion gelding yearling thoroughbred pony", "shortname": ":racehorse:", "unicode": "1F40E", "aliases": ""}, "sleepy": {"keywords": "sleepy face face rest tired sleepy tired exhausted", "shortname": ":sleepy:", "unicode": "1F62A", "aliases": ""}, "green_apple": {"keywords": "green apple fruit nature apple fruit green pie granny smith core", "shortname": ":green_apple:", "unicode": "1F34F", "aliases": ""}, "bridge_at_night": {"keywords": "bridge at night photo sanfrancisco bridge night water road evening suspension golden gate", "shortname": ":bridge_at_night:", "unicode": "1F309", "aliases": ""}, "doughnut": {"keywords": "doughnut desert food snack sweet doughnut donut pastry fried dessert breakfast police homer sweet", "shortname": ":doughnut:", "unicode": "1F369", "aliases": ""}, "first_quarter_moon_with_face": {"keywords": "first quarter moon with face nature moon first quarter anthropomorphic face sky night cheese phase", "shortname": ":first_quarter_moon_with_face:", "unicode": "1F31B", "aliases": ""}, "womans_hat": {"keywords": "womans hat accessories fashion female", "shortname": ":womans_hat:", "unicode": "1F452", "aliases": ""}, "sandal": {"keywords": "womans sandal fashion shoes", "shortname": ":sandal:", "unicode": "1F461", "aliases": ""}, "white_medium_square": {"keywords": "white medium square shape", "shortname": ":white_medium_square:", "unicode": "25FB", "aliases": ""}, "snowboarder": {"keywords": "snowboarder sports winter snow boarding sports freestyle halfpipe board mountain alpine winter", "shortname": ":snowboarder:", "unicode": "1F3C2", "aliases": ""}, "sunflower": {"keywords": "sunflower nature plant sunflower sun flower seeds yellow", "shortname": ":sunflower:", "unicode": "1F33B", "aliases": ""}, "grey_exclamation": {"keywords": "white exclamation mark ornament surprise", "shortname": ":grey_exclamation:", "unicode": "2755", "aliases": ""}, "rose": {"keywords": "rose flowers love valentines rose fragrant flower thorns love petals romance", "shortname": ":rose:", "unicode": "1F339", "aliases": ""}, "cl": {"keywords": "squared cl alphabet red-square words", "shortname": ":cl:", "unicode": "1F191", "aliases": ""}, "tropical_fish": {"keywords": "tropical fish animal swim", "shortname": ":tropical_fish:", "unicode": "1F420", "aliases": ""}, "cherries": {"keywords": "cherries food fruit cherry cherries tree fruit pit", "shortname": ":cherries:", "unicode": "1F352", "aliases": ""}, "innocent": {"keywords": "smiling face with halo angel face halo halo angel innocent ring circle heaven", "shortname": ":innocent:", "unicode": "1F607", "aliases": ""}, "rice_cracker": {"keywords": "rice cracker food japanese rice cracker seaweed food japanese", "shortname": ":rice_cracker:", "unicode": "1F358", "aliases": ""}, "ski": {"keywords": "ski and ski boot cold sports winter ski downhill cross-country poles snow winter mountain alpine powder slalom freestyle", "shortname": ":ski:", "unicode": "1F3BF", "aliases": ""}, "pill": {"keywords": "pill health medicine", "shortname": ":pill:", "unicode": "1F48A", "aliases": ""}, "musical_keyboard": {"keywords": "musical keyboard instrument piano music keyboard piano organ instrument electric", "shortname": ":musical_keyboard:", "unicode": "1F3B9", "aliases": ""}, "boom": {"keywords": "collision symbol bomb explode explosion boom bang collision fire emphasis wow bam", "shortname": ":boom:", "unicode": "1F4A5", "aliases": ""}, "full_moon": {"keywords": "full moon symbol nature yellow moon full sky night cheese phase monster spooky werewolves twilight", "shortname": ":full_moon:", "unicode": "1F315", "aliases": ""}, "orange_book": {"keywords": "orange book knowledge library read", "shortname": ":orange_book:", "unicode": "1F4D9", "aliases": ""}, "couple": {"keywords": "man and woman holding hands affection date dating human like love marriage people valentines", "shortname": ":couple:", "unicode": "1F46B", "aliases": ""}, "japanese_goblin": {"keywords": "japanese goblin evil mask red japanese tengu supernatural avian demon goblin mask theater nose frown mustache anger frustration", "shortname": ":japanese_goblin:", "unicode": "1F47A", "aliases": ""}, "inbox_tray": {"keywords": "inbox tray documents email", "shortname": ":inbox_tray:", "unicode": "1F4E5", "aliases": ""}, "clock1": {"keywords": "clock face one oclock clock time", "shortname": ":clock1:", "unicode": "1F550", "aliases": ""}, "clock2": {"keywords": "clock face two oclock clock time", "shortname": ":clock2:", "unicode": "1F551", "aliases": ""}, "clock3": {"keywords": "clock face three oclock clock time", "shortname": ":clock3:", "unicode": "1F552", "aliases": ""}, "five": {"keywords": "digit five blue-square numbers prime", "shortname": ":five:", "unicode": "0035-20E3", "aliases": ""}, "clock5": {"keywords": "clock face five oclock clock time", "shortname": ":clock5:", "unicode": "1F554", "aliases": ""}, "clock6": {"keywords": "clock face six oclock clock time", "shortname": ":clock6:", "unicode": "1F555", "aliases": ""}, "clock7": {"keywords": "clock face seven oclock clock time", "shortname": ":clock7:", "unicode": "1F556", "aliases": ""}, "clock8": {"keywords": "clock face eight oclock clock time", "shortname": ":clock8:", "unicode": "1F557", "aliases": ""}, "clock9": {"keywords": "clock face nine oclock clock time", "shortname": ":clock9:", "unicode": "1F558", "aliases": ""}, "clock130": {"keywords": "clock face one-thirty clock time", "shortname": ":clock130:", "unicode": "1F55C", "aliases": ""}, "name_badge": {"keywords": "name badge fire forbid", "shortname": ":name_badge:", "unicode": "1F4DB", "aliases": ""}, "grin": {"keywords": "grinning face with smiling eyes face happy joy smile grin grinning smiling smile smiley", "shortname": ":grin:", "unicode": "1F601", "aliases": ""}, "womans_clothes": {"keywords": "womans clothes fashion woman clothing clothes blouse shirt wardrobe breasts cleavage shopping shop dressing dressed", "shortname": ":womans_clothes:", "unicode": "1F45A", "aliases": ""}, "gift": {"keywords": "wrapped present birthday christmas present xmas gift present wrap package birthday wedding", "shortname": ":gift:", "unicode": "1F381", "aliases": ""}, "bangbang": {"keywords": "double exclamation mark exclamation surprise", "shortname": ":bangbang:", "unicode": "203C", "aliases": ""}, "stuck_out_tongue_winking_eye": {"keywords": "face with stuck-out tongue and winking eye childish face mischievous playful prank tongue wink winking kidding silly playful crazy", "shortname": ":stuck_out_tongue_winking_eye:", "unicode": "1F61C", "aliases": ""}, "candy": {"keywords": "candy desert snack candy sugar sweet hard", "shortname": ":candy:", "unicode": "1F36C", "aliases": ""}, "arrows_counterclockwise": {"keywords": "anticlockwise downwards and upwards open circle ar blue-square sync", "shortname": ":arrows_counterclockwise:", "unicode": "1F504", "aliases": ""}, "capricorn": {"keywords": "capricorn capricorn sea-goat goat-horned astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":capricorn:", "unicode": "2651", "aliases": ""}, "hotsprings": {"keywords": "hot springs bath relax warm", "shortname": ":hotsprings:", "unicode": "2668", "aliases": ""}, "laughing": {"keywords": "smiling face with open mouth and tightly-closed ey happy joy lol smiling laughing laugh", "shortname": ":laughing:", "unicode": "1F606", "aliases": ":satisfied:"}, "trolleybus": {"keywords": "trolleybus bart transportation vehicle trolley bus city transport transportation", "shortname": ":trolleybus:", "unicode": "1F68E", "aliases": ""}, "potable_water": {"keywords": "potable water symbol blue-square cleaning faucet liquid restroom potable water drinkable pure clear clean aqua h20", "shortname": ":potable_water:", "unicode": "1F6B0", "aliases": ""}, "city_dusk": {"keywords": "cityscape at dusk photo city scape sunset dusk lights evening metropolitan night dark", "shortname": ":city_dusk:", "unicode": "1F306", "aliases": ""}, "clap": {"keywords": "clapping hands sign applause congrats hands praise clapping appreciation approval sound encouragement enthusiasm", "shortname": ":clap:", "unicode": "1F44F", "aliases": ""}, "clock230": {"keywords": "clock face two-thirty clock time", "shortname": ":clock230:", "unicode": "1F55D", "aliases": ""}, "left_right_arrow": {"keywords": "left right arrow shape", "shortname": ":left_right_arrow:", "unicode": "2194", "aliases": ""}, "japanese_castle": {"keywords": "japanese castle building photo castle japanese residence royalty fort fortified fortress", "shortname": ":japanese_castle:", "unicode": "1F3EF", "aliases": ""}, "waning_gibbous_moon": {"keywords": "waning gibbous moon symbol nature moon waning gibbous sky night cheese phase", "shortname": ":waning_gibbous_moon:", "unicode": "1F316", "aliases": ""}, "crown": {"keywords": "crown king kod leader royalty", "shortname": ":crown:", "unicode": "1F451", "aliases": ""}, "back": {"keywords": "back with leftwards arrow above arrow", "shortname": ":back:", "unicode": "1F519", "aliases": ""}, "sparkling_heart": {"keywords": "sparkling heart affection like love valentines", "shortname": ":sparkling_heart:", "unicode": "1F496", "aliases": ""}, "clubs": {"keywords": "black club suit cards poker", "shortname": ":clubs:", "unicode": "2663", "aliases": ""}, "rage": {"keywords": "pouting face angry despise hate mad pout anger rage irate", "shortname": ":rage:", "unicode": "1F621", "aliases": ""}, "person_with_pouting_face": {"keywords": "person with pouting face female girl woman pout sexy cute annoyed", "shortname": ":person_with_pouting_face:", "unicode": "1F64E", "aliases": ""}, "rabbit2": {"keywords": "rabbit animal nature rabbit bunny easter reproduction prolific", "shortname": ":rabbit2:", "unicode": "1F407", "aliases": ""}, "two_men_holding_hands": {"keywords": "two men holding hands bromance couple friends like love men gay homosexual friends hands holding team unity", "shortname": ":two_men_holding_hands:", "unicode": "1F46C", "aliases": ""}, "tired_face": {"keywords": "tired face face frustrated sick upset whine exhausted sleepy tired", "shortname": ":tired_face:", "unicode": "1F62B", "aliases": ""}, "anguished": {"keywords": "anguished face face nervous stunned pain anguish ouch misery distress grief", "shortname": ":anguished:", "unicode": "1F627", "aliases": ""}, "tanabata_tree": {"keywords": "tanabata tree nature plant tanabata tree festival star wish holiday", "shortname": ":tanabata_tree:", "unicode": "1F38B", "aliases": ""}, "carousel_horse": {"keywords": "carousel horse carnival horse photo carousel horse amusement park ride entertainment park fair", "shortname": ":carousel_horse:", "unicode": "1F3A0", "aliases": ""}, "large_orange_diamond": {"keywords": "large orange diamond shape", "shortname": ":large_orange_diamond:", "unicode": "1F536", "aliases": ""}, "deciduous_tree": {"keywords": "deciduous tree nature plant deciduous tree leaves fall color", "shortname": ":deciduous_tree:", "unicode": "1F333", "aliases": ""}, "o2": {"keywords": "negative squared latin capital letter o alphabet letter red-square", "shortname": ":o2:", "unicode": "1F17E", "aliases": ""}, "knife": {"keywords": "hocho ", "shortname": ":knife:", "unicode": "1F52A", "aliases": ""}, "nose": {"keywords": "nose smell sniff", "shortname": ":nose:", "unicode": "1F443", "aliases": ""}, "point_up": {"keywords": "white up pointing index direction fingers hand", "shortname": ":point_up:", "unicode": "261D", "aliases": ""}, "heavy_minus_sign": {"keywords": "heavy minus sign calculation math", "shortname": ":heavy_minus_sign:", "unicode": "2796", "aliases": ""}, "zzz": {"keywords": "sleeping symbol sleepy tired", "shortname": ":zzz:", "unicode": "1F4A4", "aliases": ""}, "corn": {"keywords": "ear of maize food plant vegetable corn maize food iowa kernel popcorn husk yellow stalk cob ear", "shortname": ":corn:", "unicode": "1F33D", "aliases": ""}, "kissing_smiling_eyes": {"keywords": "kissing face with smiling eyes affection face infatuation valentines kissing kiss smile pucker lips smooch", "shortname": ":kissing_smiling_eyes:", "unicode": "1F619", "aliases": ""}, "clock4": {"keywords": "clock face four oclock clock time", "shortname": ":clock4:", "unicode": "1F553", "aliases": ""}, "closed_umbrella": {"keywords": "closed umbrella drizzle rain weather umbrella closed rain moisture protection sun ultraviolet uv", "shortname": ":closed_umbrella:", "unicode": "1F302", "aliases": ""}, "stew": {"keywords": "pot of food food meat stew hearty soup thick hot pot", "shortname": ":stew:", "unicode": "1F372", "aliases": ""}, "santa": {"keywords": "father christmas christmas father christmas festival male man xmas santa saint nick jolly ho ho ho north pole presents gifts naughty nice sleigh father christmas holiday", "shortname": ":santa:", "unicode": "1F385", "aliases": ""}, "volcano": {"keywords": "volcano nature photo volcano lava magma hot explode", "shortname": ":volcano:", "unicode": "1F30B", "aliases": ""}, "kissing_heart": {"keywords": "face throwing a kiss affection face infatuation kiss blowing kiss heart love lips like love valentines", "shortname": ":kissing_heart:", "unicode": "1F618", "aliases": ""}, "no_pedestrians": {"keywords": "no pedestrians crossing rules walking no walk pedestrian stroll stride foot feet", "shortname": ":no_pedestrians:", "unicode": "1F6B7", "aliases": ""}, "bamboo": {"keywords": "pine decoration nature plant vegetable pine bamboo decoration new years spirits harvest prosperity longevity fortune luck welcome farming agriculture", "shortname": ":bamboo:", "unicode": "1F38D", "aliases": ""}, "eight_spoked_asterisk": {"keywords": "eight spoked asterisk green-square sparkle star", "shortname": ":eight_spoked_asterisk:", "unicode": "2733", "aliases": ""}, "person_with_blond_hair": {"keywords": "person with blond hair male man blonde young western westerner occidental", "shortname": ":person_with_blond_hair:", "unicode": "1F471", "aliases": ""}, "trophy": {"keywords": "trophy award ceremony contest ftw place win trophy first show place win reward achievement medal", "shortname": ":trophy:", "unicode": "1F3C6", "aliases": ""}, "on": {"keywords": "on with exclamation mark with left right arrow abo arrow words", "shortname": ":on:", "unicode": "1F51B", "aliases": ""}, "ok": {"keywords": "squared ok agree blue-square good yes", "shortname": ":ok:", "unicode": "1F197", "aliases": ""}, "package": {"keywords": "package gift mail", "shortname": ":package:", "unicode": "1F4E6", "aliases": ""}, "black_small_square": {"keywords": "black small square ", "shortname": ":black_small_square:", "unicode": "25AA", "aliases": ""}, "school_satchel": {"keywords": "school satchel bag education student school satchel backpack bag packing pack hike education adventure travel sightsee", "shortname": ":school_satchel:", "unicode": "1F392", "aliases": ""}, "o": {"keywords": "heavy large circle circle round", "shortname": ":o:", "unicode": "2B55", "aliases": ""}, "clock12": {"keywords": "clock face twelve oclock clock time", "shortname": ":clock12:", "unicode": "1F55B", "aliases": ""}, "chart_with_downwards_trend": {"keywords": "chart with downwards trend graph", "shortname": ":chart_with_downwards_trend:", "unicode": "1F4C9", "aliases": ""}, "clock10": {"keywords": "clock face ten oclock clock time", "shortname": ":clock10:", "unicode": "1F559", "aliases": ""}, "clock11": {"keywords": "clock face eleven oclock clock time", "shortname": ":clock11:", "unicode": "1F55A", "aliases": ""}, "no_bell": {"keywords": "bell with cancellation stroke mute sound volume", "shortname": ":no_bell:", "unicode": "1F515", "aliases": ""}, "sweat": {"keywords": "face with cold sweat cold sweat sick anxious worried clammy diaphoresis face hot", "shortname": ":sweat:", "unicode": "1F613", "aliases": ""}, "ox": {"keywords": "ox animal beef cow", "shortname": ":ox:", "unicode": "1F402", "aliases": ""}, "mountain_railway": {"keywords": "mountain railway transportation mountain railway rail train transport", "shortname": ":mountain_railway:", "unicode": "1F69E", "aliases": ""}, "tongue": {"keywords": "tongue mouth playful tongue mouth taste buds food silly playful tease kiss french kiss lick tasty playfulness silliness intimacy", "shortname": ":tongue:", "unicode": "1F445", "aliases": ""}, "womens": {"keywords": "womens symbol purple-square woman bathroom restroom sign girl female avatar", "shortname": ":womens:", "unicode": "1F6BA", "aliases": ""}, "baby_symbol": {"keywords": "baby symbol child orange-square baby crawl newborn human diaper small babe", "shortname": ":baby_symbol:", "unicode": "1F6BC", "aliases": ""}, "hospital": {"keywords": "hospital building doctor health surgery", "shortname": ":hospital:", "unicode": "1F3E5", "aliases": ""}, "baby_chick": {"keywords": "baby chick animal chicken chick baby bird chicken young woman cute", "shortname": ":baby_chick:", "unicode": "1F424", "aliases": ""}, "turtle": {"keywords": "turtle animal slow turtle shell tortoise chelonian reptile slow snap steady", "shortname": ":turtle:", "unicode": "1F422", "aliases": ""}, "black_square_button": {"keywords": "black square button frame", "shortname": ":black_square_button:", "unicode": "1F532", "aliases": ""}, "do_not_litter": {"keywords": "do not litter symbol bin garbage trash litter garbage waste no can trash", "shortname": ":do_not_litter:", "unicode": "1F6AF", "aliases": ""}, "wind_chime": {"keywords": "wind chime ding nature wind chime bell f\u016brin instrument music spirits soothing protective spiritual sound", "shortname": ":wind_chime:", "unicode": "1F390", "aliases": ""}, "waxing_crescent_moon": {"keywords": "waxing crescent moon symbol nature moon waxing sky night cheese phase", "shortname": ":waxing_crescent_moon:", "unicode": "1F312", "aliases": ""}, "tiger2": {"keywords": "tiger animal nature tiger cat striped tony tigger hobs", "shortname": ":tiger2:", "unicode": "1F405", "aliases": ""}, "two": {"keywords": "digit two 2 blue-square numbers prime", "shortname": ":two:", "unicode": "0032-20E3", "aliases": ""}, "dango": {"keywords": "dango food dango japanese dumpling mochi balls skewer", "shortname": ":dango:", "unicode": "1F361", "aliases": ""}, "red_circle": {"keywords": "large red circle shape", "shortname": ":red_circle:", "unicode": "1F534", "aliases": ""}, "syringe": {"keywords": "syringe blood drugs health hospital medicine needle", "shortname": ":syringe:", "unicode": "1F489", "aliases": ""}, "last_quarter_moon": {"keywords": "last quarter moon symbol nature moon last quarter sky night cheese phase", "shortname": ":last_quarter_moon:", "unicode": "1F317", "aliases": ""}, "tada": {"keywords": "party popper contulations party party popper tada celebration victory announcement climax congratulations", "shortname": ":tada:", "unicode": "1F389", "aliases": ""}, "ok_hand": {"keywords": "ok hand sign fingers limbs perfect okay ok smoke smoking marijuana joint pot 420", "shortname": ":ok_hand:", "unicode": "1F44C", "aliases": ""}, "custard": {"keywords": "custard desert food custard cream rich butter dessert cr\u00e8me br\u00fbl\u00e9e french", "shortname": ":custard:", "unicode": "1F36E", "aliases": ""}, "rowboat": {"keywords": "rowboat hobby ship sports water boat row oar paddle", "shortname": ":rowboat:", "unicode": "1F6A3", "aliases": ""}, "clock530": {"keywords": "clock face five-thirty clock time", "shortname": ":clock530:", "unicode": "1F560", "aliases": ""}, "heavy_multiplication_x": {"keywords": "heavy multiplication x calculation math", "shortname": ":heavy_multiplication_x:", "unicode": "2716", "aliases": ""}, "white_check_mark": {"keywords": "white heavy check mark agree green-square ok", "shortname": ":white_check_mark:", "unicode": "2705", "aliases": ""}, "tennis": {"keywords": "tennis racquet and ball balls green sports tennis racket racquet ball game net court love", "shortname": ":tennis:", "unicode": "1F3BE", "aliases": ""}, "question": {"keywords": "black question mark ornament confused doubt", "shortname": ":question:", "unicode": "2753", "aliases": ""}, "secret": {"keywords": "circled ideograph secret privacy", "shortname": ":secret:", "unicode": "3299", "aliases": ""}, "stars": {"keywords": "shooting star night photo shooting shoot star sky night comet meteoroid", "shortname": ":stars:", "unicode": "1F320", "aliases": ""}, "capital_abcd": {"keywords": "input symbol for latin capital letters alphabet blue-square words", "shortname": ":capital_abcd:", "unicode": "1F520", "aliases": ""}, "mahjong": {"keywords": "mahjong tile red dragon chinese game kanji", "shortname": ":mahjong:", "unicode": "1F004", "aliases": ""}, "bus": {"keywords": "bus car transportation vehicle bus school city transportation public", "shortname": ":bus:", "unicode": "1F68C", "aliases": ""}, "registered": {"keywords": "registered sign alphabet circle", "shortname": ":registered:", "unicode": "00AE", "aliases": ""}, "fireworks": {"keywords": "fireworks carnival congratulations festival photo fireworks independence celebration explosion july 4th rocket sky idea excitement", "shortname": ":fireworks:", "unicode": "1F386", "aliases": ""}, "construction": {"keywords": "construction sign caution progress wip", "shortname": ":construction:", "unicode": "1F6A7", "aliases": ""}, "link": {"keywords": "link symbol rings url", "shortname": ":link:", "unicode": "1F517", "aliases": ""}, "fallen_leaf": {"keywords": "fallen leaf leaves nature plant vegetable leaf fall color deciduous autumn", "shortname": ":fallen_leaf:", "unicode": "1F342", "aliases": ""}, "astonished": {"keywords": "astonished face face xox shocked surprise astonished", "shortname": ":astonished:", "unicode": "1F632", "aliases": ""}, "card_index": {"keywords": "card index business stationery", "shortname": ":card_index:", "unicode": "1F4C7", "aliases": ""}, "ear": {"keywords": "ear face hear listen sound", "shortname": ":ear:", "unicode": "1F442", "aliases": ""}, "radio_button": {"keywords": "radio button input", "shortname": ":radio_button:", "unicode": "1F518", "aliases": ""}, "bug": {"keywords": "bug insect nature bug insect virus error", "shortname": ":bug:", "unicode": "1F41B", "aliases": ""}, "penguin": {"keywords": "penguin animal nature", "shortname": ":penguin:", "unicode": "1F427", "aliases": ""}, "football": {"keywords": "american football NFL balls sports football ball sport america american", "shortname": ":football:", "unicode": "1F3C8", "aliases": ""}, "arrow_heading_down": {"keywords": "arrow pointing rightwards then curving downwards arrow blue-square", "shortname": ":arrow_heading_down:", "unicode": "2935", "aliases": ""}, "congratulations": {"keywords": "circled ideograph congratulation chinese japanese kanji", "shortname": ":congratulations:", "unicode": "3297", "aliases": ""}, "dromedary_camel": {"keywords": "dromedary camel animal desert hot dromedary camel hump desert middle east heat hot water hump day wednesday sex", "shortname": ":dromedary_camel:", "unicode": "1F42A", "aliases": ""}, "skull": {"keywords": "skull dead skeleton dying", "shortname": ":skull:", "unicode": "1F480", "aliases": ":skeleton:"}, "bride_with_veil": {"keywords": "bride with veil couple marriage wedding bride wedding planning veil gown dress engagement white", "shortname": ":bride_with_veil:", "unicode": "1F470", "aliases": ""}, "stuck_out_tongue": {"keywords": "face with stuck-out tongue childish face mischievous playful prank tongue silly playful cheeky", "shortname": ":stuck_out_tongue:", "unicode": "1F61B", "aliases": ""}, "relaxed": {"keywords": "white smiling face blush face happiness massage smile", "shortname": ":relaxed:", "unicode": "263A", "aliases": ""}, "grey_question": {"keywords": "white question mark ornament doubts", "shortname": ":grey_question:", "unicode": "2754", "aliases": ""}, "vhs": {"keywords": "videocassette oldschool record video", "shortname": ":vhs:", "unicode": "1F4FC", "aliases": ""}, "strawberry": {"keywords": "strawberry food fruit nature strawberry short cake berry", "shortname": ":strawberry:", "unicode": "1F353", "aliases": ""}, "cat2": {"keywords": "cat animal meow pet cat kitten meow", "shortname": ":cat2:", "unicode": "1F408", "aliases": ""}, "athletic_shoe": {"keywords": "athletic shoe shoes sports", "shortname": ":athletic_shoe:", "unicode": "1F45F", "aliases": ""}, "star2": {"keywords": "glowing star night sparkle glow glowing star five points classic", "shortname": ":star2:", "unicode": "1F31F", "aliases": ""}, "cake": {"keywords": "shortcake desert food cake short dessert strawberry", "shortname": ":cake:", "unicode": "1F370", "aliases": ""}, "arrow_double_up": {"keywords": "black up-pointing double triangle arrow blue-square", "shortname": ":arrow_double_up:", "unicode": "23EB", "aliases": ""}, "toilet": {"keywords": "toilet restroom wc toilet bathroom throne porcelain waste flush plumbing", "shortname": ":toilet:", "unicode": "1F6BD", "aliases": ""}, "ab": {"keywords": "negative squared ab alphabet red-square", "shortname": ":ab:", "unicode": "1F18E", "aliases": ""}, "hash": {"keywords": "number sign symbol", "shortname": ":hash:", "unicode": "0023-20E3", "aliases": ""}, "sweet_potato": {"keywords": "roasted sweet potato food nature sweet potato potassium roasted roast", "shortname": ":sweet_potato:", "unicode": "1F360", "aliases": ""}, "mortar_board": {"keywords": "graduation cap cap college degree graduation hat school university graduation cap mortarboard academic education ceremony square tassel", "shortname": ":mortar_board:", "unicode": "1F393", "aliases": ""}, "up": {"keywords": "squared up with exclamation mark blue-square", "shortname": ":up:", "unicode": "1F199", "aliases": ""}, "hatched_chick": {"keywords": "front-facing baby chick baby chicken chick baby bird chicken young woman cute", "shortname": ":hatched_chick:", "unicode": "1F425", "aliases": ""}, "triangular_flag_on_post": {"keywords": "triangular flag on post triangle triangular flag golf post flagpole", "shortname": ":triangular_flag_on_post:", "unicode": "1F6A9", "aliases": ""}, "black_nib": {"keywords": "black nib pen stationery", "shortname": ":black_nib:", "unicode": "2712", "aliases": ""}, "pig": {"keywords": "pig face animal oink", "shortname": ":pig:", "unicode": "1F437", "aliases": ""}, "floppy_disk": {"keywords": "floppy disk oldschool save technology floppy disk storage information computer drive megabyte", "shortname": ":floppy_disk:", "unicode": "1F4BE", "aliases": ""}, "black_large_square": {"keywords": "black large square shape", "shortname": ":black_large_square:", "unicode": "2B1B", "aliases": ""}, "ship": {"keywords": "ship titanic transportation ferry ship boat", "shortname": ":ship:", "unicode": "1F6A2", "aliases": ""}, "8ball": {"keywords": "billiards pool billiards eight ball pool pocket ball cue", "shortname": ":8ball:", "unicode": "1F3B1", "aliases": ""}, "telephone_receiver": {"keywords": "telephone receiver communication dial technology", "shortname": ":telephone_receiver:", "unicode": "1F4DE", "aliases": ""}, "u7981": {"keywords": "squared cjk unified ideograph-7981 chinese forbidden japanese kanji limit restricted", "shortname": ":u7981:", "unicode": "1F232", "aliases": ""}, "person_frowning": {"keywords": "person frowning female girl woman dejected rejected sad frown", "shortname": ":person_frowning:", "unicode": "1F64D", "aliases": ""}, "movie_camera": {"keywords": "movie camera film record movie camera camcorder video motion picture", "shortname": ":movie_camera:", "unicode": "1F3A5", "aliases": ""}, "lemon": {"keywords": "lemon fruit nature lemon yellow citrus", "shortname": ":lemon:", "unicode": "1F34B", "aliases": ""}, "arrow_double_down": {"keywords": "black down-pointing double triangle arrow blue-square", "shortname": ":arrow_double_down:", "unicode": "23EC", "aliases": ""}, "peach": {"keywords": "peach food fruit nature peach fruit juicy pit", "shortname": ":peach:", "unicode": "1F351", "aliases": ""}, "boot": {"keywords": "womans boots fashion shoes", "shortname": ":boot:", "unicode": "1F462", "aliases": ""}, "ng": {"keywords": "squared ng blue-square", "shortname": ":ng:", "unicode": "1F196", "aliases": ""}, "end": {"keywords": "end with leftwards arrow above arrow words", "shortname": ":end:", "unicode": "1F51A", "aliases": ""}, "mountain_bicyclist": {"keywords": "mountain bicyclist human sports transportation bicyclist mountain bike pedal bicycle transportation", "shortname": ":mountain_bicyclist:", "unicode": "1F6B5", "aliases": ""}, "book": {"keywords": "open book library literature", "shortname": ":book:", "unicode": "1F4D6", "aliases": ""}, "clock1130": {"keywords": "clock face eleven-thirty clock time", "shortname": ":clock1130:", "unicode": "1F566", "aliases": ""}, "oncoming_bus": {"keywords": "oncoming bus transportation vehicle bus school city transportation public", "shortname": ":oncoming_bus:", "unicode": "1F68D", "aliases": ""}, "clock1030": {"keywords": "clock face ten-thirty clock time", "shortname": ":clock1030:", "unicode": "1F565", "aliases": ""}, "heart_eyes_cat": {"keywords": "smiling cat face with heart-shaped eyes affection animal cats like love valentines lovestruck love heart", "shortname": ":heart_eyes_cat:", "unicode": "1F63B", "aliases": ""}, "repeat": {"keywords": "clockwise rightwards and leftwards open circle arr loop record", "shortname": ":repeat:", "unicode": "1F501", "aliases": ""}, "star": {"keywords": "white medium star night yellow", "shortname": ":star:", "unicode": "2B50", "aliases": ""}, "dart": {"keywords": "direct hit bar game direct hit bullseye dart archery game fletching arrow sport", "shortname": ":dart:", "unicode": "1F3AF", "aliases": ""}, "envelope": {"keywords": "envelope communication letter mail postal", "shortname": ":envelope:", "unicode": "2709", "aliases": ""}, "footprints": {"keywords": "footprints feet", "shortname": ":footprints:", "unicode": "1F463", "aliases": ""}, "smiley": {"keywords": "smiling face with open mouth face haha happy joy smiling smile smiley", "shortname": ":smiley:", "unicode": "1F603", "aliases": ""}, "pear": {"keywords": "pear fruit nature pear fruit shape", "shortname": ":pear:", "unicode": "1F350", "aliases": ""}, "taurus": {"keywords": "taurus purple-square sign taurus bull astrology greek constellation stars zodiac sign zodiac horoscope", "shortname": ":taurus:", "unicode": "2649", "aliases": ""}, "articulated_lorry": {"keywords": "articulated lorry cars transportation vehicle truck delivery semi lorry articulated", "shortname": ":articulated_lorry:", "unicode": "1F69B", "aliases": ""}, "u6e80": {"keywords": "squared cjk unified ideograph-6e80 chinese full japanese kanji red-square", "shortname": ":u6e80:", "unicode": "1F235", "aliases": ""}, "money_with_wings": {"keywords": "money with wings bills dollar payment money wings easy spend work lost blown burned gift cash dollar", "shortname": ":money_with_wings:", "unicode": "1F4B8", "aliases": ""}, "black_medium_square": {"keywords": "black medium square shape", "shortname": ":black_medium_square:", "unicode": "25FC", "aliases": ""}, "closed_book": {"keywords": "closed book knowledge library read", "shortname": ":closed_book:", "unicode": "1F4D5", "aliases": ""}, "ghost": {"keywords": "ghost halloween", "shortname": ":ghost:", "unicode": "1F47B", "aliases": ""}, "droplet": {"keywords": "droplet drip faucet water drop droplet h20 water aqua tear sweat rain moisture wet moist spit", "shortname": ":droplet:", "unicode": "1F4A7", "aliases": ""}, "spades": {"keywords": "black spade suit cards poker", "shortname": ":spades:", "unicode": "2660", "aliases": ""}, "vibration_mode": {"keywords": "vibration mode orange-square phone", "shortname": ":vibration_mode:", "unicode": "1F4F3", "aliases": ""}, "expressionless": {"keywords": "expressionless face expressionless blank void vapid without expression face indifferent", "shortname": ":expressionless:", "unicode": "1F611", "aliases": ""}, "dvd": {"keywords": "dvd cd disc disk", "shortname": ":dvd:", "unicode": "1F4C0", "aliases": ""}, "mask": {"keywords": "face with medical mask face ill sick sick virus flu medical mask", "shortname": ":mask:", "unicode": "1F637", "aliases": ""}, "mag_right": {"keywords": "right-pointing magnifying glass search zoom detective investigator detail details", "shortname": ":mag_right:", "unicode": "1F50E", "aliases": ""}, "bento": {"keywords": "bento box box food japanese bento japanese rice meal box obento convenient lunchbox", "shortname": ":bento:", "unicode": "1F371", "aliases": ""}, "sunrise_over_mountains": {"keywords": "sunrise over mountains photo vacation view sunrise sun morning mountain rural color sky", "shortname": ":sunrise_over_mountains:", "unicode": "1F304", "aliases": ""}, "partly_sunny": {"keywords": "sun behind cloud cloud morning nature weather", "shortname": ":partly_sunny:", "unicode": "26C5", "aliases": ""}, "heavy_dollar_sign": {"keywords": "heavy dollar sign currency money payment dollar currency money cash sale purchase value", "shortname": ":heavy_dollar_sign:", "unicode": "1F4B2", "aliases": ""}, "scroll": {"keywords": "scroll documents", "shortname": ":scroll:", "unicode": "1F4DC", "aliases": ""}}
\ No newline at end of file
diff --git a/pagure/static/emoji/emoji_strategy.json b/pagure/static/emoji/emoji_strategy.json
deleted file mode 120000
index c74068b..0000000
--- a/pagure/static/emoji/emoji_strategy.json
+++ /dev/null
@@ -1 +0,0 @@
-emoji_strategy-1.3.1.json
\ No newline at end of file
diff --git a/pagure/static/emoji/emojione-1.3.1.js b/pagure/static/emoji/emojione-1.3.1.js
deleted file mode 100644
index e961706..0000000
--- a/pagure/static/emoji/emojione-1.3.1.js
+++ /dev/null
@@ -1,466 +0,0 @@
-/* jshint maxerr: 10000 */
-/* jslint unused: true */
-/* jshint shadow: true */
-/* jshint -W075 */
-(function(ns){
-
-    ns.emojioneList = {':hash:':["0023-fe0f-20e3","0023-20e3"],':zero:':["0030-fe0f-20e3","0030-20e3"],':one:':["0031-fe0f-20e3","0031-20e3"],':two:':["0032-fe0f-20e3","0032-20e3"],':three:':["0033-fe0f-20e3","0033-20e3"],':four:':["0034-fe0f-20e3","0034-20e3"],':five:':["0035-fe0f-20e3","0035-20e3"],':six:':["0036-fe0f-20e3","0036-20e3"],':seven:':["0037-fe0f-20e3","0037-20e3"],':eight:':["0038-fe0f-20e3","0038-20e3"],':nine:':["0039-fe0f-20e3","0039-20e3"],':copyright:':["00a9"],':registered:':["00ae"],':bangbang:':["203c-fe0f","203c"],':interrobang:':["2049-fe0f","2049"],':tm:':["2122"],':information_source:':["2139-fe0f","2139"],':left_right_arrow:':["2194-fe0f","2194"],':arrow_up_down:':["2195-fe0f","2195"],':arrow_upper_left:':["2196-fe0f","2196"],':arrow_upper_right:':["2197-fe0f","2197"],':arrow_lower_right:':["2198-fe0f","2198"],':arrow_lower_left:':["2199-fe0f","2199"],':leftwards_arrow_with_hook:':["21a9-fe0f","21a9"],':arrow_right_hook:':["21aa-fe0f","21aa"],':watch:':["231a-fe0f","231a"],':hourglass:':["231b-fe0f","231b"],':fast_forward:':["23e9"],':rewind:':["23ea"],':arrow_double_up:':["23eb"],':arrow_double_down:':["23ec"],':alarm_clock:':["23f0"],':hourglass_flowing_sand:':["23f3"],':m:':["24c2-fe0f","24c2"],':black_small_square:':["25aa-fe0f","25aa"],':white_small_square:':["25ab-fe0f","25ab"],':arrow_forward:':["25b6-fe0f","25b6"],':arrow_backward:':["25c0-fe0f","25c0"],':white_medium_square:':["25fb-fe0f","25fb"],':black_medium_square:':["25fc-fe0f","25fc"],':white_medium_small_square:':["25fd-fe0f","25fd"],':black_medium_small_square:':["25fe-fe0f","25fe"],':sunny:':["2600-fe0f","2600"],':cloud:':["2601-fe0f","2601"],':telephone:':["260e-fe0f","260e"],':ballot_box_with_check:':["2611-fe0f","2611"],':umbrella:':["2614-fe0f","2614"],':coffee:':["2615-fe0f","2615"],':point_up:':["261d-fe0f","261d"],':relaxed:':["263a-fe0f","263a"],':aries:':["2648-fe0f","2648"],':taurus:':["2649-fe0f","2649"],':gemini:':["264a-fe0f","264a"],':cancer:':["264b-fe0f","264b"],':leo:':["264c-fe0f","264c"],':virgo:':["264d-fe0f","264d"],':libra:':["264e-fe0f","264e"],':scorpius:':["264f-fe0f","264f"],':sagittarius:':["2650-fe0f","2650"],':capricorn:':["2651-fe0f","2651"],':aquarius:':["2652-fe0f","2652"],':pisces:':["2653-fe0f","2653"],':spades:':["2660-fe0f","2660"],':clubs:':["2663-fe0f","2663"],':hearts:':["2665-fe0f","2665"],':diamonds:':["2666-fe0f","2666"],':hotsprings:':["2668-fe0f","2668"],':recycle:':["267b-fe0f","267b"],':wheelchair:':["267f-fe0f","267f"],':anchor:':["2693-fe0f","2693"],':warning:':["26a0-fe0f","26a0"],':zap:':["26a1-fe0f","26a1"],':white_circle:':["26aa-fe0f","26aa"],':black_circle:':["26ab-fe0f","26ab"],':soccer:':["26bd-fe0f","26bd"],':baseball:':["26be-fe0f","26be"],':snowman:':["26c4-fe0f","26c4"],':partly_sunny:':["26c5-fe0f","26c5"],':ophiuchus:':["26ce"],':no_entry:':["26d4-fe0f","26d4"],':church:':["26ea-fe0f","26ea"],':fountain:':["26f2-fe0f","26f2"],':golf:':["26f3-fe0f","26f3"],':sailboat:':["26f5-fe0f","26f5"],':tent:':["26fa-fe0f","26fa"],':fuelpump:':["26fd-fe0f","26fd"],':scissors:':["2702-fe0f","2702"],':white_check_mark:':["2705"],':airplane:':["2708-fe0f","2708"],':envelope:':["2709-fe0f","2709"],':fist:':["270a"],':raised_hand:':["270b"],':v:':["270c-fe0f","270c"],':pencil2:':["270f-fe0f","270f"],':black_nib:':["2712-fe0f","2712"],':heavy_check_mark:':["2714-fe0f","2714"],':heavy_multiplication_x:':["2716-fe0f","2716"],':sparkles:':["2728"],':eight_spoked_asterisk:':["2733-fe0f","2733"],':eight_pointed_black_star:':["2734-fe0f","2734"],':snowflake:':["2744-fe0f","2744"],':sparkle:':["2747-fe0f","2747"],':x:':["274c"],':negative_squared_cross_mark:':["274e"],':question:':["2753"],':grey_question:':["2754"],':grey_exclamation:':["2755"],':exclamation:':["2757-fe0f","2757"],':heart:':["2764-fe0f","2764"],':heavy_plus_sign:':["2795"],':heavy_minus_sign:':["2796"],':heavy_division_sign:':["2797"],':arrow_right:':["27a1-fe0f","27a1"],':curly_loop:':["27b0"],':arrow_heading_up:':["2934-fe0f","2934"],':arrow_heading_down:':["2935-fe0f","2935"],':arrow_left:':["2b05-fe0f","2b05"],':arrow_up:':["2b06-fe0f","2b06"],':arrow_down:':["2b07-fe0f","2b07"],':black_large_square:':["2b1b-fe0f","2b1b"],':white_large_square:':["2b1c-fe0f","2b1c"],':star:':["2b50-fe0f","2b50"],':o:':["2b55-fe0f","2b55"],':wavy_dash:':["3030"],':part_alternation_mark:':["303d-fe0f","303d"],':congratulations:':["3297-fe0f","3297"],':secret:':["3299-fe0f","3299"],':mahjong:':["1f004-fe0f","1f004"],':black_joker:':["1f0cf"],':a:':["1f170"],':b:':["1f171"],':o2:':["1f17e"],':parking:':["1f17f-fe0f","1f17f"],':ab:':["1f18e"],':cl:':["1f191"],':cool:':["1f192"],':free:':["1f193"],':id:':["1f194"],':new:':["1f195"],':ng:':["1f196"],':ok:':["1f197"],':sos:':["1f198"],':up:':["1f199"],':vs:':["1f19a"],':cn:':["1f1e8-1f1f3"],':de:':["1f1e9-1f1ea"],':es:':["1f1ea-1f1f8"],':fr:':["1f1eb-1f1f7"],':gb:':["1f1ec-1f1e7"],':it:':["1f1ee-1f1f9"],':jp:':["1f1ef-1f1f5"],':kr:':["1f1f0-1f1f7"],':us:':["1f1fa-1f1f8"],':ru:':["1f1f7-1f1fa"],':koko:':["1f201"],':sa:':["1f202"],':u7121:':["1f21a-fe0f","1f21a"],':u6307:':["1f22f-fe0f","1f22f"],':u7981:':["1f232"],':u7a7a:':["1f233"],':u5408:':["1f234"],':u6e80:':["1f235"],':u6709:':["1f236"],':u6708:':["1f237"],':u7533:':["1f238"],':u5272:':["1f239"],':u55b6:':["1f23a"],':ideograph_advantage:':["1f250"],':accept:':["1f251"],':cyclone:':["1f300"],':foggy:':["1f301"],':closed_umbrella:':["1f302"],':night_with_stars:':["1f303"],':sunrise_over_mountains:':["1f304"],':sunrise:':["1f305"],':city_dusk:':["1f306"],':city_sunset:':["1f307"],':city_sunrise:':["1f307"],':rainbow:':["1f308"],':bridge_at_night:':["1f309"],':ocean:':["1f30a"],':volcano:':["1f30b"],':milky_way:':["1f30c"],':earth_asia:':["1f30f"],':new_moon:':["1f311"],':first_quarter_moon:':["1f313"],':waxing_gibbous_moon:':["1f314"],':full_moon:':["1f315"],':crescent_moon:':["1f319"],':first_quarter_moon_with_face:':["1f31b"],':star2:':["1f31f"],':stars:':["1f320"],':chestnut:':["1f330"],':seedling:':["1f331"],':palm_tree:':["1f334"],':cactus:':["1f335"],':tulip:':["1f337"],':cherry_blossom:':["1f338"],':rose:':["1f339"],':hibiscus:':["1f33a"],':sunflower:':["1f33b"],':blossom:':["1f33c"],':corn:':["1f33d"],':ear_of_rice:':["1f33e"],':herb:':["1f33f"],':four_leaf_clover:':["1f340"],':maple_leaf:':["1f341"],':fallen_leaf:':["1f342"],':leaves:':["1f343"],':mushroom:':["1f344"],':tomato:':["1f345"],':eggplant:':["1f346"],':grapes:':["1f347"],':melon:':["1f348"],':watermelon:':["1f349"],':tangerine:':["1f34a"],':banana:':["1f34c"],':pineapple:':["1f34d"],':apple:':["1f34e"],':green_apple:':["1f34f"],':peach:':["1f351"],':cherries:':["1f352"],':strawberry:':["1f353"],':hamburger:':["1f354"],':pizza:':["1f355"],':meat_on_bone:':["1f356"],':poultry_leg:':["1f357"],':rice_cracker:':["1f358"],':rice_ball:':["1f359"],':rice:':["1f35a"],':curry:':["1f35b"],':ramen:':["1f35c"],':spaghetti:':["1f35d"],':bread:':["1f35e"],':fries:':["1f35f"],':sweet_potato:':["1f360"],':dango:':["1f361"],':oden:':["1f362"],':sushi:':["1f363"],':fried_shrimp:':["1f364"],':fish_cake:':["1f365"],':icecream:':["1f366"],':shaved_ice:':["1f367"],':ice_cream:':["1f368"],':doughnut:':["1f369"],':cookie:':["1f36a"],':chocolate_bar:':["1f36b"],':candy:':["1f36c"],':lollipop:':["1f36d"],':custard:':["1f36e"],':honey_pot:':["1f36f"],':cake:':["1f370"],':bento:':["1f371"],':stew:':["1f372"],':egg:':["1f373"],':fork_and_knife:':["1f374"],':tea:':["1f375"],':sake:':["1f376"],':wine_glass:':["1f377"],':cocktail:':["1f378"],':tropical_drink:':["1f379"],':beer:':["1f37a"],':beers:':["1f37b"],':ribbon:':["1f380"],':gift:':["1f381"],':birthday:':["1f382"],':jack_o_lantern:':["1f383"],':christmas_tree:':["1f384"],':santa:':["1f385"],':fireworks:':["1f386"],':sparkler:':["1f387"],':balloon:':["1f388"],':tada:':["1f389"],':confetti_ball:':["1f38a"],':tanabata_tree:':["1f38b"],':crossed_flags:':["1f38c"],':bamboo:':["1f38d"],':dolls:':["1f38e"],':flags:':["1f38f"],':wind_chime:':["1f390"],':rice_scene:':["1f391"],':school_satchel:':["1f392"],':mortar_board:':["1f393"],':carousel_horse:':["1f3a0"],':ferris_wheel:':["1f3a1"],':roller_coaster:':["1f3a2"],':fishing_pole_and_fish:':["1f3a3"],':microphone:':["1f3a4"],':movie_camera:':["1f3a5"],':cinema:':["1f3a6"],':headphones:':["1f3a7"],':art:':["1f3a8"],':tophat:':["1f3a9"],':circus_tent:':["1f3aa"],':ticket:':["1f3ab"],':clapper:':["1f3ac"],':performing_arts:':["1f3ad"],':video_game:':["1f3ae"],':dart:':["1f3af"],':slot_machine:':["1f3b0"],':8ball:':["1f3b1"],':game_die:':["1f3b2"],':bowling:':["1f3b3"],':flower_playing_cards:':["1f3b4"],':musical_note:':["1f3b5"],':notes:':["1f3b6"],':saxophone:':["1f3b7"],':guitar:':["1f3b8"],':musical_keyboard:':["1f3b9"],':trumpet:':["1f3ba"],':violin:':["1f3bb"],':musical_score:':["1f3bc"],':running_shirt_with_sash:':["1f3bd"],':tennis:':["1f3be"],':ski:':["1f3bf"],':basketball:':["1f3c0"],':checkered_flag:':["1f3c1"],':snowboarder:':["1f3c2"],':runner:':["1f3c3"],':surfer:':["1f3c4"],':trophy:':["1f3c6"],':football:':["1f3c8"],':swimmer:':["1f3ca"],':house:':["1f3e0"],':house_with_garden:':["1f3e1"],':office:':["1f3e2"],':post_office:':["1f3e3"],':hospital:':["1f3e5"],':bank:':["1f3e6"],':atm:':["1f3e7"],':hotel:':["1f3e8"],':love_hotel:':["1f3e9"],':convenience_store:':["1f3ea"],':school:':["1f3eb"],':department_store:':["1f3ec"],':factory:':["1f3ed"],':izakaya_lantern:':["1f3ee"],':japanese_castle:':["1f3ef"],':european_castle:':["1f3f0"],':snail:':["1f40c"],':snake:':["1f40d"],':racehorse:':["1f40e"],':sheep:':["1f411"],':monkey:':["1f412"],':chicken:':["1f414"],':boar:':["1f417"],':elephant:':["1f418"],':octopus:':["1f419"],':shell:':["1f41a"],':bug:':["1f41b"],':ant:':["1f41c"],':bee:':["1f41d"],':beetle:':["1f41e"],':fish:':["1f41f"],':tropical_fish:':["1f420"],':blowfish:':["1f421"],':turtle:':["1f422"],':hatching_chick:':["1f423"],':baby_chick:':["1f424"],':hatched_chick:':["1f425"],':bird:':["1f426"],':penguin:':["1f427"],':koala:':["1f428"],':poodle:':["1f429"],':camel:':["1f42b"],':dolphin:':["1f42c"],':mouse:':["1f42d"],':cow:':["1f42e"],':tiger:':["1f42f"],':rabbit:':["1f430"],':cat:':["1f431"],':dragon_face:':["1f432"],':whale:':["1f433"],':horse:':["1f434"],':monkey_face:':["1f435"],':dog:':["1f436"],':pig:':["1f437"],':frog:':["1f438"],':hamster:':["1f439"],':wolf:':["1f43a"],':bear:':["1f43b"],':panda_face:':["1f43c"],':pig_nose:':["1f43d"],':feet:':["1f43e"],':eyes:':["1f440"],':ear:':["1f442"],':nose:':["1f443"],':lips:':["1f444"],':tongue:':["1f445"],':point_up_2:':["1f446"],':point_down:':["1f447"],':point_left:':["1f448"],':point_right:':["1f449"],':punch:':["1f44a"],':wave:':["1f44b"],':ok_hand:':["1f44c"],':thumbsup:':["1f44d"],':+1:':["1f44d"],':thumbsdown:':["1f44e"],':-1:':["1f44e"],':clap:':["1f44f"],':open_hands:':["1f450"],':crown:':["1f451"],':womans_hat:':["1f452"],':eyeglasses:':["1f453"],':necktie:':["1f454"],':shirt:':["1f455"],':jeans:':["1f456"],':dress:':["1f457"],':kimono:':["1f458"],':bikini:':["1f459"],':womans_clothes:':["1f45a"],':purse:':["1f45b"],':handbag:':["1f45c"],':pouch:':["1f45d"],':mans_shoe:':["1f45e"],':athletic_shoe:':["1f45f"],':high_heel:':["1f460"],':sandal:':["1f461"],':boot:':["1f462"],':footprints:':["1f463"],':bust_in_silhouette:':["1f464"],':boy:':["1f466"],':girl:':["1f467"],':man:':["1f468"],':woman:':["1f469"],':family:':["1f46a"],':couple:':["1f46b"],':cop:':["1f46e"],':dancers:':["1f46f"],':bride_with_veil:':["1f470"],':person_with_blond_hair:':["1f471"],':man_with_gua_pi_mao:':["1f472"],':man_with_turban:':["1f473"],':older_man:':["1f474"],':older_woman:':["1f475"],':grandma:':["1f475"],':baby:':["1f476"],':construction_worker:':["1f477"],':princess:':["1f478"],':japanese_ogre:':["1f479"],':japanese_goblin:':["1f47a"],':ghost:':["1f47b"],':angel:':["1f47c"],':alien:':["1f47d"],':space_invader:':["1f47e"],':imp:':["1f47f"],':skull:':["1f480"],':skeleton:':["1f480"],':card_index:':["1f4c7"],':information_desk_person:':["1f481"],':guardsman:':["1f482"],':dancer:':["1f483"],':lipstick:':["1f484"],':nail_care:':["1f485"],':ledger:':["1f4d2"],':massage:':["1f486"],':notebook:':["1f4d3"],':haircut:':["1f487"],':notebook_with_decorative_cover:':["1f4d4"],':barber:':["1f488"],':closed_book:':["1f4d5"],':syringe:':["1f489"],':book:':["1f4d6"],':pill:':["1f48a"],':green_book:':["1f4d7"],':kiss:':["1f48b"],':blue_book:':["1f4d8"],':love_letter:':["1f48c"],':orange_book:':["1f4d9"],':ring:':["1f48d"],':books:':["1f4da"],':gem:':["1f48e"],':name_badge:':["1f4db"],':couplekiss:':["1f48f"],':scroll:':["1f4dc"],':bouquet:':["1f490"],':pencil:':["1f4dd"],':couple_with_heart:':["1f491"],':telephone_receiver:':["1f4de"],':wedding:':["1f492"],':pager:':["1f4df"],':fax:':["1f4e0"],':heartbeat:':["1f493"],':satellite:':["1f4e1"],':loudspeaker:':["1f4e2"],':broken_heart:':["1f494"],':mega:':["1f4e3"],':outbox_tray:':["1f4e4"],':two_hearts:':["1f495"],':inbox_tray:':["1f4e5"],':package:':["1f4e6"],':sparkling_heart:':["1f496"],':e-mail:':["1f4e7"],':email:':["1f4e7"],':incoming_envelope:':["1f4e8"],':heartpulse:':["1f497"],':envelope_with_arrow:':["1f4e9"],':mailbox_closed:':["1f4ea"],':cupid:':["1f498"],':mailbox:':["1f4eb"],':postbox:':["1f4ee"],':blue_heart:':["1f499"],':newspaper:':["1f4f0"],':iphone:':["1f4f1"],':green_heart:':["1f49a"],':calling:':["1f4f2"],':vibration_mode:':["1f4f3"],':yellow_heart:':["1f49b"],':mobile_phone_off:':["1f4f4"],':signal_strength:':["1f4f6"],':purple_heart:':["1f49c"],':camera:':["1f4f7"],':video_camera:':["1f4f9"],':gift_heart:':["1f49d"],':tv:':["1f4fa"],':radio:':["1f4fb"],':revolving_hearts:':["1f49e"],':vhs:':["1f4fc"],':arrows_clockwise:':["1f503"],':heart_decoration:':["1f49f"],':loud_sound:':["1f50a"],':battery:':["1f50b"],':diamond_shape_with_a_dot_inside:':["1f4a0"],':electric_plug:':["1f50c"],':mag:':["1f50d"],':bulb:':["1f4a1"],':mag_right:':["1f50e"],':lock_with_ink_pen:':["1f50f"],':anger:':["1f4a2"],':closed_lock_with_key:':["1f510"],':key:':["1f511"],':bomb:':["1f4a3"],':lock:':["1f512"],':unlock:':["1f513"],':zzz:':["1f4a4"],':bell:':["1f514"],':bookmark:':["1f516"],':boom:':["1f4a5"],':link:':["1f517"],':radio_button:':["1f518"],':sweat_drops:':["1f4a6"],':back:':["1f519"],':end:':["1f51a"],':droplet:':["1f4a7"],':on:':["1f51b"],':soon:':["1f51c"],':dash:':["1f4a8"],':top:':["1f51d"],':underage:':["1f51e"],':poop:':["1f4a9"],':shit:':["1f4a9"],':hankey:':["1f4a9"],':poo:':["1f4a9"],':keycap_ten:':["1f51f"],':muscle:':["1f4aa"],':capital_abcd:':["1f520"],':abcd:':["1f521"],':dizzy:':["1f4ab"],':1234:':["1f522"],':symbols:':["1f523"],':speech_balloon:':["1f4ac"],':abc:':["1f524"],':fire:':["1f525"],':flame:':["1f525"],':white_flower:':["1f4ae"],':flashlight:':["1f526"],':wrench:':["1f527"],':100:':["1f4af"],':hammer:':["1f528"],':nut_and_bolt:':["1f529"],':moneybag:':["1f4b0"],':knife:':["1f52a"],':gun:':["1f52b"],':currency_exchange:':["1f4b1"],':crystal_ball:':["1f52e"],':heavy_dollar_sign:':["1f4b2"],':six_pointed_star:':["1f52f"],':credit_card:':["1f4b3"],':beginner:':["1f530"],':trident:':["1f531"],':yen:':["1f4b4"],':black_square_button:':["1f532"],':white_square_button:':["1f533"],':dollar:':["1f4b5"],':red_circle:':["1f534"],':large_blue_circle:':["1f535"],':money_with_wings:':["1f4b8"],':large_orange_diamond:':["1f536"],':large_blue_diamond:':["1f537"],':chart:':["1f4b9"],':small_orange_diamond:':["1f538"],':small_blue_diamond:':["1f539"],':seat:':["1f4ba"],':small_red_triangle:':["1f53a"],':small_red_triangle_down:':["1f53b"],':computer:':["1f4bb"],':arrow_up_small:':["1f53c"],':briefcase:':["1f4bc"],':arrow_down_small:':["1f53d"],':clock1:':["1f550"],':minidisc:':["1f4bd"],':clock2:':["1f551"],':floppy_disk:':["1f4be"],':clock3:':["1f552"],':cd:':["1f4bf"],':clock4:':["1f553"],':dvd:':["1f4c0"],':clock5:':["1f554"],':clock6:':["1f555"],':file_folder:':["1f4c1"],':clock7:':["1f556"],':clock8:':["1f557"],':open_file_folder:':["1f4c2"],':clock9:':["1f558"],':clock10:':["1f559"],':page_with_curl:':["1f4c3"],':clock11:':["1f55a"],':clock12:':["1f55b"],':page_facing_up:':["1f4c4"],':mount_fuji:':["1f5fb"],':tokyo_tower:':["1f5fc"],':date:':["1f4c5"],':statue_of_liberty:':["1f5fd"],':japan:':["1f5fe"],':calendar:':["1f4c6"],':moyai:':["1f5ff"],':grin:':["1f601"],':joy:':["1f602"],':smiley:':["1f603"],':chart_with_upwards_trend:':["1f4c8"],':smile:':["1f604"],':sweat_smile:':["1f605"],':chart_with_downwards_trend:':["1f4c9"],':laughing:':["1f606"],':satisfied:':["1f606"],':wink:':["1f609"],':bar_chart:':["1f4ca"],':blush:':["1f60a"],':yum:':["1f60b"],':clipboard:':["1f4cb"],':relieved:':["1f60c"],':heart_eyes:':["1f60d"],':pushpin:':["1f4cc"],':smirk:':["1f60f"],':unamused:':["1f612"],':round_pushpin:':["1f4cd"],':sweat:':["1f613"],':pensive:':["1f614"],':paperclip:':["1f4ce"],':confounded:':["1f616"],':kissing_heart:':["1f618"],':straight_ruler:':["1f4cf"],':kissing_closed_eyes:':["1f61a"],':stuck_out_tongue_winking_eye:':["1f61c"],':triangular_ruler:':["1f4d0"],':stuck_out_tongue_closed_eyes:':["1f61d"],':disappointed:':["1f61e"],':bookmark_tabs:':["1f4d1"],':angry:':["1f620"],':rage:':["1f621"],':cry:':["1f622"],':persevere:':["1f623"],':triumph:':["1f624"],':disappointed_relieved:':["1f625"],':fearful:':["1f628"],':weary:':["1f629"],':sleepy:':["1f62a"],':tired_face:':["1f62b"],':sob:':["1f62d"],':cold_sweat:':["1f630"],':scream:':["1f631"],':astonished:':["1f632"],':flushed:':["1f633"],':dizzy_face:':["1f635"],':mask:':["1f637"],':smile_cat:':["1f638"],':joy_cat:':["1f639"],':smiley_cat:':["1f63a"],':heart_eyes_cat:':["1f63b"],':smirk_cat:':["1f63c"],':kissing_cat:':["1f63d"],':pouting_cat:':["1f63e"],':crying_cat_face:':["1f63f"],':scream_cat:':["1f640"],':no_good:':["1f645"],':ok_woman:':["1f646"],':bow:':["1f647"],':see_no_evil:':["1f648"],':hear_no_evil:':["1f649"],':speak_no_evil:':["1f64a"],':raising_hand:':["1f64b"],':raised_hands:':["1f64c"],':person_frowning:':["1f64d"],':person_with_pouting_face:':["1f64e"],':pray:':["1f64f"],':rocket:':["1f680"],':railway_car:':["1f683"],':bullettrain_side:':["1f684"],':bullettrain_front:':["1f685"],':metro:':["1f687"],':station:':["1f689"],':bus:':["1f68c"],':busstop:':["1f68f"],':ambulance:':["1f691"],':fire_engine:':["1f692"],':police_car:':["1f693"],':taxi:':["1f695"],':red_car:':["1f697"],':blue_car:':["1f699"],':truck:':["1f69a"],':ship:':["1f6a2"],':speedboat:':["1f6a4"],':traffic_light:':["1f6a5"],':construction:':["1f6a7"],':rotating_light:':["1f6a8"],':triangular_flag_on_post:':["1f6a9"],':door:':["1f6aa"],':no_entry_sign:':["1f6ab"],':smoking:':["1f6ac"],':no_smoking:':["1f6ad"],':bike:':["1f6b2"],':walking:':["1f6b6"],':mens:':["1f6b9"],':womens:':["1f6ba"],':restroom:':["1f6bb"],':baby_symbol:':["1f6bc"],':toilet:':["1f6bd"],':wc:':["1f6be"],':bath:':["1f6c0"],':grinning:':["1f600"],':innocent:':["1f607"],':smiling_imp:':["1f608"],':sunglasses:':["1f60e"],':neutral_face:':["1f610"],':expressionless:':["1f611"],':confused:':["1f615"],':kissing:':["1f617"],':kissing_smiling_eyes:':["1f619"],':stuck_out_tongue:':["1f61b"],':worried:':["1f61f"],':frowning:':["1f626"],':anguished:':["1f627"],':grimacing:':["1f62c"],':open_mouth:':["1f62e"],':hushed:':["1f62f"],':sleeping:':["1f634"],':no_mouth:':["1f636"],':helicopter:':["1f681"],':steam_locomotive:':["1f682"],':train2:':["1f686"],':light_rail:':["1f688"],':tram:':["1f68a"],':oncoming_bus:':["1f68d"],':trolleybus:':["1f68e"],':minibus:':["1f690"],':oncoming_police_car:':["1f694"],':oncoming_taxi:':["1f696"],':oncoming_automobile:':["1f698"],':articulated_lorry:':["1f69b"],':tractor:':["1f69c"],':monorail:':["1f69d"],':mountain_railway:':["1f69e"],':suspension_railway:':["1f69f"],':mountain_cableway:':["1f6a0"],':aerial_tramway:':["1f6a1"],':rowboat:':["1f6a3"],':vertical_traffic_light:':["1f6a6"],':put_litter_in_its_place:':["1f6ae"],':do_not_litter:':["1f6af"],':potable_water:':["1f6b0"],':non-potable_water:':["1f6b1"],':no_bicycles:':["1f6b3"],':bicyclist:':["1f6b4"],':mountain_bicyclist:':["1f6b5"],':no_pedestrians:':["1f6b7"],':children_crossing:':["1f6b8"],':shower:':["1f6bf"],':bathtub:':["1f6c1"],':passport_control:':["1f6c2"],':customs:':["1f6c3"],':baggage_claim:':["1f6c4"],':left_luggage:':["1f6c5"],':earth_africa:':["1f30d"],':earth_americas:':["1f30e"],':globe_with_meridians:':["1f310"],':waxing_crescent_moon:':["1f312"],':waning_gibbous_moon:':["1f316"],':last_quarter_moon:':["1f317"],':waning_crescent_moon:':["1f318"],':new_moon_with_face:':["1f31a"],':last_quarter_moon_with_face:':["1f31c"],':full_moon_with_face:':["1f31d"],':sun_with_face:':["1f31e"],':evergreen_tree:':["1f332"],':deciduous_tree:':["1f333"],':lemon:':["1f34b"],':pear:':["1f350"],':baby_bottle:':["1f37c"],':horse_racing:':["1f3c7"],':rugby_football:':["1f3c9"],':european_post_office:':["1f3e4"],':rat:':["1f400"],':mouse2:':["1f401"],':ox:':["1f402"],':water_buffalo:':["1f403"],':cow2:':["1f404"],':tiger2:':["1f405"],':leopard:':["1f406"],':rabbit2:':["1f407"],':cat2:':["1f408"],':dragon:':["1f409"],':crocodile:':["1f40a"],':whale2:':["1f40b"],':ram:':["1f40f"],':goat:':["1f410"],':rooster:':["1f413"],':dog2:':["1f415"],':pig2:':["1f416"],':dromedary_camel:':["1f42a"],':busts_in_silhouette:':["1f465"],':two_men_holding_hands:':["1f46c"],':two_women_holding_hands:':["1f46d"],':thought_balloon:':["1f4ad"],':euro:':["1f4b6"],':pound:':["1f4b7"],':mailbox_with_mail:':["1f4ec"],':mailbox_with_no_mail:':["1f4ed"],':postal_horn:':["1f4ef"],':no_mobile_phones:':["1f4f5"],':twisted_rightwards_arrows:':["1f500"],':repeat:':["1f501"],':repeat_one:':["1f502"],':arrows_counterclockwise:':["1f504"],':low_brightness:':["1f505"],':high_brightness:':["1f506"],':mute:':["1f507"],':sound:':["1f509"],':no_bell:':["1f515"],':microscope:':["1f52c"],':telescope:':["1f52d"],':clock130:':["1f55c"],':clock230:':["1f55d"],':clock330:':["1f55e"],':clock430:':["1f55f"],':clock530:':["1f560"],':clock630:':["1f561"],':clock730:':["1f562"],':clock830:':["1f563"],':clock930:':["1f564"],':clock1030:':["1f565"],':clock1130:':["1f566"],':clock1230:':["1f567"],':speaker:':["1f508"],':train:':["1f68b"],':loop:':["27bf"],':af:':["1f1e6-1f1eb"],':al:':["1f1e6-1f1f1"],':dz:':["1f1e9-1f1ff"],':ad:':["1f1e6-1f1e9"],':ao:':["1f1e6-1f1f4"],':ag:':["1f1e6-1f1ec"],':ar:':["1f1e6-1f1f7"],':am:':["1f1e6-1f1f2"],':au:':["1f1e6-1f1fa"],':at:':["1f1e6-1f1f9"],':az:':["1f1e6-1f1ff"],':bs:':["1f1e7-1f1f8"],':bh:':["1f1e7-1f1ed"],':bd:':["1f1e7-1f1e9"],':bb:':["1f1e7-1f1e7"],':by:':["1f1e7-1f1fe"],':be:':["1f1e7-1f1ea"],':bz:':["1f1e7-1f1ff"],':bj:':["1f1e7-1f1ef"],':bt:':["1f1e7-1f1f9"],':bo:':["1f1e7-1f1f4"],':ba:':["1f1e7-1f1e6"],':bw:':["1f1e7-1f1fc"],':br:':["1f1e7-1f1f7"],':bn:':["1f1e7-1f1f3"],':bg:':["1f1e7-1f1ec"],':bf:':["1f1e7-1f1eb"],':bi:':["1f1e7-1f1ee"],':kh:':["1f1f0-1f1ed"],':cm:':["1f1e8-1f1f2"],':ca:':["1f1e8-1f1e6"],':cv:':["1f1e8-1f1fb"],':cf:':["1f1e8-1f1eb"],':td:':["1f1f9-1f1e9"],':chile:':["1f1e8-1f1f1"],':co:':["1f1e8-1f1f4"],':km:':["1f1f0-1f1f2"],':cr:':["1f1e8-1f1f7"],':ci:':["1f1e8-1f1ee"],':hr:':["1f1ed-1f1f7"],':cu:':["1f1e8-1f1fa"],':cy:':["1f1e8-1f1fe"],':cz:':["1f1e8-1f1ff"],':congo:':["1f1e8-1f1e9"],':dk:':["1f1e9-1f1f0"],':dj:':["1f1e9-1f1ef"],':dm:':["1f1e9-1f1f2"],':do:':["1f1e9-1f1f4"],':tl:':["1f1f9-1f1f1"],':ec:':["1f1ea-1f1e8"],':eg:':["1f1ea-1f1ec"],':sv:':["1f1f8-1f1fb"],':gq:':["1f1ec-1f1f6"],':er:':["1f1ea-1f1f7"],':ee:':["1f1ea-1f1ea"],':et:':["1f1ea-1f1f9"],':fj:':["1f1eb-1f1ef"],':fi:':["1f1eb-1f1ee"],':ga:':["1f1ec-1f1e6"],':gm:':["1f1ec-1f1f2"],':ge:':["1f1ec-1f1ea"],':gh:':["1f1ec-1f1ed"],':gr:':["1f1ec-1f1f7"],':gd:':["1f1ec-1f1e9"],':gt:':["1f1ec-1f1f9"],':gn:':["1f1ec-1f1f3"],':gw:':["1f1ec-1f1fc"],':gy:':["1f1ec-1f1fe"],':ht:':["1f1ed-1f1f9"],':hn:':["1f1ed-1f1f3"],':hu:':["1f1ed-1f1fa"],':is:':["1f1ee-1f1f8"],':in:':["1f1ee-1f1f3"],':indonesia:':["1f1ee-1f1e9"],':ir:':["1f1ee-1f1f7"],':iq:':["1f1ee-1f1f6"],':ie:':["1f1ee-1f1ea"],':il:':["1f1ee-1f1f1"],':jm:':["1f1ef-1f1f2"],':jo:':["1f1ef-1f1f4"],':kz:':["1f1f0-1f1ff"],':ke:':["1f1f0-1f1ea"],':ki:':["1f1f0-1f1ee"],':xk:':["1f1fd-1f1f0"],':kw:':["1f1f0-1f1fc"],':kg:':["1f1f0-1f1ec"],':la:':["1f1f1-1f1e6"],':lv:':["1f1f1-1f1fb"],':lb:':["1f1f1-1f1e7"],':ls:':["1f1f1-1f1f8"],':lr:':["1f1f1-1f1f7"],':ly:':["1f1f1-1f1fe"],':li:':["1f1f1-1f1ee"],':lt:':["1f1f1-1f1f9"],':lu:':["1f1f1-1f1fa"],':mk:':["1f1f2-1f1f0"],':mg:':["1f1f2-1f1ec"],':mw:':["1f1f2-1f1fc"],':my:':["1f1f2-1f1fe"],':mv:':["1f1f2-1f1fb"],':ml:':["1f1f2-1f1f1"],':mt:':["1f1f2-1f1f9"],':mh:':["1f1f2-1f1ed"],':mr:':["1f1f2-1f1f7"],':mu:':["1f1f2-1f1fa"],':mx:':["1f1f2-1f1fd"],':fm:':["1f1eb-1f1f2"],':md:':["1f1f2-1f1e9"],':mc:':["1f1f2-1f1e8"],':mn:':["1f1f2-1f1f3"],':me:':["1f1f2-1f1ea"],':ma:':["1f1f2-1f1e6"],':mz:':["1f1f2-1f1ff"],':mm:':["1f1f2-1f1f2"],':na:':["1f1f3-1f1e6"],':nr:':["1f1f3-1f1f7"],':np:':["1f1f3-1f1f5"],':nl:':["1f1f3-1f1f1"],':nz:':["1f1f3-1f1ff"],':ni:':["1f1f3-1f1ee"],':ne:':["1f1f3-1f1ea"],':nigeria:':["1f1f3-1f1ec"],':kp:':["1f1f0-1f1f5"],':no:':["1f1f3-1f1f4"],':om:':["1f1f4-1f1f2"],':pk:':["1f1f5-1f1f0"],':pw:':["1f1f5-1f1fc"],':pa:':["1f1f5-1f1e6"],':pg:':["1f1f5-1f1ec"],':py:':["1f1f5-1f1fe"],':pe:':["1f1f5-1f1ea"],':ph:':["1f1f5-1f1ed"],':pl:':["1f1f5-1f1f1"],':pt:':["1f1f5-1f1f9"],':qa:':["1f1f6-1f1e6"],':tw:':["1f1f9-1f1fc"],':cg:':["1f1e8-1f1ec"],':ro:':["1f1f7-1f1f4"],':rw:':["1f1f7-1f1fc"],':kn:':["1f1f0-1f1f3"],':lc:':["1f1f1-1f1e8"],':vc:':["1f1fb-1f1e8"],':ws:':["1f1fc-1f1f8"],':sm:':["1f1f8-1f1f2"],':st:':["1f1f8-1f1f9"],':saudiarabia:':["1f1f8-1f1e6"],':saudi:':["1f1f8-1f1e6"],':sn:':["1f1f8-1f1f3"],':rs:':["1f1f7-1f1f8"],':sc:':["1f1f8-1f1e8"],':sl:':["1f1f8-1f1f1"],':sg:':["1f1f8-1f1ec"],':sk:':["1f1f8-1f1f0"],':si:':["1f1f8-1f1ee"],':sb:':["1f1f8-1f1e7"],':so:':["1f1f8-1f1f4"],':za:':["1f1ff-1f1e6"],':lk:':["1f1f1-1f1f0"],':sd:':["1f1f8-1f1e9"],':sr:':["1f1f8-1f1f7"],':sz:':["1f1f8-1f1ff"],':se:':["1f1f8-1f1ea"],':ch:':["1f1e8-1f1ed"],':sy:':["1f1f8-1f1fe"],':tj:':["1f1f9-1f1ef"],':tz:':["1f1f9-1f1ff"],':th:':["1f1f9-1f1ed"],':tg:':["1f1f9-1f1ec"],':to:':["1f1f9-1f1f4"],':tt:':["1f1f9-1f1f9"],':tn:':["1f1f9-1f1f3"],':tr:':["1f1f9-1f1f7"],':turkmenistan:':["1f1f9-1f1f2"],':tuvalu:':["1f1f9-1f1fb"],':ug:':["1f1fa-1f1ec"],':ua:':["1f1fa-1f1e6"],':ae:':["1f1e6-1f1ea"],':uy:':["1f1fa-1f1fe"],':uz:':["1f1fa-1f1ff"],':vu:':["1f1fb-1f1fa"],':va:':["1f1fb-1f1e6"],':ve:':["1f1fb-1f1ea"],':vn:':["1f1fb-1f1f3"],':eh:':["1f1ea-1f1ed"],':ye:':["1f1fe-1f1ea"],':zm:':["1f1ff-1f1f2"],':zw:':["1f1ff-1f1fc"],':pr:':["1f1f5-1f1f7"],':ky:':["1f1f0-1f1fe"],':bm:':["1f1e7-1f1f2"],':pf:':["1f1f5-1f1eb"],':ps:':["1f1f5-1f1f8"],':nc:':["1f1f3-1f1e8"],':sh:':["1f1f8-1f1ed"],':aw:':["1f1e6-1f1fc"],':vi:':["1f1fb-1f1ee"],':hk:':["1f1ed-1f1f0"],':ac:':["1f1e6-1f1e8"],':ms:':["1f1f2-1f1f8"],':gu:':["1f1ec-1f1fa"],':gl:':["1f1ec-1f1f1"],':nu:':["1f1f3-1f1fa"],':wf:':["1f1fc-1f1eb"],':mo:':["1f1f2-1f1f4"],':fo:':["1f1eb-1f1f4"],':fk:':["1f1eb-1f1f0"],':je:':["1f1ef-1f1ea"],':ai:':["1f1e6-1f1ee"],':gi:':["1f1ec-1f1ee"]};
-    ns.asciiList = {
-        '<3':'2764',
-        '</3':'1f494',
-        ':\')':'1f602',
-        ':\'-)':'1f602',
-        ':D':'1f603',
-        ':-D':'1f603',
-        '=D':'1f603',
-        ':)':'1f604',
-        ':-)':'1f604',
-        '=]':'1f604',
-        '=)':'1f604',
-        ':]':'1f604',
-        '\':)':'1f605',
-        '\':-)':'1f605',
-        '\'=)':'1f605',
-        '\':D':'1f605',
-        '\':-D':'1f605',
-        '\'=D':'1f605',
-        '>:)':'1f606',
-        '>;)':'1f606',
-        '>:-)':'1f606',
-        '>=)':'1f606',
-        ';)':'1f609',
-        ';-)':'1f609',
-        '*-)':'1f609',
-        '*)':'1f609',
-        ';-]':'1f609',
-        ';]':'1f609',
-        ';D':'1f609',
-        ';^)':'1f609',
-        '\':(':'1f613',
-        '\':-(':'1f613',
-        '\'=(':'1f613',
-        ':*':'1f618',
-        ':-*':'1f618',
-        '=*':'1f618',
-        ':^*':'1f618',
-        '>:P':'1f61c',
-        'X-P':'1f61c',
-        'x-p':'1f61c',
-        '>:[':'1f61e',
-        ':-(':'1f61e',
-        ':(':'1f61e',
-        ':-[':'1f61e',
-        ':[':'1f61e',
-        '=(':'1f61e',
-        '>:(':'1f620',
-        '>:-(':'1f620',
-        ':@':'1f620',
-        ':\'(':'1f622',
-        ':\'-(':'1f622',
-        ';(':'1f622',
-        ';-(':'1f622',
-        '>.<':'1f623',
-        ':$':'1f633',
-        '=$':'1f633',
-        '#-)':'1f635',
-        '#)':'1f635',
-        '%-)':'1f635',
-        '%)':'1f635',
-        'X)':'1f635',
-        'X-)':'1f635',
-        '*\\0/*':'1f646',
-        '\\0/':'1f646',
-        '*\\O/*':'1f646',
-        '\\O/':'1f646',
-        'O:-)':'1f607',
-        '0:-3':'1f607',
-        '0:3':'1f607',
-        '0:-)':'1f607',
-        '0:)':'1f607',
-        '0;^)':'1f607',
-        'O:)':'1f607',
-        'O;-)':'1f607',
-        'O=)':'1f607',
-        '0;-)':'1f607',
-        'O:-3':'1f607',
-        'O:3':'1f607',
-        'B-)':'1f60e',
-        'B)':'1f60e',
-        '8)':'1f60e',
-        '8-)':'1f60e',
-        'B-D':'1f60e',
-        '8-D':'1f60e',
-        '-_-':'1f611',
-        '-__-':'1f611',
-        '-___-':'1f611',
-        '>:\\':'1f615',
-        '>:/':'1f615',
-        ':-/':'1f615',
-        ':-.':'1f615',
-        ':/':'1f615',
-        ':\\':'1f615',
-        '=/':'1f615',
-        '=\\':'1f615',
-        ':L':'1f615',
-        '=L':'1f615',
-        ':P':'1f61b',
-        ':-P':'1f61b',
-        '=P':'1f61b',
-        ':-p':'1f61b',
-        ':p':'1f61b',
-        '=p':'1f61b',
-        ':-Þ':'1f61b',
-        ':Þ':'1f61b',
-        ':þ':'1f61b',
-        ':-þ':'1f61b',
-        ':-b':'1f61b',
-        ':b':'1f61b',
-        'd:':'1f61b',
-        ':-O':'1f62e',
-        ':O':'1f62e',
-        ':-o':'1f62e',
-        ':o':'1f62e',
-        'O_O':'1f62e',
-        '>:O':'1f62e',
-        ':-X':'1f636',
-        ':X':'1f636',
-        ':-#':'1f636',
-        ':#':'1f636',
-        '=X':'1f636',
-        '=x':'1f636',
-        ':x':'1f636',
-        ':-x':'1f636',
-        '=#':'1f636'
-    };
-    ns.asciiRegexp = '(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:\'\\)|\\:\'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|\'\\:\\)|\'\\:\\-\\)|\'\\=\\)|\'\\:D|\'\\:\\-D|\'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|\'\\:\\(|\'\\:\\-\\(|\'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:\'\\(|\\:\'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)';
-    ns.unicodeRegexp = '(#\\uFE0F\\u20E3|#\\u20E3|0\\uFE0F\\u20E3|0\\u20E3|1\\uFE0F\\u20E3|1\\u20E3|2\\uFE0F\\u20E3|2\\u20E3|3\\uFE0F\\u20E3|3\\u20E3|4\\uFE0F\\u20E3|4\\u20E3|5\\uFE0F\\u20E3|5\\u20E3|6\\uFE0F\\u20E3|6\\u20E3|7\\uFE0F\\u20E3|7\\u20E3|8\\uFE0F\\u20E3|8\\u20E3|9\\uFE0F\\u20E3|9\\u20E3|\\u00A9|\\u00AE|\\u203C\\uFE0F|\\u203C|\\u2049\\uFE0F|\\u2049|\\u2122|\\u2139\\uFE0F|\\u2139|\\u2194\\uFE0F|\\u2194|\\u2195\\uFE0F|\\u2195|\\u2196\\uFE0F|\\u2196|\\u2197\\uFE0F|\\u2197|\\u2198\\uFE0F|\\u2198|\\u2199\\uFE0F|\\u2199|\\u21A9\\uFE0F|\\u21A9|\\u21AA\\uFE0F|\\u21AA|\\u231A\\uFE0F|\\u231A|\\u231B\\uFE0F|\\u231B|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u24C2\\uFE0F|\\u24C2|\\u25AA\\uFE0F|\\u25AA|\\u25AB\\uFE0F|\\u25AB|\\u25B6\\uFE0F|\\u25B6|\\u25C0\\uFE0F|\\u25C0|\\u25FB\\uFE0F|\\u25FB|\\u25FC\\uFE0F|\\u25FC|\\u25FD\\uFE0F|\\u25FD|\\u25FE\\uFE0F|\\u25FE|\\u2600\\uFE0F|\\u2600|\\u2601\\uFE0F|\\u2601|\\u260E\\uFE0F|\\u260E|\\u2611\\uFE0F|\\u2611|\\u2614\\uFE0F|\\u2614|\\u2615\\uFE0F|\\u2615|\\u261D\\uFE0F|\\u261D|\\u263A\\uFE0F|\\u263A|\\u2648\\uFE0F|\\u2648|\\u2649\\uFE0F|\\u2649|\\u264A\\uFE0F|\\u264A|\\u264B\\uFE0F|\\u264B|\\u264C\\uFE0F|\\u264C|\\u264D\\uFE0F|\\u264D|\\u264E\\uFE0F|\\u264E|\\u264F\\uFE0F|\\u264F|\\u2650\\uFE0F|\\u2650|\\u2651\\uFE0F|\\u2651|\\u2652\\uFE0F|\\u2652|\\u2653\\uFE0F|\\u2653|\\u2660\\uFE0F|\\u2660|\\u2663\\uFE0F|\\u2663|\\u2665\\uFE0F|\\u2665|\\u2666\\uFE0F|\\u2666|\\u2668\\uFE0F|\\u2668|\\u267B\\uFE0F|\\u267B|\\u267F\\uFE0F|\\u267F|\\u2693\\uFE0F|\\u2693|\\u26A0\\uFE0F|\\u26A0|\\u26A1\\uFE0F|\\u26A1|\\u26AA\\uFE0F|\\u26AA|\\u26AB\\uFE0F|\\u26AB|\\u26BD\\uFE0F|\\u26BD|\\u26BE\\uFE0F|\\u26BE|\\u26C4\\uFE0F|\\u26C4|\\u26C5\\uFE0F|\\u26C5|\\u26CE|\\u26D4\\uFE0F|\\u26D4|\\u26EA\\uFE0F|\\u26EA|\\u26F2\\uFE0F|\\u26F2|\\u26F3\\uFE0F|\\u26F3|\\u26F5\\uFE0F|\\u26F5|\\u26FA\\uFE0F|\\u26FA|\\u26FD\\uFE0F|\\u26FD|\\u2702\\uFE0F|\\u2702|\\u2705|\\u2708\\uFE0F|\\u2708|\\u2709\\uFE0F|\\u2709|\\u270A|\\u270B|\\u270C\\uFE0F|\\u270C|\\u270F\\uFE0F|\\u270F|\\u2712\\uFE0F|\\u2712|\\u2714\\uFE0F|\\u2714|\\u2716\\uFE0F|\\u2716|\\u2728|\\u2733\\uFE0F|\\u2733|\\u2734\\uFE0F|\\u2734|\\u2744\\uFE0F|\\u2744|\\u2747\\uFE0F|\\u2747|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2757\\uFE0F|\\u2757|\\u2764\\uFE0F|\\u2764|\\u2795|\\u2796|\\u2797|\\u27A1\\uFE0F|\\u27A1|\\u27B0|\\u2934\\uFE0F|\\u2934|\\u2935\\uFE0F|\\u2935|\\u2B05\\uFE0F|\\u2B05|\\u2B06\\uFE0F|\\u2B06|\\u2B07\\uFE0F|\\u2B07|\\u2B1B\\uFE0F|\\u2B1B|\\u2B1C\\uFE0F|\\u2B1C|\\u2B50\\uFE0F|\\u2B50|\\u2B55\\uFE0F|\\u2B55|\\u3030|\\u303D\\uFE0F|\\u303D|\\u3297\\uFE0F|\\u3297|\\u3299\\uFE0F|\\u3299|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDC04|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDD7F|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE1A|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE2F|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE37|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\u27BF|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDEE)';
-    ns.jsecapeMap = {"#\uFE0F\u20E3":"0023-20E3","#\u20E3":"0023-20E3","0\uFE0F\u20E3":"0030-20E3","0\u20E3":"0030-20E3","1\uFE0F\u20E3":"0031-20E3","1\u20E3":"0031-20E3","2\uFE0F\u20E3":"0032-20E3","2\u20E3":"0032-20E3","3\uFE0F\u20E3":"0033-20E3","3\u20E3":"0033-20E3","4\uFE0F\u20E3":"0034-20E3","4\u20E3":"0034-20E3","5\uFE0F\u20E3":"0035-20E3","5\u20E3":"0035-20E3","6\uFE0F\u20E3":"0036-20E3","6\u20E3":"0036-20E3","7\uFE0F\u20E3":"0037-20E3","7\u20E3":"0037-20E3","8\uFE0F\u20E3":"0038-20E3","8\u20E3":"0038-20E3","9\uFE0F\u20E3":"0039-20E3","9\u20E3":"0039-20E3","\u00A9":"00A9","\u00AE":"00AE","\u203C\uFE0F":"203C","\u203C":"203C","\u2049\uFE0F":"2049","\u2049":"2049","\u2122":"2122","\u2139\uFE0F":"2139","\u2139":"2139","\u2194\uFE0F":"2194","\u2194":"2194","\u2195\uFE0F":"2195","\u2195":"2195","\u2196\uFE0F":"2196","\u2196":"2196","\u2197\uFE0F":"2197","\u2197":"2197","\u2198\uFE0F":"2198","\u2198":"2198","\u2199\uFE0F":"2199","\u2199":"2199","\u21A9\uFE0F":"21A9","\u21A9":"21A9","\u21AA\uFE0F":"21AA","\u21AA":"21AA","\u231A\uFE0F":"231A","\u231A":"231A","\u231B\uFE0F":"231B","\u231B":"231B","\u23E9":"23E9","\u23EA":"23EA","\u23EB":"23EB","\u23EC":"23EC","\u23F0":"23F0","\u23F3":"23F3","\u24C2\uFE0F":"24C2","\u24C2":"24C2","\u25AA\uFE0F":"25AA","\u25AA":"25AA","\u25AB\uFE0F":"25AB","\u25AB":"25AB","\u25B6\uFE0F":"25B6","\u25B6":"25B6","\u25C0\uFE0F":"25C0","\u25C0":"25C0","\u25FB\uFE0F":"25FB","\u25FB":"25FB","\u25FC\uFE0F":"25FC","\u25FC":"25FC","\u25FD\uFE0F":"25FD","\u25FD":"25FD","\u25FE\uFE0F":"25FE","\u25FE":"25FE","\u2600\uFE0F":"2600","\u2600":"2600","\u2601\uFE0F":"2601","\u2601":"2601","\u260E\uFE0F":"260E","\u260E":"260E","\u2611\uFE0F":"2611","\u2611":"2611","\u2614\uFE0F":"2614","\u2614":"2614","\u2615\uFE0F":"2615","\u2615":"2615","\u261D\uFE0F":"261D","\u261D":"261D","\u263A\uFE0F":"263A","\u263A":"263A","\u2648\uFE0F":"2648","\u2648":"2648","\u2649\uFE0F":"2649","\u2649":"2649","\u264A\uFE0F":"264A","\u264A":"264A","\u264B\uFE0F":"264B","\u264B":"264B","\u264C\uFE0F":"264C","\u264C":"264C","\u264D\uFE0F":"264D","\u264D":"264D","\u264E\uFE0F":"264E","\u264E":"264E","\u264F\uFE0F":"264F","\u264F":"264F","\u2650\uFE0F":"2650","\u2650":"2650","\u2651\uFE0F":"2651","\u2651":"2651","\u2652\uFE0F":"2652","\u2652":"2652","\u2653\uFE0F":"2653","\u2653":"2653","\u2660\uFE0F":"2660","\u2660":"2660","\u2663\uFE0F":"2663","\u2663":"2663","\u2665\uFE0F":"2665","\u2665":"2665","\u2666\uFE0F":"2666","\u2666":"2666","\u2668\uFE0F":"2668","\u2668":"2668","\u267B\uFE0F":"267B","\u267B":"267B","\u267F\uFE0F":"267F","\u267F":"267F","\u2693\uFE0F":"2693","\u2693":"2693","\u26A0\uFE0F":"26A0","\u26A0":"26A0","\u26A1\uFE0F":"26A1","\u26A1":"26A1","\u26AA\uFE0F":"26AA","\u26AA":"26AA","\u26AB\uFE0F":"26AB","\u26AB":"26AB","\u26BD\uFE0F":"26BD","\u26BD":"26BD","\u26BE\uFE0F":"26BE","\u26BE":"26BE","\u26C4\uFE0F":"26C4","\u26C4":"26C4","\u26C5\uFE0F":"26C5","\u26C5":"26C5","\u26CE":"26CE","\u26D4\uFE0F":"26D4","\u26D4":"26D4","\u26EA\uFE0F":"26EA","\u26EA":"26EA","\u26F2\uFE0F":"26F2","\u26F2":"26F2","\u26F3\uFE0F":"26F3","\u26F3":"26F3","\u26F5\uFE0F":"26F5","\u26F5":"26F5","\u26FA\uFE0F":"26FA","\u26FA":"26FA","\u26FD\uFE0F":"26FD","\u26FD":"26FD","\u2702\uFE0F":"2702","\u2702":"2702","\u2705":"2705","\u2708\uFE0F":"2708","\u2708":"2708","\u2709\uFE0F":"2709","\u2709":"2709","\u270A":"270A","\u270B":"270B","\u270C\uFE0F":"270C","\u270C":"270C","\u270F\uFE0F":"270F","\u270F":"270F","\u2712\uFE0F":"2712","\u2712":"2712","\u2714\uFE0F":"2714","\u2714":"2714","\u2716\uFE0F":"2716","\u2716":"2716","\u2728":"2728","\u2733\uFE0F":"2733","\u2733":"2733","\u2734\uFE0F":"2734","\u2734":"2734","\u2744\uFE0F":"2744","\u2744":"2744","\u2747\uFE0F":"2747","\u2747":"2747","\u274C":"274C","\u274E":"274E","\u2753":"2753","\u2754":"2754","\u2755":"2755","\u2757\uFE0F":"2757","\u2757":"2757","\u2764\uFE0F":"2764","\u2764":"2764","\u2795":"2795","\u2796":"2796","\u2797":"2797","\u27A1\uFE0F":"27A1","\u27A1":"27A1","\u27B0":"27B0","\u2934\uFE0F":"2934","\u2934":"2934","\u2935\uFE0F":"2935","\u2935":"2935","\u2B05\uFE0F":"2B05","\u2B05":"2B05","\u2B06\uFE0F":"2B06","\u2B06":"2B06","\u2B07\uFE0F":"2B07","\u2B07":"2B07","\u2B1B\uFE0F":"2B1B","\u2B1B":"2B1B","\u2B1C\uFE0F":"2B1C","\u2B1C":"2B1C","\u2B50\uFE0F":"2B50","\u2B50":"2B50","\u2B55\uFE0F":"2B55","\u2B55":"2B55","\u3030":"3030","\u303D\uFE0F":"303D","\u303D":"303D","\u3297\uFE0F":"3297","\u3297":"3297","\u3299\uFE0F":"3299","\u3299":"3299","\uD83C\uDC04\uFE0F":"1F004","\uD83C\uDC04":"1F004","\uD83C\uDCCF":"1F0CF","\uD83C\uDD70":"1F170","\uD83C\uDD71":"1F171","\uD83C\uDD7E":"1F17E","\uD83C\uDD7F\uFE0F":"1F17F","\uD83C\uDD7F":"1F17F","\uD83C\uDD8E":"1F18E","\uD83C\uDD91":"1F191","\uD83C\uDD92":"1F192","\uD83C\uDD93":"1F193","\uD83C\uDD94":"1F194","\uD83C\uDD95":"1F195","\uD83C\uDD96":"1F196","\uD83C\uDD97":"1F197","\uD83C\uDD98":"1F198","\uD83C\uDD99":"1F199","\uD83C\uDD9A":"1F19A","\uD83C\uDDE8\uD83C\uDDF3":"1F1E8-1F1F3","\uD83C\uDDE9\uD83C\uDDEA":"1F1E9-1F1EA","\uD83C\uDDEA\uD83C\uDDF8":"1F1EA-1F1F8","\uD83C\uDDEB\uD83C\uDDF7":"1F1EB-1F1F7","\uD83C\uDDEC\uD83C\uDDE7":"1F1EC-1F1E7","\uD83C\uDDEE\uD83C\uDDF9":"1F1EE-1F1F9","\uD83C\uDDEF\uD83C\uDDF5":"1F1EF-1F1F5","\uD83C\uDDF0\uD83C\uDDF7":"1F1F0-1F1F7","\uD83C\uDDFA\uD83C\uDDF8":"1F1FA-1F1F8","\uD83C\uDDF7\uD83C\uDDFA":"1F1F7-1F1FA","\uD83C\uDE01":"1F201","\uD83C\uDE02":"1F202","\uD83C\uDE1A\uFE0F":"1F21A","\uD83C\uDE1A":"1F21A","\uD83C\uDE2F\uFE0F":"1F22F","\uD83C\uDE2F":"1F22F","\uD83C\uDE32":"1F232","\uD83C\uDE33":"1F233","\uD83C\uDE34":"1F234","\uD83C\uDE35":"1F235","\uD83C\uDE36":"1F236","\uD83C\uDE37":"1F237","\uD83C\uDE38":"1F238","\uD83C\uDE39":"1F239","\uD83C\uDE3A":"1F23A","\uD83C\uDE50":"1F250","\uD83C\uDE51":"1F251","\uD83C\uDF00":"1F300","\uD83C\uDF01":"1F301","\uD83C\uDF02":"1F302","\uD83C\uDF03":"1F303","\uD83C\uDF04":"1F304","\uD83C\uDF05":"1F305","\uD83C\uDF06":"1F306","\uD83C\uDF07":"1F307","\uD83C\uDF08":"1F308","\uD83C\uDF09":"1F309","\uD83C\uDF0A":"1F30A","\uD83C\uDF0B":"1F30B","\uD83C\uDF0C":"1F30C","\uD83C\uDF0F":"1F30F","\uD83C\uDF11":"1F311","\uD83C\uDF13":"1F313","\uD83C\uDF14":"1F314","\uD83C\uDF15":"1F315","\uD83C\uDF19":"1F319","\uD83C\uDF1B":"1F31B","\uD83C\uDF1F":"1F31F","\uD83C\uDF20":"1F320","\uD83C\uDF30":"1F330","\uD83C\uDF31":"1F331","\uD83C\uDF34":"1F334","\uD83C\uDF35":"1F335","\uD83C\uDF37":"1F337","\uD83C\uDF38":"1F338","\uD83C\uDF39":"1F339","\uD83C\uDF3A":"1F33A","\uD83C\uDF3B":"1F33B","\uD83C\uDF3C":"1F33C","\uD83C\uDF3D":"1F33D","\uD83C\uDF3E":"1F33E","\uD83C\uDF3F":"1F33F","\uD83C\uDF40":"1F340","\uD83C\uDF41":"1F341","\uD83C\uDF42":"1F342","\uD83C\uDF43":"1F343","\uD83C\uDF44":"1F344","\uD83C\uDF45":"1F345","\uD83C\uDF46":"1F346","\uD83C\uDF47":"1F347","\uD83C\uDF48":"1F348","\uD83C\uDF49":"1F349","\uD83C\uDF4A":"1F34A","\uD83C\uDF4C":"1F34C","\uD83C\uDF4D":"1F34D","\uD83C\uDF4E":"1F34E","\uD83C\uDF4F":"1F34F","\uD83C\uDF51":"1F351","\uD83C\uDF52":"1F352","\uD83C\uDF53":"1F353","\uD83C\uDF54":"1F354","\uD83C\uDF55":"1F355","\uD83C\uDF56":"1F356","\uD83C\uDF57":"1F357","\uD83C\uDF58":"1F358","\uD83C\uDF59":"1F359","\uD83C\uDF5A":"1F35A","\uD83C\uDF5B":"1F35B","\uD83C\uDF5C":"1F35C","\uD83C\uDF5D":"1F35D","\uD83C\uDF5E":"1F35E","\uD83C\uDF5F":"1F35F","\uD83C\uDF60":"1F360","\uD83C\uDF61":"1F361","\uD83C\uDF62":"1F362","\uD83C\uDF63":"1F363","\uD83C\uDF64":"1F364","\uD83C\uDF65":"1F365","\uD83C\uDF66":"1F366","\uD83C\uDF67":"1F367","\uD83C\uDF68":"1F368","\uD83C\uDF69":"1F369","\uD83C\uDF6A":"1F36A","\uD83C\uDF6B":"1F36B","\uD83C\uDF6C":"1F36C","\uD83C\uDF6D":"1F36D","\uD83C\uDF6E":"1F36E","\uD83C\uDF6F":"1F36F","\uD83C\uDF70":"1F370","\uD83C\uDF71":"1F371","\uD83C\uDF72":"1F372","\uD83C\uDF73":"1F373","\uD83C\uDF74":"1F374","\uD83C\uDF75":"1F375","\uD83C\uDF76":"1F376","\uD83C\uDF77":"1F377","\uD83C\uDF78":"1F378","\uD83C\uDF79":"1F379","\uD83C\uDF7A":"1F37A","\uD83C\uDF7B":"1F37B","\uD83C\uDF80":"1F380","\uD83C\uDF81":"1F381","\uD83C\uDF82":"1F382","\uD83C\uDF83":"1F383","\uD83C\uDF84":"1F384","\uD83C\uDF85":"1F385","\uD83C\uDF86":"1F386","\uD83C\uDF87":"1F387","\uD83C\uDF88":"1F388","\uD83C\uDF89":"1F389","\uD83C\uDF8A":"1F38A","\uD83C\uDF8B":"1F38B","\uD83C\uDF8C":"1F38C","\uD83C\uDF8D":"1F38D","\uD83C\uDF8E":"1F38E","\uD83C\uDF8F":"1F38F","\uD83C\uDF90":"1F390","\uD83C\uDF91":"1F391","\uD83C\uDF92":"1F392","\uD83C\uDF93":"1F393","\uD83C\uDFA0":"1F3A0","\uD83C\uDFA1":"1F3A1","\uD83C\uDFA2":"1F3A2","\uD83C\uDFA3":"1F3A3","\uD83C\uDFA4":"1F3A4","\uD83C\uDFA5":"1F3A5","\uD83C\uDFA6":"1F3A6","\uD83C\uDFA7":"1F3A7","\uD83C\uDFA8":"1F3A8","\uD83C\uDFA9":"1F3A9","\uD83C\uDFAA":"1F3AA","\uD83C\uDFAB":"1F3AB","\uD83C\uDFAC":"1F3AC","\uD83C\uDFAD":"1F3AD","\uD83C\uDFAE":"1F3AE","\uD83C\uDFAF":"1F3AF","\uD83C\uDFB0":"1F3B0","\uD83C\uDFB1":"1F3B1","\uD83C\uDFB2":"1F3B2","\uD83C\uDFB3":"1F3B3","\uD83C\uDFB4":"1F3B4","\uD83C\uDFB5":"1F3B5","\uD83C\uDFB6":"1F3B6","\uD83C\uDFB7":"1F3B7","\uD83C\uDFB8":"1F3B8","\uD83C\uDFB9":"1F3B9","\uD83C\uDFBA":"1F3BA","\uD83C\uDFBB":"1F3BB","\uD83C\uDFBC":"1F3BC","\uD83C\uDFBD":"1F3BD","\uD83C\uDFBE":"1F3BE","\uD83C\uDFBF":"1F3BF","\uD83C\uDFC0":"1F3C0","\uD83C\uDFC1":"1F3C1","\uD83C\uDFC2":"1F3C2","\uD83C\uDFC3":"1F3C3","\uD83C\uDFC4":"1F3C4","\uD83C\uDFC6":"1F3C6","\uD83C\uDFC8":"1F3C8","\uD83C\uDFCA":"1F3CA","\uD83C\uDFE0":"1F3E0","\uD83C\uDFE1":"1F3E1","\uD83C\uDFE2":"1F3E2","\uD83C\uDFE3":"1F3E3","\uD83C\uDFE5":"1F3E5","\uD83C\uDFE6":"1F3E6","\uD83C\uDFE7":"1F3E7","\uD83C\uDFE8":"1F3E8","\uD83C\uDFE9":"1F3E9","\uD83C\uDFEA":"1F3EA","\uD83C\uDFEB":"1F3EB","\uD83C\uDFEC":"1F3EC","\uD83C\uDFED":"1F3ED","\uD83C\uDFEE":"1F3EE","\uD83C\uDFEF":"1F3EF","\uD83C\uDFF0":"1F3F0","\uD83D\uDC0C":"1F40C","\uD83D\uDC0D":"1F40D","\uD83D\uDC0E":"1F40E","\uD83D\uDC11":"1F411","\uD83D\uDC12":"1F412","\uD83D\uDC14":"1F414","\uD83D\uDC17":"1F417","\uD83D\uDC18":"1F418","\uD83D\uDC19":"1F419","\uD83D\uDC1A":"1F41A","\uD83D\uDC1B":"1F41B","\uD83D\uDC1C":"1F41C","\uD83D\uDC1D":"1F41D","\uD83D\uDC1E":"1F41E","\uD83D\uDC1F":"1F41F","\uD83D\uDC20":"1F420","\uD83D\uDC21":"1F421","\uD83D\uDC22":"1F422","\uD83D\uDC23":"1F423","\uD83D\uDC24":"1F424","\uD83D\uDC25":"1F425","\uD83D\uDC26":"1F426","\uD83D\uDC27":"1F427","\uD83D\uDC28":"1F428","\uD83D\uDC29":"1F429","\uD83D\uDC2B":"1F42B","\uD83D\uDC2C":"1F42C","\uD83D\uDC2D":"1F42D","\uD83D\uDC2E":"1F42E","\uD83D\uDC2F":"1F42F","\uD83D\uDC30":"1F430","\uD83D\uDC31":"1F431","\uD83D\uDC32":"1F432","\uD83D\uDC33":"1F433","\uD83D\uDC34":"1F434","\uD83D\uDC35":"1F435","\uD83D\uDC36":"1F436","\uD83D\uDC37":"1F437","\uD83D\uDC38":"1F438","\uD83D\uDC39":"1F439","\uD83D\uDC3A":"1F43A","\uD83D\uDC3B":"1F43B","\uD83D\uDC3C":"1F43C","\uD83D\uDC3D":"1F43D","\uD83D\uDC3E":"1F43E","\uD83D\uDC40":"1F440","\uD83D\uDC42":"1F442","\uD83D\uDC43":"1F443","\uD83D\uDC44":"1F444","\uD83D\uDC45":"1F445","\uD83D\uDC46":"1F446","\uD83D\uDC47":"1F447","\uD83D\uDC48":"1F448","\uD83D\uDC49":"1F449","\uD83D\uDC4A":"1F44A","\uD83D\uDC4B":"1F44B","\uD83D\uDC4C":"1F44C","\uD83D\uDC4D":"1F44D","\uD83D\uDC4E":"1F44E","\uD83D\uDC4F":"1F44F","\uD83D\uDC50":"1F450","\uD83D\uDC51":"1F451","\uD83D\uDC52":"1F452","\uD83D\uDC53":"1F453","\uD83D\uDC54":"1F454","\uD83D\uDC55":"1F455","\uD83D\uDC56":"1F456","\uD83D\uDC57":"1F457","\uD83D\uDC58":"1F458","\uD83D\uDC59":"1F459","\uD83D\uDC5A":"1F45A","\uD83D\uDC5B":"1F45B","\uD83D\uDC5C":"1F45C","\uD83D\uDC5D":"1F45D","\uD83D\uDC5E":"1F45E","\uD83D\uDC5F":"1F45F","\uD83D\uDC60":"1F460","\uD83D\uDC61":"1F461","\uD83D\uDC62":"1F462","\uD83D\uDC63":"1F463","\uD83D\uDC64":"1F464","\uD83D\uDC66":"1F466","\uD83D\uDC67":"1F467","\uD83D\uDC68":"1F468","\uD83D\uDC69":"1F469","\uD83D\uDC6A":"1F46A","\uD83D\uDC6B":"1F46B","\uD83D\uDC6E":"1F46E","\uD83D\uDC6F":"1F46F","\uD83D\uDC70":"1F470","\uD83D\uDC71":"1F471","\uD83D\uDC72":"1F472","\uD83D\uDC73":"1F473","\uD83D\uDC74":"1F474","\uD83D\uDC75":"1F475","\uD83D\uDC76":"1F476","\uD83D\uDC77":"1F477","\uD83D\uDC78":"1F478","\uD83D\uDC79":"1F479","\uD83D\uDC7A":"1F47A","\uD83D\uDC7B":"1F47B","\uD83D\uDC7C":"1F47C","\uD83D\uDC7D":"1F47D","\uD83D\uDC7E":"1F47E","\uD83D\uDC7F":"1F47F","\uD83D\uDC80":"1F480","\uD83D\uDCC7":"1F4C7","\uD83D\uDC81":"1F481","\uD83D\uDC82":"1F482","\uD83D\uDC83":"1F483","\uD83D\uDC84":"1F484","\uD83D\uDC85":"1F485","\uD83D\uDCD2":"1F4D2","\uD83D\uDC86":"1F486","\uD83D\uDCD3":"1F4D3","\uD83D\uDC87":"1F487","\uD83D\uDCD4":"1F4D4","\uD83D\uDC88":"1F488","\uD83D\uDCD5":"1F4D5","\uD83D\uDC89":"1F489","\uD83D\uDCD6":"1F4D6","\uD83D\uDC8A":"1F48A","\uD83D\uDCD7":"1F4D7","\uD83D\uDC8B":"1F48B","\uD83D\uDCD8":"1F4D8","\uD83D\uDC8C":"1F48C","\uD83D\uDCD9":"1F4D9","\uD83D\uDC8D":"1F48D","\uD83D\uDCDA":"1F4DA","\uD83D\uDC8E":"1F48E","\uD83D\uDCDB":"1F4DB","\uD83D\uDC8F":"1F48F","\uD83D\uDCDC":"1F4DC","\uD83D\uDC90":"1F490","\uD83D\uDCDD":"1F4DD","\uD83D\uDC91":"1F491","\uD83D\uDCDE":"1F4DE","\uD83D\uDC92":"1F492","\uD83D\uDCDF":"1F4DF","\uD83D\uDCE0":"1F4E0","\uD83D\uDC93":"1F493","\uD83D\uDCE1":"1F4E1","\uD83D\uDCE2":"1F4E2","\uD83D\uDC94":"1F494","\uD83D\uDCE3":"1F4E3","\uD83D\uDCE4":"1F4E4","\uD83D\uDC95":"1F495","\uD83D\uDCE5":"1F4E5","\uD83D\uDCE6":"1F4E6","\uD83D\uDC96":"1F496","\uD83D\uDCE7":"1F4E7","\uD83D\uDCE8":"1F4E8","\uD83D\uDC97":"1F497","\uD83D\uDCE9":"1F4E9","\uD83D\uDCEA":"1F4EA","\uD83D\uDC98":"1F498","\uD83D\uDCEB":"1F4EB","\uD83D\uDCEE":"1F4EE","\uD83D\uDC99":"1F499","\uD83D\uDCF0":"1F4F0","\uD83D\uDCF1":"1F4F1","\uD83D\uDC9A":"1F49A","\uD83D\uDCF2":"1F4F2","\uD83D\uDCF3":"1F4F3","\uD83D\uDC9B":"1F49B","\uD83D\uDCF4":"1F4F4","\uD83D\uDCF6":"1F4F6","\uD83D\uDC9C":"1F49C","\uD83D\uDCF7":"1F4F7","\uD83D\uDCF9":"1F4F9","\uD83D\uDC9D":"1F49D","\uD83D\uDCFA":"1F4FA","\uD83D\uDCFB":"1F4FB","\uD83D\uDC9E":"1F49E","\uD83D\uDCFC":"1F4FC","\uD83D\uDD03":"1F503","\uD83D\uDC9F":"1F49F","\uD83D\uDD0A":"1F50A","\uD83D\uDD0B":"1F50B","\uD83D\uDCA0":"1F4A0","\uD83D\uDD0C":"1F50C","\uD83D\uDD0D":"1F50D","\uD83D\uDCA1":"1F4A1","\uD83D\uDD0E":"1F50E","\uD83D\uDD0F":"1F50F","\uD83D\uDCA2":"1F4A2","\uD83D\uDD10":"1F510","\uD83D\uDD11":"1F511","\uD83D\uDCA3":"1F4A3","\uD83D\uDD12":"1F512","\uD83D\uDD13":"1F513","\uD83D\uDCA4":"1F4A4","\uD83D\uDD14":"1F514","\uD83D\uDD16":"1F516","\uD83D\uDCA5":"1F4A5","\uD83D\uDD17":"1F517","\uD83D\uDD18":"1F518","\uD83D\uDCA6":"1F4A6","\uD83D\uDD19":"1F519","\uD83D\uDD1A":"1F51A","\uD83D\uDCA7":"1F4A7","\uD83D\uDD1B":"1F51B","\uD83D\uDD1C":"1F51C","\uD83D\uDCA8":"1F4A8","\uD83D\uDD1D":"1F51D","\uD83D\uDD1E":"1F51E","\uD83D\uDCA9":"1F4A9","\uD83D\uDD1F":"1F51F","\uD83D\uDCAA":"1F4AA","\uD83D\uDD20":"1F520","\uD83D\uDD21":"1F521","\uD83D\uDCAB":"1F4AB","\uD83D\uDD22":"1F522","\uD83D\uDD23":"1F523","\uD83D\uDCAC":"1F4AC","\uD83D\uDD24":"1F524","\uD83D\uDD25":"1F525","\uD83D\uDCAE":"1F4AE","\uD83D\uDD26":"1F526","\uD83D\uDD27":"1F527","\uD83D\uDCAF":"1F4AF","\uD83D\uDD28":"1F528","\uD83D\uDD29":"1F529","\uD83D\uDCB0":"1F4B0","\uD83D\uDD2A":"1F52A","\uD83D\uDD2B":"1F52B","\uD83D\uDCB1":"1F4B1","\uD83D\uDD2E":"1F52E","\uD83D\uDCB2":"1F4B2","\uD83D\uDD2F":"1F52F","\uD83D\uDCB3":"1F4B3","\uD83D\uDD30":"1F530","\uD83D\uDD31":"1F531","\uD83D\uDCB4":"1F4B4","\uD83D\uDD32":"1F532","\uD83D\uDD33":"1F533","\uD83D\uDCB5":"1F4B5","\uD83D\uDD34":"1F534","\uD83D\uDD35":"1F535","\uD83D\uDCB8":"1F4B8","\uD83D\uDD36":"1F536","\uD83D\uDD37":"1F537","\uD83D\uDCB9":"1F4B9","\uD83D\uDD38":"1F538","\uD83D\uDD39":"1F539","\uD83D\uDCBA":"1F4BA","\uD83D\uDD3A":"1F53A","\uD83D\uDD3B":"1F53B","\uD83D\uDCBB":"1F4BB","\uD83D\uDD3C":"1F53C","\uD83D\uDCBC":"1F4BC","\uD83D\uDD3D":"1F53D","\uD83D\uDD50":"1F550","\uD83D\uDCBD":"1F4BD","\uD83D\uDD51":"1F551","\uD83D\uDCBE":"1F4BE","\uD83D\uDD52":"1F552","\uD83D\uDCBF":"1F4BF","\uD83D\uDD53":"1F553","\uD83D\uDCC0":"1F4C0","\uD83D\uDD54":"1F554","\uD83D\uDD55":"1F555","\uD83D\uDCC1":"1F4C1","\uD83D\uDD56":"1F556","\uD83D\uDD57":"1F557","\uD83D\uDCC2":"1F4C2","\uD83D\uDD58":"1F558","\uD83D\uDD59":"1F559","\uD83D\uDCC3":"1F4C3","\uD83D\uDD5A":"1F55A","\uD83D\uDD5B":"1F55B","\uD83D\uDCC4":"1F4C4","\uD83D\uDDFB":"1F5FB","\uD83D\uDDFC":"1F5FC","\uD83D\uDCC5":"1F4C5","\uD83D\uDDFD":"1F5FD","\uD83D\uDDFE":"1F5FE","\uD83D\uDCC6":"1F4C6","\uD83D\uDDFF":"1F5FF","\uD83D\uDE01":"1F601","\uD83D\uDE02":"1F602","\uD83D\uDE03":"1F603","\uD83D\uDCC8":"1F4C8","\uD83D\uDE04":"1F604","\uD83D\uDE05":"1F605","\uD83D\uDCC9":"1F4C9","\uD83D\uDE06":"1F606","\uD83D\uDE09":"1F609","\uD83D\uDCCA":"1F4CA","\uD83D\uDE0A":"1F60A","\uD83D\uDE0B":"1F60B","\uD83D\uDCCB":"1F4CB","\uD83D\uDE0C":"1F60C","\uD83D\uDE0D":"1F60D","\uD83D\uDCCC":"1F4CC","\uD83D\uDE0F":"1F60F","\uD83D\uDE12":"1F612","\uD83D\uDCCD":"1F4CD","\uD83D\uDE13":"1F613","\uD83D\uDE14":"1F614","\uD83D\uDCCE":"1F4CE","\uD83D\uDE16":"1F616","\uD83D\uDE18":"1F618","\uD83D\uDCCF":"1F4CF","\uD83D\uDE1A":"1F61A","\uD83D\uDE1C":"1F61C","\uD83D\uDCD0":"1F4D0","\uD83D\uDE1D":"1F61D","\uD83D\uDE1E":"1F61E","\uD83D\uDCD1":"1F4D1","\uD83D\uDE20":"1F620","\uD83D\uDE21":"1F621","\uD83D\uDE22":"1F622","\uD83D\uDE23":"1F623","\uD83D\uDE24":"1F624","\uD83D\uDE25":"1F625","\uD83D\uDE28":"1F628","\uD83D\uDE29":"1F629","\uD83D\uDE2A":"1F62A","\uD83D\uDE2B":"1F62B","\uD83D\uDE2D":"1F62D","\uD83D\uDE30":"1F630","\uD83D\uDE31":"1F631","\uD83D\uDE32":"1F632","\uD83D\uDE33":"1F633","\uD83D\uDE35":"1F635","\uD83D\uDE37":"1F637","\uD83D\uDE38":"1F638","\uD83D\uDE39":"1F639","\uD83D\uDE3A":"1F63A","\uD83D\uDE3B":"1F63B","\uD83D\uDE3C":"1F63C","\uD83D\uDE3D":"1F63D","\uD83D\uDE3E":"1F63E","\uD83D\uDE3F":"1F63F","\uD83D\uDE40":"1F640","\uD83D\uDE45":"1F645","\uD83D\uDE46":"1F646","\uD83D\uDE47":"1F647","\uD83D\uDE48":"1F648","\uD83D\uDE49":"1F649","\uD83D\uDE4A":"1F64A","\uD83D\uDE4B":"1F64B","\uD83D\uDE4C":"1F64C","\uD83D\uDE4D":"1F64D","\uD83D\uDE4E":"1F64E","\uD83D\uDE4F":"1F64F","\uD83D\uDE80":"1F680","\uD83D\uDE83":"1F683","\uD83D\uDE84":"1F684","\uD83D\uDE85":"1F685","\uD83D\uDE87":"1F687","\uD83D\uDE89":"1F689","\uD83D\uDE8C":"1F68C","\uD83D\uDE8F":"1F68F","\uD83D\uDE91":"1F691","\uD83D\uDE92":"1F692","\uD83D\uDE93":"1F693","\uD83D\uDE95":"1F695","\uD83D\uDE97":"1F697","\uD83D\uDE99":"1F699","\uD83D\uDE9A":"1F69A","\uD83D\uDEA2":"1F6A2","\uD83D\uDEA4":"1F6A4","\uD83D\uDEA5":"1F6A5","\uD83D\uDEA7":"1F6A7","\uD83D\uDEA8":"1F6A8","\uD83D\uDEA9":"1F6A9","\uD83D\uDEAA":"1F6AA","\uD83D\uDEAB":"1F6AB","\uD83D\uDEAC":"1F6AC","\uD83D\uDEAD":"1F6AD","\uD83D\uDEB2":"1F6B2","\uD83D\uDEB6":"1F6B6","\uD83D\uDEB9":"1F6B9","\uD83D\uDEBA":"1F6BA","\uD83D\uDEBB":"1F6BB","\uD83D\uDEBC":"1F6BC","\uD83D\uDEBD":"1F6BD","\uD83D\uDEBE":"1F6BE","\uD83D\uDEC0":"1F6C0","\uD83D\uDE00":"1F600","\uD83D\uDE07":"1F607","\uD83D\uDE08":"1F608","\uD83D\uDE0E":"1F60E","\uD83D\uDE10":"1F610","\uD83D\uDE11":"1F611","\uD83D\uDE15":"1F615","\uD83D\uDE17":"1F617","\uD83D\uDE19":"1F619","\uD83D\uDE1B":"1F61B","\uD83D\uDE1F":"1F61F","\uD83D\uDE26":"1F626","\uD83D\uDE27":"1F627","\uD83D\uDE2C":"1F62C","\uD83D\uDE2E":"1F62E","\uD83D\uDE2F":"1F62F","\uD83D\uDE34":"1F634","\uD83D\uDE36":"1F636","\uD83D\uDE81":"1F681","\uD83D\uDE82":"1F682","\uD83D\uDE86":"1F686","\uD83D\uDE88":"1F688","\uD83D\uDE8A":"1F68A","\uD83D\uDE8D":"1F68D","\uD83D\uDE8E":"1F68E","\uD83D\uDE90":"1F690","\uD83D\uDE94":"1F694","\uD83D\uDE96":"1F696","\uD83D\uDE98":"1F698","\uD83D\uDE9B":"1F69B","\uD83D\uDE9C":"1F69C","\uD83D\uDE9D":"1F69D","\uD83D\uDE9E":"1F69E","\uD83D\uDE9F":"1F69F","\uD83D\uDEA0":"1F6A0","\uD83D\uDEA1":"1F6A1","\uD83D\uDEA3":"1F6A3","\uD83D\uDEA6":"1F6A6","\uD83D\uDEAE":"1F6AE","\uD83D\uDEAF":"1F6AF","\uD83D\uDEB0":"1F6B0","\uD83D\uDEB1":"1F6B1","\uD83D\uDEB3":"1F6B3","\uD83D\uDEB4":"1F6B4","\uD83D\uDEB5":"1F6B5","\uD83D\uDEB7":"1F6B7","\uD83D\uDEB8":"1F6B8","\uD83D\uDEBF":"1F6BF","\uD83D\uDEC1":"1F6C1","\uD83D\uDEC2":"1F6C2","\uD83D\uDEC3":"1F6C3","\uD83D\uDEC4":"1F6C4","\uD83D\uDEC5":"1F6C5","\uD83C\uDF0D":"1F30D","\uD83C\uDF0E":"1F30E","\uD83C\uDF10":"1F310","\uD83C\uDF12":"1F312","\uD83C\uDF16":"1F316","\uD83C\uDF17":"1F317","\uD83C\uDF18":"1F318","\uD83C\uDF1A":"1F31A","\uD83C\uDF1C":"1F31C","\uD83C\uDF1D":"1F31D","\uD83C\uDF1E":"1F31E","\uD83C\uDF32":"1F332","\uD83C\uDF33":"1F333","\uD83C\uDF4B":"1F34B","\uD83C\uDF50":"1F350","\uD83C\uDF7C":"1F37C","\uD83C\uDFC7":"1F3C7","\uD83C\uDFC9":"1F3C9","\uD83C\uDFE4":"1F3E4","\uD83D\uDC00":"1F400","\uD83D\uDC01":"1F401","\uD83D\uDC02":"1F402","\uD83D\uDC03":"1F403","\uD83D\uDC04":"1F404","\uD83D\uDC05":"1F405","\uD83D\uDC06":"1F406","\uD83D\uDC07":"1F407","\uD83D\uDC08":"1F408","\uD83D\uDC09":"1F409","\uD83D\uDC0A":"1F40A","\uD83D\uDC0B":"1F40B","\uD83D\uDC0F":"1F40F","\uD83D\uDC10":"1F410","\uD83D\uDC13":"1F413","\uD83D\uDC15":"1F415","\uD83D\uDC16":"1F416","\uD83D\uDC2A":"1F42A","\uD83D\uDC65":"1F465","\uD83D\uDC6C":"1F46C","\uD83D\uDC6D":"1F46D","\uD83D\uDCAD":"1F4AD","\uD83D\uDCB6":"1F4B6","\uD83D\uDCB7":"1F4B7","\uD83D\uDCEC":"1F4EC","\uD83D\uDCED":"1F4ED","\uD83D\uDCEF":"1F4EF","\uD83D\uDCF5":"1F4F5","\uD83D\uDD00":"1F500","\uD83D\uDD01":"1F501","\uD83D\uDD02":"1F502","\uD83D\uDD04":"1F504","\uD83D\uDD05":"1F505","\uD83D\uDD06":"1F506","\uD83D\uDD07":"1F507","\uD83D\uDD09":"1F509","\uD83D\uDD15":"1F515","\uD83D\uDD2C":"1F52C","\uD83D\uDD2D":"1F52D","\uD83D\uDD5C":"1F55C","\uD83D\uDD5D":"1F55D","\uD83D\uDD5E":"1F55E","\uD83D\uDD5F":"1F55F","\uD83D\uDD60":"1F560","\uD83D\uDD61":"1F561","\uD83D\uDD62":"1F562","\uD83D\uDD63":"1F563","\uD83D\uDD64":"1F564","\uD83D\uDD65":"1F565","\uD83D\uDD66":"1F566","\uD83D\uDD67":"1F567","\uD83D\uDD08":"1F508","\uD83D\uDE8B":"1F68B","\u27BF":"27BF","\uD83C\uDDE6\uD83C\uDDEB":"1F1E6-1F1EB","\uD83C\uDDE6\uD83C\uDDF1":"1F1E6-1F1F1","\uD83C\uDDE9\uD83C\uDDFF":"1F1E9-1F1FF","\uD83C\uDDE6\uD83C\uDDE9":"1F1E6-1F1E9","\uD83C\uDDE6\uD83C\uDDF4":"1F1E6-1F1F4","\uD83C\uDDE6\uD83C\uDDEC":"1F1E6-1F1EC","\uD83C\uDDE6\uD83C\uDDF7":"1F1E6-1F1F7","\uD83C\uDDE6\uD83C\uDDF2":"1F1E6-1F1F2","\uD83C\uDDE6\uD83C\uDDFA":"1F1E6-1F1FA","\uD83C\uDDE6\uD83C\uDDF9":"1F1E6-1F1F9","\uD83C\uDDE6\uD83C\uDDFF":"1F1E6-1F1FF","\uD83C\uDDE7\uD83C\uDDF8":"1F1E7-1F1F8","\uD83C\uDDE7\uD83C\uDDED":"1F1E7-1F1ED","\uD83C\uDDE7\uD83C\uDDE9":"1F1E7-1F1E9","\uD83C\uDDE7\uD83C\uDDE7":"1F1E7-1F1E7","\uD83C\uDDE7\uD83C\uDDFE":"1F1E7-1F1FE","\uD83C\uDDE7\uD83C\uDDEA":"1F1E7-1F1EA","\uD83C\uDDE7\uD83C\uDDFF":"1F1E7-1F1FF","\uD83C\uDDE7\uD83C\uDDEF":"1F1E7-1F1EF","\uD83C\uDDE7\uD83C\uDDF9":"1F1E7-1F1F9","\uD83C\uDDE7\uD83C\uDDF4":"1F1E7-1F1F4","\uD83C\uDDE7\uD83C\uDDE6":"1F1E7-1F1E6","\uD83C\uDDE7\uD83C\uDDFC":"1F1E7-1F1FC","\uD83C\uDDE7\uD83C\uDDF7":"1F1E7-1F1F7","\uD83C\uDDE7\uD83C\uDDF3":"1F1E7-1F1F3","\uD83C\uDDE7\uD83C\uDDEC":"1F1E7-1F1EC","\uD83C\uDDE7\uD83C\uDDEB":"1F1E7-1F1EB","\uD83C\uDDE7\uD83C\uDDEE":"1F1E7-1F1EE","\uD83C\uDDF0\uD83C\uDDED":"1F1F0-1F1ED","\uD83C\uDDE8\uD83C\uDDF2":"1F1E8-1F1F2","\uD83C\uDDE8\uD83C\uDDE6":"1F1E8-1F1E6","\uD83C\uDDE8\uD83C\uDDFB":"1F1E8-1F1FB","\uD83C\uDDE8\uD83C\uDDEB":"1F1E8-1F1EB","\uD83C\uDDF9\uD83C\uDDE9":"1F1F9-1F1E9","\uD83C\uDDE8\uD83C\uDDF1":"1F1E8-1F1F1","\uD83C\uDDE8\uD83C\uDDF4":"1F1E8-1F1F4","\uD83C\uDDF0\uD83C\uDDF2":"1F1F0-1F1F2","\uD83C\uDDE8\uD83C\uDDF7":"1F1E8-1F1F7","\uD83C\uDDE8\uD83C\uDDEE":"1F1E8-1F1EE","\uD83C\uDDED\uD83C\uDDF7":"1F1ED-1F1F7","\uD83C\uDDE8\uD83C\uDDFA":"1F1E8-1F1FA","\uD83C\uDDE8\uD83C\uDDFE":"1F1E8-1F1FE","\uD83C\uDDE8\uD83C\uDDFF":"1F1E8-1F1FF","\uD83C\uDDE8\uD83C\uDDE9":"1F1E8-1F1E9","\uD83C\uDDE9\uD83C\uDDF0":"1F1E9-1F1F0","\uD83C\uDDE9\uD83C\uDDEF":"1F1E9-1F1EF","\uD83C\uDDE9\uD83C\uDDF2":"1F1E9-1F1F2","\uD83C\uDDE9\uD83C\uDDF4":"1F1E9-1F1F4","\uD83C\uDDF9\uD83C\uDDF1":"1F1F9-1F1F1","\uD83C\uDDEA\uD83C\uDDE8":"1F1EA-1F1E8","\uD83C\uDDEA\uD83C\uDDEC":"1F1EA-1F1EC","\uD83C\uDDF8\uD83C\uDDFB":"1F1F8-1F1FB","\uD83C\uDDEC\uD83C\uDDF6":"1F1EC-1F1F6","\uD83C\uDDEA\uD83C\uDDF7":"1F1EA-1F1F7","\uD83C\uDDEA\uD83C\uDDEA":"1F1EA-1F1EA","\uD83C\uDDEA\uD83C\uDDF9":"1F1EA-1F1F9","\uD83C\uDDEB\uD83C\uDDEF":"1F1EB-1F1EF","\uD83C\uDDEB\uD83C\uDDEE":"1F1EB-1F1EE","\uD83C\uDDEC\uD83C\uDDE6":"1F1EC-1F1E6","\uD83C\uDDEC\uD83C\uDDF2":"1F1EC-1F1F2","\uD83C\uDDEC\uD83C\uDDEA":"1F1EC-1F1EA","\uD83C\uDDEC\uD83C\uDDED":"1F1EC-1F1ED","\uD83C\uDDEC\uD83C\uDDF7":"1F1EC-1F1F7","\uD83C\uDDEC\uD83C\uDDE9":"1F1EC-1F1E9","\uD83C\uDDEC\uD83C\uDDF9":"1F1EC-1F1F9","\uD83C\uDDEC\uD83C\uDDF3":"1F1EC-1F1F3","\uD83C\uDDEC\uD83C\uDDFC":"1F1EC-1F1FC","\uD83C\uDDEC\uD83C\uDDFE":"1F1EC-1F1FE","\uD83C\uDDED\uD83C\uDDF9":"1F1ED-1F1F9","\uD83C\uDDED\uD83C\uDDF3":"1F1ED-1F1F3","\uD83C\uDDED\uD83C\uDDFA":"1F1ED-1F1FA","\uD83C\uDDEE\uD83C\uDDF8":"1F1EE-1F1F8","\uD83C\uDDEE\uD83C\uDDF3":"1F1EE-1F1F3","\uD83C\uDDEE\uD83C\uDDE9":"1F1EE-1F1E9","\uD83C\uDDEE\uD83C\uDDF7":"1F1EE-1F1F7","\uD83C\uDDEE\uD83C\uDDF6":"1F1EE-1F1F6","\uD83C\uDDEE\uD83C\uDDEA":"1F1EE-1F1EA","\uD83C\uDDEE\uD83C\uDDF1":"1F1EE-1F1F1","\uD83C\uDDEF\uD83C\uDDF2":"1F1EF-1F1F2","\uD83C\uDDEF\uD83C\uDDF4":"1F1EF-1F1F4","\uD83C\uDDF0\uD83C\uDDFF":"1F1F0-1F1FF","\uD83C\uDDF0\uD83C\uDDEA":"1F1F0-1F1EA","\uD83C\uDDF0\uD83C\uDDEE":"1F1F0-1F1EE","\uD83C\uDDFD\uD83C\uDDF0":"1F1FD-1F1F0","\uD83C\uDDF0\uD83C\uDDFC":"1F1F0-1F1FC","\uD83C\uDDF0\uD83C\uDDEC":"1F1F0-1F1EC","\uD83C\uDDF1\uD83C\uDDE6":"1F1F1-1F1E6","\uD83C\uDDF1\uD83C\uDDFB":"1F1F1-1F1FB","\uD83C\uDDF1\uD83C\uDDE7":"1F1F1-1F1E7","\uD83C\uDDF1\uD83C\uDDF8":"1F1F1-1F1F8","\uD83C\uDDF1\uD83C\uDDF7":"1F1F1-1F1F7","\uD83C\uDDF1\uD83C\uDDFE":"1F1F1-1F1FE","\uD83C\uDDF1\uD83C\uDDEE":"1F1F1-1F1EE","\uD83C\uDDF1\uD83C\uDDF9":"1F1F1-1F1F9","\uD83C\uDDF1\uD83C\uDDFA":"1F1F1-1F1FA","\uD83C\uDDF2\uD83C\uDDF0":"1F1F2-1F1F0","\uD83C\uDDF2\uD83C\uDDEC":"1F1F2-1F1EC","\uD83C\uDDF2\uD83C\uDDFC":"1F1F2-1F1FC","\uD83C\uDDF2\uD83C\uDDFE":"1F1F2-1F1FE","\uD83C\uDDF2\uD83C\uDDFB":"1F1F2-1F1FB","\uD83C\uDDF2\uD83C\uDDF1":"1F1F2-1F1F1","\uD83C\uDDF2\uD83C\uDDF9":"1F1F2-1F1F9","\uD83C\uDDF2\uD83C\uDDED":"1F1F2-1F1ED","\uD83C\uDDF2\uD83C\uDDF7":"1F1F2-1F1F7","\uD83C\uDDF2\uD83C\uDDFA":"1F1F2-1F1FA","\uD83C\uDDF2\uD83C\uDDFD":"1F1F2-1F1FD","\uD83C\uDDEB\uD83C\uDDF2":"1F1EB-1F1F2","\uD83C\uDDF2\uD83C\uDDE9":"1F1F2-1F1E9","\uD83C\uDDF2\uD83C\uDDE8":"1F1F2-1F1E8","\uD83C\uDDF2\uD83C\uDDF3":"1F1F2-1F1F3","\uD83C\uDDF2\uD83C\uDDEA":"1F1F2-1F1EA","\uD83C\uDDF2\uD83C\uDDE6":"1F1F2-1F1E6","\uD83C\uDDF2\uD83C\uDDFF":"1F1F2-1F1FF","\uD83C\uDDF2\uD83C\uDDF2":"1F1F2-1F1F2","\uD83C\uDDF3\uD83C\uDDE6":"1F1F3-1F1E6","\uD83C\uDDF3\uD83C\uDDF7":"1F1F3-1F1F7","\uD83C\uDDF3\uD83C\uDDF5":"1F1F3-1F1F5","\uD83C\uDDF3\uD83C\uDDF1":"1F1F3-1F1F1","\uD83C\uDDF3\uD83C\uDDFF":"1F1F3-1F1FF","\uD83C\uDDF3\uD83C\uDDEE":"1F1F3-1F1EE","\uD83C\uDDF3\uD83C\uDDEA":"1F1F3-1F1EA","\uD83C\uDDF3\uD83C\uDDEC":"1F1F3-1F1EC","\uD83C\uDDF0\uD83C\uDDF5":"1F1F0-1F1F5","\uD83C\uDDF3\uD83C\uDDF4":"1F1F3-1F1F4","\uD83C\uDDF4\uD83C\uDDF2":"1F1F4-1F1F2","\uD83C\uDDF5\uD83C\uDDF0":"1F1F5-1F1F0","\uD83C\uDDF5\uD83C\uDDFC":"1F1F5-1F1FC","\uD83C\uDDF5\uD83C\uDDE6":"1F1F5-1F1E6","\uD83C\uDDF5\uD83C\uDDEC":"1F1F5-1F1EC","\uD83C\uDDF5\uD83C\uDDFE":"1F1F5-1F1FE","\uD83C\uDDF5\uD83C\uDDEA":"1F1F5-1F1EA","\uD83C\uDDF5\uD83C\uDDED":"1F1F5-1F1ED","\uD83C\uDDF5\uD83C\uDDF1":"1F1F5-1F1F1","\uD83C\uDDF5\uD83C\uDDF9":"1F1F5-1F1F9","\uD83C\uDDF6\uD83C\uDDE6":"1F1F6-1F1E6","\uD83C\uDDF9\uD83C\uDDFC":"1F1F9-1F1FC","\uD83C\uDDE8\uD83C\uDDEC":"1F1E8-1F1EC","\uD83C\uDDF7\uD83C\uDDF4":"1F1F7-1F1F4","\uD83C\uDDF7\uD83C\uDDFC":"1F1F7-1F1FC","\uD83C\uDDF0\uD83C\uDDF3":"1F1F0-1F1F3","\uD83C\uDDF1\uD83C\uDDE8":"1F1F1-1F1E8","\uD83C\uDDFB\uD83C\uDDE8":"1F1FB-1F1E8","\uD83C\uDDFC\uD83C\uDDF8":"1F1FC-1F1F8","\uD83C\uDDF8\uD83C\uDDF2":"1F1F8-1F1F2","\uD83C\uDDF8\uD83C\uDDF9":"1F1F8-1F1F9","\uD83C\uDDF8\uD83C\uDDE6":"1F1F8-1F1E6","\uD83C\uDDF8\uD83C\uDDF3":"1F1F8-1F1F3","\uD83C\uDDF7\uD83C\uDDF8":"1F1F7-1F1F8","\uD83C\uDDF8\uD83C\uDDE8":"1F1F8-1F1E8","\uD83C\uDDF8\uD83C\uDDF1":"1F1F8-1F1F1","\uD83C\uDDF8\uD83C\uDDEC":"1F1F8-1F1EC","\uD83C\uDDF8\uD83C\uDDF0":"1F1F8-1F1F0","\uD83C\uDDF8\uD83C\uDDEE":"1F1F8-1F1EE","\uD83C\uDDF8\uD83C\uDDE7":"1F1F8-1F1E7","\uD83C\uDDF8\uD83C\uDDF4":"1F1F8-1F1F4","\uD83C\uDDFF\uD83C\uDDE6":"1F1FF-1F1E6","\uD83C\uDDF1\uD83C\uDDF0":"1F1F1-1F1F0","\uD83C\uDDF8\uD83C\uDDE9":"1F1F8-1F1E9","\uD83C\uDDF8\uD83C\uDDF7":"1F1F8-1F1F7","\uD83C\uDDF8\uD83C\uDDFF":"1F1F8-1F1FF","\uD83C\uDDF8\uD83C\uDDEA":"1F1F8-1F1EA","\uD83C\uDDE8\uD83C\uDDED":"1F1E8-1F1ED","\uD83C\uDDF8\uD83C\uDDFE":"1F1F8-1F1FE","\uD83C\uDDF9\uD83C\uDDEF":"1F1F9-1F1EF","\uD83C\uDDF9\uD83C\uDDFF":"1F1F9-1F1FF","\uD83C\uDDF9\uD83C\uDDED":"1F1F9-1F1ED","\uD83C\uDDF9\uD83C\uDDEC":"1F1F9-1F1EC","\uD83C\uDDF9\uD83C\uDDF4":"1F1F9-1F1F4","\uD83C\uDDF9\uD83C\uDDF9":"1F1F9-1F1F9","\uD83C\uDDF9\uD83C\uDDF3":"1F1F9-1F1F3","\uD83C\uDDF9\uD83C\uDDF7":"1F1F9-1F1F7","\uD83C\uDDF9\uD83C\uDDF2":"1F1F9-1F1F2","\uD83C\uDDF9\uD83C\uDDFB":"1F1F9-1F1FB","\uD83C\uDDFA\uD83C\uDDEC":"1F1FA-1F1EC","\uD83C\uDDFA\uD83C\uDDE6":"1F1FA-1F1E6","\uD83C\uDDE6\uD83C\uDDEA":"1F1E6-1F1EA","\uD83C\uDDFA\uD83C\uDDFE":"1F1FA-1F1FE","\uD83C\uDDFA\uD83C\uDDFF":"1F1FA-1F1FF","\uD83C\uDDFB\uD83C\uDDFA":"1F1FB-1F1FA","\uD83C\uDDFB\uD83C\uDDE6":"1F1FB-1F1E6","\uD83C\uDDFB\uD83C\uDDEA":"1F1FB-1F1EA","\uD83C\uDDFB\uD83C\uDDF3":"1F1FB-1F1F3","\uD83C\uDDEA\uD83C\uDDED":"1F1EA-1F1ED","\uD83C\uDDFE\uD83C\uDDEA":"1F1FE-1F1EA","\uD83C\uDDFF\uD83C\uDDF2":"1F1FF-1F1F2","\uD83C\uDDFF\uD83C\uDDFC":"1F1FF-1F1FC","\uD83C\uDDF5\uD83C\uDDF7":"1F1F5-1F1F7","\uD83C\uDDF0\uD83C\uDDFE":"1F1F0-1F1FE","\uD83C\uDDE7\uD83C\uDDF2":"1F1E7-1F1F2","\uD83C\uDDF5\uD83C\uDDEB":"1F1F5-1F1EB","\uD83C\uDDF5\uD83C\uDDF8":"1F1F5-1F1F8","\uD83C\uDDF3\uD83C\uDDE8":"1F1F3-1F1E8","\uD83C\uDDF8\uD83C\uDDED":"1F1F8-1F1ED","\uD83C\uDDE6\uD83C\uDDFC":"1F1E6-1F1FC","\uD83C\uDDFB\uD83C\uDDEE":"1F1FB-1F1EE","\uD83C\uDDED\uD83C\uDDF0":"1F1ED-1F1F0","\uD83C\uDDE6\uD83C\uDDE8":"1F1E6-1F1E8","\uD83C\uDDF2\uD83C\uDDF8":"1F1F2-1F1F8","\uD83C\uDDEC\uD83C\uDDFA":"1F1EC-1F1FA","\uD83C\uDDEC\uD83C\uDDF1":"1F1EC-1F1F1","\uD83C\uDDF3\uD83C\uDDFA":"1F1F3-1F1FA","\uD83C\uDDFC\uD83C\uDDEB":"1F1FC-1F1EB","\uD83C\uDDF2\uD83C\uDDF4":"1F1F2-1F1F4","\uD83C\uDDEB\uD83C\uDDF4":"1F1EB-1F1F4","\uD83C\uDDEB\uD83C\uDDF0":"1F1EB-1F1F0","\uD83C\uDDEF\uD83C\uDDEA":"1F1EF-1F1EA","\uD83C\uDDE6\uD83C\uDDEE":"1F1E6-1F1EE","\uD83C\uDDEC\uD83C\uDDEE":"1F1EC-1F1EE"};
-    ns.shortnameRegexp = ':([-+\\w]+):';
-    ns.imagePathPNG = '//cdn.jsdelivr.net/emojione/assets/png/';
-    ns.imagePathSVG = '//cdn.jsdelivr.net/emojione/assets/svg/';
-    ns.imagePathSVGSprites = './../assets/sprites/emojione.sprites.svg';
-    ns.imageType = 'png'; // or svg
-    ns.sprites = false; // if this is true then sprite markup will be used (if SVG image type is set then you must include the SVG sprite file locally)
-    ns.unicodeAlt = true; // use the unicode char as the alt attribute (makes copy and pasting the resulting text better)
-    ns.ascii = false; // change to true to convert ascii smileys
-    ns.cacheBustParam = '?v=1.2.4'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
-
-    ns.toImage = function(str) {
-        str = ns.unicodeToImage(str);
-        str = ns.shortnameToImage(str);
-        return str;
-    };
-
-    // Uses toShort to transform all unicode into a standard shortname
-    // then transforms the shortname into unicode
-    // This is done for standardization when converting several unicode types
-    ns.unifyUnicode = function(str) {
-        str = ns.toShort(str);
-        str = ns.shortnameToUnicode(str);
-        return str;
-    };
-
-    // Replace shortnames (:wink:) with Ascii equivalents ( ;^) )
-    // Useful for systems that dont support unicode nor images
-    ns.shortnameToAscii = function(str) {
-        var unicode,
-            // something to keep in mind here is that array flip will destroy
-            // half of the ascii text "emojis" because the unicode numbers are duplicated
-            // this is ok for what it's being used for
-            unicodeToAscii = ns.objectFlip(ns.asciiList);
-
-        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnameRegexp+")", "gi"),function(shortname) {
-            if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
-                // if the shortname doesnt exist just return the entire match
-                return shortname;
-            }
-            else {
-                unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1].toLowerCase();
-                if(typeof unicodeToAscii[unicode] !== 'undefined') {
-                    return unicodeToAscii[unicode];
-                } else {
-                    return shortname;
-                }
-            }
-        });
-        return str;
-    };
-
-    // will output unicode from shortname
-    // useful for sending emojis back to mobile devices
-    ns.shortnameToUnicode = function(str) {
-        // replace regular shortnames first
-        var unicode;
-        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnameRegexp+")", "gi"),function(shortname) {
-            if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
-                // if the shortname doesnt exist just return the entire match
-                return shortname;
-            }
-            unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1].toUpperCase();
-            return ns.convert(unicode);
-        });
-
-        // if ascii smileys are turned on, then we'll replace them!
-        if (ns.ascii) {
-
-            str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,\.]))","g"),function(entire, m1, m2, m3) {
-                if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
-                    // if the shortname doesnt exist just return the entire match
-                    return entire;
-                }
-
-                m3 = ns.unescapeHTML(m3);
-                unicode = ns.asciiList[m3].toUpperCase();
-                return m2+ns.convert(unicode);
-            });
-        }
-
-		return str;
-    };
-
-    ns.shortnameToImage = function(str) {
-        // replace regular shortnames first
-        var replaceWith,unicode,alt;
-        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnameRegexp+")", "gi"),function(shortname) {
-            if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
-                // if the shortname doesnt exist just return the entire match
-                return shortname;
-            }
-            else {
-                unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1].toUpperCase();
-
-                // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
-                alt = (ns.unicodeAlt) ? ns.convert(unicode) : shortname;
-
-                if(ns.imageType === 'png') {
-                    if(ns.sprites) {
-                        replaceWith = '<span class="emojione-'+unicode+'" title="'+shortname+'">'+alt+'</span>';
-                    }
-                    else {
-                        replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
-                    }
-                }
-                else {
-                    // svg
-                    if(ns.sprites) {
-                        replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
-                    }
-                    else {
-                        replaceWith = '<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
-                    }
-                }
-
-                return replaceWith;
-            }
-        });
-
-        // if ascii smileys are turned on, then we'll replace them!
-        if (ns.ascii) {
-
-            str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,\.]))","g"),function(entire, m1, m2, m3) {
-                if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
-                    // if the shortname doesnt exist just return the entire match
-                    return entire;
-                }
-
-                m3 = ns.unescapeHTML(m3);
-                unicode = ns.asciiList[m3].toUpperCase();
-
-                // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
-                alt = (ns.unicodeAlt) ? ns.convert(unicode) : ns.escapeHTML(m3);
-
-                if(ns.imageType === 'png') {
-                    if(ns.sprites) {
-                        replaceWith = m2+'<span class="emojione-'+unicode.toUpperCase()+'" title="'+ns.escapeHTML(m3)+'">'+alt+'</span>';
-                    }
-                    else {
-                        replaceWith = m2+'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
-                    }
-                }
-                else {
-                    // svg
-                    if(ns.sprites) {
-                        replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode.toUpperCase()+'"></use></svg>';
-                    }
-                    else {
-                        replaceWith = m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
-                    }
-                }
-
-                return replaceWith;
-            });
-        }
-
-        return str;
-    };
-
-    ns.unicodeToImage = function(str) {
-
-        var replaceWith,unicode,alt;
-
-        if((!ns.unicodeAlt) || (ns.sprites)) {
-            // if we are using the shortname as the alt tag then we need a reversed array to map unicode code point to shortnames
-            var mappedUnicode = ns.mapShortToUnicode();
-        }
-
-        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")", "gi"),function(unicodeChar) {
-            if( (typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in ns.jsecapeMap)) ) {
-                // if the unicodeChar doesnt exist just return the entire match
-                return unicodeChar;
-            }
-            else {
-                // get the unicode codepoint from the actual char
-                unicode = ns.jsecapeMap[unicodeChar];
-
-                // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
-                alt = (ns.unicodeAlt) ? ns.convert(unicode) : mappedUnicode[unicode];
-
-                if(ns.imageType === 'png') {
-                    if(ns.sprites) {
-                        replaceWith = '<span class="emojione-'+unicode.toUpperCase()+'" title="'+mappedUnicode[unicode]+'">'+alt+'</span>';
-                    }
-                    else {
-                        replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
-                    }
-                }
-                else {
-                    // svg
-                    if(ns.sprites) {
-                        replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode.toUpperCase()+'"></use></svg>';
-                    }
-                    else {
-                        replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'"/>';
-                    }
-                }
-
-                return replaceWith;
-            }
-        });
-
-        return str;
-    };
-
-    // super simple loop to replace all unicode emoji to shortnames
-    // needs to be improved into one big replacement instead, for performance reasons
-    ns.toShort = function(str) { // this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
-        for (var shortcode in ns.emojioneList) {
-            if (!ns.emojioneList.hasOwnProperty(shortcode)) { continue; }
-            for (var ukey in ns.emojioneList[shortcode]) {
-                if (!ns.emojioneList[shortcode].hasOwnProperty(ukey)) { continue; }
-                var unicode = ns.emojioneList[shortcode][ukey].toUpperCase();
-                str = ns.replaceAll(str,ns.convert(unicode),shortcode);
-            }
-        }
-        return str;
-    };
-
-    // for converting unicode code points and code pairs to their respective characters
-    ns.convert = function(unicode) {
-        if(unicode.indexOf("-") > -1) {
-            var parts = [];
-            var s = unicode.split('-');
-            for(var i = 0; i < s.length; i++) {
-                var part = parseInt(s[i], 16);
-                if (part >= 0x10000 && part <= 0x10FFFF) {
-                    var hi = Math.floor((part - 0x10000) / 0x400) + 0xD800;
-                    var lo = ((part - 0x10000) % 0x400) + 0xDC00;
-                    part = (String.fromCharCode(hi) + String.fromCharCode(lo));
-                }
-                else {
-                    part = String.fromCharCode(part);
-                }
-                parts.push(part);
-            }
-            return parts.join('');
-        }
-        else {
-            var s = parseInt(unicode, 16);
-            if (s >= 0x10000 && s <= 0x10FFFF) {
-                var hi = Math.floor((s - 0x10000) / 0x400) + 0xD800;
-                var lo = ((s - 0x10000) % 0x400) + 0xDC00;
-                return (String.fromCharCode(hi) + String.fromCharCode(lo));
-            }
-            else {
-                return String.fromCharCode(s);
-            }
-        }
-    };
-
-    ns.escapeHTML = function (string) {
-        var escaped = {
-            '&' : '&amp;',
-            '<' : '&lt;',
-            '>' : '&gt;',
-            '"' : '&quot;',
-            '\'': '&#039;'
-        };
-
-        return string.replace(/[&<>"']/g, function (match) {
-            return escaped[match];
-        });
-    };
-    ns.unescapeHTML = function (string) {
-        var unescaped = {
-            '&amp;'  : '&',
-            '&#38;'  : '&',
-            '&#x26;' : '&',
-            '&lt;'   : '<',
-            '&#60;'  : '<',
-            '&#x3C;' : '<',
-            '&gt;'   : '>',
-            '&#62;'  : '>',
-            '&#x3E;' : '>',
-            '&quot;' : '"',
-            '&#34;'  : '"',
-            '&#x22;' : '"',
-            '&apos;' : '\'',
-            '&#39;'  : '\'',
-            '&#x27;' : '\''
-        };
-
-        return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/ig, function (match) {
-            return unescaped[match];
-        });
-    };
-    ns.mapShortToUnicode = function() {
-        var new_obj = {};
-        for (var shortname in ns.emojioneList) {
-            if (!ns.emojioneList.hasOwnProperty(shortname)) { continue; }
-            for (var ukey in ns.emojioneList[shortname]) {
-                if (!ns.emojioneList[shortname].hasOwnProperty(ukey)) { continue; }
-                new_obj[ns.emojioneList[shortname][ukey].toUpperCase()] = shortname;
-            }
-        }
-        return new_obj;
-    };
-    //reverse an object
-    ns.objectFlip = function (obj) {
-        var key, tmp_obj = {};
-
-        for (key in obj) {
-            if (obj.hasOwnProperty(key)) {
-                tmp_obj[obj[key]] = key;
-            }
-        }
-
-        return tmp_obj;
-    };
-
-    ns.escapeRegExp = function(string) {
-        return string.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g, "\\$&");
-    };
-
-    ns.replaceAll = function(string, find, replaceWith) {
-
-        var search = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+find+")", "gi");
-
-        // callback prevents replacing anything inside of these common html tags as well as between an <object></object> tag
-        var replace = function(entire, m1) {
-            return ((typeof  m1 === 'undefined') || (m1 === '')) ? entire : replaceWith;
-        };
-
-        return string.replace(search,replace);
-    };
-
-}(this.emojione = this.emojione || {}));
-if(typeof module === "object") module.exports = this.emojione;
diff --git a/pagure/static/emoji/emojione-1.3.1.min.js b/pagure/static/emoji/emojione-1.3.1.min.js
deleted file mode 100644
index a4091d6..0000000
--- a/pagure/static/emoji/emojione-1.3.1.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! emojione 13-04-2015 */
-!function(a){a.emojioneList={":hash:":["0023-fe0f-20e3","0023-20e3"],":zero:":["0030-fe0f-20e3","0030-20e3"],":one:":["0031-fe0f-20e3","0031-20e3"],":two:":["0032-fe0f-20e3","0032-20e3"],":three:":["0033-fe0f-20e3","0033-20e3"],":four:":["0034-fe0f-20e3","0034-20e3"],":five:":["0035-fe0f-20e3","0035-20e3"],":six:":["0036-fe0f-20e3","0036-20e3"],":seven:":["0037-fe0f-20e3","0037-20e3"],":eight:":["0038-fe0f-20e3","0038-20e3"],":nine:":["0039-fe0f-20e3","0039-20e3"],":copyright:":["00a9"],":registered:":["00ae"],":bangbang:":["203c-fe0f","203c"],":interrobang:":["2049-fe0f","2049"],":tm:":["2122"],":information_source:":["2139-fe0f","2139"],":left_right_arrow:":["2194-fe0f","2194"],":arrow_up_down:":["2195-fe0f","2195"],":arrow_upper_left:":["2196-fe0f","2196"],":arrow_upper_right:":["2197-fe0f","2197"],":arrow_lower_right:":["2198-fe0f","2198"],":arrow_lower_left:":["2199-fe0f","2199"],":leftwards_arrow_with_hook:":["21a9-fe0f","21a9"],":arrow_right_hook:":["21aa-fe0f","21aa"],":watch:":["231a-fe0f","231a"],":hourglass:":["231b-fe0f","231b"],":fast_forward:":["23e9"],":rewind:":["23ea"],":arrow_double_up:":["23eb"],":arrow_double_down:":["23ec"],":alarm_clock:":["23f0"],":hourglass_flowing_sand:":["23f3"],":m:":["24c2-fe0f","24c2"],":black_small_square:":["25aa-fe0f","25aa"],":white_small_square:":["25ab-fe0f","25ab"],":arrow_forward:":["25b6-fe0f","25b6"],":arrow_backward:":["25c0-fe0f","25c0"],":white_medium_square:":["25fb-fe0f","25fb"],":black_medium_square:":["25fc-fe0f","25fc"],":white_medium_small_square:":["25fd-fe0f","25fd"],":black_medium_small_square:":["25fe-fe0f","25fe"],":sunny:":["2600-fe0f","2600"],":cloud:":["2601-fe0f","2601"],":telephone:":["260e-fe0f","260e"],":ballot_box_with_check:":["2611-fe0f","2611"],":umbrella:":["2614-fe0f","2614"],":coffee:":["2615-fe0f","2615"],":point_up:":["261d-fe0f","261d"],":relaxed:":["263a-fe0f","263a"],":aries:":["2648-fe0f","2648"],":taurus:":["2649-fe0f","2649"],":gemini:":["264a-fe0f","264a"],":cancer:":["264b-fe0f","264b"],":leo:":["264c-fe0f","264c"],":virgo:":["264d-fe0f","264d"],":libra:":["264e-fe0f","264e"],":scorpius:":["264f-fe0f","264f"],":sagittarius:":["2650-fe0f","2650"],":capricorn:":["2651-fe0f","2651"],":aquarius:":["2652-fe0f","2652"],":pisces:":["2653-fe0f","2653"],":spades:":["2660-fe0f","2660"],":clubs:":["2663-fe0f","2663"],":hearts:":["2665-fe0f","2665"],":diamonds:":["2666-fe0f","2666"],":hotsprings:":["2668-fe0f","2668"],":recycle:":["267b-fe0f","267b"],":wheelchair:":["267f-fe0f","267f"],":anchor:":["2693-fe0f","2693"],":warning:":["26a0-fe0f","26a0"],":zap:":["26a1-fe0f","26a1"],":white_circle:":["26aa-fe0f","26aa"],":black_circle:":["26ab-fe0f","26ab"],":soccer:":["26bd-fe0f","26bd"],":baseball:":["26be-fe0f","26be"],":snowman:":["26c4-fe0f","26c4"],":partly_sunny:":["26c5-fe0f","26c5"],":ophiuchus:":["26ce"],":no_entry:":["26d4-fe0f","26d4"],":church:":["26ea-fe0f","26ea"],":fountain:":["26f2-fe0f","26f2"],":golf:":["26f3-fe0f","26f3"],":sailboat:":["26f5-fe0f","26f5"],":tent:":["26fa-fe0f","26fa"],":fuelpump:":["26fd-fe0f","26fd"],":scissors:":["2702-fe0f","2702"],":white_check_mark:":["2705"],":airplane:":["2708-fe0f","2708"],":envelope:":["2709-fe0f","2709"],":fist:":["270a"],":raised_hand:":["270b"],":v:":["270c-fe0f","270c"],":pencil2:":["270f-fe0f","270f"],":black_nib:":["2712-fe0f","2712"],":heavy_check_mark:":["2714-fe0f","2714"],":heavy_multiplication_x:":["2716-fe0f","2716"],":sparkles:":["2728"],":eight_spoked_asterisk:":["2733-fe0f","2733"],":eight_pointed_black_star:":["2734-fe0f","2734"],":snowflake:":["2744-fe0f","2744"],":sparkle:":["2747-fe0f","2747"],":x:":["274c"],":negative_squared_cross_mark:":["274e"],":question:":["2753"],":grey_question:":["2754"],":grey_exclamation:":["2755"],":exclamation:":["2757-fe0f","2757"],":heart:":["2764-fe0f","2764"],":heavy_plus_sign:":["2795"],":heavy_minus_sign:":["2796"],":heavy_division_sign:":["2797"],":arrow_right:":["27a1-fe0f","27a1"],":curly_loop:":["27b0"],":arrow_heading_up:":["2934-fe0f","2934"],":arrow_heading_down:":["2935-fe0f","2935"],":arrow_left:":["2b05-fe0f","2b05"],":arrow_up:":["2b06-fe0f","2b06"],":arrow_down:":["2b07-fe0f","2b07"],":black_large_square:":["2b1b-fe0f","2b1b"],":white_large_square:":["2b1c-fe0f","2b1c"],":star:":["2b50-fe0f","2b50"],":o:":["2b55-fe0f","2b55"],":wavy_dash:":["3030"],":part_alternation_mark:":["303d-fe0f","303d"],":congratulations:":["3297-fe0f","3297"],":secret:":["3299-fe0f","3299"],":mahjong:":["1f004-fe0f","1f004"],":black_joker:":["1f0cf"],":a:":["1f170"],":b:":["1f171"],":o2:":["1f17e"],":parking:":["1f17f-fe0f","1f17f"],":ab:":["1f18e"],":cl:":["1f191"],":cool:":["1f192"],":free:":["1f193"],":id:":["1f194"],":new:":["1f195"],":ng:":["1f196"],":ok:":["1f197"],":sos:":["1f198"],":up:":["1f199"],":vs:":["1f19a"],":cn:":["1f1e8-1f1f3"],":de:":["1f1e9-1f1ea"],":es:":["1f1ea-1f1f8"],":fr:":["1f1eb-1f1f7"],":gb:":["1f1ec-1f1e7"],":it:":["1f1ee-1f1f9"],":jp:":["1f1ef-1f1f5"],":kr:":["1f1f0-1f1f7"],":us:":["1f1fa-1f1f8"],":ru:":["1f1f7-1f1fa"],":koko:":["1f201"],":sa:":["1f202"],":u7121:":["1f21a-fe0f","1f21a"],":u6307:":["1f22f-fe0f","1f22f"],":u7981:":["1f232"],":u7a7a:":["1f233"],":u5408:":["1f234"],":u6e80:":["1f235"],":u6709:":["1f236"],":u6708:":["1f237"],":u7533:":["1f238"],":u5272:":["1f239"],":u55b6:":["1f23a"],":ideograph_advantage:":["1f250"],":accept:":["1f251"],":cyclone:":["1f300"],":foggy:":["1f301"],":closed_umbrella:":["1f302"],":night_with_stars:":["1f303"],":sunrise_over_mountains:":["1f304"],":sunrise:":["1f305"],":city_dusk:":["1f306"],":city_sunset:":["1f307"],":city_sunrise:":["1f307"],":rainbow:":["1f308"],":bridge_at_night:":["1f309"],":ocean:":["1f30a"],":volcano:":["1f30b"],":milky_way:":["1f30c"],":earth_asia:":["1f30f"],":new_moon:":["1f311"],":first_quarter_moon:":["1f313"],":waxing_gibbous_moon:":["1f314"],":full_moon:":["1f315"],":crescent_moon:":["1f319"],":first_quarter_moon_with_face:":["1f31b"],":star2:":["1f31f"],":stars:":["1f320"],":chestnut:":["1f330"],":seedling:":["1f331"],":palm_tree:":["1f334"],":cactus:":["1f335"],":tulip:":["1f337"],":cherry_blossom:":["1f338"],":rose:":["1f339"],":hibiscus:":["1f33a"],":sunflower:":["1f33b"],":blossom:":["1f33c"],":corn:":["1f33d"],":ear_of_rice:":["1f33e"],":herb:":["1f33f"],":four_leaf_clover:":["1f340"],":maple_leaf:":["1f341"],":fallen_leaf:":["1f342"],":leaves:":["1f343"],":mushroom:":["1f344"],":tomato:":["1f345"],":eggplant:":["1f346"],":grapes:":["1f347"],":melon:":["1f348"],":watermelon:":["1f349"],":tangerine:":["1f34a"],":banana:":["1f34c"],":pineapple:":["1f34d"],":apple:":["1f34e"],":green_apple:":["1f34f"],":peach:":["1f351"],":cherries:":["1f352"],":strawberry:":["1f353"],":hamburger:":["1f354"],":pizza:":["1f355"],":meat_on_bone:":["1f356"],":poultry_leg:":["1f357"],":rice_cracker:":["1f358"],":rice_ball:":["1f359"],":rice:":["1f35a"],":curry:":["1f35b"],":ramen:":["1f35c"],":spaghetti:":["1f35d"],":bread:":["1f35e"],":fries:":["1f35f"],":sweet_potato:":["1f360"],":dango:":["1f361"],":oden:":["1f362"],":sushi:":["1f363"],":fried_shrimp:":["1f364"],":fish_cake:":["1f365"],":icecream:":["1f366"],":shaved_ice:":["1f367"],":ice_cream:":["1f368"],":doughnut:":["1f369"],":cookie:":["1f36a"],":chocolate_bar:":["1f36b"],":candy:":["1f36c"],":lollipop:":["1f36d"],":custard:":["1f36e"],":honey_pot:":["1f36f"],":cake:":["1f370"],":bento:":["1f371"],":stew:":["1f372"],":egg:":["1f373"],":fork_and_knife:":["1f374"],":tea:":["1f375"],":sake:":["1f376"],":wine_glass:":["1f377"],":cocktail:":["1f378"],":tropical_drink:":["1f379"],":beer:":["1f37a"],":beers:":["1f37b"],":ribbon:":["1f380"],":gift:":["1f381"],":birthday:":["1f382"],":jack_o_lantern:":["1f383"],":christmas_tree:":["1f384"],":santa:":["1f385"],":fireworks:":["1f386"],":sparkler:":["1f387"],":balloon:":["1f388"],":tada:":["1f389"],":confetti_ball:":["1f38a"],":tanabata_tree:":["1f38b"],":crossed_flags:":["1f38c"],":bamboo:":["1f38d"],":dolls:":["1f38e"],":flags:":["1f38f"],":wind_chime:":["1f390"],":rice_scene:":["1f391"],":school_satchel:":["1f392"],":mortar_board:":["1f393"],":carousel_horse:":["1f3a0"],":ferris_wheel:":["1f3a1"],":roller_coaster:":["1f3a2"],":fishing_pole_and_fish:":["1f3a3"],":microphone:":["1f3a4"],":movie_camera:":["1f3a5"],":cinema:":["1f3a6"],":headphones:":["1f3a7"],":art:":["1f3a8"],":tophat:":["1f3a9"],":circus_tent:":["1f3aa"],":ticket:":["1f3ab"],":clapper:":["1f3ac"],":performing_arts:":["1f3ad"],":video_game:":["1f3ae"],":dart:":["1f3af"],":slot_machine:":["1f3b0"],":8ball:":["1f3b1"],":game_die:":["1f3b2"],":bowling:":["1f3b3"],":flower_playing_cards:":["1f3b4"],":musical_note:":["1f3b5"],":notes:":["1f3b6"],":saxophone:":["1f3b7"],":guitar:":["1f3b8"],":musical_keyboard:":["1f3b9"],":trumpet:":["1f3ba"],":violin:":["1f3bb"],":musical_score:":["1f3bc"],":running_shirt_with_sash:":["1f3bd"],":tennis:":["1f3be"],":ski:":["1f3bf"],":basketball:":["1f3c0"],":checkered_flag:":["1f3c1"],":snowboarder:":["1f3c2"],":runner:":["1f3c3"],":surfer:":["1f3c4"],":trophy:":["1f3c6"],":football:":["1f3c8"],":swimmer:":["1f3ca"],":house:":["1f3e0"],":house_with_garden:":["1f3e1"],":office:":["1f3e2"],":post_office:":["1f3e3"],":hospital:":["1f3e5"],":bank:":["1f3e6"],":atm:":["1f3e7"],":hotel:":["1f3e8"],":love_hotel:":["1f3e9"],":convenience_store:":["1f3ea"],":school:":["1f3eb"],":department_store:":["1f3ec"],":factory:":["1f3ed"],":izakaya_lantern:":["1f3ee"],":japanese_castle:":["1f3ef"],":european_castle:":["1f3f0"],":snail:":["1f40c"],":snake:":["1f40d"],":racehorse:":["1f40e"],":sheep:":["1f411"],":monkey:":["1f412"],":chicken:":["1f414"],":boar:":["1f417"],":elephant:":["1f418"],":octopus:":["1f419"],":shell:":["1f41a"],":bug:":["1f41b"],":ant:":["1f41c"],":bee:":["1f41d"],":beetle:":["1f41e"],":fish:":["1f41f"],":tropical_fish:":["1f420"],":blowfish:":["1f421"],":turtle:":["1f422"],":hatching_chick:":["1f423"],":baby_chick:":["1f424"],":hatched_chick:":["1f425"],":bird:":["1f426"],":penguin:":["1f427"],":koala:":["1f428"],":poodle:":["1f429"],":camel:":["1f42b"],":dolphin:":["1f42c"],":mouse:":["1f42d"],":cow:":["1f42e"],":tiger:":["1f42f"],":rabbit:":["1f430"],":cat:":["1f431"],":dragon_face:":["1f432"],":whale:":["1f433"],":horse:":["1f434"],":monkey_face:":["1f435"],":dog:":["1f436"],":pig:":["1f437"],":frog:":["1f438"],":hamster:":["1f439"],":wolf:":["1f43a"],":bear:":["1f43b"],":panda_face:":["1f43c"],":pig_nose:":["1f43d"],":feet:":["1f43e"],":eyes:":["1f440"],":ear:":["1f442"],":nose:":["1f443"],":lips:":["1f444"],":tongue:":["1f445"],":point_up_2:":["1f446"],":point_down:":["1f447"],":point_left:":["1f448"],":point_right:":["1f449"],":punch:":["1f44a"],":wave:":["1f44b"],":ok_hand:":["1f44c"],":thumbsup:":["1f44d"],":+1:":["1f44d"],":thumbsdown:":["1f44e"],":-1:":["1f44e"],":clap:":["1f44f"],":open_hands:":["1f450"],":crown:":["1f451"],":womans_hat:":["1f452"],":eyeglasses:":["1f453"],":necktie:":["1f454"],":shirt:":["1f455"],":jeans:":["1f456"],":dress:":["1f457"],":kimono:":["1f458"],":bikini:":["1f459"],":womans_clothes:":["1f45a"],":purse:":["1f45b"],":handbag:":["1f45c"],":pouch:":["1f45d"],":mans_shoe:":["1f45e"],":athletic_shoe:":["1f45f"],":high_heel:":["1f460"],":sandal:":["1f461"],":boot:":["1f462"],":footprints:":["1f463"],":bust_in_silhouette:":["1f464"],":boy:":["1f466"],":girl:":["1f467"],":man:":["1f468"],":woman:":["1f469"],":family:":["1f46a"],":couple:":["1f46b"],":cop:":["1f46e"],":dancers:":["1f46f"],":bride_with_veil:":["1f470"],":person_with_blond_hair:":["1f471"],":man_with_gua_pi_mao:":["1f472"],":man_with_turban:":["1f473"],":older_man:":["1f474"],":older_woman:":["1f475"],":grandma:":["1f475"],":baby:":["1f476"],":construction_worker:":["1f477"],":princess:":["1f478"],":japanese_ogre:":["1f479"],":japanese_goblin:":["1f47a"],":ghost:":["1f47b"],":angel:":["1f47c"],":alien:":["1f47d"],":space_invader:":["1f47e"],":imp:":["1f47f"],":skull:":["1f480"],":skeleton:":["1f480"],":card_index:":["1f4c7"],":information_desk_person:":["1f481"],":guardsman:":["1f482"],":dancer:":["1f483"],":lipstick:":["1f484"],":nail_care:":["1f485"],":ledger:":["1f4d2"],":massage:":["1f486"],":notebook:":["1f4d3"],":haircut:":["1f487"],":notebook_with_decorative_cover:":["1f4d4"],":barber:":["1f488"],":closed_book:":["1f4d5"],":syringe:":["1f489"],":book:":["1f4d6"],":pill:":["1f48a"],":green_book:":["1f4d7"],":kiss:":["1f48b"],":blue_book:":["1f4d8"],":love_letter:":["1f48c"],":orange_book:":["1f4d9"],":ring:":["1f48d"],":books:":["1f4da"],":gem:":["1f48e"],":name_badge:":["1f4db"],":couplekiss:":["1f48f"],":scroll:":["1f4dc"],":bouquet:":["1f490"],":pencil:":["1f4dd"],":couple_with_heart:":["1f491"],":telephone_receiver:":["1f4de"],":wedding:":["1f492"],":pager:":["1f4df"],":fax:":["1f4e0"],":heartbeat:":["1f493"],":satellite:":["1f4e1"],":loudspeaker:":["1f4e2"],":broken_heart:":["1f494"],":mega:":["1f4e3"],":outbox_tray:":["1f4e4"],":two_hearts:":["1f495"],":inbox_tray:":["1f4e5"],":package:":["1f4e6"],":sparkling_heart:":["1f496"],":e-mail:":["1f4e7"],":email:":["1f4e7"],":incoming_envelope:":["1f4e8"],":heartpulse:":["1f497"],":envelope_with_arrow:":["1f4e9"],":mailbox_closed:":["1f4ea"],":cupid:":["1f498"],":mailbox:":["1f4eb"],":postbox:":["1f4ee"],":blue_heart:":["1f499"],":newspaper:":["1f4f0"],":iphone:":["1f4f1"],":green_heart:":["1f49a"],":calling:":["1f4f2"],":vibration_mode:":["1f4f3"],":yellow_heart:":["1f49b"],":mobile_phone_off:":["1f4f4"],":signal_strength:":["1f4f6"],":purple_heart:":["1f49c"],":camera:":["1f4f7"],":video_camera:":["1f4f9"],":gift_heart:":["1f49d"],":tv:":["1f4fa"],":radio:":["1f4fb"],":revolving_hearts:":["1f49e"],":vhs:":["1f4fc"],":arrows_clockwise:":["1f503"],":heart_decoration:":["1f49f"],":loud_sound:":["1f50a"],":battery:":["1f50b"],":diamond_shape_with_a_dot_inside:":["1f4a0"],":electric_plug:":["1f50c"],":mag:":["1f50d"],":bulb:":["1f4a1"],":mag_right:":["1f50e"],":lock_with_ink_pen:":["1f50f"],":anger:":["1f4a2"],":closed_lock_with_key:":["1f510"],":key:":["1f511"],":bomb:":["1f4a3"],":lock:":["1f512"],":unlock:":["1f513"],":zzz:":["1f4a4"],":bell:":["1f514"],":bookmark:":["1f516"],":boom:":["1f4a5"],":link:":["1f517"],":radio_button:":["1f518"],":sweat_drops:":["1f4a6"],":back:":["1f519"],":end:":["1f51a"],":droplet:":["1f4a7"],":on:":["1f51b"],":soon:":["1f51c"],":dash:":["1f4a8"],":top:":["1f51d"],":underage:":["1f51e"],":poop:":["1f4a9"],":shit:":["1f4a9"],":hankey:":["1f4a9"],":poo:":["1f4a9"],":keycap_ten:":["1f51f"],":muscle:":["1f4aa"],":capital_abcd:":["1f520"],":abcd:":["1f521"],":dizzy:":["1f4ab"],":1234:":["1f522"],":symbols:":["1f523"],":speech_balloon:":["1f4ac"],":abc:":["1f524"],":fire:":["1f525"],":flame:":["1f525"],":white_flower:":["1f4ae"],":flashlight:":["1f526"],":wrench:":["1f527"],":100:":["1f4af"],":hammer:":["1f528"],":nut_and_bolt:":["1f529"],":moneybag:":["1f4b0"],":knife:":["1f52a"],":gun:":["1f52b"],":currency_exchange:":["1f4b1"],":crystal_ball:":["1f52e"],":heavy_dollar_sign:":["1f4b2"],":six_pointed_star:":["1f52f"],":credit_card:":["1f4b3"],":beginner:":["1f530"],":trident:":["1f531"],":yen:":["1f4b4"],":black_square_button:":["1f532"],":white_square_button:":["1f533"],":dollar:":["1f4b5"],":red_circle:":["1f534"],":large_blue_circle:":["1f535"],":money_with_wings:":["1f4b8"],":large_orange_diamond:":["1f536"],":large_blue_diamond:":["1f537"],":chart:":["1f4b9"],":small_orange_diamond:":["1f538"],":small_blue_diamond:":["1f539"],":seat:":["1f4ba"],":small_red_triangle:":["1f53a"],":small_red_triangle_down:":["1f53b"],":computer:":["1f4bb"],":arrow_up_small:":["1f53c"],":briefcase:":["1f4bc"],":arrow_down_small:":["1f53d"],":clock1:":["1f550"],":minidisc:":["1f4bd"],":clock2:":["1f551"],":floppy_disk:":["1f4be"],":clock3:":["1f552"],":cd:":["1f4bf"],":clock4:":["1f553"],":dvd:":["1f4c0"],":clock5:":["1f554"],":clock6:":["1f555"],":file_folder:":["1f4c1"],":clock7:":["1f556"],":clock8:":["1f557"],":open_file_folder:":["1f4c2"],":clock9:":["1f558"],":clock10:":["1f559"],":page_with_curl:":["1f4c3"],":clock11:":["1f55a"],":clock12:":["1f55b"],":page_facing_up:":["1f4c4"],":mount_fuji:":["1f5fb"],":tokyo_tower:":["1f5fc"],":date:":["1f4c5"],":statue_of_liberty:":["1f5fd"],":japan:":["1f5fe"],":calendar:":["1f4c6"],":moyai:":["1f5ff"],":grin:":["1f601"],":joy:":["1f602"],":smiley:":["1f603"],":chart_with_upwards_trend:":["1f4c8"],":smile:":["1f604"],":sweat_smile:":["1f605"],":chart_with_downwards_trend:":["1f4c9"],":laughing:":["1f606"],":satisfied:":["1f606"],":wink:":["1f609"],":bar_chart:":["1f4ca"],":blush:":["1f60a"],":yum:":["1f60b"],":clipboard:":["1f4cb"],":relieved:":["1f60c"],":heart_eyes:":["1f60d"],":pushpin:":["1f4cc"],":smirk:":["1f60f"],":unamused:":["1f612"],":round_pushpin:":["1f4cd"],":sweat:":["1f613"],":pensive:":["1f614"],":paperclip:":["1f4ce"],":confounded:":["1f616"],":kissing_heart:":["1f618"],":straight_ruler:":["1f4cf"],":kissing_closed_eyes:":["1f61a"],":stuck_out_tongue_winking_eye:":["1f61c"],":triangular_ruler:":["1f4d0"],":stuck_out_tongue_closed_eyes:":["1f61d"],":disappointed:":["1f61e"],":bookmark_tabs:":["1f4d1"],":angry:":["1f620"],":rage:":["1f621"],":cry:":["1f622"],":persevere:":["1f623"],":triumph:":["1f624"],":disappointed_relieved:":["1f625"],":fearful:":["1f628"],":weary:":["1f629"],":sleepy:":["1f62a"],":tired_face:":["1f62b"],":sob:":["1f62d"],":cold_sweat:":["1f630"],":scream:":["1f631"],":astonished:":["1f632"],":flushed:":["1f633"],":dizzy_face:":["1f635"],":mask:":["1f637"],":smile_cat:":["1f638"],":joy_cat:":["1f639"],":smiley_cat:":["1f63a"],":heart_eyes_cat:":["1f63b"],":smirk_cat:":["1f63c"],":kissing_cat:":["1f63d"],":pouting_cat:":["1f63e"],":crying_cat_face:":["1f63f"],":scream_cat:":["1f640"],":no_good:":["1f645"],":ok_woman:":["1f646"],":bow:":["1f647"],":see_no_evil:":["1f648"],":hear_no_evil:":["1f649"],":speak_no_evil:":["1f64a"],":raising_hand:":["1f64b"],":raised_hands:":["1f64c"],":person_frowning:":["1f64d"],":person_with_pouting_face:":["1f64e"],":pray:":["1f64f"],":rocket:":["1f680"],":railway_car:":["1f683"],":bullettrain_side:":["1f684"],":bullettrain_front:":["1f685"],":metro:":["1f687"],":station:":["1f689"],":bus:":["1f68c"],":busstop:":["1f68f"],":ambulance:":["1f691"],":fire_engine:":["1f692"],":police_car:":["1f693"],":taxi:":["1f695"],":red_car:":["1f697"],":blue_car:":["1f699"],":truck:":["1f69a"],":ship:":["1f6a2"],":speedboat:":["1f6a4"],":traffic_light:":["1f6a5"],":construction:":["1f6a7"],":rotating_light:":["1f6a8"],":triangular_flag_on_post:":["1f6a9"],":door:":["1f6aa"],":no_entry_sign:":["1f6ab"],":smoking:":["1f6ac"],":no_smoking:":["1f6ad"],":bike:":["1f6b2"],":walking:":["1f6b6"],":mens:":["1f6b9"],":womens:":["1f6ba"],":restroom:":["1f6bb"],":baby_symbol:":["1f6bc"],":toilet:":["1f6bd"],":wc:":["1f6be"],":bath:":["1f6c0"],":grinning:":["1f600"],":innocent:":["1f607"],":smiling_imp:":["1f608"],":sunglasses:":["1f60e"],":neutral_face:":["1f610"],":expressionless:":["1f611"],":confused:":["1f615"],":kissing:":["1f617"],":kissing_smiling_eyes:":["1f619"],":stuck_out_tongue:":["1f61b"],":worried:":["1f61f"],":frowning:":["1f626"],":anguished:":["1f627"],":grimacing:":["1f62c"],":open_mouth:":["1f62e"],":hushed:":["1f62f"],":sleeping:":["1f634"],":no_mouth:":["1f636"],":helicopter:":["1f681"],":steam_locomotive:":["1f682"],":train2:":["1f686"],":light_rail:":["1f688"],":tram:":["1f68a"],":oncoming_bus:":["1f68d"],":trolleybus:":["1f68e"],":minibus:":["1f690"],":oncoming_police_car:":["1f694"],":oncoming_taxi:":["1f696"],":oncoming_automobile:":["1f698"],":articulated_lorry:":["1f69b"],":tractor:":["1f69c"],":monorail:":["1f69d"],":mountain_railway:":["1f69e"],":suspension_railway:":["1f69f"],":mountain_cableway:":["1f6a0"],":aerial_tramway:":["1f6a1"],":rowboat:":["1f6a3"],":vertical_traffic_light:":["1f6a6"],":put_litter_in_its_place:":["1f6ae"],":do_not_litter:":["1f6af"],":potable_water:":["1f6b0"],":non-potable_water:":["1f6b1"],":no_bicycles:":["1f6b3"],":bicyclist:":["1f6b4"],":mountain_bicyclist:":["1f6b5"],":no_pedestrians:":["1f6b7"],":children_crossing:":["1f6b8"],":shower:":["1f6bf"],":bathtub:":["1f6c1"],":passport_control:":["1f6c2"],":customs:":["1f6c3"],":baggage_claim:":["1f6c4"],":left_luggage:":["1f6c5"],":earth_africa:":["1f30d"],":earth_americas:":["1f30e"],":globe_with_meridians:":["1f310"],":waxing_crescent_moon:":["1f312"],":waning_gibbous_moon:":["1f316"],":last_quarter_moon:":["1f317"],":waning_crescent_moon:":["1f318"],":new_moon_with_face:":["1f31a"],":last_quarter_moon_with_face:":["1f31c"],":full_moon_with_face:":["1f31d"],":sun_with_face:":["1f31e"],":evergreen_tree:":["1f332"],":deciduous_tree:":["1f333"],":lemon:":["1f34b"],":pear:":["1f350"],":baby_bottle:":["1f37c"],":horse_racing:":["1f3c7"],":rugby_football:":["1f3c9"],":european_post_office:":["1f3e4"],":rat:":["1f400"],":mouse2:":["1f401"],":ox:":["1f402"],":water_buffalo:":["1f403"],":cow2:":["1f404"],":tiger2:":["1f405"],":leopard:":["1f406"],":rabbit2:":["1f407"],":cat2:":["1f408"],":dragon:":["1f409"],":crocodile:":["1f40a"],":whale2:":["1f40b"],":ram:":["1f40f"],":goat:":["1f410"],":rooster:":["1f413"],":dog2:":["1f415"],":pig2:":["1f416"],":dromedary_camel:":["1f42a"],":busts_in_silhouette:":["1f465"],":two_men_holding_hands:":["1f46c"],":two_women_holding_hands:":["1f46d"],":thought_balloon:":["1f4ad"],":euro:":["1f4b6"],":pound:":["1f4b7"],":mailbox_with_mail:":["1f4ec"],":mailbox_with_no_mail:":["1f4ed"],":postal_horn:":["1f4ef"],":no_mobile_phones:":["1f4f5"],":twisted_rightwards_arrows:":["1f500"],":repeat:":["1f501"],":repeat_one:":["1f502"],":arrows_counterclockwise:":["1f504"],":low_brightness:":["1f505"],":high_brightness:":["1f506"],":mute:":["1f507"],":sound:":["1f509"],":no_bell:":["1f515"],":microscope:":["1f52c"],":telescope:":["1f52d"],":clock130:":["1f55c"],":clock230:":["1f55d"],":clock330:":["1f55e"],":clock430:":["1f55f"],":clock530:":["1f560"],":clock630:":["1f561"],":clock730:":["1f562"],":clock830:":["1f563"],":clock930:":["1f564"],":clock1030:":["1f565"],":clock1130:":["1f566"],":clock1230:":["1f567"],":speaker:":["1f508"],":train:":["1f68b"],":loop:":["27bf"],":af:":["1f1e6-1f1eb"],":al:":["1f1e6-1f1f1"],":dz:":["1f1e9-1f1ff"],":ad:":["1f1e6-1f1e9"],":ao:":["1f1e6-1f1f4"],":ag:":["1f1e6-1f1ec"],":ar:":["1f1e6-1f1f7"],":am:":["1f1e6-1f1f2"],":au:":["1f1e6-1f1fa"],":at:":["1f1e6-1f1f9"],":az:":["1f1e6-1f1ff"],":bs:":["1f1e7-1f1f8"],":bh:":["1f1e7-1f1ed"],":bd:":["1f1e7-1f1e9"],":bb:":["1f1e7-1f1e7"],":by:":["1f1e7-1f1fe"],":be:":["1f1e7-1f1ea"],":bz:":["1f1e7-1f1ff"],":bj:":["1f1e7-1f1ef"],":bt:":["1f1e7-1f1f9"],":bo:":["1f1e7-1f1f4"],":ba:":["1f1e7-1f1e6"],":bw:":["1f1e7-1f1fc"],":br:":["1f1e7-1f1f7"],":bn:":["1f1e7-1f1f3"],":bg:":["1f1e7-1f1ec"],":bf:":["1f1e7-1f1eb"],":bi:":["1f1e7-1f1ee"],":kh:":["1f1f0-1f1ed"],":cm:":["1f1e8-1f1f2"],":ca:":["1f1e8-1f1e6"],":cv:":["1f1e8-1f1fb"],":cf:":["1f1e8-1f1eb"],":td:":["1f1f9-1f1e9"],":chile:":["1f1e8-1f1f1"],":co:":["1f1e8-1f1f4"],":km:":["1f1f0-1f1f2"],":cr:":["1f1e8-1f1f7"],":ci:":["1f1e8-1f1ee"],":hr:":["1f1ed-1f1f7"],":cu:":["1f1e8-1f1fa"],":cy:":["1f1e8-1f1fe"],":cz:":["1f1e8-1f1ff"],":congo:":["1f1e8-1f1e9"],":dk:":["1f1e9-1f1f0"],":dj:":["1f1e9-1f1ef"],":dm:":["1f1e9-1f1f2"],":do:":["1f1e9-1f1f4"],":tl:":["1f1f9-1f1f1"],":ec:":["1f1ea-1f1e8"],":eg:":["1f1ea-1f1ec"],":sv:":["1f1f8-1f1fb"],":gq:":["1f1ec-1f1f6"],":er:":["1f1ea-1f1f7"],":ee:":["1f1ea-1f1ea"],":et:":["1f1ea-1f1f9"],":fj:":["1f1eb-1f1ef"],":fi:":["1f1eb-1f1ee"],":ga:":["1f1ec-1f1e6"],":gm:":["1f1ec-1f1f2"],":ge:":["1f1ec-1f1ea"],":gh:":["1f1ec-1f1ed"],":gr:":["1f1ec-1f1f7"],":gd:":["1f1ec-1f1e9"],":gt:":["1f1ec-1f1f9"],":gn:":["1f1ec-1f1f3"],":gw:":["1f1ec-1f1fc"],":gy:":["1f1ec-1f1fe"],":ht:":["1f1ed-1f1f9"],":hn:":["1f1ed-1f1f3"],":hu:":["1f1ed-1f1fa"],":is:":["1f1ee-1f1f8"],":in:":["1f1ee-1f1f3"],":indonesia:":["1f1ee-1f1e9"],":ir:":["1f1ee-1f1f7"],":iq:":["1f1ee-1f1f6"],":ie:":["1f1ee-1f1ea"],":il:":["1f1ee-1f1f1"],":jm:":["1f1ef-1f1f2"],":jo:":["1f1ef-1f1f4"],":kz:":["1f1f0-1f1ff"],":ke:":["1f1f0-1f1ea"],":ki:":["1f1f0-1f1ee"],":xk:":["1f1fd-1f1f0"],":kw:":["1f1f0-1f1fc"],":kg:":["1f1f0-1f1ec"],":la:":["1f1f1-1f1e6"],":lv:":["1f1f1-1f1fb"],":lb:":["1f1f1-1f1e7"],":ls:":["1f1f1-1f1f8"],":lr:":["1f1f1-1f1f7"],":ly:":["1f1f1-1f1fe"],":li:":["1f1f1-1f1ee"],":lt:":["1f1f1-1f1f9"],":lu:":["1f1f1-1f1fa"],":mk:":["1f1f2-1f1f0"],":mg:":["1f1f2-1f1ec"],":mw:":["1f1f2-1f1fc"],":my:":["1f1f2-1f1fe"],":mv:":["1f1f2-1f1fb"],":ml:":["1f1f2-1f1f1"],":mt:":["1f1f2-1f1f9"],":mh:":["1f1f2-1f1ed"],":mr:":["1f1f2-1f1f7"],":mu:":["1f1f2-1f1fa"],":mx:":["1f1f2-1f1fd"],":fm:":["1f1eb-1f1f2"],":md:":["1f1f2-1f1e9"],":mc:":["1f1f2-1f1e8"],":mn:":["1f1f2-1f1f3"],":me:":["1f1f2-1f1ea"],":ma:":["1f1f2-1f1e6"],":mz:":["1f1f2-1f1ff"],":mm:":["1f1f2-1f1f2"],":na:":["1f1f3-1f1e6"],":nr:":["1f1f3-1f1f7"],":np:":["1f1f3-1f1f5"],":nl:":["1f1f3-1f1f1"],":nz:":["1f1f3-1f1ff"],":ni:":["1f1f3-1f1ee"],":ne:":["1f1f3-1f1ea"],":nigeria:":["1f1f3-1f1ec"],":kp:":["1f1f0-1f1f5"],":no:":["1f1f3-1f1f4"],":om:":["1f1f4-1f1f2"],":pk:":["1f1f5-1f1f0"],":pw:":["1f1f5-1f1fc"],":pa:":["1f1f5-1f1e6"],":pg:":["1f1f5-1f1ec"],":py:":["1f1f5-1f1fe"],":pe:":["1f1f5-1f1ea"],":ph:":["1f1f5-1f1ed"],":pl:":["1f1f5-1f1f1"],":pt:":["1f1f5-1f1f9"],":qa:":["1f1f6-1f1e6"],":tw:":["1f1f9-1f1fc"],":cg:":["1f1e8-1f1ec"],":ro:":["1f1f7-1f1f4"],":rw:":["1f1f7-1f1fc"],":kn:":["1f1f0-1f1f3"],":lc:":["1f1f1-1f1e8"],":vc:":["1f1fb-1f1e8"],":ws:":["1f1fc-1f1f8"],":sm:":["1f1f8-1f1f2"],":st:":["1f1f8-1f1f9"],":saudiarabia:":["1f1f8-1f1e6"],":saudi:":["1f1f8-1f1e6"],":sn:":["1f1f8-1f1f3"],":rs:":["1f1f7-1f1f8"],":sc:":["1f1f8-1f1e8"],":sl:":["1f1f8-1f1f1"],":sg:":["1f1f8-1f1ec"],":sk:":["1f1f8-1f1f0"],":si:":["1f1f8-1f1ee"],":sb:":["1f1f8-1f1e7"],":so:":["1f1f8-1f1f4"],":za:":["1f1ff-1f1e6"],":lk:":["1f1f1-1f1f0"],":sd:":["1f1f8-1f1e9"],":sr:":["1f1f8-1f1f7"],":sz:":["1f1f8-1f1ff"],":se:":["1f1f8-1f1ea"],":ch:":["1f1e8-1f1ed"],":sy:":["1f1f8-1f1fe"],":tj:":["1f1f9-1f1ef"],":tz:":["1f1f9-1f1ff"],":th:":["1f1f9-1f1ed"],":tg:":["1f1f9-1f1ec"],":to:":["1f1f9-1f1f4"],":tt:":["1f1f9-1f1f9"],":tn:":["1f1f9-1f1f3"],":tr:":["1f1f9-1f1f7"],":turkmenistan:":["1f1f9-1f1f2"],":tuvalu:":["1f1f9-1f1fb"],":ug:":["1f1fa-1f1ec"],":ua:":["1f1fa-1f1e6"],":ae:":["1f1e6-1f1ea"],":uy:":["1f1fa-1f1fe"],":uz:":["1f1fa-1f1ff"],":vu:":["1f1fb-1f1fa"],":va:":["1f1fb-1f1e6"],":ve:":["1f1fb-1f1ea"],":vn:":["1f1fb-1f1f3"],":eh:":["1f1ea-1f1ed"],":ye:":["1f1fe-1f1ea"],":zm:":["1f1ff-1f1f2"],":zw:":["1f1ff-1f1fc"],":pr:":["1f1f5-1f1f7"],":ky:":["1f1f0-1f1fe"],":bm:":["1f1e7-1f1f2"],":pf:":["1f1f5-1f1eb"],":ps:":["1f1f5-1f1f8"],":nc:":["1f1f3-1f1e8"],":sh:":["1f1f8-1f1ed"],":aw:":["1f1e6-1f1fc"],":vi:":["1f1fb-1f1ee"],":hk:":["1f1ed-1f1f0"],":ac:":["1f1e6-1f1e8"],":ms:":["1f1f2-1f1f8"],":gu:":["1f1ec-1f1fa"],":gl:":["1f1ec-1f1f1"],":nu:":["1f1f3-1f1fa"],":wf:":["1f1fc-1f1eb"],":mo:":["1f1f2-1f1f4"],":fo:":["1f1eb-1f1f4"],":fk:":["1f1eb-1f1f0"],":je:":["1f1ef-1f1ea"],":ai:":["1f1e6-1f1ee"],":gi:":["1f1ec-1f1ee"]},a.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f604",":-)":"1f604","=]":"1f604","=)":"1f604",":]":"1f604","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},a.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",a.unicodeRegexp="(#\\uFE0F\\u20E3|#\\u20E3|0\\uFE0F\\u20E3|0\\u20E3|1\\uFE0F\\u20E3|1\\u20E3|2\\uFE0F\\u20E3|2\\u20E3|3\\uFE0F\\u20E3|3\\u20E3|4\\uFE0F\\u20E3|4\\u20E3|5\\uFE0F\\u20E3|5\\u20E3|6\\uFE0F\\u20E3|6\\u20E3|7\\uFE0F\\u20E3|7\\u20E3|8\\uFE0F\\u20E3|8\\u20E3|9\\uFE0F\\u20E3|9\\u20E3|\\u00A9|\\u00AE|\\u203C\\uFE0F|\\u203C|\\u2049\\uFE0F|\\u2049|\\u2122|\\u2139\\uFE0F|\\u2139|\\u2194\\uFE0F|\\u2194|\\u2195\\uFE0F|\\u2195|\\u2196\\uFE0F|\\u2196|\\u2197\\uFE0F|\\u2197|\\u2198\\uFE0F|\\u2198|\\u2199\\uFE0F|\\u2199|\\u21A9\\uFE0F|\\u21A9|\\u21AA\\uFE0F|\\u21AA|\\u231A\\uFE0F|\\u231A|\\u231B\\uFE0F|\\u231B|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u24C2\\uFE0F|\\u24C2|\\u25AA\\uFE0F|\\u25AA|\\u25AB\\uFE0F|\\u25AB|\\u25B6\\uFE0F|\\u25B6|\\u25C0\\uFE0F|\\u25C0|\\u25FB\\uFE0F|\\u25FB|\\u25FC\\uFE0F|\\u25FC|\\u25FD\\uFE0F|\\u25FD|\\u25FE\\uFE0F|\\u25FE|\\u2600\\uFE0F|\\u2600|\\u2601\\uFE0F|\\u2601|\\u260E\\uFE0F|\\u260E|\\u2611\\uFE0F|\\u2611|\\u2614\\uFE0F|\\u2614|\\u2615\\uFE0F|\\u2615|\\u261D\\uFE0F|\\u261D|\\u263A\\uFE0F|\\u263A|\\u2648\\uFE0F|\\u2648|\\u2649\\uFE0F|\\u2649|\\u264A\\uFE0F|\\u264A|\\u264B\\uFE0F|\\u264B|\\u264C\\uFE0F|\\u264C|\\u264D\\uFE0F|\\u264D|\\u264E\\uFE0F|\\u264E|\\u264F\\uFE0F|\\u264F|\\u2650\\uFE0F|\\u2650|\\u2651\\uFE0F|\\u2651|\\u2652\\uFE0F|\\u2652|\\u2653\\uFE0F|\\u2653|\\u2660\\uFE0F|\\u2660|\\u2663\\uFE0F|\\u2663|\\u2665\\uFE0F|\\u2665|\\u2666\\uFE0F|\\u2666|\\u2668\\uFE0F|\\u2668|\\u267B\\uFE0F|\\u267B|\\u267F\\uFE0F|\\u267F|\\u2693\\uFE0F|\\u2693|\\u26A0\\uFE0F|\\u26A0|\\u26A1\\uFE0F|\\u26A1|\\u26AA\\uFE0F|\\u26AA|\\u26AB\\uFE0F|\\u26AB|\\u26BD\\uFE0F|\\u26BD|\\u26BE\\uFE0F|\\u26BE|\\u26C4\\uFE0F|\\u26C4|\\u26C5\\uFE0F|\\u26C5|\\u26CE|\\u26D4\\uFE0F|\\u26D4|\\u26EA\\uFE0F|\\u26EA|\\u26F2\\uFE0F|\\u26F2|\\u26F3\\uFE0F|\\u26F3|\\u26F5\\uFE0F|\\u26F5|\\u26FA\\uFE0F|\\u26FA|\\u26FD\\uFE0F|\\u26FD|\\u2702\\uFE0F|\\u2702|\\u2705|\\u2708\\uFE0F|\\u2708|\\u2709\\uFE0F|\\u2709|\\u270A|\\u270B|\\u270C\\uFE0F|\\u270C|\\u270F\\uFE0F|\\u270F|\\u2712\\uFE0F|\\u2712|\\u2714\\uFE0F|\\u2714|\\u2716\\uFE0F|\\u2716|\\u2728|\\u2733\\uFE0F|\\u2733|\\u2734\\uFE0F|\\u2734|\\u2744\\uFE0F|\\u2744|\\u2747\\uFE0F|\\u2747|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2757\\uFE0F|\\u2757|\\u2764\\uFE0F|\\u2764|\\u2795|\\u2796|\\u2797|\\u27A1\\uFE0F|\\u27A1|\\u27B0|\\u2934\\uFE0F|\\u2934|\\u2935\\uFE0F|\\u2935|\\u2B05\\uFE0F|\\u2B05|\\u2B06\\uFE0F|\\u2B06|\\u2B07\\uFE0F|\\u2B07|\\u2B1B\\uFE0F|\\u2B1B|\\u2B1C\\uFE0F|\\u2B1C|\\u2B50\\uFE0F|\\u2B50|\\u2B55\\uFE0F|\\u2B55|\\u3030|\\u303D\\uFE0F|\\u303D|\\u3297\\uFE0F|\\u3297|\\u3299\\uFE0F|\\u3299|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDC04|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDD7F|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE1A|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE2F|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE37|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\u27BF|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDEE)",
-a.jsecapeMap={"#️⃣":"0023-20E3","#⃣":"0023-20E3","0️⃣":"0030-20E3","0⃣":"0030-20E3","1️⃣":"0031-20E3","1⃣":"0031-20E3","2️⃣":"0032-20E3","2⃣":"0032-20E3","3️⃣":"0033-20E3","3⃣":"0033-20E3","4️⃣":"0034-20E3","4⃣":"0034-20E3","5️⃣":"0035-20E3","5⃣":"0035-20E3","6️⃣":"0036-20E3","6⃣":"0036-20E3","7️⃣":"0037-20E3","7⃣":"0037-20E3","8️⃣":"0038-20E3","8⃣":"0038-20E3","9️⃣":"0039-20E3","9⃣":"0039-20E3","©":"00A9","®":"00AE","‼️":"203C","‼":"203C","⁉️":"2049","⁉":"2049","™":"2122","ℹ️":"2139","ℹ":"2139","↔️":"2194","↔":"2194","↕️":"2195","↕":"2195","↖️":"2196","↖":"2196","↗️":"2197","↗":"2197","↘️":"2198","↘":"2198","↙️":"2199","↙":"2199","↩️":"21A9","↩":"21A9","↪️":"21AA","↪":"21AA","⌚️":"231A","⌚":"231A","⌛️":"231B","⌛":"231B","⏩":"23E9","⏪":"23EA","⏫":"23EB","⏬":"23EC","⏰":"23F0","⏳":"23F3","Ⓜ️":"24C2","Ⓜ":"24C2","▪️":"25AA","▪":"25AA","▫️":"25AB","▫":"25AB","▶️":"25B6","▶":"25B6","◀️":"25C0","◀":"25C0","◻️":"25FB","◻":"25FB","◼️":"25FC","◼":"25FC","◽️":"25FD","◽":"25FD","◾️":"25FE","◾":"25FE","☀️":"2600","☀":"2600","☁️":"2601","☁":"2601","☎️":"260E","☎":"260E","☑️":"2611","☑":"2611","☔️":"2614","☔":"2614","☕️":"2615","☕":"2615","☝️":"261D","☝":"261D","☺️":"263A","☺":"263A","♈️":"2648","♈":"2648","♉️":"2649","♉":"2649","♊️":"264A","♊":"264A","♋️":"264B","♋":"264B","♌️":"264C","♌":"264C","♍️":"264D","♍":"264D","♎️":"264E","♎":"264E","♏️":"264F","♏":"264F","♐️":"2650","♐":"2650","♑️":"2651","♑":"2651","♒️":"2652","♒":"2652","♓️":"2653","♓":"2653","♠️":"2660","♠":"2660","♣️":"2663","♣":"2663","♥️":"2665","♥":"2665","♦️":"2666","♦":"2666","♨️":"2668","♨":"2668","♻️":"267B","♻":"267B","♿️":"267F","♿":"267F","⚓️":"2693","⚓":"2693","⚠️":"26A0","⚠":"26A0","⚡️":"26A1","⚡":"26A1","⚪️":"26AA","⚪":"26AA","⚫️":"26AB","⚫":"26AB","⚽️":"26BD","⚽":"26BD","⚾️":"26BE","⚾":"26BE","⛄️":"26C4","⛄":"26C4","⛅️":"26C5","⛅":"26C5","⛎":"26CE","⛔️":"26D4","⛔":"26D4","⛪️":"26EA","⛪":"26EA","⛲️":"26F2","⛲":"26F2","⛳️":"26F3","⛳":"26F3","⛵️":"26F5","⛵":"26F5","⛺️":"26FA","⛺":"26FA","⛽️":"26FD","⛽":"26FD","✂️":"2702","✂":"2702","✅":"2705","✈️":"2708","✈":"2708","✉️":"2709","✉":"2709","✊":"270A","✋":"270B","✌️":"270C","✌":"270C","✏️":"270F","✏":"270F","✒️":"2712","✒":"2712","✔️":"2714","✔":"2714","✖️":"2716","✖":"2716","✨":"2728","✳️":"2733","✳":"2733","✴️":"2734","✴":"2734","❄️":"2744","❄":"2744","❇️":"2747","❇":"2747","❌":"274C","❎":"274E","❓":"2753","❔":"2754","❕":"2755","❗️":"2757","❗":"2757","❤️":"2764","❤":"2764","➕":"2795","➖":"2796","➗":"2797","➡️":"27A1","➡":"27A1","➰":"27B0","⤴️":"2934","⤴":"2934","⤵️":"2935","⤵":"2935","⬅️":"2B05","⬅":"2B05","⬆️":"2B06","⬆":"2B06","⬇️":"2B07","⬇":"2B07","⬛️":"2B1B","⬛":"2B1B","⬜️":"2B1C","⬜":"2B1C","⭐️":"2B50","⭐":"2B50","⭕️":"2B55","⭕":"2B55","〰":"3030","〽️":"303D","〽":"303D","㊗️":"3297","㊗":"3297","㊙️":"3299","㊙":"3299","🀄️":"1F004","🀄":"1F004","🃏":"1F0CF","🅰":"1F170","🅱":"1F171","🅾":"1F17E","🅿️":"1F17F","🅿":"1F17F","🆎":"1F18E","🆑":"1F191","🆒":"1F192","🆓":"1F193","🆔":"1F194","🆕":"1F195","🆖":"1F196","🆗":"1F197","🆘":"1F198","🆙":"1F199","🆚":"1F19A","🇨🇳":"1F1E8-1F1F3","🇩🇪":"1F1E9-1F1EA","🇪🇸":"1F1EA-1F1F8","🇫🇷":"1F1EB-1F1F7","🇬🇧":"1F1EC-1F1E7","🇮🇹":"1F1EE-1F1F9","🇯🇵":"1F1EF-1F1F5","🇰🇷":"1F1F0-1F1F7","🇺🇸":"1F1FA-1F1F8","🇷🇺":"1F1F7-1F1FA","🈁":"1F201","🈂":"1F202","🈚️":"1F21A","🈚":"1F21A","🈯️":"1F22F","🈯":"1F22F","🈲":"1F232","🈳":"1F233","🈴":"1F234","🈵":"1F235","🈶":"1F236","🈷":"1F237","🈸":"1F238","🈹":"1F239","🈺":"1F23A","🉐":"1F250","🉑":"1F251","🌀":"1F300","🌁":"1F301","🌂":"1F302","🌃":"1F303","🌄":"1F304","🌅":"1F305","🌆":"1F306","🌇":"1F307","🌈":"1F308","🌉":"1F309","🌊":"1F30A","🌋":"1F30B","🌌":"1F30C","🌏":"1F30F","🌑":"1F311","🌓":"1F313","🌔":"1F314","🌕":"1F315","🌙":"1F319","🌛":"1F31B","🌟":"1F31F","🌠":"1F320","🌰":"1F330","🌱":"1F331","🌴":"1F334","🌵":"1F335","🌷":"1F337","🌸":"1F338","🌹":"1F339","🌺":"1F33A","🌻":"1F33B","🌼":"1F33C","🌽":"1F33D","🌾":"1F33E","🌿":"1F33F","🍀":"1F340","🍁":"1F341","🍂":"1F342","🍃":"1F343","🍄":"1F344","🍅":"1F345","🍆":"1F346","🍇":"1F347","🍈":"1F348","🍉":"1F349","🍊":"1F34A","🍌":"1F34C","🍍":"1F34D","🍎":"1F34E","🍏":"1F34F","🍑":"1F351","🍒":"1F352","🍓":"1F353","🍔":"1F354","🍕":"1F355","🍖":"1F356","🍗":"1F357","🍘":"1F358","🍙":"1F359","🍚":"1F35A","🍛":"1F35B","🍜":"1F35C","🍝":"1F35D","🍞":"1F35E","🍟":"1F35F","🍠":"1F360","🍡":"1F361","🍢":"1F362","🍣":"1F363","🍤":"1F364","🍥":"1F365","🍦":"1F366","🍧":"1F367","🍨":"1F368","🍩":"1F369","🍪":"1F36A","🍫":"1F36B","🍬":"1F36C","🍭":"1F36D","🍮":"1F36E","🍯":"1F36F","🍰":"1F370","🍱":"1F371","🍲":"1F372","🍳":"1F373","🍴":"1F374","🍵":"1F375","🍶":"1F376","🍷":"1F377","🍸":"1F378","🍹":"1F379","🍺":"1F37A","🍻":"1F37B","🎀":"1F380","🎁":"1F381","🎂":"1F382","🎃":"1F383","🎄":"1F384","🎅":"1F385","🎆":"1F386","🎇":"1F387","🎈":"1F388","🎉":"1F389","🎊":"1F38A","🎋":"1F38B","🎌":"1F38C","🎍":"1F38D","🎎":"1F38E","🎏":"1F38F","🎐":"1F390","🎑":"1F391","🎒":"1F392","🎓":"1F393","🎠":"1F3A0","🎡":"1F3A1","🎢":"1F3A2","🎣":"1F3A3","🎤":"1F3A4","🎥":"1F3A5","🎦":"1F3A6","🎧":"1F3A7","🎨":"1F3A8","🎩":"1F3A9","🎪":"1F3AA","🎫":"1F3AB","🎬":"1F3AC","🎭":"1F3AD","🎮":"1F3AE","🎯":"1F3AF","🎰":"1F3B0","🎱":"1F3B1","🎲":"1F3B2","🎳":"1F3B3","🎴":"1F3B4","🎵":"1F3B5","🎶":"1F3B6","🎷":"1F3B7","🎸":"1F3B8","🎹":"1F3B9","🎺":"1F3BA","🎻":"1F3BB","🎼":"1F3BC","🎽":"1F3BD","🎾":"1F3BE","🎿":"1F3BF","🏀":"1F3C0","🏁":"1F3C1","🏂":"1F3C2","🏃":"1F3C3","🏄":"1F3C4","🏆":"1F3C6","🏈":"1F3C8","🏊":"1F3CA","🏠":"1F3E0","🏡":"1F3E1","🏢":"1F3E2","🏣":"1F3E3","🏥":"1F3E5","🏦":"1F3E6","🏧":"1F3E7","🏨":"1F3E8","🏩":"1F3E9","🏪":"1F3EA","🏫":"1F3EB","🏬":"1F3EC","🏭":"1F3ED","🏮":"1F3EE","🏯":"1F3EF","🏰":"1F3F0","🐌":"1F40C","🐍":"1F40D","🐎":"1F40E","🐑":"1F411","🐒":"1F412","🐔":"1F414","🐗":"1F417","🐘":"1F418","🐙":"1F419","🐚":"1F41A","🐛":"1F41B","🐜":"1F41C","🐝":"1F41D","🐞":"1F41E","🐟":"1F41F","🐠":"1F420","🐡":"1F421","🐢":"1F422","🐣":"1F423","🐤":"1F424","🐥":"1F425","🐦":"1F426","🐧":"1F427","🐨":"1F428","🐩":"1F429","🐫":"1F42B","🐬":"1F42C","🐭":"1F42D","🐮":"1F42E","🐯":"1F42F","🐰":"1F430","🐱":"1F431","🐲":"1F432","🐳":"1F433","🐴":"1F434","🐵":"1F435","🐶":"1F436","🐷":"1F437","🐸":"1F438","🐹":"1F439","🐺":"1F43A","🐻":"1F43B","🐼":"1F43C","🐽":"1F43D","🐾":"1F43E","👀":"1F440","👂":"1F442","👃":"1F443","👄":"1F444","👅":"1F445","👆":"1F446","👇":"1F447","👈":"1F448","👉":"1F449","👊":"1F44A","👋":"1F44B","👌":"1F44C","👍":"1F44D","👎":"1F44E","👏":"1F44F","👐":"1F450","👑":"1F451","👒":"1F452","👓":"1F453","👔":"1F454","👕":"1F455","👖":"1F456","👗":"1F457","👘":"1F458","👙":"1F459","👚":"1F45A","👛":"1F45B","👜":"1F45C","👝":"1F45D","👞":"1F45E","👟":"1F45F","👠":"1F460","👡":"1F461","👢":"1F462","👣":"1F463","👤":"1F464","👦":"1F466","👧":"1F467","👨":"1F468","👩":"1F469","👪":"1F46A","👫":"1F46B","👮":"1F46E","👯":"1F46F","👰":"1F470","👱":"1F471","👲":"1F472","👳":"1F473","👴":"1F474","👵":"1F475","👶":"1F476","👷":"1F477","👸":"1F478","👹":"1F479","👺":"1F47A","👻":"1F47B","👼":"1F47C","👽":"1F47D","👾":"1F47E","👿":"1F47F","💀":"1F480","📇":"1F4C7","💁":"1F481","💂":"1F482","💃":"1F483","💄":"1F484","💅":"1F485","📒":"1F4D2","💆":"1F486","📓":"1F4D3","💇":"1F487","📔":"1F4D4","💈":"1F488","📕":"1F4D5","💉":"1F489","📖":"1F4D6","💊":"1F48A","📗":"1F4D7","💋":"1F48B","📘":"1F4D8","💌":"1F48C","📙":"1F4D9","💍":"1F48D","📚":"1F4DA","💎":"1F48E","📛":"1F4DB","💏":"1F48F","📜":"1F4DC","💐":"1F490","📝":"1F4DD","💑":"1F491","📞":"1F4DE","💒":"1F492","📟":"1F4DF","📠":"1F4E0","💓":"1F493","📡":"1F4E1","📢":"1F4E2","💔":"1F494","📣":"1F4E3","📤":"1F4E4","💕":"1F495","📥":"1F4E5","📦":"1F4E6","💖":"1F496","📧":"1F4E7","📨":"1F4E8","💗":"1F497","📩":"1F4E9","📪":"1F4EA","💘":"1F498","📫":"1F4EB","📮":"1F4EE","💙":"1F499","📰":"1F4F0","📱":"1F4F1","💚":"1F49A","📲":"1F4F2","📳":"1F4F3","💛":"1F49B","📴":"1F4F4","📶":"1F4F6","💜":"1F49C","📷":"1F4F7","📹":"1F4F9","💝":"1F49D","📺":"1F4FA","📻":"1F4FB","💞":"1F49E","📼":"1F4FC","🔃":"1F503","💟":"1F49F","🔊":"1F50A","🔋":"1F50B","💠":"1F4A0","🔌":"1F50C","🔍":"1F50D","💡":"1F4A1","🔎":"1F50E","🔏":"1F50F","💢":"1F4A2","🔐":"1F510","🔑":"1F511","💣":"1F4A3","🔒":"1F512","🔓":"1F513","💤":"1F4A4","🔔":"1F514","🔖":"1F516","💥":"1F4A5","🔗":"1F517","🔘":"1F518","💦":"1F4A6","🔙":"1F519","🔚":"1F51A","💧":"1F4A7","🔛":"1F51B","🔜":"1F51C","💨":"1F4A8","🔝":"1F51D","🔞":"1F51E","💩":"1F4A9","🔟":"1F51F","💪":"1F4AA","🔠":"1F520","🔡":"1F521","💫":"1F4AB","🔢":"1F522","🔣":"1F523","💬":"1F4AC","🔤":"1F524","🔥":"1F525","💮":"1F4AE","🔦":"1F526","🔧":"1F527","💯":"1F4AF","🔨":"1F528","🔩":"1F529","💰":"1F4B0","🔪":"1F52A","🔫":"1F52B","💱":"1F4B1","🔮":"1F52E","💲":"1F4B2","🔯":"1F52F","💳":"1F4B3","🔰":"1F530","🔱":"1F531","💴":"1F4B4","🔲":"1F532","🔳":"1F533","💵":"1F4B5","🔴":"1F534","🔵":"1F535","💸":"1F4B8","🔶":"1F536","🔷":"1F537","💹":"1F4B9","🔸":"1F538","🔹":"1F539","💺":"1F4BA","🔺":"1F53A","🔻":"1F53B","💻":"1F4BB","🔼":"1F53C","💼":"1F4BC","🔽":"1F53D","🕐":"1F550","💽":"1F4BD","🕑":"1F551","💾":"1F4BE","🕒":"1F552","💿":"1F4BF","🕓":"1F553","📀":"1F4C0","🕔":"1F554","🕕":"1F555","📁":"1F4C1","🕖":"1F556","🕗":"1F557","📂":"1F4C2","🕘":"1F558","🕙":"1F559","📃":"1F4C3","🕚":"1F55A","🕛":"1F55B","📄":"1F4C4","🗻":"1F5FB","🗼":"1F5FC","📅":"1F4C5","🗽":"1F5FD","🗾":"1F5FE","📆":"1F4C6","🗿":"1F5FF","😁":"1F601","😂":"1F602","😃":"1F603","📈":"1F4C8","😄":"1F604","😅":"1F605","📉":"1F4C9","😆":"1F606","😉":"1F609","📊":"1F4CA","😊":"1F60A","😋":"1F60B","📋":"1F4CB","😌":"1F60C","😍":"1F60D","📌":"1F4CC","😏":"1F60F","😒":"1F612","📍":"1F4CD","😓":"1F613","😔":"1F614","📎":"1F4CE","😖":"1F616","😘":"1F618","📏":"1F4CF","😚":"1F61A","😜":"1F61C","📐":"1F4D0","😝":"1F61D","😞":"1F61E","📑":"1F4D1","😠":"1F620","😡":"1F621","😢":"1F622","😣":"1F623","😤":"1F624","😥":"1F625","😨":"1F628","😩":"1F629","😪":"1F62A","😫":"1F62B","😭":"1F62D","😰":"1F630","😱":"1F631","😲":"1F632","😳":"1F633","😵":"1F635","😷":"1F637","😸":"1F638","😹":"1F639","😺":"1F63A","😻":"1F63B","😼":"1F63C","😽":"1F63D","😾":"1F63E","😿":"1F63F","🙀":"1F640","🙅":"1F645","🙆":"1F646","🙇":"1F647","🙈":"1F648","🙉":"1F649","🙊":"1F64A","🙋":"1F64B","🙌":"1F64C","🙍":"1F64D","🙎":"1F64E","🙏":"1F64F","🚀":"1F680","🚃":"1F683","🚄":"1F684","🚅":"1F685","🚇":"1F687","🚉":"1F689","🚌":"1F68C","🚏":"1F68F","🚑":"1F691","🚒":"1F692","🚓":"1F693","🚕":"1F695","🚗":"1F697","🚙":"1F699","🚚":"1F69A","🚢":"1F6A2","🚤":"1F6A4","🚥":"1F6A5","🚧":"1F6A7","🚨":"1F6A8","🚩":"1F6A9","🚪":"1F6AA","🚫":"1F6AB","🚬":"1F6AC","🚭":"1F6AD","🚲":"1F6B2","🚶":"1F6B6","🚹":"1F6B9","🚺":"1F6BA","🚻":"1F6BB","🚼":"1F6BC","🚽":"1F6BD","🚾":"1F6BE","🛀":"1F6C0","😀":"1F600","😇":"1F607","😈":"1F608","😎":"1F60E","😐":"1F610","😑":"1F611","😕":"1F615","😗":"1F617","😙":"1F619","😛":"1F61B","😟":"1F61F","😦":"1F626","😧":"1F627","😬":"1F62C","😮":"1F62E","😯":"1F62F","😴":"1F634","😶":"1F636","🚁":"1F681","🚂":"1F682","🚆":"1F686","🚈":"1F688","🚊":"1F68A","🚍":"1F68D","🚎":"1F68E","🚐":"1F690","🚔":"1F694","🚖":"1F696","🚘":"1F698","🚛":"1F69B","🚜":"1F69C","🚝":"1F69D","🚞":"1F69E","🚟":"1F69F","🚠":"1F6A0","🚡":"1F6A1","🚣":"1F6A3","🚦":"1F6A6","🚮":"1F6AE","🚯":"1F6AF","🚰":"1F6B0","🚱":"1F6B1","🚳":"1F6B3","🚴":"1F6B4","🚵":"1F6B5","🚷":"1F6B7","🚸":"1F6B8","🚿":"1F6BF","🛁":"1F6C1","🛂":"1F6C2","🛃":"1F6C3","🛄":"1F6C4","🛅":"1F6C5","🌍":"1F30D","🌎":"1F30E","🌐":"1F310","🌒":"1F312","🌖":"1F316","🌗":"1F317","🌘":"1F318","🌚":"1F31A","🌜":"1F31C","🌝":"1F31D","🌞":"1F31E","🌲":"1F332","🌳":"1F333","🍋":"1F34B","🍐":"1F350","🍼":"1F37C","🏇":"1F3C7","🏉":"1F3C9","🏤":"1F3E4","🐀":"1F400","🐁":"1F401","🐂":"1F402","🐃":"1F403","🐄":"1F404","🐅":"1F405","🐆":"1F406","🐇":"1F407","🐈":"1F408","🐉":"1F409","🐊":"1F40A","🐋":"1F40B","🐏":"1F40F","🐐":"1F410","🐓":"1F413","🐕":"1F415","🐖":"1F416","🐪":"1F42A","👥":"1F465","👬":"1F46C","👭":"1F46D","💭":"1F4AD","💶":"1F4B6","💷":"1F4B7","📬":"1F4EC","📭":"1F4ED","📯":"1F4EF","📵":"1F4F5","🔀":"1F500","🔁":"1F501","🔂":"1F502","🔄":"1F504","🔅":"1F505","🔆":"1F506","🔇":"1F507","🔉":"1F509","🔕":"1F515","🔬":"1F52C","🔭":"1F52D","🕜":"1F55C","🕝":"1F55D","🕞":"1F55E","🕟":"1F55F","🕠":"1F560","🕡":"1F561","🕢":"1F562","🕣":"1F563","🕤":"1F564","🕥":"1F565","🕦":"1F566","🕧":"1F567","🔈":"1F508","🚋":"1F68B","➿":"27BF","🇦🇫":"1F1E6-1F1EB","🇦🇱":"1F1E6-1F1F1","🇩🇿":"1F1E9-1F1FF","🇦🇩":"1F1E6-1F1E9","🇦🇴":"1F1E6-1F1F4","🇦🇬":"1F1E6-1F1EC","🇦🇷":"1F1E6-1F1F7","🇦🇲":"1F1E6-1F1F2","🇦🇺":"1F1E6-1F1FA","🇦🇹":"1F1E6-1F1F9","🇦🇿":"1F1E6-1F1FF","🇧🇸":"1F1E7-1F1F8","🇧🇭":"1F1E7-1F1ED","🇧🇩":"1F1E7-1F1E9","🇧🇧":"1F1E7-1F1E7","🇧🇾":"1F1E7-1F1FE","🇧🇪":"1F1E7-1F1EA","🇧🇿":"1F1E7-1F1FF","🇧🇯":"1F1E7-1F1EF","🇧🇹":"1F1E7-1F1F9","🇧🇴":"1F1E7-1F1F4","🇧🇦":"1F1E7-1F1E6","🇧🇼":"1F1E7-1F1FC","🇧🇷":"1F1E7-1F1F7","🇧🇳":"1F1E7-1F1F3","🇧🇬":"1F1E7-1F1EC","🇧🇫":"1F1E7-1F1EB","🇧🇮":"1F1E7-1F1EE","🇰🇭":"1F1F0-1F1ED","🇨🇲":"1F1E8-1F1F2","🇨🇦":"1F1E8-1F1E6","🇨🇻":"1F1E8-1F1FB","🇨🇫":"1F1E8-1F1EB","🇹🇩":"1F1F9-1F1E9","🇨🇱":"1F1E8-1F1F1","🇨🇴":"1F1E8-1F1F4","🇰🇲":"1F1F0-1F1F2","🇨🇷":"1F1E8-1F1F7","🇨🇮":"1F1E8-1F1EE","🇭🇷":"1F1ED-1F1F7","🇨🇺":"1F1E8-1F1FA","🇨🇾":"1F1E8-1F1FE","🇨🇿":"1F1E8-1F1FF","🇨🇩":"1F1E8-1F1E9","🇩🇰":"1F1E9-1F1F0","🇩🇯":"1F1E9-1F1EF","🇩🇲":"1F1E9-1F1F2","🇩🇴":"1F1E9-1F1F4","🇹🇱":"1F1F9-1F1F1","🇪🇨":"1F1EA-1F1E8","🇪🇬":"1F1EA-1F1EC","🇸🇻":"1F1F8-1F1FB","🇬🇶":"1F1EC-1F1F6","🇪🇷":"1F1EA-1F1F7","🇪🇪":"1F1EA-1F1EA","🇪🇹":"1F1EA-1F1F9","🇫🇯":"1F1EB-1F1EF","🇫🇮":"1F1EB-1F1EE","🇬🇦":"1F1EC-1F1E6","🇬🇲":"1F1EC-1F1F2","🇬🇪":"1F1EC-1F1EA","🇬🇭":"1F1EC-1F1ED","🇬🇷":"1F1EC-1F1F7","🇬🇩":"1F1EC-1F1E9","🇬🇹":"1F1EC-1F1F9","🇬🇳":"1F1EC-1F1F3","🇬🇼":"1F1EC-1F1FC","🇬🇾":"1F1EC-1F1FE","🇭🇹":"1F1ED-1F1F9","🇭🇳":"1F1ED-1F1F3","🇭🇺":"1F1ED-1F1FA","🇮🇸":"1F1EE-1F1F8","🇮🇳":"1F1EE-1F1F3","🇮🇩":"1F1EE-1F1E9","🇮🇷":"1F1EE-1F1F7","🇮🇶":"1F1EE-1F1F6","🇮🇪":"1F1EE-1F1EA","🇮🇱":"1F1EE-1F1F1","🇯🇲":"1F1EF-1F1F2","🇯🇴":"1F1EF-1F1F4","🇰🇿":"1F1F0-1F1FF","🇰🇪":"1F1F0-1F1EA","🇰🇮":"1F1F0-1F1EE","🇽🇰":"1F1FD-1F1F0","🇰🇼":"1F1F0-1F1FC","🇰🇬":"1F1F0-1F1EC","🇱🇦":"1F1F1-1F1E6","🇱🇻":"1F1F1-1F1FB","🇱🇧":"1F1F1-1F1E7","🇱🇸":"1F1F1-1F1F8","🇱🇷":"1F1F1-1F1F7","🇱🇾":"1F1F1-1F1FE","🇱🇮":"1F1F1-1F1EE","🇱🇹":"1F1F1-1F1F9","🇱🇺":"1F1F1-1F1FA","🇲🇰":"1F1F2-1F1F0","🇲🇬":"1F1F2-1F1EC","🇲🇼":"1F1F2-1F1FC","🇲🇾":"1F1F2-1F1FE","🇲🇻":"1F1F2-1F1FB","🇲🇱":"1F1F2-1F1F1","🇲🇹":"1F1F2-1F1F9","🇲🇭":"1F1F2-1F1ED","🇲🇷":"1F1F2-1F1F7","🇲🇺":"1F1F2-1F1FA","🇲🇽":"1F1F2-1F1FD","🇫🇲":"1F1EB-1F1F2","🇲🇩":"1F1F2-1F1E9","🇲🇨":"1F1F2-1F1E8","🇲🇳":"1F1F2-1F1F3","🇲🇪":"1F1F2-1F1EA","🇲🇦":"1F1F2-1F1E6","🇲🇿":"1F1F2-1F1FF","🇲🇲":"1F1F2-1F1F2","🇳🇦":"1F1F3-1F1E6","🇳🇷":"1F1F3-1F1F7","🇳🇵":"1F1F3-1F1F5","🇳🇱":"1F1F3-1F1F1","🇳🇿":"1F1F3-1F1FF","🇳🇮":"1F1F3-1F1EE","🇳🇪":"1F1F3-1F1EA","🇳🇬":"1F1F3-1F1EC","🇰🇵":"1F1F0-1F1F5","🇳🇴":"1F1F3-1F1F4","🇴🇲":"1F1F4-1F1F2","🇵🇰":"1F1F5-1F1F0","🇵🇼":"1F1F5-1F1FC","🇵🇦":"1F1F5-1F1E6","🇵🇬":"1F1F5-1F1EC","🇵🇾":"1F1F5-1F1FE","🇵🇪":"1F1F5-1F1EA","🇵🇭":"1F1F5-1F1ED","🇵🇱":"1F1F5-1F1F1","🇵🇹":"1F1F5-1F1F9","🇶🇦":"1F1F6-1F1E6","🇹🇼":"1F1F9-1F1FC","🇨🇬":"1F1E8-1F1EC","🇷🇴":"1F1F7-1F1F4","🇷🇼":"1F1F7-1F1FC","🇰🇳":"1F1F0-1F1F3","🇱🇨":"1F1F1-1F1E8","🇻🇨":"1F1FB-1F1E8","🇼🇸":"1F1FC-1F1F8","🇸🇲":"1F1F8-1F1F2","🇸🇹":"1F1F8-1F1F9","🇸🇦":"1F1F8-1F1E6","🇸🇳":"1F1F8-1F1F3","🇷🇸":"1F1F7-1F1F8","🇸🇨":"1F1F8-1F1E8","🇸🇱":"1F1F8-1F1F1","🇸🇬":"1F1F8-1F1EC","🇸🇰":"1F1F8-1F1F0","🇸🇮":"1F1F8-1F1EE","🇸🇧":"1F1F8-1F1E7","🇸🇴":"1F1F8-1F1F4","🇿🇦":"1F1FF-1F1E6","🇱🇰":"1F1F1-1F1F0","🇸🇩":"1F1F8-1F1E9","🇸🇷":"1F1F8-1F1F7","🇸🇿":"1F1F8-1F1FF","🇸🇪":"1F1F8-1F1EA","🇨🇭":"1F1E8-1F1ED","🇸🇾":"1F1F8-1F1FE","🇹🇯":"1F1F9-1F1EF","🇹🇿":"1F1F9-1F1FF","🇹🇭":"1F1F9-1F1ED","🇹🇬":"1F1F9-1F1EC","🇹🇴":"1F1F9-1F1F4","🇹🇹":"1F1F9-1F1F9","🇹🇳":"1F1F9-1F1F3","🇹🇷":"1F1F9-1F1F7","🇹🇲":"1F1F9-1F1F2","🇹🇻":"1F1F9-1F1FB","🇺🇬":"1F1FA-1F1EC","🇺🇦":"1F1FA-1F1E6","🇦🇪":"1F1E6-1F1EA","🇺🇾":"1F1FA-1F1FE","🇺🇿":"1F1FA-1F1FF","🇻🇺":"1F1FB-1F1FA","🇻🇦":"1F1FB-1F1E6","🇻🇪":"1F1FB-1F1EA","🇻🇳":"1F1FB-1F1F3","🇪🇭":"1F1EA-1F1ED","🇾🇪":"1F1FE-1F1EA","🇿🇲":"1F1FF-1F1F2","🇿🇼":"1F1FF-1F1FC","🇵🇷":"1F1F5-1F1F7","🇰🇾":"1F1F0-1F1FE","🇧🇲":"1F1E7-1F1F2","🇵🇫":"1F1F5-1F1EB","🇵🇸":"1F1F5-1F1F8","🇳🇨":"1F1F3-1F1E8","🇸🇭":"1F1F8-1F1ED","🇦🇼":"1F1E6-1F1FC","🇻🇮":"1F1FB-1F1EE","🇭🇰":"1F1ED-1F1F0","🇦🇨":"1F1E6-1F1E8","🇲🇸":"1F1F2-1F1F8","🇬🇺":"1F1EC-1F1FA","🇬🇱":"1F1EC-1F1F1","🇳🇺":"1F1F3-1F1FA","🇼🇫":"1F1FC-1F1EB","🇲🇴":"1F1F2-1F1F4","🇫🇴":"1F1EB-1F1F4","🇫🇰":"1F1EB-1F1F0","🇯🇪":"1F1EF-1F1EA","🇦🇮":"1F1E6-1F1EE","🇬🇮":"1F1EC-1F1EE"},a.shortnameRegexp=":([-+\\w]+):",a.imagePathPNG="//cdn.jsdelivr.net/emojione/assets/png/",a.imagePathSVG="//cdn.jsdelivr.net/emojione/assets/svg/",a.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",a.imageType="png",a.sprites=!1,a.unicodeAlt=!0,a.ascii=!1,a.cacheBustParam="?v=1.2.4",a.toImage=function(b){return b=a.unicodeToImage(b),b=a.shortnameToImage(b)},a.unifyUnicode=function(b){return b=a.toShort(b),b=a.shortnameToUnicode(b)},a.shortnameToAscii=function(b){var c,d=a.objectFlip(a.asciiList);return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnameRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b][a.emojioneList[b].length-1].toLowerCase(),"undefined"!=typeof d[c]?d[c]:b):b})},a.shortnameToUnicode=function(b){var c;return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnameRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b][a.emojioneList[b].length-1].toUpperCase(),a.convert(c)):b}),a.ascii&&(b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+a.asciiRegexp+"(?=\\s|$|[!,.]))","g"),function(b,d,e,f){return"undefined"!=typeof f&&""!==f&&a.unescapeHTML(f)in a.asciiList?(f=a.unescapeHTML(f),c=a.asciiList[f].toUpperCase(),e+a.convert(c)):b})),b},a.shortnameToImage=function(b){var c,d,e;return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnameRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(d=a.emojioneList[b][a.emojioneList[b].length-1].toUpperCase(),e=a.unicodeAlt?a.convert(d):b,c="png"===a.imageType?a.sprites?'<span class="emojione-'+d+'" title="'+b+'">'+e+"</span>":'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b}),a.ascii&&(b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+a.asciiRegexp+"(?=\\s|$|[!,.]))","g"),function(b,f,g,h){return"undefined"!=typeof h&&""!==h&&a.unescapeHTML(h)in a.asciiList?(h=a.unescapeHTML(h),d=a.asciiList[h].toUpperCase(),e=a.unicodeAlt?a.convert(d):a.escapeHTML(h),c="png"===a.imageType?a.sprites?g+'<span class="emojione-'+d.toUpperCase()+'" title="'+a.escapeHTML(h)+'">'+e+"</span>":g+'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d.toUpperCase()+'"></use></svg>':g+'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b})),b},a.unicodeToImage=function(b){var c,d,e;if(!a.unicodeAlt||a.sprites)var f=a.mapShortToUnicode();return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.unicodeRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.jsecapeMap?(d=a.jsecapeMap[b],e=a.unicodeAlt?a.convert(d):f[d],c="png"===a.imageType?a.sprites?'<span class="emojione-'+d.toUpperCase()+'" title="'+f[d]+'">'+e+"</span>":'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d.toUpperCase()+'"></use></svg>':'<img class="emojione" alt="'+e+'" src="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'"/>'):b})},a.toShort=function(b){for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d in a.emojioneList[c])if(a.emojioneList[c].hasOwnProperty(d)){var e=a.emojioneList[c][d].toUpperCase();b=a.replaceAll(b,a.convert(e),c)}return b},a.convert=function(a){if(a.indexOf("-")>-1){for(var b=[],c=a.split("-"),d=0;d<c.length;d++){var e=parseInt(c[d],16);if(e>=65536&&1114111>=e){var f=Math.floor((e-65536)/1024)+55296,g=(e-65536)%1024+56320;e=String.fromCharCode(f)+String.fromCharCode(g)}else e=String.fromCharCode(e);b.push(e)}return b.join("")}var c=parseInt(a,16);if(c>=65536&&1114111>=c){var f=Math.floor((c-65536)/1024)+55296,g=(c-65536)%1024+56320;return String.fromCharCode(f)+String.fromCharCode(g)}return String.fromCharCode(c)},a.escapeHTML=function(a){var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return a.replace(/[&<>"']/g,function(a){return b[a]})},a.unescapeHTML=function(a){var b={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return a.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(a){return b[a]})},a.mapShortToUnicode=function(){var b={};for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d in a.emojioneList[c])a.emojioneList[c].hasOwnProperty(d)&&(b[a.emojioneList[c][d].toUpperCase()]=c);return b},a.objectFlip=function(a){var b,c={};for(b in a)a.hasOwnProperty(b)&&(c[a[b]]=b);return c},a.escapeRegExp=function(a){return a.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g,"\\$&")},a.replaceAll=function(a,b,c){var d=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+b+")","gi"),e=function(a,b){return"undefined"==typeof b||""===b?a:c};return a.replace(d,e)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione);
diff --git a/pagure/static/emoji/emojione.js b/pagure/static/emoji/emojione.js
deleted file mode 120000
index 8dd95a4..0000000
--- a/pagure/static/emoji/emojione.js
+++ /dev/null
@@ -1 +0,0 @@
-emojione-1.3.1.js
\ No newline at end of file
diff --git a/pagure/static/emoji/emojione.min.js b/pagure/static/emoji/emojione.min.js
deleted file mode 120000
index edcc80b..0000000
--- a/pagure/static/emoji/emojione.min.js
+++ /dev/null
@@ -1 +0,0 @@
-emojione-1.3.1.min.js
\ No newline at end of file
diff --git a/pagure/static/emoji/emojione.sprites-1.3.1.css b/pagure/static/emoji/emojione.sprites-1.3.1.css
deleted file mode 100644
index 06c1394..0000000
--- a/pagure/static/emoji/emojione.sprites-1.3.1.css
+++ /dev/null
@@ -1,4298 +0,0 @@
-[class*=emojione-] {
-    text-indent: -9999em;
-    image-rendering: optimizeQuality;
-    font-size: inherit;
-    height: 1.3em;
-    width: 1.3em;
-    top: -3px;
-    position: relative;
-    display: inline-block;
-    margin: 0 .15em;
-    line-height: normal;
-    vertical-align: middle;
-    background-image: url("emojione.sprites.png");
-    background-size: 3300%;
-    background-repeat: no-repeat
-}
-
-.emojione-0023-20E3 {
-    background-position: 3.125% 0%
-}
-
-.emojione-0030-20E3 {
-    background-position: 21.875% 64.51613%
-}
-
-.emojione-0031-20E3 {
-    background-position: 0% 3.22581%
-}
-
-.emojione-0032-20E3 {
-    background-position: 3.125% 3.22581%
-}
-
-.emojione-0033-20E3 {
-    background-position: 6.25% 0%
-}
-
-.emojione-0034-20E3 {
-    background-position: 6.25% 3.22581%
-}
-
-.emojione-0035-20E3 {
-    background-position: 0% 6.45161%
-}
-
-.emojione-0036-20E3 {
-    background-position: 3.125% 6.45161%
-}
-
-.emojione-0037-20E3 {
-    background-position: 6.25% 6.45161%
-}
-
-.emojione-0038-20E3 {
-    background-position: 9.375% 0%
-}
-
-.emojione-0039-20E3 {
-    background-position: 9.375% 3.22581%
-}
-
-.emojione-00A9 {
-    background-position: 9.375% 6.45161%
-}
-
-.emojione-00AE {
-    background-position: 0% 9.67742%
-}
-
-.emojione-1F004 {
-    background-position: 3.125% 9.67742%
-}
-
-.emojione-1F0CF {
-    background-position: 6.25% 9.67742%
-}
-
-.emojione-1F170 {
-    background-position: 9.375% 9.67742%
-}
-
-.emojione-1F171 {
-    background-position: 12.5% 0%
-}
-
-.emojione-1F17E {
-    background-position: 12.5% 3.22581%
-}
-
-.emojione-1F17F {
-    background-position: 12.5% 6.45161%
-}
-
-.emojione-1F18E {
-    background-position: 12.5% 9.67742%
-}
-
-.emojione-1F191 {
-    background-position: 0% 12.90323%
-}
-
-.emojione-1F192 {
-    background-position: 3.125% 12.90323%
-}
-
-.emojione-1F193 {
-    background-position: 6.25% 12.90323%
-}
-
-.emojione-1F194 {
-    background-position: 9.375% 12.90323%
-}
-
-.emojione-1F195 {
-    background-position: 12.5% 12.90323%
-}
-
-.emojione-1F196 {
-    background-position: 15.625% 0%
-}
-
-.emojione-1F197 {
-    background-position: 15.625% 3.22581%
-}
-
-.emojione-1F198 {
-    background-position: 15.625% 6.45161%
-}
-
-.emojione-1F199 {
-    background-position: 15.625% 9.67742%
-}
-
-.emojione-1F19A {
-    background-position: 15.625% 12.90323%
-}
-
-.emojione-1F1E6-1F1E8 {
-    background-position: 0% 16.12903%
-}
-
-.emojione-1F1E6-1F1E9 {
-    background-position: 3.125% 16.12903%
-}
-
-.emojione-1F1E6-1F1EA {
-    background-position: 6.25% 16.12903%
-}
-
-.emojione-1F1E6-1F1EB {
-    background-position: 9.375% 16.12903%
-}
-
-.emojione-1F1E6-1F1EC {
-    background-position: 12.5% 16.12903%
-}
-
-.emojione-1F1E6-1F1EE {
-    background-position: 15.625% 16.12903%
-}
-
-.emojione-1F1E6-1F1F1 {
-    background-position: 18.75% 0%
-}
-
-.emojione-1F1E6-1F1F2 {
-    background-position: 18.75% 3.22581%
-}
-
-.emojione-1F1E6-1F1F4 {
-    background-position: 18.75% 6.45161%
-}
-
-.emojione-1F1E6-1F1F7 {
-    background-position: 18.75% 9.67742%
-}
-
-.emojione-1F1E6-1F1F9 {
-    background-position: 18.75% 12.90323%
-}
-
-.emojione-1F1E6-1F1FA {
-    background-position: 18.75% 16.12903%
-}
-
-.emojione-1F1E6-1F1FC {
-    background-position: 0% 19.35484%
-}
-
-.emojione-1F1E6-1F1FF {
-    background-position: 3.125% 19.35484%
-}
-
-.emojione-1F1E7-1F1E6 {
-    background-position: 6.25% 19.35484%
-}
-
-.emojione-1F1E7-1F1E7 {
-    background-position: 9.375% 19.35484%
-}
-
-.emojione-1F1E7-1F1E9 {
-    background-position: 12.5% 19.35484%
-}
-
-.emojione-1F1E7-1F1EA {
-    background-position: 15.625% 19.35484%
-}
-
-.emojione-1F1E7-1F1EB {
-    background-position: 18.75% 19.35484%
-}
-
-.emojione-1F1E7-1F1EC {
-    background-position: 21.875% 0%
-}
-
-.emojione-1F1E7-1F1ED {
-    background-position: 21.875% 3.22581%
-}
-
-.emojione-1F1E7-1F1EE {
-    background-position: 21.875% 6.45161%
-}
-
-.emojione-1F1E7-1F1EF {
-    background-position: 21.875% 9.67742%
-}
-
-.emojione-1F1E7-1F1F2 {
-    background-position: 21.875% 12.90323%
-}
-
-.emojione-1F1E7-1F1F3 {
-    background-position: 21.875% 16.12903%
-}
-
-.emojione-1F1E7-1F1F4 {
-    background-position: 21.875% 19.35484%
-}
-
-.emojione-1F1E7-1F1F7 {
-    background-position: 0% 22.58065%
-}
-
-.emojione-1F1E7-1F1F8 {
-    background-position: 3.125% 22.58065%
-}
-
-.emojione-1F1E7-1F1F9 {
-    background-position: 6.25% 22.58065%
-}
-
-.emojione-1F1E7-1F1FC {
-    background-position: 9.375% 22.58065%
-}
-
-.emojione-1F1E7-1F1FE {
-    background-position: 12.5% 22.58065%
-}
-
-.emojione-1F1E7-1F1FF {
-    background-position: 15.625% 22.58065%
-}
-
-.emojione-1F1E8-1F1E6 {
-    background-position: 18.75% 22.58065%
-}
-
-.emojione-1F1E8-1F1E9 {
-    background-position: 21.875% 22.58065%
-}
-
-.emojione-1F1E8-1F1EB {
-    background-position: 25% 0%
-}
-
-.emojione-1F1E8-1F1EC {
-    background-position: 25% 3.22581%
-}
-
-.emojione-1F1E8-1F1ED {
-    background-position: 25% 6.45161%
-}
-
-.emojione-1F1E8-1F1EE {
-    background-position: 25% 9.67742%
-}
-
-.emojione-1F1E8-1F1F1 {
-    background-position: 25% 12.90323%
-}
-
-.emojione-1F1E8-1F1F2 {
-    background-position: 25% 16.12903%
-}
-
-.emojione-1F1E8-1F1F3 {
-    background-position: 25% 19.35484%
-}
-
-.emojione-1F1E8-1F1F4 {
-    background-position: 25% 22.58065%
-}
-
-.emojione-1F1E8-1F1F7 {
-    background-position: 0% 25.80645%
-}
-
-.emojione-1F1E8-1F1FA {
-    background-position: 3.125% 25.80645%
-}
-
-.emojione-1F1E8-1F1FB {
-    background-position: 6.25% 25.80645%
-}
-
-.emojione-1F1E8-1F1FE {
-    background-position: 9.375% 25.80645%
-}
-
-.emojione-1F1E8-1F1FF {
-    background-position: 12.5% 25.80645%
-}
-
-.emojione-1F1E9-1F1EA {
-    background-position: 15.625% 25.80645%
-}
-
-.emojione-1F1E9-1F1EF {
-    background-position: 18.75% 25.80645%
-}
-
-.emojione-1F1E9-1F1F0 {
-    background-position: 21.875% 25.80645%
-}
-
-.emojione-1F1E9-1F1F2 {
-    background-position: 25% 25.80645%
-}
-
-.emojione-1F1E9-1F1F4 {
-    background-position: 28.125% 0%
-}
-
-.emojione-1F1E9-1F1FF {
-    background-position: 28.125% 3.22581%
-}
-
-.emojione-1F1EA-1F1E8 {
-    background-position: 28.125% 6.45161%
-}
-
-.emojione-1F1EA-1F1EA {
-    background-position: 28.125% 9.67742%
-}
-
-.emojione-1F1EA-1F1EC {
-    background-position: 28.125% 12.90323%
-}
-
-.emojione-1F1EA-1F1ED {
-    background-position: 28.125% 16.12903%
-}
-
-.emojione-1F1EA-1F1F7 {
-    background-position: 28.125% 19.35484%
-}
-
-.emojione-1F1EA-1F1F8 {
-    background-position: 28.125% 22.58065%
-}
-
-.emojione-1F1EA-1F1F9 {
-    background-position: 28.125% 25.80645%
-}
-
-.emojione-1F1EB-1F1EE {
-    background-position: 0% 29.03226%
-}
-
-.emojione-1F1EB-1F1EF {
-    background-position: 3.125% 29.03226%
-}
-
-.emojione-1F1EB-1F1F0 {
-    background-position: 6.25% 29.03226%
-}
-
-.emojione-1F1EB-1F1F2 {
-    background-position: 9.375% 29.03226%
-}
-
-.emojione-1F1EB-1F1F4 {
-    background-position: 12.5% 29.03226%
-}
-
-.emojione-1F1EB-1F1F7 {
-    background-position: 15.625% 29.03226%
-}
-
-.emojione-1F1EC-1F1E6 {
-    background-position: 18.75% 29.03226%
-}
-
-.emojione-1F1EC-1F1E7 {
-    background-position: 21.875% 29.03226%
-}
-
-.emojione-1F1EC-1F1E9 {
-    background-position: 25% 29.03226%
-}
-
-.emojione-1F1EC-1F1EA {
-    background-position: 28.125% 29.03226%
-}
-
-.emojione-1F1EC-1F1ED {
-    background-position: 31.25% 0%
-}
-
-.emojione-1F1EC-1F1EE {
-    background-position: 31.25% 3.22581%
-}
-
-.emojione-1F1EC-1F1F1 {
-    background-position: 31.25% 6.45161%
-}
-
-.emojione-1F1EC-1F1F2 {
-    background-position: 31.25% 9.67742%
-}
-
-.emojione-1F1EC-1F1F3 {
-    background-position: 31.25% 12.90323%
-}
-
-.emojione-1F1EC-1F1F6 {
-    background-position: 31.25% 16.12903%
-}
-
-.emojione-1F1EC-1F1F7 {
-    background-position: 31.25% 19.35484%
-}
-
-.emojione-1F1EC-1F1F9 {
-    background-position: 31.25% 22.58065%
-}
-
-.emojione-1F1EC-1F1FA {
-    background-position: 31.25% 25.80645%
-}
-
-.emojione-1F1EC-1F1FC {
-    background-position: 31.25% 29.03226%
-}
-
-.emojione-1F1EC-1F1FE {
-    background-position: 0% 32.25806%
-}
-
-.emojione-1F1ED-1F1F0 {
-    background-position: 3.125% 32.25806%
-}
-
-.emojione-1F1ED-1F1F3 {
-    background-position: 6.25% 32.25806%
-}
-
-.emojione-1F1ED-1F1F7 {
-    background-position: 9.375% 32.25806%
-}
-
-.emojione-1F1ED-1F1F9 {
-    background-position: 12.5% 32.25806%
-}
-
-.emojione-1F1ED-1F1FA {
-    background-position: 15.625% 32.25806%
-}
-
-.emojione-1F1EE-1F1E9 {
-    background-position: 18.75% 32.25806%
-}
-
-.emojione-1F1EE-1F1EA {
-    background-position: 21.875% 32.25806%
-}
-
-.emojione-1F1EE-1F1F1 {
-    background-position: 25% 32.25806%
-}
-
-.emojione-1F1EE-1F1F3 {
-    background-position: 28.125% 32.25806%
-}
-
-.emojione-1F1EE-1F1F6 {
-    background-position: 31.25% 32.25806%
-}
-
-.emojione-1F1EE-1F1F7 {
-    background-position: 34.375% 0%
-}
-
-.emojione-1F1EE-1F1F8 {
-    background-position: 34.375% 3.22581%
-}
-
-.emojione-1F1EE-1F1F9 {
-    background-position: 34.375% 6.45161%
-}
-
-.emojione-1F1EF-1F1EA {
-    background-position: 34.375% 9.67742%
-}
-
-.emojione-1F1EF-1F1F2 {
-    background-position: 34.375% 12.90323%
-}
-
-.emojione-1F1EF-1F1F4 {
-    background-position: 34.375% 16.12903%
-}
-
-.emojione-1F1EF-1F1F5 {
-    background-position: 34.375% 19.35484%
-}
-
-.emojione-1F1F0-1F1EA {
-    background-position: 34.375% 22.58065%
-}
-
-.emojione-1F1F0-1F1EC {
-    background-position: 34.375% 25.80645%
-}
-
-.emojione-1F1F0-1F1ED {
-    background-position: 34.375% 29.03226%
-}
-
-.emojione-1F1F0-1F1EE {
-    background-position: 34.375% 32.25806%
-}
-
-.emojione-1F1F0-1F1F2 {
-    background-position: 0% 35.48387%
-}
-
-.emojione-1F1F0-1F1F3 {
-    background-position: 3.125% 35.48387%
-}
-
-.emojione-1F1F0-1F1F5 {
-    background-position: 6.25% 35.48387%
-}
-
-.emojione-1F1F0-1F1F7 {
-    background-position: 9.375% 35.48387%
-}
-
-.emojione-1F1F0-1F1FC {
-    background-position: 12.5% 35.48387%
-}
-
-.emojione-1F1F0-1F1FE {
-    background-position: 15.625% 35.48387%
-}
-
-.emojione-1F1F0-1F1FF {
-    background-position: 18.75% 35.48387%
-}
-
-.emojione-1F1F1-1F1E6 {
-    background-position: 21.875% 35.48387%
-}
-
-.emojione-1F1F1-1F1E7 {
-    background-position: 25% 35.48387%
-}
-
-.emojione-1F1F1-1F1E8 {
-    background-position: 28.125% 35.48387%
-}
-
-.emojione-1F1F1-1F1EE {
-    background-position: 31.25% 35.48387%
-}
-
-.emojione-1F1F1-1F1F0 {
-    background-position: 34.375% 35.48387%
-}
-
-.emojione-1F1F1-1F1F7 {
-    background-position: 37.5% 0%
-}
-
-.emojione-1F1F1-1F1F8 {
-    background-position: 37.5% 3.22581%
-}
-
-.emojione-1F1F1-1F1F9 {
-    background-position: 37.5% 6.45161%
-}
-
-.emojione-1F1F1-1F1FA {
-    background-position: 37.5% 9.67742%
-}
-
-.emojione-1F1F1-1F1FB {
-    background-position: 37.5% 12.90323%
-}
-
-.emojione-1F1F1-1F1FE {
-    background-position: 37.5% 16.12903%
-}
-
-.emojione-1F1F2-1F1E6 {
-    background-position: 37.5% 19.35484%
-}
-
-.emojione-1F1F2-1F1E8 {
-    background-position: 37.5% 22.58065%
-}
-
-.emojione-1F1F2-1F1E9 {
-    background-position: 37.5% 25.80645%
-}
-
-.emojione-1F1F2-1F1EA {
-    background-position: 37.5% 29.03226%
-}
-
-.emojione-1F1F2-1F1EC {
-    background-position: 37.5% 32.25806%
-}
-
-.emojione-1F1F2-1F1ED {
-    background-position: 37.5% 35.48387%
-}
-
-.emojione-1F1F2-1F1F0 {
-    background-position: 0% 38.70968%
-}
-
-.emojione-1F1F2-1F1F1 {
-    background-position: 3.125% 38.70968%
-}
-
-.emojione-1F1F2-1F1F2 {
-    background-position: 6.25% 38.70968%
-}
-
-.emojione-1F1F2-1F1F3 {
-    background-position: 9.375% 38.70968%
-}
-
-.emojione-1F1F2-1F1F4 {
-    background-position: 12.5% 38.70968%
-}
-
-.emojione-1F1F2-1F1F7 {
-    background-position: 15.625% 38.70968%
-}
-
-.emojione-1F1F2-1F1F8 {
-    background-position: 18.75% 38.70968%
-}
-
-.emojione-1F1F2-1F1F9 {
-    background-position: 21.875% 38.70968%
-}
-
-.emojione-1F1F2-1F1FA {
-    background-position: 25% 38.70968%
-}
-
-.emojione-1F1F2-1F1FB {
-    background-position: 28.125% 38.70968%
-}
-
-.emojione-1F1F2-1F1FC {
-    background-position: 31.25% 38.70968%
-}
-
-.emojione-1F1F2-1F1FD {
-    background-position: 34.375% 38.70968%
-}
-
-.emojione-1F1F2-1F1FE {
-    background-position: 37.5% 38.70968%
-}
-
-.emojione-1F1F2-1F1FF {
-    background-position: 40.625% 0%
-}
-
-.emojione-1F1F3-1F1E6 {
-    background-position: 40.625% 3.22581%
-}
-
-.emojione-1F1F3-1F1E8 {
-    background-position: 40.625% 6.45161%
-}
-
-.emojione-1F1F3-1F1EA {
-    background-position: 40.625% 9.67742%
-}
-
-.emojione-1F1F3-1F1EC {
-    background-position: 40.625% 12.90323%
-}
-
-.emojione-1F1F3-1F1EE {
-    background-position: 40.625% 16.12903%
-}
-
-.emojione-1F1F3-1F1F1 {
-    background-position: 40.625% 19.35484%
-}
-
-.emojione-1F1F3-1F1F4 {
-    background-position: 40.625% 22.58065%
-}
-
-.emojione-1F1F3-1F1F5 {
-    background-position: 40.625% 25.80645%
-}
-
-.emojione-1F1F3-1F1F7 {
-    background-position: 40.625% 29.03226%
-}
-
-.emojione-1F1F3-1F1FA {
-    background-position: 40.625% 32.25806%
-}
-
-.emojione-1F1F3-1F1FF {
-    background-position: 40.625% 35.48387%
-}
-
-.emojione-1F1F4-1F1F2 {
-    background-position: 40.625% 38.70968%
-}
-
-.emojione-1F1F5-1F1E6 {
-    background-position: 0% 41.93548%
-}
-
-.emojione-1F1F5-1F1EA {
-    background-position: 3.125% 41.93548%
-}
-
-.emojione-1F1F5-1F1EB {
-    background-position: 6.25% 41.93548%
-}
-
-.emojione-1F1F5-1F1EC {
-    background-position: 9.375% 41.93548%
-}
-
-.emojione-1F1F5-1F1ED {
-    background-position: 12.5% 41.93548%
-}
-
-.emojione-1F1F5-1F1F0 {
-    background-position: 15.625% 41.93548%
-}
-
-.emojione-1F1F5-1F1F1 {
-    background-position: 18.75% 41.93548%
-}
-
-.emojione-1F1F5-1F1F7 {
-    background-position: 21.875% 41.93548%
-}
-
-.emojione-1F1F5-1F1F8 {
-    background-position: 25% 41.93548%
-}
-
-.emojione-1F1F5-1F1F9 {
-    background-position: 28.125% 41.93548%
-}
-
-.emojione-1F1F5-1F1FC {
-    background-position: 31.25% 41.93548%
-}
-
-.emojione-1F1F5-1F1FE {
-    background-position: 34.375% 41.93548%
-}
-
-.emojione-1F1F6-1F1E6 {
-    background-position: 37.5% 41.93548%
-}
-
-.emojione-1F1F7-1F1F4 {
-    background-position: 40.625% 41.93548%
-}
-
-.emojione-1F1F7-1F1F8 {
-    background-position: 43.75% 0%
-}
-
-.emojione-1F1F7-1F1FA {
-    background-position: 43.75% 3.22581%
-}
-
-.emojione-1F1F7-1F1FC {
-    background-position: 43.75% 6.45161%
-}
-
-.emojione-1F1F8-1F1E6 {
-    background-position: 43.75% 9.67742%
-}
-
-.emojione-1F1F8-1F1E7 {
-    background-position: 43.75% 12.90323%
-}
-
-.emojione-1F1F8-1F1E8 {
-    background-position: 43.75% 16.12903%
-}
-
-.emojione-1F1F8-1F1E9 {
-    background-position: 43.75% 19.35484%
-}
-
-.emojione-1F1F8-1F1EA {
-    background-position: 43.75% 22.58065%
-}
-
-.emojione-1F1F8-1F1EC {
-    background-position: 43.75% 25.80645%
-}
-
-.emojione-1F1F8-1F1ED {
-    background-position: 43.75% 29.03226%
-}
-
-.emojione-1F1F8-1F1EE {
-    background-position: 43.75% 32.25806%
-}
-
-.emojione-1F1F8-1F1F0 {
-    background-position: 43.75% 35.48387%
-}
-
-.emojione-1F1F8-1F1F1 {
-    background-position: 43.75% 38.70968%
-}
-
-.emojione-1F1F8-1F1F2 {
-    background-position: 43.75% 41.93548%
-}
-
-.emojione-1F1F8-1F1F3 {
-    background-position: 0% 45.16129%
-}
-
-.emojione-1F1F8-1F1F4 {
-    background-position: 3.125% 45.16129%
-}
-
-.emojione-1F1F8-1F1F7 {
-    background-position: 6.25% 45.16129%
-}
-
-.emojione-1F1F8-1F1F9 {
-    background-position: 9.375% 45.16129%
-}
-
-.emojione-1F1F8-1F1FB {
-    background-position: 12.5% 45.16129%
-}
-
-.emojione-1F1F8-1F1FE {
-    background-position: 15.625% 45.16129%
-}
-
-.emojione-1F1F8-1F1FF {
-    background-position: 18.75% 45.16129%
-}
-
-.emojione-1F1F9-1F1E9 {
-    background-position: 21.875% 45.16129%
-}
-
-.emojione-1F1F9-1F1EC {
-    background-position: 25% 45.16129%
-}
-
-.emojione-1F1F9-1F1ED {
-    background-position: 28.125% 45.16129%
-}
-
-.emojione-1F1F9-1F1EF {
-    background-position: 31.25% 45.16129%
-}
-
-.emojione-1F1F9-1F1F1 {
-    background-position: 34.375% 45.16129%
-}
-
-.emojione-1F1F9-1F1F2 {
-    background-position: 37.5% 45.16129%
-}
-
-.emojione-1F1F9-1F1F3 {
-    background-position: 40.625% 45.16129%
-}
-
-.emojione-1F1F9-1F1F4 {
-    background-position: 43.75% 45.16129%
-}
-
-.emojione-1F1F9-1F1F7 {
-    background-position: 46.875% 0%
-}
-
-.emojione-1F1F9-1F1F9 {
-    background-position: 46.875% 3.22581%
-}
-
-.emojione-1F1F9-1F1FB {
-    background-position: 46.875% 6.45161%
-}
-
-.emojione-1F1F9-1F1FC {
-    background-position: 46.875% 9.67742%
-}
-
-.emojione-1F1F9-1F1FF {
-    background-position: 46.875% 12.90323%
-}
-
-.emojione-1F1FA-1F1E6 {
-    background-position: 46.875% 16.12903%
-}
-
-.emojione-1F1FA-1F1EC {
-    background-position: 46.875% 19.35484%
-}
-
-.emojione-1F1FA-1F1F8 {
-    background-position: 46.875% 22.58065%
-}
-
-.emojione-1F1FA-1F1FE {
-    background-position: 46.875% 25.80645%
-}
-
-.emojione-1F1FA-1F1FF {
-    background-position: 46.875% 29.03226%
-}
-
-.emojione-1F1FB-1F1E6 {
-    background-position: 46.875% 32.25806%
-}
-
-.emojione-1F1FB-1F1E8 {
-    background-position: 46.875% 35.48387%
-}
-
-.emojione-1F1FB-1F1EA {
-    background-position: 46.875% 38.70968%
-}
-
-.emojione-1F1FB-1F1EE {
-    background-position: 46.875% 41.93548%
-}
-
-.emojione-1F1FB-1F1F3 {
-    background-position: 46.875% 45.16129%
-}
-
-.emojione-1F1FB-1F1FA {
-    background-position: 0% 48.3871%
-}
-
-.emojione-1F1FC-1F1EB {
-    background-position: 3.125% 48.3871%
-}
-
-.emojione-1F1FC-1F1F8 {
-    background-position: 6.25% 48.3871%
-}
-
-.emojione-1F1FD-1F1F0 {
-    background-position: 9.375% 48.3871%
-}
-
-.emojione-1F1FE-1F1EA {
-    background-position: 12.5% 48.3871%
-}
-
-.emojione-1F1FF-1F1E6 {
-    background-position: 15.625% 48.3871%
-}
-
-.emojione-1F1FF-1F1F2 {
-    background-position: 18.75% 48.3871%
-}
-
-.emojione-1F1FF-1F1FC {
-    background-position: 21.875% 48.3871%
-}
-
-.emojione-1F201 {
-    background-position: 25% 48.3871%
-}
-
-.emojione-1F202 {
-    background-position: 28.125% 48.3871%
-}
-
-.emojione-1F21A {
-    background-position: 31.25% 48.3871%
-}
-
-.emojione-1F22F {
-    background-position: 34.375% 48.3871%
-}
-
-.emojione-1F232 {
-    background-position: 37.5% 48.3871%
-}
-
-.emojione-1F233 {
-    background-position: 40.625% 48.3871%
-}
-
-.emojione-1F234 {
-    background-position: 43.75% 48.3871%
-}
-
-.emojione-1F235 {
-    background-position: 46.875% 48.3871%
-}
-
-.emojione-1F236 {
-    background-position: 50% 0%
-}
-
-.emojione-1F237 {
-    background-position: 50% 3.22581%
-}
-
-.emojione-1F238 {
-    background-position: 50% 6.45161%
-}
-
-.emojione-1F239 {
-    background-position: 50% 9.67742%
-}
-
-.emojione-1F23A {
-    background-position: 50% 12.90323%
-}
-
-.emojione-1F250 {
-    background-position: 50% 16.12903%
-}
-
-.emojione-1F251 {
-    background-position: 50% 19.35484%
-}
-
-.emojione-1F300 {
-    background-position: 50% 22.58065%
-}
-
-.emojione-1F301 {
-    background-position: 50% 25.80645%
-}
-
-.emojione-1F302 {
-    background-position: 50% 29.03226%
-}
-
-.emojione-1F303 {
-    background-position: 50% 32.25806%
-}
-
-.emojione-1F304 {
-    background-position: 50% 35.48387%
-}
-
-.emojione-1F305 {
-    background-position: 50% 38.70968%
-}
-
-.emojione-1F306 {
-    background-position: 50% 41.93548%
-}
-
-.emojione-1F307 {
-    background-position: 50% 45.16129%
-}
-
-.emojione-1F308 {
-    background-position: 50% 48.3871%
-}
-
-.emojione-1F309 {
-    background-position: 0% 51.6129%
-}
-
-.emojione-1F30A {
-    background-position: 3.125% 51.6129%
-}
-
-.emojione-1F30B {
-    background-position: 6.25% 51.6129%
-}
-
-.emojione-1F30C {
-    background-position: 9.375% 51.6129%
-}
-
-.emojione-1F30D {
-    background-position: 12.5% 51.6129%
-}
-
-.emojione-1F30E {
-    background-position: 15.625% 51.6129%
-}
-
-.emojione-1F30F {
-    background-position: 18.75% 51.6129%
-}
-
-.emojione-1F310 {
-    background-position: 21.875% 51.6129%
-}
-
-.emojione-1F311 {
-    background-position: 25% 51.6129%
-}
-
-.emojione-1F312 {
-    background-position: 28.125% 51.6129%
-}
-
-.emojione-1F313 {
-    background-position: 31.25% 51.6129%
-}
-
-.emojione-1F314 {
-    background-position: 34.375% 51.6129%
-}
-
-.emojione-1F315 {
-    background-position: 37.5% 51.6129%
-}
-
-.emojione-1F316 {
-    background-position: 40.625% 51.6129%
-}
-
-.emojione-1F317 {
-    background-position: 43.75% 51.6129%
-}
-
-.emojione-1F318 {
-    background-position: 46.875% 51.6129%
-}
-
-.emojione-1F319 {
-    background-position: 50% 51.6129%
-}
-
-.emojione-1F31A {
-    background-position: 53.125% 0%
-}
-
-.emojione-1F31B {
-    background-position: 53.125% 3.22581%
-}
-
-.emojione-1F31C {
-    background-position: 53.125% 6.45161%
-}
-
-.emojione-1F31D {
-    background-position: 53.125% 9.67742%
-}
-
-.emojione-1F31E {
-    background-position: 53.125% 12.90323%
-}
-
-.emojione-1F31F {
-    background-position: 53.125% 16.12903%
-}
-
-.emojione-1F320 {
-    background-position: 53.125% 19.35484%
-}
-
-.emojione-1F330 {
-    background-position: 53.125% 22.58065%
-}
-
-.emojione-1F331 {
-    background-position: 53.125% 25.80645%
-}
-
-.emojione-1F332 {
-    background-position: 53.125% 29.03226%
-}
-
-.emojione-1F333 {
-    background-position: 53.125% 32.25806%
-}
-
-.emojione-1F334 {
-    background-position: 53.125% 35.48387%
-}
-
-.emojione-1F335 {
-    background-position: 53.125% 38.70968%
-}
-
-.emojione-1F337 {
-    background-position: 53.125% 41.93548%
-}
-
-.emojione-1F338 {
-    background-position: 53.125% 45.16129%
-}
-
-.emojione-1F339 {
-    background-position: 53.125% 48.3871%
-}
-
-.emojione-1F33A {
-    background-position: 53.125% 51.6129%
-}
-
-.emojione-1F33B {
-    background-position: 0% 54.83871%
-}
-
-.emojione-1F33C {
-    background-position: 3.125% 54.83871%
-}
-
-.emojione-1F33D {
-    background-position: 6.25% 54.83871%
-}
-
-.emojione-1F33E {
-    background-position: 9.375% 54.83871%
-}
-
-.emojione-1F33F {
-    background-position: 12.5% 54.83871%
-}
-
-.emojione-1F340 {
-    background-position: 15.625% 54.83871%
-}
-
-.emojione-1F341 {
-    background-position: 18.75% 54.83871%
-}
-
-.emojione-1F342 {
-    background-position: 21.875% 54.83871%
-}
-
-.emojione-1F343 {
-    background-position: 25% 54.83871%
-}
-
-.emojione-1F344 {
-    background-position: 28.125% 54.83871%
-}
-
-.emojione-1F345 {
-    background-position: 31.25% 54.83871%
-}
-
-.emojione-1F346 {
-    background-position: 34.375% 54.83871%
-}
-
-.emojione-1F347 {
-    background-position: 37.5% 54.83871%
-}
-
-.emojione-1F348 {
-    background-position: 40.625% 54.83871%
-}
-
-.emojione-1F349 {
-    background-position: 43.75% 54.83871%
-}
-
-.emojione-1F34A {
-    background-position: 46.875% 54.83871%
-}
-
-.emojione-1F34B {
-    background-position: 50% 54.83871%
-}
-
-.emojione-1F34C {
-    background-position: 53.125% 54.83871%
-}
-
-.emojione-1F34D {
-    background-position: 56.25% 0%
-}
-
-.emojione-1F34E {
-    background-position: 56.25% 3.22581%
-}
-
-.emojione-1F34F {
-    background-position: 56.25% 6.45161%
-}
-
-.emojione-1F350 {
-    background-position: 56.25% 9.67742%
-}
-
-.emojione-1F351 {
-    background-position: 56.25% 12.90323%
-}
-
-.emojione-1F352 {
-    background-position: 56.25% 16.12903%
-}
-
-.emojione-1F353 {
-    background-position: 56.25% 19.35484%
-}
-
-.emojione-1F354 {
-    background-position: 56.25% 22.58065%
-}
-
-.emojione-1F355 {
-    background-position: 56.25% 25.80645%
-}
-
-.emojione-1F356 {
-    background-position: 56.25% 29.03226%
-}
-
-.emojione-1F357 {
-    background-position: 56.25% 32.25806%
-}
-
-.emojione-1F358 {
-    background-position: 56.25% 35.48387%
-}
-
-.emojione-1F359 {
-    background-position: 56.25% 38.70968%
-}
-
-.emojione-1F35A {
-    background-position: 56.25% 41.93548%
-}
-
-.emojione-1F35B {
-    background-position: 56.25% 45.16129%
-}
-
-.emojione-1F35C {
-    background-position: 56.25% 48.3871%
-}
-
-.emojione-1F35D {
-    background-position: 56.25% 51.6129%
-}
-
-.emojione-1F35E {
-    background-position: 56.25% 54.83871%
-}
-
-.emojione-1F35F {
-    background-position: 0% 58.06452%
-}
-
-.emojione-1F360 {
-    background-position: 3.125% 58.06452%
-}
-
-.emojione-1F361 {
-    background-position: 6.25% 58.06452%
-}
-
-.emojione-1F362 {
-    background-position: 9.375% 58.06452%
-}
-
-.emojione-1F363 {
-    background-position: 12.5% 58.06452%
-}
-
-.emojione-1F364 {
-    background-position: 15.625% 58.06452%
-}
-
-.emojione-1F365 {
-    background-position: 18.75% 58.06452%
-}
-
-.emojione-1F366 {
-    background-position: 21.875% 58.06452%
-}
-
-.emojione-1F367 {
-    background-position: 25% 58.06452%
-}
-
-.emojione-1F368 {
-    background-position: 28.125% 58.06452%
-}
-
-.emojione-1F369 {
-    background-position: 31.25% 58.06452%
-}
-
-.emojione-1F36A {
-    background-position: 34.375% 58.06452%
-}
-
-.emojione-1F36B {
-    background-position: 37.5% 58.06452%
-}
-
-.emojione-1F36C {
-    background-position: 40.625% 58.06452%
-}
-
-.emojione-1F36D {
-    background-position: 43.75% 58.06452%
-}
-
-.emojione-1F36E {
-    background-position: 46.875% 58.06452%
-}
-
-.emojione-1F36F {
-    background-position: 50% 58.06452%
-}
-
-.emojione-1F370 {
-    background-position: 53.125% 58.06452%
-}
-
-.emojione-1F371 {
-    background-position: 56.25% 58.06452%
-}
-
-.emojione-1F372 {
-    background-position: 59.375% 0%
-}
-
-.emojione-1F373 {
-    background-position: 59.375% 3.22581%
-}
-
-.emojione-1F374 {
-    background-position: 59.375% 6.45161%
-}
-
-.emojione-1F375 {
-    background-position: 59.375% 9.67742%
-}
-
-.emojione-1F376 {
-    background-position: 59.375% 12.90323%
-}
-
-.emojione-1F377 {
-    background-position: 59.375% 16.12903%
-}
-
-.emojione-1F378 {
-    background-position: 59.375% 19.35484%
-}
-
-.emojione-1F379 {
-    background-position: 59.375% 22.58065%
-}
-
-.emojione-1F37A {
-    background-position: 59.375% 25.80645%
-}
-
-.emojione-1F37B {
-    background-position: 59.375% 29.03226%
-}
-
-.emojione-1F37C {
-    background-position: 59.375% 32.25806%
-}
-
-.emojione-1F380 {
-    background-position: 59.375% 35.48387%
-}
-
-.emojione-1F381 {
-    background-position: 59.375% 38.70968%
-}
-
-.emojione-1F382 {
-    background-position: 59.375% 41.93548%
-}
-
-.emojione-1F383 {
-    background-position: 59.375% 45.16129%
-}
-
-.emojione-1F384 {
-    background-position: 59.375% 48.3871%
-}
-
-.emojione-1F385 {
-    background-position: 59.375% 51.6129%
-}
-
-.emojione-1F386 {
-    background-position: 59.375% 54.83871%
-}
-
-.emojione-1F387 {
-    background-position: 59.375% 58.06452%
-}
-
-.emojione-1F388 {
-    background-position: 0% 61.29032%
-}
-
-.emojione-1F389 {
-    background-position: 3.125% 61.29032%
-}
-
-.emojione-1F38A {
-    background-position: 6.25% 61.29032%
-}
-
-.emojione-1F38B {
-    background-position: 9.375% 61.29032%
-}
-
-.emojione-1F38C {
-    background-position: 12.5% 61.29032%
-}
-
-.emojione-1F38D {
-    background-position: 15.625% 61.29032%
-}
-
-.emojione-1F38E {
-    background-position: 18.75% 61.29032%
-}
-
-.emojione-1F38F {
-    background-position: 21.875% 61.29032%
-}
-
-.emojione-1F390 {
-    background-position: 25% 61.29032%
-}
-
-.emojione-1F391 {
-    background-position: 28.125% 61.29032%
-}
-
-.emojione-1F392 {
-    background-position: 31.25% 61.29032%
-}
-
-.emojione-1F393 {
-    background-position: 34.375% 61.29032%
-}
-
-.emojione-1F3A0 {
-    background-position: 37.5% 61.29032%
-}
-
-.emojione-1F3A1 {
-    background-position: 40.625% 61.29032%
-}
-
-.emojione-1F3A2 {
-    background-position: 43.75% 61.29032%
-}
-
-.emojione-1F3A3 {
-    background-position: 46.875% 61.29032%
-}
-
-.emojione-1F3A4 {
-    background-position: 50% 61.29032%
-}
-
-.emojione-1F3A5 {
-    background-position: 53.125% 61.29032%
-}
-
-.emojione-1F3A6 {
-    background-position: 56.25% 61.29032%
-}
-
-.emojione-1F3A7 {
-    background-position: 59.375% 61.29032%
-}
-
-.emojione-1F3A8 {
-    background-position: 62.5% 0%
-}
-
-.emojione-1F3A9 {
-    background-position: 62.5% 3.22581%
-}
-
-.emojione-1F3AA {
-    background-position: 62.5% 6.45161%
-}
-
-.emojione-1F3AB {
-    background-position: 62.5% 9.67742%
-}
-
-.emojione-1F3AC {
-    background-position: 62.5% 12.90323%
-}
-
-.emojione-1F3AD {
-    background-position: 62.5% 16.12903%
-}
-
-.emojione-1F3AE {
-    background-position: 62.5% 19.35484%
-}
-
-.emojione-1F3AF {
-    background-position: 62.5% 22.58065%
-}
-
-.emojione-1F3B0 {
-    background-position: 62.5% 25.80645%
-}
-
-.emojione-1F3B1 {
-    background-position: 62.5% 29.03226%
-}
-
-.emojione-1F3B2 {
-    background-position: 62.5% 32.25806%
-}
-
-.emojione-1F3B3 {
-    background-position: 62.5% 35.48387%
-}
-
-.emojione-1F3B4 {
-    background-position: 62.5% 38.70968%
-}
-
-.emojione-1F3B5 {
-    background-position: 62.5% 41.93548%
-}
-
-.emojione-1F3B6 {
-    background-position: 62.5% 45.16129%
-}
-
-.emojione-1F3B7 {
-    background-position: 62.5% 48.3871%
-}
-
-.emojione-1F3B8 {
-    background-position: 62.5% 51.6129%
-}
-
-.emojione-1F3B9 {
-    background-position: 62.5% 54.83871%
-}
-
-.emojione-1F3BA {
-    background-position: 62.5% 58.06452%
-}
-
-.emojione-1F3BB {
-    background-position: 62.5% 61.29032%
-}
-
-.emojione-1F3BC {
-    background-position: 0% 64.51613%
-}
-
-.emojione-1F3BD {
-    background-position: 3.125% 64.51613%
-}
-
-.emojione-1F3BE {
-    background-position: 6.25% 64.51613%
-}
-
-.emojione-1F3BF {
-    background-position: 9.375% 64.51613%
-}
-
-.emojione-1F3C0 {
-    background-position: 12.5% 64.51613%
-}
-
-.emojione-1F3C1 {
-    background-position: 15.625% 64.51613%
-}
-
-.emojione-1F3C2 {
-    background-position: 18.75% 64.51613%
-}
-
-.emojione-1F3C3 {
-    background-position: 0% 0%
-}
-
-.emojione-1F3C4 {
-    background-position: 25% 64.51613%
-}
-
-.emojione-1F3C6 {
-    background-position: 28.125% 64.51613%
-}
-
-.emojione-1F3C7 {
-    background-position: 31.25% 64.51613%
-}
-
-.emojione-1F3C8 {
-    background-position: 34.375% 64.51613%
-}
-
-.emojione-1F3C9 {
-    background-position: 37.5% 64.51613%
-}
-
-.emojione-1F3CA {
-    background-position: 40.625% 64.51613%
-}
-
-.emojione-1F3E0 {
-    background-position: 43.75% 64.51613%
-}
-
-.emojione-1F3E1 {
-    background-position: 46.875% 64.51613%
-}
-
-.emojione-1F3E2 {
-    background-position: 50% 64.51613%
-}
-
-.emojione-1F3E3 {
-    background-position: 53.125% 64.51613%
-}
-
-.emojione-1F3E4 {
-    background-position: 56.25% 64.51613%
-}
-
-.emojione-1F3E5 {
-    background-position: 59.375% 64.51613%
-}
-
-.emojione-1F3E6 {
-    background-position: 62.5% 64.51613%
-}
-
-.emojione-1F3E7 {
-    background-position: 65.625% 0%
-}
-
-.emojione-1F3E8 {
-    background-position: 65.625% 3.22581%
-}
-
-.emojione-1F3E9 {
-    background-position: 65.625% 6.45161%
-}
-
-.emojione-1F3EA {
-    background-position: 65.625% 9.67742%
-}
-
-.emojione-1F3EB {
-    background-position: 65.625% 12.90323%
-}
-
-.emojione-1F3EC {
-    background-position: 65.625% 16.12903%
-}
-
-.emojione-1F3ED {
-    background-position: 65.625% 19.35484%
-}
-
-.emojione-1F3EE {
-    background-position: 65.625% 22.58065%
-}
-
-.emojione-1F3EF {
-    background-position: 65.625% 25.80645%
-}
-
-.emojione-1F3F0 {
-    background-position: 65.625% 29.03226%
-}
-
-.emojione-1F400 {
-    background-position: 65.625% 32.25806%
-}
-
-.emojione-1F401 {
-    background-position: 65.625% 35.48387%
-}
-
-.emojione-1F402 {
-    background-position: 65.625% 38.70968%
-}
-
-.emojione-1F403 {
-    background-position: 65.625% 41.93548%
-}
-
-.emojione-1F404 {
-    background-position: 65.625% 45.16129%
-}
-
-.emojione-1F405 {
-    background-position: 65.625% 48.3871%
-}
-
-.emojione-1F406 {
-    background-position: 65.625% 51.6129%
-}
-
-.emojione-1F407 {
-    background-position: 65.625% 54.83871%
-}
-
-.emojione-1F408 {
-    background-position: 65.625% 58.06452%
-}
-
-.emojione-1F409 {
-    background-position: 65.625% 61.29032%
-}
-
-.emojione-1F40A {
-    background-position: 65.625% 64.51613%
-}
-
-.emojione-1F40B {
-    background-position: 0% 67.74194%
-}
-
-.emojione-1F40C {
-    background-position: 3.125% 67.74194%
-}
-
-.emojione-1F40D {
-    background-position: 6.25% 67.74194%
-}
-
-.emojione-1F40E {
-    background-position: 9.375% 67.74194%
-}
-
-.emojione-1F40F {
-    background-position: 12.5% 67.74194%
-}
-
-.emojione-1F410 {
-    background-position: 15.625% 67.74194%
-}
-
-.emojione-1F411 {
-    background-position: 18.75% 67.74194%
-}
-
-.emojione-1F412 {
-    background-position: 21.875% 67.74194%
-}
-
-.emojione-1F413 {
-    background-position: 25% 67.74194%
-}
-
-.emojione-1F414 {
-    background-position: 28.125% 67.74194%
-}
-
-.emojione-1F415 {
-    background-position: 31.25% 67.74194%
-}
-
-.emojione-1F416 {
-    background-position: 34.375% 67.74194%
-}
-
-.emojione-1F417 {
-    background-position: 37.5% 67.74194%
-}
-
-.emojione-1F418 {
-    background-position: 40.625% 67.74194%
-}
-
-.emojione-1F419 {
-    background-position: 43.75% 67.74194%
-}
-
-.emojione-1F41A {
-    background-position: 46.875% 67.74194%
-}
-
-.emojione-1F41B {
-    background-position: 50% 67.74194%
-}
-
-.emojione-1F41C {
-    background-position: 53.125% 67.74194%
-}
-
-.emojione-1F41D {
-    background-position: 56.25% 67.74194%
-}
-
-.emojione-1F41E {
-    background-position: 59.375% 67.74194%
-}
-
-.emojione-1F41F {
-    background-position: 62.5% 67.74194%
-}
-
-.emojione-1F420 {
-    background-position: 65.625% 67.74194%
-}
-
-.emojione-1F421 {
-    background-position: 68.75% 0%
-}
-
-.emojione-1F422 {
-    background-position: 68.75% 3.22581%
-}
-
-.emojione-1F423 {
-    background-position: 68.75% 6.45161%
-}
-
-.emojione-1F424 {
-    background-position: 68.75% 9.67742%
-}
-
-.emojione-1F425 {
-    background-position: 68.75% 12.90323%
-}
-
-.emojione-1F426 {
-    background-position: 68.75% 16.12903%
-}
-
-.emojione-1F427 {
-    background-position: 68.75% 19.35484%
-}
-
-.emojione-1F428 {
-    background-position: 68.75% 22.58065%
-}
-
-.emojione-1F429 {
-    background-position: 68.75% 25.80645%
-}
-
-.emojione-1F42A {
-    background-position: 68.75% 29.03226%
-}
-
-.emojione-1F42B {
-    background-position: 68.75% 32.25806%
-}
-
-.emojione-1F42C {
-    background-position: 68.75% 35.48387%
-}
-
-.emojione-1F42D {
-    background-position: 68.75% 38.70968%
-}
-
-.emojione-1F42E {
-    background-position: 68.75% 41.93548%
-}
-
-.emojione-1F42F {
-    background-position: 68.75% 45.16129%
-}
-
-.emojione-1F430 {
-    background-position: 68.75% 48.3871%
-}
-
-.emojione-1F431 {
-    background-position: 68.75% 51.6129%
-}
-
-.emojione-1F432 {
-    background-position: 68.75% 54.83871%
-}
-
-.emojione-1F433 {
-    background-position: 68.75% 58.06452%
-}
-
-.emojione-1F434 {
-    background-position: 68.75% 61.29032%
-}
-
-.emojione-1F435 {
-    background-position: 68.75% 64.51613%
-}
-
-.emojione-1F436 {
-    background-position: 68.75% 67.74194%
-}
-
-.emojione-1F437 {
-    background-position: 0% 70.96774%
-}
-
-.emojione-1F438 {
-    background-position: 3.125% 70.96774%
-}
-
-.emojione-1F439 {
-    background-position: 6.25% 70.96774%
-}
-
-.emojione-1F43A {
-    background-position: 9.375% 70.96774%
-}
-
-.emojione-1F43B {
-    background-position: 12.5% 70.96774%
-}
-
-.emojione-1F43C {
-    background-position: 15.625% 70.96774%
-}
-
-.emojione-1F43D {
-    background-position: 18.75% 70.96774%
-}
-
-.emojione-1F43E {
-    background-position: 21.875% 70.96774%
-}
-
-.emojione-1F440 {
-    background-position: 25% 70.96774%
-}
-
-.emojione-1F442 {
-    background-position: 28.125% 70.96774%
-}
-
-.emojione-1F443 {
-    background-position: 31.25% 70.96774%
-}
-
-.emojione-1F444 {
-    background-position: 34.375% 70.96774%
-}
-
-.emojione-1F445 {
-    background-position: 37.5% 70.96774%
-}
-
-.emojione-1F446 {
-    background-position: 40.625% 70.96774%
-}
-
-.emojione-1F447 {
-    background-position: 43.75% 70.96774%
-}
-
-.emojione-1F448 {
-    background-position: 46.875% 70.96774%
-}
-
-.emojione-1F449 {
-    background-position: 50% 70.96774%
-}
-
-.emojione-1F44A {
-    background-position: 53.125% 70.96774%
-}
-
-.emojione-1F44B {
-    background-position: 56.25% 70.96774%
-}
-
-.emojione-1F44C {
-    background-position: 59.375% 70.96774%
-}
-
-.emojione-1F44D {
-    background-position: 62.5% 70.96774%
-}
-
-.emojione-1F44E {
-    background-position: 65.625% 70.96774%
-}
-
-.emojione-1F44F {
-    background-position: 68.75% 70.96774%
-}
-
-.emojione-1F450 {
-    background-position: 71.875% 0%
-}
-
-.emojione-1F451 {
-    background-position: 71.875% 3.22581%
-}
-
-.emojione-1F452 {
-    background-position: 71.875% 6.45161%
-}
-
-.emojione-1F453 {
-    background-position: 71.875% 9.67742%
-}
-
-.emojione-1F454 {
-    background-position: 71.875% 12.90323%
-}
-
-.emojione-1F455 {
-    background-position: 71.875% 16.12903%
-}
-
-.emojione-1F456 {
-    background-position: 71.875% 19.35484%
-}
-
-.emojione-1F457 {
-    background-position: 71.875% 22.58065%
-}
-
-.emojione-1F458 {
-    background-position: 71.875% 25.80645%
-}
-
-.emojione-1F459 {
-    background-position: 71.875% 29.03226%
-}
-
-.emojione-1F45A {
-    background-position: 71.875% 32.25806%
-}
-
-.emojione-1F45B {
-    background-position: 71.875% 35.48387%
-}
-
-.emojione-1F45C {
-    background-position: 71.875% 38.70968%
-}
-
-.emojione-1F45D {
-    background-position: 71.875% 41.93548%
-}
-
-.emojione-1F45E {
-    background-position: 71.875% 45.16129%
-}
-
-.emojione-1F45F {
-    background-position: 71.875% 48.3871%
-}
-
-.emojione-1F460 {
-    background-position: 71.875% 51.6129%
-}
-
-.emojione-1F461 {
-    background-position: 71.875% 54.83871%
-}
-
-.emojione-1F462 {
-    background-position: 71.875% 58.06452%
-}
-
-.emojione-1F463 {
-    background-position: 71.875% 61.29032%
-}
-
-.emojione-1F464 {
-    background-position: 71.875% 64.51613%
-}
-
-.emojione-1F465 {
-    background-position: 71.875% 67.74194%
-}
-
-.emojione-1F466 {
-    background-position: 71.875% 70.96774%
-}
-
-.emojione-1F467 {
-    background-position: 0% 74.19355%
-}
-
-.emojione-1F468 {
-    background-position: 3.125% 74.19355%
-}
-
-.emojione-1F469 {
-    background-position: 6.25% 74.19355%
-}
-
-.emojione-1F46A {
-    background-position: 9.375% 74.19355%
-}
-
-.emojione-1F46B {
-    background-position: 12.5% 74.19355%
-}
-
-.emojione-1F46C {
-    background-position: 15.625% 74.19355%
-}
-
-.emojione-1F46D {
-    background-position: 18.75% 74.19355%
-}
-
-.emojione-1F46E {
-    background-position: 21.875% 74.19355%
-}
-
-.emojione-1F46F {
-    background-position: 25% 74.19355%
-}
-
-.emojione-1F470 {
-    background-position: 28.125% 74.19355%
-}
-
-.emojione-1F471 {
-    background-position: 31.25% 74.19355%
-}
-
-.emojione-1F472 {
-    background-position: 34.375% 74.19355%
-}
-
-.emojione-1F473 {
-    background-position: 37.5% 74.19355%
-}
-
-.emojione-1F474 {
-    background-position: 40.625% 74.19355%
-}
-
-.emojione-1F475 {
-    background-position: 43.75% 74.19355%
-}
-
-.emojione-1F476 {
-    background-position: 46.875% 74.19355%
-}
-
-.emojione-1F477 {
-    background-position: 50% 74.19355%
-}
-
-.emojione-1F478 {
-    background-position: 53.125% 74.19355%
-}
-
-.emojione-1F479 {
-    background-position: 56.25% 74.19355%
-}
-
-.emojione-1F47A {
-    background-position: 59.375% 74.19355%
-}
-
-.emojione-1F47B {
-    background-position: 62.5% 74.19355%
-}
-
-.emojione-1F47C {
-    background-position: 65.625% 74.19355%
-}
-
-.emojione-1F47D {
-    background-position: 68.75% 74.19355%
-}
-
-.emojione-1F47E {
-    background-position: 71.875% 74.19355%
-}
-
-.emojione-1F47F {
-    background-position: 75% 0%
-}
-
-.emojione-1F480 {
-    background-position: 75% 3.22581%
-}
-
-.emojione-1F481 {
-    background-position: 75% 6.45161%
-}
-
-.emojione-1F482 {
-    background-position: 75% 9.67742%
-}
-
-.emojione-1F483 {
-    background-position: 75% 12.90323%
-}
-
-.emojione-1F484 {
-    background-position: 75% 16.12903%
-}
-
-.emojione-1F485 {
-    background-position: 75% 19.35484%
-}
-
-.emojione-1F486 {
-    background-position: 75% 22.58065%
-}
-
-.emojione-1F487 {
-    background-position: 75% 25.80645%
-}
-
-.emojione-1F488 {
-    background-position: 75% 29.03226%
-}
-
-.emojione-1F489 {
-    background-position: 75% 32.25806%
-}
-
-.emojione-1F48A {
-    background-position: 75% 35.48387%
-}
-
-.emojione-1F48B {
-    background-position: 75% 38.70968%
-}
-
-.emojione-1F48C {
-    background-position: 75% 41.93548%
-}
-
-.emojione-1F48D {
-    background-position: 75% 45.16129%
-}
-
-.emojione-1F48E {
-    background-position: 75% 48.3871%
-}
-
-.emojione-1F48F {
-    background-position: 75% 51.6129%
-}
-
-.emojione-1F490 {
-    background-position: 75% 54.83871%
-}
-
-.emojione-1F491 {
-    background-position: 75% 58.06452%
-}
-
-.emojione-1F492 {
-    background-position: 75% 61.29032%
-}
-
-.emojione-1F493 {
-    background-position: 75% 64.51613%
-}
-
-.emojione-1F494 {
-    background-position: 75% 67.74194%
-}
-
-.emojione-1F495 {
-    background-position: 75% 70.96774%
-}
-
-.emojione-1F496 {
-    background-position: 75% 74.19355%
-}
-
-.emojione-1F497 {
-    background-position: 0% 77.41935%
-}
-
-.emojione-1F498 {
-    background-position: 3.125% 77.41935%
-}
-
-.emojione-1F499 {
-    background-position: 6.25% 77.41935%
-}
-
-.emojione-1F49A {
-    background-position: 9.375% 77.41935%
-}
-
-.emojione-1F49B {
-    background-position: 12.5% 77.41935%
-}
-
-.emojione-1F49C {
-    background-position: 15.625% 77.41935%
-}
-
-.emojione-1F49D {
-    background-position: 18.75% 77.41935%
-}
-
-.emojione-1F49E {
-    background-position: 21.875% 77.41935%
-}
-
-.emojione-1F49F {
-    background-position: 25% 77.41935%
-}
-
-.emojione-1F4A0 {
-    background-position: 28.125% 77.41935%
-}
-
-.emojione-1F4A1 {
-    background-position: 31.25% 77.41935%
-}
-
-.emojione-1F4A2 {
-    background-position: 34.375% 77.41935%
-}
-
-.emojione-1F4A3 {
-    background-position: 37.5% 77.41935%
-}
-
-.emojione-1F4A4 {
-    background-position: 40.625% 77.41935%
-}
-
-.emojione-1F4A5 {
-    background-position: 43.75% 77.41935%
-}
-
-.emojione-1F4A6 {
-    background-position: 46.875% 77.41935%
-}
-
-.emojione-1F4A7 {
-    background-position: 50% 77.41935%
-}
-
-.emojione-1F4A8 {
-    background-position: 53.125% 77.41935%
-}
-
-.emojione-1F4A9 {
-    background-position: 56.25% 77.41935%
-}
-
-.emojione-1F4AA {
-    background-position: 59.375% 77.41935%
-}
-
-.emojione-1F4AB {
-    background-position: 62.5% 77.41935%
-}
-
-.emojione-1F4AC {
-    background-position: 65.625% 77.41935%
-}
-
-.emojione-1F4AD {
-    background-position: 68.75% 77.41935%
-}
-
-.emojione-1F4AE {
-    background-position: 71.875% 77.41935%
-}
-
-.emojione-1F4AF {
-    background-position: 75% 77.41935%
-}
-
-.emojione-1F4B0 {
-    background-position: 78.125% 0%
-}
-
-.emojione-1F4B1 {
-    background-position: 78.125% 3.22581%
-}
-
-.emojione-1F4B2 {
-    background-position: 78.125% 6.45161%
-}
-
-.emojione-1F4B3 {
-    background-position: 78.125% 9.67742%
-}
-
-.emojione-1F4B4 {
-    background-position: 78.125% 12.90323%
-}
-
-.emojione-1F4B5 {
-    background-position: 78.125% 16.12903%
-}
-
-.emojione-1F4B6 {
-    background-position: 78.125% 19.35484%
-}
-
-.emojione-1F4B7 {
-    background-position: 78.125% 22.58065%
-}
-
-.emojione-1F4B8 {
-    background-position: 78.125% 25.80645%
-}
-
-.emojione-1F4B9 {
-    background-position: 78.125% 29.03226%
-}
-
-.emojione-1F4BA {
-    background-position: 78.125% 32.25806%
-}
-
-.emojione-1F4BB {
-    background-position: 78.125% 35.48387%
-}
-
-.emojione-1F4BC {
-    background-position: 78.125% 38.70968%
-}
-
-.emojione-1F4BD {
-    background-position: 78.125% 41.93548%
-}
-
-.emojione-1F4BE {
-    background-position: 78.125% 45.16129%
-}
-
-.emojione-1F4BF {
-    background-position: 78.125% 48.3871%
-}
-
-.emojione-1F4C0 {
-    background-position: 78.125% 51.6129%
-}
-
-.emojione-1F4C1 {
-    background-position: 78.125% 54.83871%
-}
-
-.emojione-1F4C2 {
-    background-position: 78.125% 58.06452%
-}
-
-.emojione-1F4C3 {
-    background-position: 78.125% 61.29032%
-}
-
-.emojione-1F4C4 {
-    background-position: 78.125% 64.51613%
-}
-
-.emojione-1F4C5 {
-    background-position: 78.125% 67.74194%
-}
-
-.emojione-1F4C6 {
-    background-position: 78.125% 70.96774%
-}
-
-.emojione-1F4C7 {
-    background-position: 78.125% 74.19355%
-}
-
-.emojione-1F4C8 {
-    background-position: 78.125% 77.41935%
-}
-
-.emojione-1F4C9 {
-    background-position: 0% 80.64516%
-}
-
-.emojione-1F4CA {
-    background-position: 3.125% 80.64516%
-}
-
-.emojione-1F4CB {
-    background-position: 6.25% 80.64516%
-}
-
-.emojione-1F4CC {
-    background-position: 9.375% 80.64516%
-}
-
-.emojione-1F4CD {
-    background-position: 12.5% 80.64516%
-}
-
-.emojione-1F4CE {
-    background-position: 15.625% 80.64516%
-}
-
-.emojione-1F4CF {
-    background-position: 18.75% 80.64516%
-}
-
-.emojione-1F4D0 {
-    background-position: 21.875% 80.64516%
-}
-
-.emojione-1F4D1 {
-    background-position: 25% 80.64516%
-}
-
-.emojione-1F4D2 {
-    background-position: 28.125% 80.64516%
-}
-
-.emojione-1F4D3 {
-    background-position: 31.25% 80.64516%
-}
-
-.emojione-1F4D4 {
-    background-position: 34.375% 80.64516%
-}
-
-.emojione-1F4D5 {
-    background-position: 37.5% 80.64516%
-}
-
-.emojione-1F4D6 {
-    background-position: 40.625% 80.64516%
-}
-
-.emojione-1F4D7 {
-    background-position: 43.75% 80.64516%
-}
-
-.emojione-1F4D8 {
-    background-position: 46.875% 80.64516%
-}
-
-.emojione-1F4D9 {
-    background-position: 50% 80.64516%
-}
-
-.emojione-1F4DA {
-    background-position: 53.125% 80.64516%
-}
-
-.emojione-1F4DB {
-    background-position: 56.25% 80.64516%
-}
-
-.emojione-1F4DC {
-    background-position: 59.375% 80.64516%
-}
-
-.emojione-1F4DD {
-    background-position: 62.5% 80.64516%
-}
-
-.emojione-1F4DE {
-    background-position: 65.625% 80.64516%
-}
-
-.emojione-1F4DF {
-    background-position: 68.75% 80.64516%
-}
-
-.emojione-1F4E0 {
-    background-position: 71.875% 80.64516%
-}
-
-.emojione-1F4E1 {
-    background-position: 75% 80.64516%
-}
-
-.emojione-1F4E2 {
-    background-position: 78.125% 80.64516%
-}
-
-.emojione-1F4E3 {
-    background-position: 81.25% 0%
-}
-
-.emojione-1F4E4 {
-    background-position: 81.25% 3.22581%
-}
-
-.emojione-1F4E5 {
-    background-position: 81.25% 6.45161%
-}
-
-.emojione-1F4E6 {
-    background-position: 81.25% 9.67742%
-}
-
-.emojione-1F4E7 {
-    background-position: 81.25% 12.90323%
-}
-
-.emojione-1F4E8 {
-    background-position: 81.25% 16.12903%
-}
-
-.emojione-1F4E9 {
-    background-position: 81.25% 19.35484%
-}
-
-.emojione-1F4EA {
-    background-position: 81.25% 22.58065%
-}
-
-.emojione-1F4EB {
-    background-position: 81.25% 25.80645%
-}
-
-.emojione-1F4EC {
-    background-position: 81.25% 29.03226%
-}
-
-.emojione-1F4ED {
-    background-position: 81.25% 32.25806%
-}
-
-.emojione-1F4EE {
-    background-position: 81.25% 35.48387%
-}
-
-.emojione-1F4EF {
-    background-position: 81.25% 38.70968%
-}
-
-.emojione-1F4F0 {
-    background-position: 81.25% 41.93548%
-}
-
-.emojione-1F4F1 {
-    background-position: 81.25% 45.16129%
-}
-
-.emojione-1F4F2 {
-    background-position: 81.25% 48.3871%
-}
-
-.emojione-1F4F3 {
-    background-position: 81.25% 51.6129%
-}
-
-.emojione-1F4F4 {
-    background-position: 81.25% 54.83871%
-}
-
-.emojione-1F4F5 {
-    background-position: 81.25% 58.06452%
-}
-
-.emojione-1F4F6 {
-    background-position: 81.25% 61.29032%
-}
-
-.emojione-1F4F7 {
-    background-position: 81.25% 64.51613%
-}
-
-.emojione-1F4F9 {
-    background-position: 81.25% 67.74194%
-}
-
-.emojione-1F4FA {
-    background-position: 81.25% 70.96774%
-}
-
-.emojione-1F4FB {
-    background-position: 81.25% 74.19355%
-}
-
-.emojione-1F4FC {
-    background-position: 81.25% 77.41935%
-}
-
-.emojione-1F500 {
-    background-position: 81.25% 80.64516%
-}
-
-.emojione-1F501 {
-    background-position: 0% 83.87097%
-}
-
-.emojione-1F502 {
-    background-position: 3.125% 83.87097%
-}
-
-.emojione-1F503 {
-    background-position: 6.25% 83.87097%
-}
-
-.emojione-1F504 {
-    background-position: 9.375% 83.87097%
-}
-
-.emojione-1F505 {
-    background-position: 12.5% 83.87097%
-}
-
-.emojione-1F506 {
-    background-position: 15.625% 83.87097%
-}
-
-.emojione-1F507 {
-    background-position: 18.75% 83.87097%
-}
-
-.emojione-1F508 {
-    background-position: 21.875% 83.87097%
-}
-
-.emojione-1F509 {
-    background-position: 25% 83.87097%
-}
-
-.emojione-1F50A {
-    background-position: 28.125% 83.87097%
-}
-
-.emojione-1F50B {
-    background-position: 31.25% 83.87097%
-}
-
-.emojione-1F50C {
-    background-position: 34.375% 83.87097%
-}
-
-.emojione-1F50D {
-    background-position: 37.5% 83.87097%
-}
-
-.emojione-1F50E {
-    background-position: 40.625% 83.87097%
-}
-
-.emojione-1F50F {
-    background-position: 43.75% 83.87097%
-}
-
-.emojione-1F510 {
-    background-position: 46.875% 83.87097%
-}
-
-.emojione-1F511 {
-    background-position: 50% 83.87097%
-}
-
-.emojione-1F512 {
-    background-position: 53.125% 83.87097%
-}
-
-.emojione-1F513 {
-    background-position: 56.25% 83.87097%
-}
-
-.emojione-1F514 {
-    background-position: 59.375% 83.87097%
-}
-
-.emojione-1F515 {
-    background-position: 62.5% 83.87097%
-}
-
-.emojione-1F516 {
-    background-position: 65.625% 83.87097%
-}
-
-.emojione-1F517 {
-    background-position: 68.75% 83.87097%
-}
-
-.emojione-1F518 {
-    background-position: 71.875% 83.87097%
-}
-
-.emojione-1F519 {
-    background-position: 75% 83.87097%
-}
-
-.emojione-1F51A {
-    background-position: 78.125% 83.87097%
-}
-
-.emojione-1F51B {
-    background-position: 81.25% 83.87097%
-}
-
-.emojione-1F51C {
-    background-position: 84.375% 0%
-}
-
-.emojione-1F51D {
-    background-position: 84.375% 3.22581%
-}
-
-.emojione-1F51E {
-    background-position: 84.375% 6.45161%
-}
-
-.emojione-1F51F {
-    background-position: 84.375% 9.67742%
-}
-
-.emojione-1F520 {
-    background-position: 84.375% 12.90323%
-}
-
-.emojione-1F521 {
-    background-position: 84.375% 16.12903%
-}
-
-.emojione-1F522 {
-    background-position: 84.375% 19.35484%
-}
-
-.emojione-1F523 {
-    background-position: 84.375% 22.58065%
-}
-
-.emojione-1F524 {
-    background-position: 84.375% 25.80645%
-}
-
-.emojione-1F525 {
-    background-position: 84.375% 29.03226%
-}
-
-.emojione-1F526 {
-    background-position: 84.375% 32.25806%
-}
-
-.emojione-1F527 {
-    background-position: 84.375% 35.48387%
-}
-
-.emojione-1F528 {
-    background-position: 84.375% 38.70968%
-}
-
-.emojione-1F529 {
-    background-position: 84.375% 41.93548%
-}
-
-.emojione-1F52A {
-    background-position: 84.375% 45.16129%
-}
-
-.emojione-1F52B {
-    background-position: 84.375% 48.3871%
-}
-
-.emojione-1F52C {
-    background-position: 84.375% 51.6129%
-}
-
-.emojione-1F52D {
-    background-position: 84.375% 54.83871%
-}
-
-.emojione-1F52E {
-    background-position: 84.375% 58.06452%
-}
-
-.emojione-1F52F {
-    background-position: 84.375% 61.29032%
-}
-
-.emojione-1F530 {
-    background-position: 84.375% 64.51613%
-}
-
-.emojione-1F531 {
-    background-position: 84.375% 67.74194%
-}
-
-.emojione-1F532 {
-    background-position: 84.375% 70.96774%
-}
-
-.emojione-1F533 {
-    background-position: 84.375% 74.19355%
-}
-
-.emojione-1F534 {
-    background-position: 84.375% 77.41935%
-}
-
-.emojione-1F535 {
-    background-position: 84.375% 80.64516%
-}
-
-.emojione-1F536 {
-    background-position: 84.375% 83.87097%
-}
-
-.emojione-1F537 {
-    background-position: 0% 87.09677%
-}
-
-.emojione-1F538 {
-    background-position: 3.125% 87.09677%
-}
-
-.emojione-1F539 {
-    background-position: 6.25% 87.09677%
-}
-
-.emojione-1F53A {
-    background-position: 9.375% 87.09677%
-}
-
-.emojione-1F53B {
-    background-position: 12.5% 87.09677%
-}
-
-.emojione-1F53C {
-    background-position: 15.625% 87.09677%
-}
-
-.emojione-1F53D {
-    background-position: 18.75% 87.09677%
-}
-
-.emojione-1F550 {
-    background-position: 21.875% 87.09677%
-}
-
-.emojione-1F551 {
-    background-position: 25% 87.09677%
-}
-
-.emojione-1F552 {
-    background-position: 28.125% 87.09677%
-}
-
-.emojione-1F553 {
-    background-position: 31.25% 87.09677%
-}
-
-.emojione-1F554 {
-    background-position: 34.375% 87.09677%
-}
-
-.emojione-1F555 {
-    background-position: 37.5% 87.09677%
-}
-
-.emojione-1F556 {
-    background-position: 40.625% 87.09677%
-}
-
-.emojione-1F557 {
-    background-position: 43.75% 87.09677%
-}
-
-.emojione-1F558 {
-    background-position: 46.875% 87.09677%
-}
-
-.emojione-1F559 {
-    background-position: 50% 87.09677%
-}
-
-.emojione-1F55A {
-    background-position: 53.125% 87.09677%
-}
-
-.emojione-1F55B {
-    background-position: 56.25% 87.09677%
-}
-
-.emojione-1F55C {
-    background-position: 59.375% 87.09677%
-}
-
-.emojione-1F55D {
-    background-position: 62.5% 87.09677%
-}
-
-.emojione-1F55E {
-    background-position: 65.625% 87.09677%
-}
-
-.emojione-1F55F {
-    background-position: 68.75% 87.09677%
-}
-
-.emojione-1F560 {
-    background-position: 71.875% 87.09677%
-}
-
-.emojione-1F561 {
-    background-position: 75% 87.09677%
-}
-
-.emojione-1F562 {
-    background-position: 78.125% 87.09677%
-}
-
-.emojione-1F563 {
-    background-position: 81.25% 87.09677%
-}
-
-.emojione-1F564 {
-    background-position: 84.375% 87.09677%
-}
-
-.emojione-1F565 {
-    background-position: 87.5% 0%
-}
-
-.emojione-1F566 {
-    background-position: 87.5% 3.22581%
-}
-
-.emojione-1F567 {
-    background-position: 87.5% 6.45161%
-}
-
-.emojione-1F5FB {
-    background-position: 87.5% 9.67742%
-}
-
-.emojione-1F5FC {
-    background-position: 87.5% 12.90323%
-}
-
-.emojione-1F5FD {
-    background-position: 87.5% 16.12903%
-}
-
-.emojione-1F5FE {
-    background-position: 87.5% 19.35484%
-}
-
-.emojione-1F5FF {
-    background-position: 87.5% 22.58065%
-}
-
-.emojione-1F600 {
-    background-position: 87.5% 25.80645%
-}
-
-.emojione-1F601 {
-    background-position: 87.5% 29.03226%
-}
-
-.emojione-1F602 {
-    background-position: 87.5% 32.25806%
-}
-
-.emojione-1F603 {
-    background-position: 87.5% 35.48387%
-}
-
-.emojione-1F604 {
-    background-position: 87.5% 38.70968%
-}
-
-.emojione-1F605 {
-    background-position: 87.5% 41.93548%
-}
-
-.emojione-1F606 {
-    background-position: 87.5% 45.16129%
-}
-
-.emojione-1F607 {
-    background-position: 87.5% 48.3871%
-}
-
-.emojione-1F608 {
-    background-position: 87.5% 51.6129%
-}
-
-.emojione-1F609 {
-    background-position: 87.5% 54.83871%
-}
-
-.emojione-1F60A {
-    background-position: 87.5% 58.06452%
-}
-
-.emojione-1F60B {
-    background-position: 87.5% 61.29032%
-}
-
-.emojione-1F60C {
-    background-position: 87.5% 64.51613%
-}
-
-.emojione-1F60D {
-    background-position: 87.5% 67.74194%
-}
-
-.emojione-1F60E {
-    background-position: 87.5% 70.96774%
-}
-
-.emojione-1F60F {
-    background-position: 87.5% 74.19355%
-}
-
-.emojione-1F610 {
-    background-position: 87.5% 77.41935%
-}
-
-.emojione-1F611 {
-    background-position: 87.5% 80.64516%
-}
-
-.emojione-1F612 {
-    background-position: 87.5% 83.87097%
-}
-
-.emojione-1F613 {
-    background-position: 87.5% 87.09677%
-}
-
-.emojione-1F614 {
-    background-position: 0% 90.32258%
-}
-
-.emojione-1F615 {
-    background-position: 3.125% 90.32258%
-}
-
-.emojione-1F616 {
-    background-position: 6.25% 90.32258%
-}
-
-.emojione-1F617 {
-    background-position: 9.375% 90.32258%
-}
-
-.emojione-1F618 {
-    background-position: 12.5% 90.32258%
-}
-
-.emojione-1F619 {
-    background-position: 15.625% 90.32258%
-}
-
-.emojione-1F61A {
-    background-position: 18.75% 90.32258%
-}
-
-.emojione-1F61B {
-    background-position: 21.875% 90.32258%
-}
-
-.emojione-1F61C {
-    background-position: 25% 90.32258%
-}
-
-.emojione-1F61D {
-    background-position: 28.125% 90.32258%
-}
-
-.emojione-1F61E {
-    background-position: 31.25% 90.32258%
-}
-
-.emojione-1F61F {
-    background-position: 34.375% 90.32258%
-}
-
-.emojione-1F620 {
-    background-position: 37.5% 90.32258%
-}
-
-.emojione-1F621 {
-    background-position: 40.625% 90.32258%
-}
-
-.emojione-1F622 {
-    background-position: 43.75% 90.32258%
-}
-
-.emojione-1F623 {
-    background-position: 46.875% 90.32258%
-}
-
-.emojione-1F624 {
-    background-position: 50% 90.32258%
-}
-
-.emojione-1F625 {
-    background-position: 53.125% 90.32258%
-}
-
-.emojione-1F626 {
-    background-position: 56.25% 90.32258%
-}
-
-.emojione-1F627 {
-    background-position: 59.375% 90.32258%
-}
-
-.emojione-1F628 {
-    background-position: 62.5% 90.32258%
-}
-
-.emojione-1F629 {
-    background-position: 65.625% 90.32258%
-}
-
-.emojione-1F62A {
-    background-position: 68.75% 90.32258%
-}
-
-.emojione-1F62B {
-    background-position: 71.875% 90.32258%
-}
-
-.emojione-1F62C {
-    background-position: 75% 90.32258%
-}
-
-.emojione-1F62D {
-    background-position: 78.125% 90.32258%
-}
-
-.emojione-1F62E {
-    background-position: 81.25% 90.32258%
-}
-
-.emojione-1F62F {
-    background-position: 84.375% 90.32258%
-}
-
-.emojione-1F630 {
-    background-position: 87.5% 90.32258%
-}
-
-.emojione-1F631 {
-    background-position: 90.625% 0%
-}
-
-.emojione-1F632 {
-    background-position: 90.625% 3.22581%
-}
-
-.emojione-1F633 {
-    background-position: 90.625% 6.45161%
-}
-
-.emojione-1F634 {
-    background-position: 90.625% 9.67742%
-}
-
-.emojione-1F635 {
-    background-position: 90.625% 12.90323%
-}
-
-.emojione-1F636 {
-    background-position: 90.625% 16.12903%
-}
-
-.emojione-1F637 {
-    background-position: 90.625% 19.35484%
-}
-
-.emojione-1F638 {
-    background-position: 90.625% 22.58065%
-}
-
-.emojione-1F639 {
-    background-position: 90.625% 25.80645%
-}
-
-.emojione-1F63A {
-    background-position: 90.625% 29.03226%
-}
-
-.emojione-1F63B {
-    background-position: 90.625% 32.25806%
-}
-
-.emojione-1F63C {
-    background-position: 90.625% 35.48387%
-}
-
-.emojione-1F63D {
-    background-position: 90.625% 38.70968%
-}
-
-.emojione-1F63E {
-    background-position: 90.625% 41.93548%
-}
-
-.emojione-1F63F {
-    background-position: 90.625% 45.16129%
-}
-
-.emojione-1F640 {
-    background-position: 90.625% 48.3871%
-}
-
-.emojione-1F645 {
-    background-position: 90.625% 51.6129%
-}
-
-.emojione-1F646 {
-    background-position: 90.625% 54.83871%
-}
-
-.emojione-1F647 {
-    background-position: 90.625% 58.06452%
-}
-
-.emojione-1F648 {
-    background-position: 90.625% 61.29032%
-}
-
-.emojione-1F649 {
-    background-position: 90.625% 64.51613%
-}
-
-.emojione-1F64A {
-    background-position: 90.625% 67.74194%
-}
-
-.emojione-1F64B {
-    background-position: 90.625% 70.96774%
-}
-
-.emojione-1F64C {
-    background-position: 90.625% 74.19355%
-}
-
-.emojione-1F64D {
-    background-position: 90.625% 77.41935%
-}
-
-.emojione-1F64E {
-    background-position: 90.625% 80.64516%
-}
-
-.emojione-1F64F {
-    background-position: 90.625% 83.87097%
-}
-
-.emojione-1F680 {
-    background-position: 90.625% 87.09677%
-}
-
-.emojione-1F681 {
-    background-position: 90.625% 90.32258%
-}
-
-.emojione-1F682 {
-    background-position: 0% 93.54839%
-}
-
-.emojione-1F683 {
-    background-position: 3.125% 93.54839%
-}
-
-.emojione-1F684 {
-    background-position: 6.25% 93.54839%
-}
-
-.emojione-1F685 {
-    background-position: 9.375% 93.54839%
-}
-
-.emojione-1F686 {
-    background-position: 12.5% 93.54839%
-}
-
-.emojione-1F687 {
-    background-position: 15.625% 93.54839%
-}
-
-.emojione-1F688 {
-    background-position: 18.75% 93.54839%
-}
-
-.emojione-1F689 {
-    background-position: 21.875% 93.54839%
-}
-
-.emojione-1F68A {
-    background-position: 25% 93.54839%
-}
-
-.emojione-1F68B {
-    background-position: 28.125% 93.54839%
-}
-
-.emojione-1F68C {
-    background-position: 31.25% 93.54839%
-}
-
-.emojione-1F68D {
-    background-position: 34.375% 93.54839%
-}
-
-.emojione-1F68E {
-    background-position: 37.5% 93.54839%
-}
-
-.emojione-1F68F {
-    background-position: 40.625% 93.54839%
-}
-
-.emojione-1F690 {
-    background-position: 43.75% 93.54839%
-}
-
-.emojione-1F691 {
-    background-position: 46.875% 93.54839%
-}
-
-.emojione-1F692 {
-    background-position: 50% 93.54839%
-}
-
-.emojione-1F693 {
-    background-position: 53.125% 93.54839%
-}
-
-.emojione-1F694 {
-    background-position: 56.25% 93.54839%
-}
-
-.emojione-1F695 {
-    background-position: 59.375% 93.54839%
-}
-
-.emojione-1F696 {
-    background-position: 62.5% 93.54839%
-}
-
-.emojione-1F697 {
-    background-position: 65.625% 93.54839%
-}
-
-.emojione-1F698 {
-    background-position: 68.75% 93.54839%
-}
-
-.emojione-1F699 {
-    background-position: 71.875% 93.54839%
-}
-
-.emojione-1F69A {
-    background-position: 75% 93.54839%
-}
-
-.emojione-1F69B {
-    background-position: 78.125% 93.54839%
-}
-
-.emojione-1F69C {
-    background-position: 81.25% 93.54839%
-}
-
-.emojione-1F69D {
-    background-position: 84.375% 93.54839%
-}
-
-.emojione-1F69E {
-    background-position: 87.5% 93.54839%
-}
-
-.emojione-1F69F {
-    background-position: 90.625% 93.54839%
-}
-
-.emojione-1F6A0 {
-    background-position: 93.75% 0%
-}
-
-.emojione-1F6A1 {
-    background-position: 93.75% 3.22581%
-}
-
-.emojione-1F6A2 {
-    background-position: 93.75% 6.45161%
-}
-
-.emojione-1F6A3 {
-    background-position: 93.75% 9.67742%
-}
-
-.emojione-1F6A4 {
-    background-position: 93.75% 12.90323%
-}
-
-.emojione-1F6A5 {
-    background-position: 93.75% 16.12903%
-}
-
-.emojione-1F6A6 {
-    background-position: 93.75% 19.35484%
-}
-
-.emojione-1F6A7 {
-    background-position: 93.75% 22.58065%
-}
-
-.emojione-1F6A8 {
-    background-position: 93.75% 25.80645%
-}
-
-.emojione-1F6A9 {
-    background-position: 93.75% 29.03226%
-}
-
-.emojione-1F6AA {
-    background-position: 93.75% 32.25806%
-}
-
-.emojione-1F6AB {
-    background-position: 93.75% 35.48387%
-}
-
-.emojione-1F6AC {
-    background-position: 93.75% 38.70968%
-}
-
-.emojione-1F6AD {
-    background-position: 93.75% 41.93548%
-}
-
-.emojione-1F6AE {
-    background-position: 93.75% 45.16129%
-}
-
-.emojione-1F6AF {
-    background-position: 93.75% 48.3871%
-}
-
-.emojione-1F6B0 {
-    background-position: 93.75% 51.6129%
-}
-
-.emojione-1F6B1 {
-    background-position: 93.75% 54.83871%
-}
-
-.emojione-1F6B2 {
-    background-position: 93.75% 58.06452%
-}
-
-.emojione-1F6B3 {
-    background-position: 93.75% 61.29032%
-}
-
-.emojione-1F6B4 {
-    background-position: 93.75% 64.51613%
-}
-
-.emojione-1F6B5 {
-    background-position: 93.75% 67.74194%
-}
-
-.emojione-1F6B6 {
-    background-position: 93.75% 70.96774%
-}
-
-.emojione-1F6B7 {
-    background-position: 93.75% 74.19355%
-}
-
-.emojione-1F6B8 {
-    background-position: 93.75% 77.41935%
-}
-
-.emojione-1F6B9 {
-    background-position: 93.75% 80.64516%
-}
-
-.emojione-1F6BA {
-    background-position: 93.75% 83.87097%
-}
-
-.emojione-1F6BB {
-    background-position: 93.75% 87.09677%
-}
-
-.emojione-1F6BC {
-    background-position: 93.75% 90.32258%
-}
-
-.emojione-1F6BD {
-    background-position: 93.75% 93.54839%
-}
-
-.emojione-1F6BE {
-    background-position: 0% 96.77419%
-}
-
-.emojione-1F6BF {
-    background-position: 3.125% 96.77419%
-}
-
-.emojione-1F6C0 {
-    background-position: 6.25% 96.77419%
-}
-
-.emojione-1F6C1 {
-    background-position: 9.375% 96.77419%
-}
-
-.emojione-1F6C2 {
-    background-position: 12.5% 96.77419%
-}
-
-.emojione-1F6C3 {
-    background-position: 15.625% 96.77419%
-}
-
-.emojione-1F6C4 {
-    background-position: 18.75% 96.77419%
-}
-
-.emojione-1F6C5 {
-    background-position: 21.875% 96.77419%
-}
-
-.emojione-203C {
-    background-position: 25% 96.77419%
-}
-
-.emojione-2049 {
-    background-position: 28.125% 96.77419%
-}
-
-.emojione-2122 {
-    background-position: 31.25% 96.77419%
-}
-
-.emojione-2139 {
-    background-position: 34.375% 96.77419%
-}
-
-.emojione-2194 {
-    background-position: 37.5% 96.77419%
-}
-
-.emojione-2195 {
-    background-position: 40.625% 96.77419%
-}
-
-.emojione-2196 {
-    background-position: 43.75% 96.77419%
-}
-
-.emojione-2197 {
-    background-position: 46.875% 96.77419%
-}
-
-.emojione-2198 {
-    background-position: 50% 96.77419%
-}
-
-.emojione-2199 {
-    background-position: 53.125% 96.77419%
-}
-
-.emojione-21A9 {
-    background-position: 56.25% 96.77419%
-}
-
-.emojione-21AA {
-    background-position: 59.375% 96.77419%
-}
-
-.emojione-231A {
-    background-position: 62.5% 96.77419%
-}
-
-.emojione-231B {
-    background-position: 65.625% 96.77419%
-}
-
-.emojione-23E9 {
-    background-position: 68.75% 96.77419%
-}
-
-.emojione-23EA {
-    background-position: 71.875% 96.77419%
-}
-
-.emojione-23EB {
-    background-position: 75% 96.77419%
-}
-
-.emojione-23EC {
-    background-position: 78.125% 96.77419%
-}
-
-.emojione-23F0 {
-    background-position: 81.25% 96.77419%
-}
-
-.emojione-23F3 {
-    background-position: 84.375% 96.77419%
-}
-
-.emojione-24C2 {
-    background-position: 87.5% 96.77419%
-}
-
-.emojione-25AA {
-    background-position: 90.625% 96.77419%
-}
-
-.emojione-25AB {
-    background-position: 93.75% 96.77419%
-}
-
-.emojione-25B6 {
-    background-position: 96.875% 0%
-}
-
-.emojione-25C0 {
-    background-position: 96.875% 3.22581%
-}
-
-.emojione-25FB {
-    background-position: 96.875% 6.45161%
-}
-
-.emojione-25FC {
-    background-position: 96.875% 9.67742%
-}
-
-.emojione-25FD {
-    background-position: 96.875% 12.90323%
-}
-
-.emojione-25FE {
-    background-position: 96.875% 16.12903%
-}
-
-.emojione-2600 {
-    background-position: 96.875% 19.35484%
-}
-
-.emojione-2601 {
-    background-position: 96.875% 22.58065%
-}
-
-.emojione-260E {
-    background-position: 96.875% 25.80645%
-}
-
-.emojione-2611 {
-    background-position: 96.875% 29.03226%
-}
-
-.emojione-2614 {
-    background-position: 96.875% 32.25806%
-}
-
-.emojione-2615 {
-    background-position: 96.875% 35.48387%
-}
-
-.emojione-261D {
-    background-position: 96.875% 38.70968%
-}
-
-.emojione-263A {
-    background-position: 96.875% 41.93548%
-}
-
-.emojione-2648 {
-    background-position: 96.875% 45.16129%
-}
-
-.emojione-2649 {
-    background-position: 96.875% 48.3871%
-}
-
-.emojione-264A {
-    background-position: 96.875% 51.6129%
-}
-
-.emojione-264B {
-    background-position: 96.875% 54.83871%
-}
-
-.emojione-264C {
-    background-position: 96.875% 58.06452%
-}
-
-.emojione-264D {
-    background-position: 96.875% 61.29032%
-}
-
-.emojione-264E {
-    background-position: 96.875% 64.51613%
-}
-
-.emojione-264F {
-    background-position: 96.875% 67.74194%
-}
-
-.emojione-2650 {
-    background-position: 96.875% 70.96774%
-}
-
-.emojione-2651 {
-    background-position: 96.875% 74.19355%
-}
-
-.emojione-2652 {
-    background-position: 96.875% 77.41935%
-}
-
-.emojione-2653 {
-    background-position: 96.875% 80.64516%
-}
-
-.emojione-2660 {
-    background-position: 96.875% 83.87097%
-}
-
-.emojione-2663 {
-    background-position: 96.875% 87.09677%
-}
-
-.emojione-2665 {
-    background-position: 96.875% 90.32258%
-}
-
-.emojione-2666 {
-    background-position: 96.875% 93.54839%
-}
-
-.emojione-2668 {
-    background-position: 96.875% 96.77419%
-}
-
-.emojione-267B {
-    background-position: 0% 100%
-}
-
-.emojione-267F {
-    background-position: 3.125% 100%
-}
-
-.emojione-2693 {
-    background-position: 6.25% 100%
-}
-
-.emojione-26A0 {
-    background-position: 9.375% 100%
-}
-
-.emojione-26A1 {
-    background-position: 12.5% 100%
-}
-
-.emojione-26AA {
-    background-position: 15.625% 100%
-}
-
-.emojione-26AB {
-    background-position: 18.75% 100%
-}
-
-.emojione-26BD {
-    background-position: 21.875% 100%
-}
-
-.emojione-26BE {
-    background-position: 25% 100%
-}
-
-.emojione-26C4 {
-    background-position: 28.125% 100%
-}
-
-.emojione-26C5 {
-    background-position: 31.25% 100%
-}
-
-.emojione-26CE {
-    background-position: 34.375% 100%
-}
-
-.emojione-26D4 {
-    background-position: 37.5% 100%
-}
-
-.emojione-26EA {
-    background-position: 40.625% 100%
-}
-
-.emojione-26F2 {
-    background-position: 43.75% 100%
-}
-
-.emojione-26F3 {
-    background-position: 46.875% 100%
-}
-
-.emojione-26F5 {
-    background-position: 50% 100%
-}
-
-.emojione-26FA {
-    background-position: 53.125% 100%
-}
-
-.emojione-26FD {
-    background-position: 56.25% 100%
-}
-
-.emojione-2702 {
-    background-position: 59.375% 100%
-}
-
-.emojione-2705 {
-    background-position: 62.5% 100%
-}
-
-.emojione-2708 {
-    background-position: 65.625% 100%
-}
-
-.emojione-2709 {
-    background-position: 68.75% 100%
-}
-
-.emojione-270A {
-    background-position: 71.875% 100%
-}
-
-.emojione-270B {
-    background-position: 75% 100%
-}
-
-.emojione-270C {
-    background-position: 78.125% 100%
-}
-
-.emojione-270F {
-    background-position: 81.25% 100%
-}
-
-.emojione-2712 {
-    background-position: 84.375% 100%
-}
-
-.emojione-2714 {
-    background-position: 87.5% 100%
-}
-
-.emojione-2716 {
-    background-position: 90.625% 100%
-}
-
-.emojione-2728 {
-    background-position: 93.75% 100%
-}
-
-.emojione-2733 {
-    background-position: 96.875% 100%
-}
-
-.emojione-2734 {
-    background-position: 100% 0%
-}
-
-.emojione-2744 {
-    background-position: 100% 3.22581%
-}
-
-.emojione-2747 {
-    background-position: 100% 6.45161%
-}
-
-.emojione-274C {
-    background-position: 100% 9.67742%
-}
-
-.emojione-274E {
-    background-position: 100% 12.90323%
-}
-
-.emojione-2753 {
-    background-position: 100% 16.12903%
-}
-
-.emojione-2754 {
-    background-position: 100% 19.35484%
-}
-
-.emojione-2755 {
-    background-position: 100% 22.58065%
-}
-
-.emojione-2757 {
-    background-position: 100% 25.80645%
-}
-
-.emojione-2764 {
-    background-position: 100% 29.03226%
-}
-
-.emojione-2795 {
-    background-position: 100% 32.25806%
-}
-
-.emojione-2796 {
-    background-position: 100% 35.48387%
-}
-
-.emojione-2797 {
-    background-position: 100% 38.70968%
-}
-
-.emojione-27A1 {
-    background-position: 100% 41.93548%
-}
-
-.emojione-27B0 {
-    background-position: 100% 45.16129%
-}
-
-.emojione-27BF {
-    background-position: 100% 48.3871%
-}
-
-.emojione-2934 {
-    background-position: 100% 51.6129%
-}
-
-.emojione-2935 {
-    background-position: 100% 54.83871%
-}
-
-.emojione-2B05 {
-    background-position: 100% 58.06452%
-}
-
-.emojione-2B06 {
-    background-position: 100% 61.29032%
-}
-
-.emojione-2B07 {
-    background-position: 100% 64.51613%
-}
-
-.emojione-2B1B {
-    background-position: 100% 67.74194%
-}
-
-.emojione-2B1C {
-    background-position: 100% 70.96774%
-}
-
-.emojione-2B50 {
-    background-position: 100% 74.19355%
-}
-
-.emojione-2B55 {
-    background-position: 100% 77.41935%
-}
-
-.emojione-3030 {
-    background-position: 100% 80.64516%
-}
-
-.emojione-303D {
-    background-position: 100% 83.87097%
-}
-
-.emojione-3297 {
-    background-position: 100% 87.09677%
-}
-
-.emojione-3299 {
-    background-position: 100% 90.32258%
-}
-
-
-/* AutoComplete styles for Emoji One */
-.dropdown-menu {
-  list-style: none;
-  padding: .3em 0 0;
-  margin: 0;
-  border: 1px solid #6E6E6E;
-  background-color: white;
-  border-radius: 5px;
-  overflow: hidden;
-  font-size: inherit;
-  letter-spacing: .025em;
-  box-shadow: 3px 3px 3px rgba(0,0,0,.2);
-}
-.dropdown-menu a:hover {
-  cursor: pointer;
-}
-.dropdown-menu li {
-  letter-spacing: 0;
-  display: block;
-  float: none;
-  margin: 0;
-  padding: 0;
-  border:none;
-}
-.dropdown-menu li:before {
-  display: none;
-}
-.dropdown-menu .textcomplete-footer {
-  margin-top: .3em;
-  background: #e6e6e6;
-}
-.dropdown-menu .textcomplete-footer a {
-  color: #999999;
-  text-decoration: none;
-  text-transform: uppercase;
-  letter-spacing: .05em;
-  line-height: 2.1818em;
-  padding-left: 1.8181em;
-  font-size: .84em;
-}
-.dropdown-menu .textcomplete-footer .arrow {
-  margin-left: .8em;
-  font-size: 1.3em;
-}
-.dropdown-menu li .emojione {
-  vertical-align: middle;
-  font-size: 1.23em;
-  width: 1em;
-  height: 1em;
-  top: -1px;
-  margin: 0 .3em 0 0;
-}
-.dropdown-menu li a {
-  display: block;
-  height: 100%;
-  line-height: 1.8em;
-  padding: 0 1.54em 0 .615em;
-  color: #4f4f4f;
-}
-.dropdown-menu .active,
-.dropdown-menu li:hover {
-  background: #6E6E6E;
-  color: white;
-}
-.dropdown-menu .active a,
-.dropdown-menu li:hover a {
-  color: inherit;
-}
diff --git a/pagure/static/emoji/emojione.sprites-1.3.1.png b/pagure/static/emoji/emojione.sprites-1.3.1.png
deleted file mode 100644
index 1f2aecc..0000000
Binary files a/pagure/static/emoji/emojione.sprites-1.3.1.png and /dev/null differ
diff --git a/pagure/static/emoji/emojione.sprites.css b/pagure/static/emoji/emojione.sprites.css
deleted file mode 120000
index 8f31e00..0000000
--- a/pagure/static/emoji/emojione.sprites.css
+++ /dev/null
@@ -1 +0,0 @@
-emojione.sprites.min-1.3.1.css
\ No newline at end of file
diff --git a/pagure/static/emoji/emojione.sprites.min-1.3.1.css b/pagure/static/emoji/emojione.sprites.min-1.3.1.css
deleted file mode 100755
index cca9e95..0000000
--- a/pagure/static/emoji/emojione.sprites.min-1.3.1.css
+++ /dev/null
@@ -1,71 +0,0 @@
-[class*=emojione-]{text-indent:-9999em;image-rendering:optimizeQuality;font-size:inherit;height:1.3em;width:1.3em;top:-3px;position:relative;display:inline-block;margin:0 .15em;line-height:normal;vertical-align:middle;background-image:url("emojione.sprites.png");background-size:3300%;background-repeat:no-repeat}.emojione-0023-20E3{background-position:3.125% 0%}.emojione-0030-20E3{background-position:21.875% 64.51613%}.emojione-0031-20E3{background-position:0% 3.22581%}.emojione-0032-20E3{background-position:3.125% 3.22581%}.emojione-0033-20E3{background-position:6.25% 0%}.emojione-0034-20E3{background-position:6.25% 3.22581%}.emojione-0035-20E3{background-position:0% 6.45161%}.emojione-0036-20E3{background-position:3.125% 6.45161%}.emojione-0037-20E3{background-position:6.25% 6.45161%}.emojione-0038-20E3{background-position:9.375% 0%}.emojione-0039-20E3{background-position:9.375% 3.22581%}.emojione-00A9{background-position:9.375% 6.45161%}.emojione-00AE{background-position:0% 9.67742%}.emojione-1F004{background-position:3.125% 9.67742%}.emojione-1F0CF{background-position:6.25% 9.67742%}.emojione-1F170{background-position:9.375% 9.67742%}.emojione-1F171{background-position:12.5% 0%}.emojione-1F17E{background-position:12.5% 3.22581%}.emojione-1F17F{background-position:12.5% 6.45161%}.emojione-1F18E{background-position:12.5% 9.67742%}.emojione-1F191{background-position:0% 12.90323%}.emojione-1F192{background-position:3.125% 12.90323%}.emojione-1F193{background-position:6.25% 12.90323%}.emojione-1F194{background-position:9.375% 12.90323%}.emojione-1F195{background-position:12.5% 12.90323%}.emojione-1F196{background-position:15.625% 0%}.emojione-1F197{background-position:15.625% 3.22581%}.emojione-1F198{background-position:15.625% 6.45161%}.emojione-1F199{background-position:15.625% 9.67742%}.emojione-1F19A{background-position:15.625% 12.90323%}.emojione-1F1E6-1F1E8{background-position:0% 16.12903%}.emojione-1F1E6-1F1E9{background-position:3.125% 16.12903%}.emojione-1F1E6-1F1EA{background-position:6.25% 16.12903%}.emojione-1F1E6-1F1EB{background-position:9.375% 16.12903%}.emojione-1F1E6-1F1EC{background-position:12.5% 16.12903%}.emojione-1F1E6-1F1EE{background-position:15.625% 16.12903%}.emojione-1F1E6-1F1F1{background-position:18.75% 0%}.emojione-1F1E6-1F1F2{background-position:18.75% 3.22581%}.emojione-1F1E6-1F1F4{background-position:18.75% 6.45161%}.emojione-1F1E6-1F1F7{background-position:18.75% 9.67742%}.emojione-1F1E6-1F1F9{background-position:18.75% 12.90323%}.emojione-1F1E6-1F1FA{background-position:18.75% 16.12903%}.emojione-1F1E6-1F1FC{background-position:0% 19.35484%}.emojione-1F1E6-1F1FF{background-position:3.125% 19.35484%}.emojione-1F1E7-1F1E6{background-position:6.25% 19.35484%}.emojione-1F1E7-1F1E7{background-position:9.375% 19.35484%}.emojione-1F1E7-1F1E9{background-position:12.5% 19.35484%}.emojione-1F1E7-1F1EA{background-position:15.625% 19.35484%}.emojione-1F1E7-1F1EB{background-position:18.75% 19.35484%}.emojione-1F1E7-1F1EC{background-position:21.875% 0%}.emojione-1F1E7-1F1ED{background-position:21.875% 3.22581%}.emojione-1F1E7-1F1EE{background-position:21.875% 6.45161%}.emojione-1F1E7-1F1EF{background-position:21.875% 9.67742%}.emojione-1F1E7-1F1F2{background-position:21.875% 12.90323%}.emojione-1F1E7-1F1F3{background-position:21.875% 16.12903%}.emojione-1F1E7-1F1F4{background-position:21.875% 19.35484%}.emojione-1F1E7-1F1F7{background-position:0% 22.58065%}.emojione-1F1E7-1F1F8{background-position:3.125% 22.58065%}.emojione-1F1E7-1F1F9{background-position:6.25% 22.58065%}.emojione-1F1E7-1F1FC{background-position:9.375% 22.58065%}.emojione-1F1E7-1F1FE{background-position:12.5% 22.58065%}.emojione-1F1E7-1F1FF{background-position:15.625% 22.58065%}.emojione-1F1E8-1F1E6{background-position:18.75% 22.58065%}.emojione-1F1E8-1F1E9{background-position:21.875% 22.58065%}.emojione-1F1E8-1F1EB{background-position:25% 0%}.emojione-1F1E8-1F1EC{background-position:25% 3.22581%}.emojione-1F1E8-1F1ED{background-position:25% 6.45161%}.emojione-1F1E8-1F1EE{background-position:25% 9.67742%}.emojione-1F1E8-1F1F1{background-position:25% 12.90323%}.emojione-1F1E8-1F1F2{background-position:25% 16.12903%}.emojione-1F1E8-1F1F3{background-position:25% 19.35484%}.emojione-1F1E8-1F1F4{background-position:25% 22.58065%}.emojione-1F1E8-1F1F7{background-position:0% 25.80645%}.emojione-1F1E8-1F1FA{background-position:3.125% 25.80645%}.emojione-1F1E8-1F1FB{background-position:6.25% 25.80645%}.emojione-1F1E8-1F1FE{background-position:9.375% 25.80645%}.emojione-1F1E8-1F1FF{background-position:12.5% 25.80645%}.emojione-1F1E9-1F1EA{background-position:15.625% 25.80645%}.emojione-1F1E9-1F1EF{background-position:18.75% 25.80645%}.emojione-1F1E9-1F1F0{background-position:21.875% 25.80645%}.emojione-1F1E9-1F1F2{background-position:25% 25.80645%}.emojione-1F1E9-1F1F4{background-position:28.125% 0%}.emojione-1F1E9-1F1FF{background-position:28.125% 3.22581%}.emojione-1F1EA-1F1E8{background-position:28.125% 6.45161%}.emojione-1F1EA-1F1EA{background-position:28.125% 9.67742%}.emojione-1F1EA-1F1EC{background-position:28.125% 12.90323%}.emojione-1F1EA-1F1ED{background-position:28.125% 16.12903%}.emojione-1F1EA-1F1F7{background-position:28.125% 19.35484%}.emojione-1F1EA-1F1F8{background-position:28.125% 22.58065%}.emojione-1F1EA-1F1F9{background-position:28.125% 25.80645%}.emojione-1F1EB-1F1EE{background-position:0% 29.03226%}.emojione-1F1EB-1F1EF{background-position:3.125% 29.03226%}.emojione-1F1EB-1F1F0{background-position:6.25% 29.03226%}.emojione-1F1EB-1F1F2{background-position:9.375% 29.03226%}.emojione-1F1EB-1F1F4{background-position:12.5% 29.03226%}.emojione-1F1EB-1F1F7{background-position:15.625% 29.03226%}.emojione-1F1EC-1F1E6{background-position:18.75% 29.03226%}.emojione-1F1EC-1F1E7{background-position:21.875% 29.03226%}.emojione-1F1EC-1F1E9{background-position:25% 29.03226%}.emojione-1F1EC-1F1EA{background-position:28.125% 29.03226%}.emojione-1F1EC-1F1ED{background-position:31.25% 0%}.emojione-1F1EC-1F1EE{background-position:31.25% 3.22581%}.emojione-1F1EC-1F1F1{background-position:31.25% 6.45161%}.emojione-1F1EC-1F1F2{background-position:31.25% 9.67742%}.emojione-1F1EC-1F1F3{background-position:31.25% 12.90323%}.emojione-1F1EC-1F1F6{background-position:31.25% 16.12903%}.emojione-1F1EC-1F1F7{background-position:31.25% 19.35484%}.emojione-1F1EC-1F1F9{background-position:31.25% 22.58065%}.emojione-1F1EC-1F1FA{background-position:31.25% 25.80645%}.emojione-1F1EC-1F1FC{background-position:31.25% 29.03226%}.emojione-1F1EC-1F1FE{background-position:0% 32.25806%}.emojione-1F1ED-1F1F0{background-position:3.125% 32.25806%}.emojione-1F1ED-1F1F3{background-position:6.25% 32.25806%}.emojione-1F1ED-1F1F7{background-position:9.375% 32.25806%}.emojione-1F1ED-1F1F9{background-position:12.5% 32.25806%}.emojione-1F1ED-1F1FA{background-position:15.625% 32.25806%}.emojione-1F1EE-1F1E9{background-position:18.75% 32.25806%}.emojione-1F1EE-1F1EA{background-position:21.875% 32.25806%}.emojione-1F1EE-1F1F1{background-position:25% 32.25806%}.emojione-1F1EE-1F1F3{background-position:28.125% 32.25806%}.emojione-1F1EE-1F1F6{background-position:31.25% 32.25806%}.emojione-1F1EE-1F1F7{background-position:34.375% 0%}.emojione-1F1EE-1F1F8{background-position:34.375% 3.22581%}.emojione-1F1EE-1F1F9{background-position:34.375% 6.45161%}.emojione-1F1EF-1F1EA{background-position:34.375% 9.67742%}.emojione-1F1EF-1F1F2{background-position:34.375% 12.90323%}.emojione-1F1EF-1F1F4{background-position:34.375% 16.12903%}.emojione-1F1EF-1F1F5{background-position:34.375% 19.35484%}.emojione-1F1F0-1F1EA{background-position:34.375% 22.58065%}.emojione-1F1F0-1F1EC{background-position:34.375% 25.80645%}.emojione-1F1F0-1F1ED{background-position:34.375% 29.03226%}.emojione-1F1F0-1F1EE{background-position:34.375% 32.25806%}.emojione-1F1F0-1F1F2{background-position:0% 35.48387%}.emojione-1F1F0-1F1F3{background-position:3.125% 35.48387%}.emojione-1F1F0-1F1F5{background-position:6.25% 35.48387%}.emojione-1F1F0-1F1F7{background-position:9.375% 35.48387%}.emojione-1F1F0-1F1FC{background-position:12.5% 35.48387%}.emojione-1F1F0-1F1FE{background-position:15.625% 35.48387%}.emojione-1F1F0-1F1FF{background-position:18.75% 35.48387%}.emojione-1F1F1-1F1E6{background-position:21.875% 35.48387%}.emojione-1F1F1-1F1E7{background-position:25% 35.48387%}.emojione-1F1F1-1F1E8{background-position:28.125% 35.48387%}.emojione-1F1F1-1F1EE{background-position:31.25% 35.48387%}.emojione-1F1F1-1F1F0{background-position:34.375% 35.48387%}.emojione-1F1F1-1F1F7{background-position:37.5% 0%}.emojione-1F1F1-1F1F8{background-position:37.5% 3.22581%}.emojione-1F1F1-1F1F9{background-position:37.5% 6.45161%}.emojione-1F1F1-1F1FA{background-position:37.5% 9.67742%}.emojione-1F1F1-1F1FB{background-position:37.5% 12.90323%}.emojione-1F1F1-1F1FE{background-position:37.5% 16.12903%}.emojione-1F1F2-1F1E6{background-position:37.5% 19.35484%}.emojione-1F1F2-1F1E8{background-position:37.5% 22.58065%}.emojione-1F1F2-1F1E9{background-position:37.5% 25.80645%}.emojione-1F1F2-1F1EA{background-position:37.5% 29.03226%}.emojione-1F1F2-1F1EC{background-position:37.5% 32.25806%}.emojione-1F1F2-1F1ED{background-position:37.5% 35.48387%}.emojione-1F1F2-1F1F0{background-position:0% 38.70968%}.emojione-1F1F2-1F1F1{background-position:3.125% 38.70968%}.emojione-1F1F2-1F1F2{background-position:6.25% 38.70968%}.emojione-1F1F2-1F1F3{background-position:9.375% 38.70968%}.emojione-1F1F2-1F1F4{background-position:12.5% 38.70968%}.emojione-1F1F2-1F1F7{background-position:15.625% 38.70968%}.emojione-1F1F2-1F1F8{background-position:18.75% 38.70968%}.emojione-1F1F2-1F1F9{background-position:21.875% 38.70968%}.emojione-1F1F2-1F1FA{background-position:25% 38.70968%}.emojione-1F1F2-1F1FB{background-position:28.125% 38.70968%}.emojione-1F1F2-1F1FC{background-position:31.25% 38.70968%}.emojione-1F1F2-1F1FD{background-position:34.375% 38.70968%}.emojione-1F1F2-1F1FE{background-position:37.5% 38.70968%}.emojione-1F1F2-1F1FF{background-position:40.625% 0%}.emojione-1F1F3-1F1E6{background-position:40.625% 3.22581%}.emojione-1F1F3-1F1E8{background-position:40.625% 6.45161%}.emojione-1F1F3-1F1EA{background-position:40.625% 9.67742%}.emojione-1F1F3-1F1EC{background-position:40.625% 12.90323%}.emojione-1F1F3-1F1EE{background-position:40.625% 16.12903%}.emojione-1F1F3-1F1F1{background-position:40.625% 19.35484%}.emojione-1F1F3-1F1F4{background-position:40.625% 22.58065%}.emojione-1F1F3-1F1F5{background-position:40.625% 25.80645%}.emojione-1F1F3-1F1F7{background-position:40.625% 29.03226%}.emojione-1F1F3-1F1FA{background-position:40.625% 32.25806%}.emojione-1F1F3-1F1FF{background-position:40.625% 35.48387%}.emojione-1F1F4-1F1F2{background-position:40.625% 38.70968%}.emojione-1F1F5-1F1E6{background-position:0% 41.93548%}.emojione-1F1F5-1F1EA{background-position:3.125% 41.93548%}.emojione-1F1F5-1F1EB{background-position:6.25% 41.93548%}.emojione-1F1F5-1F1EC{background-position:9.375% 41.93548%}.emojione-1F1F5-1F1ED{background-position:12.5% 41.93548%}.emojione-1F1F5-1F1F0{background-position:15.625% 41.93548%}.emojione-1F1F5-1F1F1{background-position:18.75% 41.93548%}.emojione-1F1F5-1F1F7{background-position:21.875% 41.93548%}.emojione-1F1F5-1F1F8{background-position:25% 41.93548%}.emojione-1F1F5-1F1F9{background-position:28.125% 41.93548%}.emojione-1F1F5-1F1FC{background-position:31.25% 41.93548%}.emojione-1F1F5-1F1FE{background-position:34.375% 41.93548%}.emojione-1F1F6-1F1E6{background-position:37.5% 41.93548%}.emojione-1F1F7-1F1F4{background-position:40.625% 41.93548%}.emojione-1F1F7-1F1F8{background-position:43.75% 0%}.emojione-1F1F7-1F1FA{background-position:43.75% 3.22581%}.emojione-1F1F7-1F1FC{background-position:43.75% 6.45161%}.emojione-1F1F8-1F1E6{background-position:43.75% 9.67742%}.emojione-1F1F8-1F1E7{background-position:43.75% 12.90323%}.emojione-1F1F8-1F1E8{background-position:43.75% 16.12903%}.emojione-1F1F8-1F1E9{background-position:43.75% 19.35484%}.emojione-1F1F8-1F1EA{background-position:43.75% 22.58065%}.emojione-1F1F8-1F1EC{background-position:43.75% 25.80645%}.emojione-1F1F8-1F1ED{background-position:43.75% 29.03226%}.emojione-1F1F8-1F1EE{background-position:43.75% 32.25806%}.emojione-1F1F8-1F1F0{background-position:43.75% 35.48387%}.emojione-1F1F8-1F1F1{background-position:43.75% 38.70968%}.emojione-1F1F8-1F1F2{background-position:43.75% 41.93548%}.emojione-1F1F8-1F1F3{background-position:0% 45.16129%}.emojione-1F1F8-1F1F4{background-position:3.125% 45.16129%}.emojione-1F1F8-1F1F7{background-position:6.25% 45.16129%}.emojione-1F1F8-1F1F9{background-position:9.375% 45.16129%}.emojione-1F1F8-1F1FB{background-position:12.5% 45.16129%}.emojione-1F1F8-1F1FE{background-position:15.625% 45.16129%}.emojione-1F1F8-1F1FF{background-position:18.75% 45.16129%}.emojione-1F1F9-1F1E9{background-position:21.875% 45.16129%}.emojione-1F1F9-1F1EC{background-position:25% 45.16129%}.emojione-1F1F9-1F1ED{background-position:28.125% 45.16129%}.emojione-1F1F9-1F1EF{background-position:31.25% 45.16129%}.emojione-1F1F9-1F1F1{background-position:34.375% 45.16129%}.emojione-1F1F9-1F1F2{background-position:37.5% 45.16129%}.emojione-1F1F9-1F1F3{background-position:40.625% 45.16129%}.emojione-1F1F9-1F1F4{background-position:43.75% 45.16129%}.emojione-1F1F9-1F1F7{background-position:46.875% 0%}.emojione-1F1F9-1F1F9{background-position:46.875% 3.22581%}.emojione-1F1F9-1F1FB{background-position:46.875% 6.45161%}.emojione-1F1F9-1F1FC{background-position:46.875% 9.67742%}.emojione-1F1F9-1F1FF{background-position:46.875% 12.90323%}.emojione-1F1FA-1F1E6{background-position:46.875% 16.12903%}.emojione-1F1FA-1F1EC{background-position:46.875% 19.35484%}.emojione-1F1FA-1F1F8{background-position:46.875% 22.58065%}.emojione-1F1FA-1F1FE{background-position:46.875% 25.80645%}.emojione-1F1FA-1F1FF{background-position:46.875% 29.03226%}.emojione-1F1FB-1F1E6{background-position:46.875% 32.25806%}.emojione-1F1FB-1F1E8{background-position:46.875% 35.48387%}.emojione-1F1FB-1F1EA{background-position:46.875% 38.70968%}.emojione-1F1FB-1F1EE{background-position:46.875% 41.93548%}.emojione-1F1FB-1F1F3{background-position:46.875% 45.16129%}.emojione-1F1FB-1F1FA{background-position:0% 48.3871%}.emojione-1F1FC-1F1EB{background-position:3.125% 48.3871%}.emojione-1F1FC-1F1F8{background-position:6.25% 48.3871%}.emojione-1F1FD-1F1F0{background-position:9.375% 48.3871%}.emojione-1F1FE-1F1EA{background-position:12.5% 48.3871%}.emojione-1F1FF-1F1E6{background-position:15.625% 48.3871%}.emojione-1F1FF-1F1F2{background-position:18.75% 48.3871%}.emojione-1F1FF-1F1FC{background-position:21.875% 48.3871%}.emojione-1F201{background-position:25% 48.3871%}.emojione-1F202{background-position:28.125% 48.3871%}.emojione-1F21A{background-position:31.25% 48.3871%}.emojione-1F22F{background-position:34.375% 48.3871%}.emojione-1F232{background-position:37.5% 48.3871%}.emojione-1F233{background-position:40.625% 48.3871%}.emojione-1F234{background-position:43.75% 48.3871%}.emojione-1F235{background-position:46.875% 48.3871%}.emojione-1F236{background-position:50% 0%}.emojione-1F237{background-position:50% 3.22581%}.emojione-1F238{background-position:50% 6.45161%}.emojione-1F239{background-position:50% 9.67742%}.emojione-1F23A{background-position:50% 12.90323%}.emojione-1F250{background-position:50% 16.12903%}.emojione-1F251{background-position:50% 19.35484%}.emojione-1F300{background-position:50% 22.58065%}.emojione-1F301{background-position:50% 25.80645%}.emojione-1F302{background-position:50% 29.03226%}.emojione-1F303{background-position:50% 32.25806%}.emojione-1F304{background-position:50% 35.48387%}.emojione-1F305{background-position:50% 38.70968%}.emojione-1F306{background-position:50% 41.93548%}.emojione-1F307{background-position:50% 45.16129%}.emojione-1F308{background-position:50% 48.3871%}.emojione-1F309{background-position:0% 51.6129%}.emojione-1F30A{background-position:3.125% 51.6129%}.emojione-1F30B{background-position:6.25% 51.6129%}.emojione-1F30C{background-position:9.375% 51.6129%}.emojione-1F30D{background-position:12.5% 51.6129%}.emojione-1F30E{background-position:15.625% 51.6129%}.emojione-1F30F{background-position:18.75% 51.6129%}.emojione-1F310{background-position:21.875% 51.6129%}.emojione-1F311{background-position:25% 51.6129%}.emojione-1F312{background-position:28.125% 51.6129%}.emojione-1F313{background-position:31.25% 51.6129%}.emojione-1F314{background-position:34.375% 51.6129%}.emojione-1F315{background-position:37.5% 51.6129%}.emojione-1F316{background-position:40.625% 51.6129%}.emojione-1F317{background-position:43.75% 51.6129%}.emojione-1F318{background-position:46.875% 51.6129%}.emojione-1F319{background-position:50% 51.6129%}.emojione-1F31A{background-position:53.125% 0%}.emojione-1F31B{background-position:53.125% 3.22581%}.emojione-1F31C{background-position:53.125% 6.45161%}.emojione-1F31D{background-position:53.125% 9.67742%}.emojione-1F31E{background-position:53.125% 12.90323%}.emojione-1F31F{background-position:53.125% 16.12903%}.emojione-1F320{background-position:53.125% 19.35484%}.emojione-1F330{background-position:53.125% 22.58065%}.emojione-1F331{background-position:53.125% 25.80645%}.emojione-1F332{background-position:53.125% 29.03226%}.emojione-1F333{background-position:53.125% 32.25806%}.emojione-1F334{background-position:53.125% 35.48387%}.emojione-1F335{background-position:53.125% 38.70968%}.emojione-1F337{background-position:53.125% 41.93548%}.emojione-1F338{background-position:53.125% 45.16129%}.emojione-1F339{background-position:53.125% 48.3871%}.emojione-1F33A{background-position:53.125% 51.6129%}.emojione-1F33B{background-position:0% 54.83871%}.emojione-1F33C{background-position:3.125% 54.83871%}.emojione-1F33D{background-position:6.25% 54.83871%}.emojione-1F33E{background-position:9.375% 54.83871%}.emojione-1F33F{background-position:12.5% 54.83871%}.emojione-1F340{background-position:15.625% 54.83871%}.emojione-1F341{background-position:18.75% 54.83871%}.emojione-1F342{background-position:21.875% 54.83871%}.emojione-1F343{background-position:25% 54.83871%}.emojione-1F344{background-position:28.125% 54.83871%}.emojione-1F345{background-position:31.25% 54.83871%}.emojione-1F346{background-position:34.375% 54.83871%}.emojione-1F347{background-position:37.5% 54.83871%}.emojione-1F348{background-position:40.625% 54.83871%}.emojione-1F349{background-position:43.75% 54.83871%}.emojione-1F34A{background-position:46.875% 54.83871%}.emojione-1F34B{background-position:50% 54.83871%}.emojione-1F34C{background-position:53.125% 54.83871%}.emojione-1F34D{background-position:56.25% 0%}.emojione-1F34E{background-position:56.25% 3.22581%}.emojione-1F34F{background-position:56.25% 6.45161%}.emojione-1F350{background-position:56.25% 9.67742%}.emojione-1F351{background-position:56.25% 12.90323%}.emojione-1F352{background-position:56.25% 16.12903%}.emojione-1F353{background-position:56.25% 19.35484%}.emojione-1F354{background-position:56.25% 22.58065%}.emojione-1F355{background-position:56.25% 25.80645%}.emojione-1F356{background-position:56.25% 29.03226%}.emojione-1F357{background-position:56.25% 32.25806%}.emojione-1F358{background-position:56.25% 35.48387%}.emojione-1F359{background-position:56.25% 38.70968%}.emojione-1F35A{background-position:56.25% 41.93548%}.emojione-1F35B{background-position:56.25% 45.16129%}.emojione-1F35C{background-position:56.25% 48.3871%}.emojione-1F35D{background-position:56.25% 51.6129%}.emojione-1F35E{background-position:56.25% 54.83871%}.emojione-1F35F{background-position:0% 58.06452%}.emojione-1F360{background-position:3.125% 58.06452%}.emojione-1F361{background-position:6.25% 58.06452%}.emojione-1F362{background-position:9.375% 58.06452%}.emojione-1F363{background-position:12.5% 58.06452%}.emojione-1F364{background-position:15.625% 58.06452%}.emojione-1F365{background-position:18.75% 58.06452%}.emojione-1F366{background-position:21.875% 58.06452%}.emojione-1F367{background-position:25% 58.06452%}.emojione-1F368{background-position:28.125% 58.06452%}.emojione-1F369{background-position:31.25% 58.06452%}.emojione-1F36A{background-position:34.375% 58.06452%}.emojione-1F36B{background-position:37.5% 58.06452%}.emojione-1F36C{background-position:40.625% 58.06452%}.emojione-1F36D{background-position:43.75% 58.06452%}.emojione-1F36E{background-position:46.875% 58.06452%}.emojione-1F36F{background-position:50% 58.06452%}.emojione-1F370{background-position:53.125% 58.06452%}.emojione-1F371{background-position:56.25% 58.06452%}.emojione-1F372{background-position:59.375% 0%}.emojione-1F373{background-position:59.375% 3.22581%}.emojione-1F374{background-position:59.375% 6.45161%}.emojione-1F375{background-position:59.375% 9.67742%}.emojione-1F376{background-position:59.375% 12.90323%}.emojione-1F377{background-position:59.375% 16.12903%}.emojione-1F378{background-position:59.375% 19.35484%}.emojione-1F379{background-position:59.375% 22.58065%}.emojione-1F37A{background-position:59.375% 25.80645%}.emojione-1F37B{background-position:59.375% 29.03226%}.emojione-1F37C{background-position:59.375% 32.25806%}.emojione-1F380{background-position:59.375% 35.48387%}.emojione-1F381{background-position:59.375% 38.70968%}.emojione-1F382{background-position:59.375% 41.93548%}.emojione-1F383{background-position:59.375% 45.16129%}.emojione-1F384{background-position:59.375% 48.3871%}.emojione-1F385{background-position:59.375% 51.6129%}.emojione-1F386{background-position:59.375% 54.83871%}.emojione-1F387{background-position:59.375% 58.06452%}.emojione-1F388{background-position:0% 61.29032%}.emojione-1F389{background-position:3.125% 61.29032%}.emojione-1F38A{background-position:6.25% 61.29032%}.emojione-1F38B{background-position:9.375% 61.29032%}.emojione-1F38C{background-position:12.5% 61.29032%}.emojione-1F38D{background-position:15.625% 61.29032%}.emojione-1F38E{background-position:18.75% 61.29032%}.emojione-1F38F{background-position:21.875% 61.29032%}.emojione-1F390{background-position:25% 61.29032%}.emojione-1F391{background-position:28.125% 61.29032%}.emojione-1F392{background-position:31.25% 61.29032%}.emojione-1F393{background-position:34.375% 61.29032%}.emojione-1F3A0{background-position:37.5% 61.29032%}.emojione-1F3A1{background-position:40.625% 61.29032%}.emojione-1F3A2{background-position:43.75% 61.29032%}.emojione-1F3A3{background-position:46.875% 61.29032%}.emojione-1F3A4{background-position:50% 61.29032%}.emojione-1F3A5{background-position:53.125% 61.29032%}.emojione-1F3A6{background-position:56.25% 61.29032%}.emojione-1F3A7{background-position:59.375% 61.29032%}.emojione-1F3A8{background-position:62.5% 0%}.emojione-1F3A9{background-position:62.5% 3.22581%}.emojione-1F3AA{background-position:62.5% 6.45161%}.emojione-1F3AB{background-position:62.5% 9.67742%}.emojione-1F3AC{background-position:62.5% 12.90323%}.emojione-1F3AD{background-position:62.5% 16.12903%}.emojione-1F3AE{background-position:62.5% 19.35484%}.emojione-1F3AF{background-position:62.5% 22.58065%}.emojione-1F3B0{background-position:62.5% 25.80645%}.emojione-1F3B1{background-position:62.5% 29.03226%}.emojione-1F3B2{background-position:62.5% 32.25806%}.emojione-1F3B3{background-position:62.5% 35.48387%}.emojione-1F3B4{background-position:62.5% 38.70968%}.emojione-1F3B5{background-position:62.5% 41.93548%}.emojione-1F3B6{background-position:62.5% 45.16129%}.emojione-1F3B7{background-position:62.5% 48.3871%}.emojione-1F3B8{background-position:62.5% 51.6129%}.emojione-1F3B9{background-position:62.5% 54.83871%}.emojione-1F3BA{background-position:62.5% 58.06452%}.emojione-1F3BB{background-position:62.5% 61.29032%}.emojione-1F3BC{background-position:0% 64.51613%}.emojione-1F3BD{background-position:3.125% 64.51613%}.emojione-1F3BE{background-position:6.25% 64.51613%}.emojione-1F3BF{background-position:9.375% 64.51613%}.emojione-1F3C0{background-position:12.5% 64.51613%}.emojione-1F3C1{background-position:15.625% 64.51613%}.emojione-1F3C2{background-position:18.75% 64.51613%}.emojione-1F3C3{background-position:0% 0%}.emojione-1F3C4{background-position:25% 64.51613%}.emojione-1F3C6{background-position:28.125% 64.51613%}.emojione-1F3C7{background-position:31.25% 64.51613%}.emojione-1F3C8{background-position:34.375% 64.51613%}.emojione-1F3C9{background-position:37.5% 64.51613%}.emojione-1F3CA{background-position:40.625% 64.51613%}.emojione-1F3E0{background-position:43.75% 64.51613%}.emojione-1F3E1{background-position:46.875% 64.51613%}.emojione-1F3E2{background-position:50% 64.51613%}.emojione-1F3E3{background-position:53.125% 64.51613%}.emojione-1F3E4{background-position:56.25% 64.51613%}.emojione-1F3E5{background-position:59.375% 64.51613%}.emojione-1F3E6{background-position:62.5% 64.51613%}.emojione-1F3E7{background-position:65.625% 0%}.emojione-1F3E8{background-position:65.625% 3.22581%}.emojione-1F3E9{background-position:65.625% 6.45161%}.emojione-1F3EA{background-position:65.625% 9.67742%}.emojione-1F3EB{background-position:65.625% 12.90323%}.emojione-1F3EC{background-position:65.625% 16.12903%}.emojione-1F3ED{background-position:65.625% 19.35484%}.emojione-1F3EE{background-position:65.625% 22.58065%}.emojione-1F3EF{background-position:65.625% 25.80645%}.emojione-1F3F0{background-position:65.625% 29.03226%}.emojione-1F400{background-position:65.625% 32.25806%}.emojione-1F401{background-position:65.625% 35.48387%}.emojione-1F402{background-position:65.625% 38.70968%}.emojione-1F403{background-position:65.625% 41.93548%}.emojione-1F404{background-position:65.625% 45.16129%}.emojione-1F405{background-position:65.625% 48.3871%}.emojione-1F406{background-position:65.625% 51.6129%}.emojione-1F407{background-position:65.625% 54.83871%}.emojione-1F408{background-position:65.625% 58.06452%}.emojione-1F409{background-position:65.625% 61.29032%}.emojione-1F40A{background-position:65.625% 64.51613%}.emojione-1F40B{background-position:0% 67.74194%}.emojione-1F40C{background-position:3.125% 67.74194%}.emojione-1F40D{background-position:6.25% 67.74194%}.emojione-1F40E{background-position:9.375% 67.74194%}.emojione-1F40F{background-position:12.5% 67.74194%}.emojione-1F410{background-position:15.625% 67.74194%}.emojione-1F411{background-position:18.75% 67.74194%}.emojione-1F412{background-position:21.875% 67.74194%}.emojione-1F413{background-position:25% 67.74194%}.emojione-1F414{background-position:28.125% 67.74194%}.emojione-1F415{background-position:31.25% 67.74194%}.emojione-1F416{background-position:34.375% 67.74194%}.emojione-1F417{background-position:37.5% 67.74194%}.emojione-1F418{background-position:40.625% 67.74194%}.emojione-1F419{background-position:43.75% 67.74194%}.emojione-1F41A{background-position:46.875% 67.74194%}.emojione-1F41B{background-position:50% 67.74194%}.emojione-1F41C{background-position:53.125% 67.74194%}.emojione-1F41D{background-position:56.25% 67.74194%}.emojione-1F41E{background-position:59.375% 67.74194%}.emojione-1F41F{background-position:62.5% 67.74194%}.emojione-1F420{background-position:65.625% 67.74194%}.emojione-1F421{background-position:68.75% 0%}.emojione-1F422{background-position:68.75% 3.22581%}.emojione-1F423{background-position:68.75% 6.45161%}.emojione-1F424{background-position:68.75% 9.67742%}.emojione-1F425{background-position:68.75% 12.90323%}.emojione-1F426{background-position:68.75% 16.12903%}.emojione-1F427{background-position:68.75% 19.35484%}.emojione-1F428{background-position:68.75% 22.58065%}.emojione-1F429{background-position:68.75% 25.80645%}.emojione-1F42A{background-position:68.75% 29.03226%}.emojione-1F42B{background-position:68.75% 32.25806%}.emojione-1F42C{background-position:68.75% 35.48387%}.emojione-1F42D{background-position:68.75% 38.70968%}.emojione-1F42E{background-position:68.75% 41.93548%}.emojione-1F42F{background-position:68.75% 45.16129%}.emojione-1F430{background-position:68.75% 48.3871%}.emojione-1F431{background-position:68.75% 51.6129%}.emojione-1F432{background-position:68.75% 54.83871%}.emojione-1F433{background-position:68.75% 58.06452%}.emojione-1F434{background-position:68.75% 61.29032%}.emojione-1F435{background-position:68.75% 64.51613%}.emojione-1F436{background-position:68.75% 67.74194%}.emojione-1F437{background-position:0% 70.96774%}.emojione-1F438{background-position:3.125% 70.96774%}.emojione-1F439{background-position:6.25% 70.96774%}.emojione-1F43A{background-position:9.375% 70.96774%}.emojione-1F43B{background-position:12.5% 70.96774%}.emojione-1F43C{background-position:15.625% 70.96774%}.emojione-1F43D{background-position:18.75% 70.96774%}.emojione-1F43E{background-position:21.875% 70.96774%}.emojione-1F440{background-position:25% 70.96774%}.emojione-1F442{background-position:28.125% 70.96774%}.emojione-1F443{background-position:31.25% 70.96774%}.emojione-1F444{background-position:34.375% 70.96774%}.emojione-1F445{background-position:37.5% 70.96774%}.emojione-1F446{background-position:40.625% 70.96774%}.emojione-1F447{background-position:43.75% 70.96774%}.emojione-1F448{background-position:46.875% 70.96774%}.emojione-1F449{background-position:50% 70.96774%}.emojione-1F44A{background-position:53.125% 70.96774%}.emojione-1F44B{background-position:56.25% 70.96774%}.emojione-1F44C{background-position:59.375% 70.96774%}.emojione-1F44D{background-position:62.5% 70.96774%}.emojione-1F44E{background-position:65.625% 70.96774%}.emojione-1F44F{background-position:68.75% 70.96774%}.emojione-1F450{background-position:71.875% 0%}.emojione-1F451{background-position:71.875% 3.22581%}.emojione-1F452{background-position:71.875% 6.45161%}.emojione-1F453{background-position:71.875% 9.67742%}.emojione-1F454{background-position:71.875% 12.90323%}.emojione-1F455{background-position:71.875% 16.12903%}.emojione-1F456{background-position:71.875% 19.35484%}.emojione-1F457{background-position:71.875% 22.58065%}.emojione-1F458{background-position:71.875% 25.80645%}.emojione-1F459{background-position:71.875% 29.03226%}.emojione-1F45A{background-position:71.875% 32.25806%}.emojione-1F45B{background-position:71.875% 35.48387%}.emojione-1F45C{background-position:71.875% 38.70968%}.emojione-1F45D{background-position:71.875% 41.93548%}.emojione-1F45E{background-position:71.875% 45.16129%}.emojione-1F45F{background-position:71.875% 48.3871%}.emojione-1F460{background-position:71.875% 51.6129%}.emojione-1F461{background-position:71.875% 54.83871%}.emojione-1F462{background-position:71.875% 58.06452%}.emojione-1F463{background-position:71.875% 61.29032%}.emojione-1F464{background-position:71.875% 64.51613%}.emojione-1F465{background-position:71.875% 67.74194%}.emojione-1F466{background-position:71.875% 70.96774%}.emojione-1F467{background-position:0% 74.19355%}.emojione-1F468{background-position:3.125% 74.19355%}.emojione-1F469{background-position:6.25% 74.19355%}.emojione-1F46A{background-position:9.375% 74.19355%}.emojione-1F46B{background-position:12.5% 74.19355%}.emojione-1F46C{background-position:15.625% 74.19355%}.emojione-1F46D{background-position:18.75% 74.19355%}.emojione-1F46E{background-position:21.875% 74.19355%}.emojione-1F46F{background-position:25% 74.19355%}.emojione-1F470{background-position:28.125% 74.19355%}.emojione-1F471{background-position:31.25% 74.19355%}.emojione-1F472{background-position:34.375% 74.19355%}.emojione-1F473{background-position:37.5% 74.19355%}.emojione-1F474{background-position:40.625% 74.19355%}.emojione-1F475{background-position:43.75% 74.19355%}.emojione-1F476{background-position:46.875% 74.19355%}.emojione-1F477{background-position:50% 74.19355%}.emojione-1F478{background-position:53.125% 74.19355%}.emojione-1F479{background-position:56.25% 74.19355%}.emojione-1F47A{background-position:59.375% 74.19355%}.emojione-1F47B{background-position:62.5% 74.19355%}.emojione-1F47C{background-position:65.625% 74.19355%}.emojione-1F47D{background-position:68.75% 74.19355%}.emojione-1F47E{background-position:71.875% 74.19355%}.emojione-1F47F{background-position:75% 0%}.emojione-1F480{background-position:75% 3.22581%}.emojione-1F481{background-position:75% 6.45161%}.emojione-1F482{background-position:75% 9.67742%}.emojione-1F483{background-position:75% 12.90323%}.emojione-1F484{background-position:75% 16.12903%}.emojione-1F485{background-position:75% 19.35484%}.emojione-1F486{background-position:75% 22.58065%}.emojione-1F487{background-position:75% 25.80645%}.emojione-1F488{background-position:75% 29.03226%}.emojione-1F489{background-position:75% 32.25806%}.emojione-1F48A{background-position:75% 35.48387%}.emojione-1F48B{background-position:75% 38.70968%}.emojione-1F48C{background-position:75% 41.93548%}.emojione-1F48D{background-position:75% 45.16129%}.emojione-1F48E{background-position:75% 48.3871%}.emojione-1F48F{background-position:75% 51.6129%}.emojione-1F490{background-position:75% 54.83871%}.emojione-1F491{background-position:75% 58.06452%}.emojione-1F492{background-position:75% 61.29032%}.emojione-1F493{background-position:75% 64.51613%}.emojione-1F494{background-position:75% 67.74194%}.emojione-1F495{background-position:75% 70.96774%}.emojione-1F496{background-position:75% 74.19355%}.emojione-1F497{background-position:0% 77.41935%}.emojione-1F498{background-position:3.125% 77.41935%}.emojione-1F499{background-position:6.25% 77.41935%}.emojione-1F49A{background-position:9.375% 77.41935%}.emojione-1F49B{background-position:12.5% 77.41935%}.emojione-1F49C{background-position:15.625% 77.41935%}.emojione-1F49D{background-position:18.75% 77.41935%}.emojione-1F49E{background-position:21.875% 77.41935%}.emojione-1F49F{background-position:25% 77.41935%}.emojione-1F4A0{background-position:28.125% 77.41935%}.emojione-1F4A1{background-position:31.25% 77.41935%}.emojione-1F4A2{background-position:34.375% 77.41935%}.emojione-1F4A3{background-position:37.5% 77.41935%}.emojione-1F4A4{background-position:40.625% 77.41935%}.emojione-1F4A5{background-position:43.75% 77.41935%}.emojione-1F4A6{background-position:46.875% 77.41935%}.emojione-1F4A7{background-position:50% 77.41935%}.emojione-1F4A8{background-position:53.125% 77.41935%}.emojione-1F4A9{background-position:56.25% 77.41935%}.emojione-1F4AA{background-position:59.375% 77.41935%}.emojione-1F4AB{background-position:62.5% 77.41935%}.emojione-1F4AC{background-position:65.625% 77.41935%}.emojione-1F4AD{background-position:68.75% 77.41935%}.emojione-1F4AE{background-position:71.875% 77.41935%}.emojione-1F4AF{background-position:75% 77.41935%}.emojione-1F4B0{background-position:78.125% 0%}.emojione-1F4B1{background-position:78.125% 3.22581%}.emojione-1F4B2{background-position:78.125% 6.45161%}.emojione-1F4B3{background-position:78.125% 9.67742%}.emojione-1F4B4{background-position:78.125% 12.90323%}.emojione-1F4B5{background-position:78.125% 16.12903%}.emojione-1F4B6{background-position:78.125% 19.35484%}.emojione-1F4B7{background-position:78.125% 22.58065%}.emojione-1F4B8{background-position:78.125% 25.80645%}.emojione-1F4B9{background-position:78.125% 29.03226%}.emojione-1F4BA{background-position:78.125% 32.25806%}.emojione-1F4BB{background-position:78.125% 35.48387%}.emojione-1F4BC{background-position:78.125% 38.70968%}.emojione-1F4BD{background-position:78.125% 41.93548%}.emojione-1F4BE{background-position:78.125% 45.16129%}.emojione-1F4BF{background-position:78.125% 48.3871%}.emojione-1F4C0{background-position:78.125% 51.6129%}.emojione-1F4C1{background-position:78.125% 54.83871%}.emojione-1F4C2{background-position:78.125% 58.06452%}.emojione-1F4C3{background-position:78.125% 61.29032%}.emojione-1F4C4{background-position:78.125% 64.51613%}.emojione-1F4C5{background-position:78.125% 67.74194%}.emojione-1F4C6{background-position:78.125% 70.96774%}.emojione-1F4C7{background-position:78.125% 74.19355%}.emojione-1F4C8{background-position:78.125% 77.41935%}.emojione-1F4C9{background-position:0% 80.64516%}.emojione-1F4CA{background-position:3.125% 80.64516%}.emojione-1F4CB{background-position:6.25% 80.64516%}.emojione-1F4CC{background-position:9.375% 80.64516%}.emojione-1F4CD{background-position:12.5% 80.64516%}.emojione-1F4CE{background-position:15.625% 80.64516%}.emojione-1F4CF{background-position:18.75% 80.64516%}.emojione-1F4D0{background-position:21.875% 80.64516%}.emojione-1F4D1{background-position:25% 80.64516%}.emojione-1F4D2{background-position:28.125% 80.64516%}.emojione-1F4D3{background-position:31.25% 80.64516%}.emojione-1F4D4{background-position:34.375% 80.64516%}.emojione-1F4D5{background-position:37.5% 80.64516%}.emojione-1F4D6{background-position:40.625% 80.64516%}.emojione-1F4D7{background-position:43.75% 80.64516%}.emojione-1F4D8{background-position:46.875% 80.64516%}.emojione-1F4D9{background-position:50% 80.64516%}.emojione-1F4DA{background-position:53.125% 80.64516%}.emojione-1F4DB{background-position:56.25% 80.64516%}.emojione-1F4DC{background-position:59.375% 80.64516%}.emojione-1F4DD{background-position:62.5% 80.64516%}.emojione-1F4DE{background-position:65.625% 80.64516%}.emojione-1F4DF{background-position:68.75% 80.64516%}.emojione-1F4E0{background-position:71.875% 80.64516%}.emojione-1F4E1{background-position:75% 80.64516%}.emojione-1F4E2{background-position:78.125% 80.64516%}.emojione-1F4E3{background-position:81.25% 0%}.emojione-1F4E4{background-position:81.25% 3.22581%}.emojione-1F4E5{background-position:81.25% 6.45161%}.emojione-1F4E6{background-position:81.25% 9.67742%}.emojione-1F4E7{background-position:81.25% 12.90323%}.emojione-1F4E8{background-position:81.25% 16.12903%}.emojione-1F4E9{background-position:81.25% 19.35484%}.emojione-1F4EA{background-position:81.25% 22.58065%}.emojione-1F4EB{background-position:81.25% 25.80645%}.emojione-1F4EC{background-position:81.25% 29.03226%}.emojione-1F4ED{background-position:81.25% 32.25806%}.emojione-1F4EE{background-position:81.25% 35.48387%}.emojione-1F4EF{background-position:81.25% 38.70968%}.emojione-1F4F0{background-position:81.25% 41.93548%}.emojione-1F4F1{background-position:81.25% 45.16129%}.emojione-1F4F2{background-position:81.25% 48.3871%}.emojione-1F4F3{background-position:81.25% 51.6129%}.emojione-1F4F4{background-position:81.25% 54.83871%}.emojione-1F4F5{background-position:81.25% 58.06452%}.emojione-1F4F6{background-position:81.25% 61.29032%}.emojione-1F4F7{background-position:81.25% 64.51613%}.emojione-1F4F9{background-position:81.25% 67.74194%}.emojione-1F4FA{background-position:81.25% 70.96774%}.emojione-1F4FB{background-position:81.25% 74.19355%}.emojione-1F4FC{background-position:81.25% 77.41935%}.emojione-1F500{background-position:81.25% 80.64516%}.emojione-1F501{background-position:0% 83.87097%}.emojione-1F502{background-position:3.125% 83.87097%}.emojione-1F503{background-position:6.25% 83.87097%}.emojione-1F504{background-position:9.375% 83.87097%}.emojione-1F505{background-position:12.5% 83.87097%}.emojione-1F506{background-position:15.625% 83.87097%}.emojione-1F507{background-position:18.75% 83.87097%}.emojione-1F508{background-position:21.875% 83.87097%}.emojione-1F509{background-position:25% 83.87097%}.emojione-1F50A{background-position:28.125% 83.87097%}.emojione-1F50B{background-position:31.25% 83.87097%}.emojione-1F50C{background-position:34.375% 83.87097%}.emojione-1F50D{background-position:37.5% 83.87097%}.emojione-1F50E{background-position:40.625% 83.87097%}.emojione-1F50F{background-position:43.75% 83.87097%}.emojione-1F510{background-position:46.875% 83.87097%}.emojione-1F511{background-position:50% 83.87097%}.emojione-1F512{background-position:53.125% 83.87097%}.emojione-1F513{background-position:56.25% 83.87097%}.emojione-1F514{background-position:59.375% 83.87097%}.emojione-1F515{background-position:62.5% 83.87097%}.emojione-1F516{background-position:65.625% 83.87097%}.emojione-1F517{background-position:68.75% 83.87097%}.emojione-1F518{background-position:71.875% 83.87097%}.emojione-1F519{background-position:75% 83.87097%}.emojione-1F51A{background-position:78.125% 83.87097%}.emojione-1F51B{background-position:81.25% 83.87097%}.emojione-1F51C{background-position:84.375% 0%}.emojione-1F51D{background-position:84.375% 3.22581%}.emojione-1F51E{background-position:84.375% 6.45161%}.emojione-1F51F{background-position:84.375% 9.67742%}.emojione-1F520{background-position:84.375% 12.90323%}.emojione-1F521{background-position:84.375% 16.12903%}.emojione-1F522{background-position:84.375% 19.35484%}.emojione-1F523{background-position:84.375% 22.58065%}.emojione-1F524{background-position:84.375% 25.80645%}.emojione-1F525{background-position:84.375% 29.03226%}.emojione-1F526{background-position:84.375% 32.25806%}.emojione-1F527{background-position:84.375% 35.48387%}.emojione-1F528{background-position:84.375% 38.70968%}.emojione-1F529{background-position:84.375% 41.93548%}.emojione-1F52A{background-position:84.375% 45.16129%}.emojione-1F52B{background-position:84.375% 48.3871%}.emojione-1F52C{background-position:84.375% 51.6129%}.emojione-1F52D{background-position:84.375% 54.83871%}.emojione-1F52E{background-position:84.375% 58.06452%}.emojione-1F52F{background-position:84.375% 61.29032%}.emojione-1F530{background-position:84.375% 64.51613%}.emojione-1F531{background-position:84.375% 67.74194%}.emojione-1F532{background-position:84.375% 70.96774%}.emojione-1F533{background-position:84.375% 74.19355%}.emojione-1F534{background-position:84.375% 77.41935%}.emojione-1F535{background-position:84.375% 80.64516%}.emojione-1F536{background-position:84.375% 83.87097%}.emojione-1F537{background-position:0% 87.09677%}.emojione-1F538{background-position:3.125% 87.09677%}.emojione-1F539{background-position:6.25% 87.09677%}.emojione-1F53A{background-position:9.375% 87.09677%}.emojione-1F53B{background-position:12.5% 87.09677%}.emojione-1F53C{background-position:15.625% 87.09677%}.emojione-1F53D{background-position:18.75% 87.09677%}.emojione-1F550{background-position:21.875% 87.09677%}.emojione-1F551{background-position:25% 87.09677%}.emojione-1F552{background-position:28.125% 87.09677%}.emojione-1F553{background-position:31.25% 87.09677%}.emojione-1F554{background-position:34.375% 87.09677%}.emojione-1F555{background-position:37.5% 87.09677%}.emojione-1F556{background-position:40.625% 87.09677%}.emojione-1F557{background-position:43.75% 87.09677%}.emojione-1F558{background-position:46.875% 87.09677%}.emojione-1F559{background-position:50% 87.09677%}.emojione-1F55A{background-position:53.125% 87.09677%}.emojione-1F55B{background-position:56.25% 87.09677%}.emojione-1F55C{background-position:59.375% 87.09677%}.emojione-1F55D{background-position:62.5% 87.09677%}.emojione-1F55E{background-position:65.625% 87.09677%}.emojione-1F55F{background-position:68.75% 87.09677%}.emojione-1F560{background-position:71.875% 87.09677%}.emojione-1F561{background-position:75% 87.09677%}.emojione-1F562{background-position:78.125% 87.09677%}.emojione-1F563{background-position:81.25% 87.09677%}.emojione-1F564{background-position:84.375% 87.09677%}.emojione-1F565{background-position:87.5% 0%}.emojione-1F566{background-position:87.5% 3.22581%}.emojione-1F567{background-position:87.5% 6.45161%}.emojione-1F5FB{background-position:87.5% 9.67742%}.emojione-1F5FC{background-position:87.5% 12.90323%}.emojione-1F5FD{background-position:87.5% 16.12903%}.emojione-1F5FE{background-position:87.5% 19.35484%}.emojione-1F5FF{background-position:87.5% 22.58065%}.emojione-1F600{background-position:87.5% 25.80645%}.emojione-1F601{background-position:87.5% 29.03226%}.emojione-1F602{background-position:87.5% 32.25806%}.emojione-1F603{background-position:87.5% 35.48387%}.emojione-1F604{background-position:87.5% 38.70968%}.emojione-1F605{background-position:87.5% 41.93548%}.emojione-1F606{background-position:87.5% 45.16129%}.emojione-1F607{background-position:87.5% 48.3871%}.emojione-1F608{background-position:87.5% 51.6129%}.emojione-1F609{background-position:87.5% 54.83871%}.emojione-1F60A{background-position:87.5% 58.06452%}.emojione-1F60B{background-position:87.5% 61.29032%}.emojione-1F60C{background-position:87.5% 64.51613%}.emojione-1F60D{background-position:87.5% 67.74194%}.emojione-1F60E{background-position:87.5% 70.96774%}.emojione-1F60F{background-position:87.5% 74.19355%}.emojione-1F610{background-position:87.5% 77.41935%}.emojione-1F611{background-position:87.5% 80.64516%}.emojione-1F612{background-position:87.5% 83.87097%}.emojione-1F613{background-position:87.5% 87.09677%}.emojione-1F614{background-position:0% 90.32258%}.emojione-1F615{background-position:3.125% 90.32258%}.emojione-1F616{background-position:6.25% 90.32258%}.emojione-1F617{background-position:9.375% 90.32258%}.emojione-1F618{background-position:12.5% 90.32258%}.emojione-1F619{background-position:15.625% 90.32258%}.emojione-1F61A{background-position:18.75% 90.32258%}.emojione-1F61B{background-position:21.875% 90.32258%}.emojione-1F61C{background-position:25% 90.32258%}.emojione-1F61D{background-position:28.125% 90.32258%}.emojione-1F61E{background-position:31.25% 90.32258%}.emojione-1F61F{background-position:34.375% 90.32258%}.emojione-1F620{background-position:37.5% 90.32258%}.emojione-1F621{background-position:40.625% 90.32258%}.emojione-1F622{background-position:43.75% 90.32258%}.emojione-1F623{background-position:46.875% 90.32258%}.emojione-1F624{background-position:50% 90.32258%}.emojione-1F625{background-position:53.125% 90.32258%}.emojione-1F626{background-position:56.25% 90.32258%}.emojione-1F627{background-position:59.375% 90.32258%}.emojione-1F628{background-position:62.5% 90.32258%}.emojione-1F629{background-position:65.625% 90.32258%}.emojione-1F62A{background-position:68.75% 90.32258%}.emojione-1F62B{background-position:71.875% 90.32258%}.emojione-1F62C{background-position:75% 90.32258%}.emojione-1F62D{background-position:78.125% 90.32258%}.emojione-1F62E{background-position:81.25% 90.32258%}.emojione-1F62F{background-position:84.375% 90.32258%}.emojione-1F630{background-position:87.5% 90.32258%}.emojione-1F631{background-position:90.625% 0%}.emojione-1F632{background-position:90.625% 3.22581%}.emojione-1F633{background-position:90.625% 6.45161%}.emojione-1F634{background-position:90.625% 9.67742%}.emojione-1F635{background-position:90.625% 12.90323%}.emojione-1F636{background-position:90.625% 16.12903%}.emojione-1F637{background-position:90.625% 19.35484%}.emojione-1F638{background-position:90.625% 22.58065%}.emojione-1F639{background-position:90.625% 25.80645%}.emojione-1F63A{background-position:90.625% 29.03226%}.emojione-1F63B{background-position:90.625% 32.25806%}.emojione-1F63C{background-position:90.625% 35.48387%}.emojione-1F63D{background-position:90.625% 38.70968%}.emojione-1F63E{background-position:90.625% 41.93548%}.emojione-1F63F{background-position:90.625% 45.16129%}.emojione-1F640{background-position:90.625% 48.3871%}.emojione-1F645{background-position:90.625% 51.6129%}.emojione-1F646{background-position:90.625% 54.83871%}.emojione-1F647{background-position:90.625% 58.06452%}.emojione-1F648{background-position:90.625% 61.29032%}.emojione-1F649{background-position:90.625% 64.51613%}.emojione-1F64A{background-position:90.625% 67.74194%}.emojione-1F64B{background-position:90.625% 70.96774%}.emojione-1F64C{background-position:90.625% 74.19355%}.emojione-1F64D{background-position:90.625% 77.41935%}.emojione-1F64E{background-position:90.625% 80.64516%}.emojione-1F64F{background-position:90.625% 83.87097%}.emojione-1F680{background-position:90.625% 87.09677%}.emojione-1F681{background-position:90.625% 90.32258%}.emojione-1F682{background-position:0% 93.54839%}.emojione-1F683{background-position:3.125% 93.54839%}.emojione-1F684{background-position:6.25% 93.54839%}.emojione-1F685{background-position:9.375% 93.54839%}.emojione-1F686{background-position:12.5% 93.54839%}.emojione-1F687{background-position:15.625% 93.54839%}.emojione-1F688{background-position:18.75% 93.54839%}.emojione-1F689{background-position:21.875% 93.54839%}.emojione-1F68A{background-position:25% 93.54839%}.emojione-1F68B{background-position:28.125% 93.54839%}.emojione-1F68C{background-position:31.25% 93.54839%}.emojione-1F68D{background-position:34.375% 93.54839%}.emojione-1F68E{background-position:37.5% 93.54839%}.emojione-1F68F{background-position:40.625% 93.54839%}.emojione-1F690{background-position:43.75% 93.54839%}.emojione-1F691{background-position:46.875% 93.54839%}.emojione-1F692{background-position:50% 93.54839%}.emojione-1F693{background-position:53.125% 93.54839%}.emojione-1F694{background-position:56.25% 93.54839%}.emojione-1F695{background-position:59.375% 93.54839%}.emojione-1F696{background-position:62.5% 93.54839%}.emojione-1F697{background-position:65.625% 93.54839%}.emojione-1F698{background-position:68.75% 93.54839%}.emojione-1F699{background-position:71.875% 93.54839%}.emojione-1F69A{background-position:75% 93.54839%}.emojione-1F69B{background-position:78.125% 93.54839%}.emojione-1F69C{background-position:81.25% 93.54839%}.emojione-1F69D{background-position:84.375% 93.54839%}.emojione-1F69E{background-position:87.5% 93.54839%}.emojione-1F69F{background-position:90.625% 93.54839%}.emojione-1F6A0{background-position:93.75% 0%}.emojione-1F6A1{background-position:93.75% 3.22581%}.emojione-1F6A2{background-position:93.75% 6.45161%}.emojione-1F6A3{background-position:93.75% 9.67742%}.emojione-1F6A4{background-position:93.75% 12.90323%}.emojione-1F6A5{background-position:93.75% 16.12903%}.emojione-1F6A6{background-position:93.75% 19.35484%}.emojione-1F6A7{background-position:93.75% 22.58065%}.emojione-1F6A8{background-position:93.75% 25.80645%}.emojione-1F6A9{background-position:93.75% 29.03226%}.emojione-1F6AA{background-position:93.75% 32.25806%}.emojione-1F6AB{background-position:93.75% 35.48387%}.emojione-1F6AC{background-position:93.75% 38.70968%}.emojione-1F6AD{background-position:93.75% 41.93548%}.emojione-1F6AE{background-position:93.75% 45.16129%}.emojione-1F6AF{background-position:93.75% 48.3871%}.emojione-1F6B0{background-position:93.75% 51.6129%}.emojione-1F6B1{background-position:93.75% 54.83871%}.emojione-1F6B2{background-position:93.75% 58.06452%}.emojione-1F6B3{background-position:93.75% 61.29032%}.emojione-1F6B4{background-position:93.75% 64.51613%}.emojione-1F6B5{background-position:93.75% 67.74194%}.emojione-1F6B6{background-position:93.75% 70.96774%}.emojione-1F6B7{background-position:93.75% 74.19355%}.emojione-1F6B8{background-position:93.75% 77.41935%}.emojione-1F6B9{background-position:93.75% 80.64516%}.emojione-1F6BA{background-position:93.75% 83.87097%}.emojione-1F6BB{background-position:93.75% 87.09677%}.emojione-1F6BC{background-position:93.75% 90.32258%}.emojione-1F6BD{background-position:93.75% 93.54839%}.emojione-1F6BE{background-position:0% 96.77419%}.emojione-1F6BF{background-position:3.125% 96.77419%}.emojione-1F6C0{background-position:6.25% 96.77419%}.emojione-1F6C1{background-position:9.375% 96.77419%}.emojione-1F6C2{background-position:12.5% 96.77419%}.emojione-1F6C3{background-position:15.625% 96.77419%}.emojione-1F6C4{background-position:18.75% 96.77419%}.emojione-1F6C5{background-position:21.875% 96.77419%}.emojione-203C{background-position:25% 96.77419%}.emojione-2049{background-position:28.125% 96.77419%}.emojione-2122{background-position:31.25% 96.77419%}.emojione-2139{background-position:34.375% 96.77419%}.emojione-2194{background-position:37.5% 96.77419%}.emojione-2195{background-position:40.625% 96.77419%}.emojione-2196{background-position:43.75% 96.77419%}.emojione-2197{background-position:46.875% 96.77419%}.emojione-2198{background-position:50% 96.77419%}.emojione-2199{background-position:53.125% 96.77419%}.emojione-21A9{background-position:56.25% 96.77419%}.emojione-21AA{background-position:59.375% 96.77419%}.emojione-231A{background-position:62.5% 96.77419%}.emojione-231B{background-position:65.625% 96.77419%}.emojione-23E9{background-position:68.75% 96.77419%}.emojione-23EA{background-position:71.875% 96.77419%}.emojione-23EB{background-position:75% 96.77419%}.emojione-23EC{background-position:78.125% 96.77419%}.emojione-23F0{background-position:81.25% 96.77419%}.emojione-23F3{background-position:84.375% 96.77419%}.emojione-24C2{background-position:87.5% 96.77419%}.emojione-25AA{background-position:90.625% 96.77419%}.emojione-25AB{background-position:93.75% 96.77419%}.emojione-25B6{background-position:96.875% 0%}.emojione-25C0{background-position:96.875% 3.22581%}.emojione-25FB{background-position:96.875% 6.45161%}.emojione-25FC{background-position:96.875% 9.67742%}.emojione-25FD{background-position:96.875% 12.90323%}.emojione-25FE{background-position:96.875% 16.12903%}.emojione-2600{background-position:96.875% 19.35484%}.emojione-2601{background-position:96.875% 22.58065%}.emojione-260E{background-position:96.875% 25.80645%}.emojione-2611{background-position:96.875% 29.03226%}.emojione-2614{background-position:96.875% 32.25806%}.emojione-2615{background-position:96.875% 35.48387%}.emojione-261D{background-position:96.875% 38.70968%}.emojione-263A{background-position:96.875% 41.93548%}.emojione-2648{background-position:96.875% 45.16129%}.emojione-2649{background-position:96.875% 48.3871%}.emojione-264A{background-position:96.875% 51.6129%}.emojione-264B{background-position:96.875% 54.83871%}.emojione-264C{background-position:96.875% 58.06452%}.emojione-264D{background-position:96.875% 61.29032%}.emojione-264E{background-position:96.875% 64.51613%}.emojione-264F{background-position:96.875% 67.74194%}.emojione-2650{background-position:96.875% 70.96774%}.emojione-2651{background-position:96.875% 74.19355%}.emojione-2652{background-position:96.875% 77.41935%}.emojione-2653{background-position:96.875% 80.64516%}.emojione-2660{background-position:96.875% 83.87097%}.emojione-2663{background-position:96.875% 87.09677%}.emojione-2665{background-position:96.875% 90.32258%}.emojione-2666{background-position:96.875% 93.54839%}.emojione-2668{background-position:96.875% 96.77419%}.emojione-267B{background-position:0% 100%}.emojione-267F{background-position:3.125% 100%}.emojione-2693{background-position:6.25% 100%}.emojione-26A0{background-position:9.375% 100%}.emojione-26A1{background-position:12.5% 100%}.emojione-26AA{background-position:15.625% 100%}.emojione-26AB{background-position:18.75% 100%}.emojione-26BD{background-position:21.875% 100%}.emojione-26BE{background-position:25% 100%}.emojione-26C4{background-position:28.125% 100%}.emojione-26C5{background-position:31.25% 100%}.emojione-26CE{background-position:34.375% 100%}.emojione-26D4{background-position:37.5% 100%}.emojione-26EA{background-position:40.625% 100%}.emojione-26F2{background-position:43.75% 100%}.emojione-26F3{background-position:46.875% 100%}.emojione-26F5{background-position:50% 100%}.emojione-26FA{background-position:53.125% 100%}.emojione-26FD{background-position:56.25% 100%}.emojione-2702{background-position:59.375% 100%}.emojione-2705{background-position:62.5% 100%}.emojione-2708{background-position:65.625% 100%}.emojione-2709{background-position:68.75% 100%}.emojione-270A{background-position:71.875% 100%}.emojione-270B{background-position:75% 100%}.emojione-270C{background-position:78.125% 100%}.emojione-270F{background-position:81.25% 100%}.emojione-2712{background-position:84.375% 100%}.emojione-2714{background-position:87.5% 100%}.emojione-2716{background-position:90.625% 100%}.emojione-2728{background-position:93.75% 100%}.emojione-2733{background-position:96.875% 100%}.emojione-2734{background-position:100% 0%}.emojione-2744{background-position:100% 3.22581%}.emojione-2747{background-position:100% 6.45161%}.emojione-274C{background-position:100% 9.67742%}.emojione-274E{background-position:100% 12.90323%}.emojione-2753{background-position:100% 16.12903%}.emojione-2754{background-position:100% 19.35484%}.emojione-2755{background-position:100% 22.58065%}.emojione-2757{background-position:100% 25.80645%}.emojione-2764{background-position:100% 29.03226%}.emojione-2795{background-position:100% 32.25806%}.emojione-2796{background-position:100% 35.48387%}.emojione-2797{background-position:100% 38.70968%}.emojione-27A1{background-position:100% 41.93548%}.emojione-27B0{background-position:100% 45.16129%}.emojione-27BF{background-position:100% 48.3871%}.emojione-2934{background-position:100% 51.6129%}.emojione-2935{background-position:100% 54.83871%}.emojione-2B05{background-position:100% 58.06452%}.emojione-2B06{background-position:100% 61.29032%}.emojione-2B07{background-position:100% 64.51613%}.emojione-2B1B{background-position:100% 67.74194%}.emojione-2B1C{background-position:100% 70.96774%}.emojione-2B50{background-position:100% 74.19355%}.emojione-2B55{background-position:100% 77.41935%}.emojione-3030{background-position:100% 80.64516%}.emojione-303D{background-position:100% 83.87097%}.emojione-3297{background-position:100% 87.09677%}.emojione-3299{background-position:100% 90.32258%}
-
-
-/* AutoComplete styles for Emoji One */
-.dropdown-menu {
-  list-style: none;
-  padding: .3em 0 0;
-  margin: 0;
-  border: 1px solid #6E6E6E;
-  background-color: white;
-  border-radius: 5px;
-  overflow: hidden;
-  font-size: inherit;
-  letter-spacing: .025em;
-  box-shadow: 3px 3px 3px rgba(0,0,0,.2);
-}
-.dropdown-menu a:hover {
-  cursor: pointer;
-}
-.dropdown-menu li {
-  letter-spacing: 0;
-  display: block;
-  float: none;
-  margin: 0;
-  padding: 0;
-  border:none;
-}
-.dropdown-menu li:before {
-  display: none;
-}
-.dropdown-menu .textcomplete-footer {
-  margin-top: .3em;
-  background: #e6e6e6;
-}
-.dropdown-menu .textcomplete-footer a {
-  color: #999999;
-  text-decoration: none;
-  text-transform: uppercase;
-  letter-spacing: .05em;
-  line-height: 2.1818em;
-  padding-left: 1.8181em;
-  font-size: .84em;
-}
-.dropdown-menu .textcomplete-footer .arrow {
-  margin-left: .8em;
-  font-size: 1.3em;
-}
-.dropdown-menu li .emojione {
-  vertical-align: middle;
-  font-size: 1.23em;
-  width: 1em;
-  height: 1em;
-  top: -1px;
-  margin: 0 .3em 0 0;
-}
-.dropdown-menu li a {
-  display: block;
-  height: 100%;
-  line-height: 1.8em;
-  padding: 0 1.54em 0 .615em;
-  color: #4f4f4f;
-}
-.dropdown-menu .active,
-.dropdown-menu li:hover {
-  background: #6E6E6E;
-  color: white;
-}
-.dropdown-menu .active a,
-.dropdown-menu li:hover a {
-  color: inherit;
-}
diff --git a/pagure/static/emoji/emojione.sprites.png b/pagure/static/emoji/emojione.sprites.png
deleted file mode 120000
index cc9e491..0000000
--- a/pagure/static/emoji/emojione.sprites.png
+++ /dev/null
@@ -1 +0,0 @@
-emojione.sprites-1.3.1.png
\ No newline at end of file
diff --git a/pagure/static/emoji/jquery.textcomplete-1.7.1.js b/pagure/static/emoji/jquery.textcomplete-1.7.1.js
deleted file mode 100644
index 87463c4..0000000
--- a/pagure/static/emoji/jquery.textcomplete-1.7.1.js
+++ /dev/null
@@ -1,1482 +0,0 @@
-(function (factory) {
-  if (typeof define === 'function' && define.amd) {
-    // AMD. Register as an anonymous module.
-    define(['jquery'], factory);
-  } else if (typeof module === "object" && module.exports) {
-    var $ = require('jquery');
-    module.exports = factory($);
-  } else {
-    // Browser globals
-    factory(jQuery);
-  }
-}(function (jQuery) {
-
-/*!
- * jQuery.textcomplete
- *
- * Repository: https://github.com/yuku-t/jquery-textcomplete
- * License:    MIT (https://github.com/yuku-t/jquery-textcomplete/blob/master/LICENSE)
- * Author:     Yuku Takahashi
- */
-
-if (typeof jQuery === 'undefined') {
-  throw new Error('jQuery.textcomplete requires jQuery');
-}
-
-+function ($) {
-  'use strict';
-
-  var warn = function (message) {
-    if (console.warn) { console.warn(message); }
-  };
-
-  var id = 1;
-
-  $.fn.textcomplete = function (strategies, option) {
-    var args = Array.prototype.slice.call(arguments);
-    return this.each(function () {
-      var self = this;
-      var $this = $(this);
-      var completer = $this.data('textComplete');
-      if (!completer) {
-        option || (option = {});
-        option._oid = id++;  // unique object id
-        completer = new $.fn.textcomplete.Completer(this, option);
-        $this.data('textComplete', completer);
-      }
-      if (typeof strategies === 'string') {
-        if (!completer) return;
-        args.shift()
-        completer[strategies].apply(completer, args);
-        if (strategies === 'destroy') {
-          $this.removeData('textComplete');
-        }
-      } else {
-        // For backward compatibility.
-        // TODO: Remove at v0.4
-        $.each(strategies, function (obj) {
-          $.each(['header', 'footer', 'placement', 'maxCount'], function (name) {
-            if (obj[name]) {
-              completer.option[name] = obj[name];
-              warn(name + 'as a strategy param is deprecated. Use option.');
-              delete obj[name];
-            }
-          });
-        });
-        completer.register($.fn.textcomplete.Strategy.parse(strategies, {
-          el: self,
-          $el: $this
-        }));
-      }
-    });
-  };
-
-}(jQuery);
-
-+function ($) {
-  'use strict';
-
-  // Exclusive execution control utility.
-  //
-  // func - The function to be locked. It is executed with a function named
-  //        `free` as the first argument. Once it is called, additional
-  //        execution are ignored until the free is invoked. Then the last
-  //        ignored execution will be replayed immediately.
-  //
-  // Examples
-  //
-  //   var lockedFunc = lock(function (free) {
-  //     setTimeout(function { free(); }, 1000); // It will be free in 1 sec.
-  //     console.log('Hello, world');
-  //   });
-  //   lockedFunc();  // => 'Hello, world'
-  //   lockedFunc();  // none
-  //   lockedFunc();  // none
-  //   // 1 sec past then
-  //   // => 'Hello, world'
-  //   lockedFunc();  // => 'Hello, world'
-  //   lockedFunc();  // none
-  //
-  // Returns a wrapped function.
-  var lock = function (func) {
-    var locked, queuedArgsToReplay;
-
-    return function () {
-      // Convert arguments into a real array.
-      var args = Array.prototype.slice.call(arguments);
-      if (locked) {
-        // Keep a copy of this argument list to replay later.
-        // OK to overwrite a previous value because we only replay
-        // the last one.
-        queuedArgsToReplay = args;
-        return;
-      }
-      locked = true;
-      var self = this;
-      args.unshift(function replayOrFree() {
-        if (queuedArgsToReplay) {
-          // Other request(s) arrived while we were locked.
-          // Now that the lock is becoming available, replay
-          // the latest such request, then call back here to
-          // unlock (or replay another request that arrived
-          // while this one was in flight).
-          var replayArgs = queuedArgsToReplay;
-          queuedArgsToReplay = undefined;
-          replayArgs.unshift(replayOrFree);
-          func.apply(self, replayArgs);
-        } else {
-          locked = false;
-        }
-      });
-      func.apply(this, args);
-    };
-  };
-
-  var isString = function (obj) {
-    return Object.prototype.toString.call(obj) === '[object String]';
-  };
-
-  var uniqueId = 0;
-
-  function Completer(element, option) {
-    this.$el        = $(element);
-    this.id         = 'textcomplete' + uniqueId++;
-    this.strategies = [];
-    this.views      = [];
-    this.option     = $.extend({}, Completer.defaults, option);
-
-    if (!this.$el.is('input[type=text]') && !this.$el.is('input[type=search]') && !this.$el.is('textarea') && !element.isContentEditable && element.contentEditable != 'true') {
-      throw new Error('textcomplete must be called on a Textarea or a ContentEditable.');
-    }
-
-    // use ownerDocument to fix iframe / IE issues
-    if (element === element.ownerDocument.activeElement) {
-      // element has already been focused. Initialize view objects immediately.
-      this.initialize()
-    } else {
-      // Initialize view objects lazily.
-      var self = this;
-      this.$el.one('focus.' + this.id, function () { self.initialize(); });
-
-      // Special handling for CKEditor: lazy init on instance load
-      if ((!this.option.adapter || this.option.adapter == 'CKEditor') && typeof CKEDITOR != 'undefined' && (this.$el.is('textarea'))) {
-        CKEDITOR.on("instanceReady", function(event) {
-          event.editor.once("focus", function(event2) {
-            // replace the element with the Iframe element and flag it as CKEditor
-            self.$el = $(event.editor.editable().$);
-            if (!self.option.adapter) {
-              self.option.adapter = $.fn.textcomplete['CKEditor'];
-            }
-            self.initialize();
-          });
-        });
-      }
-    }
-  }
-
-  Completer.defaults = {
-    appendTo: 'body',
-    className: '',  // deprecated option
-    dropdownClassName: 'dropdown-menu textcomplete-dropdown',
-    maxCount: 10,
-    zIndex: '100',
-    rightEdgeOffset: 30
-  };
-
-  $.extend(Completer.prototype, {
-    // Public properties
-    // -----------------
-
-    id:         null,
-    option:     null,
-    strategies: null,
-    adapter:    null,
-    dropdown:   null,
-    $el:        null,
-    $iframe:    null,
-
-    // Public methods
-    // --------------
-
-    initialize: function () {
-      var element = this.$el.get(0);
-      
-      // check if we are in an iframe
-      // we need to alter positioning logic if using an iframe
-      if (this.$el.prop('ownerDocument') !== document && window.frames.length) {
-        for (var iframeIndex = 0; iframeIndex < window.frames.length; iframeIndex++) {
-          if (this.$el.prop('ownerDocument') === window.frames[iframeIndex].document) {
-            this.$iframe = $(window.frames[iframeIndex].frameElement);
-            break;
-          }
-        }
-      }
-      
-      
-      // Initialize view objects.
-      this.dropdown = new $.fn.textcomplete.Dropdown(element, this, this.option);
-      var Adapter, viewName;
-      if (this.option.adapter) {
-        Adapter = this.option.adapter;
-      } else {
-        if (this.$el.is('textarea') || this.$el.is('input[type=text]') || this.$el.is('input[type=search]')) {
-          viewName = typeof element.selectionEnd === 'number' ? 'Textarea' : 'IETextarea';
-        } else {
-          viewName = 'ContentEditable';
-        }
-        Adapter = $.fn.textcomplete[viewName];
-      }
-      this.adapter = new Adapter(element, this, this.option);
-    },
-
-    destroy: function () {
-      this.$el.off('.' + this.id);
-      if (this.adapter) {
-        this.adapter.destroy();
-      }
-      if (this.dropdown) {
-        this.dropdown.destroy();
-      }
-      this.$el = this.adapter = this.dropdown = null;
-    },
-
-    deactivate: function () {
-      if (this.dropdown) {
-        this.dropdown.deactivate();
-      }
-    },
-
-    // Invoke textcomplete.
-    trigger: function (text, skipUnchangedTerm) {
-      if (!this.dropdown) { this.initialize(); }
-      text != null || (text = this.adapter.getTextFromHeadToCaret());
-      var searchQuery = this._extractSearchQuery(text);
-      if (searchQuery.length) {
-        var term = searchQuery[1];
-        // Ignore shift-key, ctrl-key and so on.
-        if (skipUnchangedTerm && this._term === term && term !== "") { return; }
-        this._term = term;
-        this._search.apply(this, searchQuery);
-      } else {
-        this._term = null;
-        this.dropdown.deactivate();
-      }
-    },
-
-    fire: function (eventName) {
-      var args = Array.prototype.slice.call(arguments, 1);
-      this.$el.trigger(eventName, args);
-      return this;
-    },
-
-    register: function (strategies) {
-      Array.prototype.push.apply(this.strategies, strategies);
-    },
-
-    // Insert the value into adapter view. It is called when the dropdown is clicked
-    // or selected.
-    //
-    // value    - The selected element of the array callbacked from search func.
-    // strategy - The Strategy object.
-    // e        - Click or keydown event object.
-    select: function (value, strategy, e) {
-      this._term = null;
-      this.adapter.select(value, strategy, e);
-      this.fire('change').fire('textComplete:select', value, strategy);
-      this.adapter.focus();
-    },
-
-    // Private properties
-    // ------------------
-
-    _clearAtNext: true,
-    _term:        null,
-
-    // Private methods
-    // ---------------
-
-    // Parse the given text and extract the first matching strategy.
-    //
-    // Returns an array including the strategy, the query term and the match
-    // object if the text matches an strategy; otherwise returns an empty array.
-    _extractSearchQuery: function (text) {
-      for (var i = 0; i < this.strategies.length; i++) {
-        var strategy = this.strategies[i];
-        var context = strategy.context(text);
-        if (context || context === '') {
-          var matchRegexp = $.isFunction(strategy.match) ? strategy.match(text) : strategy.match;
-          if (isString(context)) { text = context; }
-          var match = text.match(matchRegexp);
-          if (match) { return [strategy, match[strategy.index], match]; }
-        }
-      }
-      return []
-    },
-
-    // Call the search method of selected strategy..
-    _search: lock(function (free, strategy, term, match) {
-      var self = this;
-      strategy.search(term, function (data, stillSearching) {
-        if (!self.dropdown.shown) {
-          self.dropdown.activate();
-        }
-        if (self._clearAtNext) {
-          // The first callback in the current lock.
-          self.dropdown.clear();
-          self._clearAtNext = false;
-        }
-        self.dropdown.setPosition(self.adapter.getCaretPosition());
-        self.dropdown.render(self._zip(data, strategy, term));
-        if (!stillSearching) {
-          // The last callback in the current lock.
-          free();
-          self._clearAtNext = true; // Call dropdown.clear at the next time.
-        }
-      }, match);
-    }),
-
-    // Build a parameter for Dropdown#render.
-    //
-    // Examples
-    //
-    //  this._zip(['a', 'b'], 's');
-    //  //=> [{ value: 'a', strategy: 's' }, { value: 'b', strategy: 's' }]
-    _zip: function (data, strategy, term) {
-      return $.map(data, function (value) {
-        return { value: value, strategy: strategy, term: term };
-      });
-    }
-  });
-
-  $.fn.textcomplete.Completer = Completer;
-}(jQuery);
-
-+function ($) {
-  'use strict';
-
-  var $window = $(window);
-
-  var include = function (zippedData, datum) {
-    var i, elem;
-    var idProperty = datum.strategy.idProperty
-    for (i = 0; i < zippedData.length; i++) {
-      elem = zippedData[i];
-      if (elem.strategy !== datum.strategy) continue;
-      if (idProperty) {
-        if (elem.value[idProperty] === datum.value[idProperty]) return true;
-      } else {
-        if (elem.value === datum.value) return true;
-      }
-    }
-    return false;
-  };
-
-  var dropdownViews = {};
-  $(document).on('click', function (e) {
-    var id = e.originalEvent && e.originalEvent.keepTextCompleteDropdown;
-    $.each(dropdownViews, function (key, view) {
-      if (key !== id) { view.deactivate(); }
-    });
-  });
-
-  var commands = {
-    SKIP_DEFAULT: 0,
-    KEY_UP: 1,
-    KEY_DOWN: 2,
-    KEY_ENTER: 3,
-    KEY_PAGEUP: 4,
-    KEY_PAGEDOWN: 5,
-    KEY_ESCAPE: 6
-  };
-
-  // Dropdown view
-  // =============
-
-  // Construct Dropdown object.
-  //
-  // element - Textarea or contenteditable element.
-  function Dropdown(element, completer, option) {
-    this.$el       = Dropdown.createElement(option);
-    this.completer = completer;
-    this.id        = completer.id + 'dropdown';
-    this._data     = []; // zipped data.
-    this.$inputEl  = $(element);
-    this.option    = option;
-
-    // Override setPosition method.
-    if (option.listPosition) { this.setPosition = option.listPosition; }
-    if (option.height) { this.$el.height(option.height); }
-    var self = this;
-    $.each(['maxCount', 'placement', 'footer', 'header', 'noResultsMessage', 'className'], function (_i, name) {
-      if (option[name] != null) { self[name] = option[name]; }
-    });
-    this._bindEvents(element);
-    dropdownViews[this.id] = this;
-  }
-
-  $.extend(Dropdown, {
-    // Class methods
-    // -------------
-
-    createElement: function (option) {
-      var $parent = option.appendTo;
-      if (!($parent instanceof $)) { $parent = $($parent); }
-      var $el = $('<ul></ul>')
-        .addClass(option.dropdownClassName)
-        .attr('id', 'textcomplete-dropdown-' + option._oid)
-        .css({
-          display: 'none',
-          left: 0,
-          position: 'absolute',
-          zIndex: option.zIndex
-        })
-        .appendTo($parent);
-      return $el;
-    }
-  });
-
-  $.extend(Dropdown.prototype, {
-    // Public properties
-    // -----------------
-
-    $el:       null,  // jQuery object of ul.dropdown-menu element.
-    $inputEl:  null,  // jQuery object of target textarea.
-    completer: null,
-    footer:    null,
-    header:    null,
-    id:        null,
-    maxCount:  null,
-    placement: '',
-    shown:     false,
-    data:      [],     // Shown zipped data.
-    className: '',
-
-    // Public methods
-    // --------------
-
-    destroy: function () {
-      // Don't remove $el because it may be shared by several textcompletes.
-      this.deactivate();
-
-      this.$el.off('.' + this.id);
-      this.$inputEl.off('.' + this.id);
-      this.clear();
-      this.$el.remove();
-      this.$el = this.$inputEl = this.completer = null;
-      delete dropdownViews[this.id]
-    },
-
-    render: function (zippedData) {
-      var contentsHtml = this._buildContents(zippedData);
-      var unzippedData = $.map(this.data, function (d) { return d.value; });
-      if (this.data.length) {
-        var strategy = zippedData[0].strategy;
-        if (strategy.id) {
-          this.$el.attr('data-strategy', strategy.id);
-        } else {
-          this.$el.removeAttr('data-strategy');
-        }
-        this._renderHeader(unzippedData);
-        this._renderFooter(unzippedData);
-        if (contentsHtml) {
-          this._renderContents(contentsHtml);
-          this._fitToBottom();
-          this._fitToRight();
-          this._activateIndexedItem();
-        }
-        this._setScroll();
-      } else if (this.noResultsMessage) {
-        this._renderNoResultsMessage(unzippedData);
-      } else if (this.shown) {
-        this.deactivate();
-      }
-    },
-
-    setPosition: function (pos) {
-      // Make the dropdown fixed if the input is also fixed
-      // This can't be done during init, as textcomplete may be used on multiple elements on the same page
-      // Because the same dropdown is reused behind the scenes, we need to recheck every time the dropdown is showed
-      var position = 'absolute';
-      // Check if input or one of its parents has positioning we need to care about
-      this.$inputEl.add(this.$inputEl.parents()).each(function() {
-        if($(this).css('position') === 'absolute') // The element has absolute positioning, so it's all OK
-          return false;
-        if($(this).css('position') === 'fixed') {
-          pos.top -= $window.scrollTop();
-          pos.left -= $window.scrollLeft();
-          position = 'fixed';
-          return false;
-        }
-      });
-      this.$el.css(this._applyPlacement(pos));
-      this.$el.css({ position: position }); // Update positioning
-
-      return this;
-    },
-
-    clear: function () {
-      this.$el.html('');
-      this.data = [];
-      this._index = 0;
-      this._$header = this._$footer = this._$noResultsMessage = null;
-    },
-
-    activate: function () {
-      if (!this.shown) {
-        this.clear();
-        this.$el.show();
-        if (this.className) { this.$el.addClass(this.className); }
-        this.completer.fire('textComplete:show');
-        this.shown = true;
-      }
-      return this;
-    },
-
-    deactivate: function () {
-      if (this.shown) {
-        this.$el.hide();
-        if (this.className) { this.$el.removeClass(this.className); }
-        this.completer.fire('textComplete:hide');
-        this.shown = false;
-      }
-      return this;
-    },
-
-    isUp: function (e) {
-      return e.keyCode === 38 || (e.ctrlKey && e.keyCode === 80);  // UP, Ctrl-P
-    },
-
-    isDown: function (e) {
-      return e.keyCode === 40 || (e.ctrlKey && e.keyCode === 78);  // DOWN, Ctrl-N
-    },
-
-    isEnter: function (e) {
-      var modifiers = e.ctrlKey || e.altKey || e.metaKey || e.shiftKey;
-      return !modifiers && (e.keyCode === 13 || e.keyCode === 9 || (this.option.completeOnSpace === true && e.keyCode === 32))  // ENTER, TAB
-    },
-
-    isPageup: function (e) {
-      return e.keyCode === 33;  // PAGEUP
-    },
-
-    isPagedown: function (e) {
-      return e.keyCode === 34;  // PAGEDOWN
-    },
-
-    isEscape: function (e) {
-      return e.keyCode === 27;  // ESCAPE
-    },
-
-    // Private properties
-    // ------------------
-
-    _data:    null,  // Currently shown zipped data.
-    _index:   null,
-    _$header: null,
-    _$noResultsMessage: null,
-    _$footer: null,
-
-    // Private methods
-    // ---------------
-
-    _bindEvents: function () {
-      this.$el.on('mousedown.' + this.id, '.textcomplete-item', $.proxy(this._onClick, this));
-      this.$el.on('touchstart.' + this.id, '.textcomplete-item', $.proxy(this._onClick, this));
-      this.$el.on('mouseover.' + this.id, '.textcomplete-item', $.proxy(this._onMouseover, this));
-      this.$inputEl.on('keydown.' + this.id, $.proxy(this._onKeydown, this));
-    },
-
-    _onClick: function (e) {
-      var $el = $(e.target);
-      e.preventDefault();
-      e.originalEvent.keepTextCompleteDropdown = this.id;
-      if (!$el.hasClass('textcomplete-item')) {
-        $el = $el.closest('.textcomplete-item');
-      }
-      var datum = this.data[parseInt($el.data('index'), 10)];
-      this.completer.select(datum.value, datum.strategy, e);
-      var self = this;
-      // Deactive at next tick to allow other event handlers to know whether
-      // the dropdown has been shown or not.
-      setTimeout(function () {
-        self.deactivate();
-        if (e.type === 'touchstart') {
-          self.$inputEl.focus();
-        }
-      }, 0);
-    },
-
-    // Activate hovered item.
-    _onMouseover: function (e) {
-      var $el = $(e.target);
-      e.preventDefault();
-      if (!$el.hasClass('textcomplete-item')) {
-        $el = $el.closest('.textcomplete-item');
-      }
-      this._index = parseInt($el.data('index'), 10);
-      this._activateIndexedItem();
-    },
-
-    _onKeydown: function (e) {
-      if (!this.shown) { return; }
-
-      var command;
-
-      if ($.isFunction(this.option.onKeydown)) {
-        command = this.option.onKeydown(e, commands);
-      }
-
-      if (command == null) {
-        command = this._defaultKeydown(e);
-      }
-
-      switch (command) {
-        case commands.KEY_UP:
-          e.preventDefault();
-          this._up();
-          break;
-        case commands.KEY_DOWN:
-          e.preventDefault();
-          this._down();
-          break;
-        case commands.KEY_ENTER:
-          e.preventDefault();
-          this._enter(e);
-          break;
-        case commands.KEY_PAGEUP:
-          e.preventDefault();
-          this._pageup();
-          break;
-        case commands.KEY_PAGEDOWN:
-          e.preventDefault();
-          this._pagedown();
-          break;
-        case commands.KEY_ESCAPE:
-          e.preventDefault();
-          this.deactivate();
-          break;
-      }
-    },
-
-    _defaultKeydown: function (e) {
-      if (this.isUp(e)) {
-        return commands.KEY_UP;
-      } else if (this.isDown(e)) {
-        return commands.KEY_DOWN;
-      } else if (this.isEnter(e)) {
-        return commands.KEY_ENTER;
-      } else if (this.isPageup(e)) {
-        return commands.KEY_PAGEUP;
-      } else if (this.isPagedown(e)) {
-        return commands.KEY_PAGEDOWN;
-      } else if (this.isEscape(e)) {
-        return commands.KEY_ESCAPE;
-      }
-    },
-
-    _up: function () {
-      if (this._index === 0) {
-        this._index = this.data.length - 1;
-      } else {
-        this._index -= 1;
-      }
-      this._activateIndexedItem();
-      this._setScroll();
-    },
-
-    _down: function () {
-      if (this._index === this.data.length - 1) {
-        this._index = 0;
-      } else {
-        this._index += 1;
-      }
-      this._activateIndexedItem();
-      this._setScroll();
-    },
-
-    _enter: function (e) {
-      var datum = this.data[parseInt(this._getActiveElement().data('index'), 10)];
-      this.completer.select(datum.value, datum.strategy, e);
-      this.deactivate();
-    },
-
-    _pageup: function () {
-      var target = 0;
-      var threshold = this._getActiveElement().position().top - this.$el.innerHeight();
-      this.$el.children().each(function (i) {
-        if ($(this).position().top + $(this).outerHeight() > threshold) {
-          target = i;
-          return false;
-        }
-      });
-      this._index = target;
-      this._activateIndexedItem();
-      this._setScroll();
-    },
-
-    _pagedown: function () {
-      var target = this.data.length - 1;
-      var threshold = this._getActiveElement().position().top + this.$el.innerHeight();
-      this.$el.children().each(function (i) {
-        if ($(this).position().top > threshold) {
-          target = i;
-          return false
-        }
-      });
-      this._index = target;
-      this._activateIndexedItem();
-      this._setScroll();
-    },
-
-    _activateIndexedItem: function () {
-      this.$el.find('.textcomplete-item.active').removeClass('active');
-      this._getActiveElement().addClass('active');
-    },
-
-    _getActiveElement: function () {
-      return this.$el.children('.textcomplete-item:nth(' + this._index + ')');
-    },
-
-    _setScroll: function () {
-      var $activeEl = this._getActiveElement();
-      var itemTop = $activeEl.position().top;
-      var itemHeight = $activeEl.outerHeight();
-      var visibleHeight = this.$el.innerHeight();
-      var visibleTop = this.$el.scrollTop();
-      if (this._index === 0 || this._index == this.data.length - 1 || itemTop < 0) {
-        this.$el.scrollTop(itemTop + visibleTop);
-      } else if (itemTop + itemHeight > visibleHeight) {
-        this.$el.scrollTop(itemTop + itemHeight + visibleTop - visibleHeight);
-      }
-    },
-
-    _buildContents: function (zippedData) {
-      var datum, i, index;
-      var html = '';
-      for (i = 0; i < zippedData.length; i++) {
-        if (this.data.length === this.maxCount) break;
-        datum = zippedData[i];
-        if (include(this.data, datum)) { continue; }
-        index = this.data.length;
-        this.data.push(datum);
-        html += '<li class="textcomplete-item" data-index="' + index + '"><a>';
-        html +=   datum.strategy.template(datum.value, datum.term);
-        html += '</a></li>';
-      }
-      return html;
-    },
-
-    _renderHeader: function (unzippedData) {
-      if (this.header) {
-        if (!this._$header) {
-          this._$header = $('<li class="textcomplete-header"></li>').prependTo(this.$el);
-        }
-        var html = $.isFunction(this.header) ? this.header(unzippedData) : this.header;
-        this._$header.html(html);
-      }
-    },
-
-    _renderFooter: function (unzippedData) {
-      if (this.footer) {
-        if (!this._$footer) {
-          this._$footer = $('<li class="textcomplete-footer"></li>').appendTo(this.$el);
-        }
-        var html = $.isFunction(this.footer) ? this.footer(unzippedData) : this.footer;
-        this._$footer.html(html);
-      }
-    },
-
-    _renderNoResultsMessage: function (unzippedData) {
-      if (this.noResultsMessage) {
-        if (!this._$noResultsMessage) {
-          this._$noResultsMessage = $('<li class="textcomplete-no-results-message"></li>').appendTo(this.$el);
-        }
-        var html = $.isFunction(this.noResultsMessage) ? this.noResultsMessage(unzippedData) : this.noResultsMessage;
-        this._$noResultsMessage.html(html);
-      }
-    },
-
-    _renderContents: function (html) {
-      if (this._$footer) {
-        this._$footer.before(html);
-      } else {
-        this.$el.append(html);
-      }
-    },
-
-    _fitToBottom: function() {
-      var windowScrollBottom = $window.scrollTop() + $window.height();
-      var height = this.$el.height();
-      if ((this.$el.position().top + height) > windowScrollBottom) {
-        // only do this if we are not in an iframe
-        if (!this.completer.$iframe) {
-          this.$el.offset({top: windowScrollBottom - height});
-        }
-      }
-    },
-
-    _fitToRight: function() {
-      // We don't know how wide our content is until the browser positions us, and at that point it clips us
-      // to the document width so we don't know if we would have overrun it. As a heuristic to avoid that clipping
-      // (which makes our elements wrap onto the next line and corrupt the next item), if we're close to the right
-      // edge, move left. We don't know how far to move left, so just keep nudging a bit.
-      var tolerance = this.option.rightEdgeOffset; // pixels. Make wider than vertical scrollbar because we might not be able to use that space.
-      var lastOffset = this.$el.offset().left, offset;
-      var width = this.$el.width();
-      var maxLeft = $window.width() - tolerance;
-      while (lastOffset + width > maxLeft) {
-        this.$el.offset({left: lastOffset - tolerance});
-        offset = this.$el.offset().left;
-        if (offset >= lastOffset) { break; }
-        lastOffset = offset;
-      }
-    },
-
-    _applyPlacement: function (position) {
-      // If the 'placement' option set to 'top', move the position above the element.
-      if (this.placement.indexOf('top') !== -1) {
-        // Overwrite the position object to set the 'bottom' property instead of the top.
-        position = {
-          top: 'auto',
-          bottom: this.$el.parent().height() - position.top + position.lineHeight,
-          left: position.left
-        };
-      } else {
-        position.bottom = 'auto';
-        delete position.lineHeight;
-      }
-      if (this.placement.indexOf('absleft') !== -1) {
-        position.left = 0;
-      } else if (this.placement.indexOf('absright') !== -1) {
-        position.right = 0;
-        position.left = 'auto';
-      }
-      return position;
-    }
-  });
-
-  $.fn.textcomplete.Dropdown = Dropdown;
-  $.extend($.fn.textcomplete, commands);
-}(jQuery);
-
-+function ($) {
-  'use strict';
-
-  // Memoize a search function.
-  var memoize = function (func) {
-    var memo = {};
-    return function (term, callback) {
-      if (memo[term]) {
-        callback(memo[term]);
-      } else {
-        func.call(this, term, function (data) {
-          memo[term] = (memo[term] || []).concat(data);
-          callback.apply(null, arguments);
-        });
-      }
-    };
-  };
-
-  function Strategy(options) {
-    $.extend(this, options);
-    if (this.cache) { this.search = memoize(this.search); }
-  }
-
-  Strategy.parse = function (strategiesArray, params) {
-    return $.map(strategiesArray, function (strategy) {
-      var strategyObj = new Strategy(strategy);
-      strategyObj.el = params.el;
-      strategyObj.$el = params.$el;
-      return strategyObj;
-    });
-  };
-
-  $.extend(Strategy.prototype, {
-    // Public properties
-    // -----------------
-
-    // Required
-    match:      null,
-    replace:    null,
-    search:     null,
-
-    // Optional
-    id:         null,
-    cache:      false,
-    context:    function () { return true; },
-    index:      2,
-    template:   function (obj) { return obj; },
-    idProperty: null
-  });
-
-  $.fn.textcomplete.Strategy = Strategy;
-
-}(jQuery);
-
-+function ($) {
-  'use strict';
-
-  var now = Date.now || function () { return new Date().getTime(); };
-
-  // Returns a function, that, as long as it continues to be invoked, will not
-  // be triggered. The function will be called after it stops being called for
-  // `wait` msec.
-  //
-  // This utility function was originally implemented at Underscore.js.
-  var debounce = function (func, wait) {
-    var timeout, args, context, timestamp, result;
-    var later = function () {
-      var last = now() - timestamp;
-      if (last < wait) {
-        timeout = setTimeout(later, wait - last);
-      } else {
-        timeout = null;
-        result = func.apply(context, args);
-        context = args = null;
-      }
-    };
-
-    return function () {
-      context = this;
-      args = arguments;
-      timestamp = now();
-      if (!timeout) {
-        timeout = setTimeout(later, wait);
-      }
-      return result;
-    };
-  };
-
-  function Adapter () {}
-
-  $.extend(Adapter.prototype, {
-    // Public properties
-    // -----------------
-
-    id:        null, // Identity.
-    completer: null, // Completer object which creates it.
-    el:        null, // Textarea element.
-    $el:       null, // jQuery object of the textarea.
-    option:    null,
-
-    // Public methods
-    // --------------
-
-    initialize: function (element, completer, option) {
-      this.el        = element;
-      this.$el       = $(element);
-      this.id        = completer.id + this.constructor.name;
-      this.completer = completer;
-      this.option    = option;
-
-      if (this.option.debounce) {
-        this._onKeyup = debounce(this._onKeyup, this.option.debounce);
-      }
-
-      this._bindEvents();
-    },
-
-    destroy: function () {
-      this.$el.off('.' + this.id); // Remove all event handlers.
-      this.$el = this.el = this.completer = null;
-    },
-
-    // Update the element with the given value and strategy.
-    //
-    // value    - The selected object. It is one of the item of the array
-    //            which was callbacked from the search function.
-    // strategy - The Strategy associated with the selected value.
-    select: function (/* value, strategy */) {
-      throw new Error('Not implemented');
-    },
-
-    // Returns the caret's relative coordinates from body's left top corner.
-    getCaretPosition: function () {
-      var position = this._getCaretRelativePosition();
-      var offset = this.$el.offset();
-
-      // Calculate the left top corner of `this.option.appendTo` element.
-      var $parent = this.option.appendTo;
-      if ($parent) {
-         if (!($parent instanceof $)) { $parent = $($parent); }
-         var parentOffset = $parent.offsetParent().offset();
-         offset.top -= parentOffset.top;
-         offset.left -= parentOffset.left;
-      }
-
-      position.top += offset.top;
-      position.left += offset.left;
-      return position;
-    },
-
-    // Focus on the element.
-    focus: function () {
-      this.$el.focus();
-    },
-
-    // Private methods
-    // ---------------
-
-    _bindEvents: function () {
-      this.$el.on('keyup.' + this.id, $.proxy(this._onKeyup, this));
-    },
-
-    _onKeyup: function (e) {
-      if (this._skipSearch(e)) { return; }
-      this.completer.trigger(this.getTextFromHeadToCaret(), true);
-    },
-
-    // Suppress searching if it returns true.
-    _skipSearch: function (clickEvent) {
-      switch (clickEvent.keyCode) {
-        case 9:  // TAB
-        case 13: // ENTER
-        case 40: // DOWN
-        case 38: // UP
-        case 27: // ESC
-          return true;
-      }
-      if (clickEvent.ctrlKey) switch (clickEvent.keyCode) {
-        case 78: // Ctrl-N
-        case 80: // Ctrl-P
-          return true;
-      }
-    }
-  });
-
-  $.fn.textcomplete.Adapter = Adapter;
-}(jQuery);
-
-+function ($) {
-  'use strict';
-
-  // Textarea adapter
-  // ================
-  //
-  // Managing a textarea. It doesn't know a Dropdown.
-  function Textarea(element, completer, option) {
-    this.initialize(element, completer, option);
-  }
-
-  $.extend(Textarea.prototype, $.fn.textcomplete.Adapter.prototype, {
-    // Public methods
-    // --------------
-
-    // Update the textarea with the given value and strategy.
-    select: function (value, strategy, e) {
-      var pre = this.getTextFromHeadToCaret();
-      var post = this.el.value.substring(this.el.selectionEnd);
-      var newSubstr = strategy.replace(value, e);
-      var regExp;
-      if (typeof newSubstr !== 'undefined') {
-        if ($.isArray(newSubstr)) {
-          post = newSubstr[1] + post;
-          newSubstr = newSubstr[0];
-        }
-        regExp = $.isFunction(strategy.match) ? strategy.match(pre) : strategy.match;
-        pre = pre.replace(regExp, newSubstr);
-        this.$el.val(pre + post);
-        this.el.selectionStart = this.el.selectionEnd = pre.length;
-      }
-    },
-
-    getTextFromHeadToCaret: function () {
-      return this.el.value.substring(0, this.el.selectionEnd);
-    },
-
-    // Private methods
-    // ---------------
-
-    _getCaretRelativePosition: function () {
-      var p = $.fn.textcomplete.getCaretCoordinates(this.el, this.el.selectionStart);
-      return {
-        top: p.top + this._calculateLineHeight() - this.$el.scrollTop(),
-        left: p.left - this.$el.scrollLeft(),
-        lineHeight: this._calculateLineHeight()
-      };
-    },
-
-    _calculateLineHeight: function () {
-      var lineHeight = parseInt(this.$el.css('line-height'), 10);
-      if (isNaN(lineHeight)) {
-        // http://stackoverflow.com/a/4515470/1297336
-        var parentNode = this.el.parentNode;
-        var temp = document.createElement(this.el.nodeName);
-        var style = this.el.style;
-        temp.setAttribute(
-          'style',
-          'margin:0px;padding:0px;font-family:' + style.fontFamily + ';font-size:' + style.fontSize
-        );
-        temp.innerHTML = 'test';
-        parentNode.appendChild(temp);
-        lineHeight = temp.clientHeight;
-        parentNode.removeChild(temp);
-      }
-      return lineHeight;
-    }
-  });
-
-  $.fn.textcomplete.Textarea = Textarea;
-}(jQuery);
-
-+function ($) {
-  'use strict';
-
-  var sentinelChar = '吶';
-
-  function IETextarea(element, completer, option) {
-    this.initialize(element, completer, option);
-    $('<span>' + sentinelChar + '</span>').css({
-      position: 'absolute',
-      top: -9999,
-      left: -9999
-    }).insertBefore(element);
-  }
-
-  $.extend(IETextarea.prototype, $.fn.textcomplete.Textarea.prototype, {
-    // Public methods
-    // --------------
-
-    select: function (value, strategy, e) {
-      var pre = this.getTextFromHeadToCaret();
-      var post = this.el.value.substring(pre.length);
-      var newSubstr = strategy.replace(value, e);
-      var regExp;
-      if (typeof newSubstr !== 'undefined') {
-        if ($.isArray(newSubstr)) {
-          post = newSubstr[1] + post;
-          newSubstr = newSubstr[0];
-        }
-        regExp = $.isFunction(strategy.match) ? strategy.match(pre) : strategy.match;
-        pre = pre.replace(regExp, newSubstr);
-        this.$el.val(pre + post);
-        this.el.focus();
-        var range = this.el.createTextRange();
-        range.collapse(true);
-        range.moveEnd('character', pre.length);
-        range.moveStart('character', pre.length);
-        range.select();
-      }
-    },
-
-    getTextFromHeadToCaret: function () {
-      this.el.focus();
-      var range = document.selection.createRange();
-      range.moveStart('character', -this.el.value.length);
-      var arr = range.text.split(sentinelChar)
-      return arr.length === 1 ? arr[0] : arr[1];
-    }
-  });
-
-  $.fn.textcomplete.IETextarea = IETextarea;
-}(jQuery);
-
-// NOTE: TextComplete plugin has contenteditable support but it does not work
-//       fine especially on old IEs.
-//       Any pull requests are REALLY welcome.
-
-+function ($) {
-  'use strict';
-
-  // ContentEditable adapter
-  // =======================
-  //
-  // Adapter for contenteditable elements.
-  function ContentEditable (element, completer, option) {
-    this.initialize(element, completer, option);
-  }
-
-  $.extend(ContentEditable.prototype, $.fn.textcomplete.Adapter.prototype, {
-    // Public methods
-    // --------------
-
-    // Update the content with the given value and strategy.
-    // When an dropdown item is selected, it is executed.
-    select: function (value, strategy, e) {
-      var pre = this.getTextFromHeadToCaret();
-      // use ownerDocument instead of window to support iframes
-      var sel = this.el.ownerDocument.getSelection();
-      
-      var range = sel.getRangeAt(0);
-      var selection = range.cloneRange();
-      selection.selectNodeContents(range.startContainer);
-      var content = selection.toString();
-      var post = content.substring(range.startOffset);
-      var newSubstr = strategy.replace(value, e);
-      var regExp;
-      if (typeof newSubstr !== 'undefined') {
-        if ($.isArray(newSubstr)) {
-          post = newSubstr[1] + post;
-          newSubstr = newSubstr[0];
-        }
-        regExp = $.isFunction(strategy.match) ? strategy.match(pre) : strategy.match;
-        pre = pre.replace(regExp, newSubstr)
-            .replace(/ $/, "&nbsp"); // &nbsp necessary at least for CKeditor to not eat spaces
-        range.selectNodeContents(range.startContainer);
-        range.deleteContents();
-        
-        // create temporary elements
-        var preWrapper = this.el.ownerDocument.createElement("div");
-        preWrapper.innerHTML = pre;
-        var postWrapper = this.el.ownerDocument.createElement("div");
-        postWrapper.innerHTML = post;
-        
-        // create the fragment thats inserted
-        var fragment = this.el.ownerDocument.createDocumentFragment();
-        var childNode;
-        var lastOfPre;
-        while (childNode = preWrapper.firstChild) {
-        	lastOfPre = fragment.appendChild(childNode);
-        }
-        while (childNode = postWrapper.firstChild) {
-        	fragment.appendChild(childNode);
-        }
-        
-        // insert the fragment & jump behind the last node in "pre"
-        range.insertNode(fragment);
-        range.setStartAfter(lastOfPre);
-        
-        range.collapse(true);
-        sel.removeAllRanges();
-        sel.addRange(range);
-      }
-    },
-
-    // Private methods
-    // ---------------
-
-    // Returns the caret's relative position from the contenteditable's
-    // left top corner.
-    //
-    // Examples
-    //
-    //   this._getCaretRelativePosition()
-    //   //=> { top: 18, left: 200, lineHeight: 16 }
-    //
-    // Dropdown's position will be decided using the result.
-    _getCaretRelativePosition: function () {
-      var range = this.el.ownerDocument.getSelection().getRangeAt(0).cloneRange();
-      var node = this.el.ownerDocument.createElement('span');
-      range.insertNode(node);
-      range.selectNodeContents(node);
-      range.deleteContents();
-      var $node = $(node);
-      var position = $node.offset();
-      position.left -= this.$el.offset().left;
-      position.top += $node.height() - this.$el.offset().top;
-      position.lineHeight = $node.height();
-      
-      // special positioning logic for iframes
-      // this is typically used for contenteditables such as tinymce or ckeditor
-      if (this.completer.$iframe) {
-        var iframePosition = this.completer.$iframe.offset();
-        position.top += iframePosition.top;
-        position.left += iframePosition.left;
-        //subtract scrollTop from element in iframe
-        position.top -= this.$el.scrollTop(); 
-      }
-      
-      $node.remove();
-      return position;
-    },
-
-    // Returns the string between the first character and the caret.
-    // Completer will be triggered with the result for start autocompleting.
-    //
-    // Example
-    //
-    //   // Suppose the html is '<b>hello</b> wor|ld' and | is the caret.
-    //   this.getTextFromHeadToCaret()
-    //   // => ' wor'  // not '<b>hello</b> wor'
-    getTextFromHeadToCaret: function () {
-      var range = this.el.ownerDocument.getSelection().getRangeAt(0);
-      var selection = range.cloneRange();
-      selection.selectNodeContents(range.startContainer);
-      return selection.toString().substring(0, range.startOffset);
-    }
-  });
-
-  $.fn.textcomplete.ContentEditable = ContentEditable;
-}(jQuery);
-
-// NOTE: TextComplete plugin has contenteditable support but it does not work
-//       fine especially on old IEs.
-//       Any pull requests are REALLY welcome.
-
-+function ($) {
-  'use strict';
-
-  // CKEditor adapter
-  // =======================
-  //
-  // Adapter for CKEditor, based on contenteditable elements.
-  function CKEditor (element, completer, option) {
-    this.initialize(element, completer, option);
-  }
-
-  $.extend(CKEditor.prototype, $.fn.textcomplete.ContentEditable.prototype, {
-    _bindEvents: function () {
-      var $this = this;
-      CKEDITOR.instances["issue_notes"].on('key', function(event) {
-        var domEvent = event.data;
-        $this._onKeyup(domEvent);
-        if ($this.completer.dropdown.shown && $this._skipSearch(domEvent)) {
-          return false;
-        }
-      }, null, null, 1); // 1 = Priority = Important!
-      // we actually also need the native event, as the CKEditor one is happening to late
-      this.$el.on('keyup.' + this.id, $.proxy(this._onKeyup, this));
-    },
-});
-
-  $.fn.textcomplete.CKEditor = CKEditor;
-}(jQuery);
-
-// The MIT License (MIT)
-// 
-// Copyright (c) 2015 Jonathan Ong me@jongleberry.com
-// 
-// 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.
-//
-// https://github.com/component/textarea-caret-position
-
-(function ($) {
-
-// The properties that we copy into a mirrored div.
-// Note that some browsers, such as Firefox,
-// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,
-// so we have to do every single property specifically.
-var properties = [
-  'direction',  // RTL support
-  'boxSizing',
-  'width',  // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does
-  'height',
-  'overflowX',
-  'overflowY',  // copy the scrollbar for IE
-
-  'borderTopWidth',
-  'borderRightWidth',
-  'borderBottomWidth',
-  'borderLeftWidth',
-  'borderStyle',
-
-  'paddingTop',
-  'paddingRight',
-  'paddingBottom',
-  'paddingLeft',
-
-  // https://developer.mozilla.org/en-US/docs/Web/CSS/font
-  'fontStyle',
-  'fontVariant',
-  'fontWeight',
-  'fontStretch',
-  'fontSize',
-  'fontSizeAdjust',
-  'lineHeight',
-  'fontFamily',
-
-  'textAlign',
-  'textTransform',
-  'textIndent',
-  'textDecoration',  // might not make a difference, but better be safe
-
-  'letterSpacing',
-  'wordSpacing',
-
-  'tabSize',
-  'MozTabSize'
-
-];
-
-var isBrowser = (typeof window !== 'undefined');
-var isFirefox = (isBrowser && window.mozInnerScreenX != null);
-
-function getCaretCoordinates(element, position, options) {
-  if(!isBrowser) {
-    throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');
-  }
-
-  var debug = options && options.debug || false;
-  if (debug) {
-    var el = document.querySelector('#input-textarea-caret-position-mirror-div');
-    if ( el ) { el.parentNode.removeChild(el); }
-  }
-
-  // mirrored div
-  var div = document.createElement('div');
-  div.id = 'input-textarea-caret-position-mirror-div';
-  document.body.appendChild(div);
-
-  var style = div.style;
-  var computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle;  // currentStyle for IE < 9
-
-  // default textarea styles
-  style.whiteSpace = 'pre-wrap';
-  if (element.nodeName !== 'INPUT')
-    style.wordWrap = 'break-word';  // only for textarea-s
-
-  // position off-screen
-  style.position = 'absolute';  // required to return coordinates properly
-  if (!debug)
-    style.visibility = 'hidden';  // not 'display: none' because we want rendering
-
-  // transfer the element's properties to the div
-  properties.forEach(function (prop) {
-    style[prop] = computed[prop];
-  });
-
-  if (isFirefox) {
-    // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275
-    if (element.scrollHeight > parseInt(computed.height))
-      style.overflowY = 'scroll';
-  } else {
-    style.overflow = 'hidden';  // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'
-  }
-
-  div.textContent = element.value.substring(0, position);
-  // the second special handling for input type="text" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037
-  if (element.nodeName === 'INPUT')
-    div.textContent = div.textContent.replace(/\s/g, '\u00a0');
-
-  var span = document.createElement('span');
-  // Wrapping must be replicated *exactly*, including when a long word gets
-  // onto the next line, with whitespace at the end of the line before (#7).
-  // The  *only* reliable way to do that is to copy the *entire* rest of the
-  // textarea's content into the <span> created at the caret position.
-  // for inputs, just '.' would be enough, but why bother?
-  span.textContent = element.value.substring(position) || '.';  // || because a completely empty faux span doesn't render at all
-  div.appendChild(span);
-
-  var coordinates = {
-    top: span.offsetTop + parseInt(computed['borderTopWidth']),
-    left: span.offsetLeft + parseInt(computed['borderLeftWidth'])
-  };
-
-  if (debug) {
-    span.style.backgroundColor = '#aaa';
-  } else {
-    document.body.removeChild(div);
-  }
-
-  return coordinates;
-}
-
-$.fn.textcomplete.getCaretCoordinates = getCaretCoordinates;
-
-}(jQuery));
-
-return jQuery;
-}));
diff --git a/pagure/static/emoji/jquery.textcomplete-1.7.1.min.js b/pagure/static/emoji/jquery.textcomplete-1.7.1.min.js
deleted file mode 100644
index 32f6414..0000000
--- a/pagure/static/emoji/jquery.textcomplete-1.7.1.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! jquery-textcomplete - v1.7.1 - 2016-08-29 */
-!function(a){if("function"==typeof define&&define.amd)define(["jquery"],a);else if("object"==typeof module&&module.exports){var b=require("jquery");module.exports=a(b)}else a(jQuery)}(function(a){if("undefined"==typeof a)throw new Error("jQuery.textcomplete requires jQuery");return+function(a){"use strict";var b=function(a){console.warn&&console.warn(a)},c=1;a.fn.textcomplete=function(d,e){var f=Array.prototype.slice.call(arguments);return this.each(function(){var g=this,h=a(this),i=h.data("textComplete");if(i||(e||(e={}),e._oid=c++,i=new a.fn.textcomplete.Completer(this,e),h.data("textComplete",i)),"string"==typeof d){if(!i)return;f.shift(),i[d].apply(i,f),"destroy"===d&&h.removeData("textComplete")}else a.each(d,function(c){a.each(["header","footer","placement","maxCount"],function(a){c[a]&&(i.option[a]=c[a],b(a+"as a strategy param is deprecated. Use option."),delete c[a])})}),i.register(a.fn.textcomplete.Strategy.parse(d,{el:g,$el:h}))})}}(a),+function(a){"use strict";function b(c,d){if(this.$el=a(c),this.id="textcomplete"+e++,this.strategies=[],this.views=[],this.option=a.extend({},b.defaults,d),!(this.$el.is("input[type=text]")||this.$el.is("input[type=search]")||this.$el.is("textarea")||c.isContentEditable||"true"==c.contentEditable))throw new Error("textcomplete must be called on a Textarea or a ContentEditable.");if(c===c.ownerDocument.activeElement)this.initialize();else{var f=this;this.$el.one("focus."+this.id,function(){f.initialize()}),this.option.adapter&&"CKEditor"!=this.option.adapter||"undefined"==typeof CKEDITOR||!this.$el.is("textarea")||CKEDITOR.on("instanceReady",function(b){b.editor.once("focus",function(c){f.$el=a(b.editor.editable().$),f.option.adapter||(f.option.adapter=a.fn.textcomplete.CKEditor),f.initialize()})})}}var c=function(a){var b,c;return function(){var d=Array.prototype.slice.call(arguments);if(b)return void(c=d);b=!0;var e=this;d.unshift(function f(){if(c){var d=c;c=void 0,d.unshift(f),a.apply(e,d)}else b=!1}),a.apply(this,d)}},d=function(a){return"[object String]"===Object.prototype.toString.call(a)},e=0;b.defaults={appendTo:"body",className:"",dropdownClassName:"dropdown-menu textcomplete-dropdown",maxCount:10,zIndex:"100",rightEdgeOffset:30},a.extend(b.prototype,{id:null,option:null,strategies:null,adapter:null,dropdown:null,$el:null,$iframe:null,initialize:function(){var b=this.$el.get(0);if(this.$el.prop("ownerDocument")!==document&&window.frames.length)for(var c=0;c<window.frames.length;c++)if(this.$el.prop("ownerDocument")===window.frames[c].document){this.$iframe=a(window.frames[c].frameElement);break}this.dropdown=new a.fn.textcomplete.Dropdown(b,this,this.option);var d,e;this.option.adapter?d=this.option.adapter:(e=this.$el.is("textarea")||this.$el.is("input[type=text]")||this.$el.is("input[type=search]")?"number"==typeof b.selectionEnd?"Textarea":"IETextarea":"ContentEditable",d=a.fn.textcomplete[e]),this.adapter=new d(b,this,this.option)},destroy:function(){this.$el.off("."+this.id),this.adapter&&this.adapter.destroy(),this.dropdown&&this.dropdown.destroy(),this.$el=this.adapter=this.dropdown=null},deactivate:function(){this.dropdown&&this.dropdown.deactivate()},trigger:function(a,b){this.dropdown||this.initialize(),null!=a||(a=this.adapter.getTextFromHeadToCaret());var c=this._extractSearchQuery(a);if(c.length){var d=c[1];if(b&&this._term===d&&""!==d)return;this._term=d,this._search.apply(this,c)}else this._term=null,this.dropdown.deactivate()},fire:function(a){var b=Array.prototype.slice.call(arguments,1);return this.$el.trigger(a,b),this},register:function(a){Array.prototype.push.apply(this.strategies,a)},select:function(a,b,c){this._term=null,this.adapter.select(a,b,c),this.fire("change").fire("textComplete:select",a,b),this.adapter.focus()},_clearAtNext:!0,_term:null,_extractSearchQuery:function(b){for(var c=0;c<this.strategies.length;c++){var e=this.strategies[c],f=e.context(b);if(f||""===f){var g=a.isFunction(e.match)?e.match(b):e.match;d(f)&&(b=f);var h=b.match(g);if(h)return[e,h[e.index],h]}}return[]},_search:c(function(a,b,c,d){var e=this;b.search(c,function(d,f){e.dropdown.shown||e.dropdown.activate(),e._clearAtNext&&(e.dropdown.clear(),e._clearAtNext=!1),e.dropdown.setPosition(e.adapter.getCaretPosition()),e.dropdown.render(e._zip(d,b,c)),f||(a(),e._clearAtNext=!0)},d)}),_zip:function(b,c,d){return a.map(b,function(a){return{value:a,strategy:c,term:d}})}}),a.fn.textcomplete.Completer=b}(a),+function(a){"use strict";function b(c,d,f){this.$el=b.createElement(f),this.completer=d,this.id=d.id+"dropdown",this._data=[],this.$inputEl=a(c),this.option=f,f.listPosition&&(this.setPosition=f.listPosition),f.height&&this.$el.height(f.height);var g=this;a.each(["maxCount","placement","footer","header","noResultsMessage","className"],function(a,b){null!=f[b]&&(g[b]=f[b])}),this._bindEvents(c),e[this.id]=this}var c=a(window),d=function(a,b){var c,d,e=b.strategy.idProperty;for(c=0;c<a.length;c++)if(d=a[c],d.strategy===b.strategy)if(e){if(d.value[e]===b.value[e])return!0}else if(d.value===b.value)return!0;return!1},e={};a(document).on("click",function(b){var c=b.originalEvent&&b.originalEvent.keepTextCompleteDropdown;a.each(e,function(a,b){a!==c&&b.deactivate()})});var f={SKIP_DEFAULT:0,KEY_UP:1,KEY_DOWN:2,KEY_ENTER:3,KEY_PAGEUP:4,KEY_PAGEDOWN:5,KEY_ESCAPE:6};a.extend(b,{createElement:function(b){var c=b.appendTo;c instanceof a||(c=a(c));var d=a("<ul></ul>").addClass(b.dropdownClassName).attr("id","textcomplete-dropdown-"+b._oid).css({display:"none",left:0,position:"absolute",zIndex:b.zIndex}).appendTo(c);return d}}),a.extend(b.prototype,{$el:null,$inputEl:null,completer:null,footer:null,header:null,id:null,maxCount:null,placement:"",shown:!1,data:[],className:"",destroy:function(){this.deactivate(),this.$el.off("."+this.id),this.$inputEl.off("."+this.id),this.clear(),this.$el.remove(),this.$el=this.$inputEl=this.completer=null,delete e[this.id]},render:function(b){var c=this._buildContents(b),d=a.map(this.data,function(a){return a.value});if(this.data.length){var e=b[0].strategy;e.id?this.$el.attr("data-strategy",e.id):this.$el.removeAttr("data-strategy"),this._renderHeader(d),this._renderFooter(d),c&&(this._renderContents(c),this._fitToBottom(),this._fitToRight(),this._activateIndexedItem()),this._setScroll()}else this.noResultsMessage?this._renderNoResultsMessage(d):this.shown&&this.deactivate()},setPosition:function(b){var d="absolute";return this.$inputEl.add(this.$inputEl.parents()).each(function(){return"absolute"===a(this).css("position")?!1:"fixed"===a(this).css("position")?(b.top-=c.scrollTop(),b.left-=c.scrollLeft(),d="fixed",!1):void 0}),this.$el.css(this._applyPlacement(b)),this.$el.css({position:d}),this},clear:function(){this.$el.html(""),this.data=[],this._index=0,this._$header=this._$footer=this._$noResultsMessage=null},activate:function(){return this.shown||(this.clear(),this.$el.show(),this.className&&this.$el.addClass(this.className),this.completer.fire("textComplete:show"),this.shown=!0),this},deactivate:function(){return this.shown&&(this.$el.hide(),this.className&&this.$el.removeClass(this.className),this.completer.fire("textComplete:hide"),this.shown=!1),this},isUp:function(a){return 38===a.keyCode||a.ctrlKey&&80===a.keyCode},isDown:function(a){return 40===a.keyCode||a.ctrlKey&&78===a.keyCode},isEnter:function(a){var b=a.ctrlKey||a.altKey||a.metaKey||a.shiftKey;return!b&&(13===a.keyCode||9===a.keyCode||this.option.completeOnSpace===!0&&32===a.keyCode)},isPageup:function(a){return 33===a.keyCode},isPagedown:function(a){return 34===a.keyCode},isEscape:function(a){return 27===a.keyCode},_data:null,_index:null,_$header:null,_$noResultsMessage:null,_$footer:null,_bindEvents:function(){this.$el.on("mousedown."+this.id,".textcomplete-item",a.proxy(this._onClick,this)),this.$el.on("touchstart."+this.id,".textcomplete-item",a.proxy(this._onClick,this)),this.$el.on("mouseover."+this.id,".textcomplete-item",a.proxy(this._onMouseover,this)),this.$inputEl.on("keydown."+this.id,a.proxy(this._onKeydown,this))},_onClick:function(b){var c=a(b.target);b.preventDefault(),b.originalEvent.keepTextCompleteDropdown=this.id,c.hasClass("textcomplete-item")||(c=c.closest(".textcomplete-item"));var d=this.data[parseInt(c.data("index"),10)];this.completer.select(d.value,d.strategy,b);var e=this;setTimeout(function(){e.deactivate(),"touchstart"===b.type&&e.$inputEl.focus()},0)},_onMouseover:function(b){var c=a(b.target);b.preventDefault(),c.hasClass("textcomplete-item")||(c=c.closest(".textcomplete-item")),this._index=parseInt(c.data("index"),10),this._activateIndexedItem()},_onKeydown:function(b){if(this.shown){var c;switch(a.isFunction(this.option.onKeydown)&&(c=this.option.onKeydown(b,f)),null==c&&(c=this._defaultKeydown(b)),c){case f.KEY_UP:b.preventDefault(),this._up();break;case f.KEY_DOWN:b.preventDefault(),this._down();break;case f.KEY_ENTER:b.preventDefault(),this._enter(b);break;case f.KEY_PAGEUP:b.preventDefault(),this._pageup();break;case f.KEY_PAGEDOWN:b.preventDefault(),this._pagedown();break;case f.KEY_ESCAPE:b.preventDefault(),this.deactivate()}}},_defaultKeydown:function(a){return this.isUp(a)?f.KEY_UP:this.isDown(a)?f.KEY_DOWN:this.isEnter(a)?f.KEY_ENTER:this.isPageup(a)?f.KEY_PAGEUP:this.isPagedown(a)?f.KEY_PAGEDOWN:this.isEscape(a)?f.KEY_ESCAPE:void 0},_up:function(){0===this._index?this._index=this.data.length-1:this._index-=1,this._activateIndexedItem(),this._setScroll()},_down:function(){this._index===this.data.length-1?this._index=0:this._index+=1,this._activateIndexedItem(),this._setScroll()},_enter:function(a){var b=this.data[parseInt(this._getActiveElement().data("index"),10)];this.completer.select(b.value,b.strategy,a),this.deactivate()},_pageup:function(){var b=0,c=this._getActiveElement().position().top-this.$el.innerHeight();this.$el.children().each(function(d){return a(this).position().top+a(this).outerHeight()>c?(b=d,!1):void 0}),this._index=b,this._activateIndexedItem(),this._setScroll()},_pagedown:function(){var b=this.data.length-1,c=this._getActiveElement().position().top+this.$el.innerHeight();this.$el.children().each(function(d){return a(this).position().top>c?(b=d,!1):void 0}),this._index=b,this._activateIndexedItem(),this._setScroll()},_activateIndexedItem:function(){this.$el.find(".textcomplete-item.active").removeClass("active"),this._getActiveElement().addClass("active")},_getActiveElement:function(){return this.$el.children(".textcomplete-item:nth("+this._index+")")},_setScroll:function(){var a=this._getActiveElement(),b=a.position().top,c=a.outerHeight(),d=this.$el.innerHeight(),e=this.$el.scrollTop();0===this._index||this._index==this.data.length-1||0>b?this.$el.scrollTop(b+e):b+c>d&&this.$el.scrollTop(b+c+e-d)},_buildContents:function(a){var b,c,e,f="";for(c=0;c<a.length&&this.data.length!==this.maxCount;c++)b=a[c],d(this.data,b)||(e=this.data.length,this.data.push(b),f+='<li class="textcomplete-item" data-index="'+e+'"><a>',f+=b.strategy.template(b.value,b.term),f+="</a></li>");return f},_renderHeader:function(b){if(this.header){this._$header||(this._$header=a('<li class="textcomplete-header"></li>').prependTo(this.$el));var c=a.isFunction(this.header)?this.header(b):this.header;this._$header.html(c)}},_renderFooter:function(b){if(this.footer){this._$footer||(this._$footer=a('<li class="textcomplete-footer"></li>').appendTo(this.$el));var c=a.isFunction(this.footer)?this.footer(b):this.footer;this._$footer.html(c)}},_renderNoResultsMessage:function(b){if(this.noResultsMessage){this._$noResultsMessage||(this._$noResultsMessage=a('<li class="textcomplete-no-results-message"></li>').appendTo(this.$el));var c=a.isFunction(this.noResultsMessage)?this.noResultsMessage(b):this.noResultsMessage;this._$noResultsMessage.html(c)}},_renderContents:function(a){this._$footer?this._$footer.before(a):this.$el.append(a)},_fitToBottom:function(){var a=c.scrollTop()+c.height(),b=this.$el.height();this.$el.position().top+b>a&&(this.completer.$iframe||this.$el.offset({top:a-b}))},_fitToRight:function(){for(var a,b=this.option.rightEdgeOffset,d=this.$el.offset().left,e=this.$el.width(),f=c.width()-b;d+e>f&&(this.$el.offset({left:d-b}),a=this.$el.offset().left,!(a>=d));)d=a},_applyPlacement:function(a){return-1!==this.placement.indexOf("top")?a={top:"auto",bottom:this.$el.parent().height()-a.top+a.lineHeight,left:a.left}:(a.bottom="auto",delete a.lineHeight),-1!==this.placement.indexOf("absleft")?a.left=0:-1!==this.placement.indexOf("absright")&&(a.right=0,a.left="auto"),a}}),a.fn.textcomplete.Dropdown=b,a.extend(a.fn.textcomplete,f)}(a),+function(a){"use strict";function b(b){a.extend(this,b),this.cache&&(this.search=c(this.search))}var c=function(a){var b={};return function(c,d){b[c]?d(b[c]):a.call(this,c,function(a){b[c]=(b[c]||[]).concat(a),d.apply(null,arguments)})}};b.parse=function(c,d){return a.map(c,function(a){var c=new b(a);return c.el=d.el,c.$el=d.$el,c})},a.extend(b.prototype,{match:null,replace:null,search:null,id:null,cache:!1,context:function(){return!0},index:2,template:function(a){return a},idProperty:null}),a.fn.textcomplete.Strategy=b}(a),+function(a){"use strict";function b(){}var c=Date.now||function(){return(new Date).getTime()},d=function(a,b){var d,e,f,g,h,i=function(){var j=c()-g;b>j?d=setTimeout(i,b-j):(d=null,h=a.apply(f,e),f=e=null)};return function(){return f=this,e=arguments,g=c(),d||(d=setTimeout(i,b)),h}};a.extend(b.prototype,{id:null,completer:null,el:null,$el:null,option:null,initialize:function(b,c,e){this.el=b,this.$el=a(b),this.id=c.id+this.constructor.name,this.completer=c,this.option=e,this.option.debounce&&(this._onKeyup=d(this._onKeyup,this.option.debounce)),this._bindEvents()},destroy:function(){this.$el.off("."+this.id),this.$el=this.el=this.completer=null},select:function(){throw new Error("Not implemented")},getCaretPosition:function(){var b=this._getCaretRelativePosition(),c=this.$el.offset(),d=this.option.appendTo;if(d){d instanceof a||(d=a(d));var e=d.offsetParent().offset();c.top-=e.top,c.left-=e.left}return b.top+=c.top,b.left+=c.left,b},focus:function(){this.$el.focus()},_bindEvents:function(){this.$el.on("keyup."+this.id,a.proxy(this._onKeyup,this))},_onKeyup:function(a){this._skipSearch(a)||this.completer.trigger(this.getTextFromHeadToCaret(),!0)},_skipSearch:function(a){switch(a.keyCode){case 9:case 13:case 40:case 38:case 27:return!0}if(a.ctrlKey)switch(a.keyCode){case 78:case 80:return!0}}}),a.fn.textcomplete.Adapter=b}(a),+function(a){"use strict";function b(a,b,c){this.initialize(a,b,c)}a.extend(b.prototype,a.fn.textcomplete.Adapter.prototype,{select:function(b,c,d){var e,f=this.getTextFromHeadToCaret(),g=this.el.value.substring(this.el.selectionEnd),h=c.replace(b,d);"undefined"!=typeof h&&(a.isArray(h)&&(g=h[1]+g,h=h[0]),e=a.isFunction(c.match)?c.match(f):c.match,f=f.replace(e,h),this.$el.val(f+g),this.el.selectionStart=this.el.selectionEnd=f.length)},getTextFromHeadToCaret:function(){return this.el.value.substring(0,this.el.selectionEnd)},_getCaretRelativePosition:function(){var b=a.fn.textcomplete.getCaretCoordinates(this.el,this.el.selectionStart);return{top:b.top+this._calculateLineHeight()-this.$el.scrollTop(),left:b.left-this.$el.scrollLeft(),lineHeight:this._calculateLineHeight()}},_calculateLineHeight:function(){var a=parseInt(this.$el.css("line-height"),10);if(isNaN(a)){var b=this.el.parentNode,c=document.createElement(this.el.nodeName),d=this.el.style;c.setAttribute("style","margin:0px;padding:0px;font-family:"+d.fontFamily+";font-size:"+d.fontSize),c.innerHTML="test",b.appendChild(c),a=c.clientHeight,b.removeChild(c)}return a}}),a.fn.textcomplete.Textarea=b}(a),+function(a){"use strict";function b(b,d,e){this.initialize(b,d,e),a("<span>"+c+"</span>").css({position:"absolute",top:-9999,left:-9999}).insertBefore(b)}var c="吶";a.extend(b.prototype,a.fn.textcomplete.Textarea.prototype,{select:function(b,c,d){var e,f=this.getTextFromHeadToCaret(),g=this.el.value.substring(f.length),h=c.replace(b,d);if("undefined"!=typeof h){a.isArray(h)&&(g=h[1]+g,h=h[0]),e=a.isFunction(c.match)?c.match(f):c.match,f=f.replace(e,h),this.$el.val(f+g),this.el.focus();var i=this.el.createTextRange();i.collapse(!0),i.moveEnd("character",f.length),i.moveStart("character",f.length),i.select()}},getTextFromHeadToCaret:function(){this.el.focus();var a=document.selection.createRange();a.moveStart("character",-this.el.value.length);var b=a.text.split(c);return 1===b.length?b[0]:b[1]}}),a.fn.textcomplete.IETextarea=b}(a),+function(a){"use strict";function b(a,b,c){this.initialize(a,b,c)}a.extend(b.prototype,a.fn.textcomplete.Adapter.prototype,{select:function(b,c,d){var e=this.getTextFromHeadToCaret(),f=this.el.ownerDocument.getSelection(),g=f.getRangeAt(0),h=g.cloneRange();h.selectNodeContents(g.startContainer);var i,j=h.toString(),k=j.substring(g.startOffset),l=c.replace(b,d);if("undefined"!=typeof l){a.isArray(l)&&(k=l[1]+k,l=l[0]),i=a.isFunction(c.match)?c.match(e):c.match,e=e.replace(i,l).replace(/ $/,"&nbsp"),g.selectNodeContents(g.startContainer),g.deleteContents();var m=this.el.ownerDocument.createElement("div");m.innerHTML=e;var n=this.el.ownerDocument.createElement("div");n.innerHTML=k;for(var o,p,q=this.el.ownerDocument.createDocumentFragment();o=m.firstChild;)p=q.appendChild(o);for(;o=n.firstChild;)q.appendChild(o);g.insertNode(q),g.setStartAfter(p),g.collapse(!0),f.removeAllRanges(),f.addRange(g)}},_getCaretRelativePosition:function(){var b=this.el.ownerDocument.getSelection().getRangeAt(0).cloneRange(),c=this.el.ownerDocument.createElement("span");b.insertNode(c),b.selectNodeContents(c),b.deleteContents();var d=a(c),e=d.offset();if(e.left-=this.$el.offset().left,e.top+=d.height()-this.$el.offset().top,e.lineHeight=d.height(),this.completer.$iframe){var f=this.completer.$iframe.offset();e.top+=f.top,e.left+=f.left,e.top-=this.$el.scrollTop()}return d.remove(),e},getTextFromHeadToCaret:function(){var a=this.el.ownerDocument.getSelection().getRangeAt(0),b=a.cloneRange();return b.selectNodeContents(a.startContainer),b.toString().substring(0,a.startOffset)}}),a.fn.textcomplete.ContentEditable=b}(a),+function(a){"use strict";function b(a,b,c){this.initialize(a,b,c)}a.extend(b.prototype,a.fn.textcomplete.ContentEditable.prototype,{_bindEvents:function(){var b=this;CKEDITOR.instances.issue_notes.on("key",function(a){var c=a.data;return b._onKeyup(c),b.completer.dropdown.shown&&b._skipSearch(c)?!1:void 0},null,null,1),this.$el.on("keyup."+this.id,a.proxy(this._onKeyup,this))}}),a.fn.textcomplete.CKEditor=b}(a),function(a){function b(a,b,f){if(!d)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");var g=f&&f.debug||!1;if(g){var h=document.querySelector("#input-textarea-caret-position-mirror-div");h&&h.parentNode.removeChild(h)}var i=document.createElement("div");i.id="input-textarea-caret-position-mirror-div",document.body.appendChild(i);var j=i.style,k=window.getComputedStyle?getComputedStyle(a):a.currentStyle;j.whiteSpace="pre-wrap","INPUT"!==a.nodeName&&(j.wordWrap="break-word"),j.position="absolute",g||(j.visibility="hidden"),c.forEach(function(a){j[a]=k[a]}),e?a.scrollHeight>parseInt(k.height)&&(j.overflowY="scroll"):j.overflow="hidden",i.textContent=a.value.substring(0,b),"INPUT"===a.nodeName&&(i.textContent=i.textContent.replace(/\s/g," "));var l=document.createElement("span");l.textContent=a.value.substring(b)||".",i.appendChild(l);var m={top:l.offsetTop+parseInt(k.borderTopWidth),left:l.offsetLeft+parseInt(k.borderLeftWidth)};return g?l.style.backgroundColor="#aaa":document.body.removeChild(i),m}var c=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],d="undefined"!=typeof window,e=d&&null!=window.mozInnerScreenX;a.fn.textcomplete.getCaretCoordinates=b}(a),a});
-//# sourceMappingURL=dist/jquery.textcomplete.min.map
\ No newline at end of file
diff --git a/pagure/static/emoji/jquery.textcomplete.js b/pagure/static/emoji/jquery.textcomplete.js
deleted file mode 120000
index a2bee68..0000000
--- a/pagure/static/emoji/jquery.textcomplete.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.textcomplete-1.7.1.js
\ No newline at end of file
diff --git a/pagure/static/emoji/jquery.textcomplete.min.js b/pagure/static/emoji/jquery.textcomplete.min.js
deleted file mode 120000
index 8406123..0000000
--- a/pagure/static/emoji/jquery.textcomplete.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.textcomplete-1.7.1.min.js
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/css/hack-extended-2.020.css b/pagure/static/hack_fonts/css/hack-extended-2.020.css
deleted file mode 100644
index 0f98461..0000000
--- a/pagure/static/hack_fonts/css/hack-extended-2.020.css
+++ /dev/null
@@ -1,38 +0,0 @@
-/*!
- *  Hack v2.020 - https://sourcefoundry.org/hack/
- *  Licenses - Fonts: Hack Open Font License + Bitstream Vera license, CSS: MIT License
- */
-/* FONT PATHS
- * -------------------------- */
-@font-face {
-  font-family: 'Hack';
-  src: url('../fonts/eot/hack-regular-webfont.eot?v=2.020');
-  src: url('../fonts/eot/hack-regular-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-regular-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-regular-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-regular-webfont.ttf?v=2.020') format('truetype');
-  font-weight: 400;
-  font-style: normal;
-}
-
-@font-face {
-  font-family: 'Hack';
-  src: url('../fonts/eot/hack-bold-webfont.eot?v=2.020');
-  src: url('../fonts/eot/hack-bold-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-bold-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-bold-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-bold-webfont.ttf?v=2.020') format('truetype');
-  font-weight: 700;
-  font-style: normal;
-}
-
-@font-face {
-  font-family: 'Hack';
-  src: url('../fonts/eot/hack-italic-webfont.eot?v=2.020');
-  src: url('../fonts/eot/hack-italic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-italic-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-italic-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-italic-webfont.ttf?v=2.020') format('truetype');
-  font-weight: 400;
-  font-style: italic;
-}
-
-@font-face {
-  font-family: 'Hack';
-  src: url('../fonts/eot/hack-bolditalic-webfont.eot?v=2.020');
-  src: url('../fonts/eot/hack-bolditalic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-bolditalic-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-bolditalic-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-bolditalic-webfont.ttf?v=2.020') format('truetype');
-  font-weight: 700;
-  font-style: italic;
-}
-
diff --git a/pagure/static/hack_fonts/css/hack-extended-2.020.min.css b/pagure/static/hack_fonts/css/hack-extended-2.020.min.css
deleted file mode 100644
index 11f9859..0000000
--- a/pagure/static/hack_fonts/css/hack-extended-2.020.min.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- *  Hack v2.020 - https://sourcefoundry.org/hack/
- *  Licenses - Fonts: Hack Open Font License + Bitstream Vera license, CSS: MIT License
- */@font-face{font-family:'Hack';src:url('../fonts/eot/hack-regular-webfont.eot?v=2.020');src:url('../fonts/eot/hack-regular-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-regular-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-regular-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-regular-webfont.ttf?v=2.020') format('truetype');font-weight:400;font-style:normal}@font-face{font-family:'Hack';src:url('../fonts/eot/hack-bold-webfont.eot?v=2.020');src:url('../fonts/eot/hack-bold-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-bold-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-bold-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-bold-webfont.ttf?v=2.020') format('truetype');font-weight:700;font-style:normal}@font-face{font-family:'Hack';src:url('../fonts/eot/hack-italic-webfont.eot?v=2.020');src:url('../fonts/eot/hack-italic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-italic-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-italic-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-italic-webfont.ttf?v=2.020') format('truetype');font-weight:400;font-style:italic}@font-face{font-family:'Hack';src:url('../fonts/eot/hack-bolditalic-webfont.eot?v=2.020');src:url('../fonts/eot/hack-bolditalic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-bolditalic-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-bolditalic-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-bolditalic-webfont.ttf?v=2.020') format('truetype');font-weight:700;font-style:italic}
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/css/hack-extended.css b/pagure/static/hack_fonts/css/hack-extended.css
deleted file mode 120000
index f08cb16..0000000
--- a/pagure/static/hack_fonts/css/hack-extended.css
+++ /dev/null
@@ -1 +0,0 @@
-hack-extended-2.020.css
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/css/hack-extended.min.css b/pagure/static/hack_fonts/css/hack-extended.min.css
deleted file mode 120000
index ceb0a59..0000000
--- a/pagure/static/hack_fonts/css/hack-extended.min.css
+++ /dev/null
@@ -1 +0,0 @@
-hack-extended-2.020.min.css
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/eot/hack-bold-webfont.eot b/pagure/static/hack_fonts/fonts/eot/hack-bold-webfont.eot
deleted file mode 100755
index a87e0ab..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/hack-bold-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/eot/hack-bolditalic-webfont.eot b/pagure/static/hack_fonts/fonts/eot/hack-bolditalic-webfont.eot
deleted file mode 100755
index c99503b..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/hack-bolditalic-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/eot/hack-italic-webfont.eot b/pagure/static/hack_fonts/fonts/eot/hack-italic-webfont.eot
deleted file mode 100755
index c64c219..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/hack-italic-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/eot/hack-regular-webfont.eot b/pagure/static/hack_fonts/fonts/eot/hack-regular-webfont.eot
deleted file mode 100755
index 00725f4..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/hack-regular-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/eot/latin/hack-bold-latin-webfont.eot b/pagure/static/hack_fonts/fonts/eot/latin/hack-bold-latin-webfont.eot
deleted file mode 100755
index 65ffecc..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/latin/hack-bold-latin-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/eot/latin/hack-bolditalic-latin-webfont.eot b/pagure/static/hack_fonts/fonts/eot/latin/hack-bolditalic-latin-webfont.eot
deleted file mode 100755
index 487526a..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/latin/hack-bolditalic-latin-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/eot/latin/hack-italic-latin-webfont.eot b/pagure/static/hack_fonts/fonts/eot/latin/hack-italic-latin-webfont.eot
deleted file mode 100755
index 22f0d06..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/latin/hack-italic-latin-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/eot/latin/hack-regular-latin-webfont.eot b/pagure/static/hack_fonts/fonts/eot/latin/hack-regular-latin-webfont.eot
deleted file mode 100755
index 7edc826..0000000
Binary files a/pagure/static/hack_fonts/fonts/eot/latin/hack-regular-latin-webfont.eot and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/svg/hack-bold-webfont.svg b/pagure/static/hack_fonts/fonts/svg/hack-bold-webfont.svg
deleted file mode 100755
index 555785c..0000000
--- a/pagure/static/hack_fonts/fonts/svg/hack-bold-webfont.svg
+++ /dev/null
@@ -1,1645 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackbold" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M470 1052v456h285v-456l-68 -576h-139zM615 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49 q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5z" />
-<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
-<glyph unicode="#" d="M209 373h-207v215h260l74 293h-219v215h274l94 374h222l-95 -374h203l94 374h224l-97 -374h193v-215h-246l-74 -293h205v-215h-258l-94 -373h-221l94 373h-205l-94 -373h-221zM688 588l74 293h-205l-74 -293h205z" />
-<glyph unicode="$" d="M512 0q-45 3 -142 26q-95 22 -198 66v262q103 -61 200 -94q51 -17 95 -25t86 -9v329q-197 39 -293 135q-96 94 -96 253q0 166 102 265t247 111v237h221l1 -237q32 -5 108 -18q34 -6 72.5 -15.5t83.5 -23.5v-256q-33 22 -68.5 37.5t-69.5 26.5q-39 12 -80 19.5t-87 10.5 v-307q199 -32 298 -134q51 -52 75.5 -121t24.5 -152q0 -86 -27 -152.5t-81 -119.5q-61 -59 -134.5 -84t-114.5 -30l-1 -301h-221zM553 1100q-61 -7 -93 -41q-14 -14 -23 -37t-9 -55q0 -57 32 -95q33 -39 93 -55v283zM694 226q36 5 59 18t39 31q35 40 35 101t-34 101 q-16 18 -40 31t-59 20v-302z" />
-<glyph unicode="%" d="M352 793q-133 0 -226 93q-45 45 -69 100.5t-24 125.5q0 134 93 227t226 93q69 0 125.5 -24t101.5 -69t69 -101.5t24 -125.5q0 -133 -93 -226q-45 -45 -101.5 -69t-125.5 -24zM352 975q58 0 98 40q39 39 39 97q0 57 -40 97t-97 40t-97 -39q-40 -40 -40 -98q0 -33 11 -56 t29 -41q40 -40 97 -40zM48 561l1143 436v-114l-1139 -432zM898 0q-71 0 -129 26.5t-97 65.5q-48 48 -70 107.5t-22 121.5q0 63 23 120.5t69 104.5q43 44 100.5 68.5t125.5 24.5t125 -24t102 -68q43 -42 68.5 -100t25.5 -127q0 -65 -24 -123.5t-69 -103.5q-42 -42 -101 -67.5 t-127 -25.5zM898 182q58 0 98 40t40 97t-41 98q-20 20 -45 30t-52 10q-57 0 -97 -40q-20 -20 -29.5 -45.5t-9.5 -52.5q0 -30 11 -55.5t28 -42.5q39 -39 97 -39z" />
-<glyph unicode="&#x26;" d="M537 -29q-221 0 -361 131q-139 130 -139 340q0 78 18 142t53 122q36 60 87.5 111t121.5 96q-27 43 -45 79t-29 66q-12 33 -18 64.5t-6 66.5q0 76 27 138t82 106q109 87 315 87q38 0 73 -3t70 -8q40 -6 71.5 -13.5t66.5 -18.5v-256q-28 16 -64 31.5t-65 23.5t-63.5 13 t-68.5 5q-38 0 -69 -7t-51 -21q-41 -29 -41 -80q0 -20 7 -43.5t24 -57.5q16 -32 39 -71t59 -94l313 -480q22 39 32 87q11 52 11 106q0 14 -0.5 30t-1.5 29q-1 15 -2 25.5t-4 27.5h235v-51q0 -147 -34 -253q-35 -111 -107 -195l162 -246h-317l-48 72q-39 -26 -77 -43.5 t-82 -31.5q-42 -13 -83 -19.5t-91 -6.5zM580 207q15 0 27 1.5t29 5.5q14 3 26.5 6.5t30.5 11.5l8 4q10 5 16.5 8.5t11 6l9 5t10.5 6.5l-308 469q-66 -44 -99 -102q-34 -59 -34 -135q0 -66 22 -116.5t56 -86.5q79 -84 195 -84z" />
-<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
-<glyph unicode="(" d="M596 -270q-74 107 -134 220.5t-102 235.5q-77 225 -77 457q0 231 78 458q38 110 94.5 221t140.5 232h228q-64 -116 -113.5 -232t-82.5 -231q-64 -222 -64 -448q0 -224 64 -447q65 -227 196 -466h-228v0z" />
-<glyph unicode=")" d="M409 -270q131 239 196 466q64 223 64 447q0 226 -64 448q-32 110 -80.5 226t-115.5 237h228q159 -229 236 -453q39 -114 58 -230.5t19 -229.5q0 -230 -77 -455q-40 -117 -98.5 -229t-137.5 -227h-228v0z" />
-<glyph unicode="*" d="M216 455l239 366l-358 155l51 148l369 -120l19 416h156l19 -416l369 120l51 -148l-358 -155l239 -366l-133 -95l-265 350l-265 -350z" />
-<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
-<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-11 -35 -28 -70t-43 -70q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
-<glyph unicode="-" d="M221 746h791v-291h-791v291z" />
-<glyph unicode="." d="M612 -42q-39 0 -69 13.5t-55 38.5q-52 52 -52 131q0 82 52 134q51 51 125 51q36 0 68 -12.5t58 -38.5q51 -51 51 -134q0 -80 -51 -131q-52 -52 -127 -52z" />
-<glyph unicode="/" d="M899 1493h221l-786 -1683h-221z" />
-<glyph unicode="0" d="M617 -29q-248 0 -371 194q-123 193 -123 580q0 388 123 582q123 193 370 193q248 0 371 -193q123 -194 123 -582t-123 -581t-370 -193zM616 221q103 0 150 125q47 126 47 399q0 274 -47 400q-47 125 -150 125q-102 0 -149 -125q-47 -126 -47 -400q0 -273 47 -399 q47 -125 149 -125zM617 460q-8 0 -14.5 10t-11.5 26.5t-8.5 37.5t-6.5 44q-2 19 -4.5 43t-4 48t-2.5 45t-1 35q0 10 0.5 28.5t2 41.5t3 48t4.5 48q13 117 41 117q15 0 26 -33.5t17 -85.5q2 -21 4 -45t3.5 -47t2.5 -44t1 -34q0 -9 -0.5 -26t-1.5 -39.5t-2.5 -48t-4.5 -50.5 q-7 -60 -18 -89.5t-25 -29.5z" />
-<glyph unicode="1" d="M188 260h330v969l-307 -76v266l309 74h285v-1233h330v-260h-947v260z" />
-<glyph unicode="2" d="M115 216q0 19 6 33.5t19 28.5l135 144q84 90 140 149.5t94.5 101t63.5 69.5t48 54q37 43 64 78.5t44 72.5q33 67 33 135q0 45 -14.5 84.5t-45.5 67.5t-75 41t-97 13q-81 0 -177 -31q-98 -31 -206 -92v275q60 22 114 37t96 23q50 10 100 15t100 5q109 0 203.5 -26.5 t165.5 -83.5q64 -52 99.5 -127t35.5 -179q0 -44 -7 -82t-23 -79q-17 -42 -42.5 -85.5t-58.5 -85.5q-18 -22 -42.5 -49.5t-59.5 -64t-81.5 -84t-107.5 -108.5q-55 -56 -91.5 -87.5t-62 -51t-44 -33.5t-37.5 -34h659v-260h-948v216z" />
-<glyph unicode="3" d="M555 -29q-53 0 -109 4.5t-111 14.5q-51 9 -104 22.5t-106 32.5v274q46 -23 96.5 -41t106.5 -30q57 -13 112 -19t101 -6q66 0 118 13t89 42q36 29 52.5 69t16.5 88q0 51 -17.5 95t-52.5 76q-33 29 -82.5 45.5t-115.5 16.5h-158v260h158q109 0 171 44q32 23 46 54t14 69 q0 82 -60 129q-29 23 -71.5 34.5t-101.5 11.5q-39 0 -84.5 -5t-93.5 -16q-45 -10 -96 -25.5t-103 -35.5v268q105 32 203 48q51 8 98.5 12t92.5 4q238 0 369 -103q132 -104 132 -284q0 -64 -17.5 -118t-58.5 -99q-77 -86 -217 -111q160 -28 244 -127q42 -49 63 -114t21 -150 q0 -106 -34.5 -189t-103.5 -140t-171 -85.5t-236 -28.5z" />
-<glyph unicode="4" d="M694 322h-592v286l566 885h309v-918h164v-253h-164v-322h-283v322zM694 575v590l-377 -590h377z" />
-<glyph unicode="5" d="M533 -29q-43 0 -92 4t-98 12q-50 8 -100.5 20.5t-99.5 27.5v266q45 -22 85 -36t86 -25q45 -11 87 -16t87 -5q158 0 238 67q81 67 81 189q0 66 -22 113.5t-58 79.5t-90.5 50.5t-128.5 18.5q-35 0 -74.5 -4.5t-79.5 -14.5q-41 -10 -83.5 -26t-77.5 -33v834h811v-260h-572 v-277q10 4 32 10.5t45 10.5q18 3 43 4.5t46 1.5q106 0 199 -35.5t160 -103.5q65 -66 101 -159t36 -208q0 -119 -39 -212t-110 -158t-173 -100.5t-239 -35.5z" />
-<glyph unicode="6" d="M644 -31q-131 0 -227.5 44.5t-160.5 139.5q-66 97 -95.5 241t-29.5 330q0 198 35 348.5t116 253.5q76 96 189.5 144t259.5 48q41 0 76 -3.5t73 -11.5q73 -15 150 -45v-268q-40 23 -77.5 40t-73.5 28q-72 22 -141 22q-159 0 -242 -107t-88 -318q23 32 54 57.5t66 40.5 q32 14 75.5 23t98.5 9q99 0 177.5 -31.5t132.5 -94.5q54 -62 82 -153.5t28 -210.5q0 -121 -30.5 -220.5t-92.5 -168.5q-63 -70 -152 -103.5t-203 -33.5zM643 207q45 0 83 16.5t65 53.5q51 69 51 200q0 130 -51 201q-24 33 -61 51.5t-88 18.5q-50 0 -85.5 -18t-59.5 -51 q-51 -71 -51 -201q0 -69 13.5 -119t37.5 -83q26 -36 63.5 -52.5t82.5 -16.5z" />
-<glyph unicode="7" d="M758 1233h-623v260h944v-209l-506 -1284h-301z" />
-<glyph unicode="8" d="M617 -29q-123 0 -212 30.5t-149 86.5q-64 59 -95.5 142t-31.5 184q0 76 18 134.5t53 107.5q71 97 197 135q-113 39 -172 123q-29 42 -44 92.5t-15 114.5q0 91 30 164t91 127q121 108 329 108t330 -108q121 -108 121 -292q0 -123 -58 -205q-58 -84 -169 -124 q122 -37 194 -136q35 -49 52.5 -107.5t17.5 -133.5q0 -101 -31.5 -184t-95.5 -142q-128 -117 -360 -117zM616 903q88 0 139 52q50 52 50 138q0 89 -50 139q-23 23 -58 36.5t-81 13.5q-86 0 -137 -51t-51 -138q0 -86 51 -138q27 -28 61 -40t76 -12zM616 209q48 0 89 15.5 t72 47.5q29 29 45 72t16 96q0 50 -15 91t-46 73q-28 29 -68 45.5t-93 16.5q-48 0 -88.5 -15t-71.5 -47q-61 -62 -61 -165q0 -51 15 -93.5t46 -74.5q27 -28 68 -45t92 -17z" />
-<glyph unicode="9" d="M502 -39q-40 0 -75.5 3.5t-72.5 11.5q-38 8 -75.5 19t-75.5 25v269q40 -23 77.5 -40t74.5 -28q70 -22 140 -22q76 0 137.5 26t104.5 81q40 51 63 130t25 188q-25 -34 -53.5 -57t-66.5 -40t-79.5 -25t-92.5 -8q-100 0 -179 32t-134 96q-54 63 -81.5 153.5t-27.5 207.5 q0 122 30.5 220t91.5 167q122 137 357 137q139 0 233 -47.5t154 -135.5q68 -100 96.5 -245t28.5 -323q0 -110 -10 -200.5t-29 -164t-47 -132t-64 -104.5q-78 -100 -193 -147t-257 -47zM589 741q96 0 147 70q50 70 50 200q0 69 -13.5 119.5t-36.5 82.5q-26 35 -63 52t-84 17 q-51 0 -86.5 -18.5t-59.5 -50.5q-52 -70 -52 -201t52 -201q26 -35 61.5 -52.5t84.5 -17.5z" />
-<glyph unicode=":" d="M619 752q-39 0 -70.5 14.5t-53.5 36.5q-27 27 -39.5 61t-12.5 72q0 43 14 76.5t37 56.5q26 26 59 38.5t68 12.5t67 -12.5t58 -38.5q23 -23 37 -56.5t14 -75.5t-14 -76.5t-37 -57.5t-56 -37t-71 -14zM620 36q-74 0 -125 51q-52 52 -52 133t52 133q51 51 125 51 q36 0 68 -12.5t58 -38.5q23 -23 37 -56.5t14 -76.5q0 -42 -13.5 -75.5t-37.5 -57.5q-26 -26 -58 -38.5t-68 -12.5z" />
-<glyph unicode=";" d="M609 695q-41 0 -74 15t-56 38q-29 29 -41.5 65t-12.5 75q0 45 15 80.5t38 59.5q27 26 61.5 39.5t72.5 13.5q76 0 131 -53q24 -25 38.5 -59.5t14.5 -79.5t-14.5 -80.5t-38.5 -60.5q-25 -24 -59.5 -38.5t-74.5 -14.5zM373 -346l15 7q55 23 103 57.5t80 74.5q29 36 48 83.5 t23 102.5q-10 -2 -13 -2h-10q-35 0 -69.5 11t-59.5 34q-26 23 -38.5 55.5t-12.5 72.5q0 81 54 128q14 12 28.5 20.5t31.5 15.5q14 5 32 8t39 3q23 0 45 -4.5t42 -15.5q40 -19 65 -58q14 -21 23.5 -42.5t15.5 -47.5q7 -26 10 -55t3 -61q0 -94 -25.5 -174t-73.5 -145 q-93 -129 -281 -200l-14 -5z" />
-<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
-<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
-<glyph unicode="?" d="M479 583q0 83 31 152q17 37 45 74.5t73 81.5l90 89q11 11 25.5 26t25.5 29q23 27 32 44q5 8 9.5 19.5t7.5 22.5q2 6 3.5 18.5t1.5 25.5q0 8 -0.5 20t-2.5 20q-1 4 -4 15.5t-7 19.5q-4 9 -8.5 15.5t-10.5 14.5t-12 14t-15 14q-14 11 -25 17.5t-20 10.5q-5 2 -21.5 8 t-33.5 9q-30 6 -64 6q-11 0 -26 -0.5t-26 -2.5t-25 -4.5t-29 -6.5q-14 -4 -30.5 -9.5t-26.5 -9.5q-39 -15 -87 -41t-96 -60l-24 -17v225l7 5q96 58 194 87q96 28 202 28q98 0 173 -25q76 -26 135 -75q27 -23 49 -52.5t37 -64.5q29 -69 29 -149q0 -82 -36 -151 q-17 -32 -46.5 -70t-83.5 -91l-87 -86q-22 -21 -32.5 -32.5t-22.5 -25.5q-10 -12 -17.5 -24.5t-12.5 -20.5q-8 -16 -13 -38t-5 -39v-142h-220v126zM592 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5 t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
-<glyph unicode="@" d="M767 -319q-171 0 -309.5 58t-243.5 175q-208 232 -208 632q0 192 46.5 346t140.5 271t217.5 174.5t272.5 57.5q118 0 204 -34t146 -97q126 -132 126 -359v-770h-196v82q-22 -30 -44 -48t-45 -29q-51 -25 -125 -25q-163 0 -263 118q-101 119 -101 313q0 99 25.5 176 t74.5 134q100 117 263 117q34 0 66.5 -5.5t60.5 -18.5q26 -12 49 -31t39 -41v41q0 136 -74 210q-76 74 -210 74q-108 0 -194.5 -47.5t-148.5 -134.5q-61 -85 -96 -206t-35 -270q0 -161 41 -284t110 -206q78 -93 182 -137t219 -44q40 0 81 5.5t79 17.5q36 11 72.5 29.5 t71.5 41.5l92 -176q-42 -29 -88 -50t-88 -33q-44 -13 -96.5 -20t-113.5 -7zM782 303q89 0 140 64t51 178q0 112 -51 177q-51 64 -140 64q-50 0 -83 -17.5t-56 -46.5q-51 -65 -51 -177q0 -114 51 -178q23 -29 56 -46.5t83 -17.5z" />
-<glyph unicode="A" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="B" d="M125 1495h481q250 0 375 -94q125 -95 125 -283q0 -143 -74 -225q-73 -80 -217 -94q88 -8 152 -37.5t106 -77.5q86 -98 86 -275q0 -215 -130 -312t-423 -97h-481v1495zM606 913q60 0 98 10t62 31q23 20 35 50.5t12 80.5q0 44 -11 77t-37 56q-21 18 -57.5 30t-101.5 12 h-196v-347h196zM606 236q141 0 198 48q56 48 56 167q0 121 -59 174t-195 53h-196v-442h196z" />
-<glyph unicode="C" d="M759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129 q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
-<glyph unicode="D" d="M137 1493h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v1493zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-961h80z" />
-<glyph unicode="E" d="M168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="F" d="M182 1493h930v-260h-635v-332h578v-260h-578v-641h-295v1493z" />
-<glyph unicode="G" d="M720 -29q-143 0 -255 50.5t-190 150.5q-75 96 -116.5 238t-41.5 337q0 186 39.5 330t120.5 244q160 199 455 199q51 0 94.5 -6t87.5 -19q85 -25 163 -74v-327q-62 80 -142 121q-80 40 -176 40q-170 0 -252 -126q-83 -128 -83 -382q0 -125 20 -220.5t60 -161.5 q38 -62 95.5 -95.5t138.5 -33.5q20 0 41 2t38 7q22 5 33 11t22 14v285h-202v248h460v-684q-84 -72 -187 -110q-52 -19 -106 -28.5t-117 -9.5z" />
-<glyph unicode="H" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
-<glyph unicode="I" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="J" d="M524 -29q-58 0 -106 6.5t-100 19.5q-51 13 -102 31.5t-107 45.5v342q43 -45 89 -78t95 -56q96 -46 197 -46q115 0 169 58t54 185v754h-361v260h656v-1014q0 -273 -114 -390q-58 -60 -153.5 -89t-216.5 -29z" />
-<glyph unicode="K" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
-<glyph unicode="L" d="M225 1493h295v-1233h631v-260h-926v1493z" />
-<glyph unicode="M" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
-<glyph unicode="N" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
-<glyph unicode="O" d="M616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388 q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="P" d="M166 1493h405q308 0 445 -110q135 -110 135 -357q0 -248 -135 -357q-137 -110 -445 -110h-110v-559h-295v1493zM582 807q146 0 204 49t58 170t-58 170t-204 49h-121v-438h121z" />
-<glyph unicode="Q" d="M656 -23l-23 -5q-5 -1 -7 -1h-4q-137 0 -234.5 50.5t-162.5 145.5q-133 196 -133 577q0 192 33 336.5t100 244.5q70 103 169.5 149t221.5 46q131 0 229 -49.5t164 -146.5q132 -197 132 -579q0 -263 -63 -440t-183 -254l286 -332h-342zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="R" d="M133 1493h426q288 0 414 -102q63 -51 94 -134.5t31 -192.5q0 -84 -18.5 -144t-56.5 -106q-36 -44 -88.5 -71.5t-127.5 -37.5q23 -5 43 -16t34 -25q15 -15 34.5 -46t44.5 -81l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838 q121 0 174 48q24 22 38 59t14 97q0 110 -52 156q-53 47 -174 47h-139v-407h139z" />
-<glyph unicode="S" d="M582 -29q-60 0 -117 6t-114 20q-114 27 -216 79v305q62 -44 117 -74t112 -51q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55q-115 44 -189 88.5t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116 q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174q85 -109 85 -281q0 -221 -134 -332q-135 -112 -394 -112z" />
-<glyph unicode="T" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
-<glyph unicode="U" d="M616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="V" d="M57 1493h297l262 -1247l263 1247h297l-355 -1493h-409z" />
-<glyph unicode="W" d="M0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
-<glyph unicode="X" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
-<glyph unicode="Y" d="M469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="Z" d="M94 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
-<glyph unicode="[" d="M384 1636h503v-190h-238v-1531h238v-185h-503v1906z" />
-<glyph unicode="\" d="M111 1493h223l786 -1683h-223z" />
-<glyph unicode="]" d="M344 -83h243v1528h-243v190h505v-1905h-505v187z" />
-<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
-<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
-<glyph unicode="`" d="M199 1638h282l283 -376h-197z" />
-<glyph unicode="a" d="M494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14 t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290 q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="b" d="M740 -29q-103 0 -177 49q-75 49 -121 146l-29 -166h-263v1556h292v-595q54 94 126 140q35 23 75.5 34.5t91.5 11.5q96 0 172 -38.5t129 -113.5q51 -72 79 -180.5t28 -254.5q0 -137 -26 -247.5t-80 -188.5q-54 -77 -128.5 -115t-168.5 -38zM647 211q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
-<glyph unicode="c" d="M702 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33 t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
-<glyph unicode="d" d="M492 -29q-93 0 -167.5 38t-128.5 115q-106 153 -106 436t108 435q51 72 126 112t174 40q48 0 89 -10.5t79 -35.5q71 -47 125 -140v595h292v-1556h-263l-29 166q-23 -49 -54 -85.5t-67 -60.5q-74 -49 -178 -49zM586 211q94 0 150 92q55 91 55 254t-55 254q-56 92 -150 92 q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
-<glyph unicode="e" d="M665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63 q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="f" d="M426 895h-272v225h272v78q0 202 84 280t312 78h241v-225h-229q-67 0 -89 -24q-12 -12 -19 -36t-7 -53v-98h344v-225h-344v-895h-293v895z" />
-<glyph unicode="g" d="M578 -424q-44 0 -89.5 3t-90.5 10q-90 13 -183 42v269q42 -23 85 -40t84 -28q43 -11 87 -16.5t85 -5.5q68 0 113.5 14.5t74.5 43.5q59 59 59 183v121q-44 -80 -114 -119q-71 -39 -172 -39q-194 0 -306 150q-57 75 -85 176.5t-28 232.5q0 263 113 420q57 78 132 117 t169 39q98 0 173 -45t118 -127l29 143h264v-1036q0 -269 -121 -389q-122 -119 -397 -119zM596 246q93 0 150 91q28 45 42.5 103.5t14.5 136.5q0 74 -14 134.5t-43 107.5q-57 90 -150 90q-92 0 -148 -90q-57 -90 -57 -241q0 -152 57 -242q56 -90 148 -90z" />
-<glyph unicode="h" d="M172 1556h291v-604q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 121 -34 173q-17 26 -45.5 39t-65.5 13q-82 0 -127 -70q-45 -71 -45 -196v-641h-291v1556z" />
-<glyph unicode="i" d="M451 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="j" d="M614 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM170 -199h234q99 0 139 55q41 56 41 187v852h-297v225h590v-1077q0 -252 -90 -360q-44 -52 -119 -79.5t-182 -27.5h-316v225z" />
-<glyph unicode="k" d="M174 1556h293v-817l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1556z" />
-<glyph unicode="l" d="M788 -8q-209 0 -300 108q-91 107 -91 359v872h-297v225h590v-1097q0 -131 41 -187q40 -55 139 -55h234v-225h-316v0z" />
-<glyph unicode="m" d="M82 1120h184l29 -116q26 67 80 105q25 17 56.5 27.5t67.5 10.5q68 0 123 -40q56 -41 68 -99q33 70 84 105q50 34 128 34q73 0 122.5 -26t75.5 -74q29 -53 42 -156.5t13 -259.5v-631h-240v719q0 66 -4.5 105t-14.5 61q-19 43 -69 43q-29 0 -45 -12t-25 -32 q-10 -21 -15 -61.5t-5 -103.5v-719h-237v719q0 121 -20 166q-19 43 -70 43q-50 0 -69 -42q-19 -41 -19 -167v-719h-240v1120z" />
-<glyph unicode="n" d="M172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116v-641h-291v1120z" />
-<glyph unicode="o" d="M617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259 q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="p" d="M150 1120h263l29 -168q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1546zM647 215 q95 0 149 92q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
-<glyph unicode="q" d="M791 158q-53 -92 -125 -140q-36 -24 -76 -35.5t-91 -11.5q-93 0 -169 37t-132 115q-54 76 -81 185t-27 250q0 283 106 436q54 77 128.5 115t167.5 38q104 0 178 -49q36 -24 67 -60.5t54 -85.5l29 168h263v-1546h-292v584zM586 215q94 0 150 92q55 91 55 254t-55 254 q-56 92 -150 92q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
-<glyph unicode="r" d="M241 1120h264l29 -174q44 97 132 149q45 26 97 39t108 13q30 0 62 -3.5t59 -10.5q29 -8 58 -19.5t51 -23.5v-279q-48 44 -112 66q-32 11 -67.5 16.5t-73.5 5.5q-94 0 -163 -32q-70 -32 -108 -94q-10 -16 -19 -39t-14 -54q-5 -29 -7.5 -67t-2.5 -97v-516h-293v1120z" />
-<glyph unicode="s" d="M616 -29q-51 0 -105.5 4.5t-105.5 12.5t-105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 98.5 -21.5t98.5 -7.5q99 0 153 30q26 15 39.5 36.5t13.5 56.5q0 23 -7.5 42t-31.5 37t-66.5 34t-110.5 31l-81 18q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90 q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20q79 -19 138 -49t97 -73t56 -101.5t18 -127.5q0 -173 -113 -259 q-57 -44 -142.5 -65.5t-195.5 -21.5z" />
-<glyph unicode="t" d="M827 -4q-253 0 -341 81q-89 80 -89 298v520h-286v225h286v306l293 130v-436h383v-225h-383v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-246v0z" />
-<glyph unicode="u" d="M481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="v" d="M80 1120h297l239 -874l240 874h297l-356 -1120h-361z" />
-<glyph unicode="w" d="M0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
-<glyph unicode="x" d="M469 584l-381 536h342l186 -334l187 334h342l-377 -536l410 -584h-342l-220 377l-219 -377h-342z" />
-<glyph unicode="y" d="M137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
-<glyph unicode="z" d="M162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
-<glyph unicode="{" d="M853 -334q-248 0 -333 74q-85 73 -85 295v215q0 70 -12.5 124.5t-40.5 84.5q-27 29 -77 43t-117 14h-92v191h92q140 0 194 57q53 58 53 209v215q0 222 85 295q83 73 333 73h150v-190h-123q-105 0 -139 -42q-35 -43 -35 -185v-209q0 -165 -49 -232q-49 -66 -175 -86 q125 -21 175 -89q49 -67 49 -232v-205q0 -143 35 -187q34 -42 139 -42h123v-191h-150v0z" />
-<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
-<glyph unicode="}" d="M230 -143h121q104 0 140 43t36 186v205q0 165 49 232q26 35 70.5 57t103.5 32q-127 20 -174 86q-49 67 -49 232v209q0 140 -35 184q-19 23 -56 33t-85 10h-121v190h150q249 0 332 -73q83 -74 83 -295v-215q0 -81 14.5 -130.5t40.5 -77.5t73 -43t122 -15h92v-191h-92 q-141 0 -195 -58q-55 -58 -55 -208v-215q0 -221 -83 -295q-85 -74 -332 -74h-150v191z" />
-<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M615 1508q17 0 34 -2.5t34 -10.5q17 -7 29.5 -15.5t26.5 -23.5q12 -13 17 -20t11 -18q8 -14 11.5 -23t5.5 -22q5 -25 5 -49q0 -41 -12 -74.5t-37 -58.5q-24 -25 -56.5 -38t-66.5 -13q-8 0 -16.5 0.5t-14.5 1.5l-26 6q-6 2 -14.5 5.5t-10.5 4.5q-7 3 -13 7t-10 7 q-4 4 -7 6.5t-14 13.5q-50 49 -50 131q0 84 50 134q23 23 54.5 37t69.5 14zM687 960l68 -576v-456h-285v456l78 576h139z" />
-<glyph unicode="&#xa2;" d="M655 -25q-235 22 -371 179q-137 158 -137 408q0 130 35 232t102 179q136 156 371 172v287h142v-287q61 -5 120 -21q35 -10 62.5 -21.5t56.5 -25.5v-268q-29 22 -60.5 39.5t-55.5 27.5q-26 11 -58.5 19t-64.5 12v-692q33 2 64.5 10t59.5 19q29 12 58 28.5t57 38.5v-268 q-29 -16 -55.5 -27t-56.5 -19q-63 -18 -127 -22v-288h-142v288zM655 907q-113 -13 -175 -103q-30 -44 -46 -104.5t-16 -139.5q0 -75 15.5 -136.5t47.5 -109.5q63 -93 174 -99v692z" />
-<glyph unicode="&#xa3;" d="M119 260h235v334h-198v225h198v197q0 255 113 380q112 124 343 124q44 0 85 -4t70 -10t65.5 -17.5t71.5 -26.5v-274q-30 22 -63.5 38.5t-58.5 24.5q-32 11 -66 16t-66 5q-56 0 -94 -16.5t-63 -49.5q-50 -68 -50 -211v-176h336v-225h-336v-334h481v-260h-1003v260z" />
-<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
-<glyph unicode="&#xa5;" d="M469 438h-412v189h408l-86 151h-322v187h224l-273 528h318l290 -600l291 600h318l-273 -528h224v-187h-322l-86 -151h408v-189h-412v-438h-295v438z" />
-<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
-<glyph unicode="&#xa7;" d="M602 -195q-39 0 -85.5 3.5t-87.5 10.5t-85.5 18.5t-85.5 25.5v229q45 -16 85 -26.5t81 -18.5q39 -8 75.5 -12t71.5 -4q46 0 75.5 7.5t49.5 21.5t30.5 34t10.5 40q0 21 -12 41.5t-37.5 43.5t-66 49t-98.5 58l-37 20q-83 45 -142.5 88t-98 86t-57 86.5t-18.5 89.5 q0 38 13 79.5t39 76.5q24 32 61.5 58.5t87.5 43.5q-72 50 -103 110q-32 61 -32 141q0 143 104 229t277 86q72 0 152 -15q43 -8 82 -19.5t79 -25.5v-225q-86 30 -151 45q-31 7 -63.5 10.5t-58.5 3.5q-73 0 -116 -29q-23 -16 -33 -36.5t-10 -40.5q0 -23 12.5 -44t37.5 -42.5 t63 -45.5t90 -52q9 -5 13 -7l6 -3l3 -1.5t6 -3.5q57 -31 100 -55t75.5 -44.5t56 -40t41.5 -40.5q59 -71 59 -171q0 -90 -47 -154t-150 -111q70 -49 103 -111q32 -61 32 -144q0 -71 -25.5 -129.5t-78.5 -100.5q-50 -40 -123 -61.5t-170 -21.5zM711 473q27 17 48 36.5t32 34.5 q12 17 18 36t6 33q0 46 -67 103.5t-198 123.5l-32 16q-54 -35 -79 -70t-25 -74q0 -56 49 -99q12 -11 31 -23.5t48.5 -29.5t70.5 -38.5t98 -48.5z" />
-<glyph unicode="&#xa8;" d="M331 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
-<glyph unicode="&#xaa;" d="M537 698q-128 0 -205 68q-76 68 -76 187q0 67 24 117.5t69 82.5q91 66 280 66h157v26q0 27 -12.5 45t-32.5 29q-21 11 -55 17.5t-85 6.5q-38 0 -76.5 -4t-73.5 -12q-71 -16 -136 -51v188q27 11 66 22.5t81 19.5q37 7 74.5 10.5t76.5 3.5q188 0 277 -86t89 -269v-448h-174 l-19 92q-49 -57 -110 -84q-62 -27 -139 -27zM593 866q42 0 78 14.5t61 37.5q27 26 40.5 59.5t13.5 71.5v30h-102q-109 0 -159 -26t-50 -83q0 -22 7.5 -42t22.5 -34q14 -13 35.5 -20.5t52.5 -7.5zM293 598h688v-170h-688v170z" />
-<glyph unicode="&#xab;" d="M59 535v131l469 393v-238l-277 -221l277 -221v-238zM513 535v131l469 393v-238l-276 -221l276 -221v-238z" />
-<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
-<glyph unicode="&#xad;" d="M301 735h631v-291h-631v291z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
-<glyph unicode="&#xaf;" d="M301 1556h631v-188h-631v188z" />
-<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
-<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#xb2;" d="M274 1261q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79 t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
-<glyph unicode="&#xb3;" d="M588 1113q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64z" />
-<glyph unicode="&#xb4;" d="M752 1638h282l-368 -376h-197z" />
-<glyph unicode="&#xb5;" d="M154 1120h287v-680q0 -113 41 -171q20 -28 49.5 -43t72.5 -15q81 0 122 57q40 56 40 172v680h289v-776q0 -69 14 -102q13 -31 44 -31q8 0 13.5 1.5t13.5 4.5q9 4 13.5 6.5t14.5 9.5v-217q-25 -13 -42.5 -20.5t-37.5 -13.5q-19 -5 -36.5 -8t-37.5 -3q-39 0 -66.5 10.5 t-48.5 27.5q-26 21 -42.5 50t-30.5 70q-38 -78 -92 -118q-55 -40 -126 -40q-58 0 -99 23q-42 23 -68 72l2 -494h-289v1548z" />
-<glyph unicode="&#xb6;" d="M496 649q-107 14 -183.5 47.5t-131.5 87.5q-111 109 -111 286q0 192 130 307q131 116 345 116h520v-1690h-191v1543h-190v-1543h-188v846z" />
-<glyph unicode="&#xb7;" d="M614 344q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28z" />
-<glyph unicode="&#xb8;" d="M573 -401q-23 0 -51 1.5t-51 4.5q-18 2 -32 4.5t-25.5 5t-22.5 5t-24 5.5v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-11 20 -27.5 45.5t-39.5 55.5h140q30 -32 51.5 -62t33.5 -53q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-114.5 -12.5z" />
-<glyph unicode="&#xb9;" d="M313 1265h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145z" />
-<glyph unicode="&#xba;" d="M637 698q-87 0 -151.5 28.5t-112.5 82.5t-73.5 127t-25.5 171q0 189 99 302q97 111 264 111q166 0 264 -111q98 -112 98 -302q0 -94 -23.5 -167.5t-73.5 -130.5q-98 -111 -265 -111zM637 874q35 0 64.5 15.5t51.5 47.5q42 61 42 171q0 109 -42 172q-20 30 -49 46.5 t-67 16.5q-41 0 -69 -18t-46 -44q-43 -64 -43 -173t42 -171q19 -28 48 -45.5t68 -17.5zM293 598h688v-170h-688v170z" />
-<glyph unicode="&#xbb;" d="M253 379l276 221l-276 221v238l469 -393v-131l-469 -394v238zM707 379l277 221l-277 221v238l469 -393v-131l-469 -394v238z" />
-<glyph unicode="&#xbc;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
-<glyph unicode="&#xbd;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM475 -129q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164 q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
-<glyph unicode="&#xbe;" d="M361 809q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64zM47 618l1059 263l37 -119l-1059 -262z M823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
-<glyph unicode="&#xbf;" d="M667 1222q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM606 -27q-99 0 -179 23t-137 71t-85.5 113t-28.5 143 q0 42 8.5 77t25.5 68q17 32 47.5 70.5t80.5 86.5l88 86q66 64 85 106q19 41 19 105q0 3 1 6q1 11 1 21v20v123h267v-154q0 -100 -31 -169q-17 -38 -44.5 -74t-66.5 -74l-90 -89q-20 -20 -33.5 -34.5t-23 -25.5t-15.5 -20t-11 -18q-23 -43 -23 -87q0 -32 11.5 -57.5 t34.5 -42.5t57.5 -25.5t77.5 -8.5q45 0 88 9t89 27q48 19 92 44t95 61v-268q-49 -28 -97 -48.5t-101 -35.5q-50 -14 -98 -21.5t-104 -7.5z" />
-<glyph unicode="&#xc0;" d="M283 1852h284l199 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc1;" d="M668 1852h284l-286 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc2;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc3;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q14 -5 35.5 -15t39.5 -22l60 -39q6 -4 16 -9.5t25 -11.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9t-1 -8v-5q0 -108 -53 -173q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34q-2 1 -4.5 3t-7.5 4q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc4;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc5;" d="M418 1421q-45 39 -65 86q-11 24 -16 51.5t-5 55.5q0 63 23 115t60 89q35 35 87 59t115 24q56 0 108 -21t94 -63q36 -36 59 -87.5t23 -114.5q0 -29 -5 -57t-16 -51q-21 -48 -65 -86l385 -1421h-295l-92 369h-395l-90 -369h-295zM618 1485q53 0 92 39q38 38 38 92t-39 93 q-40 38 -92 38q-29 0 -52.5 -10.5t-40.5 -27.5q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q20 -20 44.5 -29.5t50.5 -9.5zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc6;" d="M358 1493h803v-260h-291v-311h260v-260h-260v-402h310v-260h-564v362h-282l-86 -362h-248zM616 598v635h-79l-148 -635h227z" />
-<glyph unicode="&#xc7;" d="M774 1255q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-21 -5 -42.5 -8.5t-44.5 -5.5q21 -26 36.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5 t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 40.5q-253 20 -393 196q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5 t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5z" />
-<glyph unicode="&#xc8;" d="M314 1842h284l199 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xc9;" d="M699 1841h284l-286 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xca;" d="M492 1852h309l223 -264h-178l-199 161l-198 -161h-178zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xcb;" d="M362 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM757 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xcc;" d="M283 1852h284l199 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xcd;" d="M668 1852h284l-286 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xce;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xcf;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xd0;" d="M137 664h-137v237h137v592h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v664zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-326h211v-237h-211v-398h80z" />
-<glyph unicode="&#xd1;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q17 -6 36.5 -15.5t38.5 -21.5l60 -39q8 -5 19 -10.5t22 -10.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q0 -2 -0.5 -3.5t-0.5 -13.5q0 -50 -13.5 -93.5t-39.5 -75.5 q-29 -35 -65 -50t-77 -15q-36 0 -72 11q-20 6 -38.5 15t-39.5 23l-54 34l-8 5l-4 2q-22 12 -39.5 19t-33.5 7q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
-<glyph unicode="&#xd2;" d="M283 1852h284l199 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd3;" d="M668 1852h284l-286 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd4;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5 zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd5;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q15 -5 34.5 -14t40.5 -23l60 -39q8 -5 17.5 -10t23.5 -11q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q-1 -4 -1 -7v-5q0 -109 -53 -174q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34l-12 7q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5 q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd6;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5 q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390 q52 -121 165 -121z" />
-<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
-<glyph unicode="&#xd8;" d="M-6 51l168 238q-19 49 -31 95.5t-21 106.5q-8 54 -13 114t-5 138q0 385 133 581q66 98 162 147t229 49q105 0 186 -31q44 -17 79.5 -40t64.5 -52l113 162l162 -115l-158 -223q40 -97 59 -213q10 -60 14.5 -125.5t4.5 -137.5q0 -382 -132 -578q-69 -102 -168 -149 t-226 -47q-57 0 -102.5 8.5t-87.5 25.5t-78 40.5t-71 58.5l-120 -167zM772 1153q-26 51 -65 77q-38 25 -90 25q-59 0 -99 -30.5t-66 -89.5q-53 -121 -53 -379v-127zM618 236q60 0 99 31.5t64 89.5q13 30 22.5 68.5t16.5 90t10.5 117t3.5 148.5l-1 23q-1 14 -1 20.5 t-0.5 13.5t-1 17.5t-1.5 32.5l-378 -534q11 -28 28.5 -50.5t37.5 -36.5q43 -31 101 -31z" />
-<glyph unicode="&#xd9;" d="M283 1852h284l199 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="&#xda;" d="M668 1852h284l-286 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="&#xdb;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442 q-122 -138 -389 -138z" />
-<glyph unicode="&#xdc;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5 q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="&#xdd;" d="M668 1852h284l-286 -264h-197zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="&#xde;" d="M162 1493h295v-238h110q309 0 445 -109q68 -55 101.5 -144.5t33.5 -210.5q0 -242 -137 -350q-70 -56 -180.5 -82.5t-262.5 -26.5h-110v-332h-295v1493zM578 575q146 0 204 49t58 169q0 122 -58 171q-59 50 -204 50h-121v-439h121z" />
-<glyph unicode="&#xdf;" d="M759 -29q-32 0 -64.5 3t-61.5 9q-26 5 -60.5 15t-68.5 22v250q29 -16 58 -27.5t58 -19.5q27 -8 53.5 -12t55.5 -4q42 0 70 9t48 25t31 38t11 49q0 42 -29 80.5t-86 83.5q-8 6 -11 8t-6 4.5t-8.5 6.5t-19.5 15l-86 68q-29 23 -51.5 51.5t-37.5 60.5q-30 63 -30 141 q0 125 74 211q39 45 91.5 72.5t119.5 43.5q-5 39 -20.5 67t-37.5 44q-25 18 -60 27t-77 9q-46 0 -83 -11.5t-63 -38.5q-48 -51 -48 -149v-1122h-293v1126q0 212 121 321q63 57 150 83t196 26q117 0 198.5 -29t135.5 -89q106 -118 106 -365v-14q-72 -4 -115.5 -17.5 t-72.5 -33.5q-32 -23 -49 -53.5t-17 -65.5q0 -21 6.5 -40t21 -37.5t36.5 -39t52 -44.5q13 -11 15.5 -12.5t3.5 -2.5l97 -74q45 -34 73.5 -67t48.5 -71q19 -36 29.5 -78t10.5 -93q0 -79 -27 -146.5t-84 -116.5q-57 -48 -135 -72t-169 -24z" />
-<glyph unicode="&#xe0;" d="M199 1673h282l283 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe1;" d="M752 1673h282l-368 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe2;" d="M496 1672h241l256 -376h-178l-199 225l-198 -225h-178zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5 t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5 q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5 q45 -45 124 -45z" />
-<glyph unicode="&#xe3;" d="M768 1317q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5 q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35 q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42 q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe4;" d="M331 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203 v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5 q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10z M576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe5;" d="M617 1249q-57 0 -109.5 21t-93.5 62q-35 35 -58.5 87.5t-23.5 115.5q0 64 24 115.5t59 86.5q41 41 92.5 61.5t108.5 20.5q62 0 113.5 -22.5t88.5 -59.5q36 -36 59.5 -88t23.5 -115q0 -57 -20.5 -108t-61.5 -93q-42 -42 -93.5 -63t-108.5 -21zM617 1403q54 0 93 39 q38 38 38 92t-39 93q-40 38 -93 38q-54 0 -92 -38q-39 -39 -39 -93q0 -55 38 -93q16 -16 40 -27t54 -11zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5 q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39 q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe6;" d="M346 -29q-158 0 -245 92q-87 93 -87 263q0 185 101 277q100 91 305 91h76v51q0 93 -39 140t-114 47q-32 0 -64 -7.5t-61 -19.5t-66 -32.5t-76 -49.5v246q75 40 144 59t137 19q46 0 86 -7.5t72 -23.5q62 -31 97 -96q28 61 95 94q66 33 158 33q91 0 151.5 -29.5t97.5 -89.5 q18 -29 31.5 -67t23 -89t14.5 -117t5 -149v-127h-451q0 -143 50 -219q23 -35 58 -55.5t87 -20.5q34 0 63 8t57 22q26 13 55.5 33t63.5 54v-244q-50 -44 -112 -65q-32 -11 -68.5 -16t-74.5 -5q-55 0 -99 10.5t-82 31.5q-75 42 -117 122q-20 -42 -47 -73t-59 -51 q-65 -40 -166 -40zM963 690v23q0 126 -25 172q-26 47 -88 47t-88 -47q-25 -46 -25 -172v-23h226zM365 184q63 0 94 43q30 43 30 131v125h-73q-86 0 -131 -39t-45 -115q0 -69 32 -107t93 -38z" />
-<glyph unicode="&#xe7;" d="M761 909q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26q-50 -12 -101 -18q22 -26 37.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 39.5q-110 8 -195.5 46.5t-149.5 107.5q-146 157 -146 432q0 276 147 434 q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5z" />
-<glyph unicode="&#xe8;" d="M238 1673h282l283 -376h-197zM675 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM854 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xe9;" d="M781 1672h282l-368 -376h-197zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xea;" d="M525 1673h241l256 -376h-178l-199 225l-198 -225h-178zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65 q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xeb;" d="M360 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM755 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187 q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5 q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xec;" d="M159 1683h282l283 -376h-197zM822 -12q-209 0 -300 108q-91 107 -91 359v440h-247v225h540v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#xed;" d="M694 1673h282l-368 -376h-197zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#xee;" d="M440 1673h241l256 -376h-178l-199 225l-198 -225h-178zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#xef;" d="M261 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM656 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55 h234v-225h-316z" />
-<glyph unicode="&#xf0;" d="M613 -29q-125 0 -219 41t-158 112q-69 77 -103.5 181t-34.5 229q0 239 129 379q61 66 148 103t199 37q41 0 73 -6t58 -19l-160 219l-312 -119l-55 117l283 109l-158 202h293l92 -116l297 127l66 -123l-277 -117l166 -227q51 -70 86 -135t57 -128q43 -126 43 -278 q0 -137 -34 -246t-101 -186t-162.5 -116.5t-215.5 -39.5zM613 209q57 0 98.5 24.5t67.5 66.5q29 45 43 111t14 145q0 26 -1.5 52.5t-4.5 48.5q-2 17 -7.5 46.5t-11.5 56.5q-33 18 -56 27t-42 14q-51 14 -96 14q-52 0 -95 -18.5t-73 -53.5q-29 -35 -44.5 -86t-15.5 -122 q0 -72 15.5 -133t44.5 -104q59 -89 164 -89z" />
-<glyph unicode="&#xf1;" d="M768 1297q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116 v-641h-291v1120z" />
-<glyph unicode="&#xf2;" d="M199 1596h282l283 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf3;" d="M752 1596h282l-368 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf4;" d="M496 1596h241l256 -299h-178l-199 147l-198 -147h-178zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187 q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf5;" d="M768 1297q-21 0 -36.5 3.5t-30.5 8.5q-23 8 -40 18t-43 27l-67 45q-44 29 -72 29q-31 0 -51 -32t-20 -89v-8h-140v33q0 114 54 183t143 69q37 0 72 -13q20 -8 38 -19t39 -26l62 -43q14 -10 22.5 -14t17.5 -8q19 -8 35 -8q36 0 55 31t19 89v9h140v-8t-1 -9t-1 -8.5v-5.5 q0 -117 -53 -185q-26 -33 -61 -51t-81 -18zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42 zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf6;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5 t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257 q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf7;" d="M491 889q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249zM66 762h1099v-238h-1099v238zM491 86q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249z" />
-<glyph unicode="&#xf8;" d="M25 2l163 197q-44 72 -67 162t-23 198q0 135 35.5 243.5t104.5 186.5q70 79 166 118.5t211 39.5q42 0 83.5 -5t76.5 -16q33 -10 69.5 -27t70.5 -40l148 176l139 -121l-160 -188q25 -41 42.5 -85.5t27.5 -82.5q11 -42 17 -93t6 -108q0 -131 -35 -239.5t-104 -187.5 q-66 -75 -161 -117t-215 -42q-45 0 -84.5 6t-77.5 17t-72 27t-71 40l-151 -178zM745 860q-25 25 -57 37t-70 12q-106 0 -166 -92q-61 -92 -61 -258q0 -18 0.5 -32.5t1.5 -27.5q1 -12 1.5 -21t4.5 -29zM617 209q106 0 165 93q30 48 45 113t15 138q0 17 -0.5 35t-1.5 29 q-1 9 -3.5 26.5t-5.5 31.5l-348 -413q31 -26 64 -40q32 -13 70 -13z" />
-<glyph unicode="&#xf9;" d="M199 1646h282l283 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="&#xfa;" d="M752 1646h282l-368 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="&#xfb;" d="M496 1646h241l256 -376h-178l-199 225l-198 -225h-178zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z " />
-<glyph unicode="&#xfc;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39 t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="&#xfd;" d="M762 1646h282l-368 -376h-197zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
-<glyph unicode="&#xfe;" d="M150 1556h292v-604q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1982zM647 215q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
-<glyph unicode="&#xff;" d="M341 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727 h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
-<glyph unicode="&#x100;" d="M301 1823h631v-188h-631v188zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x101;" d="M301 1535h631v-188h-631v188zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#x102;" d="M616 1588q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x103;" d="M616 1297q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5 t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62 t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#x104;" d="M1081 -254q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-7l-92 369h-395l-90 -369h-295l403 1493h361l403 -1493h-147q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28 q0 -35 28 -61.5t90 -26.5zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x105;" d="M1036 -252q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 54 26.5 108t82.5 114q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10q-91 0 -164.5 25t-127.5 76 q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36 t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-148q-17 -23 -28.5 -39t-19.5 -28t-13 -21t-9 -16 q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5zM818 526h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45q56 0 101 21.5t77 66.5q64 86 64 244v20z" />
-<glyph unicode="&#x106;" d="M794 1852h284l-286 -264h-197zM759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5q-160 0 -243 -128 q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
-<glyph unicode="&#x107;" d="M854 1672h282l-368 -376h-197zM722 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90 q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
-<glyph unicode="&#x108;" d="M287 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM1070 43q-139 -72 -311 -72q-198 0 -336.5 89t-209.5 263q-72 173 -72 422q0 250 71 423t210 263q139 89 337 89q175 0 311 -72v-328q-77 71 -147.5 103t-148.5 32q-160 0 -243 -129.5t-83 -380.5 q0 -252 82.5 -380.5t243.5 -128.5q77 0 149 33q36 16 70.5 40t76.5 62v-328z" />
-<glyph unicode="&#x109;" d="M282 1297l256 299h241l256 -299h-178l-199 147l-198 -147h-178zM1041 57q-73 -41 -159.5 -63.5t-179.5 -22.5q-172 0 -297 70.5t-191 203.5q-66 132 -66 314q0 183 66 316t191 204q124 70 294 70q92 0 175.5 -21t166.5 -65v-268q-130 114 -300 114q-143 0 -219.5 -91 t-76.5 -259t76.5 -258t220.5 -90q84 0 160.5 29t138.5 86v-269z" />
-<glyph unicode="&#x10a;" d="M599 1596q-13 0 -22 9t-9 22v184q0 13 9 22t22 9h213q13 0 22 -9t9 -22v-184q0 -13 -9 -22t-22 -9h-213zM757 -29q-149 0 -264 50.5t-193 148.5t-118.5 242.5t-40.5 332.5q0 189 40.5 333.5t118.5 242.5t193 148.5t264 50.5q176 0 313 -72v-328q-76 70 -147.5 102.5 t-150.5 32.5q-160 0 -242 -128t-82 -382t82 -381.5t242 -127.5q79 0 150.5 32.5t147.5 102.5v-328q-70 -36 -147 -54t-166 -18z" />
-<glyph unicode="&#x10b;" d="M584 1349q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM722 -29q-131 0 -234 40t-174 116t-108.5 184.5t-37.5 246.5q0 139 38 248.5t109 185.5t174 116.5t232 40.5q91 0 173.5 -20.5t166.5 -65.5v-268q-64 55 -140.5 84.5t-158.5 29.5 q-144 0 -220.5 -90.5t-76.5 -260.5q0 -168 76.5 -257.5t223.5 -89.5q85 0 159 29.5t137 85.5v-269q-149 -86 -339 -86z" />
-<glyph unicode="&#x10c;" d="M366 1852h178l198 -162l199 162h178l-223 -264h-309zM759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5 q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
-<glyph unicode="&#x10d;" d="M342 1675h178l198 -227l199 227h178l-256 -376h-241zM722 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259 t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
-<glyph unicode="&#x10e;" d="M227 1860h178l198 -162l199 162h178l-223 -264h-309zM137 1493h316q183 0 313.5 -42t213.5 -132.5t122 -231.5t39 -339t-39 -340t-122 -232.5t-213.5 -133t-313.5 -42.5h-316v1493zM512 266q87 0 148 26t100 83.5t56.5 149t17.5 222.5t-17.5 222.5t-56.5 148.5t-100 83 t-148 26h-80v-961h80z" />
-<glyph unicode="&#x10f;" d="M491 -29q-95 0 -169 39.5t-126 114.5t-79 184.5t-27 249.5q0 142 28 251.5t80.5 184.5t127.5 113.5t169 38.5q98 0 168 -44t128 -142v595h292v-1556h-263l-29 166q-47 -95 -119.5 -145t-180.5 -50zM1168 1555h288l-164 -383h-202zM586 211q48 0 86 23.5t64.5 68.5 t40.5 109t14 145t-14 145t-40.5 109t-64.5 68.5t-86 23.5t-85.5 -23.5t-63.5 -68.5t-40 -109t-14 -145t14 -145t40 -109t63.5 -68.5t85.5 -23.5z" />
-<glyph unicode="&#x110;" d="M137 664h-137v237h137v592h316q183 0 313.5 -42t213.5 -132.5t122 -231.5t39 -339t-39 -340t-122 -232.5t-213.5 -133t-313.5 -42.5h-316v664zM512 266q87 0 148 26t100 83.5t56.5 149t17.5 222.5t-17.5 222.5t-56.5 148.5t-100 83t-148 26h-80v-326h211v-237h-211v-398 h80z" />
-<glyph unicode="&#x111;" d="M492 -29q-93 0 -167.5 38t-128.5 115q-106 153 -106 436t108 435q51 72 126 112t174 40q48 0 89 -10.5t79 -35.5q71 -47 125 -140v290h-306v189h306v116h292v-116h146v-189h-146v-1251h-263l-29 166q-23 -49 -54 -85.5t-67 -60.5q-74 -49 -178 -49zM586 211q94 0 150 92 q55 91 55 254t-55 254q-56 92 -150 92q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
-<glyph unicode="&#x112;" d="M332 1820h631v-188h-631v188zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x113;" d="M330 1535h631v-188h-631v188zM669 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269 q-100 -42 -207 -63t-216 -21zM844 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x116;" d="M541 1606q-13 0 -22 9t-9 22v184q0 13 9 22t22 9h213q13 0 22 -9t9 -22v-184q0 -13 -9 -22t-22 -9h-213zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x117;" d="M538 1349q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM669 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759 q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM844 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x118;" d="M951 -254q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-614v1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-175q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28 q0 -35 28 -61.5t90 -26.5z" />
-<glyph unicode="&#x119;" d="M1139 465h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-42 -17 -85 -31t-88 -24q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5 t-62 131.5q0 49 21.5 97t66.5 101q-42 -3 -86 -3q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119zM844 685q-2 116 -60 175.5t-164 59.5 q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x11a;" d="M293 1852h178l198 -162l199 162h178l-223 -264h-309zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x11b;" d="M247 1678h178l198 -227l199 227h178l-256 -376h-241zM669 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29 t205 92v-269q-100 -42 -207 -63t-216 -21zM844 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x11c;" d="M294 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM1130 119q-85 -73 -188.5 -110.5t-221.5 -37.5q-191 0 -326 90.5t-206 264.5q-71 175 -71 421q0 249 71.5 422.5t209.5 262.5q137 88 334 88q189 0 345 -99v-327q-125 161 -318 161q-170 0 -252.5 -126 t-82.5 -382q0 -250 79.5 -380.5t234.5 -130.5q49 0 79 9q19 5 30 10t25 15v285h-202v248h460v-684z" />
-<glyph unicode="&#x11d;" d="M525 1673h241l256 -376h-178l-199 225l-198 -225h-178zM215 -369v269q80 -43 167.5 -66.5t173.5 -23.5q68 0 113 14t75 44q59 59 59 183v121q-44 -80 -114.5 -119t-171.5 -39q-128 0 -222.5 67.5t-145.5 193.5t-51 298t51.5 302.5t145.5 202.5q95 71 217 71q98 0 173 -45 t118 -127l29 143h264v-1036q0 -181 -53 -292t-166 -163q-115 -53 -299 -53q-180 0 -363 55zM724 304q79 100 79 273q0 98 -25.5 173.5t-73.5 117.5q-47 41 -108 41q-60 0 -106.5 -41.5t-72.5 -116.5q-26 -76 -26 -173q0 -99 25.5 -174.5t72.5 -116.5t107 -41q83 0 128 58z " />
-<glyph unicode="&#x11e;" d="M676 1588q-147 0 -233 68q-42 32 -68 79.5t-34 116.5h141q19 -59 69 -90q49 -31 125 -31q77 0 125 30q49 31 68 91h143q-15 -128 -101 -196q-45 -35 -104.5 -51.5t-130.5 -16.5zM720 -29q-143 0 -255 50.5t-190 150.5q-75 96 -116.5 238t-41.5 337q0 186 39.5 330 t120.5 244q160 199 455 199q51 0 94.5 -6t87.5 -19q85 -25 163 -74v-327q-62 80 -142 121q-80 40 -176 40q-170 0 -252 -126q-83 -128 -83 -382q0 -125 20 -220.5t60 -161.5q38 -62 95 -95.5t140 -33.5q40 0 78 9q22 5 33 11t22 14v285h-202v248h460v-684q-84 -72 -187 -110 q-52 -19 -106 -28.5t-117 -9.5z" />
-<glyph unicode="&#x11f;" d="M616 1299q-76 0 -136.5 18.5t-105.5 58.5q-46 41 -68 96t-25 124h141q10 -68 61 -106q50 -38 134 -38q83 0 132 37q50 37 60 107h143q-6 -143 -92 -220q-88 -77 -244 -77zM578 -424q-44 0 -89.5 3t-90.5 10q-90 13 -183 42v269q42 -23 85 -40t84 -28q43 -11 87 -16.5 t85 -5.5q68 0 113.5 14.5t74.5 43.5q59 59 59 183v121q-44 -80 -114 -119q-71 -39 -172 -39q-194 0 -306 150q-57 75 -85 176.5t-28 232.5q0 263 113 420q57 78 132 117t169 39q98 0 173 -45t118 -127l29 143h264v-1036q0 -269 -121 -389q-122 -119 -397 -119zM596 246 q93 0 150 91q28 45 42.5 103.5t14.5 136.5q0 74 -14 134.5t-43 107.5q-57 90 -150 90q-92 0 -148 -90q-57 -90 -57 -241q0 -152 57 -242q56 -90 148 -90z" />
-<glyph unicode="&#x120;" d="M580 1606q-13 0 -22 9t-9 22v184q0 13 9 22t22 9h213q13 0 22 -9t9 -22v-184q0 -13 -9 -22t-22 -9h-213zM719 -29q-143 0 -255 51.5t-189 150.5t-117.5 243.5t-40.5 330.5q0 188 41 332t119.5 242t192 148.5t257.5 50.5q101 0 185.5 -24.5t164.5 -74.5v-327 q-125 161 -319 161q-168 0 -251 -125t-83 -382q0 -252 79 -382t238 -130q34 0 63.5 5.5t48.5 16.5q9 5 14 12.5t5 22.5v232q0 30 -30 30h-172v248h460v-684q-173 -148 -411 -148z" />
-<glyph unicode="&#x121;" d="M509 1349q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM582 -424q-95 0 -184 13.5t-183 41.5v269q83 -46 170 -68t169 -22q129 0 189 57.5t60 183.5v121q-44 -83 -116.5 -120.5t-166.5 -37.5q-99 0 -177 39t-132.5 111.5t-83.5 176t-29 233.5 q0 132 29.5 238.5t84 181t130.5 115t169 40.5q100 0 174.5 -45t117.5 -127l29 143h264v-1036q0 -134 -29.5 -230.5t-92 -158t-159.5 -90.5t-233 -29zM596 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -67 t-41.5 -104.5t-14.5 -137t14.5 -137t41.5 -104t65 -66.5t84 -23.5z" />
-<glyph unicode="&#x122;" d="M719 -29q-143 0 -255 51.5t-189 150.5t-117.5 243.5t-40.5 330.5q0 188 41 332t119.5 242t192 148.5t257.5 50.5q101 0 185.5 -24.5t164.5 -74.5v-327q-125 161 -319 161q-334 0 -334 -508q0 -252 79 -381.5t240 -129.5q40 0 74 8.5t55 25.5v285h-202v248h460v-684 q-173 -148 -411 -148zM627 -187h282l-177 -306h-194z" />
-<glyph unicode="&#x123;" d="M632 1565h194l-89 -306h-282zM582 -424q-95 0 -184 13.5t-183 41.5v269q83 -46 170 -68t169 -22q129 0 189 57.5t60 183.5v121q-44 -83 -116.5 -120.5t-166.5 -37.5q-99 0 -177 39t-132.5 111.5t-83.5 176t-29 233.5q0 132 29.5 238.5t84 181t130.5 115t169 40.5 q100 0 174.5 -45t117.5 -127l29 143h264v-1036q0 -134 -29.5 -230.5t-92 -158t-159.5 -90.5t-233 -29zM596 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -67t-41.5 -104.5t-14.5 -137t14.5 -137t41.5 -104t65 -66.5 t84 -23.5z" />
-<glyph unicode="&#x124;" d="M240 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM137 0v1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295z" />
-<glyph unicode="&#x125;" d="M338 1638l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM172 0v1556h291v-604q32 93 106.5 144t181.5 51q158 0 239 -106t81 -314v-727h-291v682q0 121 -34 173t-111 52q-82 0 -127 -70t-45 -196v-641h-291z" />
-<glyph unicode="&#x126;" d="M137 1105h-134v164h134v224h295v-224h369v224h294v-224h135v-164h-135v-1105h-294v664h-369v-664h-295v1105zM801 924v181h-369v-181h369z" />
-<glyph unicode="&#x127;" d="M172 1270h-160v164h160v122h291v-122h277v-164h-277v-318q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 171.5t-107.5 53.5q-88 0 -132 -69.5t-44 -196.5v-641h-291v1270z" />
-<glyph unicode="&#x128;" d="M268 1618q0 53 14.5 96.5t40.5 74.5t61.5 48t78.5 17q38 0 76.5 -13t74.5 -36l60 -39q20 -13 38.5 -21t38.5 -8q35 0 54.5 30t19.5 87h140v-6t-1 -9t-1 -8v-5q0 -54 -14 -98t-39.5 -75t-62 -48t-82.5 -17q-35 0 -69.5 11t-77.5 38l-54 34l-12 7q-20 11 -37.5 18.5 t-34.5 7.5q-32 0 -52 -29.5t-20 -80.5v-6h-140v30zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x129;" d="M714 1270q-16 0 -31 2.5t-32 9t-37.5 17.5t-45.5 28l-55 37l-12 8q-22 14 -39 21.5t-33 7.5q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 72 -13.5t77 -43.5l62 -43q20 -14 38.5 -22.5t36.5 -8.5q35 0 54.5 32t19.5 89v8h140 q0 -137 -51.5 -210.5t-149.5 -73.5zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#x12a;" d="M301 1820h631v-188h-631v188zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x12b;" d="M230 1536h631v-188h-631v188zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#x12e;" d="M764 1233v-973h297v-260h-297q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-451v260h297v973h-297v260 h889v-260h-297z" />
-<glyph unicode="&#x12f;" d="M451 1323q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM945 -12q-31 -41 -44 -61.5t-20 -34.5q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5 t-62 131.5q0 53 25 104.5t77 109.5q-200 3 -290 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-183z" />
-<glyph unicode="&#x130;" d="M509 1606q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x131;" d="M812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316v0z" />
-<glyph unicode="&#x132;" d="M135 295h374q81 0 148 40q68 39 107.5 107t39.5 148v904h294l1 -904q0 -161 -79 -295q-80 -137 -216 -216t-295 -79h-374v295zM135 1493h295v-903h-295v903z" />
-<glyph unicode="&#x133;" d="M131 1283v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233q-30 0 -30 30zM819 1283v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233q-30 0 -30 30zM131 1120h293v-1120h-293v1120zM424 -131h263q37 0 67 18q30 17 47 47t17 66v1120h295v-1120 q0 -116 -57 -213q-58 -99 -156.5 -156t-212.5 -57h-263v295z" />
-<glyph unicode="&#x134;" d="M480 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM894 89q-56 -59 -150.5 -88.5t-219.5 -29.5q-52 0 -98.5 6t-107.5 20q-102 26 -209 77v342q82 -85 181 -132.5t200 -47.5q115 0 169 58.5t54 184.5v754h-361v260h656v-1014q0 -273 -114 -390z" />
-<glyph unicode="&#x135;" d="M354 1297l256 376h241l256 -376h-178l-199 225l-198 -225h-178zM170 -424v225h234q67 0 106 24t57 76q17 54 17 142v852h-297v225h590v-1077q0 -170 -39.5 -271.5t-124.5 -148.5q-86 -47 -227 -47h-316z" />
-<glyph unicode="&#x136;" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493zM575 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x137;" d="M174 1556h293v-817l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1556zM589 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x138;" d="M174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
-<glyph unicode="&#x139;" d="M669 1853h284l-286 -264h-197zM225 1493h295v-1233h631v-260h-926v1493z" />
-<glyph unicode="&#x13a;" d="M669 1900h284l-286 -264h-197zM778 -8q-105 0 -179 26t-121 82t-69 144.5t-22 214.5v872h-297v225h590v-1097q0 -66 9.5 -112t31 -75t56 -42t83.5 -13h234v-225h-316z" />
-<glyph unicode="&#x13b;" d="M225 1493h295v-1233h631v-260h-926v1493zM591 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x13c;" d="M778 -8q-105 0 -179 26t-121 82t-69 144.5t-22 214.5v872h-297v225h590v-1097q0 -66 9.5 -112t31 -75t56 -42t83.5 -13h234v-225h-316zM465 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x13d;" d="M225 1493h295v-1233h631v-260h-926v1493zM869 1493h282l-161 -376h-197z" />
-<glyph unicode="&#x13e;" d="M778 -8q-105 0 -179 26t-121 82t-69 144.5t-22 214.5v872h-297v225h590v-1097q0 -66 9.5 -112t31 -75t56 -42t83.5 -13h234v-225h-316zM908 1556h282l-161 -376h-197z" />
-<glyph unicode="&#x13f;" d="M225 1493h295v-1233h631v-260h-926v1493zM698 686v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215q-30 0 -30 30z" />
-<glyph unicode="&#x140;" d="M502 39q-85 47 -125 149t-40 271v872h-297v225h590v-1097q0 -88 18 -141q17 -52 56 -76.5t106 -24.5h234v-225h-316q-140 0 -226 47zM769 686v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215q-30 0 -30 30z" />
-<glyph unicode="&#x141;" d="M225 537l-151 -111l-113 154l264 188v725h295v-520l275 194l112 -153l-387 -273v-481h631v-260h-926v537z" />
-<glyph unicode="&#x142;" d="M801 -8q-209 0 -300 108q-91 107 -91 359v166l-273 -195l-100 162l373 264v475h-295v225h587v-493l295 209l103 -160l-398 -280v-373q0 -132 42 -187q20 -27 54 -41t85 -14h233v-225h-315v0z" />
-<glyph unicode="&#x143;" d="M699 1853h284l-286 -264h-197zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
-<glyph unicode="&#x144;" d="M750 1690h282l-368 -376h-197zM172 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120z" />
-<glyph unicode="&#x145;" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493zM519 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x146;" d="M172 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120zM525 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x147;" d="M281 1852h178l198 -162l199 162h178l-223 -264h-309zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
-<glyph unicode="&#x148;" d="M276 1673h178l198 -227l199 227h178l-256 -376h-241zM172 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120z" />
-<glyph unicode="&#x149;" d="M48 1286v270h314v-270l-197 -383h-215zM334 1120h262l29 -168q32 93 106.5 144t181.5 51q158 0 239 -106t81 -314v-727h-291v682q0 122 -34 174.5t-110 52.5q-42 0 -72.5 -17.5t-54.5 -53.5q-46 -70 -46 -197v-641h-291v1120z" />
-<glyph unicode="&#x14a;" d="M612 -199h37q50 0 84.5 13t56.5 42t31.5 75.5t9.5 112.5v971q0 125 -45.5 182.5t-144.5 57.5q-60 0 -105 -20t-75 -56.5t-45 -89t-15 -117.5v-972h-295v1493h266l29 -240q38 130 126.5 199.5t219.5 69.5q184 0 281 -145.5t97 -434.5v-884q0 -133 -22.5 -225.5t-70 -150 t-121.5 -83t-178 -25.5h-121v227z" />
-<glyph unicode="&#x14b;" d="M559 -199h39q50 0 84.5 13t56.5 42t31.5 75t9.5 112v639q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-684q0 -126 -21.5 -214.5t-69 -145t-121.5 -82t-179 -25.5 h-121v225z" />
-<glyph unicode="&#x14c;" d="M301 1830h631v-188h-631v188zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5 q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="&#x14d;" d="M301 1535h631v-188h-631v188zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110 t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x150;" d="M463 1852h284l-286 -264h-197zM838 1852h284l-286 -264h-197zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121 q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="&#x151;" d="M492 1673h217l-248 -376h-164zM854 1673h231l-272 -376h-174zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209 q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x152;" d="M633 0q-324 0 -444 156q-62 80 -91.5 226t-29.5 363q0 437 121 592q62 80 174 118t270 38h573v-260h-332v-311h302v-260h-302v-402h343v-260h-584zM621 260v973h-52q-63 0 -105.5 -23.5t-63.5 -65.5q-23 -45 -34.5 -140.5t-11.5 -258.5q0 -82 3 -146t9 -112.5t14.5 -83 t19.5 -56.5q23 -46 66.5 -66.5t102.5 -20.5h52z" />
-<glyph unicode="&#x153;" d="M374 -29q-101 0 -167.5 36t-107.5 102q-45 72 -65 185t-20 266q0 156 20.5 268t64.5 183q42 69 110 102.5t168 33.5q95 0 156 -29q62 -29 104 -96q28 60 93 93q64 32 158 32q86 0 149 -29.5t100 -89.5q73 -118 73 -422v-127h-450q0 -143 50 -219q49 -76 145 -76 q33 0 62 8t57 22q29 14 58.5 34.5t61.5 52.5v-244q-50 -44 -111 -65q-62 -21 -144 -21q-102 0 -172 37q-71 37 -118 111q-21 -37 -47.5 -65t-61.5 -47q-68 -36 -166 -36zM385 184q45 0 68.5 18t36.5 49q7 18 13 44t9.5 62.5t5.5 86t2 114.5q0 71 -2 122t-6 87.5t-9.5 60.5 t-12.5 40q-14 34 -39.5 50t-66.5 16q-38 0 -64 -15.5t-41 -50.5q-17 -38 -24 -111.5t-7 -196.5q0 -68 2 -118.5t6 -87t9.5 -62t13.5 -42.5q14 -31 38 -48.5t68 -17.5zM985 690v35q0 57 -5.5 97t-19.5 65q-25 47 -87 47q-34 0 -55 -12.5t-33 -35.5q-11 -22 -18 -60.5 t-7 -112.5v-23h225z" />
-<glyph unicode="&#x154;" d="M669 1853h284l-286 -264h-197zM133 1493h426q141 0 242.5 -24.5t167.5 -75.5t97.5 -130.5t31.5 -188.5q0 -171 -74 -260t-217 -109q22 -5 40.5 -14t36 -27.5t36.5 -49t43 -77.5l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838 q60 0 103 11.5t70.5 36t40 63.5t12.5 94q0 54 -12.5 92.5t-39.5 62.5t-70 35.5t-104 11.5h-139v-407h139z" />
-<glyph unicode="&#x155;" d="M865 1680h282l-368 -376h-197zM291 1120h264l29 -174q43 97 132 149t207 52q62 0 119 -14.5t109 -42.5v-279q-48 45 -112 66.5t-142 21.5q-98 0 -165 -33.5t-105 -93.5q-12 -19 -20 -41t-13.5 -51t-7.5 -69t-2 -95v-516h-293v1120z" />
-<glyph unicode="&#x156;" d="M133 1493h426q141 0 242.5 -24.5t167.5 -75.5t97.5 -130.5t31.5 -188.5q0 -171 -74 -260t-217 -109q22 -5 40.5 -14t36 -27.5t36.5 -49t43 -77.5l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838q60 0 103 11.5t70.5 36t40 63.5 t12.5 94q0 54 -12.5 92.5t-39.5 62.5t-70 35.5t-104 11.5h-139v-407h139zM587 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x157;" d="M291 1120h264l29 -174q43 97 132 149t207 52q62 0 119 -14.5t109 -42.5v-279q-48 45 -112 66.5t-142 21.5q-98 0 -165 -33.5t-105 -93.5q-12 -19 -20 -41t-13.5 -51t-7.5 -69t-2 -95v-516h-293v1120zM341 -158h282l-177 -306h-194z" />
-<glyph unicode="&#x158;" d="M209 1852h178l198 -162l199 162h178l-223 -264h-309zM133 1493h426q141 0 242.5 -24.5t167.5 -75.5t97.5 -130.5t31.5 -188.5q0 -171 -74 -260t-217 -109q22 -5 40.5 -14t36 -27.5t36.5 -49t43 -77.5l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590 h-295v1493zM567 838q60 0 103 11.5t70.5 36t40 63.5t12.5 94q0 54 -12.5 92.5t-39.5 62.5t-70 35.5t-104 11.5h-139v-407h139z" />
-<glyph unicode="&#x159;" d="M342 1683h178l198 -227l199 227h178l-256 -376h-241zM291 1120h264l29 -174q43 97 132 149t207 52q62 0 119 -14.5t109 -42.5v-279q-48 45 -112 66.5t-142 21.5q-98 0 -165 -33.5t-105 -93.5q-12 -19 -20 -41t-13.5 -51t-7.5 -69t-2 -95v-516h-293v1120z" />
-<glyph unicode="&#x15a;" d="M699 1853h284l-286 -264h-197zM584 -29q-123 0 -231.5 25.5t-217.5 79.5v305q115 -83 226.5 -124.5t214.5 -41.5q115 0 175 48.5t60 135.5q0 72 -40.5 122t-115.5 79l-145 55q-109 41 -182 84t-117.5 92.5t-63 109t-18.5 134.5q0 107 33.5 190t96.5 139.5t153 86 t204 29.5q103 0 205.5 -23.5t204.5 -69.5v-288q-96 67 -193 102t-194 35q-108 0 -164.5 -43t-56.5 -121q0 -64 42 -104q20 -20 59.5 -41t113.5 -49l127 -48q93 -35 159 -78.5t108.5 -99t62.5 -123.5t20 -152q0 -224 -135 -335t-391 -111z" />
-<glyph unicode="&#x15b;" d="M750 1673h282l-368 -376h-197zM613 -29q-103 0 -208.5 17.5t-214.5 52.5v256q97 -55 197 -84t201 -29q203 0 203 124q0 28 -9.5 45t-28.5 32q-23 18 -64.5 34t-113.5 32l-81 18q-161 36 -241.5 116t-80.5 216q0 168 117.5 257t333.5 89q91 0 184.5 -15.5t183.5 -46.5 v-256q-164 105 -346 105q-97 0 -146.5 -29t-49.5 -77q0 -47 50.5 -78.5t163.5 -58.5l11 -3l84 -20q158 -38 233.5 -121.5t75.5 -226.5q0 -349 -454 -349z" />
-<glyph unicode="&#x15c;" d="M230 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM1110 415q0 -220 -133.5 -332t-394.5 -112q-244 0 -447 105v305q235 -166 445 -166q110 0 170.5 50t60.5 138q0 136 -156 197l-145 55q-150 58 -231.5 116t-115.5 132q-34 72 -34 182q0 134 59 232.5 t169 150.5q108 52 258 52q211 0 411 -93v-288q-94 67 -193 102t-195 35q-106 0 -163 -43t-57 -122q0 -52 23 -83t69 -56q41 -22 123 -54l127 -48q183 -69 266.5 -177t83.5 -278z" />
-<glyph unicode="&#x15d;" d="M240 1297l256 299h241l256 -299h-178l-199 147l-198 -147h-178zM1067 317q0 -346 -451 -346q-105 0 -205.5 16.5t-220.5 53.5v256q95 -54 198 -83.5t197 -29.5q99 0 153 30q27 16 40 38t13 55q0 26 -8.5 44t-30.5 35q-49 37 -177 65l-81 18q-167 38 -244.5 118.5 t-77.5 215.5q0 108 53 185.5t153 118.5q99 40 241 40q98 0 189 -15q44 -7 94 -19.5t89 -27.5v-256q-85 54 -169.5 79.5t-178.5 25.5t-143 -28q-25 -14 -38 -35t-13 -45q0 -45 51 -77q55 -33 163 -58l11 -3l84 -20q161 -38 235 -122t74 -229z" />
-<glyph unicode="&#x15e;" d="M1025 696q85 -109 85 -281q0 -221 -134 -332q-48 -39 -110.5 -65t-141.5 -37q23 -27 40 -51.5t28 -44.5q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5 t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-15 30 -45 72h-7q-60 0 -117 6t-114 20q-114 27 -216 79v305q65 -46 120 -75.5t109 -49.5q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55 q-115 44 -189 88.5t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174z" />
-<glyph unicode="&#x15f;" d="M993 546q38 -43 56 -101.5t18 -127.5q0 -173 -113 -259q-84 -63 -227 -81q23 -26 39 -49.5t26 -42.5q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5 t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 15 -19.5 33.5t-26.5 38.5q-45 2 -92 5.5t-91 11.5q-51 8 -105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 99 -21.5t96 -7.5q54 0 93 8t63 22q29 17 40.5 41t11.5 53q0 22 -7.5 41t-31.5 37t-66.5 34 t-110.5 31l-81 18q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20 q79 -19 138 -49t97 -73z" />
-<glyph unicode="&#x160;" d="M240 1852h178l198 -162l199 162h178l-223 -264h-309zM582 -29q-60 0 -117 6t-114 20q-114 27 -216 79v305q65 -46 120 -75.5t109 -49.5q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55q-115 44 -189 88.5 t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174q85 -109 85 -281 q0 -221 -134 -332q-135 -112 -394 -112z" />
-<glyph unicode="&#x161;" d="M240 1673h178l198 -227l199 227h178l-256 -376h-241zM616 -29q-51 0 -105.5 4.5t-105.5 12.5t-105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 99 -21.5t96 -7.5q54 0 93 8t63 22q29 17 40.5 41t11.5 53q0 22 -7.5 41t-31.5 37t-66.5 34t-110.5 31l-81 18 q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20q79 -19 138 -49t97 -73 t56 -101.5t18 -127.5q0 -173 -113 -259q-57 -44 -142.5 -65.5t-195.5 -21.5z" />
-<glyph unicode="&#x162;" d="M764 0h-57q62 -70 87 -120t25 -102q0 -179 -250 -179q-90 0 -202 26v156q94 -35 164 -35q59 0 91.5 22.5t32.5 61.5q0 29 -21 69.5t-67 100.5h-98v1235h-379v258h1053v-258h-379v-1235z" />
-<glyph unicode="&#x163;" d="M690 895v-534q0 -74 37 -107t121 -33h225v-225h-173q56 -66 78 -113t22 -96q0 -179 -250 -179q-90 0 -202 26v156q94 -35 164 -35q59 0 91.5 22.5t32.5 61.5q0 27 -19 65t-61 94q-137 8 -213 42q-76 33 -111 112t-35 223v520h-286v225h286v306l293 130v-436h383v-225 h-383z" />
-<glyph unicode="&#x164;" d="M233 1864h178l198 -162l199 162h178l-223 -264h-309zM469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
-<glyph unicode="&#x165;" d="M909 1687h282l-161 -376h-197zM827 -4q-253 0 -341 81q-89 80 -89 298v520h-286v225h286v306l293 130v-436h383v-225h-383v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-246z" />
-<glyph unicode="&#x166;" d="M469 538h-247v192h247v505h-379v258h1053v-258h-379v-505h247v-192h-247v-538h-295v538z" />
-<glyph unicode="&#x167;" d="M827 -4q-126 0 -209 18.5t-132 62t-69 116.5t-20 182v186h-178v192h178v142h-286v225h286v306l293 130v-436h383v-225h-383v-142h184v-192h-184v-200q0 -75 36.5 -107.5t121.5 -32.5h225v-225h-246v0z" />
-<glyph unicode="&#x168;" d="M268 1618q0 53 14.5 96.5t40.5 74.5t61.5 48t78.5 17q38 0 76.5 -13t74.5 -36l60 -39q20 -13 38.5 -21t38.5 -8q35 0 54.5 30t19.5 87h140v-6t-1 -9t-1 -8v-5q0 -54 -14 -98t-39.5 -75t-62 -48t-82.5 -17q-35 0 -69.5 11t-77.5 38l-54 34l-12 7q-20 11 -37.5 18.5 t-34.5 7.5q-32 0 -52 -29.5t-20 -80.5v-6h-140v30zM616 -29q-134 0 -230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5z" />
-<glyph unicode="&#x169;" d="M764 1270q-16 0 -31 2.5t-32 9t-37.5 17.5t-45.5 28l-55 37l-12 8q-22 14 -39 21.5t-33 7.5q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 72 -13.5t77 -43.5l62 -43q20 -14 38.5 -22.5t36.5 -8.5q35 0 54.5 32t19.5 89v8h140 q0 -137 -51.5 -210.5t-149.5 -73.5zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
-<glyph unicode="&#x16a;" d="M301 1830h631v-188h-631v188zM616 -29q-134 0 -230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5z" />
-<glyph unicode="&#x16b;" d="M301 1508h631v-188h-631v188zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
-<glyph unicode="&#x16c;" d="M952 1852q-15 -128 -101.5 -196t-234.5 -68q-147 0 -233 67.5t-102 196.5h141q19 -59 68.5 -90t125.5 -31q156 0 193 121h143zM907 32q-112 -61 -291 -61t-291 61.5t-165 188.5q-54 128 -54 330v942h295v-1016q0 -113 57 -176t158 -63t158 63t57 176v1016h295v-942 q0 -202 -54 -330t-165 -189z" />
-<glyph unicode="&#x16d;" d="M946 1596q-6 -143 -93 -220t-243 -77q-155 0 -242 77.5t-93 219.5h141q10 -69 60.5 -106.5t134.5 -37.5q83 0 132.5 37t59.5 107h143zM768 166q-32 -94 -106 -144.5t-181 -50.5q-158 0 -239.5 106t-81.5 314v729h293v-684q0 -121 34 -173t111 -52q81 0 125.5 70t44.5 196 v643h293v-1120h-264z" />
-<glyph unicode="&#x16e;" d="M1126 1493v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5t-230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h259q-28 58 -28 123q0 59 22.5 111t61 90.5t90.5 61t111 22.5t111 -22.5t90.5 -61t60.5 -90.5t22 -111q0 -65 -28 -123h248zM621 1747 q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10t51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5zM616 238q102 0 158.5 63.5t56.5 175.5v946q-39 -43 -92.5 -67.5t-116.5 -24.5q-67 0 -124.5 28.5t-96.5 76.5v-959 q0 -112 56.5 -175.5t158.5 -63.5z" />
-<glyph unicode="&#x16f;" d="M617 1249q-59 0 -111 22.5t-90.5 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90.5 61t111 22.5t111 -22.5t90.5 -61t60.5 -90.5t22 -111t-22 -111t-60.5 -90.5t-90.5 -61t-111 -22.5zM616 1403q27 0 51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5 t-51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
-<glyph unicode="&#x170;" d="M463 1852h284l-286 -264h-197zM838 1852h284l-286 -264h-197zM616 -29q-134 0 -230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5 t-230.5 -33.5z" />
-<glyph unicode="&#x171;" d="M492 1646h217l-248 -376h-164zM854 1646h231l-272 -376h-174zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
-<glyph unicode="&#x172;" d="M1126 1493v-942q0 -143 -26 -248.5t-80.5 -176t-139.5 -108.5t-202 -45q-15 -20 -25.5 -35t-17.5 -26t-11.5 -19t-8.5 -15q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5 t-62 131.5q0 53 25 104.5t77 109.5q-112 10 -193.5 49t-134 109.5t-77.5 174.5t-25 244v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295z" />
-<glyph unicode="&#x173;" d="M1080 -254q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-143v166q-31 -92 -103.5 -143.5t-184.5 -51.5q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5 t43.5 196.5v643h293v-1120h-9q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5z" />
-<glyph unicode="&#x174;" d="M461 1859h309l223 -264h-178l-199 161l-198 -161h-178zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
-<glyph unicode="&#x175;" d="M496 1646h241l256 -376h-178l-199 225l-198 -225h-178zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
-<glyph unicode="&#x176;" d="M461 1859h309l223 -264h-178l-199 161l-198 -161h-178zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="&#x177;" d="M507 1646h241l256 -376h-178l-199 225l-198 -225h-178zM137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
-<glyph unicode="&#x178;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="&#x179;" d="M699 1853h284l-286 -264h-197zM115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
-<glyph unicode="&#x17a;" d="M750 1646h282l-368 -376h-197zM162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
-<glyph unicode="&#x17b;" d="M559 1606q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
-<glyph unicode="&#x17c;" d="M509 1320q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
-<glyph unicode="&#x17d;" d="M240 1852h178l198 -162l199 162h178l-223 -264h-309zM115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
-<glyph unicode="&#x17e;" d="M240 1645h178l198 -227l199 227h178l-256 -376h-241zM162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
-<glyph unicode="&#x192;" d="M240 -426q-28 0 -58 3t-57 9t-56 16t-57 23v234q22 -14 42.5 -24t40.5 -17q39 -13 80 -13q94 0 147 60q52 60 69 190l80 611h-252v219h281l39 293q12 91 44.5 161.5t81.5 118.5q51 49 117 73.5t144 24.5q28 0 59 -3t57 -9q23 -5 54 -16t57 -23v-231q-23 14 -44 23t-38 15 q-39 13 -79 13q-93 0 -144 -60q-27 -32 -44.5 -79.5t-25.5 -110.5l-24 -190h260v-219h-289l-94 -713q-11 -85 -42.5 -157t-83.5 -123q-101 -99 -265 -99z" />
-<glyph unicode="&#x1a0;" d="M1229 1367q0 -117 -45.5 -178.5t-131.5 -61.5q-11 0 -22.5 1t-22.5 4q46 -159 46 -386q0 -383 -132.5 -579t-391.5 -196q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q267 0 400 -208l3 -2q35 -19 63 -19q36 0 61.5 27.5t25.5 87.5q0 30 -7.5 70t-23.5 79h156 q11 -55 16.5 -102t5.5 -86zM694 357q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121q114 0 166 121z" />
-<glyph unicode="&#x1a1;" d="M1202 1167q11 -55 16.5 -102t5.5 -86q0 -117 -45.5 -178.5t-131.5 -61.5h-10t-10 1q9 -42 14 -87t5 -94q0 -135 -36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41t-214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41q149 0 260 -62.5 t177 -177.5q12 -4 26 -4q36 0 61.5 27.5t25.5 87.5q0 30 -7.5 70t-23.5 79h156zM527 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z " />
-<glyph unicode="&#x1a4;" d="M243 1245q-28 0 -41 -8.5t-18 -27.5q-5 -22 -5 -59l1 -80h-175v130q0 96 32.5 162.5t86.5 98.5q25 15 56 23.5t63 8.5h405q580 0 580 -468q0 -230 -142.5 -348t-437.5 -118h-110v-559h-295v1245zM659 807q97 0 154 21t83 69q25 46 25 129q0 80 -24.5 128.5t-81.5 69.5 t-156 21h-121v-438h121z" />
-<glyph unicode="&#x1af;" d="M1206 1555q11 -55 16.5 -102t5.5 -86q0 -117 -45.5 -178.5t-131.5 -61.5h-13t-13 2v-578q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5t-230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5 t56.5 175.5v1016h295v-196q25 10 40.5 36.5t15.5 72.5q0 30 -7.5 70t-23.5 79h156v0z" />
-<glyph unicode="&#x1b0;" d="M1203 1167q11 -55 16.5 -102t5.5 -86q0 -117 -45.5 -178.5t-131.5 -61.5q-69 0 -139 44v-783h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-187 q5 -3 9.5 -6t9.5 -5q35 -19 63 -19q36 0 61.5 27.5t25.5 87.5q0 30 -7.5 70t-23.5 79h156v0z" />
-<glyph unicode="&#x1e6;" d="M337 1852h178l198 -162l199 162h178l-223 -264h-309zM719 -29q-143 0 -255 51.5t-189 150.5t-117.5 243.5t-40.5 330.5q0 188 41 332t119.5 242t192 148.5t257.5 50.5q101 0 185.5 -24.5t164.5 -74.5v-327q-125 161 -319 161q-334 0 -334 -508q0 -252 79 -381.5 t240 -129.5q40 0 74 8.5t55 25.5v285h-202v248h460v-684q-173 -148 -411 -148z" />
-<glyph unicode="&#x1e7;" d="M220 1673h178l198 -227l199 227h178l-256 -376h-241zM580 -424q-93 0 -182 13.5t-183 41.5v269q84 -46 169.5 -68t176.5 -22q125 0 183.5 58t58.5 183v121q-43 -81 -113.5 -119.5t-173.5 -38.5q-96 0 -173.5 39t-131.5 111t-83.5 175t-29.5 232q0 133 29.5 240t83.5 182 t131 115.5t172 40.5q97 0 171.5 -45t117.5 -127l29 143h264v-1036q0 -135 -29.5 -231t-92 -157.5t-160.5 -90.5t-234 -29zM596 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -66.5t-41.5 -104.5t-14.5 -136.5 q0 -76 14.5 -137.5t41.5 -104.5t65 -66.5t84 -23.5z" />
-<glyph unicode="&#x1fe;" d="M668 1852h284l-286 -264h-197zM-6 51l168 238q-35 88 -52.5 201t-17.5 252q0 386 132.5 582t391.5 196q207 0 330 -123l113 162l162 -115l-158 -223q78 -188 78 -478q0 -380 -132.5 -576t-391.5 -196q-213 0 -341 133l-120 -167zM772 1153q-53 102 -156 102 q-112 0 -164 -120q-53 -121 -53 -379v-127zM617 236q113 0 165 121q26 60 39 156.5t13 227.5q0 31 -1 62.5t-4 84.5l-378 -534q26 -60 68.5 -89t97.5 -29z" />
-<glyph unicode="&#x1ff;" d="M754 1674h282l-368 -376h-197zM27 3l163 197q-90 145 -90 360q0 135 36.5 244t104 185.5t163 117.5t214.5 41q85 0 158.5 -21.5t140.5 -66.5l148 176l139 -121l-160 -188q46 -76 69.5 -167.5t23.5 -199.5q0 -135 -36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41 q-168 0 -301 90l-151 -178zM747 861q-26 25 -57 37t-70 12q-53 0 -95 -24t-71.5 -69t-45 -110t-15.5 -147q0 -34 2 -60t6 -50zM620 210q52 0 93.5 24t70.5 69.5t44.5 110.5t15.5 146q0 29 -2.5 58t-8.5 58l-348 -413q60 -53 135 -53z" />
-<glyph unicode="&#x218;" d="M584 -29q-123 0 -231.5 25.5t-217.5 79.5v305q115 -83 226.5 -124.5t214.5 -41.5q115 0 175 48.5t60 135.5q0 72 -40.5 122t-115.5 79l-145 55q-109 41 -182 84t-117.5 92.5t-63 109t-18.5 134.5q0 107 33.5 190t96.5 139.5t153 86t204 29.5q103 0 205.5 -23.5 t204.5 -69.5v-288q-96 67 -193 102t-194 35q-108 0 -164.5 -43t-56.5 -121q0 -64 42 -104q20 -20 59.5 -41t113.5 -49l127 -48q93 -35 159 -78.5t108.5 -99t62.5 -123.5t20 -152q0 -224 -135 -335t-391 -111zM461 -198h282l-177 -306h-194z" />
-<glyph unicode="&#x219;" d="M613 -29q-103 0 -208.5 17.5t-214.5 52.5v256q97 -55 197 -84t201 -29q203 0 203 124q0 28 -9.5 45t-28.5 32q-23 18 -64.5 34t-113.5 32l-81 18q-161 36 -241.5 116t-80.5 216q0 168 117.5 257t333.5 89q91 0 184.5 -15.5t183.5 -46.5v-256q-164 105 -346 105 q-97 0 -146.5 -29t-49.5 -77q0 -47 50.5 -78.5t163.5 -58.5l11 -3l84 -20q158 -38 233.5 -121.5t75.5 -226.5q0 -349 -454 -349zM461 -198h282l-177 -306h-194z" />
-<glyph unicode="&#x21a;" d="M764 0h-57q32 -36 53.5 -65.5t34.5 -56t18.5 -51t5.5 -49.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 29 -21 69.5t-67 100.5h-98v1235h-379v258h1053v-258h-379v-1235z" />
-<glyph unicode="&#x21b;" d="M690 895v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-173q28 -33 47.5 -61t31 -53t16.5 -48t5 -47q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 27 -19 65t-61 94q-196 11 -270 79q-89 80 -89 298 v520h-286v225h286v306l293 130v-436h383v-225h-383z" />
-<glyph unicode="&#x2b9;" d="M565 1638h221l-110 -498h-176z" />
-<glyph unicode="&#x2bb;" d="M432 1174l197 382h215l-99 -382v-271h-313v271z" />
-<glyph unicode="&#x2bc;" d="M530 1286v270h314v-270l-197 -383h-215z" />
-<glyph unicode="&#x2bd;" d="M754 1218q-274 1 -274 265v246h274v-246h-122q2 -122 122 -122v-143v0z" />
-<glyph unicode="&#x2be;" d="M474 1140q27 0 51 10.5t42 28t28 41.5t10 51t-10.5 51t-28 41.5t-41.5 28t-51 10.5v154q59 0 111 -22.5t90.5 -61t61 -90.5t22.5 -111t-22.5 -111t-61 -90.5t-90.5 -61t-111 -22.5v154z" />
-<glyph unicode="&#x2bf;" d="M759 986q-59 0 -111 22.5t-90.5 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90.5 61t111 22.5v-154q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10 -51t28 -41.5t42 -28t51 -10.5v-154v0z" />
-<glyph unicode="&#x2c0;" d="M442 1080h54q125 0 174 64q33 43 33 82q0 53 -33 91q-57 64 -160 64q-92 0 -182 -48v167q22 9 43 16.5t47.5 12.5t62.5 7.5t89 2.5q69 0 130 -26.5t106.5 -70t72 -100t26.5 -116.5q0 -65 -20 -113.5t-54.5 -82.5t-81.5 -54.5t-101 -29.5v-278h-206v412z" />
-<glyph unicode="&#x2c1;" d="M585 946q-54 9 -101 29.5t-81.5 54.5t-54.5 82.5t-20 113.5q0 60 26.5 116.5t72 100t106.5 70t130 26.5q52 0 88.5 -2.5t63 -7.5t47.5 -12.5t43 -16.5v-167q-90 48 -182 48q-103 0 -160 -64q-33 -38 -33 -91q0 -39 33 -82q49 -64 174 -64h54v-412h-206v278z" />
-<glyph unicode="&#x2c6;" d="M496 1638h241l256 -376h-178l-199 225l-198 -225h-178z" />
-<glyph unicode="&#x2c7;" d="M240 1638h178l198 -227l199 227h178l-256 -376h-241z" />
-<glyph unicode="&#x2c8;" d="M522 1554h189v-555h-189v555z" />
-<glyph unicode="&#x2c9;" d="M301 1556h631v-188h-631v188z" />
-<glyph unicode="&#x2cc;" d="M522 390h189v-555h-189v555z" />
-<glyph unicode="&#x2cd;" d="M301 -218h631v-188h-631v188z" />
-<glyph unicode="&#x2ce;" d="M297 -208h282l283 -376h-197z" />
-<glyph unicode="&#x2cf;" d="M654 -208h282l-368 -376h-197z" />
-<glyph unicode="&#x2d0;" d="M411 1120h411l-206 -380zM617 380l205 -380h-411z" />
-<glyph unicode="&#x2d1;" d="M411 1120h411l-206 -380z" />
-<glyph unicode="&#x2d8;" d="M616 1309q-156 0 -242 77q-87 77 -93 220h141q10 -68 61 -106q50 -38 133 -38q84 0 133 37q50 38 60 107h143q-6 -143 -92 -220q-88 -77 -244 -77z" />
-<glyph unicode="&#x2d9;" d="M509 1339q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215v0z" />
-<glyph unicode="&#x2da;" d="M617 1249q-57 0 -109.5 21t-93.5 62q-35 35 -58.5 87.5t-23.5 115.5q0 64 24 115.5t59 86.5q41 41 92.5 61.5t108.5 20.5q62 0 113.5 -22.5t88.5 -59.5q36 -36 59.5 -88t23.5 -116q0 -57 -20.5 -107.5t-61.5 -92.5q-42 -42 -93.5 -63t-108.5 -21zM617 1403q54 0 93 39 q38 38 38 92t-39 93q-40 38 -93 38q-54 0 -92 -38q-39 -39 -39 -93q0 -55 38 -93q16 -16 40 -27t54 -11z" />
-<glyph unicode="&#x2db;" d="M681 -401q-54 0 -98 11.5t-75 34.5q-62 47 -62 132q0 31 7.5 56t20.5 51q15 30 35 57.5t48 58.5h141q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-19 -35 -19 -60q0 -21 9 -37.5t21 -26.5q16 -13 38 -18.5t48 -5.5q14 0 33 1.5t39 5.5q15 3 35.5 9t42.5 15v-156 q-9 -2 -22.5 -4.5t-27.5 -5t-27.5 -4.5t-23.5 -3q-13 -2 -40.5 -3.5t-51.5 -1.5z" />
-<glyph unicode="&#x2dc;" d="M768 1307q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5z" />
-<glyph unicode="&#x2dd;" d="M492 1638h217l-248 -376h-164zM854 1638h231l-272 -376h-174z" />
-<glyph unicode="&#x300;" horiz-adv-x="0" d="M-1034 1638h282l283 -376h-197z" />
-<glyph unicode="&#x301;" horiz-adv-x="0" d="M-481 1638h282l-368 -376h-197z" />
-<glyph unicode="&#x302;" horiz-adv-x="0" d="M-737 1638h241l256 -376h-178l-199 225l-198 -225h-178z" />
-<glyph unicode="&#x303;" horiz-adv-x="0" d="M-469 1307q-16 0 -31 2.5t-32 9t-37.5 17.5t-45.5 28l-55 37l-12 8q-22 14 -39 21.5t-33 7.5q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 72 -13.5t77 -43.5l62 -43q20 -14 38.5 -22.5t36.5 -8.5q35 0 54.5 32t19.5 89v8h140 q0 -137 -51.5 -210.5t-149.5 -73.5z" />
-<glyph unicode="&#x304;" horiz-adv-x="0" d="M-932 1556h631v-188h-631v188z" />
-<glyph unicode="&#x305;" horiz-adv-x="0" d="M-1233 1547h1233v-190h-1233v190z" />
-<glyph unicode="&#x306;" horiz-adv-x="0" d="M-617 1309q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76z" />
-<glyph unicode="&#x307;" horiz-adv-x="0" d="M-754 1585h275v-246h-275v246z" />
-<glyph unicode="&#x308;" horiz-adv-x="0" d="M-932 1585h236v-246h-236v246zM-537 1585h236v-246h-236v246z" />
-<glyph unicode="&#x309;" horiz-adv-x="0" d="M-685 1376q28 7 59.5 24.5t48.5 37.5q11 11 16.5 26t5.5 36q0 34 -13.5 53t-33 27.5t-40.5 10t-35 0.5h-50q-47 0 -116 -31v152q106 26 202 26q224 0 248 -145q1 -10 1.5 -20t0.5 -18q0 -49 -26 -100t-78 -109v-84h-190v114z" />
-<glyph unicode="&#x30a;" horiz-adv-x="0" d="M-617 1249q-59 0 -110.5 22.5t-90 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90 61t110.5 22.5q60 0 112 -22.5t90.5 -61t60.5 -90.5t22 -111t-22 -111t-60.5 -90.5t-90.5 -61t-112 -22.5zM-617 1403q27 0 51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28 t-51 10.5t-51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10z" />
-<glyph unicode="&#x30b;" horiz-adv-x="0" d="M-741 1638h217l-248 -376h-164zM-379 1638h231l-272 -376h-174z" />
-<glyph unicode="&#x30c;" horiz-adv-x="0" d="M-993 1638h178l198 -227l199 227h178l-256 -376h-241z" />
-<glyph unicode="&#x30d;" horiz-adv-x="0" d="M-711 1706h190v-444h-190v444z" />
-<glyph unicode="&#x30e;" horiz-adv-x="0" d="M-996 1706h190v-444h-190v444zM-426 1706h190v-444h-190v444z" />
-<glyph unicode="&#x30f;" horiz-adv-x="0" d="M-1091 1638h231l215 -376h-174zM-714 1638h217l194 -376h-163z" />
-<glyph unicode="&#x310;" horiz-adv-x="0" d="M-754 1801h275v-246h-275v246zM-617 1309q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76z" />
-<glyph unicode="&#x311;" horiz-adv-x="0" d="M-952 1309q6 145 92 221t243 76q158 0 244 -76t92 -221h-143q-11 70 -60 107t-133 37t-133.5 -37.5t-60.5 -106.5h-141v0z" />
-<glyph unicode="&#x312;" horiz-adv-x="0" d="M-609 1209h194l-89 -306h-282z" />
-<glyph unicode="&#x313;" horiz-adv-x="0" d="M-753 1361q120 0 120 122h-120v246h274v-246q0 -264 -274 -265v143z" />
-<glyph unicode="&#x314;" horiz-adv-x="0" d="M-479 1218q-274 1 -274 265v246h274v-246h-122q2 -122 122 -122v-143v0z" />
-<glyph unicode="&#x315;" horiz-adv-x="0" d="M-688 1638h282l-161 -376h-197z" />
-<glyph unicode="&#x316;" horiz-adv-x="0" d="M-899 -217h282l283 -376h-197z" />
-<glyph unicode="&#x317;" horiz-adv-x="0" d="M-616 -217h282l-368 -376h-197z" />
-<glyph unicode="&#x318;" horiz-adv-x="0" d="M-683 -624h-182v189h182v183h190v-555h-190v183z" />
-<glyph unicode="&#x319;" horiz-adv-x="0" d="M-760 -252h189v-183h183v-189h-183v-183h-189v555z" />
-<glyph unicode="&#x31a;" horiz-adv-x="0" d="M-528 1713h-366v189h555v-555h-189v366z" />
-<glyph unicode="&#x31b;" horiz-adv-x="0" d="M-594 739q-54 0 -108 27t-115 84v141q34 -25 59.5 -42t44.5 -27q35 -19 62 -19q39 0 63.5 29.5t24.5 78.5q0 78 -31 156h156q22 -107 22 -190q0 -115 -45.5 -176.5t-132.5 -61.5z" />
-<glyph unicode="&#x31c;" horiz-adv-x="0" d="M-507 -502q-46 0 -86 17t-69.5 47t-46.5 70t-17 86t17 86t46.5 69.5t69.5 46.5t86 17v-132q-37 0 -62 -25t-25 -62q0 -38 25 -63t62 -25v-132v0z" />
-<glyph unicode="&#x31d;" horiz-adv-x="0" d="M-890 -435h182v183h190v-183h183v-189h-555v189z" />
-<glyph unicode="&#x31e;" horiz-adv-x="0" d="M-735 -624h-183v189h555v-189h-183v-183h-189v183z" />
-<glyph unicode="&#x31f;" horiz-adv-x="0" d="M-698 -624h-182v189h182v183h190v-183h183v-189h-183v-183h-190v183z" />
-<glyph unicode="&#x320;" horiz-adv-x="0" d="M-894 -252h555v-189h-555v189z" />
-<glyph unicode="&#x321;" horiz-adv-x="0" d="M-674 -199h39q49 0 83.5 12.5t56.5 41t32 75t10 113.5v125h291v-125q0 -125 -21.5 -213.5t-69 -145t-121.5 -82.5t-179 -26h-121v225z" />
-<glyph unicode="&#x322;" horiz-adv-x="0" d="M-675 -426q-105 0 -179 26t-121.5 82.5t-69 145t-21.5 213.5v125h291v-125q0 -67 10 -113.5t32 -75t56.5 -41t83.5 -12.5h39v-225h-121v0z" />
-<glyph unicode="&#x323;" horiz-adv-x="0" d="M-754 -216h275v-246h-275v246z" />
-<glyph unicode="&#x324;" horiz-adv-x="0" d="M-932 -216h236v-246h-236v246zM-537 -216h236v-246h-236v246z" />
-<glyph unicode="&#x325;" horiz-adv-x="0" d="M-617 -502q-46 0 -86 17t-69.5 47t-46.5 70t-17 86t17 86t46.5 69.5t69.5 46.5t86 17t86.5 -17t70 -46.5t46.5 -69.5t17 -86t-17 -86t-46.5 -70t-70 -47t-86.5 -17zM-617 -370q37 0 62.5 25.5t25.5 62.5q0 36 -25.5 61.5t-62.5 25.5t-62 -25t-25 -62q0 -38 25 -63t62 -25 z" />
-<glyph unicode="&#x326;" horiz-adv-x="0" d="M-772 -198h282l-177 -306h-194z" />
-<glyph unicode="&#x327;" horiz-adv-x="0" d="M-664 -401q-48 0 -98 6.5t-104 19.5v156q91 -35 165 -35q58 0 90.5 23t32.5 63q0 26 -21 67t-67 101h140q57 -63 84.5 -115t27.5 -100q0 -96 -61 -141t-189 -45z" />
-<glyph unicode="&#x328;" horiz-adv-x="0" d="M-593 -401q-115 0 -176.5 45.5t-61.5 132.5q0 54 27 108t84 115h141q-52 -70 -71 -106q-19 -34 -19 -60q0 -39 30 -63.5t81 -24.5q77 0 155 31v-156q-106 -22 -190 -22z" />
-<glyph unicode="&#x329;" horiz-adv-x="0" d="M-711 -218h189v-444h-189v444z" />
-<glyph unicode="&#x32a;" horiz-adv-x="0" d="M-931 -218h630v-374h-188v186h-254v-186h-188v374z" />
-<glyph unicode="&#x32b;" horiz-adv-x="0" d="M-785 -489q-179 0 -226 191q-5 24 -8.5 50.5t-4.5 55.5h143q19 -137 96 -144q80 0 95 128q1 4 1 8t1 8h143q19 -137 96 -144q71 0 92 109q2 9 3 18t2 17h143q-6 -208 -127 -272q-47 -25 -112 -25q-108 0 -169 70q-61 -70 -168 -70z" />
-<glyph unicode="&#x32c;" horiz-adv-x="0" d="M-993 -109h178l198 -227l199 227h178l-256 -376h-241z" />
-<glyph unicode="&#x32d;" horiz-adv-x="0" d="M-737 -109h241l256 -376h-178l-199 225l-198 -225h-178z" />
-<glyph unicode="&#x32e;" horiz-adv-x="0" d="M-617 -491q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76z" />
-<glyph unicode="&#x32f;" horiz-adv-x="0" d="M-952 -489q6 145 92 221t244 76q157 0 243 -76t92 -221h-141q-11 69 -60.5 106.5t-133.5 37.5t-133 -37t-60 -107h-143v0z" />
-<glyph unicode="&#x330;" horiz-adv-x="0" d="M-465 -487q-36 0 -69 12t-81 45l-55 37l-12 8q-44 29 -70 29q-73 0 -73 -121v-8h-140q0 137 51.5 210.5t145.5 73.5q36 0 71.5 -13.5t77.5 -43.5l62 -43q43 -31 74 -31q36 0 55.5 31.5t19.5 89.5v8h140q0 -137 -51.5 -210.5t-145.5 -73.5z" />
-<glyph unicode="&#x331;" horiz-adv-x="0" d="M-932 -218h631v-188h-631v188z" />
-<glyph unicode="&#x332;" horiz-adv-x="0" d="M-1233 -293h1233v-190h-1233v190z" />
-<glyph unicode="&#x333;" horiz-adv-x="0" d="M-1233 -18h1233v-190h-1233v190zM-1233 -293h1233v-190h-1233v190z" />
-<glyph unicode="&#x334;" horiz-adv-x="0" d="M-385 463q-91 0 -203 51q-11 5 -19.5 8.5t-13.5 5.5q-39 17 -70 28t-58.5 18t-52.5 9.5t-50 2.5q-78 0 -148 -29t-145 -92v229q78 61 151 88t156 27q27 0 51.5 -2.5t51.5 -8.5t57 -16.5t67 -25.5l33 -15q114 -55 209 -55q70 0 139 30.5t142 94.5v-233 q-75 -60 -146.5 -87.5t-150.5 -27.5z" />
-<glyph unicode="&#x335;" horiz-adv-x="0" d="M-1041 632h774v-194h-774v194z" />
-<glyph unicode="&#x336;" horiz-adv-x="0" d="M-1233 632h1233v-194h-1233v194z" />
-<glyph unicode="&#x337;" horiz-adv-x="0" d="M-1208 2l1038 1233l139 -121l-1038 -1231z" />
-<glyph unicode="&#x338;" horiz-adv-x="0" d="M-1239 51l1065 1508l162 -115l-1065 -1507z" />
-<glyph unicode="&#x339;" horiz-adv-x="0" d="M-726 -370q37 0 62 25t25 63q0 37 -25 62t-62 25v132q46 0 86 -17t69.5 -46.5t46.5 -69.5t17 -86t-17 -86t-46.5 -70t-69.5 -47t-86 -17v132z" />
-<glyph unicode="&#x33a;" horiz-adv-x="0" d="M-931 -146h188v-186h254v186h188v-374h-630v374z" />
-<glyph unicode="&#x33b;" horiz-adv-x="0" d="M-903 -218h573v-573h-573v573zM-501 -620v231h-231v-231h231z" />
-<glyph unicode="&#x33c;" horiz-adv-x="0" d="M-1024 -489q6 208 127 272q47 25 112 25q107 0 168 -70q61 70 169 70q179 0 226 -191q5 -24 8.5 -50.5t4.5 -55.5h-143q-20 137 -97 144q-79 0 -94 -128q-1 -4 -1 -8t-1 -8h-143q-20 137 -97 144q-70 0 -91 -109q-2 -9 -3 -18t-2 -17h-143v0z" />
-<glyph unicode="&#x33d;" horiz-adv-x="0" d="M-880 1326l129 129l-129 129l134 134l129 -129l130 129l134 -134l-129 -129l129 -129l-134 -134l-130 129l-129 -129z" />
-<glyph unicode="&#x33e;" horiz-adv-x="0" d="M-757 1340h8q57 0 88.5 15t31.5 42q0 23 -30 55l-44 46q-31 33 -43.5 59t-12.5 53q0 82 73.5 123.5t210.5 41.5v-122h-8q-57 0 -90 -14q-32 -14 -32 -41q0 -19 32 -54q5 -5 6 -8l36 -41q18 -20 29.5 -34.5t17.5 -27.5t8.5 -25t2.5 -26q0 -82 -73.5 -123t-210.5 -41v122z " />
-<glyph unicode="&#x33f;" horiz-adv-x="0" d="M0 1272v-190h-1233v190h1233z" />
-<glyph unicode="&#x358;" horiz-adv-x="0" d="M-280 1585h275v-246h-275v246z" />
-<glyph unicode="&#x361;" horiz-adv-x="0" d="M-1473 1506q-8 58 23.5 102t92 76t144.5 54t182 36t204.5 20.5t211.5 8.5q87 2 186.5 -3.5t197 -19.5t187 -37t156 -56.5t103 -78.5t28.5 -102h-143q-14 71 -211 107q-103 19 -228 28t-276 9q-304 0 -504 -37q-197 -36 -211 -107h-143v0z" />
-<glyph unicode="&#x384;" d="M752 1638h282l-368 -376h-197z" />
-<glyph unicode="&#x385;" d="M752 1891h282l-368 -376h-197zM211 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM816 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
-<glyph unicode="&#x386;" d="M202 1638h282l-368 -376h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x388;" d="M-68 1638h282l-368 -376h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x389;" d="M-108 1638h282l-368 -376h-197zM137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
-<glyph unicode="&#x38a;" d="M-48 1638h282l-368 -376h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x38c;" d="M112 1638h282l-368 -376h-197zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5 q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="&#x38e;" d="M-253 1608h282l-368 -376h-197zM469 534q0 117 -16.5 227.5t-44 201t-63.5 154t-75 86.5q-17 10 -44.5 18t-60 12.5t-67 3.5t-64.5 -8v264q16 6 42 8.5t56.5 2t63.5 -4t65 -9.5q65 -14 119.5 -43t98 -80t75.5 -127t52 -183q106 377 344 433q101 24 175 -23q50 -31 72 -77 t26 -94.5t-6.5 -93t-25.5 -72.5q-17 -32 -41 -48t-50.5 -19.5t-53 5.5t-48.5 28t-37.5 46t-19.5 61q-92 -136 -134.5 -301.5t-42.5 -367.5v-534h-295v534z" />
-<glyph unicode="&#x38f;" d="M157 1638h282l-368 -376h-197zM90 211h238q-58 52 -101 111.5t-71 128.5t-42 149.5t-14 176.5q0 159 36.5 285.5t103.5 215t162 135.5t213 47t214 -47t163.5 -135.5t104 -215t36.5 -285.5q0 -96 -14 -177t-42.5 -150t-71 -128t-100.5 -111h238v-211h-471v268 q81 79 120 196t39 287q0 105 -14.5 187.5t-42 139t-67.5 86.5t-91 30t-91 -30t-67.5 -86.5t-42 -138.5t-14.5 -187q0 -162 37.5 -282t124.5 -202v-268h-473v211z" />
-<glyph unicode="&#x390;" d="M752 1891h282l-368 -376h-197zM211 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM816 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225 h493v-763q0 -74 37 -107t121 -33h58v-225h-78z" />
-<glyph unicode="&#x391;" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x392;" d="M125 1495h481q500 0 500 -376q0 -146 -73.5 -226.5t-217.5 -93.5q176 -18 260 -116.5t84 -275.5q0 -107 -31.5 -184t-99 -126.5t-172 -73t-250.5 -23.5h-481v1495zM606 913q56 0 95.5 9.5t64 30t36 53t11.5 78.5q0 93 -48.5 134.5t-158.5 41.5h-196v-347h196zM606 236 q70 0 118.5 11t78.5 36.5t43.5 66t13.5 99.5q0 61 -14 104.5t-44.5 71t-79 40.5t-116.5 13h-196v-442h196z" />
-<glyph unicode="&#x393;" d="M182 1493h930v-260h-635v-1233h-295v1493z" />
-<glyph unicode="&#x394;" d="M436 1493h361l403 -1493h-1167zM845 260l-229 963l-229 -963h458z" />
-<glyph unicode="&#x395;" d="M168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x396;" d="M115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
-<glyph unicode="&#x397;" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
-<glyph unicode="&#x398;" d="M10 680q0 237 71 402t207 250.5t330 85.5q193 0 328.5 -85t206 -251.5t70.5 -406.5q0 -357 -154.5 -528t-445.5 -171q-302 0 -457.5 177.5t-155.5 526.5zM940 686q0 229 -71 363t-246 134q-176 0 -253 -135.5t-77 -361.5q0 -220 76 -337.5t255 -117.5q119 0 188.5 53 t98.5 152.5t29 249.5zM403 809h427v-230h-427v230z" />
-<glyph unicode="&#x399;" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x39a;" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
-<glyph unicode="&#x39b;" d="M436 1493h361l403 -1493h-295l-289 1223l-288 -1223h-295z" />
-<glyph unicode="&#x39c;" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
-<glyph unicode="&#x39d;" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
-<glyph unicode="&#x39e;" d="M137 1493h959v-260h-959v260zM377 924h479v-260h-479v260zM137 260h959v-260h-959v260z" />
-<glyph unicode="&#x39f;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389 q52 -121 165 -121z" />
-<glyph unicode="&#x3a0;" d="M137 1493h959v-1493h-295v1233h-369v-1233h-295v1493z" />
-<glyph unicode="&#x3a1;" d="M162 1493h405q154 0 264 -26.5t180.5 -83.5t103 -145.5t32.5 -211.5t-32.5 -211.5t-103 -145.5t-180.5 -83.5t-264 -26.5h-110v-559h-295v1493zM578 807q72 0 122 11.5t81 37.5t45 68t14 102t-14 102t-45 68t-81 37.5t-122 11.5h-121v-438h121z" />
-<glyph unicode="&#x3a3;" d="M98 260l401 487l-401 487v259h1046v-260h-706l402 -486l-402 -487h706v-260h-1046v260z" />
-<glyph unicode="&#x3a4;" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
-<glyph unicode="&#x3a5;" d="M459 534q0 117 -16.5 227.5t-44 201t-63.5 154t-75 86.5q-17 10 -44.5 18t-60 12.5t-67 3.5t-64.5 -8v264q16 6 42 8.5t56.5 2t63.5 -4t65 -9.5q65 -14 119.5 -43t98 -80t75.5 -127t52 -183q106 377 344 433q101 24 175 -23q50 -31 72 -77t26 -94.5t-6.5 -93t-25.5 -72.5 q-17 -32 -41 -48t-50.5 -19.5t-53 5.5t-48.5 28t-37.5 46t-19.5 61q-92 -136 -134.5 -301.5t-42.5 -367.5v-534h-295v534z" />
-<glyph unicode="&#x3a6;" d="M350 260h119v70q-76 11 -144.5 38t-120 75.5t-82 123t-30.5 179.5t30 178.5t82 122.5t120 75.5t145 38.5v72h-119v260h533v-260h-119v-72q76 -12 144.5 -38.5t120.5 -75.5t82 -122.5t30 -178.5t-30.5 -179.5t-82 -123t-120 -75.5t-144.5 -38v-70h119v-260h-533v260z M469 965l-35 -27q-41 -32 -61 -80.5t-20 -106.5q0 -60 21 -109.5t60 -88.5q16 -16 35 -27v439zM764 526q16 9 36 27q16 15 30.5 36t25.5 47t17.5 55.5t6.5 61.5q0 52 -19 102t-62 83l-14 10.5t-2.5 2t-3 2.5t-15.5 12v-439z" />
-<glyph unicode="&#x3a7;" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
-<glyph unicode="&#x3a8;" d="M350 260h119v132q-149 44 -245 176q-75 103 -109.5 247t-34.5 331v347h295v-347q0 -251 64 -388q5 -10 14 -27.5t16 -25.5v788h295v-788q7 9 15 24t15 29q64 137 64 388v347h295v-347q0 -194 -36 -336t-109 -242q-97 -132 -244 -176v-132h119v-260h-533v260z" />
-<glyph unicode="&#x3a9;" d="M90 211h238q-121 110 -174 245q-54 135 -54 325q0 157 36 283t103 214q65 85 159.5 133.5t216.5 48.5q121 0 216 -47.5t162 -135.5q68 -88 104 -212.5t36 -282.5q0 -191 -54 -326q-53 -135 -174 -245h238v-211h-471v268q81 80 120 196q39 117 39 287q0 210 -56 327 q-56 116 -159 116q-101 0 -158 -116q-57 -117 -57 -327q0 -170 40 -287q17 -51 46 -101.5t76 -94.5v-268h-473v211z" />
-<glyph unicode="&#x3aa;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x3ab;" d="M321 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM716 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM459 534q0 117 -16.5 227.5t-44 201t-63.5 154t-75 86.5q-17 10 -44.5 18t-60 12.5t-67 3.5t-64.5 -8 v264q16 6 42 8.5t56.5 2t63.5 -4t65 -9.5q65 -14 119.5 -43t98 -80t75.5 -127t52 -183q106 377 344 433q101 24 175 -23q50 -31 72 -77t26 -94.5t-6.5 -93t-25.5 -72.5q-17 -32 -41 -48t-50.5 -19.5t-53 5.5t-48.5 28t-37.5 46t-19.5 61q-92 -136 -134.5 -301.5 t-42.5 -367.5v-534h-295v534z" />
-<glyph unicode="&#x3ac;" d="M752 1671h282l-368 -376h-197zM1062 0q-159 0 -240 84q-6 6 -13.5 15t-9.5 14q-12 -15 -25 -30t-25.5 -28t-23 -23.5t-17.5 -15.5q-19 -14 -55.5 -25.5t-84 -16.5t-102 -1t-108.5 20.5t-104 48t-88 81.5q-56 73 -84 185t-28 251q0 153 33 262t92.5 180t141 106t179.5 38 q114 4 199.5 -31.5t133.5 -101.5l36 108h282l-193 -577l27 -153q28 -165 97 -165h82v-225h-102zM695 589l-30 163q-14 76 -49 112.5t-77.5 40t-85 -21t-72.5 -69.5q-58 -89 -58 -262q0 -91 15 -151.5t43 -101.5q27 -39 60 -58.5t64 -20.5t55.5 15.5t35.5 49.5z" />
-<glyph unicode="&#x3ad;" d="M752 1666h282l-368 -376h-197zM672 -22q-261 0 -392 85t-131 246q0 124 78.5 198.5t233.5 96.5q-139 20 -209 83.5t-70 165.5q0 66 31 119.5t93.5 90.5t156.5 57t220 20q42 0 76.5 -2.5t70.5 -8t77 -15t95 -22.5v-215q-53 17 -97 28.5t-82 19t-72 10.5t-66 3 q-115 0 -173.5 -33.5t-58.5 -82.5t57 -80.5t162 -31.5h151v-223h-151q-61 0 -108 -13t-79.5 -35t-49.5 -51.5t-17 -62.5q0 -30 15 -56.5t50 -46t91 -30.5t139 -11q40 0 77 3t76 11.5t82.5 22.5t96.5 35v-219q-64 -18 -117 -29t-98 -17t-83.5 -8t-74.5 -2z" />
-<glyph unicode="&#x3ae;" d="M752 1673h282l-368 -376h-197zM780 682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-1153h-291v1108z" />
-<glyph unicode="&#x3af;" d="M752 1648h282l-368 -376h-197zM901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225h493v-763q0 -74 37 -107t121 -33h58v-225h-78z" />
-<glyph unicode="&#x3b0;" d="M752 1891h282l-368 -376h-197zM211 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM816 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165 v225h457v-755q0 -37 10 -63.5t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5t27 -140.5t10 -157.5q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
-<glyph unicode="&#x3b1;" d="M1062 0q-159 0 -240 84q-6 6 -13.5 15t-9.5 14q-12 -15 -25 -30t-25.5 -28t-23 -23.5t-17.5 -15.5q-19 -14 -55.5 -25.5t-84 -16.5t-102 -1t-108.5 20.5t-104 48t-88 81.5q-56 73 -84 185t-28 251q0 153 33 262t92.5 180t141 106t179.5 38q114 4 199.5 -31.5 t133.5 -101.5l36 108h282l-193 -577l27 -153q28 -165 97 -165h82v-225h-102zM695 589l-30 163q-14 76 -49 112.5t-77.5 40t-85 -21t-72.5 -69.5q-58 -89 -58 -262q0 -91 15 -151.5t43 -101.5q27 -39 60 -58.5t64 -20.5t55.5 15.5t35.5 49.5z" />
-<glyph unicode="&#x3b2;" d="M132 1113q0 229 108.5 342.5t318.5 113.5q102 0 180.5 -25.5t135.5 -68.5t93.5 -100t54 -120t18 -128.5t-14.5 -124.5t-44 -109t-71 -83q118 -41 171 -130.5t53 -240.5q0 -210 -98 -330t-300 -130q-96 -5 -173.5 18t-141.5 72v-495h-291zM422 402q33 -51 76 -88t89 -57.5 t90 -22t79 19.5t56.5 66t21.5 118q0 63 -17.5 106t-52 69t-87.5 36.5t-123 7.5v223q46 -2 81.5 16.5t59 50t36 72.5t13.5 84t-9.5 84t-33 73.5t-56 52.5t-78.5 20q-145 0 -145 -226v-705z" />
-<glyph unicode="&#x3b3;" d="M479 0l-233 752q-11 36 -26.5 61t-38.5 43q-15 12 -32 20.5t-31 8.5h-42v235h80q55 0 109.5 -20.5t102 -60.5t85.5 -98t61 -133l119 -394l243 706h297l-402 -1120v-426h-292v426z" />
-<glyph unicode="&#x3b4;" d="M618 -29q-119 0 -215.5 41t-164 117t-104 185t-36.5 246q0 134 35.5 238.5t104.5 189.5q28 34 52.5 55.5t36.5 21.5q-74 32 -109.5 86t-35.5 126q0 69 32 123t93 91.5t150.5 57.5t204.5 20q45 0 90.5 -3t87.5 -9q2 -1 5 -1t5 -1q16 -2 53.5 -10.5t98.5 -23.5v-215 q-2 1 -5 2t-20 6q-49 15 -87.5 25.5t-72.5 16.5t-66 8.5t-67 2.5q-32 0 -57.5 -2t-46 -6t-37.5 -10.5t-33 -15.5l-22 -15q-17 -13 -26 -30t-9 -42q0 -33 14 -51.5t37 -28.5t52 -13.5t60 -5.5q122 -9 218.5 -48.5t163 -110.5t102 -175.5t35.5 -242.5q0 -141 -36.5 -252.5 t-104 -188.5t-163 -117.5t-213.5 -40.5zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x3b5;" d="M672 -22q-261 0 -392 85t-131 246q0 124 78.5 198.5t233.5 96.5q-139 20 -209 83.5t-70 165.5q0 66 31 119.5t93.5 90.5t156.5 57t220 20q42 0 76.5 -2.5t70.5 -8t77 -15t95 -22.5v-215q-53 17 -97 28.5t-82 19t-72 10.5t-66 3q-115 0 -173.5 -33.5t-58.5 -82.5t57 -80.5 t162 -31.5h151v-223h-151q-61 0 -108 -13t-79.5 -35t-49.5 -51.5t-17 -62.5q0 -30 15 -56.5t50 -46t91 -30.5t139 -11q40 0 77 3t76 11.5t82.5 22.5t96.5 35v-219q-64 -18 -117 -29t-98 -17t-83.5 -8t-74.5 -2z" />
-<glyph unicode="&#x3b6;" d="M762 -201q35 0 57.5 8t36 21.5t19 31t5.5 36.5t-7.5 37.5t-22 33.5t-36.5 24t-52 9q-149 0 -260 39.5t-185.5 107.5t-112.5 160t-41 196.5t27.5 216.5t93.5 221t157 209t219 181h-471v225h876v-225q-610 -378 -610 -797q0 -297 307 -309q70 -3 128.5 -25t100.5 -63.5 t65 -101.5t23 -139q0 -74 -23 -133.5t-64.5 -101.5t-100 -64.5t-129.5 -22.5v225z" />
-<glyph unicode="&#x3b7;" d="M780 682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-1153h-291v1108z" />
-<glyph unicode="&#x3b8;" d="M617 -24q-119 0 -215.5 56t-164 159.5t-104 251.5t-36.5 333q0 184 36.5 332t104 252t163.5 159.5t215 55.5t215 -55.5t163.5 -159.5t104 -252.5t36.5 -333.5q0 -187 -36.5 -333t-102.5 -249q-68 -105 -163.5 -160.5t-215.5 -55.5zM839 887q-6 97 -22 180.5t-43 144.5 t-66 96t-92 35t-92 -35t-66 -96t-43 -144.5t-22 -180.5h446zM616 209q54 0 93.5 36t66.5 98t42 144t21 175h-446q6 -93 21 -175t42 -144t66.5 -98t93.5 -36z" />
-<glyph unicode="&#x3b9;" d="M901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225h493v-763q0 -74 37 -107t121 -33h58v-225h-78v0z" />
-<glyph unicode="&#x3ba;" d="M174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
-<glyph unicode="&#x3bb;" d="M496 1069l-41 119q-13 37 -27.5 62.5t-36.5 41.5t-54 22.5t-79 6.5h-112v235h150q91 0 161 -20t124 -61t93 -104.5t69 -150.5l415 -1220h-297l-224 655l-255 -655h-297z" />
-<glyph unicode="&#x3bc;" d="M174 1120h287v-680q0 -229 164 -229q161 0 161 229v680h289v-776q0 -69 14 -102q13 -31 44 -31q26 0 55 22v-217q-43 -23 -80 -34t-72 -11q-72 0 -117.5 37t-72.5 121q-37 -78 -92 -118t-125 -40q-116 0 -168 95l2 -494h-289v1548z" />
-<glyph unicode="&#x3bd;" d="M47 1120h306l223 -825q57 59 104.5 116.5t82 114.5t54 114.5t19.5 117.5q0 23 -4 48t-18 65q-12 34 -27 68.5t-32.5 67t-36.5 61.5t-38 52h307q33 -44 62 -96.5t50 -107.5t33 -109t12 -100q0 -61 -21 -126.5t-55.5 -131.5t-79.5 -130t-93.5 -122t-97 -108.5t-89.5 -88.5 h-356z" />
-<glyph unicode="&#x3be;" d="M752 -201q35 0 57.5 8t36 21.5t19 30t5.5 34.5q0 21 -6.5 39.5t-20.5 33t-36.5 23.5t-54.5 11q-17 1 -51.5 1.5t-79.5 4t-97.5 13t-104.5 27.5t-100 46.5t-85 72t-59 103t-22 139.5q0 152 89.5 245t281.5 127q-156 19 -237 98.5t-81 200.5q0 45 12 81t38 66.5t68 56.5 t102 49h-247v225h876v-225q-278 0 -417.5 -63.5t-139.5 -180.5q0 -49 25.5 -86t80.5 -63t141.5 -40.5t208.5 -17.5v-223q-250 -4 -379.5 -65.5t-129.5 -182.5q0 -57 27.5 -91t71.5 -53t98.5 -27t109.5 -13q155 -15 236 -93.5t81 -226.5q0 -79 -23 -140.5t-64.5 -104 t-100 -64.5t-129.5 -22v225z" />
-<glyph unicode="&#x3bf;" d="M616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147 t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x3c0;" d="M1018 -39q-43 0 -76 4.5t-62 12.5q-33 10 -53 22.5t-34 26.5t-25 32t-19 43q-14 45 -14 131v658h-274v-891h-285v891h-162v209h1168v-209h-162v-529q0 -37 2 -63.5t5 -45.5t7.5 -31.5t10.5 -19.5q24 -32 94 -32h23.5t18.5 1l33 3v-188q-41 -13 -93 -19q-25 -3 -51.5 -4.5 t-51.5 -1.5z" />
-<glyph unicode="&#x3c1;" d="M150 552q0 301 125.5 448t381.5 147q135 0 227.5 -39t150 -113t83 -181t25.5 -242q0 -147 -27.5 -259.5t-79.5 -188.5t-127 -114.5t-170 -38.5q-52 0 -94.5 11.5t-78 35t-66 58.5t-58.5 82v-584h-292v978zM647 215q95 0 149 92q27 46 40.5 109.5t13.5 143.5 q0 82 -14 146.5t-40 109t-63.5 68t-85.5 23.5t-86 -23.5t-64.5 -68.5t-40.5 -109t-14 -145t14 -145t40.5 -109t64.5 -68.5t86 -23.5z" />
-<glyph unicode="&#x3c2;" d="M749 -201q35 0 57.5 8t36 21.5t19 30.5t5.5 36q0 41 -26.5 70.5t-91.5 34.5q-22 2 -59 3t-82 6t-95 16.5t-99 35.5t-93.5 62t-78.5 96.5t-54 139t-20 188.5q0 145 38 257.5t109 189t173.5 116t231.5 39.5q92 0 174.5 -20.5t166.5 -65.5v-268q-64 55 -140.5 84.5 t-158.5 29.5q-144 0 -220.5 -90.5t-76.5 -267.5q0 -72 12.5 -123.5t34 -86.5t50 -56.5t60 -33.5t64 -17.5t63.5 -8.5q72 -8 130.5 -29.5t100 -59.5t64 -94.5t22.5 -134.5q0 -80 -23 -141.5t-64.5 -104.5t-100 -65t-129.5 -22v225z" />
-<glyph unicode="&#x3c3;" d="M594 -29q-117 0 -212.5 41t-163 117.5t-104 185.5t-36.5 244q0 126 33 229.5t98 177t162 114t225 40.5h552v-225h-212q48 -36 82 -73t55.5 -79.5t31.5 -93t10 -112.5q0 -123 -36.5 -227t-104.5 -179.5t-164 -117.5t-216 -42zM594 209q54 0 96.5 25.5t72 69.5t44.5 103 t15 127q0 45 -8 83.5t-28.5 74t-55.5 68.5t-89 68q-21 14 -51.5 31t-55.5 28q-66 -19 -103 -75q-29 -43 -44.5 -106t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t92.5 -23.5z" />
-<glyph unicode="&#x3c4;" d="M901 0q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v516h-335v225h962v-225h-335v-530q0 -75 37 -107.5t121 -32.5h58v-225h-78v0z" />
-<glyph unicode="&#x3c5;" d="M610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165v225h457v-755q0 -37 10 -63.5t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5t27 -140.5t10 -157.5 q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
-<glyph unicode="&#x3c6;" d="M471 0q-203 33 -304.5 170.5t-101.5 394.5q0 104 16 186.5t43 144.5t63.5 105.5t78.5 70.5t86.5 38.5t87.5 9.5v-229q-11 0 -30 -25.5t-36 -59.5q-42 -86 -42 -213q0 -118 34.5 -202t104.5 -135v392q0 242 84 362t241 120q80 0 148.5 -33t118 -101.5t77.5 -174.5t28 -251 q0 -260 -98 -401t-307 -169v-426h-292v426zM763 256q42 25 69.5 68t43.5 95t22 108.5t5 109.5t-8 97t-17 72q-12 33 -28.5 47t-32.5 11q-29 -5 -41.5 -60.5t-12.5 -155.5v-392z" />
-<glyph unicode="&#x3c7;" d="M468 348l-182 404q-33 74 -72 104q-15 12 -32 20.5t-31 8.5h-79v235h117q50 0 98 -15.5t94 -51.5t89.5 -96t83.5 -149l67 -148l225 460h297l-379 -775l182 -403q18 -40 35 -63.5t37 -40.5q15 -12 32 -20.5t31 -8.5h80v-235h-118q-54 0 -102.5 16t-93.5 53t-87 96.5 t-82 146.5l-67 146l-224 -458h-297z" />
-<glyph unicode="&#x3c8;" d="M471 0q-402 64 -402 588v532h292v-525q0 -290 110 -370v895h292v-895q110 101 110 370v525h292v-532q0 -537 -402 -588v-426h-292v426z" />
-<glyph unicode="&#x3c9;" d="M393 -29q-66 0 -122 23t-91 60q-39 41 -64.5 113t-38.5 163t-13 194t12 208t35.5 204.5t59.5 183.5h262q-23 -81 -39.5 -152.5t-27 -142t-15.5 -143.5t-5 -156q0 -49 1.5 -95.5t5 -85t8.5 -67t11 -41.5q12 -26 44 -28q72 0 75 456h252q3 -456 75 -456q32 2 44 28 q6 13 11 41.5t8.5 67t5 85t1.5 95.5q0 83 -5 156t-15.5 143.5t-27 142t-39.5 152.5h262q36 -85 60 -186t35.5 -206t11 -208t-13.5 -193t-38.5 -161t-63.5 -112q-38 -40 -95 -61.5t-119 -21.5q-173 0 -223 179q-50 -179 -224 -179z" />
-<glyph unicode="&#x3ca;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225h493v-763q0 -74 37 -107t121 -33 h58v-225h-78z" />
-<glyph unicode="&#x3cb;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165v225h457v-755q0 -37 10 -63.5 t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5t27 -140.5t10 -157.5q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
-<glyph unicode="&#x3cc;" d="M752 1673h282l-368 -376h-197zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110 t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x3cd;" d="M752 1648h282l-368 -376h-197zM610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165v225h457v-755q0 -37 10 -63.5t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5 t27 -140.5t10 -157.5q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
-<glyph unicode="&#x3ce;" d="M752 1646h282l-368 -376h-197zM393 -29q-66 0 -122 23t-91 60q-39 41 -64.5 113t-38.5 163t-13 194t12 208t35.5 204.5t59.5 183.5h262q-23 -81 -39.5 -152.5t-27 -142t-15.5 -143.5t-5 -156q0 -49 1.5 -95.5t5 -85t8.5 -67t11 -41.5q12 -26 44 -28q72 0 75 456h252 q3 -456 75 -456q32 2 44 28q6 13 11 41.5t8.5 67t5 85t1.5 95.5q0 83 -5 156t-15.5 143.5t-27 142t-39.5 152.5h262q36 -85 60 -186t35.5 -206t11 -208t-13.5 -193t-38.5 -161t-63.5 -112q-38 -40 -95 -61.5t-119 -21.5q-173 0 -223 179q-50 -179 -224 -179z" />
-<glyph unicode="&#x3f4;" d="M616 -29q-260 0 -392 195t-132 579q0 383 132.5 579t391.5 196q260 0 392.5 -196t132.5 -579q0 -382 -132.5 -578t-392.5 -196zM828 911q-7 74 -19.5 137t-36.5 109t-61.5 72t-94.5 26t-94 -25.5t-60.5 -71t-36.5 -109t-20 -138.5h423zM616 236q57 0 96 27t64 79.5 t38 130t18 178.5h-431q4 -100 17 -177.5t38 -130t64 -80t96 -27.5z" />
-<glyph unicode="&#x400;" d="M304 1850h284l199 -264h-197zM158 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x401;" d="M352 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM747 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM158 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x402;" d="M565 -199h136q49 0 83.5 13t56 42t31 75t9.5 112v461q0 121 -35 173q-22 37 -119 49l-41 3q-70 0 -142 -29l-34 -16q-11 -7 -17 -12.5t-11 -13.5q-23 -32 -34 -82.5t-11 -112.5v-463h-291v1347h-180v209h964v-209h-493v-514q17 49 59 77l47 31q31 20 79.5 30.5 t124.5 17.5q31 3 59 3q61 0 119 -13.5t103 -39.5q37 -21 63 -53q38 -47 59.5 -126t21.5 -188v-529q0 -126 -22 -214.5t-69 -145t-120.5 -82t-177.5 -25.5h-218v225z" />
-<glyph unicode="&#x403;" d="M699 1899h284l-286 -264h-197zM182 1493h930v-260h-635v-1233h-295v1493z" />
-<glyph unicode="&#x404;" d="M739 -29q-150 0 -265 50.5t-193 148.5t-118.5 243t-40.5 333t40.5 332.5t118.5 242.5t193 148.5t265 50.5q97 0 173 -19.5t139 -52.5v-328q-27 25 -59 49.5t-69.5 43.5t-79.5 30.5t-89 11.5q-77 0 -133 -31t-94.5 -83.5t-60.5 -121.5t-30 -144h572v-260h-572 q7 -73 30 -141.5t62 -121t95.5 -84.5t131.5 -32q149 0 296 135v-328q-66 -34 -142 -53t-170 -19z" />
-<glyph unicode="&#x405;" d="M584 -29q-123 0 -231.5 25.5t-217.5 79.5v305q115 -83 226.5 -124.5t214.5 -41.5q115 0 175 48.5t60 135.5q0 72 -40.5 122t-115.5 79l-145 55q-109 41 -182 84t-117.5 92.5t-63 109t-18.5 134.5q0 107 33.5 190t96.5 139.5t153 86t204 29.5q103 0 205.5 -23.5 t204.5 -69.5v-288q-96 67 -193 102t-194 35q-108 0 -164.5 -43t-56.5 -121q0 -64 42 -104q20 -20 59.5 -41t113.5 -49l127 -48q93 -35 159 -78.5t108.5 -99t62.5 -123.5t20 -152q0 -224 -135 -335t-391 -111z" />
-<glyph unicode="&#x406;" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x407;" d="M331 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x408;" d="M533 -29q-53 0 -103 5.5t-101.5 17.5t-105.5 31.5t-114 48.5v342q87 -88 183.5 -134t200.5 -46q114 0 167 58.5t53 184.5v754h-361v260h656v-1014q0 -133 -27.5 -229t-85 -158t-147.5 -91.5t-215 -29.5z" />
-<glyph unicode="&#x409;" d="M0 250h6q56 0 91.5 14t57 41.5t32 69t16.5 96.5q3 29 5.5 72.5t4 112t2.5 168t1 241.5v428h616v-580h22q37 0 79 -12t84.5 -36.5t81.5 -61.5t68.5 -87.5t47.5 -115t18 -143.5q0 -119 -39 -205t-96.5 -142t-123.5 -83t-120 -27h-262v1233h-136v-176q0 -181 -1.5 -330 t-12.5 -266.5t-36 -204t-73 -143.5q-95 -113 -300 -113h-33v250zM840 236q18 0 44.5 11.5t50.5 37.5t41 68t17 104t-17 104t-41 68t-50.5 37.5t-44.5 11.5h-8v-442h8z" />
-<glyph unicode="&#x40a;" d="M30 1493h240v-569h322v569h240v-580h22q37 0 79 -12t84.5 -36.5t81.5 -62t68.5 -88t47.5 -115t18 -142.5q0 -119 -39 -205t-96.5 -142t-123.5 -83t-120 -27h-262v664h-322v-664h-240v1493zM840 236q18 0 44.5 11.5t50.5 37.5t41 68t17 104t-17 104t-41 68t-50.5 37.5 t-44.5 11.5h-8v-442h8z" />
-<glyph unicode="&#x40b;" d="M156 1347h-190v209h964v-209h-483v-514q1 4 5.5 15.5t16 26.5t31.5 32.5t52 34.5q18 10 37 17t42.5 12.5t54 9.5t71.5 8q31 3 59 3q60 0 118 -13.5t104 -39.5q37 -21 63 -53q38 -47 59.5 -126t21.5 -188v-572h-291v504q0 121 -35 173q-22 37 -119 49l-41 3 q-70 0 -142 -29l-34 -16q-11 -7 -17 -12.5t-11 -13.5q-23 -32 -34 -82.5t-11 -112.5v-463h-291v1347z" />
-<glyph unicode="&#x40c;" d="M689 1850h284l-286 -264h-197zM107 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
-<glyph unicode="&#x40d;" d="M314 1850h284l199 -264h-197zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
-<glyph unicode="&#x40e;" d="M626 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM195 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
-<glyph unicode="&#x40f;" d="M487 0h-350v1493h295v-1233h369v1233h295v-1493h-350v-322h-259v322z" />
-<glyph unicode="&#x410;" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x411;" d="M152 1493h930v-260h-635v-299h110q154 0 264 -26.5t180.5 -83.5t103 -145.5t32.5 -211.5t-32.5 -211.5t-103 -145.5t-180.5 -83.5t-264 -26.5h-405v1493zM568 248q72 0 122 11.5t81 37.5t45 68t14 102t-14 102t-45 68t-81 37.5t-122 11.5h-121v-438h121z" />
-<glyph unicode="&#x412;" d="M125 1495h481q500 0 500 -376q0 -146 -73.5 -226.5t-217.5 -93.5q176 -18 260 -116.5t84 -275.5q0 -107 -31.5 -184t-99 -126.5t-172 -73t-250.5 -23.5h-481v1495zM606 913q56 0 95.5 9.5t64 30t36 53t11.5 78.5q0 93 -48.5 134.5t-158.5 41.5h-196v-347h196zM606 236 q70 0 118.5 11t78.5 36.5t43.5 66t13.5 99.5q0 61 -14 104.5t-44.5 71t-79 40.5t-116.5 13h-196v-442h196z" />
-<glyph unicode="&#x413;" d="M182 1493h930v-260h-635v-1233h-295v1493z" />
-<glyph unicode="&#x414;" d="M40 260h100q12 0 24 12t21.5 31t15.5 43t6 49v102v996h848v-1233h137v-582h-255v322h-642v-322h-255v582zM760 260v973h-258v-736q0 -141 -30 -237h288z" />
-<glyph unicode="&#x415;" d="M158 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x416;" d="M271 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l258 -886h-250l-157 537l-77 -181v-356h-240v356l-77 181l-157 -537h-250z" />
-<glyph unicode="&#x417;" d="M554 -29q-110 0 -219.5 19t-209.5 55v274q48 -25 102 -43t108 -30t106 -17.5t97 -5.5q145 0 212 56.5t67 155.5q0 107 -69.5 170t-198.5 63h-158v260h158q111 0 171 43.5t60 125.5q0 81 -60.5 127t-175.5 46q-78 0 -174.5 -21t-199.5 -61v268q103 31 202.5 47.5 t193.5 16.5q118 0 210.5 -26.5t156.5 -76.5t98 -121.5t34 -160.5q0 -137 -76 -220.5t-217 -109.5q77 -14 138 -44.5t103 -79.5t64.5 -116t22.5 -153q0 -215 -138.5 -328t-407.5 -113z" />
-<glyph unicode="&#x418;" d="M119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
-<glyph unicode="&#x419;" d="M616 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
-<glyph unicode="&#x41a;" d="M107 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
-<glyph unicode="&#x41b;" d="M26 265h10q101 0 147 50.5t50 157.5q3 83 5.5 154t4 139.5t2.5 140.5t1 158v428h870v-1493h-295v1233h-280v-176q0 -181 -1.5 -330t-12.5 -266.5t-36 -204t-73 -143.5q-95 -113 -300 -113h-92v265z" />
-<glyph unicode="&#x41c;" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
-<glyph unicode="&#x41d;" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
-<glyph unicode="&#x41e;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389 q52 -121 165 -121z" />
-<glyph unicode="&#x41f;" d="M137 1493h959v-1493h-295v1233h-369v-1233h-295v1493z" />
-<glyph unicode="&#x420;" d="M162 1493h405q154 0 264 -26.5t180.5 -83.5t103 -145.5t32.5 -211.5t-32.5 -211.5t-103 -145.5t-180.5 -83.5t-264 -26.5h-110v-559h-295v1493zM578 807q72 0 122 11.5t81 37.5t45 68t14 102t-14 102t-45 68t-81 37.5t-122 11.5h-121v-438h121z" />
-<glyph unicode="&#x421;" d="M300 1321q75 93 182.5 143.5t244.5 54.5q15 2 15 16v210q0 10 10 10h308q10 0 10 -10v-625q-76 70 -147.5 102.5t-150.5 32.5q-160 0 -242 -128t-82 -382q0 -253 82 -381t242 -128q79 0 150.5 32.5t147.5 102.5v-328q-139 -72 -313 -72q-149 0 -264 50t-193 149 q-159 200 -159 575q0 376 159 576z" />
-<glyph unicode="&#x422;" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
-<glyph unicode="&#x423;" d="M195 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
-<glyph unicode="&#x424;" d="M489 132q-104 9 -188.5 63.5t-144.5 140t-93 195.5t-33 230q0 119 32.5 229t92.5 196t145 141t189 64v102h255v-102q103 -9 188 -64t145 -140.5t93 -196t33 -230.5t-33 -229.5t-93 -195t-145 -140t-188 -63.5v-132h-255v132zM489 1136q-57 -12 -96.5 -45.5t-63.5 -83 t-34.5 -112t-10.5 -132.5q0 -65 9.5 -127.5t33 -113.5t63 -87t99.5 -48v749zM744 387q57 12 96.5 45t63.5 82.5t34.5 112t10.5 133.5q0 66 -9.5 128.5t-33 113.5t-63 86.5t-99.5 47.5v-749z" />
-<glyph unicode="&#x425;" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
-<glyph unicode="&#x426;" d="M935 0h-803v1493h295v-1233h369v1233h295v-1233h137v-582h-293v322z" />
-<glyph unicode="&#x427;" d="M828 766q-30 -77 -112.5 -118t-227.5 -41q-107 0 -182 24t-122.5 75t-69 130.5t-21.5 190.5v529h291v-461q0 -72 17.5 -116t46.5 -68t67 -32.5t79 -8.5q70 0 115 17.5t71.5 51.5t37 83.5t10.5 113.5v420h291v-1556h-291v766z" />
-<glyph unicode="&#x428;" d="M78 1494h240v-1234h178v1233h240v-1234h178v1234h240v-1493h-1076v1494z" />
-<glyph unicode="&#x429;" d="M984 0h-902v1493h240v-1232h178v1231h240v-1232h178v1232h240v-1232h66v-582h-240v322z" />
-<glyph unicode="&#x42a;" d="M280 1284h-250v209h545v-580h30q153 0 263 -26.5t180.5 -82.5t103.5 -142.5t33 -205.5q0 -117 -32.5 -203t-102 -142.5t-179.5 -83.5t-266 -27h-325v1284zM616 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-41v-442h41z" />
-<glyph unicode="&#x42b;" d="M40 1493h255v-580h10q131 0 231.5 -26.5t168 -82.5t102 -142.5t34.5 -205.5q0 -235 -134.5 -345.5t-401.5 -110.5h-265v1493zM938 1493h255v-1493h-255v1493zM316 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-21v-442h21z" />
-<glyph unicode="&#x42c;" d="M164 1493h295v-580h110q153 0 263 -26.5t180.5 -82.5t103.5 -142.5t33 -205.5q0 -117 -32.5 -203t-102 -142.5t-179.5 -83.5t-266 -27h-405v1493zM580 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-121v-442h121z" />
-<glyph unicode="&#x42d;" d="M505 -29q-89 0 -165.5 18t-147.5 54v328q145 -135 304 -135q271 0 311 379h-542v260h542q-41 380 -312 380q-158 0 -303 -135v328q135 72 311 72q150 0 265.5 -50.5t193.5 -148.5t118.5 -242.5t40.5 -332.5t-40.5 -333t-118.5 -243t-193 -148.5t-264 -50.5z" />
-<glyph unicode="&#x42e;" d="M820 -29q-84 0 -157.5 47t-125.5 149q-108 194 -125 484h-111v-651h-295v1493h295v-582h115q7 69 21.5 140.5t38 139.5t57.5 127.5t79 104.5t102.5 71t128.5 26q97 0 170.5 -50t120.5 -146q24 -48 42.5 -111.5t31 -138t19 -158t5.5 -171.5q-2 -187 -33 -331.5 t-85.5 -242.5t-129.5 -149t-164 -51zM739 356q18 -54 41 -82t47 -28.5t46 27t37 83.5q13 41 22.5 100t14.5 127.5t5 143.5t-4 148t-13.5 139.5t-24.5 119.5q-17 60 -38 90.5t-50 30.5t-49.5 -31.5t-33.5 -89.5q-21 -77 -31.5 -173t-10.5 -221t10.5 -222.5t31.5 -161.5z" />
-<glyph unicode="&#x42f;" d="M359 644q-39 20 -85 52.5t-86 84t-66.5 124t-26.5 173.5q0 216 136.5 315.5t402.5 99.5h476v-1493h-295v590h-162l-299 -590h-321zM815 838v407h-189q-111 0 -168.5 -47t-57.5 -156t57.5 -156.5t168.5 -47.5h189z" />
-<glyph unicode="&#x430;" d="M494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14 t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290 q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#x431;" d="M636 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244v41.5t-1 20.5l-17 167q-8 74 -11.5 119.5t-3.5 71.5q0 11 0.5 24t1.5 21q7 62 26 132.5t56 138t93.5 126t137.5 96.5q41 19 86 31.5t100 20.5t122.5 13.5t154.5 10.5q18 1 29.5 2.5t20.5 3.5t17 4.5t19 7.5 l110 -212q-19 -7 -42.5 -11.5t-43.5 -6.5l-290 -24q-63 -5 -104 -17t-67 -28q-30 -17 -61.5 -46t-59 -65t-47.5 -76t-26 -80q64 51 143 76.5t173 25.5q120 0 216.5 -41t164 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM636 209 q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x432;" d="M139 1120h468q123 0 213.5 -17t149 -52.5t87 -91t28.5 -132.5q0 -47 -10.5 -83t-30.5 -63.5t-50.5 -47t-69.5 -34.5q104 -29 157 -102t53 -179q0 -154 -117 -236t-361 -82h-517v1120zM587 698q72 0 114 6t63 18q17 10 28 28t11 44q0 23 -9.5 44t-29.5 35q-21 14 -63 21 t-114 7h-156v-203h156zM598 219q126 0 184.5 30.5t58.5 100.5t-58.5 99.5t-184.5 29.5h-167v-260h167z" />
-<glyph unicode="&#x433;" d="M262 1120h799v-219h-508v-901h-291v1120z" />
-<glyph unicode="&#x434;" d="M68 219h76q8 0 21 10.5t25 32.5q6 10 10.5 24.5t8 34.5t5.5 48t2 66v685h847v-901h123v-505h-219v286h-680v-286h-219v505zM772 219v682h-265v-442q0 -147 -31 -240h296z" />
-<glyph unicode="&#x435;" d="M679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM854 685 q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x436;" d="M268 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l254 -694h-255l-156 427l-72 -122v-305h-240v305l-72 122l-156 -427h-255z" />
-<glyph unicode="&#x437;" d="M522 -22q-47 0 -89 3t-84.5 10.5t-87 20t-96.5 32.5v236q49 -24 92 -39.5t86.5 -24.5t91.5 -12t108 -3q55 0 102 3.5t81 15.5t53 35.5t19 63.5q0 45 -23 73t-57.5 43.5t-74.5 21t-75 5.5h-163v219h137q42 0 83 6t73.5 20.5t52.5 38.5t20 59q0 123 -255 123 q-161 0 -314 -52v223q54 16 147 32t210 16q124 0 216.5 -22.5t154.5 -64t93 -101t31 -134.5q0 -58 -17 -101t-44 -73t-60 -49t-64 -29q40 -11 80 -36t71.5 -61.5t51 -84.5t19.5 -104q0 -78 -40 -136t-114.5 -96.5t-179.5 -57.5t-235 -19z" />
-<glyph unicode="&#x438;" d="M152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
-<glyph unicode="&#x439;" d="M616 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
-<glyph unicode="&#x43a;" d="M174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
-<glyph unicode="&#x43b;" d="M39 240h10q52 0 86 7.5t55.5 29.5t32.5 60.5t17 101.5q3 29 4.5 62t3 67.5t2 68t0.5 63.5v420h849v-1120h-291v901h-267v-197q0 -73 -3 -155.5t-14 -162t-32.5 -150.5t-58.5 -121q-45 -60 -116 -87.5t-183 -27.5h-95v240z" />
-<glyph unicode="&#x43c;" d="M86 1120h352l178 -655l178 655h352v-1120h-240l-2 823l-172 -653h-232l-174 653v-823h-240v1120z" />
-<glyph unicode="&#x43d;" d="M172 1120h291v-381h317v381h291v-1120h-291v520h-317v-520h-291v1120z" />
-<glyph unicode="&#x43e;" d="M616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147 t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x43f;" d="M172 1120h899v-1120h-291v901h-317v-901h-291v1120z" />
-<glyph unicode="&#x440;" d="M150 1120h263l29 -168q45 95 118.5 145t181.5 50q94 0 168.5 -39.5t126.5 -114.5t79 -184.5t27 -249.5q0 -142 -28 -251.5t-80.5 -184.5t-127.5 -113.5t-169 -38.5q-98 0 -168 44.5t-128 142.5v-584h-292v1546zM647 215q48 0 85.5 23.5t63.5 68.5t40 109t14 145t-14 145 t-40 109t-63.5 68.5t-85.5 23.5t-86 -23.5t-64.5 -68.5t-40.5 -109t-14 -145t14 -145t40.5 -109t64.5 -68.5t86 -23.5z" />
-<glyph unicode="&#x441;" d="M295 992q72 76 175 116.5t231 40.5q20 0 56 -2h2q14 0 14 14v214q0 10 10 10h248q10 0 10 -10v-580q-64 55 -141 84.5t-158 29.5q-144 0 -220.5 -90.5t-76.5 -260.5q0 -169 76.5 -258t223.5 -89q167 0 296 115v-269q-149 -86 -339 -86q-130 0 -233 40t-175 116t-109 185 t-37 246q0 138 37.5 248t109.5 186z" />
-<glyph unicode="&#x442;" d="M472 901h-308v219h907v-219h-308v-901h-291v901z" />
-<glyph unicode="&#x443;" d="M137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
-<glyph unicode="&#x444;" d="M496 -29q-74 7 -148 49.5t-133.5 117t-97 180.5t-37.5 241t37.5 241t97 180.5t133.5 116.5t148 50v409h240v-409q75 -8 149.5 -50t134.5 -116.5t97 -180.5t37 -241t-37 -241t-97 -180.5t-134.5 -117t-149.5 -49.5v-397h-240v397zM496 909q-35 -9 -67 -32.5t-56 -66 t-38.5 -104.5t-14.5 -147t14.5 -147t38.5 -104.5t56 -66t67 -32.5v700zM736 209q36 9 68.5 32.5t56.5 66t38.5 104.5t14.5 147t-14.5 147t-38.5 104.5t-56.5 66t-68.5 32.5v-700z" />
-<glyph unicode="&#x445;" d="M469 584l-381 536h342l186 -334l187 334h342l-377 -536l410 -584h-342l-220 377l-219 -377h-342z" />
-<glyph unicode="&#x446;" d="M998 0h-836v1120h291v-901h317v901h291v-901h156v-505h-219v286z" />
-<glyph unicode="&#x447;" d="M760 416h-190q-98 0 -179 17.5t-139.5 62t-91 121.5t-32.5 196v307h299v-337q0 -45 10 -74.5t35.5 -46t69.5 -23t111 -6.5h107v488h290v-1121h-290v416z" />
-<glyph unicode="&#x448;" d="M78 1120h240v-901h178v901h240v-901h178v901h240v-1120h-1076v1120z" />
-<glyph unicode="&#x449;" d="M1014 0h-943v1120h240v-901h178v901h240v-901h178v901h240v-901h86v-505h-219v286z" />
-<glyph unicode="&#x44a;" d="M301 895h-251v225h542v-422h127q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-418v895zM665 219q111 0 163.5 30.5t52.5 100.5t-52.5 99.5t-163.5 29.5h-73v-260h73z" />
-<glyph unicode="&#x44b;" d="M31 1120h291v-422h21q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-312v1120zM908 1120h293v-1120h-293v1120zM349 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-27v-260h27z" />
-<glyph unicode="&#x44c;" d="M217 1120h291v-422h177q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-468v1120zM631 219q111 0 163.5 30.5t52.5 100.5t-52.5 99.5t-163.5 29.5h-123v-260h123z" />
-<glyph unicode="&#x44d;" d="M532 -29q-193 0 -339 86v269q68 -59 137.5 -88t153.5 -29q119 0 197.5 60.5t101.5 188.5h-477v219h472q-52 232 -287 232q-166 0 -298 -114v268q156 84 341 84q130 0 232.5 -40t173.5 -115.5t108.5 -185t37.5 -247.5t-37 -247t-108 -184.5t-174 -116t-235 -40.5z" />
-<glyph unicode="&#x44e;" d="M807 -29q-71 0 -134 32.5t-111.5 97t-80 159.5t-39.5 220h-102v-480h-240v1120h240v-431h107q16 112 49 199.5t81 146.5t110.5 88t136.5 24t143 -44t122.5 -111.5t86 -180t32.5 -249.5q0 -148 -34.5 -259t-91 -184.5t-128.5 -110.5t-147 -37zM828 209q22 0 48 21.5 t46 64.5q22 46 32 110.5t10 155.5q0 104 -12 167.5t-34 102.5q-8 14 -19 28t-23.5 25t-25.5 18t-26 7q-22 0 -46.5 -21.5t-44.5 -56.5q-26 -47 -36.5 -114.5t-10.5 -175.5q0 -70 7.5 -133.5t37.5 -117.5q23 -42 50 -61.5t47 -19.5z" />
-<glyph unicode="&#x44f;" d="M365 488q-44 21 -84 49.5t-70.5 67.5t-48.5 89.5t-18 115.5q0 79 29 137t91 96.5t159 57.5t233 19h424v-1120h-291v429h-121l-261 -429h-339zM789 648v261h-173q-40 0 -75 -7t-60.5 -23t-40 -40.5t-14.5 -59.5t14.5 -60t40 -40.5t60.5 -23t75 -7.5h173z" />
-<glyph unicode="&#x450;" d="M238 1673h282l283 -376h-197zM679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269 q-100 -42 -207 -63t-216 -21zM854 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x451;" d="M370 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM765 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5 t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM854 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x452;" d="M575 -199q83 12 139 51t90 101t48.5 144.5t14.5 181.5q0 84 -10 138t-30 84.5t-51 42t-73 11.5q-112 0 -159 -66t-47 -200v-289h-291v895h-171v225h171v436h291v-436h437v-225h-437v-295q30 94 107 144.5t200 50.5q78 0 143 -24t112 -83t73 -157.5t26 -247.5 q0 -132 -25.5 -250t-90.5 -211.5t-178.5 -157.5t-288.5 -88v225z" />
-<glyph unicode="&#x453;" d="M792 1638h282l-368 -376h-197zM262 1120h799v-219h-508v-901h-291v1120z" />
-<glyph unicode="&#x454;" d="M697 -29q-131 0 -234 40t-174 116t-108.5 184.5t-37.5 246.5q0 139 38 248.5t109 185.5t174 116.5t232 40.5q91 0 173.5 -20.5t166.5 -65.5v-268q-64 55 -140 84.5t-160 29.5q-71 0 -121 -20.5t-83 -53.5t-52.5 -74.5t-28.5 -83.5h412v-209h-417q8 -51 27.5 -98t54.5 -82 t87 -56t125 -21q165 0 296 115v-269q-149 -86 -339 -86z" />
-<glyph unicode="&#x455;" d="M613 -29q-103 0 -208.5 17.5t-214.5 52.5v256q97 -55 197 -84t201 -29q203 0 203 124q0 28 -9.5 45t-28.5 32q-23 18 -64.5 34t-113.5 32l-81 18q-161 36 -241.5 116t-80.5 216q0 168 117.5 257t333.5 89q91 0 184.5 -15.5t183.5 -46.5v-256q-164 105 -346 105 q-97 0 -146.5 -29t-49.5 -77q0 -47 50.5 -78.5t163.5 -58.5l11 -3l84 -20q158 -38 233.5 -121.5t75.5 -226.5q0 -349 -454 -349z" />
-<glyph unicode="&#x456;" d="M441 1323q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#x457;" d="M271 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM666 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55 h234v-225h-316z" />
-<glyph unicode="&#x458;" d="M614 1323q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM170 -199h234q49 0 83.5 13t56 42t31 75t9.5 112v852h-297v225h590v-1077q0 -126 -21.5 -214.5t-69 -145t-121.5 -82t-179 -25.5h-316v225z" />
-<glyph unicode="&#x459;" d="M11 240h10q52 0 86 7.5t55.5 29.5t32.5 60.5t17 101.5q3 29 4.5 62t3 67.5t2 68t0.5 63.5v420h598v-422h11q79 0 152 -21.5t128.5 -64.5t88.5 -108.5t33 -153.5t-33 -154t-88.5 -109.5t-128.5 -65t-152 -21.5h-251v901h-118v-197q0 -73 -3 -155.5t-14 -162t-32.5 -150.5 t-58.5 -121q-45 -60 -116 -87.5t-183 -27.5h-44v240zM837 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-17v-260h17z" />
-<glyph unicode="&#x45a;" d="M41 1120h240v-381h299v381h240v-422h11q79 0 152 -21.5t128.5 -64.5t88.5 -108.5t33 -153.5t-33 -154t-88.5 -109.5t-128.5 -65t-152 -21.5h-251v520h-299v-520h-240v1120zM837 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-17v-260h17 z" />
-<glyph unicode="&#x45b;" d="M211 895h-171v225h171v436h291v-436h437v-225h-437v-295q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-375h-291v330q0 118 -33.5 171.5t-106.5 53.5q-86 0 -131.5 -68t-45.5 -198v-289h-291v895z" />
-<glyph unicode="&#x45c;" d="M752 1646h282l-368 -376h-197zM174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
-<glyph unicode="&#x45d;" d="M238 1646h282l283 -376h-197zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
-<glyph unicode="&#x45e;" d="M626 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5 h-242v223z" />
-<glyph unicode="&#x45f;" d="M511 0h-340v1120h291v-901h318v901h291v-1120h-340v-286h-220v286z" />
-<glyph unicode="&#x462;" d="M270 1124h-250v209h250v160h295v-160h323v-209h-323v-211h30q153 0 263 -26.5t180.5 -82.5t103.5 -142.5t33 -205.5q0 -117 -32.5 -203t-102 -142.5t-179.5 -83.5t-266 -27h-325v1124zM606 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37 t-127.5 11h-41v-442h41z" />
-<glyph unicode="&#x463;" d="M286 950h-251v225h251v381h291v-381h402v-225h-402v-252h127q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-418v950zM650 219q111 0 163.5 30.5t52.5 100.5t-52.5 99.5t-163.5 29.5h-73v-260h73z" />
-<glyph unicode="&#x472;" d="M616 -29q-122 0 -208 36.5t-144.5 97t-92.5 138.5t-51.5 160t-22.5 162.5t-5 146.5q0 336 84 528.5t264 252.5q81 27 177 27q261 0 392.5 -195t131.5 -582q0 -325 -93 -510.5t-271 -239.5q-72 -22 -161 -22zM828 911q-18 197 -76 276q-26 35 -60 51.5t-76 16.5 q-148 0 -193 -214q-10 -49 -18 -130h423zM617 236q57 0 95.5 27t63.5 79.5t38 130t18 178.5h-431q4 -100 17 -177.5t38.5 -130t64.5 -80t96 -27.5z" />
-<glyph unicode="&#x473;" d="M614 -29q-235 0 -376 159q-70 79 -105 186t-35 240q0 137 36.5 246.5t104 186t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-164 -117.5t-216.5 -41zM839 632q-6 57 -21.5 107t-42.5 88t-66.5 60t-92.5 22t-92 -22t-66 -60 t-42.5 -88t-21.5 -107h445zM616 209q53 0 90.5 20.5t63 53.5t40.5 73.5t22 81.5h-431q7 -41 22 -81.5t40.5 -73.5t62.5 -53.5t90 -20.5z" />
-<glyph unicode="&#x490;" d="M222 1493h670v306h260v-566h-635v-1233h-295v1493z" />
-<glyph unicode="&#x491;" d="M282 1120h590v314h209v-533h-508v-901h-291v1120z" />
-<glyph unicode="&#x492;" d="M222 664h-135v240h135v589h930v-260h-635v-329h425v-240h-425v-664h-295v664z" />
-<glyph unicode="&#x493;" d="M292 458h-130v219h130v443h799v-219h-508v-224h360v-219h-360v-458h-291v458z" />
-<glyph unicode="&#x494;" d="M528 -199h136q49 0 83.5 13t56 42t31 75t9.5 112v421q0 121 -35 173q-15 22 -41.5 35.5t-77.5 13.5h-233v-686h-295v1493h930v-260h-635v-281h309q125 0 226 -53q19 -10 36.5 -23t29.5 -30q81 -105 81 -314v-489q0 -126 -21.5 -214.5t-69 -145t-122 -82t-180.5 -25.5 h-218v225z" />
-<glyph unicode="&#x495;" d="M488 -199h113q49 0 83 13t55.5 42t31 75t9.5 112v137q0 62 -9 105t-27 69.5t-45.5 38.5t-65.5 12h-120v-405h-291v1120h799v-209h-508v-266h237q160 0 240.5 -104t80.5 -316v-182q0 -126 -21.5 -215t-68.5 -145t-120.5 -81.5t-177.5 -25.5h-195v225z" />
-<glyph unicode="&#x496;" d="M981 0h-10l-157 537l-77 -181v-356h-240v356l-77 181l-157 -537h-250l258 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l182 -626h76v-582h-240v322z" />
-<glyph unicode="&#x497;" d="M1004 0h-39l-156 427l-72 -122v-305h-240v305l-72 122l-156 -427h-255l254 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l174 -475h83v-505h-219v286z" />
-<glyph unicode="&#x498;" d="M1100 412q0 -189 -108 -299.5t-319 -135.5q52 -62 72 -107.5t20 -91.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 25 -16 59t-51 82q-105 2 -209 20.5t-200 53.5v274q48 -25 102 -43t108 -30t106 -17.5t97 -5.5 q145 0 212 56.5t67 155.5q0 107 -69.5 170t-198.5 63h-158v260h158q111 0 171 43.5t60 125.5q0 81 -60.5 127t-175.5 46q-78 0 -174.5 -21t-199.5 -61v268q103 31 202.5 47.5t193.5 16.5q118 0 210.5 -26.5t156.5 -76.5t98 -121.5t34 -160.5q0 -137 -76 -220.5t-217 -109.5 q77 -14 138 -44.5t103 -79.5t64.5 -116t22.5 -153z" />
-<glyph unicode="&#x499;" d="M1079 287q0 -67 -29.5 -119t-85 -90t-135 -61.5t-178.5 -32.5q28 -32 47 -59.5t30 -52.5t16 -48t5 -46q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 26 -17 61.5t-55 86.5h-3q-47 0 -89 3t-84.5 10.5t-87 20 t-96.5 32.5v236q49 -24 92 -39.5t86.5 -24.5t91.5 -12t108 -3q55 0 102 3.5t81 15.5t53 35.5t19 63.5q0 45 -23 73t-57.5 43.5t-74.5 21t-75 5.5h-163v219h137q42 0 83 6t73.5 20.5t52.5 38.5t20 59q0 123 -255 123q-161 0 -314 -52v223q54 16 147 32t210 16 q124 0 216.5 -22.5t154.5 -64t93 -101t31 -134.5q0 -58 -17 -101t-44 -73t-60 -49t-64 -29q40 -11 80 -36t71.5 -61.5t51 -84.5t19.5 -104z" />
-<glyph unicode="&#x49a;" d="M932 0h-35l-354 672l-131 -166v-506h-295v1493h295v-590l462 590h334l-471 -588l348 -645h140v-582h-293v322z" />
-<glyph unicode="&#x49b;" d="M909 0h-35l-307 524l-100 -96v-428h-293v1120h293v-381l352 381h355l-424 -418l315 -493h133v-495h-289v286z" />
-<glyph unicode="&#x4a2;" d="M990 0h-239v664h-369v-664h-295v1493h295v-569h369v569h295v-1233h237v-582h-293v322z" />
-<glyph unicode="&#x4a3;" d="M944 0h-291v530h-317v-530h-291v1120h291v-381h317v381h291v-911h289v-495h-289v286z" />
-<glyph unicode="&#x4a4;" d="M98 1493h240v-578h315v578h580v-247h-340v-1246h-240v675h-315v-675h-240v1493z" />
-<glyph unicode="&#x4a5;" d="M102 1120h240v-390h323v390h568v-210h-328v-910h-240v520h-323v-520h-240v1120z" />
-<glyph unicode="&#x4aa;" d="M772 1255q-160 0 -242 -128t-82 -382t82 -381.5t242 -127.5q79 0 150.5 32.5t147.5 102.5v-328q-54 -28 -112 -45t-123 -23q26 -30 43 -56.5t27.5 -50t15 -46t4.5 -44.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61 q0 26 -16.5 60t-51.5 83q-134 11 -237 66.5t-173 153t-106 236.5t-36 316q0 189 40.5 333.5t118.5 242.5t193 148.5t264 50.5q176 0 313 -72v-328q-76 70 -147.5 102.5t-150.5 32.5z" />
-<glyph unicode="&#x4ab;" d="M747 909q-144 0 -220.5 -90.5t-76.5 -260.5q0 -168 76.5 -257.5t223.5 -89.5q85 0 159 29.5t137 85.5v-269q-116 -67 -260 -82q26 -30 43 -56.5t27.5 -50t15 -46t4.5 -44.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23 t32.5 61q0 26 -16.5 60t-51.5 84q-117 9 -208 53t-154 119t-96 179t-33 233q0 139 38 248.5t109 185.5t174 116.5t232 40.5q91 0 173.5 -20.5t166.5 -65.5v-268q-64 55 -140.5 84.5t-158.5 29.5z" />
-<glyph unicode="&#x4ac;" d="M764 0h-295v1235h-379v258h1053v-258h-379v-975h293v-582h-293v322z" />
-<glyph unicode="&#x4ad;" d="M763 0h-291v911h-308v209h907v-209h-308v-702h289v-495h-289v286z" />
-<glyph unicode="&#x4ae;" d="M469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="&#x4af;" d="M471 31l-414 1089h308l251 -727l251 727h308l-414 -1089v-457h-290v457z" />
-<glyph unicode="&#x4b0;" d="M469 264h-240v260h240v64l-461 905h318l290 -600l291 600h318l-461 -905v-64h240v-260h-240v-264h-295v264z" />
-<glyph unicode="&#x4b1;" d="M471 -250h-200v219h200v62l-414 1089h308l251 -727l251 727h308l-414 -1089v-62h200v-219h-200v-176h-290v176z" />
-<glyph unicode="&#x4b2;" d="M913 0h-12l-285 494l-284 -494h-305l438 758l-426 735h305l272 -475l273 475h305l-424 -735l286 -498h150v-582h-293v322z" />
-<glyph unicode="&#x4b3;" d="M889 0h-53l-220 377l-219 -377h-342l414 584l-381 536h342l186 -334l187 334h342l-377 -536l263 -375h147v-495h-289v286z" />
-<glyph unicode="&#x4ba;" d="M121 1556h291v-666q17 50 59 77l47 31q26 17 76.5 29.5t126.5 18.5l57 3q59 0 118 -13t107 -40q37 -21 63 -53q38 -47 59.5 -126t21.5 -188v-629h-291v561q0 121 -35 173q-23 37 -119 49q-23 3 -42 3q-69 0 -141 -29q-23 -9 -37 -18.5t-25 -23.5q-23 -31 -34 -83 t-11 -112v-520h-291v1556z" />
-<glyph unicode="&#x4bb;" d="M172 1556h291v-604q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 171.5t-107.5 53.5q-88 0 -132 -69.5t-44 -196.5v-641h-291v1556z" />
-<glyph unicode="&#x4c0;" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#x4c1;" d="M616 1587q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM271 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l258 -886h-250l-157 537l-77 -181v-356h-240v356l-77 181l-157 -537h-250z" />
-<glyph unicode="&#x4c2;" d="M616 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM268 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l254 -694h-255l-156 427l-72 -122v-305h-240v305l-72 122l-156 -427h-255z" />
-<glyph unicode="&#x4c3;" d="M483 -199h136q102 0 139 55q41 56 41 187v421q0 126 -35 173q-49 49 -119 49h-86l-147 -180v-506h-295v1493h295v-590l462 590h334l-433 -541q84 0 172 -53q27 -15 41 -27t25 -26q37 -48 59 -128t22 -186v-489q0 -122 -22.5 -213.5t-67.5 -145.5q-44 -53 -119.5 -80.5 t-183.5 -27.5h-218v225z" />
-<glyph unicode="&#x4c4;" d="M442 -199h113q49 0 83 13t55.5 42t31 75t9.5 112v137q0 62 -9 105t-27 69.5t-45.5 38.5t-65.5 12h-120v-405h-293v1120h293v-381l352 381h355l-483 -475h13q160 0 240.5 -104t80.5 -316v-182q0 -126 -21.5 -215t-68.5 -145t-120.5 -81.5t-177.5 -25.5h-195v225z" />
-<glyph unicode="&#x4c7;" d="M485 -199h136q49 0 83.5 13t56 42t31 75t9.5 112v621h-369v-664h-295v1493h295v-569h369v569h295v-1450q0 -125 -22 -213.5t-69.5 -144.5t-122 -82.5t-179.5 -26.5h-218v225z" />
-<glyph unicode="&#x4c8;" d="M487 -199h113q49 0 83.5 13t56 42t31 75t9.5 112v487h-317v-530h-291v1120h291v-381h317v381h291v-1077q0 -126 -21.5 -215t-68.5 -145t-120.5 -81.5t-178.5 -25.5h-195v225z" />
-<glyph unicode="&#x4cb;" d="M537 260h293v506q-17 -49 -59 -77l-47 -31q-14 -9 -36 -17t-49 -14.5t-57.5 -11t-60.5 -5.5l-57 -3q-59 0 -118 13t-107 40q-37 21 -63 53q-38 47 -59.5 126t-21.5 188v529h291v-461q0 -121 35 -173q23 -37 119 -49q22 -3 42 -3q69 0 141 29q23 9 37 18.5t25 23.5 q23 31 34 83t11 112v420h291v-1556h-291v-322h-293v582z" />
-<glyph unicode="&#x4cc;" d="M473 209h289v207h-107q-230 0 -385 101l-4 3q-136 91 -136 293v307h299v-337q0 -61 35 -94q4 -4 9 -8t12 -9q55 -39 170 -39h107v488h290v-1121h-290v-286h-289v495z" />
-<glyph unicode="&#x4cf;" d="M387 1556h293v-1556h-293v1556z" />
-<glyph unicode="&#x4d0;" d="M616 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x4d1;" d="M616 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5 t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62 t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#x4d2;" d="M331 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#x4d3;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203 v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5 q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10z M576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#x4d4;" d="M358 1493h803v-260h-291v-311h260v-260h-260v-402h310v-260h-564v362h-282l-86 -362h-248zM616 598v635h-79l-148 -635h227z" />
-<glyph unicode="&#x4d5;" d="M346 -29q-159 0 -245.5 92t-86.5 266q0 365 406 365h76v51q0 187 -154 187q-116 0 -266 -109v246q77 40 145 59t140 19q99 0 159 -33.5t92 -93.5q32 64 97 95.5t160 31.5q87 0 147.5 -28.5t98.5 -92t55.5 -167t17.5 -253.5v-127h-451q0 -145 49.5 -220t145.5 -75 q119 0 239 117v-244q-96 -86 -252 -86q-107 0 -181.5 40t-119.5 124q-41 -84 -106.5 -124t-165.5 -40zM963 690v23q0 126 -25 172q-26 47 -88 47t-88 -47q-25 -46 -25 -172v-23h226zM365 184q124 0 124 174v125h-73q-176 0 -176 -156q0 -68 32 -105.5t93 -37.5z" />
-<glyph unicode="&#x4d6;" d="M634 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#x4d7;" d="M630 1297q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110 t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM854 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
-<glyph unicode="&#x4d8;" d="M617 -29q-260 0 -392.5 195.5t-132.5 578.5v95h740v5q0 97 -13.5 173.5t-42.5 129t-73.5 80t-107.5 27.5q-67 0 -140 -32.5t-148 -102.5v328q70 36 147 54t157 18q265 0 397.5 -195.5t132.5 -577.5q0 -383 -132.5 -579.5t-391.5 -196.5zM618 236q50 0 86 22t61 65.5 t40 108t23 148.5h-423q11 -176 63.5 -260t149.5 -84z" />
-<glyph unicode="&#x4d9;" d="M620 -29q-121 0 -217 38t-163 110t-102.5 176.5t-35.5 238.5v119h759v10q-1 132 -78 192t-227 60q-105 0 -202 -29t-205 -92v269q100 42 207 63t216 21q145 0 254.5 -38t183.5 -112t111.5 -182t37.5 -247t-36.5 -249.5t-105.5 -188t-169.5 -118.5t-227.5 -41zM621 198 q108 0 166.5 60t70.5 175h-461q2 -115 59.5 -175t164.5 -60z" />
-<glyph unicode="&#x4da;" d="M341 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-260 0 -392.5 195.5t-132.5 578.5v95h740v5q0 97 -13.5 173.5t-42.5 129t-73.5 80 t-107.5 27.5q-67 0 -140 -32.5t-148 -102.5v328q70 36 147 54t157 18q265 0 397.5 -195.5t132.5 -577.5q0 -383 -132.5 -579.5t-391.5 -196.5zM618 236q50 0 86 22t61 65.5t40 108t23 148.5h-423q11 -176 63.5 -260t149.5 -84z" />
-<glyph unicode="&#x4db;" d="M341 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM620 -29q-121 0 -217 38t-163 110t-102.5 176.5t-35.5 238.5v119h759v10q-1 132 -78 192t-227 60 q-105 0 -202 -29t-205 -92v269q100 42 207 63t216 21q145 0 254.5 -38t183.5 -112t111.5 -182t37.5 -247t-36.5 -249.5t-105.5 -188t-169.5 -118.5t-227.5 -41zM621 198q108 0 166.5 60t70.5 175h-461q2 -115 59.5 -175t164.5 -60z" />
-<glyph unicode="&#x4dc;" d="M323 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM718 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM271 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l258 -886h-250l-157 537 l-77 -181v-356h-240v356l-77 181l-157 -537h-250z" />
-<glyph unicode="&#x4dd;" d="M330 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM725 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM268 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l254 -694h-255l-156 427 l-72 -122v-305h-240v305l-72 122l-156 -427h-255z" />
-<glyph unicode="&#x4de;" d="M311 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM706 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM554 -29q-110 0 -219.5 19t-209.5 55v274q48 -25 102 -43t108 -30t106 -17.5t97 -5.5q145 0 212 56.5 t67 155.5q0 107 -69.5 170t-198.5 63h-158v260h158q111 0 171 43.5t60 125.5q0 81 -60.5 127t-175.5 46q-78 0 -174.5 -21t-199.5 -61v268q103 31 202.5 47.5t193.5 16.5q118 0 210.5 -26.5t156.5 -76.5t98 -121.5t34 -160.5q0 -137 -76 -220.5t-217 -109.5 q77 -14 138 -44.5t103 -79.5t64.5 -116t22.5 -153q0 -215 -138.5 -328t-407.5 -113z" />
-<glyph unicode="&#x4df;" d="M319 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM714 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM510 -22q-47 0 -89 3t-84.5 10.5t-87 20t-96.5 32.5v236q49 -24 92 -39.5t86.5 -24.5t91.5 -12 t108 -3q55 0 102 3.5t81 15.5t53 35.5t19 63.5q0 45 -23 73t-57.5 43.5t-74.5 21t-75 5.5h-163v219h137q42 0 83 6t73.5 20.5t52.5 38.5t20 59q0 123 -255 123q-161 0 -314 -52v223q54 16 147 32t210 16q124 0 216.5 -22.5t154.5 -64t93 -101t31 -134.5q0 -58 -17 -101 t-44 -73t-60 -49t-64 -29q40 -11 80 -36t71.5 -61.5t51 -84.5t19.5 -104q0 -78 -40 -136t-114.5 -96.5t-179.5 -57.5t-235 -19z" />
-<glyph unicode="&#x4e0;" d="M615 -28q-166 0 -281.5 31.5t-187.5 91.5t-104 147t-32 197h318q0 -54 22 -92.5t60 -63.5t89 -37t108 -12q103 0 171.5 36.5t89.5 109.5q5 16 6.5 31.5t1.5 29.5q0 86 -54 136.5t-170 64.5q-17 2 -35 3t-38 1h-255v218l372 369h-566v260h1010v-244l-401 -401 q72 -5 130.5 -12t107 -24t89 -47t76.5 -80q42 -57 61.5 -120t19.5 -144q0 -93 -24.5 -162t-67 -119t-100.5 -82.5t-125.5 -51.5t-142 -26.5t-148.5 -7.5z" />
-<glyph unicode="&#x4e1;" d="M531 -440q-112 0 -213.5 18t-207.5 56v297q195 -109 386 -109q136 0 208 53t72 153q0 101 -74.5 153.5t-222.5 52.5h-168v218l390 449h-566v219h895v-229l-391 -455q67 -4 125.5 -10.5t109.5 -24.5t95.5 -51.5t82.5 -91.5q36 -54 53.5 -113t17.5 -132q0 -111 -39 -195.5 t-114.5 -142t-186 -86.5t-252.5 -29z" />
-<glyph unicode="&#x4e2;" d="M301 1850h631v-188h-631v188zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
-<glyph unicode="&#x4e3;" d="M301 1508h631v-188h-631v188zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
-<glyph unicode="&#x4e4;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
-<glyph unicode="&#x4e5;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
-<glyph unicode="&#x4e6;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5 t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="&#x4e7;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41 t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5 t94.5 -23.5z" />
-<glyph unicode="&#x4e8;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM828 911q-7 74 -19.5 137t-36.5 109t-61.5 72t-94.5 26t-94 -25.5t-60.5 -71t-36.5 -109t-20 -138.5h423zM617 236q57 0 95.5 27t63.5 79.5 t38 130t18 178.5h-431q4 -100 17 -177.5t38.5 -130t64.5 -80t96 -27.5z" />
-<glyph unicode="&#x4e9;" d="M614 -29q-235 0 -376 159q-70 79 -105 186t-35 240q0 137 36.5 246.5t104 186t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-164 -117.5t-216.5 -41zM839 632q-6 57 -21.5 107t-42.5 88t-66.5 60t-92.5 22t-92 -22t-66 -60 t-42.5 -88t-21.5 -107h445zM616 209q53 0 90.5 20.5t63 53.5t40.5 73.5t22 81.5h-431q7 -41 22 -81.5t40.5 -73.5t62.5 -53.5t90 -20.5z" />
-<glyph unicode="&#x4ea;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5 t-132.5 -579t-391.5 -196zM828 911q-7 74 -19.5 137t-36.5 109t-61.5 72t-94.5 26t-94 -25.5t-60.5 -71t-36.5 -109t-20 -138.5h423zM617 236q57 0 95.5 27t63.5 79.5t38 130t18 178.5h-431q4 -100 17 -177.5t38.5 -130t64.5 -80t96 -27.5z" />
-<glyph unicode="&#x4eb;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM614 -29q-235 0 -376 159q-70 79 -105 186t-35 240q0 137 36.5 246.5t104 186t163 117.5t214.5 41 t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-164 -117.5t-216.5 -41zM839 632q-6 57 -21.5 107t-42.5 88t-66.5 60t-92.5 22t-92 -22t-66 -60t-42.5 -88t-21.5 -107h445zM616 209q53 0 90.5 20.5t63 53.5t40.5 73.5t22 81.5h-431q7 -41 22 -81.5 t40.5 -73.5t62.5 -53.5t90 -20.5z" />
-<glyph unicode="&#x4ec;" d="M286 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM681 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM490 -29q-89 0 -165.5 18t-147.5 54v328q145 -135 304 -135q271 0 311 379h-542v260h542 q-41 380 -312 380q-158 0 -303 -135v328q135 72 311 72q150 0 265.5 -50.5t193.5 -148.5t118.5 -242.5t40.5 -332.5t-40.5 -333t-118.5 -243t-193 -148.5t-264 -50.5z" />
-<glyph unicode="&#x4ed;" d="M299 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM694 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM537 -29q-193 0 -339 86v269q68 -59 137.5 -88t153.5 -29q119 0 197.5 60.5t101.5 188.5h-477v219 h472q-52 232 -287 232q-166 0 -298 -114v268q78 42 158 63t173 21q130 0 234 -40t177 -115.5t112 -185t39 -247.5t-37 -247t-108 -184.5t-174 -116t-235 -40.5z" />
-<glyph unicode="&#x4ee;" d="M301 1850h631v-188h-631v188zM185 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
-<glyph unicode="&#x4ef;" d="M301 1508h631v-188h-631v188zM127 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
-<glyph unicode="&#x4f0;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM185 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305 l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
-<glyph unicode="&#x4f1;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM127 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308 l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
-<glyph unicode="&#x4f2;" d="M463 1852h284l-286 -264h-197zM838 1852h284l-286 -264h-197zM185 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
-<glyph unicode="&#x4f3;" d="M492 1646h217l-248 -376h-164zM854 1646h231l-272 -376h-174zM127 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
-<glyph unicode="&#x4f4;" d="M321 1627q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM716 1627q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM826 766q-30 -77 -112.5 -118t-227.5 -41q-107 0 -182 24t-122.5 75t-69 130.5t-21.5 190.5v529h291 v-461q0 -72 17.5 -116t46.5 -68t67 -32.5t79 -8.5q70 0 115 17.5t71.5 51.5t37 83.5t10.5 113.5v420h291v-1556h-291v766z" />
-<glyph unicode="&#x4f5;" d="M316 1321q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM711 1321q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM755 416h-190q-98 0 -179 17.5t-139.5 62t-91 121.5t-32.5 196v307h299v-337q0 -45 10 -74.5 t35.5 -46t69.5 -23t111 -6.5h107v488h290v-1121h-290v416z" />
-<glyph unicode="&#x4f6;" d="M477 0h-295v1493h930v-260h-635v-973h293v-582h-293v322z" />
-<glyph unicode="&#x4f7;" d="M523 0h-291v1120h799v-209h-508v-702h289v-495h-289v286z" />
-<glyph unicode="&#x4f8;" d="M371 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM766 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM40 1493h255v-580h10q131 0 231.5 -26.5t168 -82.5t102 -142.5t34.5 -205.5q0 -235 -134.5 -345.5 t-401.5 -110.5h-265v1493zM938 1493h255v-1493h-255v1493zM316 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-21v-442h21z" />
-<glyph unicode="&#x4f9;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM31 1120h291v-422h21q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5 t-143 -65t-190.5 -21.5h-312v1120zM908 1120h293v-1120h-293v1120zM349 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-27v-260h27z" />
-<glyph unicode="&#x510;" d="M671 -29q-269 0 -407.5 113t-138.5 328q0 172 86.5 269t241.5 124q-141 26 -217 109.5t-76 220.5q0 89 34 160.5t98 121.5t156.5 76.5t210.5 26.5q94 0 193.5 -16.5t202.5 -47.5v-268q-103 40 -199.5 61t-174.5 21q-115 0 -175.5 -46t-60.5 -127q0 -82 60 -125.5 t171 -43.5h158v-260h-158q-129 0 -198.5 -63t-69.5 -170q0 -50 16.5 -89t50.5 -66.5t86.5 -42t125.5 -14.5q45 0 97 5.5t106 17.5t108 30t102 43v-274q-100 -36 -209.5 -55t-219.5 -19z" />
-<glyph unicode="&#x511;" d="M672 -22q-261 0 -392 85t-131 246q0 124 78.5 198.5t233.5 96.5q-139 20 -209 83.5t-70 165.5q0 66 31 119.5t93.5 90.5t156.5 57t220 20q42 0 76.5 -2.5t70.5 -8t77 -15t95 -22.5v-215q-53 17 -97 28.5t-82 19t-72 10.5t-66 3q-115 0 -173.5 -33.5t-58.5 -82.5t57 -80.5 t162 -31.5h151v-223h-151q-61 0 -108 -13t-79.5 -35t-49.5 -51.5t-17 -62.5q0 -30 15 -56.5t50 -46t91 -30.5t139 -11q40 0 77 3t76 11.5t82.5 22.5t96.5 35v-219q-64 -18 -117 -29t-98 -17t-83.5 -8t-74.5 -2z" />
-<glyph unicode="&#x51a;" d="M656 -23q-18 -4 -26 -5t-23 -1q-251 0 -383 196.5t-132 579.5t132 578t393 195q259 0 391.5 -196t132.5 -578q0 -266 -62.5 -442.5t-183.5 -252.5l186 -182l-202 -150zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5 q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="&#x51b;" d="M791 158q-58 -98 -128.5 -142.5t-167.5 -44.5q-94 0 -169 38.5t-127.5 113.5t-80.5 184.5t-28 251.5q0 140 27 249.5t79 184.5t126 114.5t169 39.5q108 0 180.5 -50t119.5 -145l29 168h263v-1546h-292v584zM586 215q48 0 86 23.5t64.5 68.5t40.5 109t14 145t-14 145 t-40.5 109t-64.5 68.5t-86 23.5t-85.5 -23.5t-63.5 -68.5t-40 -109t-14 -145t14 -145t40 -109t63.5 -68.5t85.5 -23.5z" />
-<glyph unicode="&#x51c;" d="M0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
-<glyph unicode="&#x51d;" d="M0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
-<glyph unicode="&#x531;" d="M993 -64q-37 17 -72 38.5t-69 46.5q-108 -50 -272 -50q-134 0 -229.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-1016q0 -112 56 -175.5t159 -63.5q23 0 44 3q-32 40 -58 78t-45 72l178 144q17 -32 40 -60.5t52 -54.5q2 14 3 28t1 29v1016h295v-942 q0 -91 -10 -165t-31 -134q54 -28 112 -53l-169 -263v0z" />
-<glyph unicode="&#x532;" d="M98 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-67h-295v141q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-342h742v-260h-742v-414h-295v942z" />
-<glyph unicode="&#x533;" d="M758 414h-231q-131 0 -224 35.5t-153 106.5t-88.5 174t-28.5 241q0 140 29 242.5t92 171.5t158.5 103t232.5 34q133 0 228.5 -33t158.5 -104t92 -180t29 -263v-268h146v-260h-146v-414h-295v414zM758 674v342q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-96 q0 -113 57 -179q28 -32 67.5 -49.5t90.5 -17.5h215z" />
-<glyph unicode="&#x534;" d="M758 1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-141h-295v67q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-268h146v-260h-146v-414h-295v1016z" />
-<glyph unicode="&#x535;" d="M608 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-373h755v-260h-755v-383q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v141h295v-67q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
-<glyph unicode="&#x536;" d="M107 331h295v-71q81 1 161 46.5t146 132.5q67 88 105.5 204.5t38.5 262.5q0 173 -58.5 261t-180.5 88q-54 0 -99.5 -18.5t-77.5 -57.5t-48.5 -99t-16.5 -145v-60h-295v22q0 305 133 465t400 160q142 0 243.5 -43.5t167.5 -124.5q33 -41 58 -91t42 -107t25.5 -119.5 t8.5 -126.5q0 -94 -18.5 -181t-57.5 -172q-41 -88 -104 -165.5t-160 -131.5h279v-260h-987v331z" />
-<glyph unicode="&#x537;" d="M112 1493h295v-373h714v-260h-714v-600h575v-260h-870v1493z" />
-<glyph unicode="&#x538;" d="M98 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-67h-295v141q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-756h742v-260h-1037v942z" />
-<glyph unicode="&#x539;" d="M739 -29q-78 0 -142.5 24.5t-111.5 79.5t-70.5 138.5t-23.5 198.5q0 120 25 206.5t70 143.5q46 57 111 85t146 28h107v141q0 67 -14.5 119.5t-47.5 87.5t-86 53.5t-129 18.5t-128.5 -18.5t-85.5 -53.5t-47.5 -87.5t-14.5 -119.5v-1016h-254v942q0 154 32.5 263t98.5 180 t165 104t234 33t234 -33t165 -104t98.5 -180t32.5 -263v-67h87v-260h-87v-202q0 -108 -25 -189.5t-73 -138.5q-96 -114 -266 -114zM744 218q29 0 49 10.5t33 34.5q13 23 18.5 59.5t5.5 90.5v202h-107q-63 0 -93.5 -47.5t-30.5 -151.5q0 -107 32 -152.5t93 -45.5z" />
-<glyph unicode="&#x53a;" d="M544 -29q-137 0 -232 34.5t-158 103.5q-65 72 -93 175t-28 237q0 139 28.5 242.5t88.5 174.5q120 141 377 141h231v414h295v-414h146v-260h-146v-268q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-229.5 -33.5zM543 238q103 0 159 63.5t56 175.5v342h-215 q-51 0 -90.5 -17.5t-67.5 -49.5q-57 -66 -57 -179v-96q0 -112 56 -175.5t159 -63.5z" />
-<glyph unicode="&#x53b;" d="M106 1493h295v-400q47 23 98 35.5t128 12.5q123 0 219 -33t159 -104t92 -180t29 -263v-67h-295v141q0 112 -56.5 175.5t-157.5 63.5q-50 0 -90 -16t-68 -46t-43 -72t-15 -94v-646h-295v1493z" />
-<glyph unicode="&#x53c;" d="M153 1493h295v-1233h631v-260h-926v1493z" />
-<glyph unicode="&#x53d;" d="M812 -27q-107 0 -174.5 27.5t-106.5 85.5q-40 58 -55 147t-15 214v433h-129v-880h-254v1493h254v-373h383v-715q0 -57 6.5 -94t19.5 -60q23 -43 72 -43q24 0 40.5 10t27.5 33q20 44 20 154v715h254v-673q0 -125 -13 -214t-51 -147t-105 -85.5t-174 -27.5z" />
-<glyph unicode="&#x53e;" d="M631 -29q-158 0 -260.5 48.5t-163.5 128.5q-64 84 -92 196.5t-28 244.5q0 120 21 222t61 196h-134v486h237v-245h46q54 63 117 113.5t134 85.5t147.5 54t155.5 19q45 0 92 -5.5t92 -16.5q48 -11 81.5 -24.5t50.5 -25.5v-317q-50 61 -144 101q-45 19 -91 29.5t-92 10.5 q-47 0 -90.5 -11t-83.5 -31q118 -21 214.5 -71t162.5 -129q66 -78 99.5 -185.5t33.5 -246.5q0 -85 -13 -164.5t-41 -149.5q-29 -72 -73.5 -129.5t-103.5 -96.5q-131 -87 -335 -87zM634 228q88 0 137 24t75 71q13 24 21 54t12.5 63t6 68.5t1.5 70.5q0 56 -3.5 101.5t-11.5 83 t-22 68t-36 56.5q-45 53 -126 82t-209 35q-23 -48 -39 -94.5t-26.5 -98.5t-15.5 -111.5t-5 -134.5q0 -80 7 -142.5t30 -105.5q24 -46 72.5 -68t131.5 -22z" />
-<glyph unicode="&#x53f;" d="M831 400q-47 -23 -98.5 -35.5t-127.5 -12.5q-123 0 -219 33.5t-159 104.5t-92 179.5t-29 262.5v561h295v-635q0 -112 56.5 -175.5t157.5 -63.5q50 0 90 16t68 46t43 72t15 94v273h295v-1120h-295v400z" />
-<glyph unicode="&#x540;" d="M329 251q-59 23 -103.5 48t-81.5 57t-58.5 70.5t-21.5 83.5q0 143 231 340q91 77 211 157.5t264 161.5l-184 324h340l243 -420h-2l1 -1q-97 -48 -199 -102.5t-196 -111.5q-39 -24 -81 -50.5t-81 -53.5t-73 -52t-56 -45q-15 -14 -28.5 -28.5t-20.5 -25.5q-15 -23 -15 -40 t12 -27t29 -17l687 -283v-311z" />
-<glyph unicode="&#x541;" d="M933 -64q-32 48 -63.5 92t-63.5 86q-82 -75 -174 -108t-191 -33q-164 0 -258 83q-47 42 -72.5 101.5t-25.5 139.5t25.5 142.5t72.5 105.5t111.5 65.5t142.5 22.5q90 0 173.5 -29t162.5 -83q34 81 54 168.5t20 196.5q0 98 -16.5 170.5t-47.5 117.5t-74.5 63t-100.5 18 q-48 0 -93 -14.5t-80 -57.5q-33 -41 -51 -109t-18 -173v-26h-295v26q0 175 42.5 293.5t116.5 191.5t172 104.5t207 31.5q114 0 211.5 -33.5t170.5 -108.5q75 -78 116.5 -200t41.5 -284q0 -160 -41 -299t-119 -269q49 -57 92 -117.5t81 -124.5zM449 226q37 0 82 16t92 63 q-47 35 -94 55t-86 20q-40 0 -59.5 -20.5t-19.5 -58.5q0 -75 85 -75z" />
-<glyph unicode="&#x542;" d="M758 1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-141h-295v67q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-682h146v-260h-441v1016z" />
-<glyph unicode="&#x543;" d="M380 0q-73 0 -127.5 16t-93.5 47t-63.5 79.5t-24.5 119.5q0 87 40 199t125 257q12 21 30 51t39 64t44 69t45 67l-301 524h331l160 -279q65 71 130 125.5t138 95.5q72 40 148 61.5t161 21.5v-265q-38 0 -81.5 -9.5t-96.5 -41.5q-52 -31 -115 -88.5t-138 -153.5l426 -742 v-218h-776zM799 265l-251 436q-5 -8 -12.5 -19.5t-16 -25.5t-17.5 -28t-16 -26q-60 -100 -86 -167t-26 -104q0 -38 28 -52t97 -14h300z" />
-<glyph unicode="&#x544;" d="M543 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-1016q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v1016h441v-260h-146v-682q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
-<glyph unicode="&#x545;" d="M659 -29q-134 0 -232 38t-164 102q-67 64 -101.5 148t-34.5 177v9h298v-9q0 -42 15 -79.5t44 -66.5t71 -46.5t102 -17.5t104 18t72 49q27 30 39 71.5t12 84.5q0 102 -59.5 157.5t-171.5 55.5h-603v260h603q48 0 81.5 15t54.5 40q23 26 31.5 58t8.5 65q0 85 -45.5 124 t-128.5 39q-175 0 -175 -169h-298q0 100 33.5 178.5t96.5 133.5q61 54 147.5 83t192.5 29t193 -29.5t150 -84.5q65 -57 98.5 -134.5t33.5 -171.5q0 -109 -42 -179t-112 -107q54 -23 93 -59t65 -84t38.5 -101.5t12.5 -114.5q0 -97 -30.5 -185t-95.5 -154t-164 -104.5 t-233 -38.5z" />
-<glyph unicode="&#x546;" d="M689 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v682h-146v260h441v-1016q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v141h295v-67q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
-<glyph unicode="&#x547;" d="M620 -27q-116 0 -216 34.5t-173 111.5q-74 78 -115 197t-41 274q0 141 33 244t84 178t111 121.5t114 58.5q-21 9 -49.5 16.5t-57.5 12.5t-53 8t-35 3h-93v261h165q16 0 29 -0.5t27 -2t30.5 -4t40.5 -6.5q38 -7 74.5 -15.5t68.5 -22.5l504 -211v-311l-299 126 q-11 4 -26.5 9t-33.5 9q-19 3 -38 5.5t-35 2.5q-59 0 -104 -37t-78 -100q-34 -64 -52.5 -148t-18.5 -189q0 -91 15.5 -161.5t47.5 -116.5q30 -43 73 -61.5t99 -18.5q53 0 98.5 17.5t77.5 59.5t50 111t18 174v18h295v-18q0 -175 -41 -294.5t-113 -194.5q-73 -75 -172 -107.5 t-211 -32.5z" />
-<glyph unicode="&#x548;" d="M106 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-942h-295v1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-1016h-295v942z" />
-<glyph unicode="&#x549;" d="M166 265v310l293 -124q13 -6 30 -11t35 -8.5t35.5 -6t32.5 -2.5q63 0 109.5 39.5t80.5 111.5q33 69 51.5 162t18.5 199q-8 160 -63 240t-173 80q-57 0 -102 -18.5t-77 -57.5t-48.5 -99t-16.5 -145v-60h-295v22q0 305 133 465t402 160q266 0 406 -162q69 -80 103 -191.5 t34 -251.5q0 -138 -30 -241.5t-76 -181.5q-48 -81 -102.5 -130t-104.5 -71l147 -66v-307z" />
-<glyph unicode="&#x54a;" d="M927 935q0 157 -43.5 241.5t-140.5 99.5v-834h-254v833q-98 -17 -140.5 -100t-42.5 -240v-120h-254v104q0 133 31.5 243t100.5 189q71 82 178.5 124.5t258.5 42.5q153 0 262.5 -43t176.5 -124q66 -79 93.5 -189t27.5 -243v-919h-254v935z" />
-<glyph unicode="&#x54b;" d="M112 331h295v-70q51 0 95 16.5t84 42.5q9 42 14 78.5t5 65.5q0 70 -35.5 110.5t-123.5 46.5q-23 1 -55 2.5t-67.5 6.5t-72 16.5t-68.5 33.5q-44 30 -65.5 68t-30.5 71q-5 19 -8 38.5t-4.5 37.5t-2 33.5t-0.5 25.5q0 75 11.5 137t37.5 123q26 59 67.5 114t104.5 99 q61 42 140.5 66.5t188.5 24.5q154 0 257 -50t166 -137q33 -46 55.5 -98.5t35.5 -106.5t18.5 -108t5.5 -104q0 -208 -83 -372q-41 -81 -105.5 -156t-151.5 -125h279v-261h-987v331zM785 557q16 33 30.5 76.5t25.5 94.5q9 44 13 83t4 84q0 30 -2 62.5t-7 64.5t-13.5 62.5 t-21.5 56.5q-12 25 -29.5 46t-41 36t-54 23.5t-69.5 8.5q-72 0 -121.5 -27t-78.5 -69q-30 -42 -42 -91.5t-12 -89.5q0 -21 4 -43.5t18 -40.5q18 -24 42.5 -29.5t53.5 -7.5q55 -3 110.5 -16.5t103.5 -53.5q41 -35 65 -84t24 -108q0 -10 -0.5 -19.5t-1.5 -18.5z" />
-<glyph unicode="&#x54c;" d="M33 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-268h146v-260h-146v-414h-295v1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-1016h-295v942z" />
-<glyph unicode="&#x54d;" d="M616 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-1016q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v1016h295v-942q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
-<glyph unicode="&#x54e;" d="M758 400q-47 -23 -98.5 -35.5t-127.5 -12.5q-123 0 -219 33.5t-159 104.5t-92 179.5t-29 262.5v67h295v-141q0 -112 56.5 -175.5t157.5 -63.5q50 0 90 16t68 46t43 72t15 94v646h295v-1233h146v-260h-441v400z" />
-<glyph unicode="&#x54f;" d="M630 -29q-121 0 -218.5 34.5t-166.5 97.5t-104.5 149.5t-35.5 194.5h307q0 -78 19.5 -122.5t49.5 -68.5q31 -25 69.5 -33t78.5 -8q42 0 76.5 8t61.5 29t43.5 57t16.5 92q0 20 -3 46q-6 45 -34.5 76t-81.5 58q-25 13 -53 24.5t-56 22.5q-73 28 -130 52t-112 57t-102.5 80 t-76.5 120q-14 35 -21 73.5t-7 84.5q0 48 9 95.5t30 94.5q23 50 58.5 92t84.5 73q51 32 119.5 51t165.5 19q127 0 219.5 -32t153.5 -88q60 -54 89 -125.5t29 -154.5h-300q0 51 -18.5 81.5t-47.5 47.5t-64 21.5t-61 4.5q-38 0 -68.5 -7.5t-54.5 -25.5q-56 -42 -56 -118 q0 -56 29.5 -91.5t77.5 -63.5q30 -17 59.5 -30t51.5 -21q60 -23 127 -50.5t126 -62.5q58 -35 109 -85t80 -125q14 -37 21.5 -80.5t7.5 -90.5q0 -98 -32 -181t-95 -143q-62 -60 -154.5 -94.5t-215.5 -34.5z" />
-<glyph unicode="&#x550;" d="M106 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-67h-295v141q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-1016h-295v942z" />
-<glyph unicode="&#x551;" d="M660 -27q-135 0 -233 38t-164 102q-67 64 -101.5 148t-34.5 177v9h298v-9q0 -42 15 -79.5t44 -66.5t71 -46.5t102 -17.5t104 18t72 49q29 32 40 74t11 81q0 95 -59 151q-29 28 -71.5 44.5t-99.5 16.5h-604v260h182q-30 49 -40 93t-10 86q0 88 32 165.5t93 134.5 q60 56 147.5 86.5t199.5 30.5t199.5 -30t148.5 -87t93 -134t32 -170q0 -97 -37.5 -171t-116.5 -114q58 -26 98 -67.5t65 -89.5q25 -49 35.5 -100t10.5 -105q0 -94 -30.5 -180.5t-95.5 -152.5q-65 -67 -163.5 -105.5t-232.5 -38.5zM652 922q51 0 84 14t54 38q39 45 39 121 q0 32 -8 63.5t-28 54.5t-53.5 36.5t-85.5 13.5q-51 0 -84.5 -13.5t-53.5 -36.5q-20 -24 -28 -56t-8 -65t7.5 -64t27.5 -54q19 -23 51.5 -37.5t85.5 -14.5z" />
-<glyph unicode="&#x552;" d="M112 1493h295v-373h714v-260h-714v-860h-295v1493z" />
-<glyph unicode="&#x553;" d="M487 138q-133 6 -221 51t-142 130q-51 80 -72 190t-21 254q0 142 21 251.5t73 187.5q54 81 141 122.5t221 46.5v122h255v-122q136 -5 224 -48t141 -121t73.5 -187.5t20.5 -249.5t-20.5 -253t-73.5 -195t-141 -128.5t-224 -51.5v-137h-255v138zM487 1143 q-73 -3 -114 -24.5t-61 -66.5q-21 -45 -25.5 -114.5t-4.5 -159.5q0 -110 5 -185.5t26 -125.5q20 -45 59.5 -71.5t114.5 -29.5v777zM742 366q73 3 114.5 28.5t61.5 74.5q20 48 24.5 121t4.5 174t-4.5 172t-24.5 116t-61.5 66.5t-114.5 24.5v-777z" />
-<glyph unicode="&#x554;" d="M197 154h-146v260h146v643q0 100 28.5 184.5t88.5 146.5q58 60 148 95t222 35q131 0 224 -35t154 -98t90.5 -146.5t29.5 -183.5q0 -103 -30.5 -187.5t-89.5 -144.5q-63 -63 -156 -97.5t-208 -34.5q-47 0 -97 9t-109 40v-226h669v-260h-669v-154h-295v154zM692 846 q56 0 92 14.5t58 41.5t30.5 66t8.5 84q0 43 -8.5 84t-31.5 70q-23 27 -59 42q-38 15 -95 15q-61 0 -97.5 -15.5t-57.5 -41.5q-22 -27 -30.5 -65t-8.5 -84q0 -48 9.5 -86t32.5 -66t61 -43.5t96 -15.5z" />
-<glyph unicode="&#x555;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389 q52 -121 165 -121z" />
-<glyph unicode="&#x556;" d="M614 -29q-131 0 -223.5 19.5t-157.5 56.5t-104.5 89.5t-61.5 118.5t-29 142.5t-7 164.5h251q0 -88 5 -152t26 -107q20 -42 60 -64.5t114 -25.5v677q-190 10 -281 84.5t-91 223.5q0 69 20.5 126.5t66.5 95.5t120.5 55.5t185.5 17.5h234v-375q136 -5 224 -43t141 -109 t73.5 -172t20.5 -239q0 -80 -7.5 -157t-29.5 -143t-61.5 -118.5t-105.5 -89.5t-159.5 -56.5t-223.5 -19.5zM487 1263q-36 0 -59 -5t-36 -14q-13 -10 -17.5 -23.5t-4.5 -30.5t4.5 -30t17.5 -21q25 -18 95 -18v142zM742 213q73 3 114.5 25t61.5 65t24.5 107t4.5 152t-4.5 149 t-24.5 100t-61.5 57.5t-114.5 21.5v-677z" />
-<glyph unicode="&#x559;" d="M759 986q-59 0 -111 22.5t-90.5 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90.5 61t111 22.5v-154q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10 -51t28 -41.5t42 -28t51 -10.5v-154v0z" />
-<glyph unicode="&#x55a;" d="M509 1224v271h313v-271l-196 -383h-216z" />
-<glyph unicode="&#x55b;" d="M556 1638h403l-368 -376h-318z" />
-<glyph unicode="&#x55c;" d="M136 1265q3 76 27.5 139.5t68.5 111.5t103.5 79.5t131.5 45.5q49 10 88 18t70.5 16t58 16.5t52.5 20.5q51 23 78 49.5t31 67.5h251q0 -61 -13.5 -125.5t-45.5 -120.5q-19 -32 -42 -55.5t-51.5 -41t-62 -30t-72.5 -22.5q-17 -5 -29 -7.5t-27.5 -5.5t-38.5 -7t-60 -11 q-75 -14 -134 -30t-96 -43q-17 -13 -26.5 -28t-9.5 -37h-252v0z" />
-<glyph unicode="&#x55d;" d="M273 1638h403l283 -376h-318z" />
-<glyph unicode="&#x55e;" d="M840 1209q-51 0 -99.5 12t-90.5 41q-44 30 -71.5 75.5t-36.5 116.5h165q6 -32 32 -46.5t60 -14.5q27 0 45.5 8.5t30.5 23.5q13 16 17 34t4 33q0 38 -17 61.5t-46 39.5t-66.5 23.5t-79.5 7.5q-85 0 -157.5 -28t-128.5 -75q-122 -102 -140 -256h-194q3 90 30.5 168 t73.5 144q47 67 108 118t133 87q71 35 148.5 54.5t163.5 19.5q103 0 184 -27.5t138 -75.5q58 -48 88.5 -112t30.5 -137q0 -60 -20.5 -112t-62.5 -93q-42 -42 -103 -66t-139 -24z" />
-<glyph unicode="&#x55f;" d="M188 1556h140v-169h716v-122h-856v291z" />
-<glyph unicode="&#x561;" d="M333 -27q-73 0 -122 26t-75 74q-26 47 -41 146t-15 270v631h240v-719q0 -64 4.5 -104.5t15.5 -63.5q11 -26 28 -33.5t39 -7.5q24 0 42 8.5t29 34.5q20 44 20 166v719h237v-719q0 -63 5 -103t16 -63q11 -26 28.5 -34.5t41.5 -8.5q22 0 39.5 7.5t28.5 33.5q11 23 15 63.5 t4 104.5v719h240v-1120h-213v116q-25 -66 -79.5 -104.5t-120.5 -38.5q-36 0 -68 11t-58 30q-31 22 -47 46.5t-22 51.5q-33 -72 -82.5 -105.5t-129.5 -33.5z" />
-<glyph unicode="&#x562;" d="M149 1120h291v-168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-277h-291v232q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-416h644v-225h-644v-426h-291v1546z" />
-<glyph unicode="&#x563;" d="M766 158q-57 -97 -127.5 -142t-168.5 -45q-96 0 -170.5 39.5t-126.5 113.5q-53 75 -80.5 183t-27.5 251q0 141 27 250t79 185q52 75 127 114.5t169 39.5q104 0 177.5 -48.5t121.5 -146.5l29 168h263v-895h109v-225h-109v-426h-292v584zM560 215q49 0 87 24t64 69 t40.5 108t14.5 145q0 160 -55 253q-26 45 -63.5 69t-86.5 24q-50 0 -87 -24.5t-62 -67.5q-26 -45 -40 -109q-7 -32 -10.5 -67.5t-3.5 -77.5q0 -81 14 -145t40 -109q54 -92 148 -92z" />
-<glyph unicode="&#x564;" d="M711 682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-502h128v-225h-128v-426h-291v1108z" />
-<glyph unicode="&#x565;" d="M462 -29q-158 0 -238.5 104.5t-80.5 315.5v1165h293v-436h654v-225h-654v-459q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v243h293v-720h-293v166q-31 -93 -103.5 -144t-185.5 -51z" />
-<glyph unicode="&#x566;" d="M766 158q-57 -97 -127.5 -142t-168.5 -45q-96 0 -170.5 39.5t-126.5 113.5q-53 75 -80.5 183t-27.5 251q0 141 27 250t79 185q52 75 127 114.5t169 39.5q104 0 177.5 -48.5t121.5 -146.5l29 168h263v-1321h109v-225h-401v584zM560 215q49 0 87 24t64 69t40.5 108 t14.5 145q0 160 -55 253q-26 45 -63.5 69t-86.5 24q-50 0 -87 -24.5t-62 -67.5q-26 -45 -40 -109q-7 -32 -10.5 -67.5t-3.5 -77.5q0 -81 14 -145t40 -109q54 -92 148 -92z" />
-<glyph unicode="&#x567;" d="M180 1556h293v-436h579v-225h-579v-670h494v-225h-787v1556z" />
-<glyph unicode="&#x568;" d="M149 1120h291v-168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-727h-291v682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-842h644v-225h-935v1546z" />
-<glyph unicode="&#x569;" d="M54 1120h291v-168q15 46 50 82.5t83 61.5t101 38t109 13q77 0 153 -28.5t136 -97.5q59 -68 95.5 -181t36.5 -281h69v-143h-77q-14 -127 -54.5 -214t-95.5 -139q-55 -51 -118.5 -71.5t-129.5 -20.5q-69 0 -126 19.5t-99 56.5t-63.5 89t-21.5 119q0 77 26.5 134.5 t70.5 95.5t100 56t116 18h102q0 27 -1.5 58t-5.5 62t-11.5 61t-19.5 55q-25 51 -73 82.5t-118 31.5q-51 0 -90 -18t-71 -53t-52.5 -83t-20.5 -114v-1067h-291v1546zM704 107q38 0 57.5 14.5t30.5 47.5t13.5 86t2.5 131v30h-102q-26 0 -51 -10t-45 -30q-20 -21 -32.5 -51.5 t-12.5 -70.5q0 -30 8 -56.5t25 -46.5q37 -44 106 -44z" />
-<glyph unicode="&#x56a;" d="M561 -29q-135 0 -228 48.5t-153 129.5q-31 42 -53 90.5t-35.5 100.5t-20 107t-6.5 110q0 115 27.5 216.5t87.5 179.5q60 77 154 122t227 45h205v436h292v-436h109v-225h-109v-338q0 -78 -11.5 -150t-37.5 -138q-26 -67 -66.5 -121.5t-94.5 -92.5q-55 -40 -126 -62 t-161 -22zM560 211q59 0 98 26t63 72t34.5 109.5t10.5 138.5v338h-205q-57 0 -96 -23t-63 -67t-34 -107t-10 -141t10 -142t34 -109q24 -46 63 -70.5t95 -24.5z" />
-<glyph unicode="&#x56b;" d="M167 1556h291v-604q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-727h-291v682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-1067h-291v1982z" />
-<glyph unicode="&#x56c;" d="M328 1120h291v-1321h286v-225h-577v1546z" />
-<glyph unicode="&#x56d;" d="M79 1556h237v-516q12 25 32.5 45t41.5 33q47 29 109 29q18 0 44.5 -4t53.5 -18q26 -14 50.5 -41t43.5 -75t30.5 -119t12.5 -171l1 -318q0 -66 5 -104.5t16 -61.5q11 -26 28.5 -34.5t41.5 -8.5q22 0 39.5 7.5t28.5 33.5q11 23 15 63.5t4 104.5v719h240v-1120h-213v116 q-28 -71 -81.5 -107t-127.5 -36q-15 0 -40.5 3.5t-54.5 18.5q-27 14 -51.5 41.5t-43.5 75.5t-31 118.5t-12 170.5l-1 318q0 63 -4.5 103t-15.5 64q-11 23 -28 32.5t-42 9.5t-42 -9t-28 -32t-16 -63.5t-5 -104.5v-1145h-237v1982z" />
-<glyph unicode="&#x56e;" d="M616 -29q-126 0 -222 43t-162 121q-67 79 -100.5 185.5t-33.5 237.5q0 91 17 170.5t53 146.5t90 117t132 82l-204 138l247 344l218 -144l-97 -137l233 -155h337v-225h-91q25 -41 44.5 -82t32 -83.5t19 -87.5t6.5 -96q0 -121 -34.5 -227.5t-99.5 -183.5q-66 -78 -162 -121 t-223 -43zM614 211q60 0 103 26.5t71 74.5q27 47 40.5 111t13.5 135q0 63 -10.5 111t-30.5 86t-50.5 68t-69.5 56l-24 16h-42q-109 0 -166.5 -86.5t-57.5 -251.5q0 -78 13.5 -142t41.5 -109q27 -45 68 -70t100 -25z" />
-<glyph unicode="&#x56f;" d="M774 166q-31 -93 -103.5 -144t-185.5 -51q-158 0 -238.5 104.5t-80.5 315.5v1165h293v-1120q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v643h293v-1546h-293v592z" />
-<glyph unicode="&#x570;" d="M168 1556h291v-604q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 171.5t-107.5 53.5q-88 0 -132 -69.5t-44 -196.5v-641h-291v1556z" />
-<glyph unicode="&#x571;" d="M497 -29q-93 0 -159 34t-108 94t-59.5 138t-17.5 159q0 96 22.5 187.5t67.5 184.5q46 96 110 184t143 168q-60 1 -103 20t-70 49t-39.5 68.5t-12.5 80.5q0 36 9.5 71.5t30.5 67.5l51 79h289l-57 -85q-18 -27 -25.5 -52t-7.5 -46q0 -44 26.5 -71.5t69.5 -27.5h9q6 0 9 1 q64 47 142 94l4 -249q-33 -18 -67 -45q92 -50 157.5 -109.5t103.5 -131.5q36 -69 50 -146t14 -168v-520h-293v166q-15 -45 -42 -80t-62 -61q-37 -26 -82 -40t-103 -14zM615 211q50 0 81.5 24.5t51.5 61.5q20 38 29 84t9 91v86q0 51 -5 105t-25 104t-56.5 90.5t-99.5 66.5 q-39 -51 -68.5 -109t-49 -119.5t-29 -124t-9.5 -122.5q0 -53 9 -95t32 -75q48 -68 130 -68z" />
-<glyph unicode="&#x572;" d="M711 682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-928h128v-225h-419v1108z" />
-<glyph unicode="&#x573;" d="M516 -29q-94 0 -160 38t-108 103t-61 148.5t-19 185.5q0 106 19 222t56 227h-105v225h205q51 88 113 161t135 126t155.5 81.5t172.5 28.5q14 0 31 -1t35 -4t34.5 -8t28.5 -13v-248q-23 15 -44.5 24t-39.5 14q-16 4 -30 5t-25 1q-47 0 -83.5 -13t-70.5 -37 q-35 -25 -64.5 -58t-55.5 -73q100 -20 185.5 -69.5t146.5 -119.5t94 -155.5t33 -174.5v-587h-293v166q-31 -94 -105 -144.5t-180 -50.5zM620 211q89 0 135 69.5t46 196.5v160q0 35 -17 77.5t-51 79.5q-32 35 -82.5 62.5t-116.5 35.5q-35 -105 -52.5 -209t-17.5 -194 q0 -67 9 -114.5t23 -78.5t32 -48.5t37 -25.5q17 -8 31.5 -9.5t23.5 -1.5z" />
-<glyph unicode="&#x574;" d="M485 -29q-158 0 -238.5 104.5t-80.5 315.5v729h293v-684q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v1079h421v-225h-128v-1331h-293v166q-31 -93 -103.5 -144t-185.5 -51z" />
-<glyph unicode="&#x575;" d="M263 -199h234q47 0 82.5 13t57.5 42q21 29 30.5 75t9.5 112v1077h293v-1077q0 -127 -21.5 -215t-69.5 -145t-121 -82t-179 -25h-316v225z" />
-<glyph unicode="&#x576;" d="M549 -27q-157 0 -237.5 104t-80.5 316v938h-128v225h419v-1118q0 -119 33.5 -173t106.5 -54q88 0 132.5 70.5t44.5 197.5v641h291v-1120h-291v168q-31 -93 -104.5 -144t-185.5 -51z" />
-<glyph unicode="&#x577;" d="M386 -426q-48 0 -88 17t-69 46q-30 29 -46 67t-16 80q0 54 24 110t66 114q45 63 98.5 118.5t111.5 112.5q43 42 78.5 77t64.5 66t53 59.5t44 58.5q39 58 56.5 111t17.5 104q0 48 -14 84t-39 62t-60.5 41t-77.5 15q-38 0 -72.5 -12t-64.5 -35t-52.5 -53t-33.5 -65 l-209 154q31 57 79 101t107 75t123 47t137 16q101 0 189 -30t151 -85t97 -133.5t34 -179.5q0 -47 -8 -92t-28 -92t-52.5 -96.5t-80.5 -106.5q-50 -59 -114.5 -124.5t-152.5 -149.5q-43 -42 -76.5 -76.5t-58.5 -68.5q-41 -56 -41 -84q0 -14 10.5 -21t26.5 -7h530v-225h-644v0 z" />
-<glyph unicode="&#x578;" d="M168 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120z" />
-<glyph unicode="&#x579;" d="M431 -426q-42 0 -79 15.5t-65 45.5q-28 29 -44.5 71t-16.5 96q0 51 15 113t39 125t58 131.5t76 136.5q44 72 87.5 130.5t87.5 106.5q-48 3 -93.5 23t-82.5 56q-36 35 -57.5 82t-21.5 107q0 59 24 124t84 126l120 123l188 -172l-66 -64q-42 -40 -62 -74t-20 -67 q0 -21 8 -40t23 -33.5t37.5 -23.5t52.5 -9q35 0 76 13.5t92 42.5l99 -176q-70 -57 -132.5 -121t-116.5 -130q-57 -71 -99.5 -136t-71.5 -121q-31 -60 -47.5 -112t-16.5 -94q0 -37 13 -53.5t38 -16.5h450v-225h-576v0z" />
-<glyph unicode="&#x57a;" d="M913 85q-27 -54 -74 -83t-101 -29q-34 0 -66 11t-58 30q-26 18 -44 42t-25 56q-33 -72 -82.5 -105.5t-129.5 -33.5q-73 0 -122 26t-75 74q-26 47 -41 146t-15 270v631h240v-719q0 -64 4.5 -104.5t15.5 -63.5q11 -26 28 -33.5t39 -7.5q24 0 42 8.5t29 34.5q20 44 20 166 v719h237v-719q0 -63 5 -103t16 -63q11 -26 28.5 -34.5t41.5 -8.5q22 0 39.5 7.5t28.5 33.5q11 23 15 63.5t4 104.5v719h240v-1546h-240v511z" />
-<glyph unicode="&#x57b;" d="M406 -426q-49 0 -89 17t-69 46t-45 65.5t-16 74.5q0 36 13.5 79t33.5 83q27 53 60.5 94t59.5 69q9 10 20 23t20.5 30t15.5 39t6 49q0 26 -6 48t-16 41t-23 35.5t-27 31.5q-15 16 -34 33.5t-33 29.5q-33 30 -65.5 68.5t-52.5 92.5q-10 26 -15.5 54t-5.5 62 q0 87 37.5 160.5t105.5 129.5q66 54 153 85t193 31q90 0 177 -25.5t156 -82.5q66 -55 100.5 -132t34.5 -179q0 -90 -28 -168.5t-84 -157.5q-54 -76 -133.5 -156t-187.5 -182q-85 -80 -131 -140q-26 -33 -37.5 -57t-11.5 -39q0 -27 38 -27h530v-225h-644zM562 312 q79 82 126.5 139.5t72.5 102.5t32.5 83.5t7.5 70.5q0 50 -12 86t-35 62q-24 27 -60.5 44t-76.5 17q-38 0 -74.5 -15t-63.5 -36q-29 -23 -49 -55t-20 -74q0 -32 12.5 -63.5t32.5 -58.5q12 -17 23.5 -31t17.5 -19q7 -8 17.5 -19.5t21 -25t20 -28t15.5 -28.5q12 -29 12 -62 q0 -21 -5 -43t-15 -47z" />
-<glyph unicode="&#x57c;" d="M117 1120h291v-168q13 42 40 78t62 62q36 26 83 40.5t104 14.5q91 0 157 -34.5t111 -93.5t65.5 -134.5t20.5 -161.5q0 -77 -15.5 -148.5t-41.5 -134.5q-25 -60 -60 -115t-76 -100h258v-225h-515v175q85 95 122 204q19 55 28 116.5t9 125.5q0 62 -9 113t-30 90 q-22 40 -57 62.5t-83 22.5q-46 0 -78.5 -20.5t-53.5 -57.5t-31 -85.5t-10 -100.5v-645h-291v1120z" />
-<glyph unicode="&#x57d;" d="M486 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
-<glyph unicode="&#x57e;" d="M705 166q-31 -93 -103.5 -144t-185.5 -51q-158 0 -238.5 104.5t-80.5 315.5v729h293v-684q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v1079h293v-1757h138v-225h-431v592z" />
-<glyph unicode="&#x57f;" d="M314 -27q-124 0 -178.5 107.5t-54.5 320.5v719h237v-719q0 -63 5 -103t16 -63q11 -24 27.5 -33.5t41.5 -9.5q23 0 39.5 8t27.5 29q10 20 15.5 56.5t5.5 90.5v744h213v-116q25 65 77.5 104t130.5 39q123 0 178.5 -107.5t55.5 -320.5v-719h-237v719q0 63 -4.5 103t-15.5 64 q-11 23 -28 32.5t-42 9.5q-26 0 -41.5 -9t-24.5 -27q-11 -21 -16.5 -60t-5.5 -89v-743h-213v116q-25 -65 -78 -104t-131 -39z" />
-<glyph unicode="&#x580;" d="M167 1120h262l29 -168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-727h-291v682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-1067h-291v1546z" />
-<glyph unicode="&#x581;" d="M601 -424q-95 0 -184 13.5t-183 41.5v269q83 -46 170 -68t169 -22q129 0 189 57.5t60 183.5v121q-44 -83 -116.5 -120.5t-166.5 -37.5q-99 0 -177 39t-132.5 111.5t-83.5 176t-29 233.5q0 132 29.5 238.5t84 181t130.5 115t169 40.5q100 0 174.5 -45t117.5 -127l29 143 h264v-1036q0 -134 -29.5 -230.5t-92 -158t-159.5 -90.5t-233 -29zM615 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -67t-41.5 -104.5t-14.5 -137t14.5 -137t41.5 -104t65 -66.5t84 -23.5z" />
-<glyph unicode="&#x582;" d="M188 1120h293v-895h563v-225h-856v1120z" />
-<glyph unicode="&#x583;" d="M496 104q-52 -131 -184 -131q-122 0 -176.5 108.5t-54.5 319.5v719h237v-719q0 -63 5 -103t16 -63q9 -20 24 -31.5t38 -11.5q17 0 33 8t30 28q14 21 23 57t9 91v1180h240v-541q26 66 72.5 99t112.5 33q120 0 175 -109t55 -319v-719h-237v719q0 63 -4.5 103t-15.5 64 q-11 23 -28 32.5t-39 9.5t-36.5 -9t-26.5 -32q-14 -26 -21 -65.5t-7 -102.5v-1145h-240v530z" />
-<glyph unicode="&#x584;" d="M175 -358h-110v225h110v1253h263l29 -168q91 195 298 195q99 0 173 -41t124 -113q52 -76 79 -185t27 -251q0 -280 -107 -432q-54 -76 -129.5 -115t-169.5 -39q-98 0 -168 45t-127 142v-291h663v-225h-663v-68h-292v68zM673 215q94 0 148 92q26 45 40 109q7 32 10.5 67.5 t3.5 77.5q0 81 -14 145t-40 109q-54 92 -149 92q-48 0 -86 -23.5t-64 -68.5q-55 -92 -55 -254q0 -87 15 -149.5t40 -104.5t62.5 -67t88.5 -25z" />
-<glyph unicode="&#x585;" d="M616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147 t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
-<glyph unicode="&#x586;" d="M503 -3q-66 5 -131.5 24.5t-125.5 51.5q-62 32 -112.5 73.5t-91.5 95.5l186 192q32 -54 63 -88.5t67 -60.5q35 -25 68.5 -36.5t76.5 -18.5v639q-94 0 -165 25t-121 70q-101 92 -101 249q0 78 26 140.5t79 107.5t130 70t183 25h209v-442q127 -7 212 -45.5t138 -107.5 t75 -165t22 -219q0 -125 -22.5 -227.5t-74.5 -178.5t-137 -121.5t-213 -52.5v-423h-240v423zM503 1325q-76 0 -111.5 -23t-35.5 -83t36 -80.5t111 -20.5v207zM743 229q57 9 96 38.5t63 75.5q23 45 33 104.5t10 126.5q0 65 -9.5 115.5t-32.5 87.5q-23 35 -61.5 58t-98.5 29 v-635z" />
-<glyph unicode="&#x587;" d="M365 -29q-158 0 -238.5 104.5t-80.5 315.5v1165h293v-1120q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v643h293v-895h240v-225h-533v166q-31 -93 -103.5 -144t-185.5 -51z" />
-<glyph unicode="&#x589;" d="M480 698q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM480 0q-30 0 -30 30v307q0 30 30 30h273q30 0 30 -30v-307q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x58a;" d="M301 735q303 -142 631 0v-291q-317 -119 -631 0v291z" />
-<glyph unicode="&#xe3f;" d="M538 0h-394v1307h394v249h141v-251q94 -6 169.5 -27t129 -60.5t82.5 -98.5t29 -140q0 -128 -71 -198.5t-209 -81.5q169 -16 250 -103.5t81 -240.5q0 -93 -29.5 -158.5t-87 -107t-144 -62.5t-200.5 -26v-302h-141v301zM538 798v304h-120v-304h120zM679 803q27 4 50 12 t40.5 24.5t27.5 42.5t10 66q0 41 -10.5 68t-28 43.5t-40.5 25t-49 12.5v-294zM538 206v387h-120v-387h120zM679 210q40 4 72.5 14t54.5 30.5t34 53.5t12 84q0 54 -13 89.5t-36 58t-54.5 33.5t-69.5 16v-379z" />
-<glyph unicode="&#x10d0;" d="M611 0q-127 0 -223 30.5t-160.5 88t-97 141t-32.5 189.5q0 33 3.5 59t13.5 50t26 48t42 53l247 -34q-20 -32 -29 -65t-9 -81q0 -128 60 -196.5t168 -68.5q106 0 164 66.5t58 192.5q0 102 -41 162t-123 92h1q-166 56 -239.5 165t-74.5 270h262q0 -44 9 -78t24 -59.5 t34.5 -42t41.5 -24.5l-1 1q106 -39 182 -84.5t125 -103t72 -130t23 -165.5q0 -111 -32.5 -199.5t-98 -150t-164.5 -94t-231 -32.5z" />
-<glyph unicode="&#x10d1;" d="M613 0q-510 0 -513 535q2 215 102.5 346t294.5 182v105q0 28 -12.5 46.5t-31 29.5t-40 17t-38.5 10q-45 10 -80 29.5t-59 52.5t-37 81.5t-13 117.5h300q0 -96 84 -112q102 -35 147.5 -101.5t45.5 -164.5v-115q94 -35 164 -84t116 -115t68.5 -150t22.5 -189 q0 -253 -130.5 -387t-390.5 -134zM614 214q106 0 158.5 80.5t52.5 248.5q0 80 -12.5 143t-38.5 108t-66 69t-91 24q-52 0 -94 -24t-72 -70q-29 -44 -44.5 -106.5t-15.5 -147.5t15.5 -145t44.5 -100q57 -80 163 -80z" />
-<glyph unicode="&#x10d2;" d="M616 -402q-269 0 -402.5 120t-133.5 356t136 355.5t406 127.5q22 9 41.5 23t33.5 38q13 22 21 54.5t8 67.5q0 19 -3 33t-9.5 24.5t-17.5 18t-26 14.5q-29 13 -60 18t-63 5q-69 0 -112 -22q-19 -10 -33.5 -27t-14.5 -42l9 -47l-166 -129q-19 25 -31.5 47t-20.5 46 q-8 23 -11.5 45.5t-3.5 51.5q0 290 397 290q211 0 317 -79t106 -240q0 -72 -23.5 -129.5t-77.5 -105.5q140 -67 204.5 -174t64.5 -265q0 -235 -133 -355t-402 -120zM616 -185q126 0 189 66.5t63 182.5q0 71 -21.5 125t-57 89.5t-81 53t-92.5 17.5t-92.5 -17.5t-81 -53.5 t-57 -89.5t-21.5 -124.5q0 -116 62.5 -182.5t189.5 -66.5z" />
-<glyph unicode="&#x10d3;" d="M697 -403q0 23 -17 45.5t-45 42.5q-30 21 -67 36t-70 23q-37 8 -74 8.5t-66 -9.5q-30 -10 -49 -31.5t-22 -56.5l-164 116q7 16 19 39t28 45t35.5 39.5t41.5 22.5q-66 67 -107 140t-67 155q-26 84 -36 173t-10 169q0 254 92.5 378t274.5 124q32 0 57 -4t46 -12t40.5 -21.5 t40.5 -31.5q38 35 94.5 52t136.5 17q97 0 171 -25.5t125 -79.5q51 -55 76 -140.5t25 -206.5v-129q0 -127 -23.5 -218.5t-72.5 -148.5t-121.5 -83t-157.5 -26q-76 0 -126 19t-89 51t-67 72t-47 88q-18 45 -26.5 90t-8.5 85l1 410q-1 12 -9 20.5t-25 8.5h-67q-15 0 -29 -10 t-23 -23q-11 -16 -17.5 -36.5t-6.5 -43.5v-374q0 -103 30.5 -175.5t80.5 -125.5q51 -54 111.5 -88.5t130.5 -66.5q29 -14 48.5 -22t33 -14t24.5 -10.5t24 -10.5q29 -13 57 -27.5t53.5 -31.5t46.5 -36.5t36 -41.5q30 -45 30 -109h-300zM805 213q32 0 58 17t43 48 q17 30 26 72.5t9 93.5v177q0 58 -14.5 100t-31.5 67q-19 28 -38.5 41.5t-30.5 13.5h-97q-15 0 -24 -9.5t-9 -26.5v-297q0 -57 3 -110t14 -95t32.5 -67t59.5 -25z" />
-<glyph unicode="&#x10d4;" d="M631 -402q-133 0 -233 27.5t-167 79t-100.5 125.5t-33.5 167q0 46 9 82t28.5 69.5t51 67.5t77.5 75l178 -95q-15 -28 -25 -49t-15 -41q-5 -21 -7 -42.5t-2 -38.5q0 -57 16.5 -98t47 -67.5t74.5 -38.5t99 -12q108 0 160.5 46t52.5 145v639q0 112 -51.5 163.5t-155.5 51.5 q-91 0 -138 -43t-47 -146q0 -41 7 -77t20 -62l-214 -90q-28 34 -45.5 61.5t-27.5 54.5t-14 57t-4 59q0 100 41.5 175.5t109 125.5t154.5 75t177 23.5t177 -28.5t154.5 -80.5t109 -134t41.5 -187.5v-629q0 -410 -505 -410z" />
-<glyph unicode="&#x10d5;" d="M619 -402q-265 0 -392.5 106t-128.5 318q0 24 5.5 54.5t16.5 63.5q11 31 27.5 63t39.5 58l238 -83q-22 -38 -27.5 -78.5t-5.5 -66.5q0 -119 61 -171.5t169 -52.5q101 0 160.5 42.5t59.5 130.5v92q0 88 -49.5 130.5t-137.5 42.5h-63v209h63q42 0 76 10.5t59 34.5 q24 23 38 58.5t14 86.5t-15 89.5t-42 65.5q-27 26 -64 39.5t-91 13.5q-45 0 -82.5 -9.5t-64 -29t-41.5 -49.5t-15 -71q0 -30 8 -59t22 -55l-208 -98q-18 15 -38 39.5t-36 53.5q-17 30 -25.5 63.5t-8.5 77.5q0 81 30.5 145.5t91.5 110t152.5 69.5t212.5 24q252 0 376.5 -104 t124.5 -296q0 -52 -9.5 -95.5t-32 -81.5t-58.5 -71t-89 -63q100 -35 148 -105t48 -179v-75q0 -200 -130 -299t-387 -99z" />
-<glyph unicode="&#x10d6;" d="M613 0q-260 0 -387.5 132.5t-127.5 386.5q0 143 42 240t138 151q-81 42 -129.5 113t-47.5 171q-2 356 399 356q202 0 302 -86t100 -249q0 -138 -76 -227q153 -42 231.5 -157.5t78.5 -311.5q0 -256 -131 -387.5t-392 -131.5zM508 1010q63 0 95.5 45.5t32.5 132.5 q0 73 -28.5 114t-99.5 41q-60 0 -89.5 -35.5t-29.5 -123.5q0 -90 30 -132t89 -42zM623 214q106 0 162.5 78t56.5 230q0 75 -14.5 137t-45.5 107q-29 42 -72 64t-95 22q-104 0 -164 -87q-29 -43 -44.5 -103.5t-15.5 -135.5q0 -78 16.5 -136t47.5 -97q29 -38 71 -58.5 t97 -20.5z" />
-<glyph unicode="&#x10d7;" d="M425 0q-193 0 -295.5 133t-102.5 396v29q0 249 103 373.5t307 124.5q72 0 125 -16.5t95 -52.5q19 17 38.5 30t42.5 21.5t50.5 13t62.5 4.5q172 0 263.5 -109t91.5 -327v-93q0 -78 -10.5 -143t-35.5 -125q-25 -61 -66 -123.5t-101 -135.5h-215q54 66 83 117t43 100 t16 103.5t2 127.5v339q0 32 -16.5 44t-45.5 12h-95q-11 0 -17 -13t-6 -28v-298q0 -127 -15.5 -221t-51.5 -157t-96 -94.5t-154 -31.5zM430 214q54 0 79 38t26 104l-1 431q0 27 -17 42q-16 14 -30 14h-68q-28 0 -48.5 -14t-33.5 -38t-19 -56t-6 -68v-309q0 -72 34 -108 t84 -36z" />
-<glyph unicode="&#x10d8;" d="M324 0q-72 57 -115.5 116.5t-68.5 126.5q-25 66 -33.5 139.5t-8.5 158.5q-1 252 130.5 388.5t394.5 136.5q131 0 226.5 -34.5t159.5 -100.5q65 -67 96 -164t31 -237q0 -73 -9.5 -145.5t-32.5 -138.5q-24 -67 -66 -128t-111 -118h-229q60 76 91 145t45 135t16 130.5 t2 130.5q0 69 -14 128t-43 101q-26 39 -65.5 61.5t-95.5 22.5q-47 0 -90 -18.5t-79 -64.5q-17 -22 -29 -47.5t-19.5 -58t-11 -73.5t-3.5 -95q0 -13 0.5 -36t2.5 -51.5t6.5 -61.5t12.5 -67q17 -72 50.5 -140.5t90.5 -140.5h-231v0z" />
-<glyph unicode="&#x10d9;" d="M636 -402q-136 0 -237 28t-168 80.5t-100 129t-33 173.5q0 27 2.5 50t8.5 44t15.5 42t22.5 44q22 38 44 66.5t44 45.5l190 -124q-9 -14 -15.5 -26.5t-9.5 -27.5q-8 -34 -8 -78q0 -121 62.5 -179t176.5 -58q49 0 88 11t67 35q27 23 41.5 59t14.5 87v47q0 111 -36.5 170 t-124.5 59h-133v220h133q161 0 161 131q0 51 -27 87.5t-91 62.5q-57 23 -139.5 35t-188.5 12v224q721 0 721 -402q0 -48 -11 -87t-35.5 -70t-63.5 -55t-95 -42q107 -39 166.5 -124t57.5 -210l-1 -58q-4 -200 -123.5 -301t-375.5 -101z" />
-<glyph unicode="&#x10da;" d="M703 -402q-21 85 -64.5 136.5t-103.5 68.5q-19 4 -37 6.5t-31 2.5q-74 0 -179 -110l-141 165q36 51 76 82t94 45q-57 62 -98 132t-68 144.5t-40 152.5t-13 157q0 245 125 365.5t382 120.5q132 0 231 -30.5t166 -89.5t100.5 -145t33.5 -197q0 -46 -5.5 -79t-16 -59.5 t-25 -49.5t-32.5 -48q-11 -16 -16 -24t-8 -19q-4 -13 -6 -30t-2 -33q0 -9 0.5 -21t2.5 -23q2 -17 6 -33t11 -37l-244 -1q-5 20 -10 36t-10 33q-6 21 -7.5 32.5t-1.5 25.5q0 42 6.5 78.5t15.5 53.5q11 21 20 40.5t15 40t9.5 44.5t3.5 55q0 75 -18.5 124t-47.5 79 q-63 64 -172 64q-111 0 -161.5 -69t-50.5 -217q0 -127 31.5 -221.5t76.5 -163t93.5 -112.5t82.5 -70q53 -40 111.5 -87t107 -98t80.5 -106t32 -111h-304v0z" />
-<glyph unicode="&#x10db;" d="M628 0q-260 0 -394 133.5t-134 400.5q0 128 31.5 223.5t98.5 156.5q66 60 163 86.5t208 26.5q42 0 75.5 -4t62 -15t53 -29.5t47.5 -47.5v223q0 94 -60 140t-173 46q-85 0 -132.5 -26t-47.5 -80v-98h-306v98q0 159 123 238t362 79q264 0 397.5 -97t133.5 -296v-687 q0 -109 -31.5 -195t-94.5 -148t-156 -95t-226 -33zM624 214q108 0 163 75t55 228q0 161 -60 233q-29 35 -71 49.5t-94 14.5q-54 0 -95 -14.5t-70 -49.5q-61 -71 -61 -222q0 -82 16.5 -141t47 -97.5t73.5 -57t96 -18.5z" />
-<glyph unicode="&#x10dc;" d="M611 0q-254 0 -383.5 125t-129.5 376v657q-1 367 394 367h523v-222h-542q-40 0 -60 -25.5t-20 -91.5v-225q30 31 56 51.5t53.5 32.5t59.5 17t75 5q118 0 211 -33.5t157 -100.5t97.5 -167.5t33.5 -235.5q0 -263 -130.5 -396.5t-394.5 -133.5zM618 213q106 0 165 78t59 241 q0 161 -58 241t-168 80q-104 0 -163.5 -77t-59.5 -241q0 -160 57 -241t168 -81z" />
-<glyph unicode="&#x10dd;" d="M202 0q-51 60 -85 119.5t-54 118.5t-28 116t-8 114v81q0 250 99.5 378.5t293.5 128.5q70 0 115 -17.5t84 -53.5q19 18 38 31.5t41 22.5t48 13t61 4q195 0 297 -126.5t102 -370.5v-91q0 -58 -8 -116t-28 -117q-19 -55 -52 -114.5t-86 -120.5h-275q54 58 86.5 112.5 t50.5 106.5t23.5 100.5t5.5 96.5v247q0 90 -25.5 135t-70.5 45h-63q-15 0 -26 -11t-9 -40l2 -404h-226l-1 404q0 29 -9.5 39t-34.5 11l-55 1q-40 1 -66 -42.5t-26 -137.5v-241q0 -48 6 -98t26 -103q20 -55 56 -110t92 -111h-291v0z" />
-<glyph unicode="&#x10de;" d="M613 0q-255 0 -385 114t-130 350q0 18 2 40t10 48q9 28 27.5 55.5t53.5 59.5h242q-12 -33 -19.5 -59.5t-12.5 -51.5t-7 -51.5t-2 -49.5q0 -62 16 -107.5t45.5 -75t71 -44t92.5 -14.5q112 0 168.5 66.5t56.5 200.5q0 143 -62.5 211.5t-170.5 68.5h-123v204h144 q45 0 78.5 12.5t55 33t32 46t10.5 51.5q0 61 -59.5 94t-189.5 48q-343 60 -343 295h293q0 -76 187 -106h-2q199 -22 297.5 -102.5t98.5 -224.5q0 -91 -40 -155t-125 -106q55 -33 95.5 -70t66.5 -83t38.5 -102.5t12.5 -127.5q0 -229 -128.5 -348.5t-394.5 -119.5z" />
-<glyph unicode="&#x10df;" d="M612 -402q-258 0 -386 105t-129 319h294q0 -103 53 -158t166 -55q54 0 101.5 13t81.5 40q33 26 51 66t18 94v841q-32 -4 -63.5 -7t-63.5 -6q-15 -2 -27 -3t-26 -2t-31.5 -3t-42.5 -5q-7 -1 -12 -1.5t-10 -0.5q-5 -1 -9.5 -1t-8.5 -1q-6 -1 -8 -1h-2.5h-2t-6.5 -1l-24 -3 v-6q58 -26 91 -60t50 -74q18 -41 24.5 -90t6.5 -89q0 -42 -6.5 -80.5t-22.5 -71.5t-42.5 -61t-66.5 -50q-70 -39 -186.5 -61t-275.5 -22v236q105 0 174 6t110.5 20t58.5 36.5t17 54.5q0 38 -22 78t-66.5 76t-112.5 65t-159 46v182l1040 140v-1083q0 -209 -132 -315.5 t-393 -106.5z" />
-<glyph unicode="&#x10e0;" d="M215 0q-57 57 -93.5 125t-57.5 137t-29 134t-8 116v87q0 59 12 127t34.5 138.5t54.5 139.5t71 131q46 73 104 134t136.5 113.5t182 98t241.5 86.5l37 -220q-149 -34 -270.5 -101.5t-215.5 -179.5q63 0 117.5 -19.5t90.5 -48.5q40 36 94 52t120 16q187 0 278.5 -117 t91.5 -347v-134q0 -60 -4.5 -118.5t-21.5 -117.5q-17 -60 -50 -117.5t-90 -114.5h-291q61 57 96 111t53 108q17 52 21.5 102.5t4.5 99.5l2 279q0 20 -6.5 46.5t-17.5 49.5q-12 25 -27.5 41t-32.5 16h-64q-20 0 -30.5 -12t-10.5 -53v-400h-226l1 405q0 20 -3.5 32t-9.5 18 q-7 6 -16.5 8t-21.5 2h-69q-17 0 -31.5 -16.5t-25.5 -40.5t-17.5 -50.5t-6.5 -45.5v-254q0 -57 3.5 -111t20.5 -110t53 -112t102 -113h-275v0z" />
-<glyph unicode="&#x10e1;" d="M617 0q-259 0 -389.5 131.5t-130.5 393.5v992h295v-992q0 -79 16 -137.5t45.5 -97t71 -57.5t93.5 -19q109 0 166.5 78t57.5 221q0 47 -7 80t-21.5 58t-37.5 44t-54 39q-30 19 -60.5 40t-53.5 59q-17 27 -23.5 54t-6.5 53q0 84 64 163t203 159l71 -126q-45 -17 -69 -37 t-37 -43t-16.5 -47t-3.5 -47q0 -12 14 -24t37 -25q15 -8 32.5 -17.5t34 -17.5t29.5 -14.5t18 -9.5q92 -47 137 -132t45 -224q0 -118 -32 -210.5t-97 -156.5t-162.5 -97.5t-228.5 -33.5z" />
-<glyph unicode="&#x10e2;" d="M621 -403q-150 0 -263 47t-188.5 138.5t-113.5 224.5t-38 306q0 166 34 286t103 209q66 86 158 138t213 73l-15 324h216l-15 -327q120 -17 213 -68.5t158 -138.5q66 -88 99 -208.5t33 -287.5q0 -349 -148.5 -532.5t-445.5 -183.5zM618 -191q155 0 232 130.5t77 387.5 q0 98 -12 179t-38 143.5t-66.5 106.5t-98.5 69l15 -494h-213l12 493q-112 -50 -163.5 -172t-51.5 -327q0 -257 76 -386.5t231 -129.5z" />
-<glyph unicode="&#x10e3;" d="M649 -403q-125 0 -219.5 29t-158 83t-95.5 131.5t-32 175.5q0 59 11.5 102.5t34.5 86.5q23 45 50 78.5t58 59.5l151 -109q-25 -51 -29.5 -98t-4.5 -100q0 -57 17.5 -100t48.5 -71t73.5 -42t92.5 -14q100 0 147.5 56t47.5 179v723q0 48 -18 63q-10 8 -26.5 10.5t-32.5 2.5 q-32 0 -54.5 -10.5t-34.5 -47.5q-10 -29 -12.5 -71t-2.5 -97l-11 -170h-158l-10 170q0 54 -2 96t-10 71q-9 32 -28.5 45.5t-48.5 13.5q-36 0 -57.5 -17.5t-40.5 -40.5q-16 -19 -25.5 -30.5t-18 -18t-18 -8.5t-24.5 -2q-24 0 -49 4.5t-47 16.5t-43 32.5t-47 50.5l60 258 q12 -21 31 -46.5t36 -42.5q20 -20 40.5 -33t38.5 -13t34 16q17 16 38 35.5t48 35.5q25 16 61 16q53 0 89.5 -33.5t71.5 -88.5q47 63 101 92.5t133 29.5q74 0 135 -26t104.5 -78.5t67.5 -132t24 -187.5l-1 -585q-1 -226 -121 -338t-365 -112z" />
-<glyph unicode="&#x10e4;" d="M681 -402q-106 0 -194.5 22.5t-152.5 73.5t-100 129.5t-36 190.5l259 -40q0 -60 17 -92t47 -49t71.5 -20.5t90.5 -3.5h25q46 0 87 10t72 30t48 49.5t17 66.5v232h-89v189l89 1l-1 466h-146q-11 -2 -18 -13q-7 -12 -9 -41v-279q0 -105 -15.5 -186.5t-55.5 -138.5 q-38 -55 -99 -82.5t-157 -27.5q-200 0 -302 124.5t-102 375.5v44q0 215 102.5 326t300.5 111q74 0 128 -16.5t97 -52.5q42 35 96.5 52t118.5 17q84 0 147 -28.5t105 -82t63 -128.5t21 -168q0 -38 -3.5 -68t-10 -55.5t-16 -47.5t-22.5 -43q-25 -42 -54 -74.5t-64 -61.5 q36 -24 67 -53t54 -61q23 -33 36 -67t13 -68v-82q0 -106 -32 -178t-95 -117t-154.5 -65t-209.5 -20h-34zM435 280q29 0 49 11.5t32 29.5q14 20 20.5 47.5t6.5 56.5v377q0 25 -12 37t-28 13l-111 1q-33 0 -56 -42q-11 -21 -17.5 -49t-6.5 -62v-275q0 -42 10 -69t28 -44 t41 -24.5t44 -7.5z" />
-<glyph unicode="&#x10e5;" d="M625 -402q-125 0 -222.5 27.5t-165.5 81.5t-103.5 135t-35.5 188q0 44 6.5 75.5t22.5 63.5t40.5 63t62.5 68l209 -65q-25 -52 -33.5 -103.5t-8.5 -89.5q0 -119 62.5 -176t172.5 -57q53 0 95 15t74 55q30 37 46 90t16 125v280q0 120 -12.5 209.5t-41.5 149.5t-77 90.5 t-123 30.5q-70 0 -106.5 -28.5t-36.5 -93.5q0 -18 2.5 -40.5t7.5 -42.5t11.5 -39t17.5 -39l-267 -87q-18 40 -26.5 66.5t-15.5 56.5q-7 32 -9.5 61.5t-2.5 54.5q0 88 27.5 153t79 107.5t125.5 63t167 20.5q27 0 48.5 -2t42 -6t40 -10.5t42.5 -16.5q37 -16 64.5 -31t41.5 -24 v59v27t1 27v54v60v313h272v-1415q0 -259 -125.5 -381.5t-384.5 -122.5z" />
-<glyph unicode="&#x10e6;" d="M732 -402q-6 38 -22.5 69.5t-35.5 52.5q-20 22 -46 39t-56 28q-41 15 -70 15q-36 0 -83 -28.5t-110 -88.5l-115 163q26 38 52.5 63t55.5 38q-275 252 -275 527v76q0 254 97.5 384t287.5 130q71 0 119.5 -18.5t86.5 -52.5q79 71 216 71q187 0 279.5 -127t92.5 -375v-66 q0 -123 -41 -221q-21 -50 -54.5 -97.5t-82.5 -97.5l-253 -1q13 19 29 41t31 45t28.5 45.5t23.5 42.5q20 40 28 76t8 68v330q0 40 -5 64.5t-15 38.5t-23.5 17.5t-30.5 3.5h-87q-14 0 -23 -8.5t-9 -38.5v-418h-226v416q0 49 -30 49h-66q-22 0 -40 -3.5t-32 -17.5t-22 -38.5 t-8 -64.5v-223q0 -75 14.5 -135.5t38 -108t54.5 -83.5t64 -63.5t65.5 -47.5t60.5 -36q84 -48 149 -89t115.5 -88.5t89.5 -108.5t71 -149z" />
-<glyph unicode="&#x10e7;" d="M635 -402q-535 0 -535 456h311q0 -246 226 -246q97 0 151.5 46.5t54.5 142.5v253q-38 -31 -63.5 -48.5t-52.5 -30.5q-16 -8 -29.5 -12.5t-28.5 -7.5t-32.5 -4t-40.5 -1q-110 0 -206 23t-162 78t-97 142t-31 205q0 67 11 123t39 110q29 54 76.5 105t122.5 105h311 q-66 -66 -106 -112t-66 -82q-26 -37 -42.5 -68t-24.5 -62q-8 -29 -9.5 -52.5t-1.5 -46.5q0 -85 11.5 -131.5t38.5 -73.5q26 -25 64 -35t89 -10q114 0 172 44.5t58 138.5v483h293v-1037q0 -395 -501 -395z" />
-<glyph unicode="&#x10e8;" d="M650 0q-263 0 -403.5 133t-140.5 402q0 136 33 227.5t95 145.5q32 28 73 48.5t87.5 34t97.5 20t102 6.5q41 0 74 -4.5t61.5 -16t55 -31t55.5 -48.5v262q0 49 -8 81t-22.5 50t-35.5 25t-48 7q-23 0 -46.5 -4.5t-33.5 -12.5q-11 -9 -14 -22t-3 -31v-110h-167v112 q0 17 -2.5 30t-11.5 22q-9 8 -27.5 12.5t-41.5 4.5q-33 0 -53 -11.5t-31 -41.5q-10 -27 -13 -67.5t-3 -94.5h-276q0 422 280 422q91 0 155.5 -42.5t101.5 -121.5q21 44 45 75.5t55.5 51t70.5 28.5t90 9q160 0 250.5 -85.5t90.5 -256.5v-718q0 -249 -121.5 -369.5 t-370.5 -120.5zM655 214q193 0 193 306q0 90 -16 143t-46 85t-72.5 43.5t-93.5 11.5q-53 0 -94 -12t-70 -44t-43.5 -83.5t-14.5 -128.5q0 -87 18.5 -145.5t53.5 -97.5t85.5 -58.5t99.5 -19.5z" />
-<glyph unicode="&#x10e9;" d="M98 1183q0 367 437 367q215 0 325 -84t110 -235q0 -31 -5 -56.5t-15.5 -51.5t-28 -55t-42.5 -68q52 -28 98.5 -72.5t81.5 -103.5t56 -128t21 -157q0 -72 -15.5 -144t-48 -140.5t-82 -133t-117.5 -121.5h-316q136 130 210.5 266t74.5 291q0 73 -17 130t-49 94 q-33 38 -79.5 55t-97.5 17q-104 0 -155.5 -67.5t-51.5 -190.5v-595h-294v1183zM392 955q46 58 101 78q51 18 143 17l56 -1l14 142q0 48 -12 77.5t-35 46.5q-23 16 -57 22t-60 6q-75 0 -112.5 -39.5t-37.5 -128.5v-220z" />
-<glyph unicode="&#x10ea;" d="M643 -401q-299 0 -442.5 173t-143.5 535v92q0 78 11.5 161t36.5 171t65 181t98 192l231 -121q-41 -63 -68.5 -126t-46.5 -135q-17 -63 -25.5 -126.5t-8.5 -139.5v-149q0 -130 17.5 -224t53.5 -155t91.5 -90t131.5 -29q60 0 113 18.5t82 57.5q15 19 24.5 45.5t15.5 56.5 t8.5 63t2.5 65q0 100 -25 144.5t-89 44.5h-232v206h225q97 0 96 135q0 31 -11.5 51.5t-28.5 34t-36 21.5t-35 14q-44 18 -76.5 39.5t-54.5 54t-33 78t-13 110.5h289q0 -70 21.5 -108.5t62.5 -55.5q24 -10 58 -26.5t65 -43.5t52.5 -66.5t21.5 -95.5q0 -73 -40 -133.5 t-112 -109.5q49 -37 83.5 -72t56 -73.5t31 -83.5t9.5 -101q0 -48 -7 -96.5t-22 -95t-38.5 -87.5t-56.5 -74q-66 -64 -171.5 -95.5t-236.5 -31.5z" />
-<glyph unicode="&#x10eb;" d="M621 0q-264 0 -393.5 127.5t-129.5 393.5q0 272 129.5 409t370.5 137q44 0 81 -5.5t72 -21.5q32 -14 61 -37t50 -56v570l274 -1v-1010q0 -261 -129.5 -383.5t-385.5 -122.5zM614 214q108 0 166 69q30 35 46 91.5t16 142.5t-16 151t-46 107t-73 60.5t-92 18.5 q-208 0 -208 -328q0 -163 51 -237.5t156 -74.5z" />
-<glyph unicode="&#x10ec;" d="M603 0q-144 0 -237 38t-152 109q-56 66 -88 165t-32 228v708q0 75 24.5 131t69.5 94q43 37 103.5 57t127.5 20q94 0 164 -41q35 -20 64 -50.5t49 -72.5q77 164 256 164q281 0 281 -422h-276q0 54 -3 94.5t-13 67.5q-11 32 -32 42.5t-52 10.5q-23 0 -41 -4.5t-27 -12.5 q-10 -9 -12.5 -22t-2.5 -30v-112h-167v110q0 18 -3 31t-14 22q-11 8 -32.5 12.5t-56.5 4.5q-29 0 -50 -4t-35 -16q-15 -13 -22.5 -37t-7.5 -66v-302q27 25 53 43.5t56 31t67 19t85 6.5q103 0 195.5 -29t158.5 -91q63 -60 96 -151.5t33 -222.5q0 -265 -135 -394t-392 -129z M606 213q51 0 95 17t76 53q30 35 45.5 88t15.5 138q0 82 -14.5 138t-42.5 91t-70 50t-100 15q-52 0 -92 -12.5t-69 -43.5q-29 -30 -45.5 -81t-16.5 -133q0 -77 15 -138.5t43 -103.5t68 -60t92 -18z" />
-<glyph unicode="&#x10ed;" d="M616 -402q-131 0 -228 27.5t-161.5 79t-96.5 125.5t-32 167q0 34 5 64t19.5 61.5t39.5 67.5t66 82l213 -141q-25 -24 -38 -62q-6 -18 -8.5 -36t-2.5 -36q0 -95 58 -142.5t163 -47.5q54 0 96.5 13t72.5 40q29 26 45 65t15 93q0 69 -47.5 123.5t-128.5 96.5 q-102 94 -125 176q-6 -2 -11 -2h-4t-7 -2q-383 0 -383 349q0 353 386 353l10 -1v406h279v-508q34 -27 58.5 -61.5t31.5 -69.5h189v-232h-192q-8 -32 -28.5 -67t-50.5 -60l-1 -52q1 -46 145 -131q87 -59 129 -137.5t42 -190.5q0 -198 -130 -304t-388 -106zM533 578 q26 0 54.5 14t51.5 39q25 26 38.5 59t13.5 69q0 39 -14.5 71.5t-34.5 54.5q-22 23 -48.5 36.5t-52.5 13.5t-55 -13.5t-52 -36.5q-24 -24 -38.5 -56t-14.5 -70q0 -36 13.5 -69t36.5 -59q25 -28 52 -40.5t50 -12.5z" />
-<glyph unicode="&#x10ee;" d="M623 0q-137 0 -233 38t-162 110t-98 176t-32 239l-1 954h292v-563q29 35 56.5 57t57 34.5t62 17t71.5 4.5q119 0 212 -33.5t156.5 -100t97 -167t33.5 -234.5q0 -261 -128.5 -396.5t-383.5 -135.5zM618 214q105 0 164.5 77.5t59.5 238.5q0 163 -60 243t-166 80 q-108 0 -166 -80.5t-58 -240.5q0 -162 59.5 -240t166.5 -78z" />
-<glyph unicode="&#x10ef;" d="M613 -402q-260 0 -388 109.5t-128 313.5q0 50 8 94.5t23.5 86.5t40 83t57.5 85l209 -136q-25 -47 -34 -94t-9 -92q0 -239 219 -239q106 0 168.5 53.5t62.5 158.5q0 47 -13 86t-36 71t-55 57t-69 44q-99 67 -148 135t-50 140l20 187l-356 53v259l356 -101l-20 297h267 l-20 -345l376 -79v-260l-376 127l20 -138q0 -11 16 -26.5t34 -29.5q13 -10 31.5 -23t39 -26.5t41.5 -27t39 -24.5q96 -72 146.5 -164.5t50.5 -217.5q0 -204 -133 -310.5t-390 -106.5z" />
-<glyph unicode="&#x10f0;" d="M622 0q-524 0 -524 432v134h293v-134q0 -116 58 -167t171 -51q48 0 89 9t70 29t45.5 52t16.5 77q0 23 -4.5 52t-14.5 44q-9 14 -20.5 18t-23.5 4h-279v219h280q10 0 20.5 2t19.5 10t15 23t6 42q0 25 -5.5 39t-14.5 21t-20 8.5t-21 1.5h-280v221h278q8 0 17.5 2t18.5 9 q8 7 14 19.5t6 29.5q0 24 -14 40.5t-49 28.5q-36 13 -74 17t-91 13q-38 6 -87.5 20t-93 46t-73.5 89t-30 150h228q0 -26 25.5 -45t63.5 -34q48 -19 94.5 -27t95.5 -14q22 -3 51.5 -8t61.5 -15.5t63 -28t55.5 -45t39.5 -66.5t15 -92q0 -66 -27 -113t-90 -80 q61 -33 94.5 -81.5t33.5 -109.5q0 -117 -133 -187q42 -30 70 -57.5t44.5 -56t23 -59.5t6.5 -67q0 -85 -32 -152.5t-96.5 -114.5t-160.5 -72t-225 -25z" />
-<glyph unicode="&#x10f1;" d="M661 -402q-152 0 -257.5 33t-171 100.5t-95 170.5t-29.5 244q0 57 4 113t11.5 115t17.5 122t22 133q5 31 9.5 59.5t6 59t0 64.5t-7.5 77q-9 63 -27 131.5t-45 156.5h274q12 -39 22 -73.5t18 -67.5t14 -67t11 -71q5 -42 6.5 -76t0 -66t-5 -63.5t-8.5 -68.5 q-15 -116 -27 -234.5t-12 -221.5q0 -104 14.5 -173t44 -111t73.5 -59.5t103 -17.5q69 0 115.5 19.5t73.5 49t35.5 63.5t2.5 63.5t-25.5 49t-49.5 19.5h-187v211h187q41 0 55.5 23.5t14.5 73.5q0 30 -4.5 53t-12.5 36q-9 12 -22 16.5t-30 4.5h-188v207h188q34 0 51.5 23.5 t17.5 84.5q0 31 -4.5 48t-13.5 26t-22 11t-30 2h-187v214h187q35 0 54 21.5t15.5 50t-34.5 55.5t-97 39q-183 45 -185 279h215q0 -21 18 -39t46 -33t63 -27.5t70 -22.5q192 -62 192 -230q0 -66 -30.5 -116t-96.5 -79q68 -31 97.5 -82t29.5 -113q0 -76 -36.5 -132.5 t-90.5 -86.5q62 -29 94.5 -85.5t32.5 -125.5q0 -74 -36.5 -122.5t-104.5 -80.5q141 -79 141 -256q0 -321 -475 -321z" />
-<glyph unicode="&#x10f2;" d="M136 22q72 0 125 10t85 32q-65 47 -112 98t-77 110t-44.5 127t-14.5 149q0 123 32.5 219.5t97 163t161.5 101t226 34.5q130 0 227.5 -35t163 -101t98 -162t32.5 -217q0 -84 -16 -152.5t-48.5 -127t-82 -109t-117.5 -97.5q38 -22 92.5 -32.5t121.5 -8.5v-294 q-331 81 -482 235q-91 -78 -207.5 -137t-260.5 -102v296zM610 195q107 35 170.5 119t62.5 216q1 79 -15 139.5t-45.5 101t-72.5 61.5t-96 21q-106 0 -164 -79t-58 -234q0 -140 52.5 -223t165.5 -122z" />
-<glyph unicode="&#x10f3;" d="M609 -191q110 0 171.5 58t61.5 164v31q0 121 -74 177t-203 55h-174v195h174q114 0 169.5 93.5t54.5 264.5l-357 -21v-197h-294v405l998 32q0 -224 -63 -386t-186 -262q249 -121 249 -371v-31q0 -83 -29.5 -150t-79 -117t-116 -83.5t-141.5 -50t-154 -16.5t-153.5 17 t-141 50.5t-116.5 84t-79 118t-29 152.5l43 147l298 -30l-47 -123q0 -103 58.5 -154.5t159.5 -51.5z" />
-<glyph unicode="&#x10f4;" d="M619 -402q-264 0 -393 113t-129 346l294 1q0 -126 59 -188t166 -62q48 0 91 12.5t73 38.5q62 53 62 157v53q0 46 -16.5 81.5t-47.5 59.5q-62 47 -171 47h-216v225h213q46 4 87.5 28t73.5 65q31 39 51.5 95.5t25.5 131.5q-3 0 -4.5 -0.5t-6 -1.5t-13.5 -2.5l-27 -4.5 q-14 -3 -26.5 -5t-26 -4t-29.5 -4t-38 -4q-15 -2 -29.5 -3t-35.5 -1q-125 0 -219 25.5t-159 75.5q-130 100 -130 290q0 199 144.5 294t433.5 94l-1 -208q-157 0 -233.5 -50t-76.5 -143q0 -85 61 -125t172 -40q63 0 125.5 13t128 40t136 68t148.5 97v-350q0 -176 -66 -292 t-201 -183q135 -42 201 -116t66 -189v-53q0 -212 -130 -317t-387 -105z" />
-<glyph unicode="&#x10f5;" d="M593 0q-244 0 -364 89t-120 273q0 182 121 277t363 95h202v76h-202q-242 0 -363 97t-121 280q0 185 121 274.5t365 89.5q241 0 358.5 -88t117.5 -270v-166h107v-217h-107v-76h107v-245h-107v-134q0 -180 -118.5 -267.5t-359.5 -87.5zM795 1027v166q0 147 -195 147 q-196 0 -196 -153q0 -78 47.5 -119t141.5 -41h202zM599 209q196 0 196 162v147h-202q-189 0 -189 -154q0 -155 195 -155z" />
-<glyph unicode="&#x10f6;" d="M316 -190q43 0 79.5 11t62.5 34t40.5 55.5t12.5 77.5l1 807q0 32 -9 44t-26 14h-98q-26 2 -41 -33q-16 -33 -16 -105v-302q0 -167 122 -167v-217q-417 4 -417 397v228q0 412 347 412q160 0 242 -88q40 46 100.5 67t138.5 21q351 0 351 -412v-232q0 -212 -86.5 -317 t-257.5 -105q-35 0 -60 4.5t-45 13.5v-16q-5 -204 -115.5 -303.5t-325.5 -99.5v211zM828 214q51 0 67.5 29.5t16.5 90.5v395q0 64 -17.5 94t-52.5 30h-80q-35 0 -35 -60l1 -459q0 -66 26.5 -93t73.5 -27z" />
-<glyph unicode="&#x10f7;" d="M609 -403q-130 0 -229 26.5t-166 81t-101.5 137.5t-35.5 196q0 88 17 155.5t45.5 118.5t64.5 87t74.5 62t76.5 43t69 29q65 26 115.5 44.5t84.5 39.5t51.5 49t17.5 72q0 49 -23 82.5t-73 33.5q-20 0 -49 -6t-53 -20t-39 -35t-15 -49l6 -57l-216 -33l-15 72 q0 172 99.5 256t285.5 84q100 0 172.5 -23.5t120 -67t70.5 -105.5t23 -139q0 -67 -18 -121t-59 -99.5t-106.5 -85t-159.5 -78.5q-91 -23 -151.5 -71.5t-91.5 -108.5t-32 -123.5t27 -116t85.5 -86t143.5 -33.5q110 0 173 62t63 193q0 14 -1.5 36t-7.5 42t-17.5 38t-32.5 35 l216 149q34 -39 60 -78t43.5 -80.5t26 -86t8.5 -95.5q0 -101 -33.5 -180t-102 -133.5t-171 -83.5t-240.5 -29z" />
-<glyph unicode="&#x10f8;" d="M617 -403q-254 0 -386 104.5t-132 310.5v1032h294v-573q0 -36 15.5 -62.5t44 -44t67 -26t85.5 -8.5q115 0 176.5 56.5t61.5 188.5q0 58 -13 112.5t-45 106.5q-31 51 -83 102t-128 99l285 98q81 -63 134 -125.5t85 -125.5q33 -66 45.5 -132.5t12.5 -133.5 q0 -233 -128 -350.5t-383 -117.5q-74 0 -130.5 9.5t-101.5 28.5v-130q0 -105 57 -156t162 -51q115 0 173 60.5t58 184.5h294q-2 -233 -131 -345t-389 -112z" />
-<glyph unicode="&#x10f9;" d="M635 -402q-200 0 -296 82t-96 244q0 100 39 171.5t125 124.5q-171 53 -249 153t-78 252q-1 114 45 199t121 141.5t171.5 85t197.5 28.5t197.5 -28t172 -84t122 -139.5t46.5 -194.5q0 -150 -92 -263.5t-284 -204.5q-71 -29 -118.5 -57t-75.5 -56.5t-39.5 -59t-11.5 -66.5 q0 -54 24.5 -86t81.5 -32q47 0 80 24t33 71v111h284v-111q0 -153 -104 -229t-296 -76zM620 386q130 19 185.5 80.5t55.5 166.5q0 114 -60 174.5t-181 60.5q-122 0 -183 -61.5t-61 -173.5q0 -107 58 -168t186 -79z" />
-<glyph unicode="&#x10fa;" d="M686 -195q0 57 -10.5 90t-27.5 53q-17 19 -44.5 31.5t-56.5 12.5q-46 0 -85.5 -34t-78.5 -100l-217 124q75 111 182 145q-102 90 -161 215q-29 63 -44.5 130.5t-15.5 145.5q0 225 131 337t389 112q229 -19 345 -112t116 -257q0 -96 -40 -219t-121 -282l-235 98 q57 123 83.5 217.5t26.5 162.5q0 179 -185 179q-110 0 -162.5 -61.5t-52.5 -176.5q4 -151 42 -235q39 -86 135 -172q88 -26 169.5 -79t148.5 -134l-231 -191v0z" />
-<glyph unicode="&#x10fb;" d="M301 797q-30 0 -30 30v150q0 30 30 30h185q30 0 30 -30v-150q0 -30 -30 -30h-185zM753 444q-30 0 -30 30v148q0 30 30 30h179q30 0 30 -30v-148q0 -30 -30 -30h-179zM301 49q-30 0 -30 30v148q0 30 30 30h182q30 0 30 -30v-148q0 -30 -30 -30h-182z" />
-<glyph unicode="&#x10fc;" d="M602 736q-103 0 -161.5 74t-58.5 224v323q0 196 209 196h258v-119l-281 2q-39 0 -39 -59v-108l80 50q61 0 106.5 -25t76 -66t45.5 -93.5t15 -107t-15.5 -107t-47 -93.5t-78 -66t-109.5 -25zM619 852q38 0 60.5 44.5t22.5 129.5q0 84 -22.5 124t-60.5 40q-31 0 -51.5 -25 t-30.5 -62.5t-9.5 -81.5t11 -81.5t30.5 -62.5t50 -25z" />
-<glyph unicode="&#x1e80;" d="M283 1859h284l199 -264h-197zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
-<glyph unicode="&#x1e81;" d="M150 1646h282l283 -376h-197zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
-<glyph unicode="&#x1e82;" d="M668 1859h284l-286 -264h-197zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
-<glyph unicode="&#x1e83;" d="M801 1646h282l-368 -376h-197zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
-<glyph unicode="&#x1e84;" d="M331 1595q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1595q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z " />
-<glyph unicode="&#x1e85;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z " />
-<glyph unicode="&#x1ebc;" d="M298 1588v30q0 53 14 96.5t41 74.5t62.5 48t77.5 17q75 0 151 -49l60 -39q23 -15 40.5 -22t36.5 -7q35 0 54.5 30t19.5 87h140v-6q0 -6 -1 -9t-1 -8v-5q0 -54 -13.5 -98t-39.5 -75t-63 -48t-82 -17q-36 0 -70.5 11.5t-76.5 37.5l-54 34l-12 7q-24 13 -40 19.5t-32 6.5 q-33 0 -52.5 -29.5t-19.5 -80.5v-6h-140zM168 0v1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930z" />
-<glyph unicode="&#x1ebd;" d="M965 1554q0 -138 -51.5 -211t-149.5 -73q-32 0 -63 12q-37 13 -83 45l-67 45q-44 29 -72 29q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 71.5 -13t77.5 -44l62 -43q44 -31 75 -31q35 0 54.5 32t19.5 89v8h140zM231 122q-149 152 -149 432 q0 140 35.5 246.5t107.5 187.5q142 159 392 159q247 0 385 -147q137 -146 137 -416v-119h-759q2 -133 78 -197.5t229 -64.5q99 0 200 29q105 33 205 92v-269q-102 -42 -208 -63q-101 -21 -219 -21q-145 0 -252 37.5t-182 113.5zM844 685q-1 117 -59 176q-28 28 -70.5 43.5 t-97.5 15.5q-102 0 -162.5 -61t-71.5 -175z" />
-<glyph unicode="&#x1ef2;" d="M283 1859h284l199 -264h-197zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="&#x1ef3;" d="M161 1646h282l283 -376h-197zM137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
-<glyph unicode="&#x1ef8;" d="M288 1588v30q0 53 14 96.5t41 74.5t62.5 48t77.5 17q75 0 151 -49l60 -39q23 -15 40.5 -22t36.5 -7q35 0 54.5 30t19.5 87h140v-6q0 -6 -1 -9t-1 -8v-5q0 -54 -13.5 -98t-39.5 -75t-63 -48t-82 -17q-36 0 -70.5 11.5t-76.5 37.5l-54 34l-12 7q-24 13 -40 19.5t-32 6.5 q-33 0 -52.5 -29.5t-19.5 -80.5v-6h-140zM469 0v588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295z" />
-<glyph unicode="&#x1ef9;" d="M995 1554q0 -138 -51.5 -211t-149.5 -73q-32 0 -63 12q-37 13 -83 45l-67 45q-44 29 -72 29q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 71.5 -13t77.5 -44l62 -43q44 -31 75 -31q35 0 54.5 32t19.5 89v8h140zM137 -424v223h119 q92 0 132 30q22 16 44 54.5t41 87.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-61 -160 -141 -231q-82 -72 -201 -72h-242z" />
-<glyph unicode="&#x2000;" />
-<glyph unicode="&#x2001;" />
-<glyph unicode="&#x2002;" />
-<glyph unicode="&#x2003;" />
-<glyph unicode="&#x2004;" />
-<glyph unicode="&#x2005;" />
-<glyph unicode="&#x2006;" />
-<glyph unicode="&#x2007;" />
-<glyph unicode="&#x2008;" />
-<glyph unicode="&#x2009;" />
-<glyph unicode="&#x200a;" />
-<glyph unicode="&#x2010;" d="M301 735h631v-291h-631v291z" />
-<glyph unicode="&#x2011;" d="M301 735h631v-291h-631v291z" />
-<glyph unicode="&#x2012;" d="M0 690h1233v-246h-1233v246z" />
-<glyph unicode="&#x2013;" d="M0 690h1233v-246h-1233v246z" />
-<glyph unicode="&#x2014;" d="M0 690h1233v-246h-1233v246z" />
-<glyph unicode="&#x2015;" d="M0 690h1233v-246h-1233v246z" />
-<glyph unicode="&#x2016;" d="M257 1565h227v-2048h-227v2048zM747 1565h227v-2048h-227v2048z" />
-<glyph unicode="&#x2017;" d="M0 -18h1233v-190h-1233v190zM0 -293h1233v-190h-1233v190z" />
-<glyph unicode="&#x2018;" d="M432 1174l197 382h215l-99 -382v-271h-313v271z" />
-<glyph unicode="&#x2019;" d="M530 1286v270h314v-270l-197 -383h-215z" />
-<glyph unicode="&#x201a;" d="M461 96v271h313v-271l-196 -383h-216z" />
-<glyph unicode="&#x201b;" d="M432 1286v270h314v-270l98 -383h-215z" />
-<glyph unicode="&#x201c;" d="M152 1174l196 382h215l-98 -382v-271h-313v271zM672 1174l196 382h213l-96 -382v-271h-313v271z" />
-<glyph unicode="&#x201d;" d="M248 1286v270h313v-270l-196 -383h-215zM768 1286v270h313v-270l-196 -383h-215z" />
-<glyph unicode="&#x201e;" d="M248 96v271h313v-271l-196 -383h-215zM768 96v271h313v-271l-196 -383h-215z" />
-<glyph unicode="&#x201f;" d="M150 1286v270h313v-270l98 -383h-215zM670 1286v270h313v-270l98 -383h-215z" />
-<glyph unicode="&#x2020;" d="M487 883h-331v223h331v387h256v-387h332v-223h-332v-1080h-256v1080z" />
-<glyph unicode="&#x2021;" d="M487 190h-331v224h331v469h-331v223h331v387h256v-387h332v-223h-332v-469h332v-224h-332v-387h-256v387z" />
-<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-28 12 -59 32.5t-57 46.5q-25 26 -44 55.5t-33 61.5t-20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q31 -13 60.5 -32.5t54.5 -44.5q24 -24 44.5 -53t35.5 -64q27 -65 27 -137 q0 -74 -27 -138q-12 -29 -31.5 -59t-48.5 -59t-57.5 -47.5t-58.5 -31.5q-29 -12 -64 -20t-76 -8z" />
-<glyph unicode="&#x2023;" d="M256 1200l801 -440l-801 -441v881z" />
-<glyph unicode="&#x2026;" d="M87 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM499 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM911 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235z" />
-<glyph unicode="&#x202f;" />
-<glyph unicode="&#x2030;" d="M286 856q-60 0 -112 22.5t-90 60.5q-42 42 -63 94t-21 111q0 63 22.5 115.5t59.5 89.5q40 40 93 61.5t112 21.5q61 0 112.5 -22.5t89.5 -61.5q38 -38 60 -90t22 -112t-22 -114t-60 -92q-42 -43 -95 -63.5t-108 -20.5zM285 1018q50 0 88 39q20 21 28.5 43t8.5 46 q0 50 -37 87t-89 37q-51 0 -86 -35q-36 -36 -36 -88q0 -54 36 -91q36 -38 87 -38zM35 664l1044 415l39 -94l-1046 -420zM330 0q-120 0 -202 84q-83 85 -83 206q0 63 21 112t62 90q83 83 201 83q121 0 204 -83q40 -40 61.5 -91t21.5 -113q0 -58 -20 -108t-64 -95 q-84 -85 -202 -85zM946 0q-57 0 -107.5 20.5t-92.5 61.5q-42 42 -63 93.5t-21 109.5v4q0 58 20.5 109.5t61.5 93.5q41 41 92.5 62t109.5 21q60 0 113 -22.5t91 -60.5q42 -42 62.5 -94.5t20.5 -109.5t-20.5 -109t-62.5 -94q-39 -40 -91 -62.5t-113 -22.5zM330 162q50 0 88 39 q20 21 28.5 43t8.5 46q0 50 -37 87t-88 37t-87 -36t-36 -87q0 -54 36 -91q36 -38 87 -38zM946 162q24 0 47.5 10t41.5 28q15 15 25.5 38.5t10.5 52.5q0 48 -37 85q-38 37 -88 38q-23 0 -45.5 -9t-40.5 -27q-16 -16 -26.5 -39.5t-10.5 -50.5q0 -24 9.5 -47.5t26.5 -41.5 q14 -15 37.5 -26t49.5 -11z" />
-<glyph unicode="&#x2031;" d="M286 856q-59 0 -111 22.5t-91 61.5t-61.5 92t-22.5 113t22.5 112.5t61.5 91t91 61t111 22.5q60 0 112 -22.5t90.5 -61.5t60.5 -91t22 -112t-22.5 -112.5t-61 -92t-90.5 -62t-111 -22.5zM285 1018q25 0 48 10.5t40 28t27 40.5t10 49q0 25 -10 47.5t-27 39.5t-40 27t-49 10 t-48 -9.5t-38.5 -26t-26 -39t-9.5 -48.5t9.5 -49.5t26.5 -41t39 -28t48 -10.5zM35 664l1044 415l39 -94l-1046 -420zM254 0q-54 0 -100 22.5t-80.5 61.5t-54 92t-19.5 114q0 60 19 112t53.5 90.5t81 60.5t102.5 22q103 0 176 -83l2 -3l3 3q36 42 83 63t95.5 21t95.5 -21 t85 -63l1 -3l3 3q74 83 176 83q54 0 101 -22.5t81.5 -61t54.5 -90.5t20 -112t-20 -112.5t-54.5 -92t-81 -62t-100.5 -22.5q-102 0 -176 83l-4 4l-1 -3q-75 -84 -180 -84q-104 0 -178 83l-4 4l-2 -3q-75 -84 -178 -84zM253 162q22 0 42.5 10.5t35.5 28.5t24 41t9 48t-9 47.5 t-24.5 39.5t-36 27t-42.5 10t-41.5 -9.5t-34.5 -26.5t-23.5 -39.5t-8.5 -48.5t8.5 -49t23.5 -40.5t34.5 -28t42.5 -10.5zM616 162q22 0 42 10t35 27t24 39.5t9 46.5v4q0 25 -9 48t-24.5 40t-35.5 27t-42 10t-41.5 -10t-34.5 -27.5t-23.5 -40.5t-8.5 -48t8.5 -48t23 -40 t34.5 -27.5t43 -10.5zM978 162q23 0 43 10t35 27.5t24 40t9 48.5t-9 48.5t-24 39.5t-35.5 27t-42.5 11q-22 0 -41 -9.5t-33.5 -25.5t-23 -35.5t-10.5 -40.5v-14v-14q2 -21 10.5 -41.5t23 -36.5t33 -25.5t41.5 -9.5z" />
-<glyph unicode="&#x2034;" d="M189 1493h278l-289 -373h-162zM564 1493h278l-289 -373h-162zM939 1493h278l-289 -373h-162z" />
-<glyph unicode="&#x2035;" d="M391 1493h278l173 -373h-162z" />
-<glyph unicode="&#x2036;" d="M201 1493h278l173 -373h-162zM581 1493h278l173 -373h-162z" />
-<glyph unicode="&#x2037;" d="M16 1493h278l173 -373h-162zM396 1493h278l173 -373h-162zM766 1493h278l173 -373h-162z" />
-<glyph unicode="&#x2039;" d="M256 535v131l469 393v-238l-276 -221l276 -221v-238z" />
-<glyph unicode="&#x203a;" d="M510 379l278 221l-278 221v238l469 -393v-131l-469 -394v238z" />
-<glyph unicode="&#x203c;" d="M175 838v655h267v-655l-33 -357h-199zM791 838v655h267v-655l-33 -357h-199zM308 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38 q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5zM928 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5 t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5z" />
-<glyph unicode="&#x203d;" d="M440 1252l-20 -8q-21 -8 -41.5 -17.5t-43 -21.5t-47.5 -28t-55 -38v268q99 57 198 85t205 28q99 0 178 -24t135 -69.5t86 -111t30 -147.5q0 -37 -7.5 -71t-25.5 -69.5t-49.5 -74t-79.5 -85.5l-88 -86q-37 -36 -57.5 -62t-31 -48.5t-13.5 -46t-4 -54.5l-2 -47v-123h-267 v851zM707 997q35 37 54 71t19 78q0 66 -46 100q-12 9 -27 15v-264zM574 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121 t-114 -47z" />
-<glyph unicode="&#x203e;" d="M0 1547h1233v-190h-1233v190z" />
-<glyph unicode="&#x203f;" d="M618 -485q-164 0 -332.5 40t-352.5 123v161q179 -69 347.5 -104t336.5 -35q330 0 684 139v-161q-185 -83 -352 -123t-331 -40z" />
-<glyph unicode="&#x2044;" d="M899 1493h221l-786 -1683h-221z" />
-<glyph unicode="&#x2045;" d="M422 1556h508v-190h-242v-628h242v-190h-242v-628h242v-190h-508v1826z" />
-<glyph unicode="&#x2046;" d="M303 -80h242v628h-242v190h242v628h-242v190h508v-1826h-508v190z" />
-<glyph unicode="&#x2047;" d="M132 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5 q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM748 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5 q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM270 -50q-67 0 -114 47t-47 120 q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM889 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3 q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
-<glyph unicode="&#x2048;" d="M132 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5 q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM807 838v655h267v-655l-33 -357h-199zM271 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6 q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM947 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5 q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
-<glyph unicode="&#x2049;" d="M748 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5 q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM159 838v655h267v-655l-33 -357h-199zM290 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6 q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM894 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5 q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
-<glyph unicode="&#x204b;" d="M168 1493h520q108 0 195.5 -30.5t150 -86t96 -134t33.5 -174.5q0 -88 -28.5 -160t-83 -125.5t-134 -87.5t-180.5 -46v-846h-188v1543h-190v-1543h-191v1690z" />
-<glyph unicode="&#x205f;" />
-<glyph unicode="&#x2070;" d="M615 1113q-337 0 -337 434q0 433 337 433q339 0 339 -433q0 -434 -339 -434zM616 1253q71 0 102 70q32 70 32 223q0 152 -32 224q-31 70 -102 70q-39 0 -63 -19t-39 -51q-33 -71 -33 -224q0 -151 33 -223q15 -32 39 -51t63 -19zM616 1476q-19 0 -34.5 5.5t-26.5 14.5 q-24 19 -24 49q0 31 24.5 51.5t59.5 20.5t60.5 -20.5t25.5 -50.5q0 -29 -24.5 -49.5t-60.5 -20.5z" />
-<glyph unicode="&#x2074;" d="M639 1300h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM639 1443v330l-250 -330h250z" />
-<glyph unicode="&#x2075;" d="M557 1113q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5z" />
-<glyph unicode="&#x2076;" d="M637 1112q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178q64 73 200 73q139 0 214 -71.5t75 -205.5q0 -140 -83.5 -216.5t-244.5 -76.5zM637 1245q66 0 101 39t35 112 q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
-<glyph unicode="&#x2077;" d="M711 1810h-427v145h646v-117l-346 -718h-206z" />
-<glyph unicode="&#x2078;" d="M617 1113q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5 t-246 -64.5zM616 1635q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM615 1246q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
-<glyph unicode="&#x2079;" d="M539 1113q-51 0 -100 7.5t-109 25.5v151q51 -24 101.5 -37.5t101.5 -13.5q107 0 163.5 61t59.5 177q-33 -36 -83 -54.5t-119 -18.5q-138 0 -212.5 71t-74.5 205q0 141 83.5 217t244.5 76q175 0 262.5 -100t87.5 -316q0 -232 -101 -341.5t-305 -109.5zM595 1551 q66 0 100 38.5t34 112.5t-34 113t-100 39t-101 -39t-35 -112t35 -112.5t101 -39.5z" />
-<glyph unicode="&#x207a;" d="M542 961h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
-<glyph unicode="&#x207b;" d="M270 1095h692v-134h-692v134z" />
-<glyph unicode="&#x207c;" d="M284 1221h666v-132h-666v132zM284 966h666v-133h-666v133z" />
-<glyph unicode="&#x207d;" d="M643 517q-100 130 -148.5 255t-48.5 256q0 258 197 510h144q-84 -135 -124 -259t-40 -249q0 -126 40 -252t124 -261h-144v0z" />
-<glyph unicode="&#x207e;" d="M446 517q84 135 123.5 261t39.5 252q0 125 -39.5 249t-123.5 259h143q198 -252 198 -510q0 -131 -49 -256t-149 -255h-143v0z" />
-<glyph unicode="&#x208a;" d="M542 293h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
-<glyph unicode="&#x208b;" d="M270 427h692v-134h-692v134z" />
-<glyph unicode="&#x208c;" d="M284 553h666v-132h-666v132zM284 298h666v-133h-666v133z" />
-<glyph unicode="&#x208d;" d="M643 -151q-100 130 -148.5 255t-48.5 256q0 258 197 510h144q-84 -135 -124 -259t-40 -249q0 -126 40 -252t124 -261h-144v0z" />
-<glyph unicode="&#x208e;" d="M446 -151q84 135 123.5 261t39.5 252q0 125 -39.5 249t-123.5 259h143q198 -252 198 -510q0 -131 -49 -256t-149 -255h-143v0z" />
-<glyph unicode="&#x20a0;" d="M659 416q-57 -42 -116 -63t-127 -21q-95 0 -172 40.5t-131 116.5t-83.5 183t-29.5 241q0 133 29.5 240.5t83.5 183.5t131.5 116.5t173.5 40.5q63 0 121.5 -19t119.5 -64v-232q-57 55 -110.5 80.5t-108.5 25.5q-56 0 -99.5 -25.5t-73.5 -73.5t-45.5 -117t-15.5 -156 q0 -86 15.5 -155t45 -117t73 -73.5t99.5 -25.5q54 0 109 25t111 80v473h548v-218h-349v-209h329v-218h-329v-257h361v-218h-560v416z" />
-<glyph unicode="&#x20a1;" d="M583 -10q-59 13 -111 36l-29 -115h-141l48 188q-42 35 -82 81q-179 209 -179 562q0 180 45.5 322t128 241t197.5 153.5t255 60.5l19 74h140l-20 -80q48 -8 96 -21q4 -2 8 -3t9 -2l27 106h141l-42 -162q21 -11 37 -22v-309q-26 22 -51.5 40.5t-51.5 32.5l-236 -923 q88 2 169.5 35t169.5 106v-309q-87 -55 -180.5 -83t-196.5 -28h-17t-18 1l-16 -62h-139zM900 1226q-55 13 -116 15l-233 -905q23 -22 49 -38t55 -27zM636 1212q-72 -33 -124 -103q-47 -63 -71.5 -154t-24.5 -210q0 -144 37 -248z" />
-<glyph unicode="&#x20a2;" d="M684 -28q-141 0 -254.5 53.5t-193.5 154t-123.5 243.5t-43.5 322t43.5 322.5t123.5 244t193.5 154.5t253.5 54q100 0 186.5 -27.5t169.5 -83.5v-309q-156 141 -322 141q-82 0 -146 -34t-108 -98.5t-67 -156.5t-23 -208q0 -230 90 -362q40 -59 91 -90v716h247v-166 q24 49 51 85t59 59.5t71 34.5t86 11q12 0 22.5 -1.5t36.5 -5.5l1 -291q-33 19 -65 28.5t-65 9.5q-96 0 -146.5 -79t-50.5 -229v-205q27 6 44 12t33 13q43 19 82.5 45.5t78.5 61.5v-309q-81 -54 -167.5 -82t-187.5 -28z" />
-<glyph unicode="&#x20a3;" d="M169 290h-169v88h169v1115h946v-291h-595v-278h559v-291h-559v-255h178v-88h-178v-290h-351v290z" />
-<glyph unicode="&#x20a4;" d="M110 266h200v212h-171v194h171v157h-171v194h171q3 127 30.5 220.5t84 155t143.5 91.5t208 30q164 0 320 -54v-286q-60 39 -126.5 58t-128.5 19q-107 0 -155 -57t-54 -177h329v-194h-329v-157h329v-194h-329v-212h475v-266h-997v266z" />
-<glyph unicode="&#x20a5;" d="M500 306v278q0 183 -20 240q-21 53 -74 53q-65 0 -101 -85q-36 -86 -36 -241v-551h-230v1120h230v-164q85 191 218 191q75 0 130.5 -54t85.5 -154l119 371h110l-56 -174q16 5 31.5 8t34.5 3q121 0 185.5 -118t64.5 -347v-682h-230v584l1 26v41q0 54 -5 99t-17 74 t-31.5 41t-42.5 12q-32 0 -57 -21.5t-43 -62.5l-10 -29q-11 -33 -18.5 -89t-7.5 -125v-550h-219l-61 -190h-109z" />
-<glyph unicode="&#x20a6;" d="M66 438h-66v194h66v229h-66v194h66v438h430l145 -438h161v438h366v-438h65v-194h-65v-229h65v-194h-65v-438h-430l-146 438h-162v-438h-364v438zM528 632l-77 229h-21v-229h98zM802 632v229h-97l77 -229h20z" />
-<glyph unicode="&#x20a7;" d="M1004 -28q-52 0 -103 17q-12 4 -16.5 6t-12.5 5h-125q-51 0 -82 23.5t-49 65.5q-39 88 -39 300v475h-47q-8 -67 -24.5 -129.5t-46 -110.5t-73.5 -77t-105 -29h-110v-518h-167v1493h277q61 0 106 -29.5t75.5 -80.5t47.5 -119t23 -144h44v318h156v-318h160q45 27 109 27 q45 0 92 -15t102 -47v-272q-98 96 -185 96q-86 0 -86 -104q0 -43 16.5 -66t58.5 -34l28 -9q57 -18 95.5 -44t62 -65.5t34 -97t10.5 -138.5q0 -195 -55.5 -287t-170.5 -92zM263 797q49 0 75.5 54.5t26.5 154.5t-26.5 154t-75.5 54h-92v-417h92zM993 209q88 0 88 119 q0 25 -4.5 42.5t-13.5 29t-24 19t-36 13.5l-27 8q-52 15 -87.5 41.5t-58 68.5t-32.5 101t-10 140q0 23 0.5 40t2.5 33h-58v-475q0 -77 14 -105q12 -27 49 -28v57q31 -35 61 -57q83 -47 136 -47z" />
-<glyph unicode="&#x20a8;" d="M932 -29q-36 0 -66.5 5t-61.5 13q-11 3 -22.5 6t-22.5 7l1 -2h-229l-102 371q-16 58 -30 95t-31 58q-32 41 -85 41h-60v-565h-215v1493h328q163 0 240.5 -98t77.5 -309q0 -154 -39.5 -248.5t-120.5 -139.5q23 -9 43 -30.5t36 -50.5t34.5 -79.5t35.5 -113.5l32 -118 q54 -46 115.5 -71.5t123.5 -25.5q63 0 92 28.5t29 91.5q0 21 -4 37t-15 28.5t-31 21.5t-52 16l-35 8q-66 15 -112 42t-74.5 69.5t-41 101t-12.5 136.5q0 184 67 271t207 87q58 0 118.5 -15t132.5 -47v-272q-128 96 -238 96q-111 0 -111 -104q0 -43 21 -66t75 -34l35 -9 q73 -18 122.5 -44t80 -65.5t43.5 -97t13 -139.5q0 -195 -70.5 -287t-221.5 -92zM313 831q67 0 96.5 45t29.5 148q0 102 -29.5 146t-96.5 44h-90v-383h90z" />
-<glyph unicode="&#x20a9;" d="M104 854h-104v146h84l-15 118h-69v146h49l-30 229h207l30 -229h227l30 229h208l30 -229h228l30 229h205l-30 -229h49v-146h-68l-16 -118h84v-146h-104l-112 -854h-249l-114 854h-74l-114 -854h-248zM448 1000l16 118h-189l16 -118h157zM634 1000l-15 118h-5l-15 -118h35z M944 1000l15 118h-189l16 -118h158zM429 854h-118l59 -446zM924 854h-118l59 -446z" />
-<glyph unicode="&#x20aa;" d="M4 1493h431q218 0 324.5 -155t106.5 -472v-345h-191v345q0 93 -8.5 158t-32 106.5t-63.5 60.5t-103 19h-205l-2 -1238h-257v1521zM799 -28q-107 0 -187.5 37t-134.5 114t-81.5 195t-27.5 280v345h191v-345q0 -93 8.5 -158t32 -106.5t63.5 -60.5t103 -19h207v1239h258 v-1522z" />
-<glyph unicode="&#x20ab;" d="M637 -25q-95 0 -169 39.5t-126 114.5t-79 184.5t-27 249.5q0 142 28 251.5t80.5 184.5t127.5 113.5t169 38.5q98 0 168 -44t128 -142v290h-306v189h306v116h292v-116h146v-189h-146v-1251h-292v166q-47 -95 -119.5 -145t-180.5 -50zM732 215q48 0 86 23.5t64.5 68.5 t40.5 109t14 145t-14 145t-40.5 109t-64.5 68.5t-86 23.5t-85.5 -23.5t-63.5 -68.5t-40 -109t-14 -145t14 -145t40 -109t63.5 -68.5t85.5 -23.5zM477 -214h631v-188h-631v188z" />
-<glyph unicode="&#x20ac;" d="M779 -29q-234 0 -380 131q-147 132 -190 381h-203l84 187h96q-1 7 -1 14.5v15.5v2.5t-0.5 6t-0.5 13v23.5v23.5t0.5 13t0.5 5.5v3v15.5t1 15.5h-180l84 189h119q43 248 190 380q73 66 168 98t211 32q44 0 82.5 -4.5t75.5 -13.5q73 -18 141 -54v-328q-74 78 -144 114 q-71 36 -147 36q-57 0 -101 -18t-76 -47q-32 -30 -58 -78t-43 -117h442l-84 -189h-382q-1 -8 -1.5 -16.5t-0.5 -17.5q0 -5 -0.5 -12t-0.5 -33t0.5 -31t0.5 -8v-16.5t1 -16.5h316l-84 -187h-207q24 -126 96 -194q38 -35 82 -51.5t97 -16.5q79 0 150 36q70 36 144 114v-328 q-66 -36 -139 -54q-74 -18 -159 -18z" />
-<glyph unicode="&#x20ad;" d="M143 712h-93v152h93v629h277v-545l401 545h321l-461 -629h319v-152h-322l518 -712h-348l-428 588v-588h-277v712z" />
-<glyph unicode="&#x20ae;" d="M470 350l-100 -58l-44 77l144 83v168l-100 -58l-44 77l144 83v480h-466v291h1226v-291h-455v-258l99 57l44 -77l-143 -82v-168l99 57l44 -77l-143 -82v-572h-305v350z" />
-<glyph unicode="&#x20af;" d="M163 -29q-36 0 -64.5 17t-48.5 47.5t-30.5 73t-10.5 92.5q0 46 9 88t27 74.5t44.5 51.5t61.5 19q15 0 31.5 -4t30.5 -12q3 20 5 37.5t4 30.5l88 811q-4 -3 -8 -6.5t-8 -7.5q-8 -8 -15.5 -18.5t-14 -26.5t-13 -38t-12.5 -53l-108 65q14 79 41 141.5t63 101.5 q29 31 66.5 48t94.5 17q105 0 183 -59t130 -173q45 -97 65.5 -220.5t20.5 -257.5q0 -53 -3.5 -115t-11 -127t-19 -131.5t-28.5 -129.5q-18 -67 -42.5 -126t-56.5 -106q-37 -53 -78.5 -78.5t-85.5 -25.5q-30 0 -54.5 11t-47.5 30q-14 13 -24 23.5t-17 18.5l-32 37 q-3 -10 -6 -18.5t-7 -16.5q-41 -85 -119 -85zM467 181q24 0 44 16t37 45q32 55 57 152t38 218q5 51 8 99t3 94q0 93 -12.5 182t-40.5 159q-28 71 -67.5 113t-88.5 49l-91 -825q-6 -56 -11.5 -100.5t-10.5 -78.5l20 -27q21 -29 34.5 -45t27.5 -28q13 -11 25.5 -17t27.5 -6z M757 -414l83 720q18 157 47.5 257.5t69.5 154.5q41 55 91 55q41 0 77 -31t57 -88q17 -45 25 -105.5t8 -129.5q0 -67 -7.5 -127.5t-20 -111.5t-30 -91t-37.5 -66q-40 -52 -94 -52q-32 0 -54.5 23.5t-43.5 88.5l-61 -540zM1018 149q16 0 32.5 17t30.5 52q13 33 21 82.5 t8 113.5q0 80 -14 122q-8 24 -18.5 33.5t-21.5 9.5q-23 0 -41.5 -31.5t-29.5 -74.5q-9 -34 -15 -80t-6 -92q0 -30 3 -57.5t9.5 -48.5t17 -33.5t24.5 -12.5zM150 154q11 0 17.5 14.5t12.5 49.5q-17 30 -35 30q-14 0 -21 -14t-7 -31q0 -23 10.5 -36t22.5 -13z" />
-<glyph unicode="&#x20b0;" d="M723 198q112 0 168.5 55t56.5 154q0 48 -14.5 85.5t-48.5 73.5q-55 -61 -119 -88.5t-128 -27.5q-33 0 -60 7t-50 20.5t-43 32.5t-39 44q-10 13 -21.5 27t-24 26t-25.5 19.5t-25 7.5q-25 0 -57 -34.5t-77 -109.5l-191 132q39 67 76 118t74.5 84.5t77 50.5t83.5 17 q43 0 85.5 -16.5t79.5 -51.5q32 -31 54 -51.5t37.5 -33t26 -18t20.5 -5.5q11 0 28 6.5t28 20.5q-93 90 -138.5 194t-45.5 232q0 167 77.5 259t238.5 92q155 0 237 -89t82 -276q0 -98 -23.5 -199.5t-74.5 -189.5q41 -43 71.5 -85t50 -86.5t29 -92.5t9.5 -102 q0 -105 -34.5 -185.5t-97.5 -134.5t-152.5 -81.5t-200.5 -27.5v227zM849 925q26 54 38.5 114.5t12.5 117.5q0 81 -23 130t-57 49q-18 0 -32.5 -14.5t-24 -38.5t-15 -55t-5.5 -65q0 -150 106 -238z" />
-<glyph unicode="&#x20b1;" d="M162 884h-102v103h102v80h-102v103h102v323h405q152 0 264 -27t181 -83q45 -36 76 -89.5t45 -123.5h99v-103h-86q1 -40 0 -80h86v-103h-98q-30 -140 -122 -215q-69 -57 -182.5 -83.5t-262.5 -26.5h-110v-559h-295v884zM805 1170q-5 8 -10.5 14.5t-12.5 11.5 q-58 49 -204 49h-121v-75h348zM838 987q4 40 0 80h-381v-80h381zM578 807q69 0 122 11.5t82 37.5q14 12 24 28h-349v-77h121z" />
-<glyph unicode="&#x20b2;" d="M583 -22q-112 15 -210.5 69.5t-171.5 150t-115 232t-42 316.5q0 179 42 315t115 230.5t171 149t211 71.5v144h162v-137q94 -4 191 -29.5t194 -80.5v-248q-98 63 -189.5 96t-195.5 34v-1090q17 1 35 2.5t38 4.5q41 7 75 24t62 43v321h-117v208h335v-693 q-115 -70 -222 -101t-206 -37v-138h-162v143zM583 1265q-91 -34 -154 -115q-109 -142 -109 -405q0 -134 27 -234t78 -169q63 -84 158 -119v1042z" />
-<glyph unicode="&#x20b3;" d="M128 357h-70v195h126l43 149h-169v195h225l173 597h319l173 -597h225v-195h-168l43 -149h125v-195h-69l104 -357h-293l-103 357h-392l-104 -357h-292zM656 896l-40 138l-40 -138h80zM755 552l-43 149h-193l-43 -149h279z" />
-<glyph unicode="&#x20b4;" d="M655 -29q-257 0 -391.5 111.5t-134.5 337.5v18h-129v194h174q10 17 16.5 27.5t11 17t7 10.5t5.5 8q35 47 97.5 90.5t143.5 75.5h-455v194h811q10 24 10 56q0 80 -56.5 122.5t-164.5 42.5q-97 0 -194 -35t-193 -102v288q102 46 204.5 69.5t204.5 23.5q114 0 204.5 -30 t153.5 -86t96.5 -136.5t33.5 -182.5v-15t-1 -15h124v-194h-181q-2 -3 -9 -12t-12 -15q-39 -45 -111 -89.5t-191 -89.5l-61 -23h565v-194h-802q-3 -17 -3 -36q0 -89 59.5 -138t174.5 -49q105 0 216 42t226 124v-305q-115 -57 -224 -81t-225 -24z" />
-<glyph unicode="&#x20b5;" d="M712 -27q-68 5 -144 23t-150 53.5t-141.5 89t-118.5 129.5t-81.5 175.5t-30.5 226.5q0 123 28.5 221t77.5 174t114.5 131.5t139.5 92.5t152.5 56t153.5 24v187h162v-191q29 -4 57.5 -9t56.5 -13q51 -14 102 -35.5t96 -47.5v-309q-81 78 -160.5 112.5t-151.5 41.5v-869 q72 7 150 41.5t163 113.5v-309q-48 -28 -97.5 -48.5t-101.5 -34.5q-28 -8 -56.5 -13t-57.5 -9v-278h-162v274zM712 1095q-26 -7 -52.5 -18.5t-53.5 -29.5q-85 -57 -130 -153.5t-45 -216.5q0 -126 47.5 -226t131.5 -158q27 -19 53 -30t49 -17v849z" />
-<glyph unicode="&#x20b7;" d="M822 1278q-126 0 -199 -56q-35 -27 -54.5 -63.5t-19.5 -71.5q0 -50 45.5 -93.5t138.5 -83.5l7 -3l116 -51q147 -65 214 -156t67 -227q0 -111 -40.5 -204t-119.5 -161q-135 -114 -352 -134l-19 -176h-135l18 174q-39 3 -98 11l-21 -185h-135l26 213q-61 18 -94 31 l-32 -244h-135l122 712h109l-1 -65q23 39 57 60t74 21q38 0 62.5 -21t29.5 -58q17 36 53.5 57.5t78.5 21.5q53 0 84 -32t31 -91l-2 -29l-1 -20l-5 -35l-7 -35l-10 -53q78 23 120.5 74.5t42.5 123.5q0 66 -34.5 110.5t-104.5 74.5l-119 50q-102 43 -162 79.5t-92 76.5 q-31 38 -46.5 86t-15.5 115q0 111 42 202t119 158q79 67 186 103t233 36q105 0 199.5 -20t189.5 -62l-57 -285q-68 62 -158 93.5t-196 31.5zM284 402q-22 0 -35 -15t-22 -46l-6 -22q42 -27 90 -49l3 14l4 20q5 25 5 39q1 3 1 12q0 47 -40 47zM462 340q-5 -17 -13 -56 l-11 -57q48 -10 98 -12l13 69q10 41 10 73q0 45 -39 45q-23 0 -36 -15.5t-22 -46.5z" />
-<glyph unicode="&#x20b8;" d="M90 1493h1053v-258h-1053v258zM469 857h-379v258h1053v-258h-379v-857h-295v857z" />
-<glyph unicode="&#x20b9;" d="M496 421q-42 88 -87.5 128.5t-98.5 40.5h-166v248h211q63 0 105 16t68 46q15 17 25 36.5t15 36.5h-465l88 195h377q-14 43 -39 71q-53 59 -174 59h-252l88 195h955l-86 -195h-224q30 -55 42 -130h268l-86 -195h-181q-8 -48 -26.5 -92.5t-52.5 -80.5t-84.5 -61t-120.5 -34 q22 -5 40 -13.5t36 -27t37 -49t43 -78.5l270 -537h-324z" />
-<glyph unicode="&#x2116;" d="M9 0v1493h224l178 -820v820h205v-1493h-224l-178 779v-779h-205zM1130 737q-33 -57 -77.5 -92t-99.5 -35q-57 0 -99.5 34.5t-77.5 91.5q-31 51 -48.5 133.5t-17.5 180.5q0 95 17 177t49 138q75 127 177 127q56 0 100 -34.5t77 -93.5q32 -55 49 -137t17 -177t-17 -176.5 t-49 -136.5zM863 1048q0 -62 13 -114.5t34.5 -83.5t47.5 -31t47.5 31t34.5 83.5t13 114.5t-13 114.5t-34.5 83.5t-47.5 31t-47.5 -31t-34.5 -83.5t-13 -114.5zM731 331v173h441v-173h-441z" />
-<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
-<glyph unicode="&#x2126;" d="M90 211h238q-58 52 -101 111.5t-71 128.5t-42 149.5t-14 176.5q0 159 36.5 285.5t103.5 215t162 135.5t213 47t214 -47t163.5 -135.5t104 -215t36.5 -285.5q0 -96 -14 -177t-42.5 -150t-71 -128t-100.5 -111h238v-211h-471v268q81 79 120 196t39 287q0 105 -14.5 187.5 t-42 139t-67.5 86.5t-91 30t-91 -30t-67.5 -86.5t-42 -138.5t-14.5 -187q0 -162 37.5 -282t124.5 -202v-268h-473v211z" />
-<glyph unicode="&#x2150;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM912 420h-427v145h646v-117l-346 -718h-206z" />
-<glyph unicode="&#x2151;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM740 -285q-51 0 -100 7.5t-109 25.5v151q51 -24 101.5 -37.5t101.5 -13.5q107 0 163.5 61t59.5 177q-33 -36 -83 -54.5t-119 -18.5q-138 0 -212.5 71t-74.5 205 q0 141 83.5 217t244.5 76q175 0 262.5 -100t87.5 -316q0 -232 -101 -341.5t-305 -109.5zM796 153q66 0 100 38.5t34 112.5t-34 113t-100 39t-101 -39t-35 -112t35 -112.5t101 -39.5z" />
-<glyph unicode="&#x2153;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM786 -285q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5 t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
-<glyph unicode="&#x2154;" d="M16 965q38 32 61.5 51.5t38.5 32t23.5 20t17.5 14.5q161 133 237.5 218t76.5 133q0 17 -10 35t-30 33t-51 24.5t-73 9.5q-55 0 -121.5 -17.5t-144.5 -51.5v164q75 22 145.5 33.5t139.5 11.5q87 0 153 -18t110.5 -48t67.5 -69.5t23 -82.5t-22.5 -88.5t-67 -96.5t-111 -110 t-154.5 -129l-83 -65h440v-145h-666v141zM47 618l1059 263l37 -119l-1059 -262zM786 -285q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25 q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
-<glyph unicode="&#x2155;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465 h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
-<glyph unicode="&#x2156;" d="M16 965q38 32 61.5 51.5t38.5 32t23.5 20t17.5 14.5q161 133 237.5 218t76.5 133q0 17 -10 35t-30 33t-51 24.5t-73 9.5q-55 0 -121.5 -17.5t-144.5 -51.5v164q75 22 145.5 33.5t139.5 11.5q87 0 153 -18t110.5 -48t67.5 -69.5t23 -82.5t-22.5 -88.5t-67 -96.5t-111 -110 t-154.5 -129l-83 -65h440v-145h-666v141zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154 q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
-<glyph unicode="&#x2157;" d="M327 809q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5 q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
-<glyph unicode="&#x2158;" d="M381 1004h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM381 1147v330l-250 -330h250zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5 q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
-<glyph unicode="&#x2159;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM838 -286q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178 q64 73 200 73q139 0 214 -71.5t75 -205.5q0 -140 -83.5 -216.5t-244.5 -76.5zM838 -153q66 0 101 39t35 112q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
-<glyph unicode="&#x215a;" d="M299 809q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5zM47 618l1059 263l37 -119l-1059 -262zM838 -286q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178q64 73 200 73q139 0 214 -71.5t75 -205.5 q0 -140 -83.5 -216.5t-244.5 -76.5zM838 -153q66 0 101 39t35 112q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
-<glyph unicode="&#x215b;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45 t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38 q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
-<glyph unicode="&#x215c;" d="M327 809q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5 q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5 q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
-<glyph unicode="&#x215d;" d="M299 809q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92 q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34 q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
-<glyph unicode="&#x215e;" d="M453 1514h-427v145h646v-117l-346 -718h-206zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92 q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34 q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
-<glyph unicode="&#x215f;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262z" />
-<glyph unicode="&#x2189;" d="M357 809q-337 0 -337 434q0 433 337 433q339 0 339 -433q0 -434 -339 -434zM358 949q71 0 102 70q32 70 32 223q0 152 -32 224q-31 70 -102 70q-39 0 -63 -19t-39 -51q-33 -71 -33 -224q0 -151 33 -223q15 -32 39 -51t63 -19zM358 1172q-19 0 -34.5 5.5t-26.5 14.5 q-24 19 -24 49q0 31 24.5 51.5t59.5 20.5t60.5 -20.5t25.5 -50.5q0 -29 -24.5 -49.5t-60.5 -20.5zM47 618l1059 263l37 -119l-1059 -262zM786 -285q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111 v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
-<glyph unicode="&#x2190;" d="M66 490v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x2191;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
-<glyph unicode="&#x2192;" d="M756 319l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x2193;" d="M254 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x2194;" d="M66 490v142l291 291l120 -120l-130 -130h539l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-539l130 -130l-120 -120z" />
-<glyph unicode="&#x2195;" d="M254 291l120 120l130 -130v539l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-539l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x2196;" d="M341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
-<glyph unicode="&#x2197;" d="M164 136l572 572h-187v187h412l118 -118v-412h-187v187l-572 -572z" />
-<glyph unicode="&#x2198;" d="M548 156h187l-572 572l156 156l572 -572v187h187v-412l-118 -118h-412v187z" />
-<glyph unicode="&#x2199;" d="M154 88v412h187v-187l572 572l156 -156l-572 -572h187v-187h-412z" />
-<glyph unicode="&#x219a;" d="M66 490v142l291 291l120 -120l-130 -130h393l148 240l202 -112l-79 -128h156v-224h-273l-147 -240l-202 112l79 128h-277l130 -130l-120 -120z" />
-<glyph unicode="&#x219b;" d="M756 319l130 130h-393l-148 -240l-202 112l79 128h-156v224h273l147 240l202 -112l-79 -128h277l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x219c;" d="M60 777l118 118h412v-187h-187q-10 -35 7.5 -56.5t51.5 -40.5q24 -15 47 -15q17 0 34.5 8.5t31 18.5t22.5 19t9 10q17 26 23.5 38t10.5 20q13 28 26.5 47.5t31 35.5t41 31.5t56.5 36.5q16 10 40 16t51.5 7t55.5 -3.5t51 -16.5q14 -7 38 -24t49.5 -42t47.5 -58t31 -72 l-142 -88q-5 10 -9.5 21t-12 22t-18.5 22t-29 20q-11 6 -24 10t-28 4q-27 0 -57.5 -14.5t-45.5 -47.5q-35 -69 -41 -75q-2 -3 -12.5 -20.5t-28.5 -40.5t-43.5 -47.5t-56.5 -40.5q-24 -13 -49 -18.5t-51 -5.5q-57 0 -102 24t-83 68l-79 91v-187h-187v412z" />
-<glyph unicode="&#x219d;" d="M986 552l-79 -91q-39 -45 -84.5 -68.5t-96.5 -23.5q-30 0 -58.5 7.5t-53.5 20t-45 29t-32 33.5q-3 4 -11.5 17t-17.5 27t-17 25.5t-10 13.5q-11 16 -19.5 31t-21.5 44q-16 33 -45.5 47.5t-54.5 14.5q-31 0 -60.5 -17t-41.5 -38q-5 -8 -10.5 -19t-11.5 -25l-142 88 q9 39 30.5 71.5t47 58t50 42.5t38.5 24q23 12 51 16.5t55.5 3.5t51.5 -7t40 -16q29 -18 50 -31.5t38 -29.5t32.5 -36.5t34.5 -52.5t25 -43t9 -16q1 -3 10 -12t22.5 -19t30 -17.5t32.5 -7.5q13 0 27.5 5t28.5 13t26 18t20 21q6 8 9.5 20t-3.5 35h-187v187h412l118 -118v-412 h-187v187z" />
-<glyph unicode="&#x219e;" d="M66 490v142l291 291l120 -120l-130 -130h90l250 250l120 -120l-130 -130h490v-224h-490l130 -130l-120 -120l-250 250h-90l130 -130l-120 -120z" />
-<glyph unicode="&#x219f;" d="M504 490l-130 -130l-120 120l250 250v90l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-90l250 -250l-120 -120l-130 130v-490h-224v490z" />
-<glyph unicode="&#x21a0;" d="M426 319l130 130h-490v224h490l-130 130l120 120l250 -250h90l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-90l-250 -250z" />
-<glyph unicode="&#x21a1;" d="M254 291l120 120l130 -130v90l-250 250l120 120l130 -130v490h224v-490l130 130l120 -120l-250 -250v-90l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21a2;" d="M66 490v142l291 291l120 -120l-130 -130h450l250 250l120 -120l-242 -242l242 -242l-119 -120l-251 250h-450l130 -130l-120 -120z" />
-<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l120 120l250 -250h450l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-450l-251 -250z" />
-<glyph unicode="&#x21a4;" d="M66 490v142l291 291l120 -120l-130 -130h626v250h194v-724h-194v250h-626l130 -130l-120 -120z" />
-<glyph unicode="&#x21a5;" d="M254 194h250v626l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-626h250v-194h-724v194z" />
-<glyph unicode="&#x21a6;" d="M66 923h194v-250h626l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-626v-250h-194v724z" />
-<glyph unicode="&#x21a7;" d="M254 291l120 120l130 -130v626h-250v194h724v-194h-250v-626l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21a8;" d="M254 194h292l-292 291l120 120l130 -130v345l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-345l130 130l120 -120l-290 -291h290v-194h-724v194z" />
-<glyph unicode="&#x21a9;" d="M66 490v142l291 291l120 -120l-130 -130h524q12 0 26 5t25 16q12 11 16.5 25t4.5 26q0 14 -5 27.5t-16 23.5q-9 9 -22.5 15.5t-28.5 6.5v224q65 0 118 -24t91 -62q46 -46 66.5 -100t20.5 -110q0 -63 -23 -117t-64 -95q-34 -34 -86.5 -59.5t-122.5 -25.5h-524l130 -130 l-120 -120z" />
-<glyph unicode="&#x21aa;" d="M756 319l130 130h-524q-70 0 -122.5 25.5t-86.5 59.5q-41 41 -64 95t-23 117q0 56 20.5 110t66.5 100q38 38 91 62t118 24v-224q-15 0 -28.5 -6.5t-22.5 -15.5q-11 -10 -16 -23.5t-5 -27.5q0 -12 4.5 -26t16.5 -25q11 -11 25 -16t26 -5h524l-130 130l120 120l291 -291 v-142l-291 -291z" />
-<glyph unicode="&#x21ab;" d="M66 490v142l291 291l120 -120l-130 -130h228v72q0 62 22.5 115.5t64.5 95.5t94 64t114 22q65 0 118 -23.5t92 -62.5q46 -46 66.5 -101t20.5 -110q0 -60 -22 -114t-64 -96q-37 -38 -90 -62t-120 -24h-71v-224h-225v224h-228l130 -130l-120 -120zM871 673q11 0 25.5 5 t25.5 16t16 24.5t5 28.5q0 29 -21 49q-10 9 -23 15.5t-27 6.5t-28.5 -6t-23.5 -15q-13 -12 -16.5 -27t-3.5 -25v-72h71z" />
-<glyph unicode="&#x21ac;" d="M756 319l130 130h-228v-224h-225v224h-71q-63 0 -115.5 22t-93.5 63q-38 38 -62.5 92t-24.5 119q0 55 20.5 110t66.5 101q39 39 92 62.5t118 23.5q62 0 114 -22t94 -64t64.5 -95.5t22.5 -115.5v-72h228l-130 130l120 120l291 -291v-142l-291 -291zM433 673v72 q0 10 -3.5 25t-16.5 27q-9 9 -23.5 15t-28.5 6t-27 -6.5t-23 -15.5q-21 -20 -21 -49q0 -15 5 -28.5t16 -24.5t25.5 -16t25.5 -5h71z" />
-<glyph unicode="&#x21ad;" d="M66 490v142l291 291l120 -120l-130 -130q17 -13 30 -28q18 -18 37 -18q11 0 19.5 5t16.5 13q9 12 11 20q13 37 38 66t53 43q30 15 65 15q68 0 118 -59q15 -18 22.5 -33t14.5 -32q5 -13 12 -20.5t16 -12.5q10 -5 20 -5q11 0 19.5 5t16.5 13l15.5 15.5t14.5 12.5l-130 130 l120 120l291 -291v-142l-291 -291l-120 120l130 130q-11 -7 -28 -10t-34 -3q-38 0 -67 15t-55 44q-17 20 -24.5 34.5t-13.5 30.5q-3 8 -8.5 17t-19.5 16q-10 5 -19 5q-19 0 -37 -18q-3 -3 -5.5 -7t-5.5 -13q-9 -32 -35 -62.5t-56 -46.5q-15 -8 -30.5 -11.5t-37.5 -3.5 q-19 0 -36 3t-27 10l130 -130l-120 -120z" />
-<glyph unicode="&#x21ae;" d="M464 217l49 232h-166l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h195l56 270l171 -39l-49 -231h166l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-195l-56 -271z" />
-<glyph unicode="&#x21af;" d="M674 19l-238 335l138 99l107 -150l110 629l-734 -432l171 933l221 -37l-91 -493l724 420l-181 -1058l150 107l99 -139l-336 -238z" />
-<glyph unicode="&#x21b0;" d="M856 937h-392l130 -130l-120 -120l-290 291v142l290 291l120 -120l-130 -130h616v-1161h-224v937z" />
-<glyph unicode="&#x21b1;" d="M154 1161h614l-130 130l120 120l292 -291v-142l-292 -291l-120 120l130 130h-390v-937h-224v1161z" />
-<glyph unicode="&#x21b2;" d="M184 261v142l290 291l120 -120l-130 -130h392v937h224v-1161h-616l130 -130l-120 -120z" />
-<glyph unicode="&#x21b3;" d="M638 90l130 130h-614v1161h224v-937h390l-130 130l120 120l292 -291v-142l-292 -291z" />
-<glyph unicode="&#x21b4;" d="M353 291l120 120l130 -130v631h-417v224h641v-855l130 130l120 -120l-291 -291h-142z" />
-<glyph unicode="&#x21b5;" d="M64 261v142l290 291l120 -120l-130 -130h632v417h224v-641h-856l130 -130l-120 -120z" />
-<glyph unicode="&#x21b6;" d="M50 635l120 120l130 -130v33q0 12 8.5 40.5t25 64t41.5 74.5t58 73q61 63 139.5 95t169.5 32t169 -32t141 -95q60 -60 95.5 -140t35.5 -174h-214q0 94 -66 162q-31 32 -68.5 49t-85.5 17q-45 0 -87 -15.5t-75 -49.5t-48 -72.5t-15 -61.5l130 130l120 -120l-291 -291h-142 z" />
-<glyph unicode="&#x21b7;" d="M459 635l120 120l130 -130q0 23 -14 60.5t-49 72.5q-31 32 -69.5 48.5t-89.5 17.5t-88.5 -16.5t-68.5 -49.5q-66 -68 -66 -162h-214q0 94 35.5 174t95.5 140q63 63 141 95t169 32t169.5 -32t139.5 -95q33 -34 58 -73t41.5 -74.5t25 -64t8.5 -40.5v-33l130 130l120 -120 l-291 -291h-142z" />
-<glyph unicode="&#x21b8;" d="M50 1110h1132v-140h-1132v140zM341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
-<glyph unicode="&#x21b9;" d="M66 1298h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724zM592 90l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
-<glyph unicode="&#x21ba;" d="M593 -39q-111 0 -207 41t-172 116q-79 78 -119 175t-40 209q0 108 38.5 201.5t120.5 178.5l171 -149q-46 -45 -68.5 -102t-22.5 -118q0 -66 24 -122t66 -98q39 -40 93 -65t124 -25q125 0 215 90q49 49 69.5 105.5t20.5 120.5q0 38 -6 69t-17 44l-48 72v-187h-187v412 l118 118h412v-187h-187q19 0 43.5 -35t46 -89t36 -120t14.5 -128q0 -99 -40.5 -195.5t-118.5 -174.5q-72 -72 -168 -114.5t-211 -42.5z" />
-<glyph unicode="&#x21bb;" d="M640 -39q-115 0 -211 42.5t-168 114.5q-78 78 -118.5 175t-40.5 195q0 61 14.5 127t36 120.5t45.5 89.5t44 35h-187v187h412l118 -118v-412h-187v187l-48 -72q-11 -13 -17 -44t-6 -69q0 -64 20.5 -120.5t69.5 -105.5q90 -90 215 -90q70 0 124 25t93 65q42 42 66 98 t24 122q0 61 -22.5 118t-68.5 102l171 149q82 -85 120.5 -178.5t38.5 -201.5q0 -112 -40 -209t-119 -175q-76 -75 -172 -116t-207 -41z" />
-<glyph unicode="&#x21bc;" d="M66 632l291 291l120 -120l-130 -130h820v-224h-1101v183z" />
-<glyph unicode="&#x21bd;" d="M66 490v183h1101v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21be;" d="M504 1101h184l290 -291l-120 -120l-130 130v-820h-224v1101z" />
-<glyph unicode="&#x21bf;" d="M504 820l-130 -130l-120 120l292 291h182v-1101h-224v820z" />
-<glyph unicode="&#x21c0;" d="M66 673h820l-130 130l120 120l291 -291v-183h-1101v224z" />
-<glyph unicode="&#x21c1;" d="M756 319l130 130h-820v224h1101v-183l-291 -291z" />
-<glyph unicode="&#x21c2;" d="M504 1101h224v-820l130 130l120 -120l-290 -291h-184v1101z" />
-<glyph unicode="&#x21c3;" d="M254 291l120 120l130 -130v820h224v-1101h-182z" />
-<glyph unicode="&#x21c4;" d="M756 574l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291zM66 261v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21c5;" d="M262 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820zM496 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21c6;" d="M66 745v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120zM756 90l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21c7;" d="M66 261v142l171 171l-171 171v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-130 -130h820v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21c8;" d="M262 820l-130 -130l-120 120l292 291h142l171 -171l171 171h142l290 -291l-120 -120l-130 130v-820h-224v820l-130 -130l-130 130v-820h-224v820z" />
-<glyph unicode="&#x21c9;" d="M756 90l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-291 -291z" />
-<glyph unicode="&#x21ca;" d="M12 291l120 120l130 -130v820h224v-820l131 130l129 -130v820h224v-820l130 130l120 -120l-290 -291h-142l-172 171l-170 -171h-142z" />
-<glyph unicode="&#x21cb;" d="M66 887l291 291l120 -120l-130 -130h820v-224h-1101v183zM756 90l130 130h-820v224h1101v-183l-291 -291z" />
-<glyph unicode="&#x21cc;" d="M66 928h820l-130 130l120 120l291 -291v-183h-1101v224zM66 261v183h1101v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21cd;" d="M66 490v142l291 291l120 -120l-68 -68h379l86 158l97 -59l-54 -99h250v-102h-312l-80 -144h392v-102h-443l-86 -156l-96 58l54 98h-187l68 -68l-120 -120zM649 489l78 144h-420l-72 -72l72 -72h342z" />
-<glyph unicode="&#x21ce;" d="M66 490v142l291 291l120 -120l-68 -68h129v188h157v-188h129l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-129v-188h-157v188h-129l68 -68l-120 -120zM538 489v144h-231l-72 -72l72 -72h231zM926 489l72 72l-72 72h-231v-144h231z" />
-<glyph unicode="&#x21cf;" d="M756 319l68 68h-379l-86 -158l-97 59l54 99h-250v102h312l80 144h-392v102h443l86 156l96 -58l-54 -98h187l-68 68l120 120l291 -291v-142l-291 -291zM926 489l72 72l-72 72h-342l-78 -144h420z" />
-<glyph unicode="&#x21d0;" d="M66 490v142l291 291l120 -120l-68 -68h758v-102h-860l-72 -72l72 -72h860v-102h-758l68 -68l-120 -120z" />
-<glyph unicode="&#x21d1;" d="M442 758l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-758h-102l1 860l-73 72l-72 -72v-860h-102v758z" />
-<glyph unicode="&#x21d2;" d="M756 319l68 68h-758v102h860l72 72l-72 72h-860v102h758l-68 68l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21d3;" d="M254 291l120 120l68 -68v758h102v-860l72 -72l73 72l-1 860h102v-758l68 68l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21d4;" d="M66 490v142l291 291l120 -120l-68 -68h415l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-415l68 -68l-120 -120zM926 489l72 72l-72 72h-619l-72 -72l72 -72h619z" />
-<glyph unicode="&#x21d5;" d="M254 291l120 120l68 -68v415l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-415l68 68l120 -120l-290 -291h-142zM689 241v619l-73 72l-72 -72v-619l72 -72z" />
-<glyph unicode="&#x21d6;" d="M312 477v-112h-187v412l118 118h412v-187h-110l533 -534l-74 -74l-606 608h-86v-86l608 -606l-74 -74z" />
-<glyph unicode="&#x21d7;" d="M313 16l608 606v86h-86l-606 -608l-74 74l533 534h-110v187h412l118 -118v-412h-187v112l-534 -535z" />
-<glyph unicode="&#x21d8;" d="M578 157h112l-535 534l74 74l606 -608h86v86l-608 606l74 74l534 -533v110h187v-412l-118 -118h-412v187z" />
-<glyph unicode="&#x21d9;" d="M125 88v412h187v-110l534 533l74 -74l-608 -606v-86h86l606 608l74 -74l-535 -534h112v-187h-412z" />
-<glyph unicode="&#x21da;" d="M66 490v142l291 291l120 -120h690v-102h-792l-89 -89h881v-102h-881l89 -89h792v-102h-690l-120 -120z" />
-<glyph unicode="&#x21db;" d="M756 319h-690v102h792l89 89h-881v102h881l-89 89h-792v102h690l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21dc;" d="M66 490v142l291 291l120 -120l-130 -130h172l75 -80l194 206l193 -206l76 80h110v-224h-68l-118 -126l-193 218l-194 -218l-118 126h-129l130 -130l-120 -120z" />
-<glyph unicode="&#x21dd;" d="M756 319l130 130h-129l-118 -126l-194 218l-193 -218l-118 126h-68v224h110l76 -80l193 206l194 -206l75 80h172l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21e0;" d="M66 490v142l291 291l120 -120l-130 -130h198v-224h-198l130 -130l-120 -120zM670 673h187v-224h-187v224zM980 673h187v-224h-187v224z" />
-<glyph unicode="&#x21e1;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130l1 -198h-225v198zM505 497h223l1 -187h-225zM505 187h223v-187h-224z" />
-<glyph unicode="&#x21e2;" d="M756 319l130 130h-198v224h198l-130 130l120 120l291 -291v-142l-291 -291zM66 673h187v-224h-187v224zM376 673h187v-224h-187v224z" />
-<glyph unicode="&#x21e3;" d="M504 1101h224v-187h-223zM504 791h224v-187h-223zM254 291l120 120l130 -130v198h224v-198l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21e4;" d="M66 923h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724z" />
-<glyph unicode="&#x21e5;" d="M592 319l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
-<glyph unicode="&#x21e6;" d="M5 561l403 423v-231h759v-384h-759v-231zM309 469h768v184h-768v93l-164 -185l164 -185v93z" />
-<glyph unicode="&#x21e7;" d="M424 759h-230l422 403l424 -403h-232v-759h-384v759zM708 90v768h94l-186 164l-184 -164h92v-768h184z" />
-<glyph unicode="&#x21e8;" d="M824 369h-758v384h758v231l404 -423l-404 -423v231zM1088 561l-164 185v-93h-768v-184h768v-93z" />
-<glyph unicode="&#x21e9;" d="M194 403h230v759h384v-759h232l-424 -403zM802 304h-94v768h-184v-768h-92l184 -164z" />
-<glyph unicode="&#x21eb;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM920 90v100h-212v668h94l-186 184l-184 -184h92v-668h-210v-100h606z" />
-<glyph unicode="&#x21ec;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM802 858l-186 184l-184 -184h370zM920 90v100h-212v569h-184v-569h-210v-100h606z" />
-<glyph unicode="&#x21ed;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM582 90v917l-150 -149h92v-668h-210v-100h268zM920 90v110h-212v658h94l-150 149v-917h268z" />
-<glyph unicode="&#x21ee;" d="M424 539h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-539h-384v539zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM708 90v548h94l-186 164l-184 -164h92v-548h184z" />
-<glyph unicode="&#x21ef;" d="M224 280h200v259h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-259h202v-280h-786v280zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM920 90v100h-212v448h94l-186 164l-184 -164h92v-448h-210v-100h606z" />
-<glyph unicode="&#x21f0;" d="M825 374h-479v-201h-280v786h280v-201h479v231l403 -423l-403 -423v231zM256 263v211h668v-93l184 185l-184 185v-93h-668v211h-100v-606h100z" />
-<glyph unicode="&#x21f1;" d="M40 1124h1123v-103h-1020v-1021h-103v1124zM455 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
-<glyph unicode="&#x21f2;" d="M430 416h186l-572 572l156 156l572 -572v187h188v-412l-118 -118h-412v187zM64 103h1022v1020h102v-1123h-1124v103z" />
-<glyph unicode="&#x21f3;" d="M194 403h230v356h-230l422 403l424 -403h-232v-356h232l-424 -403zM802 304h-94v554h94l-186 164l-184 -164h92v-554h-92l184 -164z" />
-<glyph unicode="&#x21f4;" d="M756 319l130 130h-147q-10 -35 -33 -73.5t-60.5 -70.5t-89.5 -53.5t-119 -21.5q-65 0 -114.5 19.5t-85.5 51t-59 70.5t-34 78h-78v224h78q10 37 34 77t60.5 72t85.5 53t109 21q20 0 46 -3t55.5 -13t62 -27.5t65.5 -45.5q34 -29 51.5 -59t25.5 -75h147l-130 130l120 120 l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21f5;" d="M12 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142zM746 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
-<glyph unicode="&#x21f6;" d="M756 -165l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-171 -171l171 -171v-142l-291 -291z" />
-<glyph unicode="&#x21f7;" d="M66 490v142l291 291l120 -120l-130 -130h287v250h194v-250h339v-224h-339v-250h-194v250h-287l130 -130l-120 -120z" />
-<glyph unicode="&#x21f8;" d="M404 449h-338v224h338v250h194v-250h288l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-288v-250h-194v250z" />
-<glyph unicode="&#x21f9;" d="M514 449h-167l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h167v250h205v-250h167l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-167v-260h-205v260z" />
-<glyph unicode="&#x21fa;" d="M66 490v142l291 291l120 -120l-130 -130h217v250h194v-250h88v250h194v-250h127v-224h-127v-250h-194v250h-88v-250h-194v250h-217l130 -130l-120 -120z" />
-<glyph unicode="&#x21fb;" d="M193 449h-127v224h127v250h194v-250h87v250h194v-250h218l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-218v-250h-194v250h-87v-250h-194v250z" />
-<glyph unicode="&#x21fc;" d="M66 490v142l291 291l120 -120l-130 -130h145v263h106v-263h37v263h106v-263h145l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-145v-250h-106v250h-37v-250h-106v250h-145l130 -130l-120 -120z" />
-<glyph unicode="&#x21fd;" d="M5 561l403 423v-311h759v-224h-759v-311zM309 746l-164 -185l164 -185v370z" />
-<glyph unicode="&#x21fe;" d="M825 449h-759v224h759v311l403 -423l-403 -423v311zM1088 561l-164 185v-370z" />
-<glyph unicode="&#x21ff;" d="M5 561l403 423v-311h417v311l403 -423l-403 -423v311h-417v-311zM309 746l-164 -185l164 -185v370zM1088 561l-164 185v-370z" />
-<glyph unicode="&#x2200;" d="M33 1493h295l90 -369h395l92 369h295l-403 -1493h-361zM756 881h-279l139 -611z" />
-<glyph unicode="&#x2201;" d="M639 -29q-148 0 -263 51.5t-193.5 150.5t-119 243t-40.5 329v1q0 185 40.5 329t119 243t193.5 150.5t263 51.5q149 0 262 -51t191 -150q80 -101 121 -248h-375q-5 20 -10.5 38t-12.5 34q-23 54 -68 84t-110 30q-124 0 -176 -114q-53 -117 -53 -395v-5q0 -78 3.5 -138.5 t10.5 -108t17 -83.5t23 -64q26 -55 67 -85t107 -30t111 30t68 84q8 17 13 36t10 36h375q-41 -147 -121 -248q-78 -99 -191 -150t-262 -51z" />
-<glyph unicode="&#x2202;" d="M538 -25q-90 0 -159 29.5t-123 85.5q-56 57 -83.5 129t-27.5 165q0 96 29 178.5t88 148.5q116 131 288 131q50 0 92.5 -10.5t76.5 -32.5q66 -43 112 -137q3 22 6.5 40t7 38.5t7.5 46.5t8 64q5 42 7.5 78t2.5 74q0 54 -6 93t-19 68q-14 30 -32 43.5t-38 13.5 q-30 0 -68 -22.5t-78 -50.5q-49 -34 -87 -53.5t-73 -19.5q-43 0 -71 30q-29 31 -29 71q0 32 20.5 62t65.5 58q43 26 94.5 40t111.5 14q103 0 180 -41t134 -120q59 -81 88 -188.5t29 -250.5q0 -160 -38 -299.5t-119 -254.5q-78 -109 -176.5 -165t-220.5 -56zM535 45 q48 0 91.5 32t77.5 101q33 68 49.5 153.5t16.5 175.5q0 61 -8.5 108.5t-29.5 80.5q-20 32 -48.5 47t-60.5 15q-54 0 -96 -35t-73 -98q-32 -66 -49.5 -151t-17.5 -179q0 -69 9.5 -115t28.5 -75q20 -30 48 -45t62 -15z" />
-<glyph unicode="&#x2203;" d="M163 251h624v380h-624v231h624v390h-624v241h928v-1493h-928v251z" />
-<glyph unicode="&#x2204;" d="M231 0h-68v251h147l104 380h-251v231h318l104 390h-422v241h471l26 95h192l-26 -95h265v-1493h-669l-26 -95h-191zM787 862v390l-114 -390h114zM787 251v380h-182l-104 -380h286z" />
-<glyph unicode="&#x2205;" d="M64 208l119 119q-20 26 -38.5 58t-33 71t-23 85.5t-8.5 100.5q0 224 157 381q159 159 381 159q55 0 101 -9t85 -23.5t71 -33.5t58 -39l119 119l119 -119l-119 -119q19 -26 37 -57.5t32.5 -70.5t23 -85t8.5 -101q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5 q-54 0 -100.5 9t-85 23t-70.5 32.5t-57 37.5l-119 -119zM810 953q-13 8 -26.5 15.5t-27.5 13.5q-65 27 -138 27q-79 0 -146 -30t-114 -77q-54 -54 -80 -121.5t-26 -139.5q0 -73 27 -137q5 -14 12.5 -27t15.5 -26zM617 278q149 0 257 108q107 107 107 257q0 75 -27 140 q-5 13 -11.5 25.5t-14.5 25.5l-502 -502q12 -8 26 -15t25 -12q29 -13 65.5 -20t74.5 -7z" />
-<glyph unicode="&#x2206;" d="M487 1423h258l496 -1423h-1247zM891 221l-275 821l-274 -821h549z" />
-<glyph unicode="&#x2207;" d="M-6 1423h1247l-496 -1423h-258zM891 1202h-549l274 -821z" />
-<glyph unicode="&#x2208;" d="M636 0q-73 0 -141 26.5t-128 76t-109.5 119.5t-85.5 158q-72 175 -72 380q0 105 18.5 202t53.5 182.5t84 156t111 121.5q123 102 269 102h497v-230h-497q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h796v-230h-796q4 -38 14.5 -83.5 t27.5 -92t42.5 -90.5t61.5 -80q71 -71 153 -71h497v-230h-497v0z" />
-<glyph unicode="&#x2209;" d="M239 -117l94 250q-50 48 -92.5 113.5t-73.5 145.5t-49 173t-18 196q0 104 18.5 201t53.5 182.5t84 156t111 121.5q123 102 269 102h218l74 197l215 -80l-43 -117h33v-230h-121l-156 -417h277v-230h-363l-156 -416q5 -1 11 -1h11h497v-230h-497q-33 0 -55.5 4t-48.5 10 q-44 11 -63.5 -40.5t-14.5 -170.5zM612 877l156 417h-132q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h275zM525 647h-188q10 -81 33 -150t54 -121z" />
-<glyph unicode="&#x220a;" d="M636 129q-73 0 -141.5 18t-128.5 51t-109.5 80.5t-85.5 106.5q-72 118 -72 255q0 71 19 137t54 123.5t84.5 105t110.5 81.5q124 68 269 68h498v-224h-498q-140 0 -234 -96q-17 -17 -34 -39.5t-27 -42.5h793v-222h-792q10 -20 25.5 -41t34.5 -41q95 -98 234 -98h498v-222 h-498v0z" />
-<glyph unicode="&#x220b;" d="M100 230h497q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-796v230h796q-5 38 -14.5 83.5t-27 92t-42.5 90.5t-61 80q-71 71 -154 71h-497v230h497q73 0 141 -26.5t128 -75.5t109.5 -119t85.5 -158q72 -176 72 -381q0 -105 -18.5 -202t-53.5 -182.5 t-84.5 -156t-110.5 -121.5q-123 -102 -269 -102h-497v230z" />
-<glyph unicode="&#x220c;" d="M100 -117l44 117h-34v230h120l157 417h-277v230h363l155 416q-5 1 -10.5 1h-10.5h-497v230h497q33 0 55.5 -4t47.5 -10q43 -11 63 40t16 171l215 -80l-94 -250q49 -48 92 -113.5t74 -145.5t49 -173t18 -196q0 -104 -18.5 -201t-53.5 -182.5t-84.5 -156t-110.5 -121.5 q-123 -102 -269 -102h-217l-75 -197zM906 877q-10 81 -33 150t-54 121l-101 -271h188zM607 230q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-274l-156 -417h131z" />
-<glyph unicode="&#x220d;" d="M99 353h498q75 0 130.5 25t102.5 71q42 42 62 82h-793v222h792q-11 20 -26.5 41t-34.5 41q-95 98 -233 98h-498v222h498q73 0 141.5 -17.5t128.5 -50.5t109.5 -80.5t85.5 -106.5q72 -119 72 -257q0 -70 -18.5 -135.5t-53.5 -123t-84.5 -105t-110.5 -81.5 q-125 -69 -270 -69h-498v224z" />
-<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
-<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-256v1747h-417v-1747h-256v1954z" />
-<glyph unicode="&#x2210;" d="M152 1518h256v-1747h417v1747h256v-1954h-929v1954z" />
-<glyph unicode="&#x2211;" d="M127 -301l494 870l-494 809v140h960v-213h-647l449 -736l-451 -794h666v-211h-977v135z" />
-<glyph unicode="&#x2212;" d="M66 762h1099v-238h-1099v238z" />
-<glyph unicode="&#x2213;" d="M88 1284h1057v-238h-1057v238zM498 354h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354z" />
-<glyph unicode="&#x2217;" d="M528 502l-331 -184l-76 141l332 174l-332 173l76 141l331 -182v344h172v-344l332 182l76 -141l-330 -173l330 -174l-76 -141l-332 184v-344h-172v344z" />
-<glyph unicode="&#x2218;" d="M613 372q-70 0 -130 25.5t-104.5 69.5t-70 104.5t-25.5 131.5t25.5 132t70.5 106t105.5 71t129.5 26q72 0 133 -27t106 -72q47 -48 71 -108t24 -126q0 -67 -25 -128t-71 -107q-48 -48 -109.5 -73t-129.5 -25zM614 534q36 0 67.5 13t54.5 36.5t36.5 54.5t13.5 67t-13 67 t-36 54t-54 36.5t-67 13.5t-67.5 -13.5t-54.5 -36.5t-36.5 -54.5t-13.5 -67.5t13 -67t36 -54t54 -36t67 -13z" />
-<glyph unicode="&#x221a;" d="M256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
-<glyph unicode="&#x221b;" d="M370 1043q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
-<glyph unicode="&#x221c;" d="M444 1238h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187zM444 1381v330l-250 -330h250z" />
-<glyph unicode="&#x221d;" d="M497 223q-69 0 -127.5 30t-101.5 85t-67 131.5t-24 169.5q0 89 22.5 162.5t64 126.5t100 82.5t130.5 29.5q91 0 163 -50t124 -159q45 108 114.5 158.5t160.5 50.5v-198q-16 0 -37 -13t-46 -42q-24 -28 -43.5 -64t-39.5 -94q14 -34 26 -59.5t22.5 -44.5t20.5 -32.5 t19 -24.5q40 -46 78 -46v-199q-75 0 -143 48.5t-132 156.5q-109 -205 -284 -205zM485 422q53 0 99 52t87 161q-54 125 -91 166t-86 41q-30 0 -54.5 -15.5t-42 -43.5t-27.5 -68t-10 -89q0 -46 9 -83.5t25 -64.5t39 -41.5t52 -14.5z" />
-<glyph unicode="&#x221e;" d="M331 223q-136 0 -228 116q-46 58 -68.5 130t-22.5 165q0 91 21.5 165t65.5 130q45 58 102.5 84.5t126.5 26.5q95 0 166 -52q73 -53 122 -157q46 108 115 158q70 51 170 51q146 0 233 -112q87 -113 87 -295q0 -92 -22.5 -164.5t-67.5 -130.5q-90 -115 -227 -115 q-89 0 -156 49t-132 156q-55 -103 -126 -154t-159 -51zM319 422q54 0 100 52q47 53 87 161q-54 125 -91 166q-20 22 -41.5 31.5t-44.5 9.5q-30 0 -54.5 -15.5t-41.5 -41.5q-18 -28 -28 -68t-10 -89q0 -43 8.5 -82t25.5 -68q33 -56 90 -56zM903 422q29 0 53.5 15t42.5 43 q19 29 28 68.5t9 86.5q0 45 -8 83t-25 67q-16 27 -39 42t-52 15q-55 0 -104 -55q-48 -54 -83 -158q28 -67 49 -104t39 -57q40 -46 90 -46z" />
-<glyph unicode="&#x221f;" d="M88 1306h238v-818h819v-238h-1057v1056z" />
-<glyph unicode="&#x2220;" d="M887 1306h238l-620 -818h640v-238h-1057z" />
-<glyph unicode="&#x2223;" d="M502 1565h227v-2048h-227v2048z" />
-<glyph unicode="&#x2227;" d="M436 1186h361l253 -1186h-298l-136 874l-136 -874h-298z" />
-<glyph unicode="&#x2228;" d="M182 1186h298l136 -874l136 874h298l-253 -1186h-361z" />
-<glyph unicode="&#x2229;" d="M182 602q0 154 25 264.5t78 181.5t135 104.5t196 33.5t196 -33.5t135 -104.5t78 -181.5t25 -264.5v-602h-251v676q0 117 -48 180t-135 63t-135 -63t-48 -180v-676h-251v602z" />
-<glyph unicode="&#x222a;" d="M616 0q-114 0 -196 33.5t-135 104.5t-78 181.5t-25 264.5v602h251v-676q0 -117 48 -180t135 -63t135 63t48 180v676h251v-602q0 -154 -25 -264.5t-78 -181.5t-135 -104.5t-196 -33.5z" />
-<glyph unicode="&#x222b;" d="M291 -373q-52 0 -92.5 13t-67.5 36q-26 21 -42.5 53.5t-16.5 74.5q0 60 39 98q38 37 99 37q55 0 91 -31q19 -17 26.5 -36t8.5 -36q2 -23 1 -40.5t5 -32.5q2 -5 7.5 -10t16.5 -5q28 0 48 40t33.5 119.5t22 199.5t15.5 280q0 10 1 34.5t2 55t2 63t2 59.5q10 255 38.5 435 t84.5 296q51 106 131 165t195 59q101 0 159 -49q27 -23 43 -55t16 -72q0 -33 -10.5 -58t-27.5 -41q-19 -18 -45 -27t-55 -9q-45 0 -76 24q-32 24 -42 69q-4 15 -4.5 26t-2.5 28q-2 15 -7 30.5t-22 15.5q-51 0 -80 -159t-40 -475q-1 -24 -1.5 -40t-1 -34t-1.5 -42t-2 -62 q-5 -136 -12 -247t-18 -196q-8 -61 -22.5 -125.5t-37.5 -125.5q-29 -79 -66.5 -134t-82.5 -92q-45 -38 -97 -57.5t-114 -19.5z" />
-<glyph unicode="&#x222c;" d="M242 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5 t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5zM765 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5 q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5z" />
-<glyph unicode="&#x222d;" d="M149 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-42.5 -103t-69 -66.5 t-93 -23.5zM522 -418q-42 0 -85.5 16.5t-104.5 58.5l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q45 0 90 -18.5t101 -56.5l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-43 -103 t-69.5 -66.5t-93 -23.5zM896 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132 t-42.5 -103t-69 -66.5t-93 -23.5z" />
-<glyph unicode="&#x2234;" d="M478 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM177 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM787 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2235;" d="M178 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM783 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM482 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2236;" d="M478 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM482 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2237;" d="M178 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM783 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM177 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM787 105 q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2238;" d="M480 902q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM66 762h1099v-238h-1099v238z" />
-<glyph unicode="&#x2239;" d="M880 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM74 760h746v-235h-746v235zM878 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x223a;" d="M78 870q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM883 870q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM66 762h1099v-238h-1099v238zM77 54q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30 h-273zM887 54q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x223b;" d="M481 912q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5 h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM480 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x223c;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x223d;" d="M381 468q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14z" />
-<glyph unicode="&#x2241;" d="M344 167l140 412q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l135 397l201 -68l-137 -406q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-137 -404z" />
-<glyph unicode="&#x2242;" d="M88 987h1057v-235h-1057v235zM850 254q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 108 -40t102 -14q72 0 140.5 30.5 t141.5 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
-<glyph unicode="&#x2243;" d="M850 672q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2244;" d="M194 112l103 183h-209v235h338l133 230q-29 13 -64 23t-75.5 13t-85.5 -3t-93 -24q-45 -17 -83 -42t-70 -54v226q42 36 84 59t82 36.5t77.5 18.5t70.5 5q26 0 49 -3t48 -9t52.5 -15.5t62.5 -22.5l13 -5l38 -18l201 360l144 -83l-183 -324q35 -9 76 -3t83.5 22.5t83 43 t75.5 59.5v-232q-29 -27 -67.5 -48.5t-92.5 -41.5q-36 -13 -67.5 -20t-63 -7t-65.5 6.5t-77 20.5l-94 -168h528v-235h-662l-150 -263z" />
-<glyph unicode="&#x2245;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x2246;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM239 30l20 30h-171v237h327l150 227h-477v236h634l96 147l176 -117l-19 -30h170v-236h-327l-150 -227h477v-237h-633l-97 -147z" />
-<glyph unicode="&#x2247;" d="M207 -54l47 114h-166v237h262l92 227h-354v236h450l85 210q-41 18 -74 29.5t-62 19t-54.5 10.5t-50.5 3q-79 0 -149 -29t-145 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q4 -2 11.5 -5l15 -6t14 -6t9.5 -4l106 259l218 -89l-78 -192 q30 8 55 19q32 14 68 38t74 57v-234q-75 -60 -145.5 -86.5t-146.5 -27.5l-61 -149h353v-236h-449l-93 -227h542v-237h-638l-82 -202z" />
-<glyph unicode="&#x2248;" d="M850 672q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29q-29 -12 -66.5 -34.5t-78.5 -57.5v229q40 31 78.5 53t72.5 35q36 14 76 20.5t77 6.5q52 0 107.5 -13.5t121.5 -41.5h1 l30 -14q117 -54 212 -54q71 0 139 30t142 95v-234q-75 -58 -146 -86q-33 -13 -69.5 -20.5t-79.5 -7.5zM850 254q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29 q-29 -12 -66.5 -34.5t-78.5 -57.5v229q77 61 151 88q37 14 76 20.5t76 6.5q53 0 108.5 -13.5t121.5 -41.5h1l31 -14q56 -26 108 -40t103 -14q38 0 71.5 8t67.5 23q39 17 72.5 39.5t69.5 54.5v-233q-74 -59 -146 -87q-33 -13 -69.5 -20.5t-79.5 -7.5z" />
-<glyph unicode="&#x2249;" d="M293 151l90 226q-183 -11 -295 -121v229q78 61 151 88t154 27q39 0 77 -7l70 173q-16 5 -29.5 9.5t-26.5 7.5q-22 5 -48.5 8.5t-54.5 3.5q-77 0 -147.5 -29t-145.5 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 109.5 -13.5t120.5 -40.5l102 256l219 -90l-93 -235h16 q72 0 139 29.5t142 95.5v-234q-75 -60 -146.5 -87t-146.5 -27q-25 0 -46 3t-44 8l-68 -169q90 -37 170 -37q70 0 139 30.5t142 94.5v-233q-72 -58 -144 -86.5t-149 -28.5q-52 0 -100.5 12.5t-106.5 38.5l-30 13l-103 -257z" />
-<glyph unicode="&#x224a;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5q-2 1 -12 5t-21 9q-33 14 -61.5 24.5t-55 18t-53.5 11.5t-58 4q-78 0 -148 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5q-2 1 -12 5t-21 9q-33 14 -61.5 24.5t-55 18t-53.5 11.5t-58 4q-78 0 -148 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40 t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x224b;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234q-69 -55 -141 -84.5 t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM850 25q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 107.5 -40t101.5 -14q72 0 141 30.5 t142 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
-<glyph unicode="&#x224c;" d="M381 909q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x224d;" d="M617 728q-200 0 -530 156v229q345 -155 530 -163q186 0 527 163v-229q-327 -156 -527 -156zM88 398q328 156 528 156t529 -156v-229q-344 155 -529 163q-186 0 -528 -163v229z" />
-<glyph unicode="&#x224e;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM615 20q-26 0 -62.5 10t-75 31.5t-75 54.5t-62.5 80q-16 28 -25.5 56t-9.5 45h-217v235h343q1 -27 7.5 -58.5t18.5 -62.5t29.5 -58.5t39.5 -46.5q17 -14 39.5 -24.5t51.5 -10.5q51 -1 92 34.5t69 110.5q11 28 17.5 57.5 t7.5 58.5h342v-235h-217q-14 -69 -48.5 -126t-107.5 -100q-40 -23 -82.5 -37t-74.5 -14z" />
-<glyph unicode="&#x224f;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2250;" d="M480 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2251;" d="M480 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM480 -166q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2252;" d="M118 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM842 -166q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2253;" d="M843 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM118 -166q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2254;" d="M111 708q-30 0 -30 30v262q0 30 30 30h176q30 0 30 -30v-262q0 -30 -30 -30h-176zM407 987h745v-235h-745v235zM111 253q-30 0 -30 30v261q0 30 30 30h176q30 0 30 -30v-261q0 -30 -30 -30h-176zM407 532h745v-237h-745v237z" />
-<glyph unicode="&#x2255;" d="M946 708q-30 0 -30 30v262q0 30 30 30h176q30 0 30 -30v-262q0 -30 -30 -30h-176zM81 987h745v-235h-745v235zM946 253q-30 0 -30 30v261q0 30 30 30h176q30 0 30 -30v-261q0 -30 -30 -30h-176zM81 532h745v-237h-745v237z" />
-<glyph unicode="&#x2256;" d="M88 532h256q-25 62 -25 110q0 51 27 110h-258v235h1057v-235h-256q14 -13 20 -42.5t6 -61.5q0 -28 -5.5 -53t-21.5 -63h257v-237h-1057v237zM693 532q26 24 38.5 54t12.5 60t-13 58t-39 48h-143q-52 -48 -52 -111q0 -61 51 -109h145z" />
-<glyph unicode="&#x2257;" d="M614 1082q-64 0 -119 22t-95 61t-63 92t-23 114q0 62 23.5 116.5t65 95t96.5 63t118 21.5q60 -1 114.5 -23.5t96.5 -61.5t67 -93t25 -117q0 -62 -24 -115t-65.5 -92t-97 -61t-119.5 -22zM617 1257q25 0 47.5 9t38.5 24.5t25.5 36.5t9.5 45t-9.5 45.5t-26 37.5t-39 25.5 t-47.5 9.5t-47 -9t-38 -25t-25.5 -37.5t-9.5 -45.5t9.5 -45.5t25.5 -37t38 -24.5t48 -9zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2258;" d="M182 1314q209 151 436 151q230 0 432 -151l1 -244q-214 151 -433 160q-214 -1 -436 -160v244zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2259;" d="M536 1688h162l233 -603h-194l-119 298l-116 -298h-200zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225a;" d="M302 1688h200l116 -298l119 298h194l-233 -603h-162zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225b;" d="M455 1419l-261 190h323l100 306l102 -306h321l-261 -190l102 -307l-264 190l-262 -190zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225c;" d="M561 1820h111l286 -729h-683zM722 1257l-106 274l-105 -274h211zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225d;" d="M257 1073q-32 0 -57.5 12.5t-44.5 35t-29 54.5t-10 70t10 69.5t29 54t44.5 35t57.5 12.5q31 0 57 -13.5t48 -42.5v175h105v-454h-95l-10 48q-41 -56 -105 -56zM915 1333h-52v75h52v23q0 54 29.5 79t92.5 25h80v-68h-58q-22 0 -31 -8t-9 -28v-23h89v-75h-89v-252h-104v252 zM676 1073q-91 0 -140 44.5t-49 125.5t48 127t129 46q82 0 128 -46t46 -124v-30h-244q6 -74 92 -74q31 0 65.5 10t70.5 30v-81q-37 -14 -74 -21t-72 -7zM730 1280q0 30 -17 48t-47 18q-29 0 -48 -17t-23 -49h135zM293 1149q34 0 51.5 24.5t17.5 71.5q0 95 -69 95 q-68 0 -68 -95q0 -47 17.5 -71.5t50.5 -24.5zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225e;" d="M180 1627h175v-81q64 94 164 94q57 0 100 -27.5t65 -76.5q68 104 181 104q90 0 139 -58t49 -170v-334h-175v286q1 5 1 14v19q0 58 -17 84.5t-55 26.5q-50 0 -76.5 -42.5t-26.5 -118.5v-269h-175v286q0 91 -15 118q-17 26 -55 26q-51 0 -77.5 -41t-26.5 -119v-270h-175 v549zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
-<glyph unicode="&#x225f;" d="M492 1366q0 21 3.5 38.5t12.5 35t26 37t44 43.5l32 29q54 49 54 97q0 34 -24 53t-68 19q-39 0 -86 -16.5t-98 -49.5v157q60 21 109.5 31t100.5 10q118 0 182.5 -49.5t64.5 -143.5q0 -49 -20 -90.5t-66 -82.5l-32 -28q-17 -16 -27.5 -28t-16.5 -22.5t-8.5 -20t-2.5 -21.5 v-22h-180v24zM522 1090q-30 0 -30 30v118q0 30 30 30h120q30 0 30 -30v-118q0 -30 -30 -30h-120zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
-<glyph unicode="&#x2260;" d="M94 117l146 178h-162v237h321l176 220h-497v235h659l252 305l150 -125l-146 -180h162v-235h-315l-174 -220h489v-237h-659l-252 -305z" />
-<glyph unicode="&#x2261;" d="M88 1222h1057v-235h-1057v235zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x2262;" d="M188 -15l34 75h-134v237h241l101 227h-342v236h450l100 227h-550v235h658l80 181l219 -98l-36 -83h136v-235h-244l-102 -227h346v-236h-451l-101 -227h552v-237h-660l-78 -173z" />
-<glyph unicode="&#x2263;" d="M88 1410h1057v-237h-1057v237zM88 987h1057v-237h-1057v237zM88 564h1057v-237h-1057v237zM88 141h1057v-237h-1057v237z" />
-<glyph unicode="&#x2264;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x2265;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x2266;" d="M88 728v235l1057 334v-244l-739 -209l739 -209v-243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
-<glyph unicode="&#x2267;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
-<glyph unicode="&#x2268;" d="M1145 1053l-739 -209l739 -209v-243l-285 91l150 -128l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150l-161 137l11 13h-146v237h346l89 105h-435v238h635l122 144l-757 241v235l1057 334v-244z" />
-<glyph unicode="&#x2269;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM223 -250l11 13h-146v237h346l89 105h-435v238h635l126 149l161 -137l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150z" />
-<glyph unicode="&#x226d;" d="M230 -31l126 311q-60 -20 -126.5 -48t-141.5 -63v229q106 51 198.5 85t171.5 51l80 199q-184 24 -451 151v229q339 -167 538 -163l179 443l199 -80l-125 -310q60 20 125.5 47.5t140.5 62.5v-229q-108 -51 -200 -84.5t-170 -52.5l-80 -198q185 -24 451 -151v-229 q-340 169 -537 163l-179 -443z" />
-<glyph unicode="&#x226e;" d="M343 52l121 324l-376 148v236l610 239l107 289l155 -58l-56 -149l241 95v-250l-346 -124l-106 -283l452 -161v-249l-527 207l-121 -322zM595 729l-245 -88l188 -67z" />
-<glyph unicode="&#x226f;" d="M273 52l56 149l-241 -95v250l346 124l106 283l-452 161v249l527 -207l121 322l154 -58l-121 -324l376 -148v-236l-610 -239l-107 -289zM883 641l-188 67l-57 -155z" />
-<glyph unicode="&#x2270;" d="M310 -120l42 120h-264v238h346l87 247l-433 138v235l634 200l100 290l181 -76l-49 -141l191 61v-244l-283 -80l-83 -234l366 -104v-243l-437 139l-65 -188h502v-238h-586l-68 -196zM633 803l-227 -64l185 -52z" />
-<glyph unicode="&#x2271;" d="M168 -120l42 120h-122v238h204l48 129l-252 -80v243l342 97l70 204l-412 117v244l486 -158l106 310l181 -76l-101 -292l385 -118v-235l-575 -183l-71 -202h646v-238h-729l-67 -196zM827 739l-137 39l-32 -87z" />
-<glyph unicode="&#x2272;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40 t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2273;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14 q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2274;" d="M310 -120l58 165q-72 -2 -138.5 -30t-141.5 -91v229q78 60 151 87.5t154 27.5q25 0 51 -3l77 220l-433 138v235l633 200l101 290l181 -76l-49 -140l191 60v-244l-283 -80l-82 -235l365 -103v-243l-437 139l-75 -218l19 -9q56 -26 109.5 -40t103.5 -14q71 0 138 29.5 t142 95.5v-234q-144 -114 -293 -114q-49 0 -97.5 12t-109.5 39q-17 7 -27.5 12t-18.5 8.5t-16.5 6.5t-20.5 8l-71 -204zM631 803l-225 -64l185 -52z" />
-<glyph unicode="&#x2275;" d="M168 -124l46 132q-62 -29 -126 -84v229q42 32 79.5 54t71.5 34q15 5 32 10t31 8l37 108l-251 -80v243l342 97l71 204l-413 117v244l485 -153l107 305l181 -76l-101 -289l385 -121v-235l-572 -182l-66 -189q55 -14 114 -39h1l30 -14q115 -54 213 -54q71 0 138 29.5 t142 95.5v-234q-75 -60 -146.5 -87t-148.5 -27q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-35 15 -67 27t-61 20q-1 0 -8 1.5t-16 2.5t-16.5 2.5t-10.5 1.5l-84 -242zM827 739l-137 39l-30 -86z" />
-<glyph unicode="&#x2276;" d="M88 832v235l1057 334v-244l-739 -209l739 -209v-243zM88 0l739 209l-739 209v244l1057 -334v-235l-1057 -336v243z" />
-<glyph unicode="&#x2277;" d="M88 739l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 93v235l1057 334v-244l-739 -209l739 -209v-243z" />
-<glyph unicode="&#x2278;" d="M202 -358l52 168l-166 -53v243l247 70l80 256l-327 92v244l393 -124l48 154l-441 140v235l619 195l100 323l224 -70l-52 -166l166 52v-244l-247 -70l-80 -256l327 -92v-243l-392 125l-48 -154l440 -139v-235l-618 -196l-101 -325zM628 1011l-222 -63l186 -53zM827 209 l-186 53l-36 -116z" />
-<glyph unicode="&#x2279;" d="M202 -358l118 377l-232 74v235l363 115l59 187l-422 -134v243l500 141l38 125l-538 152v244l602 -190l117 374l224 -70l-117 -375l231 -73v-235l-363 -115l-58 -188l421 133v-244l-500 -141l-38 -125l538 -152v-243l-602 191l-117 -376z" />
-<glyph unicode="&#x227a;" d="M1143 -95q-115 172 -277 301.5t-366 207.5q-91 35 -195.5 61t-218.5 43v246q106 20 213.5 51t200.5 66q113 42 203.5 90t167 107t142.5 132t130 167v-354q-285 -347 -626 -382q339 -46 626 -382v-354v0z" />
-<glyph unicode="&#x227b;" d="M86 259q287 336 626 382q-341 35 -626 382v354q67 -99 137 -174.5t147.5 -134t166 -103.5t192.5 -84q109 -41 215 -70.5t199 -46.5v-246q-118 -18 -222.5 -44.5t-191.5 -59.5q-204 -78 -366 -207.5t-277 -301.5v354z" />
-<glyph unicode="&#x227c;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM1145 -421q-399 591 -1057 712v235q678 -112 1057 -625v-322z" />
-<glyph unicode="&#x227d;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM88 -99q379 513 1057 625v-235q-658 -121 -1057 -712v322z" />
-<glyph unicode="&#x227e;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x227f;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2280;" d="M309 -169l190 583q-90 35 -192.5 61t-220.5 43v246q40 7 89.5 19t103.5 27t110.5 32.5t110.5 37.5q42 15 84 32.5t91 43.5l185 568l223 -73l-82 -253q79 83 142 179v-354q-69 -83 -139 -147.5t-145 -112.5l-69 -211q186 -98 353 -293v-354q-170 254 -431 407l-180 -554z M575 649q-14 -2 -29 -4t-29 -4l53 -9z" />
-<glyph unicode="&#x2281;" d="M146 -169l82 253q-79 -83 -142 -179v354q69 83 139 147.5t145 112.5l69 211q-186 98 -353 293v354q170 -254 431 -407l180 554l223 -73l-190 -583q90 -35 192.5 -61t220.5 -43v-246q-41 -8 -90.5 -19.5t-103.5 -26.5t-110 -33t-110 -37q-42 -15 -84 -32.5t-91 -43.5 l-185 -568zM654 633q14 2 29 4t29 4l-53 9z" />
-<glyph unicode="&#x2282;" d="M576 138q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569v0z" />
-<glyph unicode="&#x2283;" d="M88 363h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225z" />
-<glyph unicode="&#x2284;" d="M246 -48l94 242q-31 17 -58 38.5t-52 47.5q-72 76 -107 167.5t-35 193.5q0 108 38 200.5t103.5 159.5t154.5 105t191 38h134l99 257l179 -69l-72 -188h230v-225h-318l-216 -556h534v-225h-569q-14 0 -26.5 0.5t-25.5 1.5l-99 -258zM621 919h-46q-55 0 -103 -20t-83 -57 t-55.5 -89t-20.5 -116q0 -59 18.5 -108.5t57.5 -88.5q15 -15 35 -30z" />
-<glyph unicode="&#x2285;" d="M246 -49l72 188h-230v225h318l216 556h-534v225h569q14 0 26.5 -0.5t25.5 -1.5l99 258l179 -70l-94 -242q31 -17 58 -38.5t52 -47.5q72 -76 107 -167.5t35 -193.5q0 -108 -38 -200.5t-103.5 -159.5t-154.5 -105t-191 -38h-134l-99 -257zM658 364q55 0 103 20t83 57 t55.5 89t20.5 116q0 59 -18.5 108.5t-57.5 88.5q-15 15 -35 30l-197 -509h46z" />
-<glyph unicode="&#x2286;" d="M576 315q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569zM88 198h1057v-238h-1057v238z" />
-<glyph unicode="&#x2287;" d="M88 540h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225zM88 198h1057v-238h-1057v238z" />
-<glyph unicode="&#x2288;" d="M168 -160l46 120h-126v238h219l61 158q-76 34 -138 101q-70 75 -106 166t-36 195q0 108 38 200.5t103.5 159.5t154.5 105t191 38h166l67 173l179 -69l-40 -104h198v-225h-285l-213 -556h498v-225h-569h-15l-45 -117h629v-238h-721l-75 -196zM654 1096h-79q-55 0 -103 -20 t-83 -57t-55.5 -89t-20.5 -116q0 -121 76 -197q28 -28 61 -46z" />
-<glyph unicode="&#x2289;" d="M168 -160l46 120h-126v238h219l45 117h-264v225h350l216 556h-566v225h570q42 0 81 -6l69 179l179 -69l-69 -178q45 -27 86 -68q72 -73 106.5 -169t34.5 -194q0 -103 -36 -194t-100.5 -159.5t-154 -108t-197.5 -39.5h-96l-45 -117h629v-238h-721l-75 -196zM658 540 q54 0 102 19.5t83.5 56.5t56 88.5t20.5 116.5q0 60 -19 110t-57 88l-10 9l-187 -488h11z" />
-<glyph unicode="&#x228a;" d="M316 -108l54 68h-282v238h472l94 117h-78q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20t-83 -57t-55.5 -88t-20.5 -113q0 -63 20.5 -114.5t56.5 -87.5t83.5 -56t101.5 -20h570v-225 h-289l61 -49l-54 -68h282v-238h-472l-173 -216z" />
-<glyph unicode="&#x228b;" d="M316 -108l54 68h-282v238h472l94 117h-566v225h570q54 0 101.5 20t83.5 56t56.5 87.5t20.5 114.5q0 62 -20.5 113t-55.5 88t-83 57t-103 20h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159.5t38 -201q0 -100 -34.5 -191t-107.5 -169q-41 -44 -84 -71t-95 -45 l93 -75l-54 -68h282v-238h-472l-173 -216z" />
-<glyph unicode="&#x228d;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t139.5 17t89 61t47 119t13.5 191v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM519 500q-30 0 -30 30v205q0 30 30 30 h193q30 0 30 -30v-205q0 -30 -30 -30h-193z" />
-<glyph unicode="&#x228e;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t139.5 17t89 61t47 119t13.5 191v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM550 576h-140v132h140v140h132v-140h140 v-132h-140v-140h-132v140z" />
-<glyph unicode="&#x228f;" d="M88 1196h1057v-235h-822v-640h822v-235h-1057v1110z" />
-<glyph unicode="&#x2290;" d="M88 321h822v640h-822v235h1057v-1110h-1057v235z" />
-<glyph unicode="&#x2291;" d="M88 1302h1057v-235h-822v-448h822v-235h-1057v918zM88 215h1057v-235h-1057v235z" />
-<glyph unicode="&#x2292;" d="M88 619h822v448h-822v235h1057v-918h-1057v235zM88 215h1057v-235h-1057v235z" />
-<glyph unicode="&#x2293;" d="M62 1284h1110v-1284h-236v1049h-640v-1049h-234v1284z" />
-<glyph unicode="&#x2294;" d="M62 1284h236v-1049h640v1049h234v-1284h-1110v1284z" />
-<glyph unicode="&#x2295;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
-<glyph unicode="&#x2296;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM271 727h691v-170h-691v170z" />
-<glyph unicode="&#x2297;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l184 184l-185 185l120 121l185 -186l185 185l120 -120l-185 -185l184 -183l-121 -120l-183 183l-184 -184z" />
-<glyph unicode="&#x2298;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l489 489l120 -120l-489 -489z" />
-<glyph unicode="&#x2299;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM449 815h333v-365h-333v365z" />
-<glyph unicode="&#x229a;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM614 378q-57 0 -105 20t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 538q22 0 42 8t34.5 22.5t23 33.5t8.5 42 q0 20 -7 39t-24 36q-31 31 -75 31q-23 0 -42.5 -8.5t-34 -22.5t-22.5 -34t-8 -42q0 -23 8 -42t22.5 -33t33.5 -22t41 -8z" />
-<glyph unicode="&#x229b;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM927 889q-7 9 -15 18t-16 17q-26 26 -59 49t-69 38q-32 13 -68 21v-267zM528 1031q-17 -4 -32.5 -8.5t-31.5 -11.5q-35 -15 -68.5 -38.5t-58.5 -48.5q-8 -8 -16.5 -17.5t-15.5 -18.5l223 -123v266zM994 519q18 58 18 125q0 27 -3 53.5t-10 51.5l-221 -116z M453 633l-220 114q-12 -50 -12 -104q0 -65 18 -122zM528 502l-211 -117q5 -5 10 -11t10 -11q25 -25 58.5 -48.5t68.5 -38.5q16 -7 31.5 -11.5t32.5 -8.5v246zM700 255q36 8 68 21q33 14 67 37t61 50q8 8 12 12.5t7 7.5l-215 119v-247z" />
-<glyph unicode="&#x229c;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM299 849h635v-141h-635v141zM299 576h635v-143h-635v143z" />
-<glyph unicode="&#x229d;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM399 727h435v-170h-435v170z" />
-<glyph unicode="&#x229e;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
-<glyph unicode="&#x229f;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM271 727h691v-170h-691v170z" />
-<glyph unicode="&#x22a0;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM268 413l229 229l-231 231l121 120l230 -231l230 230l120 -120l-230 -230l229 -228l-120 -121l-229 229l-229 -229z" />
-<glyph unicode="&#x22a1;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM449 815h333v-365h-333v365z" />
-<glyph unicode="&#x22a2;" d="M66 1284h237v-522h862v-238h-862v-524h-237v1284z" />
-<glyph unicode="&#x22a3;" d="M928 522h-862v238h862v524h237v-1284h-237v522z" />
-<glyph unicode="&#x22a4;" d="M498 1046h-432v238h1099v-238h-430v-1046h-237v1046z" />
-<glyph unicode="&#x22b2;" d="M88 524v236l1057 416v-1067zM908 841l-558 -200l558 -199v399z" />
-<glyph unicode="&#x22b3;" d="M88 1176l1057 -416v-236l-1057 -415v1067zM883 641l-558 200v-399z" />
-<glyph unicode="&#x22b4;" d="M88 623v235l1057 334v-905zM908 881l-502 -142l502 -142v284zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x22b5;" d="M88 1192l1057 -334v-235l-1057 -336v905zM827 739l-502 142v-284zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x22b8;" d="M918 359q-61 0 -109.5 21t-90.5 61q-20 19 -34.5 39.5t-24.5 43.5h-631v238h631q10 23 24 42.5t31 36.5q45 45 98.5 67t110.5 22q58 0 109.5 -22t90 -61t60.5 -92t22 -114q0 -60 -21.5 -111.5t-60 -89.5t-91 -59.5t-114.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43 t10.5 53.5q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
-<glyph unicode="&#x22c2;" d="M90 936q0 168 28.5 284.5t91.5 189t163 105t244 32.5t244 -32.5t163 -105t91 -189t28 -284.5v-1372h-238v1352q0 117 -13.5 192t-46.5 118.5t-88.5 60.5t-139.5 17t-139.5 -17t-89 -61t-47 -119t-13.5 -191v-1352h-238v1372z" />
-<glyph unicode="&#x22c3;" d="M616 -465q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v1372h238v-1352q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t139.5 17t89 61t47 119t13.5 191v1352h238v-1372q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5z" />
-<glyph unicode="&#x22c4;" d="M6 730l610 610l611 -610l-611 -610zM1004 730l-388 390l-387 -390l387 -388z" />
-<glyph unicode="&#x22c5;" d="M449 895h333v-365h-333v365z" />
-<glyph unicode="&#x22c6;" d="M467 657l-241 175h298l93 284l93 -284h297l-241 -175l93 -283l-242 175l-242 -175z" />
-<glyph unicode="&#x22cd;" d="M381 672q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x22ce;" d="M482 0q0 900 -484 1284h338q262 -208 280 -508q26 300 280 508h338q-484 -384 -484 -1284h-268v0z" />
-<glyph unicode="&#x22cf;" d="M-2 0q484 384 484 1284h268q0 -900 484 -1284h-338q-262 208 -280 508q-26 -300 -280 -508h-338v0z" />
-<glyph unicode="&#x22d0;" d="M778 -46q-143 0 -268 54t-218.5 147.5t-147.5 218.5t-54 268q0 95 24.5 183t69.5 164.5t107.5 139t139 107.5t164.5 69.5t183 24.5h365v-220h-365q-97 0 -182.5 -36.5t-149 -100t-100 -149t-36.5 -182.5t36.5 -182.5t100 -149t149 -100t182.5 -36.5h365v-220h-365z M778 324q-66 0 -124 25t-101 68t-68 101t-25 124t25 124t68 101t101 68t124 25h365v-220h-365q-42 0 -70 -28t-28 -70t28 -70t70 -28h365v-220h-365z" />
-<glyph unicode="&#x22d1;" d="M90 174h365q97 0 182.5 36.5t149 100t100 149t36.5 182.5t-36.5 182.5t-100 149t-149 100t-182.5 36.5h-365v220h365q95 0 183 -24.5t164.5 -69.5t139 -107.5t107.5 -139t69.5 -164.5t24.5 -183t-24.5 -183t-69.5 -164.5t-107.5 -139t-139 -107.5t-164.5 -69.5 t-183 -24.5h-365v220zM90 544h365q42 0 70 28t28 70t-28 70t-70 28h-365v220h365q66 0 124 -25t101 -68t68 -101t25 -124t-25 -124t-68 -101t-101 -68t-124 -25h-365v220z" />
-<glyph unicode="&#x22da;" d="M88 1020v235l1057 334v-244l-739 -209l739 -209v-243zM88 635h1057v-238h-1057v238zM88 -313l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
-<glyph unicode="&#x22db;" d="M88 927l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 635h1057v-238h-1057v238zM88 -223v235l1057 336v-243l-739 -209l739 -209v-244z" />
-<glyph unicode="&#x22dc;" d="M88 1192h1057v-238h-1057v238zM88 334v235l1057 336v-243l-739 -209l739 -209v-244z" />
-<glyph unicode="&#x22dd;" d="M88 1192h1057v-238h-1057v238zM88 244l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
-<glyph unicode="&#x22de;" d="M88 811q658 121 1057 712v-322q-379 -513 -1057 -625v235zM1145 -421q-405 518 -1057 555v266q640 52 1057 555v-338q-271 -277 -608 -350q335 -75 608 -350v-338z" />
-<glyph unicode="&#x22df;" d="M1145 576q-678 112 -1057 625v322q399 -591 1057 -712v-235zM88 -83q273 275 608 350q-337 73 -608 350v338q417 -503 1057 -555v-266q-652 -37 -1057 -555v338z" />
-<glyph unicode="&#x22e0;" d="M279 -452l139 646q-78 32 -160 56.5t-170 40.5v235q102 -17 196.5 -42.5t182.5 -60.5l40 188q-195 73 -419 91v266q284 16 522 125l119 552l225 -48l-73 -340q72 57 137.5 122.5t126.5 143.5v-338q-156 -158 -333 -249l-39 -181q199 -95 372 -270v-338q-189 228 -424 364 l-41 -191q273 -158 465 -419v-322q-219 323 -515 507l-126 -586zM556 839l-19 -4l17 -4z" />
-<glyph unicode="&#x22e1;" d="M279 -452l74 346q-143 -135 -265 -315v322q74 100 158 184t181 154l55 253q-216 -131 -394 -345v338q208 214 458 306l17 82q-258 92 -475 312v338q222 -285 524 -425l117 547l225 -48l-124 -579q75 -20 153 -32.5t162 -17.5v-266q-107 -8 -207 -29.5t-194 -55.5 l-48 -224q204 92 449 133v-235q-280 -51 -511 -187l-130 -604z" />
-<glyph unicode="&#x22e2;" d="M187 -214l70 194h-169v235h253l61 169h-314v918h644l98 272l216 -78l-70 -194h169v-235h-253l-161 -448h414v-235h-499l-61 -169h560v-235h-644l-98 -272zM487 619l161 448h-325v-448h164z" />
-<glyph unicode="&#x22e3;" d="M187 -214l70 194h-169v235h253l61 169h-314v235h399l161 448h-560v235h644l98 272l216 -78l-70 -194h169v-918h-499l-61 -169h560v-235h-644l-98 -272zM910 619v448h-18l-161 -448h179z" />
-<glyph unicode="&#x22e4;" d="M324 -122l72 102h-308v235h475l119 169h-594v918h1057v-235h-822v-448h822v-235h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
-<glyph unicode="&#x22e5;" d="M324 -122l72 102h-308v235h475l119 169h-594v235h822v448h-822v235h1057v-918h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
-<glyph unicode="&#x22e6;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l72 213l-537 171v235l1057 334v-244l-739 -209l739 -209v-243l-317 101l-76 -226q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
-<glyph unicode="&#x22e7;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l74 219l-539 -171v243l739 209l-739 209v244l1057 -334v-235l-426 -135l128 -44l-95 -282q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
-<glyph unicode="&#x22e8;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
-<glyph unicode="&#x22e9;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
-<glyph unicode="&#x22ef;" d="M87 460q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM499 460q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM911 460q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235z" />
-<glyph unicode="&#x2304;" d="M146 428h193l277 -410l277 410h193l-470 -698z" />
-<glyph unicode="&#x2308;" d="M422 1556h508v-190h-242v-1636h-266v1826z" />
-<glyph unicode="&#x2309;" d="M545 1366h-242v190h508v-1826h-266v1636z" />
-<glyph unicode="&#x230a;" d="M422 1556h266v-1636h242v-190h-508v1826z" />
-<glyph unicode="&#x230b;" d="M303 -80h242v1636h266v-1826h-508v190z" />
-<glyph unicode="&#x2310;" d="M88 899h1057v-237h-819v-300h-238v537z" />
-<glyph unicode="&#x2320;" d="M485 727q0 4 1.5 55.5t5.5 156.5q10 253 38.5 434.5t83.5 296.5q52 109 134 166.5t190 57.5q51 0 91.5 -12.5t69.5 -36t44.5 -55.5t15.5 -71q0 -63 -37.5 -99.5t-97.5 -36.5q-52 0 -81.5 26t-39.5 67q-2 10 -4 25t-3 29q-2 20 -8.5 33t-20.5 13q-47 0 -76.5 -156.5 t-43.5 -477.5q-6 -143 -6 -178v-1476h-256v1239z" />
-<glyph unicode="&#x2321;" d="M288 -490q-51 0 -91.5 12.5t-69.5 36t-44.5 55.5t-15.5 71q0 63 37.5 99.5t97.5 36.5q52 0 81.5 -26t39.5 -67q2 -10 4 -25t3 -29q2 -20 8.5 -33t20.5 -13q47 0 76.5 156.5t43.5 477.5q6 142 6 178v1486h256v-1249q0 -4 -1.5 -55.5t-5.5 -156.5q-10 -253 -38.5 -434.5 t-83.5 -296.5q-52 -109 -134 -166.5t-190 -57.5z" />
-<glyph unicode="&#x239b;" d="M232 -282q0 294 22.5 546t61 466t89.5 391t108 322t116.5 258.5t114.5 199.5h256q-59 -120 -117.5 -246.5t-111.5 -271.5t-98 -313.5t-78.5 -371t-52.5 -445t-19 -535.5v-234h-291v234z" />
-<glyph unicode="&#x239c;" d="M232 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x239d;" d="M744 -492q-51 80 -109 190t-115 253t-109 320.5t-92 393.5t-63.5 472t-23.5 555v234h291v-234q0 -284 16 -518t46.5 -430t73 -361.5t95.5 -313.5t115 -285t131 -276h-256v0z" />
-<glyph unicode="&#x239e;" d="M710 -282q0 293 -19 535.5t-52.5 445t-78.5 371t-98 313.5t-111.5 271.5t-117.5 246.5h256q55 -86 114.5 -199.5t116.5 -258.5t108 -322t89.5 -391t61 -466t22.5 -546v-234h-291v234z" />
-<glyph unicode="&#x239f;" d="M710 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x23a0;" d="M233 -492q69 139 131 276t115 285t95.5 313.5t73 361.5t46.5 430t16 518v234h291v-234q0 -299 -23.5 -555t-63.5 -472t-92 -393.5t-109 -320.5t-115 -253t-109 -190h-256v0z" />
-<glyph unicode="&#x23a1;" d="M232 1901h768v-291h-477v-2126h-291v2417z" />
-<glyph unicode="&#x23a2;" d="M232 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x23a3;" d="M232 1926h291v-2127h477v-291h-768v2418z" />
-<glyph unicode="&#x23a4;" d="M709 1610h-477v291h768v-2417h-291v2126z" />
-<glyph unicode="&#x23a5;" d="M709 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x23a6;" d="M232 -201h477v2127h291v-2418h-768v291z" />
-<glyph unicode="&#x23a7;" d="M476 1375q0 123 31.5 220.5t91 165.5t146 104t197.5 36h275v-272h-281q-51 0 -85 -8t-55 -34t-29.5 -74.5t-8.5 -129.5v-1917h-282v1909z" />
-<glyph unicode="&#x23a8;" d="M476 181q0 94 -19 165t-65 118.5t-122.5 72t-191.5 26.5l-61 1v283h61q112 0 188.5 23t123 70t66.5 119t20 170v684h282v-696q0 -134 -25.5 -240t-75.5 -179q-42 -61 -100 -93q56 -31 100 -93q51 -73 76 -179t25 -240v-698h-282v686z" />
-<glyph unicode="&#x23a9;" d="M942 -492q-109 0 -195.5 35.5t-146.5 103t-92 165t-32 222.5v1879h282v-1887q0 -81 8.5 -129.5t29.5 -74.5t55 -34t85 -8h281v-272h-275v0z" />
-<glyph unicode="&#x23aa;" d="M476 1913h282v-2437h-282v2437z" />
-<glyph unicode="&#x23ab;" d="M475 1383q0 81 -8.5 129.5t-29.5 74.5t-55 34t-85 8h-281v272h275q111 0 197.5 -36t146 -104t91 -165.5t31.5 -220.5v-1909h-282v1917z" />
-<glyph unicode="&#x23ac;" d="M475 193q0 134 25 240t76 179q43 62 100 93q-59 33 -100 93q-50 73 -75.5 179t-25.5 240v696h282v-684q0 -98 20 -170t66.5 -119t123 -70t188.5 -23h61v-283l-61 -1q-115 -2 -191.5 -26.5t-122.5 -72t-65 -118.5t-19 -165v-686h-282v698z" />
-<glyph unicode="&#x23ad;" d="M16 -220h281q51 0 85 8t55 34t29.5 74.5t8.5 129.5v1887h282v-1879q0 -125 -32 -222.5t-92 -165t-146.5 -103t-195.5 -35.5h-275v272z" />
-<glyph unicode="&#x23ae;" d="M485 1926h256v-2438h-256v2438z" />
-<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
-<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
-<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
-<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
-<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
-<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
-<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
-<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
-<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
-<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
-<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
-<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
-<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
-<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
-<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
-<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
-<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
-<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
-<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
-<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
-<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
-<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
-<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
-<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
-<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
-<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
-<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
-<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
-<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
-<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
-<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
-<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
-<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
-<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
-<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
-<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
-<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
-<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
-<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
-<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
-<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
-<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
-<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
-<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
-<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
-<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
-<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
-<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
-<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
-<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
-<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
-<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
-<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
-<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
-<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
-<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
-<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
-<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
-<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
-<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
-<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
-<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
-<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
-<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
-<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
-<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
-<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
-<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
-<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
-<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
-<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
-<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
-<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
-<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
-<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
-<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
-<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
-<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
-<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
-<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
-<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
-<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
-<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
-<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
-<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
-<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
-<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
-<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
-<glyph unicode="&#x2588;" d="M-20 1921h1273v-2433h-1273v2433z" />
-<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
-<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
-<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
-<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
-<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
-<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
-<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
-<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
-<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
-<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
-<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
-<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
-<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
-<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
-<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
-<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
-<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
-<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
-<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
-<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
-<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
-<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
-<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
-<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
-<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
-<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
-<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
-<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
-<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
-<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
-<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
-<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
-<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
-<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
-<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
-<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
-<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
-<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
-<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
-<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
-<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1056 1028h-879l439 -878z" />
-<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
-<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
-<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
-<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
-<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
-<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
-<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
-<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
-<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
-<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1004 532l-388 388l-387 -388l387 -388z" />
-<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
-<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
-<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
-<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64z" />
-<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-40 -157q-54 16 -110 16t-110 -16zM111 885q42 58 93.5 100.5t106.5 74.5l81 -140q-42 -23 -79 -53.5t-69 -75.5zM988 791q-32 45 -69.5 75.5t-77.5 53.5l80 140q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150l157 -40 q-12 -53 -12 -110q0 -58 12 -110zM1054 422q12 52 12 110q0 57 -12 110l157 40q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l133 94q32 -45 69 -75.5t79 -53.5zM841 144q40 23 75.5 52t71.5 77l133 -93q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l40 157q54 -16 110 -16t110 16l40 -157q-75 -21 -150 -21z" />
-<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q21 8 39 17t39 21q9 5 12 7t5 3t3.5 2.5t7.5 4.5v810q-7 6 -28 17q-29 16 -43.5 23t-34.5 15v-920zM448 991q-19 -8 -38 -17t-38 -20 q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
-<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64zM616 286q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5 q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM616 396q18 0 36 6t32 14q67 40 67 116t-67 116q-14 8 -32 14t-36 6q-32 0 -67 -20q-67 -39 -67 -116t67 -116q35 -20 67 -20z" />
-<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
-<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
-<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
-<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h977z" />
-<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-977q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
-<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
-<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
-<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM615 399q71 0 136 26.5t119 80.5q52 52 79.5 117.5t27.5 139.5q0 72 -26.5 136.5t-80.5 116.5q-51 50 -115 77t-137 27q-75 0 -140.5 -27.5t-115.5 -76.5q-51 -51 -78.5 -115.5t-27.5 -139.5q0 -73 26.5 -138.5t77.5 -116.5 q50 -51 115 -79t140 -28z" />
-<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM372 110q-119 69 -181.5 172t-62.5 250t62.5 250t181.5 172q125 72 246 71t242 -71q245 -141 245 -422t-245 -422q-121 -70 -242 -71t-246 71z" />
-<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 180 -79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5 q120 -68 182 -177t62 -246h-977z" />
-<glyph unicode="&#x25db;" d="M-20 532h26q0 -179 76.5 -309.5t228.5 -218.5q79 -46 154.5 -67t149.5 -21q154 0 306 88q153 88 229.5 218.5t76.5 309.5h26v-1044h-1273v1044zM616 39q-122 0 -244 71q-244 141 -244 422h977q0 -281 -245 -422q-122 -71 -244 -71z" />
-<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
-<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q77 0 156.5 -24t148.5 -63q143 -81 224 -214t81 -315h-123v0z" />
-<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
-<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
-<glyph unicode="&#x25e0;" d="M6 532q0 351 305 528q79 46 154.5 67t149.5 21q154 0 306 -88q306 -177 306 -528h-161q0 128 -55.5 225.5t-169.5 163.5t-226 65t-223 -65q-108 -63 -166 -159t-59 -230h-161v0z" />
-<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h161q0 -128 57.5 -228.5t166.5 -161.5q57 -32 115 -47.5t111 -15.5q52 0 109.5 15.5t114.5 47.5q105 59 165 157.5t60 232.5h161q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
-<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
-<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
-<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
-<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
-<glyph unicode="&#x25e6;" d="M614 399q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28zM616 471q60 0 111 22.5 t92 63.5q86 86 86 204q0 59 -21.5 110.5t-64.5 93.5q-42 41 -93.5 62t-109.5 21t-109.5 -21t-93.5 -62q-41 -40 -63 -91.5t-22 -111.5q0 -63 23 -115t60 -90q41 -42 93 -64t112 -22z" />
-<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
-<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
-<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
-<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
-<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
-<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
-<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
-<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
-<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
-<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM619 39q57 0 118.5 18t122.5 53q245 141 245 422t-245 422q-48 28 -93.5 43.5t-93.5 23.5v-547h-542q8 -79 35.5 -142.5t68 -111.5t89.5 -82.5t100.5 -56.5t102 -32t92.5 -10zM559 588v433q-95 -14 -187 -67q-219 -126 -241 -366h428z " />
-<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q45 6 95.5 24.5t92.5 42.5q55 31 100 73t77 94.5t49.5 115.5t17.5 137q0 137 -61.5 246.5t-182.5 178.5q-62 35 -125.5 52.5t-120.5 17.5q-42 0 -92 -10.5t-101.5 -33t-101 -57t-89 -83t-66.5 -111.5t-34 -142h542v-545zM559 474 h-428q22 -237 241 -364q92 -53 187 -67v431z" />
-<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142.5t-67 112t-89.5 83t-101.5 56.5t-103 32.5t-94 10.5q-55 0 -116 -17t-125 -54q-244 -141 -244 -422t244 -422q48 -28 94 -44t93 -23v545zM673 43q94 14 187 67q112 64 171.5 155t70.5 209h-429v-431z" />
-<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q41 0 91 10.5t101.5 32.5t101 56t89.5 82.5t67.5 111.5t35.5 142h-543v547q-44 -6 -92 -23t-96 -44q-118 -67 -180.5 -173t-62.5 -247q0 -137 61 -246.5t182 -178.5q62 -35 125.5 -52.5t119.5 -17.5zM1102 588q-23 241 -242 366 q-93 53 -187 67v-433h429z" />
-<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
-<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
-<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
-<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
-<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
-<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
-<glyph unicode="&#x266a;" d="M602 1493h245q195 -186 281 -386t86 -434l-220 -91q0 120 -8 189t-38 160q-30 94 -101 229v-895q0 -147 -25.5 -242t-80.5 -156t-134.5 -89.5t-199.5 -28.5q-95 0 -176 33.5t-129 91.5t-48 127q0 68 47 125.5t129 91.5q81 33 177 33q104 0 193 -40q2 40 2 54v1228z" />
-<glyph unicode="&#x2756;" d="M358 879l260 261l260 -261l-260 -259zM44 569l259 259l260 -259l-260 -260zM670 569l260 258l259 -258l-259 -261zM358 254l260 260l260 -260l-260 -260z" />
-<glyph unicode="&#x2768;" d="M993 -101q-152 0 -286 56t-246 168q-107 107 -164 239.5t-57 290.5q0 157 56.5 291t164.5 242q112 112 247.5 168t284.5 56v-39q-90 0 -170 -51.5t-148 -158.5t-100.5 -233t-32.5 -273q0 -148 32.5 -274t99.5 -232t147.5 -159t171.5 -53v-38v0z" />
-<glyph unicode="&#x2769;" d="M240 -62q93 0 173 53t146 158q67 106 99.5 231.5t32.5 274.5q0 146 -32 272.5t-100 233.5t-148.5 159t-170.5 52v38q149 0 284.5 -56t247.5 -168q108 -108 164.5 -242t56.5 -291q0 -153 -55 -286t-166 -244q-109 -109 -243 -166.5t-289 -57.5v39z" />
-<glyph unicode="&#x276a;" d="M601 -121q-121 192 -181.5 375.5t-60.5 366.5q0 182 59.5 365t182.5 375h273q-108 -187 -161 -369.5t-53 -369.5q0 -189 52.5 -372.5t161.5 -370.5h-273v0z" />
-<glyph unicode="&#x276b;" d="M366 -121q105 181 156.5 359t51.5 361t-51 359t-157 358h265q120 -187 178 -363.5t58 -352.5q0 -179 -59 -357t-177 -364h-265v0z" />
-<glyph unicode="&#x276c;" d="M324 617l372 748h213l-374 -748l374 -747h-213z" />
-<glyph unicode="&#x276d;" d="M697 617l-372 748h212l372 -748l-372 -747h-213z" />
-<glyph unicode="&#x276e;" d="M211 578l481 748h330l-490 -748l490 -747h-330z" />
-<glyph unicode="&#x276f;" d="M701 578l-490 748h330l481 -748l-481 -747h-330z" />
-<glyph unicode="&#x2770;" d="M206 649l418 840h403l-420 -840l420 -839h-403z" />
-<glyph unicode="&#x2771;" d="M625 650l-418 840h402l418 -840l-418 -840h-403z" />
-<glyph unicode="&#x2772;" d="M457 -51v1218l232 231l87 -87l-196 -195v-1116l196 -195l-87 -87z" />
-<glyph unicode="&#x2773;" d="M457 -189l196 195v1116l-196 195l87 87l232 -231v-1218l-232 -231z" />
-<glyph unicode="&#x2774;" d="M801 -328q-89 0 -146.5 14.5t-91.5 52t-47 102t-13 163.5v215q0 68 -9 114t-29.5 74.5t-54.5 40.5t-85 12h-44v128h44q51 0 85 12t55 40t29.5 73.5t8.5 112.5v216q0 99 13 163.5t47 101.5t91.5 51.5t146.5 14.5h151v-129h-49q-50 0 -81.5 -8.5t-49 -31t-24 -63 t-6.5 -103.5v-223q0 -71 -7.5 -121t-25 -84t-45 -54.5t-66.5 -32.5q39 -12 66.5 -33t45 -55t25 -84t7.5 -120v-223q0 -63 6.5 -103.5t24 -63t49 -31t81.5 -8.5h49v-130h-151v0z" />
-<glyph unicode="&#x2775;" d="M250 -204h53q55 0 89.5 8.5t54 31.5t26.5 63.5t7 104.5v226q0 71 8 121.5t26.5 85t48.5 56t73 33.5q-42 11 -72 31.5t-48.5 55t-27 85.5t-8.5 123v225q0 64 -7 105t-26.5 64t-54 31.5t-89.5 8.5h-53v130h165q97 0 160 -14.5t100 -52.5t51.5 -103t14.5 -165v-219 q0 -68 9.5 -113.5t32 -74t60 -40.5t93.5 -12h47v-130h-47q-56 0 -93 -12t-60 -40.5t-32.5 -75t-9.5 -115.5v-217q0 -101 -14.5 -166t-51.5 -102.5t-100 -52.5t-160 -15h-165v131z" />
-<glyph unicode="&#x2794;" d="M837 565h-753v170h753l-262 262h227l347 -347l-347 -347h-227z" />
-<glyph unicode="&#x2798;" d="M513 208l271 186l-668 605l148 149l606 -668l186 270l61 -604z" />
-<glyph unicode="&#x2799;" d="M815 680l-731 -35v170l731 -35l-48 261l382 -311l-382 -311z" />
-<glyph unicode="&#x279a;" d="M116 342l668 605l-271 186l604 62l-61 -604l-186 270l-606 -668z" />
-<glyph unicode="&#x279b;" d="M578 659h-532v92h532l-128 242q266 -192 737 -288q-471 -96 -737 -288z" />
-<glyph unicode="&#x279c;" d="M765 298q-38 0 -65 27q-28 28 -28 66q0 20 7.5 37t20.5 30l139 140h-672q-36 0 -65 27q-28 26 -28 66t28 66q14 13 30 20.5t35 7.5h672l-139 139q-13 13 -20.5 30.5t-7.5 37.5q0 37 28 65q13 13 29.5 20.5t36.5 7.5t37 -8t29 -20l300 -300q13 -14 21 -30q4 -8 5.5 -17.5 t1.5 -17.5q0 -21 -8.5 -38.5t-19.5 -28.5l-300 -300q-12 -12 -29.5 -19.5t-37.5 -7.5z" />
-<glyph unicode="&#x279d;" d="M838 722h-754v56h754v283l311 -311l-311 -311v283z" />
-<glyph unicode="&#x279e;" d="M854 626h-808v168h808v250l333 -334l-333 -334v250z" />
-<glyph unicode="&#x279f;" d="M850 552h-301v300h301v178l329 -328l-329 -329v179zM54 852h45v-300h-45v300zM159 852h90v-300h-90v300zM309 852h180v-300h-180v300z" />
-<glyph unicode="&#x27a0;" d="M838 510h-285v427h285v98q131 -218 311 -311q-181 -95 -311 -312v98zM84 937h42v-427h-42v427zM183 937h85v-427h-85v427zM325 937h171v-427h-171v427z" />
-<glyph unicode="&#x27a1;" d="M838 558h-754v284h754v169l311 -311l-311 -311v169z" />
-<glyph unicode="&#x27a2;" d="M434 710l-338 338l1041 -338l-1041 -338zM948 710l-627 203l203 -203h424z" />
-<glyph unicode="&#x27a3;" d="M443 740l-320 320l987 -320l-987 -320zM931 740h-403l-192 -193z" />
-<glyph unicode="&#x27a4;" d="M372 750l-249 462l987 -462l-987 -462z" />
-<glyph unicode="&#x27a5;" d="M850 545h-616q-36 0 -68.5 14.5t-57.5 38.5q-28 27 -41 60t-13 67v360q0 -34 13 -67t41 -60q25 -24 57.5 -38.5t68.5 -14.5h616v149l329 -329l-329 -329v149z" />
-<glyph unicode="&#x27a6;" d="M54 755q0 34 13 67t41 60q25 24 57.5 38.5t68.5 14.5h616v149l329 -329l-329 -329v149h-616q-36 0 -68.5 -14.5t-57.5 -38.5q-28 -27 -41 -60t-13 -67v360z" />
-<glyph unicode="&#x27a7;" d="M613 530h-277v450h277v268l284 -493l-284 -493v268z" />
-<glyph unicode="&#x27a8;" d="M738 485h-684v420h684v119q108 -230 441 -329q-333 -99 -441 -329v119z" />
-<glyph unicode="&#x27a9;" d="M607 532h-506v356h506v169h178l347 -347l-347 -347h-178v169zM954 710l-290 290v-169h-506v-242h506v-169z" />
-<glyph unicode="&#x27aa;" d="M607 472h-506v356h506v169h178l347 -347l-347 -347h-178v169zM1060 650l-290 290v-169h-505v-242h505v-169z" />
-<glyph unicode="&#x27ab;" d="M554 326l15 27h-515v142l205 356h597l99 169h71l153 -365v-143l-519 -328h-106v142zM1108 673l-122 290l-98 -169h-598l-140 -242h598l-98 -169z" />
-<glyph unicode="&#x27ac;" d="M838 361h-552l-189 308v123h476l-15 23v123h99l479 -284v-123l-142 -316h-65zM1070 515l-422 251l90 -146h-552l129 -210h552l90 -146z" />
-<glyph unicode="&#x27ad;" d="M600 338h-399l-75 150v494h458v119h82l366 -366l75 -150l-366 -366h-82zM950 735l-306 306v-119h-458v-374h458v-119z" />
-<glyph unicode="&#x27ae;" d="M581 259h-496v536l81 163h432l64 128h90l396 -397l-81 -162l-396 -397h-90v129zM978 527l-332 331v-128h-496v-406h496v-129z" />
-<glyph unicode="&#x27af;" d="M696 408v44h-608l-37 76l112 247l-112 247h645v119h83l366 -366l37 -75l-366 -366h-82zM1062 775l-306 306v-119h-609l85 -187l-85 -187h609v-119z" />
-<glyph unicode="&#x27b1;" d="M698 374h-656l114 251l-114 251l38 77h618v44l38 76h83l372 -372l-38 -76l-372 -372h-83v121zM1069 625l-310 311v-121h-620l87 -190l-87 -190h620v-121z" />
-<glyph unicode="&#x27b2;" d="M586 189q-103 0 -195 39.5t-160 108.5q-27 27 -49 57t-35 54h487v-129l372 372l-372 372v-128h-489q16 29 40 60.5t55.5 61t70 56t83.5 45.5q90 38 188 38q109 0 201 -41t158 -107q72 -72 109.5 -164t37.5 -192q0 -97 -37 -189t-110 -166q-76 -76 -168.5 -112t-186.5 -36 z" />
-<glyph unicode="&#x27b3;" d="M221 533v57l-133 199h384l133 -199h278v198q62 -67 127 -123.5t135 -102.5q-70 -47 -135 -103.5t-127 -123.5v198h-278l-133 -199h-384zM307 590l-114 171h-43l114 -171h43zM392 590l-114 171h-43l114 -171h43zM477 590l-114 171h-42l114 -171h42zM562 590l-113 171h-43 l114 -171h42zM193 362l114 171h-43l-114 -171h43zM278 362l114 171h-43l-114 -171h43zM363 362l114 171h-42l-114 -171h42zM449 362l113 171h-42l-114 -171h43z" />
-<glyph unicode="&#x27b4;" d="M393 955v230l345 -345v-229zM116 908h230l346 -344h-230zM1117 186q-114 34 -248 34q-55 0 -112 -6l143 143l-207 207l46 46l207 -207l142 143q-6 -57 -6 -111q0 -132 35 -249z" />
-<glyph unicode="&#x27b5;" d="M909 642h-256v56h256v177q111 -135 240 -205q-129 -70 -240 -205v177zM84 841h426l142 -143h-426zM226 640h426l-142 -142h-426z" />
-<glyph unicode="&#x27b6;" d="M692 752l207 207l-142 143q57 -6 111 -6q66 0 128 8.5t120 25.5q-34 -115 -34 -248q0 -28 1.5 -55.5t3.5 -56.5l-142 143l-207 -207zM462 751h230l-345 -344h-230zM394 360l345 344v-230l-345 -344v230z" />
-<glyph unicode="&#x27b7;" d="M1154 186q-125 36 -269 36q-58 0 -118 -6q63 61 140 96q17 7 31 11t25 5l-266 265q-27 27 -57.5 39t-63.5 12q-36 0 -69 -13t-57 -38l-371 371q31 32 69 47t77 15q42 0 81.5 -15.5t68.5 -46.5q-29 31 -45 70t-16 80q0 40 16 79t45 69l371 -372q-28 -29 -38.5 -59 t-10.5 -62q0 -37 12 -70q7 -15 17 -30.5t20 -25.5l266 -265q2 11 7 27t10 27q17 42 40.5 76.5t54.5 64.5q-6 -62 -6 -121q0 -142 36 -266z" />
-<glyph unicode="&#x27b8;" d="M932 394q0 78 28 146q5 11 11 23.5t12 20.5h-328q-63 0 -108 -45t-45 -108h-459q0 37 13.5 70.5t40.5 59.5q26 25 59 39.5t70 14.5q-37 0 -71 15t-58 39q-54 54 -54 130h459q0 -63 45 -108t108 -45h328q-11 14 -23 44q-28 68 -28 146q119 -145 258 -221 q-139 -76 -258 -221z" />
-<glyph unicode="&#x27b9;" d="M393 176q-28 27 -42.5 63.5t-14.5 74.5q0 37 14.5 73t42.5 65q-28 -29 -65 -43t-73 -14q-39 0 -74.5 14.5t-63.5 42.5l345 344q22 -22 52.5 -34.5t62.5 -12.5q33 0 63 12.5t52 34.5l246 247q-20 1 -51 15q-73 31 -131 89q55 -6 111 -6q66 0 128.5 8.5t120.5 25.5 q-34 -114 -34 -247q0 -55 6 -113q-31 31 -51 61.5t-37 69.5q-11 26 -17 50l-246 -246q-25 -27 -35.5 -55t-10.5 -58q0 -32 11.5 -62.5t34.5 -53.5l-344 -345v0z" />
-<glyph unicode="&#x27ba;" d="M1179 652q-137 37 -238.5 70.5t-169.5 63.5q-44 19 -62 61q-8 22 -8 43q0 49 33 80q33 33 80 33q23 0 42.5 -8.5t36.5 -24.5q13 -11 25 -36q90 -194 261 -282zM204 500q-31 0 -59.5 12.5t-46.5 31.5q-23 24 -33 49q-11 28 -11 58q0 31 12 59t32 47q22 21 48.5 33t57.5 12 q29 0 57 -11q133 -51 361 -85.5t556 -54.5q-671 -42 -917 -141q-26 -10 -57 -10zM814 298q-24 0 -44 9t-36 24q-33 31 -33 81q0 22 8.5 43t24.5 36q16 16 37 25q93 37 194.5 70t213.5 64q-170 -89 -261 -282q-9 -22 -25.5 -37t-36.5 -25q-21 -8 -42 -8z" />
-<glyph unicode="&#x27bb;" d="M920 367q-61 63 -61 144q0 42 15.5 77t45.5 67q-30 32 -45.5 67t-15.5 77q0 81 61 144q80 -196 284 -288q-204 -92 -284 -288zM290 451q-48 0 -85 19t-57 40q-16 20 -24 34.5t-18 32.5q-14 25 -29 41.5t-48 36.5q34 21 49.5 39t27.5 39t22 37.5t21.5 30t26.5 24t36 19.5 q34 15 75 15q27 0 51.5 -5.5t45.5 -14.5t40 -19.5t36 -19.5q38 -21 78 -39.5t92.5 -35.5t121.5 -34t166 -36q-106 -21 -179 -39.5t-124 -36t-87 -34.5t-68 -35q-36 -20 -79 -39.5t-91 -19.5z" />
-<glyph unicode="&#x27bc;" d="M70 446q-12 0 -22 10t-10 24q0 6 2 12l93 185q3 4 3 13q0 8 -3 13l-93 185q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h498q6 0 12 -2.5t10 -7.5q2 -1 7 -11l73 -146q5 -10 18 -18q8 -2 12 -2h229q6 0 12.5 3t10.5 7q10 10 10 22q0 4 -3 13l-22 81q-1 5 -1.5 7t-0.5 6 q0 13 10 23q5 4 10.5 6.5t11.5 2.5q7 0 13.5 -3t9.5 -6l195 -195q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-195 -195q-3 -3 -9.5 -6t-13.5 -3q-6 0 -11.5 2.5t-10.5 6.5q-10 10 -10 23q0 4 0.5 6t1.5 7l22 81q3 9 3 13q0 12 -10 22q-4 4 -10.5 7t-12.5 3h-229q-6 0 -12 -3 t-11 -7q-4 -4 -7 -10l-73 -146q-4 -9 -7.5 -12t-10.5 -6q-5 -3 -11 -3h-498v0z" />
-<glyph unicode="&#x27bd;" d="M838 357q-7 0 -12.5 3t-10.5 7q-10 10 -10 23q0 3 0.5 6t1.5 7l71 178q3 6 3 13q0 5 -2.5 11.5t-7.5 10.5q-4 4 -10.5 7t-12.5 3h-75q-6 0 -12 -3t-10 -7q-6 -6 -8 -10l-97 -195q-4 -8 -8 -11.5t-10 -6.5q-5 -3 -12 -3h-537q-13 0 -23 10t-10 24q0 7 3 12l117 234 q2 6 2 13t-2 13l-126 250q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h538q16 0 23 -10q2 -1 7 -11l105 -211q5 -10 18 -18q8 -2 12 -2h75q6 0 12.5 3t10.5 7q5 4 7.5 10.5t2.5 11.5q0 7 -3 13l-71 178q-1 4 -1.5 7t-0.5 6q0 13 10 23q5 4 10.5 7t12.5 3q6 0 12 -3t10 -7 l325 -292q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-325 -292q-4 -4 -10 -7t-12 -3z" />
-<glyph unicode="&#x27be;" d="M50 756h612q-32 51 -52.5 98.5t-34.5 90.5h79q5 -14 10.5 -29t12.5 -29q11 -24 22.5 -47t26 -46.5t33 -50t44.5 -58.5h-753v71zM782 285q35 75 79 138.5t103 117.5q11 11 29.5 26t53.5 40q-26 18 -47.5 35t-36.5 31q-56 51 -102.5 119.5t-78.5 135.5l-8 17h82 q13 -29 32.5 -60.5t41 -61t44.5 -55.5t43 -45q32 -30 73 -59t93 -57q-103 -56 -187.5 -137t-139.5 -202h-82zM575 268q14 45 34.5 91.5t52.5 98.5h-612v71h753q-25 -30 -43.5 -56.5t-33.5 -51t-26.5 -47.5t-22.5 -47q-5 -10 -10 -22.5t-13 -36.5h-79z" />
-<glyph unicode="&#x27c2;" d="M66 238h430v1046h237v-1046h432v-238h-1099v238z" />
-<glyph unicode="&#x27c5;" d="M866 -334q-31 0 -54 1t-41.5 2.5t-33.5 3.5t-28 4q-151 25 -246.5 71.5t-145 114.5t-58.5 158t12 201.5t67.5 245t107.5 288.5q52 131 87.5 221.5t57.5 150.5t33 94.5t13 52.5q4 32 -12.5 56t-56.5 24q-61 0 -91 -65l-215 100q35 62 93.5 102.5t126 60t137.5 18 t128.5 -24t99.5 -66.5t50 -109q6 -42 -2 -94.5t-29 -121.5t-54.5 -158.5t-78.5 -205.5q-47 -122 -83 -216.5t-60 -168.5t-37.5 -132.5t-15.5 -108.5q-5 -118 56 -182t193 -76q33 -3 56 -5t54 -7q36 -7 81 -4v-225h-111v0z" />
-<glyph unicode="&#x27c6;" d="M256 -109q30 -2 47 -0.5t35 4.5q42 6 70.5 8.5t38.5 3.5q137 15 196 79.5t53 178.5q-3 57 -20 125.5t-44 147.5t-61 167.5t-71 185.5q-45 117 -82 222t-57 193.5t-19 158.5t31 118t94 71.5t171 19.5q56 -2 103 -12.5t87.5 -31.5t75.5 -55.5t67 -84.5l-215 -100 q-30 65 -91 65q-39 0 -56 -23.5t-13 -56.5q3 -23 16.5 -64.5t38 -104.5t59 -149.5t78.5 -200.5q61 -157 107 -291t67.5 -245.5t12 -201t-59 -157t-145 -113.5t-246.5 -71q-27 -5 -61.5 -8t-95.5 -3h-111v225z" />
-<glyph unicode="&#x27dc;" d="M310 359q-59 0 -110 22.5t-89.5 61.5t-60.5 92t-22 114q0 60 21.5 111t59.5 89t91 59.5t115 21.5q115 0 200 -82q20 -19 34.5 -39.5t24.5 -43.5h631v-238h-631q-10 -23 -24 -42.5t-31 -36.5q-45 -45 -98.5 -67t-110.5 -22zM312 509q29 0 54 11t44 29.5t29.5 43.5t10.5 54 q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43 -29.5t53.5 -10.5z" />
-<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
-<glyph unicode="&#x27e6;" d="M297 1556h683v-120h-281v-1586h281v-120h-683v1826zM579 -150v1586h-162v-1586h162z" />
-<glyph unicode="&#x27e7;" d="M253 -150h281v1586h-281v120h683v-1826h-683v120zM816 -150v1586h-162v-1586h162z" />
-<glyph unicode="&#x27e8;" d="M338 642l285 912h272l-286 -912l286 -912h-272z" />
-<glyph unicode="&#x27e9;" d="M624 642l-286 912h272l285 -912l-285 -912h-272z" />
-<glyph unicode="&#x27ea;" d="M88 642l285 912h272l-286 -912l286 -912h-272zM588 642l285 912h272l-286 -912l286 -912h-272z" />
-<glyph unicode="&#x27eb;" d="M374 642l-286 912h272l285 -912l-285 -912h-272zM874 642l-286 912h272l285 -912l-285 -912h-272z" />
-<glyph unicode="&#x27f5;" d="M-100 490v142l291 291l120 -120l-130 -130h1152v-224h-1152l130 -130l-120 -120z" />
-<glyph unicode="&#x27f6;" d="M922 319l130 130h-1152v224h1152l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x27f7;" d="M-100 490v142l291 291l120 -120l-130 -130h871l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-871l130 -130l-120 -120z" />
-<glyph unicode="&#x2987;" d="M978 -270q-122 27 -223 77t-181.5 118t-140 151t-99.5 176t-59.5 193t-19.5 202q0 98 18.5 196t57 189.5t97.5 174.5t139 150.5t182.5 118t228.5 78.5v-1824zM858 1373q-48 -13 -92.5 -49t-83.5 -89.5t-70.5 -121.5t-54 -144.5t-35 -160t-12.5 -166.5t12.5 -166.5 t35 -160t54 -144.5t70.5 -121.5t83.5 -89.5t92.5 -49v1462z" />
-<glyph unicode="&#x2988;" d="M255 1554q122 -27 223 -77t181.5 -118t140 -151t99.5 -176t59.5 -193t19.5 -202q0 -98 -18.5 -196t-57 -189.5t-97.5 -174.5t-139 -150.5t-182.5 -118.5t-228.5 -78v1824zM375 -89q48 13 92.5 49t83.5 89.5t70.5 121.5t54 144.5t35 159.5t12.5 167q0 83 -12.5 166.5 t-35 160t-54 144.5t-70.5 121.5t-83.5 89.5t-92.5 49v-1462z" />
-<glyph unicode="&#x2997;" d="M380 139v968l502 501l131 -131l-279 -278v-1122l279 -268l-131 -131z" />
-<glyph unicode="&#x2998;" d="M220 -191l279 278v1122l-279 268l131 131l502 -461v-968l-502 -501z" />
-<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
-<glyph unicode="&#x29fa;" d="M248 524h-182v238h182v430h237v-430h263v430h237v-430h180v-238h-180v-432h-237v432h-263v-432h-237v432z" />
-<glyph unicode="&#x29fb;" d="M148 524h-82v238h82v430h217v-430h143v430h217v-430h143v430h217v-430h80v-238h-80v-432h-217v432h-143v-432h-217v432h-143v-432h-217v432z" />
-<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -275q347 0 347 814q0 818 -347 818q-346 0 -346 -818q0 -814 346 -814zM449 711h333v-365h-333v365z" />
-<glyph unicode="&#x2a2f;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
-<glyph unicode="&#x2a6a;" d="M481 912q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5 h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2a6b;" d="M721 912q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5 h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM240 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
-<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
-<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
-<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
-<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
-<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
-<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
-<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
-<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
-<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
-<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
-<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
-<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
-<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
-<glyph unicode="&#x2c7d;" d="M264 1504h187l165 -698l166 698h187l-224 -836h-257z" />
-<glyph unicode="&#x2e18;" d="M664 1236q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM603 -64q-99 0 -178 24t-135 69.5t-86 111t-30 147.5 q0 37 7.5 71t25.5 69t49.5 74t79.5 86l88 86q37 36 57.5 62t31 48.5t13 46t4.5 54.5l2 47v123h267v-851l20 8q21 8 41.5 17.5t43 21.5t47.5 28t55 38v-268q-99 -57 -198 -85t-205 -28zM532 459q-35 -37 -54 -71t-19 -78q0 -66 46 -100q12 -9 27 -15v264z" />
-<glyph unicode="&#x2e1f;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM480 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2e22;" d="M422 1556h508v-190h-242v-540h-266v730z" />
-<glyph unicode="&#x2e23;" d="M545 1366h-242v190h508v-730h-266v540z" />
-<glyph unicode="&#x2e24;" d="M422 460h266v-540h242v-190h-508v730z" />
-<glyph unicode="&#x2e25;" d="M303 -80h242v540h266v-730h-508v190z" />
-<glyph unicode="&#x2e2e;" d="M526 524q-1 14 -1.5 26t-0.5 21q0 29 -3 52.5t-14 47t-32 50t-57 61.5l-88 86q-48 47 -79.5 85.5t-49.5 74t-25.5 69.5t-7.5 71q0 82 30 147.5t86 111t135 69.5t178 24q106 0 205 -28t198 -85v-268q-103 75 -192.5 108t-174.5 33q-89 0 -134.5 -34t-45.5 -102 q0 -23 5.5 -43.5t18.5 -41.5t33.5 -44.5t50.5 -53.5l90 -89q39 -38 66 -73t44 -71.5t24.5 -78.5t7.5 -94v-154h-267v123zM652 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5 q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
-<glyph unicode="&#xfeff;" />
-<glyph d="M615 1508q17 0 34 -2.5t34 -10.5q17 -7 29.5 -15.5t26.5 -23.5q12 -13 17 -20t11 -18q8 -14 11.5 -23t5.5 -22q5 -25 5 -49q0 -41 -12 -74.5t-37 -58.5q-24 -25 -56.5 -38t-66.5 -13q-8 0 -16.5 0.5t-14.5 1.5l-26 6q-6 2 -14.5 5.5t-10.5 4.5q-7 3 -13 7t-10 7 q-4 4 -7 6.5t-14 13.5q-50 49 -50 131q0 84 50 134q23 23 54.5 37t69.5 14zM687 960l68 -576v-456h-285v456l78 576h139z" />
-<glyph d="M669 1230q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM603 -27q-99 0 -178 24t-135 69.5t-86 111t-30 147.5 q0 37 7.5 71t25.5 69t49.5 74t79.5 86l88 86q37 36 57.5 62t31 48.5t13 46t4.5 54.5l2 47v123h267v-851l20 8q21 8 41.5 17.5t43 21.5t47.5 28t55 38v-268q-99 -57 -198 -85t-205 -28zM532 496q-35 -37 -54 -71t-19 -78q0 -66 46 -100q12 -9 27 -15v264z" />
-<glyph d="M662 1230q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM602 -27q-98 0 -176.5 24t-134 69.5t-85.5 110.5 t-30 147q0 38 7.5 72.5t26 69.5t49.5 73.5t79 85.5l88 86q33 32 53 56.5t31.5 48t15.5 48.5t4 58q0 3 1 6q1 11 1 21v20v123h267v-154q0 -52 -7.5 -93t-24 -78t-43.5 -72t-67 -74l-90 -89q-29 -29 -49.5 -52.5t-33 -45t-18 -42t-5.5 -43.5q0 -68 45.5 -102t133.5 -34 t176.5 34.5t189.5 106.5v-268q-99 -57 -198.5 -85t-205.5 -28z" />
-<glyph horiz-adv-x="0" d="M-617 1635q-148 0 -234 67t-101 197h141q41 -121 194 -121t193 121h143q-15 -130 -101 -197t-235 -67z" />
-<glyph horiz-adv-x="0" d="M-952 1635q15 130 101 197t234 67q149 0 235 -67t101 -197h-143q-40 121 -193 121t-194 -121h-141v0z" />
-<glyph horiz-adv-x="0" d="M-1122 1899h284l199 -264h-197zM-747 1899h284l199 -264h-197z" />
-<glyph horiz-adv-x="0" d="M-754 1899h275v-246h-275v246z" />
-<glyph horiz-adv-x="0" d="M-770 1899h284l-286 -264h-197zM-395 1899h284l-286 -264h-197z" />
-<glyph horiz-adv-x="0" d="M-932 1870h631v-188h-631v188z" />
-<glyph d="M331 1280q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1280q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
-<glyph d="M668 1526h284l-286 -264h-197z" />
-<glyph d="M268 1292q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q35 0 73 -12q16 -5 37 -15.5t38 -21.5l60 -39q11 -7 19.5 -11.5t21.5 -9.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9t-1 -8v-5q0 -56 -13.5 -98.5t-39.5 -74.5q-29 -35 -65 -50t-77 -15 q-36 0 -72 11q-20 6 -38.5 15t-39.5 23l-54 34l-12 7q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30z" />
-<glyph d="M283 1526h284l199 -264h-197z" />
-<glyph d="M461 1526h309l223 -264h-178l-199 161l-198 -161h-178z" />
-<glyph d="M240 1526h178l198 -162l199 162h178l-223 -264h-309z" />
-<glyph d="M47 618l1059 263l37 -119l-1059 -262z" />
-<glyph d="M639 848h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM639 991v330l-250 -330h250z" />
-<glyph d="M616 1262q-147 0 -233 68q-42 32 -68 79.5t-34 116.5h141q19 -59 69 -90q49 -31 125 -31q77 0 125 30q49 31 68 91h143q-15 -128 -101 -196q-45 -35 -104.5 -51.5t-130.5 -16.5z" />
-<glyph d="M509 1280q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215v0z" />
-<glyph d="M615 -434q-337 0 -337 434q0 433 337 433q339 0 339 -433q0 -434 -339 -434zM616 -294q71 0 102 70q32 70 32 223q0 152 -32 224q-31 70 -102 70q-39 0 -63 -19t-39 -51q-33 -71 -33 -224q0 -151 33 -223q15 -32 39 -51t63 -19zM616 -71q-19 0 -34.5 5.5t-26.5 14.5 q-24 19 -24 49q0 31 24.5 51.5t59.5 20.5t60.5 -20.5t25.5 -50.5q0 -29 -24.5 -49.5t-60.5 -20.5z" />
-<glyph d="M313 -259h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145z" />
-<glyph d="M274 -259q38 32 61.5 51.5t38.5 32t23.5 20t17.5 14.5q161 133 237.5 218t76.5 133q0 17 -10 35t-30 33t-51 24.5t-73 9.5q-55 0 -121.5 -17.5t-144.5 -51.5v164q75 22 145.5 33.5t139.5 11.5q87 0 153 -18t110.5 -48t67.5 -69.5t23 -82.5t-22.5 -88.5t-67 -96.5 t-111 -110t-154.5 -129l-83 -65h440v-145h-666v141z" />
-<glyph d="M585 -415q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
-<glyph d="M639 -220h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM639 -77v330l-250 -330h250z" />
-<glyph d="M557 -407q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5z" />
-<glyph d="M637 -428q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178q64 73 200 73q139 0 214 -71.5t75 -205.5q0 -140 -83.5 -216.5t-244.5 -76.5zM637 -295q66 0 101 39t35 112 q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
-<glyph d="M711 290h-427v145h646v-117l-346 -718h-206z" />
-<glyph d="M617 -423q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5 t-246 -64.5zM616 99q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM615 -290q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
-<glyph d="M539 -430q-51 0 -100 7.5t-109 25.5v151q51 -24 101.5 -37.5t101.5 -13.5q107 0 163.5 61t59.5 177q-33 -36 -83 -54.5t-119 -18.5q-138 0 -212.5 71t-74.5 205q0 141 83.5 217t244.5 76q175 0 262.5 -100t87.5 -316q0 -232 -101 -341.5t-305 -109.5zM595 8 q66 0 100 38.5t34 112.5t-34 113t-100 39t-101 -39t-35 -112t35 -112.5t101 -39.5z" />
-<glyph horiz-adv-x="0" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/svg/hack-bolditalic-webfont.svg b/pagure/static/hack_fonts/fonts/svg/hack-bolditalic-webfont.svg
deleted file mode 100755
index c6f655a..0000000
--- a/pagure/static/hack_fonts/fonts/svg/hack-bolditalic-webfont.svg
+++ /dev/null
@@ -1,1591 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackbold_italic" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M637 1054l71 454h286l-72 -457l-159 -575h-139zM612 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70 t-71.5 -48q-33 -13 -74 -13z" />
-<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
-<glyph unicode="#" d="M199 373h-240l53 215h242l72 293h-240l53 215h242l94 374h221l-94 -374h205l94 374h221l-94 -374h240l-54 -215h-241l-72 -293h240l-54 -215h-241l-94 -373h-222l95 373h-205l-94 -373h-222zM678 588l74 293h-203l-74 -293h203z" />
-<glyph unicode="$" d="M361 0q-3 1 -46.5 7.5t-88.5 17.5q-51 13 -94 29t-93 38l51 262q45 -31 89 -54t89 -40q87 -32 186 -37l68 346q-94 22 -150.5 52t-94.5 70q-39 42 -58.5 92.5t-19.5 116.5q0 85 32 159t96 134q127 118 290 126l48 237h221l-47 -237q-5 -2 33.5 -7t70.5 -11 q33 -6 71 -15.5t78 -23.5l-50 -250q-32 21 -66 36t-65 25q-72 22 -163 25l-64 -314q182 -48 263 -132q41 -42 61 -95t20 -122q0 -89 -32.5 -164.5t-98.5 -135.5q-68 -62 -156.5 -94.5t-157.5 -40.5l-58 -301h-221zM624 1099q-83 -9 -123 -54q-22 -24 -32 -52t-10 -58 q0 -25 6.5 -42t19.5 -31q26 -29 86 -41zM578 227q91 10 141 59q23 23 36 50.5t13 64.5q0 52 -28 83q-29 31 -103 48z" />
-<glyph unicode="%" d="M353 778q-67 0 -130.5 22.5t-113.5 70.5q-43 42 -69.5 102t-26.5 132q0 70 25.5 130t70.5 104q47 46 110.5 69.5t140.5 23.5h9.5t15.5 -1q7 -1 16.5 -2t17.5 -3t14 -3t19 -5q18 -5 24 -7.5t8 -3.5q13 -5 21 -8.5t14.5 -6.5t12 -6.5t13.5 -8.5q29 -18 52 -40t42.5 -48 t33.5 -58q27 -60 27 -128t-25 -125t-76 -105q-22 -20 -50 -38.5t-63 -32.5q-63 -24 -133 -24zM351 943q36 0 68 12q11 4 25.5 11.5t31.5 23.5q26 24 39 52q13 27 13 61q0 69 -51 116q-26 23 -58.5 35t-67.5 12t-68 -11.5t-57 -34.5t-36 -53.5t-12 -62.5q0 -33 12 -62.5 t35 -52.5q22 -21 54.5 -33.5t71.5 -12.5zM22 570l1210 448v-145l-1210 -442v139zM898 0q-71 0 -134 24q-28 11 -56 27.5t-56 42.5q-15 14 -29.5 31.5t-25.5 36.5q-23 37 -33 77q-11 42 -11 88q0 72 27 131t74 103q48 45 110.5 69t135.5 24q72 0 131 -25q30 -13 60 -32.5 t49 -38.5q9 -9 12.5 -13t6.5 -7q1 -2 7.5 -10t8.5 -10q5 -8 6 -9t1 -1.5t1 -2t6 -9.5l14 -22q2 -4 5.5 -12t5.5 -11q8 -17 12.5 -32.5t7.5 -28.5q3 -14 4.5 -31.5t1.5 -33.5q0 -64 -24.5 -124t-71.5 -106q-43 -42 -105.5 -68.5t-140.5 -26.5zM900 165q74 0 124 47 q25 23 37 52t12 61q0 33 -12.5 63.5t-36.5 53.5q-20 20 -51.5 33.5t-73.5 13.5q-35 0 -67 -11.5t-57 -34.5q-50 -47 -50 -117q0 -12 1.5 -21.5t4.5 -20.5t6.5 -20t9.5 -19q4 -6 11.5 -16t16.5 -18q13 -12 26.5 -20t29.5 -14q31 -12 69 -12z" />
-<glyph unicode="&#x26;" d="M387 -29q-92 0 -170.5 26t-136.5 80q-59 55 -86 128.5t-27 156.5q0 161 99 304q51 73 120.5 133.5t163.5 113.5q-14 31 -22.5 56t-15.5 52q-6 24 -9.5 46t-3.5 51q0 88 33 163t100 130q66 54 158 81.5t204 27.5q37 0 71 -3t68 -8q33 -5 65 -13t67 -19l-49 -256 q-54 35 -118 54q-32 10 -64.5 14.5t-64.5 4.5q-48 0 -81 -9t-55 -26q-47 -36 -47 -101q0 -36 19 -93q11 -35 24.5 -67t34.5 -78l221 -480q42 58 66 135q23 75 28 170h235q-10 -156 -71 -282q-60 -125 -168 -217l115 -246h-316l-35 72q-43 -25 -86.5 -44t-88.5 -32 q-88 -25 -177 -25zM473 207q42 0 89 14q23 7 45.5 17t45.5 24l-217 469q-91 -53 -137 -126q-24 -38 -35.5 -80.5t-11.5 -84.5q0 -49 15.5 -91.5t47.5 -75.5t72.5 -49.5t85.5 -16.5z" />
-<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
-<glyph unicode="(" d="M440 -270q-39 82 -70 166t-52 171q-40 163 -40 326q0 149 32.5 292t97.5 289t159 288t227 292h225q-234 -314 -350 -613q-117 -302 -117 -595q0 -71 7 -145t21 -151q15 -81 36.5 -161t48.5 -159h-225v0z" />
-<glyph unicode=")" d="M243 -270q233 313 350 614t117 595q0 71 -7 144.5t-21 151.5q-29 155 -85 319h225q82 -173 122 -336q20 -83 30 -164.5t10 -161.5q0 -146 -32 -291t-97 -291q-64 -144 -161 -289t-226 -291h-225v0z" />
-<glyph unicode="*" d="M230 467l240 368l-361 157l46 130l371 -122l20 420h136l20 -420l371 122l46 -130l-361 -157l240 -368l-117 -84l-267 353l-267 -353z" />
-<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
-<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-12 -38 -30.5 -74.5t-40.5 -65.5q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
-<glyph unicode="-" d="M259 746h789l-56 -291h-788z" />
-<glyph unicode="." d="M614 -42q-76 0 -127 51q-24 24 -37.5 57.5t-13.5 76.5q0 79 51 132q51 51 125 51q76 0 127 -51t51 -134q0 -80 -51 -132q-51 -51 -125 -51z" />
-<glyph unicode="/" d="M852 1493h223l-854 -1683h-221z" />
-<glyph unicode="0" d="M504 -29q-108 0 -183.5 31.5t-125.5 95.5q-48 62 -72.5 154t-24.5 225q0 57 4 103.5t11 94.5q8 59 18 108t24 103q28 106 64.5 196.5t79.5 160.5q16 26 32 48t30 38q33 39 70 70q36 30 77 53q61 34 129.5 51t148.5 17q112 0 187 -32.5t123 -93.5q50 -63 74.5 -156 t24.5 -215q0 -93 -14 -200.5t-43 -216.5q-27 -103 -64.5 -195.5t-79.5 -160.5q-19 -31 -43 -63t-52 -60q-25 -25 -54 -47.5t-60 -39.5q-122 -69 -281 -69zM529 165q22 0 40.5 3t37.5 9q16 5 35 14t36 21q32 22 62.5 58t53.5 81q7 13 16 31.5t19 40.5q9 20 16.5 40t14.5 39 q5 14 9 24.5t7 20.5t6 19.5t7 22.5q5 16 12 43t13 53q5 22 9 39.5t7 32.5t5.5 29.5t5.5 29.5q6 35 10 64.5t6 58.5t3.5 58.5t1.5 53.5q0 17 -0.5 32.5t-1.5 27.5t-2 23t-4 26q-1 5 -4 19t-5 22q-2 6 -6 17.5t-8 18.5q-2 5 -6 11.5t-11 15.5q-11 15 -26 27t-34 20t-42 11.5 t-46 3.5q-42 0 -80.5 -12t-71.5 -35q-38 -26 -67 -62.5t-50 -74.5q-35 -63 -67 -151t-54 -184q-24 -103 -35.5 -201.5t-11.5 -172.5q0 -76 12 -125.5t38 -81.5q49 -61 150 -61zM572 410q-1 0 -1.5 1t-1.5 1h-4q-48 15 -44 131v12q0 3 0.5 6t1.5 7v13v4.5t1 9.5q4 33 6 52.5 t4 32.5t3.5 22.5t3.5 22.5q1 6 3.5 18t5 24.5t5 23t3.5 13.5q4 15 6.5 23.5t4 13t2 5.5t0.5 2q2 8 8 26.5t10 30.5q6 17 14.5 37.5t13.5 31.5q9 21 21 41t25.5 35.5t27 24.5t25.5 9h5q2 0 6 -2q53 -15 48 -128v-1q-1 -4 -1 -12v-14q-2 -32 -12 -102q-5 -25 -9 -46.5 t-7 -32.5q-4 -17 -11 -42t-16 -52t-18.5 -54.5t-18.5 -49.5q-14 -35 -26.5 -60t-25.5 -43q-14 -19 -27.5 -27t-27.5 -8h-3z" />
-<glyph unicode="1" d="M94 260h330l188 969l-321 -76l51 266l326 74h282l-239 -1233h309l-51 -260h-926z" />
-<glyph unicode="2" d="M13 218q4 19 11.5 31.5t21.5 25.5l251 225q28 25 46 40.5t32.5 28.5t29.5 26t37 33q108 97 184.5 174t125 138.5t70.5 110t22 87.5q0 32 -14 61t-42 49t-66.5 30t-86.5 10q-42 0 -89.5 -7.5t-98.5 -21.5q-45 -13 -102 -35t-120 -53l51 267q55 20 110 35.5t106 25.5 q54 11 107 16t98 5q95 0 176 -23t141 -71q56 -44 88.5 -105.5t32.5 -134.5q0 -131 -113.5 -291t-340.5 -353l-40 -34l-317 -248h647l-51 -260h-949z" />
-<glyph unicode="3" d="M421 -29q-51 0 -103.5 4.5t-111.5 14.5q-63 11 -120 24.5t-117 30.5l54 270q50 -24 100.5 -41.5t99.5 -28.5q52 -12 105 -18t102 -6q88 0 144.5 18.5t94.5 50.5t59.5 79.5t21.5 107.5q0 95 -64 143q-32 24 -76.5 36t-95.5 12h-158l52 260h157q123 0 202 56q40 29 58.5 64 t18.5 76q0 70 -57 108q-26 17 -66.5 27.5t-98.5 10.5q-82 0 -181 -21q-51 -11 -103 -26t-107 -35l54 268q54 17 103.5 28.5t97.5 19.5t94.5 12t86.5 4q106 0 189.5 -25t141.5 -71q62 -49 92 -116t30 -144q0 -66 -22.5 -124t-71.5 -109t-115 -81.5t-147 -44.5 q135 -36 200 -118q33 -42 49.5 -94.5t16.5 -122.5q0 -110 -41 -203t-122 -161t-193.5 -101.5t-252.5 -33.5z" />
-<glyph unicode="4" d="M612 322h-594l58 286l735 885h309l-178 -918h164l-49 -253h-164l-62 -322h-282zM662 575l110 578l-483 -578h373z" />
-<glyph unicode="5" d="M387 -29q-47 0 -94.5 4t-95.5 12q-97 17 -191 48l51 266q69 -40 156 -61q43 -11 88 -16t90 -5q90 0 157.5 20t116.5 59q50 40 74.5 93.5t24.5 117.5q0 108 -71 168t-195 60q-73 0 -158 -20q-80 -19 -162 -58l162 834h811l-51 -260h-572l-53 -277q31 13 69 19q36 6 78 6 q99 0 179 -30.5t135 -85.5q56 -56 85.5 -136t29.5 -184q0 -127 -44.5 -233.5t-133.5 -184.5q-88 -78 -210.5 -117t-275.5 -39z" />
-<glyph unicode="6" d="M544 -33q-107 0 -191.5 31.5t-142.5 94.5q-57 63 -85.5 156t-28.5 231q0 100 15 203t46 208q30 103 72.5 192.5t96.5 163.5q49 67 106 118t131 86q71 34 151 50.5t167 16.5q42 0 75 -3.5t68 -11.5q68 -15 145 -45l-51 -268q-38 27 -68 41.5t-62 25.5q-35 11 -70 17t-72 6 q-157 0 -263 -108q-54 -54 -92 -134.5t-61 -183.5q61 66 136 98q76 33 166 33q165 0 263 -111q48 -54 72.5 -129.5t24.5 -179.5q0 -131 -39.5 -236t-114.5 -190q-76 -85 -171.5 -128.5t-222.5 -43.5zM551 207q52 0 98 25.5t81 73.5t54 111.5t19 132.5q0 48 -10.5 84 t-34.5 63q-47 51 -122 51q-56 0 -102 -27.5t-78 -72.5q-36 -51 -54.5 -114t-18.5 -126q0 -50 11 -86t34 -62q21 -24 51.5 -38.5t71.5 -14.5z" />
-<glyph unicode="7" d="M844 1233h-633l51 260h963l-41 -209l-756 -1284h-319z" />
-<glyph unicode="8" d="M502 -29q-106 0 -187 26t-137 74q-115 100 -115 281q0 85 25.5 157t73.5 130t116 99t156 61q-51 14 -90 37.5t-67 60.5q-26 34 -40 77.5t-14 100.5q0 88 36 169t111 147q69 60 160 94.5t200 34.5q90 0 164 -24.5t131 -73.5q54 -47 83 -112t29 -149q0 -145 -89 -248 q-88 -101 -239 -127q108 -28 170 -113q30 -42 45.5 -93t15.5 -119q0 -104 -36.5 -194.5t-111.5 -159.5q-69 -63 -166.5 -99.5t-223.5 -36.5zM653 903q44 0 86 15t74 45q64 60 64 153q0 79 -46 124q-47 44 -126 44q-94 0 -157 -61q-29 -28 -46 -67t-17 -86q0 -35 11 -66 t34 -54q24 -25 55 -36t68 -11zM528 209q54 0 100 19t81 57q34 37 51.5 86t17.5 103q0 49 -14 84t-39 59q-24 23 -60 37t-86 14q-112 0 -182 -75q-35 -37 -53 -86t-18 -102q0 -44 13.5 -81t42.5 -64q28 -26 65 -38.5t81 -12.5z" />
-<glyph unicode="9" d="M345 -31q-42 0 -75.5 3.5t-68.5 11.5q-31 7 -67.5 17.5t-78.5 27.5l51 268q30 -21 62.5 -38.5t68.5 -28.5q35 -11 70 -17t72 -6q156 0 262 109q58 60 94.5 140t59.5 177q-63 -66 -137 -98q-38 -17 -78.5 -25t-85.5 -8q-92 0 -156 31t-106 79q-52 60 -74.5 138.5 t-22.5 168.5q0 130 41 241.5t110 189.5q75 85 177 127.5t222 42.5q109 0 192.5 -33t137.5 -93q113 -123 113 -386q0 -99 -15 -204t-45 -208t-72.5 -193t-96.5 -165q-52 -72 -108.5 -120t-127.5 -82q-73 -35 -152.5 -51t-165.5 -16zM589 739q106 0 179 100q36 50 55 111 t19 128q0 48 -10.5 84.5t-34.5 64.5q-46 53 -122 53q-107 0 -179 -101q-36 -51 -54 -114t-18 -130q0 -54 11 -86.5t34 -58.5q20 -23 48.5 -37t71.5 -14z" />
-<glyph unicode=":" d="M734 747q-40 0 -68 13t-46 33q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14zM620 35q-40 0 -68 13t-46 33 q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14z" />
-<glyph unicode=";" d="M724 698q-38 0 -70.5 13.5t-55.5 39.5q-19 23 -26.5 52t-7.5 60v4.5t1 7.5l2 20q4 20 9.5 38t16.5 38q19 34 48 60q29 24 63 38.5t76 14.5q38 0 70 -13.5t55 -39.5q18 -22 27.5 -49t9.5 -62v-4.5t-1 -7.5l-2 -19q-6 -29 -12 -45t-16 -33q-10 -18 -21 -32t-27 -28 q-17 -15 -32.5 -23.5t-32.5 -16.5q-33 -13 -74 -13zM320 -342l13 6q129 54 205 134.5t101 182.5q-5 -1 -10 -1h-10q-79 0 -122 46q-35 37 -35 93v10q0 6 0.5 12.5t1.5 14.5q6 39 25 71t48 55q18 16 42 25q20 12 45 16q11 2 23 3.5t26 1.5q48 0 84 -19t59 -61 q14 -26 20.5 -56.5t6.5 -59.5q0 -17 -2 -42.5t-5 -47.5q-13 -90 -51 -171t-98 -148q-31 -34 -65.5 -61.5t-74.5 -53.5q-50 -32 -92 -51t-79 -32l-16 -5z" />
-<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
-<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
-<glyph unicode="?" d="M531 585q12 83 55 152q24 39 57.5 75t84.5 79l104 89q36 31 61.5 56.5t38.5 44.5q28 40 36 86q1 3 1 9q1 3 1 8t1 8v7q0 29 -10.5 54.5t-30.5 44.5q-25 24 -66 38q-20 7 -43 10t-46 3q-43 0 -85.5 -9.5t-83.5 -24.5q-49 -18 -98.5 -43.5t-101.5 -57.5l-28 -17l36 228l7 3 q13 8 34.5 18.5t34.5 16.5q16 8 34.5 15.5t34.5 13.5q17 7 31 11.5t37 10.5q48 13 97 21t109 8q105 0 175 -26t119 -74q16 -15 26 -28.5t18 -29.5q18 -32 27 -68q5 -18 7 -37t2 -33t-2 -35.5t-4 -38.5q-10 -76 -59 -148q-14 -21 -28 -37.5t-33 -36.5q-23 -25 -44 -44 t-49 -42l-102 -86q-5 -4 -13.5 -11.5t-18 -16.5t-18.5 -17.5t-16 -15.5q-11 -11 -21 -23.5t-15 -20.5q-12 -18 -19.5 -38.5t-10.5 -38.5l-8 -47l-14 -93h-220zM556 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5 t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
-<glyph unicode="@" d="M599 -319q-137 0 -250.5 48.5t-195.5 142.5q-84 96 -125.5 225.5t-41.5 289.5q0 163 44 322q23 81 55.5 156t72.5 139q115 185 284 289q81 50 170.5 76t186.5 26t176.5 -26t136.5 -76q61 -54 89 -123.5t28 -146.5q0 -13 -0.5 -31t-2.5 -32q-1 -10 -3.5 -24t-8.5 -44 l-147 -757h-197l17 82q-42 -48 -99 -75q-35 -17 -66 -22t-58 -5q-66 0 -120 22.5t-93 65.5q-42 46 -61 108t-19 137q0 109 34.5 206t92.5 167q65 78 146.5 115t165.5 37q35 0 66 -6t57 -18q27 -13 47.5 -32t33.5 -40q5 17 8.5 34t5.5 34t3 32.5t1 26.5q0 50 -16 87t-45 62 t-72.5 39t-100.5 14q-58 0 -116.5 -15.5t-115.5 -47.5t-107 -78t-94 -104q-51 -67 -84.5 -136.5t-54.5 -134.5q-48 -149 -48 -302q0 -113 28 -210t89 -169q58 -69 138.5 -104.5t180.5 -35.5q79 0 160 24t162 72l63 -174q-105 -56 -202 -84q-43 -12 -93.5 -19t-104.5 -7z M724 301q51 0 96 24t78 67q35 46 53 105t18 119q0 45 -10 74.5t-30 51.5q-41 44 -112 44q-51 0 -95.5 -22.5t-79.5 -66.5q-35 -45 -53 -101.5t-18 -114.5q0 -38 8.5 -73t31.5 -61q17 -20 45.5 -33t67.5 -13z" />
-<glyph unicode="A" d="M582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="B" d="M270 1495h482q210 0 319 -83q107 -83 107 -248q0 -159 -95 -259t-270 -119q66 -5 122 -28t94 -62q39 -40 58 -95t19 -121q0 -48 -9.5 -98.5t-28.5 -97.5q-18 -45 -45 -85t-62 -72q-74 -67 -190 -97t-310 -30h-481zM639 913q122 0 183 55q29 26 45 64.5t16 90.5 q0 40 -10.5 64.5t-32.5 40.5q-44 32 -133 32h-197l-68 -347h197zM508 236q157 0 230 67q37 34 55 85t18 113q0 54 -13.5 85t-39.5 51q-53 41 -164 41h-197l-86 -442h197z" />
-<glyph unicode="C" d="M598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q130 57 283 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5 q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z " />
-<glyph unicode="D" d="M283 1493h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -57t-12 -52.5q-20 -81 -44 -146t-46 -110q-29 -60 -62 -103.5t-62 -72.5q-45 -44 -102.5 -77.5t-123.5 -53.5q-127 -40 -349 -40h-330zM434 266 q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-186 -961h96z" />
-<glyph unicode="E" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="F" d="M338 1493h930l-51 -260h-635l-62 -332h578l-51 -260h-578l-127 -641h-295z" />
-<glyph unicode="G" d="M611 -29q-128 0 -220.5 38t-155.5 106q-70 76 -101.5 181t-31.5 232q0 96 17.5 204.5t54.5 216.5q32 94 80.5 183t112.5 162q45 51 101.5 94.5t126.5 74.5q130 57 281 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-66 -328q-51 67 -120 102q-70 35 -149 35 q-39 0 -73 -8t-63 -21q-30 -14 -58.5 -34.5t-57.5 -52.5q-23 -25 -41 -52t-35 -58q-16 -29 -31 -63t-29 -77q-15 -45 -28 -94.5t-21 -94.5q-17 -94 -17 -169q0 -82 18.5 -136.5t45.5 -87.5q34 -42 80.5 -60t100.5 -18q19 0 34.5 2t32.5 7q12 3 26 8t29 16l57 291h-206 l49 248h460l-139 -709q-72 -60 -168 -91q-99 -32 -212 -32z" />
-<glyph unicode="H" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
-<glyph unicode="I" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="J" d="M411 -29q-55 0 -111 6.5t-108 19.5q-46 11 -100.5 31.5t-111.5 49.5l65 344q78 -96 167 -143q88 -48 194 -48q112 0 169 54q29 27 49.5 74t34.5 120l148 754h-361l52 260h655l-199 -1014q-17 -88 -35.5 -150.5t-38.5 -105.5q-20 -42 -46.5 -77t-61.5 -64t-74.5 -49 t-83.5 -34q-46 -14 -97 -21t-106 -7z" />
-<glyph unicode="K" d="M270 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
-<glyph unicode="L" d="M371 1493h295l-240 -1233h631l-51 -260h-926z" />
-<glyph unicode="M" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
-<glyph unicode="N" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
-<glyph unicode="O" d="M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 60.5 198t74.5 160q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q13 37 22 69t20 78q15 63 25.5 115t18.5 101q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-13 -52 -24.5 -107.5t-19.5 -106.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="P" d="M305 1493h420q236 0 360 -91q63 -47 93 -114t30 -159q0 -51 -9 -107t-27 -113q-19 -59 -42.5 -101.5t-52.5 -76.5q-77 -90 -194 -131t-301 -41h-164l-109 -559h-295zM610 807q75 0 129.5 18t89.5 50q36 34 54 84.5t18 111.5q0 98 -52 136q-53 38 -177 38h-121l-84 -438 h143z" />
-<glyph unicode="Q" d="M535 -29h-27q-109 0 -192 31.5t-140 92.5q-60 65 -87.5 158.5t-27.5 220.5q0 88 12.5 190t37.5 206t59 195t74 161q38 66 87 122t117 97q60 36 131 55.5t153 19.5q106 0 187.5 -32t137.5 -91q62 -66 88 -156.5t26 -216.5q0 -83 -11.5 -183.5t-37.5 -213.5 q-23 -100 -56.5 -195t-75.5 -170q-21 -37 -43 -66.5t-45 -54.5q-53 -56 -126 -102l239 -320h-344zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q11 21 23 50t23 60q21 60 42 147q16 65 26 116.5t18 99.5q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-16 -64 -26 -114.5t-18 -99.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="R" d="M294 1493h410q231 0 344 -87q54 -42 83 -108t29 -165q0 -90 -24.5 -164t-73.5 -131q-98 -114 -279 -133q60 -9 95 -45q34 -36 61 -123l164 -537h-301l-106 376l-8 27q-31 101 -68.5 144t-89.5 43h-117l-115 -590h-295zM585 838q70 0 121 16.5t84 47.5q35 32 52 79t17 103 q0 86 -46 123q-47 38 -138 38h-133l-80 -407h123z" />
-<glyph unicode="S" d="M469 -29q-58 0 -113.5 6.5t-112.5 19.5q-60 14 -118 33.5t-121 45.5l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5 q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41q-37 -29 -55.5 -65.5t-18.5 -69.5q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72 t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-78 -66 -187.5 -101.5t-246.5 -35.5z" />
-<glyph unicode="T" d="M563 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
-<glyph unicode="U" d="M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 18 3.5 30t3 23.5t4 23.5t6.5 30l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-75 -73 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="V" d="M203 1493h291l24 -1251l506 1251h301l-645 -1493h-412z" />
-<glyph unicode="W" d="M143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
-<glyph unicode="X" d="M471 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
-<glyph unicode="Y" d="M432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="Z" d="M4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
-<glyph unicode="[" d="M649 1651h455l-28 -173h-240l-251 -1590h240l-28 -173h-455z" />
-<glyph unicode="\" d="M340 1493h203l198 -1683h-202z" />
-<glyph unicode="]" d="M373 -112h240l251 1589h-240l28 173h455l-307 -1935h-455z" />
-<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
-<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
-<glyph unicode="`" d="M371 1638h284l209 -376h-198z" />
-<glyph unicode="a" d="M379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19 t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66 t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="b" d="M651 -29q-58 0 -102.5 17t-78.5 46t-57 71t-32 102l-70 -207h-264l303 1556h293l-119 -604q63 96 146 146q42 25 86.5 37t91.5 12q71 0 130.5 -27t102.5 -82q45 -57 64.5 -135t19.5 -171q0 -58 -7.5 -123t-22.5 -130q-13 -54 -34.5 -116t-51.5 -119q-34 -63 -78 -114.5 t-95 -86.5t-108.5 -53.5t-116.5 -18.5zM599 209q57 0 106.5 37.5t86.5 104.5q38 69 58 155.5t20 175.5q0 60 -10 100.5t-31 68.5q-42 56 -115 56q-53 0 -104.5 -33t-93.5 -105q-39 -67 -60.5 -153t-21.5 -172q0 -63 11.5 -105t32.5 -70q22 -29 53 -44.5t68 -15.5z" />
-<glyph unicode="c" d="M621 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145 t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
-<glyph unicode="d" d="M382 -29q-144 0 -230 110q-43 55 -64.5 129.5t-21.5 175.5q0 60 7.5 124t23.5 129t39 126.5t48 108.5q32 61 76 112.5t98 89.5q104 73 223 73q111 0 185 -63q34 -29 57 -73t31 -102l125 645h293l-303 -1556h-262l2 166q-66 -96 -148 -145q-83 -50 -179 -50zM517 211 q57 0 107 34.5t92 104.5t62.5 153t20.5 171q0 66 -11.5 106.5t-33.5 69.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102.5t31.5 -66.5q42 -56 113 -56z" />
-<glyph unicode="e" d="M583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q115 54 250 54q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759 q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="f" d="M456 895h-273l43 225h273l16 78q23 114 56.5 182t77.5 103q46 36 126.5 54.5t204.5 18.5h240l-43 -225h-230q-66 0 -94 -27q-14 -14 -25.5 -41.5t-19.5 -66.5l-16 -76h344l-43 -225h-344l-174 -895h-293z" />
-<glyph unicode="g" d="M386 -424q-99 0 -190 15q-46 8 -90 19t-88 25l54 265q76 -46 158 -68q42 -11 83.5 -16.5t82.5 -5.5q66 0 115 14.5t84 43.5q39 32 60 77.5t33 105.5l27 133q-54 -83 -131 -125q-77 -43 -175 -43q-76 0 -137.5 25t-110.5 80q-48 54 -70.5 123t-22.5 163q0 65 10.5 135 t31.5 141q23 76 52 137.5t63 111.5q71 103 171 161t206 58q105 0 172 -55t88 -158l64 182h264l-203 -1036q-26 -135 -72 -233.5t-119 -159.5q-137 -115 -410 -115zM521 246q55 0 106 33.5t93 99.5q42 67 62.5 148t20.5 162q0 51 -9 93.5t-32 72.5q-22 29 -51 41.5t-62 12.5 q-57 0 -108.5 -34.5t-90.5 -97.5q-42 -66 -62.5 -148.5t-20.5 -163.5q0 -51 9 -93t31 -71q41 -55 114 -55z" />
-<glyph unicode="h" d="M362 1556h291l-116 -604q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5 q-29 30 -83 30q-45 0 -80 -19t-62 -52q-30 -37 -50.5 -89t-33.5 -118l-121 -629h-293z" />
-<glyph unicode="i" d="M615 1323q-28 0 -28 25q0 5 1 8l56 282q4 27 32 27h233q28 0 28 -25q0 -5 -1 -8l-56 -282q-5 -27 -32 -27h-233zM732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763 q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="j" d="M763 1323q-15 0 -22.5 9t-4.5 24l55 282q4 27 32 27h233q15 0 22.5 -9t4.5 -24l-55 -282q-5 -27 -32 -27h-233zM22 -199h231q100 0 151 53q29 30 46.5 79t29.5 110l166 852h-297l43 225h590l-209 -1077q-10 -50 -18.5 -87.5t-16.5 -66t-15 -49t-14 -36.5 q-30 -71 -77 -118q-30 -30 -66 -50.5t-75 -33.5q-40 -13 -90.5 -19.5t-116.5 -6.5h-307z" />
-<glyph unicode="k" d="M363 1556h293l-152 -782l404 346h370l-505 -418l313 -702h-311l-222 524l-116 -96l-82 -428h-293z" />
-<glyph unicode="l" d="M690 -10q-107 0 -177 14t-113 43q-41 27 -63 70.5t-22 108.5q0 17 1.5 33t3.5 31q2 10 5.5 33.5t8.5 45.5l203 962h-306l43 225h598l-249 -1201q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297 v0z" />
-<glyph unicode="m" d="M184 1120h192l-1 -116q41 69 102 106q59 37 129 37t113 -37q43 -38 51 -102q31 64 96 102q64 37 138 37q48 0 85 -14.5t63 -40.5q29 -30 41.5 -71.5t12.5 -89.5q0 -17 -1.5 -40.5t-3.5 -47.5q-3 -27 -9.5 -62t-11.5 -62l-140 -719h-239l139 719q5 23 8 41t6 41q2 15 3 27 t1 20q0 23 -5 37t-12 22q-18 21 -52 21q-48 0 -76 -45q-15 -24 -27.5 -64.5t-23.5 -99.5l-139 -719h-240l141 719q2 12 6.5 35.5t6.5 39.5q2 17 3 29.5t1 21.5q0 41 -18 62t-52 21q-47 0 -74 -43q-16 -25 -28 -65.5t-23 -100.5l-139 -719h-240z" />
-<glyph unicode="n" d="M276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q4 20 5.5 34t2.5 19q1 13 1.5 25.5t0.5 22.5q0 29 -6.5 53t-22.5 41q-29 30 -83 30 q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
-<glyph unicode="o" d="M543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5 t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="p" d="M264 1120h264l-4 -168q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
-<glyph unicode="q" d="M709 166q-64 -96 -146 -145q-83 -50 -178 -50q-70 0 -129.5 27.5t-102.5 82.5t-64 132t-21 174q0 58 7.5 122.5t23.5 129.5q31 129 88 235q35 64 76.5 114.5t95.5 88.5q104 72 221 72q57 0 104 -16.5t80 -45.5t57 -73t33 -103l68 209h264l-301 -1546h-291zM519 211 q116 0 198 139q41 69 61.5 151.5t20.5 172.5q0 59 -10 101.5t-35 74.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102t31.5 -66t49 -42.5t66 -14.5z" />
-<glyph unicode="r" d="M343 1120h264l-6 -174q62 96 161 149q98 52 217 52q63 0 119 -15q55 -15 99 -42l-53 -275q-26 23 -53.5 39t-53.5 25q-30 11 -65.5 15.5t-71.5 4.5q-78 0 -141 -21t-110 -67q-44 -43 -77 -116t-53 -179l-100 -516h-295z" />
-<glyph unicode="s" d="M501 -29q-53 0 -108 4.5t-100 12.5q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5 t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26q-55 -35 -55 -93q0 -46 37 -73q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5 t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-70 -53 -168 -78.5t-215 -25.5z" />
-<glyph unicode="t" d="M707 -5q-106 0 -176 14t-113 43q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5q0 -43 30 -61q29 -19 109 -19h225 l-43 -225h-245v0z" />
-<glyph unicode="u" d="M372 -29q-128 0 -197 71q-69 70 -69 202q0 14 1 30t3 34q1 3 4 28.5t9 54.5l143 729h291l-131 -684q-2 -13 -3.5 -24.5t-3.5 -28.5q-2 -16 -2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120 h-264l4 166q-24 -50 -56.5 -83.5t-72.5 -58.5q-46 -29 -91.5 -41t-95.5 -12z" />
-<glyph unicode="v" d="M172 1120h283l80 -878l389 878h307l-551 -1120h-369z" />
-<glyph unicode="w" d="M96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
-<glyph unicode="x" d="M436 594l-258 526h301l148 -317l268 317h332l-477 -553l278 -567h-299l-170 356l-303 -356h-332z" />
-<glyph unicode="y" d="M-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
-<glyph unicode="z" d="M94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
-<glyph unicode="{" d="M644 -334q-105 0 -171 14t-108 40t-63.5 68.5t-21.5 110.5q0 13 1 24t3 28q0 3 1.5 12t3.5 20.5t4 25t5 26.5l43 215q1 4 2.5 13t3.5 20.5t4 23.5t3 21q2 17 3 28.5t1 20.5q0 42 -15.5 67.5t-47.5 41.5q-27 14 -73 22t-109 8h-62l37 191h91q143 0 207 55t94 211l41 215 q22 115 56.5 188t80.5 108q93 72 353 72h149l-36 -190h-123q-56 0 -91.5 -11t-57.5 -32q-23 -22 -40 -65.5t-31 -118.5l-38 -209q-14 -78 -38 -138t-57 -96q-61 -67 -192 -84q96 -21 137 -64q20 -20 30.5 -48.5t10.5 -71.5q0 -11 -1 -29t-3 -35q-2 -13 -4.5 -30t-7.5 -43 l-41 -205q-3 -13 -4.5 -21t-3 -15t-2.5 -15.5t-3 -22.5l-3 -25.5t-1 -18.5q0 -32 8.5 -52.5t25.5 -33.5q34 -25 114 -25h121l-37 -191h-148v0z" />
-<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
-<glyph unicode="}" d="M56 -143h123q48 0 86.5 11t60.5 32q45 43 72 186l39 205q15 79 38.5 138t56.5 95q62 68 192 88q-95 16 -136 58q-42 42 -42 122q0 11 1 26.5t3 33.5q2 11 5 34.5t7 43.5l41 209q5 18 7.5 35t5.5 40q2 15 3 22t1 11t-0.5 5t-0.5 5q0 28 -8 50t-25 35q-33 24 -114 24h-121 l37 190h147q204 0 287 -48q42 -24 62 -65t20 -92q0 -49 -20 -149l-3 -15l-41 -215q-3 -16 -5.5 -32.5t-4.5 -28.5q-2 -16 -3 -26.5t-1 -20.5q0 -53 18.5 -80t44.5 -42q62 -35 178 -35h62l-37 -191h-92q-141 0 -206 -58q-67 -59 -95 -208l-41 -215q-42 -222 -142 -295 q-100 -74 -347 -74h-150z" />
-<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M696 1198q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM455 655l112 357h199 l-25 -357l-127 -655h-286z" />
-<glyph unicode="&#xa2;" d="M506 -25q-195 23 -298 141q-52 60 -78 138.5t-26 183.5q0 77 14 148.5t41 140.5q29 72 69 134t87 110q37 38 83 71t105 57q51 21 109 33t121 13l55 287h142l-55 -287q27 -2 55.5 -7t54.5 -13q57 -17 117 -48l-53 -264q-23 20 -48.5 36.5t-51.5 27.5q-52 22 -119 30 l-135 -692q32 2 64.5 9.5t64.5 18.5q34 12 65 28t63 36l-51 -264q-61 -31 -125 -48q-65 -17 -129 -20l-55 -288h-141zM688 907q-136 -15 -229 -145q-46 -64 -70 -139t-24 -160q0 -60 13 -102.5t39 -75.5q25 -32 57.5 -50t77.5 -20z" />
-<glyph unicode="&#xa3;" d="M29 260h235l64 334h-199l45 225h199l37 197q26 137 71 232.5t108 153.5q64 60 156 89t207 29q80 0 150 -16q73 -17 143 -48l-53 -266q-29 20 -61 36.5t-58 25.5t-58 14.5t-63 5.5q-105 0 -168 -67q-31 -33 -54.5 -84.5t-37.5 -125.5l-33 -176h336l-43 -225h-338l-63 -334 h481l-51 -260h-1004z" />
-<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
-<glyph unicode="&#xa5;" d="M383 438h-412l37 189h408l-58 151h-321l37 187h223l-170 528h317l174 -600l408 600h317l-374 -528h223l-37 -187h-321l-115 -151h407l-36 -189h-412l-86 -438h-293z" />
-<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
-<glyph unicode="&#xa7;" d="M458 -195q-79 0 -167 15q-91 15 -187 45l46 229q35 -16 72.5 -28.5t80.5 -21.5q82 -17 150 -17q91 0 137 34q23 17 35 41.5t12 48.5q0 39 -34.5 80t-117.5 97l-18 12l-100 68q-52 35 -88.5 65t-60.5 65q-18 26 -29 57.5t-11 73.5q0 95 61 171q30 38 74 70t101 57 q-51 40 -75 90q-12 25 -18 52.5t-6 62.5q0 154 118 251q56 46 131 71.5t175 25.5q73 0 153 -15q81 -15 167 -45l-45 -229q-34 17 -68.5 30t-64.5 21q-33 8 -65.5 12t-62.5 4q-87 0 -133 -34q-47 -35 -47 -95q0 -44 31 -79q20 -23 53.5 -47.5t85.5 -57.5l105 -67 q95 -60 142 -127q23 -32 32.5 -65.5t9.5 -69.5q0 -86 -55 -160q-29 -38 -71 -73t-99 -69q24 -23 40.5 -47t26.5 -47q21 -50 21 -111q0 -77 -30.5 -140.5t-88.5 -109.5q-57 -45 -137.5 -69.5t-180.5 -24.5zM682 451q55 38 88 83q17 24 24 44.5t7 40.5q0 35 -19 66 q-9 15 -22.5 29.5t-30.5 26.5l-80 54q-2 0 -12 7.5t-29 20.5l-78 54q-29 -21 -51.5 -44t-37.5 -44q-17 -24 -24 -44.5t-7 -40.5q0 -35 18 -65t55 -55l78 -54l51 -34q15 -10 24 -15.5t15.5 -10t13.5 -9t17 -10.5z" />
-<glyph unicode="&#xa8;" d="M449 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM844 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
-<glyph unicode="&#xaa;" d="M511 698q-111 0 -173 61q-64 61 -64 167q0 71 27 128t85 99q112 80 319 80h135l6 35q2 4 2 7v11q0 40 -36 61q-19 11 -45.5 16t-58.5 5t-64 -5t-69 -15q-36 -10 -73 -23.5t-84 -34.5l33 174q79 28 152 42q35 7 69.5 10.5t70.5 3.5q67 0 125.5 -12.5t100.5 -38.5 q44 -27 63 -65.5t19 -85.5q0 -10 -1 -28t-3 -35q-2 -19 -6.5 -44.5t-8.5 -45.5l-88 -448h-207l19 88q-25 -29 -50 -47.5t-57 -32.5q-63 -27 -138 -27zM598 838q38 0 73.5 16.5t63.5 48.5q26 29 46 75t30 109h-80q-122 0 -180 -36q-29 -18 -44 -45.5t-15 -62.5q0 -47 29 -76 q14 -14 32.5 -21.5t44.5 -7.5zM246 598h688l-35 -170h-688z" />
-<glyph unicode="&#xab;" d="M78 535l24 131l547 393l-47 -238l-319 -221l233 -221l-45 -238zM532 535l25 131l545 393l-45 -238l-320 -221l234 -221l-45 -238z" />
-<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
-<glyph unicode="&#xad;" d="M299 735h629l-56 -291h-628z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
-<glyph unicode="&#xaf;" d="M459 1556h631l-37 -188h-631z" />
-<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
-<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#xb2;" d="M289 1261q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q109 78 185 138.5t124 106.5t69.5 80t21.5 58q0 16 -9 33.5t-27 30.5q-35 24 -104 24q-30 0 -64.5 -4.5t-71.5 -13.5q-38 -9 -77 -22.5t-75 -30.5l31 162q38 11 75 20t74 15q73 12 145 12q69 0 124.5 -12.5 t97.5 -41.5q41 -29 59.5 -67t18.5 -74q0 -41 -23.5 -86t-73.5 -98.5t-127.5 -116t-185.5 -138.5q-13 -9 -18 -12.5t-12.5 -8.5t-23 -16t-50.5 -36h438l-28 -145h-664z" />
-<glyph unicode="&#xb3;" d="M569 1103q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5z" />
-<glyph unicode="&#xb4;" d="M887 1638h321l-442 -376h-197z" />
-<glyph unicode="&#xb5;" d="M246 1120h289l-132 -680q-2 -8 -4.5 -20.5t-4.5 -31.5q-3 -24 -3 -42q0 -64 34 -98q17 -17 40.5 -26t55.5 -9q81 0 132 56q52 56 74 171l131 680h289l-150 -776q-2 -17 -3.5 -27t-2.5 -15t-1 -6.5v-2.5q-2 -10 -2.5 -16t-0.5 -13q0 -23 11 -37t30 -14q12 0 27 6 q5 2 14.5 7t20.5 12l-43 -222q-28 -14 -47 -21.5t-39 -12.5t-39 -8t-39 -3q-38 0 -64 10t-44 28q-38 38 -50 120q-52 -79 -114 -118q-29 -19 -61 -29.5t-71 -10.5q-59 0 -96 24q-38 24 -53 71l-97 -494h-288z" />
-<glyph unicode="&#xb6;" d="M457 649q-171 18 -263 104q-46 43 -69 99t-23 134q0 103 40.5 194t122.5 166q162 147 407 147h518l-328 -1690h-190l301 1543h-191l-299 -1543h-190z" />
-<glyph unicode="&#xb7;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
-<glyph unicode="&#xb8;" d="M349 -401q-26 0 -54.5 2t-45.5 4q-6 1 -19.5 3t-28.5 5t-29.5 6t-21.5 6l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-6 16 -17 39t-27 51h141q36 -49 54 -94q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5 q-37 -29 -90.5 -44t-120.5 -15z" />
-<glyph unicode="&#xb9;" d="M315 1265h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657z" />
-<glyph unicode="&#xba;" d="M634 698q-78 0 -137 21t-103 63q-45 42 -66 101t-21 144q0 103 30 193t90 160q119 140 313 140q154 0 241 -84q43 -42 64.5 -100t21.5 -145q0 -100 -29.5 -190.5t-89.5 -162.5q-62 -73 -140.5 -106.5t-173.5 -33.5zM649 862q45 0 82.5 25.5t64.5 69.5q30 49 45 110 t15 121q0 38 -7 71t-27 56q-17 20 -41.5 30.5t-52.5 10.5q-46 0 -83.5 -25.5t-64.5 -69.5q-32 -51 -46 -112.5t-14 -116.5q0 -47 9 -77t25 -50q17 -20 41 -31.5t54 -11.5zM254 598h688l-33 -170h-688z" />
-<glyph unicode="&#xbb;" d="M127 379l322 221l-234 221l45 238l393 -393l-26 -131l-545 -394zM582 379l321 221l-233 221l45 238l393 -393l-27 -131l-544 -394z" />
-<glyph unicode="&#xbc;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
-<glyph unicode="&#xbd;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM443 -129q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q107 77 183 137t124 106.5t70.5 80.5t22.5 59q0 16 -9 33.5t-27 30.5q-35 24 -104 24 q-30 0 -64.5 -4.5t-71.5 -13.5q-41 -10 -78 -23t-74 -30l31 162q38 11 75 20t74 15q73 12 144 12t128 -13t96 -41q40 -29 58.5 -67.5t18.5 -73.5q0 -80 -99.5 -186.5t-310.5 -252.5q-12 -8 -21.5 -14.5t-20.5 -14.5t-25.5 -18t-36.5 -26h438l-28 -145h-664z" />
-<glyph unicode="&#xbe;" d="M342 809q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
-<glyph unicode="&#xbf;" d="M732 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM454 -27q-85 0 -150 20.5t-115 62.5q-99 82 -99 216 q0 96 49 178q25 42 67.5 88.5t98.5 92.5l105 86l8 7q66 58 102.5 116t50.5 129l23 123h266l-29 -154q-10 -52 -24.5 -91.5t-36.5 -74.5q-26 -42 -60.5 -77.5t-78.5 -73.5l-105 -93l-15 -13q-68 -59 -104 -105.5t-36 -88.5q0 -20 9 -42.5t28 -38.5t45 -23.5t64 -7.5 q46 0 93 10t96 27t103.5 43.5t114.5 64.5l-52 -268q-100 -55 -208 -84t-210 -29z" />
-<glyph unicode="&#xc0;" d="M500 1852h264l143 -264h-178zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc1;" d="M862 1852h281l-320 -264h-207zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc2;" d="M639 1852h348l151 -264h-169l-164 161l-230 -161h-180zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc3;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-14 11 -22.5 16 t-19.5 10q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc4;" d="M487 1613q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM883 1613q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM582 1493h360l113 -1493h-293l-14 369h-400 l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc5;" d="M547 1421q-36 36 -57 89q-21 52 -21 108q0 115 84 199q40 40 88.5 62t111.5 22q117 0 201 -84t84 -199q0 -32 -6 -61.5t-17 -53.5q-12 -28 -29.5 -52t-37.5 -42l107 -1409h-295l-21 369h-395l-162 -369h-295zM754 1485q54 0 93 39q38 38 38 92t-39 93q-40 38 -92 38 q-54 0 -92 -38q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q39 -39 93 -39zM729 612l-20 611l-258 -611h278z" />
-<glyph unicode="&#xc6;" d="M502 1493h809l-51 -260h-291l-60 -311h260l-51 -260h-260l-78 -402h310l-52 -260h-563l72 362h-283l-155 -362h-259zM592 598l125 635h-80l-272 -635h227z" />
-<glyph unicode="&#xc7;" d="M1038 1502q35 -8 75.5 -21.5t79.5 -32.5l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77 q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-22 -5 -43.5 -8.5t-43.5 -5.5q22 -35 36 -69q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156 q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 28t-18 36q-91 8 -167.5 41t-132.5 93q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 139.5 43t149.5 14 q42 0 78.5 -4.5t76.5 -13.5z" />
-<glyph unicode="&#xc8;" d="M527 1853h264l143 -264h-178zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xc9;" d="M899 1852h281l-320 -264h-207zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xca;" d="M666 1853h348l151 -264h-169l-164 161l-230 -161h-180zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xcb;" d="M514 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM910 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM317 1493h932l-51 -260h-635l-63 -322h575 l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xcc;" d="M496 1853h264l143 -264h-178zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xcd;" d="M858 1853h281l-320 -264h-207zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xce;" d="M645 1853h348l151 -264h-169l-164 161l-230 -161h-180zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xcf;" d="M493 1606q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM889 1606q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xd0;" d="M151 664h-137l47 237h135l117 592h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -56.5t-12 -53q-20 -81 -44 -146t-46 -110q-30 -62 -62 -104.5t-62 -71.5q-48 -47 -105.5 -79t-120.5 -52 q-69 -21 -154.5 -30.5t-194.5 -9.5h-330zM464 266q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-63 -326h211l-45 -237h-211l-78 -398h96z" />
-<glyph unicode="&#xd1;" d="M452 1588q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
-<glyph unicode="&#xd2;" d="M510 1852h264l143 -264h-178zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd3;" d="M872 1852h281l-320 -264h-207zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd4;" d="M629 1852h348l151 -264h-169l-164 161l-230 -161h-180zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94 q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112 t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45 t68.5 -14z" />
-<glyph unicode="&#xd5;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18 q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5 t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175 q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd6;" d="M487 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM883 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60 q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
-<glyph unicode="&#xd8;" d="M-141 51l219 244q-5 21 -7.5 37t-4.5 34q-2 19 -3.5 37t-1.5 51q0 94 12 200t37 211q23 100 57 193t77 169q39 69 89 124.5t114 93.5t137 56.5t148 18.5q104 0 187 -33q82 -33 144 -98l154 170l139 -115l-205 -227q6 -32 9.5 -56.5t5.5 -47.5q2 -25 3.5 -45t1.5 -46 t-1.5 -63t-5.5 -72q-2 -14 -4 -32.5t-5 -39l-6 -41t-6 -37.5q-5 -30 -12.5 -64t-15.5 -68t-17 -66t-18 -59q-17 -52 -39.5 -107t-51.5 -108q-42 -74 -93.5 -129t-109.5 -90q-63 -38 -135.5 -56.5t-150.5 -18.5q-110 0 -196 37q-88 38 -144 109l-160 -180zM852 1153 q-9 27 -23.5 47.5t-31.5 32.5q-20 15 -44 21t-47 6q-65 0 -112.5 -39t-83.5 -108q-38 -72 -70.5 -189t-60.5 -295zM525 233q127 0 204 153q38 76 70.5 203.5t58.5 299.5l-483 -535q18 -60 57 -90q18 -14 40 -22.5t53 -8.5z" />
-<glyph unicode="&#xd9;" d="M496 1852h264l143 -264h-178zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xda;" d="M868 1854h281l-320 -264h-207zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xdb;" d="M645 1855h348l151 -264h-169l-164 161l-230 -161h-180zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45 q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xdc;" d="M493 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM889 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xdd;" d="M868 1852h281l-320 -264h-207zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#xde;" d="M307 1493h295l-47 -227h127q235 0 360 -92q63 -47 93 -114t30 -158q0 -51 -9 -107t-27 -112q-19 -58 -42.5 -100.5t-52.5 -76.5q-44 -52 -91.5 -82t-102.5 -50q-59 -21 -130.5 -31.5t-170.5 -10.5h-164l-64 -332h-295zM569 580q147 0 217 67q36 34 54 83.5t18 112.5 q0 55 -13 87t-39 50q-26 19 -68.5 28.5t-106.5 9.5h-121l-86 -438h145z" />
-<glyph unicode="&#xdf;" d="M666 -29q-40 0 -70 3.5t-61 9.5q-39 8 -67.5 16t-61.5 20l49 250q29 -16 57 -27.5t55 -19.5q51 -16 102 -16q42 0 77.5 10t61.5 30t39 46t13 54q0 41 -27.5 84.5t-83.5 99.5l-6 6l-69 71q-45 46 -65 97q-21 51 -21 112q0 132 92 227q91 93 260 130v16q0 29 -10.5 55 t-34.5 45q-46 35 -125 35q-95 0 -152 -51t-77 -152l-219 -1122h-293l219 1126q21 109 64 188.5t109 134.5q131 110 346 110q97 0 170.5 -21.5t122.5 -65.5t73 -109.5t24 -147.5q0 -29 -3 -64t-8 -86l-1 -6q-73 -4 -128 -19.5t-91 -38.5t-57 -56t-21 -70q0 -33 21.5 -70 t74.5 -90l82 -82q59 -60 88 -121q14 -29 21.5 -62t7.5 -76q0 -86 -32 -161t-96 -131q-128 -111 -349 -111z" />
-<glyph unicode="&#xe0;" d="M402 1673h284l209 -376h-198zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe1;" d="M918 1673h321l-442 -376h-197zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe2;" d="M699 1673h243l183 -376h-176l-152 225l-240 -225h-190zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe3;" d="M911 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q109 0 189 -19.5t135 -56.5q60 -40 86 -95.5t26 -127.5q0 -18 -1.5 -41t-5.5 -51q-2 -14 -4 -27t-4 -26.5t-5 -29t-7 -34.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe4;" d="M480 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM875 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM379 -29q-75 0 -137 21t-107 66 q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5 q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46 t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe5;" d="M778 1249q-57 0 -108.5 21t-93.5 63q-41 42 -61.5 93t-20.5 108q0 63 23.5 115t59.5 88q37 37 88.5 59.5t113.5 22.5q57 0 108.5 -20.5t92.5 -61.5q35 -35 59 -86.5t24 -115.5q0 -63 -23.5 -115.5t-58.5 -87.5q-41 -41 -93.5 -62t-109.5 -21zM779 1403q25 0 49.5 9.5 t44.5 29.5q37 39 37 93q0 53 -39 92q-17 17 -40 27.5t-52 10.5q-55 0 -93 -38q-39 -39 -39 -93q0 -55 38 -93q17 -17 41.5 -27.5t52.5 -10.5zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17 q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125 q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe6;" d="M246 -29q-127 0 -202 79q-38 40 -56.5 92.5t-18.5 124.5q0 92 30.5 169t91.5 137q121 117 325 117h108l11 58q3 17 3.5 21.5t1.5 8.5q1 5 1 12.5v9.5q0 36 -8.5 60t-25.5 40q-35 32 -98 32q-54 0 -122 -25q-37 -14 -75 -32.5t-81 -43.5l47 238q40 20 77.5 34.5t74.5 24.5 q36 10 71.5 14.5t67.5 4.5q84 0 142 -35q30 -18 50 -42t33 -56q53 65 122 99q68 34 154 34q126 0 193 -70q68 -71 68 -204q0 -24 -2 -51t-6 -61q-7 -58 -15 -99.5t-10 -55.5l-22 -129h-451q-3 -19 -6.5 -43t-4.5 -32q-3 -27 -3 -45q0 -42 11.5 -75t31.5 -55q42 -47 113 -47 q54 0 124 29q31 13 65.5 33t67.5 47l-47 -238q-57 -40 -125 -60q-34 -10 -71.5 -15t-74.5 -5q-52 0 -90.5 10.5t-73.5 32.5q-68 44 -99 121q-62 -83 -134 -123q-39 -22 -78.5 -31.5t-84.5 -9.5zM991 688l12 67q4 16 6 34q1 8 1 19.5v25.5q0 50 -20 75q-20 23 -64 23 q-57 0 -91 -42q-19 -23 -33 -57.5t-22 -72.5l-14 -72h225zM296 180q66 0 106 52t61 169l14 78h-74q-98 0 -156 -51q-30 -26 -44.5 -61.5t-14.5 -73.5q0 -28 7.5 -48t21.5 -35q28 -30 79 -30z" />
-<glyph unicode="&#xe7;" d="M809 909q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-18 -4 -36.5 -6.5t-36.5 -4.5q23 -35 37 -70q18 -47 18 -91 q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 27.5t-17 35.5q-89 6 -166.5 35t-137.5 86 q-69 66 -98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28z" />
-<glyph unicode="&#xe8;" d="M391 1674h284l209 -376h-198zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xe9;" d="M867 1673h321l-442 -376h-197zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xea;" d="M668 1673h243l183 -376h-176l-152 225l-240 -225h-190zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181 q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134 q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xeb;" d="M439 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM834 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM583 -29 q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16 t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xec;" d="M306 1648h284l209 -376h-198zM737 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xed;" d="M862 1648h321l-442 -376h-197zM697 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xee;" d="M596 1673h243l183 -376h-176l-152 225l-240 -225h-190zM700 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12 q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xef;" d="M395 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-175zM790 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-176zM718 -8q-107 0 -177 14 t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xf0;" d="M538 -29q-112 0 -195.5 30.5t-140.5 84.5q-63 60 -91.5 143.5t-28.5 190.5q0 129 39.5 245.5t119.5 207.5q74 84 176.5 132t233.5 48q42 0 75 -6q17 -3 32.5 -7.5t29.5 -11.5q-6 15 -10.5 25t-10 22t-13.5 28l-21 42q-23 44 -35 65.5t-20 32.5l-330 -123l-41 115l307 115 l-125 206h279l74 -120l323 118l41 -112l-303 -113q120 -182 179 -349q29 -81 44 -163t15 -171q0 -144 -41 -269t-123 -219q-78 -90 -188 -138.5t-251 -48.5zM560 207q60 0 113 31t94 94q39 60 60 143.5t21 176.5q0 17 -0.5 36t-1.5 30q-1 8 -3.5 27t-4.5 33q-19 11 -40 18.5 t-39 12.5q-20 5 -42.5 7.5t-40.5 2.5q-68 0 -122.5 -29t-93.5 -80q-43 -57 -64 -128.5t-21 -144.5q0 -60 13 -101.5t36 -68.5q22 -26 56 -43t80 -17z" />
-<glyph unicode="&#xf1;" d="M880 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8 q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5q-29 30 -83 30q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
-<glyph unicode="&#xf2;" d="M371 1673h284l209 -376h-198zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf3;" d="M887 1673h321l-442 -376h-197zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf4;" d="M668 1675h243l183 -376h-176l-152 225l-240 -225h-190zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf5;" d="M880 1299q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf6;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM543 -29 q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5 q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf7;" d="M461 1198h309v-309h-309v309zM66 762h1099v-238h-1099v238zM461 395h309v-309h-309v309z" />
-<glyph unicode="&#xf8;" d="M-82 2l211 207q-11 27 -17.5 49t-12.5 50q-5 26 -8 53.5t-3 68.5q0 153 42 287t123 233q83 100 194.5 149.5t240.5 49.5q45 0 88 -6t82 -19q76 -25 143 -75l193 186l117 -121l-207 -201q10 -25 18 -50.5t13 -52.5q5 -28 7.5 -53.5t2.5 -60.5q0 -155 -41.5 -290.5 t-123.5 -235.5q-79 -96 -189.5 -147.5t-249.5 -51.5q-47 0 -90 6t-81 19q-76 25 -137 76l-198 -189zM801 856q-26 29 -56 42t-71 13q-63 0 -110.5 -29.5t-85.5 -88.5q-39 -61 -62 -145t-33 -195zM562 207q120 0 196 121q39 63 61.5 147.5t30.5 194.5l-416 -404 q14 -17 26.5 -26.5t29.5 -17.5q31 -15 72 -15z" />
-<glyph unicode="&#xf9;" d="M381 1648h284l209 -376h-198zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfa;" d="M897 1648h321l-442 -376h-197zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfb;" d="M678 1648h243l183 -376h-176l-152 225l-240 -225h-190zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9 q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfc;" d="M459 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM854 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM370 -29q-61 0 -110.5 18t-84.5 53 q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5 q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfd;" d="M922 1648h321l-442 -376h-197zM-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
-<glyph unicode="&#xfe;" d="M348 1556h293l-117 -604q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
-<glyph unicode="&#xff;" d="M484 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM879 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM-20 -201 h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
-<glyph unicode="&#x100;" d="M519 1850h631l-36 -188h-631zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x101;" d="M459 1535h631l-37 -188h-631zM381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5 t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-252l-14 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
-<glyph unicode="&#x102;" d="M796 1588q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x103;" d="M736 1297q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5 t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-262l-4 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70 t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
-<glyph unicode="&#x104;" d="M785 -182q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-5l-14 369h-400l-162 -369h-299l695 1493h360l113 -1493h-147q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5z M737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x105;" d="M709 1147q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-150q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119 t118.5 136l25 125q-67 -78 -154.5 -116t-189.5 -38q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5 t97.5 13.5t94 4zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
-<glyph unicode="&#x106;" d="M978 1852h281l-320 -264h-207zM598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 137.5 43t147.5 14q42 0 80.5 -4.5t78.5 -13.5q32 -8 73 -21t82 -33l-64 -328 q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328 q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z" />
-<glyph unicode="&#x107;" d="M948 1673h321l-442 -376h-197zM611 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28q-89 0 -158 -33 t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
-<glyph unicode="&#x108;" d="M786 1852h309l172 -264h-178l-168 161l-229 -161h-178zM98 489q0 117 27 256q50 253 154 424q105 173 261 262t354 89q174 0 297 -72l-64 -328q-63 71 -127.5 103t-142.5 32q-160 0 -268 -129.5t-157 -380.5q-22 -107 -22 -206q0 -150 62.5 -226.5t186.5 -76.5 q77 0 155 33q39 16 78 39.5t89 62.5l-63 -328q-154 -72 -325 -72q-243 0 -369 132.5t-126 385.5z" />
-<glyph unicode="&#x109;" d="M752 1596h241l198 -299h-178l-170 147l-227 -147h-178zM317 30q-193 111 -193 369q0 66 17 160q36 181 128 316q93 133 230 203.5t307 70.5q92 0 171.5 -21t154.5 -65l-52 -268q-110 114 -278 114q-143 0 -237.5 -91t-126.5 -259q-12 -60 -12 -110q0 -116 61.5 -177 t179.5 -61q85 0 168 29t154 86l-53 -269q-80 -42 -170.5 -64t-184.5 -22q-163 0 -264 59z" />
-<glyph unicode="&#x10a;" d="M763 1607q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM596 -29q-238 0 -364 136.5t-126 414.5q0 106 18.5 214.5t52.5 210t82.5 191t108.5 158.5q97 111 226.5 167.5t281.5 56.5q85 0 162.5 -18t155.5 -54l-64 -328 q-24 33 -55 59t-66.5 43t-74 26t-77.5 9q-94 0 -168.5 -48.5t-129.5 -133.5q-34 -52 -62 -118t-48.5 -137.5t-32 -144.5t-11.5 -139q0 -153 63 -229t184 -76q78 0 158.5 33.5t174.5 106.5l-64 -328q-78 -36 -157.5 -54t-167.5 -18z" />
-<glyph unicode="&#x10b;" d="M677 1347q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM608 -29q-113 0 -202.5 30.5t-152 91.5t-95.5 152t-33 212q0 147 48 273t136 218.5t211.5 145.5t274.5 53q91 0 176 -20.5t161 -63.5l-53 -268 q-120 114 -274 114q-86 0 -156.5 -33t-121 -91.5t-78.5 -138.5t-28 -174q0 -136 59.5 -199.5t180.5 -63.5q74 0 151.5 24.5t174.5 79.5l-56 -276q-155 -66 -323 -66z" />
-<glyph unicode="&#x10c;" d="M507 1853h170l149 -162l229 162h181l-244 -264h-348zM598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 137.5 43t147.5 14q42 0 80.5 -4.5t78.5 -13.5q32 -8 73 -21 t82 -33l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5 t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z" />
-<glyph unicode="&#x10d;" d="M475 1673h174l153 -227l238 227h190l-331 -376h-242zM611 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86 q-66 28 -146 28q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
-<glyph unicode="&#x10e;" d="M383 1853h170l149 -162l229 162h181l-244 -264h-348zM283 1493h315q287 0 427 -123.5t140 -375.5q0 -79 -13.5 -179.5t-41.5 -212.5q-20 -81 -43 -146t-49 -116.5t-56 -92.5t-65 -75q-47 -46 -101.5 -78.5t-123.5 -53.5t-155 -30.5t-195 -9.5h-330zM434 266 q115 0 189 43.5t120 132.5q24 46 45 110t37 134.5t25.5 140.5t9.5 129q0 140 -60.5 205.5t-193.5 65.5h-82l-186 -961h96z" />
-<glyph unicode="&#x10f;" d="M382 -29q-73 0 -131.5 28t-99.5 81.5t-63 132t-22 180.5q0 64 8.5 129t24.5 127t38 119t48 105q73 136 175 206t219 70q58 0 105.5 -17t83 -48.5t57.5 -75t29 -97.5l125 645h293l-303 -1556h-262l2 166q-66 -97 -148 -146t-179 -49zM1333 1556h321l-257 -376h-197z M513 211q63 0 115.5 40t90.5 104.5t59 146.5t21 165q0 123 -44.5 182.5t-115.5 59.5q-63 0 -114 -42t-87.5 -108.5t-56 -150t-19.5 -165.5q0 -121 41 -176.5t110 -55.5z" />
-<glyph unicode="&#x110;" d="M121 664h-137l47 237h135l117 592h315q287 0 427 -123.5t140 -375.5q0 -79 -13.5 -179.5t-41.5 -212.5q-20 -81 -43 -146t-49 -116.5t-56 -92.5t-65 -75q-47 -46 -101.5 -78.5t-123.5 -53.5t-155 -30.5t-195 -9.5h-330zM434 266q115 0 189 43.5t120 132.5q24 46 45 110 t37 134.5t25.5 140.5t9.5 129q0 140 -60.5 205.5t-193.5 65.5h-82l-63 -326h211l-45 -237h-211l-78 -398h96z" />
-<glyph unicode="&#x111;" d="M382 -29q-144 0 -230 110q-43 55 -64.5 129.5t-21.5 175.5q0 60 7.5 124t23.5 129t39 126.5t48 108.5q32 61 76 112.5t98 89.5q104 73 223 73q111 0 185 -63q34 -29 57 -73t31 -102l66 340h-304l37 189h303l23 116h293l-23 -116h146l-37 -189h-146l-243 -1251h-262l2 166 q-66 -96 -148 -145q-83 -50 -179 -50zM517 211q57 0 107 34.5t92 104.5t62.5 153t20.5 171q0 66 -11.5 106.5t-33.5 69.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102.5t31.5 -66.5q42 -56 113 -56z" />
-<glyph unicode="&#x112;" d="M540 1850h631l-36 -188h-631zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x113;" d="M468 1537h631l-37 -188h-631zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30 q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
-<glyph unicode="&#x116;" d="M709 1606q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x117;" d="M636 1349q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139 t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
-<glyph unicode="&#x118;" d="M563 1233l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-130q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-658 l288 1493h932l-51 -260h-635z" />
-<glyph unicode="&#x119;" d="M369 465q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-40 -17 -81 -31t-83 -24q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5 t-58.5 108.5q0 49 30.5 107t96.5 122q-36 -3 -73 -3q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759zM689 920q-97 0 -168 -59 t-111 -177h466q7 27 7 55q0 84 -51 132.5t-143 48.5z" />
-<glyph unicode="&#x11a;" d="M509 1852h170l149 -162l229 162h181l-244 -264h-348zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x11b;" d="M410 1673h174l153 -227l238 227h190l-331 -376h-242zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759 q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
-<glyph unicode="&#x11c;" d="M814 1852h309l172 -264h-178l-168 161l-229 -161h-178zM95 492q0 116 27 255q50 250 154 423q105 173 260 261.5t352 88.5q188 0 325 -99l-63 -327q-93 161 -287 161q-170 0 -277 -125t-157 -383q-23 -126 -23 -209q0 -148 60.5 -225t177.5 -77q50 0 81 9q20 5 32 10 t28 15l55 285h-202l48 248h460l-133 -684q-99 -73 -210 -110.5t-228 -37.5q-234 0 -357 134.5t-123 386.5z" />
-<glyph unicode="&#x11d;" d="M724 1673h241l183 -376h-178l-155 225l-242 -225h-178zM17 -369l53 269q73 -43 155.5 -66.5t167.5 -23.5q68 0 116 14t83 44q71 59 95 183l24 121q-60 -80 -138 -119t-179 -39q-157 0 -243 100t-86 281q0 89 19 178q33 174 109 303q76 130 185 201.5t231 71.5 q98 0 164.5 -45t93.5 -127l57 143h264l-202 -1036q-35 -180 -109 -291q-75 -111 -199 -164t-308 -53q-182 0 -353 55zM657 304q101 102 132 273q12 63 12 116q0 101 -40.5 158.5t-113.5 57.5q-60 0 -114.5 -41t-95.5 -116q-35 -66 -53.5 -145t-18.5 -145q0 -39 4 -59 q11 -76 49.5 -116.5t99.5 -40.5q84 0 139 58z" />
-<glyph unicode="&#x11e;" d="M807 1588q-72 0 -123.5 17t-88.5 51q-74 68 -74 192v4h143q10 -60 51 -87q41 -28 117 -28q40 0 70 7.5t57 23.5q54 32 76 84h154q-40 -129 -139 -196q-100 -68 -243 -68zM611 -29q-128 0 -220.5 38t-155.5 106q-70 76 -101.5 181t-31.5 232q0 96 17.5 204.5t54.5 216.5 q32 94 80.5 183t112.5 162q45 51 101.5 94.5t126.5 74.5q130 57 281 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-66 -328q-51 67 -120 102q-70 35 -149 35q-39 0 -73 -8t-63 -21q-30 -14 -58.5 -34.5t-57.5 -52.5q-23 -25 -41 -52t-35 -58q-16 -29 -31 -63t-29 -77 q-15 -45 -28 -94.5t-21 -94.5q-17 -94 -17 -169q0 -82 18.5 -136.5t45.5 -87.5q34 -42 80.5 -60t100.5 -18q19 0 34.5 2t32.5 7q12 3 26 8t29 16l57 291h-206l49 248h460l-139 -709q-72 -60 -168 -91q-99 -32 -212 -32z" />
-<glyph unicode="&#x11f;" d="M749 1301q-146 0 -219 66q-35 31 -54.5 78.5t-19.5 119.5v33h144v-13q0 -61 44 -97q43 -36 120 -36q81 0 140 39q29 19 49 44.5t34 62.5h143q-14 -71 -45.5 -125t-82.5 -94q-99 -78 -253 -78zM386 -424q-99 0 -190 15q-46 8 -90 19t-88 25l54 265q76 -46 158 -68 q42 -11 83.5 -16.5t82.5 -5.5q66 0 115 14.5t84 43.5q39 32 60 77.5t33 105.5l27 133q-54 -83 -131 -125q-77 -43 -175 -43q-76 0 -137.5 25t-110.5 80q-48 54 -70.5 123t-22.5 163q0 65 10.5 135t31.5 141q23 76 52 137.5t63 111.5q71 103 171 161t206 58q105 0 172 -55 t88 -158l64 182h264l-203 -1036q-26 -135 -72 -233.5t-119 -159.5q-137 -115 -410 -115zM521 246q55 0 106 33.5t93 99.5q42 68 62.5 149.5t20.5 160.5q0 51 -9 93.5t-32 72.5q-20 27 -49 40.5t-64 13.5q-57 0 -108.5 -34.5t-90.5 -97.5q-42 -66 -62.5 -148.5t-20.5 -163.5 q0 -51 9 -93t31 -71q41 -55 114 -55z" />
-<glyph unicode="&#x120;" d="M738 1607q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM610 -29q-121 0 -215.5 36.5t-159.5 107.5t-99 176t-34 242q0 102 18.5 208t53 205.5t83.5 189t110 158.5q99 112 228 169t280 57q84 0 161.5 -18t155.5 -54l-66 -328 q-51 67 -120 102t-149 35q-70 0 -134.5 -28t-118.5 -88q-44 -48 -76.5 -111.5t-58.5 -138.5q-15 -43 -27 -89.5t-20.5 -93t-13.5 -91t-5 -84.5q0 -146 63.5 -224t178.5 -78q75 0 125 33l57 291h-206l49 248h460l-139 -709q-70 -60 -168 -91.5t-213 -31.5z" />
-<glyph unicode="&#x121;" d="M647 1351q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM389 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41 q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5q0 64 11.5 134.5t32 139t49.5 132t64 114.5q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l64 182h264l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM516 246q60 0 112 36.5t91 97.5t61.5 140 t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36t-91 -96.5t-61.5 -139.5t-22.5 -166q0 -115 39.5 -170t109.5 -55z" />
-<glyph unicode="&#x122;" d="M610 -29q-121 0 -215.5 36.5t-159.5 107.5t-99 176t-34 242q0 102 18.5 208t53 205.5t83.5 189t110 158.5q99 112 228 169t280 57q84 0 161.5 -18t155.5 -54l-66 -328q-51 67 -120 102t-149 35q-70 0 -134.5 -28t-118.5 -88q-44 -48 -76.5 -111.5t-58.5 -138.5 q-15 -43 -27 -89.5t-20.5 -93t-13.5 -91t-5 -84.5q0 -146 63.5 -224t178.5 -78q75 0 125 33l57 291h-206l49 248h460l-139 -709q-70 -60 -168 -91.5t-213 -31.5zM490 -187h282l-236 -306h-194z" />
-<glyph unicode="&#x123;" d="M761 1579h194l-148 -306h-282zM389 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5q0 64 11.5 134.5t32 139 t49.5 132t64 114.5q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l64 182h264l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM516 246q60 0 112 36.5t91 97.5t61.5 140t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36t-91 -96.5t-61.5 -139.5 t-22.5 -166q0 -115 39.5 -170t109.5 -55z" />
-<glyph unicode="&#x124;" d="M676 1852h309l172 -264h-178l-168 161l-229 -161h-178zM282 1493h295l-110 -569h369l110 569h295l-290 -1493h-295l129 664h-369l-129 -664h-295z" />
-<glyph unicode="&#x125;" d="M816 1902h309l172 -264h-178l-168 161l-229 -161h-178zM362 1556h291l-118 -604q50 93 134.5 144t191.5 51q254 0 254 -269q0 -74 -16 -151l-141 -727h-291l133 682q12 60 12 102q0 65 -28 94t-86 29q-82 0 -140.5 -70t-82.5 -196l-125 -641h-291z" />
-<glyph unicode="&#x126;" d="M207 1105h-134l32 164h134l43 224h295l-43 -224h369l43 224h294l-43 -224h135l-32 -164h-135l-215 -1105h-294l129 664h-369l-129 -664h-295zM836 924l35 181h-369l-35 -181h369z" />
-<glyph unicode="&#x127;" d="M268 1270h-160l32 164h160l23 122h291l-23 -122h277l-32 -164h-277l-62 -318q51 96 134 145.5t188 49.5q125 0 193 -69.5t68 -199.5q0 -26 -4 -60t-15 -91l-141 -727h-291l132 682q9 46 11 68t2 34q0 70 -26 102.5t-83 32.5q-88 0 -145.5 -71t-83.5 -207l-124 -641h-291z " />
-<glyph unicode="&#x128;" d="M428 1588q25 130 91 198t161 68q38 0 70 -12t67 -39l53 -41q32 -27 70 -27q37 0 63 30.5t37 88.5h137q-26 -124 -89 -195t-163 -71q-35 0 -67 11t-70 40l-49 37q-25 19 -41.5 25.5t-31.5 6.5q-38 0 -64 -30.5t-37 -89.5h-137zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x129;" d="M804 1270q-35 0 -67.5 13t-72.5 44l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74 57t89.5 20q17 0 32.5 -3t32 -9.5t35 -18.5t41.5 -30l51 -39q39 -31 70 -31q38 0 64 33t36 96h139q-47 -284 -249 -284zM727 -8 q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 12 5.5 33.5t8.5 45.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#x12a;" d="M519 1850h631l-36 -188h-631zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x12b;" d="M367 1508h631l-37 -188h-631zM717 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#x12e;" d="M858 1233l-188 -973h297l-52 -260h-297q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-450l51 260h297l188 973h-297l51 260 h889l-51 -260h-297z" />
-<glyph unicode="&#x12f;" d="M544 1323q-16 0 -23 9t-4 24l56 282q4 27 32 27h233q16 0 23 -9t4 -24l-56 -282q-5 -27 -32 -27h-233zM823 -8q-66 -71 -90 -107q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5 t-58.5 108.5q0 53 35 115t110 130q-91 3 -152.5 17t-100.5 40q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 12 5.5 33.5t8.5 45.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-191z" />
-<glyph unicode="&#x130;" d="M674 1607q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h214q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x131;" d="M732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297v0z " />
-<glyph unicode="&#x132;" d="M83 295h374q80 0 156 40q76 39 128.5 107t67.5 148l176 904h294l-175 -904q-32 -161 -136 -295q-106 -137 -257.5 -216t-310.5 -79h-374zM316 1493h295l-176 -903h-295z" />
-<glyph unicode="&#x133;" d="M265 1274q0 7 1 9l55 282q6 30 36 30h233q25 0 25 -21q0 -7 -1 -9l-55 -282q-6 -30 -36 -30h-233q-25 0 -25 21zM953 1274q0 7 1 9l55 282q6 30 36 30h233q25 0 25 -21q0 -7 -1 -9l-55 -282q-6 -30 -36 -30h-233q-25 0 -25 21zM234 1120h293l-217 -1120h-293zM284 -131 h263q56 0 101 38t56 93l217 1120h295l-217 -1120q-22 -116 -99 -213q-77 -99 -186.5 -156t-223.5 -57h-263z" />
-<glyph unicode="&#x134;" d="M915 1852h309l172 -264h-178l-168 161l-229 -161h-178zM172 -3q-96 26 -194 77l66 342q64 -85 154.5 -132.5t191.5 -47.5q115 0 180.5 58.5t89.5 184.5l147 754h-361l50 260h656l-197 -1014q-53 -274 -190 -390q-136 -118 -392 -118q-49 0 -94.5 6t-106.5 20z" />
-<glyph unicode="&#x135;" d="M804 1673h241l183 -376h-178l-155 225l-242 -225h-178zM20 -199h234q67 0 111 24t71.5 75.5t45.5 142.5l165 852h-297l44 225h590l-209 -1077q-33 -167 -92 -271q-60 -102 -154.5 -149t-235.5 -47h-316z" />
-<glyph unicode="&#x136;" d="M270 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294zM421 -158h282l-236 -306h-194z" />
-<glyph unicode="&#x137;" d="M363 1556h293l-152 -782l404 346h370l-505 -418l313 -702h-311l-222 524l-116 -96l-82 -428h-293zM454 -158h282l-236 -306h-194z" />
-<glyph unicode="&#x138;" d="M283 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
-<glyph unicode="&#x139;" d="M858 1854h281l-320 -264h-207zM371 1493h295l-240 -1233h631l-51 -260h-926z" />
-<glyph unicode="&#x13a;" d="M855 1901h281l-320 -264h-207zM690 -10q-100 0 -171 13.5t-116.5 41.5t-66.5 72t-21 106q0 29 4.5 64t14.5 82l203 962h-306l43 225h598l-249 -1201q-9 -45 -9 -66q0 -42 36 -58t104 -16h278l-45 -225h-297z" />
-<glyph unicode="&#x13b;" d="M371 1493h295l-240 -1233h631l-51 -260h-926zM423 -158h282l-236 -306h-194z" />
-<glyph unicode="&#x13c;" d="M690 -10q-100 0 -171 13.5t-116.5 41.5t-66.5 72t-21 106q0 29 4.5 64t14.5 82l203 962h-306l43 225h598l-249 -1201q-9 -45 -9 -66q0 -42 36 -58t104 -16h278l-45 -225h-297zM358 -153h282l-236 -306h-194z" />
-<glyph unicode="&#x13d;" d="M371 1493h295l-240 -1233h631l-51 -260h-926zM908 1492h321l-257 -376h-197z" />
-<glyph unicode="&#x13e;" d="M690 -10q-100 0 -171 13.5t-116.5 41.5t-66.5 72t-21 106q0 29 4.5 64t14.5 82l203 962h-306l43 225h598l-249 -1201q-9 -45 -9 -66q0 -42 36 -58t104 -16h278l-45 -225h-297zM990 1556h321l-257 -376h-197z" />
-<glyph unicode="&#x13f;" d="M370 1493h295l-239 -1233h631l-51 -260h-926zM686 686l37 186q6 30 35 30h215q26 0 26 -21q0 -7 -1 -9l-37 -186q-4 -30 -35 -30h-215q-29 0 -25 30z" />
-<glyph unicode="&#x140;" d="M297 275q0 81 20 184l170 872h-297l44 225h590l-214 -1097q-12 -61 -12 -106q0 -72 34.5 -104t110.5 -32h234l-43 -225h-316q-168 0 -244.5 67t-76.5 216zM793 686l37 186q6 30 35 30h215q26 0 26 -21q0 -7 -1 -9l-37 -186q-4 -30 -35 -30h-215q-29 0 -25 30z" />
-<glyph unicode="&#x141;" d="M176 502l-131 -99l-115 154l299 211l142 725h295l-95 -481l250 174l115 -154l-418 -295l-92 -477h631l-51 -260h-926z" />
-<glyph unicode="&#x142;" d="M719 -10q-205 0 -290 56q-43 28 -64 74.5t-21 106.5q0 17 1.5 31.5t3.5 31.5t5 37t8 42l53 260l-276 -195l-90 146l418 284l98 467h-305l43 225h598l-94 -464l290 203l103 -138l-443 -301l-106 -502q-3 -12 -4 -16.5t-1 -6.5v-4t-1 -8t-1.5 -15.5t-0.5 -15.5 q0 -20 8.5 -33t22.5 -21t38 -13.5t70 -5.5h279l-45 -225h-297v0z" />
-<glyph unicode="&#x143;" d="M887 1853h281l-320 -264h-207zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
-<glyph unicode="&#x144;" d="M881 1673h321l-442 -376h-197zM276 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293z" />
-<glyph unicode="&#x145;" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263zM351 -158h282l-236 -306h-194z" />
-<glyph unicode="&#x146;" d="M276 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293zM390 -158h282l-236 -306h-194z" />
-<glyph unicode="&#x147;" d="M487 1852h170l149 -162l229 162h181l-244 -264h-348zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
-<glyph unicode="&#x148;" d="M414 1673h174l153 -227l238 227h190l-331 -376h-242zM276 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293 z" />
-<glyph unicode="&#x149;" d="M188 1286l53 270h314l-53 -270l-271 -383h-215zM442 1120h262l-4 -168q50 93 134.5 144t191.5 51q127 0 191 -68.5t64 -202.5q0 -72 -16 -149l-142 -727h-291l133 682q12 62 12 105q0 45 -12 70q-24 52 -100 52q-42 0 -76 -17.5t-65 -53.5q-59 -71 -84 -197l-125 -641 h-291z" />
-<glyph unicode="&#x14a;" d="M447 -199h37q50 0 87 13t64 42t46 75.5t32 112.5l189 971q5 26 7.5 49.5t2.5 42.5q0 77 -38.5 112.5t-115.5 35.5q-59 0 -108 -20t-86 -56.5t-62.5 -89t-38.5 -117.5l-189 -972h-295l291 1493h266l-18 -240q63 129 165 199t233 70q143 0 217 -87t74 -263q0 -50 -6 -107.5 t-19 -122.5l-172 -884q-26 -133 -66 -225.5t-99 -150t-138 -83t-183 -25.5h-121z" />
-<glyph unicode="&#x14b;" d="M419 -199h39q49 0 86 12.5t64.5 41t46.5 75t32 113.5l124 639q12 61 12 105q0 19 -3 40.5t-14.5 39.5t-33 30t-57.5 12q-88 0 -146.5 -72t-82.5 -196l-124 -641h-291l217 1120h262l-3 -168q51 97 136 146t194 49q78 0 126.5 -23.5t76 -61.5t37.5 -86.5t10 -97.5 q0 -34 -4 -71.5t-12 -79.5l-133 -684q-24 -126 -63 -214.5t-97 -145t-137.5 -82t-184.5 -25.5h-121z" />
-<glyph unicode="&#x14c;" d="M509 1850h631l-36 -188h-631zM497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233 q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
-<glyph unicode="&#x14d;" d="M459 1537h631l-37 -188h-631zM533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207 q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x150;" d="M687 1852h284l-337 -264h-197zM1062 1852h284l-337 -264h-197zM497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169 q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74 q0 -107 40 -166t123 -59z" />
-<glyph unicode="&#x151;" d="M612 1673h246l-321 -376h-164zM1008 1673h260l-346 -376h-172zM533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5 t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x152;" d="M474 0q-133 0 -219 23.5t-138 67.5q-53 45 -79.5 119.5t-26.5 191.5q0 66 8.5 147t25.5 175t41 187t52 172q35 99 80 177.5t116 134.5q64 51 141 74.5t171 23.5h686l-52 -260h-331l-60 -311h301l-51 -260h-301l-78 -402h342l-51 -260h-577zM506 260l189 973h-51 q-48 0 -82.5 -13t-60.5 -34q-30 -25 -51.5 -61t-39.5 -86q-10 -27 -21 -64t-22 -79.5t-21.5 -88.5t-18.5 -90q-15 -80 -23.5 -153t-8.5 -124q0 -52 9.5 -84.5t29.5 -53.5q18 -20 47 -31t74 -11h51z" />
-<glyph unicode="&#x153;" d="M296 -29q-72 0 -132 20.5t-102 62.5q-40 40 -61 101.5t-21 153.5q0 57 8 132t24 154q17 84 39 155.5t48 130.5q29 66 66 115t89 84q50 33 109 50t122 17q39 0 75.5 -7t67.5 -23t55.5 -39.5t41.5 -51.5q48 58 117 90q68 31 151 31q67 0 117 -18t83 -51q35 -35 52 -86 t17 -114q0 -26 -2.5 -59t-5.5 -58q-4 -29 -10.5 -71t-14.5 -84l-23 -127h-450q-5 -26 -7.5 -46t-4.5 -33q-3 -26 -3 -44q0 -38 11 -70.5t32 -55.5q20 -22 50 -34t67 -12q55 0 123 28q33 14 64.5 32t66.5 45l-47 -238q-57 -41 -126 -60q-71 -20 -147 -20q-52 0 -91.5 10.5 t-72.5 30.5q-68 41 -87 109q-25 -38 -55.5 -65.5t-65.5 -46.5q-36 -19 -76.5 -28.5t-90.5 -9.5zM319 184q27 0 48 8t38 24q20 18 33.5 44t26.5 62q10 25 23 81q7 29 14.5 68t17.5 88q4 19 8 41t8 43t7 38.5t5 27.5q4 23 6.5 48t2.5 47q0 31 -6 56t-20 42q-26 32 -79 32 q-55 0 -90 -32q-17 -16 -30 -39.5t-28 -65.5q-9 -26 -15.5 -48t-14.5 -55t-15 -62.5t-15 -72.5q-8 -41 -13.5 -71.5t-10.5 -70.5q-5 -33 -7 -53.5t-2 -41.5q0 -73 26 -105q25 -33 82 -33zM1022 690l10 66q4 19 6 40q1 10 1.5 19t0.5 19q0 51 -20 76q-20 24 -63 24 q-57 0 -91 -42q-17 -21 -32 -55.5t-23 -76.5l-14 -70h225z" />
-<glyph unicode="&#x154;" d="M844 1853h281l-320 -264h-207zM294 1493h410q234 0 345 -88.5t111 -273.5q0 -90 -25 -164t-73.5 -129t-118.5 -89t-160 -44q30 -5 53.5 -15.5t41.5 -30t32.5 -49.5t28.5 -73l164 -537h-301l-106 376l-8 27q-29 96 -65.5 141.5t-92.5 45.5h-117l-115 -590h-295zM585 838 q136 0 205 64.5t69 177.5q0 86 -43.5 125.5t-140.5 39.5h-133l-80 -407h123z" />
-<glyph unicode="&#x155;" d="M911 1673h321l-442 -376h-197zM343 1120h264l-6 -174q64 99 163 150t215 51q63 0 118 -15t100 -42l-53 -275q-50 44 -108.5 64t-136.5 20q-81 0 -143 -21.5t-108 -67.5t-77.5 -118.5t-51.5 -175.5l-100 -516h-295z" />
-<glyph unicode="&#x156;" d="M294 1493h410q234 0 345 -88.5t111 -273.5q0 -90 -25 -164t-73.5 -129t-118.5 -89t-160 -44q30 -5 53.5 -15.5t41.5 -30t32.5 -49.5t28.5 -73l164 -537h-301l-106 376l-8 27q-29 96 -65.5 141.5t-92.5 45.5h-117l-115 -590h-295zM585 838q136 0 205 64.5t69 177.5 q0 86 -43.5 125.5t-140.5 39.5h-133l-80 -407h123zM433 -158h282l-236 -306h-194z" />
-<glyph unicode="&#x157;" d="M373 1120h264l-6 -174q64 99 163 150t215 51q63 0 118 -15t100 -42l-53 -275q-50 44 -108.5 64t-136.5 20q-81 0 -143 -21.5t-108 -67.5t-77.5 -118.5t-51.5 -175.5l-100 -516h-295zM181 -158h282l-236 -306h-194z" />
-<glyph unicode="&#x158;" d="M420 1852h170l149 -162l229 162h181l-244 -264h-348zM294 1493h410q234 0 345 -88.5t111 -273.5q0 -90 -25 -164t-73.5 -129t-118.5 -89t-160 -44q30 -5 53.5 -15.5t41.5 -30t32.5 -49.5t28.5 -73l164 -537h-301l-106 376l-8 27q-29 96 -65.5 141.5t-92.5 45.5h-117 l-115 -590h-295zM585 838q136 0 205 64.5t69 177.5q0 86 -43.5 125.5t-140.5 39.5h-133l-80 -407h123z" />
-<glyph unicode="&#x159;" d="M475 1673h174l153 -227l238 227h190l-331 -376h-242zM348 1120h264l-6 -174q64 99 163 150t215 51q63 0 118 -15t100 -42l-53 -275q-50 44 -108.5 64t-136.5 20q-81 0 -143 -21.5t-108 -67.5t-77.5 -118.5t-51.5 -175.5l-100 -516h-295z" />
-<glyph unicode="&#x15a;" d="M887 1853h281l-320 -264h-207zM469 -29q-113 0 -227 26t-238 79l59 305q97 -81 202.5 -123.5t214.5 -42.5q66 0 118.5 15.5t89 43.5t56.5 67.5t20 88.5q0 65 -35 110t-104 74l-119 50q-94 39 -155 75.5t-97 77t-50 87.5t-14 108q0 115 42.5 209t119.5 160.5t184.5 102.5 t238.5 36q97 0 195 -20t189 -62l-57 -285q-34 31 -75 54.5t-86.5 39.5t-93 23.5t-94.5 7.5q-78 0 -131.5 -19.5t-86 -48t-46.5 -61.5t-14 -61q0 -49 42.5 -92t141.5 -86l7 -3l116 -51q73 -32 126 -70.5t87.5 -86t51 -104t16.5 -125.5q0 -112 -42 -204t-119 -157.5 t-187 -101.5t-246 -36z" />
-<glyph unicode="&#x15b;" d="M881 1673h321l-442 -376h-197zM495 -29q-100 0 -202.5 17.5t-202.5 52.5l51 256q87 -57 180.5 -86t190.5 -29q109 0 170 37t61 111q0 18 -6 33.5t-26 31.5q-23 18 -62.5 33.5t-99.5 32.5l-88 24q-236 65 -236 284q0 85 35 155t100 119.5t158.5 76.5t210.5 27 q88 0 180 -15.5t185 -46.5l-50 -254q-77 55 -165 81t-171 26q-101 0 -155.5 -34.5t-54.5 -93.5q0 -46 37 -73q9 -7 25.5 -15t38 -16.5t47.5 -17t54 -16.5l74 -21q124 -35 185 -104.5t61 -187.5q0 -91 -35 -163t-102 -122t-165 -76.5t-223 -26.5z" />
-<glyph unicode="&#x15c;" d="M673 1852h309l172 -264h-178l-168 161l-229 -161h-178zM2 76l59 305q202 -166 413 -166q110 0 180 50t87 138q4 15 4 41q0 104 -121 156l-135 55q-114 49 -181 96q-66 46 -96.5 101t-30.5 128q0 39 11 105q27 136 105 233q78 99 197 150.5t269 51.5q210 0 393 -93 l-56 -288q-81 67 -173.5 102t-188.5 35q-105 0 -170.5 -43t-81.5 -122q-4 -20 -4 -37q0 -37 23 -64t60 -46.5t99 -45.5l117 -48q141 -57 207.5 -140.5t66.5 -204.5q0 -51 -12 -110q-43 -220 -198.5 -332t-415.5 -112q-244 0 -427 105z" />
-<glyph unicode="&#x15d;" d="M672 1596h241l198 -299h-178l-170 147l-227 -147h-178zM884 75q67 51 101.5 122.5t34.5 161.5q0 116 -59.5 186t-186.5 106l-74 21q-79 23 -116 39q-44 18 -65 39.5t-21 59.5q0 59 55.5 93.5t151.5 34.5q181 0 339 -107l50 254q-43 15 -93.5 27.5t-91.5 19.5 q-88 15 -184 15q-111 0 -204.5 -26.5t-160.5 -75.5q-66 -49 -100.5 -120t-34.5 -158q0 -106 60 -178t176 -104l88 -24q123 -35 163 -66q31 -24 31 -69q0 -69 -61 -106.5t-172 -37.5q-92 0 -188 30q-49 15 -91.5 35t-89.5 50l-51 -256q109 -37 204.5 -53.5t206.5 -16.5 q120 0 217.5 26.5t165.5 77.5z" />
-<glyph unicode="&#x15e;" d="M549 1222q-37 -29 -55.5 -65.5t-18.5 -69.5q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-61 -52 -142.5 -85.5t-181.5 -45.5q12 -18 21.5 -35.5t16.5 -35.5q18 -47 18 -91 q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-42 5 -62.5 11t-36.5 9l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 11 -11.5 27t-16.5 35q-98 3 -195 25q-60 14 -118 33.5t-121 45.5 l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5 t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41z" />
-<glyph unicode="&#x15f;" d="M553 903q-55 -35 -55 -93q0 -46 37 -73q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-58 -44 -135 -68.5t-168 -32.5q23 -36 36 -68q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5 q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-42 5 -62.5 11t-36.5 9l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 77q0 26 -13 61q-5 12 -12 27.5t-17 34.5q-38 2 -75.5 6t-68.5 9q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5 t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5 l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26z" />
-<glyph unicode="&#x160;" d="M457 1853h170l149 -162l229 162h181l-244 -264h-348zM469 -29q-58 0 -113.5 6.5t-112.5 19.5q-60 14 -118 33.5t-121 45.5l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50 q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41q-37 -29 -55.5 -65.5t-18.5 -69.5 q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-78 -66 -187.5 -101.5t-246.5 -35.5z" />
-<glyph unicode="&#x161;" d="M424 1673h174l153 -227l238 227h190l-331 -376h-242zM501 -29q-53 0 -108 4.5t-100 12.5q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5 l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26q-55 -35 -55 -93q0 -46 37 -73 q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-70 -53 -168 -78.5t-215 -25.5z" />
-<glyph unicode="&#x162;" d="M1288 1493l-51 -258h-379l-240 -1235h-54q37 -50 54.5 -95t17.5 -91q0 -48 -19.5 -88t-56.5 -68q-39 -28 -93.5 -43.5t-120.5 -15.5q-96 0 -195 26l28 156q90 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 27 -13 61.5t-44 89.5h-99l239 1235h-383l49 258h1059z" />
-<glyph unicode="&#x163;" d="M633 325l-2 -25q0 -45 30.5 -62.5t108.5 -17.5h225l-43 -225h-200q33 -48 49 -90.5t16 -86.5q0 -48 -19.5 -88t-56.5 -68q-39 -28 -93.5 -43.5t-120.5 -15.5q-96 0 -195 26l28 156q90 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 26 -12.5 59.5t-41.5 86.5 q-133 11 -204 63.5t-71 166.5q0 19 5 61l5 36q1 11 8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535z" />
-<glyph unicode="&#x164;" d="M459 1853h170l149 -162l229 162h181l-244 -264h-348zM563 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
-<glyph unicode="&#x165;" d="M1073 1661h321l-257 -376h-197zM707 -5q-106 0 -176 14t-113 43q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5 q0 -43 30 -61q29 -19 109 -19h225l-43 -225h-245z" />
-<glyph unicode="&#x166;" d="M428 538h-247l38 192h247l98 505h-379l50 258h1053l-50 -258h-379l-98 -505h247l-38 -192h-247l-104 -538h-295z" />
-<glyph unicode="&#x167;" d="M706 -5q-251 0 -325 80q-47 52 -47 158q0 31 4 66t12 75l35 187h-178l38 192h178l27 142h-286l44 225h286l62 318h293l-62 -318h383l-44 -225h-383l-27 -142h184l-38 -192h-184l-38 -201q-5 -28 -5 -45q0 -40 20 -62q31 -33 116 -33h225l-44 -225h-246v0z" />
-<glyph unicode="&#x168;" d="M438 1589q25 130 91 198t161 68q38 0 70 -12t67 -39l53 -41q32 -27 70 -27q37 0 63 30.5t37 88.5h137q-26 -124 -89 -195t-163 -71q-35 0 -67 11t-70 40l-49 37q-25 19 -41.5 25.5t-31.5 6.5q-38 0 -64 -30.5t-37 -89.5h-137zM492 -29q-106 0 -189 25t-140.5 74.5 t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5 q-75 -74 -178.5 -113t-238.5 -39z" />
-<glyph unicode="&#x169;" d="M892 1270q-20 0 -37 3t-34 10t-34.5 18t-37.5 26l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74.5 57t90 20q18 0 33.5 -3t32 -10t34 -19t40.5 -29l51 -39q40 -31 72 -31q38 0 63.5 34.5t34.5 94.5h139q-23 -140 -85 -212 t-161 -72zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166q-45 -91 -128 -143t-192 -52z" />
-<glyph unicode="&#x16a;" d="M519 1850h631l-36 -188h-631zM492 -29q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295l-185 -942 q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39z" />
-<glyph unicode="&#x16b;" d="M469 1508h631l-37 -188h-631zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166q-45 -91 -128 -143t-192 -52z" />
-<glyph unicode="&#x16c;" d="M494 1824q0 23 1 28h141q7 -59 51 -90t120 -31q155 0 216 121h143q-40 -128 -139.5 -196t-247.5 -68q-141 0 -213 61.5t-72 174.5zM731 10q97 37 164.5 100.5t102.5 136.5q29 61 48.5 130t40.5 174l185 942h-295l-199 -1016q-25 -124 -89 -185t-171 -61 q-85 0 -131.5 44.5t-46.5 124.5q0 33 7 71q1 1 1 6l199 1016h-295l-184 -942l-5 -23l-5 -30l-7 -54q-6 -54 -6 -90q0 -94 29 -164t89 -120q119 -99 334 -99q131 0 234 39z" />
-<glyph unicode="&#x16d;" d="M1002 1379q-99 -78 -253 -78q-145 0 -219 66t-74 198v33h144v-13q0 -61 43.5 -97t120.5 -36q82 0 140 39q29 19 49 44.5t34 62.5h143q-14 -71 -45.5 -125t-82.5 -94zM559 24q-44 -28 -89.5 -40.5t-97.5 -12.5q-128 0 -197 70.5t-69 202.5q0 39 4 64q1 1 4 29q3 26 9 54 l143 729h291l-131 -684l-4 -32l-3 -21q-3 -21 -3 -47q0 -32 7 -53.5t22 -39.5q29 -32 84 -32q44 0 78 17.5t61 53.5q59 73 84 207l122 631h291l-217 -1120h-264l4 166q-23 -46 -54 -80t-75 -62z" />
-<glyph unicode="&#x16e;" d="M1272 1493l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h251q-28 58 -28 123q0 59 22 111t60.5 90.5t90.5 61t111 22.5 t111 -22.5t90.5 -61t61 -90.5t22.5 -111q0 -65 -28 -123h256zM759 1747q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10t51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5zM962 1416q-39 -40 -91 -62.5t-112 -22.5 q-69 0 -126.5 29t-96.5 79l-188 -962q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186z" />
-<glyph unicode="&#x16f;" d="M737 1254q-59 0 -111 22.5t-90.5 61t-60.5 90.5t-22 111t22 111t60.5 90.5t90.5 61t111 22.5t111 -22.5t90.5 -61t61 -90.5t22.5 -111t-22.5 -111t-61 -90.5t-90.5 -61t-111 -22.5zM737 1408q27 0 51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5 t-51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166 q-45 -91 -128 -143t-192 -52z" />
-<glyph unicode="&#x170;" d="M687 1852h284l-337 -264h-197zM1062 1852h284l-337 -264h-197zM492 -29q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60 t90.5 186l199 1016h295l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39z" />
-<glyph unicode="&#x171;" d="M632 1648h246l-321 -376h-164zM1028 1648h260l-346 -376h-172zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166 q-45 -91 -128 -143t-192 -52z" />
-<glyph unicode="&#x172;" d="M1272 1493l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39h-5q-63 -68 -87 -104q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5 t-58.5 108.5q0 54 37.5 118.5t117.5 135.5q-151 29 -231.5 123.5t-80.5 252.5q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295z" />
-<glyph unicode="&#x173;" d="M823 -182q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-150l33 166q-45 -91 -128 -143t-192 -52q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684 q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-2q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5z" />
-<glyph unicode="&#x174;" d="M669 1859h348l151 -264h-169l-164 161l-230 -161h-180zM143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
-<glyph unicode="&#x175;" d="M698 1646h243l183 -376h-176l-152 225l-240 -225h-190zM96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
-<glyph unicode="&#x176;" d="M656 1859h348l151 -264h-169l-164 161l-230 -161h-180zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#x177;" d="M716 1647h243l183 -376h-176l-152 225l-240 -225h-190zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
-<glyph unicode="&#x178;" d="M489 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM885 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM432 588l-287 905h293l187 -649l411 649h322 l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#x179;" d="M867 1853h281l-320 -264h-207zM4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
-<glyph unicode="&#x17a;" d="M901 1647h321l-442 -376h-197zM94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
-<glyph unicode="&#x17b;" d="M698 1606q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
-<glyph unicode="&#x17c;" d="M667 1320q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
-<glyph unicode="&#x17d;" d="M477 1852h170l149 -162l229 162h181l-244 -264h-348zM4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
-<glyph unicode="&#x17e;" d="M444 1648h174l153 -227l238 227h190l-331 -376h-242zM94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
-<glyph unicode="&#x192;" d="M270 -426q-28 0 -58 3t-57 9t-56 16t-57 23v234q22 -14 42.5 -24t40.5 -17q39 -13 80 -13q94 0 147 60q52 60 69 190l80 611h-252v219h281l39 293q12 91 44.5 161.5t81.5 118.5q51 49 117 73.5t144 24.5q28 0 59 -3t57 -9q23 -5 54 -16t57 -23v-231q-23 14 -44 23t-38 15 q-39 13 -79 13q-93 0 -144 -60q-27 -32 -44.5 -79.5t-25.5 -110.5l-24 -190h260v-219h-289l-94 -713q-11 -85 -42.5 -157t-83.5 -123q-101 -99 -265 -99z" />
-<glyph unicode="&#x1a0;" d="M1388 1555q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -114 -80.5 -176t-143.5 -62q-19 0 -37 3q4 -28 5.5 -57.5t1.5 -61.5q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5 t74 160q82 144 203 217.5t286 73.5q136 0 230.5 -51t146.5 -156l5 -3q32 -19 58 -19q35 0 66 25.5t43 82.5q4 18 6 39.5t2 39.5q0 34 -8 77h156zM758 630q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5 q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148z" />
-<glyph unicode="&#x1a1;" d="M1294 1167q0 -55 -3.5 -101.5t-11.5 -88.5q-20 -97 -65 -156.5t-112 -76.5q2 -19 3 -38.5t1 -40.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26 q146 0 248.5 -59.5t153.5 -180.5q25 10 45.5 35t29.5 67q4 18 6 39.5t2 39.5q0 34 -8 77h156zM518 207q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x1a4;" d="M376 1245q-33 0 -47.5 -10.5t-22.5 -34.5q-6 -19 -18 -82l-9 -48h-175l25 130q18 92 62.5 159.5t107.5 101.5q59 32 125 32h405q502 0 502 -350q0 -54 -12 -117q-89 -467 -671 -467h-110l-109 -559h-295zM707 807q99 0 160 21.5t95 68.5q35 48 50 129q8 43 8 76 q0 76 -53.5 109.5t-174.5 33.5h-121l-85 -438h121z" />
-<glyph unicode="&#x1af;" d="M1437 1555q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -114 -80.5 -176t-143.5 -62q-35 0 -69 12l-115 -588q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5 t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295l-39 -201q4 -1 12 -1q35 0 66 25.5t43 82.5q4 18 6 39.5t2 39.5q0 34 -8 77h156z" />
-<glyph unicode="&#x1b0;" d="M1336 1167q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -114 -80.5 -176t-143.5 -62q-35 0 -65 10l-145 -749h-264l4 166q-45 -91 -128 -143t-192 -52q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31 q80 0 138 67.5t86 210.5l122 631h291l-42 -217h9q35 0 66 25.5t43 82.5q4 18 6 39.5t2 39.5q0 34 -8 77h156z" />
-<glyph unicode="&#x1e6;" d="M505 1853h170l149 -162l229 162h181l-244 -264h-348zM610 -29q-121 0 -215.5 36.5t-159.5 107.5t-99 176t-34 242q0 102 18.5 208t53 205.5t83.5 189t110 158.5q99 112 228 169t280 57q84 0 161.5 -18t155.5 -54l-66 -328q-51 67 -120 102t-149 35q-70 0 -134.5 -28 t-118.5 -88q-44 -48 -76.5 -111.5t-58.5 -138.5q-15 -43 -27 -89.5t-20.5 -93t-13.5 -91t-5 -84.5q0 -146 63.5 -224t178.5 -78q75 0 125 33l57 291h-206l49 248h460l-139 -709q-70 -60 -168 -91.5t-213 -31.5z" />
-<glyph unicode="&#x1e7;" d="M414 1677h174l153 -227l238 227h190l-331 -376h-242zM389 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5 q0 64 11.5 134.5t32 139t49.5 132t64 114.5q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l64 182h264l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM516 246q60 0 112 36.5t91 97.5t61.5 140t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36 t-91 -96.5t-61.5 -139.5t-22.5 -166q0 -115 39.5 -170t109.5 -55z" />
-<glyph unicode="&#x1fe;" d="M862 1853h281l-320 -264h-207zM-141 51l219 244q-5 21 -8 39.5t-5 37t-3 38.5t-1 43q0 100 13 206.5t37 208.5t58 194.5t75 164.5q81 143 203 218t284 75q210 0 332 -131l154 170l139 -115l-205 -227q10 -57 15 -105t5 -94q0 -30 -2 -65.5t-6 -72.5t-8.5 -73.5 t-10.5 -69.5q-25 -146 -67 -267t-90 -205q-87 -153 -207.5 -223.5t-275.5 -70.5q-113 0 -199 36t-145 110l-160 -180zM852 1153q-18 52 -55.5 79.5t-90.5 27.5q-63 0 -111.5 -38.5t-84.5 -107.5q-40 -77 -72.5 -200.5t-58.5 -284.5zM526 233q60 0 111.5 37t91.5 116 q76 151 129 503l-483 -535q36 -121 151 -121z" />
-<glyph unicode="&#x1ff;" d="M887 1675h321l-442 -376h-197zM-82 2l211 207q-21 49 -31 100t-10 124q0 157 43.5 289t122.5 226.5t190 147.5t246 53q180 0 311 -100l193 186l117 -121l-207 -201q11 -27 18.5 -53t12.5 -53.5t7.5 -57.5t2.5 -65q0 -158 -43.5 -289t-123 -225t-191.5 -146.5t-249 -52.5 q-186 0 -305 101l-198 -189zM801 856q-49 55 -128 55q-120 0 -195.5 -117t-94.5 -341zM562 207q60 0 109.5 31t86.5 90t60.5 145t31.5 197l-416 -404q47 -59 128 -59z" />
-<glyph unicode="&#x218;" d="M469 -29q-113 0 -227 26t-238 79l59 305q97 -81 202.5 -123.5t214.5 -42.5q66 0 118.5 15.5t89 43.5t56.5 67.5t20 88.5q0 65 -35 110t-104 74l-119 50q-94 39 -155 75.5t-97 77t-50 87.5t-14 108q0 115 42.5 209t119.5 160.5t184.5 102.5t238.5 36q97 0 195 -20t189 -62 l-57 -285q-34 31 -75 54.5t-86.5 39.5t-93 23.5t-94.5 7.5q-78 0 -131.5 -19.5t-86 -48t-46.5 -61.5t-14 -61q0 -49 42.5 -92t141.5 -86l7 -3l116 -51q73 -32 126 -70.5t87.5 -86t51 -104t16.5 -125.5q0 -112 -42 -204t-119 -157.5t-187 -101.5t-246 -36zM284 -198h282 l-236 -306h-194z" />
-<glyph unicode="&#x219;" d="M495 -29q-100 0 -202.5 17.5t-202.5 52.5l51 256q87 -57 180.5 -86t190.5 -29q109 0 170 37t61 111q0 18 -6 33.5t-26 31.5q-23 18 -62.5 33.5t-99.5 32.5l-88 24q-236 65 -236 284q0 85 35 155t100 119.5t158.5 76.5t210.5 27q88 0 180 -15.5t185 -46.5l-50 -254 q-77 55 -165 81t-171 26q-101 0 -155.5 -34.5t-54.5 -93.5q0 -46 37 -73q9 -7 25.5 -15t38 -16.5t47.5 -17t54 -16.5l74 -21q124 -35 185 -104.5t61 -187.5q0 -91 -35 -163t-102 -122t-165 -76.5t-223 -26.5zM284 -198h282l-236 -306h-194z" />
-<glyph unicode="&#x21a;" d="M1288 1493l-51 -258h-379l-240 -1235h-54q36 -48 54 -93.5t18 -92.5q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 27 -13 61.5t-44 89.5h-99l239 1235h-383l49 258h1059z" />
-<glyph unicode="&#x21b;" d="M639 360q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5q0 -43 30 -61q29 -19 109 -19h225l-43 -225h-200q32 -46 48.5 -89t16.5 -88q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5 t36.5 76.5q0 26 -12.5 59.5t-41.5 86.5q-65 5 -111 18.5t-78 34.5q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535v0z" />
-<glyph unicode="&#x2b9;" d="M613 1638h221l-206 -498h-176z" />
-<glyph unicode="&#x2bb;" d="M473 1174l270 382h215l-172 -382l-53 -271h-313z" />
-<glyph unicode="&#x2bc;" d="M542 1285l52 271h313l-52 -271l-271 -382h-215z" />
-<glyph unicode="&#x2bd;" d="M704 1218q-231 1 -231 188q0 18 2 37t6 40l48 246h274l-48 -246h-121q-2 -10 -3 -19t-1 -17q0 -86 102 -86l-28 -143v0z" />
-<glyph unicode="&#x2be;" d="M632 1140q30 0 58.5 12.5t50.5 34t35.5 49.5t13.5 59q0 45 -30 76t-78 31l30 154q52 0 95 -17.5t74 -48.5t48.5 -73t17.5 -91q0 -14 -1 -27.5t-4 -27.5q-12 -59 -44.5 -111t-78.5 -90.5t-102 -61t-115 -22.5z" />
-<glyph unicode="&#x2bf;" d="M771 986q-118 0 -186 83q-25 32 -36.5 69t-11.5 77q0 69 32 137t95 121q101 83 218 83l-30 -154q-30 0 -58.5 -13t-51 -34.5t-36 -49.5t-13.5 -59q0 -45 30 -75.5t78 -30.5l-30 -154v0z" />
-<glyph unicode="&#x2c0;" d="M437 1080h54q126 0 187 64q26 27 39 56t13 57q0 33 -18 60q-45 64 -148 64q-94 0 -191 -48l32 167q24 9 46.5 16.5t50 12.5t64 7.5t89.5 2.5q62 0 113.5 -21.5t88 -57.5t57 -83.5t20.5 -100.5q0 -22 -5 -50q-12 -65 -41.5 -113.5t-70.5 -82.5t-92 -54.5t-108 -29.5 l-54 -278h-206z" />
-<glyph unicode="&#x2c1;" d="M554 946q-45 7 -83.5 23.5t-66.5 43t-43.5 63.5t-15.5 85q0 15 2 31.5t5 33.5q12 60 49.5 116.5t91.5 100t120 70t135 26.5q52 0 88 -2.5t61.5 -7.5t45 -12.5t39.5 -16.5l-32 -167q-83 48 -173 48q-103 0 -173 -64q-26 -23 -38.5 -50.5t-12.5 -56.5q0 -35 18 -66 q36 -64 161 -64h54l-80 -412h-206z" />
-<glyph unicode="&#x2c6;" d="M668 1638h243l183 -376h-176l-152 225l-240 -225h-190z" />
-<glyph unicode="&#x2c7;" d="M414 1638h174l153 -227l238 227h190l-331 -376h-242z" />
-<glyph unicode="&#x2c8;" d="M576 1554h189l-108 -555h-189z" />
-<glyph unicode="&#x2c9;" d="M459 1556h631l-37 -188h-631z" />
-<glyph unicode="&#x2cc;" d="M576 390h189l-108 -555h-189z" />
-<glyph unicode="&#x2cd;" d="M114 -218h631l-37 -188h-631z" />
-<glyph unicode="&#x2ce;" d="M469 -208h284l209 -376h-198z" />
-<glyph unicode="&#x2cf;" d="M789 -208h321l-442 -376h-197z" />
-<glyph unicode="&#x2d0;" d="M520 1120h411l-280 -380zM582 380l131 -380h-411z" />
-<glyph unicode="&#x2d1;" d="M448 1120h411l-280 -380z" />
-<glyph unicode="&#x2d8;" d="M739 1309q-146 0 -219 66q-35 31 -54.5 78.5t-19.5 119.5v33h144v-13q0 -61 44 -97q43 -36 120 -36q81 0 140 39q29 19 49 44.5t34 62.5h143q-14 -71 -45.5 -125t-82.5 -94q-99 -78 -253 -78z" />
-<glyph unicode="&#x2d9;" d="M627 1339q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214v0z" />
-<glyph unicode="&#x2da;" d="M747 1249q-57 0 -108.5 21t-93.5 63q-41 42 -61.5 92.5t-20.5 107.5q0 64 23.5 116t59.5 88q37 37 88.5 59.5t113.5 22.5q57 0 108.5 -20.5t92.5 -61.5q35 -35 59 -86.5t24 -115.5q0 -63 -23.5 -115.5t-58.5 -87.5q-41 -41 -93.5 -62t-109.5 -21zM749 1403q53 0 92 39 q38 38 38 92t-39 93q-40 38 -92 38q-55 0 -93 -38q-39 -39 -39 -93q0 -55 38 -93q17 -17 41.5 -27.5t53.5 -10.5z" />
-<glyph unicode="&#x2db;" d="M471 -401q-47 0 -87 9t-70 29q-28 18 -43 44.5t-15 62.5q0 57 39 122q40 66 117 134h141q-75 -80 -99 -117q-11 -17 -17.5 -33.5t-6.5 -31.5q0 -31 26 -52q12 -10 29.5 -15t43.5 -5q14 0 33 1.5t39 5.5q39 7 85 24l-31 -156q-9 -2 -22 -4.5t-27 -5t-26.5 -4.5t-19.5 -3 q-20 -2 -45 -3.5t-44 -1.5z" />
-<glyph unicode="&#x2dc;" d="M880 1307q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -1.5 1.5t-3.5 2.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2 q20 0 35.5 9t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72z" />
-<glyph unicode="&#x2dd;" d="M612 1638h246l-321 -376h-164zM1008 1638h260l-346 -376h-172z" />
-<glyph unicode="&#x300;" horiz-adv-x="0" d="M-862 1638h284l209 -376h-198z" />
-<glyph unicode="&#x301;" horiz-adv-x="0" d="M-346 1638h321l-442 -376h-197z" />
-<glyph unicode="&#x302;" horiz-adv-x="0" d="M-565 1638h243l183 -376h-176l-152 225l-240 -225h-190z" />
-<glyph unicode="&#x303;" horiz-adv-x="0" d="M-354 1307q-35 0 -67.5 13t-72.5 44l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74 57t89.5 20q17 0 32.5 -3t32 -9.5t35 -18.5t41.5 -30l51 -39q39 -31 70 -31q38 0 64 33t36 96h139q-47 -284 -249 -284z" />
-<glyph unicode="&#x304;" horiz-adv-x="0" d="M-774 1556h631l-37 -188h-631z" />
-<glyph unicode="&#x305;" horiz-adv-x="0" d="M-1233 1547h1233v-190h-1233v190z" />
-<glyph unicode="&#x306;" horiz-adv-x="0" d="M-492 1309q-295 0 -295 264v33h144v-13q0 -61 44 -97t120 -36q81 0 139.5 38.5t83.5 107.5h143q-29 -143 -127.5 -220t-251.5 -77z" />
-<glyph unicode="&#x307;" horiz-adv-x="0" d="M-590 1585h272l-47 -246h-274z" />
-<glyph unicode="&#x308;" horiz-adv-x="0" d="M-770 1585h237l-49 -246h-235zM-375 1585h238l-49 -246h-236z" />
-<glyph unicode="&#x309;" horiz-adv-x="0" d="M-709 1376q68 17 120 62q15 11 26.5 35.5t11.5 49.5q0 20 -10 36.5t-34 23.5q-19 5 -35 7t-30 1h-49q-47 0 -122 -31l30 152q112 26 207 26q223 0 219 -145l-2 -20t-3 -21q-18 -91 -145 -206l-17 -84h-189z" />
-<glyph unicode="&#x30a;" horiz-adv-x="0" d="M-485 1249q-60 0 -112 22.5t-90.5 61t-60.5 90.5t-22 111t22 111t60.5 90.5t90.5 61t112 22.5q59 0 110.5 -22.5t90 -61t61 -90.5t22.5 -111t-22.5 -111t-61 -90.5t-90 -61t-110.5 -22.5zM-485 1403q27 0 51 10.5t41.5 28t28 41.5t10.5 51t-10.5 51t-28.5 41.5t-41.5 28 t-50.5 10.5t-51 -10.5t-42 -28t-28.5 -41.5t-10.5 -51t10.5 -51t28.5 -42t42 -28t51 -10z" />
-<glyph unicode="&#x30b;" horiz-adv-x="0" d="M-621 1638h246l-321 -376h-164zM-225 1638h260l-346 -376h-172z" />
-<glyph unicode="&#x30c;" horiz-adv-x="0" d="M-819 1638h174l153 -227l238 227h190l-331 -376h-242z" />
-<glyph unicode="&#x30d;" horiz-adv-x="0" d="M-668 1706h190l-86 -444h-190z" />
-<glyph unicode="&#x30e;" horiz-adv-x="0" d="M-953 1706h190l-86 -444h-190zM-383 1706h190l-86 -444h-190z" />
-<glyph unicode="&#x30f;" horiz-adv-x="0" d="M-918 1638h231l142 -376h-174zM-541 1638h217l121 -376h-163z" />
-<glyph unicode="&#x310;" horiz-adv-x="0" d="M-77 1822q-29 -143 -127.5 -220t-251.5 -77q-295 0 -295 264v33h144v-13q0 -56 37 -90l16 82h272l-16 -83q54 37 78 104h143z" />
-<glyph unicode="&#x311;" horiz-adv-x="0" d="M-843 1309q34 145 135 221t258 76q78 0 132.5 -18t88 -49.5t48.5 -74t15 -91.5q0 -30 -6 -64h-143q1 3 1 8q0 64 -41 100t-125 36t-140.5 -37.5t-81.5 -106.5h-141v0z" />
-<glyph unicode="&#x312;" horiz-adv-x="0" d="M-562 1209h194l-148 -306h-282z" />
-<glyph unicode="&#x313;" horiz-adv-x="0" d="M-775 1361q120 0 144 122h-121l48 246h274l-48 -246q-51 -264 -325 -265z" />
-<glyph unicode="&#x314;" horiz-adv-x="0" d="M-529 1218q-231 1 -231 188q0 18 2 37t6 40l48 246h274l-48 -246h-121q-2 -10 -3 -19t-1 -17q0 -86 102 -86l-28 -143v0z" />
-<glyph unicode="&#x315;" horiz-adv-x="0" d="M-531 1638h321l-257 -376h-197z" />
-<glyph unicode="&#x316;" horiz-adv-x="0" d="M-727 -217h284l209 -376h-198z" />
-<glyph unicode="&#x317;" horiz-adv-x="0" d="M-481 -217h321l-442 -376h-197z" />
-<glyph unicode="&#x318;" horiz-adv-x="0" d="M-740 -624h-183l37 189h183l35 183h190l-108 -555h-189z" />
-<glyph unicode="&#x319;" horiz-adv-x="0" d="M-758 -252h190l-36 -183h183l-37 -189h-182l-36 -183h-189z" />
-<glyph unicode="&#x31a;" horiz-adv-x="0" d="M-511 1713h-366l37 189h555l-108 -555h-189z" />
-<glyph unicode="&#x31b;" horiz-adv-x="0" d="M-636 739q-54 0 -102 27t-99 84l27 141q60 -50 91 -69t58 -19q39 0 69.5 29.5t39.5 78.5q4 20 6 39t2 39q0 35 -8 78h156q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -115 -80.5 -176.5t-144.5 -61.5z" />
-<glyph unicode="&#x31c;" horiz-adv-x="0" d="M-750 -502q-47 0 -81 15.5t-56 40t-33 55.5t-11 63q0 60 24.5 108.5t62.5 83.5t85.5 54t94.5 19l-26 -132q-18 0 -37 -8t-34.5 -21t-25.5 -30.5t-10 -35.5q0 -80 73 -80l-26 -132v0z" />
-<glyph unicode="&#x31d;" horiz-adv-x="0" d="M-946 -435h183l35 183h190l-36 -183h183l-37 -189h-555z" />
-<glyph unicode="&#x31e;" horiz-adv-x="0" d="M-867 -624h-183l37 189h555l-37 -189h-183l-35 -183h-190z" />
-<glyph unicode="&#x31f;" horiz-adv-x="0" d="M-825 -624h-183l37 189h183l35 183h190l-36 -183h183l-37 -189h-182l-36 -183h-189z" />
-<glyph unicode="&#x320;" horiz-adv-x="0" d="M-876 -252h555l-36 -189h-555z" />
-<glyph unicode="&#x321;" horiz-adv-x="0" d="M-688 -199h39q49 0 86 12.5t64.5 41t46.5 75t32 113.5l25 125h291l-25 -125q-24 -125 -63 -213.5t-97 -145t-137.5 -82.5t-184.5 -26h-121z" />
-<glyph unicode="&#x322;" horiz-adv-x="0" d="M-733 -426q-166 0 -243 67t-77 217q0 39 5 84.5t15 98.5l25 125h291l-25 -125q-12 -62 -12 -106q0 -75 35.5 -105.5t111.5 -30.5h39l-44 -225h-121v0z" />
-<glyph unicode="&#x323;" horiz-adv-x="0" d="M-941 -216h275l-48 -246h-275z" />
-<glyph unicode="&#x324;" horiz-adv-x="0" d="M-1119 -216h236l-48 -246h-236zM-724 -216h236l-48 -246h-236z" />
-<glyph unicode="&#x325;" horiz-adv-x="0" d="M-859 -502q-47 0 -81 15.5t-56 40t-33 55.5t-11 63q0 60 24.5 108.5t62.5 83.5t85.5 54t93.5 19t80.5 -15.5t57 -40t33.5 -55.5t11 -62q0 -60 -24.5 -109t-63 -84t-86 -54t-93.5 -19zM-834 -370q18 0 37 8t34.5 21.5t25.5 30t10 34.5q0 81 -73 81q-18 0 -37 -8t-34.5 -21 t-25 -30.5t-9.5 -35.5q0 -80 72 -80z" />
-<glyph unicode="&#x326;" horiz-adv-x="0" d="M-949 -198h282l-236 -306h-194z" />
-<glyph unicode="&#x327;" horiz-adv-x="0" d="M-880 -401q-104 0 -202 26l28 156q87 -35 160 -35q69 0 105 26.5t36 77.5q0 26 -13 60.5t-44 89.5h141q72 -96 72 -184q0 -50 -20 -90t-56.5 -68t-89 -43.5t-117.5 -15.5z" />
-<glyph unicode="&#x328;" horiz-adv-x="0" d="M-806 -401q-99 0 -157 38.5t-58 104.5q0 120 156 258h141q-75 -80 -99 -117q-24 -38 -24 -63q0 -33 26 -53.5t68 -20.5q73 0 162 31l-31 -156q-49 -11 -95 -16.5t-89 -5.5z" />
-<glyph unicode="&#x329;" horiz-adv-x="0" d="M-668 -218h189l-86 -444h-189z" />
-<glyph unicode="&#x32a;" horiz-adv-x="0" d="M-895 -218h630l-73 -374h-188l36 186h-254l-36 -186h-188z" />
-<glyph unicode="&#x32b;" horiz-adv-x="0" d="M-813 -489q-190 0 -190 206q0 21 1.5 43.5t6.5 47.5h143q0 -6 -0.5 -12t-0.5 -12q0 -113 69 -120q79 0 120 128q4 9 5 16h143q0 -6 -0.5 -12t-0.5 -12q0 -113 69 -120q71 0 113 109q7 17 12 35h143q-46 -207 -180 -272q-51 -25 -117 -25q-107 0 -155 70q-74 -70 -181 -70 z" />
-<glyph unicode="&#x32c;" horiz-adv-x="0" d="M-1159 -109h178l154 -227l243 227h178l-329 -376h-241z" />
-<glyph unicode="&#x32d;" horiz-adv-x="0" d="M-903 -109h241l183 -376h-178l-156 225l-241 -225h-178z" />
-<glyph unicode="&#x32e;" horiz-adv-x="0" d="M-840 -491q-295 0 -295 264v33h144v-13q0 -61 44 -97t120 -36q81 0 139.5 38.5t83.5 107.5h143q-29 -143 -127.5 -220t-251.5 -77z" />
-<glyph unicode="&#x32f;" horiz-adv-x="0" d="M-1192 -489q34 145 135 221t259 76q78 0 132 -18t87 -49.5t48 -74t15 -91.5q0 -15 -1.5 -31t-3.5 -33h-141v7q0 64 -41 100.5t-125 36.5t-140 -37t-81 -107h-143v0z" />
-<glyph unicode="&#x330;" horiz-adv-x="0" d="M-702 -487q-35 0 -67.5 13t-72.5 44l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74 57t89.5 20q17 0 32.5 -3t32 -9.5t35 -18.5t41.5 -30l51 -39q39 -31 70 -31q38 0 64 33t36 96h139q-47 -284 -249 -284z" />
-<glyph unicode="&#x331;" horiz-adv-x="0" d="M-1119 -218h631l-37 -188h-631z" />
-<glyph unicode="&#x332;" horiz-adv-x="0" d="M-1233 -293h1233v-190h-1233v190z" />
-<glyph unicode="&#x333;" horiz-adv-x="0" d="M-1233 -18h1233v-190h-1233v190zM-1233 -293h1233v-190h-1233v190z" />
-<glyph unicode="&#x334;" horiz-adv-x="0" d="M-419 463q-90 0 -193 51q-10 5 -17.5 8.5t-12.5 5.5q-36 17 -65 28t-55 18t-50.5 9.5t-49.5 2.5q-78 0 -153.5 -29t-162.5 -92l44 229q90 61 168 88t161 27q27 0 51 -2.5t49.5 -8.5t54 -16.5t62.5 -25.5l30 -15q106 -55 199 -55q70 0 144 30.5t161 94.5l-45 -233 q-87 -60 -164 -87.5t-156 -27.5z" />
-<glyph unicode="&#x335;" horiz-adv-x="0" d="M-1022 632h774l-38 -194h-774z" />
-<glyph unicode="&#x336;" horiz-adv-x="0" d="M-1213 632h1233l-38 -194h-1233z" />
-<glyph unicode="&#x337;" horiz-adv-x="0" d="M-1315 2l1277 1233l116 -121l-1277 -1231z" />
-<glyph unicode="&#x338;" horiz-adv-x="0" d="M-1373 51l1358 1508l139 -115l-1358 -1507z" />
-<glyph unicode="&#x339;" horiz-adv-x="0" d="M-944 -370q18 0 37 8t34.5 21.5t25.5 30t10 34.5q0 81 -73 81l26 132q46 0 80.5 -15.5t57 -40t33.5 -55.5t11 -62q0 -60 -24.5 -109t-63 -84t-86.5 -54t-94 -19z" />
-<glyph unicode="&#x33a;" horiz-adv-x="0" d="M-895 -146h188l-36 -186h254l36 186h188l-73 -374h-630z" />
-<glyph unicode="&#x33b;" horiz-adv-x="0" d="M-847 -218h573l-112 -573h-573zM-523 -620l44 231h-231l-44 -231h231z" />
-<glyph unicode="&#x33c;" horiz-adv-x="0" d="M-1053 -489q46 207 180 272q51 25 117 25q107 0 155 -70q74 70 181 70q190 0 190 -206q0 -21 -1.5 -43.5t-6.5 -47.5h-143q0 6 0.5 12t0.5 12q0 112 -69 120q-79 0 -120 -128q-4 -9 -5 -16h-143q0 6 0.5 12t0.5 12q0 112 -69 120q-71 0 -113 -109q-7 -17 -12 -35h-143v0z " />
-<glyph unicode="&#x33d;" horiz-adv-x="0" d="M-905 1326l154 129l-104 129l160 134l105 -129l154 129l108 -134l-154 -129l104 -129l-160 -134l-105 129l-154 -129z" />
-<glyph unicode="&#x33e;" horiz-adv-x="0" d="M-788 1340h8q57 0 92 15t40 42q2 11 -3.5 25.5t-16.5 29.5l-34 46q-38 51 -38 89q0 11 3 23q16 82 97.5 123.5t218.5 41.5l-24 -122h-8q-121 0 -132 -55q-3 -20 21 -54q2 -2 2.5 -4t1.5 -4l29 -41q20 -30 29 -49.5t9 -38.5q0 -12 -3 -25q-16 -82 -97.5 -123t-218.5 -41z " />
-<glyph unicode="&#x33f;" horiz-adv-x="0" d="M0 1272v-190h-1233v190h1233z" />
-<glyph unicode="&#x358;" horiz-adv-x="0" d="M28 1585h272l-47 -246h-274z" />
-<glyph unicode="&#x361;" horiz-adv-x="0" d="M-1502 1506q3 58 43 102t106.5 76t155 54t189 36t208.5 20.5t213 8.5h45q81 0 169 -6t172.5 -18.5t161 -32.5t134.5 -48.5t92 -65.5t34 -83q0 -22 -7 -43h-143q0 71 -191 107q-194 37 -496 37q-303 0 -512 -37q-205 -36 -231 -107h-143v0z" />
-<glyph unicode="&#x384;" d="M887 1638h321l-442 -376h-197z" />
-<glyph unicode="&#x385;" d="M959 1946h321l-442 -376h-197zM379 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM874 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176z" />
-<glyph unicode="&#x386;" d="M262 1518h321l-442 -376h-197zM614 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM769 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x388;" d="M-79 1502h321l-442 -376h-197zM297 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x389;" d="M-82 1502h321l-442 -376h-197zM283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
-<glyph unicode="&#x38a;" d="M-43 1502h321l-442 -376h-197zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x38c;" d="M100 1502h321l-442 -376h-197zM489 -56q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM520 206 q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
-<glyph unicode="&#x38e;" d="M427 534q15 76 22 150.5t7 144.5q0 72 -7 135t-19.5 112.5t-31 82.5t-40.5 44q-72 35 -149 35q-40 0 -82 -9l51 264q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q264 -48 260 -433q180 377 428 433q38 8 67 8q61 0 104 -31q69 -50 69 -135q0 -83 -68 -202 q-20 -34 -51 -50.5t-64 -16.5q-25 0 -48 9t-40 26.5t-26.5 43.5t-6.5 61q-119 -136 -193.5 -301.5t-113.5 -367.5l-104 -534h-295zM-216 1502h321l-442 -376h-197z" />
-<glyph unicode="&#x38f;" d="M164 1502h321l-442 -376h-197zM4 211h238q-71 78 -104.5 167.5t-33.5 203.5q0 90 21 200q30 154 90 279t144 213.5t189 137t224 48.5q97 0 172.5 -32.5t127.5 -93t79.5 -148t27.5 -197.5q0 -96 -21 -207q-18 -95 -47 -176t-70.5 -151t-96.5 -130t-125 -114h238l-41 -211 h-471l52 268q51 42 90.5 91.5t70 108t52.5 128t39 152.5q24 120 24 209q0 70 -15 121q-17 59 -51.5 87.5t-84.5 28.5q-53 0 -99 -31t-85 -88.5t-69 -140.5t-50 -186q-21 -108 -21 -196q0 -181 90 -284l-52 -268h-473z" />
-<glyph unicode="&#x390;" d="M951 1936h321l-442 -376h-197zM382 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM857 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM765 -8 q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78z" />
-<glyph unicode="&#x391;" d="M590 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM745 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x392;" d="M277 1495h482q212 0 319 -82t107 -250q0 -80 -24.5 -145t-71 -113t-114.5 -78.5t-155 -40.5q68 -6 122 -28t92 -60.5t58.5 -93.5t20.5 -127q0 -50 -9.5 -99t-28.5 -94t-46 -85.5t-61 -71.5q-36 -33 -82.5 -57t-106.5 -39.5t-137 -23t-174 -7.5h-481zM646 913 q121 0 182.5 54.5t61.5 151.5q0 75 -40.5 108t-135.5 33h-197l-68 -347h197zM515 236q151 0 227 64.5t76 195.5q0 43 -10 77t-34.5 57.5t-66.5 35.5t-106 12h-197l-86 -442h197z" />
-<glyph unicode="&#x393;" d="M342 1493h930l-50 -260h-635l-240 -1233h-295z" />
-<glyph unicode="&#x394;" d="M582 1493h361l113 -1493h-1167zM751 260l-41 963l-417 -963h458z" />
-<glyph unicode="&#x395;" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x396;" d="M14 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
-<glyph unicode="&#x397;" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
-<glyph unicode="&#x398;" d="M-21 452q0 104 24 228q46 237 149 402t255.5 250.5t346.5 85.5q238 0 362.5 -128t124.5 -374q0 -106 -26 -241q-70 -357 -257.5 -528t-478.5 -171q-248 0 -374 119.5t-126 356.5zM934 686q23 113 23 209q0 288 -244 288q-176 0 -279 -135.5t-147 -361.5 q-20 -102 -20 -181q0 -133 62 -203.5t200 -70.5q119 0 198.5 53t128.5 152.5t78 249.5zM421 809h427l-45 -230h-427z" />
-<glyph unicode="&#x399;" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x39a;" d="M266 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
-<glyph unicode="&#x39b;" d="M590 1493h361l113 -1493h-295l-51 1223l-526 -1223h-295z" />
-<glyph unicode="&#x39c;" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
-<glyph unicode="&#x39d;" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
-<glyph unicode="&#x39e;" d="M283 1493h959l-50 -260h-959zM412 924h480l-51 -260h-479zM43 260h959l-50 -260h-959z" />
-<glyph unicode="&#x39f;" d="M497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5 q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
-<glyph unicode="&#x3a0;" d="M292 1493h959l-290 -1493h-295l240 1233h-369l-240 -1233h-295z" />
-<glyph unicode="&#x3a1;" d="M317 1493h420q236 0 359.5 -91t123.5 -279q0 -54 -10 -109t-27 -106t-41.5 -96.5t-52.5 -80.5q-78 -96 -203 -134t-292 -38h-164l-109 -559h-295zM622 807q147 0 219 67.5t72 194.5q0 48 -11.5 81.5t-38.5 54.5t-71 30.5t-108 9.5h-121l-84 -438h143z" />
-<glyph unicode="&#x3a3;" d="M3 260l496 487l-306 487l50 259h1046l-50 -260h-706l307 -486l-497 -487h706l-50 -260h-1046z" />
-<glyph unicode="&#x3a4;" d="M575 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
-<glyph unicode="&#x3a5;" d="M432 534q15 76 22 150.5t7 144.5q0 72 -7 135t-19.5 112.5t-31 82.5t-40.5 44q-72 35 -149 35q-40 0 -82 -9l51 264q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q264 -48 260 -433q180 377 428 433q38 8 67 8q61 0 104 -31q69 -50 69 -135q0 -83 -68 -202 q-20 -34 -51 -50.5t-64 -16.5q-25 0 -48 9t-40 26.5t-26.5 43.5t-6.5 61q-119 -136 -193.5 -301.5t-113.5 -367.5l-104 -534h-295z" />
-<glyph unicode="&#x3a6;" d="M255 260h119l14 70q-65 9 -121.5 31t-97.5 58.5t-64.5 89.5t-23.5 124q0 25 2.5 55.5t7.5 56.5q17 99 61.5 172.5t107 124.5t137.5 80t153 39l14 72h-120l51 260h533l-50 -260h-119l-14 -72q65 -11 121 -32t97.5 -57.5t65 -90t23.5 -128.5q0 -23 -2.5 -51t-8.5 -58 q-20 -103 -64.5 -176.5t-106 -123t-135.5 -77t-152 -37.5l-14 -70h120l-51 -260h-533zM511 965l-39 -27q-60 -42 -91 -105.5t-31 -131.5q0 -41 11.5 -78.5t35.5 -69.5q11 -16 29 -27zM721 526q14 8 23 14t17 13q30 27 53.5 58t39.5 64.5t24.5 67t8.5 65.5q0 39 -12.5 73 t-38.5 57l-30 27z" />
-<glyph unicode="&#x3a7;" d="M471 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
-<glyph unicode="&#x3a8;" d="M255 260h119l26 132q-139 44 -210 176q-31 57 -47 129t-16 168q0 65 7.5 132.5t23.5 148.5l67 347h295l-67 -347q-14 -69 -21 -129.5t-7 -119.5q0 -45 4 -77.5t12 -61.5q5 -20 10 -32.5t10 -20.5l153 788h295l-153 -788q9 9 19.5 23.5t20.5 29.5q45 70 80 165t60 223 l67 347h295l-67 -347q-38 -195 -103.5 -338.5t-153.5 -239.5q-62 -67 -133 -111t-146 -65l-26 -132h120l-51 -260h-533z" />
-<glyph unicode="&#x3a9;" d="M90 211h238q-121 110 -174 245q-54 135 -54 325q0 157 36 283t103 214q65 85 159.5 133.5t216.5 48.5q121 0 216 -47.5t162 -135.5q68 -88 104 -212.5t36 -282.5q0 -191 -54 -326q-53 -135 -174 -245h238v-211h-471v268q81 80 120 196q39 117 39 287q0 210 -56 327 q-56 116 -159 116q-101 0 -158 -116q-57 -117 -57 -327q0 -170 40 -287q17 -51 46 -101.5t76 -94.5v-268h-473v211z" />
-<glyph unicode="&#x3aa;" d="M473 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM869 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x3ab;" d="M483 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM879 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM432 534q15 76 22 150.5t7 144.5q0 72 -7 135 t-19.5 112.5t-31 82.5t-40.5 44q-72 35 -149 35q-40 0 -82 -9l51 264q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q264 -48 260 -433q180 377 428 433q38 8 67 8q61 0 104 -31q69 -50 69 -135q0 -83 -68 -202q-20 -34 -51 -50.5t-64 -16.5q-25 0 -48 9t-40 26.5t-26.5 43.5 t-6.5 61q-119 -136 -193.5 -301.5t-113.5 -367.5l-104 -534h-295z" />
-<glyph unicode="&#x3ac;" d="M887 1673h321l-442 -376h-197zM953 0q-160 0 -224 84q-15 21 -17 29l-31.5 -31.5t-25.5 -24.5t-24.5 -20t-28.5 -19q-45 -27 -91 -36t-100 -9q-56 0 -106 8t-92 26t-75 46.5t-56 69.5q-25 45 -36 104t-11 140q0 93 14 181t41.5 167t68.5 147.5t95 121.5q45 44 94 75 t99 50.5t100 28t97 8.5q97 0 168.5 -34t108.5 -100l57 108h282l-305 -577l-3 -153q-3 -165 65 -165h82l-44 -225h-102zM701 589l1 163q1 80 -29 116.5t-79 36.5q-39 0 -82 -22.5t-81 -69.5q-30 -37 -53 -85t-38.5 -100t-23.5 -105.5t-8 -101.5q0 -45 6 -73.5t16 -48.5 q19 -39 50 -59t63 -20q29 0 56 16.5t44 48.5z" />
-<glyph unicode="&#x3ad;" d="M887 1666h321l-442 -376h-197zM568 -22q-244 0 -359 68.5t-115 199.5q0 15 1.5 32t5.5 34q25 121 116 195t253 97q-115 17 -175.5 68t-60.5 131q0 12 1.5 23.5t3.5 23.5q13 66 54.5 119.5t109 91.5t160 58.5t208.5 20.5q85 0 180 -12q2 -1 5 -1t5 -1q15 -2 51 -10.5 t94 -23.5l-42 -215l-24 8q-45 15 -81 25t-68 16.5t-64.5 9t-70.5 2.5q-56 0 -98 -7t-81 -27l-25 -15q-42 -28 -48 -69q-1 -5 -1.5 -10.5t-0.5 -9.5q0 -16 12 -30.5t32 -26.5q55 -33 155 -33h151l-43 -223h-151q-61 0 -112 -12.5t-85 -34.5l-20 -13q-57 -40 -69 -106 q-3 -12 -3 -21q0 -21 13.5 -41t36.5 -36q35 -25 80.5 -33.5t105.5 -8.5q54 0 104.5 5t102.5 14q21 4 31 6t19 4q11 3 42 13.5t82 29.5l-43 -219q-5 -1 -9 -2t-9 -3q-50 -14 -95.5 -24t-88.5 -16t-85.5 -8.5t-87.5 -2.5z" />
-<glyph unicode="&#x3ae;" d="M877 1673h321l-442 -376h-197zM812 682q12 61 12 104q0 63 -27 93t-81 30q-88 0 -146 -71.5t-82 -196.5l-125 -641h-291l218 1120h262l-4 -168q50 94 134.5 144.5t193.5 50.5q124 0 188.5 -66.5t64.5 -200.5q0 -35 -4.5 -73t-12.5 -80l-224 -1153h-291z" />
-<glyph unicode="&#x3af;" d="M857 1648h321l-442 -376h-197zM762 -8q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78z" />
-<glyph unicode="&#x3b0;" d="M959 1946h321l-442 -376h-197zM379 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM874 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM484 0 q-88 0 -148 16t-97 46t-53.5 73t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5t-9.5 59.5t-18.5 53t-30.5 49h291 q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
-<glyph unicode="&#x3b1;" d="M953 0q-160 0 -224 84q-15 21 -17 29l-31.5 -31.5t-25.5 -24.5t-24.5 -20t-28.5 -19q-45 -27 -91 -36t-100 -9q-56 0 -106 8t-92 26t-75 46.5t-56 69.5q-25 45 -36 104t-11 140q0 93 14 181t41.5 167t68.5 147.5t95 121.5q45 44 94 75t99 50.5t100 28t97 8.5 q97 0 168.5 -34t108.5 -100l57 108h282l-305 -577l-3 -153q-3 -165 65 -165h82l-44 -225h-102zM701 589l1 163q1 80 -29 116.5t-79 36.5q-39 0 -82 -22.5t-81 -69.5q-30 -37 -53 -85t-38.5 -100t-23.5 -105.5t-8 -101.5q0 -45 6 -73.5t16 -48.5q19 -39 50 -59t63 -20 q29 0 56 16.5t44 48.5z" />
-<glyph unicode="&#x3b2;" d="M258 1113q45 229 175 342.5t341 113.5q111 0 188 -29.5t124.5 -78.5t69 -112.5t21.5 -132.5q0 -60 -14.5 -119.5t-41 -113t-63 -98.5t-80.5 -75q45 -16 77 -41t52 -56.5t29 -69t9 -77.5q0 -26 -3 -56t-8 -57q-18 -104 -58 -189.5t-102 -147t-145 -97.5t-186 -40 q-8 0 -12 -0.5t-18 -0.5q-71 0 -142.5 21t-124.5 70l-97 -495h-291zM410 402q18 -40 44 -71t56 -52.5t62.5 -33t63.5 -11.5q32 0 62.5 12.5t57 38.5t46 67t30.5 97q6 31 6 58q0 151 -214 151h-16t-16 -1l43 223q55 -2 99.5 24t76 68t48.5 93t17 100q0 34 -8.5 64t-26 53 t-44.5 36.5t-63 13.5q-71 0 -117.5 -55t-69.5 -170z" />
-<glyph unicode="&#x3b3;" d="M356 0l-87 752q-5 38 -16 62.5t-29 41.5q-12 11 -27.5 20t-29.5 9h-42l46 235h80q54 0 104.5 -21t91 -60.5t67.5 -97.5t35 -133l41 -394l381 706h297l-620 -1120l-83 -426h-292z" />
-<glyph unicode="&#x3b4;" d="M491 -29q-100 0 -178 29.5t-132 84.5t-82.5 134t-28.5 178q0 39 4.5 79t12.5 83q28 142 85 245t139 184q15 15 30 28.5t29 24.5t25.5 17.5t18.5 6.5q-56 26 -82 70.5t-26 97.5q0 34 10.5 69.5t32 69.5t54 65t75.5 55q66 37 158.5 57t210.5 20q45 0 89.5 -3t86.5 -9 q2 -1 5 -1t5 -1q15 -2 51 -10.5t94 -23.5l-42 -215q-8 3 -11 4l-4.5 1.5t-3 0.5t-5.5 2q-45 14 -78.5 24t-64.5 16.5t-62.5 9.5t-73.5 3q-61 0 -103.5 -7t-80.5 -27l-24 -15q-51 -32 -51 -88q0 -29 13.5 -45t34.5 -24t46.5 -10.5t50.5 -3.5q109 -5 188.5 -36t131.5 -85 t77 -130t25 -172q0 -42 -4.5 -82t-12.5 -84q-27 -136 -85 -245t-140.5 -185t-186.5 -116.5t-221 -40.5zM538 209q52 0 98.5 23.5t84.5 68.5t66 110t44 148q7 35 10.5 67t3.5 62q0 106 -44 163.5t-128 57.5q-53 0 -99 -24t-84 -69t-66 -110t-44 -147q-7 -35 -10.5 -67 t-3.5 -62q0 -106 44 -163.5t128 -57.5z" />
-<glyph unicode="&#x3b5;" d="M568 -22q-244 0 -359 68.5t-115 199.5q0 15 1.5 32t5.5 34q25 121 116 195t253 97q-115 17 -175.5 68t-60.5 131q0 12 1.5 23.5t3.5 23.5q13 66 54.5 119.5t109 91.5t160 58.5t208.5 20.5q85 0 180 -12q2 -1 5 -1t5 -1q15 -2 51 -10.5t94 -23.5l-42 -215l-24 8 q-45 15 -81 25t-68 16.5t-64.5 9t-70.5 2.5q-56 0 -98 -7t-81 -27l-25 -15q-42 -28 -48 -69q-1 -5 -1.5 -10.5t-0.5 -9.5q0 -16 12 -30.5t32 -26.5q55 -33 155 -33h151l-43 -223h-151q-61 0 -112 -12.5t-85 -34.5l-20 -13q-57 -40 -69 -106q-3 -12 -3 -21q0 -21 13.5 -41 t36.5 -36q35 -25 80.5 -33.5t105.5 -8.5q54 0 104.5 5t102.5 14q21 4 31 6t19 4q11 3 42 13.5t82 29.5l-43 -219q-5 -1 -9 -2t-9 -3q-50 -14 -95.5 -24t-88.5 -16t-85.5 -8.5t-87.5 -2.5z" />
-<glyph unicode="&#x3b6;" d="M623 -201q35 0 59.5 8t40.5 21.5t25 31t12 36.5t-0.5 37.5t-15.5 33.5t-32 24t-50 9q-149 0 -252.5 39.5t-164.5 107.5t-81 160t-3 196.5t69.5 216.5t136.5 221t198 209t254 181h-471l44 225h876l-44 -225q-684 -378 -765 -797q-58 -297 247 -309q69 -3 123 -25t88 -63.5 t45.5 -101.5t-3.5 -139q-15 -74 -49.5 -133.5t-84.5 -101.5t-112.5 -64.5t-133.5 -22.5z" />
-<glyph unicode="&#x3b7;" d="M809 682q12 61 12 104q0 63 -27 93t-81 30q-88 0 -146 -71.5t-82 -196.5l-125 -641h-291l218 1120h262l-4 -168q50 94 134.5 144.5t193.5 50.5q124 0 188.5 -66.5t64.5 -200.5q0 -35 -4.5 -73t-12.5 -80l-224 -1153h-291z" />
-<glyph unicode="&#x3b8;" d="M502 -24q-95 0 -168.5 36t-123.5 102.5t-76 161.5t-26 214q0 60 7 134.5t21 151.5q33 178 97.5 325t153.5 252.5t197.5 163.5t228.5 58q93 0 166 -36t123 -102.5t76 -162t26 -215.5q0 -64 -7 -136.5t-21 -146.5q-15 -82 -39.5 -163t-57 -156.5t-72.5 -143t-86 -122.5 q-92 -110 -199 -162.5t-220 -52.5zM901 887q6 48 9.5 93t3.5 87q0 61 -8 112t-26 87.5t-46 56.5t-68 20q-53 0 -98.5 -35t-84.5 -96t-71 -144.5t-57 -180.5h446zM546 209q54 0 100.5 36t85.5 98t70 144t55 175h-446q-6 -48 -9.5 -92.5t-3.5 -86.5q0 -60 8 -110.5t25.5 -86.5 t45.5 -56.5t69 -20.5z" />
-<glyph unicode="&#x3b9;" d="M772 -8q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78v0z" />
-<glyph unicode="&#x3ba;" d="M283 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
-<glyph unicode="&#x3bb;" d="M609 1069l-18 119q-6 37 -15.5 62.5t-28.5 41t-49.5 22.5t-77.5 7h-112l45 235h150q94 0 160.5 -20.5t111.5 -62.5t71.5 -105t38.5 -148l178 -1220h-297l-96 655l-383 -655h-297z" />
-<glyph unicode="&#x3bc;" d="M246 1120h289l-132 -680q-12 -56 -12 -94q0 -63 34 -98t95 -35q161 0 207 227l131 680h289l-150 -776q-2 -17 -4 -30t-3 -21q-3 -17 -3 -25q0 -55 41 -55q12 0 26.5 6t35.5 19l-43 -222q-46 -23 -86 -34t-76 -11q-72 0 -110 37t-50 121q-107 -158 -246 -158 q-58 0 -96 23.5t-53 71.5l-97 -494h-288z" />
-<glyph unicode="&#x3bd;" d="M156 1120h306l62 -825q76 66 136 124.5t103.5 114.5t71 110t39.5 111q3 14 4 27.5t1 30.5q0 16 -1 28t-4 30q-10 64 -32 132t-53 117h307q21 -35 36.5 -77t26 -85.5t16 -86.5t5.5 -82q0 -41 -6 -74q-11 -62 -44 -128.5t-80.5 -132.5t-105 -130.5t-118 -123t-119.5 -110 t-108 -90.5h-356z" />
-<glyph unicode="&#x3be;" d="M613 -201q35 0 59.5 8t40.5 21.5t25 31t12 36.5q2 10 2 21q0 37 -22.5 57.5t-77.5 25.5q-24 3 -73 6t-108 12.5t-121 28.5t-113 54t-83.5 88.5t-32.5 132.5q0 76 33 150.5t93 136.5t143.5 107t185.5 63q-71 10 -122 32t-84 52.5t-48.5 67.5t-15.5 77q0 47 19.5 95 t56 91.5t88 79t115.5 57.5h-247l44 225h876l-44 -225q-152 0 -265.5 -22t-188.5 -57.5t-112.5 -80t-37.5 -89.5q0 -38 26 -73.5t78 -63t129.5 -45t181.5 -20.5l-43 -223q-252 -4 -394 -65.5t-163 -181.5q-3 -17 -3 -32q0 -32 12.5 -55.5t34 -40t49 -26.5t58 -16t61.5 -9.5 t59 -5.5q18 -1 44 -5t55.5 -13t58.5 -25t52 -43t37.5 -66t14.5 -93q0 -39 -9 -84q-15 -74 -49.5 -133.5t-84.5 -101.5t-112.5 -64.5t-133.5 -22.5z" />
-<glyph unicode="&#x3bf;" d="M533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5 t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x3c0;" d="M1016 -39q-43 0 -76 4.5t-62 12.5q-33 10 -53 22.5t-34 26.5t-25 32t-19 43q-14 45 -14 131v658h-274v-891h-285v891h-162v209h1168v-209h-162v-529q0 -37 2 -63.5t5 -45.5t7.5 -31.5t10.5 -19.5q24 -32 94 -32h23.5t18.5 1l33 3v-188q-41 -13 -93 -19q-25 -3 -51.5 -4.5 t-51.5 -1.5z" />
-<glyph unicode="&#x3c1;" d="M139 552q28 147 80 258t129 186t180 113t234 38q107 0 182 -24.5t122.5 -72t69.5 -116t22 -155.5q0 -97 -24 -221q-28 -144 -78 -253.5t-117.5 -183.5t-150 -112t-174.5 -38q-101 0 -161.5 46t-97.5 141l-114 -584h-292zM573 215q48 0 88.5 23.5t75.5 68.5q27 35 48.5 81 t37 97.5t23.5 105.5t8 105q0 38 -4.5 67t-13.5 52q-18 46 -51 69t-78 23q-47 0 -90.5 -24.5t-79.5 -69.5t-63.5 -109t-41.5 -143q-7 -38 -10 -74.5t-3 -62.5q0 -97 39.5 -153t114.5 -56z" />
-<glyph unicode="&#x3c2;" d="M600 -201q66 0 97.5 28t39.5 69q2 10 2 22q0 35 -23 56.5t-77 25.5q-26 2 -72.5 3t-101 10t-111.5 30.5t-103 63t-75 107.5t-29 166q0 43 5.5 90t13.5 89q27 138 86 247.5t145.5 185.5t197 116.5t239.5 40.5q91 0 169.5 -20.5t153.5 -65.5l-52 -268q-54 55 -124.5 84.5 t-152.5 29.5q-145 0 -239 -92t-126 -258q-12 -63 -12 -112q0 -74 23 -117t58 -65t75 -29.5t75 -10.5q21 -2 48.5 -6t56.5 -13t57 -25.5t50.5 -43.5t36 -66t13.5 -94q0 -17 -1.5 -37.5t-6.5 -43.5q-14 -73 -48.5 -132.5t-84.5 -101.5t-113 -65t-134 -23z" />
-<glyph unicode="&#x3c3;" d="M469 -29q-101 0 -180 29.5t-133 84.5t-82.5 134t-28.5 178q0 39 4.5 79t12.5 83q25 129 79 233t134 177t184 112t230 39h552l-44 -225h-211q60 -51 87.5 -121.5t27.5 -152.5q0 -63 -16 -129.5t-45 -131t-71 -123.5t-94 -107q-171 -159 -406 -159zM510 209q62 0 114 33.5 t90 85t62 113.5t31 118q2 12 3 29t1 28q0 57 -34.5 110.5t-99.5 101.5q-23 17 -49 33t-46 26q-40 -11 -68 -30t-50 -45q-28 -33 -50.5 -78t-38.5 -95.5t-24.5 -103.5t-8.5 -102q0 -38 5.5 -71.5t17.5 -59.5q21 -47 58 -70t87 -23z" />
-<glyph unicode="&#x3c4;" d="M767 0q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 516h-335l44 225h962l-44 -225h-335l-103 -530q-2 -12 -3.5 -23t-1.5 -22q0 -51 33 -73t103 -22h58l-44 -225h-78v0z" />
-<glyph unicode="&#x3c5;" d="M494 0q-88 0 -148 16t-97 46t-53.5 73t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5t-9.5 59.5t-18.5 53t-30.5 49h291 q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
-<glyph unicode="&#x3c6;" d="M369 0q-89 14 -149 52t-97.5 93t-53.5 123t-16 143q0 88 19 176.5t50 166.5t70.5 141t79.5 101q25 24 61 47.5t75.5 41.5t78 28t69.5 7l-44 -229q-11 0 -35 -24.5t-48 -60.5q-19 -29 -37 -66.5t-31.5 -80.5t-21.5 -89t-8 -92q0 -66 20 -123.5t68 -98.5l76 392 q48 246 157.5 364t264.5 118q79 0 138 -30t93 -93q26 -48 38 -114t12 -143q0 -74 -12 -155t-38 -160t-67.5 -152t-101.5 -132t-139 -99t-179 -52l-82 -426h-292zM711 256q152 97 205 339q9 42 14.5 84t5.5 77q0 12 -1 25t-3 25q-11 58 -43 58q-60 0 -102 -216z" />
-<glyph unicode="&#x3c7;" d="M435 348l-105 404q-20 75 -51 104q-13 12 -29 20.5t-28 8.5h-79l45 235h117q51 0 96 -15.5t84 -51.5t70.5 -96t54.5 -149l38 -148l314 460h297l-529 -775l104 -403q8 -32 20 -59.5t31 -44.5q13 -12 29 -20.5t28 -8.5h80l-45 -235h-118q-50 0 -95.5 15t-84 51t-70.5 96 t-55 150l-38 146l-313 -458h-297z" />
-<glyph unicode="&#x3c8;" d="M359 0q-309 51 -309 391q0 89 21 197l103 532h292l-102 -525q-21 -110 -21 -188q0 -132 59 -182l174 895h292l-174 -895q129 100 182 370l102 525h292l-103 -532q-104 -537 -516 -588l-83 -426h-292z" />
-<glyph unicode="&#x3c9;" d="M287 -29q-66 0 -117 22.5t-80 60.5q-51 67 -51 217q0 93 18 203.5t50.5 224t78.5 222.5t103 199h262q-42 -86 -72.5 -160.5t-53.5 -142t-40 -131t-30 -129.5q-9 -42 -16 -84t-12.5 -80t-8.5 -69.5t-3 -52.5q0 -22 3 -34q6 -26 39 -28q71 0 163 456h252 q-23 -124 -34.5 -213.5t-11.5 -146.5q0 -96 33 -96q31 1 49 28q15 23 36 88t39.5 159t31.5 209.5t13 239.5q0 94 -9 187h262q26 -113 26 -256q0 -79 -8 -161t-22.5 -161t-36 -153.5t-48.5 -138t-59.5 -114t-68.5 -82.5q-44 -38 -104.5 -60.5t-124.5 -22.5q-175 0 -189 179 q-84 -179 -259 -179z" />
-<glyph unicode="&#x3ca;" d="M412 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM807 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM765 -8q-101 0 -171.5 11t-115.5 38t-65.5 71 t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78z" />
-<glyph unicode="&#x3cb;" d="M429 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM824 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM484 0q-88 0 -148 16t-97 46t-53.5 73 t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5t-9.5 59.5t-18.5 53t-30.5 49h291q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102 t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
-<glyph unicode="&#x3cc;" d="M887 1675h321l-442 -376h-197zM533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207 q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x3cd;" d="M867 1648h321l-442 -376h-197zM484 0q-88 0 -148 16t-97 46t-53.5 73t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5 t-9.5 59.5t-18.5 53t-30.5 49h291q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
-<glyph unicode="&#x3ce;" d="M882 1648h321l-442 -376h-197zM282 -29q-66 0 -117 22.5t-80 60.5q-51 67 -51 217q0 93 18 203.5t50.5 224t78.5 222.5t103 199h262q-42 -86 -72.5 -160.5t-53.5 -142t-40 -131t-30 -129.5q-9 -42 -16 -84t-12.5 -80t-8.5 -69.5t-3 -52.5q0 -22 3 -34q6 -26 39 -28 q71 0 163 456h252q-23 -124 -34.5 -213.5t-11.5 -146.5q0 -96 33 -96q31 1 49 28q15 23 36 88t39.5 159t31.5 209.5t13 239.5q0 94 -9 187h262q26 -113 26 -256q0 -79 -8 -161t-22.5 -161t-36 -153.5t-48.5 -138t-59.5 -114t-68.5 -82.5q-44 -38 -104.5 -60.5t-124.5 -22.5 q-175 0 -189 179q-84 -179 -259 -179z" />
-<glyph unicode="&#x3f4;" d="M465 -29q-203 0 -304.5 119t-101.5 355q0 132 33 300q74 383 245 579t430 196q204 0 305.5 -118.5t101.5 -354.5q0 -133 -33 -302q-75 -384 -244.5 -579t-431.5 -195zM860 911q3 33 5 63.5t2 59.5q0 49 -7 90t-24.5 70t-47 45t-73.5 16q-57 0 -99 -25.5t-74.5 -71 t-57.5 -109t-47 -138.5h423zM517 236q57 0 101.5 27t79.5 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90q0 -109 34.5 -165t116.5 -56z" />
-<glyph unicode="&#x400;" d="M537 1854h264l143 -264h-178zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x401;" d="M504 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM900 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM317 1493h932l-51 -260h-635l-63 -322h575 l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x402;" d="M369 -199h136q51 0 88.5 14t64 43.5t44.5 75t30 109.5l90 461q12 60 12 103q0 45 -13 70q-16 37 -109 49l-41 3q-70 0 -148 -29l-37 -16q-22 -12 -33 -26q-30 -35 -50.5 -84.5t-32.5 -110.5l-90 -463h-291l262 1347h-190l40 209h964l-40 -209h-483l-100 -514q26 50 74 77 l53 31q33 20 84 30.5t129 17.5q31 3 60 3q59 0 113 -12.5t98 -40.5q23 -14 34 -27t19 -26q36 -63 36 -162q0 -33 -4 -71.5t-12 -80.5l-103 -529q-24 -126 -63 -214.5t-97 -145t-136.5 -82t-182.5 -25.5h-218z" />
-<glyph unicode="&#x403;" d="M929 1854h281l-320 -264h-207zM342 1493h930l-50 -260h-635l-240 -1233h-295z" />
-<glyph unicode="&#x404;" d="M591 -29q-99 0 -174.5 20.5t-130 57t-90.5 85.5t-57.5 105t-30.5 117t-9 122q0 57 6.5 126.5t20.5 141.5q34 184 102.5 328t167 243t225 151t276.5 52q174 0 296 -72l-64 -328q-122 135 -272 135q-76 0 -138 -31t-110.5 -83.5t-84 -121.5t-58.5 -144h572l-50 -260h-572 q-3 -30 -3 -60q0 -57 11 -114t39.5 -102.5t76 -74t121.5 -28.5q149 0 322 135l-64 -328q-78 -36 -157.5 -54t-170.5 -18z" />
-<glyph unicode="&#x405;" d="M469 -29q-113 0 -227 26t-238 79l59 305q97 -81 202.5 -123.5t214.5 -42.5q66 0 118.5 15.5t89 43.5t56.5 67.5t20 88.5q0 65 -35 110t-104 74l-119 50q-94 39 -155 75.5t-97 77t-50 87.5t-14 108q0 115 42.5 209t119.5 160.5t184.5 102.5t238.5 36q97 0 195 -20t189 -62 l-57 -285q-34 31 -75 54.5t-86.5 39.5t-93 23.5t-94.5 7.5q-78 0 -131.5 -19.5t-86 -48t-46.5 -61.5t-14 -61q0 -49 42.5 -92t141.5 -86l7 -3l116 -51q73 -32 126 -70.5t87.5 -86t51 -104t16.5 -125.5q0 -112 -42 -204t-119 -157.5t-187 -101.5t-246 -36z" />
-<glyph unicode="&#x406;" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x407;" d="M484 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM880 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x408;" d="M427 -29q-221 0 -429 107l65 344q82 -100 169.5 -145.5t195.5 -45.5q53 0 93.5 12t70.5 40.5t50.5 76t34.5 119.5l148 754h-361l52 260h655l-199 -1014q-17 -84 -34.5 -146t-39 -108.5t-48 -80.5t-60.5 -62q-68 -55 -157.5 -83t-205.5 -28z" />
-<glyph unicode="&#x409;" d="M-101 250h10q53 0 91 13t66 40.5t47.5 69t36.5 98.5q9 32 20.5 79t27 117t35 167.5t45.5 230.5l83 428h616l-113 -580h22q55 0 109.5 -25.5t97.5 -75t70 -121.5t27 -165q0 -7 -1 -29.5t-7.5 -55t-19.5 -73.5t-37 -85t-61 -88.5t-90 -84.5q-33 -24 -68.5 -44.5t-70.5 -35 t-67.5 -22.5t-58.5 -8h-262l240 1233h-136l-35 -176q-32 -159 -59.5 -303t-61.5 -266t-78 -218t-107 -157q-118 -113 -322 -113h-37zM741 236q17 0 44.5 11t56 33.5t52.5 56.5t35 79q3 13 6 30.5t5 35.5t3.5 34t1.5 26q0 29 -12 54t-29.5 43t-38 28.5t-38.5 10.5h-8 l-86 -442h8z" />
-<glyph unicode="&#x40a;" d="M211 1493h240l-110 -569h322l110 569h240l-113 -580h22q55 0 109.5 -24.5t97.5 -69t70 -106t27 -135.5q0 -24 -3 -56t-10 -66q-16 -79 -46.5 -144t-71 -115.5t-86.5 -87.5t-93 -61.5t-91 -36t-80 -11.5h-262l129 664h-322l-129 -664h-240zM777 236q18 0 47 11.5t58.5 38 t54.5 68.5t36 103q4 20 6 44t2 38q0 34 -13 60.5t-31.5 43.5t-39 26t-34.5 9h-8l-86 -442h8z" />
-<glyph unicode="&#x40b;" d="M278 1347h-190l40 209h964l-40 -209h-483l-100 -514q26 50 74 77l53 31q33 20 84 30.5t129 17.5q31 3 60 3q59 0 113 -12.5t98 -40.5q23 -14 34 -27t19 -26q36 -63 36 -162q0 -33 -4 -71.5t-12 -80.5l-111 -572h-291l98 504q12 60 12 103q0 45 -13 70q-16 37 -109 49 l-41 3q-70 0 -148 -29l-37 -16q-22 -12 -33 -26q-30 -35 -50.5 -84.5t-32.5 -110.5l-90 -463h-291z" />
-<glyph unicode="&#x40c;" d="M877 1854h281l-320 -264h-207zM265 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
-<glyph unicode="&#x40d;" d="M501 1854h264l143 -264h-178zM267 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
-<glyph unicode="&#x40e;" d="M779 1590q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM113 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190 q-92 -153 -188 -228t-213 -75h-200z" />
-<glyph unicode="&#x40f;" d="M353 0h-350l290 1493h295l-239 -1233h369l239 1233h295l-290 -1493h-350l-62 -322h-259z" />
-<glyph unicode="&#x410;" d="M582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x411;" d="M298 1493h930l-50 -260h-635l-58 -299h110q258 0 381 -77.5t123 -244.5q0 -30 -3.5 -68.5t-10.5 -76.5q-22 -123 -73 -211t-134 -145t-198.5 -84t-266.5 -27h-405zM472 248q71 0 123.5 11.5t89 37.5t58.5 67.5t34 102.5q4 20 6 37t2 34q0 81 -54.5 114.5t-173.5 33.5 h-121l-85 -438h121z" />
-<glyph unicode="&#x412;" d="M280 1495h482q212 0 319 -82t107 -250q0 -80 -24.5 -145t-71 -113t-114.5 -78.5t-155 -40.5q68 -6 122 -28t92 -60.5t58.5 -93.5t20.5 -127q0 -50 -9.5 -99t-28.5 -94t-46 -85.5t-61 -71.5q-36 -33 -82.5 -57t-106.5 -39.5t-137 -23t-174 -7.5h-481zM649 913 q121 0 182.5 54.5t61.5 151.5q0 75 -40.5 108t-135.5 33h-197l-68 -347h197zM518 236q151 0 227 64.5t76 195.5q0 43 -10 77t-34.5 57.5t-66.5 35.5t-106 12h-197l-86 -442h197z" />
-<glyph unicode="&#x413;" d="M342 1493h930l-50 -260h-635l-240 -1233h-295z" />
-<glyph unicode="&#x414;" d="M-54 260h100q12 0 26 12t27.5 31t24 43t15.5 48l213 1099h848l-239 -1233h137l-113 -582h-255l62 322h-642l-62 -322h-255zM666 260l189 973h-258l-143 -736q-13 -66 -33 -128.5t-43 -108.5h288z" />
-<glyph unicode="&#x415;" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x416;" d="M298 886l-140 607h261l121 -523l102 523h240l-102 -523l325 523h261l-376 -607l86 -886h-250l-53 537l-112 -181l-69 -356h-240l69 356l-42 181l-261 -537h-250z" />
-<glyph unicode="&#x417;" d="M442 -29q-103 0 -216.5 19t-236.5 55l54 270q94 -45 199 -69.5t201 -24.5q81 0 142 18t102.5 50.5t62 78t20.5 101.5q0 102 -64 150.5t-172 48.5h-158l52 260h157q62 0 113.5 14.5t88 41t57 62.5t20.5 78q0 70 -57.5 108t-166.5 38q-81 0 -179.5 -21t-209.5 -61l54 268 q105 32 201.5 48t177.5 16q105 0 189.5 -25.5t144 -72t91 -111.5t31.5 -145q0 -70 -24.5 -129.5t-70 -106t-111.5 -78.5t-150 -47q141 -38 203.5 -122t62.5 -214q0 -113 -42.5 -205t-121 -157t-191 -100.5t-253.5 -35.5z" />
-<glyph unicode="&#x418;" d="M267 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
-<glyph unicode="&#x419;" d="M754 1590q-137 0 -210 67t-73 193v4h143q10 -60 51 -87.5t120 -27.5q72 0 124.5 30.5t75.5 84.5h154q-40 -130 -138.5 -197t-246.5 -67zM267 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
-<glyph unicode="&#x41a;" d="M265 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
-<glyph unicode="&#x41b;" d="M-73 265h10q94 0 153 47t85 161q25 107 42.5 184.5t31.5 143t26.5 127t27.5 137.5l83 428h870l-290 -1493h-295l240 1233h-280l-35 -176q-32 -159 -59.5 -303t-61.5 -266t-78 -218t-107 -157q-118 -113 -322 -113h-92z" />
-<glyph unicode="&#x41c;" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
-<glyph unicode="&#x41d;" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
-<glyph unicode="&#x41e;" d="M497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5 q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
-<glyph unicode="&#x41f;" d="M297 1493h959l-290 -1493h-295l240 1233h-369l-240 -1233h-295z" />
-<glyph unicode="&#x420;" d="M322 1493h420q236 0 359.5 -91t123.5 -279q0 -54 -10 -109t-27 -106t-41.5 -96.5t-52.5 -80.5q-78 -96 -203 -134t-292 -38h-164l-109 -559h-295zM627 807q147 0 219 67.5t72 194.5q0 48 -11.5 81.5t-38.5 54.5t-71 30.5t-108 9.5h-121l-84 -438h143z" />
-<glyph unicode="&#x421;" d="M182 947q34 102 82.5 191t108.5 158q93 106 215.5 162.5t267.5 61.5q15 0 15 15v304q0 10 10 10h308q10 0 10 -10v-390h-2l2 -1l-64 -328q-48 66 -121 102q-73 35 -152 35q-91 0 -166.5 -47.5t-131.5 -134.5q-67 -102 -110 -255q-44 -151 -44 -284q0 -152 62.5 -228.5 t184.5 -76.5q78 0 159 34t174 106l-64 -328q-156 -72 -325 -72q-240 0 -365 137.5t-125 413.5q0 104 18.5 213t52.5 212z" />
-<glyph unicode="&#x422;" d="M573 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
-<glyph unicode="&#x423;" d="M113 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
-<glyph unicode="&#x424;" d="M375 132q-68 6 -121 30t-92 60t-66 82t-43.5 96t-23.5 102t-7 101q0 37 4 76.5t12 80.5q24 123 78 233t130 195t171 139t202 64l20 102h255l-20 -102q68 -6 120.5 -30t92 -60t66 -82t43 -96.5t24 -103t7.5 -101.5q0 -37 -4 -76.5t-12 -81.5q-24 -119 -78 -228.5 t-130.5 -195t-171.5 -140t-201 -64.5l-26 -132h-255zM570 1136q-102 -19 -174 -111.5t-104 -264.5q-8 -41 -10.5 -70t-4.5 -58q-2 -36 2 -75.5t19 -74t45 -60.5t81 -35zM679 387q61 13 107 47t78.5 81t53 102t32.5 109q4 21 8 44.5t7 46t4.5 42.5t1.5 34q0 37 -2.5 75 t-16 71.5t-43.5 59t-84 37.5z" />
-<glyph unicode="&#x425;" d="M486 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
-<glyph unicode="&#x426;" d="M789 0h-803l290 1493h295l-239 -1233h369l239 1233h295l-239 -1233h137l-113 -582h-293z" />
-<glyph unicode="&#x427;" d="M824 766q-46 -77 -136 -118t-238 -41q-86 0 -147.5 15t-101.5 47.5t-59 84t-19 124.5q0 33 4 70.5t12 78.5l103 529h291l-89 -461q-4 -21 -6 -39t-2 -36q0 -47 14 -76t37.5 -45.5t55.5 -22.5t68 -6q67 0 115 16.5t81.5 50t54.5 83.5t34 116l81 420h291l-302 -1556h-291z " />
-<glyph unicode="&#x428;" d="M234 1494h240l-240 -1234h178l240 1233h240l-240 -1234h178l240 1234h240l-290 -1493h-1076z" />
-<glyph unicode="&#x429;" d="M846 0h-902l290 1493h240l-239 -1232h178l239 1231h240l-239 -1232h178l239 1232h240l-239 -1232h66l-113 -582h-240z" />
-<glyph unicode="&#x42a;" d="M382 1284h-250l41 209h545l-113 -580h30q154 0 252 -25t154 -69t77.5 -104.5t21.5 -131.5q0 -33 -3.5 -65t-10.5 -67q-23 -116 -72 -201t-130 -140.5t-196.5 -82.5t-269.5 -27h-325zM515 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5 t-30.5 44.5q-23 20 -68 30t-127 10h-41l-86 -442h41z" />
-<glyph unicode="&#x42b;" d="M195 1493h255l-113 -580h10q132 0 220.5 -25t142 -69t76 -105.5t22.5 -133.5q0 -31 -3.5 -62.5t-10.5 -66.5q-45 -229 -201 -340t-423 -111h-265zM1093 1493h255l-290 -1493h-255zM227 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5 t-30.5 44.5q-23 20 -68 30t-127 10h-21l-86 -442h21z" />
-<glyph unicode="&#x42c;" d="M311 1493h295l-113 -580h110q154 0 252 -25t154 -69t77.5 -104.5t21.5 -131.5q0 -33 -3.5 -65t-10.5 -67q-23 -116 -72 -201t-130 -140.5t-196.5 -82.5t-269.5 -27h-405zM483 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5t-30.5 44.5 q-23 20 -68 30t-127 10h-121l-86 -442h121z" />
-<glyph unicode="&#x42d;" d="M348 -29q-88 0 -161 18t-137 54l64 328q120 -135 278 -135q271 0 385 379h-542l50 260h542q2 21 3 40.5t1 36.5q0 154 -61 228.5t-181 74.5q-81 0 -161.5 -33.5t-167.5 -101.5l64 328q148 72 327 72q100 0 175 -20.5t130 -57t91 -85t57.5 -105t30.5 -118t9 -122.5 q0 -57 -6.5 -125.5t-20.5 -140.5q-35 -185 -103.5 -329t-166.5 -243t-224 -151t-275 -52z" />
-<glyph unicode="&#x42e;" d="M674 -29q-75 0 -130.5 36t-91.5 99.5t-53.5 151t-17.5 191.5q0 97 15 202h-114l-127 -651h-240l290 1493h240l-113 -582h118q20 70 49 143t66 140.5t82 127t98.5 103.5t114.5 69.5t130 25.5q137 0 208 -102t71 -296q0 -79 -11.5 -177t-31.5 -200q-38 -187 -96 -331 t-130 -242.5t-155 -149.5t-171 -51zM723 236q25 0 56.5 34t61.5 96q20 42 39.5 96.5t36.5 115t31 125t24 126.5t15.5 119t5.5 104q0 24 -1 42t-3 31q-8 65 -25.5 97.5t-41.5 32.5q-50 0 -119 -144q-18 -38 -33.5 -77t-29 -83.5t-26 -95t-24.5 -110.5q-39 -197 -39 -313 q0 -23 1.5 -40.5t3.5 -33.5q8 -59 25.5 -90.5t41.5 -31.5z" />
-<glyph unicode="&#x42f;" d="M339 644q-36 19 -70.5 50.5t-62 72t-44.5 89.5t-17 102q0 43 11 101q22 117 71.5 199t127 134.5t183.5 76.5t241 24h476l-290 -1493h-295l115 590h-162l-414 -590h-321zM833 838l79 407h-189q-53 0 -97.5 -11t-78.5 -35.5t-57 -63t-33 -93.5q-6 -33 -6 -59 q0 -145 193 -145h189z" />
-<glyph unicode="&#x430;" d="M381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76 t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-291l25 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
-<glyph unicode="&#x431;" d="M498 -29q-117 0 -196.5 36.5t-128.5 96.5t-70.5 137t-21.5 158q0 35 3.5 70t10.5 72q4 23 8 44.5t6 35.5l15 167q5 59 13.5 118t23 117.5t36.5 115t55 110.5q45 74 100 127t117 89.5t130.5 58.5t141 35.5t149 20.5t154.5 13q19 1 31 2.5t20.5 3t17 4.5t20.5 8l69 -212 q-20 -7 -43 -11.5t-46 -6.5l-295 -24q-66 -5 -107 -16.5t-72 -28.5q-37 -20 -75 -49.5t-72 -65.5t-60.5 -75t-39.5 -77q148 102 338 102q119 0 199.5 -36.5t130 -96t71 -135.5t21.5 -155q0 -41 -4.5 -83.5t-12.5 -81.5q-26 -135 -83.5 -244t-140 -185.5t-187.5 -117.5 t-226 -41zM548 209q54 0 101.5 25t85 70.5t65 110t42.5 144.5q7 35 10.5 70t3.5 63q0 35 -7 73t-25.5 70t-51.5 53t-84 21q-54 0 -100.5 -23.5t-83.5 -65t-63.5 -96.5t-40.5 -118q-5 -21 -9 -46t-7 -51t-5 -50t-2 -42q0 -30 7 -66.5t26 -68t52 -52.5t86 -21z" />
-<glyph unicode="&#x432;" d="M253 1120h468q131 0 211.5 -15.5t127.5 -46.5q42 -28 64.5 -71t22.5 -107q0 -96 -51.5 -171t-158.5 -110q47 -14 78.5 -36.5t50 -50t26.5 -58.5t8 -63q0 -14 -1.5 -32t-5.5 -38q-30 -161 -166.5 -241t-374.5 -80h-517zM619 698q66 0 111.5 6.5t73.5 20t40 34t12 48.5 q0 26 -8.5 43t-21.5 26q-7 5 -18 9.5t-29.5 8t-47.5 5.5t-73 2h-156l-39 -203h156zM537 219q60 0 109.5 8t85.5 25.5t56 46.5t20 71q0 32 -12.5 51.5t-35.5 31.5q-51 26 -173 26h-167l-50 -260h167z" />
-<glyph unicode="&#x433;" d="M356 1120h799l-43 -219h-508l-175 -901h-291z" />
-<glyph unicode="&#x434;" d="M0 219h76q11 0 26.5 13t27.5 30q9 12 16.5 26.5t14.5 35t14 48t14 63.5l134 685h847l-175 -901h123l-99 -505h-219l56 286h-680l-56 -286h-219zM704 219l132 682h-265l-86 -442q-14 -73 -33 -132.5t-44 -107.5h296z" />
-<glyph unicode="&#x435;" d="M586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5 l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
-<glyph unicode="&#x436;" d="M294 694l-167 426h277l135 -343l67 343h240l-67 -343l269 343h277l-333 -426l119 -694h-255l-73 427l-96 -122l-59 -305h-240l59 305l-48 122l-239 -427h-255z" />
-<glyph unicode="&#x437;" d="M390 -22q-40 0 -79 2.5t-79.5 9.5t-85 20t-94.5 34l46 236q45 -24 85 -39.5t82 -24.5t90.5 -12t111.5 -3q55 0 101.5 3.5t82 16t58.5 37.5t31 67q3 15 3 27q0 31 -19.5 52t-49.5 34t-67 18.5t-71 5.5h-163l43 219h137q42 0 87 7t82.5 23t61.5 42.5t24 65.5 q0 56 -56.5 82.5t-174.5 26.5q-164 0 -326 -52l43 223q80 22 175 35t191 13q112 0 195 -18.5t138 -52.5t81.5 -80.5t26.5 -101.5q0 -14 -1.5 -29t-4.5 -29q-12 -62 -35.5 -105.5t-54.5 -74t-68.5 -50.5t-77.5 -33q37 -12 68.5 -33t54.5 -51t36 -68.5t13 -85.5 q0 -93 -51 -160.5t-138.5 -111t-204 -64.5t-247.5 -21z" />
-<glyph unicode="&#x438;" d="M261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
-<glyph unicode="&#x439;" d="M736 1270q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
-<glyph unicode="&#x43a;" d="M276 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
-<glyph unicode="&#x43b;" d="M-28 240h10q52 0 87.5 8t61 29.5t44 60.5t36.5 101q7 26 15.5 58.5t16.5 67t15.5 69.5t13.5 66l82 420h849l-218 -1120h-291l175 901h-267l-38 -197q-4 -18 -11.5 -58.5t-20.5 -93.5t-31 -113.5t-41.5 -120t-53 -113t-64.5 -91.5q-55 -59 -134.5 -86.5t-187.5 -27.5h-95z " />
-<glyph unicode="&#x43c;" d="M188 1120h352l51 -655l305 655h352l-218 -1120h-240l158 823l-299 -653h-232l-47 653l-160 -823h-240z" />
-<glyph unicode="&#x43d;" d="M273 1120h291l-74 -381h317l74 381h291l-218 -1120h-291l101 520h-317l-101 -520h-291z" />
-<glyph unicode="&#x43e;" d="M533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5 t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x43f;" d="M281 1120h899l-218 -1120h-291l175 901h-317l-175 -901h-291z" />
-<glyph unicode="&#x440;" d="M261 1120h264l-4 -168q72 100 153.5 147.5t175.5 47.5q73 0 131.5 -28t99.5 -81.5t63 -130.5t22 -176q0 -59 -8 -123t-23 -127.5t-37 -124t-50 -112.5q-72 -133 -176 -203t-221 -70q-114 0 -184.5 63.5t-90.5 172.5l-123 -633h-293zM593 209q63 0 114 41.5t87.5 108 t56.5 150t20 166.5q0 120 -40.5 176t-110.5 56q-63 0 -116 -40t-91 -105t-59 -146.5t-21 -164.5q0 -123 44.5 -182.5t115.5 -59.5z" />
-<glyph unicode="&#x441;" d="M307 949q90 94 214 146t272 52q19 0 53 -2q16 0 16 15v241q0 10 10 10h248q10 0 10 -10v-340l-53 -266q-120 114 -274 114q-85 0 -155.5 -32t-121.5 -92q-51 -59 -79 -139.5t-28 -173.5q0 -135 59 -199t181 -64q74 0 151.5 24.5t174.5 79.5l-56 -276q-154 -66 -323 -66 q-229 0 -354 122q-129 124 -129 364q0 146 47.5 272t136.5 220z" />
-<glyph unicode="&#x442;" d="M532 901h-308l43 219h907l-43 -219h-308l-175 -901h-291z" />
-<glyph unicode="&#x443;" d="M-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
-<glyph unicode="&#x444;" d="M381 -29q-73 7 -132 45t-101 96t-64.5 131t-22.5 151q0 34 4.5 77.5t12.5 87.5q17 89 49 166.5t74.5 141t93 114t104 86t107.5 55.5t104 25l79 409h240l-79 -409q72 -8 131 -44.5t101 -94t65 -131t23 -153.5q0 -35 -4.5 -77t-13.5 -88q-27 -138 -85 -244t-131.5 -179.5 t-155.5 -115t-159 -49.5l-77 -397h-240zM563 909q-38 -9 -75 -33.5t-69.5 -67.5t-58.5 -104.5t-42 -144.5q-8 -40 -11.5 -76t-3.5 -63q0 -38 7.5 -72.5t23 -62.5t38.5 -48t55 -28zM667 209q39 9 75.5 33t68.5 65.5t58 103.5t43 148q16 80 16 138q0 37 -7 72t-22.5 63t-39 48 t-56.5 29z" />
-<glyph unicode="&#x445;" d="M466 594l-258 526h301l148 -317l268 317h332l-477 -553l278 -567h-299l-170 356l-303 -356h-332z" />
-<glyph unicode="&#x446;" d="M872 0h-836l218 1120h291l-175 -901h317l175 901h291l-175 -901h156l-99 -505h-219z" />
-<glyph unicode="&#x447;" d="M706 416h-107q-231 0 -365 101l-4 3q-43 33 -66 82.5t-23 114.5q0 23 2.5 47.5t7.5 48.5l60 307h299l-66 -337q-3 -18 -3 -33q0 -38 20 -61q3 -4 7.5 -8t10.5 -9q48 -39 162 -39h107l95 488h290l-218 -1121h-290z" />
-<glyph unicode="&#x448;" d="M187 1120h240l-175 -901h178l175 901h240l-175 -901h178l175 901h240l-218 -1120h-1076z" />
-<glyph unicode="&#x449;" d="M900 0h-943l218 1120h240l-175 -901h178l175 901h240l-175 -901h178l175 901h240l-175 -901h86l-99 -505h-219z" />
-<glyph unicode="&#x44a;" d="M363 895h-251l44 225h542l-82 -422h127q106 0 181 -20t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-418zM596 219q52 0 96.5 7.5t77.5 25.5t51.5 47.5t18.5 73.5q0 28 -9.5 47t-32.5 33q-45 26 -152 26 h-73l-50 -260h73z" />
-<glyph unicode="&#x44b;" d="M133 1120h291l-82 -422h21q106 0 181 -20t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-312zM1010 1120h293l-218 -1120h-293zM276 219q30 0 62.5 10t59.5 29t44.5 47t17.5 65q0 30 -12 51t-31.5 34 t-43 18.5t-47.5 5.5h-27l-50 -260h27z" />
-<glyph unicode="&#x44c;" d="M298 1120h291l-82 -422h177q106 0 181 -20t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-468zM537 219q52 0 96.5 7.5t77.5 25.5t51.5 47.5t18.5 73.5q0 28 -9.5 47t-32.5 33q-45 26 -152 26h-123 l-50 -260h123z" />
-<glyph unicode="&#x44d;" d="M418 -29q-193 0 -323 86l53 269q56 -59 120 -88t148 -29q125 0 213 63t134 186h-477l43 219h472q-7 232 -242 232q-166 0 -320 -114l52 268q87 42 175 63t183 21q129 0 216 -36t140 -95t75.5 -135t22.5 -157q0 -41 -4.5 -83t-12.5 -81q-27 -139 -85.5 -248.5t-144.5 -185 t-196.5 -115.5t-241.5 -40z" />
-<glyph unicode="&#x44e;" d="M1212 988q29 -46 48 -110.5t19 -157.5q0 -78 -15.5 -165t-45 -171t-73 -160t-99.5 -132q-37 -37 -72.5 -58.5t-71 -33.5t-71.5 -18t-75 -10q-6 -1 -10 -1h-6q-47 0 -88.5 14t-76 36.5t-62 51t-47.5 57.5q-33 48 -50 106.5t-17 140.5q0 24 1.5 50t5.5 53h-102l-93 -480 h-293l218 1120h293l-84 -431h106q30 95 79.5 171.5t108.5 133t124.5 93t128.5 51.5q37 9 68 9q35 0 70.5 -11t68.5 -32t61.5 -50.5t51.5 -65.5zM1004 666q1 34 -0.5 57.5t-1.5 27.5q-1 10 -6.5 37.5t-21.5 58.5q-10 19 -20.5 33.5t-15.5 14.5q-5 3 -11 4t-10 1 q-19 0 -43.5 -20.5t-50.5 -58.5q-19 -27 -35 -57t-28.5 -56.5t-20 -46.5t-10.5 -27q-3 -8 -5.5 -14.5t-5 -15t-5 -20.5t-6.5 -30q-13 -64 -19 -105.5t-8 -65.5t-1.5 -33.5l0.5 -9.5q4 -11 8 -24t5 -15l4 -9q10 -35 23.5 -53.5t24.5 -25.5q14 -11 31 -11q12 0 26.5 7t30 19 t31.5 29t30 37q16 23 28.5 47.5t21.5 47.5t15 44t11 37q2 8 4 13.5t4 13.5t4.5 20t7.5 34q4 22 7 38t4.5 28.5t2.5 24t1 24.5z" />
-<glyph unicode="&#x44f;" d="M342 488q-23 13 -52 34t-54.5 50t-43.5 67.5t-18 85.5q0 16 2 38t7 45q15 79 55.5 138t109.5 97.5t170 57.5t238 19h424l-218 -1120h-291l84 429h-121l-345 -429h-339zM797 648l51 261h-173q-43 0 -82.5 -9t-69.5 -27.5t-48 -46.5t-18 -66q0 -60 43.5 -86t123.5 -26h173z " />
-<glyph unicode="&#x450;" d="M410 1675h284l209 -376h-198zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30 q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
-<glyph unicode="&#x451;" d="M478 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM873 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM586 -29q-253 0 -381.5 117t-128.5 352 q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21z M876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
-<glyph unicode="&#x452;" d="M411 -199q87 12 150.5 51.5t109 101t75.5 144.5t50 182q18 88 18 147q0 25 -4.5 48t-18.5 41t-40 28.5t-70 10.5q-110 0 -169 -69t-84 -197l-56 -289h-291l174 895h-171l44 225h171l84 436h291l-84 -436h437l-44 -225h-437l-57 -295q52 100 142.5 147.5t199.5 47.5 q76 0 129.5 -21.5t87.5 -59.5t49.5 -91t15.5 -117q0 -43 -6 -98.5t-17 -112.5q-24 -133 -72 -253t-131.5 -215.5t-210 -161t-308.5 -89.5z" />
-<glyph unicode="&#x453;" d="M912 1648h321l-442 -376h-197zM356 1120h799l-43 -219h-508l-175 -901h-291z" />
-<glyph unicode="&#x454;" d="M569 -29q-110 0 -195 28.5t-143 83.5t-88 134t-30 180q0 39 4.5 79t12.5 83q27 138 86 247.5t145 185.5t196 116.5t240 40.5q91 0 170 -20.5t154 -65.5l-52 -268q-54 55 -124 84.5t-154 29.5q-72 0 -126 -21t-94 -54t-66.5 -74.5t-43.5 -82.5h412l-41 -209h-417 q-2 -51 8.5 -98t38.5 -82t76 -56t121 -21q164 0 318 115l-52 -269q-164 -86 -356 -86z" />
-<glyph unicode="&#x455;" d="M495 -29q-100 0 -202.5 17.5t-202.5 52.5l51 256q87 -57 180.5 -86t190.5 -29q109 0 170 37t61 111q0 18 -6 33.5t-26 31.5q-23 18 -62.5 33.5t-99.5 32.5l-88 24q-236 65 -236 284q0 85 35 155t100 119.5t158.5 76.5t210.5 27q88 0 180 -15.5t185 -46.5l-50 -254 q-77 55 -165 81t-171 26q-101 0 -155.5 -34.5t-54.5 -93.5q0 -46 37 -73q9 -7 25.5 -15t38 -16.5t47.5 -17t54 -16.5l74 -21q124 -35 185 -104.5t61 -187.5q0 -91 -35 -163t-102 -122t-165 -76.5t-223 -26.5z" />
-<glyph unicode="&#x456;" d="M588 1323q-16 0 -23 9t-4 24l56 282q4 27 32 27h233q16 0 23 -9t4 -24l-56 -282q-5 -27 -32 -27h-233zM732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8 v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#x457;" d="M369 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM764 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM703 -8q-107 0 -177 14t-113 43 q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#x458;" d="M743 1323q-15 0 -22.5 9t-4.5 24l55 282q4 27 32 27h233q15 0 22.5 -9t4.5 -24l-55 -282q-5 -27 -32 -27h-233zM22 -199h231q51 0 88 13t64 42t45 75t31 112l165 852h-297l43 225h590l-209 -1077q-9 -47 -17 -83t-16 -64.5t-15.5 -50.5t-15.5 -40q-33 -78 -86 -128 t-131 -75q-83 -26 -208 -26h-307z" />
-<glyph unicode="&#x459;" d="M-57 240h10q52 0 87.5 8t61 29.5t44 60.5t36.5 101q7 26 15.5 58.5t16.5 67t15.5 69.5t13.5 66l82 420h598l-82 -422h11q80 0 143.5 -20t107.5 -56t67.5 -85.5t23.5 -107.5q0 -18 -2 -37.5t-6 -41.5q-16 -88 -62 -154t-110.5 -109.5t-142 -65t-155.5 -21.5h-251l175 901 h-118l-38 -197q-4 -18 -11.5 -58.5t-20.5 -93.5t-31 -113.5t-41.5 -120t-53 -113t-64.5 -91.5q-55 -59 -134.5 -86.5t-187.5 -27.5h-44zM765 219q30 0 62.5 10t59.5 29t44.5 47t17.5 65q0 30 -12 51t-31.5 34t-43 18.5t-47.5 5.5h-17l-50 -260h17z" />
-<glyph unicode="&#x45a;" d="M164 1120h240l-74 -381h299l74 381h240l-82 -422h11q80 0 143.5 -20t107.5 -56t67.5 -85.5t23.5 -107.5q0 -18 -2 -37.5t-6 -41.5q-16 -88 -62 -154t-110.5 -109.5t-142 -65t-155.5 -21.5h-251l101 520h-299l-101 -520h-240zM785 219q30 0 62.5 10t59.5 29t44.5 47 t17.5 65q0 30 -12 51t-31.5 34t-43 18.5t-47.5 5.5h-17l-50 -260h17z" />
-<glyph unicode="&#x45b;" d="M249 895h-171l43 225h171l85 436h291l-85 -436h437l-43 -225h-437l-58 -295q48 91 131.5 143t197.5 52q125 0 188.5 -67t63.5 -203q0 -32 -4 -70t-12 -80l-73 -375h-291l64 330q5 24 8 52t3 50q0 62 -28.5 92.5t-82.5 30.5q-85 0 -143 -70.5t-82 -195.5l-56 -289h-291z " />
-<glyph unicode="&#x45c;" d="M880 1648h321l-442 -376h-197zM276 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
-<glyph unicode="&#x45d;" d="M431 1648h284l209 -376h-198zM261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
-<glyph unicode="&#x45e;" d="M741 1270q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159 t-91.5 -92t-95 -42t-112.5 -10h-240z" />
-<glyph unicode="&#x45f;" d="M398 0h-340l218 1120h291l-175 -901h318l175 901h291l-218 -1120h-340l-56 -286h-220z" />
-<glyph unicode="&#x462;" d="M343 1124h-250l41 209h250l31 160h295l-31 -160h323l-41 -209h-323l-41 -211h30q130 0 225.5 -19t157.5 -59.5t92 -102.5t30 -148q0 -31 -3.5 -64t-10.5 -69q-23 -116 -72.5 -201t-130.5 -140.5t-196.5 -82.5t-268.5 -27h-325zM507 236q77 0 131 11.5t90.5 37t57.5 66.5 t33 100q9 46 9 81q0 41 -13 69t-41 45t-73 24.5t-108 7.5h-41l-86 -442h41z" />
-<glyph unicode="&#x463;" d="M357 950h-251l43 225h251l74 381h291l-74 -381h402l-43 -225h-402l-49 -252h127q188 0 291.5 -67.5t103.5 -202.5q0 -20 -2 -38.5t-6 -39.5q-16 -86 -59.5 -151.5t-110.5 -109.5t-156 -66.5t-197 -22.5h-418zM579 219q112 0 170 31t71 100q3 16 3 30q0 54 -48 76.5 t-146 22.5h-73l-50 -260h73z" />
-<glyph unicode="&#x472;" d="M465 -29q-123 0 -202.5 37.5t-126 99t-64.5 141.5t-18 165q0 39 3 82t8.5 85.5t12 84t13.5 79.5q28 148 73 271.5t106.5 219t140 161t175.5 96.5q84 27 180 27q205 0 306.5 -119t101.5 -347q0 -65 -8 -144.5t-24 -165.5q-29 -153 -76 -279t-112 -221.5t-146 -159 t-177 -91.5q-76 -22 -166 -22zM860 911q6 63 6 115q0 108 -28 160q-20 37 -51 53t-72 16q-78 0 -133.5 -53.5t-100.5 -160.5l-10 -26t-10.5 -28t-11 -33.5t-12.5 -42.5h423zM518 236q57 0 101 27t79 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90 q0 -109 34.5 -165t117.5 -56z" />
-<glyph unicode="&#x473;" d="M502 -29q-121 0 -207.5 40.5t-139.5 118.5q-73 107 -73 272q0 76 15.5 156.5t45.5 157.5t74.5 146.5t103.5 125.5q82 78 185.5 118.5t224.5 40.5q118 0 205 -39.5t141 -119.5q38 -57 55.5 -125.5t17.5 -147.5q0 -78 -16 -159t-46.5 -157.5t-75 -145.5t-101.5 -123 q-85 -80 -188 -119.5t-221 -39.5zM853 632q3 28 3 55q0 47 -9.5 87.5t-30 70.5t-53.5 47t-79 17q-53 0 -96.5 -22t-78 -60t-60 -88t-41.5 -107h445zM548 209q53 0 94.5 20.5t73.5 53.5t55 73.5t38 81.5h-432q0 -41 7 -81.5t26 -73.5t52 -53.5t86 -20.5z" />
-<glyph unicode="&#x490;" d="M362 1493h670l60 306h260l-110 -566h-635l-240 -1233h-295z" />
-<glyph unicode="&#x491;" d="M375 1120h590l61 314h209l-103 -533h-508l-175 -901h-291z" />
-<glyph unicode="&#x492;" d="M216 664h-135l46 240h135l115 589h930l-50 -260h-635l-64 -329h425l-47 -240h-425l-129 -664h-295z" />
-<glyph unicode="&#x493;" d="M266 458h-130l43 219h130l86 443h799l-43 -219h-508l-43 -224h360l-43 -219h-360l-89 -458h-291z" />
-<glyph unicode="&#x494;" d="M324 -199h136q51 0 88.5 14t64 43.5t44.5 75t30 109.5l82 421q6 32 9.5 57.5t3.5 48.5q0 63 -29.5 89.5t-93.5 26.5h-234l-133 -686h-295l290 1493h930l-50 -260h-635l-55 -281h309q66 0 121 -14.5t95 -38.5q19 -11 33 -24t22 -29q36 -63 36 -162q0 -33 -4 -71.5 t-12 -80.5l-95 -489q-24 -126 -63 -214.5t-97 -145t-137.5 -82t-185.5 -25.5h-218z" />
-<glyph unicode="&#x495;" d="M332 -199h113q47 0 83 11.5t63.5 39.5t46.5 74.5t33 116.5l27 137q6 30 8.5 55t2.5 45q0 68 -28 96.5t-86 28.5h-120l-79 -405h-291l218 1120h799l-41 -209h-508l-52 -266h237q128 0 192.5 -67t64.5 -201q0 -35 -4.5 -72.5t-12.5 -79.5l-36 -182q-25 -125 -63 -214 t-95 -145t-135.5 -82t-184.5 -26h-195z" />
-<glyph unicode="&#x496;" d="M836 0h-10l-52 537l-113 -181l-69 -356h-240l69 356l-41 181l-262 -537h-250l430 886l-140 607h261l122 -523l101 523h240l-101 -523l324 523h261l-376 -607l61 -626h76l-113 -582h-240z" />
-<glyph unicode="&#x497;" d="M895 0h-39l-73 427l-96 -122l-59 -305h-240l59 305l-48 122l-239 -427h-255l389 694l-167 426h277l135 -343l67 343h240l-67 -343l269 343h277l-333 -426l82 -475h83l-99 -505h-219z" />
-<glyph unicode="&#x498;" d="M764 805q141 -38 203.5 -122t62.5 -214q0 -102 -34.5 -187t-99.5 -149t-158.5 -104t-210.5 -53q55 -82 55 -162q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 23 -9.5 52t-32.5 71 q-95 3 -199 21.5t-216 51.5l54 270q94 -45 199 -69.5t201 -24.5q81 0 142 18t102.5 50.5t62 78t20.5 101.5q0 102 -64 150.5t-172 48.5h-158l52 260h157q62 0 113.5 14.5t88 41t57 62.5t20.5 78q0 70 -57.5 108t-166.5 38q-81 0 -179.5 -21t-209.5 -61l54 268 q105 32 201.5 48t177.5 16q105 0 189.5 -25.5t144 -72t91 -111.5t31.5 -145q0 -70 -24.5 -129.5t-70 -106t-111.5 -78.5t-150 -47z" />
-<glyph unicode="&#x499;" d="M1095 836q-12 -62 -35.5 -105.5t-54.5 -74t-68.5 -50.5t-77.5 -33q37 -12 68.5 -33t54.5 -51t36 -68.5t13 -85.5q0 -83 -40.5 -145.5t-111 -106t-166 -68.5t-206.5 -33q59 -86 59 -168q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5 l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 24 -10.5 54t-34.5 75q-36 1 -72.5 4t-74.5 10.5t-79 19.5t-87 32l46 236q45 -24 85 -39.5t82 -24.5t90.5 -12t111.5 -3q55 0 101.5 3.5t82 16t58.5 37.5t31 67q3 15 3 27q0 31 -19.5 52t-49.5 34t-67 18.5t-71 5.5h-163 l43 219h137q42 0 87 7t82.5 23t61.5 42.5t24 65.5q0 56 -56.5 82.5t-174.5 26.5q-164 0 -326 -52l43 223q80 22 175 35t191 13q112 0 195 -18.5t138 -52.5t81.5 -80.5t26.5 -101.5q0 -14 -1.5 -29t-4.5 -29z" />
-<glyph unicode="&#x49a;" d="M797 0h-10l-254 670l-172 -170l-95 -500h-294l288 1493h295l-108 -557l563 557h348l-606 -604l239 -629h150l-128 -656h-293z" />
-<glyph unicode="&#x49b;" d="M781 0h-35l-205 524l-119 -96l-83 -428h-293l218 1120h293l-74 -381l426 381h355l-506 -418l219 -493h134l-104 -533h-289z" />
-<glyph unicode="&#x4a2;" d="M860 0h-239l129 664h-369l-129 -664h-295l290 1493h295l-110 -569h369l110 569h295l-239 -1233h237l-128 -656h-293z" />
-<glyph unicode="&#x4a3;" d="M917 0h-291l103 530h-317l-103 -530h-291l218 1120h291l-74 -381h317l74 381h291l-177 -911h289l-104 -533h-289z" />
-<glyph unicode="&#x4a4;" d="M353 1493h240l-112 -578h315l112 578h580l-48 -247h-340l-242 -1246h-240l131 675h-315l-131 -675h-240z" />
-<glyph unicode="&#x4a5;" d="M227 1120h240l-76 -390h323l76 390h568l-41 -210h-328l-177 -910h-240l101 520h-323l-101 -520h-240z" />
-<glyph unicode="&#x4aa;" d="M871 1520q85 0 162.5 -18t155.5 -54l-64 -328q-24 33 -55 59t-66.5 43t-74 26t-77.5 9q-94 0 -168.5 -48.5t-129.5 -133.5q-34 -52 -62 -118t-48.5 -137.5t-32 -144.5t-11.5 -139q0 -153 63 -229t184 -76q78 0 158.5 33.5t174.5 106.5l-64 -328q-60 -28 -121 -45 t-126 -23q27 -42 40.5 -81t13.5 -80q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 23 -10 52.5t-33 72.5q-206 18 -314.5 154.5t-108.5 393.5q0 106 18.5 214.5t52.5 210t82.5 191 t108.5 158.5q97 111 226.5 167.5t281.5 56.5z" />
-<glyph unicode="&#x4ab;" d="M805 909q-86 0 -156.5 -33t-121 -91.5t-78.5 -138.5t-28 -174q0 -136 59.5 -199.5t180.5 -63.5q74 0 151.5 24.5t174.5 79.5l-56 -276q-144 -61 -300 -66q52 -79 52 -157q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156 q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 25 -10.5 55.5t-36.5 77.5q-168 31 -261.5 150.5t-93.5 324.5q0 147 48 273t136 218.5t211.5 145.5t274.5 53q91 0 176 -20.5t161 -63.5l-53 -268q-120 114 -274 114z" />
-<glyph unicode="&#x4ac;" d="M634 0h-295l240 1235h-379l50 258h1053l-50 -258h-379l-189 -975h293l-128 -656h-293z" />
-<glyph unicode="&#x4ad;" d="M623 0h-291l177 911h-308l41 209h907l-41 -209h-308l-136 -702h289l-104 -533h-289z" />
-<glyph unicode="&#x4ae;" d="M455 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#x4af;" d="M365 31l-203 1089h308l110 -727l392 727h308l-625 -1089l-89 -457h-290z" />
-<glyph unicode="&#x4b0;" d="M390 264h-240l51 260h240l12 64l-285 905h318l173 -600l408 600h318l-637 -905l-12 -64h240l-51 -260h-240l-51 -264h-295z" />
-<glyph unicode="&#x4b1;" d="M310 -250h-200l43 219h200l12 62l-203 1089h308l110 -727l392 727h308l-625 -1089l-12 -62h200l-43 -219h-200l-34 -176h-290z" />
-<glyph unicode="&#x4b2;" d="M763 0h-12l-189 494l-380 -494h-305l585 758l-283 735h305l180 -475l365 475h305l-567 -735l190 -498h150l-128 -656h-293z" />
-<glyph unicode="&#x4b3;" d="M774 0h-53l-147 377l-292 -377h-342l528 584l-277 536h342l121 -334l252 334h342l-481 -536l190 -375h147l-104 -533h-289z" />
-<glyph unicode="&#x4ba;" d="M273 1556h291l-129 -666q27 50 74 77l53 31q31 18 84.5 30t127.5 18l58 3q67 0 123.5 -15t91.5 -38q20 -13 32 -26.5t20 -26.5q36 -59 36 -163q0 -32 -4 -70.5t-12 -80.5l-122 -629h-291l109 561q12 60 12 103q0 45 -13 70q-16 37 -109 49q-23 3 -42 3q-69 0 -147 -29 q-32 -12 -45.5 -21.5t-24.5 -20.5q-28 -31 -49 -81t-34 -114l-101 -520h-291z" />
-<glyph unicode="&#x4bb;" d="M362 1556h291l-116 -604q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -29 96.5t-83 30.5q-85 0 -142.5 -71t-83.5 -207l-121 -629h-293z" />
-<glyph unicode="&#x4c0;" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#x4c1;" d="M761 1590q-137 0 -210 67t-73 193v4h143q10 -60 51 -87.5t120 -27.5q72 0 124.5 30.5t75.5 84.5h154q-40 -130 -138.5 -197t-246.5 -67zM298 886l-140 607h261l121 -523l102 523h240l-102 -523l325 523h261l-376 -607l86 -886h-250l-53 537l-112 -181l-69 -356h-240 l69 356l-42 181l-261 -537h-250z" />
-<glyph unicode="&#x4c2;" d="M751 1270q-295 0 -295 264v33h144v-13q0 -61 44 -97t120 -36q81 0 139.5 38.5t83.5 107.5h143q-29 -143 -127.5 -220t-251.5 -77zM294 694l-167 426h277l135 -343l67 343h240l-67 -343l269 343h277l-333 -426l119 -694h-255l-73 427l-96 -122l-59 -305h-240l59 305 l-48 122l-239 -427h-255z" />
-<glyph unicode="&#x4c3;" d="M309 -199h136q49 0 86 13t64 42q28 30 46 76t31 111l82 421q12 61 12 104q0 46 -13 69q-40 49 -109 49h-87l-182 -180l-98 -506h-295l290 1493h295l-114 -590l576 590h334l-538 -541q85 0 162 -53q21 -14 34 -26.5t21 -26.5q17 -28 26.5 -71t9.5 -97q0 -32 -4 -68.5 t-12 -77.5l-95 -489q-24 -124 -62.5 -212.5t-96.5 -145t-138 -83t-186 -26.5h-218z" />
-<glyph unicode="&#x4c4;" d="M298 -199h113q47 0 83 11.5t63.5 39.5t46.5 74.5t33 116.5l27 137q6 30 8.5 55t2.5 45q0 68 -28 96.5t-86 28.5h-120l-79 -405h-293l218 1120h293l-74 -381l426 381h355l-575 -475h12q128 0 192.5 -67t64.5 -201q0 -35 -4.5 -72.5t-12.5 -79.5l-36 -182 q-25 -125 -63 -214t-95 -145t-135.5 -82t-184.5 -26h-195z" />
-<glyph unicode="&#x4c7;" d="M301 -199h136q51 0 88.5 14t64 43.5t44.5 75t30 109.5l121 621h-369l-129 -664h-295l290 1493h295l-110 -569h369l110 569h295l-282 -1450q-24 -126 -64 -214.5t-98.5 -145t-137.5 -82t-183 -25.5h-218z" />
-<glyph unicode="&#x4c8;" d="M343 -199h113q51 0 88.5 14t64 43.5t44.5 75t30 109.5l95 487h-317l-103 -530h-291l218 1120h291l-74 -381h317l74 381h291l-210 -1077q-25 -128 -64 -217t-97 -144.5t-136.5 -80.5t-181.5 -25h-195z" />
-<glyph unicode="&#x4cb;" d="M427 260h293l98 506q-26 -50 -74 -77l-53 -31q-31 -18 -89 -31t-123 -17l-58 -3q-67 0 -123.5 15t-91.5 38q-20 13 -32 26.5t-20 26.5q-36 59 -36 163q0 32 4 70.5t12 80.5l102 529h291l-89 -461q-12 -60 -12 -103q0 -45 13 -70q16 -37 109 -49q22 -3 42 -3q69 0 147 29 q32 12 45.5 21.5t24.5 20.5q28 31 49 81t34 114l81 420h291l-302 -1556h-291l-77 -396h-293z" />
-<glyph unicode="&#x4cc;" d="M404 209h289l40 207h-107q-231 0 -365 101l-4 3q-43 33 -66 82.5t-23 114.5q0 23 2.5 47.5t7.5 48.5l60 307h299l-66 -337q-3 -18 -3 -33q0 -38 20 -61q3 -4 7.5 -8t10.5 -9q48 -39 162 -39h107l95 488h290l-218 -1121h-290l-63 -324h-289z" />
-<glyph unicode="&#x4cf;" d="M641 1556h293l-302 -1556h-293z" />
-<glyph unicode="&#x4d0;" d="M776 1590q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x4d1;" d="M736 1297q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5 t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-262l-4 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70 t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
-<glyph unicode="&#x4d2;" d="M487 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM883 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM582 1493h360l113 -1493h-293l-14 369h-400 l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#x4d3;" d="M480 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM875 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM381 -29q-78 0 -139.5 22t-105 64 t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114 l-123 -639h-262l-4 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
-<glyph unicode="&#x4d4;" d="M522 1493h809l-51 -260h-291l-60 -311h260l-51 -260h-260l-78 -402h310l-52 -260h-563l72 362h-283l-155 -362h-259zM612 598l125 635h-80l-272 -635h227z" />
-<glyph unicode="&#x4d5;" d="M246 -29q-63 0 -114.5 20t-87.5 58.5t-55.5 94t-19.5 127.5q0 91 31.5 168t90 132.5t141 87t184.5 31.5h108l11 58q6 30 6 58q0 62 -33.5 94t-96.5 32q-107 0 -280 -101l47 238q79 39 151.5 58.5t136.5 19.5q92 0 148 -36.5t80 -96.5q52 66 121 99.5t156 33.5 q125 0 192.5 -70t67.5 -202q0 -43 -7.5 -110t-24.5 -159l-23 -129h-451q-8 -49 -11 -75.5t-3 -44.5q0 -81 42 -129t114 -48q55 0 123 28.5t134 80.5l-47 -238q-60 -42 -130 -61t-136 -19q-199 0 -268 164q-61 -84 -134 -124t-163 -40zM991 688l12 67q7 32 7 71q0 22 -3 41 t-11.5 33.5t-24.5 23t-43 8.5q-114 0 -148 -172l-14 -72h225zM297 180q64 0 104.5 52t61.5 169l14 78h-74q-49 0 -89 -13.5t-68 -38t-43 -58.5t-15 -74q0 -57 29 -86t80 -29z" />
-<glyph unicode="&#x4d6;" d="M794 1580q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x4d7;" d="M730 1299q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54 q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59 t-111 -177h466z" />
-<glyph unicode="&#x4d8;" d="M465 -29q-406 0 -406 476q0 70 8.5 142.5t24.5 155.5l18 95h741q8 55 13 102.5t5 90.5q0 109 -38.5 165.5t-133.5 56.5q-72 0 -150.5 -33t-166.5 -102l64 328q78 36 158 54t161 18q208 0 309.5 -118t101.5 -355q0 -133 -33 -302q-37 -188 -97.5 -332.5t-145 -242.5 t-193 -148.5t-240.5 -50.5zM517 236q57 0 100.5 26.5t76.5 73t57.5 109.5t44.5 135h-423q-4 -32 -6 -63t-2 -60q0 -49 7.5 -89.5t25 -70t46.5 -45.5t73 -16z" />
-<glyph unicode="&#x4d9;" d="M492 -29q-204 0 -314.5 105t-110.5 301q0 35 4 74.5t12 82.5l23 119h759q4 18 5.5 35t1.5 32q0 195 -264 195q-102 0 -204.5 -29t-222.5 -92l52 269q112 43 223 63.5t217 20.5q246 0 368 -107.5t122 -310.5q0 -42 -4.5 -84.5t-12.5 -81.5q-26 -135 -83.5 -244.5 t-142 -187t-193 -119t-235.5 -41.5zM537 198q109 0 179 61t104 175l-461 -1q-3 -18 -5 -35t-2 -34q0 -82 48 -124t137 -42z" />
-<glyph unicode="&#x4da;" d="M487 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM883 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM465 -29q-406 0 -406 476q0 70 8.5 142.5 t24.5 155.5l18 95h741q8 55 13 102.5t5 90.5q0 109 -38.5 165.5t-133.5 56.5q-72 0 -150.5 -33t-166.5 -102l64 328q78 36 158 54t161 18q208 0 309.5 -118t101.5 -355q0 -133 -33 -302q-37 -188 -97.5 -332.5t-145 -242.5t-193 -148.5t-240.5 -50.5zM517 236 q57 0 100.5 26.5t76.5 73t57.5 109.5t44.5 135h-423q-4 -32 -6 -63t-2 -60q0 -49 7.5 -89.5t25 -70t46.5 -45.5t73 -16z" />
-<glyph unicode="&#x4db;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM492 -29q-204 0 -314.5 105t-110.5 301 q0 35 4 74.5t12 82.5l23 119h759q4 18 5.5 35t1.5 32q0 195 -264 195q-102 0 -204.5 -29t-222.5 -92l52 269q112 43 223 63.5t217 20.5q246 0 368 -107.5t122 -310.5q0 -42 -4.5 -84.5t-12.5 -81.5q-26 -135 -83.5 -244.5t-142 -187t-193 -119t-235.5 -41.5zM537 198 q109 0 179 61t104 175l-461 -1q-3 -18 -5 -35t-2 -34q0 -82 48 -124t137 -42z" />
-<glyph unicode="&#x4dc;" d="M494 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM890 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM298 886l-140 607h261l121 -523l102 523h240 l-102 -523l325 523h261l-376 -607l86 -886h-250l-53 537l-112 -181l-69 -356h-240l69 356l-42 181l-261 -537h-250z" />
-<glyph unicode="&#x4dd;" d="M457 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM852 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM294 694l-167 426h277l135 -343l67 343h240 l-67 -343l269 343h277l-333 -426l119 -694h-255l-73 427l-96 -122l-59 -305h-240l59 305l-48 122l-239 -427h-255z" />
-<glyph unicode="&#x4de;" d="M457 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM853 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM444 -29q-103 0 -216.5 19t-236.5 55l54 270 q94 -45 199 -69.5t201 -24.5q81 0 142 18t102.5 50.5t62 78t20.5 101.5q0 102 -64 150.5t-172 48.5h-158l52 260h157q62 0 113.5 14.5t88 41t57 62.5t20.5 78q0 70 -57.5 108t-166.5 38q-81 0 -179.5 -21t-209.5 -61l54 268q105 32 201.5 48t177.5 16q105 0 189.5 -25.5 t144 -72t91 -111.5t31.5 -145q0 -70 -24.5 -129.5t-70 -106t-111.5 -78.5t-150 -47q141 -38 203.5 -122t62.5 -214q0 -113 -42.5 -205t-121 -157t-191 -100.5t-253.5 -35.5z" />
-<glyph unicode="&#x4df;" d="M431 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM826 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM387 -22q-40 0 -79 2.5t-79.5 9.5t-85 20 t-94.5 34l46 236q45 -24 85 -39.5t82 -24.5t90.5 -12t111.5 -3q55 0 101.5 3.5t82 16t58.5 37.5t31 67q3 15 3 27q0 31 -19.5 52t-49.5 34t-67 18.5t-71 5.5h-163l43 219h137q42 0 87 7t82.5 23t61.5 42.5t24 65.5q0 56 -56.5 82.5t-174.5 26.5q-164 0 -326 -52l43 223 q80 22 175 35t191 13q112 0 195 -18.5t138 -52.5t81.5 -80.5t26.5 -101.5q0 -14 -1.5 -29t-4.5 -29q-12 -62 -35.5 -105.5t-54.5 -74t-68.5 -50.5t-77.5 -33q37 -12 68.5 -33t54.5 -51t36 -68.5t13 -85.5q0 -93 -51 -160.5t-138.5 -111t-204 -64.5t-247.5 -21z" />
-<glyph unicode="&#x4e0;" d="M467 -28q-141 0 -241 23t-163 67.5t-92.5 108t-29.5 144.5q0 30 3.5 61t9.5 63h318q-4 -19 -4 -38q0 -44 18 -75.5t50.5 -52t76.5 -30t96 -9.5q99 0 177.5 35.5t114.5 110.5q8 16 12 30t7 29q2 12 3.5 23.5t1.5 23.5q0 69 -47 106.5t-143 49.5q-17 2 -34.5 3t-37.5 1 h-255l43 218l443 369h-566l51 260h1010l-48 -244l-479 -401q64 -4 121 -11t104.5 -24t84.5 -47.5t63 -80.5q19 -37 28.5 -80t9.5 -87t-9 -93q-17 -93 -54 -162.5t-89 -120t-117 -83.5t-136.5 -52t-148 -27t-152.5 -8z" />
-<glyph unicode="&#x4e1;" d="M345 -440q-114 0 -211.5 18.5t-194.5 55.5l57 297q87 -54 176 -81.5t188 -27.5q135 0 218 52t103 153q2 12 3.5 23t1.5 23q0 79 -66 120t-196 41h-168l43 218l477 449h-566l43 219h895l-45 -229l-479 -455q60 -3 117.5 -10t107.5 -25t89.5 -51.5t64.5 -90.5 q14 -32 22.5 -71.5t8.5 -88.5q0 -53 -12.5 -110.5t-39.5 -113t-70 -106.5t-105 -92q-176 -117 -462 -117z" />
-<glyph unicode="&#x4e2;" d="M529 1850h631l-36 -188h-631zM264 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
-<glyph unicode="&#x4e3;" d="M479 1508h631l-37 -188h-631zM261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
-<glyph unicode="&#x4e4;" d="M496 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM892 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM264 1493h260l-211 -1085l627 1085h317 l-290 -1493h-260l211 1085l-629 -1085h-315z" />
-<glyph unicode="&#x4e5;" d="M469 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM864 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM261 1120h291l-139 -715l496 715h291 l-218 -1120h-291l139 715l-496 -715h-291z" />
-<glyph unicode="&#x4e6;" d="M467 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM863 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM497 -29q-212 0 -324 127t-112 384 q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5 t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
-<glyph unicode="&#x4e7;" d="M449 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM844 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM533 -29q-103 0 -185.5 30.5t-140 91 t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5 t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x4e8;" d="M464 -29q-202 0 -303.5 120t-101.5 346q0 64 8 144t24 165q35 187 96.5 331.5t147.5 242.5t195.5 149t239.5 51q202 0 303 -119.5t101 -346.5q0 -64 -8 -144t-24 -166q-34 -184 -95 -327.5t-147 -242.5t-195.5 -151t-240.5 -52zM860 911q3 33 5 64t2 60q0 49 -7 89.5 t-24.5 69.5t-47 45t-73.5 16q-57 0 -99 -25.5t-74.5 -71t-57.5 -109t-47 -138.5h423zM518 236q57 0 101 27t79 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90q0 -109 34.5 -165t117.5 -56z" />
-<glyph unicode="&#x4e9;" d="M502 -29q-121 0 -207.5 40.5t-139.5 118.5q-73 107 -73 272q0 76 15.5 156.5t45.5 157.5t74.5 146.5t103.5 125.5q82 78 185.5 118.5t224.5 40.5q118 0 205 -39.5t141 -119.5q38 -57 55.5 -125.5t17.5 -147.5q0 -78 -16 -159t-46.5 -157.5t-75 -145.5t-101.5 -123 q-85 -80 -188 -119.5t-221 -39.5zM853 632q3 28 3 55q0 47 -9.5 87.5t-30 70.5t-53.5 47t-79 17q-53 0 -96.5 -22t-78 -60t-60 -88t-41.5 -107h445zM548 209q53 0 94.5 20.5t73.5 53.5t55 73.5t38 81.5h-432q0 -41 7 -81.5t26 -73.5t52 -53.5t86 -20.5z" />
-<glyph unicode="&#x4ea;" d="M487 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM883 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM464 -29q-202 0 -303.5 120t-101.5 346 q0 64 8 144t24 165q35 187 96.5 331.5t147.5 242.5t195.5 149t239.5 51q202 0 303 -119.5t101 -346.5q0 -64 -8 -144t-24 -166q-34 -184 -95 -327.5t-147 -242.5t-195.5 -151t-240.5 -52zM860 911q3 33 5 64t2 60q0 49 -7 89.5t-24.5 69.5t-47 45t-73.5 16q-57 0 -99 -25.5 t-74.5 -71t-57.5 -109t-47 -138.5h423zM518 236q57 0 101 27t79 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90q0 -109 34.5 -165t117.5 -56z" />
-<glyph unicode="&#x4eb;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM502 -29q-121 0 -207.5 40.5t-139.5 118.5 q-73 107 -73 272q0 76 15.5 156.5t45.5 157.5t74.5 146.5t103.5 125.5q82 78 185.5 118.5t224.5 40.5q118 0 205 -39.5t141 -119.5q38 -57 55.5 -125.5t17.5 -147.5q0 -78 -16 -159t-46.5 -157.5t-75 -145.5t-101.5 -123q-85 -80 -188 -119.5t-221 -39.5zM853 632q3 28 3 55 q0 47 -9.5 87.5t-30 70.5t-53.5 47t-79 17q-53 0 -96.5 -22t-78 -60t-60 -88t-41.5 -107h445zM548 209q53 0 94.5 20.5t73.5 53.5t55 73.5t38 81.5h-432q0 -41 7 -81.5t26 -73.5t52 -53.5t86 -20.5z" />
-<glyph unicode="&#x4ec;" d="M434 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM830 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM343 -29q-88 0 -161 18t-137 54l64 328 q120 -135 278 -135q271 0 385 379h-542l50 260h542q2 21 3 40.5t1 36.5q0 154 -61 228.5t-181 74.5q-81 0 -161.5 -33.5t-167.5 -101.5l64 328q148 72 327 72q100 0 175 -20.5t130 -57t91 -85t57.5 -105t30.5 -118t9 -122.5q0 -57 -6.5 -125.5t-20.5 -140.5 q-35 -185 -103.5 -329t-166.5 -243t-224 -151t-275 -52z" />
-<glyph unicode="&#x4ed;" d="M434 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM829 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM411 -29q-193 0 -323 86l53 269 q56 -59 120 -88t148 -29q125 0 213 63t134 186h-477l43 219h472q-7 232 -242 232q-166 0 -320 -114l52 268q87 42 175 63t183 21q129 0 216 -36t140 -95t75.5 -135t22.5 -157q0 -41 -4.5 -83t-12.5 -81q-27 -139 -85.5 -248.5t-144.5 -185t-196.5 -115.5t-241.5 -40z" />
-<glyph unicode="&#x4ee;" d="M529 1870h631l-36 -188h-631zM100 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
-<glyph unicode="&#x4ef;" d="M464 1508h631l-37 -188h-631zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
-<glyph unicode="&#x4f0;" d="M503 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM899 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM100 260h80q56 0 86 8q33 9 68.5 40t67.5 88 l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
-<glyph unicode="&#x4f1;" d="M464 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM859 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52 t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
-<glyph unicode="&#x4f2;" d="M697 1854h284l-337 -264h-197zM1072 1854h284l-337 -264h-197zM100 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
-<glyph unicode="&#x4f3;" d="M647 1648h246l-321 -376h-164zM1043 1648h260l-346 -376h-172zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
-<glyph unicode="&#x4f4;" d="M502 1628q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM898 1628q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM833 766q-46 -77 -136 -118t-238 -41 q-86 0 -147.5 15t-101.5 47.5t-59 84t-19 124.5q0 33 4 70.5t12 78.5l103 529h291l-89 -461q-4 -21 -6 -39t-2 -36q0 -47 14 -76t37.5 -45.5t55.5 -22.5t68 -6q67 0 115 16.5t81.5 50t54.5 83.5t34 116l81 420h291l-302 -1556h-291z" />
-<glyph unicode="&#x4f5;" d="M442 1321q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM837 1321q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM716 416h-107q-231 0 -365 101l-4 3 q-43 33 -66 82.5t-23 114.5q0 23 2.5 47.5t7.5 48.5l60 307h299l-66 -337q-3 -18 -3 -33q0 -38 20 -61q3 -4 7.5 -8t10.5 -9q48 -39 162 -39h107l95 488h290l-218 -1121h-290z" />
-<glyph unicode="&#x4f6;" d="M357 0h-295l290 1493h930l-50 -260h-635l-189 -973h293l-128 -656h-293z" />
-<glyph unicode="&#x4f7;" d="M438 0h-291l218 1120h799l-41 -209h-508l-136 -702h289l-104 -533h-289z" />
-<glyph unicode="&#x4f8;" d="M496 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM892 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM188 1493h255l-113 -580h10q132 0 220.5 -25 t142 -69t76 -105.5t22.5 -133.5q0 -31 -3.5 -62.5t-10.5 -66.5q-45 -229 -201 -340t-423 -111h-265zM1086 1493h255l-290 -1493h-255zM220 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5t-30.5 44.5q-23 20 -68 30t-127 10h-21l-86 -442 h21z" />
-<glyph unicode="&#x4f9;" d="M467 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM862 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM140 1120h291l-82 -422h21q106 0 181 -20 t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-312zM1017 1120h293l-218 -1120h-293zM283 219q30 0 62.5 10t59.5 29t44.5 47t17.5 65q0 30 -12 51t-31.5 34t-43 18.5t-47.5 5.5h-27l-50 -260h27z" />
-<glyph unicode="&#x510;" d="M520 -29q-233 0 -351.5 86t-118.5 253q0 26 3 51.5t8 54.5q31 161 133.5 261t270.5 128q-123 24 -180.5 91.5t-57.5 161.5q0 19 2 37t6 38q17 87 63.5 158.5t120 122.5t172 78.5t219.5 27.5q94 0 190 -16.5t193 -47.5l-52 -268q-96 40 -187.5 61t-169.5 21 q-121 0 -188 -47.5t-83 -128.5q-2 -11 -3 -20.5t-1 -16.5q0 -60 52 -94.5t150 -34.5h158l-50 -260h-158q-132 0 -213 -64.5t-102 -175.5q-2 -11 -3 -22t-1 -20q0 -76 57.5 -119.5t186.5 -43.5q46 0 100 6t110.5 18t113 30t107.5 42l-53 -274q-108 -36 -221 -55t-223 -19z " />
-<glyph unicode="&#x511;" d="M568 -22q-244 0 -359 68.5t-115 199.5q0 15 1.5 32t5.5 34q25 121 116 195t253 97q-115 17 -175.5 68t-60.5 131q0 12 1.5 23.5t3.5 23.5q13 66 54.5 119.5t109 91.5t160 58.5t208.5 20.5q85 0 180 -12q2 -1 5 -1t5 -1q15 -2 51 -10.5t94 -23.5l-42 -215l-24 8 q-45 15 -81 25t-68 16.5t-64.5 9t-70.5 2.5q-56 0 -98 -7t-81 -27l-25 -15q-42 -28 -48 -69q-1 -5 -1.5 -10.5t-0.5 -9.5q0 -16 12 -30.5t32 -26.5q55 -33 155 -33h151l-43 -223h-151q-61 0 -112 -12.5t-85 -34.5l-20 -13q-57 -40 -69 -106q-3 -12 -3 -21q0 -21 13.5 -41 t36.5 -36q35 -25 80.5 -33.5t105.5 -8.5q54 0 104.5 5t102.5 14q21 4 31 6t19 4q11 3 42 13.5t82 29.5l-43 -219q-5 -1 -9 -2t-9 -3q-50 -14 -95.5 -24t-88.5 -16t-85.5 -8.5t-87.5 -2.5z" />
-<glyph unicode="&#x51a;" d="M535 -29h-27q-218 0 -332.5 123.5t-114.5 383.5q0 86 12.5 186t36 200t57.5 194t77 169q168 293 492 293q103 0 183.5 -30.5t136.5 -92.5t85.5 -157t29.5 -225q0 -86 -12.5 -186t-36.5 -201t-57.5 -196t-75.5 -170q-20 -35 -41 -64.5t-46.5 -56.5t-56 -52t-69.5 -50 l148 -186l-211 -134zM528 233q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166 t123 -59z" />
-<glyph unicode="&#x51b;" d="M709 166q-66 -99 -148.5 -147t-176.5 -48q-73 0 -131.5 28t-99.5 82t-63 131.5t-22 176.5q0 62 8.5 127.5t24 128.5t37.5 121.5t48 107.5q70 130 173.5 202.5t222.5 72.5q109 0 181.5 -62t90.5 -176l68 209h264l-301 -1546h-291zM515 211q63 0 115 40t89.5 105t58.5 146 t21 164q0 124 -44.5 183.5t-115.5 59.5q-63 0 -114 -42t-87.5 -108.5t-56 -149t-19.5 -164.5q0 -121 41 -177.5t112 -56.5z" />
-<glyph unicode="&#x51c;" d="M163 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
-<glyph unicode="&#x51d;" d="M96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
-<glyph unicode="&#x531;" d="M861 -64q-66 35 -124 85q-60 -25 -129 -37.5t-153 -12.5q-140 0 -226.5 35t-133.5 103q-29 42 -44 98t-15 132q0 48 6 100t17 112l183 942h295l-198 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -82 45 -126t131 -44q23 0 44 3q-24 40 -42.5 78t-30.5 72l206 144q10 -32 28 -60.5 t41 -54.5q5 14 8.5 28t6.5 29l198 1016h295l-183 -942q-19 -97 -44.5 -171t-54.5 -128q25 -14 50 -27t51 -26l-220 -263v0z" />
-<glyph unicode="&#x532;" d="M133 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33t224.5 -33t138.5 -104q29 -43 43.5 -100t14.5 -134q0 -47 -5.5 -97t-17.5 -112l-13 -67h-295l27 141q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-100 0 -170 -61.5t-93 -177.5l-66 -342h742l-51 -260 h-742l-80 -414h-294z" />
-<glyph unicode="&#x533;" d="M695 414h-231q-131 0 -216.5 35.5t-132.5 106.5q-29 44 -43 99.5t-14 119.5q0 39 5 91.5t15 105.5q25 135 76.5 239t125.5 173q72 67 173.5 102.5t242.5 35.5q135 0 224.5 -33.5t137.5 -103.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-52 -268h146l-51 -260h-146 l-80 -414h-295zM746 674l66 342q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-130.5 44.5q-101 0 -170 -62t-92 -177l-19 -96q-4 -18 -5.5 -35.5t-1.5 -31.5q0 -27 6.5 -57t23.5 -56q19 -28 54 -47t91 -19h215z" />
-<glyph unicode="&#x534;" d="M807 1016q4 18 5.5 36t1.5 33q0 82 -44.5 126t-129.5 44q-103 0 -172 -63t-91 -176l-27 -141h-295l13 67q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-52 -268h146l-51 -260h-146l-80 -414 h-295z" />
-<glyph unicode="&#x535;" d="M460 -29q-140 0 -227 34.5t-135 103.5q-29 42 -44 98t-15 132q0 48 6 100t17 112l183 942h295l-72 -373h725l-34 -260h-742l-74 -383q-4 -18 -5.5 -36t-1.5 -33q0 -82 44.5 -126t129.5 -44q103 0 172 63t91 176l27 141h295l-13 -67q-29 -148 -79 -258.5t-128 -183.5 q-76 -71 -178 -104.5t-237 -33.5z" />
-<glyph unicode="&#x536;" d="M23 331h295l-14 -71q82 1 171.5 47.5t170.5 131.5q38 40 73.5 88.5t66 105.5t54 122.5t38.5 138.5q17 85 17 153q0 104 -45 156t-140 52q-55 0 -104 -18.5t-88 -57.5t-68.5 -100.5t-44.5 -143.5l-11 -60h-295l4 22q27 146 81 262t135.5 196.5t191.5 123.5t248 43 q134 0 228 -41.5t148 -126.5q31 -50 48 -116t17 -156q0 -41 -4.5 -87.5t-17.5 -106.5q-16 -73 -47 -156t-92 -176q-56 -85 -136.5 -164.5t-185.5 -131.5h279l-50 -260h-986z" />
-<glyph unicode="&#x537;" d="M287 1493h295l-73 -373h714l-50 -260h-714l-117 -600h575l-51 -260h-869z" />
-<glyph unicode="&#x538;" d="M133 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33t224.5 -33t138.5 -104q29 -43 43.5 -100t14.5 -134q0 -47 -5.5 -97t-17.5 -112l-13 -67h-295l27 141q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177l-147 -756h742l-50 -260 h-1036z" />
-<glyph unicode="&#x539;" d="M609 -29q-78 0 -139 25t-96 79q-45 68 -45 180q0 34 4 75t12 83q21 113 64.5 201.5t99.5 146.5q111 114 278 114h107l28 141q5 23 7.5 48t2.5 46q0 32 -7.5 61t-24.5 52q-26 35 -75.5 53.5t-125.5 18.5t-132 -18.5t-96 -53.5t-64.5 -87.5t-37.5 -119.5l-198 -1016h-253 l183 942q29 151 82.5 261t134.5 182q80 71 185 104t240 33t227.5 -33t145.5 -104q67 -89 67 -243q0 -46 -5.5 -97.5t-16.5 -102.5l-14 -67h87l-50 -260h-87l-39 -202q-20 -106 -61.5 -188.5t-100.5 -139.5q-117 -114 -287 -114zM661 218q28 0 51 10.5t40 34.5q32 44 53 150 l39 202h-107q-56 0 -101 -48t-63 -154q-4 -23 -6.5 -49t-2.5 -43q0 -50 25 -76.5t72 -26.5z" />
-<glyph unicode="&#x53a;" d="M398 -29q-137 0 -226 34.5t-138 103.5q-61 86 -61 227q0 80 20 186q25 131 72.5 236t126.5 180q74 71 172.5 106t230.5 35h231l80 414h295l-80 -414h146l-51 -260h-146l-52 -268q-30 -155 -81 -264t-125 -178q-76 -71 -178 -104.5t-236 -33.5zM446 238q103 0 172 63.5 t91 175.5l66 342h-215q-51 0 -94 -17.5t-77 -49.5q-68 -65 -91 -179l-19 -96q-4 -18 -5.5 -35.5t-1.5 -32.5q0 -82 44.5 -126.5t129.5 -44.5z" />
-<glyph unicode="&#x53b;" d="M286 1493h295l-78 -400q26 12 51.5 21t53.5 15t59.5 9t70.5 3q123 0 213 -33t139 -104q58 -85 58 -230q0 -51 -6.5 -103t-17.5 -110l-13 -67h-295l28 141q4 18 5.5 35.5t1.5 32.5q0 83 -45 127t-131 44q-102 0 -169 -60.5t-88 -167.5l-128 -646h-294z" />
-<glyph unicode="&#x53c;" d="M333 1493h295l-240 -1233h631l-51 -260h-926z" />
-<glyph unicode="&#x53d;" d="M664 -27q-107 0 -168.5 27.5t-90.5 85.5q-26 53 -26 140q0 46 6.5 101t19.5 120l84 433h-129l-171 -880h-253l289 1493h254l-72 -373h383l-139 -715q-6 -32 -9 -56.5t-3 -45.5q0 -32 7 -52q8 -23 24 -33t40 -10t42.5 10t33.5 33t27.5 60t23.5 94l139 715h254l-131 -673 q-22 -112 -52.5 -206t-81.5 -155q-51 -60 -124.5 -86.5t-176.5 -26.5z" />
-<glyph unicode="&#x53e;" d="M480 -29q-77 0 -139 12.5t-110 35.5t-83 55.5t-58 72.5q-29 50 -42 110t-13 131q0 94 23 209q11 54 25.5 105t34 101.5t44.5 100.5t57 103h-134l95 486h237l-48 -245h46q66 63 139 113.5t151 85.5t158 54t159 19q45 0 91 -5.5t88 -16.5t75 -24t48 -26l-62 -317 q-19 30 -51.5 56t-72.5 45t-84.5 29.5t-90.5 10.5q-47 0 -92 -11t-90 -31q118 -22 203 -72.5t134 -127.5q34 -53 51 -118t17 -136q0 -36 -4.5 -82.5t-12.5 -92.5q-11 -62 -31 -123.5t-47 -119t-61 -108.5t-74 -93q-39 -41 -88 -75t-108 -59t-128.5 -38.5t-151.5 -13.5z M533 228q87 0 141.5 24t89.5 71q33 45 54 111.5t40 166.5q8 44 12.5 77t4.5 67q0 44 -8 79.5t-26 63.5q-32 49 -106.5 80t-205.5 37q-32 -47 -57 -94t-44.5 -96.5t-35 -103.5t-28.5 -114q-12 -57 -20 -112t-8 -96q0 -42 10 -71q16 -46 60 -68t127 -22z" />
-<glyph unicode="&#x53f;" d="M763 400q-26 -11 -51 -20t-53 -15t-60 -9.5t-72 -3.5q-130 0 -216 35t-134 103q-59 84 -59 229q0 93 24 213l109 561h295l-124 -635q-4 -18 -5.5 -36t-1.5 -33q0 -82 45 -126t131 -44q101 0 168 59.5t89 168.5l55 273h295l-218 -1120h-295z" />
-<glyph unicode="&#x540;" d="M239 251q-49 21 -92 47t-73 58q-23 24 -37.5 54.5t-14.5 67.5q0 16 3 34q11 64 83 149.5t214 188.5q106 77 244.5 159t292.5 160l-123 324h340l163 -420h-2l1 -1q-29 -12 -65 -28.5t-75 -35t-78 -38l-75 -37.5q-45 -23 -82.5 -42.5t-70.5 -37.5t-62.5 -35t-59.5 -34 q-62 -36 -114 -69t-85 -58q-40 -29 -60 -54q-23 -27 -23 -46q0 -12 8 -20q11 -11 26 -18l632 -283l-61 -311z" />
-<glyph unicode="&#x541;" d="M778 -64q-22 48 -45.5 92t-46.5 86q-97 -75 -195 -108t-197 -33q-165 0 -242 83q-29 31 -44 71.5t-15 91.5q0 22 2.5 42.5t5.5 36.5q15 79 52.5 141.5t92.5 105.5t124.5 65.5t147.5 22.5q90 0 167.5 -29t146.5 -83q27 45 49 87.5t39.5 86t31 88.5t23.5 95q19 95 19 165 q0 42 -6.5 74.5t-18.5 56.5q-22 44 -61 62.5t-98 18.5q-51 0 -98.5 -15.5t-88.5 -56.5t-72.5 -109t-51.5 -173l-5 -26h-295l5 26q17 90 43 163.5t59 133.5t71.5 106.5t80.5 81.5q89 74 192.5 105t212.5 31q114 0 205 -33.5t150 -108.5q40 -51 61.5 -123t21.5 -166 q0 -48 -5.5 -100.5t-16.5 -105.5q-16 -79 -41 -152t-60 -145q-33 -68 -75.5 -134t-91.5 -126q38 -57 69 -117.5t57 -124.5zM350 226q42 0 90 17.5t100 61.5q-39 35 -82.5 55t-83.5 20t-62.5 -20.5t-30.5 -56.5q-3 -12 -3 -23q0 -29 17.5 -41.5t54.5 -12.5z" />
-<glyph unicode="&#x542;" d="M807 1016q4 18 5.5 36t1.5 33q0 82 -44.5 126t-129.5 44q-103 0 -172 -63t-91 -176l-27 -141h-295l13 67q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-133 -682h146l-50 -260h-441z" />
-<glyph unicode="&#x543;" d="M232 0q-66 0 -120.5 15.5t-89.5 47.5q-28 26 -40.5 61t-12.5 76q0 15 1.5 32t5.5 36q6 30 23.5 78.5t56.5 118.5q32 57 74.5 119t97.5 134q48 62 100.5 126t105.5 125l-199 524h331l106 -279q76 69 153.5 125t156.5 96t160 61.5t166 21.5l-51 -265q-38 0 -83.5 -9.5 t-104.5 -41.5t-132.5 -89t-167.5 -153l281 -742l-42 -218h-776zM702 265l-166 436l-81 -99q-37 -45 -66 -87t-50 -78t-33.5 -64.5t-16.5 -47.5q0 -2 -0.5 -3t-0.5 -6q0 -30 28.5 -40.5t85.5 -10.5h300z" />
-<glyph unicode="&#x544;" d="M408 -29q-135 0 -224.5 33.5t-137.5 104.5q-29 43 -43.5 100t-14.5 133q0 49 6 100.5t17 108.5l182 942h295l-197 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -81 44.5 -125.5t129.5 -44.5q101 0 170.5 62t92.5 177l197 1016h441l-50 -260h-146l-133 -682q-30 -155 -80.5 -263.5 t-125.5 -178.5q-76 -71 -178.5 -104.5t-237.5 -33.5z" />
-<glyph unicode="&#x545;" d="M509 -29q-70 0 -127 10.5t-102.5 29t-80.5 44.5t-60 56q-41 48 -61 108t-20 126q0 44 9 91l1 9h298l-1 -9q-2 -11 -3 -21.5t-1 -19.5q0 -62 34 -105q23 -29 62 -46.5t99 -17.5t107.5 18t80.5 49q30 28 52 69t31 92q2 13 3.5 25t1.5 25q0 73 -49.5 115.5t-146.5 42.5h-603 l51 260h603q48 0 84 15t62 40q50 47 65 123q2 12 3.5 22.5t1.5 22.5q0 60 -38 89t-110 29q-173 0 -208 -169h-298q19 100 68.5 178.5t122.5 133.5q75 56 168 84t195 28q106 0 186.5 -29.5t133.5 -84.5q40 -42 61 -96t21 -120q0 -43 -9 -88q-22 -111 -76.5 -180.5 t-133.5 -107.5q49 -23 81 -59t49 -84q19 -53 19 -118q0 -27 -2.5 -50.5t-7.5 -46.5q-19 -97 -65.5 -184t-127.5 -156q-79 -67 -184 -105t-239 -38z" />
-<glyph unicode="&#x546;" d="M541 -29q-140 0 -227 34.5t-135 103.5q-30 44 -44.5 101t-14.5 133q0 49 6 100t17 108l133 682h-146l50 260h441l-197 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -82 44.5 -126t129.5 -44q103 0 172 63t91 176l27 141h295l-13 -67q-29 -148 -79 -258.5t-128 -183.5 q-76 -71 -178 -104.5t-237 -33.5z" />
-<glyph unicode="&#x547;" d="M469 -27q-116 0 -208 35t-150 111q-39 51 -60.5 122.5t-21.5 162.5q0 45 5 97t16 105q26 131 78.5 231t117.5 175q66 75 134.5 121.5t125.5 58.5q-20 9 -47.5 16.5t-54.5 12.5q-28 5 -51.5 8t-34.5 3h-93l51 261h165q22 0 56 -3t68 -9q16 -3 35 -7.5t37.5 -10t35 -11 t28.5 -10.5l463 -211l-60 -311l-275 126q-7 3 -23 8.5t-34 9.5q-18 3 -36.5 5.5t-34.5 2.5q-56 0 -108.5 -35.5t-100.5 -101.5t-81 -148.5t-53 -180.5q-18 -92 -18 -158q0 -41 6.5 -72.5t18.5 -55.5q22 -43 62 -61.5t95 -18.5q54 0 103 18t89 59q46 47 73 116.5t49 168.5 l4 18h295l-4 -18q-39 -176 -98.5 -294.5t-150.5 -195.5q-89 -74 -196.5 -106.5t-216.5 -32.5z" />
-<glyph unicode="&#x548;" d="M141 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-183 -942h-295l197 1016q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177l-197 -1016h-294z" />
-<glyph unicode="&#x549;" d="M77 265l60 310l269 -124q24 -11 60.5 -19.5t66.5 -8.5q63 0 116.5 39t102.5 112q47 69 82.5 159t58.5 202q9 61 9 111q0 106 -43.5 157.5t-139.5 51.5q-57 0 -106 -18.5t-88 -57.5q-43 -42 -69.5 -103t-42.5 -141l-12 -60h-295l5 22q32 144 83.5 260t129.5 197t186 124.5 t254 43.5q142 0 233.5 -41.5t144.5 -120.5q69 -104 69 -266q0 -42 -4.5 -87t-14.5 -95q-26 -134 -76 -237t-111 -181q-62 -78 -127 -128.5t-120 -72.5l134 -66l-59 -307z" />
-<glyph unicode="&#x54a;" d="M961 935q8 42 12 78t4 66q0 84 -31 134.5t-103 62.5l-162 -834h-254l162 833q-52 -9 -91.5 -34t-69.5 -66.5t-51 -101t-37 -138.5l-24 -120h-254l21 104q12 60 30 118.5t44 114t61 106.5t81 94q87 81 203.5 123.5t266.5 42.5q155 0 254.5 -44t150.5 -123 q31 -48 44.5 -108t13.5 -130q0 -88 -20 -194l-179 -919h-254z" />
-<glyph unicode="&#x54b;" d="M28 331h295l-13 -70q51 0 98 16.5t92 42.5q22 52 36.5 99.5t14.5 87.5q0 21 -5 39.5t-17 33.5q-23 26 -48.5 32.5t-61.5 8.5q-23 1 -55 2.5t-66 7t-68 17t-62 32.5q-43 33 -57.5 76t-14.5 83q0 28 4.5 62t12.5 69q14 66 36.5 123.5t60.5 120.5q36 58 87.5 113t124.5 100 q66 40 149.5 65.5t197.5 25.5q195 0 304 -87q54 -43 84 -101t41 -125q5 -26 6.5 -53t1.5 -54q0 -60 -6.5 -112t-15.5 -95q-20 -97 -57 -183.5t-93 -166.5t-135 -155t-176 -125h279l-51 -261h-986zM745 557q14 20 27 43t25 45.5t21.5 44t16.5 38.5q18 45 29 84t18 73 q8 41 13 81t5 77q0 54 -12 98q-14 49 -54 81.5t-118 32.5q-72 0 -126.5 -27t-92.5 -69q-37 -41 -59 -90.5t-31 -94.5q-3 -23 -3 -39q0 -50 39 -68q15 -7 29 -8t31 -2q25 -1 52 -4.5t53 -11t50.5 -21t44.5 -33.5q26 -26 41 -62t15 -82q0 -10 -1 -22.5t-4 -26.5q-3 -21 -9 -37 z" />
-<glyph unicode="&#x54c;" d="M118 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-52 -268h146l-51 -260h-146l-80 -414h-295l197 1016q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177 l-197 -1016h-294z" />
-<glyph unicode="&#x54d;" d="M467 -29q-139 0 -226.5 35t-134.5 103q-29 42 -44 98t-15 132q0 48 6 100t17 112l183 942h295l-197 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -81 44.5 -125.5t129.5 -44.5q101 0 170.5 62t92.5 177l197 1016h295l-183 -942q-30 -155 -81 -264t-125 -178q-73 -69 -175 -103.5 t-242 -34.5z" />
-<glyph unicode="&#x54e;" d="M690 400q-26 -12 -52 -21t-53.5 -15t-59.5 -9t-70 -3q-125 0 -214 34t-137 104q-29 43 -43.5 99.5t-14.5 133.5q0 47 5.5 97t17.5 112l13 67h295l-28 -141q-4 -18 -5.5 -35.5t-1.5 -32.5q0 -82 45 -126.5t131 -44.5q96 0 165 57t92 171l128 646h295l-240 -1233h146 l-51 -260h-441z" />
-<glyph unicode="&#x54f;" d="M482 -29q-125 0 -215 34.5t-147 97.5q-84 93 -84 240q0 24 2.5 50t7.5 54h307q-9 -45 -9 -80q0 -41 10.5 -67.5t29.5 -43.5q28 -26 65.5 -33.5t72.5 -7.5q62 0 104.5 16.5t73.5 49.5q32 34 48 77.5t17 88.5q0 22 -4 40t-14 33.5t-27.5 30.5t-44.5 30q-22 13 -46 24 t-53 23q-68 28 -120.5 52t-101.5 57q-55 38 -90 85.5t-49 115.5q-4 17 -5.5 35t-1.5 35q0 52 11.5 99t25.5 83q19 48 48 93.5t74 90.5q40 39 95.5 73t134.5 54q36 9 75 14t90 5q130 0 217.5 -32t137.5 -87q37 -41 54 -91t17 -107q0 -20 -2 -41t-6 -42h-300q4 19 4 38 q0 35 -12.5 56.5t-32.5 34.5q-26 17 -60 21.5t-60 4.5q-38 0 -70 -7.5t-60 -25.5t-49 -47.5t-30 -74.5q-3 -15 -3 -28q0 -34 18 -64t63 -59q25 -16 53 -29.5t48 -21.5q22 -9 52 -21.5t61.5 -27t62.5 -31t55 -32.5q53 -35 93.5 -87.5t54.5 -123.5q6 -32 6 -68q0 -67 -20 -143 t-58 -141q-47 -81 -122 -142.5t-175 -95.5q-99 -34 -217 -34z" />
-<glyph unicode="&#x550;" d="M171 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33t224.5 -33t138.5 -104q29 -43 43.5 -100t14.5 -134q0 -47 -5.5 -97t-17.5 -112l-13 -67h-295l27 141q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177l-197 -1016h-294z" />
-<glyph unicode="&#x551;" d="M509 -27q-131 0 -222 36.5t-148 103.5q-41 48 -61 108t-20 126q0 44 9 91l1 9h298l-1 -9q-2 -11 -3 -21.5t-1 -19.5q0 -62 34 -105q23 -29 62 -46.5t100 -17.5q56 0 103 16.5t85 51.5q37 34 55.5 74.5t26.5 85.5q2 11 3 22.5t1 21.5q0 28 -7.5 53t-27.5 48 q-24 28 -63 44.5t-96 16.5h-604l51 260h182q-12 28 -17.5 56t-5.5 55q0 32 6 62q17 90 62.5 167.5t122.5 137.5q72 57 163.5 87.5t206.5 30.5q113 0 193.5 -30t131.5 -87q74 -83 74 -212q0 -46 -9 -95q-17 -93 -69 -167.5t-140 -114.5q54 -26 86 -67.5t47 -89.5 q8 -27 12 -55.5t4 -54.5q0 -24 -2.5 -46t-6.5 -43q-18 -98 -65.5 -185t-127.5 -155t-185 -105.5t-238 -37.5zM687 922q50 0 85.5 14t61.5 38q26 25 40.5 55t21.5 65q5 28 5 50q0 20 -4 37.5t-13 31.5q-14 21 -44.5 35.5t-85.5 14.5q-51 0 -87.5 -13.5t-60.5 -36.5t-39 -56.5 t-20 -62.5q-2 -14 -3.5 -26.5t-1.5 -25.5q0 -41 17 -68q15 -24 46 -38t82 -14z" />
-<glyph unicode="&#x552;" d="M287 1493h295l-73 -373h714l-50 -260h-714l-168 -860h-294z" />
-<glyph unicode="&#x553;" d="M368 138q-135 6 -213.5 52.5t-114.5 128.5q-18 41 -26 89.5t-8 100.5t7 119.5t20 136.5q25 134 70 247t111 190q71 84 167.5 124t226.5 45l24 122h255l-24 -122q135 -5 214.5 -48t117.5 -121q20 -42 28.5 -90t8.5 -99t-7 -115.5t-20 -132.5q-26 -140 -71.5 -253.5 t-112.5 -194.5q-65 -79 -160 -126.5t-238 -53.5l-27 -137h-255zM564 1143q-74 -3 -119.5 -24.5t-74.5 -66.5q-31 -48 -48 -117.5t-37 -169.5q-14 -73 -23.5 -129.5t-9.5 -105.5q0 -35 6 -62q11 -49 47 -74t108 -28zM668 366q78 3 123.5 30.5t72.5 72.5q29 49 48 124t38 172 q14 74 23.5 132t9.5 101q0 30 -6 54q-12 46 -49 67t-109 24z" />
-<glyph unicode="&#x554;" d="M79 154h-145l50 260h145l125 643q20 106 66 189t115 142q72 62 170.5 96t226.5 34q130 0 216 -35.5t135 -97.5q35 -45 51 -100t16 -117q0 -28 -3 -56t-8 -57q-18 -97 -64 -182t-121 -149q-78 -66 -177 -99.5t-211 -33.5q-48 0 -96 9t-102 40l-44 -226h669l-50 -260h-669 l-30 -154h-295zM708 846q56 0 95 14.5t66 41.5t43.5 66t25.5 87q4 20 6 37.5t2 34.5q0 48 -19 79q-17 28 -51 42q-35 15 -93 15q-59 0 -98.5 -15t-66.5 -42t-43 -65t-25 -84q-8 -40 -8 -70q0 -49 21 -82q17 -28 52 -43.5t93 -15.5z" />
-<glyph unicode="&#x555;" d="M497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5 q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
-<glyph unicode="&#x556;" d="M466 -29q-129 0 -218 19.5t-147 56.5t-87 89.5t-38 118.5q-2 17 -3.5 35.5t-1.5 40.5q0 51 7.5 109t20.5 122h250q-12 -60 -19.5 -109t-7.5 -86q0 -20 2 -35t6 -29q13 -45 50.5 -66t106.5 -24l131 677q-179 8 -260 82q-60 55 -60 152q0 19 2 34.5t5 31.5q15 78 46 135 t85 95t131.5 55.5t188.5 17.5h234l-72 -375q137 -5 217 -44.5t117 -107.5q21 -38 30.5 -85.5t9.5 -95.5q0 -40 -6 -100.5t-17 -122.5q-14 -75 -38.5 -156.5t-59.5 -150.5q-32 -63 -81.5 -116.5t-124.5 -91.5q-73 -37 -171.5 -56.5t-227.5 -19.5zM591 1263q-36 0 -60 -5 t-39 -14q-15 -10 -22 -23.5t-10 -30.5q-1 -5 -1.5 -10.5t-0.5 -10.5q0 -19 14 -30q11 -9 33 -13.5t58 -4.5zM642 213q75 3 120 25t73 65t45 108.5t34 150.5q12 61 19.5 108.5t7.5 84.5q0 34 -7 56q-12 38 -49 57t-112 22z" />
-<glyph unicode="&#x559;" d="M771 986q-61 0 -108 22t-78 61q-25 32 -36.5 69t-11.5 77q0 69 32 137t95 121q45 38 100 60.5t118 22.5l-30 -154q-30 0 -58.5 -13t-51 -34.5t-36 -49.5t-13.5 -59q0 -45 30 -75.5t78 -30.5l-30 -154v0z" />
-<glyph unicode="&#x55a;" d="M519 1224l53 271h313l-53 -271l-270 -383h-216z" />
-<glyph unicode="&#x55b;" d="M592 1638h403l-441 -376h-318z" />
-<glyph unicode="&#x55c;" d="M81 1265q17 76 54.5 139.5t90.5 111.5t118.5 79.5t140.5 45.5q92 17 158.5 32t124.5 39q55 23 86.5 49t44.5 68h251q-11 -63 -36.5 -125.5t-69.5 -119.5q-24 -30 -49.5 -53t-56 -40.5t-68 -31t-84.5 -25.5q-43 -11 -80.5 -17t-80.5 -14q-82 -15 -142.5 -31t-101.5 -42 t-48 -65h-252v0z" />
-<glyph unicode="&#x55d;" d="M309 1638h403l210 -376h-318z" />
-<glyph unicode="&#x55e;" d="M777 1209q-55 0 -100.5 13t-79.5 40q-32 26 -52 66t-20 100v12.5t1 13.5h165q0 -32 23.5 -46.5t57.5 -14.5q30 0 48.5 9t32.5 23q18 17 24 33t11 37q2 7 2 10.5v5.5q0 32 -11.5 50t-34.5 32q-26 16 -62 23.5t-78 7.5q-82 0 -160 -27t-146 -76t-117 -113.5t-72 -142.5 h-194q21 90 63.5 168t101.5 144q60 68 131 119t149 86q79 36 160 55t165 19q102 0 179 -27.5t125 -75.5q76 -76 76 -188q0 -15 -1.5 -31.5t-5.5 -33.5q-12 -57 -42 -108t-80 -93q-49 -41 -113.5 -65.5t-145.5 -24.5z" />
-<glyph unicode="&#x55f;" d="M216 1556h140l-33 -169h716l-24 -122h-856z" />
-<glyph unicode="&#x561;" d="M201 -27q-70 0 -115.5 25t-62.5 75q-13 36 -13 104q0 58 9 135t29 177l123 631h240l-140 -719q-8 -44 -12.5 -76t-4.5 -56q0 -10 1 -19t3 -17q7 -24 21 -32.5t39 -8.5q26 0 44.5 9t34.5 34t28 64.5t24 101.5l140 719h237l-140 -719q-16 -80 -16 -129q0 -11 1 -20t3 -17 q6 -22 20 -32.5t43 -10.5q24 0 42.5 8.5t33.5 32.5t27 64.5t24 103.5l140 719h240l-218 -1120h-213l23 116q-18 -32 -43 -58t-55 -45t-63 -29.5t-67 -10.5q-36 0 -65.5 11t-52.5 30q-21 17 -35.5 41.5t-14.5 56.5q-50 -77 -108 -108t-131 -31z" />
-<glyph unicode="&#x562;" d="M266 1120h291l-33 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-54 -277h-291l45 232q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-81 -416h644l-44 -225h-644l-82 -426h-290z" />
-<glyph unicode="&#x563;" d="M676 158q-75 -96 -154 -141.5t-177 -45.5q-95 0 -163 39t-106 114q-23 44 -34.5 98.5t-11.5 123.5q0 95 23 213q26 135 73 244t119 190q69 78 149.5 116t173.5 38q106 0 169.5 -49t92.5 -146l62 168h263l-174 -895h109l-44 -225h-109l-82 -426h-292zM482 215 q50 0 91.5 24.5t76.5 68.5q34 43 60.5 104t43.5 149q7 37 10.5 69.5t3.5 62.5q0 71 -20 122q-37 92 -132 92q-94 0 -166 -92q-35 -45 -62 -109t-42 -145q-6 -32 -10 -68t-4 -68q0 -35 5 -64.5t14 -53.5q35 -92 131 -92z" />
-<glyph unicode="&#x564;" d="M763 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-125 -641h-291l218 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-98 -502h128l-44 -225h-128l-82 -426h-291z" />
-<glyph unicode="&#x565;" d="M348 -29q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l227 1165h293l-85 -436h654l-44 -225h-654l-89 -459q-12 -60 -12 -103q0 -122 108 -122q84 0 142.5 67t84.5 199l47 243h293l-140 -720h-293l32 166q-50 -95 -133.5 -145t-192.5 -50z" />
-<glyph unicode="&#x566;" d="M686 158q-75 -96 -154 -141.5t-177 -45.5q-95 0 -163 39t-106 114q-23 44 -34.5 98.5t-11.5 123.5q0 95 23 213q26 135 73 244t119 190q69 78 149.5 116t173.5 38q106 0 169.5 -49t92.5 -146l62 168h263l-257 -1321h109l-43 -225h-401zM492 215q50 0 91.5 24.5t76.5 68.5 q34 43 60.5 104t43.5 149q7 37 10.5 69.5t3.5 62.5q0 71 -20 122q-37 92 -132 92q-94 0 -166 -92q-35 -45 -62 -109t-42 -145q-6 -32 -10 -68t-4 -68q0 -35 5 -64.5t14 -53.5q35 -92 131 -92z" />
-<glyph unicode="&#x567;" d="M331 1556h293l-85 -436h579l-44 -225h-579l-130 -670h494l-44 -225h-787z" />
-<glyph unicode="&#x568;" d="M266 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-142 -727h-291l133 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-164 -842h644l-43 -225h-934z" />
-<glyph unicode="&#x569;" d="M201 1120h262l-4 -168q25 46 67.5 82.5t94.5 61.5q51 25 107.5 38t110.5 13q51 0 101 -12.5t92 -40.5t73 -72.5t48 -110.5q8 -33 12 -71.5t4 -78.5q0 -92 -22 -202h69l-28 -143h-77q-40 -132 -96.5 -217t-121.5 -136t-132.5 -71.5t-133.5 -20.5q-74 0 -126 20.5t-84 55.5 q-51 56 -51 144q0 30 6 63q14 79 52.5 136t89.5 95t109.5 56t120.5 18h102q8 38 13 77t5 77q0 47 -10 81q-15 52 -57.5 83.5t-109.5 31.5q-55 0 -99.5 -20.5t-77.5 -49.5q-40 -35 -70 -86.5t-41 -111.5l-207 -1067h-290zM653 107q34 0 58.5 13t42.5 48q17 33 29.5 85.5 t28.5 132.5l6 30h-102q-32 0 -57 -11t-46 -29q-26 -22 -43.5 -51.5t-25.5 -70.5q-2 -11 -3 -21t-1 -18q0 -38 16 -64q13 -20 36.5 -32t60.5 -12z" />
-<glyph unicode="&#x56a;" d="M406 -29q-90 0 -156 22t-114 62t-76.5 94t-41.5 120q-5 29 -8 59t-3 62q0 79 17 167q22 114 69 215.5t124 180.5q78 81 180 124t233 43h205l85 436h292l-85 -436h109l-44 -225h-109l-66 -338q-16 -81 -42.5 -154t-62.5 -134q-39 -66 -90.5 -121t-111.5 -93 q-63 -40 -138.5 -62t-165.5 -22zM452 211q57 0 101.5 25t78.5 73q32 45 55 108t38 140l66 338h-205q-57 0 -100.5 -23t-75.5 -67t-55 -106t-38 -141q-8 -44 -12.5 -83t-4.5 -73q0 -27 3 -51.5t10 -44.5q15 -46 49 -70.5t90 -24.5z" />
-<glyph unicode="&#x56b;" d="M359 1556h291l-117 -604q48 92 131.5 143.5t196.5 51.5q125 0 189 -66t64 -200q0 -35 -4.5 -73t-12.5 -81l-141 -727h-291l132 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-84 0 -143 -68.5t-85 -199.5l-207 -1067h-290z" />
-<glyph unicode="&#x56c;" d="M508 1120h291l-257 -1321h286l-44 -225h-577z" />
-<glyph unicode="&#x56d;" d="M261 1556h237l-98 -512q42 57 93 80t108 23q19 0 44.5 -4t49.5 -18q21 -13 41 -40t30 -76q4 -20 6 -42.5t2 -50.5q0 -39 -5 -88t-16 -109l-60 -318q-8 -43 -12.5 -75t-4.5 -56q0 -22 4 -35q7 -24 21.5 -33.5t41.5 -9.5q26 0 43.5 9t32.5 32t27.5 63.5t24.5 104.5l139 719 h240l-217 -1120h-213l22 116q-41 -69 -101.5 -106t-135.5 -37q-23 0 -46 4.5t-45 17.5q-24 14 -42.5 40.5t-28.5 76.5q-4 20 -6 42t-2 50q0 40 5 88.5t16 108.5l60 318q8 43 12.5 74.5t4.5 56.5q0 10 -1 19t-3 17q-6 21 -19.5 31.5t-42.5 10.5q-25 0 -43.5 -9t-33.5 -32 t-27.5 -63.5t-24.5 -104.5l-222 -1145h-239z" />
-<glyph unicode="&#x56e;" d="M465 -29q-125 0 -214.5 41.5t-141.5 122.5q-35 55 -51 122t-16 140q0 37 4 77.5t12 84.5q17 88 49 168t82 148q49 67 113 117t148 82l-177 138l314 344l190 -144l-124 -137l203 -155h337l-44 -225h-91q22 -51 34.5 -107t12.5 -122q0 -31 -2.5 -56t-7.5 -51 q-23 -127 -78 -234.5t-140 -188.5q-88 -85 -190 -125t-222 -40zM507 211q63 0 110 28t82 73q37 48 63 112t40 135q5 28 8 52.5t3 47.5q0 27 -4 51t-11 45q-13 38 -37 68t-58 56l-21 16h-42q-56 0 -102.5 -23.5t-83.5 -67t-63 -105.5t-40 -140q-6 -32 -10 -69t-4 -69 t4.5 -61.5t14.5 -53.5q19 -46 56.5 -70.5t94.5 -24.5z" />
-<glyph unicode="&#x56f;" d="M696 166q-50 -95 -133.5 -145t-192.5 -50q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l226 1165h293l-218 -1120q-12 -60 -12 -102q0 -63 27.5 -93t82.5 -30q88 0 144.5 70.5t80.5 195.5l125 643h293l-300 -1546h-293z" />
-<glyph unicode="&#x570;" d="M358 1556h291l-116 -604q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -29 96.5t-83 30.5q-85 0 -142.5 -71t-83.5 -207l-121 -629h-293z" />
-<glyph unicode="&#x571;" d="M342 -29q-49 0 -87.5 9.5t-68.5 26.5t-51 40.5t-35 51.5q-17 35 -25 76t-8 88q0 66 15 140q17 85 55.5 175t105.5 190q63 93 143 181.5t179 170.5q-60 1 -99 20t-60 49q-15 21 -22 46t-7 51q0 13 1.5 25.5t3.5 24.5q8 39 25.5 76t41.5 65l67 79h289l-74 -85 q-22 -25 -34 -48.5t-18 -48.5q-1 -6 -1.5 -12t-0.5 -12q0 -34 21.5 -55t54.5 -21q14 0 24 4t23 12l134 79l-44 -249q-19 -10 -38 -21t-38 -24q89 -54 140 -114.5t74 -126.5q12 -35 17 -72.5t5 -73.5q0 -38 -5 -80t-14 -88l-101 -520h-293l32 166q-24 -46 -58.5 -81.5 t-72.5 -59.5q-42 -26 -90 -40t-106 -14zM507 211q48 0 85 24t65 62q27 38 45 84t27 91l17 86q7 34 11 69.5t4 68.5q0 38 -6 71q-10 52 -40 92t-84 65q-48 -47 -90 -108.5t-75.5 -127.5t-56 -132t-30.5 -121q-2 -16 -4 -34.5t-2 -34.5q0 -23 4.5 -45.5t13.5 -41.5 q15 -31 44.5 -49.5t71.5 -18.5z" />
-<glyph unicode="&#x572;" d="M773 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-125 -641h-291l218 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-181 -928h128l-43 -225h-419z" />
-<glyph unicode="&#x573;" d="M365 -29q-91 0 -149.5 36t-90.5 105q-17 37 -25 81t-8 92q0 38 4 76t12 78q10 53 26 110.5t37 116t46.5 116.5t54.5 113h-105l44 225h205q70 92 145 163t159 124q83 52 170.5 81t178.5 29q14 0 30.5 -1t34.5 -4q9 -2 28.5 -6.5t30.5 -14.5l-49 -248q-20 15 -39.5 24 t-37.5 14q-16 4 -27 5t-22 1q-47 0 -88 -13t-79 -37q-40 -25 -76 -58t-70 -73q97 -20 172 -70t123 -119q35 -52 53.5 -112t18.5 -126q0 -46 -9 -92l-114 -587h-293l32 166q-49 -94 -133 -144.5t-190 -50.5zM520 211q91 0 148 71t81 195l31 160q3 16 3 33q0 31 -10 63t-31 61 q-27 37 -73 63.5t-107 34.5q-27 -52 -51 -106t-43 -106.5t-33 -100.5t-21 -88q-7 -36 -10 -69t-3 -57q0 -39 8 -69q9 -34 24 -50t31 -24q17 -8 32 -9.5t24 -1.5z" />
-<glyph unicode="&#x574;" d="M318 -29q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l142 729h293l-133 -684q-12 -60 -12 -103q0 -122 109 -122q84 0 142 67.5t84 198.5l210 1079h421l-44 -225h-128l-259 -1331h-264l3 166q-50 -95 -133.5 -145t-192.5 -50z" />
-<glyph unicode="&#x575;" d="M-34 -199h234q98 0 150 55q27 29 45.5 75t31.5 112l210 1077h293l-210 -1077q-24 -125 -62.5 -214t-98.5 -146q-58 -57 -136.5 -82t-184.5 -25h-316z" />
-<glyph unicode="&#x576;" d="M395 -27q-125 0 -189.5 66.5t-64.5 200.5q0 35 4.5 72.5t12.5 80.5l183 938h-128l43 225h419l-217 -1118q-12 -62 -12 -103q0 -64 27.5 -94t81.5 -30q86 0 144.5 70t83.5 198l125 641h291l-218 -1120h-262l4 168q-51 -95 -135 -145t-193 -50z" />
-<glyph unicode="&#x577;" d="M173 -426q-45 0 -82 15.5t-63 47.5q-17 21 -27.5 48t-10.5 59q0 8 1 18.5t3 20.5q12 58 46 112t88 113q56 61 118.5 116t136.5 115q58 47 101 83t76.5 66t60.5 57t53 56q48 56 77 108.5t40 110.5q2 12 3.5 23t1.5 23q0 56 -30 95q-19 25 -51.5 40.5t-76.5 15.5 q-37 0 -74.5 -12t-71.5 -35q-33 -22 -62 -52.5t-47 -65.5l-179 154q42 57 98.5 101t121.5 75t132 47t140 16q101 0 183.5 -30t134.5 -85q39 -42 59.5 -97t20.5 -122q0 -43 -9 -91t-26.5 -94t-46.5 -93q-27 -44 -69 -94t-103 -109q-32 -31 -67 -62.5t-74.5 -64.5t-83.5 -69.5 t-95 -77.5q-31 -25 -53.5 -44t-41.5 -35.5t-35 -32t-33 -33.5q-27 -29 -43 -51t-16 -38q0 -12 9.5 -17.5t23.5 -5.5h530l-44 -225h-644v0z" />
-<glyph unicode="&#x578;" d="M262 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293z" />
-<glyph unicode="&#x579;" d="M244 -426q-41 0 -75 15.5t-57 44.5q-17 23 -25.5 52t-8.5 63q0 11 1 25t4 28q10 51 35.5 110.5t64.5 127.5q38 66 85.5 134t101.5 134q53 65 109.5 125.5t111.5 111.5q-49 3 -91 23.5t-71 55.5q-23 26 -35 59.5t-12 82.5q0 2 0.5 14t4.5 31q12 61 49.5 126.5t107.5 125.5 l144 123l155 -172l-79 -64q-44 -35 -72 -69.5t-36 -65.5q-3 -14 -3 -26q0 -38 25.5 -62t75.5 -24q35 0 80 13.5t100 42.5l65 -176q-79 -55 -154 -118.5t-144 -132.5q-66 -66 -122 -131.5t-99 -126.5q-84 -120 -102 -198q-2 -10 -3 -18.5t-1 -15.5q0 -23 10 -33t30 -10h450 l-44 -225h-576v0z" />
-<glyph unicode="&#x57a;" d="M782 85q-38 -54 -90.5 -83t-106.5 -29q-34 0 -63.5 11t-52.5 30q-21 17 -35.5 41.5t-14.5 56.5q-51 -77 -108 -108t-131 -31q-65 0 -112 23t-66 77q-13 36 -13 104q0 58 9 135t29 177l123 631h240l-140 -719q-8 -44 -12.5 -76.5t-4.5 -56.5q0 -22 4 -35q5 -26 21.5 -33.5 t36.5 -7.5q29 0 48 10.5t33 32.5q29 44 52 166l140 719h237l-140 -719q-16 -80 -16 -129q0 -11 1 -20t3 -17q7 -24 21 -33.5t41 -9.5q26 0 43.5 9t32.5 32t27.5 63.5t24.5 104.5l140 719h240l-301 -1546h-240z" />
-<glyph unicode="&#x57b;" d="M213 -426q-49 0 -86 17t-60 46q-18 22 -28 48t-10 56q0 8 1 18t3 19q7 30 25.5 70.5t53.5 90.5q38 53 75 90.5t76 72.5q16 15 30.5 29.5t25.5 31t19.5 36t14.5 45.5q2 10 3 20t1 18q0 36 -13.5 64.5t-32.5 52.5q-8 10 -24 29t-30 34q-32 37 -54.5 73t-33.5 88 q-2 11 -3.5 23.5t-1.5 27.5q0 47 13 92.5t34 85.5q27 51 68 96.5t91 80.5q52 37 111.5 62.5t120.5 39.5q32 7 63 10.5t68 3.5q100 0 182.5 -27t136.5 -81q41 -41 62.5 -95t21.5 -123q0 -43 -9 -89q-17 -91 -61 -171.5t-115 -158.5q-68 -75 -165.5 -157t-221.5 -181 q-54 -43 -92 -77t-67 -63q-33 -35 -50.5 -61.5t-17.5 -41.5q0 -20 34 -20h530l-44 -225h-644zM512 312q63 55 109.5 98t81.5 80q18 19 31.5 35t24 30t19 27.5t16.5 28.5q17 32 24.5 56t12.5 53q2 12 3 21t1 20q0 33 -7 55t-18 39q-19 28 -51 45t-73 17q-39 0 -78.5 -15 t-70.5 -36t-57 -51.5t-35 -69.5q-4 -19 -4 -39q0 -32 6.5 -52t16.5 -39q9 -17 16.5 -28t15.5 -22q17 -24 31.5 -48.5t22.5 -52.5q4 -15 4 -29q0 -27 -9.5 -56.5t-32.5 -66.5z" />
-<glyph unicode="&#x57c;" d="M253 1120h262l-4 -168q21 43 56 79.5t73 60.5q42 26 91.5 40.5t106.5 14.5q91 0 151 -34.5t92 -93.5q40 -72 40 -178q0 -29 -3 -57t-8 -57q-14 -74 -43 -147.5t-70 -139.5q-39 -64 -84 -118t-93 -97h258l-44 -225h-515l34 175q56 52 94 100.5t68 104.5q31 57 51.5 118 t33.5 127q5 28 8.5 55t3.5 58q0 24 -2.5 45.5t-9.5 40.5q-14 41 -45 63t-79 22t-84 -21.5t-64 -57.5q-56 -72 -77 -185l-125 -645h-291z" />
-<glyph unicode="&#x57d;" d="M374 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166q-45 -91 -128 -143t-192 -52z" />
-<glyph unicode="&#x57e;" d="M667 166q-50 -95 -133.5 -145t-192.5 -50q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l141 729h293l-133 -684q-12 -60 -12 -102q0 -63 27.5 -93t82.5 -30q88 0 144.5 70.5t80.5 195.5l210 1079h293l-341 -1757h138l-44 -225h-431z" />
-<glyph unicode="&#x57f;" d="M200 -27q-90 0 -132 56t-42 168q0 43 6 92.5t18 111.5l139 719h237l-139 -719q-8 -43 -12.5 -74.5t-4.5 -55.5q0 -10 1 -19t3 -17q7 -25 22 -34t40 -9q23 0 41 8t33 29q16 22 27 56t22 91l145 744h213l-22 -116q38 64 98 103.5t138 39.5q89 0 131.5 -55t42.5 -166 q0 -42 -6 -94t-18 -113l-139 -719h-237l139 719q8 43 12.5 74.5t4.5 56.5q0 10 -1 19t-3 17q-6 21 -20 31.5t-43 10.5q-23 0 -41 -8t-32 -28q-16 -23 -27 -59t-22 -90l-145 -743h-213l22 116q-38 -64 -98 -103.5t-138 -39.5z" />
-<glyph unicode="&#x580;" d="M289 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-142 -727h-291l133 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-84 0 -143 -68.5t-85 -199.5l-207 -1067h-291z" />
-<glyph unicode="&#x581;" d="M408 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5q0 64 11.5 134.5t32 139t49.5 132t64 114.5 q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l65 182h263l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM535 246q60 0 112 36.5t91 97.5t61.5 140t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36t-91 -96.5t-61.5 -139.5t-22.5 -166 q0 -115 39.5 -170t109.5 -55z" />
-<glyph unicode="&#x582;" d="M366 1120h293l-174 -895h563l-43 -225h-856z" />
-<glyph unicode="&#x583;" d="M406 104q-42 -72 -95 -101.5t-114 -29.5q-88 0 -130 56t-42 168q0 43 6 92.5t18 111.5l139 719h237l-139 -719q-8 -43 -12.5 -74.5t-4.5 -55.5q0 -10 1 -19t3 -17q7 -24 21.5 -33.5t34.5 -9.5q16 0 33.5 7t36.5 30t34 58t26 89l229 1180h240l-105 -541q38 65 91 98.5 t120 33.5q86 0 128 -56t42 -166q0 -85 -24 -206l-139 -719h-237l139 719q8 43 12.5 74.5t4.5 56.5q0 10 -1 19t-3 17q-5 16 -17 29t-41 13q-22 0 -39 -9t-34 -32q-19 -26 -33.5 -65.5t-26.5 -102.5l-222 -1145h-240z" />
-<glyph unicode="&#x584;" d="M-5 -358h-109l44 225h109l243 1253h263l-4 -168q132 195 337 195q91 0 159 -37.5t107 -117.5q22 -45 33 -100.5t11 -118.5q0 -44 -5 -100.5t-16 -113.5q-25 -137 -74.5 -246.5t-118.5 -187.5q-69 -77 -151 -115.5t-176 -38.5q-98 0 -160 45t-100 142l-56 -291h663 l-44 -225h-663l-13 -68h-292zM603 215q95 0 167 92q17 21 32.5 49t28.5 60t23.5 68t18 73t11.5 72.5t4 67.5q0 66 -17 114.5t-52 72.5q-34 23 -81 23q-48 0 -90.5 -23.5t-77.5 -68.5q-38 -48 -64.5 -113t-40.5 -141q-6 -32 -10 -67t-4 -67q0 -70 20 -119q18 -45 51 -69 t81 -24z" />
-<glyph unicode="&#x585;" d="M533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5 t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
-<glyph unicode="&#x586;" d="M352 -3q-66 5 -127 24.5t-115 51.5t-98 74.5t-72 94.5l222 192q21 -54 45.5 -89.5t54.5 -59.5q28 -23 59.5 -35.5t75.5 -19.5l125 639q-94 0 -160.5 25t-107.5 70q-30 33 -45.5 77t-15.5 95q0 20 2 38.5t6 38.5q31 157 153 248q61 45 143.5 70t188.5 25h209l-86 -442 q126 -7 203.5 -45.5t116.5 -107.5q23 -40 33.5 -88.5t10.5 -105.5q0 -45 -6 -94t-15 -96q-23 -121 -65.5 -225t-110.5 -181q-67 -76 -161 -121.5t-223 -52.5l-82 -423h-240zM610 1325q-76 0 -116 -23t-51 -83q-3 -17 -3 -29q0 -42 32.5 -57t97.5 -15zM637 229q66 11 108 41 t73 74t52.5 100t35.5 130q12 63 12 115q0 25 -3.5 47t-11.5 41q-16 36 -50.5 58.5t-91.5 28.5z" />
-<glyph unicode="&#x587;" d="M305 -29q-125 0 -189.5 66t-64.5 200q0 35 4.5 73t12.5 81l226 1165h293l-218 -1120q-12 -60 -12 -103q0 -122 109 -122q84 0 142 67.5t84 198.5l125 643h293l-174 -895h240l-44 -225h-533l32 166q-48 -92 -130.5 -143.5t-195.5 -51.5z" />
-<glyph unicode="&#x589;" d="M553 1063h333l-71 -365h-333zM418 367h333l-72 -367h-333z" />
-<glyph unicode="&#x58a;" d="M336 735q139 -71 296 -71t335 71l-56 -291q-171 -59 -328 -59q-156 0 -303 59z" />
-<glyph unicode="&#xe3f;" d="M416 0h-394l254 1307h394l48 249h141l-48 -251q82 -5 147.5 -22t111.5 -48t70.5 -76.5t24.5 -106.5q0 -19 -2 -36.5t-6 -37.5q-51 -255 -334 -279q274 -26 274 -252q0 -41 -9 -89q-18 -98 -62.5 -164.5t-112 -107.5t-157.5 -61t-199 -24l-58 -302h-141zM571 798l59 304 h-120l-59 -304h120zM713 803q24 3 48.5 10.5t46 23.5t38 43t24.5 69q2 12 3 23t1 19q0 28 -8 47t-22.5 31t-33.5 18.5t-40 9.5zM456 206l75 387h-120l-75 -387h120zM598 210q41 4 75.5 14.5t61 31t45 54t27.5 84.5q6 33 6 59q0 35 -10.5 59t-29.5 40t-44.5 24.5t-56.5 12.5z " />
-<glyph unicode="&#x10d0;" d="M468 0q-124 0 -206 27t-131 74t-69 110.5t-20 137.5q0 54 12 110t45 109q15 24 35.5 47t43.5 44l241 -34q-23 -26 -40 -62t-25 -73q-9 -50 -9 -91q0 -36 8.5 -69.5t29.5 -59t55.5 -41t87.5 -15.5q106 0 180 67.5t98 204.5q6 33 6 62q0 26 -6.5 52t-21 49.5t-38 43.5 t-58.5 34h1q-77 28 -124 65t-73 79t-34.5 87t-8.5 89q0 30 3 58t8 57h262q-4 -18 -5.5 -34.5t-1.5 -30.5q0 -44 17.5 -83.5t58.5 -55.5l-1 1q164 -60 243.5 -153t79.5 -211q0 -23 -2.5 -46.5t-5.5 -43.5q-19 -123 -70.5 -217t-132 -158t-189.5 -97t-243 -33z" />
-<glyph unicode="&#x10d1;" d="M480 0q-211 0 -317.5 92.5t-106.5 277.5q0 41 4.5 84t12.5 81q42 212 170.5 345.5t329.5 182.5l20 105q1 5 1.5 10t0.5 10q0 22 -11 36.5t-26.5 23.5t-33.5 14.5t-33 8.5q-21 5 -46 14t-46.5 28.5t-36.5 54t-15 90.5q0 44 10 94h300q-4 -16 -4 -33q0 -66 66 -79 q48 -18 77 -40.5t44.5 -48.5t21 -53.5t5.5 -54.5q0 -35 -7 -69l-22 -115q85 -33 140 -77.5t86.5 -95.5t44 -105t12.5 -105q0 -30 -3.5 -68t-9.5 -74q-21 -125 -71.5 -224t-130 -168t-186.5 -105.5t-240 -36.5zM524 214q106 0 176 82t99 239q8 42 12 81.5t4 70.5 q0 60 -17.5 106t-52.5 70q-19 13 -41 18.5t-45 5.5q-53 0 -101 -25q-43 -22 -81 -64.5t-68 -114.5q-14 -32 -24.5 -67t-18 -70t-11.5 -68t-4 -61q0 -21 4.5 -55.5t21.5 -67.5q42 -80 147 -80z" />
-<glyph unicode="&#x10d2;" d="M441 -402q-224 0 -338.5 87t-114.5 262q0 32 3.5 64.5t10.5 67.5q45 230 202 350t433 128q17 7 29 13t22 12.5t18 15.5t17 21q22 29 35.5 61t21.5 79q1 5 1 8q0 23 -11.5 37.5t-32.5 25.5q-46 23 -120 23q-67 0 -114 -22q-23 -11 -40 -28.5t-21 -40.5l-1 -47l-191 -129 q-17 29 -24 50.5t-10 42.5q-2 9 -2 16v9q0 23 1.5 39t4.5 33q27 148 141.5 219t311.5 71q181 0 275.5 -59.5t94.5 -180.5q0 -18 -2 -37t-6 -39q-14 -75 -49 -132.5t-98 -105.5q96 -48 146.5 -127.5t50.5 -183.5q0 -25 -3 -58t-8 -64q-19 -113 -68.5 -202t-129 -151 t-188.5 -95t-247 -33zM487 -185q252 0 303 264q5 23 7 44t2 37q0 45 -17.5 80t-47 58.5t-68 35.5t-80.5 12q-46 0 -93 -15t-88.5 -47.5t-72.5 -83t-46 -121.5q-9 -45 -9 -82q0 -36 9 -68.5t32 -58t62.5 -40.5t101.5 -15h5z" />
-<glyph unicode="&#x10d3;" d="M525 -403q1 4 1 13q0 38 -46 75q-26 21 -58.5 35.5t-67.5 23.5q-36 8 -55 9h-21q-31 0 -63 -9.5t-55 -31.5t-34 -57l-141 116q13 20 27 40t37 44q21 23 43 40t45 22q-52 68 -78.5 138t-35.5 139q-3 23 -5.5 54.5t-2.5 52.5q0 5 0.5 29.5t3.5 62t9.5 86t17.5 101.5 q49 233 163 354.5t298 121.5q31 0 54.5 -4t43 -12t36.5 -21t35 -32q45 35 105 52t141 17q97 0 166 -25.5t109 -80.5q18 -25 28.5 -51.5t15 -50.5t5.5 -43t1 -29q0 -44 -4 -85t-13 -87l-25 -129q-26 -136 -68.5 -224.5t-99.5 -142.5q-60 -57 -138 -83t-163 -26 q-68 0 -115 16.5t-85 53.5q-35 34 -54.5 74t-28.5 85q-9 43 -9 89q0 44 8 87l81 410q1 12 -5.5 20.5t-23.5 8.5h-67q-14 0 -30 -9.5t-28 -23.5q-14 -16 -24.5 -37t-15.5 -43l-72 -374q-5 -29 -8 -54.5t-3 -50.5q0 -39 11.5 -90.5t51.5 -105.5q39 -53 93 -88t119 -67 q28 -14 45.5 -22.5t29.5 -14t21.5 -10t22.5 -10.5q66 -32 105.5 -63t56.5 -66q8 -17 13 -35.5t5 -37.5t-5 -44h-300zM752 213q35 0 63.5 17.5t51.5 47.5t40 72.5t27 93.5l34 177q4 18 5.5 35t1.5 31q0 19 -4 46t-17 55t-30 41.5t-28 13.5h-97q-32 0 -40 -36l-57 -297 q-11 -58 -17.5 -103t-6.5 -83q0 -13 3 -38.5t18 -47.5q10 -14 23 -19.5t30 -5.5z" />
-<glyph unicode="&#x10d4;" d="M432 -402q-230 0 -343.5 80t-113.5 249q0 18 2 44t10.5 56t24.5 63t43 66q23 28 63.5 64.5t86.5 70.5l160 -95q-21 -28 -35 -49t-23 -41q-8 -19 -14.5 -41t-12.5 -50q-2 -14 -3.5 -27.5t-1.5 -26.5q0 -33 11 -61t35.5 -48t63 -31.5t93.5 -11.5q108 0 169 46.5t80 144.5 l125 639q4 19 5.5 36t1.5 31q0 31 -7.5 58t-27 47t-53 31.5t-85.5 11.5q-89 0 -141 -38.5t-75 -129.5q-7 -26 -9.5 -46.5t-3.5 -28.5q-1 -10 -1 -15.5v-7.5q0 -32 9 -62l-232 -90q-21 34 -33 61.5t-17 54.5q-2 11 -3 21.5t-1 18.5q0 14 2 37t7 49q34 190 171.5 289t369.5 99 h3q425 0 425 -316q0 -52 -12 -113l-123 -629q-41 -211 -188.5 -310.5t-401.5 -99.5z" />
-<glyph unicode="&#x10d5;" d="M435 -402q-129 0 -215.5 24t-138 66.5t-73 99.5t-21.5 123q0 26 3 55t8 56q6 31 16 57t29 61q18 33 39.5 63t50.5 58l222 -83q-28 -36 -42 -76t-21 -77q-6 -32 -6 -60q0 -32 9.5 -60.5t32 -49.5t60 -33.5t93.5 -12.5q50 0 92.5 10.5t75.5 32t54.5 54t30.5 76.5l18 92 q5 28 5 48q0 26 -8.5 48.5t-27 39.5t-49 27t-74.5 10h-63l41 209h63q86 0 143 45q29 23 49.5 58t31.5 87q6 28 6 54q0 19 -5.5 46.5t-27.5 54.5q-22 26 -56.5 39.5t-88.5 13.5q-91 0 -153.5 -38t-78.5 -115q-6 -32 -6 -56v-6.5t1 -12.5t3 -18t8 -27l-227 -98q-38 42 -55 94 q-10 29 -12 50t-2 27t0.5 20t2.5 27q9 85 53.5 152.5t118.5 115t175 72.5t224 25q214 0 316.5 -79t102.5 -237q0 -21 -2.5 -51.5t-12 -66.5t-27.5 -75t-49 -76q-61 -73 -167 -126q47 -18 76 -41.5t45.5 -50t22 -55.5t5.5 -57q0 -20 -2 -39.5t-6 -40.5l-14 -75 q-37 -198 -187 -298t-409 -100z" />
-<glyph unicode="&#x10d6;" d="M512 0q-128 0 -210 30.5t-129.5 81t-66 116t-18.5 134.5q0 35 4.5 84t16.5 103.5t33 110t53 104.5q62 94 164 146q-35 20 -59.5 45t-40 52.5t-22.5 56t-7 56.5q0 13 1.5 33t4.5 41q11 79 46.5 144.5t95 112.5t143.5 73t192 26q165 0 251 -63t86 -191q0 -42 -11 -97.5 t-40 -110.5q-29 -53 -77 -100q72 -21 117.5 -56t72 -77.5t36 -90t9.5 -93.5q0 -35 -4 -74.5t-11 -76.5q-24 -129 -77.5 -226.5t-133.5 -162.5t-185.5 -98t-233.5 -33zM610 1010q62 0 103.5 45.5t57.5 132.5q7 31 7 58q0 17 -3.5 34.5t-15 31.5t-31.5 22.5t-53 8.5h-6 q-63 0 -97.5 -41.5t-49.5 -122.5q-4 -19 -5.5 -37t-1.5 -30q0 -17 3.5 -35t14 -33t29 -24.5t48.5 -9.5zM569 214q108 0 179.5 80t99.5 229q7 35 9.5 66.5t2.5 55.5q0 20 -4 53.5t-21 67.5q-44 86 -151 86q-54 0 -98.5 -22.5t-81.5 -65.5q-38 -44 -65 -103.5t-42 -137.5 q-11 -58 -11 -111q0 -7 0.5 -19.5t3.5 -28.5t9 -34.5t17 -36.5q47 -79 153 -79z" />
-<glyph unicode="&#x10d7;" d="M322 0q-65 0 -113.5 14t-83.5 38t-58 56.5t-36 69.5t-18.5 77t-5.5 79q0 48 6 101t14 94l6 29q52 253 179 375.5t327 122.5q73 0 122.5 -16.5t84.5 -52.5q46 36 94.5 52.5t113.5 16.5q140 0 213 -71.5t73 -216.5q0 -32 -4 -69t-12 -79l-18 -93q-14 -75 -37 -140t-61 -128 t-92 -126.5t-126 -132.5h-215q67 66 106 117t62 100q22 47 35 100.5t28 130.5l66 339q1 5 1.5 9t0.5 9q0 22 -14.5 30t-38.5 8h-95q-11 0 -19.5 -13t-11.5 -28l-58 -298q-23 -121 -56 -216.5t-84 -161.5q-50 -65 -116 -95.5t-159 -30.5zM369 214q52 0 85 36.5t47 105.5 l83 431q1 4 1 6.5v4.5q0 11 -2.5 18.5t-7.5 12.5q-6 7 -13.5 10.5t-13.5 3.5h-68q-28 0 -51 -14t-41 -38t-30 -56t-19 -68l-60 -309q-2 -12 -3.5 -23t-1.5 -22q0 -19 5.5 -37t17 -31.5t29.5 -22t43 -8.5z" />
-<glyph unicode="&#x10d8;" d="M220 0q-65 61 -94.5 120.5t-39.5 111.5q-5 26 -8 54t-3 48q0 11 1 31t3 43q3 30 8.5 65t12.5 68q54 259 210 392t413 133q137 0 225.5 -35.5t137.5 -98.5q25 -32 39 -67.5t20.5 -66.5t7.5 -55t1 -34q0 -39 -3.5 -77.5t-11.5 -86.5q-14 -80 -40 -156t-61 -142 q-35 -64 -87.5 -125t-137.5 -122h-229q75 76 119.5 145t71.5 135t41.5 130.5t27.5 130.5q6 32 8.5 59.5t2.5 51.5q0 7 -0.5 20t-3 29.5t-7 34.5t-13.5 35q-21 42 -57.5 62.5t-85.5 20.5q-54 0 -103.5 -23t-84.5 -59q-41 -42 -65 -100t-41 -133q-4 -18 -9.5 -46t-10 -58.5 t-7.5 -61.5t-3 -55q0 -11 0.5 -28t1.5 -34q1 -21 6 -49t15 -61.5t25.5 -70.5t38.5 -75h-231v0z" />
-<glyph unicode="&#x10d9;" d="M427 -402q-133 0 -221 24.5t-140.5 68.5t-74 104t-21.5 131q0 53 10.5 98t30.5 86t50 79t58 67q19 20 29.5 28.5t22.5 16.5l166 -124q-16 -19 -23 -29.5t-13 -24.5q-7 -16 -12.5 -34t-11.5 -49q-7 -35 -7 -62q0 -36 10.5 -67t34 -54t61.5 -36t94 -13q50 0 91.5 11.5 t73.5 34.5q65 48 84 146l9 47q5 23 7.5 44t2.5 50q0 22 -3.5 46t-16 43.5t-38 32.5t-68.5 13h-133l43 220h133q85 0 129.5 34t58.5 109q3 12 3 24q0 32 -22 62t-71 52q-53 23 -133.5 35t-186.5 12l44 224q650 0 650 -329q0 -16 -1.5 -34.5t-5.5 -38.5q-18 -95 -77.5 -157 t-177.5 -97q49 -20 81.5 -47.5t51.5 -59.5t27 -67.5t8 -72.5q0 -41 -9 -87l-12 -58q-43 -207 -187.5 -304.5t-397.5 -97.5z" />
-<glyph unicode="&#x10da;" d="M535 -402q-4 85 -37.5 136.5t-90.5 68.5q-18 4 -35.5 6.5t-30.5 2.5q-73 0 -200 -110l-109 165q46 51 92.5 82t101.5 45q-27 44 -49.5 84t-38.5 84.5t-25 98t-9 125.5q0 106 20 206q48 241 197.5 357.5t408.5 116.5q131 0 216.5 -27t136 -74.5t71 -113t20.5 -142.5 q0 -62 -13 -123.5t-45 -117.5q-18 -32 -37 -54.5t-40 -45.5q-10 -11 -18 -21t-14 -22q-5 -11 -11.5 -30t-10.5 -39q-2 -11 -3.5 -28.5t-1.5 -29.5q0 -8 1 -21.5t3 -28.5l-244 -1q-2 27 -5 49.5t-3 41.5q0 17 3 31q9 48 22.5 84t25.5 53q29 39 51 80.5t33 101.5q8 43 8 80 q0 10 -1 24.5t-5 30.5t-11 33t-19 33q-25 32 -65.5 48t-92.5 16q-106 0 -172 -65.5t-93 -202.5q-8 -42 -12.5 -88t-4.5 -88q0 -70 12.5 -127.5t36 -107t58.5 -92t80 -82.5q44 -39 90 -82t83 -89.5t60.5 -95.5t23.5 -101q0 -19 -4 -34h-304v0z" />
-<glyph unicode="&#x10db;" d="M493 0q-218 0 -330 92.5t-112 278.5q0 36 4.5 83t15.5 98.5t29 105t45 103.5q100 185 305 239q51 14 109 20.5t112 6.5q36 0 67.5 -4t58 -14.5t48.5 -29t39 -48.5l44 223q4 23 4 43q0 31 -10.5 57t-33.5 45.5t-61.5 30.5t-93.5 11q-88 0 -140.5 -28t-62.5 -79l-19 -98 h-306l19 98q31 159 169 238t379 79q131 0 220 -22.5t143 -63t77 -96t23 -121.5q0 -40 -10 -90l-133 -687q-21 -109 -69.5 -195t-123.5 -148t-174.5 -95t-231.5 -33zM529 214q102 0 174.5 72t102.5 226q8 38 10.5 70.5t2.5 55.5q0 7 -0.5 19.5t-3 28t-8 32.5t-15.5 32 q-41 64 -153 64q-54 0 -97.5 -14.5t-79.5 -49.5q-41 -38 -65 -93.5t-39 -130.5q-6 -30 -9.5 -57.5t-3.5 -53.5q0 -40 9.5 -76.5t31 -64t56.5 -44t87 -16.5z" />
-<glyph unicode="&#x10dc;" d="M499 0q-126 0 -208.5 29t-131 77.5t-68 113t-19.5 135.5q0 66 15 146l128 657q35 181 149.5 274t315.5 93h523l-43 -222h-542q-40 0 -65 -26t-38 -91l-43 -225q36 31 65.5 51.5t59.5 32.5t62.5 17t73.5 5q97 0 174 -24t131 -70t82.5 -113.5t28.5 -155.5q0 -35 -4 -78.5 t-12 -87.5q-47 -267 -209 -402.5t-425 -135.5zM547 213h3q110 0 183 78.5t104 238.5q7 35 10 65.5t3 56.5q0 36 -7 72t-26 64.5t-52.5 46.5t-87.5 18q-109 0 -183 -78t-105 -237q-7 -35 -10 -65.5t-3 -57.5q0 -36 6.5 -72.5t25.5 -65t51.5 -46.5t85.5 -18h2z" />
-<glyph unicode="&#x10dd;" d="M99 0q-42 66 -62.5 122.5t-28.5 107.5q-4 23 -6 47.5t-2 41.5q0 10 0.5 23.5t1.5 32.5q1 18 4.5 41t8.5 52l16 81q48 244 171 375.5t320 131.5q36 0 64 -4.5t50 -13.5t39.5 -22.5t32.5 -30.5q52 43 98 57t102 14q100 0 163 -30t98 -77t48 -106t13 -116q0 -77 -18 -168 l-18 -91q-25 -127 -81 -233q-32 -60 -76 -117.5t-108 -117.5h-275q66 58 109 112.5t71 106.5t43 100.5t24 96.5l48 247q9 45 9 79q0 16 -2.5 34t-10 33t-21.5 24.5t-36 9.5h-63q-15 0 -28 -11t-17 -40l-76 -404h-226l77 404q3 13 3 22q0 16 -8.5 21.5t-28.5 6.5l-55 1 q-42 1 -76 -45t-51 -135l-47 -241q-8 -43 -11 -76.5t-3 -53.5q0 -37 9 -83.5t32 -95.5q26 -56 71 -113h-291v0z" />
-<glyph unicode="&#x10de;" d="M466 0q-212 0 -327.5 83t-115.5 249q0 54 12 117q5 28 12 52.5t20 50.5q14 26 37.5 54.5t65.5 60.5h242q-18 -33 -31 -59.5t-22 -51.5q-2 -4 -5.5 -15.5t-8.5 -27t-9.5 -33.5t-7.5 -34q-4 -21 -5.5 -43.5t-1.5 -33.5q0 -29 10.5 -56.5t33 -49.5t58.5 -35.5t86 -13.5 q114 0 184.5 71.5t93.5 200.5q4 22 6.5 46.5t2.5 44.5q0 34 -9.5 67.5t-31 59t-58 41.5t-90.5 16h-123l39 204h144q81 0 136 39.5t70 113.5q2 8 2 17q0 20 -15 39.5t-42 33.5q-57 30 -168 42q-291 52 -291 240q0 14 1.5 27.5t3.5 27.5h293q-1 -4 -1 -11q0 -67 168 -95h-2 q339 -39 339 -260q0 -30 -6 -64q-15 -84 -67.5 -153t-149.5 -111q46 -29 75.5 -62t46.5 -67.5t23.5 -69.5t6.5 -68q0 -24 -2.5 -49.5t-6.5 -48.5q-20 -123 -71.5 -214.5t-130.5 -152t-183 -90t-230 -29.5z" />
-<glyph unicode="&#x10df;" d="M429 -402q-128 0 -213 24t-136 66t-72 99.5t-21 124.5q0 26 3 53.5t8 56.5h294q-4 -17 -5.5 -32.5t-1.5 -29.5q0 -31 9 -58.5t30 -48t56.5 -32.5t89.5 -12t104 13t89 40q79 54 100 160l164 841q-20 -2 -34 -3.5t-27.5 -3t-29 -3t-39.5 -3.5q-12 -1 -21.5 -2t-22.5 -2 t-33 -3t-52 -6q-7 -1 -12.5 -1.5t-10.5 -0.5q-5 -1 -9.5 -1t-8.5 -1q-6 -1 -8 -1h-2.5t-2 -0.5t-6.5 -0.5q-5 -1 -9.5 -1t-15.5 -2l-1 -6q51 -25 77.5 -58.5t35.5 -69.5q9 -38 9 -77v-13t-1 -24q-1 -11 -4.5 -37t-8.5 -51q-18 -85 -62.5 -145t-122.5 -100q-80 -41 -198 -62 t-281 -22l45 236q93 0 160.5 5.5t113 17t71 29t33.5 42.5q2 7 3.5 15.5t1.5 22.5q0 94 -72 155t-236 95l35 182l1067 140l-210 -1083q-41 -208 -191.5 -315t-417.5 -107z" />
-<glyph unicode="&#x10e0;" d="M83 0q-45 57 -68 121.5t-31 127.5q-3 26 -4.5 53t-1.5 46q0 23 3 68t13 96l17 87q16 79 48.5 168t87.5 180.5t134 181.5t188 171t249 149.5t317 117.5l-5 -220q-156 -34 -290 -101.5t-251 -179.5q63 0 113.5 -19.5t81.5 -48.5q45 35 102 51.5t126 16.5q91 0 149 -25.5 t90.5 -67.5t44.5 -96t12 -110q0 -42 -4.5 -84t-12.5 -81l-26 -134q-14 -70 -30 -125.5t-42 -110.5q-28 -58 -72.5 -116.5t-112.5 -115.5h-291q77 61 121 114.5t70 104.5q27 52 42 104t24 98l56 279q1 7 1.5 14.5t0.5 17.5q0 14 -1.5 31.5t-6.5 32.5q-7 24 -19 40.5t-29 16.5 h-64q-20 0 -33 -12t-21 -53l-78 -400h-226l80 405q3 15 3 26q0 15 -7 24q-9 10 -35 10h-69q-17 0 -34 -15.5t-34 -41.5q-16 -24 -28 -50.5t-15 -45.5l-49 -254l-10.5 -56t-7 -43.5t-4 -37t-1.5 -36.5q0 -7 0.5 -22.5t4 -37t10.5 -47.5t20 -53q27 -59 80 -113h-275v0z" />
-<glyph unicode="&#x10e1;" d="M527 0q-209 0 -320.5 92t-111.5 276q0 37 4.5 75.5t12.5 81.5l192 992h295l-192 -992q-6 -30 -9.5 -56t-3.5 -54q0 -38 8 -74.5t28.5 -64.5t55 -45t87.5 -17q109 0 181 77.5t104 238.5q2 15 3.5 29t1.5 27q0 34 -9.5 58.5t-23 42t-28 29t-25.5 18.5q-41 27 -62 49t-33 50 q-13 30 -13 65q0 11 1.5 22t3.5 22q8 39 30 78t61 79t97.5 80.5t140.5 82.5l46 -126q-48 -17 -76.5 -37t-45.5 -43t-25 -47t-12 -47q-3 -14 10 -25.5t32 -23.5q37 -23 66 -39t36 -20q37 -21 61.5 -48.5t39 -58t20.5 -63t6 -63.5q0 -20 -2 -45t-6 -51q-18 -123 -68.5 -220.5 t-130.5 -165t-187.5 -103.5t-239.5 -36z" />
-<glyph unicode="&#x10e2;" d="M447 -403q-99 0 -173.5 19t-128 52.5t-88.5 79t-56 98.5t-29 111.5t-8 117.5q0 61 7 127t20 130q30 150 88 269t142 207q83 87 187 139t225 72l48 324h216l-79 -327q235 -35 331 -207q21 -38 33 -76.5t18 -70t7.5 -53t1.5 -26.5q0 -43 -1.5 -77.5t-4 -64.5t-6.5 -57.5 t-10 -57.5q-71 -369 -258 -549t-482 -180zM485 -191q76 0 142.5 34.5t120 101t93 164t61.5 223.5q10 57 15 113t5 101q0 67 -11.5 113.5t-30.5 78t-45 52t-54 35.5l-81 -494h-213l108 493q-59 -23 -108.5 -67.5t-89 -107.5t-68 -143t-46.5 -174q-12 -66 -18 -127.5 t-6 -107.5q0 -140 56.5 -214t169.5 -74z" />
-<glyph unicode="&#x10e3;" d="M475 -403q-209 0 -318.5 81.5t-109.5 247.5q0 49 10 99.5t31 95.5q18 38 48 81t66 80q15 15 34 31.5t37 29.5l130 -109q-35 -51 -48.5 -98t-24.5 -100q-6 -35 -6 -61q0 -35 11.5 -65t35.5 -52.5t60.5 -35.5t86.5 -13q104 0 161 58.5t80 176.5l141 723q3 19 3 33 q0 21 -9 30q-8 8 -23 10.5t-32 2.5q-44 0 -66 -14.5t-37 -43.5t-25.5 -71t-21.5 -97l-44 -170h-158l23 170q12 57 16.5 93.5t4.5 58.5q0 10 -2.5 28t-16.5 31q-15 15 -48 15q-37 0 -61.5 -18t-46.5 -40q-19 -19 -31 -30.5t-21.5 -18t-19 -8.5t-24.5 -2q-24 0 -49.5 4.5 t-44.5 16.5q-18 11 -35.5 32t-37.5 51l110 258q10 -25 22.5 -48.5t26.5 -40.5q16 -20 34.5 -33t36.5 -13t37 16q20 16 44.5 35.5t54.5 35.5q17 9 32.5 12.5t31.5 3.5q27 0 47.5 -9t36.5 -25t29 -38.5t25 -49.5q60 65 120.5 93.5t138.5 28.5q75 0 125.5 -23.5t80.5 -62.5 t43 -89.5t13 -105.5q0 -64 -15 -143l-114 -585q-88 -450 -578 -450z" />
-<glyph unicode="&#x10e4;" d="M493 -402q-99 0 -184.5 21.5t-143.5 74.5q-28 26 -45 55t-26 57.5t-11.5 54.5t-2.5 46q0 26 3 52t8 55l251 -40q-6 -32 -6 -54t8 -46t35 -41t67.5 -20.5t89.5 -3.5h25q46 0 89 10t78 30q32 19 56 48.5t32 67.5l45 232h-89l36 189l90 1l89 466h-146q-11 -2 -21 -13 q-11 -13 -16 -41l-54 -279q-20 -106 -52.5 -188t-81.5 -137t-116 -82.5t-158 -27.5h-3q-327 0 -327 327q0 78 19 173l9 44q45 220 169.5 328.5t318.5 108.5q71 0 123 -15.5t88 -53.5q97 69 232 69q83 0 135 -24.5t81 -64t39 -90.5t10 -103q0 -68 -13 -134t-36 -116 q-19 -40 -51 -83t-74 -81q-21 -20 -41 -35.5t-34 -25.5q31 -24 56.5 -53t42.5 -61q16 -31 20.5 -57t4.5 -43q0 -19 -3 -35l-16 -82q-20 -104 -65.5 -176.5t-118.5 -118.5q-72 -45 -167.5 -65t-213.5 -20h-34zM380 280q53 0 89 42q16 18 28.5 44.5t18.5 58.5l73 377 q1 4 1.5 7.5t0.5 8.5q0 17 -9 25t-23 9l-111 1q-33 0 -64 -42q-17 -23 -28 -51.5t-17 -59.5l-54 -275q-2 -13 -3.5 -24t-1.5 -25q0 -9 3 -28t18 -36q27 -32 79 -32z" />
-<glyph unicode="&#x10e5;" d="M419 -402q-216 0 -335 82.5t-119 247.5q0 50 9.5 97.5t22.5 79.5t35.5 65t52.5 63q14 14 33.5 32t41.5 35l196 -65q-38 -57 -54.5 -105t-25.5 -94q-7 -35 -7 -61q0 -35 10.5 -65.5t34 -53t61 -35t90.5 -12.5q54 0 100 15.5t85 54.5q34 34 61.5 88t41.5 127l54 280 q5 25 9.5 51t8 49.5t6 42.5t3.5 31q2 23 2.5 46.5t0.5 37.5q0 25 -3 52t-11.5 52.5t-23 48.5t-36.5 39q-42 30 -114 30q-68 0 -111 -26.5t-57 -88.5q-5 -20 -6.5 -44.5t-0.5 -45.5q0 -20 3.5 -39t10.5 -39l-284 -87q-19 70 -19 129q0 26 3.5 59.5t11.5 66.5 q19 83 58.5 144.5t97.5 102.5t134 61t168 20q32 0 56 -2.5t43.5 -7t36 -11t34.5 -14.5q30 -14 54 -28t42 -27q3 16 6 30.5t5 28.5q3 17 5 27t6 27l3.5 14t2.5 11.5t2 12t3 16.5q3 18 4.5 26t2.5 12.5t2 8.5t3 13l61 313h272l-276 -1415q-50 -258 -198.5 -381t-408.5 -123z " />
-<glyph unicode="&#x10e6;" d="M569 -402q1 3 1 8q0 32 -9 61t-26 53q-18 26 -41 41.5t-48 25.5q-38 15 -67 15q-36 0 -88.5 -28.5t-127.5 -88.5l-83 163q66 76 128 101q-183 204 -183 423q0 25 2.5 51.5t7.5 52.5l15 76q51 257 173 385.5t313 128.5q61 0 108.5 -15.5t82.5 -55.5q92 71 231 71 q92 0 149 -28t89 -73t43.5 -101.5t11.5 -114.5q0 -45 -5 -89.5t-15 -95.5l-13 -66q-12 -61 -31.5 -114.5t-52.5 -106.5q-32 -52 -74.5 -99t-99.5 -96l-254 -1q48 51 84 93.5t62 80.5q28 41 42.5 75t21.5 69l64 330q4 20 6 35.5t2 28.5q0 48 -28 56q-12 4 -30 4h-87 q-14 0 -24.5 -8.5t-16.5 -38.5l-81 -418h-226l81 416q2 7 2 10v5q0 19 -5.5 26.5t-17.5 7.5h-66q-22 0 -41 -3.5t-35 -17.5t-29 -38.5t-21 -64.5l-43 -223q-12 -62 -12 -118q0 -83 23 -142t56 -100.5t70.5 -68.5t67.5 -45q73 -46 130.5 -88.5t100 -92t69.5 -110.5t40 -144z " />
-<glyph unicode="&#x10e7;" d="M456 -402q-460 0 -460 336q0 58 13 120h311q-9 -44 -9 -79q0 -167 186 -167q97 0 161 46t83 143l49 253q-35 -24 -66.5 -44.5t-64.5 -34.5q-37 -17 -66 -21t-67 -4q-114 0 -204 23t-147 78q-25 25 -40 52t-23 54t-10.5 53t-2.5 48q0 66 13.5 135t36.5 127q23 60 60 111.5 t97 104.5q61 53 143 105h311q-73 -61 -124 -108.5t-86 -85.5q-34 -37 -55.5 -68t-36.5 -63q-11 -25 -20 -54t-15 -64q-5 -31 -7.5 -61t-2.5 -44q0 -11 4 -34t22 -46q20 -25 54.5 -35t86.5 -10q116 0 183 44.5t85 138.5l93 483h293l-201 -1037q-77 -395 -577 -395z" />
-<glyph unicode="&#x10e8;" d="M497 0q-134 0 -222 31.5t-139.5 84t-72 120.5t-20.5 141q0 37 5 84.5t16 98t28.5 102t42.5 97.5q48 89 122.5 147.5t179.5 84.5q25 6 53 11t56 8.5t54.5 5t49.5 1.5q37 0 68 -5t57 -17t48.5 -31t44.5 -47l51 262q7 38 7 70q0 55 -21.5 74t-68.5 19q-26 0 -48 -4.5 t-35 -12.5q-14 -9 -19 -22.5t-8 -30.5l-22 -110h-167l22 112q2 8 2.5 15.5t0.5 12.5q0 13 -6.5 22.5t-25.5 14.5q-8 2 -21 3t-22 1q-29 0 -52 -10.5t-40 -42.5q-15 -27 -26 -67.5t-21 -94.5h-276q83 422 362 422q91 0 147 -42.5t78 -121.5q29 45 60 76t66 50.5t76 28.5t90 9 q66 0 118.5 -15t90 -45.5t57.5 -76t20 -105.5q0 -23 -3 -48t-8 -52l-139 -718q-49 -252 -196 -371t-394 -119zM545 214q100 0 163 79.5t92 232.5q6 32 9 61t3 64q0 1 -0.5 10.5t-3.5 23.5t-9 31t-18 32q-24 32 -64 43.5t-91 11.5q-55 0 -98 -12.5t-77 -43.5 q-33 -30 -59 -81.5t-42 -135.5q-5 -28 -7.5 -52.5t-2.5 -53.5q0 -9 0.5 -23.5t4.5 -32.5t11 -37.5t21 -38.5q30 -42 76 -60t92 -18z" />
-<glyph unicode="&#x10e9;" d="M247 1183q37 189 165 278t349 89q106 0 177.5 -19t115 -53.5t62 -83t18.5 -106.5q0 -30 -9 -75t-44 -99q-14 -22 -38 -52t-50 -62q46 -28 84 -72.5t62 -103.5q23 -56 28 -103t5 -70q0 -26 -3 -52.5t-8 -53.5q-30 -157 -123 -295.5t-246 -249.5h-316q159 127 262 266.5 t131 285.5q11 58 11 112q0 7 -0.5 19.5t-4 28.5t-10 34t-18.5 35q-27 38 -69.5 55t-92.5 17q-106 0 -170 -67.5t-88 -190.5l-116 -595h-294zM497 955q30 30 58.5 49t57.5 29q54 18 146 17l56 -1l42 142q2 14 3.5 27t1.5 29q0 11 -4 31t-24 37q-20 16 -53 22t-59 6 q-75 0 -120 -39t-62 -129z" />
-<glyph unicode="&#x10ea;" d="M486 -401q-152 0 -246.5 36.5t-147 99t-71 144.5t-18.5 173q0 63 6.5 124.5t20.5 130.5l18 92q15 77 42 159t71 173q42 88 99.5 181t135.5 192l208 -121q-58 -69 -97 -132t-69 -129q-31 -67 -51.5 -130t-34.5 -136l-29 -149q-13 -65 -19 -121t-6 -106q0 -75 14 -126.5 t42 -84t70.5 -46.5t100.5 -14q60 0 111 16.5t92 61.5q34 37 62 100t41 149q3 19 5 40.5t2 35.5q0 42 -22 67t-67 25h-232l40 206h225q47 0 78 32.5t44 101.5q3 15 3 28q0 23 -10 39t-24 26.5t-29.5 17t-26.5 11.5q-33 13 -57.5 30.5t-41 40.5t-24.5 53.5t-8 70.5 q0 21 2 42.5t6 44.5h289q-6 -32 -6 -60q0 -12 1.5 -26.5t7.5 -28.5t18 -27t32 -22q21 -9 47.5 -23t50.5 -36t40.5 -54t16.5 -78q0 -9 -1 -20.5t-3 -23.5q-12 -66 -63 -127.5t-136 -112.5q39 -32 63.5 -64.5t39 -63t19.5 -58.5t5 -51q0 -14 -1.5 -31.5t-3.5 -35.5 q-8 -59 -26 -113.5t-44 -102.5t-59.5 -88.5t-70.5 -71.5q-78 -66 -181.5 -98t-242.5 -32z" />
-<glyph unicode="&#x10eb;" d="M474 0q-221 0 -330 87.5t-109 267.5q0 33 3.5 77t11.5 87q23 134 76.5 236.5t132.5 171.5t180 104.5t219 35.5q45 0 81 -6t67 -21q29 -14 53.5 -37t39.5 -56l110 570l274 -1l-196 -1010q-50 -260 -203.5 -383t-409.5 -123zM511 214q51 0 95.5 17t81.5 53t63.5 90.5 t42.5 135.5q8 44 11.5 80.5t3.5 64.5q0 7 -0.5 20t-3 29.5t-8 35t-14.5 35.5q-23 43 -62.5 61t-84.5 18q-108 0 -178.5 -88.5t-97.5 -245.5q-6 -35 -9.5 -70t-3.5 -61q0 -175 164 -175z" />
-<glyph unicode="&#x10ec;" d="M449 0q-73 0 -129.5 10.5t-100 29.5t-74.5 46t-53 61q-21 33 -33 67.5t-18 65.5t-7.5 56.5t-1.5 40.5q0 77 16 163l138 708q16 82 54 136.5t84 88.5q54 39 117.5 58t128.5 19q94 0 156 -41q31 -20 54 -50.5t35 -72.5q109 164 288 164q217 0 217 -252q0 -74 -18 -170h-276 q5 27 8.5 48t5.5 37q3 30 3 49q0 14 -3.5 34t-19.5 34q-8 7 -19.5 10t-31.5 3q-50 0 -73 -17q-12 -9 -17 -22t-8 -30l-22 -112h-167l22 110q3 15 3 25q0 18 -10 28q-5 4 -12.5 7.5t-17.5 5.5t-24.5 3t-29.5 1q-29 0 -51.5 -4t-39.5 -16q-17 -13 -29.5 -37t-20.5 -66 l-58 -302q32 25 62.5 44t63 31.5t70 18.5t84.5 6q103 0 190 -29t141 -91q26 -29 40.5 -60t21 -59.5t8 -51t1.5 -35.5q0 -41 -4 -86t-12 -90q-23 -124 -74.5 -220t-131.5 -161.5t-186.5 -99.5t-238.5 -34zM492 213q53 0 102 17t87 52t63 89.5t42 138.5q7 35 10 63.5t3 57.5 q0 20 -4 48.5t-22 57.5q-22 35 -59 50.5t-96 15.5q-45 0 -90 -11t-83 -44q-39 -34 -64 -88t-41 -134q-6 -30 -9 -56.5t-3 -55.5q0 -7 0.5 -20t3 -29.5t7.5 -35t14 -37.5q21 -44 54.5 -61.5t84.5 -17.5z" />
-<glyph unicode="&#x10ed;" d="M426 -402q-444 0 -444 310q0 28 3.5 58.5t8.5 52.5q6 27 18 54.5t33 57.5t52 64.5t76 76.5l185 -141q-17 -14 -28 -28.5t-21 -33.5q-11 -20 -16 -36t-9 -33q-6 -29 -6 -52q0 -30 10.5 -56t33 -44.5t58.5 -29.5t87 -11q57 0 100.5 13.5t78.5 39.5t58.5 65t32.5 93 q2 9 3 17.5t1 16.5q0 48 -32.5 96t-104.5 90q-84 94 -91 176q-6 -2 -11 -2q-8 -1 -7.5 -1t-4.5 -1q-325 0 -325 250q0 21 2.5 46.5t7.5 52.5q32 169 144.5 261t310.5 92l10 -1l79 406h279l-99 -508q29 -27 46.5 -61.5t17.5 -69.5h189l-45 -232h-192q-14 -32 -41.5 -67 t-61.5 -60l-12 -52v-5q0 -47 120 -126q37 -29 60 -59t35.5 -60.5t17 -60t4.5 -55.5q0 -21 -2 -41t-6 -42q-36 -205 -188 -312.5t-415 -107.5zM537 578q24 0 54.5 13t61.5 40t50.5 59.5t26.5 69.5q4 16 4 35q0 18 -5.5 42t-22.5 48q-20 25 -43.5 37.5t-48.5 12.5 q-26 0 -57 -13t-60 -37q-26 -23 -47.5 -55t-29.5 -70q-3 -20 -3 -36q0 -19 5.5 -44t22.5 -49q18 -26 42 -39.5t50 -13.5z" />
-<glyph unicode="&#x10ee;" d="M526 0q-134 0 -224 37t-143 111q-25 34 -38.5 70t-20 67t-7.5 55t-1 35q0 54 4.5 97.5t13.5 90.5l184 954h292l-109 -563q34 34 65 55.5t62.5 34.5t66 18t76.5 5q97 0 173.5 -23.5t129.5 -70t81 -116t28 -161.5q0 -36 -4.5 -75t-12.5 -84q-51 -266 -205 -401.5 t-411 -135.5zM558 214q53 0 100 20.5t85 60.5t65 99t41 136q6 34 9 69t3 58q0 33 -8 68t-27.5 63.5t-53.5 46.5t-86 18q-51 0 -97 -19.5t-83.5 -59t-65.5 -100.5t-43 -144q-6 -33 -9 -67.5t-3 -56.5q0 -33 7.5 -67t27 -61.5t53 -45.5t85.5 -18z" />
-<glyph unicode="&#x10ef;" d="M425 -402q-221 0 -328 81.5t-107 245.5q0 55 15.5 127t60.5 150q23 39 55.5 81.5t74.5 86.5l182 -136q-37 -51 -54.5 -98.5t-26.5 -95.5q-3 -17 -5 -33t-2 -34q0 -33 8.5 -63t29 -52.5t53.5 -35.5t83 -13h4q109 0 182 52.5t95 163.5q2 14 3.5 27.5t1.5 26.5 q0 53 -29.5 107t-99.5 93q-42 33 -70.5 64.5t-46 61.5t-24.5 58t-7 54q0 17 3 37l57 187l-346 53l50 259l337 -101l37 297h267l-87 -345l361 -79l-50 -260l-352 127l-7 -138q-1 -11 8 -23.5t32 -32.5q22 -20 54 -45t77 -56q39 -34 64.5 -69.5t40.5 -70.5t21.5 -69.5 t6.5 -65.5q0 -20 -2 -49t-7 -55q-17 -100 -65.5 -178t-126.5 -132t-184 -82t-237 -28z" />
-<glyph unicode="&#x10f0;" d="M475 0q-455 0 -455 317q0 26 3 56.5t8 58.5l26 134h293l-26 -134q-6 -35 -6 -63q0 -35 9 -64t31 -49t60 -31t95 -11q110 0 169 40.5t79 115.5q4 14 6.5 31t2.5 35q0 26 -6 40t-17 19q-9 4 -23 4h-279l43 219h280q10 0 21 2t22 10t19.5 23t13.5 42q3 16 3 28q0 23 -11 32 q-8 7 -19 8.5t-21 1.5h-280l43 221h278q8 0 18 2t20 9q16 11 22 24.5t9 27.5q0 2 0.5 2.5t0.5 5.5q0 23 -14.5 36t-37.5 22q-33 13 -72 17.5t-87 12.5q-38 6 -79 18t-75 36.5t-56.5 65.5t-22.5 106q0 37 9 79h228q-1 -3 -1 -9q0 -21 20.5 -38.5t52.5 -31.5 q49 -21 98.5 -28.5t84.5 -12.5q61 -9 106.5 -23.5t75.5 -38.5t45 -58t15 -81q0 -14 -1.5 -29.5t-5.5 -31.5q-11 -61 -49 -108t-104 -78q55 -33 75 -73.5t20 -79.5q0 -8 -1 -17.5t-3 -19.5q-22 -117 -169 -188q104 -83 104 -184q0 -9 -1 -19t-3 -20q-35 -187 -181 -284 t-403 -97z" />
-<glyph unicode="&#x10f1;" d="M452 -402q-244 0 -363.5 88.5t-119.5 259.5q0 30 3.5 66t9.5 72q8 51 22.5 108t31 114t34 110t32.5 97t26.5 74.5t15.5 41.5q26 70 40.5 130.5t16.5 110.5q1 22 1.5 38t0.5 34q0 35 -3.5 92.5t-13.5 142.5h274q10 -75 12 -121t2 -69q0 -46 -4.5 -101t-18.5 -123 q-5 -24 -9.5 -41.5t-9 -33t-10 -30.5t-11.5 -34q-18 -54 -39.5 -122.5t-41.5 -142t-37.5 -147t-27.5 -136.5q-4 -22 -6 -41.5t-2 -38.5q0 -40 11.5 -74.5t39 -60t73 -40t114.5 -14.5q49 0 83.5 8t57 22.5t35.5 35.5t20 48q6 23 7.5 44t1.5 30q0 76 -49 76h-187l41 211h187 q40 0 59.5 22.5t28.5 67.5q4 19 5.5 34.5t1.5 26.5q0 43 -24 52q-12 4 -30 4h-188l41 207h188q36 0 57 24.5t33 84.5q2 12 3.5 21.5t1.5 17.5q0 12 -2.5 20.5t-6.5 13.5q-7 9 -19.5 11t-29.5 2h-187l41 214h187q69 0 89 96v6q0 41 -119 64q-139 36 -139 192q0 40 9 87h215 q-4 -21 10.5 -39t39.5 -33t57.5 -27.5t65.5 -22.5q152 -53 152 -182q0 -9 -1 -21t-3 -24q-12 -68 -54.5 -119.5t-111.5 -78.5q30 -15 48.5 -33.5t28.5 -37.5t13.5 -38.5t3.5 -37.5q0 -14 -1.5 -26t-3.5 -25q-6 -34 -21.5 -66t-37.5 -60t-50 -51t-60 -39q48 -26 69.5 -66 t21.5 -92q0 -28 -6 -58q-13 -63 -57.5 -114t-122.5 -84q52 -32 75.5 -78t23.5 -106q0 -16 -1.5 -34t-5.5 -36q-32 -158 -163 -240.5t-364 -82.5z" />
-<glyph unicode="&#x10f2;" d="M23 22q72 0 127 10t91 32q-54 44 -87 90t-51.5 91t-24.5 86.5t-6 75.5q0 31 3 63.5t8 60.5q21 128 73 227.5t132 168t186.5 104t236.5 35.5q212 0 320 -93.5t108 -277.5q0 -40 -4.5 -83.5t-12.5 -80.5q-31 -153 -118.5 -264.5t-235.5 -201.5q33 -22 81.5 -31.5 t103.5 -9.5h21l-57 -294q-316 81 -437 235q-106 -78 -234 -137t-280 -102zM531 195q116 37 193 117.5t105 217.5q7 34 10 64t3 54q0 38 -8.5 75t-29 66t-54 46.5t-83.5 17.5q-55 0 -102.5 -22.5t-85 -64.5t-64 -101.5t-38.5 -134.5q-5 -28 -7 -55.5t-2 -47.5 q0 -38 8.5 -72.5t28 -64.5t50.5 -54.5t76 -40.5z" />
-<glyph unicode="&#x10f3;" d="M449 -191q109 0 179 56t95 166l7 31q6 33 6 60q0 38 -13 69.5t-41 54.5t-72.5 35.5t-107.5 12.5h-178l38 195h174q114 0 187.5 93.5t105.5 264.5l-361 -21l-38 -197h-294l78 405l1005 32q-45 -224 -139 -386t-236 -262q57 -30 93 -65.5t56.5 -72t28 -74t7.5 -72.5 q0 -44 -8 -87l-6 -31q-21 -108 -80.5 -187t-141.5 -130t-179.5 -76t-193.5 -25q-89 0 -171 20.5t-145 61t-101 99.5t-38 137q0 21 3 48.5t9 56.5l71 147l292 -30l-71 -123q-2 -15 -3.5 -29t-1.5 -27q0 -32 10 -59.5t32 -47.5t57.5 -31.5t85.5 -11.5z" />
-<glyph unicode="&#x10f4;" d="M415 -402q-225 0 -336 82t-111 252q0 29 3 60t10 65l295 1q-9 -42 -9 -78q0 -34 9 -65t30 -55t56.5 -38t88.5 -14q49 0 94.5 12.5t80.5 38.5q34 24 57 61t35 96l11 53q2 11 3 21.5t1 19.5q0 22 -7.5 49t-33.5 51q-53 47 -162 47h-216l44 225h213q48 4 93.5 28t85.5 65 q39 40 70 96t51 131l-53 -9q-26 -5 -55 -9t-68 -8q-16 -2 -30 -3t-27 -1h-9q-131 0 -218 26.5t-140 74.5q-27 25 -43.5 51.5t-25.5 53t-11.5 51t-2.5 44.5q0 41 9 88q39 202 201 296t447 94h6l-42 -208q-310 0 -348 -198q-4 -16 -4 -33q0 -64 55.5 -95.5t152.5 -31.5 q60 0 123.5 12.5t134 39t150 68t170.5 98.5l-68 -350q-34 -175 -121.5 -291t-237.5 -184q61 -20 102 -46t66 -56.5t35.5 -65t10.5 -71.5q0 -15 -1.5 -32.5t-4.5 -33.5l-11 -53q-44 -209 -191.5 -315.5t-406.5 -106.5z" />
-<glyph unicode="&#x10f5;" d="M444 0q-211 0 -318 67.5t-107 204.5q0 37 8 83q32 183 172 281t386 98h202l15 76h-202q-420 0 -420 288q0 21 2.5 45t7.5 50q36 179 174 268.5t383 89.5q210 0 312 -67t102 -205q0 -40 -9 -86l-32 -166h107l-42 -217h-107l-15 -76h107l-48 -245h-107l-26 -134 q-69 -355 -545 -355zM844 1027l32 166q4 17 4 34q0 113 -169 113q-101 0 -156 -37.5t-70 -111.5q-2 -12 -3.5 -23t-1.5 -22q0 -119 162 -119h202zM489 209q100 0 155.5 40.5t71.5 121.5l29 147h-202q-189 0 -220 -157q-3 -20 -3 -37q0 -115 169 -115z" />
-<glyph unicode="&#x10f6;" d="M146 -190q43 0 82 11t69 34q29 21 50.5 54.5t28.5 78.5l158 807q3 15 3 26q0 17 -7 23.5t-20 8.5h-98q-26 1 -48 -33q-12 -19 -20.5 -44.5t-15.5 -60.5l-58 -302q-7 -35 -7 -60q0 -107 96 -107l-42 -217q-352 4 -352 285q0 50 12 112l44 228q39 203 145 307.5t284 104.5 q159 0 223 -88q49 46 114 67t143 21q285 0 285 -273q0 -63 -15 -139l-45 -232q-41 -210 -147.5 -316t-278.5 -106q-35 0 -59 4.5t-42 13.5l-3 -16q-18 -95 -60.5 -170t-108 -126.5t-154 -79t-197.5 -27.5zM737 214q27 0 45 8t30 23.5t19 37.5t13 51l77 395q6 33 6 57 q0 10 -1.5 22t-7 22t-15.5 16.5t-28 6.5h-80q-17 0 -28.5 -14t-17.5 -46l-89 -459q-2 -11 -3 -22t-1 -19q0 -16 3.5 -30t12.5 -25t24.5 -17.5t40.5 -6.5z" />
-<glyph unicode="&#x10f7;" d="M414 -403q-130 0 -216.5 26t-138.5 70.5t-73.5 104.5t-21.5 128q0 27 3 54.5t8 57.5q16 87 46.5 155t69.5 119.5t84 88.5t89 62.5t84 42t70 27.5q76 27 130 47.5t90 40t55.5 41.5t28.5 53q7 25 7 56q0 42 -15 62.5t-57 20.5q-22 0 -53 -6t-57 -20q-27 -14 -46 -35 t-25 -49l-5 -57l-222 -33l-1 72q32 171 148 255.5t308 84.5q97 0 159.5 -20.5t98.5 -55t49.5 -80t13.5 -95.5q0 -29 -3 -60t-8 -53q-46 -222 -412 -355q-148 -35 -228 -110.5t-102 -190.5q-4 -20 -6 -37.5t-2 -35.5q0 -165 200 -165q66 0 115.5 16.5t85.5 47.5t59.5 76 t36.5 102q5 21 7.5 39.5t2.5 35.5q0 25 -7.5 46.5t-29.5 42.5l245 149q43 -60 62.5 -122t19.5 -119q0 -16 -1.5 -38.5t-4.5 -45.5q-14 -102 -63.5 -184t-131.5 -139t-194.5 -87.5t-251.5 -30.5z" />
-<glyph unicode="&#x10f8;" d="M412 -403q-128 0 -214 24.5t-138 67.5t-74 100t-22 123q0 22 2.5 47.5t7.5 52.5l201 1032h294l-112 -573q-1 -8 -1.5 -14.5t-0.5 -13.5q0 -52 45 -81q29 -19 67 -25.5t73 -6.5q52 0 99 12.5t85.5 41.5t65.5 76.5t39 116.5q4 22 6 47.5t2 43.5q0 11 -0.5 20.5t-2.5 20.5 q-7 50 -27 96.5t-58 91.5q-20 24 -47.5 49t-61.5 49l304 98q37 -33 64.5 -65t47.5 -63t34 -61.5t24 -61.5q9 -29 14 -55t6 -43v-39q0 -61 -12 -125q-43 -235 -195.5 -353.5t-405.5 -118.5h-4q-141 0 -223 38l-25 -130q-6 -32 -6 -58q0 -149 193 -149h5q50 0 93 15t77.5 46 t58.5 76.5t36 107.5h294q-47 -235 -198 -346t-410 -111z" />
-<glyph unicode="&#x10f9;" d="M429 -402q-171 0 -253 59.5t-82 184.5q0 43 10 90q21 100 74.5 168.5t145.5 119.5q-81 27 -131 61.5t-78.5 74t-38.5 83t-10 87.5q0 23 2.5 48.5t7.5 51.5q23 118 84.5 204t146 141.5t184.5 82t201 26.5q91 0 176 -21.5t150 -65t104 -108.5t39 -151q0 -26 -3.5 -54 t-9.5 -55q-15 -70 -47.5 -132t-88 -118.5t-136.5 -108.5t-193 -101q-72 -27 -123.5 -54t-86 -55t-53 -56t-25.5 -58q-6 -29 -6 -51q0 -44 19.5 -63.5t63.5 -19.5q49 0 86.5 23t47.5 72l22 111h284l-22 -111q-31 -155 -150 -230t-311 -75zM569 386q249 34 288 239 q4 20 5.5 38t1.5 33q0 88 -50 130t-147 42q-125 0 -202 -65t-94 -178q-2 -14 -3.5 -33t-1.5 -31q0 -32 12 -61t36.5 -52t63 -39t91.5 -23z" />
-<glyph unicode="&#x10fa;" d="M543 -195q5 23 6.5 43t1.5 34t-3 31.5t-15 34.5q-15 21 -39.5 32.5t-52.5 11.5q-42 0 -87.5 -31t-102.5 -103l-193 124q96 111 210 145q-84 88 -119 215q-8 27 -12.5 54t-5.5 47q-1 16 -1.5 31.5t-0.5 26.5q0 23 3 51t10 62q44 221 191.5 336t416.5 117q194 -17 295 -89 t101 -204q0 -23 -2.5 -44t-5.5 -37q-17 -88 -80 -211t-177 -285l-216 98q79 123 124.5 217.5t59.5 163.5q2 14 3.5 27t1.5 25q0 62 -39.5 94t-117.5 32q-104 0 -170.5 -58.5t-89.5 -179.5q-3 -14 -5 -29l-4 -30t-3 -27.5t-1 -20.5q-1 -16 -1 -25v-11q0 -54 11 -96t37 -84 q26 -43 64 -84q84 -26 154.5 -79t121.5 -134l-268 -191v0z" />
-<glyph unicode="&#x10fb;" d="M364 1007h245l-41 -210h-245zM747 652h239l-40 -208h-239zM218 257h242l-40 -208h-242z" />
-<glyph unicode="&#x10fc;" d="M349 930q0 20 3 47t9 57l62 323q37 196 247 196h258l-23 -119l-280 2q-39 0 -51 -59l-21 -108l90 50q196 0 196 -188q0 -20 -2.5 -45t-7.5 -52q-15 -78 -45.5 -134t-69.5 -92.5t-84 -54t-89 -17.5q-38 0 -73 12.5t-61.5 37.5t-42 61t-15.5 83zM557 852q43 0 75 45.5 t49 136.5q4 20 5.5 37t1.5 30q0 45 -17 67t-48 22q-42 0 -72 -40t-45 -122q-9 -51 -9 -86q0 -90 60 -90z" />
-<glyph unicode="&#x1e80;" d="M479 1859h264l143 -264h-178zM143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
-<glyph unicode="&#x1e81;" d="M387 1646h284l209 -376h-198zM96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
-<glyph unicode="&#x1e82;" d="M821 1859h281l-320 -264h-207zM143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
-<glyph unicode="&#x1e83;" d="M849 1646h321l-442 -376h-197zM96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
-<glyph unicode="&#x1e84;" d="M502 1596q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM897 1596q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM143 1493h254l-108 -1096l272 709h238 l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
-<glyph unicode="&#x1e85;" d="M467 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM862 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM96 1120h240l-33 -858l227 565h230 l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
-<glyph unicode="&#x1ebc;" d="M686 1708q-38 0 -64 -30.5t-37 -89.5h-137q25 129 90.5 197.5t161.5 68.5q38 0 70 -12t67 -39l53 -41q31 -27 70 -27q37 0 63 30.5t37 88.5h137q-27 -127 -90.5 -196.5t-161.5 -69.5q-37 0 -68.5 11.5t-68.5 39.5l-49 37q-24 18 -40.5 25t-32.5 7zM29 0l288 1493h932 l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#x1ebd;" d="M1113 1554q-47 -284 -249 -284q-35 0 -67.5 13t-72.5 44l-49 37l-5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q18 130 87 207q33 37 74.5 57t88.5 20q32 0 65 -12q27 -11 76 -49l51 -39q38 -31 70 -31q38 0 64 33t36 96h139zM205 89q-129 119 -129 349 q0 136 44 271q45 132 124 229q86 104 200 157q116 54 250 54q103 0 188.5 -30.5t147.5 -89.5q60 -58 92.5 -137.5t32.5 -178.5q0 -53 -6 -106q-5 -43 -21 -142h-759q-2 -10 -2 -16l-2 -16l-3 -30q0 -98 67 -149q68 -51 200 -51q108 0 214 31q108 32 201 90l-51 -269 q-190 -84 -410 -84q-251 0 -378 118zM876 684q5 14 6 28q1 5 1 13v12q0 85 -51 134t-140 49q-100 0 -171 -59.5t-111 -176.5h466z" />
-<glyph unicode="&#x1ef2;" d="M469 1859h264l143 -264h-178zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#x1ef3;" d="M390 1647h284l209 -376h-198zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
-<glyph unicode="&#x1ef8;" d="M676 1709q-38 0 -64 -30.5t-37 -89.5h-137q25 129 90.5 197.5t161.5 68.5q38 0 70 -12t67 -39l53 -41q32 -27 70 -27q37 0 63 30.5t37 88.5h137q-27 -127 -90.5 -196.5t-161.5 -69.5q-37 0 -68.5 11.5t-68.5 39.5l-49 37q-24 18 -40.5 25t-32.5 7zM317 0l115 588 l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#x1ef9;" d="M1158 1554q-23 -141 -85 -212.5t-161 -71.5q-38 0 -71 13q-27 10 -72 44l-49 37l-5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q18 130 87 207q33 37 74.5 57t89.5 20q34 0 66 -13q15 -6 34 -19t40 -29l51 -39q40 -31 72 -31q38 0 63.5 34t34.5 95h139zM-65 -424 l45 223h117q91 0 137 30q53 33 110 142l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-57 -100 -104 -161t-89 -90q-76 -52 -208 -52h-240z" />
-<glyph unicode="&#x2000;" />
-<glyph unicode="&#x2001;" />
-<glyph unicode="&#x2002;" />
-<glyph unicode="&#x2003;" />
-<glyph unicode="&#x2004;" />
-<glyph unicode="&#x2005;" />
-<glyph unicode="&#x2006;" />
-<glyph unicode="&#x2007;" />
-<glyph unicode="&#x2008;" />
-<glyph unicode="&#x2009;" />
-<glyph unicode="&#x200a;" />
-<glyph unicode="&#x2010;" d="M299 735h629l-56 -291h-628z" />
-<glyph unicode="&#x2011;" d="M299 735h629l-56 -291h-628z" />
-<glyph unicode="&#x2012;" d="M-10 690h1233l-49 -246h-1233z" />
-<glyph unicode="&#x2013;" d="M-10 690h1233l-49 -246h-1233z" />
-<glyph unicode="&#x2014;" d="M-10 690h1233l-49 -246h-1233z" />
-<glyph unicode="&#x2015;" d="M-10 690h1233l-49 -246h-1233z" />
-<glyph unicode="&#x2016;" d="M257 1565h227v-2048h-227v2048zM747 1565h227v-2048h-227v2048z" />
-<glyph unicode="&#x2017;" d="M0 -18h1233v-190h-1233v190zM0 -293h1233v-190h-1233v190z" />
-<glyph unicode="&#x2018;" d="M473 1174l270 382h215l-172 -382l-53 -271h-313z" />
-<glyph unicode="&#x2019;" d="M592 1286l53 270h313l-53 -270l-270 -383h-215z" />
-<glyph unicode="&#x201a;" d="M344 96l53 271h314l-54 -271l-270 -383h-215z" />
-<glyph unicode="&#x201b;" d="M496 1286l56 270h313l-56 -270l17 -383h-215z" />
-<glyph unicode="&#x201c;" d="M248 1174l270 382h215l-172 -382l-53 -271h-313zM768 1174l270 382h215l-172 -382l-53 -271h-313z" />
-<glyph unicode="&#x201d;" d="M319 1286l54 270h313l-53 -270l-271 -383h-215zM840 1286l53 270h313l-53 -270l-270 -383h-215z" />
-<glyph unicode="&#x201e;" d="M94 96l51 271h314l-51 -271l-273 -383h-213zM614 96l52 271h313l-51 -271l-273 -383h-213z" />
-<glyph unicode="&#x201f;" d="M223 1286l56 270h313l-56 -270l17 -383h-215zM743 1286l56 270h313l-55 -270l17 -383h-215z" />
-<glyph unicode="&#x2020;" d="M514 883h-332l43 223h332l76 387h256l-76 -387h332l-43 -223h-332l-209 -1080h-256z" />
-<glyph unicode="&#x2021;" d="M379 190h-330l43 224h332l90 469h-332l45 223h330l76 387h256l-76 -387h334l-45 -223h-332l-90 -469h332l-43 -224h-334l-74 -387h-256z" />
-<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
-<glyph unicode="&#x2023;" d="M256 1200l801 -440l-801 -441v881z" />
-<glyph unicode="&#x2026;" d="M-53 0q-15 0 -22.5 9t-4.5 24l59 307q4 27 32 27h255q28 0 28 -25q0 -5 -1 -8l-61 -307q-5 -27 -32 -27h-253zM357 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27h235q28 0 28 -25q0 -5 -1 -8l-58 -307q-5 -27 -32 -27h-237zM748 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27 h254q15 0 22.5 -9t4.5 -24l-59 -307q-5 -27 -32 -27h-255z" />
-<glyph unicode="&#x202f;" />
-<glyph unicode="&#x2030;" d="M286 856q-60 0 -112 22.5t-90 60.5q-42 42 -63 94t-21 111q0 63 22.5 115.5t59.5 89.5q40 40 93 61.5t112 21.5q61 0 112.5 -22.5t89.5 -61.5q38 -38 60 -90t22 -112t-22 -114t-60 -92q-42 -43 -95 -63.5t-108 -20.5zM285 1018q50 0 88 39q20 21 28.5 43t8.5 46 q0 50 -37 87t-89 37q-51 0 -86 -35q-36 -36 -36 -88q0 -54 36 -91q36 -38 87 -38zM35 664l1044 415l39 -94l-1046 -420zM330 0q-120 0 -202 84q-83 85 -83 206q0 63 21 112t62 90q83 83 201 83q121 0 204 -83q40 -40 61.5 -91t21.5 -113q0 -58 -20 -108t-64 -95 q-84 -85 -202 -85zM946 0q-57 0 -107.5 20.5t-92.5 61.5q-42 42 -63 93.5t-21 109.5v4q0 58 20.5 109.5t61.5 93.5q41 41 92.5 62t109.5 21q60 0 113 -22.5t91 -60.5q42 -42 62.5 -94.5t20.5 -109.5t-20.5 -109t-62.5 -94q-39 -40 -91 -62.5t-113 -22.5zM330 162q50 0 88 39 q20 21 28.5 43t8.5 46q0 50 -37 87t-88 37t-87 -36t-36 -87q0 -54 36 -91q36 -38 87 -38zM946 162q24 0 47.5 10t41.5 28q15 15 25.5 38.5t10.5 52.5q0 48 -37 85q-38 37 -88 38q-23 0 -45.5 -9t-40.5 -27q-16 -16 -26.5 -39.5t-10.5 -50.5q0 -24 9.5 -47.5t26.5 -41.5 q14 -15 37.5 -26t49.5 -11z" />
-<glyph unicode="&#x2031;" d="M286 856q-59 0 -111 22.5t-91 61.5t-61.5 92t-22.5 113t22.5 112.5t61.5 91t91 61t111 22.5q60 0 112 -22.5t90.5 -61.5t60.5 -91t22 -112t-22.5 -112.5t-61 -92t-90.5 -62t-111 -22.5zM285 1018q25 0 48 10.5t40 28t27 40.5t10 49q0 25 -10 47.5t-27 39.5t-40 27t-49 10 t-48 -9.5t-38.5 -26t-26 -39t-9.5 -48.5t9.5 -49.5t26.5 -41t39 -28t48 -10.5zM35 664l1044 415l39 -94l-1046 -420zM254 0q-54 0 -100 22.5t-80.5 61.5t-54 92t-19.5 113t20 112.5t54.5 91t81.5 60.5t101 22q103 0 175 -83l2 -3l3 3q37 42 83.5 63t95.5 21t95.5 -21 t84.5 -63l1 -3l3 3q74 83 176 83q54 0 101 -22.5t81.5 -61t54.5 -90.5t20 -112t-20 -112.5t-54.5 -92t-81 -62t-100.5 -22.5q-102 0 -176 83l-4 4l-1 -3q-75 -84 -180 -84q-104 0 -178 83l-4 4l-2 -3q-75 -84 -178 -84zM253 162q22 0 42.5 10.5t35.5 28.5t24 41t9 48 t-9 47.5t-24.5 39.5t-36 27t-42.5 10t-41.5 -9.5t-34.5 -26.5t-23.5 -39.5t-8.5 -48.5t8.5 -49t23.5 -40.5t34.5 -28t42.5 -10.5zM616 162q22 0 42 10t35 27t24 39.5t9 46.5v4q0 25 -9 48t-24.5 40t-35.5 27t-42 10t-41.5 -10t-34.5 -27.5t-23.5 -40.5t-8.5 -48t8.5 -48 t23 -40t34.5 -27.5t43 -10.5zM978 162q23 0 43 10t35 27.5t24 40t9 48.5t-9 48.5t-24 39.5t-35.5 27t-42.5 11q-22 0 -41 -9.5t-33.5 -25.5t-23 -35.5t-10.5 -40.5v-14v-14q2 -21 10.5 -41.5t23 -36.5t33 -25.5t41.5 -9.5z" />
-<glyph unicode="&#x2034;" d="M479 1493h278l-361 -373h-162zM854 1493h278l-361 -373h-162zM1229 1493h278l-361 -373h-162z" />
-<glyph unicode="&#x2035;" d="M681 1493h278l101 -373h-162z" />
-<glyph unicode="&#x2036;" d="M491 1493h278l101 -373h-162zM871 1493h278l101 -373h-162z" />
-<glyph unicode="&#x2037;" d="M306 1493h278l101 -373h-162zM686 1493h278l101 -373h-162zM1056 1493h278l101 -373h-162z" />
-<glyph unicode="&#x2039;" d="M265 535l25 131l547 393l-50 -252l-317 -227l229 -226l-41 -213z" />
-<glyph unicode="&#x203a;" d="M402 379l322 221l-235 221l47 238l391 -393l-25 -131l-545 -394z" />
-<glyph unicode="&#x203c;" d="M317 1054l71 454h286l-72 -457l-159 -575h-139zM867 1054l71 454h286l-72 -457l-159 -575h-139zM292 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57 q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM842 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5 q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13z" />
-<glyph unicode="&#x203d;" d="M536 1252l-22 -8q-50 -18 -100 -43t-107 -62l52 268q218 113 426 113q87 0 155 -19t115.5 -55t72 -87t24.5 -115q0 -20 -2 -38.5t-6 -38.5q-8 -38 -22.5 -73t-40.5 -70t-64.5 -73t-92.5 -83l-105 -86q-40 -33 -65.5 -58.5t-41.5 -49.5t-25 -48.5t-15 -54.5q-1 -9 -4 -21 t-7 -26l-24 -123h-267zM753 997q39 34 66.5 70t35.5 78q3 16 3 32q0 43 -30 69q-11 9 -24 15zM440 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57 q-26 -24 -59.5 -38t-71.5 -14z" />
-<glyph unicode="&#x203e;" d="M0 1547h1233v-190h-1233v190z" />
-<glyph unicode="&#x203f;" d="M618 -485q-164 0 -332.5 40t-352.5 123v161q179 -69 347.5 -104t335.5 -35q331 0 685 139v-161q-185 -83 -352 -123t-331 -40z" />
-<glyph unicode="&#x2045;" d="M580 1556h507l-38 -190h-242l-122 -628h242l-37 -190h-242l-122 -628h242l-37 -190h-508z" />
-<glyph unicode="&#x2046;" d="M143 -80h242l122 628h-242l37 190h242l122 628h-242l37 190h508l-357 -1826h-506z" />
-<glyph unicode="&#x2047;" d="M154 555q22 74 38.5 122.5t29 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5 t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM770 555q22 74 38.5 122.5t29 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5 q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75 t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM211 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56 q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM842 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
-<glyph unicode="&#x2048;" d="M138 555q23 74 39 122.5t28.5 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5 t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM808 838l129 655h266l-127 -655l-102 -357h-199zM183 -55q-35 0 -59 11.5 t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM792 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5 q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
-<glyph unicode="&#x2049;" d="M696 555q22 74 38.5 122.5t29 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5 t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM262 838l129 655h266l-127 -655l-102 -357h-199zM253 -55q-35 0 -59 11.5 t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM782 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5 q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
-<glyph unicode="&#x204b;" d="M332 1493h520q94 0 169 -23.5t126.5 -67t79 -105t27.5 -137.5q0 -43 -9 -89q-17 -89 -60 -161.5t-108 -126.5t-151 -88t-189 -46l-164 -846h-188l300 1543h-190l-300 -1543h-191z" />
-<glyph unicode="&#x205f;" />
-<glyph unicode="&#x2070;" d="M586 1103q-133 0 -208 65.5t-75 203.5q0 49 9.5 108t27 118t41 113.5t52.5 95.5q56 80 140.5 121.5t192.5 41.5q132 0 208 -65.5t76 -201.5q0 -46 -9 -104t-26.5 -118t-42 -117t-55.5 -100q-55 -78 -137.5 -119.5t-193.5 -41.5zM608 1241q53 0 87.5 31.5t60.5 83.5 q18 37 34 84t27 95t17.5 93t6.5 79q0 63 -23 93.5t-74 30.5q-50 0 -85.5 -28.5t-63.5 -85.5q-17 -35 -32.5 -81t-27 -94t-18 -94.5t-6.5 -81.5q0 -125 97 -125zM674 1466q-36 0 -62 20t-26 49q0 31 26 51.5t62 20.5q18 0 34.5 -5.5t29 -15t20 -22t7.5 -27.5q0 -29 -26.5 -50 t-64.5 -21z" />
-<glyph unicode="&#x2074;" d="M659 1300h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM686 1443l64 330l-314 -330h250z" />
-<glyph unicode="&#x2075;" d="M507 1103q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5 t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
-<glyph unicode="&#x2076;" d="M596 1103q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13q-109 0 -185.5 -60t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132 t-80.5 -105t-126 -69t-165 -25zM609 1237q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60t-13.5 -69.5q0 -57 31.5 -86t84.5 -29z" />
-<glyph unicode="&#x2077;" d="M780 1810h-449l36 145h683l-29 -117l-536 -718h-227z" />
-<glyph unicode="&#x2078;" d="M596 1103q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121 q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM707 1625q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM616 1236q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5 q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
-<glyph unicode="&#x2079;" d="M496 1103q-48 0 -96.5 6.5t-110.5 26.5l36 150q43 -25 93 -37.5t101 -12.5q112 0 186.5 60t108.5 178q-87 -73 -214 -73q-59 0 -106 16t-80 46t-50.5 73.5t-17.5 99.5q0 69 27 130t78.5 106t125.5 71.5t167 26.5q149 0 227.5 -71t78.5 -217q0 -53 -10.5 -111 t-31.5 -114.5t-51 -109t-69 -94.5q-72 -78 -169.5 -114t-222.5 -36zM665 1533q40 0 73.5 16t57.5 42.5t37.5 60.5t13.5 69q0 58 -33 86.5t-84 28.5q-39 0 -71.5 -15.5t-56.5 -41.5t-37.5 -60t-13.5 -71q0 -58 31 -86.5t83 -28.5z" />
-<glyph unicode="&#x207a;" d="M542 961h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
-<glyph unicode="&#x207b;" d="M270 1095h692v-134h-692v134z" />
-<glyph unicode="&#x207c;" d="M284 1221h666v-132h-666v132zM284 966h666v-133h-666v133z" />
-<glyph unicode="&#x207d;" d="M485 517q-52 97 -77 188.5t-25 182.5q0 325 325 650h142q-294 -348 -294 -676q0 -81 17.5 -166t53.5 -179h-142v0z" />
-<glyph unicode="&#x207e;" d="M383 517q294 349 294 676q0 81 -17.5 166t-53.5 179h142q102 -192 102 -371q0 -325 -325 -650h-142v0z" />
-<glyph unicode="&#x208a;" d="M542 293h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
-<glyph unicode="&#x208b;" d="M270 427h692v-134h-692v134z" />
-<glyph unicode="&#x208c;" d="M284 553h666v-132h-666v132zM284 298h666v-133h-666v133z" />
-<glyph unicode="&#x208d;" d="M485 -151q-52 97 -77 188.5t-25 182.5q0 325 325 650h142q-294 -348 -294 -676q0 -81 17.5 -166t53.5 -179h-142v0z" />
-<glyph unicode="&#x208e;" d="M383 -151q294 349 294 676q0 81 -17.5 166t-53.5 179h142q102 -192 102 -371q0 -325 -325 -650h-142v0z" />
-<glyph unicode="&#x20a0;" d="M674 416q-122 -84 -255 -84q-84 0 -149.5 31t-110.5 88t-69 138t-24 181q0 35 2.5 72t7.5 71q17 130 61 237.5t109 183.5t149 118t182 42q68 0 124.5 -20.5t107.5 -62.5l-32 -232q-45 51 -96 78.5t-109 27.5q-56 0 -103.5 -25.5t-85 -73.5t-63 -117t-36.5 -156 q-3 -24 -5 -51.5t-2 -53.5q0 -126 49 -196t143 -70q114 0 236 105l65 473h542l-29 -218h-342l-29 -209h322l-30 -218h-321l-35 -257h354l-29 -218h-556z" />
-<glyph unicode="&#x20a1;" d="M210 146q-74 85 -108.5 190.5t-34.5 244.5q0 168 48 327.5t143 291.5q56 78 121 135t134.5 96t141.5 60t143 26l33 76h170l-35 -81q28 -5 52.5 -10t38.5 -9q10 -3 18 -6l45 106h171l-70 -164q9 -5 18.5 -10t19.5 -10l-53 -309q-48 43 -96 72l-395 -922q85 0 179.5 36.5 t214.5 114.5l-55 -331q-118 -49 -224.5 -74t-203.5 -25h-15t-15 1l-26 -62h-171l38 89q-27 8 -52.5 18.5t-48.5 24.5l-57 -132h-170zM965 1231q-46 10 -98 10h-17l-374 -875q4 -8 14 -18q16 -19 33.5 -34.5t37.5 -26.5zM651 1174q-60 -42 -111 -111q-132 -179 -132 -445v-10 z" />
-<glyph unicode="&#x20a2;" d="M611 -29q-124 0 -224.5 42t-172 121.5t-110 195t-38.5 261.5q0 79 12 159.5t35 158.5t58 151.5t81 139.5q54 77 120 137t141 100.5t157 61.5t169 21q98 0 194.5 -27t196.5 -84l-51 -309q-81 76 -163.5 108.5t-159.5 32.5q-99 0 -183 -47t-145 -129.5t-95.5 -195 t-34.5 -242.5q0 -98 20 -163.5t60 -115.5q25 -30 54 -51l115 711h267l-28 -173q51 94 129.5 145.5t175.5 51.5q17 0 34.5 -1.5t41.5 -5.5l-46 -291q-28 18 -61 28t-71 10q-103 0 -170 -78t-92 -230l-33 -202q20 5 39 10.5t42 14.5q93 36 210 114l-55 -331q-115 -49 -219 -74 t-200 -25z" />
-<glyph unicode="&#x20a3;" d="M123 260h-117l34 188h117l184 1045h945l-52 -291h-594l-49 -278h559l-53 -291h-558l-33 -185h108l-33 -188h-108l-46 -260h-351z" />
-<glyph unicode="&#x20a4;" d="M20 266h203l32 184h-187l41 239h190l15 87h-193l40 239h193q24 129 68.5 224.5t113.5 157.5t164 92.5t219 30.5q166 0 318 -54l-50 -286q-54 37 -116.5 57t-128.5 20q-111 0 -172.5 -60t-85.5 -182h318l-40 -239h-319l-14 -87h321l-41 -239h-325l-33 -184h488l-46 -266 h-1020z" />
-<glyph unicode="&#x20a5;" d="M466 306l34 278q7 57 10.5 103.5t3.5 76.5q0 37 -5 60q-5 24 -21.5 38.5t-43.5 14.5q-65 0 -110 -85q-44 -84 -64 -241l-67 -551h-225l136 1120h225l-20 -164q107 191 236 191q73 0 121 -54t65 -154l161 371h108l-76 -174q16 5 31.5 8t33.5 3q98 0 148.5 -81.5 t50.5 -230.5q0 -36 -2.5 -75.5t-7.5 -77.5l-84 -682h-225l72 584l4 26l5 41q1 9 2.5 22t2.5 27t1.5 28t0.5 26q0 40 -8 70q-15 53 -64 53q-63 0 -109 -84l-14 -29q-17 -42 -30 -96.5t-21 -117.5l-67 -550h-214l-82 -190h-107z" />
-<glyph unicode="&#x20a6;" d="M7 438h-66l38 194h65l45 229h-66l38 194h65l86 438h430l60 -438h161l86 438h365l-86 -438h66l-38 -194h-65l-45 -229h66l-38 -194h-65l-86 -438h-430l-60 438h-161l-86 -438h-365zM506 632l-31 229h-21l-45 -229h97zM781 632l45 229h-97l31 -229h21z" />
-<glyph unicode="&#x20a7;" d="M1049 -29q-51 0 -106 18q-10 4 -20 7.5t-21 8.5l-1 -5h-138q-75 0 -114 67.5t-39 198.5q0 26 1.5 58t4.5 65l42 475h-21q-9 -49 -23.5 -95t-33.5 -86.5t-43.5 -72.5t-54.5 -53q-57 -39 -142 -39h-117l-46 -518h-177l134 1493h294q54 0 95.5 -27t70.5 -76t44.5 -117.5 t18.5 -152.5h25l28 318h166l-28 -318h168l-1 -10q52 37 128 37q102 0 205 -62l-24 -278q-97 102 -188 102q-47 0 -73.5 -27t-26.5 -78q0 -32 15 -49.5t57 -37.5l30 -12q52 -24 86.5 -53.5t55.5 -68t29.5 -88t8.5 -112.5q0 -96 -18 -172.5t-52.5 -130t-84.5 -81.5t-114 -28z M347 797q62 0 95 64.5t33 175.5q0 177 -92 177h-97l-37 -417h98zM1054 209q105 0 105 107q0 18 -3.5 31.5t-12 24.5t-23 20.5t-36.5 19.5l-30 12q-45 20 -76 48.5t-50.5 69t-28.5 94t-9 122.5q0 56 6 106h-72l-42 -474q-2 -16 -2.5 -27t-0.5 -21q0 -46 14 -66t47 -20h9l6 68 q32 -41 68 -68h2v-1q9 -8 26 -17q26 -14 50.5 -21.5t52.5 -7.5z" />
-<glyph unicode="&#x20a8;" d="M871 -29q-32 0 -59.5 4.5t-59.5 13.5q-11 3 -21 6t-20 7v-2h-216l-58 371q-18 112 -43 153q-26 41 -75 41h-58l-58 -565h-203l153 1493h310q137 0 201 -74t64 -234q0 -49 -6 -104q-15 -140 -59.5 -237t-131.5 -146q21 -9 38 -30.5t29 -50.5q14 -32 25 -81.5t21 -111.5 l19 -118q48 -48 104 -72.5t110 -24.5q64 0 96.5 34t32.5 99q0 20 -3.5 34.5t-13.5 24.5t-26.5 17.5t-42.5 13.5l-32 8q-105 26 -150.5 88t-45.5 178q0 22 1.5 44t3.5 47q34 350 297 350q54 0 109.5 -15t119.5 -47l-28 -272q-113 96 -213 96q-52 0 -83 -25.5t-35 -77.5 q0 -2 -0.5 -9.5t-0.5 -13.5q0 -29 19 -48.5t63 -29.5l32 -9q61 -17 102 -38t66 -52t35.5 -74t10.5 -103q0 -44 -6 -99q-20 -174 -94.5 -266.5t-219.5 -92.5zM374 831q64 0 96.5 46.5t42.5 146.5q3 31 3 57q0 71 -24.5 102t-78.5 31h-85l-40 -383h86z" />
-<glyph unicode="&#x20a9;" d="M111 854h-111l17 146h90l-3 118h-73l17 146h52l-5 229h219l6 -229h241l59 229h221l5 -229h242l59 229h217l-58 -229h52l-17 -146h-72l-31 -118h90l-17 -146h-110l-219 -854h-264l-23 854h-79l-219 -854h-264zM494 1000l30 118h-200l3 -118h167zM692 1000l-3 118h-5 l-31 -118h39zM1020 1000l30 118h-200l3 -118h167zM456 854h-125l11 -446zM982 854h-125l11 -446z" />
-<glyph unicode="&#x20aa;" d="M210 1493h397q314 0 314 -386q0 -54 -6 -113t-17 -128l-58 -345h-176l58 345q9 54 14.5 98t5.5 81q0 87 -35.5 126t-117.5 39h-189l-211 -1238h-238zM685 -28q-159 0 -237 94t-78 289q0 54 6 113t18 130l58 345h176l-58 -345q-9 -53 -14.5 -96t-5.5 -82q0 -44 8 -75.5 t26 -51.5t47 -29.5t71 -9.5h190l210 1239h239l-259 -1522z" />
-<glyph unicode="&#x20ab;" d="M685 -29q-73 0 -131.5 28t-99.5 81.5t-63 132t-22 180.5q0 64 8.5 129t24.5 127t38 119t48 105q73 136 175 206t219 70q58 0 105.5 -17t83 -48.5t57.5 -75t29 -97.5l66 340h-304l37 189h303l23 116h293l-23 -116h146l-37 -189h-146l-243 -1251h-291l31 166 q-66 -97 -148 -146t-179 -49zM816 211q63 0 115.5 40t90.5 104.5t59 146.5t21 165q0 123 -44.5 182.5t-115.5 59.5q-63 0 -114 -42t-87.5 -108.5t-56 -150t-19.5 -165.5q0 -121 41 -176.5t110 -55.5zM417 -218h631l-37 -188h-631z" />
-<glyph unicode="&#x20ac;" d="M651 -29q-119 0 -208 35.5t-149 98.5q-63 67 -94.5 160.5t-31.5 211.5v6h-201l84 187h127q3 28 5.5 44.5t6.5 36.5q3 16 6 30t9 40h-176l84 189h147q94 249 264 379q172 131 400 131q82 0 160 -18q77 -18 151 -54l-64 -328q-29 40 -62 68.5t-63 45.5q-35 20 -73.5 29 t-76.5 9q-51 0 -99 -16.5t-91 -50.5q-42 -33 -78 -81t-65 -114h402l-82 -189h-385q-2 -6 -4 -17t-4.5 -22t-4.5 -21.5t-3 -15.5l-15 -75h346l-82 -187h-278q8 -125 71 -194q64 -70 170 -70q36 0 73.5 7.5t74.5 23.5q35 15 80.5 44t107.5 77l-63 -328q-77 -36 -154 -54 q-80 -18 -162 -18z" />
-<glyph unicode="&#x20ad;" d="M119 712h-95l26 152h95l106 629h285l-91 -545l504 545h331l-580 -629h328l-25 -152h-333l415 -712h-358l-343 588l-99 -588h-285z" />
-<glyph unicode="&#x20ae;" d="M389 350l-111 -58l-29 77l160 83l32 168l-111 -58l-29 77l160 83l94 510h-386l56 261h1066l-56 -261h-375l-51 -288l110 57l29 -77l-158 -82l-33 -168l110 57l29 -77l-159 -82l-111 -572h-305z" />
-<glyph unicode="&#x20af;" d="M140 -29q-38 0 -64.5 16.5t-43 42.5t-24.5 59.5t-8 67.5q0 11 0.5 22t1.5 19q4 46 17.5 88.5t36 75.5t53 52.5t68.5 19.5q16 0 32.5 -4t30.5 -12q9 27 18 68l178 811q-5 -3 -9.5 -6.5t-9.5 -7.5q-9 -9 -17.5 -19.5t-17 -26t-18 -37.5t-19.5 -53l-108 65q10 35 25 71 t33 68.5t37.5 59.5t39.5 45q35 33 81 48.5t100 15.5q112 0 187 -61.5t117 -170.5q17 -46 27 -92.5t15 -87.5t6 -74.5t1 -52.5q0 -63 -9 -170t-41 -248q-14 -64 -32.5 -128t-43.5 -128q-25 -63 -58 -124t-71 -107q-42 -51 -89.5 -78t-95.5 -27q-31 0 -56 10.5t-47 30.5 q-14 13 -23.5 23.5t-16.5 18.5l-29 37q-10 -22 -18 -35q-25 -42 -59.5 -63.5t-76.5 -21.5zM482 181q26 0 50.5 17t47 47.5t42.5 73t38 93.5q14 40 28 89t26 101t21 105t14 101q3 30 5 66.5t2 67.5q0 9 -0.5 30t-3.5 49.5t-8.5 61t-15.5 64.5q-21 67 -59 111t-89 50 l-182 -825q-4 -17 -10 -44t-13 -54.5t-12.5 -50t-7.5 -30.5l18 -27q21 -31 36.5 -49.5t28.5 -29t23.5 -14t20.5 -3.5zM729 -414l164 720q32 140 72.5 247t92.5 165q21 23 47 39t58 16q44 0 77 -31t50 -88q17 -56 17 -133q0 -23 -1.5 -52.5t-4.5 -58.5q-6 -57 -19 -114.5 t-30 -105.5q-38 -108 -90.5 -163.5t-108.5 -55.5q-34 0 -55.5 24.5t-35.5 87.5l-122 -540zM1064 149q17 0 36.5 17t37.5 52q20 39 32 87.5t19 109.5q2 19 3 36t1 29q0 13 -1.5 30t-6 32.5t-12.5 26t-22 10.5q-20 0 -43.5 -25t-44.5 -81q-14 -38 -25 -84.5t-16 -92.5 q-1 -13 -1.5 -24t-0.5 -23q0 -14 1.5 -31.5t6 -32.5t13 -25.5t23.5 -10.5zM146 154q12 0 20 13.5t18 50.5q-14 30 -33 30q-14 0 -22.5 -14t-10.5 -29v-10q0 -19 8 -30t20 -11z" />
-<glyph unicode="&#x20b0;" d="M652 198q117 0 186.5 55t88.5 161q2 10 3 19.5t1 18.5q0 62 -41 114q-69 -61 -141 -88.5t-140 -27.5q-35 0 -61.5 7t-47.5 20t-38 32.5t-33 44.5q-7 11 -16 25t-20 26t-24 20.5t-26 8.5q-24 0 -63.5 -33t-102.5 -111l-174 132q57 73 106.5 124.5t94.5 83.5t87.5 47 t84.5 15q48 0 90 -17.5t71 -50.5q26 -30 45 -50.5t33 -33t24.5 -18.5t20.5 -6q11 0 30.5 6.5t33.5 20.5q-63 69 -93.5 149.5t-30.5 161.5q0 23 2 52t7 58q12 80 43.5 145.5t81.5 112.5t118.5 72.5t154.5 25.5q79 0 132 -21t85 -55.5t45.5 -79t13.5 -92.5q0 -24 -3 -51 t-8 -57q-20 -110 -64.5 -211.5t-110.5 -186.5q55 -66 82 -134.5t27 -145.5q0 -18 -1.5 -35.5t-5.5 -38.5q-20 -110 -70.5 -192.5t-127 -138t-175.5 -83t-216 -27.5zM919 925q35 51 61 115.5t36 123.5q6 36 6 64q0 15 -2.5 33.5t-9 35t-17.5 28t-28 11.5q-19 0 -37 -14 t-33 -38t-26 -55t-17 -65q-6 -35 -6 -66q0 -106 73 -173z" />
-<glyph unicode="&#x20b1;" d="M193 909h-86l15 72h85l18 90h-89l14 72h89l68 350h420q117 0 207 -23t151.5 -67.5t93 -110t31.5 -149.5h84l-16 -72h-71q-2 -23 -5.5 -45t-8.5 -45h72l-15 -72h-76q-37 -112 -105 -190.5t-184 -118.5q-117 -41 -301 -41h-164l-109 -559h-295zM894 1143q-32 102 -220 102 h-121l-20 -102h361zM892 981q5 20 7.5 42.5t3.5 47.5h-383l-18 -90h390zM612 807q179 0 248 102h-371l-20 -102h143z" />
-<glyph unicode="&#x20b2;" d="M470 -22q-104 15 -179.5 63.5t-124.5 122t-73 167t-24 198.5q0 100 21 216q33 184 97 320.5t149.5 229.5t187.5 146t212 71l25 144h155l-24 -137q88 -4 176 -29.5t172 -80.5l-43 -248q-82 63 -164 96t-180 34l-188 -1090q17 1 34.5 2.5t36.5 4.5q31 5 68.5 21t72.5 46 l56 321h-111l35 208h320l-120 -693q-121 -70 -229 -101t-202 -37l-24 -138h-156zM693 1265q-52 -20 -91.5 -48t-75.5 -68q-66 -73 -108 -172.5t-65 -231.5q-8 -49 -12.5 -92t-4.5 -84q0 -137 46.5 -224.5t130.5 -121.5z" />
-<glyph unicode="&#x20b3;" d="M48 357h-70l33 195h126l68 149h-170l32 195h228l273 597h323l76 -597h227l-31 -195h-171l19 -149h127l-33 -195h-69l45 -357h-296l-45 357h-396l-164 -357h-296zM671 896l-16 138l-65 -138h81zM716 552l-20 149h-195l-68 -149h283z" />
-<glyph unicode="&#x20b4;" d="M505 -29q-220 0 -335.5 82t-115.5 249q0 30 3.5 56.5t9.5 61.5l3 18h-129l38 194h174q12 16 20 25.5t13.5 16.5t9.5 11.5t9 9.5q47 49 116.5 91.5t157.5 74.5h-456l38 194h811q7 11 12.5 25t8.5 30q2 8 3 18t1 21q0 60 -49.5 93.5t-144.5 33.5q-96 0 -200 -35t-213 -102 l56 288q111 46 218.5 69.5t209.5 23.5q201 0 307 -88t106 -248q0 -23 -2.5 -48t-7.5 -51q-2 -8 -3.5 -15t-3.5 -15h124l-38 -194h-181q-2 -3 -8.5 -9.5l-17.5 -17.5q-53 -50 -133.5 -93t-203.5 -86l-65 -23h565l-38 -194h-802q-3 -8 -5.5 -17t-4.5 -18q-2 -11 -3 -21.5 t-1 -19.5q0 -71 50 -109t152 -38q104 0 223 41.5t251 124.5l-59 -305q-114 -51 -228.5 -78t-241.5 -27z" />
-<glyph unicode="&#x20b5;" d="M585 -27q-58 4 -121.5 18.5t-124.5 41.5t-115.5 68t-95.5 98.5t-65.5 133.5t-24.5 172q0 37 4 79.5t13 88.5q24 121 71.5 219t112 174t140.5 131t157.5 92t163 56.5t156.5 23.5l36 187h162l-37 -191q29 -4 56.5 -9t53.5 -13q99 -28 182 -83l-60 -309q-66 78 -139 112.5 t-143 41.5l-169 -869q73 7 158 41.5t185 113.5l-60 -309q-54 -28 -108 -48.5t-107 -34.5q-32 -8 -60.5 -13t-57.5 -9l-54 -278h-162zM803 1095q-58 -14 -117 -49q-59 -36 -106 -89t-80 -116t-51 -131.5t-18 -134.5q0 -82 28.5 -157t85.5 -124q39 -33 93 -48z" />
-<glyph unicode="&#x20b7;" d="M122 510h109l-1 -65q23 39 57 60t74 21q38 0 62.5 -21t29.5 -58q17 36 53.5 57.5t78.5 21.5q53 0 84 -32t31 -91l-2 -29l-1 -20l-5 -35l-7 -35l-10 -53q78 23 120.5 74.5t42.5 123.5q0 66 -34.5 110.5t-104.5 74.5l-119 50q-102 43 -162 79.5t-92 76.5q-31 38 -46.5 86 t-15.5 115q0 111 42 202t119 158q79 67 186 103t233 36q105 0 199.5 -20t189.5 -62l-57 -285q-68 62 -158 93.5t-196 31.5q-126 0 -199 -56q-35 -27 -54.5 -63.5t-19.5 -71.5q0 -50 45.5 -93.5t138.5 -83.5l7 -3l116 -51q147 -65 214 -156t67 -227q0 -111 -40.5 -204 t-119.5 -161q-135 -114 -352 -134l-19 -176h-135l18 174q-39 3 -98 11l-21 -185h-135l26 213q-61 18 -94 31l-32 -244h-135zM314 284l4 20q5 25 5 39q1 3 1 12q0 47 -40 47q-22 0 -35 -15t-22 -46l-6 -22q42 -27 90 -49zM549 284q10 41 10 73q0 45 -39 45q-23 0 -36 -15.5 t-22 -46.5q-5 -17 -13 -56l-11 -57q48 -10 98 -12z" />
-<glyph unicode="&#x20b8;" d="M235 1493h1053l-50 -258h-1053zM490 857h-379l51 258h1053l-51 -258h-379l-166 -857h-295z" />
-<glyph unicode="&#x20b9;" d="M445 377l-12 44q-46 169 -153 169h-166l48 248h211q120 0 185 62q16 15 29.5 34t24.5 39h-465l126 195h377q-2 21 -9 39.5t-16 31.5q-41 59 -163 59h-252l126 195h955l-124 -195h-224q17 -51 17 -114v-16h268l-124 -195h-181q-17 -48 -44.5 -92.5t-68.5 -80.5t-96 -61 t-127 -34q42 -9 68 -41q13 -16 26.5 -46.5t28.5 -80.5l166 -537h-324z" />
-<glyph unicode="&#x2116;" d="M-100 0l290 1493h224l19 -820l159 820h205l-290 -1493h-224l-26 779l-152 -779h-205zM1164 737q-98 -127 -201 -127q-57 0 -92.5 34t-60.5 92q-22 53 -22 144q0 82 17 170q18 94 51 176.5t76 138.5q101 127 202 127q56 0 93.5 -34.5t58.5 -93.5q23 -56 23 -145 q0 -79 -18 -169q-18 -95 -51 -176.5t-76 -136.5zM948 951q0 -60 16 -96t44 -36q26 0 53.5 31t51 83.5t35.5 114.5q10 57 10 95q0 60 -16.5 97t-44.5 37q-26 0 -53.5 -31t-50.5 -83.5t-35 -114.5q-10 -50 -10 -97zM686 331l34 173h441l-34 -173h-441z" />
-<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
-<glyph unicode="&#x2126;" d="M-10 211h238q-71 78 -104.5 167.5t-33.5 203.5q0 90 21 200q30 154 90 279t144 213.5t189 137t224 48.5q97 0 172.5 -32.5t127.5 -93t79.5 -148t27.5 -197.5q0 -96 -21 -207q-18 -95 -47 -176t-70.5 -151t-96.5 -130t-125 -114h238l-41 -211h-471l52 268q51 42 90.5 91.5 t70 108t52.5 128t39 152.5q24 120 24 209q0 70 -15 121q-17 59 -51.5 87.5t-84.5 28.5q-53 0 -99 -31t-85 -88.5t-69 -140.5t-50 -186q-21 -108 -21 -196q0 -181 90 -284l-52 -268h-473z" />
-<glyph unicode="&#x2150;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM917 420h-449l36 145h683l-29 -117l-536 -718h-227z" />
-<glyph unicode="&#x2151;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM633 -285q-48 0 -96.5 6.5t-110.5 26.5l36 150q43 -25 93 -37.5t101 -12.5q112 0 186.5 60t108.5 178q-87 -73 -214 -73q-59 0 -106 16t-80 46 t-50.5 73.5t-17.5 99.5q0 69 27 130t78.5 106t125.5 71.5t167 26.5q149 0 227.5 -71t78.5 -217q0 -53 -10.5 -111t-31.5 -114.5t-51 -109t-69 -94.5q-72 -78 -169.5 -114t-222.5 -36zM802 145q40 0 73.5 16t57.5 42.5t37.5 60.5t13.5 69q0 58 -33 86.5t-84 28.5 q-39 0 -71.5 -15.5t-56.5 -41.5t-37.5 -60t-13.5 -71q0 -58 31 -86.5t83 -28.5z" />
-<glyph unicode="&#x2153;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM703 -285q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111 l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86 t-132.5 -54.5t-181 -19z" />
-<glyph unicode="&#x2154;" d="M31 965q42 31 60.5 44t28.5 20.5t19.5 14t33.5 23.5q202 145 301 237.5t99 149.5q0 35 -36.5 59.5t-107.5 24.5q-57 0 -132 -18t-152 -53l31 162q76 23 149 35t139 12q74 0 131 -14.5t96 -40t59 -59.5t20 -74q0 -44 -24.5 -91.5t-75 -101.5t-127.5 -117t-183 -136 q-30 -21 -46.5 -32.5t-26 -18.5t-16 -11.5t-15.5 -10.5h438l-28 -145h-664zM47 618l1059 261l37 -117l-1059 -262zM703 -285q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109 q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86 t-132.5 -54.5t-181 -19z" />
-<glyph unicode="&#x2155;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5 q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
-<glyph unicode="&#x2156;" d="M31 965q42 31 60.5 44t28.5 20.5t19.5 14t33.5 23.5q202 145 301 237.5t99 149.5q0 35 -36.5 59.5t-107.5 24.5q-57 0 -132 -18t-152 -53l31 162q76 23 149 35t139 12q74 0 131 -14.5t96 -40t59 -59.5t20 -74q0 -44 -24.5 -91.5t-75 -101.5t-127.5 -117t-183 -136 q-30 -21 -46.5 -32.5t-26 -18.5t-16 -11.5t-15.5 -10.5h438l-28 -145h-664zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11 t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
-<glyph unicode="&#x2157;" d="M338 809q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9 q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34 t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z " />
-<glyph unicode="&#x2158;" d="M431 1004h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM458 1147l64 330l-314 -330h250zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67 q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
-<glyph unicode="&#x2159;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13 q-109 0 -185.5 -60t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132t-80.5 -105t-126 -69t-165 -25zM746 -151q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60 t-13.5 -69.5q0 -57 31.5 -86t84.5 -29z" />
-<glyph unicode="&#x215a;" d="M279 809q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104 q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13q-109 0 -185.5 -60 t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132t-80.5 -105t-126 -69t-165 -25zM746 -151q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60t-13.5 -69.5 q0 -57 31.5 -86t84.5 -29z" />
-<glyph unicode="&#x215b;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5 q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25 t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
-<glyph unicode="&#x215c;" d="M338 809q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9 q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89 t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237 q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5 t30.5 -34.5t45.5 -20.5t55 -6.5z" />
-<glyph unicode="&#x215d;" d="M279 809q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104 q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5 t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47 q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
-<glyph unicode="&#x215e;" d="M522 1514h-449l36 145h683l-29 -117l-536 -718h-227zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5 t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47 q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
-<glyph unicode="&#x215f;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262z" />
-<glyph unicode="&#x2189;" d="M328 809q-133 0 -208 65.5t-75 203.5q0 49 9.5 108t27 118t41 113.5t52.5 95.5q56 80 140.5 121.5t192.5 41.5q132 0 208 -65.5t76 -201.5q0 -46 -9 -104t-26.5 -118t-42 -117t-55.5 -100q-55 -78 -137.5 -119.5t-193.5 -41.5zM350 947q53 0 87.5 31.5t60.5 83.5 q18 37 34 84t27 95t17.5 93t6.5 79q0 63 -23 93.5t-74 30.5q-50 0 -85.5 -28.5t-63.5 -85.5q-17 -35 -32.5 -81t-27 -94t-18 -94.5t-6.5 -81.5q0 -125 97 -125zM416 1172q-36 0 -62 20t-26 49q0 31 26 51.5t62 20.5q18 0 34.5 -5.5t29 -15t20 -22t7.5 -27.5q0 -29 -26.5 -50 t-64.5 -21zM47 618l1059 261l37 -117l-1059 -262zM703 -285q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5 q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19z" />
-<glyph unicode="&#x2190;" d="M66 490v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x2191;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
-<glyph unicode="&#x2192;" d="M756 319l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x2193;" d="M254 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x2194;" d="M66 490v142l291 291l120 -120l-130 -130h539l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-539l130 -130l-120 -120z" />
-<glyph unicode="&#x2195;" d="M254 291l120 120l130 -130v539l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-539l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x2196;" d="M341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
-<glyph unicode="&#x2197;" d="M164 136l572 572h-187v187h412l118 -118v-412h-187v187l-572 -572z" />
-<glyph unicode="&#x2198;" d="M548 156h187l-572 572l156 156l572 -572v187h187v-412l-118 -118h-412v187z" />
-<glyph unicode="&#x2199;" d="M154 88v412h187v-187l572 572l156 -156l-572 -572h187v-187h-412z" />
-<glyph unicode="&#x219a;" d="M66 490v142l291 291l120 -120l-130 -130h393l148 240l202 -112l-79 -128h156v-224h-273l-147 -240l-202 112l79 128h-277l130 -130l-120 -120z" />
-<glyph unicode="&#x219b;" d="M756 319l130 130h-393l-148 -240l-202 112l79 128h-156v224h273l147 240l202 -112l-79 -128h277l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x219c;" d="M60 777l118 118h412v-187h-187q-3 -12 -3 -22q0 -26 17 -42.5t45 -32.5q24 -15 47 -15q17 0 34.5 8.5t31 18.5t22.5 19t9 10q17 26 23.5 38t10.5 20q12 27 24.5 45.5t29.5 34.5t41 32.5t60 38.5q18 11 46 17t61 6t53 -5.5t37 -14.5q18 -9 43 -27t50 -43t45 -57t29 -69 l-142 -88q-5 10 -9.5 21t-12 22t-18.5 22t-29 20q-11 6 -24 10t-28 4q-27 0 -57.5 -14.5t-45.5 -47.5q-35 -69 -41 -75q-2 -3 -12.5 -20.5t-28.5 -40.5t-43.5 -47.5t-56.5 -40.5q-24 -13 -49 -18.5t-51 -5.5q-57 0 -102 24t-83 68l-79 91v-187h-187v412z" />
-<glyph unicode="&#x219d;" d="M986 552l-79 -91q-39 -45 -84.5 -68.5t-96.5 -23.5q-30 0 -58.5 7.5t-53.5 20t-45 29t-32 33.5q-3 4 -11.5 17t-17.5 27t-17 25.5t-10 13.5q-11 16 -19.5 31t-21.5 44q-16 33 -45.5 47.5t-54.5 14.5q-31 0 -60.5 -17t-41.5 -38q-5 -8 -10.5 -19t-11.5 -25l-142 88 q9 39 30.5 71.5t46.5 57.5t50 42t40 25q17 9 38 14.5t54 5.5q32 0 59.5 -6t45.5 -17q29 -18 50 -31.5t38 -29.5t32.5 -36.5t34.5 -52.5t25 -43t9 -16q1 -3 10 -12t22.5 -19t30 -17.5t32.5 -7.5q24 0 54 17t48 40q5 7 7.5 13t2.5 17q0 13 -4 25h-187v187h412l118 -118v-412 h-187v187z" />
-<glyph unicode="&#x219e;" d="M66 490v142l291 291l120 -120l-130 -130h90l250 250l120 -120l-130 -130h490v-224h-490l130 -130l-120 -120l-250 250h-90l130 -130l-120 -120z" />
-<glyph unicode="&#x219f;" d="M504 490l-130 -130l-120 120l250 250v90l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-90l250 -250l-120 -120l-130 130v-490h-224v490z" />
-<glyph unicode="&#x21a0;" d="M426 319l130 130h-490v224h490l-130 130l120 120l250 -250h90l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-90l-250 -250z" />
-<glyph unicode="&#x21a1;" d="M254 291l120 120l130 -130v90l-250 250l120 120l130 -130v490h224v-490l130 130l120 -120l-250 -250v-90l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21a2;" d="M66 490v142l291 291l120 -120l-130 -130h450l250 250l120 -120l-242 -242l242 -242l-119 -120l-251 250h-450l130 -130l-120 -120z" />
-<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l120 120l250 -250h450l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-450l-251 -250z" />
-<glyph unicode="&#x21a4;" d="M66 490v142l291 291l120 -120l-130 -130h626v250h194v-724h-194v250h-626l130 -130l-120 -120z" />
-<glyph unicode="&#x21a5;" d="M254 194h250v626l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-626h250v-194h-724v194z" />
-<glyph unicode="&#x21a6;" d="M66 923h194v-250h626l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-626v-250h-194v724z" />
-<glyph unicode="&#x21a7;" d="M254 291l120 120l130 -130v626h-250v194h724v-194h-250v-626l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21a8;" d="M254 194h292l-292 291l120 120l130 -130v345l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-345l130 130l120 -120l-290 -291h290v-194h-724v194z" />
-<glyph unicode="&#x21a9;" d="M66 490v142l291 291l120 -120l-130 -130h524q12 0 26 5t25 16q12 11 16.5 25t4.5 26q0 14 -5 27.5t-16 23.5q-9 9 -22.5 15.5t-28.5 6.5v224q65 0 118 -24t91 -62q46 -46 66.5 -100t20.5 -110q0 -63 -23 -117t-64 -95q-34 -34 -86.5 -59.5t-122.5 -25.5h-524l130 -130 l-120 -120z" />
-<glyph unicode="&#x21aa;" d="M756 319l130 130h-524q-70 0 -122.5 25.5t-86.5 59.5q-41 41 -64 95t-23 117q0 56 20.5 110t66.5 100q38 38 91 62t118 24v-224q-15 0 -28.5 -6.5t-22.5 -15.5q-11 -10 -16 -23.5t-5 -27.5q0 -12 4.5 -26t16.5 -25q11 -11 25 -16t26 -5h524l-130 130l120 120l291 -291 v-142l-291 -291z" />
-<glyph unicode="&#x21ab;" d="M66 490v142l291 291l120 -120l-130 -130h228v72q0 62 22.5 115.5t64.5 95.5t94 64t114 22q65 0 118 -23.5t92 -62.5q46 -46 66.5 -101t20.5 -110q0 -60 -22 -114t-64 -96q-37 -38 -90 -62t-120 -24h-71v-224h-225v224h-228l130 -130l-120 -120zM871 673q11 0 25.5 5 t25.5 16t16 24.5t5 28.5q0 29 -21 49q-10 9 -23 15.5t-27 6.5t-28.5 -6t-23.5 -15q-13 -12 -16.5 -27t-3.5 -25v-72h71z" />
-<glyph unicode="&#x21ac;" d="M756 319l130 130h-228v-224h-225v224h-71q-63 0 -115.5 22t-93.5 63q-38 38 -62.5 92t-24.5 119q0 55 20.5 110t66.5 101q39 39 92 62.5t118 23.5q62 0 114 -22t94 -64t64.5 -95.5t22.5 -115.5v-72h228l-130 130l120 120l291 -291v-142l-291 -291zM433 673v72 q0 10 -3.5 25t-16.5 27q-9 9 -23.5 15t-28.5 6t-27 -6.5t-23 -15.5q-21 -20 -21 -49q0 -15 5 -28.5t16 -24.5t25.5 -16t25.5 -5h71z" />
-<glyph unicode="&#x21ad;" d="M66 490v142l291 291l120 -120l-130 -130q17 -13 30 -28q18 -18 37 -18q11 0 19.5 5t16.5 13q9 12 11 20q13 37 38 66t53 43q30 15 65 15q68 0 118 -59q15 -18 22.5 -33t14.5 -32q5 -13 12 -20.5t16 -12.5q10 -5 20 -5q11 0 19.5 5t16.5 13l15.5 15.5t14.5 12.5l-130 130 l120 120l291 -291v-142l-291 -291l-120 120l130 130q-11 -7 -28 -10t-34 -3q-38 0 -67 15t-55 44q-17 20 -24.5 34.5t-13.5 30.5q-3 8 -8.5 17t-19.5 16q-10 5 -19 5q-19 0 -37 -18q-3 -3 -5.5 -7t-5.5 -13q-9 -32 -35 -62.5t-56 -46.5q-15 -8 -30.5 -11.5t-37.5 -3.5 q-19 0 -36 3t-27 10l130 -130l-120 -120z" />
-<glyph unicode="&#x21ae;" d="M464 217l49 232h-166l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h195l56 270l171 -39l-49 -231h166l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-195l-56 -271z" />
-<glyph unicode="&#x21af;" d="M674 19l-238 335l138 99l107 -150l110 629l-734 -432l171 933l221 -37l-91 -493l724 420l-181 -1058l150 107l99 -139l-336 -238z" />
-<glyph unicode="&#x21b0;" d="M856 937h-392l130 -130l-120 -120l-290 291v142l290 291l120 -120l-130 -130h616v-1161h-224v937z" />
-<glyph unicode="&#x21b1;" d="M154 1161h614l-130 130l120 120l292 -291v-142l-292 -291l-120 120l130 130h-390v-937h-224v1161z" />
-<glyph unicode="&#x21b2;" d="M184 261v142l290 291l120 -120l-130 -130h392v937h224v-1161h-616l130 -130l-120 -120z" />
-<glyph unicode="&#x21b3;" d="M638 90l130 130h-614v1161h224v-937h390l-130 130l120 120l292 -291v-142l-292 -291z" />
-<glyph unicode="&#x21b4;" d="M353 291l120 120l130 -130v631h-417v224h641v-855l130 130l120 -120l-291 -291h-142z" />
-<glyph unicode="&#x21b5;" d="M64 261v142l290 291l120 -120l-130 -130h632v417h224v-641h-856l130 -130l-120 -120z" />
-<glyph unicode="&#x21b6;" d="M50 635l120 120l130 -130v33q0 12 8.5 40.5t25 64t41.5 74.5t58 73q61 63 139.5 95t169.5 32t169 -32t141 -95q60 -60 95.5 -140t35.5 -174h-214q0 44 -16.5 87t-48.5 76q-30 31 -70.5 48t-88.5 17q-94 0 -158 -66q-33 -34 -48 -70.5t-15 -62.5l130 130l120 -120 l-291 -291h-142z" />
-<glyph unicode="&#x21b7;" d="M459 635l120 120l130 -130q0 26 -15 62.5t-48 70.5q-65 66 -160 66q-51 0 -88.5 -17t-67.5 -49q-66 -68 -66 -162h-214q0 94 35.5 174t95.5 140q63 63 141 95t169 32t169.5 -32t139.5 -95q33 -34 58 -73t41.5 -74.5t25 -64t8.5 -40.5v-33l130 130l120 -120l-291 -291 h-142z" />
-<glyph unicode="&#x21b8;" d="M50 1110h1132v-140h-1132v140zM341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
-<glyph unicode="&#x21b9;" d="M66 1298h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724zM592 90l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
-<glyph unicode="&#x21ba;" d="M593 -39q-111 0 -207 41t-172 116q-79 78 -119 175t-40 209q0 108 38.5 201.5t120.5 178.5l171 -149q-46 -45 -68.5 -102t-22.5 -118q0 -66 24 -122t66 -98q39 -40 93 -65t124 -25q125 0 215 90q49 49 69.5 105.5t20.5 120.5q0 38 -6 69t-17 44l-48 72v-187h-187v412 l118 118h412v-187h-187q12 0 27.5 -16t31 -43.5t30 -64t26 -78t18.5 -85.5t7 -85q0 -98 -40.5 -195t-118.5 -175q-72 -72 -168 -114.5t-211 -42.5z" />
-<glyph unicode="&#x21bb;" d="M640 -39q-115 0 -211 42.5t-168 114.5q-78 78 -118.5 175t-40.5 195q0 61 14.5 127t36 120.5t45.5 89.5t44 35h-187v187h412l118 -118v-412h-187v187l-48 -72q-11 -13 -17 -44t-6 -69q0 -64 20.5 -120.5t69.5 -105.5q90 -90 215 -90q70 0 124 25t93 65q42 42 66 98 t24 122q0 61 -22.5 118t-68.5 102l171 149q82 -85 120.5 -178.5t38.5 -201.5q0 -112 -40 -209t-119 -175q-76 -75 -172 -116t-207 -41z" />
-<glyph unicode="&#x21bc;" d="M66 632l291 291l120 -120l-130 -130h820v-224h-1101v183z" />
-<glyph unicode="&#x21bd;" d="M66 490v183h1101v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21be;" d="M504 1101h184l290 -291l-120 -120l-130 130v-820h-224v1101z" />
-<glyph unicode="&#x21bf;" d="M504 820l-130 -130l-120 120l292 291h182v-1101h-224v820z" />
-<glyph unicode="&#x21c0;" d="M66 673h820l-130 130l120 120l291 -291v-183h-1101v224z" />
-<glyph unicode="&#x21c1;" d="M756 319l130 130h-820v224h1101v-183l-291 -291z" />
-<glyph unicode="&#x21c2;" d="M504 1101h224v-820l130 130l120 -120l-290 -291h-184v1101z" />
-<glyph unicode="&#x21c3;" d="M254 291l120 120l130 -130v820h224v-1101h-182z" />
-<glyph unicode="&#x21c4;" d="M756 574l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291zM66 261v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21c5;" d="M262 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820zM496 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21c6;" d="M66 745v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120zM756 90l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21c7;" d="M66 261v142l171 171l-171 171v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-130 -130h820v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21c8;" d="M262 820l-130 -130l-120 120l292 291h142l171 -171l171 171h142l290 -291l-120 -120l-130 130v-820h-224v820l-130 -130l-130 130v-820h-224v820z" />
-<glyph unicode="&#x21c9;" d="M756 90l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-291 -291z" />
-<glyph unicode="&#x21ca;" d="M12 291l120 120l130 -130v820h224v-820l131 130l129 -130v820h224v-820l130 130l120 -120l-290 -291h-142l-172 171l-170 -171h-142z" />
-<glyph unicode="&#x21cb;" d="M66 887l291 291l120 -120l-130 -130h820v-224h-1101v183zM756 90l130 130h-820v224h1101v-183l-291 -291z" />
-<glyph unicode="&#x21cc;" d="M66 928h820l-130 130l120 120l291 -291v-183h-1101v224zM66 261v183h1101v-224h-820l130 -130l-120 -120z" />
-<glyph unicode="&#x21cd;" d="M66 490v142l291 291l120 -120l-68 -68h379l86 158l97 -59l-54 -99h250v-102h-312l-80 -144h392v-102h-443l-86 -156l-96 58l54 98h-187l68 -68l-120 -120zM649 489l78 144h-420l-72 -72l72 -72h342z" />
-<glyph unicode="&#x21ce;" d="M66 490v142l291 291l120 -120l-68 -68h129v188h157v-188h129l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-129v-188h-157v188h-129l68 -68l-120 -120zM538 489v144h-231l-72 -72l72 -72h231zM926 489l72 72l-72 72h-231v-144h231z" />
-<glyph unicode="&#x21cf;" d="M756 319l68 68h-379l-86 -158l-97 59l54 99h-250v102h312l80 144h-392v102h443l86 156l96 -58l-54 -98h187l-68 68l120 120l291 -291v-142l-291 -291zM926 489l72 72l-72 72h-342l-78 -144h420z" />
-<glyph unicode="&#x21d0;" d="M66 490v142l291 291l120 -120l-68 -68h758v-102h-860l-72 -72l72 -72h860v-102h-758l68 -68l-120 -120z" />
-<glyph unicode="&#x21d1;" d="M442 758l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-758h-102l1 860l-73 72l-72 -72v-860h-102v758z" />
-<glyph unicode="&#x21d2;" d="M756 319l68 68h-758v102h860l72 72l-72 72h-860v102h758l-68 68l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21d3;" d="M254 291l120 120l68 -68v758h102v-860l72 -72l73 72l-1 860h102v-758l68 68l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21d4;" d="M66 490v142l291 291l120 -120l-68 -68h415l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-415l68 -68l-120 -120zM926 489l72 72l-72 72h-619l-72 -72l72 -72h619z" />
-<glyph unicode="&#x21d5;" d="M254 291l120 120l68 -68v415l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-415l68 68l120 -120l-290 -291h-142zM689 241v619l-73 72l-72 -72v-619l72 -72z" />
-<glyph unicode="&#x21d6;" d="M312 477v-112h-187v412l118 118h412v-187h-110l533 -534l-74 -74l-606 608h-86v-86l608 -606l-74 -74z" />
-<glyph unicode="&#x21d7;" d="M313 16l608 606v86h-86l-606 -608l-74 74l533 534h-110v187h412l118 -118v-412h-187v112l-534 -535z" />
-<glyph unicode="&#x21d8;" d="M578 157h112l-535 534l74 74l606 -608h86v86l-608 606l74 74l534 -533v110h187v-412l-118 -118h-412v187z" />
-<glyph unicode="&#x21d9;" d="M125 88v412h187v-110l534 533l74 -74l-608 -606v-86h86l606 608l74 -74l-535 -534h112v-187h-412z" />
-<glyph unicode="&#x21da;" d="M66 490v142l291 291l120 -120h690v-102h-792l-89 -89h881v-102h-881l89 -89h792v-102h-690l-120 -120z" />
-<glyph unicode="&#x21db;" d="M756 319h-690v102h792l89 89h-881v102h881l-89 89h-792v102h690l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21dc;" d="M66 490v142l291 291l120 -120l-130 -130h172l75 -80l194 206l193 -206l76 80h110v-224h-68l-118 -126l-193 218l-194 -218l-118 126h-129l130 -130l-120 -120z" />
-<glyph unicode="&#x21dd;" d="M756 319l130 130h-129l-118 -126l-194 218l-193 -218l-118 126h-68v224h110l76 -80l193 206l194 -206l75 80h172l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21e0;" d="M66 490v142l291 291l120 -120l-130 -130h198v-224h-198l130 -130l-120 -120zM670 673h187v-224h-187v224zM980 673h187v-224h-187v224z" />
-<glyph unicode="&#x21e1;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130l1 -198h-225v198zM505 497h223l1 -187h-225zM505 187h223v-187h-224z" />
-<glyph unicode="&#x21e2;" d="M756 319l130 130h-198v224h198l-130 130l120 120l291 -291v-142l-291 -291zM66 673h187v-224h-187v224zM376 673h187v-224h-187v224z" />
-<glyph unicode="&#x21e3;" d="M504 1101h224v-187h-223zM504 791h224v-187h-223zM254 291l120 120l130 -130v198h224v-198l130 130l120 -120l-290 -291h-142z" />
-<glyph unicode="&#x21e4;" d="M66 923h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724z" />
-<glyph unicode="&#x21e5;" d="M592 319l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
-<glyph unicode="&#x21e6;" d="M5 561l403 423v-231h759v-384h-759v-231zM309 469h768v184h-768v93l-164 -185l164 -185v93z" />
-<glyph unicode="&#x21e7;" d="M424 759h-230l422 403l424 -403h-232v-759h-384v759zM708 90v768h94l-186 164l-184 -164h92v-768h184z" />
-<glyph unicode="&#x21e8;" d="M824 369h-758v384h758v231l404 -423l-404 -423v231zM1088 561l-164 185v-93h-768v-184h768v-93z" />
-<glyph unicode="&#x21e9;" d="M194 403h230v759h384v-759h232l-424 -403zM802 304h-94v768h-184v-768h-92l184 -164z" />
-<glyph unicode="&#x21eb;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM920 90v100h-212v668h94l-186 184l-184 -184h92v-668h-210v-100h606z" />
-<glyph unicode="&#x21ec;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM802 858l-186 184l-184 -184h370zM920 90v100h-212v569h-184v-569h-210v-100h606z" />
-<glyph unicode="&#x21ed;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM582 90v917l-150 -149h92v-668h-210v-100h268zM920 90v110h-212v658h94l-150 149v-917h268z" />
-<glyph unicode="&#x21ee;" d="M424 539h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-539h-384v539zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM708 90v548h94l-186 164l-184 -164h92v-548h184z" />
-<glyph unicode="&#x21ef;" d="M224 280h200v259h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-259h202v-280h-786v280zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM920 90v100h-212v448h94l-186 164l-184 -164h92v-448h-210v-100h606z" />
-<glyph unicode="&#x21f0;" d="M825 374h-479v-201h-280v786h280v-201h479v231l403 -423l-403 -423v231zM256 263v211h668v-93l184 185l-184 185v-93h-668v211h-100v-606h100z" />
-<glyph unicode="&#x21f1;" d="M40 1124h1123v-103h-1020v-1021h-103v1124zM455 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
-<glyph unicode="&#x21f2;" d="M430 416h186l-572 572l156 156l572 -572v187h188v-412l-118 -118h-412v187zM64 103h1022v1020h102v-1123h-1124v103z" />
-<glyph unicode="&#x21f3;" d="M194 403h230v356h-230l422 403l424 -403h-232v-356h232l-424 -403zM802 304h-94v554h94l-186 164l-184 -164h92v-554h-92l184 -164z" />
-<glyph unicode="&#x21f4;" d="M756 319l130 130h-147q-10 -35 -33 -73.5t-60.5 -70.5t-89.5 -53.5t-119 -21.5q-65 0 -114.5 19.5t-85.5 51t-59 70.5t-34 78h-78v224h78q10 37 34 77t60.5 72t85.5 53t109 21q20 0 46 -3t55.5 -13t62 -27.5t65.5 -45.5q34 -29 51.5 -59t25.5 -75h147l-130 130l120 120 l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x21f5;" d="M12 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142zM746 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
-<glyph unicode="&#x21f6;" d="M756 -165l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-171 -171l171 -171v-142l-291 -291z" />
-<glyph unicode="&#x21f7;" d="M66 490v142l291 291l120 -120l-130 -130h287v250h194v-250h339v-224h-339v-250h-194v250h-287l130 -130l-120 -120z" />
-<glyph unicode="&#x21f8;" d="M404 449h-338v224h338v250h194v-250h288l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-288v-250h-194v250z" />
-<glyph unicode="&#x21f9;" d="M514 449h-167l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h167v250h205v-250h167l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-167v-260h-205v260z" />
-<glyph unicode="&#x21fa;" d="M66 490v142l291 291l120 -120l-130 -130h217v250h194v-250h88v250h194v-250h127v-224h-127v-250h-194v250h-88v-250h-194v250h-217l130 -130l-120 -120z" />
-<glyph unicode="&#x21fb;" d="M193 449h-127v224h127v250h194v-250h87v250h194v-250h218l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-218v-250h-194v250h-87v-250h-194v250z" />
-<glyph unicode="&#x21fc;" d="M66 490v142l291 291l120 -120l-130 -130h145v263h106v-263h37v263h106v-263h145l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-145v-250h-106v250h-37v-250h-106v250h-145l130 -130l-120 -120z" />
-<glyph unicode="&#x21fd;" d="M5 561l403 423v-311h759v-224h-759v-311zM309 746l-164 -185l164 -185v370z" />
-<glyph unicode="&#x21fe;" d="M825 449h-759v224h759v311l403 -423l-403 -423v311zM1088 561l-164 185v-370z" />
-<glyph unicode="&#x21ff;" d="M5 561l403 423v-311h417v311l403 -423l-403 -423v311h-417v-311zM309 746l-164 -185l164 -185v370zM1088 561l-164 185v-370z" />
-<glyph unicode="&#x2200;" d="M33 1493h295l90 -369h395l92 369h295l-403 -1493h-361zM756 881h-279l139 -611z" />
-<glyph unicode="&#x2201;" d="M639 -29q-148 0 -263 51.5t-193.5 150.5t-119 243t-40.5 329v1q0 185 40.5 329t119 243t193.5 150.5t263 51.5q149 0 262 -51t191 -150q80 -101 121 -248h-375q-5 20 -10.5 38t-12.5 34q-23 54 -68 84t-110 30q-124 0 -176 -114q-53 -117 -53 -395v-5q0 -78 3.5 -138.5 t10.5 -108t17 -83.5t23 -64q26 -55 67 -85t107 -30t111 30t68 84q8 17 13 36t10 36h375q-41 -147 -121 -248q-78 -99 -191 -150t-262 -51z" />
-<glyph unicode="&#x2202;" d="M538 -25q-90 0 -159 29.5t-123 85.5q-56 57 -83.5 129t-27.5 165q0 96 29 178.5t88 148.5q116 131 288 131q50 0 92.5 -10.5t76.5 -32.5q66 -43 112 -137q3 22 6.5 40t7 38.5t7.5 46.5t8 64q5 42 7.5 78t2.5 74q0 54 -6 93t-19 68q-14 30 -32 43.5t-38 13.5 q-30 0 -68 -22.5t-78 -50.5q-49 -34 -87 -53.5t-73 -19.5q-43 0 -71 30q-29 31 -29 71q0 32 20.5 62t65.5 58q43 26 94.5 40t111.5 14q103 0 180 -41t134 -120q59 -81 88 -188.5t29 -250.5q0 -160 -38 -299.5t-119 -254.5q-78 -109 -176.5 -165t-220.5 -56zM535 45 q48 0 91.5 32t77.5 101q33 68 49.5 153.5t16.5 175.5q0 61 -8.5 108.5t-29.5 80.5q-20 32 -48.5 47t-60.5 15q-54 0 -96 -35t-73 -98q-32 -66 -49.5 -151t-17.5 -179q0 -69 9.5 -115t28.5 -75q20 -30 48 -45t62 -15z" />
-<glyph unicode="&#x2203;" d="M163 251h624v380h-624v231h624v390h-624v241h928v-1493h-928v251z" />
-<glyph unicode="&#x2204;" d="M231 0h-68v251h147l104 380h-251v231h318l104 390h-422v241h471l26 95h192l-26 -95h265v-1493h-669l-26 -95h-191zM787 862v390l-114 -390h114zM787 251v380h-182l-104 -380h286z" />
-<glyph unicode="&#x2205;" d="M64 208l119 119q-20 26 -38.5 58t-33 71t-23 85.5t-8.5 100.5q0 224 157 381q159 159 381 159q55 0 101 -9t85 -23.5t71 -33.5t58 -39l119 119l119 -119l-119 -119q19 -26 37 -57.5t32.5 -70.5t23 -85t8.5 -101q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5 q-54 0 -100.5 9t-85 23t-70.5 32.5t-57 37.5l-119 -119zM810 953q-13 8 -26.5 15.5t-27.5 13.5q-65 27 -138 27q-79 0 -146 -30t-114 -77q-54 -54 -80 -121.5t-26 -139.5q0 -73 27 -137q5 -14 12.5 -27t15.5 -26zM617 278q149 0 257 108q107 107 107 257q0 75 -27 140 q-5 13 -11.5 25.5t-14.5 25.5l-502 -502q12 -8 26 -15t25 -12q29 -13 65.5 -20t74.5 -7z" />
-<glyph unicode="&#x2206;" d="M427 1423h258l496 -1423h-1247zM831 221l-275 821l-274 -821h549z" />
-<glyph unicode="&#x2207;" d="M-6 1423h1247l-496 -1423h-258zM891 1202h-549l274 -821z" />
-<glyph unicode="&#x2208;" d="M636 0q-73 0 -141 26.5t-128 76t-109.5 119.5t-85.5 158q-72 175 -72 380q0 105 18.5 202t53.5 182.5t84 156t111 121.5q123 102 269 102h497v-230h-497q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h796v-230h-796q4 -38 14.5 -83.5 t27.5 -92t42.5 -90.5t61.5 -80q71 -71 153 -71h497v-230h-497v0z" />
-<glyph unicode="&#x2209;" d="M239 -117l94 250q-50 48 -92.5 113.5t-73.5 145.5t-49 173t-18 196q0 104 18.5 201t53.5 182.5t84 156t111 121.5q123 102 269 102h218l74 197l215 -80l-43 -117h33v-230h-121l-156 -417h277v-230h-363l-156 -416q5 -1 11 -1h11h497v-230h-497q-33 0 -55.5 4t-48.5 10 q-8 2 -16 2q-31 0 -47 -44t-16 -125q0 -17 0.5 -24t0.5 -20zM612 877l156 417h-132q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h275zM525 647h-188q10 -81 33 -150t54 -121z" />
-<glyph unicode="&#x220a;" d="M636 129q-73 0 -141.5 18t-128.5 51t-109.5 80.5t-85.5 106.5q-72 118 -72 255q0 71 19 137t54 123.5t84.5 105t110.5 81.5q124 68 269 68h498v-224h-498q-140 0 -234 -96q-17 -17 -34 -39.5t-27 -42.5h793v-222h-792q10 -20 25.5 -41t34.5 -41q95 -98 234 -98h498v-222 h-498v0z" />
-<glyph unicode="&#x220b;" d="M100 230h497q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-796v230h796q-5 38 -14.5 83.5t-27 92t-42.5 90.5t-61 80q-71 71 -154 71h-497v230h497q73 0 141 -26.5t128 -75.5t109.5 -119t85.5 -158q72 -176 72 -381q0 -105 -18.5 -202t-53.5 -182.5 t-84.5 -156t-110.5 -121.5q-123 -102 -269 -102h-497v230z" />
-<glyph unicode="&#x220c;" d="M100 -117l44 117h-34v230h120l157 417h-277v230h363l155 416q-5 1 -10.5 1h-10.5h-497v230h497q33 0 55.5 -4t47.5 -10q8 -2 16 -2q32 0 48 44t16 125q0 17 -0.5 24t-0.5 20l215 -80l-94 -250q49 -48 92 -113.5t74 -145.5t49 -173t18 -196q0 -104 -18.5 -201 t-53.5 -182.5t-84.5 -156t-110.5 -121.5q-123 -102 -269 -102h-217l-75 -197zM906 877q-10 81 -33 150t-54 121l-101 -271h188zM607 230q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-274l-156 -417h131z" />
-<glyph unicode="&#x220d;" d="M99 353h498q75 0 130.5 25t102.5 71q42 42 62 82h-793v222h792q-11 20 -26.5 41t-34.5 41q-95 98 -233 98h-498v222h498q73 0 141.5 -17.5t128.5 -50.5t109.5 -80.5t85.5 -106.5q72 -119 72 -257q0 -70 -18.5 -135.5t-53.5 -123t-84.5 -105t-110.5 -81.5 q-125 -69 -270 -69h-498v224z" />
-<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
-<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-256v1747h-417v-1747h-256v1954z" />
-<glyph unicode="&#x2210;" d="M152 1518h256v-1747h417v1747h256v-1954h-929v1954z" />
-<glyph unicode="&#x2211;" d="M127 -301l494 870l-494 809v140h960v-213h-647l449 -736l-451 -794h666v-211h-977v135z" />
-<glyph unicode="&#x2212;" d="M66 762h1099v-238h-1099v238z" />
-<glyph unicode="&#x2213;" d="M88 1284h1057v-238h-1057v238zM498 354h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354z" />
-<glyph unicode="&#x2215;" d="M852 1493h223l-854 -1683h-221z" />
-<glyph unicode="&#x2217;" d="M528 502l-331 -184l-76 141l332 174l-332 173l76 141l331 -182v344h172v-344l332 182l76 -141l-330 -173l330 -174l-76 -141l-332 184v-344h-172v344z" />
-<glyph unicode="&#x2218;" d="M613 372q-70 0 -130 25.5t-104.5 69.5t-70 104.5t-25.5 131.5t25.5 132t70.5 106t105.5 71t129.5 26q72 0 133 -27t106 -72q47 -48 71 -108t24 -126q0 -67 -25 -128t-71 -107q-48 -48 -109.5 -73t-129.5 -25zM614 534q36 0 67.5 13t54.5 36.5t36.5 54.5t13.5 67t-13 67 t-36 54t-54 36.5t-67 13.5t-67.5 -13.5t-54.5 -36.5t-36.5 -54.5t-13.5 -67.5t13 -67t36 -54t54 -36t67 -13z" />
-<glyph unicode="&#x2219;" d="M441 530q-28 0 -28 25q0 5 1 8l60 305q4 27 32 27h274q28 0 28 -25q0 -5 -1 -8l-61 -305q-5 -27 -32 -27h-273v0z" />
-<glyph unicode="&#x221a;" d="M256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
-<glyph unicode="&#x221b;" d="M370 1043q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
-<glyph unicode="&#x221c;" d="M444 1238h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187zM444 1381v330l-250 -330h250z" />
-<glyph unicode="&#x221d;" d="M497 223q-69 0 -127.5 30t-101.5 85t-67 131.5t-24 169.5q0 89 22.5 162.5t64 126.5t100 82.5t130.5 29.5q91 0 163 -50t124 -159q45 108 114.5 158.5t160.5 50.5v-198q-16 0 -37 -13t-46 -42q-24 -28 -43.5 -64t-39.5 -94q14 -34 26 -59.5t22.5 -44.5t20.5 -32.5 t19 -24.5q40 -46 78 -46v-199q-75 0 -143 48.5t-132 156.5q-109 -205 -284 -205zM485 422q53 0 99 52t87 161q-54 125 -91 166t-86 41q-30 0 -54.5 -15.5t-42 -43.5t-27.5 -68t-10 -89q0 -46 9 -83.5t25 -64.5t39 -41.5t52 -14.5z" />
-<glyph unicode="&#x221e;" d="M331 223q-136 0 -228 116q-46 58 -68.5 130t-22.5 165q0 91 21.5 165t65.5 130q45 58 102.5 84.5t126.5 26.5q95 0 166 -52q73 -53 122 -157q46 108 115 158q70 51 170 51q146 0 233 -112q87 -113 87 -295q0 -92 -22.5 -164.5t-67.5 -130.5q-90 -115 -227 -115 q-89 0 -156 49t-132 156q-55 -103 -126 -154t-159 -51zM319 422q54 0 100 52q47 53 87 161q-54 125 -91 166q-20 22 -41.5 31.5t-44.5 9.5q-30 0 -54.5 -15.5t-41.5 -41.5q-18 -28 -28 -68t-10 -89q0 -43 8.5 -82t25.5 -68q33 -56 90 -56zM903 422q29 0 53.5 15t42.5 43 q19 29 28 68.5t9 86.5q0 45 -8 83t-25 67q-16 27 -39 42t-52 15q-55 0 -104 -55q-48 -54 -83 -158q28 -67 49 -104t39 -57q40 -46 90 -46z" />
-<glyph unicode="&#x221f;" d="M88 1306h238v-818h819v-238h-1057v1056z" />
-<glyph unicode="&#x2220;" d="M887 1306h238l-620 -818h640v-238h-1057z" />
-<glyph unicode="&#x2223;" d="M502 1565h227v-2048h-227v2048z" />
-<glyph unicode="&#x2227;" d="M436 1186h361l253 -1186h-298l-136 874l-136 -874h-298z" />
-<glyph unicode="&#x2228;" d="M182 1186h298l136 -874l136 874h298l-253 -1186h-361z" />
-<glyph unicode="&#x2229;" d="M182 602q0 154 25 264.5t78 181.5t135 104.5t196 33.5t196 -33.5t135 -104.5t78 -181.5t25 -264.5v-602h-251v676q0 117 -48 180t-135 63t-135 -63t-48 -180v-676h-251v602z" />
-<glyph unicode="&#x222a;" d="M616 0q-114 0 -196 33.5t-135 104.5t-78 181.5t-25 264.5v602h251v-676q0 -117 48 -180t135 -63t135 63t48 180v676h251v-602q0 -154 -25 -264.5t-78 -181.5t-135 -104.5t-196 -33.5z" />
-<glyph unicode="&#x222b;" d="M291 -373q-52 0 -92.5 13t-67.5 36q-26 21 -42.5 53.5t-16.5 74.5q0 60 39 98q38 37 99 37q55 0 91 -31q19 -17 26.5 -36t8.5 -36q2 -23 1 -40.5t5 -32.5q2 -5 7.5 -10t16.5 -5q28 0 48 40t33.5 119.5t22 199.5t15.5 280q0 10 1 34.5t2 55t2 63t2 59.5q10 255 38.5 435 t84.5 296q51 106 131 165t195 59q101 0 159 -49q27 -23 43 -55t16 -72q0 -33 -10.5 -58t-27.5 -41q-19 -18 -45 -27t-55 -9q-45 0 -76 24q-32 24 -42 69q-4 15 -4.5 26t-2.5 28q-2 15 -7 30.5t-22 15.5q-51 0 -80 -159t-40 -475q-1 -24 -1.5 -40t-1 -34t-1.5 -42t-2 -62 q-5 -136 -12 -247t-18 -196q-8 -61 -22.5 -125.5t-37.5 -125.5q-29 -79 -66.5 -134t-82.5 -92q-45 -38 -97 -57.5t-114 -19.5z" />
-<glyph unicode="&#x222c;" d="M242 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5 t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5zM765 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5 q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5z" />
-<glyph unicode="&#x222d;" d="M149 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-42.5 -103t-69 -66.5 t-93 -23.5zM522 -418q-42 0 -85.5 16.5t-104.5 58.5l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q45 0 90 -18.5t101 -56.5l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-43 -103 t-69.5 -66.5t-93 -23.5zM896 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132 t-42.5 -103t-69 -66.5t-93 -23.5z" />
-<glyph unicode="&#x2234;" d="M448 1187h333v-365h-333v365zM147 470h333v-365h-333v365zM757 470h333v-365h-333v365z" />
-<glyph unicode="&#x2235;" d="M148 1187h333v-365h-333v365zM753 1187h333v-365h-333v365zM452 470h333v-365h-333v365z" />
-<glyph unicode="&#x2236;" d="M448 1187h333v-365h-333v365zM452 470h333v-365h-333v365z" />
-<glyph unicode="&#x2237;" d="M148 1187h333v-365h-333v365zM753 1187h333v-365h-333v365zM147 470h333v-365h-333v365zM757 470h333v-365h-333v365z" />
-<glyph unicode="&#x2238;" d="M450 1267h333v-365h-333v365zM66 762h1099v-238h-1099v238z" />
-<glyph unicode="&#x2239;" d="M850 1187h333v-365h-333v365zM74 760h746v-235h-746v235zM848 470h333v-365h-333v365z" />
-<glyph unicode="&#x223a;" d="M48 1235h333v-365h-333v365zM853 1235h333v-365h-333v365zM66 762h1099v-238h-1099v238zM47 419h333v-365h-333v365zM857 419h333v-365h-333v365z" />
-<glyph unicode="&#x223b;" d="M451 1277h333v-365h-333v365zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14 q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM450 365h333v-365h-333v365z" />
-<glyph unicode="&#x223c;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x223d;" d="M381 468q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14z" />
-<glyph unicode="&#x2241;" d="M344 167l140 412q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l135 397l201 -68l-137 -406q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-137 -404z" />
-<glyph unicode="&#x2242;" d="M88 987h1057v-235h-1057v235zM850 254q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 108 -40t102 -14q72 0 140.5 30.5 t141.5 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
-<glyph unicode="&#x2243;" d="M850 672q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2244;" d="M194 112l103 183h-209v235h338l133 230q-33 17 -79.5 26.5t-97.5 9.5q-42 0 -76.5 -6.5t-65.5 -19.5q-17 -7 -37.5 -17.5t-41 -23.5t-39.5 -27t-34 -29v226q42 36 84 59t82 36.5t77.5 18.5t70.5 5q26 0 49 -3t48 -9t52.5 -15.5t62.5 -22.5l13 -5l38 -18l201 360l144 -83 l-183 -324q11 -2 21.5 -3.5t23.5 -1.5q32 0 68 9.5t71.5 26t70 40t63.5 51.5v-232q-32 -29 -70.5 -50t-89.5 -40q-37 -14 -66 -20.5t-63 -6.5q-35 0 -69.5 6.5t-74.5 20.5l-94 -168h528v-235h-662l-150 -263z" />
-<glyph unicode="&#x2245;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x2246;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM239 30l20 30h-171v237h327l150 227h-477v236h634l96 147l176 -117l-19 -30h170v-236h-327l-150 -227h477v-237h-633l-97 -147z" />
-<glyph unicode="&#x2247;" d="M207 -54l47 114h-166v237h262l92 227h-354v236h450l85 210q-41 18 -74 29.5t-62 19t-54.5 10.5t-50.5 3q-79 0 -149 -29t-145 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q4 -2 11.5 -5l15 -6t14 -6t9.5 -4l106 259l218 -89l-78 -192 q30 8 55 19q32 14 68 38t74 57v-234q-75 -60 -145.5 -86.5t-146.5 -27.5l-61 -149h353v-236h-449l-93 -227h542v-237h-638l-82 -202z" />
-<glyph unicode="&#x2248;" d="M850 672q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29q-29 -12 -66.5 -34.5t-78.5 -57.5v229q40 31 78.5 53t72.5 35q36 14 76 20.5t77 6.5q52 0 107.5 -13.5t121.5 -41.5h1 l30 -14q117 -54 212 -54q71 0 139 30t142 95v-234q-75 -58 -146 -86q-33 -13 -69.5 -20.5t-79.5 -7.5zM850 254q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29 q-29 -12 -66.5 -34.5t-78.5 -57.5v229q77 61 151 88q37 14 76 20.5t76 6.5q53 0 108.5 -13.5t121.5 -41.5h1l31 -14q56 -26 108 -40t103 -14q38 0 71.5 8t67.5 23q39 17 72.5 39.5t69.5 54.5v-233q-74 -59 -146 -87q-33 -13 -69.5 -20.5t-79.5 -7.5z" />
-<glyph unicode="&#x2249;" d="M293 151l90 226q-183 -11 -295 -121v229q78 61 151 88t154 27q39 0 77 -7l70 173q-16 5 -29.5 9.5t-26.5 7.5q-22 5 -48.5 8.5t-54.5 3.5q-77 0 -147.5 -29t-145.5 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 109.5 -13.5t120.5 -40.5l102 256l219 -90l-93 -235h16 q72 0 139 29.5t142 95.5v-234q-75 -60 -146.5 -87t-146.5 -27q-25 0 -46 3t-44 8l-68 -169q90 -37 170 -37q70 0 139 30.5t142 94.5v-233q-72 -58 -144 -86.5t-149 -28.5q-52 0 -100.5 12.5t-106.5 38.5l-30 13l-103 -257z" />
-<glyph unicode="&#x224a;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234q-69 -55 -141 -84.5 t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x224b;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234q-69 -55 -141 -84.5 t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM850 25q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 107.5 -40t101.5 -14q72 0 141 30.5 t142 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
-<glyph unicode="&#x224c;" d="M381 909q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x224d;" d="M617 728q-200 0 -530 156v229q345 -155 530 -163q186 0 527 163v-229q-327 -156 -527 -156zM88 398q328 156 528 156t529 -156v-229q-344 155 -529 163q-186 0 -528 -163v229z" />
-<glyph unicode="&#x224e;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM615 20q-26 0 -62.5 10t-75 31.5t-75 54.5t-62.5 80q-16 28 -25.5 56t-9.5 45h-217v235h343q1 -27 7.5 -58.5t18.5 -62.5t29.5 -58.5t39.5 -46.5q17 -14 39.5 -24.5t51.5 -10.5q51 -1 92 34.5t69 110.5q11 28 17.5 57.5 t7.5 58.5h342v-235h-217q-14 -69 -48.5 -126t-107.5 -100q-40 -23 -82.5 -37t-74.5 -14z" />
-<glyph unicode="&#x224f;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2250;" d="M450 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2251;" d="M450 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM450 199h333v-365h-333v365z" />
-<glyph unicode="&#x2252;" d="M88 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM812 199h333v-365h-333v365z" />
-<glyph unicode="&#x2253;" d="M813 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM88 199h333v-365h-333v365z" />
-<glyph unicode="&#x2254;" d="M81 1030h236v-322h-236v322zM407 987h745v-235h-745v235zM81 574h236v-321h-236v321zM407 532h745v-237h-745v237z" />
-<glyph unicode="&#x2255;" d="M916 1030h236v-322h-236v322zM81 987h745v-235h-745v235zM916 574h236v-321h-236v321zM81 532h745v-237h-745v237z" />
-<glyph unicode="&#x2256;" d="M88 532h256q-25 62 -25 110q0 51 27 110h-258v235h1057v-235h-256q14 -13 20 -42.5t6 -61.5q0 -28 -5.5 -53t-21.5 -63h257v-237h-1057v237zM693 532q26 24 38.5 53.5t12.5 59.5q0 31 -13 59t-39 48h-143q-52 -48 -52 -111q0 -61 51 -109h145z" />
-<glyph unicode="&#x2257;" d="M614 1082q-64 0 -119 22t-95 61t-63 92t-23 114q0 63 23.5 117t65 94t96.5 63t118 22t118 -24t96 -63t65 -94t24 -115q0 -62 -24 -114.5t-65.5 -91.5t-97 -61t-119.5 -22zM617 1257q25 0 47.5 9t38.5 24.5t25.5 36.5t9.5 45t-9.5 45.5t-26 37.5t-39 25.5t-47.5 9.5 t-47 -9t-38 -25t-25.5 -37.5t-9.5 -45.5t9.5 -45.5t25.5 -37t38 -24.5t48 -9zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2258;" d="M182 1314q209 151 436 151q230 0 432 -151l1 -244q-214 151 -433 160q-214 -1 -436 -160v244zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x2259;" d="M536 1688h162l233 -603h-194l-119 298l-116 -298h-200zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225a;" d="M302 1688h200l116 -298l119 298h194l-233 -603h-162zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225b;" d="M455 1419l-261 190h323l100 306l102 -306h321l-261 -190l102 -307l-264 190l-262 -190zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225c;" d="M561 1820h111l286 -729h-683zM722 1257l-106 274l-105 -274h211zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225d;" d="M257 1073q-32 0 -57.5 12.5t-44.5 35t-29 54.5t-10 70t10 69.5t29 54t44.5 35t57.5 12.5q31 0 57 -13.5t48 -42.5v175h105v-454h-105v48q-41 -56 -105 -56zM915 1333h-52v75h52v23q0 54 29.5 79t92.5 25h80v-68h-58q-22 0 -31 -8t-9 -28v-23h89v-75h-89v-252h-104v252z M676 1073q-91 0 -140 44.5t-49 125.5t48 127t129 46q82 0 128 -46t46 -124v-30h-244q6 -74 92 -74q31 0 65.5 10t70.5 30v-81q-37 -14 -74 -21t-72 -7zM730 1280q0 30 -17 48t-47 18q-29 0 -48 -17t-23 -49h135zM293 1149q34 0 51.5 24.5t17.5 71.5q0 95 -69 95 q-68 0 -68 -95q0 -47 17.5 -71.5t50.5 -24.5zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x225e;" d="M180 1627h175v-81q64 94 164 94q57 0 100 -27.5t65 -76.5q68 104 181 104q90 0 139 -58t49 -170v-334h-175v286q1 5 1 14v19q0 58 -17 84.5t-55 26.5q-50 0 -76.5 -42.5t-26.5 -118.5v-269h-175v286q0 91 -15 118q-17 26 -55 26q-51 0 -77.5 -41t-26.5 -119v-270h-175 v549zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
-<glyph unicode="&#x225f;" d="M492 1366q0 21 3.5 38.5t12.5 35t26 37t44 43.5l32 29q54 49 54 97q0 34 -24 53t-68 19q-39 0 -86 -16.5t-98 -49.5v157q60 21 109.5 31t100.5 10q118 0 182.5 -49.5t64.5 -143.5q0 -49 -20 -90.5t-66 -82.5l-32 -28q-17 -16 -27.5 -28t-16.5 -22.5t-8.5 -20t-2.5 -21.5 v-22h-180v24zM492 1268h180v-178h-180v178zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
-<glyph unicode="&#x2260;" d="M94 117l146 178h-162v237h321l176 220h-497v235h659l252 305l150 -125l-146 -180h162v-235h-315l-174 -220h489v-237h-659l-252 -305z" />
-<glyph unicode="&#x2261;" d="M88 1222h1057v-235h-1057v235zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
-<glyph unicode="&#x2262;" d="M188 -15l34 75h-134v237h241l101 227h-342v236h450l100 227h-550v235h658l80 181l219 -98l-36 -83h136v-235h-244l-102 -227h346v-236h-451l-101 -227h552v-237h-660l-78 -173z" />
-<glyph unicode="&#x2263;" d="M88 1410h1057v-237h-1057v237zM88 987h1057v-237h-1057v237zM88 564h1057v-237h-1057v237zM88 141h1057v-237h-1057v237z" />
-<glyph unicode="&#x2264;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x2265;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x2266;" d="M88 728v235l1057 334v-244l-739 -209l739 -209v-243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
-<glyph unicode="&#x2267;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
-<glyph unicode="&#x2268;" d="M1145 1053l-739 -209l739 -209v-243l-285 91l150 -128l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150l-161 137l11 13h-146v237h346l89 105h-435v238h635l122 144l-757 241v235l1057 334v-244z" />
-<glyph unicode="&#x2269;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM223 -250l11 13h-146v237h346l89 105h-435v238h635l126 149l161 -137l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150z" />
-<glyph unicode="&#x226d;" d="M230 -31l126 311q-60 -20 -126.5 -48t-141.5 -63v229q106 51 198.5 85t171.5 51l80 199q-184 24 -451 151v229q339 -167 538 -163l179 443l199 -80l-125 -310q60 20 125.5 47.5t140.5 62.5v-229q-108 -51 -200 -84.5t-170 -52.5l-80 -198q185 -24 451 -151v-229 q-340 169 -537 163l-179 -443z" />
-<glyph unicode="&#x226e;" d="M343 52l121 324l-376 148v236l610 239l107 289l155 -58l-56 -149l241 95v-250l-346 -124l-106 -283l452 -161v-249l-527 207l-121 -322zM595 729l-245 -88l188 -67z" />
-<glyph unicode="&#x226f;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
-<glyph unicode="&#x2270;" d="M310 -120l42 120h-264v238h346l87 247l-433 138v235l634 200l100 290l181 -76l-49 -141l191 61v-244l-283 -80l-83 -234l366 -104v-243l-437 139l-65 -188h502v-238h-586l-68 -196zM633 803l-227 -64l185 -52z" />
-<glyph unicode="&#x2271;" d="M168 -120l42 120h-122v238h204l48 129l-252 -80v243l342 97l70 204l-412 117v244l486 -158l106 310l181 -76l-101 -292l385 -118v-235l-575 -183l-71 -202h646v-238h-729l-67 -196zM827 739l-137 39l-32 -87z" />
-<glyph unicode="&#x2272;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40 t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2273;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14 q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2274;" d="M310 -120l58 165q-72 -2 -138.5 -30t-141.5 -91v229q78 60 151 87.5t154 27.5q25 0 51 -3l77 220l-433 138v235l633 200l101 290l181 -76l-49 -140l191 60v-244l-283 -80l-82 -235l365 -103v-243l-437 139l-75 -218l19 -9q56 -26 109.5 -40t103.5 -14q71 0 138 29.5 t142 95.5v-234q-144 -114 -293 -114q-49 0 -97.5 12t-109.5 39q-17 7 -27.5 12t-18.5 8.5t-16.5 6.5t-20.5 8l-71 -204zM631 803l-225 -64l185 -52z" />
-<glyph unicode="&#x2275;" d="M168 -124l46 132q-62 -29 -126 -84v229q42 32 79.5 54t71.5 34q15 5 32 10t31 8l37 108l-251 -80v243l342 97l71 204l-413 117v244l485 -153l107 305l181 -76l-101 -289l385 -121v-235l-572 -182l-66 -189q55 -14 114 -39h1l30 -14q115 -54 213 -54q71 0 138 29.5 t142 95.5v-234q-75 -60 -146.5 -87t-148.5 -27q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-35 15 -67 27t-61 20q-1 0 -8 1.5t-16 2.5t-16.5 2.5t-10.5 1.5l-84 -242zM827 739l-137 39l-30 -86z" />
-<glyph unicode="&#x2276;" d="M88 832v235l1057 334v-244l-739 -209l739 -209v-243zM88 0l739 209l-739 209v244l1057 -334v-235l-1057 -336v243z" />
-<glyph unicode="&#x2277;" d="M88 739l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 93v235l1057 334v-244l-739 -209l739 -209v-243z" />
-<glyph unicode="&#x2278;" d="M202 -358l52 168l-166 -53v243l247 70l80 256l-327 92v244l393 -124l48 154l-441 140v235l619 195l100 323l224 -70l-52 -166l166 52v-244l-247 -70l-80 -256l327 -92v-243l-392 125l-48 -154l440 -139v-235l-618 -196l-101 -325zM628 1011l-222 -63l186 -53zM827 209 l-186 53l-36 -116z" />
-<glyph unicode="&#x2279;" d="M202 -358l118 377l-232 74v235l363 115l59 187l-422 -134v243l500 141l38 125l-538 152v244l602 -190l117 374l224 -70l-117 -375l231 -73v-235l-363 -115l-58 -188l421 133v-244l-500 -141l-38 -125l538 -152v-243l-602 191l-117 -376z" />
-<glyph unicode="&#x227a;" d="M1143 -95q-115 172 -277 301.5t-366 207.5q-91 35 -195.5 61t-218.5 43v246q106 20 213.5 51t200.5 66q113 42 203.5 90t167 107t142.5 132t130 167v-354q-285 -347 -626 -382q339 -46 626 -382v-354v0z" />
-<glyph unicode="&#x227b;" d="M86 259q287 336 626 382q-341 35 -626 382v354q67 -99 137 -174.5t147.5 -134t166 -103.5t192.5 -84q109 -41 215 -70.5t199 -46.5v-246q-118 -18 -222.5 -44.5t-191.5 -59.5q-204 -78 -366 -207.5t-277 -301.5v354z" />
-<glyph unicode="&#x227c;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM1145 -421q-399 591 -1057 712v235q678 -112 1057 -625v-322z" />
-<glyph unicode="&#x227d;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM88 -99q379 513 1057 625v-235q-658 -121 -1057 -712v322z" />
-<glyph unicode="&#x227e;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x227f;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2280;" d="M309 -169l190 583q-90 35 -192.5 61t-220.5 43v246q91 17 194 45.5t220 70.5q46 17 89.5 35.5t85.5 40.5l185 568l223 -73l-82 -253q79 83 142 179v-354q-69 -83 -139 -147.5t-145 -112.5l-69 -211q186 -98 353 -293v-354q-170 254 -431 407l-180 -554zM575 649 q-14 -2 -29 -4t-29 -4l53 -9z" />
-<glyph unicode="&#x2281;" d="M146 -169l82 253q-79 -83 -142 -179v354q69 83 139 147.5t145 112.5l69 211q-186 98 -353 293v354q170 -254 431 -407l180 554l223 -73l-190 -583q90 -35 192.5 -61t220.5 -43v-246q-91 -17 -194 -45.5t-220 -70.5q-46 -17 -89.5 -35.5t-85.5 -40.5l-185 -568zM654 633 q14 2 29 4t29 4l-53 9z" />
-<glyph unicode="&#x2282;" d="M576 138q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569v0z" />
-<glyph unicode="&#x2283;" d="M88 363h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225z" />
-<glyph unicode="&#x2284;" d="M246 -48l94 242q-31 17 -58 38.5t-52 47.5q-72 76 -107 167.5t-35 193.5q0 108 38 200.5t103.5 159.5t154.5 105t191 38h134l99 257l179 -69l-72 -188h230v-225h-318l-216 -556h534v-225h-569q-14 0 -26.5 0.5t-25.5 1.5l-99 -258zM621 919h-46q-55 0 -103 -20t-83 -57 t-55.5 -89t-20.5 -116q0 -59 18.5 -108.5t57.5 -88.5q15 -15 35 -30z" />
-<glyph unicode="&#x2285;" d="M246 -49l72 188h-230v225h318l216 556h-534v225h569q14 0 26.5 -0.5t25.5 -1.5l99 258l179 -70l-94 -242q31 -17 58 -38.5t52 -47.5q72 -76 107 -167.5t35 -193.5q0 -108 -38 -200.5t-103.5 -159.5t-154.5 -105t-191 -38h-134l-99 -257zM658 364q55 0 103 20t83 57 t55.5 89t20.5 116q0 59 -18.5 108.5t-57.5 88.5q-15 15 -35 30l-197 -509h46z" />
-<glyph unicode="&#x2286;" d="M576 315q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569zM88 198h1057v-238h-1057v238z" />
-<glyph unicode="&#x2287;" d="M88 540h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225zM88 198h1057v-238h-1057v238z" />
-<glyph unicode="&#x2288;" d="M168 -160l46 120h-126v238h219l61 158q-76 34 -138 101q-70 75 -106 166t-36 195q0 108 38 200.5t103.5 159.5t154.5 105t191 38h166l67 173l179 -69l-40 -104h198v-225h-285l-213 -556h498v-225h-569h-15l-45 -117h629v-238h-721l-75 -196zM654 1096h-79q-55 0 -103 -20 t-83 -57t-55.5 -89t-20.5 -116q0 -121 76 -197q28 -28 61 -46z" />
-<glyph unicode="&#x2289;" d="M168 -160l46 120h-126v238h219l45 117h-264v225h350l216 556h-566v225h570q42 0 81 -6l69 179l179 -69l-69 -178q45 -27 86 -68q72 -73 106.5 -169t34.5 -194q0 -103 -36 -194t-100.5 -159.5t-154 -108t-197.5 -39.5h-96l-45 -117h629v-238h-721l-75 -196zM658 540 q54 0 102 19.5t83.5 56.5t56 88.5t20.5 116.5q0 60 -19 110t-57 88l-10 9l-187 -488h11z" />
-<glyph unicode="&#x228a;" d="M316 -108l54 68h-282v238h472l94 117h-78q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20t-83 -57t-55.5 -88t-20.5 -113q0 -63 20.5 -114.5t56.5 -87.5t83.5 -56t101.5 -20h570v-225 h-289l61 -49l-54 -68h282v-238h-472l-173 -216z" />
-<glyph unicode="&#x228b;" d="M316 -108l54 68h-282v238h472l94 117h-566v225h570q54 0 101.5 20t83.5 56t56.5 87.5t20.5 114.5q0 62 -20.5 113t-55.5 88t-83 57t-103 20h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159.5t38 -201q0 -100 -34.5 -191t-107.5 -169q-41 -44 -84 -71t-95 -45 l93 -75l-54 -68h282v-238h-472l-173 -216z" />
-<glyph unicode="&#x228d;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t140 17t89 60.5t46.5 119t13.5 191.5v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM489 765h253v-265h-253v265z" />
-<glyph unicode="&#x228e;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t140 17t89 60.5t46.5 119t13.5 191.5v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM550 576h-140v132h140v140h132v-140 h140v-132h-140v-140h-132v140z" />
-<glyph unicode="&#x228f;" d="M88 1196h1057v-235h-822v-640h822v-235h-1057v1110z" />
-<glyph unicode="&#x2290;" d="M88 321h822v640h-822v235h1057v-1110h-1057v235z" />
-<glyph unicode="&#x2291;" d="M88 1302h1057v-235h-822v-448h822v-235h-1057v918zM88 215h1057v-235h-1057v235z" />
-<glyph unicode="&#x2292;" d="M88 619h822v448h-822v235h1057v-918h-1057v235zM88 215h1057v-235h-1057v235z" />
-<glyph unicode="&#x2293;" d="M62 1284h1110v-1284h-236v1049h-640v-1049h-234v1284z" />
-<glyph unicode="&#x2294;" d="M62 1284h236v-1049h640v1049h234v-1284h-1110v1284z" />
-<glyph unicode="&#x2295;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
-<glyph unicode="&#x2296;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM271 727h691v-170h-691v170z" />
-<glyph unicode="&#x2297;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l184 184l-185 185l120 121l185 -186l185 185l120 -120l-185 -185l184 -183l-121 -120l-183 183l-184 -184z" />
-<glyph unicode="&#x2298;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l489 489l120 -120l-489 -489z" />
-<glyph unicode="&#x2299;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM449 815h333v-365h-333v365z" />
-<glyph unicode="&#x229a;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM614 378q-57 0 -105 20t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 538q22 0 42 8t34.5 22.5t23 33.5t8.5 42 q0 20 -7 39t-24 36q-31 31 -75 31q-23 0 -42.5 -8.5t-34 -22.5t-22.5 -34t-8 -42q0 -23 8 -42t22.5 -33t33.5 -22t41 -8z" />
-<glyph unicode="&#x229b;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM927 889q-7 9 -15 18t-16 17q-26 26 -59 49t-69 38q-32 13 -68 21v-267zM528 1031q-17 -4 -32.5 -8.5t-31.5 -11.5q-35 -15 -68.5 -38.5t-58.5 -48.5q-8 -8 -16.5 -17.5t-15.5 -18.5l223 -123v266zM994 519q18 58 18 125q0 27 -3 53.5t-10 51.5l-221 -116z M453 633l-220 114q-12 -50 -12 -104q0 -65 18 -122zM528 502l-211 -117q5 -5 10 -11t10 -11q25 -25 58.5 -48.5t68.5 -38.5q16 -7 31.5 -11.5t32.5 -8.5v246zM700 255q36 8 68 21q33 14 67 37t61 50q8 8 12 12.5t7 7.5l-215 119v-247z" />
-<glyph unicode="&#x229c;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM299 849h635v-141h-635v141zM299 576h635v-143h-635v143z" />
-<glyph unicode="&#x229d;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM399 727h435v-170h-435v170z" />
-<glyph unicode="&#x229e;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
-<glyph unicode="&#x229f;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM271 727h691v-170h-691v170z" />
-<glyph unicode="&#x22a0;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM268 413l229 229l-231 231l121 120l230 -231l230 230l120 -120l-230 -230l229 -228l-120 -121l-229 229l-229 -229z" />
-<glyph unicode="&#x22a1;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM449 815h333v-365h-333v365z" />
-<glyph unicode="&#x22a2;" d="M66 1284h237v-522h862v-238h-862v-524h-237v1284z" />
-<glyph unicode="&#x22a3;" d="M928 522h-862v238h862v524h237v-1284h-237v522z" />
-<glyph unicode="&#x22a4;" d="M498 1046h-432v238h1099v-238h-430v-1046h-237v1046z" />
-<glyph unicode="&#x22b2;" d="M88 524v236l1057 416v-1067zM908 841l-558 -200l558 -199v399z" />
-<glyph unicode="&#x22b3;" d="M88 1176l1057 -416v-236l-1057 -415v1067zM883 641l-558 200v-399z" />
-<glyph unicode="&#x22b4;" d="M88 623v235l1057 334v-905zM908 881l-502 -142l502 -142v284zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x22b5;" d="M88 1192l1057 -334v-235l-1057 -336v905zM827 739l-502 142v-284zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#x22b8;" d="M918 359q-61 0 -109.5 21t-90.5 61q-20 19 -34.5 39.5t-24.5 43.5h-631v238h631q10 23 24 42.5t31 36.5q45 45 98.5 67t110.5 22q58 0 109.5 -22t90 -61t60.5 -92t22 -114q0 -60 -21.5 -111.5t-60 -89.5t-91 -59.5t-114.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43 t10.5 53.5q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
-<glyph unicode="&#x22c2;" d="M90 936q0 168 28.5 284.5t91.5 189t163 105t244 32.5t244 -32.5t163 -105t91 -189t28 -284.5v-1372h-238v1352q0 117 -13.5 192t-46.5 118.5t-88.5 60.5t-139.5 17t-140 -17t-89 -60.5t-46.5 -119t-13.5 -191.5v-1352h-238v1372z" />
-<glyph unicode="&#x22c3;" d="M616 -465q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v1372h238v-1352q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t140 17t89 60.5t46.5 119t13.5 191.5v1352h238v-1372q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5z" />
-<glyph unicode="&#x22c4;" d="M6 732l610 610l611 -610l-611 -610zM1004 732l-388 388l-387 -388l387 -388z" />
-<glyph unicode="&#x22c5;" d="M449 895h333v-365h-333v365z" />
-<glyph unicode="&#x22c6;" d="M467 657l-241 175h298l93 284l93 -284h297l-241 -175l93 -283l-242 175l-242 -175z" />
-<glyph unicode="&#x22cd;" d="M381 672q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x22ce;" d="M482 0q0 900 -484 1284h338q262 -208 280 -508q26 300 280 508h338q-484 -384 -484 -1284h-268v0z" />
-<glyph unicode="&#x22cf;" d="M-2 0q484 384 484 1284h268q0 -900 484 -1284h-338q-262 208 -280 508q-26 -300 -280 -508h-338v0z" />
-<glyph unicode="&#x22d0;" d="M778 -46q-143 0 -268 54t-218.5 147.5t-147.5 218.5t-54 268q0 95 24.5 183t69.5 164.5t107.5 139t139 107.5t164.5 69.5t183 24.5h365v-220h-365q-97 0 -182.5 -36.5t-149 -100t-100 -149t-36.5 -182.5t36.5 -182.5t100 -149t149 -100t182.5 -36.5h365v-220h-365z M778 324q-66 0 -124 25t-101 68t-68 101t-25 124t25 124t68 101t101 68t124 25h365v-220h-365q-42 0 -70 -28t-28 -70t28 -70t70 -28h365v-220h-365z" />
-<glyph unicode="&#x22d1;" d="M90 174h365q97 0 182.5 36.5t149 100t100 149t36.5 182.5t-36.5 182.5t-100 149t-149 100t-182.5 36.5h-365v220h365q95 0 183 -24.5t164.5 -69.5t139 -107.5t107.5 -139t69.5 -164.5t24.5 -183t-24.5 -183t-69.5 -164.5t-107.5 -139t-139 -107.5t-164.5 -69.5 t-183 -24.5h-365v220zM90 544h365q42 0 70 28t28 70t-28 70t-70 28h-365v220h365q66 0 124 -25t101 -68t68 -101t25 -124t-25 -124t-68 -101t-101 -68t-124 -25h-365v220z" />
-<glyph unicode="&#x22da;" d="M88 1020v235l1057 334v-244l-739 -209l739 -209v-243zM88 635h1057v-238h-1057v238zM88 -313l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
-<glyph unicode="&#x22db;" d="M88 927l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 635h1057v-238h-1057v238zM88 -223v235l1057 336v-243l-739 -209l739 -209v-244z" />
-<glyph unicode="&#x22dc;" d="M88 1192h1057v-238h-1057v238zM88 334v235l1057 336v-243l-739 -209l739 -209v-244z" />
-<glyph unicode="&#x22dd;" d="M88 1192h1057v-238h-1057v238zM88 244l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
-<glyph unicode="&#x22de;" d="M88 811q658 121 1057 712v-322q-379 -513 -1057 -625v235zM1145 -421q-405 518 -1057 555v266q640 52 1057 555v-338q-271 -277 -608 -350q335 -75 608 -350v-338z" />
-<glyph unicode="&#x22df;" d="M1145 576q-678 112 -1057 625v322q399 -591 1057 -712v-235zM88 -83q273 275 608 350q-337 73 -608 350v338q417 -503 1057 -555v-266q-652 -37 -1057 -555v338z" />
-<glyph unicode="&#x22e0;" d="M279 -452l139 646q-78 32 -160 56.5t-170 40.5v235q102 -17 196.5 -42.5t182.5 -60.5l40 188q-195 73 -419 91v266q284 16 522 125l119 552l225 -48l-73 -340q72 57 137.5 122.5t126.5 143.5v-338q-156 -158 -333 -249l-39 -181q199 -95 372 -270v-338q-189 228 -424 364 l-41 -191q273 -158 465 -419v-322q-219 323 -515 507l-126 -586zM556 839l-19 -4l17 -4z" />
-<glyph unicode="&#x22e1;" d="M279 -452l74 346q-143 -135 -265 -315v322q74 100 158 184t181 154l55 253q-216 -131 -394 -345v338q208 214 458 306l17 82q-258 92 -475 312v338q222 -285 524 -425l117 547l225 -48l-124 -579q75 -20 153 -32.5t162 -17.5v-266q-107 -8 -207 -29.5t-194 -55.5 l-48 -224q204 92 449 133v-235q-280 -51 -511 -187l-130 -604z" />
-<glyph unicode="&#x22e2;" d="M187 -214l70 194h-169v235h253l61 169h-314v918h644l98 272l216 -78l-70 -194h169v-235h-253l-161 -448h414v-235h-499l-61 -169h560v-235h-644l-98 -272zM487 619l161 448h-325v-448h164z" />
-<glyph unicode="&#x22e3;" d="M187 -214l70 194h-169v235h253l61 169h-314v235h399l161 448h-560v235h644l98 272l216 -78l-70 -194h169v-918h-499l-61 -169h560v-235h-644l-98 -272zM910 619v448h-18l-161 -448h179z" />
-<glyph unicode="&#x22e4;" d="M324 -122l72 102h-308v235h475l119 169h-594v918h1057v-235h-822v-448h822v-235h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
-<glyph unicode="&#x22e5;" d="M324 -122l72 102h-308v235h475l119 169h-594v235h822v448h-822v235h1057v-918h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
-<glyph unicode="&#x22e6;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l72 213l-537 171v235l1057 334v-244l-739 -209l739 -209v-243l-317 101l-76 -226q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
-<glyph unicode="&#x22e7;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l74 219l-539 -171v243l739 209l-739 209v244l1057 -334v-235l-426 -135l128 -44l-95 -282q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
-<glyph unicode="&#x22e8;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
-<glyph unicode="&#x22e9;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
-<glyph unicode="&#x22ef;" d="M57 827h295v-367h-295v367zM469 827h295v-367h-295v367zM881 827h295v-367h-295v367z" />
-<glyph unicode="&#x2304;" d="M146 428h193l277 -410l277 410h193l-470 -698z" />
-<glyph unicode="&#x2308;" d="M599 1556h508l-36 -190h-242l-318 -1636h-266z" />
-<glyph unicode="&#x2309;" d="M686 1366h-242l36 190h508l-354 -1826h-266z" />
-<glyph unicode="&#x230a;" d="M599 1556h266l-318 -1636h242l-36 -190h-508z" />
-<glyph unicode="&#x230b;" d="M162 -80h242l318 1636h266l-354 -1826h-508z" />
-<glyph unicode="&#x2310;" d="M88 899h1057v-237h-819v-300h-238v537z" />
-<glyph unicode="&#x2320;" d="M485 727q0 4 1.5 55.5t5.5 156.5q10 253 38.5 434.5t83.5 296.5q52 109 134 166.5t190 57.5q51 0 91.5 -12.5t69.5 -36t44.5 -55.5t15.5 -71q0 -63 -37.5 -99.5t-97.5 -36.5q-52 0 -81.5 26t-39.5 67q-2 10 -4 25t-3 29q-2 20 -8.5 33t-20.5 13q-47 0 -76.5 -156.5 t-43.5 -477.5q-6 -143 -6 -178v-1476h-256v1239z" />
-<glyph unicode="&#x2321;" d="M288 -490q-51 0 -91.5 12.5t-69.5 36t-44.5 55.5t-15.5 71q0 63 37.5 99.5t97.5 36.5q52 0 81.5 -26t39.5 -67q2 -10 4 -25t3 -29q2 -20 8.5 -33t20.5 -13q47 0 76.5 156.5t43.5 477.5q6 142 6 178v1486h256v-1249q0 -4 -1.5 -55.5t-5.5 -156.5q-10 -253 -38.5 -434.5 t-83.5 -296.5q-52 -109 -134 -166.5t-190 -57.5z" />
-<glyph unicode="&#x239b;" d="M232 -282q0 294 22.5 546t61 466t89.5 391t108 322t116.5 258.5t114.5 199.5h256q-59 -120 -117.5 -246.5t-111.5 -271.5t-98 -313.5t-78.5 -371t-52.5 -445t-19 -535.5v-234h-291v234z" />
-<glyph unicode="&#x239c;" d="M232 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x239d;" d="M744 -492q-51 80 -109 190t-115 253t-109 320.5t-92 393.5t-63.5 472t-23.5 555v234h291v-234q0 -284 16 -518t46.5 -430t73 -361.5t95.5 -313.5t115 -285t131 -276h-256v0z" />
-<glyph unicode="&#x239e;" d="M710 -282q0 293 -19 535.5t-52.5 445t-78.5 371t-98 313.5t-111.5 271.5t-117.5 246.5h256q55 -86 114.5 -199.5t116.5 -258.5t108 -322t89.5 -391t61 -466t22.5 -546v-234h-291v234z" />
-<glyph unicode="&#x239f;" d="M710 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x23a0;" d="M233 -492q69 139 131 276t115 285t95.5 313.5t73 361.5t46.5 430t16 518v234h291v-234q0 -299 -23.5 -555t-63.5 -472t-92 -393.5t-109 -320.5t-115 -253t-109 -190h-256v0z" />
-<glyph unicode="&#x23a1;" d="M232 1901h768v-291h-477v-2126h-291v2417z" />
-<glyph unicode="&#x23a2;" d="M232 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x23a3;" d="M232 1926h291v-2127h477v-291h-768v2418z" />
-<glyph unicode="&#x23a4;" d="M709 1610h-477v291h768v-2417h-291v2126z" />
-<glyph unicode="&#x23a5;" d="M709 1926h291v-2442h-291v2442z" />
-<glyph unicode="&#x23a6;" d="M232 -201h477v2127h291v-2418h-768v291z" />
-<glyph unicode="&#x23a7;" d="M476 1375q0 123 31.5 220.5t91 165.5t146 104t197.5 36h275v-272h-281q-51 0 -85 -8t-55 -34t-29.5 -74.5t-8.5 -129.5v-1917h-282v1909z" />
-<glyph unicode="&#x23a8;" d="M476 181q0 94 -19 165t-65 118.5t-122.5 72t-191.5 26.5l-61 1v283h61q112 0 188.5 23t123 70t66.5 119t20 170v684h282v-696q0 -134 -25.5 -240t-75.5 -179q-42 -61 -100 -93q56 -31 100 -93q51 -73 76 -179t25 -240v-698h-282v686z" />
-<glyph unicode="&#x23a9;" d="M942 -492q-109 0 -195.5 35.5t-146.5 103t-92 165t-32 222.5v1879h282v-1887q0 -81 8.5 -129.5t29.5 -74.5t55 -34t85 -8h281v-272h-275v0z" />
-<glyph unicode="&#x23aa;" d="M476 1913h282v-2437h-282v2437z" />
-<glyph unicode="&#x23ab;" d="M475 1383q0 81 -8.5 129.5t-29.5 74.5t-55 34t-85 8h-281v272h275q111 0 197.5 -36t146 -104t91 -165.5t31.5 -220.5v-1909h-282v1917z" />
-<glyph unicode="&#x23ac;" d="M475 193q0 134 25 240t76 179q43 62 100 93q-59 33 -100 93q-50 73 -75.5 179t-25.5 240v696h282v-684q0 -98 20 -170t66.5 -119t123 -70t188.5 -23h61v-283l-61 -1q-115 -2 -191.5 -26.5t-122.5 -72t-65 -118.5t-19 -165v-686h-282v698z" />
-<glyph unicode="&#x23ad;" d="M16 -220h281q51 0 85 8t55 34t29.5 74.5t8.5 129.5v1887h282v-1879q0 -125 -32 -222.5t-92 -165t-146.5 -103t-195.5 -35.5h-275v272z" />
-<glyph unicode="&#x23ae;" d="M485 1926h256v-2438h-256v2438z" />
-<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
-<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
-<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
-<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
-<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
-<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
-<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
-<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
-<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
-<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
-<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
-<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
-<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
-<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
-<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
-<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
-<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
-<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
-<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
-<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
-<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
-<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
-<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
-<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
-<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
-<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
-<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
-<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
-<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
-<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
-<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
-<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
-<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
-<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
-<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
-<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
-<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
-<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
-<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
-<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
-<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
-<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
-<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
-<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
-<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
-<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
-<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
-<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
-<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
-<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
-<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
-<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
-<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
-<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
-<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
-<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
-<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
-<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
-<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
-<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
-<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
-<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
-<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
-<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
-<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
-<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
-<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
-<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
-<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
-<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
-<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
-<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
-<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
-<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
-<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
-<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
-<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
-<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
-<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
-<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
-<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
-<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
-<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
-<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
-<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
-<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
-<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
-<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
-<glyph unicode="&#x2588;" d="M-20 1921h1273v-2433h-1273v2433z" />
-<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
-<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
-<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
-<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
-<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
-<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
-<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
-<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
-<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
-<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
-<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
-<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
-<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
-<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
-<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
-<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
-<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
-<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
-<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
-<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
-<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
-<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
-<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
-<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
-<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
-<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
-<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
-<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
-<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
-<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
-<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
-<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
-<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
-<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
-<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
-<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
-<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
-<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
-<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
-<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
-<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1056 1028h-879l439 -878z" />
-<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
-<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
-<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
-<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
-<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
-<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
-<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
-<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
-<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
-<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1004 532l-388 388l-387 -388l387 -388z" />
-<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
-<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
-<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
-<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64z" />
-<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-40 -157q-54 16 -110 16t-110 -16zM111 885q42 58 93.5 100.5t106.5 74.5l81 -140q-42 -23 -79 -53.5t-69 -75.5zM988 791q-32 45 -69.5 75.5t-77.5 53.5l80 140q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150l157 -40 q-12 -53 -12 -110q0 -58 12 -110zM1054 422q12 52 12 110q0 57 -12 110l157 40q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l133 94q32 -45 69 -75.5t79 -53.5zM841 144q40 23 75.5 52t71.5 77l133 -93q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l40 157q54 -16 110 -16t110 16l40 -157q-75 -21 -150 -21z" />
-<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q21 8 39 17t39 21q9 5 12 7t5 3t3.5 2.5t7.5 4.5v810q-7 6 -28 17q-29 16 -43.5 23t-34.5 15v-920zM448 991q-19 -8 -38 -17t-38 -20 q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
-<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64zM616 286q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5 q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM616 396q18 0 36 6t32 14q67 40 67 116t-67 116q-14 8 -32 14t-36 6q-32 0 -67 -20q-67 -39 -67 -116t67 -116q35 -20 67 -20z" />
-<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
-<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
-<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
-<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h977z" />
-<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-977q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
-<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
-<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
-<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM615 399q71 0 136 26.5t119 80.5q52 52 79.5 117.5t27.5 139.5q0 72 -26.5 136.5t-80.5 116.5q-51 50 -115 77t-137 27q-75 0 -140.5 -27.5t-115.5 -76.5q-51 -51 -78.5 -115.5t-27.5 -139.5q0 -73 26.5 -138.5t77.5 -116.5 q50 -51 115 -79t140 -28z" />
-<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM616 39q-57 0 -120 17.5t-125 52.5q-116 66 -179.5 173t-63.5 250t63.5 250t179.5 173q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5q120 -68 182 -177t62 -246t-62 -246t-182 -177q-62 -35 -125 -52.5 t-120 -17.5z" />
-<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 180 -79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5 q120 -68 182 -177t62 -246h-977z" />
-<glyph unicode="&#x25db;" d="M-20 532h26q0 -179 76.5 -309.5t228.5 -218.5q79 -46 154.5 -67t149.5 -21q154 0 306 88q153 88 229.5 218.5t76.5 309.5h26v-1044h-1273v1044zM616 39q-122 0 -244 71q-244 141 -244 422h977q0 -281 -245 -422q-122 -71 -244 -71z" />
-<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
-<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q77 0 156.5 -24t148.5 -63q143 -81 224 -214t81 -315h-123v0z" />
-<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
-<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
-<glyph unicode="&#x25e0;" d="M6 532q0 351 305 528q79 46 154.5 67t149.5 21q154 0 306 -88q306 -177 306 -528h-161q0 135 -60.5 233t-164.5 157q-52 29 -110 46.5t-114 17.5q-57 0 -115.5 -17.5t-109.5 -46.5q-106 -60 -165.5 -160t-59.5 -230h-161v0z" />
-<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h161q0 -128 57.5 -228.5t166.5 -161.5q57 -32 115 -47.5t111 -15.5q52 0 109.5 15.5t114.5 47.5q105 59 165 157.5t60 232.5h161q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
-<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
-<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
-<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
-<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
-<glyph unicode="&#x25e6;" d="M614 399q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28zM616 471q60 0 111 22.5 t92 63.5q86 86 86 204q0 59 -21.5 110.5t-64.5 93.5q-42 41 -93.5 62t-109.5 21t-109.5 -21t-93.5 -62q-41 -40 -63 -91.5t-22 -111.5q0 -63 23 -115t60 -90q41 -42 93 -64t112 -22z" />
-<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
-<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
-<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
-<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
-<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
-<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
-<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
-<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
-<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
-<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM619 39q57 0 118.5 18t122.5 53q245 141 245 422t-245 422q-48 28 -93.5 43.5t-93.5 23.5v-547h-542q8 -79 35.5 -142.5t68 -111.5t89.5 -82.5t100.5 -56.5t102 -32t92.5 -10zM559 588v433q-95 -14 -187 -67q-219 -126 -241 -366h428z " />
-<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q45 6 95.5 24.5t92.5 42.5q55 31 100 73t77 94.5t49.5 115.5t17.5 137q0 137 -61.5 246.5t-182.5 178.5q-62 35 -125.5 52.5t-120.5 17.5q-42 0 -92 -10.5t-101.5 -33t-101 -57t-89 -83t-66.5 -111.5t-34 -142h542v-545zM559 474 h-428q22 -237 241 -364q92 -53 187 -67v431z" />
-<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142.5t-67 112t-89.5 83t-101.5 56.5t-103 32.5t-94 10.5q-55 0 -116 -17t-125 -54q-244 -141 -244 -422t244 -422q48 -28 94 -44t93 -23v545zM673 43q94 14 187 67q112 64 171.5 155t70.5 209h-429v-431z" />
-<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q41 0 91 10.5t101.5 32.5t101 56t89.5 82.5t67.5 111.5t35.5 142h-543v547q-44 -6 -92 -23t-96 -44q-118 -67 -180.5 -173t-62.5 -247q0 -137 61 -246.5t182 -178.5q62 -35 125.5 -52.5t119.5 -17.5zM1102 588q-23 241 -242 366 q-93 53 -187 67v-433h429z" />
-<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
-<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
-<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
-<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
-<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
-<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
-<glyph unicode="&#x266a;" d="M765 1493h245q120 -139 175.5 -286t55.5 -309q0 -107 -23 -225l-238 -91q17 83 23.5 133.5t6.5 103.5q0 73 -15.5 155.5t-48.5 185.5l-174 -895q-29 -147 -73 -242t-111 -156t-152 -89.5t-205 -28.5q-87 0 -157.5 28.5t-109.5 78.5q-40 49 -40 110q0 17 3 35 q13 68 71.5 125.5t147.5 91.5q87 33 183 33q105 0 185 -41q12 50 13 55z" />
-<glyph unicode="&#x27c2;" d="M66 238h430v1046h237v-1046h432v-238h-1099v238z" />
-<glyph unicode="&#x27c5;" d="M680 -334q-62 0 -95.5 3t-59.5 8q-104 18 -177.5 48.5t-120 71.5t-67.5 92t-21 110q0 67 25 147.5t69.5 175t105.5 203t133 231.5q75 128 128.5 219.5t88.5 152.5t52.5 96t22.5 51q4 15 4 29q0 51 -58 51q-61 0 -103 -65l-196 100q37 45 82.5 79.5t95.5 58t102 35 t101 11.5q63 0 110 -17.5t78.5 -46.5t47 -65.5t14.5 -73.5q-1 -38 -18.5 -89t-52 -121t-86 -161t-119.5 -209t-122 -211.5t-93.5 -168.5t-65 -135t-37.5 -111q-5 -21 -7.5 -41.5t-2.5 -37.5q0 -79 50 -124t159 -55q21 -2 36 -3.5t27 -2.5t22 -2.5t22 -3.5q28 -5 54 -5h13.5 t13.5 1l-44 -225h-111v0z" />
-<glyph unicode="&#x27c6;" d="M115 -109q7 -1 13.5 -1h12.5q14 0 28 1.5t28 3.5q38 4 53.5 6t22 2.5t12.5 1t24 2.5q84 8 142 30t94 62t52 101t16 148q0 55 -5.5 113.5t-16 124.5t-25 141t-32.5 164q-14 70 -25 130t-18.5 113t-11.5 100.5t-4 91.5q0 100 20.5 166.5t61.5 107t102 57.5t142 17 q63 0 112.5 -10t88.5 -32t68 -57t51 -85l-234 -100q-18 65 -78 65q-37 0 -60 -22t-25 -58q-1 -20 4 -58t16 -100.5t29 -151t42 -209.5q32 -160 52.5 -286.5t20.5 -233.5q0 -116 -28 -208.5t-92.5 -162.5t-169 -116.5t-257.5 -71.5q-14 -2 -29 -4t-33.5 -3.5t-42 -2.5 t-54.5 -1h-111z" />
-<glyph unicode="&#x27dc;" d="M311 359q-59 0 -110.5 22.5t-90 61.5t-60.5 91.5t-22 112.5t21.5 112t59.5 90t90 59.5t112 21.5q122 0 204 -82q20 -19 34.5 -39.5t24.5 -43.5h631v-238h-631q-10 -23 -24 -42.5t-31 -36.5q-92 -89 -208 -89zM313 509q28 0 53 11t44 29.5t29.5 43.5t10.5 54 q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43.5 -29.5t54 -10.5z" />
-<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
-<glyph unicode="&#x27e6;" d="M474 1556h683l-23 -120h-281l-308 -1586h281l-23 -120h-683zM425 -150l308 1586h-162l-308 -1586h162z" />
-<glyph unicode="&#x27e7;" d="M99 -150h281l308 1586h-281l23 120h683l-354 -1826h-683zM662 -150l308 1586h-162l-308 -1586h162z" />
-<glyph unicode="&#x27e8;" d="M338 642l462 912h272l-463 -912l109 -912h-272z" />
-<glyph unicode="&#x27e9;" d="M624 642l-109 912h272l108 -912l-462 -912h-272z" />
-<glyph unicode="&#x27ea;" d="M88 642l462 912h272l-463 -912l109 -912h-272zM588 642l462 912h272l-463 -912l109 -912h-272z" />
-<glyph unicode="&#x27eb;" d="M375 642l-109 912h272l108 -912l-462 -912h-272zM875 642l-109 912h272l108 -912l-462 -912h-272z" />
-<glyph unicode="&#x27f5;" d="M-100 490v142l291 291l120 -120l-130 -130h1152v-224h-1152l130 -130l-120 -120z" />
-<glyph unicode="&#x27f6;" d="M922 319l130 130h-1152v224h1152l-130 130l120 120l291 -291v-142l-291 -291z" />
-<glyph unicode="&#x27f7;" d="M-100 490v142l291 291l120 -120l-130 -130h871l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-871l130 -130l-120 -120z" />
-<glyph unicode="&#x2987;" d="M801 -270q-146 33 -252.5 103.5t-176 166.5t-103 211.5t-33.5 238.5q0 50 5 97.5t14 95.5q29 151 100 296.5t183.5 268.5t266.5 214t350 132zM1000 1373q-51 -13 -102.5 -49t-100.5 -89t-94 -121t-82.5 -145t-66 -160t-44.5 -167q-21 -111 -21 -219q0 -95 15.5 -181 t44.5 -154.5t71 -115t96 -61.5z" />
-<glyph unicode="&#x2988;" d="M432 1554q146 -33 252.5 -103.5t176 -166.5t103 -211.5t33.5 -238.5q0 -50 -5 -97.5t-14 -95.5q-29 -151 -100 -296.5t-183.5 -268.5t-266.5 -214t-350 -132zM233 -89q51 13 102.5 49t100.5 89t94 121t82.5 145t66 160t44.5 167q21 111 21 219q0 95 -15.5 181 t-44.5 154.5t-71 115t-96 61.5z" />
-<glyph unicode="&#x2997;" d="M282 139l188 968l600 501l105 -131l-333 -278l-218 -1122l227 -268l-157 -131z" />
-<glyph unicode="&#x2998;" d="M58 -191l333 278l218 1122l-227 268l157 131l412 -461l-188 -968l-600 -501z" />
-<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
-<glyph unicode="&#x29fa;" d="M248 524h-182v238h182v430h237v-430h263v430h237v-430h180v-238h-180v-432h-237v432h-263v-432h-237v432z" />
-<glyph unicode="&#x29fb;" d="M148 524h-82v238h82v430h217v-430h143v430h217v-430h143v430h217v-430h80v-238h-80v-432h-217v432h-143v-432h-217v432h-143v-432h-217v432z" />
-<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -275q347 0 347 814q0 818 -347 818q-346 0 -346 -818q0 -814 346 -814zM449 711h333v-365h-333v365z" />
-<glyph unicode="&#x2a2f;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
-<glyph unicode="&#x2a6a;" d="M451 1277h333v-365h-333v365zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14 q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
-<glyph unicode="&#x2a6b;" d="M691 1277h333v-365h-333v365zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14 q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM210 365h333v-365h-333v365z" />
-<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
-<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
-<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
-<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
-<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
-<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
-<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
-<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
-<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
-<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
-<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
-<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
-<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
-<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
-<glyph unicode="&#x2e18;" d="M747 904q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM446 -400q-87 0 -155 19t-115.5 55t-72 87t-24.5 115 q0 20 2 38.5t6 38.5q7 38 22 73t41 70t64.5 73t92.5 83l105 86q40 33 65.5 58.5t41.5 49.5t25 48.5t15 54.5q1 9 4 21t7 26l24 123h267l-166 -851l22 8q50 18 100 43t107 62l-52 -268q-218 -113 -426 -113zM478 123q-39 -34 -66.5 -70t-35.5 -78q-3 -17 -3 -32q0 -44 30 -69 q10 -9 24 -15z" />
-<glyph unicode="&#x2e1f;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM480 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
-<glyph unicode="&#x2e22;" d="M580 1556h507l-38 -190h-242l-140 -723h-265z" />
-<glyph unicode="&#x2e23;" d="M666 1366h-242l37 190h508l-178 -913h-265z" />
-<glyph unicode="&#x2e24;" d="M402 643h265l-141 -723h242l-37 -190h-508z" />
-<glyph unicode="&#x2e25;" d="M143 -80h242l141 723h265l-179 -913h-506z" />
-<glyph unicode="&#x2e2e;" d="M480 524q1 7 2 13.5t2 12.5l3 21q2 13 4.5 24.5t2.5 31.5q0 38 -16 72.5t-56 82.5l-71 86q-60 73 -85.5 128.5t-25.5 105.5q0 16 2 33t5 32q16 82 58.5 147.5t107 111.5t148.5 70t183 24q106 0 200 -28t182 -85l-52 -268q-85 72 -169 106.5t-171 34.5q-92 0 -143.5 -36 t-62.5 -99q-3 -17 -3 -32q0 -38 18.5 -71.5t56.5 -80.5l73 -89q23 -28 40 -53.5t28 -52t16.5 -54.5t5.5 -61q0 -21 -2.5 -45.5t-7.5 -50.5l-30 -154h-267zM513 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5 t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
-<glyph d="M696 1198q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM455 655l112 357h199 l-25 -357l-127 -655h-286z" />
-<glyph d="M739 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM446 -27q-87 0 -155 19t-115.5 55t-72 87t-24.5 115 q0 20 2 38.5t6 38.5q7 38 22 73t41 70t64.5 73t92.5 83l105 86q40 33 65.5 58.5t41.5 49.5t25 48.5t15 54.5q1 9 4 21t7 26l24 123h267l-166 -851l22 8q50 18 100 43t107 62l-52 -268q-218 -113 -426 -113zM478 496q-39 -34 -66.5 -70t-35.5 -78q-3 -17 -3 -32q0 -44 30 -69 q10 -9 24 -15z" />
-<glyph d="M739 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM458 -27q-86 0 -154 21.5t-115.5 61t-73 95.5t-25.5 124 q0 44 11.5 87.5t37.5 87t66.5 88.5t99.5 93l105 86l8 7q66 58 102.5 116t50.5 129l23 123h266l-29 -154q-10 -54 -26 -95.5t-39.5 -77.5t-56.5 -70t-78 -74l-105 -93l-15 -13q-74 -65 -107 -110.5t-33 -87.5q0 -48 38 -78t113 -30q80 0 183.5 36.5t218.5 108.5l-52 -268 q-102 -55 -208 -84t-206 -29z" />
-<glyph horiz-adv-x="0" d="M-442 1635q-137 0 -210 67t-73 193v4h143q10 -60 51 -87.5t120 -27.5q72 0 124.5 30.5t75.5 84.5h154q-40 -130 -138.5 -197t-246.5 -67z" />
-<glyph horiz-adv-x="0" d="M-779 1635q40 130 139 197t247 67t217 -62.5t69 -171.5v-14.5t-1 -15.5h-143q-16 121 -170 121q-153 0 -217 -121h-141v0z" />
-<glyph horiz-adv-x="0" d="M-898 1899h284l148 -264h-197zM-523 1899h284l148 -264h-197z" />
-<glyph horiz-adv-x="0" d="M-530 1899h275l-48 -246h-275z" />
-<glyph horiz-adv-x="0" d="M-546 1899h284l-337 -264h-197zM-171 1899h284l-337 -264h-197z" />
-<glyph horiz-adv-x="0" d="M-714 1870h631l-36 -188h-631z" />
-<glyph d="M436 1280q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM832 1280q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z" />
-<glyph d="M811 1526h281l-320 -264h-207z" />
-<glyph d="M371 1262q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8q-32 11 -70 40l-49 37q-27 21 -41 26 q-8 3 -17 4.5t-17 1.5q-21 0 -36 -9t-26 -23q-15 -18 -23.5 -39.5t-13.5 -48.5h-137v0z" />
-<glyph d="M543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -144 -42 -274.5t-123 -230.5q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207 q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-25 30 -59 44t-72 14q-125 0 -207 -135q-41 -69 -62 -156t-21 -171q0 -54 10 -101t38 -81q21 -26 54 -43t78 -17z" />
-<glyph d="M449 1526h264l143 -264h-178z" />
-<glyph d="M588 1526h348l151 -264h-169l-164 161l-230 -161h-180z" />
-<glyph d="M410 1526h170l149 -162l229 162h181l-244 -264h-348z" />
-<glyph d="M47 618l1059 261l37 -117l-1059 -262z" />
-<glyph d="M659 848h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM686 991l64 330l-314 -330h250z" />
-<glyph d="M720 1262q-72 0 -123.5 17t-88.5 51q-74 68 -74 192v4h143q10 -60 51 -87q41 -28 117 -28q40 0 70 7.5t57 23.5q54 32 76 84h154q-40 -129 -139 -196q-100 -68 -243 -68z" />
-<glyph d="M617 1280q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h214q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214v0z" />
-<glyph d="M586 -445q-133 0 -208 65.5t-75 203.5q0 49 9.5 108t27 118t41 113.5t52.5 95.5q56 80 140.5 121.5t192.5 41.5q132 0 208 -65.5t76 -201.5q0 -46 -9 -104t-26.5 -118t-42 -117t-55.5 -100q-55 -78 -137.5 -119.5t-193.5 -41.5zM608 -307q53 0 87.5 31.5t60.5 83.5 q18 37 34 84t27 95t17.5 93t6.5 79q0 63 -23 93.5t-74 30.5q-50 0 -85.5 -28.5t-63.5 -85.5q-17 -35 -32.5 -81t-27 -94t-18 -94.5t-6.5 -81.5q0 -125 97 -125zM674 -82q-36 0 -62 20t-26 49q0 31 26 51.5t62 20.5q18 0 34.5 -5.5t29 -15t20 -22t7.5 -27.5q0 -29 -26.5 -50 t-64.5 -21z" />
-<glyph d="M315 -255h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657z" />
-<glyph d="M289 -259q42 31 60.5 44t28.5 20.5t19.5 14t33.5 23.5q202 145 301 237.5t99 149.5q0 35 -36.5 59.5t-107.5 24.5q-57 0 -132 -18t-152 -53l31 162q76 23 149 35t139 12q74 0 131 -14.5t96 -40t59 -59.5t20 -74q0 -44 -24.5 -91.5t-75 -101.5t-127.5 -117t-183 -136 q-30 -21 -46.5 -32.5t-26 -18.5t-16 -11.5t-15.5 -10.5h438l-28 -145h-664z" />
-<glyph d="M566 -425q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9 q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19z" />
-<glyph d="M659 -230h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM686 -87l64 330l-314 -330h250z" />
-<glyph d="M507 -425q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5 t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
-<glyph d="M596 -427q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13q-109 0 -185.5 -60t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132 t-80.5 -105t-126 -69t-165 -25zM609 -293q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60t-13.5 -69.5q0 -57 31.5 -86t84.5 -29z" />
-<glyph d="M780 265h-449l36 145h683l-29 -117l-536 -718h-227z" />
-<glyph d="M596 -435q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121 q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM707 87q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM616 -302q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5 q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
-<glyph d="M496 -435q-48 0 -96.5 6.5t-110.5 26.5l36 150q43 -25 93 -37.5t101 -12.5q112 0 186.5 60t108.5 178q-87 -73 -214 -73q-59 0 -106 16t-80 46t-50.5 73.5t-17.5 99.5q0 69 27 130t78.5 106t125.5 71.5t167 26.5q149 0 227.5 -71t78.5 -217q0 -53 -10.5 -111 t-31.5 -114.5t-51 -109t-69 -94.5q-72 -78 -169.5 -114t-222.5 -36zM665 -5q40 0 73.5 16t57.5 42.5t37.5 60.5t13.5 69q0 58 -33 86.5t-84 28.5q-39 0 -71.5 -15.5t-56.5 -41.5t-37.5 -60t-13.5 -71q0 -58 31 -86.5t83 -28.5z" />
-<glyph horiz-adv-x="0" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/svg/hack-italic-webfont.svg b/pagure/static/hack_fonts/fonts/svg/hack-italic-webfont.svg
deleted file mode 100755
index 1544287..0000000
--- a/pagure/static/hack_fonts/fonts/svg/hack-italic-webfont.svg
+++ /dev/null
@@ -1,1588 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackitalic" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M647 1053l70 445h265l-70 -445l-157 -567h-121zM606 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5z" />
-<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
-<glyph unicode="#" d="M250 414h-256l39 153h256l84 334h-258l39 154h258l104 415h160l-105 -415h246l105 415h159l-104 -415h256l-39 -154h-256l-84 -334h258l-39 -153h-258l-104 -414h-160l104 414h-245l-105 -414h-160zM694 567l84 334h-246l-83 -334h245z" />
-<glyph unicode="$" d="M373 0q-53 3 -151 26q-51 12 -98 28.5t-93 37.5l35 180q81 -60 176 -93q96 -34 188 -38l90 465q-75 17 -138.5 43t-106.5 65q-38 35 -59 82.5t-21 115.5q0 83 33 156.5t100 131.5t154.5 88t146.5 33l48 235h180l-47 -235q5 -3 49 -9t74 -12q15 -3 34 -7.5t39.5 -10 t40 -11t36.5 -11.5l-32 -173q-32 20 -71 37t-71 27t-76 18.5t-80 12.5l-81 -426q165 -35 253 -117q45 -42 67 -94.5t22 -123.5q0 -88 -34 -163.5t-103 -135.5q-137 -120 -353 -120h30l-59 -303h-181zM633 1184q-108 -7 -184 -76t-76 -167q0 -70 42 -107q20 -18 55.5 -33 t82.5 -27zM553 145q120 0 199 73q38 35 58.5 81t20.5 103q0 44 -12 74.5t-35 50.5q-46 41 -145 61z" />
-<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5 t99.5 66.5t126.5 24.5q33 0 63 -6t59 -18q57 -24 103 -70q25 -25 42.5 -52t28.5 -53q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
-<glyph unicode="&#x26;" d="M408 -29q-94 0 -174 27t-138 80q-57 51 -86.5 122.5t-29.5 161.5q0 81 25 160.5t74 150.5t121.5 133t166.5 114q-17 32 -26 55t-17 51q-7 26 -11 51.5t-4 57.5q0 84 30.5 156t92.5 125q60 51 144 77.5t185 26.5q66 0 128 -12q60 -12 119 -35l-35 -183q-42 38 -103 57 q-31 10 -65 14.5t-67 4.5q-120 0 -187 -57q-34 -29 -51 -68t-17 -84q0 -23 5 -50t17 -62q11 -32 25 -64.5t37 -73.5l307 -557q62 66 99 169q19 52 31 111t18 130h168q-8 -85 -27 -159t-51 -143q-62 -135 -168 -237l123 -221h-199l-59 113q-49 -36 -95 -61.5t-100 -44.5 q-101 -36 -206 -36zM456 129q36 0 70 7.5t71 21.5q35 14 70.5 33.5t73.5 48.5l-309 555q-135 -74 -204 -171q-35 -50 -52.5 -104.5t-17.5 -108.5q0 -65 23 -115.5t62 -86.5q41 -38 95.5 -59t117.5 -21z" />
-<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
-<glyph unicode="(" d="M426 -270q-40 95 -68.5 181t-47.5 165t-28 153t-9 152q0 146 32 296t97 301q63 147 158 291t223 285h159q-118 -152 -206 -301t-149 -305q-120 -306 -120 -608q0 -79 8 -151t22 -146q16 -81 37.5 -156.5t51.5 -156.5h-160v0z" />
-<glyph unicode=")" d="M320 -270q237 302 356 606q60 153 89.5 304.5t29.5 299.5q0 74 -7.5 150.5t-21.5 150.5q-14 73 -37 152.5t-53 160.5h160q79 -190 116 -345q19 -79 28 -153t9 -152q0 -146 -32 -296.5t-97 -300.5q-66 -152 -160.5 -295t-220.5 -282h-159v0z" />
-<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
-<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
-<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 111q0 71 46 111q20 18 48.5 29.5t66.5 11.5q86 0 133 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
-<glyph unicode="-" d="M226 683h822l-33 -164h-822z" />
-<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="/" d="M868 1493h191l-854 -1683h-189z" />
-<glyph unicode="0" d="M480 -29q-194 0 -288 124t-94 369q0 99 14.5 207t41.5 214t64 198t79 161q42 71 90 122.5t106 86.5q52 32 115 49.5t141 17.5q101 0 172 -30.5t119 -93.5q45 -60 70 -150t25 -218q0 -101 -15 -211t-41 -209q-26 -103 -63 -194.5t-80 -164.5q-42 -72 -90 -124t-105 -86 q-54 -32 -118.5 -50t-142.5 -18zM502 135q85 0 153 51q39 29 67 69.5t48 78.5q33 66 63 156.5t53 190.5q23 103 34.5 199t11.5 177q0 84 -12 139.5t-37 90.5t-64 52t-87 17q-42 0 -81 -12.5t-73 -37.5q-36 -26 -65 -64.5t-52 -83.5q-34 -66 -63.5 -153t-52.5 -193 q-24 -110 -35 -208t-11 -175q0 -87 13 -140t39 -86q24 -31 62 -49.5t89 -18.5zM550 401q-8 0 -12 2q-23 8 -32 41t-9 82q0 14 0.5 25.5t1.5 26.5q2 38 5 69t6.5 57t8 48.5t9.5 45.5q3 11 7.5 30.5t12 44t17.5 52t22 54.5q26 57 51.5 83.5t47.5 26.5h4t7 -2q19 -5 31.5 -31 t12.5 -87q-1 -6 -1 -13v-15q-2 -38 -4 -67t-5 -51.5t-6 -40t-7 -32.5q-5 -21 -12 -46.5t-15.5 -53t-18.5 -56t-20 -53.5q-26 -67 -51 -103.5t-51 -36.5z" />
-<glyph unicode="1" d="M156 170h313l221 1141l-352 -76l35 184l352 74h203l-258 -1323h309l-33 -170h-823z" />
-<glyph unicode="2" d="M32 136q4 20 12 33t21 24l285 251l39 35q131 117 231 216t168 182.5t103 153t35 129.5q0 42 -16.5 77.5t-47.5 61.5t-75.5 39.5t-102.5 13.5q-48 0 -99 -9t-99 -24q-50 -16 -109.5 -42t-122.5 -60l41 204q60 26 115 44.5t102 29.5q57 14 105.5 19.5t91.5 5.5 q97 0 173.5 -25t130.5 -71t83.5 -111.5t29.5 -149.5q0 -42 -8 -84t-28 -90q-40 -97 -117 -190q-9 -11 -19.5 -22.5t-24.5 -26t-32 -32t-43 -40.5q-99 -92 -169.5 -152.5t-96.5 -81.5l-330 -274h694l-32 -170h-914z" />
-<glyph unicode="3" d="M383 -29q-57 0 -105 5t-99 14q-54 10 -99.5 22.5t-97.5 32.5l38 201q49 -28 93 -46t93 -32t95.5 -20.5t96.5 -6.5q96 0 168 24t127 70t83.5 105.5t28.5 134.5q0 62 -18.5 106.5t-52.5 73.5q-71 60 -210 60h-153l32 166h154q76 0 140 18.5t111 55.5q45 35 69 86t24 116 q0 53 -16.5 88.5t-45.5 57.5q-62 47 -189 47q-43 0 -87 -5t-93 -15q-56 -11 -104 -25.5t-106 -34.5l37 186l58 14.5t59 14t55.5 12t47.5 8.5q42 7 90 11t90 4q93 0 168 -21.5t129 -65.5q52 -42 80 -103.5t28 -142.5q0 -72 -22 -135.5t-67 -115.5q-42 -49 -104 -84.5 t-147 -52.5q113 -19 178 -102q32 -42 48 -93t16 -120q0 -112 -41.5 -205.5t-125.5 -165.5q-82 -70 -193 -106t-261 -36z" />
-<glyph unicode="4" d="M659 356h-634l36 191l785 946h233l-190 -973h198l-30 -164h-199l-70 -356h-198zM690 520l152 762l-625 -762h473z" />
-<glyph unicode="5" d="M366 -29q-48 0 -98.5 4t-97.5 12q-94 16 -166 48l41 205q46 -28 89 -46.5t83 -29.5q45 -13 90.5 -19t87.5 -6q93 0 173 29t140 87q55 53 88 128t33 162q0 130 -80 203t-224 73q-39 0 -78.5 -5t-81.5 -15t-81 -24.5t-77 -33.5l145 750h756l-33 -170h-571l-72 -367 q46 16 92 24q22 4 44.5 5.5t43.5 1.5q96 0 172 -29t131 -83q57 -55 86 -131.5t29 -169.5q0 -124 -52 -240q-53 -117 -149 -203q-43 -38 -92.5 -68.5t-108.5 -51.5q-57 -20 -120.5 -30t-141.5 -10z" />
-<glyph unicode="6" d="M515 -29q-93 0 -174 28t-139 88q-54 56 -82 141.5t-28 204.5q0 69 9.5 155.5t29.5 176.5q19 87 47 172t60 154q51 111 114.5 191t136.5 131q152 107 357 107q38 0 76 -3.5t72 -11.5q31 -7 66.5 -19t67.5 -26l-36 -186q-59 37 -126 57q-34 10 -70 14.5t-71 4.5 q-100 0 -178.5 -35.5t-141.5 -107.5q-125 -143 -181 -427q36 54 75.5 91.5t86.5 63.5t98 39t112 13q88 0 156.5 -25.5t114.5 -73.5q50 -51 73 -123t23 -162q0 -54 -9 -113t-31 -124q-21 -63 -48 -111.5t-60 -90.5q-77 -97 -177 -145q-47 -23 -102 -35.5t-121 -12.5zM521 129 q67 0 130 32.5t113 101.5q47 66 71.5 149t24.5 171q0 62 -13.5 108t-44.5 78q-29 30 -71.5 45t-91.5 15q-75 0 -138 -33t-110 -93q-49 -63 -73.5 -143.5t-24.5 -165.5q0 -66 15 -114t45 -82q32 -35 76 -52t92 -17z" />
-<glyph unicode="7" d="M952 1323h-708l32 170h936l-16 -94l-805 -1399h-217z" />
-<glyph unicode="8" d="M483 -29q-100 0 -182 25.5t-142 76.5q-54 47 -86 117t-32 164q0 87 28 158.5t77 126.5t120 95t164 59q-57 20 -96 48t-65 63q-29 38 -41.5 82.5t-12.5 94.5q0 90 38 170.5t109 141.5q75 64 169 95.5t195 31.5q87 0 160.5 -22.5t128.5 -67.5q52 -42 81.5 -102t29.5 -137 q0 -70 -25 -135.5t-72 -119.5t-113 -94.5t-144 -59.5q125 -30 190 -113q32 -42 48 -95.5t16 -118.5q0 -103 -38.5 -192.5t-112.5 -155.5q-72 -65 -171.5 -100.5t-220.5 -35.5zM634 866q124 0 208 87q42 44 63 97t21 112q0 50 -15 85.5t-45 62.5q-60 54 -160 54 q-66 0 -118 -21t-90 -59q-82 -81 -82 -203q0 -101 59 -158q58 -57 159 -57zM494 127q72 0 132 23.5t105 68.5q45 46 67.5 106.5t22.5 132.5q0 62 -16.5 107t-49.5 78q-66 66 -183 66q-144 0 -234 -98q-46 -50 -69 -113t-23 -134q0 -60 16.5 -101t50.5 -73t78 -47.5 t103 -15.5z" />
-<glyph unicode="9" d="M343 -29q-76 0 -146 15q-32 7 -65.5 17.5t-68.5 27.5l35 186q29 -19 60.5 -32.5t65.5 -23.5q69 -20 142 -20q194 0 320 144q124 142 180 426q-67 -101 -161 -154q-51 -29 -103.5 -41t-109.5 -12q-87 0 -153.5 25.5t-114.5 74.5q-97 100 -97 285q0 63 10.5 122.5 t29.5 115.5q20 58 47.5 109t59.5 91q37 46 82.5 83.5t95.5 61.5q99 48 224 48q101 0 180.5 -30t133.5 -87q110 -116 110 -344q0 -69 -9.5 -156t-29.5 -177q-20 -91 -47 -172t-60 -153q-52 -112 -114 -190.5t-137 -131.5q-81 -57 -170.5 -82.5t-189.5 -25.5zM551 662 q75 0 138 33t110 93t72.5 140t25.5 169q0 69 -15.5 117.5t-44.5 80.5t-72 49.5t-94 17.5q-72 0 -134.5 -34.5t-109.5 -99.5q-45 -63 -71 -147t-26 -174q0 -57 13 -104.5t45 -80.5q29 -30 71.5 -45t91.5 -15z" />
-<glyph unicode=":" d="M728 776q-28 0 -52.5 9.5t-44.5 31.5q-21 23 -28.5 50t-7.5 56q0 39 15.5 74t46.5 63q27 25 61 39.5t72 14.5q35 0 59 -11.5t41 -29.5q16 -17 25.5 -42.5t9.5 -57.5q0 -38 -14.5 -76t-46.5 -67q-30 -28 -66.5 -41t-69.5 -13zM617 60q-32 0 -58 11t-43 31q-18 20 -26 46.5 t-8 54.5q0 39 15 76t47 66q26 24 60.5 38.5t72.5 14.5q28 0 54 -9t46 -32q16 -17 25.5 -42.5t9.5 -60.5q0 -83 -62 -140q-28 -26 -62 -40t-71 -14z" />
-<glyph unicode=";" d="M723 713q-71 0 -112 50q-32 38 -32 93q0 9 1 18t3 18q7 42 25 73.5t44 53.5q26 23 59 36t68 13t64.5 -12.5t49.5 -35.5q33 -38 33 -94q0 -16 -3 -34q-15 -80 -71 -129q-26 -23 -58.5 -36.5t-70.5 -13.5zM339 -351q275 114 320 351q-14 -3 -23 -4t-19 -1q-33 0 -61 10.5 t-48 30.5q-30 31 -30 84v9q0 5 0.5 11t1.5 13q6 35 22 64t45 52t61 33t64 10q91 0 130 -71q13 -23 19 -52t6 -57q0 -17 -2 -42t-5 -46q-14 -92 -51.5 -170.5t-94.5 -140.5q-56 -61 -134 -111.5t-169 -81.5z" />
-<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
-<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
-<glyph unicode="?" d="M546 583q12 78 53 146q21 35 53 70t86 81l104 89q42 35 65 59t37 44q32 45 39 93q3 18 3 34q0 32 -11.5 60t-34.5 50q-27 26 -68.5 40.5t-96.5 14.5q-80 0 -173 -34q-48 -17 -98.5 -43t-105.5 -60l30 188q49 27 100.5 49t102.5 36t101.5 21t100.5 7q91 0 162 -23t121 -73 q36 -36 56 -83.5t20 -98.5q0 -17 -2 -38t-4 -37q-5 -37 -18.5 -71.5t-37.5 -69.5q-26 -38 -64.5 -77t-87.5 -81l-102 -86q-43 -36 -67.5 -62t-37.5 -46q-11 -17 -20 -40t-12 -43l-8 -47l-12 -80h-190zM542 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5 t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
-<glyph unicode="@" d="M607 -317q-151 0 -267 50t-196 138q-87 95 -130 225t-43 283q0 97 17.5 198t54.5 204q34 94 83 182.5t112 161.5q52 61 117 113t140 88q72 35 149 53t156 18q95 0 171 -26t131 -77q57 -53 84.5 -124t27.5 -155q0 -14 -1 -33t-3 -38t-5.5 -41t-8.5 -45l-137 -723h-144 l21 111q-26 -32 -57.5 -56.5t-64.5 -40.5q-35 -17 -73.5 -25.5t-78.5 -8.5q-71 0 -123 24.5t-91 67.5q-42 46 -62.5 104.5t-20.5 139.5q0 103 33 197t99 173q63 75 141 115.5t172 40.5q85 0 150 -36t93 -97l8 43q2 12 4.5 30t4.5 31t2.5 23t0.5 22q0 59 -18 108t-55 84 q-73 70 -204 70q-72 0 -139.5 -20t-132.5 -58q-63 -38 -120 -92t-107 -128q-40 -60 -72.5 -129.5t-55.5 -145.5q-21 -72 -32.5 -149.5t-11.5 -155.5q0 -128 32 -230.5t96 -175.5q63 -72 152.5 -109.5t197.5 -37.5q30 0 62 3t60 9q21 5 53 14t74 25l45 -131 q-38 -18 -72 -28.5t-65 -17.5q-71 -15 -153 -15zM710 260q63 0 117 28t95 78q40 49 63 114t23 138q0 49 -12 88t-38 68q-50 55 -138 55q-60 0 -114 -26t-96 -77t-64 -116.5t-22 -135.5q0 -48 12 -89t38 -70q50 -55 136 -55z" />
-<glyph unicode="A" d="M639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="B" d="M313 1493h443q204 0 307 -79q52 -40 78 -98t26 -138q0 -151 -92 -255q-92 -105 -248 -124q124 -23 192 -102q34 -40 50 -91t16 -120q0 -109 -39.5 -199.5t-119.5 -156.5q-159 -130 -451 -130h-452zM639 877q152 0 238 73q86 72 86 198q0 95 -55 137q-56 42 -181 42h-244 l-88 -450h244zM506 166q184 0 282 87q49 44 73 107t24 136q0 63 -17 101.5t-51 64.5q-68 51 -211 51h-241l-107 -547h248z" />
-<glyph unicode="C" d="M597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124 q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
-<glyph unicode="D" d="M283 1493h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q184 0 297 63q113 62 180 203q25 52 48 122t41 153q17 80 25.5 153 t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-226 -1161h97z" />
-<glyph unicode="E" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="F" d="M383 1493h879l-33 -170h-676l-86 -450h612l-32 -170h-613l-139 -703h-203z" />
-<glyph unicode="G" d="M564 -29q-122 0 -211.5 34.5t-150.5 100.5q-63 69 -93.5 165t-30.5 217q0 47 4.5 94.5t12.5 98.5q8 46 20.5 103.5t27.5 108.5q17 57 38 110.5t44 101.5q25 50 51 89.5t52 72.5q50 62 110 110.5t128 80.5q130 62 288 62q46 0 86 -5t80 -16q81 -21 156 -61l-41 -207 q-35 34 -70 57t-66 37q-71 31 -153 31q-50 0 -96.5 -10.5t-87.5 -30.5q-42 -20 -82 -52t-72 -71q-45 -54 -83 -130q-21 -42 -38 -85.5t-31 -89.5q-17 -56 -30 -110.5t-21 -103.5q-9 -52 -13.5 -94.5t-4.5 -84.5q0 -174 79 -266q40 -47 95.5 -70t130.5 -23q36 0 65 5t55 14 q29 10 50.5 23t40.5 30l76 393h-217l30 166h410l-133 -670q-86 -61 -190 -93q-51 -16 -103.5 -24t-111.5 -8z" />
-<glyph unicode="H" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
-<glyph unicode="I" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="J" d="M375 -29q-54 0 -102 6t-99 17q-53 12 -101 28.5t-98 38.5l45 236q38 -42 78.5 -71t85.5 -49q44 -20 91 -31t105 -11q142 0 212 73q32 33 60 99.5t50 179.5l164 836h-381l33 170h584l-197 -1006q-29 -150 -72 -247t-104 -154q-63 -59 -149.5 -87t-204.5 -28z" />
-<glyph unicode="K" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
-<glyph unicode="L" d="M369 1493h202l-258 -1323h721l-33 -170h-923z" />
-<glyph unicode="M" d="M229 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
-<glyph unicode="N" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
-<glyph unicode="O" d="M478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265 q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5 q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="P" d="M321 1493h440q103 0 182 -23.5t133 -68.5t80.5 -112.5t26.5 -162.5q0 -120 -41 -217t-119 -166t-186.5 -106t-253.5 -37h-233l-117 -600h-203zM616 766q165 0 264 96q49 48 73.5 111.5t24.5 137.5q0 53 -14 95t-48 70q-62 51 -192 51h-233l-109 -561h234z" />
-<glyph unicode="Q" d="M504 -27h-10q-111 0 -187 30t-126 90t-74.5 152.5t-24.5 226.5q0 66 5.5 121.5t16.5 118.5q5 31 11 60.5t13.5 61t17 66t22.5 75.5q16 50 31 89t32 77q7 15 15.5 32t18 35t19.5 34.5t19 29.5q38 57 88.5 106.5t109.5 81.5q56 31 118 45.5t134 14.5q102 0 176.5 -30 t124.5 -93q48 -60 72.5 -151.5t24.5 -216.5q0 -48 -3.5 -95.5t-10.5 -94.5t-18 -100.5t-25 -109.5q-14 -53 -30.5 -107t-31.5 -95q-16 -43 -34 -82.5t-35 -70.5q-22 -39 -52.5 -81.5t-71.5 -81.5q-31 -30 -68.5 -57t-80.5 -44l236 -280h-236zM498 135q43 0 84 12.5t78 38.5 q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5 t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="R" d="M281 1493h416q206 0 321 -89q59 -46 86 -110.5t27 -149.5q0 -84 -25.5 -160t-77.5 -136q-51 -59 -121 -95.5t-161 -47.5q34 -6 64.5 -23.5t51.5 -43.5q20 -25 44.5 -80.5t52.5 -149.5l121 -408h-201l-106 377q-44 155 -98 205q-28 26 -70.5 37.5t-94.5 11.5h-192 l-123 -631h-203zM570 797q163 0 261 86q97 85 97 226q0 113 -63 166q-62 52 -199 52h-213l-102 -530h219z" />
-<glyph unicode="S" d="M435 -29q-58 0 -108 6t-101 17q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5 q0 101 40.5 192.5t124.5 162.5q83 70 191 105t232 35q48 0 91 -5t88 -15q46 -10 90.5 -24t94.5 -34l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60t-75.5 -91t-27.5 -115q0 -39 12 -67.5t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75 q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5t-197 -103.5t-251 -34.5z" />
-<glyph unicode="T" d="M629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
-<glyph unicode="U" d="M477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51 q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="V" d="M199 1493h198l113 -1303l598 1303h215l-719 -1493h-258z" />
-<glyph unicode="W" d="M145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
-<glyph unicode="X" d="M546 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
-<glyph unicode="Y" d="M508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="Z" d="M32 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
-<glyph unicode="[" d="M682 1636h424l-23 -143h-240l-256 -1620h240l-23 -143h-424z" />
-<glyph unicode="\" d="M356 1493h170l199 -1683h-170z" />
-<glyph unicode="]" d="M366 -127h240l256 1619h-240l23 143h424l-302 -1905h-424z" />
-<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
-<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
-<glyph unicode="`" d="M453 1638h198l197 -376h-143z" />
-<glyph unicode="a" d="M407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5 t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172 q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="b" d="M535 -29q-97 0 -164 43q-66 43 -101 127l-46 -141h-165l303 1556h185l-113 -579q61 83 144 127q82 43 185 43q79 0 144 -25.5t111 -77.5q90 -102 90 -296q0 -66 -10.5 -138.5t-30.5 -144.5q-19 -67 -46.5 -130t-66.5 -122q-78 -116 -184 -178q-56 -32 -115 -48t-120 -16z M540 127q83 0 151 45q35 23 62.5 55t51.5 77q25 46 45 100.5t33 108.5q14 58 21 114t7 106q0 62 -11.5 111.5t-38.5 84.5q-51 64 -151 64q-44 0 -82.5 -12t-70.5 -34t-62.5 -56t-56.5 -79q-26 -46 -44.5 -96t-32.5 -105q-14 -59 -21.5 -116t-7.5 -106q0 -63 12.5 -111.5 t40.5 -83.5q30 -38 70.5 -52.5t84.5 -14.5z" />
-<glyph unicode="c" d="M597 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5 t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-44 -11 -86.5 -16t-90.5 -5z" />
-<glyph unicode="d" d="M462 -29q-85 0 -146.5 27t-105.5 78q-46 53 -68.5 125.5t-22.5 172.5q0 66 10 138t30 145q21 76 49 138.5t60 113.5q39 62 83 105.5t94 72.5t105 44.5t118 15.5q51 0 93 -10.5t79 -32.5q73 -44 114 -127l115 579h184l-303 -1556h-164l7 141q-64 -83 -147 -127 q-82 -43 -184 -43zM518 127q85 0 154 45q35 23 63 55.5t53 77.5q49 87 77 203q14 56 21 112.5t7 106.5q0 132 -53 197q-25 31 -64.5 49t-93.5 18q-42 0 -81 -11.5t-70 -31.5q-32 -21 -61.5 -55t-52.5 -76q-22 -40 -41.5 -93.5t-33.5 -110.5t-20.5 -115.5t-6.5 -109.5 q0 -69 12.5 -117t38.5 -80q51 -64 152 -64z" />
-<glyph unicode="e" d="M558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49 q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69 q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="f" d="M523 977h-299l29 143h297l16 78q21 103 53.5 168.5t81.5 107.5q50 42 119.5 62t163.5 20h221l-31 -153h-208q-94 0 -143 -41q-26 -23 -41.5 -58.5t-26.5 -84.5l-21 -99h385l-26 -143h-385l-191 -977h-184z" />
-<glyph unicode="g" d="M376 -440q-43 0 -82.5 3.5t-79.5 10.5q-78 13 -155 41l37 182q40 -23 76 -39.5t76 -27.5q80 -23 158 -23q148 0 231 80q42 40 70.5 105t48.5 161l24 117q-59 -87 -145 -132q-45 -23 -93 -34.5t-99 -11.5q-79 0 -142.5 27t-108.5 80q-46 54 -68 129.5t-22 169.5 q0 63 10 132t30 138q39 135 112 243q40 60 83 101.5t95 72.5q104 62 216 62q99 0 176 -48q35 -23 63.5 -56t46.5 -78l47 151h164l-203 -1044q-53 -272 -186 -392q-134 -120 -380 -120zM513 145q38 0 74 11t71 34q65 44 112 129q26 46 46 100.5t31 101.5q14 55 20.5 111 t6.5 101q0 126 -56 192q-28 33 -67 49.5t-87 16.5q-84 0 -149.5 -46t-112.5 -122q-50 -81 -77.5 -187.5t-27.5 -214.5q0 -83 15.5 -131.5t40.5 -77.5q29 -32 70 -49.5t90 -17.5z" />
-<glyph unicode="h" d="M387 1556h184l-116 -604q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
-<glyph unicode="i" d="M627 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27 q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="j" d="M811 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM55 -270h233q45 0 83.5 14.5t66.5 44.5q54 58 80 191l192 997h-317l28 143h502l-221 -1140q-19 -97 -53 -177t-89 -133q-101 -96 -282 -96h-254z" />
-<glyph unicode="k" d="M393 1556h191l-170 -874l549 438h241l-520 -422l373 -698h-213l-307 582l-168 -133l-88 -449h-191z" />
-<glyph unicode="l" d="M739 -8q-174 0 -257 64q-41 31 -63 78.5t-22 113.5q0 17 1.5 34t3.5 36t5.5 39.5t8.5 46.5l211 1008h-316l29 144h500l-240 -1156q-4 -18 -5.5 -29t-2 -17.5t-0.5 -9v-4.5q0 -5 -3 -12.5t-3 -32.5q0 -76 44 -111q45 -36 136 -36h211l-31 -156h-207v0z" />
-<glyph unicode="m" d="M203 1120h148l1 -96q43 60 100 92q55 31 120 31q74 0 120 -37q45 -37 56 -104q20 35 46.5 61.5t55.5 43.5q31 18 66.5 27t70.5 9q42 0 78 -13t62 -40q30 -32 40.5 -72.5t10.5 -78.5q0 -20 -2 -52.5t-7 -66.5q-2 -18 -5 -36t-6.5 -38.5t-8 -45t-10.5 -55.5l-127 -649h-168 l125 641q3 15 7.5 38t8.5 45.5t7.5 41.5t4.5 26q5 26 7 50t2 39q0 24 -6 47t-17 37q-22 28 -74 28q-41 0 -68.5 -16t-47.5 -48q-24 -38 -43.5 -105.5t-42.5 -182.5l-125 -641h-168l125 641q3 13 6.5 33t7.5 41.5t8 42.5t6 37q3 20 5.5 44t2.5 42q0 23 -5 44t-18 38 q-23 30 -74 30q-35 0 -63 -13.5t-49 -45.5q-11 -17 -21.5 -42t-21 -60t-21.5 -82.5t-23 -108.5l-125 -641h-168z" />
-<glyph unicode="n" d="M303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
-<glyph unicode="o" d="M510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44 t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="p" d="M299 1120h164l-8 -143q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
-<glyph unicode="q" d="M774 141q-62 -84 -143 -127q-82 -43 -185 -43q-81 0 -145.5 25.5t-110.5 76.5q-44 49 -68 123t-24 176q0 65 10.5 136t30.5 144q20 70 48 135t65 122q39 61 83 104.5t97 73.5q105 60 231 60q57 0 98.5 -11t72.5 -31q68 -43 102 -128l47 143h164l-299 -1546h-184zM496 127 q85 0 154 46q36 24 66 59t52 73q48 84 77 203q14 59 21.5 116t7.5 107q0 63 -12.5 112t-40.5 83q-53 65 -154 65q-84 0 -152 -44q-35 -23 -63 -55t-51 -76q-25 -46 -44 -99.5t-33 -109.5q-29 -118 -29 -221q0 -131 51 -195t150 -64z" />
-<glyph unicode="r" d="M404 1120h164l-20 -219q67 120 174 183q106 63 239 63q35 0 69 -4.5t62 -13.5q25 -8 50.5 -22t46.5 -32l-35 -186q-23 22 -49.5 38.5t-54.5 27.5q-30 11 -64 16.5t-69 5.5q-82 0 -154 -28t-130 -85t-97 -137t-58 -178l-107 -549h-184z" />
-<glyph unicode="s" d="M477 -29q-48 0 -92.5 4.5t-82.5 12.5q-45 9 -92 22.5t-95 30.5l37 190q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172 q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5q-40 -27 -58 -63t-18 -71q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5 l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-72 -56 -169 -83.5t-207 -27.5z" />
-<glyph unicode="t" d="M682 -4q-89 0 -148 15t-97 41q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47q0 -67 39 -93q39 -27 141 -27h207 l-29 -147h-223v0z" />
-<glyph unicode="u" d="M409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5 q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="v" d="M182 1120h178l154 -956l502 956h198l-614 -1120h-238z" />
-<glyph unicode="w" d="M92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
-<glyph unicode="x" d="M524 596l-293 524h196l217 -395l369 395h225l-512 -547l318 -573h-197l-244 444l-417 -444h-226z" />
-<glyph unicode="y" d="M20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5 q-74 -37 -171 -37h-148z" />
-<glyph unicode="z" d="M111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
-<glyph unicode="{" d="M685 -334q-187 0 -268 54q-82 55 -82 178v13q-1 14 0 24.5t3 27.5q4 29 6.5 44.5t4.5 26.5l45 236q2 5 2 7.5t1 4.5q5 25 7.5 45t2.5 45q0 49 -12 79t-37 49q-49 37 -162 37h-92l29 147h91q146 0 208 55q62 54 93 205l50 244q25 124 61 194q36 71 90 111q22 16 49.5 28.5 t67.5 20.5q34 7 83 10.5t118 3.5h82l-29 -143h-85q-69 0 -111 -9.5t-65 -29.5q-25 -22 -44 -70t-33 -120l-51 -252q-15 -75 -37.5 -133.5t-55.5 -98.5q-59 -71 -171 -94q72 -18 113 -69q40 -52 40 -127q1 -13 0.5 -22.5t-3.5 -34.5q-2 -16 -3 -24.5t-2 -14.5t-2.5 -12.5 t-3.5 -18.5l-47 -244q-4 -20 -5.5 -33t-2.5 -26l-1.5 -25.5t-0.5 -13t-0.5 -6.5t-0.5 -5q0 -64 43 -92t140 -28h78l-29 -144h-72v0z" />
-<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
-<glyph unicode="}" d="M64 -190h78q137 0 183 40q22 19 41 63t36 126l51 252q15 75 37 133.5t56 99.5q61 73 172 92q-74 20 -114 70q-20 26 -30 55.5t-10 71.5q0 12 1 25.5t3 31.5q2 21 3.5 34t6.5 36l47 243q0 2 1.5 11t3 19.5t3 19t1.5 10.5q1 12 1.5 25t0.5 22q0 66 -42 95q-43 28 -141 28 h-77l26 143h74q100 0 165 -14t104 -40t60 -67.5t21 -114.5q0 -14 -1 -26.5t-3 -34.5q-2 -19 -3.5 -32t-6.5 -39l-45 -236l-2 -12q-5 -25 -7.5 -48t-2.5 -43q0 -89 49 -126t161 -37h92l-29 -147h-91q-143 0 -207 -55q-32 -27 -56.5 -77t-39.5 -128l-47 -244 q-12 -63 -28 -111.5t-34 -83.5q-36 -71 -90 -110q-25 -18 -53 -29.5t-63 -19.5q-69 -15 -201 -15h-82z" />
-<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M713 1170q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5zM498 655l108 357h162l-39 -357l-127 -655h-233z" />
-<glyph unicode="&#xa2;" d="M510 -27q-88 9 -161 44.5t-124 95.5t-76.5 140.5t-25.5 180.5q0 88 20 175.5t61 168.5q44 88 101 151.5t120 106.5q38 26 75.5 44.5t73.5 31.5q76 27 163 33l56 287h102l-55 -287q58 -3 123 -20q64 -17 124 -48l-32 -172q-50 38 -110 60t-134 28l-170 -870q32 2 66 9.5 t69 18.5t70.5 26.5t73.5 35.5l-33 -172q-20 -9 -41 -16.5t-40.5 -13.5t-35.5 -10.5t-26 -7.5q-30 -8 -65 -13t-67 -7l-55 -286h-102zM709 991q-165 -15 -279 -179q-58 -84 -86.5 -180.5t-28.5 -200.5q0 -75 15 -126t44 -89q28 -36 67.5 -59t99.5 -30z" />
-<glyph unicode="&#xa3;" d="M25 170h237l90 465h-198l26 143h199l47 238q27 137 72 229t110 152q63 59 150 91t199 32q73 0 135 -14q20 -5 58.5 -16.5t78.5 -27.5l-37 -184q-54 43 -114 66q-60 22 -126 22q-71 0 -123.5 -21.5t-90.5 -63.5t-66 -110.5t-49 -175.5l-43 -217h370l-28 -143h-371 l-90 -465h536l-32 -170h-973z" />
-<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
-<glyph unicode="&#xa5;" d="M444 524h-397l23 111h397l6 35l-55 151h-309l22 111h246l-205 561h207l223 -664l459 664h211l-404 -561h252l-22 -111h-312l-110 -151l-10 -35h393l-23 -111h-393l-98 -524h-199z" />
-<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
-<glyph unicode="&#xa7;" d="M411 -201q-40 0 -79.5 4t-71.5 10q-36 7 -78.5 18.5t-81.5 25.5l33 161q37 -18 73.5 -31.5t72.5 -23.5t68.5 -15t67.5 -5q52 0 97.5 12t78.5 35t49.5 54.5t16.5 65.5q0 54 -43.5 107.5t-139.5 119.5l-87 60q-125 86 -165 141q-21 29 -30.5 61t-9.5 68q0 45 15 90.5 t49 90.5q32 42 77 79.5t105 69.5q-42 39 -59 77q-10 21 -14.5 43t-4.5 50q0 74 30.5 137t89.5 111q60 48 139 72t170 24q35 0 70 -3.5t72 -10.5q39 -8 74.5 -18.5t73.5 -24.5l-33 -164q-34 18 -68.5 32.5t-70.5 25.5t-68.5 15.5t-61.5 4.5q-48 0 -90.5 -12t-75.5 -37 t-49.5 -55t-16.5 -61q0 -43 32.5 -86t101.5 -88l48 -32l86 -59q63 -43 104 -79t63 -65t32 -62.5t10 -68.5q0 -47 -16.5 -95t-49.5 -93q-35 -48 -80.5 -83t-99.5 -60q41 -35 62 -80q9 -20 14.5 -46t5.5 -58q0 -73 -30 -137.5t-90 -113.5q-61 -49 -142.5 -73.5t-174.5 -24.5z M678 401q84 51 128 107t44 108q0 30 -14.5 58t-38.5 53q-27 28 -79.5 67t-121.5 83l-80 51q-81 -52 -125 -108q-43 -55 -43 -109t43 -101q20 -22 59.5 -54t108.5 -77z" />
-<glyph unicode="&#xa8;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
-<glyph unicode="&#xaa;" d="M534 698q-61 0 -104.5 17t-71.5 43q-63 60 -63 163q0 71 29 126t82 93q112 79 311 79h174q0 4 1 9q2 11 2.5 24t0.5 21q0 28 -9.5 53.5t-35.5 45.5q-22 17 -55 25t-84 8q-35 0 -69 -4t-68 -12t-69 -21.5t-71 -30.5l23 127q75 29 148 42q37 7 71 10.5t69 3.5 q145 0 218 -62t73 -186q0 -13 -0.5 -27.5t-1.5 -24.5q-1 -7 -3.5 -26t-4.5 -29l-86 -448h-143l22 112q-26 -32 -59 -56.5t-68 -40.5q-39 -18 -79 -26t-79 -8zM581 817q49 0 96 16.5t85 50.5q41 36 66 86.5t36 104.5l6 29h-141q-149 0 -217 -40q-35 -20 -52.5 -52t-17.5 -71 q0 -59 37 -92q18 -16 42.5 -24t59.5 -8zM246 592h676l-23 -123h-676z" />
-<glyph unicode="&#xab;" d="M74 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176zM541 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176z" />
-<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
-<glyph unicode="&#xad;" d="M336 643h522l-33 -164h-522z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
-<glyph unicode="&#xaf;" d="M469 1526h598l-29 -148h-598z" />
-<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
-<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#xb2;" d="M328 1230l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557z" />
-<glyph unicode="&#xb3;" d="M536 1103q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
-<glyph unicode="&#xb4;" d="M907 1638h219l-395 -376h-156z" />
-<glyph unicode="&#xb5;" d="M252 1120h187l-136 -696q-2 -11 -4.5 -27.5t-4.5 -30.5q-3 -27 -3 -47q0 -40 12.5 -76.5t41.5 -62.5q30 -27 71.5 -38t86.5 -11q135 0 218 83q39 39 68.5 101t46.5 152l127 653h186l-168 -862q-1 -4 -2.5 -16.5t-1.5 -14.5q-1 -7 -1.5 -12.5t-0.5 -12.5q0 -29 13 -45 q5 -7 13.5 -11.5t20.5 -4.5q10 0 27 5q5 2 18.5 6.5t28.5 11.5l-29 -148q-19 -11 -41 -20.5t-36 -13.5q-36 -11 -73 -11q-31 0 -56.5 10t-46.5 33q-19 20 -29.5 47t-10.5 68q-52 -82 -122 -120q-71 -38 -166 -38t-156 42q-63 42 -94 124l-109 -563h-176z" />
-<glyph unicode="&#xb6;" d="M506 649q-177 4 -279 99q-102 94 -102 256q0 209 173 349t437 140h406l-328 -1690h-139l303 1567h-191l-303 -1567h-141z" />
-<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="&#xb8;" d="M366 -395q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 39 -17t38 -12q36 -9 68 -9q67 0 105 30q19 15 28 36t9 45q0 17 -4 35.5t-10 34.5q-5 12 -17 38.5t-27 54.5h119q19 -32 32.5 -60t22.5 -51q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54z " />
-<glyph unicode="&#xb9;" d="M369 1230h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553z" />
-<glyph unicode="&#xba;" d="M630 698q-78 0 -136 24t-100 67q-44 45 -65.5 107t-21.5 134q0 46 8.5 93t23.5 89q18 50 43.5 91t45.5 65q29 36 65.5 64.5t76.5 48.5q41 20 83.5 29.5t90.5 9.5q148 0 235 -91q41 -43 63.5 -105t22.5 -140q0 -42 -7.5 -87.5t-24.5 -93.5q-16 -44 -38 -82.5t-49 -70.5 q-30 -36 -65.5 -64.5t-75.5 -48.5q-80 -39 -175 -39zM645 813q53 0 102 26.5t87 80.5q38 53 57.5 121t19.5 138q0 107 -49 166q-26 32 -61 46t-73 14q-57 0 -104.5 -28t-83.5 -79q-38 -54 -57.5 -120.5t-19.5 -136.5q0 -57 12.5 -97.5t37.5 -70.5t59 -45t73 -15zM246 592 h676l-23 -123h-676z" />
-<glyph unicode="&#xbb;" d="M145 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418zM612 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418z" />
-<glyph unicode="&#xbc;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
-<glyph unicode="&#xbd;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM482 -160l203 167q153 125 233 213t80 150q0 20 -9 40.5t-28 36.5q-36 30 -100 30q-23 0 -53 -4.5t-59 -13.5q-27 -8 -64.5 -24t-79.5 -36l24 127 q42 14 78.5 25t68.5 18q31 7 60 10t56 3q62 0 107.5 -14.5t77.5 -40.5q34 -28 51 -66.5t17 -73.5q0 -39 -21.5 -85t-61 -96.5t-97 -103.5t-129.5 -107l-20 -15l-170 -136h395l-23 -114h-557z" />
-<glyph unicode="&#xbe;" d="M313 809q-34 0 -66 3t-64 8t-61.5 12t-61.5 18l24 121q69 -29 119 -42q51 -13 105 -13t98 11.5t76 34.5q34 24 49.5 55.5t15.5 69.5q0 66 -42 98q-44 32 -132 32h-72l21 106h72q98 0 156 40q59 41 59 103q0 53 -43 78q-22 13 -54 19t-72 6q-48 0 -95 -10 q-51 -11 -111 -33l22 115q35 8 68 14.5t64 11.5q61 9 115 9q58 0 105.5 -12t82.5 -38q65 -50 65 -140q0 -80 -57 -138q-27 -28 -65 -47.5t-89 -28.5q72 -12 111 -57q19 -22 29 -51.5t10 -68.5q0 -127 -104 -207q-103 -79 -278 -79zM47 612l1059 258l27 -108l-1063 -258z M799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
-<glyph unicode="&#xbf;" d="M752 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM495 -27q-72 0 -138.5 19t-117.5 62q-48 41 -72 95t-24 118 q0 89 49 169q26 43 69.5 89t109.5 100l104 86q39 32 69 63.5t46 57.5q15 25 27 62.5t18 74.5l20 123h191l-29 -154q-9 -48 -24.5 -88.5t-33.5 -69.5q-21 -34 -58 -73t-93 -86l-106 -89q-85 -71 -120 -127q-36 -56 -36 -113q0 -73 56 -114t153 -41q42 0 84.5 8.5t94.5 27.5 q50 18 98.5 42t105.5 59l-37 -188q-59 -31 -112.5 -52t-96.5 -33q-51 -14 -102 -21t-95 -7z" />
-<glyph unicode="&#xc0;" d="M551 1853h182l147 -264h-139zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc1;" d="M885 1852h208l-307 -264h-160zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc2;" d="M704 1854h213l158 -266h-133l-139 178l-209 -178h-152zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc3;" d="M442 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc4;" d="M500 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM891 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM639 1493h246l166 -1493h-201l-35 389h-520 l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc5;" d="M600 1415q-50 34 -76 89t-26 120q0 59 20.5 109t58.5 88q37 38 87 59t109 21q58 0 107 -21t87 -59q37 -37 58.5 -85.5t21.5 -111.5q0 -43 -10.5 -77.5t-29.5 -64.5q-41 -65 -110 -96l154 -1386h-201l-35 389h-520l-184 -389h-217zM772 1475q33 0 60.5 12t47.5 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -108q0 -65 44 -109q19 -19 46.5 -31t60.5 -12zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc6;" d="M555 1493h752l-33 -170h-338l-86 -442h307l-33 -170h-307l-106 -541h356l-33 -170h-542l75 383h-352l-176 -383h-184zM600 551l150 772h-103l-356 -772h309z" />
-<glyph unicode="&#xc7;" d="M1058 1499q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5 q-23 -5 -48.5 -9.5t-53.5 -6.5q14 -25 23.5 -46t17.5 -40q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5 q-4 9 -11.5 27t-18.5 38q-103 7 -181 41t-132 90q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16z" />
-<glyph unicode="&#xc8;" d="M596 1849h182l147 -264h-139zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xc9;" d="M930 1859h208l-307 -264h-160zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xca;" d="M749 1861h213l158 -266h-133l-139 178l-209 -178h-152zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xcb;" d="M545 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM936 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM344 1493h885l-33 -170h-684l-86 -442h653 l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xcc;" d="M557 1859h182l147 -264h-139zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xcd;" d="M891 1859h208l-307 -264h-160zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xce;" d="M710 1861h213l158 -266h-133l-139 178l-209 -178h-152zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xcf;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xd0;" d="M129 709h-127l29 149h129l123 635h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q99 0 170.5 16.5t126.5 46.5q63 35 104.5 84.5 t74.5 118.5q26 53 49 121t41 154q17 80 25.5 153t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-91 -469h267l-29 -149h-266l-107 -543h97z" />
-<glyph unicode="&#xd1;" d="M438 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
-<glyph unicode="&#xd2;" d="M543 1859h182l147 -264h-139zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd3;" d="M897 1859h208l-307 -264h-160zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd4;" d="M696 1861h213l158 -266h-133l-139 178l-209 -178h-152zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd5;" d="M434 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd6;" d="M492 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM478 -29q-202 0 -299 123q-97 122 -97 379 q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5 q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5 q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
-<glyph unicode="&#xd8;" d="M14 -6l119 170q-14 31 -24 64t-16 65q-13 68 -13 159q0 95 13 197.5t39 209.5q24 98 57.5 187.5t79.5 170.5q40 70 90 128t117 100q62 38 130.5 56.5t143.5 18.5q41 0 78 -5t69 -16q29 -10 60.5 -26.5t58.5 -38.5l84 125l100 -64l-106 -158q16 -34 26 -65.5t17 -66.5 q7 -36 10.5 -75.5t3.5 -90.5q0 -94 -13 -196t-39 -209q-29 -116 -64.5 -204.5t-72.5 -153.5q-45 -80 -96 -136t-110 -93t-129 -56.5t-148 -19.5q-43 0 -79.5 6t-70.5 17q-29 10 -61 26.5t-61 42.5l-94 -133zM905 1274q-13 18 -32.5 34t-41.5 27q-20 10 -47 15.5t-57 5.5 q-54 0 -101.5 -19.5t-89.5 -62.5q-81 -83 -141 -256q-11 -32 -22 -69t-21.5 -76.5t-19.5 -79t-16 -75.5q-14 -71 -21.5 -139t-7.5 -122l2 -38q1 -10 1 -15v-7t0.5 -3.5t0.5 -4.5zM501 135q113 0 194 82q34 35 70 96t71 160q12 33 23 70t21 75t18.5 75.5t14.5 72.5 q27 147 27 270v46q0 3 -0.5 14.5t-1.5 19.5l-616 -887q19 -43 67 -69q23 -13 51.5 -19t60.5 -6z" />
-<glyph unicode="&#xd9;" d="M555 1859h182l147 -264h-139zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xda;" d="M889 1859h208l-307 -264h-160zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xdb;" d="M708 1861h213l158 -266h-133l-139 178l-209 -178h-152zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5 q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xdc;" d="M504 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM895 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM477 -29q-190 0 -293 90q-104 90 -104 254 q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920 h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xdd;" d="M921 1859h208l-307 -264h-160zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#xde;" d="M342 1493l203 -2l-51 -274h241q207 0 316 -88q54 -44 81 -107.5t27 -154.5q0 -111 -40 -203.5t-121 -161.5q-161 -137 -441 -137h-231l-72 -365h-203zM590 522q163 0 263 92q50 46 74.5 107t24.5 132q0 60 -16.5 97t-45.5 60q-61 49 -192 49h-237l-105 -537h234z" />
-<glyph unicode="&#xdf;" d="M599 -29q-38 0 -69.5 3t-67.5 10q-41 7 -70 15.5t-62 20.5l30 164q58 -32 126 -48q68 -17 137 -17q130 0 207 63q36 30 55.5 71.5t19.5 94.5q0 31 -6.5 54t-20.5 43q-17 25 -43.5 48.5t-68.5 55.5l-61 47q-43 33 -71.5 59t-46.5 55q-28 46 -28 110q0 130 102 226 q47 45 115 79t164 53q2 8 3 15t2 15q1 7 1 12v7q0 40 -11 74.5t-40 59.5q-24 20 -61 32t-87 12q-57 0 -105.5 -16.5t-83.5 -50.5q-32 -31 -57.5 -81t-39.5 -124l-219 -1133h-187l221 1137q20 105 61 184.5t101 131.5q63 54 144 78.5t176 24.5q91 0 160 -21t114 -59 q94 -80 94 -232q0 -14 -1 -31t-3 -34t-5.5 -35t-8.5 -36q-174 -21 -274 -88q-101 -68 -101 -163q0 -21 5 -37t16 -32q14 -20 32 -36t48 -39l51 -39q54 -42 93.5 -77.5t62.5 -73.5q40 -65 40 -159q0 -84 -31 -156.5t-98 -128.5q-63 -53 -150.5 -80.5t-202.5 -27.5z" />
-<glyph unicode="&#xe0;" d="M457 1673h198l197 -376h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe1;" d="M911 1673h219l-395 -376h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe2;" d="M721 1673h147l164 -376h-133l-117 241l-225 -241h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19 q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125 q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe3;" d="M894 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12 q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5 t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe4;" d="M473 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM864 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 11v8q0 96 -62 140q-29 21 -75 33t-107 12q-42 0 -88 -6t-96 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe5;" d="M782 1321q-114 0 -194 80t-80 194q0 116 80 196q79 79 194 79q116 0 195 -79q80 -80 80 -196q0 -114 -80 -194t-195 -80zM782 1444q64 0 108 44t44 107q0 64 -44 108t-108 44t-107 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe6;" d="M234 -29q-68 0 -120.5 20t-85.5 52q-41 38 -58 92t-17 117q0 87 30 164.5t91 132.5q120 108 344 108h117l18 88q3 14 4 21.5t2 20.5q1 11 1.5 22.5t0.5 22.5q0 42 -11 71.5t-31 49.5q-19 19 -49 30.5t-70 11.5q-27 0 -56.5 -5.5t-59.5 -15.5q-32 -11 -69 -27t-74 -36 l35 168q44 19 79 31t69 20q35 8 66 12.5t60 4.5q81 0 140 -33q58 -33 90 -96q23 29 54 54t66 42q36 17 74.5 25t75.5 8q59 0 108 -19t85 -58q35 -38 53 -90.5t18 -112.5q0 -21 -2 -49.5t-6 -57.5q-2 -11 -4.5 -30.5t-6.5 -41.5l-8 -44t-7 -40l-17 -90h-495 q-12 -57 -17.5 -88.5t-9.5 -57.5q-4 -28 -6 -47t-2 -36q0 -41 13 -71.5t36 -50.5q49 -44 133 -44q69 0 142 29q70 28 124 79l-34 -172q-28 -20 -61.5 -36.5t-63.5 -26.5q-65 -21 -137 -21q-53 0 -98 11t-79 31t-58 50t-36 68q-47 -80 -117 -120q-35 -20 -76.5 -30t-86.5 -10 zM1024 657l16 74q4 17 6 31.5t3 23.5q1 11 1.5 29t0.5 29q0 39 -9 66.5t-26 46.5q-33 38 -94 38q-35 0 -70 -14t-64 -49t-46 -82t-31 -111l-17 -82h330zM267 123q83 0 134 68q13 18 24.5 41t22 53.5t20 69t19.5 87.5l15 72h-49q-67 0 -107 -3.5t-70 -12.5q-31 -9 -51 -21.5 t-37 -32.5q-18 -20 -28.5 -39.5t-18.5 -42.5q-18 -51 -18 -95q0 -27 8.5 -55t29.5 -50q22 -22 50 -30.5t56 -8.5z" />
-<glyph unicode="&#xe7;" d="M469 813q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-24 -6 -48 -10t-48 -7q14 -24 23.5 -45.5t17.5 -40.5 q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -11 26.5t-18 38.5q-101 5 -174.5 33.5t-124.5 78.5 q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5z" />
-<glyph unicode="&#xe8;" d="M453 1673h198l197 -376h-143zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807 q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xe9;" d="M907 1673h219l-395 -376h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5 h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xea;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44 q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5 q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xeb;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM558 -29q-120 0 -204.5 29t-140.5 83 q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18 q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xec;" d="M383 1646h198l197 -376h-143zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#xed;" d="M828 1673h219l-395 -376h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#xee;" d="M688 1673h147l164 -376h-133l-117 241l-225 -241h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211 l-31 -156h-207z" />
-<glyph unicode="&#xef;" d="M380 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM771 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM749 -4q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#xf0;" d="M516 -29q-193 0 -295 108q-54 57 -78 134.5t-24 175.5q0 125 38 248q20 66 50 125.5t59 101.5q77 112 192 173q58 31 120.5 46t118.5 15q18 0 35 -1.5t40 -3.5l33 -3q-20 37 -45 81q-5 7 -12.5 19.5t-17 26.5t-19.5 28.5t-19 26.5l-297 -94l-30 92l274 86l-141 200h213 l104 -145l287 88l28 -92l-260 -80q62 -86 107 -166.5t73 -153.5q56 -147 56 -306q0 -64 -9 -130t-28 -131q-37 -129 -108 -233q-42 -61 -87.5 -103.5t-102.5 -72.5q-114 -60 -255 -60zM534 127q79 0 149 40.5t123 120.5q53 81 79 186.5t26 227.5q0 36 -2 64t-7 54 q-9 51 -28 87q-37 19 -77 28q-41 9 -83 9q-94 0 -166.5 -41t-123.5 -114q-28 -40 -49 -87t-34.5 -97.5t-20.5 -103t-7 -103.5q0 -67 12.5 -119t44.5 -87q26 -29 67.5 -47t96.5 -18z" />
-<glyph unicode="&#xf1;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184 l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
-<glyph unicode="&#xf2;" d="M453 1673h198l197 -376h-143zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf3;" d="M907 1673h219l-395 -376h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf4;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137 t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230 q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf5;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314 q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126 q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf6;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM510 -29q-92 0 -166 26t-126 83 q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45 t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
-<glyph unicode="&#xf8;" d="M47 -20l129 153q-14 24 -25 52t-18 60t-10.5 67.5t-3.5 78.5q0 69 10 138t30 137q19 63 48 127t67 119t87 101.5t106 75.5q56 29 120.5 43.5t136.5 14.5q79 0 139 -18q59 -18 106 -54l112 137l93 -77l-123 -146q17 -26 29 -56t19 -58q8 -31 11.5 -69.5t3.5 -79.5 q0 -135 -41 -273q-21 -70 -50.5 -132t-64.5 -114q-42 -61 -88.5 -104.5t-103.5 -72.5q-113 -59 -259 -59q-40 0 -72 4.5t-64 14.5q-28 8 -56 21t-57 34l-119 -141zM852 938q-14 13 -31.5 24t-36.5 17q-18 6 -39.5 9t-43.5 3q-88 0 -158 -45t-121 -126t-80 -192.5t-29 -239.5 q0 -20 0.5 -29t1.5 -19q2 -19 2.5 -26.5t1.5 -11.5zM534 127q83 0 153 43t124 129q50 79 79.5 187t29.5 239q0 20 -0.5 34t-1.5 23q-1 10 -2.5 21t-4.5 22l-534 -639q15 -15 31.5 -25.5t37.5 -18.5q19 -7 40 -11t48 -4z" />
-<glyph unicode="&#xf9;" d="M449 1648h198l197 -376h-143zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfa;" d="M903 1648h219l-395 -376h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfb;" d="M713 1648h147l164 -376h-133l-117 241l-225 -241h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25 q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfc;" d="M465 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM856 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM409 -27q-65 0 -117.5 18t-90.5 55 q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5 t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfd;" d="M947 1648h219l-395 -376h-156zM20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43 q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
-<glyph unicode="&#xfe;" d="M385 1567h184l-114 -590q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
-<glyph unicode="&#xff;" d="M509 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM900 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM20 -272h108q83 0 140 47q62 50 118 159 l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
-<glyph unicode="&#x100;" d="M531 1800h598l-29 -148h-598zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x101;" d="M469 1495h598l-29 -148h-598zM404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5 t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
-<glyph unicode="&#x102;" d="M794 1612q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x103;" d="M747 1297q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246 l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77 t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
-<glyph unicode="&#x104;" d="M943 -272q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h-3l-35 389h-520l-184 -389h-217l745 1493h246l166 -1493h-79q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x105;" d="M868 0q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h5l32 166q-72 -93 -168 -144t-214 -51q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172 t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-70zM461 125q67 0 130 26.5t115.5 77t91.5 124.5 t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
-<glyph unicode="&#x106;" d="M1008 1859h208l-307 -264h-160zM597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207q-64 62 -135 94 q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
-<glyph unicode="&#x107;" d="M997 1673h219l-395 -376h-156zM607 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27 q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5 q-44 -11 -86.5 -16t-90.5 -5z" />
-<glyph unicode="&#x108;" d="M547 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM944 53q-168 -82 -347 -82q-113 0 -204 34t-152 98q-126 127 -126 389q0 210 70 421q33 105 78 190.5t106 162.5q107 132 237 192q135 62 287 62q170 0 319 -82l-41 -207q-67 63 -137 94t-150 31 q-95 0 -175 -40t-152 -124q-105 -126 -167 -314q-32 -94 -48 -190t-16 -185q0 -187 78 -277q38 -44 94.5 -67.5t129.5 -23.5q176 0 355 125z" />
-<glyph unicode="&#x109;" d="M447 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM930 51q-149 -80 -333 -80q-221 0 -336 113.5t-115 327.5q0 159 53 297q54 140 145 241q42 48 95 86t110 62q105 49 245 49q175 0 333 -86l-37 -182q-65 58 -135.5 85t-154.5 27q-223 0 -341 -178 q-55 -81 -87 -188t-32 -207q0 -291 275 -291q93 0 184 32.5t170 92.5z" />
-<glyph unicode="&#x10a;" d="M808 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM598 -29q-115 0 -205 32.5t-151.5 98.5t-94 165t-32.5 232q0 102 18.5 208.5t52 207t80.5 190.5t103 161q102 128 234.5 191t288.5 63 q86 0 162.5 -20t157.5 -62l-41 -207q-126 125 -287 125q-97 0 -178 -41.5t-149 -122.5q-51 -61 -93.5 -141.5t-73 -171t-47.5 -186t-17 -185.5q0 -191 77.5 -282t222.5 -91q88 0 178.5 32t178.5 93l-39 -207q-167 -82 -346 -82z" />
-<glyph unicode="&#x10b;" d="M739 1348q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM606 -29q-221 0 -335.5 111.5t-114.5 331.5q0 75 13.5 148.5t39 142.5t62 131t83.5 114q88 97 202 147t249 50q174 0 332 -86l-37 -182q-66 58 -136 85 t-156 27q-115 0 -197 -45.5t-142 -132.5q-28 -41 -50 -88.5t-37.5 -98.5t-23.5 -104t-8 -104q0 -149 68.5 -220t208.5 -71q92 0 180 31t172 94l-39 -201q-73 -39 -156 -59.5t-178 -20.5z" />
-<glyph unicode="&#x10c;" d="M616 1861h136l139 -178l209 178h151l-264 -266h-213zM597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207 q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
-<glyph unicode="&#x10d;" d="M561 1673h131l119 -243l225 243h156l-320 -376h-147zM607 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182 q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5 t-75.5 -22.5q-44 -11 -86.5 -16t-90.5 -5z" />
-<glyph unicode="&#x10e;" d="M484 1861h136l139 -178l209 178h151l-264 -266h-213zM283 1493h303q277 0 410.5 -125.5t133.5 -384.5q0 -75 -10.5 -156.5t-30.5 -164t-49 -161t-65 -147.5q-51 -96 -115 -163.5t-146.5 -109.5t-185.5 -61.5t-233 -19.5h-303zM324 166q93 0 166.5 15.5t131.5 48t102 82.5 t77 120q26 54 48.5 124t39 146t26 152t9.5 142q0 89 -19.5 152t-62.5 102.5t-110.5 58t-164.5 18.5h-114l-226 -1161h97z" />
-<glyph unicode="&#x10f;" d="M460 -29q-161 0 -251 104t-90 304q0 66 10 136.5t29.5 139.5t47 134t62.5 120q75 118 176.5 178t221.5 60q100 0 172.5 -42t115.5 -128l115 579h184l-303 -1556h-164l7 141q-66 -85 -148 -127.5t-185 -42.5zM1316 1552h196l-186 -373h-140zM517 127q89 0 156 45.5 t115 132.5q24 43 43.5 95.5t33 108t21 110.5t7.5 105q0 138 -54.5 202.5t-157.5 64.5q-89 0 -153 -45t-110 -129q-24 -44 -43 -96t-32.5 -108t-20.5 -112.5t-7 -108.5q0 -136 49.5 -200.5t152.5 -64.5z" />
-<glyph unicode="&#x110;" d="M129 709h-127l29 149h129l123 635h303q277 0 410.5 -125.5t133.5 -384.5q0 -75 -10.5 -156.5t-30.5 -164t-49 -161t-65 -147.5q-51 -96 -115 -163.5t-146.5 -109.5t-185.5 -61.5t-233 -19.5h-303zM324 166q93 0 166.5 15.5t131.5 48t102 82.5t77 120q26 54 48.5 124 t39 146t26 152t9.5 142q0 89 -19.5 152t-62.5 102.5t-110.5 58t-164.5 18.5h-114l-91 -469h267l-29 -149h-266l-107 -543h97z" />
-<glyph unicode="&#x111;" d="M462 -29q-85 0 -146.5 27t-105.5 78q-46 53 -68.5 125.5t-22.5 172.5q0 66 10 138t30 145q21 76 49 138.5t60 113.5q39 62 83 105.5t94 72.5t105 44.5t118 15.5q51 0 93 -10.5t79 -32.5q73 -44 114 -127l62 309h-332l25 121h329l31 149h184l-30 -149h192l-22 -121h-193 l-250 -1286h-164l7 141q-64 -83 -147 -127q-82 -43 -184 -43zM518 127q85 0 154 45q35 23 63 55.5t53 77.5q49 87 77 203q14 56 21 112.5t7 106.5q0 132 -53 197q-25 31 -64.5 49t-93.5 18q-42 0 -81 -11.5t-70 -31.5q-32 -21 -61.5 -55t-52.5 -76q-22 -40 -41.5 -93.5 t-33.5 -110.5t-20.5 -115.5t-6.5 -109.5q0 -69 12.5 -117t38.5 -80q51 -64 152 -64z" />
-<glyph unicode="&#x112;" d="M549 1800h598l-29 -148h-598zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x113;" d="M504 1486h598l-29 -148h-598zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73 q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
-<glyph unicode="&#x116;" d="M751 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x117;" d="M678 1349q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132 t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105 t-59 -136.5h606z" />
-<glyph unicode="&#x118;" d="M512 1323l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-96q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h-690l291 1493h885l-33 -170h-684z" />
-<glyph unicode="&#x119;" d="M297 516q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-89 -36 -174 -57q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 51 30.5 104.5t94.5 115.5 q-21 -2 -42.5 -3t-42.5 -1q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807zM707 991q-65 0 -123.5 -23.5t-107 -67t-85.5 -105 t-59 -136.5h606q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17z" />
-<glyph unicode="&#x11a;" d="M586 1861h136l139 -178l209 178h151l-264 -266h-213zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x11b;" d="M526 1673h131l119 -243l225 243h156l-320 -376h-147zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52 q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
-<glyph unicode="&#x11c;" d="M511 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM969 96q-85 -61 -189.5 -93t-215.5 -32q-236 0 -361 134t-125 383q0 82 17 193q24 131 53.5 230t73.5 188q126 256 341 358q134 63 291 63q92 0 166 -21q86 -21 156 -61l-41 -207q-66 63 -137 94t-152 31 q-97 0 -184 -41q-42 -20 -82 -52t-72 -71q-118 -146 -180 -409q-25 -108 -36 -204q-5 -58 -5 -85q0 -175 79 -266q40 -47 95.5 -70t130.5 -23q133 0 211 72l76 393h-217l30 166h410z" />
-<glyph unicode="&#x11d;" d="M397 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM654 -387q-114 -53 -278 -53q-80 0 -163 14.5t-154 40.5l37 182q155 -90 310 -90q148 0 231 80q41 39 69.5 102.5t49.5 163.5l24 117q-57 -86 -145 -132t-192 -46q-79 0 -142.5 27t-108.5 80 q-90 107 -90 299q0 136 40 272t112 241q39 59 82 101t96 73q104 62 216 62q99 0 176 -49t110 -133l47 151h164l-203 -1044q-36 -183 -106 -294.5t-182 -164.5zM353 212q29 -32 70 -49.5t90 -17.5q72 0 136 39.5t104 104.5q43 70 73 157.5t42 185.5q6 56 6 101 q0 123 -55.5 190.5t-154.5 67.5q-138 0 -221 -107.5t-118 -246.5q-28 -105 -28 -216q0 -74 14 -124.5t42 -84.5z" />
-<glyph unicode="&#x11e;" d="M788 1619q-120 0 -190 61q-33 29 -56 72t-34 109h114q17 -62 56 -88q20 -14 48 -20.5t69 -6.5t76 7t62 21q53 28 80 87h121q-33 -112 -125 -177q-94 -65 -221 -65zM564 -29q-122 0 -211.5 34.5t-150.5 100.5q-63 69 -93.5 165t-30.5 217q0 47 4.5 94.5t12.5 98.5 q8 47 20 102.5t28 109.5q17 59 39 114.5t43 97.5q28 56 55.5 96t47.5 66q49 61 109.5 110t128.5 81q130 62 288 62q46 0 86 -5t80 -16q81 -21 156 -61l-41 -207q-35 34 -70 57t-66 37q-71 31 -153 31q-50 0 -96.5 -10.5t-87.5 -30.5q-42 -20 -82 -52t-72 -71 q-45 -54 -83 -130q-20 -41 -37 -84t-32 -91q-18 -58 -30.5 -112t-20.5 -102q-9 -52 -13.5 -94.5t-4.5 -84.5q0 -174 79 -266q40 -47 95.5 -70t130.5 -23q36 0 65 5t55 14q29 10 50.5 23t40.5 30l76 393h-217l30 166h410l-133 -670q-86 -61 -190 -93q-51 -16 -103.5 -24 t-111.5 -8z" />
-<glyph unicode="&#x11f;" d="M748 1297q-132 0 -206 63q-40 35 -56.5 82.5t-16.5 104.5q0 13 0.5 16t0.5 5v5t2 11h120v-17q0 -64 44 -99q43 -34 126 -34t135 37q26 18 47 46.5t35 66.5h119q-15 -68 -45.5 -122.5t-75.5 -91.5q-89 -73 -229 -73zM376 -440q-43 0 -82.5 3.5t-79.5 10.5q-78 13 -155 41 l37 182q40 -23 76 -39.5t76 -27.5q80 -23 158 -23q148 0 231 80q42 40 70.5 105t48.5 161l24 117q-59 -87 -145 -132q-45 -23 -93 -34.5t-99 -11.5q-79 0 -142.5 27t-108.5 80q-46 54 -68 129.5t-22 169.5q0 63 10 132t30 138q39 135 112 243q40 60 83 101.5t95 72.5 q104 62 216 62q99 0 176 -48q35 -23 63.5 -56t46.5 -78l47 151h164l-203 -1044q-53 -272 -186 -392q-134 -120 -380 -120zM513 145q38 0 74 11t71 34q65 44 112 129q26 46 46 100.5t31 101.5q14 55 20.5 111t6.5 101q0 126 -56 192q-28 33 -67 49.5t-87 16.5 q-84 0 -149.5 -46t-112.5 -122q-50 -81 -77.5 -187.5t-27.5 -214.5q0 -83 15.5 -131.5t40.5 -77.5q29 -32 70 -49.5t90 -17.5z" />
-<glyph unicode="&#x120;" d="M783 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM563 -29q-118 0 -208.5 34t-152 100t-93 162t-31.5 220q0 94 17 198t48 208q35 118 80 208t105 165q206 254 524 254q85 0 162.5 -19.5 t161.5 -62.5l-41 -207q-129 125 -290 125q-97 0 -183 -41.5t-154 -122.5q-49 -59 -86 -136t-66 -169q-17 -56 -30 -111t-21.5 -106.5t-13 -98t-4.5 -84.5q0 -168 79 -260t227 -92q66 0 119.5 18.5t90.5 53.5l76 393h-217l30 166h410l-133 -670q-86 -62 -189 -93.5 t-217 -31.5z" />
-<glyph unicode="&#x121;" d="M664 1348q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM378 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44 q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133t30 134t47.5 128t64 115q37 55 81.5 99t95 74.5t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM507 145q166 0 263 174 q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5t-152 66.5q-57 0 -107 -23t-91 -63t-73 -94.5t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
-<glyph unicode="&#x122;" d="M563 -29q-118 0 -208.5 34t-152 100t-93 162t-31.5 220q0 94 17 198t48 208q35 118 80 208t105 165q206 254 524 254q85 0 162.5 -19.5t161.5 -62.5l-41 -207q-129 125 -290 125q-97 0 -183 -41.5t-154 -122.5q-49 -59 -86 -136t-66 -169q-17 -56 -30 -111t-21.5 -106.5 t-13 -98t-4.5 -84.5q0 -168 79 -260t227 -92q66 0 119.5 18.5t90.5 53.5l76 393h-217l30 166h410l-133 -670q-86 -62 -189 -93.5t-217 -31.5zM463 -228h239l-254 -345h-146z" />
-<glyph unicode="&#x123;" d="M804 1614h146l-161 -345h-239zM378 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133t30 134t47.5 128t64 115 q37 55 81.5 99t95 74.5t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM507 145q166 0 263 174q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5t-152 66.5q-57 0 -107 -23 t-91 -63t-73 -94.5t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
-<glyph unicode="&#x124;" d="M467 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM-8 0l291 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
-<glyph unicode="&#x125;" d="M587 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM84 0l303 1556h184l-116 -604q74 96 163 146q46 25 91 37t98 12q136 0 212 -72q38 -35 57.5 -86t19.5 -112q0 -41 -4.5 -82.5t-16.5 -100.5l-135 -694h-184l135 695q3 9 2 9l1 5l11 62q4 17 4 46 q0 44 -11 74.5t-35 52.5q-46 43 -133 43q-129 0 -217.5 -93t-121.5 -261l-123 -633h-184z" />
-<glyph unicode="&#x126;" d="M207 1105h-134l32 164h134l43 224h202l-43 -224h554l43 224h202l-43 -224h135l-32 -164h-135l-215 -1105h-202l138 711h-554l-138 -711h-202zM919 881l44 224h-554l-44 -224h554z" />
-<glyph unicode="&#x127;" d="M291 1270h-125l32 164h125l23 122h184l-23 -122h353l-32 -164h-353l-62 -318q67 97 160.5 146t210.5 49q85 0 137.5 -25t82 -65t39.5 -91.5t10 -103.5q0 -43 -5 -82.5t-14 -85.5l-134 -694h-185l135 695q12 64 12 114q0 33 -6.5 65t-25 57t-52.5 40.5t-89 15.5 q-63 0 -117 -22t-97.5 -66t-75 -110.5t-48.5 -155.5l-123 -633h-184z" />
-<glyph unicode="&#x128;" d="M448 1627q35 109 97 164t143 55q34 0 67 -10.5t68 -36.5l35 -26q36 -27 72 -27q42 0 69.5 27t38.5 73h125q-32 -111 -97 -165t-148 -54q-32 0 -60.5 9.5t-61.5 33.5l-34 25l-2 1q-43 32 -80 32q-69 0 -107 -101h-125zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314 l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x129;" d="M817 1270q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72zM749 -4q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 41.5t8.5 44.5l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -34.5t-3.5 -27.5l-3 -25.5t-1 -18.5q0 -75 44 -110q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#x12a;" d="M531 1800h598l-29 -148h-598zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x12b;" d="M409 1468h598l-29 -148h-598zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#x12e;" d="M865 1323l-223 -1153h314l-33 -170h-313q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h-398l33 170h313l224 1153h-314l33 170h830l-33 -170h-314z" />
-<glyph unicode="&#x12f;" d="M631 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM774 -4q-51 -52 -78 -97t-27 -83q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 53 33 109t103 121 q-109 14 -167 59q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 41.5t8.5 44.5l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -34.5t-3.5 -27.5l-3 -25.5t-1 -18.5q0 -75 44 -110q45 -36 136 -36h211l-31 -156h-182z" />
-<glyph unicode="&#x130;" d="M711 1627q-27 0 -27 24q0 6 1 9l29 145q4 27 32 27h142q15 0 22.5 -9t4.5 -24l-28 -145q-5 -27 -32 -27h-144zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x131;" d="M749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207v0z" />
-<glyph unicode="&#x132;" d="M65 203h558q55 0 107 28q52 27 88.5 73.5t47.5 101.5l177 917h-320l33 170l523 1l-210 -1088q-23 -111 -94 -203q-73 -94 -177 -148.5t-214 -54.5h-558zM316 1493h203l-211 -1087h-203z" />
-<glyph unicode="&#x133;" d="M324 1344q0 7 1 9l34 173q6 30 36 30h144q25 0 25 -21q0 -7 -1 -9l-34 -173q-6 -30 -36 -30h-144q-25 0 -25 21zM1011 1344q0 7 1 9l34 173q6 30 36 30h144q25 0 25 -21q0 -7 -1 -9l-34 -173q-6 -30 -36 -30h-144q-25 0 -25 21zM290 1120h184l-218 -1120h-184zM204 -270 h323q180 0 228 250l194 997h-267l28 143h451l-222 -1140q-37 -195 -146.5 -300.5t-276.5 -105.5h-343z" />
-<glyph unicode="&#x134;" d="M688 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM729 86q-63 -59 -149.5 -87t-204.5 -28q-97 0 -195 22t-205 68l45 236q71 -79 164 -120q48 -21 95 -31.5t101 -10.5q98 0 158.5 31.5t98.5 106.5q38 77 65 214l164 836h-381l33 170h584l-197 -1006 q-29 -149 -72 -246.5t-104 -154.5z" />
-<glyph unicode="&#x135;" d="M518 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM24 -426l31 156h233q96 0 150.5 59.5t79.5 190.5l192 997h-317l28 143h502l-221 -1140q-41 -212 -142 -309t-282 -97h-254z" />
-<glyph unicode="&#x136;" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203zM439 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x137;" d="M393 1556h191l-170 -874l549 438h241l-520 -422l373 -698h-213l-307 582l-168 -133l-88 -449h-191zM477 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x138;" d="M315 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
-<glyph unicode="&#x139;" d="M839 1860h208l-307 -264h-160zM369 1493h202l-258 -1323h721l-33 -170h-923z" />
-<glyph unicode="&#x13a;" d="M889 1901h208l-307 -264h-160zM739 -8q-342 0 -342 253q0 34 5.5 76t13.5 83l211 1008h-316l29 144h500l-240 -1156q-14 -70 -14 -111q0 -69 44.5 -105t135.5 -36h211l-31 -156h-207z" />
-<glyph unicode="&#x13b;" d="M369 1493h202l-258 -1323h721l-33 -170h-923zM443 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x13c;" d="M739 -8q-342 0 -342 253q0 34 5.5 76t13.5 83l211 1008h-316l29 144h500l-240 -1156q-14 -70 -14 -111q0 -69 44.5 -105t135.5 -36h211l-31 -156h-207zM512 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x13d;" d="M369 1493h202l-258 -1323h721l-33 -170h-923zM887 1492h219l-208 -376h-156z" />
-<glyph unicode="&#x13e;" d="M739 -8q-342 0 -342 253q0 34 5.5 76t13.5 83l211 1008h-316l29 144h500l-240 -1156q-14 -70 -14 -111q0 -69 44.5 -105t135.5 -36h211l-31 -156h-207zM1017 1556h219l-208 -376h-156z" />
-<glyph unicode="&#x13f;" d="M368 1493h203l-257 -1323h721l-33 -170h-924zM649 561q0 7 1 9l28 144q6 30 36 30h145q25 0 25 -21q0 -7 -1 -9l-28 -144q-6 -30 -36 -30h-145q-25 0 -25 21z" />
-<glyph unicode="&#x140;" d="M536 18q-62 28 -101.5 92.5t-39.5 161.5q0 51 14 126l197 1014h-295l28 144h479l-225 -1158q-11 -58 -11 -95q0 -66 31 -110.5t111 -44.5h215l-30 -156h-233q-80 0 -140 26zM815 561q0 7 1 9l28 144q6 30 36 30h145q25 0 25 -21q0 -7 -1 -9l-28 -144q-6 -30 -36 -30h-145 q-25 0 -25 21z" />
-<glyph unicode="&#x141;" d="M195 563l-150 -104l-74 100l260 180l140 752h202l-114 -592l297 209l73 -100l-399 -279l-113 -561h721l-32 -168h-924z" />
-<glyph unicode="&#x142;" d="M739 -8q-94 0 -155.5 17t-101.5 47q-85 64 -85 194q0 18 1.5 36.5t3.5 38.5q3 25 6 42t8 37l59 286l-313 -219l-74 99l424 292l115 550h-316l29 144h500l-115 -550l315 217l74 -98l-424 -293l-90 -432q-3 -15 -5.5 -33t-4.5 -31q-2 -15 -3 -25t-1 -20q0 -38 11 -63.5 t34 -43.5q22 -17 54 -26.5t81 -9.5h211l-31 -156h-207v0z" />
-<glyph unicode="&#x143;" d="M907 1866h208l-307 -264h-160zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
-<glyph unicode="&#x144;" d="M900 1685h219l-395 -376h-156zM303 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69 t-75 -111t-47.5 -150l-123 -633h-184z" />
-<glyph unicode="&#x145;" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194zM375 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x146;" d="M303 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184zM416 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x147;" d="M534 1861h136l139 -178l209 178h151l-264 -266h-213zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
-<glyph unicode="&#x148;" d="M519 1673h131l119 -243l225 243h156l-320 -376h-147zM303 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5 q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633h-184z" />
-<glyph unicode="&#x149;" d="M252 1350l40 206h252l-40 -206l-272 -383h-153zM481 1120h166l-15 -168q140 195 369 195q171 0 235 -112q37 -67 37 -171q0 -81 -19 -170l-135 -694h-185l135 694q13 68 13 115q0 91 -43.5 134.5t-132.5 43.5q-129 0 -215.5 -91t-120.5 -263l-123 -633h-184z" />
-<glyph unicode="&#x14a;" d="M377 -270h167q93 0 148 63.5t83 206.5l197 1009q16 80 16 144q0 106 -46.5 155.5t-141.5 49.5q-140 0 -237 -105.5t-138 -315.5l-183 -937h-202l291 1493h182l-19 -198q76 112 178.5 169.5t229.5 57.5q293 0 293 -322q0 -91 -22 -201l-198 -1019q-19 -98 -56.5 -173.5 t-91.5 -127t-123.5 -78.5t-151.5 -27h-205z" />
-<glyph unicode="&#x14b;" d="M379 -270h185q93 0 148.5 62.5t79.5 187.5l139 714q12 64 12 116q0 32 -6 63.5t-24 57t-52 41t-90 15.5q-132 0 -219 -91t-120 -263l-123 -633h-184l218 1120h164l-13 -168q69 97 162 146t209 49q85 0 137.5 -24.5t81.5 -64.5t39.5 -91t10.5 -103q0 -76 -18 -170 l-139 -714q-19 -98 -56.5 -173.5t-91.5 -127t-123.5 -78.5t-151.5 -27h-205z" />
-<glyph unicode="&#x14c;" d="M531 1800h598l-29 -148h-598zM480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188 t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5 q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x14d;" d="M469 1495h598l-29 -148h-598zM514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127 q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x150;" d="M766 1859h186l-280 -264h-154zM1085 1859h186l-280 -264h-154zM480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5 q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83 q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x151;" d="M688 1673h189l-302 -376h-135zM1028 1673h197l-324 -376h-135zM514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5 q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x152;" d="M467 0q-108 0 -190 25.5t-136 77.5q-56 54 -81 134.5t-25 186.5q0 62 8 144.5t25 173.5t39 175t47 150q45 120 100.5 200.5t124.5 128.5q137 97 379 97h594l-33 -170h-358l-87 -442h328l-33 -170h-327l-107 -541h369l-33 -170h-604zM539 170l225 1153h-62 q-119 0 -201 -54q-47 -30 -77 -70.5t-53 -92.5q-6 -14 -12 -28.5t-11.5 -31t-12 -37.5t-13.5 -48q-14 -52 -26 -103.5t-24 -112.5q-11 -53 -18.5 -98.5t-13.5 -90.5q-5 -42 -8 -77.5t-3 -62.5q0 -60 15.5 -107t47.5 -79q33 -32 80.5 -46t104.5 -14h62z" />
-<glyph unicode="&#x153;" d="M288 -29q-140 0 -217 83t-77 238q0 26 2 58t6 64q1 13 3.5 30.5t5.5 37t6.5 39.5t6.5 38q5 28 12 58.5t14.5 59.5t14.5 54.5t12 42.5q12 39 29 82t39 82q28 50 63 88.5t83 67.5q91 53 204 53q84 0 145 -34q62 -34 95 -93q59 64 126 95q69 32 147 32q123 0 193 -76 q35 -38 53 -91t18 -117q0 -26 -2.5 -55.5t-5.5 -53.5q-4 -29 -10.5 -69.5t-14.5 -80.5l-16 -90h-502q-5 -23 -8.5 -40.5t-6.5 -34t-5.5 -33.5t-5.5 -38q-5 -29 -7 -47.5t-2 -35.5q0 -42 12.5 -71t36.5 -51q49 -44 133 -44q70 0 142 29q69 28 125 79l-35 -172 q-34 -23 -64.5 -37.5t-60.5 -24.5q-32 -11 -64.5 -16.5t-71.5 -5.5q-96 0 -164 35t-102 98q-59 -65 -129 -99q-71 -34 -156 -34zM309 123q61 0 110 35q29 20 46 46.5t30 55.5q5 11 9 21t8.5 23t9.5 30.5t12 44.5q13 49 23 93t18 88t15.5 89.5t12.5 85.5q9 67 9 101 q0 36 -9 66t-27 51q-36 42 -104 42q-36 0 -63 -9.5t-48 -24.5q-24 -17 -42 -42t-34 -63q-11 -26 -22 -59t-20 -68q-20 -75 -38 -170q-8 -44 -14.5 -80.5t-12.5 -78.5q-5 -37 -7.5 -64t-2.5 -47q0 -79 37 -122q38 -44 104 -44zM1083 653l15 76q3 16 5.5 33.5t3.5 25.5 q2 14 2.5 27.5t0.5 24.5q0 33 -8 63t-25 50q-18 21 -43.5 29.5t-53.5 8.5q-43 0 -75.5 -17t-57.5 -48q-30 -37 -50 -87t-29 -104l-14 -82h329z" />
-<glyph unicode="&#x154;" d="M839 1860h208l-307 -264h-160zM281 1493h416q207 0 320.5 -89t113.5 -264q0 -85 -27 -159.5t-77 -132t-121.5 -95t-159.5 -48.5q35 -6 65.5 -24t50.5 -43q21 -27 45.5 -83t51.5 -147l121 -408h-201l-106 377q-22 78 -45.5 127.5t-53.5 77.5t-69.5 38.5t-94.5 10.5h-192 l-123 -631h-203zM570 797q81 0 147.5 22t113 63.5t72 99.5t25.5 130q0 111 -63 163t-199 52h-213l-102 -530h219z" />
-<glyph unicode="&#x155;" d="M1045 1673h219l-395 -376h-156zM434 1120h164l-20 -219q67 121 173 183.5t241 62.5q146 0 227 -72l-35 -186q-45 45 -104.5 66.5t-131.5 21.5q-85 0 -157.5 -30t-128.5 -85.5t-95.5 -134.5t-58.5 -178l-107 -549h-184z" />
-<glyph unicode="&#x156;" d="M281 1493h416q207 0 320.5 -89t113.5 -264q0 -85 -27 -159.5t-77 -132t-121.5 -95t-159.5 -48.5q35 -6 65.5 -24t50.5 -43q21 -27 45.5 -83t51.5 -147l121 -408h-201l-106 377q-22 78 -45.5 127.5t-53.5 77.5t-69.5 38.5t-94.5 10.5h-192l-123 -631h-203zM570 797 q81 0 147.5 22t113 63.5t72 99.5t25.5 130q0 111 -63 163t-199 52h-213l-102 -530h219zM440 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x157;" d="M434 1120h164l-20 -219q67 121 173 183.5t241 62.5q146 0 227 -72l-35 -186q-45 45 -104.5 66.5t-131.5 21.5q-85 0 -157.5 -30t-128.5 -85.5t-95.5 -134.5t-58.5 -178l-107 -549h-184zM213 -199h239l-254 -345h-146z" />
-<glyph unicode="&#x158;" d="M438 1861h136l139 -178l209 178h151l-264 -266h-213zM281 1493h416q207 0 320.5 -89t113.5 -264q0 -85 -27 -159.5t-77 -132t-121.5 -95t-159.5 -48.5q35 -6 65.5 -24t50.5 -43q21 -27 45.5 -83t51.5 -147l121 -408h-201l-106 377q-22 78 -45.5 127.5t-53.5 77.5 t-69.5 38.5t-94.5 10.5h-192l-123 -631h-203zM570 797q81 0 147.5 22t113 63.5t72 99.5t25.5 130q0 111 -63 163t-199 52h-213l-102 -530h219z" />
-<glyph unicode="&#x159;" d="M591 1673h131l119 -243l225 243h156l-320 -376h-147zM434 1120h164l-20 -219q67 121 173 183.5t241 62.5q146 0 227 -72l-35 -186q-45 45 -104.5 66.5t-131.5 21.5q-85 0 -157.5 -30t-128.5 -85.5t-95.5 -134.5t-58.5 -178l-107 -549h-184z" />
-<glyph unicode="&#x15a;" d="M907 1866h208l-307 -264h-160zM435 -29q-110 0 -210 22.5t-200 67.5l41 209q101 -72 203 -103.5t200 -31.5q88 0 158.5 23.5t119.5 65.5t75 100t26 128q0 40 -10 69.5t-35.5 53t-68 43.5t-107.5 41l-101 33q-93 30 -156.5 62t-102.5 70.5t-55.5 86.5t-16.5 111 q0 109 44 200.5t122.5 157.5t186 103t234.5 37q87 0 175 -19t190 -59l-39 -205q-163 119 -349 119q-83 0 -151 -22t-117.5 -60.5t-76.5 -91.5t-27 -116q0 -38 11 -66t37.5 -50.5t70 -42.5t108.5 -41l121 -39q86 -28 146 -61.5t97.5 -76.5t54 -96.5t16.5 -120.5 q0 -112 -43 -204t-122.5 -158t-193 -102.5t-255.5 -36.5z" />
-<glyph unicode="&#x15b;" d="M900 1680h219l-395 -376h-156zM476 -29q-87 0 -174 17.5t-187 52.5l37 190q187 -106 353 -106q67 0 122.5 16t95.5 43.5t62 64t22 76.5q0 114 -196 162l-28 7l-67 18q-128 34 -189 96t-61 170q0 84 34 152t97.5 116.5t154 74.5t202.5 26q177 0 323 -66l-35 -180 q-72 45 -149 68.5t-162 23.5q-66 0 -118.5 -14t-89 -38.5t-55.5 -58t-19 -72.5q0 -29 11.5 -52t37.5 -43t68 -37t104 -33q16 -5 22 -6l72 -18q120 -30 176.5 -93t56.5 -163q0 -84 -37.5 -156t-106 -125t-164.5 -83t-213 -30z" />
-<glyph unicode="&#x15c;" d="M454 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM883 109q-168 -138 -448 -138q-206 0 -410 90l41 209q99 -69 198.5 -102t210.5 -33q86 0 152 21.5t118 66.5q103 88 103 221q0 79 -44 129q-24 24 -65 44t-112 42l-101 33q-97 32 -157.5 62.5t-99.5 69.5 t-56.5 86t-17.5 115q0 105 42 195.5t123 159.5q83 69 190.5 104.5t232.5 35.5q168 0 364 -78l-39 -205q-164 119 -349 119q-82 0 -151 -21t-118 -61q-49 -39 -76 -92.5t-27 -113.5q0 -39 12 -67.5t37 -50.5q49 -43 178 -84l121 -39q87 -28 143.5 -59t95.5 -74t57 -95.5 t18 -125.5q0 -112 -41.5 -204t-124.5 -160z" />
-<glyph unicode="&#x15d;" d="M417 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM853 82q-71 -54 -167.5 -82.5t-208.5 -28.5q-92 0 -175 16.5t-187 53.5l37 190q105 -58 183 -79q86 -27 172 -27q132 0 216 60q41 29 62.5 66.5t21.5 77.5q0 56 -44.5 92t-151.5 66l-28 7l-67 18 q-131 34 -190.5 97.5t-59.5 170.5q0 81 33 149t98 118q130 100 358 100q179 0 322 -66l-35 -180q-64 43 -146 67.5t-165 24.5q-133 0 -206 -51q-37 -26 -56.5 -61t-19.5 -73q0 -41 24 -70t72 -50q45 -20 125 -43l15 -4h1l6 -2l72 -18q55 -13 100 -36.5t75 -55.5 q30 -31 44 -69.5t14 -90.5q0 -85 -37 -159t-107 -128z" />
-<glyph unicode="&#x15e;" d="M490 1274q-48 -38 -75.5 -91t-27.5 -115q0 -39 12 -67.5t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5q-63 -52 -142.5 -84t-173.5 -45q15 -28 26 -51t17 -40q9 -24 13 -45.5t4 -41.5 q0 -42 -17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -10.5 26.5t-18.5 37.5h-16q-58 0 -108 6t-101 17 q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5q0 101 40.5 192.5t124.5 162.5 q83 70 191 105t232 35q48 0 91 -5t88 -15q48 -11 91.5 -24.5t93.5 -33.5l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60z" />
-<glyph unicode="&#x15f;" d="M525 942q-40 -27 -58 -63t-18 -71q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-57 -44 -129.5 -70.5t-154.5 -35.5q14 -25 23.5 -46.5t17.5 -40.5q17 -45 17 -87 t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -11 26.5t-18 37.5q-82 3 -149 17q-45 9 -92 22.5t-95 30.5l37 190 q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12 t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5z" />
-<glyph unicode="&#x160;" d="M489 1861h136l139 -178l209 178h151l-264 -266h-213zM435 -29q-58 0 -108 6t-101 17q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33 q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5q0 101 40.5 192.5t124.5 162.5q83 70 191 105t232 35q48 0 91 -5t88 -15q48 -11 91.5 -24.5t93.5 -33.5l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60t-75.5 -91t-27.5 -115q0 -39 12 -67.5 t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5t-197 -103.5t-251 -34.5z" />
-<glyph unicode="&#x161;" d="M471 1673h131l119 -243l225 243h156l-320 -376h-147zM477 -29q-48 0 -92.5 4.5t-82.5 12.5q-45 9 -92 22.5t-95 30.5l37 190q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7 l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5q-40 -27 -58 -63t-18 -71 q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-72 -56 -169 -83.5t-207 -27.5z" />
-<glyph unicode="&#x162;" d="M193 1493h1139l-33 -170h-467l-257 -1323h-72l32 -41q39 -45 49 -74q10 -31 10 -64q0 -15 -4 -40q-17 -83 -86 -131q-71 -45 -188 -45q-90 0 -170 24l25 131q33 -18 67 -25t78 -7q125 0 142 92q5 25 5 43q0 59 -38 137h-53l257 1323h-469z" />
-<glyph unicode="&#x163;" d="M552 325q-1 -2 -1 -7q0 -6 -1 -8q-3 -25 -3 -47q0 -45 17 -71t56 -37q37 -12 107 -12h207l-29 -147h-223q-24 0 -31 1q57 -86 57 -159q0 -23 -4 -40q-8 -40 -30.5 -74t-55.5 -57q-67 -45 -187 -45q-91 0 -171 24l26 131q35 -18 67.5 -25t77.5 -7q124 0 141 92l2 21 q0 27 -13 63.5t-41 92.5q-107 33 -142 108q-20 42 -20 100q0 34 4 62l5 34l8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612l-4 -26l-3 -14v0z" />
-<glyph unicode="&#x164;" d="M508 1861h136l139 -178l209 178h151l-264 -266h-213zM629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
-<glyph unicode="&#x165;" d="M1063 1680h219l-208 -376h-156zM682 -4q-89 0 -148 15t-97 41q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47 q0 -67 39 -93q39 -27 141 -27h207l-29 -147h-223z" />
-<glyph unicode="&#x166;" d="M483 577h-265l33 170h265l112 576h-469l33 170h1139l-33 -170h-467l-112 -576h265l-33 -170h-265l-112 -577h-203z" />
-<glyph unicode="&#x167;" d="M667 -4q-103 0 -171 20t-104 63q-24 29 -34 67t-10 86q0 32 3.5 64t10.5 69l45 237h-229l28 142h229l45 233h-299l28 143h299l62 318h184l-62 -318h418l-28 -143h-418l-45 -233h229l-28 -142h-229l-45 -237q-9 -50 -9 -86q0 -58 22 -87q37 -49 155 -49h207l-29 -147h-225 v0z" />
-<glyph unicode="&#x168;" d="M446 1627q35 109 97 164t143 55q34 0 67 -10.5t68 -36.5l35 -26q36 -27 72 -27q42 0 69.5 27t38.5 73h125q-32 -111 -97 -165t-148 -54q-32 0 -60.5 9.5t-61.5 33.5l-34 25l-2 1q-43 32 -80 32q-69 0 -107 -101h-125zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107 t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920 q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
-<glyph unicode="&#x169;" d="M882 1270q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72zM409 -27q-66 0 -118.5 18.5t-89.5 54.5 t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
-<glyph unicode="&#x16a;" d="M531 1800h598l-29 -148h-598zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5 t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
-<glyph unicode="&#x16b;" d="M469 1469h598l-29 -148h-598zM409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168 q-144 -195 -355 -195z" />
-<glyph unicode="&#x16c;" d="M1139 1861q-33 -112 -126 -177t-220 -65q-120 0 -190 61q-35 32 -57 75.5t-33 105.5h114q17 -62 56 -88q20 -14 48 -20.5t69 -6.5q84 0 137.5 28.5t80.5 86.5h121zM679 2q-94 -31 -202 -31q-190 0 -293.5 90t-103.5 254q0 42 10.5 118t24.5 140l178 920h203l-179 -920 l-2 -12l-6 -29q-30 -148 -30 -219q0 -42 14.5 -76t40.5 -56q52 -46 167 -46q45 0 80 7t68 23q65 30 97.5 73t54.5 123q18 61 49 212l178 920h203l-178 -920q-21 -115 -39.5 -181t-49.5 -139q-46 -99 -116 -159t-169 -92z" />
-<glyph unicode="&#x16d;" d="M1098 1584q-31 -140 -120 -213.5t-230 -73.5q-134 0 -206.5 64.5t-72.5 185.5q0 15 1 16v10l2 11h120v-17q0 -64 43.5 -98.5t126.5 -34.5t136 37t81 113h119zM764 168q-74 -98 -162 -146.5t-193 -48.5q-87 0 -150.5 33.5t-98.5 95.5t-35 146q0 33 5.5 89.5t12.5 88.5 l133 694h185l-135 -694l-5 -36l-6 -35q-4 -25 -4 -57q0 -79 47 -122t131 -43q61 0 116 23.5t99 68.5q88 94 121 262l123 633h185l-218 -1120h-164z" />
-<glyph unicode="&#x16e;" d="M760 1352q-57 0 -107 21.5t-87 58.5t-58.5 87t-21.5 108t21.5 108t58.5 87t87 58t107 21t107.5 -21t87.5 -58t58.5 -87t21.5 -108t-21.5 -108t-58.5 -87t-87.5 -58.5t-107.5 -21.5zM760 1475q32 0 59.5 12t48 32t32.5 47.5t12 59.5t-12 59.5t-32.5 48t-48 32.5t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89 q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
-<glyph unicode="&#x16f;" d="M738 1186q-57 0 -107 21.5t-87 58.5t-58.5 87t-21.5 108t21.5 108t58.5 87t87 58t107 21t107.5 -21t87.5 -58t58.5 -87t21.5 -108t-21.5 -108t-58.5 -87t-87.5 -58.5t-107.5 -21.5zM738 1309q32 0 59.5 12t48 32t32.5 47.5t12 59.5t-12 59.5t-32.5 48t-48 32.5t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5 t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
-<glyph unicode="&#x170;" d="M766 1859h186l-280 -264h-154zM1085 1859h186l-280 -264h-154zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46 q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
-<glyph unicode="&#x171;" d="M688 1648h189l-302 -376h-135zM1028 1648h197l-324 -376h-135zM409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633 h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
-<glyph unicode="&#x172;" d="M1231 1493l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5h-23q-55 -54 -83.5 -101t-28.5 -86q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5 q-131 28 -200 112.5t-69 214.5q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120 l178 920h203z" />
-<glyph unicode="&#x173;" d="M409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195zM850 -397 q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h119q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20z" />
-<glyph unicode="&#x174;" d="M737 1868h213l158 -266h-133l-139 178l-209 -178h-152zM145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
-<glyph unicode="&#x175;" d="M737 1646h147l164 -376h-133l-117 241l-225 -241h-156zM92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
-<glyph unicode="&#x176;" d="M735 1868h213l158 -266h-133l-139 178l-209 -178h-152zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#x177;" d="M777 1646h147l164 -376h-133l-117 241l-225 -241h-156zM20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126 q-60 -79 -136 -114.5t-167 -35.5h-148z" />
-<glyph unicode="&#x178;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM508 670l-313 823h202l236 -651l497 651 h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#x179;" d="M907 1866h208l-307 -264h-160zM23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
-<glyph unicode="&#x17a;" d="M940 1646h219l-395 -376h-156zM111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
-<glyph unicode="&#x17b;" d="M783 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
-<glyph unicode="&#x17c;" d="M694 1320q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
-<glyph unicode="&#x17d;" d="M539 1861h136l139 -178l209 178h151l-264 -266h-213zM23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
-<glyph unicode="&#x17e;" d="M501 1646h131l119 -243l225 243h156l-320 -376h-147zM111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
-<glyph unicode="&#x192;" d="M203 -426q-26 0 -53 2.5t-53 7.5q-50 10 -97 33v164q27 -17 51 -28.5t48 -19.5q25 -8 49.5 -12t46.5 -4q53 0 91.5 20t67.5 55t50.5 90.5t35.5 135.5l117 687h-252v143h275l49 330q14 92 45 160t80 118q99 100 248 100q48 0 98 -9q48 -9 100 -27v-164q-15 12 -36 24 t-41 19q-17 6 -39.5 10t-48.5 4q-51 0 -89.5 -16.5t-66.5 -45.5q-30 -32 -48 -78t-28 -114l-45 -311h303v-143h-328l-100 -635q-20 -125 -55.5 -223t-86.5 -158q-98 -115 -288 -115z" />
-<glyph unicode="&#x1a0;" d="M1367 1557q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5q-31 0 -56 7q12 -69 12 -154q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60q-398 0 -398 488 q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q227 0 326 -156q32 -22 57.5 -31.5t49.5 -9.5q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133zM725 333q25 47 47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5 t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5q49 0 90 13.5t75 39t62.5 62t53.5 83.5z" />
-<glyph unicode="&#x1a1;" d="M1218 1137q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-20 -109 -70 -170.5t-135 -66.5q1 -10 1 -19.5v-20.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130 t65.5 115.5q81 118 190.5 177t252.5 59q146 0 240 -61.5t132 -182.5q42 1 69.5 28.5t38.5 80.5q5 28 5 51q0 35 -11 74h133zM418 127q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99 t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x1a4;" d="M433 1327q-54 0 -88.5 -50.5t-55.5 -156.5h-175l22 114q24 121 112.5 190t216.5 69h436q233 0 333 -90t100 -240q0 -54 -12 -117q-42 -220 -192 -333t-402 -113h-234l-117 -600h-202zM760 766q142 0 233.5 74.5t118.5 206.5q7 35 7 67q0 104 -64.5 158.5t-185.5 54.5 h-234l-109 -561h234z" />
-<glyph unicode="&#x1af;" d="M1385 1557q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5q-40 0 -73 13l-121 -624q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106 t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-32 -165q10 -2 19 -3.5t18 -1.5 q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133v0z" />
-<glyph unicode="&#x1b0;" d="M1260 1137q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5q-40 0 -75 13l-151 -777h-164l13 168q-144 -195 -355 -195q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694 q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-41 -211q19 -6 38 -6q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133v0z" />
-<glyph unicode="&#x1e6;" d="M529 1861h136l139 -178l209 178h151l-264 -266h-213zM563 -29q-118 0 -208.5 34t-152 100t-93 162t-31.5 220q0 94 17 198t48 208q35 118 80 208t105 165q206 254 524 254q85 0 162.5 -19.5t161.5 -62.5l-41 -207q-129 125 -290 125q-97 0 -183 -41.5t-154 -122.5 q-49 -59 -86 -136t-66 -169q-17 -56 -30 -111t-21.5 -106.5t-13 -98t-4.5 -84.5q0 -168 79 -260t227 -92q66 0 119.5 18.5t90.5 53.5l76 393h-217l30 166h410l-133 -670q-86 -62 -189 -93.5t-217 -31.5z" />
-<glyph unicode="&#x1e7;" d="M471 1673h131l119 -243l225 243h156l-320 -376h-147zM378 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133 t30 134t47.5 128t64 115q37 55 81.5 99t95 74.5t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM507 145q166 0 263 174q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5 t-152 66.5q-57 0 -107 -23t-91 -63t-73 -94.5t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
-<glyph unicode="&#x1fe;" d="M887 1859h208l-307 -264h-160zM14 -6l119 170q-27 58 -40 128t-13 161q0 95 13.5 198t38 203.5t59 193.5t77.5 169q87 153 207 228t274 75q83 0 148 -21.5t119 -64.5l84 125l100 -64l-106 -158q29 -60 43 -131.5t14 -165.5q0 -97 -14 -200.5t-38.5 -204t-59 -193 t-76.5 -166.5q-90 -159 -212 -232t-271 -73q-81 0 -148.5 22t-124.5 70l-94 -133zM905 1274q-29 39 -74 60.5t-105 21.5q-114 0 -193 -84.5t-138 -253.5q-24 -69 -44 -145.5t-34 -150t-22 -139.5t-8 -114q0 -26 1.5 -45.5t2.5 -34.5zM502 135q57 0 105 20.5t88.5 62.5 t75 105.5t65.5 149.5q24 68 43.5 141.5t33 147.5t20.5 145.5t7 135.5q0 20 -0.5 38t-1.5 35l-616 -887q20 -45 67 -69.5t113 -24.5z" />
-<glyph unicode="&#x1ff;" d="M907 1673h219l-395 -376h-156zM47 -20l129 153q-57 94 -57 256q0 140 39.5 275.5t115.5 246.5q80 116 188.5 176t259.5 60q81 0 141 -18t106 -54l112 137l93 -77l-123 -146q32 -51 47.5 -114.5t15.5 -145.5q0 -71 -11 -142t-31 -138t-49 -128.5t-65 -113.5 q-78 -113 -187.5 -174.5t-259.5 -61.5q-81 0 -141 18.5t-112 55.5l-119 -141zM852 938q-30 28 -68 40.5t-81 12.5q-86 0 -157.5 -45.5t-123 -125.5t-80.5 -191t-29 -241q0 -29 1.5 -48.5t4.5 -37.5zM533 127q84 0 154.5 45.5t122.5 126t81 191t29 241.5q0 29 -2 51.5 t-7 42.5l-534 -639q29 -29 68.5 -44t87.5 -15z" />
-<glyph unicode="&#x218;" d="M435 -29q-110 0 -210 22.5t-200 67.5l41 209q101 -72 203 -103.5t200 -31.5q88 0 158.5 23.5t119.5 65.5t75 100t26 128q0 40 -10 69.5t-35.5 53t-68 43.5t-107.5 41l-101 33q-93 30 -156.5 62t-102.5 70.5t-55.5 86.5t-16.5 111q0 109 44 200.5t122.5 157.5t186 103 t234.5 37q87 0 175 -19t190 -59l-39 -205q-163 119 -349 119q-83 0 -151 -22t-117.5 -60.5t-76.5 -91.5t-27 -116q0 -38 11 -66t37.5 -50.5t70 -42.5t108.5 -41l121 -39q86 -28 146 -61.5t97.5 -76.5t54 -96.5t16.5 -120.5q0 -112 -43 -204t-122.5 -158t-193 -102.5 t-255.5 -36.5zM335 -197h239l-254 -345h-146z" />
-<glyph unicode="&#x219;" d="M476 -29q-87 0 -174 17.5t-187 52.5l37 190q187 -106 353 -106q67 0 122.5 16t95.5 43.5t62 64t22 76.5q0 114 -196 162l-28 7l-67 18q-128 34 -189 96t-61 170q0 84 34 152t97.5 116.5t154 74.5t202.5 26q177 0 323 -66l-35 -180q-72 45 -149 68.5t-162 23.5 q-66 0 -118.5 -14t-89 -38.5t-55.5 -58t-19 -72.5q0 -29 11.5 -52t37.5 -43t68 -37t104 -33q16 -5 22 -6l72 -18q120 -30 176.5 -93t56.5 -163q0 -84 -37.5 -156t-106 -125t-164.5 -83t-213 -30zM389 -197h239l-254 -345h-146z" />
-<glyph unicode="&#x21a;" d="M1333 1493l-33 -170h-469l-256 -1323h-20q38 -67 55 -112t17 -86q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 30 -14.5 69t-43.5 93h-65l258 1323h-469l33 170h1140z" />
-<glyph unicode="&#x21b;" d="M559 365q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47q0 -67 39 -93q39 -27 141 -27h207l-29 -147h-203q34 -60 50 -103.5t16 -78.5q0 -47 -18.5 -84t-52 -63.5t-81.5 -40.5t-108 -14q-91 0 -185 30l25 129q81 -38 145 -38q67 0 104.5 30t37.5 84 q0 53 -56 155q-47 7 -81.5 19.5t-60.5 30.5q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612v0z" />
-<glyph unicode="&#x2b9;" d="M605 1638h190l-206 -498h-145z" />
-<glyph unicode="&#x2bb;" d="M504 1174l270 382h154l-172 -382l-41 -207h-252z" />
-<glyph unicode="&#x2bc;" d="M578 1349l40 207h252l-40 -207l-270 -382h-154z" />
-<glyph unicode="&#x2bd;" d="M688 1218q-200 0 -200 177q0 18 1.5 38t6.5 42l49 254h241l-49 -254h-111q-3 -13 -4 -24.5t-1 -22.5q0 -87 90 -87l-23 -123v0z" />
-<glyph unicode="&#x2be;" d="M615 1007q5 31 11 61.5t12 61.5q36 0 69 14.5t59 39t41.5 57.5t15.5 70q0 53 -34.5 87.5t-91.5 34.5l24 123q51 0 92.5 -16.5t71 -46t46 -70t16.5 -88.5q0 -13 -1.5 -26t-3.5 -27q-11 -57 -42 -107.5t-75 -87.5t-98.5 -58.5t-111.5 -21.5z" />
-<glyph unicode="&#x2bf;" d="M819 1007q-51 0 -92.5 17t-71 46.5t-46 70t-16.5 88.5q0 13 1.5 26t3.5 27q11 57 42 107t75 87t98.5 58.5t111.5 21.5l-24 -123q-36 0 -69 -14.5t-58.5 -39.5t-41 -58t-15.5 -69q0 -53 34 -87.5t91 -34.5q-6 -31 -12 -61.5t-11 -61.5z" />
-<glyph unicode="&#x2c0;" d="M511 1341h40q66 0 112 17.5t76 46.5q28 27 44 64t16 74q0 41 -20 70t-61.5 46.5t-103.5 17.5q-48 0 -99.5 -12t-105.5 -36l18 96q52 20 104.5 29.5t106.5 9.5q75 0 129 -16.5t88.5 -44.5t50.5 -66t16 -80q0 -28 -6 -55q-11 -52 -38.5 -93.5t-66.5 -71.5t-87 -49.5 t-101 -28.5l-71 -365h-127z" />
-<glyph unicode="&#x2c1;" d="M582 1259q-46 8 -83 25t-63.5 42.5t-41 59t-14.5 74.5q0 22 4 42q9 51 37 98.5t75.5 83.5t114 58t153.5 22q54 0 102.5 -9.5t93.5 -29.5l-19 -96q-90 48 -189 48q-56 0 -98.5 -13.5t-73.5 -37t-49.5 -55.5t-24.5 -69q-3 -15 -3 -30q0 -36 21 -67q44 -64 163 -64h39 l-87 -447h-128z" />
-<glyph unicode="&#x2c6;" d="M717 1638h147l164 -376h-133l-117 241l-225 -241h-156z" />
-<glyph unicode="&#x2c7;" d="M471 1638h131l119 -243l225 243h156l-320 -376h-147z" />
-<glyph unicode="&#x2c8;" d="M602 1554h136l-107 -555h-136z" />
-<glyph unicode="&#x2c9;" d="M469 1526h598l-29 -148h-598z" />
-<glyph unicode="&#x2cc;" d="M602 252h136l-107 -555h-136z" />
-<glyph unicode="&#x2cd;" d="M133 -209h598l-29 -148h-598z" />
-<glyph unicode="&#x2ce;" d="M551 -208h198l197 -376h-143z" />
-<glyph unicode="&#x2cf;" d="M809 -208h219l-395 -376h-156z" />
-<glyph unicode="&#x2d0;" d="M541 1059h357l-243 -330zM578 330l114 -330h-357z" />
-<glyph unicode="&#x2d1;" d="M470 1059h357l-243 -330z" />
-<glyph unicode="&#x2d8;" d="M748 1321q-135 0 -206 64q-73 64 -73 182v14.5t1 10.5q0 6 2 16h120v-17q0 -64 44 -99q43 -34 128 -34q81 0 133 37q54 39 82 113h119q-31 -139 -121 -214q-89 -73 -229 -73z" />
-<glyph unicode="&#x2d9;" d="M664 1348q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-5 -27 -32 -27h-145v0z" />
-<glyph unicode="&#x2da;" d="M778 1321q-114 0 -194 80t-80 194q0 116 80 196q79 79 194 79q116 0 195 -79q80 -80 80 -196q0 -114 -80 -194t-195 -80zM778 1444q64 0 108 44t44 107q0 64 -44 108t-108 44t-107 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44z" />
-<glyph unicode="&#x2db;" d="M438 -395q-48 0 -87 10t-66 30q-29 22 -41.5 50.5t-12.5 59.5q0 29 9.5 57.5t28.5 58.5q37 60 114 129h119q-62 -59 -93 -109q-32 -51 -32 -89q0 -36 24 -55q22 -19 70 -19q14 0 30.5 1.5t33.5 5.5q32 7 65 23l-25 -133q-20 -6 -36 -9.5t-33 -5.5q-18 -2 -33.5 -3.5 t-34.5 -1.5z" />
-<glyph unicode="&#x2dc;" d="M890 1307q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18z" />
-<glyph unicode="&#x2dd;" d="M688 1638h189l-302 -376h-135zM1028 1638h197l-324 -376h-135z" />
-<glyph unicode="&#x300;" horiz-adv-x="0" d="M-780 1638h198l197 -376h-143z" />
-<glyph unicode="&#x301;" horiz-adv-x="0" d="M-326 1638h219l-395 -376h-156z" />
-<glyph unicode="&#x302;" horiz-adv-x="0" d="M-516 1638h147l164 -376h-133l-117 241l-225 -241h-156z" />
-<glyph unicode="&#x303;" horiz-adv-x="0" d="M-347 1307q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72z" />
-<glyph unicode="&#x304;" horiz-adv-x="0" d="M-764 1526h598l-29 -148h-598z" />
-<glyph unicode="&#x305;" horiz-adv-x="0" d="M-1233 1547h1233v-80h-1233v80z" />
-<glyph unicode="&#x306;" horiz-adv-x="0" d="M-486 1321q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5z" />
-<glyph unicode="&#x307;" horiz-adv-x="0" d="M-561 1552h205l-41 -204h-205z" />
-<glyph unicode="&#x308;" horiz-adv-x="0" d="M-758 1552h203l-39 -202h-203zM-367 1552h203l-39 -202h-203z" />
-<glyph unicode="&#x309;" horiz-adv-x="0" d="M-711 1374q19 6 38.5 15t37 18.5t31.5 19.5t22 17q15 14 28 40t13 52q0 15 -5.5 28.5t-18.5 24t-34.5 16.5t-54.5 6q-35 0 -76.5 -7.5t-77.5 -24.5l25 131q91 24 179 24q210 0 210 -138q0 -16 -3 -32q-1 -2 -1 -5t-1 -5q-6 -32 -22 -61t-39 -54.5t-50.5 -47t-56.5 -37.5 l-17 -88h-148z" />
-<glyph unicode="&#x30a;" horiz-adv-x="0" d="M-455 1321q-57 0 -107 21.5t-87 58.5t-58.5 87t-21.5 108t21.5 108t58.5 87t87 58t107 21t107.5 -21t87.5 -58t58.5 -87t21.5 -108t-21.5 -108t-58.5 -87t-87.5 -58.5t-107.5 -21.5zM-455 1444q32 0 59.5 12t48 32t32.5 47.5t12 59.5t-12 59.5t-32.5 48t-48 32.5 t-59.5 12t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5z" />
-<glyph unicode="&#x30b;" horiz-adv-x="0" d="M-545 1638h189l-302 -376h-135zM-205 1638h197l-324 -376h-135z" />
-<glyph unicode="&#x30c;" horiz-adv-x="0" d="M-762 1638h131l119 -243l225 243h156l-320 -376h-147z" />
-<glyph unicode="&#x30d;" horiz-adv-x="0" d="M-644 1706h136l-86 -444h-136z" />
-<glyph unicode="&#x30e;" horiz-adv-x="0" d="M-848 1706h136l-86 -444h-136zM-440 1706h136l-86 -444h-136z" />
-<glyph unicode="&#x30f;" horiz-adv-x="0" d="M-849 1638h178l132 -376h-135zM-507 1638h170l117 -376h-137z" />
-<glyph unicode="&#x310;" horiz-adv-x="0" d="M-87 1812q-33 -144 -122.5 -215.5t-228.5 -71.5q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -79 65 -113l15 74h205l-15 -76q41 17 69 49.5t48 82.5h119z" />
-<glyph unicode="&#x311;" horiz-adv-x="0" d="M-817 1321q78 287 370 287q72 0 121.5 -17t80.5 -47.5t44.5 -73.5t13.5 -94q0 -27 -3 -55h-119q1 79 -41.5 114.5t-125.5 35.5q-89 0 -142.5 -38t-79.5 -112h-119v0z" />
-<glyph unicode="&#x312;" horiz-adv-x="0" d="M-510 1312h146l-161 -345h-239z" />
-<glyph unicode="&#x313;" horiz-adv-x="0" d="M-763 1341q111 -3 138 134h-111l49 254h241l-49 -254q-50 -257 -292 -257z" />
-<glyph unicode="&#x314;" horiz-adv-x="0" d="M-545 1218q-200 0 -200 177q0 18 1.5 38t6.5 42l49 254h241l-49 -254h-111q-3 -13 -4 -24.5t-1 -22.5q0 -87 90 -87l-23 -123v0z" />
-<glyph unicode="&#x315;" horiz-adv-x="0" d="M-513 1638h219l-208 -376h-156z" />
-<glyph unicode="&#x316;" horiz-adv-x="0" d="M-682 -208h198l197 -376h-143z" />
-<glyph unicode="&#x317;" horiz-adv-x="0" d="M-424 -208h219l-395 -376h-156z" />
-<glyph unicode="&#x318;" horiz-adv-x="0" d="M-672 -590h-176l26 136h176l34 177h136l-95 -490h-136z" />
-<glyph unicode="&#x319;" horiz-adv-x="0" d="M-667 -277h136l-34 -177h176l-27 -136h-176l-34 -177h-136z" />
-<glyph unicode="&#x31a;" horiz-adv-x="0" d="M-486 1768h-354l26 136h490l-95 -490h-136z" />
-<glyph unicode="&#x31b;" horiz-adv-x="0" d="M-628 764q-56 0 -102.5 26t-98.5 82l23 119q55 -48 94 -68t73 -20q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5z" />
-<glyph unicode="&#x31c;" horiz-adv-x="0" d="M-749 -502q-47 0 -81 15t-56 40t-33 58t-11 68q0 55 24.5 102.5t62.5 82t85.5 54t94.5 19.5l-19 -98q-26 0 -52 -11t-47.5 -30t-35 -45t-13.5 -57q0 -39 24.5 -69.5t75.5 -30.5l-19 -98v0z" />
-<glyph unicode="&#x31d;" horiz-adv-x="0" d="M-842 -454h177l34 177h136l-34 -177h177l-27 -136h-490z" />
-<glyph unicode="&#x31e;" horiz-adv-x="0" d="M-638 -413h-177l26 136h490l-26 -136h-177l-35 -177h-136z" />
-<glyph unicode="&#x31f;" horiz-adv-x="0" d="M-682 -590h-177l27 136h177l34 177h136l-34 -177h177l-27 -136h-177l-34 -177h-136z" />
-<glyph unicode="&#x320;" horiz-adv-x="0" d="M-848 -277h490l-27 -136h-490z" />
-<glyph unicode="&#x321;" horiz-adv-x="0" d="M-893 -270h185q94 0 148.5 63t78.5 187l29 148h185l-29 -148q-19 -98 -56.5 -173.5t-91.5 -127t-123.5 -78.5t-151.5 -27h-205z" />
-<glyph unicode="&#x322;" horiz-adv-x="0" d="M-888 -426q-137 0 -207.5 71.5t-70.5 208.5q0 29 3 60t10 66l29 148h185l-29 -148q-5 -27 -7.5 -50.5t-2.5 -44.5q0 -155 141 -155h185l-31 -156h-205v0z" />
-<glyph unicode="&#x323;" horiz-adv-x="0" d="M-905 -209h205l-39 -204h-205z" />
-<glyph unicode="&#x324;" horiz-adv-x="0" d="M-1098 -210h203l-40 -202h-203zM-706 -210h202l-40 -202h-202z" />
-<glyph unicode="&#x325;" horiz-adv-x="0" d="M-863 -502q-41 0 -73.5 13.5t-55 37.5t-35 57t-12.5 72q0 56 24 103.5t63 82t87.5 54t96.5 19.5q40 0 72.5 -13.5t56 -37.5t36 -57t12.5 -72q0 -56 -24 -103t-63 -82t-87.5 -54.5t-97.5 -19.5zM-843 -404q27 0 54 11t49 30t35.5 45t13.5 57q0 43 -27 71.5t-72 28.5 q-26 0 -52.5 -10.5t-48 -30t-35 -46t-13.5 -57.5q0 -43 25.5 -71t70.5 -28z" />
-<glyph unicode="&#x326;" horiz-adv-x="0" d="M-898 -197h239l-254 -345h-146z" />
-<glyph unicode="&#x327;" horiz-adv-x="0" d="M-867 -395q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 30 -14.5 69t-43.5 93h119q38 -67 55 -112t17 -86q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5z" />
-<glyph unicode="&#x328;" horiz-adv-x="0" d="M-787 -395q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h119q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20z" />
-<glyph unicode="&#x329;" horiz-adv-x="0" d="M-641 -209h136l-87 -444h-136z" />
-<glyph unicode="&#x32a;" horiz-adv-x="0" d="M-860 -209h551l-64 -330h-137l38 194h-277l-38 -194h-137z" />
-<glyph unicode="&#x32b;" horiz-adv-x="0" d="M-820 -455q-186 0 -186 205q0 35 6 77q1 1 1 5h117q-1 -10 -1.5 -19.5t-0.5 -18.5q0 -112 90 -112q102 0 146 150h118q-1 -8 -1.5 -15.5t-0.5 -15.5q0 -60 26 -89.5t62 -29.5q41 0 83 37.5t65 112.5h118q-36 -148 -111 -217.5t-180 -69.5q-116 0 -159 82 q-76 -82 -192 -82z" />
-<glyph unicode="&#x32c;" horiz-adv-x="0" d="M-1101 -109h139l132 -245l229 245h139l-319 -376h-147z" />
-<glyph unicode="&#x32d;" horiz-adv-x="0" d="M-855 -109h147l173 -376h-139l-134 245l-227 -245h-139z" />
-<glyph unicode="&#x32e;" horiz-adv-x="0" d="M-838 -487q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5z" />
-<glyph unicode="&#x32f;" horiz-adv-x="0" d="M-1168 -485q78 287 370 287q72 0 121.5 -17t80.5 -47.5t44.5 -73.5t13.5 -94q0 -27 -3 -55h-119v13q0 66 -38.5 101.5t-125.5 35.5q-89 0 -143.5 -38t-81.5 -112h-119v0z" />
-<glyph unicode="&#x330;" horiz-adv-x="0" d="M-699 -487q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72z" />
-<glyph unicode="&#x331;" horiz-adv-x="0" d="M-1100 -209h598l-29 -148h-598z" />
-<glyph unicode="&#x332;" horiz-adv-x="0" d="M-1233 -403h1233v-80h-1233v80z" />
-<glyph unicode="&#x333;" horiz-adv-x="0" d="M-1233 -163h1233v-80h-1233v80zM-1233 -403h1233v-80h-1233v80z" />
-<glyph unicode="&#x334;" horiz-adv-x="0" d="M-1139 666q45 30 86 51.5t81.5 35.5t80.5 20.5t83 6.5q25 0 49 -2.5t49.5 -8.5t54 -16.5t62.5 -25.5q6 -3 8.5 -4t4 -2t5 -3t12.5 -6q56 -28 101.5 -41.5t94.5 -13.5q72 0 146 30t161 93l-34 -174q-165 -114 -314 -114q-51 0 -98.5 12.5t-99.5 38.5q-5 2 -6.5 3t-3.5 2 t-6.5 3l-13.5 6q-36 16 -64 26.5t-52.5 17.5t-48 10t-50.5 3q-81 0 -157 -28t-165 -94z" />
-<glyph unicode="&#x335;" horiz-adv-x="0" d="M-1091 616h920v-164h-920v164z" />
-<glyph unicode="&#x336;" horiz-adv-x="0" d="M-1233 616h1233v-164h-1233v164z" />
-<glyph unicode="&#x337;" horiz-adv-x="0" d="M-1297 -20l1273 1232l78 -77l-1274 -1231z" />
-<glyph unicode="&#x338;" horiz-adv-x="0" d="M-1369 0l1395 1559l86 -74l-1391 -1555z" />
-<glyph unicode="&#x339;" horiz-adv-x="0" d="M-950 -404q25 0 51.5 11t48.5 30t35.5 45t13.5 57q0 39 -25 69.5t-76 30.5l19 98q46 0 80.5 -15t57 -40t33.5 -57.5t11 -67.5q0 -56 -24.5 -103t-63 -82t-86.5 -54.5t-94 -19.5z" />
-<glyph unicode="&#x33a;" horiz-adv-x="0" d="M-860 -54h137l-38 -194h277l38 194h137l-64 -330h-551z" />
-<glyph unicode="&#x33b;" horiz-adv-x="0" d="M-839 -209h551l-106 -550h-551zM-505 -623l54 278h-277l-54 -278h277z" />
-<glyph unicode="&#x33c;" horiz-adv-x="0" d="M-1055 -455q36 148 111 217.5t180 69.5q116 0 159 -82q76 82 192 82q186 0 186 -205q0 -35 -6 -77q-1 -1 -1 -5h-117q1 10 1.5 19.5t0.5 18.5q0 112 -90 112q-103 0 -146 -150h-118q1 8 1.5 15.5t0.5 15.5q0 60 -26 89.5t-62 29.5q-41 0 -83 -37.5t-65 -112.5h-118v0z " />
-<glyph unicode="&#x33d;" horiz-adv-x="0" d="M-862 1324l149 125l-100 125l114 97l101 -126l150 126l77 -97l-149 -125l100 -125l-114 -96l-101 125l-150 -125z" />
-<glyph unicode="&#x33e;" horiz-adv-x="0" d="M-787 1328q42 1 71.5 5t49.5 11q45 16 45 44q0 8 -6 20t-23 28l-47 43q-24 24 -33.5 44t-9.5 40q0 5 0.5 10t1.5 10q7 40 32.5 70.5t66.5 50.5t95.5 30.5t119.5 11.5l-22 -110q-82 -1 -121 -15q-45 -17 -45 -45q0 -8 6 -20t23 -28l47 -43q24 -24 33.5 -44t9.5 -40 q0 -5 -0.5 -10t-1.5 -10q-7 -40 -32.5 -70.5t-66.5 -50.5t-95.5 -30.5t-119.5 -11.5z" />
-<glyph unicode="&#x33f;" horiz-adv-x="0" d="M0 1307v-80h-1233v80h1233z" />
-<glyph unicode="&#x358;" horiz-adv-x="0" d="M90 1552h205l-41 -204h-205z" />
-<glyph unicode="&#x361;" horiz-adv-x="0" d="M-1500 1520q47 240 566 300q234 27 351 27q28 0 77 -1t110 -4.5t129.5 -11t136 -21.5t129 -35t108.5 -51t75 -70.5t28 -93.5q0 -22 -4 -39h-118q-101 142 -363 165q-141 13 -224 19t-111 6q-18 0 -68 -1t-119 -6.5t-149.5 -17t-160.5 -32.5t-152 -53.5t-123 -79.5h-118v0 z" />
-<glyph unicode="&#x384;" d="M907 1638h219l-395 -376h-156z" />
-<glyph unicode="&#x385;" d="M1008 1896h219l-395 -376h-156zM439 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM870 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143z" />
-<glyph unicode="&#x386;" d="M457 1638h219l-395 -376h-156zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x388;" d="M207 1638h219l-395 -376h-156zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x389;" d="M157 1638h219l-395 -376h-156zM283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
-<glyph unicode="&#x38a;" d="M207 1638h219l-395 -376h-156zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x38c;" d="M357 1638h219l-395 -376h-156zM480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129 q-85 -128 -196 -188t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5 t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x38e;" d="M-8 1638h219l-395 -376h-156zM496 650q10 49 14.5 102t4.5 108q0 74 -8.5 145.5t-24.5 131t-39.5 102t-54.5 58.5q-72 35 -149 35q-40 0 -82 -9l33 170q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q263 -48 258 -446q191 393 430 446q28 7 59 7q35 0 66 -9.5t54.5 -28 t37 -45.5t13.5 -62q0 -27 -9.5 -59t-30.5 -69q-20 -34 -51 -50.5t-63 -16.5q-25 0 -48 9t-40.5 26.5t-27 43.5t-6.5 61q-43 -26 -83 -69t-76.5 -96.5t-68.5 -115t-57.5 -124.5t-44.5 -125t-30 -117l-126 -650h-203z" />
-<glyph unicode="&#x38f;" d="M383 1638h219l-395 -376h-156zM-33 172h245q-69 94 -102.5 194.5t-33.5 218.5q0 92 21 197q30 154 91.5 279.5t147.5 214t193.5 136.5t229.5 48q101 0 179 -33t131 -94.5t80.5 -149.5t27.5 -198q0 -95 -21 -203q-18 -94 -47.5 -176.5t-72.5 -156.5t-100.5 -142.5 t-131.5 -134.5h248l-34 -172h-463l34 172q67 37 126.5 99.5t108 144t84.5 179t56 204.5q8 47 12.5 90t4.5 82q0 153 -63.5 238t-189.5 85q-76 0 -144 -32.5t-123.5 -95.5t-97.5 -155.5t-66 -211.5q-24 -117 -24 -222q0 -140 40 -245.5t117 -159.5l-34 -172h-463z" />
-<glyph unicode="&#x390;" d="M1008 1896h219l-395 -376h-156zM439 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM870 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM746 -5 q-145 0 -213.5 61t-68.5 193q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110z" />
-<glyph unicode="&#x391;" d="M639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x392;" d="M313 1493h443q204 0 307.5 -79t103.5 -236q0 -76 -24 -141t-68 -114.5t-107 -81.5t-141 -42q136 -27 197 -108t61 -209q0 -110 -41 -199t-119 -152t-191.5 -97t-258.5 -34h-452zM639 877q75 0 135 18.5t102 54t64.5 85.5t22.5 113q0 94 -55.5 136.5t-180.5 42.5h-244 l-88 -450h244zM506 166q92 0 162.5 22.5t118.5 65t73 103t25 135.5q0 116 -65 168.5t-214 52.5h-241l-107 -547h248z" />
-<glyph unicode="&#x393;" d="M360 1493h924l-33 -170h-721l-257 -1323h-203z" />
-<glyph unicode="&#x394;" d="M640 1493h245l167 -1493h-1159zM827 170l-99 1145l-545 -1145h644z" />
-<glyph unicode="&#x395;" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x396;" d="M23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
-<glyph unicode="&#x397;" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
-<glyph unicode="&#x398;" d="M26 501q0 90 17 175q38 196 146 360.5t260.5 260.5t319.5 96q140 0 240.5 -68.5t153 -188t52.5 -271.5q0 -86 -18 -181q-40 -205 -150 -368t-261.5 -254t-310.5 -91q-138 0 -239.5 68.5t-155.5 189t-54 272.5zM995 685q17 90 17 171q0 158 -69 255t-218 97 q-130 0 -228.5 -74.5t-161 -194.5t-89.5 -260q-17 -90 -17 -167q0 -161 71.5 -258.5t217.5 -97.5q125 0 223 72t162 192t92 265zM403 764h467l-33 -170h-467z" />
-<glyph unicode="&#x399;" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x39a;" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
-<glyph unicode="&#x39b;" d="M640 1493h245l167 -1493h-209l-115 1315l-626 -1315h-209z" />
-<glyph unicode="&#x39c;" d="M229 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
-<glyph unicode="&#x39d;" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
-<glyph unicode="&#x39e;" d="M283 1493h959l-33 -170h-959zM367 881h553l-33 -170h-553zM26 170h959l-33 -170h-959z" />
-<glyph unicode="&#x39f;" d="M480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x3a0;" d="M283 1493h959l-290 -1493h-203l257 1323h-553l-257 -1323h-203z" />
-<glyph unicode="&#x3a1;" d="M342 1493h440q205 0 313.5 -91t108.5 -280q0 -117 -41.5 -213t-119 -165t-188.5 -106.5t-251 -37.5h-233l-117 -600h-203zM637 766q82 0 149 25t114.5 70.5t73 109t25.5 139.5q0 112 -61 164.5t-193 52.5h-233l-109 -561h234z" />
-<glyph unicode="&#x3a3;" d="M9 170l566 577l-342 576l33 170h1013l-33 -170h-802l343 -576l-567 -577h802l-33 -170h-1013z" />
-<glyph unicode="&#x3a4;" d="M629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
-<glyph unicode="&#x3a5;" d="M496 650q10 49 14.5 102t4.5 108q0 74 -8.5 145.5t-24.5 131t-39.5 102t-54.5 58.5q-72 35 -149 35q-40 0 -82 -9l33 170q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q263 -48 258 -446q191 393 430 446q28 7 59 7q35 0 66 -9.5t54.5 -28t37 -45.5t13.5 -62 q0 -27 -9.5 -59t-30.5 -69q-20 -34 -51 -50.5t-63 -16.5q-25 0 -48 9t-40.5 26.5t-27 43.5t-6.5 61q-43 -26 -83 -69t-76.5 -96.5t-68.5 -115t-57.5 -124.5t-44.5 -125t-30 -117l-126 -650h-203z" />
-<glyph unicode="&#x3a6;" d="M255 170h147l22 116q-73 8 -132 29.5t-101 60t-65 95.5t-23 137q0 31 3 65t11 72q23 118 68.5 201.5t108.5 137.5t141.5 83t167.5 38l23 118h-147l33 170h497l-33 -170h-147l-23 -118q73 -8 132.5 -30t101.5 -61t65 -97t23 -137q0 -30 -3 -63.5t-11 -71.5 q-23 -117 -68 -200t-108 -137.5t-142 -83.5t-169 -38l-22 -116h147l-33 -170h-497zM569 1029q-37 -8 -71 -22.5t-59 -35.5q-27 -24 -49.5 -60.5t-38.5 -80t-24.5 -90t-8.5 -89.5q0 -41 8.5 -74.5t25.5 -56.5q17 -21 44.5 -35.5t62.5 -22.5zM662 462q37 8 71 22.5t59 35.5 q27 23 49.5 60t38 80.5t24 90.5t8.5 90q0 41 -8 74.5t-25 55.5q-17 21 -44.5 35.5t-62.5 22.5z" />
-<glyph unicode="&#x3a7;" d="M530 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
-<glyph unicode="&#x3a8;" d="M255 170h147l42 214q-172 32 -239 183q-46 104 -46 260q0 140 36 323l67 343h203l-67 -343q-36 -185 -36 -310q0 -96 21 -159q28 -86 95 -121l181 933h203l-181 -933q81 35 142 121q53 73 94 192t72 277l67 343h203l-67 -343q-39 -202 -98.5 -345.5t-137.5 -237.5 q-128 -152 -309 -183l-42 -214h147l-33 -170h-497z" />
-<glyph unicode="&#x3a9;" d="M74 172h245q-122 132 -178 278q-55 143 -55 333q0 309 144 494q71 91 166.5 137t217.5 46q125 0 221 -47t166 -136q144 -183 144 -494q0 -190 -55 -333q-29 -75 -73.5 -143.5t-105.5 -134.5h248v-172h-463v172q120 76 187 241q33 81 50 176t17 201q0 116 -21.5 210 t-67.5 162q-43 63 -105 97.5t-140 34.5q-82 0 -142.5 -36t-101.5 -96q-44 -65 -66.5 -157t-22.5 -215q0 -106 17 -201t50 -176q35 -85 82 -144.5t105 -96.5v-172h-463v172z" />
-<glyph unicode="&#x3aa;" d="M506 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q16 0 22.5 -9t3.5 -24l-29 -143q-6 -27 -32 -27h-142zM897 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x3ab;" d="M506 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q16 0 22.5 -9t3.5 -24l-29 -143q-6 -27 -32 -27h-142zM897 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM496 650q10 49 14.5 102t4.5 108 q0 74 -8.5 145.5t-24.5 131t-39.5 102t-54.5 58.5q-72 35 -149 35q-40 0 -82 -9l33 170q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q263 -48 258 -446q191 393 430 446q28 7 59 7q35 0 66 -9.5t54.5 -28t37 -45.5t13.5 -62q0 -27 -9.5 -59t-30.5 -69q-20 -34 -51 -50.5 t-63 -16.5q-25 0 -48 9t-40.5 26.5t-27 43.5t-6.5 61q-43 -26 -83 -69t-76.5 -96.5t-68.5 -115t-57.5 -124.5t-44.5 -125t-30 -117l-126 -650h-203z" />
-<glyph unicode="&#x3ac;" d="M917 1673h219l-395 -376h-156zM396 -25q-165 0 -256 100.5t-91 291.5q0 87 21 192q30 150 87.5 259.5t131.5 181t159.5 107.5t171.5 39h17q68 0 122 -21.5t90.5 -62t55 -100t16.5 -135.5l156 293h164l-323 -607l-3 -219q0 -24 8 -48.5t20.5 -44.5t29 -32.5t32.5 -12.5h89 l-30 -156h-111q-47 0 -91.5 23t-70.5 61q-16 22 -24 52.5t-9 77.5q-30 -48 -63.5 -91.5t-76.5 -76.5t-97.5 -52t-124.5 -19zM421 127q60 0 121 51t120 162l96 181l1 231q0 65 -12 110.5t-33 74t-49 41.5t-59 13q-52 0 -106.5 -30.5t-96.5 -81.5q-32 -38 -60.5 -94t-50 -121 t-34.5 -134.5t-13 -133.5q0 -45 7 -86.5t23 -75.5q23 -50 61 -78.5t85 -28.5z" />
-<glyph unicode="&#x3ad;" d="M947 1673h219l-395 -376h-156zM544 -29q-109 0 -193.5 21t-139.5 67q-45 38 -64.5 86t-19.5 99q0 35 8 69.5t23 66.5t36 59.5t46 48.5l36 30q67 54 158 74q-14 3 -31 8.5t-29 11.5q-16 8 -35.5 23t-36 37.5t-27.5 52t-11 66.5q0 10 1 20t3 21q11 66 52.5 121.5t106 95 t149 61.5t181.5 22q70 0 152 -12t188 -36l-35 -179q-47 16 -94.5 28t-91.5 19.5t-82.5 10.5t-66.5 2l-31 -1q-38 -2 -76.5 -15t-66.5 -30l-44 -28q-17 -14 -26 -30t-14 -40q-3 -14 -3 -26q0 -17 11 -33t43 -38q38 -26 79 -40t98 -14h127l-32 -163h-126q-55 0 -115.5 -18 t-108.5 -45t-71.5 -58t-30.5 -65q-2 -6 -3.5 -18.5t-1.5 -24.5q0 -53 58 -99q4 -2 7 -5t7 -5q32 -23 77.5 -34t99.5 -11q20 0 34 1.5t30 3.5l128 29l15 3q20 4 45 9.5t50 12t46.5 12.5t35.5 12l-36 -181q-99 -27 -198 -41t-190 -14z" />
-<glyph unicode="&#x3ae;" d="M946 1673h219l-395 -376h-156zM890 694q6 32 9.5 60.5t3.5 54.5q0 93 -43.5 135.5t-130.5 42.5q-129 0 -216.5 -89.5t-121.5 -264.5l-123 -633h-184l218 1120h164l-13 -168q69 97 162 146t208 49q270 0 270 -284q0 -75 -18 -169l-218 -1120h-185z" />
-<glyph unicode="&#x3af;" d="M887 1648h219l-395 -376h-156zM716 -5q-145 0 -213.5 61t-68.5 193q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110z" />
-<glyph unicode="&#x3b0;" d="M1017 1888h219l-395 -376h-156zM449 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM885 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM485 0 q-137 0 -203 62.5t-66 194.5q0 33 4 70t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5t-68 155.5h186q36 -62 58 -141t22 -176 q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
-<glyph unicode="&#x3b1;" d="M396 -25q-165 0 -256 100.5t-91 291.5q0 87 21 192q30 150 87.5 259.5t131.5 181t159.5 107.5t171.5 39h17q68 0 122 -21.5t90.5 -62t55 -100t16.5 -135.5l156 293h164l-323 -607l-3 -219q0 -24 8 -48.5t20.5 -44.5t29 -32.5t32.5 -12.5h89l-30 -156h-111q-47 0 -91.5 23 t-70.5 61q-16 22 -24 52.5t-9 77.5q-30 -48 -63.5 -91.5t-76.5 -76.5t-97.5 -52t-124.5 -19zM421 127q60 0 121 51t120 162l96 181l1 231q0 65 -12 110.5t-33 74t-49 41.5t-59 13q-52 0 -106.5 -30.5t-96.5 -81.5q-32 -38 -60.5 -94t-50 -121t-34.5 -134.5t-13 -133.5 q0 -45 7 -86.5t23 -75.5q23 -50 61 -78.5t85 -28.5z" />
-<glyph unicode="&#x3b2;" d="M258 1113q23 120 75 207.5t121 143.5t149 83t158 27q74 0 142 -22.5t119.5 -65.5t82.5 -105t31 -141q0 -14 -1 -28t-3 -28q-8 -56 -29.5 -113.5t-54 -108t-73.5 -90.5t-88 -62q114 -23 167.5 -87t53.5 -170q0 -23 -2.5 -48t-7.5 -52q-20 -113 -70 -201t-124.5 -148.5 t-171 -92.5t-209.5 -32q-32 0 -63 3.5t-64.5 13t-71.5 27t-84 46.5l-96 -495h-185zM293 342q12 -35 41.5 -64.5t71 -51t90.5 -33.5t100 -12q53 0 105 14.5t94.5 47t73 83.5t41.5 124q2 14 3 27t1 25q0 53 -20 92t-63 65t-109.5 39t-160.5 13h-32t-33 -1l33 170 q7 0 13.5 -0.5t13.5 -0.5q96 0 168 27.5t122 72.5q54 47 80 105t26 113q0 45 -17 80t-45.5 58.5t-66 36t-78.5 12.5q-47 0 -95 -16.5t-89.5 -50.5t-73 -86t-45.5 -124z" />
-<glyph unicode="&#x3b3;" d="M445 0l-139 836q-21 126 -115 126h-49l31 158h70q193 0 225 -176l122 -685l493 861h191l-639 -1120l-83 -426h-190z" />
-<glyph unicode="&#x3b4;" d="M502 -29q-189 0 -288 98t-99 295q0 88 21 195q28 144 80.5 253t127.5 184q16 16 37.5 33.5t50.5 37.5q-8 5 -23 19t-27 30q-18 23 -27.5 49t-9.5 57q0 11 1.5 22.5t3.5 24.5q13 69 55 124.5t107.5 94.5t152 60t188.5 21q38 0 76.5 -3t62.5 -9l144 -36l-34 -173 q-61 24 -136 40t-156 14l-32 -1q-74 -1 -142 -45l-44 -28q-23 -17 -33 -43.5t-10 -49.5q0 -17 5 -29q5 -10 17 -22t32 -23q16 -8 43 -10.5t83 -3.5q195 -5 291 -103.5t96 -287.5q0 -89 -21 -197q-28 -143 -80 -252.5t-127 -184t-171.5 -113t-214.5 -38.5zM531 127 q138 0 232 106t137 326q10 48 14.5 91t4.5 81q0 131 -55 195.5t-164 64.5q-144 0 -236.5 -112t-132.5 -320q-9 -48 -14 -90.5t-5 -80.5q0 -128 54 -194.5t165 -66.5z" />
-<glyph unicode="&#x3b5;" d="M544 -29q-109 0 -193.5 21t-139.5 67q-45 38 -64.5 86t-19.5 99q0 35 8 69.5t23 66.5t36 59.5t46 48.5l36 30q67 54 158 74q-14 3 -31 8.5t-29 11.5q-16 8 -35.5 23t-36 37.5t-27.5 52t-11 66.5q0 10 1 20t3 21q11 66 52.5 121.5t106 95t149 61.5t181.5 22q70 0 152 -12 t188 -36l-35 -179q-47 16 -94.5 28t-91.5 19.5t-82.5 10.5t-66.5 2l-31 -1q-38 -2 -76.5 -15t-66.5 -30l-44 -28q-17 -14 -26 -30t-14 -40q-3 -14 -3 -26q0 -17 11 -33t43 -38q38 -26 79 -40t98 -14h127l-32 -163h-126q-55 0 -115.5 -18t-108.5 -45t-71.5 -58t-30.5 -65 q-2 -6 -3.5 -18.5t-1.5 -24.5q0 -53 58 -99q4 -2 7 -5t7 -5q32 -23 77.5 -34t99.5 -11q20 0 34 1.5t30 3.5l128 29l15 3q20 4 45 9.5t50 12t46.5 12.5t35.5 12l-36 -181q-99 -27 -198 -41t-190 -14z" />
-<glyph unicode="&#x3b6;" d="M595 -430q8 38 15 75.5t14 75.5q34 -3 63 7.5t50.5 27t35 37.5t16.5 39q3 15 3 31q0 44 -24 76t-73 32q-130 0 -226.5 32t-160 89t-94.5 135t-31 169q0 115 48 244.5t142.5 258.5t234.5 251t323 221h-532l36 185h870l-36 -185q-849 -415 -887 -837q-3 -35 -3 -65 q0 -342 346 -342q58 0 104 -16t78 -44.5t49 -68.5t17 -89q0 -27 -6 -57q-12 -57 -41 -108.5t-75.5 -90t-110.5 -61t-145 -22.5z" />
-<glyph unicode="&#x3b7;" d="M890 694q6 32 9.5 60.5t3.5 54.5q0 93 -43.5 135.5t-130.5 42.5q-129 0 -216.5 -89.5t-121.5 -264.5l-123 -633h-184l218 1120h164l-13 -168q69 97 162 146t208 49q270 0 270 -284q0 -75 -18 -169l-218 -1120h-185z" />
-<glyph unicode="&#x3b8;" d="M497 -29q-180 0 -271.5 116t-91.5 342q0 134 33 307q37 190 95.5 330.5t138.5 237.5q161 196 392 196q183 0 274.5 -117t91.5 -343q0 -135 -33 -304q-37 -190 -96.5 -333t-139.5 -239t-179 -144.5t-214 -48.5zM947 828q9 56 14 107t5 98q0 70 -11.5 127.5t-36 97.5 t-63 62t-91.5 22q-70 0 -129 -38t-107 -106t-84.5 -162.5t-61.5 -207.5h565zM528 129q70 0 130 38.5t108 107t84.5 163t60.5 206.5h-565q-9 -56 -14 -107t-5 -97q0 -71 11.5 -128.5t36 -98t62.5 -62.5t91 -22z" />
-<glyph unicode="&#x3b9;" d="M756 -5q-145 0 -213.5 61t-68.5 193q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110v0z" />
-<glyph unicode="&#x3ba;" d="M315 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
-<glyph unicode="&#x3bb;" d="M666 1074l-35 198q-22 126 -177 126h-49l31 158l69 -2q273 -8 303 -173l248 -1381h-195l-153 828l-547 -828h-195z" />
-<glyph unicode="&#x3bc;" d="M262 1120h187l-136 -696q-12 -62 -12 -105q0 -91 54 -139.5t157 -48.5q138 0 219.5 82.5t114.5 253.5l127 653h186l-168 -862q-3 -18 -4.5 -31t-1.5 -24q0 -62 49 -62q7 0 25 5q14 4 47 18l-29 -148q-40 -22 -77 -33.5t-70 -11.5q-67 0 -106.5 42.5t-39.5 115.5 q-54 -82 -122.5 -120t-167.5 -38q-184 0 -248 166l-109 -563h-176z" />
-<glyph unicode="&#x3bd;" d="M225 1120h198l106 -940q72 62 139.5 132.5t122 142t92.5 139t51 123.5q5 17 8 42.5t3 57.5q0 61 -18.5 139t-70.5 164h186q20 -35 35.5 -75.5t26.5 -83.5t16.5 -86.5t5.5 -83.5q0 -42 -6 -76q-11 -62 -44 -128t-80.5 -132.5t-105.5 -131.5t-118.5 -123.5t-119 -109.5 t-107.5 -90h-196z" />
-<glyph unicode="&#x3be;" d="M580 -430q8 38 15 75.5t14 75.5q34 -3 63 7.5t50.5 27t35 37.5t16.5 39q3 15 3 31q0 44 -24 76t-73 32q-150 0 -255 27.5t-171.5 73.5t-97 107t-30.5 128q0 72 32 147t88.5 141t134 119t169.5 82q-61 8 -104.5 28.5t-72 50.5t-42 67t-13.5 78q0 51 20 103.5t56.5 100 t89 86t118.5 61.5h-208l36 185h789l-36 -185q-170 0 -297.5 -24t-212.5 -62.5t-127.5 -87t-42.5 -97.5q0 -42 30.5 -80.5t91 -69t151 -49.5t211.5 -21l-33 -170q-160 -11 -279 -46.5t-198 -85t-118 -108t-39 -115.5q0 -45 24.5 -86t73.5 -72.5t122 -50t170 -19.5 q58 0 104 -16t78 -44.5t49 -68.5t17 -89q0 -27 -6 -57q-12 -57 -41 -108.5t-75.5 -90t-110.5 -61t-145 -22.5z" />
-<glyph unicode="&#x3bf;" d="M514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99 t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x3c0;" d="M1027 -39q-114 0 -160 66q-23 32 -34.5 90t-11.5 151v684h-428v-952h-180v952h-143v148h1073v-148h-141v-704q0 -35 5.5 -60.5t19.5 -42.5q12 -16 30 -24t45 -8q18 0 41 3q10 1 14.5 1.5t6.5 0.5h3.5t4.5 1v-133q-32 -13 -72 -19q-38 -6 -73 -6z" />
-<glyph unicode="&#x3c1;" d="M185 540q31 160 85 275t127 188.5t163.5 108.5t194.5 35q187 0 280 -103t93 -290q0 -45 -5.5 -95t-16.5 -104q-29 -140 -80.5 -249t-122 -183.5t-157.5 -113t-186 -38.5q-105 0 -172.5 43t-95.5 127l-110 -567h-185zM562 127q71 0 126 29t96 80q33 41 60 100.5 t46.5 126.5t30.5 137t11 133q0 44 -5.5 82t-17.5 67q-23 56 -68.5 82.5t-111.5 26.5q-131 0 -221.5 -107t-133.5 -325q-10 -50 -14.5 -94t-4.5 -82q0 -129 52 -192.5t155 -63.5z" />
-<glyph unicode="&#x3c2;" d="M523 -430q7 38 14 75.5t15 75.5q34 -3 62.5 7.5t50 27t35 37.5t17.5 39q3 18 3 36q0 40 -21 68.5t-76 34.5q-39 4 -88 11.5t-100 23t-100 43t-87 72t-61 108.5t-23 154q0 39 4.5 82.5t15.5 93.5q30 142 89.5 251.5t144.5 184.5t192.5 113.5t233.5 38.5q45 0 85 -5 t77 -15.5t72 -27t70 -38.5l-38 -193q-57 62 -124 92.5t-160 30.5q-91 0 -165 -29t-130.5 -84.5t-94.5 -136t-58 -182.5q-15 -78 -15 -138q0 -76 19.5 -127.5t49.5 -84t65.5 -49t67.5 -23.5t56.5 -8t31.5 -2q134 -20 193 -69t59 -131q0 -17 -2.5 -36t-7.5 -39 q-14 -61 -44 -112.5t-76 -89t-109 -59t-143 -21.5z" />
-<glyph unicode="&#x3c3;" d="M491 -29q-190 0 -289.5 99t-99.5 294q0 88 21 195q55 270 202 415.5t386 145.5h515l-36 -184h-241q72 -59 103 -140.5t31 -173.5q0 -68 -15.5 -137.5t-43.5 -135t-66 -124t-84 -103.5q-153 -151 -383 -151zM514 127q72 0 134 30.5t110 87t81 136.5t48 178q3 20 5 38.5 t2 36.5q0 31 -7 60t-23.5 57.5t-44.5 57.5t-70 59q-31 22 -57.5 37.5t-50.5 29.5q-67 -5 -119 -29t-91.5 -70.5t-67 -115t-45.5 -161.5q-18 -95 -18 -169q0 -263 214 -263z" />
-<glyph unicode="&#x3c4;" d="M726 0q-145 0 -213.5 61.5t-68.5 192.5q0 34 4.5 71.5t12.5 80.5l103 530h-361l35 184h914l-35 -184h-365l-106 -541q-15 -77 -15 -125q0 -44 12 -66q27 -48 135 -48h88l-30 -156h-110v0z" />
-<glyph unicode="&#x3c5;" d="M485 0q-137 0 -203 62.5t-66 194.5q0 33 4 70t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5t-68 155.5h186q36 -62 58 -141 t22 -176q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
-<glyph unicode="&#x3c6;" d="M422 -25q-83 0 -148.5 27t-111 79t-69.5 128t-24 175q0 78 17 175q27 147 79 250t119 169.5t144 102t153 47.5l-32 -163q-72 -27 -133 -101q-36 -43 -64.5 -98.5t-48 -116.5t-30 -123.5t-10.5 -120.5q0 -48 7.5 -89.5t23.5 -73.5q26 -52 69 -77.5t91 -25.5l133 687 q29 151 106.5 226.5t191.5 75.5q66 0 121.5 -25.5t95.5 -74.5t62.5 -121t22.5 -166q0 -42 -4.5 -86.5t-14.5 -94.5q-27 -140 -81.5 -248.5t-129 -183t-164.5 -113.5t-188 -39l-78 -402h-183zM637 140q46 0 95.5 22t95.5 72t84.5 130t61.5 196q9 45 13 84t4 74 q0 51 -8.5 90.5t-23.5 71.5q-21 44 -49 67.5t-51 23.5q-26 0 -50.5 -35.5t-38.5 -109.5z" />
-<glyph unicode="&#x3c7;" d="M524 351l-88 485q-23 126 -178 126h-49l30 158h70q257 0 289 -176l69 -380l374 556h191l-524 -780l88 -482q22 -126 179 -126h49l-30 -158h-70q-258 0 -290 176l-69 378l-372 -554h-191z" />
-<glyph unicode="&#x3c8;" d="M413 -25q-62 0 -118 28t-98.5 78.5t-67.5 121t-25 156.5q0 27 2.5 55.5t8.5 57.5l126 648h185l-124 -641q-5 -29 -8 -54.5t-3 -48.5q0 -89 45 -150q23 -32 53 -54t56 -32l190 980h183l-190 -980q33 11 71 34t70 52q51 46 84 107t50 146l124 641h185l-126 -648 q-21 -108 -73.5 -199t-121 -157t-146 -103.5t-149.5 -37.5l-78 -401h-183z" />
-<glyph unicode="&#x3c9;" d="M268 -29q-88 0 -144 47.5t-73 137.5q-9 46 -9 112q0 79 15 181.5t48 215t86 229.5t128 226h190q-54 -83 -92.5 -157t-65.5 -142t-45.5 -133t-32.5 -130q-23 -110 -31 -185.5t-8 -104.5q0 -67 28 -102t66 -35q32 0 66 26.5t60 82.5q9 21 20 53.5t24.5 86t30.5 131 t39 188.5h170q-19 -97 -31.5 -168.5t-20 -123.5t-10.5 -87t-3 -58q0 -6 0.5 -11.5t0.5 -10.5q4 -55 28 -82t56 -27q37 0 77.5 34.5t68.5 104.5q12 31 32.5 100.5t40.5 187.5q12 68 18.5 130t6.5 125q0 72 -9.5 147t-31.5 160h190q23 -76 32.5 -156t9.5 -160q0 -100 -13 -196 t-34 -181t-48 -154.5t-54 -116.5q-51 -88 -126.5 -136.5t-163.5 -48.5q-47 0 -84.5 14t-63.5 38t-41.5 56.5t-18.5 70.5q-17 -36 -44.5 -68.5t-63 -57t-78.5 -39t-92 -14.5z" />
-<glyph unicode="&#x3ca;" d="M459 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM850 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM746 -5q-145 0 -213.5 61t-68.5 193 q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110z" />
-<glyph unicode="&#x3cb;" d="M469 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM485 0q-137 0 -203 62.5t-66 194.5q0 33 4 70 t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5t-68 155.5h186q36 -62 58 -141t22 -176q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150 t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
-<glyph unicode="&#x3cc;" d="M937 1673h219l-395 -376h-156zM514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127 q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x3cd;" d="M907 1648h219l-395 -376h-156zM485 0q-137 0 -203 62.5t-66 194.5q0 33 4 70t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5 t-68 155.5h186q36 -62 58 -141t22 -176q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
-<glyph unicode="&#x3ce;" d="M967 1673h219l-395 -376h-156zM268 -29q-88 0 -144 47.5t-73 137.5q-9 46 -9 112q0 79 15 181.5t48 215t86 229.5t128 226h190q-54 -83 -92.5 -157t-65.5 -142t-45.5 -133t-32.5 -130q-23 -110 -31 -185.5t-8 -104.5q0 -67 28 -102t66 -35q32 0 66 26.5t60 82.5 q9 21 20 53.5t24.5 86t30.5 131t39 188.5h170q-19 -97 -31.5 -168.5t-20 -123.5t-10.5 -87t-3 -58q0 -6 0.5 -11.5t0.5 -10.5q4 -55 28 -82t56 -27q37 0 77.5 34.5t68.5 104.5q12 31 32.5 100.5t40.5 187.5q12 68 18.5 130t6.5 125q0 72 -9.5 147t-31.5 160h190 q23 -76 32.5 -156t9.5 -160q0 -100 -13 -196t-34 -181t-48 -154.5t-54 -116.5q-51 -88 -126.5 -136.5t-163.5 -48.5q-47 0 -84.5 14t-63.5 38t-41.5 56.5t-18.5 70.5q-17 -36 -44.5 -68.5t-63 -57t-78.5 -39t-92 -14.5z" />
-<glyph unicode="&#x3f4;" d="M465 -29q-195 0 -289.5 110.5t-94.5 338.5q0 140 36 325q76 391 237 583t413 192q385 0 385 -452q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM928 881q8 56 12.5 105.5t4.5 93.5q0 66 -11 117.5t-36 86.5t-65 53.5t-98 18.5q-77 0 -135.5 -32.5t-103.5 -94 t-78.5 -149.5t-60.5 -199h571zM497 135q77 0 138 33.5t109 104t86 179.5t68 259h-577q-17 -88 -24.5 -161.5t-7.5 -133.5q0 -85 15 -140q40 -141 193 -141z" />
-<glyph unicode="&#x400;" d="M576 1869h182l147 -264h-139zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x401;" d="M556 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM947 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM344 1493h885l-33 -170h-684l-86 -442 h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x402;" d="M467 -470h-24t-24.5 0.5t-20.5 1t-13 0.5q1 1 33 181l75 -17q6 -1 12 -1.5t21 -0.5q69 0 119.5 17.5t87.5 58.5t62.5 108.5t45.5 167.5l81 416q13 65 13 117q0 94 -44.5 135t-137.5 41q-46 0 -94.5 -10t-99.5 -32q-28 -12 -45 -23t-32 -26q-40 -40 -72 -109t-49 -154 l-78 -401h-203l258 1325h-246l33 170h894l-33 -170h-445l-102 -525q12 11 22 19.5t21 16t24 14.5t31 16q2 1 3.5 2t6.5 3.5t15 7t28 13.5t38.5 16t46.5 13t59.5 10.5t77.5 7.5q13 1 23.5 1.5t25.5 0.5q77 0 134.5 -20t96.5 -64q6 -7 11 -14t9 -15q37 -65 37 -169 q0 -38 -5 -80.5t-14 -90.5l-86 -442q-28 -143 -73 -241.5t-114 -159.5t-165 -88t-225 -27z" />
-<glyph unicode="&#x403;" d="M974 1866h208l-307 -264h-160zM380 1493h924l-33 -170h-721l-257 -1323h-203z" />
-<glyph unicode="&#x404;" d="M589 -29q-95 0 -167 21t-125 57.5t-88.5 86.5t-57 107.5t-30.5 120.5t-9 127q0 115 27 253q37 186 106.5 330.5t166.5 243.5t219 150.5t263 51.5q177 0 314 -82l-41 -207q-128 125 -315 125q-95 0 -167.5 -33t-129.5 -98.5t-101.5 -164t-81.5 -229.5h627l-33 -170h-632 q-8 -44 -12 -90.5t-4 -84.5q0 -36 4.5 -76t16 -79t32.5 -74.5t55 -62.5t81.5 -43t113.5 -16q92 0 183 32.5t175 92.5l-41 -207q-168 -82 -349 -82z" />
-<glyph unicode="&#x405;" d="M435 -29q-110 0 -210 22.5t-200 67.5l41 209q101 -72 203 -103.5t200 -31.5q88 0 158.5 23.5t119.5 65.5t75 100t26 128q0 40 -10 69.5t-35.5 53t-68 43.5t-107.5 41l-101 33q-93 30 -156.5 62t-102.5 70.5t-55.5 86.5t-16.5 111q0 109 44 200.5t122.5 157.5t186 103 t234.5 37q87 0 175 -19t190 -59l-39 -205q-163 119 -349 119q-83 0 -151 -22t-117.5 -60.5t-76.5 -91.5t-27 -116q0 -38 11 -66t37.5 -50.5t70 -42.5t108.5 -41l121 -39q86 -28 146 -61.5t97.5 -76.5t54 -96.5t16.5 -120.5q0 -112 -43 -204t-122.5 -158t-193 -102.5 t-255.5 -36.5z" />
-<glyph unicode="&#x406;" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x407;" d="M523 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM914 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x408;" d="M381 -29q-110 0 -208 23t-198 67l45 236q78 -85 169 -123.5t197 -38.5q70 0 121 18t88 59t62 108.5t45 166.5l164 836h-381l33 170h584l-197 -1006q-28 -141 -69.5 -239.5t-104 -160t-148.5 -89t-202 -27.5z" />
-<glyph unicode="&#x409;" d="M-97 164q47 0 81 6t58.5 21.5t42.5 41.5t32.5 65t29 93t33.5 126q11 43 23 94.5t26 117.5t30.5 149t37.5 189l83 426h544l-117 -600h21q59 0 117.5 -19.5t105 -62.5t75.5 -110t29 -161q0 -26 -5 -74.5t-25.5 -107.5t-62 -123t-113.5 -121q-73 -57 -150 -85.5t-144 -28.5 h-207l257 1323h-172l-49 -250q-19 -98 -38 -195.5t-39 -190t-43 -177.5t-51 -158t-62.5 -132.5t-76.5 -100.5q-32 -31 -62.5 -53.5t-65 -37t-77 -21.5t-98.5 -7zM687 166q45 0 88 18t79 53t62.5 85.5t38.5 115.5q5 26 7.5 55t2.5 47q0 35 -9 68.5t-29.5 60t-52.5 42.5 t-78 16h-21l-109 -561h21z" />
-<glyph unicode="&#x40a;" d="M211 1493h186l-119 -612h395l119 612h186l-117 -600h21q90 0 152.5 -24t102.5 -65t58 -96t18 -117q0 -29 -4 -66.5t-12 -76.5q-24 -113 -76.5 -197.5t-120 -140t-143.5 -83t-148 -27.5h-207l138 711h-395l-138 -711h-186zM741 166q45 0 88 18t79 53t62.5 85.5t38.5 115.5 q5 26 7.5 54t2.5 46q0 34 -8.5 68t-28.5 61t-52 43.5t-80 16.5h-21l-109 -561h21z" />
-<glyph unicode="&#x40b;" d="M292 1325h-246l33 170h894l-33 -170h-445l-102 -525q14 13 26 22t23.5 16.5t23.5 14t26 13.5q17 8 32.5 16t19.5 10q38 19 90 30.5t132 16.5q14 1 24.5 1.5t25.5 0.5q76 0 133.5 -20t96.5 -64q6 -7 11 -14t9 -15q37 -65 37 -173q0 -76 -18 -167l-95 -488h-203l90 462 q6 33 9.5 61.5t3.5 54.5q0 91 -44 134t-138 43q-49 0 -98 -11t-97 -31q-28 -12 -45 -23t-32 -26q-41 -40 -72 -108.5t-48 -154.5l-78 -401h-203z" />
-<glyph unicode="&#x40c;" d="M1004 1852h208l-307 -264h-160zM366 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
-<glyph unicode="&#x40d;" d="M556 1852h182l147 -264h-139zM285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
-<glyph unicode="&#x40e;" d="M814 1613q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM92 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068 q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
-<glyph unicode="&#x40f;" d="M397 0h-394l290 1493h203l-257 -1323h553l257 1323h203l-290 -1493h-394l-62 -322h-171z" />
-<glyph unicode="&#x410;" d="M644 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM806 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x411;" d="M311 1493h902l-32 -166h-699l-88 -450h235q185 -8 295.5 -57.5t144.5 -148.5q9 -26 13.5 -58.5t4.5 -70.5q0 -54 -11 -114.5t-36 -119.5t-64.5 -112t-96.5 -92q-75 -52 -180.5 -78t-235.5 -26h-442zM495 166q88 0 153 15t110 46.5t72.5 81.5t41.5 121q9 45 9 83 q0 105 -68.5 152.5t-211.5 47.5h-239l-106 -547h239z" />
-<glyph unicode="&#x412;" d="M313 1493h443q204 0 307.5 -79t103.5 -236q0 -76 -24 -141t-68 -114.5t-107 -81.5t-141 -42q136 -27 197 -108t61 -209q0 -110 -41 -199t-119 -152t-191.5 -97t-258.5 -34h-452zM639 877q75 0 135 18.5t102 54t64.5 85.5t22.5 113q0 94 -55.5 136.5t-180.5 42.5h-244 l-88 -450h244zM506 166q92 0 162.5 22.5t118.5 65t73 103t25 135.5q0 116 -65 168.5t-214 52.5h-241l-107 -547h248z" />
-<glyph unicode="&#x413;" d="M380 1493h924l-33 -170h-721l-257 -1323h-203z" />
-<glyph unicode="&#x414;" d="M974 170h121l-95 -492h-170l62 322h-827l-62 -322h-170l95 492h77q47 0 140 294q21 68 41.5 140.5t39.5 145t35 143t28 134.5l90 466h852zM995 1323h-446l-57 -297q-20 -107 -55.5 -245.5t-80.5 -296.5q-43 -148 -68 -226.5t-25 -69.5q0 -18 43 -18h465z" />
-<glyph unicode="&#x415;" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x416;" d="M360 891l-170 602h207l168 -595l116 595h187l-116 -595l400 595h207l-404 -602l131 -891h-197l-96 650l-125 -186l-90 -464h-187l90 464l-53 186l-348 -650h-197z" />
-<glyph unicode="&#x417;" d="M412 -29q-95 0 -199 18t-201 56l38 201q91 -52 185.5 -78.5t190.5 -26.5q93 0 168.5 24.5t129 69t82.5 106.5t29 137q0 117 -71 177t-210 60h-153l32 166h154q79 0 142.5 19.5t108.5 55.5t69 86.5t24 113.5q0 100 -61.5 147t-189.5 47q-84 0 -180 -20t-210 -60l37 186 q124 33 220.5 48.5t175.5 15.5q96 0 172 -22t128.5 -64.5t80.5 -105t28 -142.5q0 -74 -23.5 -137.5t-67.5 -114t-107 -85t-142 -50.5q112 -21 177 -100t65 -219q0 -113 -44 -206.5t-125 -161t-196 -104.5t-257 -37z" />
-<glyph unicode="&#x418;" d="M285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
-<glyph unicode="&#x419;" d="M795 1608q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
-<glyph unicode="&#x41a;" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
-<glyph unicode="&#x41b;" d="M-74 164q47 0 82 6t61 21.5t45 41.5t35.5 65t31.5 93t34 126q11 43 23 94.5t26 117.5t30.5 149t37.5 189l83 426h814l-290 -1493h-203l257 1323h-408l-49 -250q-33 -165 -61.5 -312t-62 -269t-78 -216.5t-108.5 -155.5q-32 -30 -63 -52.5t-69 -37.5t-86 -22.5t-114 -7.5z " />
-<glyph unicode="&#x41c;" d="M237 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
-<glyph unicode="&#x41d;" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
-<glyph unicode="&#x41e;" d="M490 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM507 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x41f;" d="M283 1493h959l-290 -1493h-203l257 1323h-553l-257 -1323h-203z" />
-<glyph unicode="&#x420;" d="M342 1493h440q205 0 313.5 -91t108.5 -280q0 -117 -41.5 -213t-119 -165t-188.5 -106.5t-251 -37.5h-233l-117 -600h-203zM637 766q82 0 149 25t114.5 70.5t73 109t25.5 139.5q0 112 -61 164.5t-193 52.5h-233l-109 -561h234z" />
-<glyph unicode="&#x421;" d="M178 915q33 100 80 189.5t103 161.5q101 127 233 190.5t290 63.5q54 0 97 -7h3q13 0 13 14v300q0 10 10 10h187q10 0 10 -10v-390l-41 -206q-127 125 -287 125q-189 0 -327 -164q-50 -60 -93 -140.5t-73 -171.5q-31 -92 -48 -187.5t-17 -184.5q0 -188 76.5 -280.5 t223.5 -92.5q87 0 178 32t179 93l-39 -207q-165 -82 -346 -82q-234 0 -356 131q-127 136 -127 397q0 101 18.5 207.5t52.5 208.5z" />
-<glyph unicode="&#x422;" d="M659 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
-<glyph unicode="&#x423;" d="M92 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
-<glyph unicode="&#x424;" d="M406 152q-68 4 -117.5 14t-84.5 27.5t-58 43t-39 60.5q-12 26 -21.5 57.5t-16.5 66t-10.5 70t-3.5 68.5q0 43 5.5 95.5t15.5 107.5q24 133 68 243.5t113 191t164.5 126t221.5 48.5l24 122h203l-24 -122q88 -3 148.5 -22.5t100 -50t61 -69t31.5 -79.5t11.5 -82.5 t1.5 -77.5q0 -107 -23 -228q-25 -132 -67.5 -242t-110 -190.5t-163.5 -127t-227 -50.5l-29 -152h-203zM612 1207q-87 -14 -141.5 -49t-88.5 -89t-53.5 -124.5t-35.5 -154.5q-11 -57 -17.5 -94.5t-10 -63.5t-4.5 -44.5t-2 -36.5q-1 -16 -1.5 -31t-0.5 -29q0 -31 6 -58.5 t25 -50t54.5 -39.5t95.5 -27zM641 316q76 10 130 43t91.5 87t61 126.5t39.5 160.5q8 43 13.5 82.5t9 71t5.5 54t3 32.5q1 14 1.5 27.5t0.5 25.5q0 37 -7.5 66.5t-27.5 52t-55.5 38t-90.5 24.5z" />
-<glyph unicode="&#x425;" d="M530 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
-<glyph unicode="&#x426;" d="M889 0h-923l290 1493h203l-257 -1323h553l257 1323h203l-257 -1323h134l-95 -492h-170z" />
-<glyph unicode="&#x427;" d="M872 658q-59 -27 -107 -43t-91 -24.5t-82 -11t-80 -2.5q-67 0 -115 5t-82.5 16.5t-59 30t-44.5 46.5q-22 31 -33 66.5t-11 88.5q0 30 3.5 71t11.5 79l100 513h203l-95 -487q-6 -32 -9 -63t-3 -54q0 -40 8 -57.5t20 -28.5q26 -24 69 -32t118 -8q46 0 83.5 3t73.5 13.5 t74.5 30t86.5 51.5l123 632h203l-290 -1493h-203z" />
-<glyph unicode="&#x428;" d="M267 1493h186l-257 -1323h224l257 1323h186l-257 -1323h224l257 1323h186l-290 -1493h-1006z" />
-<glyph unicode="&#x429;" d="M943 0h-970l290 1493h186l-257 -1323h224l257 1323h186l-257 -1323h224l257 1323h186l-257 -1323h134l-95 -492h-170z" />
-<glyph unicode="&#x42a;" d="M414 1323h-261l33 170h463l-117 -600h138q218 0 326 -84.5t108 -245.5q0 -54 -12 -117q-22 -112 -72 -196t-125.5 -139.5t-175.5 -83t-222 -27.5h-340zM529 166q142 0 234 73t118 207q7 35 7 70q0 101 -64.5 156t-185.5 55h-138l-109 -561h138z" />
-<glyph unicode="&#x42b;" d="M211 1493h202l-117 -600h91q87 0 156.5 -22t118 -65t75 -105.5t26.5 -143.5q0 -26 -2.5 -54t-8.5 -57q-22 -111 -73 -194.5t-123 -139.5t-159.5 -84t-182.5 -28h-293zM1077 1493h203l-290 -1493h-203zM246 166q52 0 99 16t86 50.5t67.5 87t42.5 126.5q9 46 9 87 q0 93 -48.5 143.5t-146.5 50.5h-91l-109 -561h91z" />
-<glyph unicode="&#x42c;" d="M342 1493h202l-117 -600h234q218 0 326 -84.5t108 -245.5q0 -54 -12 -117q-22 -112 -72 -196t-125.5 -139.5t-175.5 -83t-222 -27.5h-436zM520 166q142 0 234 73t118 207q7 35 7 70q0 101 -64.5 156t-185.5 55h-234l-109 -561h234z" />
-<glyph unicode="&#x42d;" d="M336 -29q-178 0 -315 82l41 207q63 -63 142.5 -94t165.5 -31q99 0 179 39.5t141.5 110t104.5 166.5t68 210h-632l33 170h627q4 48 6 98.5t2 88.5q0 39 -3.5 79.5t-14 78t-29.5 70.5t-50.5 57.5t-77.5 38.5t-110 14q-186 0 -364 -125l41 207q168 82 348 82q94 0 166 -21 t125.5 -58t89 -87t57.5 -108.5t31 -122t9 -127.5q0 -116 -27 -252q-36 -184 -105 -328t-165.5 -243t-218.5 -150.5t-265 -51.5z" />
-<glyph unicode="&#x42e;" d="M661 -29q-150 0 -219.5 103.5t-69.5 297.5q0 65 7 138t21 156h-111l-130 -666h-203l291 1493h203l-128 -657h111q36 159 85.5 285.5t114.5 215t146.5 136t183.5 47.5q106 0 171.5 -50t93.5 -142q13 -43 19 -97.5t6 -117.5q0 -77 -8.5 -162.5t-24.5 -173.5t-38.5 -175.5 t-50.5 -167.5t-60.5 -149.5t-68.5 -121.5q-63 -91 -148.5 -141.5t-192.5 -50.5zM695 135q54 0 101 36t82 105q22 43 44.5 107.5t43 141t38.5 160.5t31.5 166.5t21 157.5t7.5 135q0 20 -1 38t-3 33q-8 66 -39.5 103.5t-88.5 37.5q-51 0 -97 -34t-84 -107q-23 -45 -46 -111 t-44 -143.5t-38.5 -161t-30.5 -165t-20.5 -156t-7.5 -132.5q0 -20 1 -37.5t3 -32.5q8 -66 39.5 -103.5t87.5 -37.5z" />
-<glyph unicode="&#x42f;" d="M399 666q-100 39 -160 114t-60 179q0 41 11 102q20 106 69.5 186.5t125.5 135t176 82.5t221 28h466l-290 -1493h-203l123 631h-290l-473 -631h-214zM910 797l103 530h-263q-145 0 -233.5 -68t-113.5 -198q-4 -20 -6 -39t-2 -37q0 -188 244 -188h271z" />
-<glyph unicode="&#x430;" d="M404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5 t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
-<glyph unicode="&#x431;" d="M504 -29q-116 0 -190.5 34.5t-117.5 90.5t-60 127.5t-17 145.5q0 38 4 79.5t12 79.5q10 46 14 67t5 26l25 167q12 79 25.5 143t29.5 117t35.5 97t43.5 83q47 77 107 132t126.5 92.5t136 60t136.5 35t127.5 17.5t108.5 8q13 1 24 2t21 2.5t20.5 5t23.5 8.5l43 -142 q-23 -8 -45 -12t-45 -6l-244 -24q-50 -5 -91.5 -16.5t-91.5 -36.5q-109 -54 -177 -124.5t-93 -145.5l-20 -60q71 61 162.5 92t197.5 31q114 0 188 -33.5t116.5 -89t59.5 -126t17 -144.5q0 -48 -5.5 -98t-14.5 -98q-27 -141 -79 -250.5t-127.5 -184t-173.5 -113.5t-217 -39z M534 127q68 0 127.5 26.5t107.5 80t83 134.5t55 191q9 49 13.5 97.5t4.5 83.5q0 121 -54 186t-164 65q-137 0 -234.5 -108t-136.5 -324q-8 -46 -13 -93.5t-5 -85.5q0 -42 8 -87t31.5 -81.5t66 -60.5t110.5 -24z" />
-<glyph unicode="&#x432;" d="M338 1120h397q85 0 146 -19t100.5 -49.5t58 -70t18.5 -80.5q0 -12 -1.5 -24t-3.5 -24q-20 -112 -83 -176t-160 -77q65 -13 103.5 -34t59 -47t26.5 -56.5t6 -63.5q0 -102 -37.5 -177t-102 -124.5t-150.5 -73.5t-182 -24h-413zM661 665q42 0 79 13t64.5 36.5t43.5 57.5 t16 76q0 23 -6 45t-22 39t-44 27.5t-72 10.5h-227l-60 -305h228zM572 150q34 0 68.5 9t65 28.5t54.5 51t38 76.5q12 40 12 74q0 26 -7 48t-21 39q-7 8 -17 15t-25.5 12.5t-38 8.5t-54.5 3h-243l-71 -365h239z" />
-<glyph unicode="&#x433;" d="M394 1120h752l-29 -150h-568l-189 -970h-184z" />
-<glyph unicode="&#x434;" d="M44 150h67q18 0 38 32.5t39.5 83.5t38 114t34 124.5t27.5 114.5t18 85l81 416h748l-189 -970h121l-85 -436h-150l56 286h-723l-56 -286h-150zM761 150l159 820h-380l-52 -270q-2 -10 -9.5 -42t-18.5 -79t-26 -105t-32 -121q-8 -31 -16.5 -60t-15 -51.5t-11.5 -36.5 t-6 -14q-12 -20 -12 -29q0 -12 32 -12h388z" />
-<glyph unicode="&#x435;" d="M556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183 q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
-<glyph unicode="&#x436;" d="M348 716l-160 404h199l171 -432l84 432h168l-84 -432l339 432h199l-318 -404l120 -716h-179l-88 528l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179z" />
-<glyph unicode="&#x437;" d="M426 -22q-94 0 -181.5 14t-178.5 42l34 173q69 -34 156.5 -51.5t185.5 -17.5q95 0 169 16t125 46t77.5 71.5t26.5 92.5q0 76 -72 122t-212 46h-158l28 144h165q69 0 123 11.5t92.5 31.5t62 47t31.5 58q4 13 4 28q0 59 -66.5 95.5t-197.5 36.5q-71 0 -160 -12.5 t-198 -39.5l32 167q220 48 376 48q94 0 169 -16.5t127 -47.5t80 -76t28 -102q0 -22 -5 -50q-20 -97 -97 -160t-200 -88q112 -21 171.5 -78.5t59.5 -149.5q0 -12 -1.5 -25t-3.5 -27q-13 -77 -59 -141.5t-121.5 -110.5t-179 -71.5t-232.5 -25.5z" />
-<glyph unicode="&#x438;" d="M304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
-<glyph unicode="&#x439;" d="M747 1261q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
-<glyph unicode="&#x43a;" d="M325 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
-<glyph unicode="&#x43b;" d="M-39 150h35q46 0 81.5 14t63.5 45t50.5 80t43.5 119q12 39 22.5 81.5t19.5 84t16.5 79.5t13.5 69l78 398h785l-218 -1120h-184l189 970h-417l-48 -245q-15 -76 -33 -161.5t-44.5 -168.5t-63.5 -158.5t-88 -130.5q-25 -27 -52.5 -46.5t-60.5 -33t-73 -20t-90 -6.5h-55z " />
-<glyph unicode="&#x43c;" d="M169 1120h184l241 -691l509 691h184l-218 -1120h-184l144 741l-376 -481h-184l-190 481l-144 -741h-184z" />
-<glyph unicode="&#x43d;" d="M304 1120h184l-89 -455h487l89 455h184l-218 -1120h-184l100 515h-487l-100 -515h-184z" />
-<glyph unicode="&#x43e;" d="M514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99 t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x43f;" d="M304 1120h855l-218 -1120h-184l189 970h-487l-189 -970h-184z" />
-<glyph unicode="&#x440;" d="M299 1120h164l-8 -143q63 84 148 127t188 43q80 0 142.5 -26.5t106 -78t66 -127t22.5 -173.5q0 -66 -10 -136.5t-29.5 -140t-47 -134.5t-62.5 -120q-72 -115 -173.5 -177.5t-227.5 -62.5q-100 0 -170 41.5t-115 128.5l-111 -567h-184zM568 127q86 0 149.5 44t111.5 131 q24 45 43.5 98t33 109t21 112.5t7.5 108.5q0 134 -50.5 197.5t-154.5 63.5q-92 0 -157 -47t-113 -132q-24 -44 -43.5 -95.5t-33 -106t-21 -109t-7.5 -104.5q0 -139 55.5 -204.5t158.5 -65.5z" />
-<glyph unicode="&#x441;" d="M189 705q54 145 145 245q88 97 202 147t249 50q70 0 134 -13h4q12 0 12 13v254q0 10 10 10h162q10 0 10 -10v-340l-37 -182q-66 58 -136 85t-156 27q-113 0 -195.5 -44.5t-143.5 -133.5q-57 -85 -87 -187q-32 -104 -32 -208q0 -149 68 -220t209 -71q185 0 352 125 l-39 -201q-149 -80 -334 -80q-222 0 -336 112t-114 331q0 148 53 291z" />
-<glyph unicode="&#x442;" d="M607 970h-311l29 150h806l-29 -150h-311l-189 -970h-184z" />
-<glyph unicode="&#x443;" d="M20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
-<glyph unicode="&#x444;" d="M405 -29q-108 11 -173.5 44.5t-100.5 81.5t-46.5 105.5t-11.5 116.5q0 39 4 91.5t13.5 112.5t25 124t38.5 126t54.5 118.5t73.5 100.5q123 132 351 155l80 409h184l-80 -409q109 -11 174.5 -44.5t101 -81t46.5 -104t11 -113.5q0 -38 -4 -90.5t-13 -112.5t-25 -125 t-39 -128t-55 -120t-74 -101q-61 -65 -149 -105t-202 -51l-78 -397h-184zM601 982q-68 -14 -116 -38.5t-81.5 -66.5t-57 -106t-43.5 -158q-17 -82 -27 -157t-10 -126q0 -33 6 -64.5t24 -58.5t51.5 -48t87.5 -32zM619 127q66 14 113.5 38.5t82 67.5t58.5 109t45 163 q20 93 28.5 165.5t8.5 115.5q0 33 -6 63.5t-24.5 56t-52 45.5t-87.5 31z" />
-<glyph unicode="&#x445;" d="M515 596l-293 524h196l217 -395l369 395h225l-512 -547l318 -573h-197l-244 444l-417 -444h-226z" />
-<glyph unicode="&#x446;" d="M887 0h-844l218 1120h184l-189 -970h486l189 970h184l-189 -970h140l-85 -436h-150z" />
-<glyph unicode="&#x447;" d="M811 466q-8 -3 -35.5 -13.5t-69.5 -21.5t-96.5 -20t-117.5 -9q-85 0 -144 18t-95.5 50.5t-53 77.5t-16.5 99q0 49 12 108l71 367h184l-71 -367q-6 -30 -6 -56q0 -78 52 -107.5t162 -29.5q60 0 121.5 11t132.5 48l97 501h184l-218 -1122h-184z" />
-<glyph unicode="&#x448;" d="M234 1120h168l-189 -970h240l189 970h168l-189 -970h240l189 970h168l-218 -1120h-984z" />
-<glyph unicode="&#x449;" d="M977 0h-978l218 1120h168l-189 -970h240l189 970h168l-189 -970h240l189 970h168l-189 -970h144l-85 -436h-150z" />
-<glyph unicode="&#x44a;" d="M358 970h-248l29 150h432l-88 -453h256q114 0 189 -21.5t119.5 -59t62 -87.5t17.5 -107q0 -30 -6 -69t-24 -81t-52 -83.5t-90 -76.5q-131 -82 -346 -82h-440zM631 153q259 0 293 181q2 11 3 21.5t1 18.5q0 140 -227 140h-248l-70 -361h248z" />
-<glyph unicode="&#x44b;" d="M213 1120h182l-88 -453h91q105 0 178.5 -20t120 -54.5t68 -82t21.5 -102.5q0 -19 -2 -37.5t-6 -38.5q-32 -168 -164 -250t-346 -82h-273zM1054 1120h184l-218 -1120h-184zM290 153q259 0 293 181q2 11 3 21.5t1 18.5q0 140 -227 140h-83l-70 -361h83z" />
-<glyph unicode="&#x44c;" d="M335 1120h184l-88 -453h256q186 0 287 -65t101 -196q0 -17 -1.5 -35.5t-5.5 -38.5q-31 -164 -160.5 -248t-349.5 -84h-440zM579 153q129 0 201.5 43.5t90.5 135.5q2 11 3.5 21.5t1.5 21.5q0 74 -60 106.5t-166 32.5h-248l-71 -361h248z" />
-<glyph unicode="&#x44d;" d="M421 -29q-92 0 -164.5 21.5t-139.5 64.5l38 191q103 -121 283 -121q88 0 159 27t126 77.5t93.5 122.5t61.5 162h-542l28 144h537q1 10 1 19v18q0 55 -13 108t-46 94.5t-88.5 66.5t-140.5 25q-91 0 -174.5 -30.5t-164.5 -92.5l38 193q42 21 82.5 37t82 27t84.5 16.5 t90 5.5q124 0 209.5 -36t138 -95.5t75.5 -136.5t23 -158q0 -38 -4.5 -78t-12.5 -84q-27 -139 -86.5 -248.5t-145.5 -185t-194.5 -115t-233.5 -39.5z" />
-<glyph unicode="&#x44e;" d="M700 -29q-75 0 -129 32.5t-89.5 86.5t-52 124.5t-16.5 147.5q0 29 2 59.5t6 62.5h-142l-94 -484h-184l218 1120h184l-94 -486h142q33 128 83.5 224.5t113 160.5t135 96t149.5 32q76 0 131 -29t90.5 -80t52.5 -120t17 -149q0 -34 -3.5 -82.5t-13 -105.5t-25.5 -119 t-41 -123.5t-60 -119.5t-82 -107q-66 -68 -142.5 -104.5t-155.5 -36.5zM731 127q43 0 84 30.5t77 88.5t65.5 141t50.5 188q21 103 21 179q0 38 -6 79.5t-20.5 76.5t-38 57.5t-59.5 22.5q-39 0 -79.5 -30t-78 -86t-68.5 -137.5t-52 -183.5q-11 -56 -16 -102.5t-5 -85.5 q0 -32 4 -73.5t17.5 -78t38 -61.5t65.5 -25z" />
-<glyph unicode="&#x44f;" d="M429 479q-25 12 -55 31t-55.5 47t-43 65.5t-17.5 85.5q0 17 2.5 40.5t7.5 49.5q18 86 60 147t100.5 100t129 57t143.5 18h397l-218 -1120h-184l89 455h-193l-347 -455h-181zM814 605l71 365h-227q-29 0 -61.5 -11t-61.5 -33.5t-51.5 -57t-31.5 -81.5q-2 -14 -3.5 -26 t-1.5 -23q0 -30 11.5 -54.5t31 -42t44.5 -27t52 -9.5h228z" />
-<glyph unicode="&#x450;" d="M453 1675h198l197 -376h-143zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73 q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
-<glyph unicode="&#x451;" d="M494 1349q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM885 1349q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM556 -29q-227 0 -342.5 111t-115.5 325 q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5z M938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
-<glyph unicode="&#x452;" d="M480 -261q64 10 127.5 55t118.5 119.5t97.5 177.5t64.5 231q5 30 8.5 60t3.5 56q0 91 -44.5 134t-138.5 43q-141 0 -227.5 -92.5t-119.5 -261.5l-51 -261h-184l190 977h-190l28 143h190l85 436h184l-85 -436h448l-28 -143h-448l-77 -397q66 95 160.5 145t215.5 50 q146 0 218 -73t72 -214q0 -35 -4 -79t-12 -87q-25 -146 -79.5 -273.5t-135 -226t-186 -163t-233.5 -85.5z" />
-<glyph unicode="&#x453;" d="M982 1646h219l-395 -376h-156zM380 1120h752l-29 -150h-568l-189 -970h-184z" />
-<glyph unicode="&#x454;" d="M586 -29q-104 0 -187 28t-140.5 82.5t-88.5 134.5t-31 184q0 76 16 159q27 141 87.5 250.5t146.5 184.5t194.5 114t233.5 39q82 0 154.5 -19t147.5 -67l-38 -193q-61 67 -130 95t-155 28q-91 0 -160 -27t-119.5 -72.5t-85 -105.5t-56.5 -127l537 1l-28 -144h-542 q-4 -25 -5.5 -48.5t-1.5 -46.5q0 -68 17 -122t53 -92.5t91.5 -59t132.5 -20.5q90 0 172.5 29t159.5 92l-38 -191q-83 -43 -164 -64.5t-173 -21.5z" />
-<glyph unicode="&#x455;" d="M476 -29q-87 0 -174 17.5t-187 52.5l37 190q187 -106 353 -106q67 0 122.5 16t95.5 43.5t62 64t22 76.5q0 114 -196 162l-28 7l-67 18q-128 34 -189 96t-61 170q0 84 34 152t97.5 116.5t154 74.5t202.5 26q177 0 323 -66l-35 -180q-72 45 -149 68.5t-162 23.5 q-66 0 -118.5 -14t-89 -38.5t-55.5 -58t-19 -72.5q0 -29 11.5 -52t37.5 -43t68 -37t104 -33q16 -5 22 -6l72 -18q120 -30 176.5 -93t56.5 -163q0 -84 -37.5 -156t-106 -125t-164.5 -83t-213 -30z" />
-<glyph unicode="&#x456;" d="M627 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM749 -8q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 572h-246l29 144h430l-162 -720q-4 -16 -6.5 -35t-3.5 -27 q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#x457;" d="M360 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM751 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM749 -8q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 572h-246l29 144h430l-162 -720q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#x458;" d="M823 1556h184l-45 -233h-184zM55 -270h233q97 0 151 60.5t79 189.5l192 997h-317l28 143h502l-221 -1140q-21 -107 -56 -183.5t-86.5 -126t-121.5 -73t-160 -23.5h-254z" />
-<glyph unicode="&#x459;" d="M-71 150h35q46 0 81.5 14t63.5 45t50.5 80t43.5 119q12 39 22.5 81.5t19.5 84t16.5 79.5t13.5 69l78 398h565l-88 -453h21q82 0 145.5 -19.5t107 -55.5t65.5 -87.5t22 -115.5q0 -25 -5.5 -62.5t-23.5 -79.5t-52.5 -85t-92.5 -80q-65 -42 -140.5 -62t-155.5 -20h-189 l189 970h-229l-48 -245q-15 -76 -33.5 -161.5t-45 -169t-63 -159t-87.5 -130.5q-24 -26 -51.5 -46t-60.5 -33t-73.5 -19.5t-90.5 -6.5h-39zM743 153q208 0 228 104q10 52 15 82.5t5 50.5q0 58 -44 91t-134 33h-13l-70 -361h13z" />
-<glyph unicode="&#x45a;" d="M217 1120h168l-89 -455h364l89 455h168l-88 -453h21q83 0 146.5 -19.5t106 -56t64.5 -88t22 -115.5q0 -25 -5.5 -62t-23.5 -79t-52 -85t-92 -80q-65 -42 -140.5 -62t-155.5 -20h-189l100 515h-364l-100 -515h-168zM742 153q103 0 164.5 44t78.5 137q2 13 3.5 24.5 t1.5 23.5q0 132 -178 132h-13l-70 -361h13z" />
-<glyph unicode="&#x45b;" d="M305 977h-190l27 143h190l85 436h184l-85 -436h448l-27 -143h-448l-77 -397q136 195 368 195q139 0 205.5 -71t66.5 -216q0 -41 -5 -80.5t-14 -85.5l-62 -322h-185l62 322q13 65 13 112q0 181 -175 181q-131 0 -217 -91.5t-119 -262.5l-51 -261h-184z" />
-<glyph unicode="&#x45c;" d="M948 1646h219l-395 -376h-156zM328 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
-<glyph unicode="&#x45d;" d="M487 1646h198l197 -376h-143zM304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
-<glyph unicode="&#x45e;" d="M777 1261q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205 l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
-<glyph unicode="&#x45f;" d="M446 0h-352l218 1120h184l-189 -970h487l189 970h184l-218 -1120h-352l-56 -286h-151z" />
-<glyph unicode="&#x462;" d="M363 1105h-261l32 164h261l43 224h202l-43 -224h369l-32 -164h-369l-42 -212h138q218 0 326 -84.5t108 -245.5q0 -54 -12 -117q-22 -112 -72 -196t-125.5 -139.5t-175.5 -83t-222 -27.5h-340zM520 166q69 0 127.5 18.5t104 54t76.5 87.5t44 120q7 34 7 69 q0 103 -65 157.5t-185 54.5h-138l-109 -561h138z" />
-<glyph unicode="&#x463;" d="M353 973h-248l29 147h248l84 436h184l-84 -436h425l-29 -147h-425l-59 -306h256q186 0 287 -65t101 -196q0 -17 -1.5 -35.5t-5.5 -38.5q-32 -166 -164 -249t-347 -83h-440zM626 156q128 0 202 45t91 133q2 10 3 19t1 18q0 72 -59 107.5t-168 35.5h-248l-70 -358h248z" />
-<glyph unicode="&#x472;" d="M465 -29q-191 0 -287.5 110.5t-96.5 339.5q0 139 36 324q75 385 234 580t416 195q196 0 290.5 -113t94.5 -339q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM920 828q12 73 18.5 135t6.5 115q0 140 -49 209t-161 69q-77 0 -136 -33t-105.5 -99t-82.5 -165t-66 -231 h575zM498 135q76 0 135.5 32.5t105.5 96.5t81 159t64 221h-574q-11 -66 -16.5 -124t-5.5 -108q0 -135 48 -206t162 -71z" />
-<glyph unicode="&#x473;" d="M502 -29q-192 0 -289 100.5t-97 292.5q0 88 21 195q28 143 79 251.5t129 185.5q80 79 176 115t208 36q193 0 290.5 -100t97.5 -294q0 -88 -21 -194q-56 -286 -207.5 -437t-386.5 -151zM910 611q5 32 7.5 62t2.5 58q0 122 -52.5 191t-167.5 69q-70 0 -126.5 -26.5 t-101 -75.5t-76.5 -119.5t-53 -158.5h567zM532 127q70 0 125 25t96 68.5t70.5 102t49.5 124.5h-557q-3 -32 -3 -60q0 -56 11 -103.5t36.5 -82t67.5 -54.5t104 -20z" />
-<glyph unicode="&#x490;" d="M390 1493h754l63 306h167l-93 -476h-721l-257 -1323h-203z" />
-<glyph unicode="&#x491;" d="M395 1120h568l61 314h185l-98 -498h-568l-182 -936h-184z" />
-<glyph unicode="&#x492;" d="M254 830h-130l33 170h130l96 493h924l-33 -170h-721l-63 -323h547l-33 -170h-547l-161 -830h-203z" />
-<glyph unicode="&#x493;" d="M293 500h-130l33 170h130l88 450h752l-36 -184h-568l-52 -266h416l-33 -170h-416l-97 -500h-184z" />
-<glyph unicode="&#x494;" d="M402 -240h62q65 0 115 16.5t87.5 56.5t64 106t45.5 165l56 290q12 63 12 114q0 203 -198 203h-270l-138 -711h-203l290 1493h924l-33 -170h-721l-86 -442h311q94 0 163.5 -30.5t112.5 -88.5q59 -80 59 -205q0 -68 -16 -147l-60 -306q-27 -137 -71.5 -234t-110 -159.5 t-153 -91.5t-199.5 -29h-76z" />
-<glyph unicode="&#x495;" d="M378 -270h172q57 0 95 12t63 41t41 77t30 120l52 264q8 42 12.5 74t4.5 58q0 38 -11 60t-34 33.5t-59 14.5t-87 3h-260l-95 -487h-184l218 1120h752l-36 -184h-568l-59 -305h250q102 0 171 -10t111.5 -34t61 -64t18.5 -100q0 -36 -5.5 -79t-15.5 -94l-53 -270 q-21 -110 -57 -187t-87.5 -125.5t-121 -71t-157.5 -22.5h-193z" />
-<glyph unicode="&#x496;" d="M903 0h-27l-96 650l-125 -186l-90 -464h-187l90 464l-53 186l-348 -650h-197l477 891l-170 602h207l169 -595l115 595h187l-115 -595l399 595h207l-404 -602l106 -721h58l-96 -492h-170z" />
-<glyph unicode="&#x497;" d="M939 0h-52l-88 528l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179l398 716l-160 404h199l171 -432l84 432h168l-84 -432l339 432h199l-318 -404l95 -566h77l-85 -436h-150z" />
-<glyph unicode="&#x498;" d="M762 799q112 -21 177 -100t65 -219q0 -101 -35.5 -187t-101.5 -151.5t-160 -108t-212 -56.5q32 -57 45.5 -97.5t13.5 -77.5q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5 q0 26 -10.5 58t-32.5 75q-94 0 -196.5 18t-199.5 56l38 201q91 -52 185.5 -78.5t190.5 -26.5q93 0 168.5 24.5t129 69t82.5 106.5t29 137q0 117 -71 177t-210 60h-153l32 166h154q79 0 142.5 19.5t108.5 55.5t69 86.5t24 113.5q0 100 -61.5 147t-189.5 47q-84 0 -180 -20 t-210 -60l37 186q124 33 220.5 48.5t175.5 15.5q96 0 172 -22t128.5 -64.5t80.5 -105t28 -142.5q0 -74 -23.5 -137.5t-67.5 -114t-107 -85t-142 -50.5z" />
-<glyph unicode="&#x499;" d="M1089 855q-20 -97 -97 -160t-200 -88q112 -21 171.5 -78.5t59.5 -149.5q0 -12 -1.5 -25t-3.5 -27q-12 -72 -52.5 -132.5t-106.5 -105.5t-157 -73.5t-203 -35.5q32 -58 46.5 -99t14.5 -79q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5q-43 0 -89.5 7.5t-94.5 22.5 l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 27 -11.5 61t-35.5 80q-81 3 -157.5 17t-156.5 38l34 173q69 -34 156.5 -51.5t185.5 -17.5q95 0 169 16t125 46t77.5 71.5t26.5 92.5q0 76 -72 122t-212 46h-158l28 144h165q69 0 123 11.5t92.5 31.5t62 47 t31.5 58q4 13 4 28q0 59 -66.5 95.5t-197.5 36.5q-71 0 -160 -12.5t-198 -39.5l32 167q220 48 376 48q94 0 169 -16.5t127 -47.5t80 -76t28 -102q0 -22 -5 -50z" />
-<glyph unicode="&#x49a;" d="M868 0h-41l-342 748l-186 -164l-113 -584h-203l290 1493h203l-129 -664l760 664h237l-699 -610l343 -713h116l-93 -482h-203z" />
-<glyph unicode="&#x49b;" d="M885 0h-42l-302 578l-162 -129l-87 -449h-190l218 1120h190l-91 -465l574 465h224l-523 -422l276 -514h134l-90 -460h-183z" />
-<glyph unicode="&#x4a2;" d="M940 0h-202l139 711h-555l-137 -711h-203l291 1493h202l-118 -612h553l118 612h203l-258 -1323h203l-94 -482h-203z" />
-<glyph unicode="&#x4a3;" d="M931 0h-184l98 505h-487l-98 -505h-184l218 1120h184l-87 -445h487l87 445h184l-182 -936h183l-90 -460h-182z" />
-<glyph unicode="&#x4a4;" d="M314 1493h186l-119 -612h364l119 612h546l-33 -170h-360l-257 -1323h-186l138 711h-364l-138 -711h-186z" />
-<glyph unicode="&#x4a5;" d="M265 1120h168l-89 -455h410l89 455h496l-29 -150h-328l-189 -970h-168l100 515h-410l-100 -515h-168z" />
-<glyph unicode="&#x4aa;" d="M866 1356q-97 0 -178 -41.5t-149 -122.5q-51 -61 -93.5 -141.5t-73 -171t-47.5 -186t-17 -185.5q0 -191 77.5 -282t222.5 -91q88 0 178.5 32t178.5 93l-39 -207q-134 -66 -275 -79q31 -56 44.5 -95.5t13.5 -76.5q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5 q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 50 -44 134q-208 13 -321.5 144.5t-113.5 382.5q0 102 18.5 208.5t52 207t80.5 190.5t103 161q102 128 234.5 191t288.5 63q86 0 162.5 -20t157.5 -62l-41 -207q-126 125 -287 125z " />
-<glyph unicode="&#x4ab;" d="M790 991q-115 0 -197 -45.5t-142 -132.5q-28 -41 -50 -88.5t-37.5 -98.5t-23.5 -104t-8 -104q0 -149 68.5 -220t208.5 -71q92 0 180 31t172 94l-39 -201q-60 -32 -126 -51.5t-140 -25.5q30 -56 43.5 -96t13.5 -76q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5 q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 50 -44 135q-195 13 -296.5 124t-101.5 317q0 75 13.5 148.5t39 142.5t62 131t83.5 114q88 97 202 147t249 50q174 0 332 -86l-37 -182q-66 58 -136 85t-156 27z" />
-<glyph unicode="&#x4ac;" d="M575 0h-204l258 1323h-469l33 170h1140l-33 -170h-469l-223 -1153h203l-94 -482h-203z" />
-<glyph unicode="&#x4ad;" d="M591 0h-184l183 942h-311l35 178h806l-35 -178h-311l-147 -758h183l-90 -460h-182z" />
-<glyph unicode="&#x4ae;" d="M508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#x4af;" d="M401 18l-214 1102h195l159 -876l499 876h195l-642 -1102l-86 -444h-192z" />
-<glyph unicode="&#x4b0;" d="M464 420h-264l33 170h264l15 80l-317 823h215l236 -659l491 659h217l-639 -823l-15 -80h266l-33 -170h-266l-82 -420h-203z" />
-<glyph unicode="&#x4b1;" d="M361 -185h-200l29 150h200l10 53l-213 1102h195l158 -876l500 876h195l-643 -1102l-10 -53h200l-29 -150h-200l-47 -241h-192z" />
-<glyph unicode="&#x4b2;" d="M867 0h-14l-241 643l-520 -643h-218l654 791l-296 702h217l219 -563l443 563h217l-583 -702l255 -621h103l-93 -482h-203z" />
-<glyph unicode="&#x4b3;" d="M866 0h-30l-241 449l-414 -449h-213l554 584l-297 536h204l218 -405l374 405h207l-505 -536l223 -400h139l-90 -460h-183z" />
-<glyph unicode="&#x4ba;" d="M313 1495h203l-132 -683q22 20 45 35.5t53 30.5l52 26q20 10 46.5 18t56.5 14t61 10t59 5l48 2q158 0 232 -84q7 -8 12 -16t8 -13q17 -31 26.5 -74t9.5 -98q0 -74 -18 -168l-97 -500h-203l92 474q13 64 13 117q0 91 -43.5 133.5t-137.5 42.5q-48 0 -97.5 -10.5 t-98.5 -31.5q-52 -22 -76 -49q-88 -91 -121 -263l-80 -413h-203z" />
-<glyph unicode="&#x4bb;" d="M387 1556h184l-116 -604q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184z" />
-<glyph unicode="&#x4c0;" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#x4c1;" d="M782 1619q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM347 891l-170 602h207l168 -595l116 595h187l-116 -595l400 595h207l-404 -602l131 -891h-197l-96 650l-125 -186l-90 -464h-187l90 464 l-53 186l-348 -650h-197z" />
-<glyph unicode="&#x4c2;" d="M737 1271q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM348 716l-160 404h199l171 -432l84 432h168l-84 -432l339 432h199l-318 -404l120 -716h-179l-88 528 l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179z" />
-<glyph unicode="&#x4c3;" d="M375 -240h62q69 0 119 17.5t86.5 58t62 106t44.5 162.5l57 290q12 61 12 112q0 205 -199 205h-151l-143 -127l-114 -584h-203l290 1493h203l-129 -664l760 664h237l-700 -612h24q76 0 138 -20.5t105.5 -61.5t67 -103t23.5 -146q0 -64 -15 -140l-60 -306 q-27 -137 -71.5 -234t-110 -159.5t-153 -91.5t-199.5 -29h-76z" />
-<glyph unicode="&#x4c4;" d="M363 -270h172q57 0 95 12t63 41t41 77t30 120l52 264q8 42 12.5 74t4.5 58q0 38 -11 60t-34 33.5t-59 14.5t-87 3h-221l-47 -38l-87 -449h-190l218 1120h190l-91 -465l574 465h224l-610 -489h58q102 0 171 -10t111.5 -34t61 -64t18.5 -100q0 -36 -5.5 -79t-15.5 -94 l-53 -270q-21 -110 -57 -187t-87.5 -125.5t-121 -71t-157.5 -22.5h-193z" />
-<glyph unicode="&#x4c7;" d="M394 -240h62q70 0 120.5 18.5t87 59t61.5 106t43 160.5l118 607h-553l-138 -711h-203l290 1493h203l-119 -612h553l119 612h203l-270 -1389q-27 -138 -71.5 -235.5t-110 -159.5t-153 -90.5t-199.5 -28.5h-76z" />
-<glyph unicode="&#x4c8;" d="M352 -270h172q55 0 92.5 11.5t63 40t42.5 76.5t31 122l102 525h-487l-98 -505h-184l218 1120h184l-87 -445h487l87 445h184l-222 -1140q-21 -107 -55.5 -183.5t-86 -126t-121.5 -73t-160 -23.5h-193z" />
-<glyph unicode="&#x4cb;" d="M255 0h-203l290 1493h924l-33 -170h-721l-224 -1153h203l-94 -482h-203z" />
-<glyph unicode="&#x4cc;" d="M352 0h-184l218 1120h752l-36 -184h-568l-146 -752h183l-90 -460h-183z" />
-<glyph unicode="&#x4cf;" d="M656 1567h184l-305 -1567h-184z" />
-<glyph unicode="&#x4d0;" d="M800 1613q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM645 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM807 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x4d1;" d="M747 1297q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246 l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77 t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
-<glyph unicode="&#x4d2;" d="M506 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM645 1493h246l166 -1493h-201l-35 389h-520 l-184 -389h-217zM807 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#x4d3;" d="M473 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM864 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM404 -29q-75 0 -136.5 21.5t-105 62 t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166 q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
-<glyph unicode="&#x4d4;" d="M555 1493h752l-33 -170h-338l-86 -442h307l-33 -170h-307l-106 -541h356l-33 -170h-542l75 383h-352l-176 -383h-184zM600 551l150 772h-103l-356 -772h309z" />
-<glyph unicode="&#x4d5;" d="M233 -29q-64 0 -116 19t-88.5 54t-56 84.5t-19.5 111.5q0 100 30.5 177.5t90 131t146 81t198.5 27.5h117l18 88q4 20 6 41.5t2 47.5q0 76 -42 118.5t-120 42.5q-49 0 -115.5 -21t-142.5 -63l35 168q159 68 273 68q82 0 141 -33t90 -96q51 63 120 96t150 33q60 0 109 -20 t83.5 -57t53 -89.5t18.5 -118.5q0 -76 -34 -258l-17 -90h-495q-20 -93 -27 -146q-4 -28 -6 -48.5t-2 -34.5q0 -78 48.5 -122t133.5 -44q70 0 141 28.5t125 79.5l-34 -172q-60 -42 -125.5 -63t-137.5 -21q-106 0 -175.5 41t-94.5 119q-94 -160 -281 -160zM1024 657l16 74 q6 27 8.5 55t2.5 60q0 70 -33.5 109.5t-93.5 39.5q-165 0 -213 -256l-17 -82h330zM260 123q45 0 79.5 15t61 52t47.5 98t39 154l15 72h-49q-63 0 -105.5 -3.5t-72 -12t-49.5 -22t-38 -32.5q-30 -33 -47.5 -82t-17.5 -100q0 -30 10.5 -55.5t28.5 -44t43 -29t55 -10.5z" />
-<glyph unicode="&#x4d6;" d="M792 1612q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM324 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x4d7;" d="M761 1299q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5 t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5 t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
-<glyph unicode="&#x4d8;" d="M465 -29q-195 0 -289.5 110.5t-94.5 338.5q0 140 36 325l16 83h787q12 74 18.5 136.5t6.5 115.5q0 139 -49.5 207.5t-165.5 68.5q-80 0 -172 -32t-178 -93l41 207q85 42 170.5 62t170.5 20q199 0 294.5 -112t95.5 -339q0 -141 -36 -324q-76 -388 -236 -581t-415 -193z M498 135q76 0 135.5 32.5t105.5 96.5t81 159t64 221h-574q-11 -66 -16.5 -124t-5.5 -108q0 -135 48 -206t162 -71z" />
-<glyph unicode="&#x4d9;" d="M475 -29q-92 0 -162.5 26t-118.5 75t-72.5 120.5t-24.5 162.5q0 37 4 76t12 81l17 90h797l2 6q5 29 8 55.5t3 50.5q0 137 -78.5 207t-222.5 70q-90 0 -190.5 -28t-221.5 -85l36 183q114 43 214.5 64.5t194.5 21.5q110 0 195 -29.5t143 -85t88 -135.5t30 -180 q0 -37 -4.5 -76.5t-12.5 -81.5q-27 -133 -85 -241.5t-141 -185.5t-187 -119t-223 -42zM504 127q69 0 129.5 23t110 65.5t87.5 104t62 139.5l-607 -1q-9 -51 -9 -96q0 -115 57.5 -175t169.5 -60z" />
-<glyph unicode="&#x4da;" d="M492 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM465 -29q-195 0 -289.5 110.5t-94.5 338.5 q0 140 36 325l16 83h787q12 74 18.5 136.5t6.5 115.5q0 139 -49.5 207.5t-165.5 68.5q-80 0 -172 -32t-178 -93l41 207q85 42 170.5 62t170.5 20q199 0 294.5 -112t95.5 -339q0 -141 -36 -324q-76 -388 -236 -581t-415 -193zM498 135q76 0 135.5 32.5t105.5 96.5t81 159 t64 221h-574q-11 -66 -16.5 -124t-5.5 -108q0 -135 48 -206t162 -71z" />
-<glyph unicode="&#x4db;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM475 -29q-92 0 -162.5 26t-118.5 75 t-72.5 120.5t-24.5 162.5q0 37 4 76t12 81l17 90h797l2 6q5 29 8 55.5t3 50.5q0 137 -78.5 207t-222.5 70q-90 0 -190.5 -28t-221.5 -85l36 183q114 43 214.5 64.5t194.5 21.5q110 0 195 -29.5t143 -85t88 -135.5t30 -180q0 -37 -4.5 -76.5t-12.5 -81.5q-27 -133 -85 -241.5 t-141 -185.5t-187 -119t-223 -42zM504 127q69 0 129.5 23t110 65.5t87.5 104t62 139.5l-607 -1q-9 -51 -9 -96q0 -115 57.5 -175t169.5 -60z" />
-<glyph unicode="&#x4dc;" d="M526 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM917 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM347 891l-170 602h207l168 -595l116 595 h187l-116 -595l400 595h207l-404 -602l131 -891h-197l-96 650l-125 -186l-90 -464h-187l90 464l-53 186l-348 -650h-197z" />
-<glyph unicode="&#x4dd;" d="M492 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM883 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM348 716l-160 404h199l171 -432l84 432 h168l-84 -432l339 432h199l-318 -404l120 -716h-179l-88 528l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179z" />
-<glyph unicode="&#x4de;" d="M485 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM876 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM382 -29q-95 0 -199 18t-201 56l38 201 q91 -52 185.5 -78.5t190.5 -26.5q93 0 168.5 24.5t129 69t82.5 106.5t29 137q0 117 -71 177t-210 60h-153l32 166h154q79 0 142.5 19.5t108.5 55.5t69 86.5t24 113.5q0 100 -61.5 147t-189.5 47q-84 0 -180 -20t-210 -60l37 186q124 33 220.5 48.5t175.5 15.5q96 0 172 -22 t128.5 -64.5t80.5 -105t28 -142.5q0 -74 -23.5 -137.5t-67.5 -114t-107 -85t-142 -50.5q112 -21 177 -100t65 -219q0 -113 -44 -206.5t-125 -161t-196 -104.5t-257 -37z" />
-<glyph unicode="&#x4df;" d="M457 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM848 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM426 -22q-94 0 -181.5 14t-178.5 42 l34 173q69 -34 156.5 -51.5t185.5 -17.5q95 0 169 16t125 46t77.5 71.5t26.5 92.5q0 76 -72 122t-212 46h-158l28 144h165q69 0 123 11.5t92.5 31.5t62 47t31.5 58q4 13 4 28q0 59 -66.5 95.5t-197.5 36.5q-71 0 -160 -12.5t-198 -39.5l32 167q220 48 376 48q94 0 169 -16.5 t127 -47.5t80 -76t28 -102q0 -22 -5 -50q-20 -97 -97 -160t-200 -88q112 -21 171.5 -78.5t59.5 -149.5q0 -12 -1.5 -25t-3.5 -27q-13 -77 -59 -141.5t-121.5 -110.5t-179 -71.5t-232.5 -25.5z" />
-<glyph unicode="&#x4e0;" d="M474 -28q-250 0 -382.5 91.5t-132.5 267.5q0 25 3 50.5t8 53.5h201q-3 -17 -5 -33.5t-2 -32.5q0 -109 83.5 -168t254.5 -59q93 0 169 18.5t133.5 55t94 91.5t50.5 128q6 31 6 61q0 106 -76.5 163t-225.5 57h-174l33 166l455 441h-737l33 170h969l-32 -168l-462 -441 q58 0 115 -15t107.5 -42.5t91 -65.5t64.5 -84q40 -74 40 -174q0 -52 -12.5 -107.5t-39.5 -109t-69.5 -103t-102.5 -90.5q-175 -121 -458 -121z" />
-<glyph unicode="&#x4e1;" d="M342 -436q-96 0 -190.5 17t-202.5 57l38 195q75 -49 170 -74t204 -25q195 0 307.5 76.5t138.5 216.5q6 31 6 61q0 91 -58 146q-40 38 -102 56t-142 18h-174l33 166l527 499h-667l28 147h874l-32 -168l-504 -476q64 0 122.5 -16.5t108 -45t87.5 -66t60 -79.5 q19 -36 29.5 -80t10.5 -94q0 -52 -12.5 -107.5t-39.5 -109t-69.5 -103t-102.5 -90.5q-91 -63 -204.5 -92t-243.5 -29z" />
-<glyph unicode="&#x4e2;" d="M532 1850h598l-29 -148h-598zM285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
-<glyph unicode="&#x4e3;" d="M469 1446h598l-29 -148h-598zM304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
-<glyph unicode="&#x4e4;" d="M513 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM904 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM285 1493h195l-239 -1229l743 1229h256 l-290 -1493h-195l239 1229l-743 -1229h-256z" />
-<glyph unicode="&#x4e5;" d="M469 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM304 1120h184l-157 -809l644 809h184 l-218 -1120h-184l157 809l-644 -809h-184z" />
-<glyph unicode="&#x4e6;" d="M492 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM480 -29q-398 0 -398 488q0 128 23.5 263 t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104 t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x4e7;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM514 -29q-196 0 -296.5 109t-100.5 312 q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135 q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x4e8;" d="M465 -29q-191 0 -287.5 110.5t-96.5 339.5q0 139 36 324q75 385 234 580t416 195q196 0 290.5 -113t94.5 -339q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM928 881q8 56 12.5 105.5t4.5 93.5q0 66 -11 117.5t-36 86.5t-65 53.5t-98 18.5q-77 0 -135.5 -32.5 t-103.5 -94t-78.5 -149.5t-60.5 -199h571zM499 135q77 0 138 35t109 106t85 179.5t67 255.5h-577q-17 -88 -24.5 -162t-7.5 -134q0 -84 15 -139q39 -141 195 -141z" />
-<glyph unicode="&#x4e9;" d="M502 -29q-192 0 -289 100.5t-97 292.5q0 88 21 195q28 143 79 251.5t129 185.5q80 79 176 115t208 36q193 0 290.5 -100t97.5 -294q0 -88 -21 -194q-56 -286 -207.5 -437t-386.5 -151zM910 611q5 32 7.5 62t2.5 58q0 122 -52.5 191t-167.5 69q-70 0 -126.5 -26.5 t-101 -75.5t-76.5 -119.5t-53 -158.5h567zM532 127q70 0 125 25t96 68.5t70.5 102t49.5 124.5h-557q-3 -32 -3 -60q0 -56 11 -103.5t36.5 -82t67.5 -54.5t104 -20z" />
-<glyph unicode="&#x4ea;" d="M492 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM465 -29q-191 0 -287.5 110.5t-96.5 339.5 q0 139 36 324q75 385 234 580t416 195q196 0 290.5 -113t94.5 -339q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM928 881q8 56 12.5 105.5t4.5 93.5q0 66 -11 117.5t-36 86.5t-65 53.5t-98 18.5q-77 0 -135.5 -32.5t-103.5 -94t-78.5 -149.5t-60.5 -199h571zM499 135 q77 0 138 35t109 106t85 179.5t67 255.5h-577q-17 -88 -24.5 -162t-7.5 -134q0 -84 15 -139q39 -141 195 -141z" />
-<glyph unicode="&#x4eb;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM502 -29q-192 0 -289 100.5t-97 292.5 q0 88 21 195q28 143 79 251.5t129 185.5q80 79 176 115t208 36q193 0 290.5 -100t97.5 -294q0 -88 -21 -194q-56 -286 -207.5 -437t-386.5 -151zM910 611q5 32 7.5 62t2.5 58q0 122 -52.5 191t-167.5 69q-70 0 -126.5 -26.5t-101 -75.5t-76.5 -119.5t-53 -158.5h567z M532 127q70 0 125 25t96 68.5t70.5 102t49.5 124.5h-557q-3 -32 -3 -60q0 -56 11 -103.5t36.5 -82t67.5 -54.5t104 -20z" />
-<glyph unicode="&#x4ec;" d="M442 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM833 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM319 -29q-178 0 -315 82l41 207 q63 -63 142.5 -94t165.5 -31q99 0 179 39.5t141.5 110t104.5 166.5t68 210h-632l33 170h627q4 48 6 98.5t2 88.5q0 39 -3.5 79.5t-14 78t-29.5 70.5t-50.5 57.5t-77.5 38.5t-110 14q-186 0 -364 -125l41 207q168 82 348 82q94 0 166 -21t125.5 -58t89 -87t57.5 -108.5 t31 -122t9 -127.5q0 -116 -27 -252q-36 -184 -105 -328t-165.5 -243t-218.5 -150.5t-265 -51.5z" />
-<glyph unicode="&#x4ed;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM416 -29q-92 0 -164.5 21.5t-139.5 64.5 l38 191q103 -121 283 -121q88 0 159 27t126 77.5t93.5 122.5t61.5 162h-542l28 144h537q1 10 1 19v18q0 55 -13 108t-46 94.5t-88.5 66.5t-140.5 25q-91 0 -174.5 -30.5t-164.5 -92.5l38 193q42 21 82.5 37t82 27t84.5 16.5t90 5.5q124 0 209.5 -36t138 -95.5t75.5 -136.5 t23 -158q0 -38 -4.5 -78t-12.5 -84q-27 -139 -86.5 -248.5t-145.5 -185t-194.5 -115t-233.5 -39.5z" />
-<glyph unicode="&#x4ee;" d="M546 1850h598l-29 -148h-598zM87 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
-<glyph unicode="&#x4ef;" d="M489 1438h598l-29 -148h-598zM10 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
-<glyph unicode="&#x4f0;" d="M517 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM908 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM87 172h109q40 0 73.5 12t62 34t54 53.5 t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
-<glyph unicode="&#x4f1;" d="M489 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM880 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM10 -272h108q42 0 77 12t66 37.5 t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
-<glyph unicode="&#x4f2;" d="M781 1852h186l-280 -264h-154zM1100 1852h186l-280 -264h-154zM87 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5 t-106 -14h-148z" />
-<glyph unicode="&#x4f3;" d="M703 1648h189l-302 -376h-135zM1043 1648h197l-324 -376h-135zM5 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126 q-60 -79 -136 -114.5t-167 -35.5h-148z" />
-<glyph unicode="&#x4f4;" d="M486 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM877 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM866 658q-59 -27 -107 -43t-91 -24.5 t-82 -11t-80 -2.5q-67 0 -115 5t-82.5 16.5t-59 30t-44.5 46.5q-22 31 -33 66.5t-11 88.5q0 30 3.5 71t11.5 79l100 513h203l-95 -487q-6 -32 -9 -63t-3 -54q0 -40 8 -57.5t20 -28.5q26 -24 69 -32t118 -8q46 0 83.5 3t73.5 13.5t74.5 30t86.5 51.5l123 632h203l-290 -1493 h-203z" />
-<glyph unicode="&#x4f5;" d="M469 1322q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1322q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM829 466q-8 -3 -35.5 -13.5t-69.5 -21.5 t-96.5 -20t-117.5 -9q-85 0 -144 18t-95.5 50.5t-53 77.5t-16.5 99q0 49 12 108l71 367h184l-71 -367q-6 -30 -6 -56q0 -78 52 -107.5t162 -29.5q60 0 121.5 11t132.5 48l97 501h184l-218 -1122h-184z" />
-<glyph unicode="&#x4f6;" d="M569 170h203l106 548q-20 -17 -43 -33.5t-55 -32.5l-53 -26q-35 -17 -93 -30.5t-129 -16.5l-48 -2q-160 0 -232 84q-7 8 -12 16t-8 13q-17 31 -26.5 74t-9.5 98q0 73 18 168l90 465h203l-85 -439q-13 -64 -13 -117q0 -91 43.5 -133.5t138.5 -42.5q50 0 98 11t96 31 q30 13 47 24.5t30 24.5q45 45 75 113t46 150l73 378h203l-290 -1495h-203l-61 -312h-203z" />
-<glyph unicode="&#x4f7;" d="M586 184h183l74 382q-39 -52 -104 -87l-51 -27q-95 -50 -209 -50q-138 0 -204 71.5t-66 212.5q0 74 18 169l52 267h185l-52 -267q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -93 43.5 -135.5t130.5 -42.5q130 0 217 90t121 264l40 206h184l-218 -1122h-184l-54 -276h-183z" />
-<glyph unicode="&#x4f8;" d="M493 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM884 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM211 1493h202l-117 -600h91q87 0 156.5 -22 t118 -65t75 -105.5t26.5 -143.5q0 -26 -2.5 -54t-8.5 -57q-22 -111 -73 -194.5t-123 -139.5t-159.5 -84t-182.5 -28h-293zM1077 1493h203l-290 -1493h-203zM246 166q52 0 99 16t86 50.5t67.5 87t42.5 126.5q9 46 9 87q0 93 -48.5 143.5t-146.5 50.5h-91l-109 -561h91z" />
-<glyph unicode="&#x4f9;" d="M469 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM213 1120h182l-88 -453h91 q105 0 178.5 -20t120 -54.5t68 -82t21.5 -102.5q0 -19 -2 -37.5t-6 -38.5q-32 -168 -164 -250t-346 -82h-273zM1054 1120h184l-218 -1120h-184zM290 153q259 0 293 181q2 11 3 21.5t1 18.5q0 140 -227 140h-83l-70 -361h83z" />
-<glyph unicode="&#x510;" d="M512 -29q-108 0 -192 23t-141 67t-87 107.5t-30 144.5q0 49 10 99q29 149 125 248t253 139q-106 29 -159 91.5t-53 156.5q0 17 1.5 35.5t5.5 37.5q17 91 66 164.5t122 126t166 81t199 28.5q78 0 168.5 -16t205.5 -48l-36 -186q-97 41 -189 60.5t-169 19.5 q-144 0 -230 -63t-105 -175q-4 -23 -4 -47q0 -93 66.5 -138.5t187.5 -45.5h154l-32 -166h-154q-74 0 -138 -18.5t-114 -54.5t-84 -88.5t-49 -121.5q-8 -40 -8 -71q0 -103 74.5 -161.5t223.5 -58.5q96 0 200 25.5t216 79.5l-39 -201q-111 -36 -221.5 -55t-209.5 -19z" />
-<glyph unicode="&#x511;" d="M544 -29q-109 0 -193.5 21t-139.5 67q-45 38 -64.5 86t-19.5 99q0 35 8 69.5t23 66.5t36 59.5t46 48.5l36 30q67 54 158 74q-14 3 -31 8.5t-29 11.5q-16 8 -35.5 23t-36 37.5t-27.5 52t-11 66.5q0 10 1 20t3 21q11 66 52.5 121.5t106 95t149 61.5t181.5 22q70 0 152 -12 t188 -36l-35 -179q-47 16 -94.5 28t-91.5 19.5t-82.5 10.5t-66.5 2l-31 -1q-38 -2 -76.5 -15t-66.5 -30l-44 -28q-17 -14 -26 -30t-14 -40q-3 -14 -3 -26q0 -17 11 -33t43 -38q38 -26 79 -40t98 -14h127l-32 -163h-126q-55 0 -115.5 -18t-108.5 -45t-71.5 -58t-30.5 -65 q-2 -6 -3.5 -18.5t-1.5 -24.5q0 -53 58 -99q4 -2 7 -5t7 -5q32 -23 77.5 -34t99.5 -11q20 0 34 1.5t30 3.5l128 29l15 3q20 4 45 9.5t50 12t46.5 12.5t35.5 12l-36 -181q-99 -27 -198 -41t-190 -14z" />
-<glyph unicode="&#x51a;" d="M504 -27h-10q-211 0 -311.5 117.5t-100.5 366.5q0 130 23.5 265t61.5 253q30 94 65 168t72 129q85 128 196 188t251 60q202 0 301 -120.5t99 -359.5q0 -96 -15 -201t-41 -210q-29 -114 -63.5 -202t-69.5 -152q-58 -105 -126 -168t-146 -97l154 -188l-154 -92zM497 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x51b;" d="M774 141q-123 -170 -330 -170q-81 0 -145.5 26.5t-109 77.5t-68 126t-23.5 173q0 66 10.5 136.5t30.5 140.5t48.5 136t64.5 122q74 115 176 176.5t233 61.5q108 0 174 -43.5t101 -126.5l47 143h164l-299 -1546h-184zM494 127q82 0 152.5 43.5t121.5 134.5 q24 42 43.5 94.5t33.5 108.5t21.5 112.5t7.5 107.5q0 135 -53.5 199t-154.5 64q-170 0 -265 -174q-24 -45 -44 -99t-33.5 -111.5t-21 -115t-7.5 -107.5q0 -257 199 -257z" />
-<glyph unicode="&#x51c;" d="M153 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
-<glyph unicode="&#x51d;" d="M92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
-<glyph unicode="&#x531;" d="M893 -60q-80 40 -157 99q-125 -68 -293 -68q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l201 1036h202l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 68.5 -62t133.5 -24q75 0 132 20q-51 54 -87.5 107t-55.5 104l155 92q18 -51 50 -98t77 -92 q23 37 32.5 70.5t14.5 56.5l213 1098h202l-201 -1036q-18 -93 -49.5 -165.5t-76.5 -129.5q27 -18 55.5 -34t57.5 -30l-100 -158v0z" />
-<glyph unicode="&#x532;" d="M181 1036q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q68 -85 68 -224q0 -66 -15 -142l-31 -161h-202l43 223q8 40 8 77q0 26 -5 50.5t-17 45.5q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5q-33 -35 -52.5 -79t-29.5 -94l-93 -477h774 l-33 -170h-774l-87 -451h-201z" />
-<glyph unicode="&#x533;" d="M760 451h-269q-109 0 -187.5 31t-126.5 97q-32 43 -49 101t-17 136q0 76 18 172q27 143 78.5 244t123.5 165t164 93.5t204 29.5q111 0 192.5 -29.5t129.5 -93.5q32 -42 48.5 -100.5t16.5 -133.5q0 -80 -19 -175l-72 -367h125l-33 -170h-125l-87 -451h-202zM793 621 l85 437q5 27 8.5 53t3.5 50q0 28 -5 53t-16 48q-21 42 -69 68t-136 26t-142 -27t-91 -78q-36 -49 -62.5 -118.5t-40.5 -144.5q-8 -42 -12 -81.5t-4 -74.5q0 -68 14 -108q16 -46 63 -74.5t135 -28.5h269z" />
-<glyph unicode="&#x534;" d="M855 1098q4 20 6 39t2 39q0 26 -5 50t-17 45q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5q-32 -34 -52 -78t-30 -95l-43 -223h-202l31 161q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q33 -42 50.5 -97.5t17.5 -127.5q0 -65 -15 -141 l-81 -415h187l-33 -170h-187l-87 -451h-202z" />
-<glyph unicode="&#x535;" d="M449 -29q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l201 1036h202l-72 -373h774l-33 -170h-774l-108 -555q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l43 223h202l-31 -161 q-24 -125 -73.5 -216t-121.5 -151t-164.5 -89.5t-203.5 -29.5z" />
-<glyph unicode="&#x536;" d="M56 331h203l-31 -161h51q51 0 114 24.5t132 70.5t135 109.5t126 147.5q66 92 105 182t61 191q12 55 17.5 104t5.5 92q0 104 -29 162q-27 55 -82.5 79t-136.5 24q-86 0 -148 -25.5t-109 -77.5q-51 -57 -85.5 -145t-59.5 -213l-4 -20h-203l4 20q32 162 91.5 283.5 t150.5 201.5q84 74 185 107t208 33q52 0 101.5 -8t94.5 -24.5t83 -43.5t66 -64q38 -51 60 -128t22 -173q0 -44 -4.5 -90t-15.5 -95q-20 -95 -55.5 -180t-83.5 -162t-101.5 -140.5t-107.5 -113.5t-104 -82.5t-89 -45.5h359l-33 -170h-956z" />
-<glyph unicode="&#x537;" d="M265 1493h203l-73 -373h790l-33 -170h-790l-152 -780h651l-33 -170h-853z" />
-<glyph unicode="&#x538;" d="M181 1036q24 125 73.5 216t121.5 151t164.5 89.5t203.5 29.5t192 -29.5t130 -89.5q33 -42 50.5 -97.5t17.5 -127.5q0 -64 -15 -142l-31 -161h-202l43 223q4 20 6 39t2 38q0 26 -5 50.5t-17 46.5q-20 36 -66.5 61t-135.5 25q-87 0 -143.5 -24t-92.5 -62 q-33 -35 -52.5 -79.5t-29.5 -94.5l-180 -928h774l-33 -170h-975z" />
-<glyph unicode="&#x539;" d="M570 -29q-71 0 -126 25.5t-89 79.5q-22 35 -33.5 81.5t-11.5 106.5q0 33 4 71t12 80q23 118 65 204t98 143t122 85t138 28h138l4 24q11 66 19.5 124.5t8.5 109.5q0 34 -5 63t-16 54q-26 56 -80 81t-148 25q-92 0 -157 -24t-111 -78q-43 -51 -75 -134t-57 -211l-176 -909 h-195l180 934q29 152 86 260t135 180q80 73 181 109.5t220 36.5t206 -37t138 -112q68 -100 68 -261q0 -42 -4.5 -87.5t-14.5 -95.5l-10 -52h131l-34 -175h-131l-56 -285q-20 -105 -60.5 -187t-97.5 -141q-56 -57 -123 -86.5t-143 -29.5zM605 135q34 0 63 14t53 47 q29 39 46 96t30 123l56 285h-138q-35 0 -62.5 -12t-51.5 -46q-11 -15 -21 -35t-21 -53q-10 -30 -20 -69.5t-17.5 -81t-12 -80.5t-4.5 -69q0 -49 11.5 -72.5t30.5 -34.5q22 -12 58 -12z" />
-<glyph unicode="&#x53a;" d="M411 -29q-115 0 -197 35.5t-126 108.5q-29 49 -44 117.5t-15 149.5q0 79 15 162q25 129 82 239.5t134 187.5q149 149 367 149h269l72 373h202l-72 -373h125l-33 -170h-125l-87 -446q-29 -147 -80.5 -246.5t-123.5 -162.5q-74 -65 -167 -94.5t-196 -29.5zM441 135 q149 0 233 95q36 41 56 91.5t32 111.5l101 517h-269q-89 0 -145.5 -32.5t-95.5 -90.5q-37 -54 -63.5 -129.5t-41.5 -154.5q-8 -42 -13.5 -89t-5.5 -92q0 -61 12 -104q17 -58 63.5 -90.5t136.5 -32.5z" />
-<glyph unicode="&#x53b;" d="M292 1493h202l-84 -432q68 42 138 61t151 19q103 0 184.5 -29.5t130.5 -89.5q33 -42 50.5 -98.5t17.5 -128.5q0 -65 -15 -140l-32 -161h-202l44 223q8 38 8 77q0 26 -5 50.5t-17 46.5q-22 38 -70 62t-134 24t-142 -24t-92 -62q-33 -35 -52.5 -79.5t-29.5 -94.5l-140 -717 h-202z" />
-<glyph unicode="&#x53c;" d="M299 1493h203l-258 -1323h721l-33 -170h-924z" />
-<glyph unicode="&#x53d;" d="M658 -29q-106 0 -167 26.5t-89 82.5q-26 51 -26 132q0 45 7 97.5t19 115.5l101 520h-183l-184 -945h-185l289 1493h186l-72 -373h369l-140 -719q-9 -45 -14 -80.5t-5 -64.5q0 -35 10 -63q12 -32 39.5 -45t75.5 -13t79.5 13.5t53.5 44.5q23 32 38 85.5t29 122.5l140 719 h186l-135 -695q-23 -119 -52.5 -204.5t-76.5 -140.5q-48 -57 -119 -83t-174 -26z" />
-<glyph unicode="&#x53e;" d="M474 -29q-102 0 -176.5 22t-127.5 65q-55 45 -80.5 103t-34.5 129q-6 49 -6 101q0 56 6.5 113.5t18.5 116.5q26 126 72.5 242.5t110.5 217.5h-138l80 412h183l-48 -245h52q58 61 125.5 112.5t142.5 87.5q76 37 155 54.5t170 17.5q47 0 93 -4.5t85 -13.5t75 -22.5 t78 -31.5l-42 -215q-93 70 -180.5 97t-169.5 27q-94 0 -173.5 -29t-145.5 -81q165 -4 281.5 -47t184.5 -121q50 -57 76 -137t26 -180q0 -38 -4 -78t-12 -83q-16 -81 -44.5 -161.5t-66.5 -148.5t-89.5 -127t-123.5 -103t-159.5 -67t-193.5 -23zM512 135q84 0 144 17.5 t105 49.5q42 30 71 71.5t50 99.5q3 8 10 28.5t15.5 50t18 67t17.5 81.5q8 45 13 87t5 80q0 20 -1 38t-4 35q-9 57 -36 99.5t-83 73.5q-59 32 -150 50t-223 18h-12q-61 -94 -103 -212.5t-68 -246.5q-9 -45 -16 -86.5t-11 -77t-6 -62.5t-2 -42q0 -43 10 -81t38 -68 q30 -33 81.5 -51.5t136.5 -18.5z" />
-<glyph unicode="&#x53f;" d="M821 431q-63 -38 -132.5 -58.5t-157.5 -20.5q-102 0 -183.5 29.5t-130.5 89.5q-68 83 -68 225q0 64 15 142l128 655h202l-140 -717q-8 -40 -8 -75q0 -26 5 -51t18 -48q11 -19 27.5 -35t40.5 -27t57 -17.5t76 -6.5q87 0 143.5 24t92.5 62q33 35 52.5 79.5t29.5 94.5 l67 344h202l-218 -1120h-202z" />
-<glyph unicode="&#x540;" d="M251 266q-48 21 -88.5 44t-69.5 52q-23 22 -36 47t-13 57q0 35 19.5 77.5t62.5 91.5q32 37 84 82t126 99q64 46 137.5 93.5t152 93.5t161.5 90t167 85l-119 315h238l143 -375q-119 -52 -231 -108t-212 -112q-95 -53 -183 -108t-157 -106q-64 -48 -102 -86 q-23 -23 -33.5 -40.5t-10.5 -32.5q0 -19 19 -38q11 -10 28.5 -22t49.5 -26l647 -289l-40 -204z" />
-<glyph unicode="&#x541;" d="M829 -48q-25 54 -51 102.5t-54 93.5q-103 -84 -214.5 -130.5t-225.5 -46.5q-71 0 -127 19t-91 56q-55 55 -55 149q0 35 7 70q14 73 49 130t84 95q51 39 114.5 59.5t136.5 20.5q101 0 189.5 -38t164.5 -105q73 103 122 216t76 244q24 115 24 204q0 52 -7.5 92t-21.5 69 q-28 57 -84.5 80.5t-133.5 23.5t-141.5 -23t-115.5 -80q-50 -56 -87 -147t-59 -211l-4 -22h-203l4 22q30 165 93.5 285.5t150.5 198.5q84 75 183 108t208 33q110 0 200.5 -33t145.5 -105q40 -53 61 -127t21 -168q0 -90 -21 -193q-17 -85 -46 -167t-64 -154 q-34 -69 -79.5 -140.5t-102.5 -137.5q81 -111 130 -241zM320 133q68 0 148 37t158 109q-54 58 -117.5 93.5t-132.5 35.5q-68 0 -111 -36t-56 -102q-4 -19 -4 -38q0 -48 29 -73.5t86 -25.5z" />
-<glyph unicode="&#x542;" d="M855 1098q4 20 6 39t2 39q0 26 -5 50t-17 45q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5q-32 -34 -52 -78t-30 -95l-43 -223h-202l31 161q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q33 -42 50.5 -97.5t17.5 -127.5q0 -65 -15 -141 l-168 -866h187l-33 -170h-389z" />
-<glyph unicode="&#x543;" d="M215 0q-61 0 -109 13.5t-78 40.5q-22 20 -36 50.5t-14 75.5q0 12 1.5 25.5t3.5 27.5q17 93 84.5 205.5t173.5 249.5q57 74 121 150.5t124 144.5l-194 510h228l128 -338q175 175 333.5 270t311.5 95l-34 -175q-109 0 -245.5 -91t-301.5 -266l313 -824l-32 -164h-778z M795 175l-242 633q-76 -90 -152 -190q-86 -113 -133 -190t-57 -134q-3 -15 -3 -28q0 -43 35 -65q22 -14 55.5 -20t78.5 -6h418z" />
-<glyph unicode="&#x544;" d="M376 -29q-106 0 -188 28t-133 91q-69 84 -69 226q0 64 15 141l201 1036h202l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l213 1098h389l-33 -170h-187l-168 -866q-24 -125 -73.5 -216 t-121.5 -151t-164.5 -89.5t-203.5 -29.5z" />
-<glyph unicode="&#x545;" d="M505 -29q-135 0 -222.5 38.5t-137.5 104.5q-35 46 -51.5 102.5t-16.5 120.5q0 27 3 54t8 56h210q-8 -46 -8 -86q0 -38 8 -71.5t27 -62.5q28 -43 80 -67.5t134 -24.5q79 0 140.5 23t106.5 64q47 42 74 97.5t38 112.5q6 34 6 64q0 86 -46 136q-32 35 -84.5 54t-125.5 19 h-592l33 170h592q66 0 115.5 20.5t87.5 57.5q39 38 59.5 83t29.5 90q7 34 7 66q0 84 -52.5 124t-153.5 40q-118 0 -189.5 -56t-95.5 -180h-210q18 91 65 165t116 127t157 80.5t188 27.5q102 0 179.5 -28t128.5 -79q38 -38 58 -88.5t20 -115.5q0 -20 -1.5 -40.5t-6.5 -42.5 q-23 -118 -94 -204t-171 -117q64 -17 107 -52t66 -84q28 -59 28 -135q0 -42 -9 -90q-18 -97 -66 -182.5t-121 -148.5q-75 -66 -179 -104t-239 -38z" />
-<glyph unicode="&#x546;" d="M562 -29q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l168 866h-187l33 170h389l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l43 223h202l-31 -161q-24 -125 -73.5 -216 t-121.5 -151t-164.5 -89.5t-203.5 -29.5z" />
-<glyph unicode="&#x547;" d="M480 -29q-109 0 -200.5 34t-147.5 110q-40 55 -61.5 135.5t-21.5 177.5q0 41 4 83t12 86q15 78 40 148.5t56 131.5t66.5 112t71.5 91q39 44 77 73.5t74 48t71 27.5t69 11l-82 40q-51 25 -104.5 34t-90.5 9h-45l33 170h123q51 0 112 -13t127 -43l465 -213l-41 -212 l-224 103q-16 8 -35 13t-36 9q-22 5 -45 7.5t-43 2.5q-77 0 -143 -41.5t-117 -107.5q-27 -35 -50.5 -77t-46.5 -97q-21 -50 -37 -104t-27.5 -109t-17.5 -109t-6 -103q0 -94 24.5 -152t86.5 -87q54 -25 138 -25t145 24.5t109 78.5q100 114 145 358l4 22h203l-4 -22 q-29 -163 -91.5 -284.5t-152.5 -200.5q-89 -78 -187.5 -109t-198.5 -31z" />
-<glyph unicode="&#x548;" d="M200 1036q24 125 73.5 216t121.5 151t164.5 89.5t203.5 29.5t192 -29.5t130 -89.5q33 -42 50.5 -97.5t17.5 -127.5q0 -66 -15 -142l-201 -1036h-202l213 1098q4 20 6 39t2 38q0 26 -5 50.5t-17 46.5q-20 36 -66.5 61t-135.5 25q-87 0 -143.5 -24t-92.5 -62 q-33 -35 -52.5 -79.5t-29.5 -94.5l-213 -1098h-201z" />
-<glyph unicode="&#x549;" d="M109 267l42 212l218 -101q29 -14 73 -24t86 -10q77 0 143 38t123 112q27 35 51.5 78.5t45.5 95.5q22 53 38.5 110t27.5 113.5t16.5 109t5.5 97.5q0 97 -28 152t-84 81q-54 25 -138 25q-81 0 -143.5 -24t-111.5 -80q-50 -57 -86 -146.5t-58 -210.5l-4 -22h-203l4 22 q30 166 95.5 288t148.5 196q85 75 183.5 108t204.5 33q111 0 202 -34.5t146 -109.5q38 -52 60 -129.5t22 -174.5q0 -84 -18 -177q-20 -99 -57.5 -194t-84.5 -172q-48 -78 -97 -128.5t-98 -82.5q-51 -34 -99 -50.5t-88 -16.5l213 -99l-41 -210z" />
-<glyph unicode="&#x54a;" d="M1008 917q9 48 15.5 95t6.5 91q0 56 -13 101q-17 60 -62 99t-130 48l-170 -876h-190l170 876q-90 -12 -148.5 -48t-97.5 -93q-41 -59 -65 -136.5t-39 -156.5l-8 -42h-190l11 57q25 131 77 238.5t134 185.5t194 121t265 43q152 0 249.5 -43t146.5 -121q30 -48 43.5 -107.5 t13.5 -128.5q0 -44 -5 -91t-15 -97l-181 -932h-190z" />
-<glyph unicode="&#x54b;" d="M55 332h203l-31 -162h40q60 0 124.5 23t130.5 66q22 48 38.5 96.5t24.5 91.5q7 35 7 69q0 56 -23 92q-21 32 -55.5 44.5t-90.5 14.5q-28 1 -58.5 3t-61 7.5t-59.5 15.5t-53 28q-39 29 -52 68t-13 86q0 31 3.5 60.5t8.5 50.5q12 58 35.5 119.5t57.5 118.5q35 60 84 113 t115 95q66 41 146 64.5t181 23.5q76 0 136.5 -14t106.5 -39t78.5 -59.5t53.5 -74.5q26 -51 38.5 -114t12.5 -132q0 -48 -5.5 -96t-15.5 -96q-26 -126 -80.5 -237.5t-129.5 -208.5t-160.5 -169.5t-169.5 -109.5h359l-33 -170h-956zM710 423q41 45 79.5 101t70.5 116 q32 62 54.5 124.5t36.5 130.5q11 49 17 100.5t6 99.5q0 37 -4.5 70.5t-14.5 60.5q-23 63 -79 96.5t-147 33.5q-93 0 -159.5 -33t-113.5 -88q-22 -26 -40 -56t-32 -60.5t-23.5 -60t-14.5 -54.5q-6 -30 -6 -58q0 -20 3 -36.5t11 -27.5q17 -26 52.5 -32t91.5 -8 q24 -1 51.5 -4.5t55.5 -13t54 -28.5t46 -51q37 -59 37 -145q0 -46 -10 -95q-4 -20 -9.5 -40.5t-12.5 -41.5z" />
-<glyph unicode="&#x54c;" d="M107 1036q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q33 -42 50.5 -97.5t17.5 -127.5q0 -65 -15 -141l-81 -415h187l-33 -170h-187l-87 -451h-202l213 1098q4 20 6 39t2 39q0 26 -5 50t-17 45q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5 q-32 -34 -52 -78t-30 -95l-213 -1098h-201z" />
-<glyph unicode="&#x54d;" d="M468 -29q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l201 1036h202l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l213 1098h202l-201 -1036q-24 -125 -73.5 -216t-121.5 -151 t-164.5 -89.5t-203.5 -29.5z" />
-<glyph unicode="&#x54e;" d="M707 431q-69 -42 -139 -60.5t-151 -18.5q-102 0 -182.5 29t-130.5 90q-69 84 -69 226q0 64 15 141l55 282h202l-67 -344q-8 -40 -8 -75q0 -26 5 -51t18 -48q11 -19 27.5 -35t40.5 -27t57 -17.5t76 -6.5q87 0 143.5 24t92.5 62q35 37 54 82.5t28 91.5l140 717h202 l-258 -1323h228l-33 -170h-430z" />
-<glyph unicode="&#x54f;" d="M481 -29q-124 0 -214 34.5t-147 97.5q-84 93 -84 238q0 25 2.5 51.5t7.5 54.5h210q-4 -20 -6 -38.5t-2 -35.5q0 -96 54 -157q35 -40 88.5 -60.5t122.5 -20.5q133 0 228 75q47 37 79.5 90.5t43.5 120.5q4 23 4 48q0 41 -13 71t-36 53q-26 26 -67.5 48.5t-104.5 46.5 q-18 7 -35 13t-31.5 11t-25 8.5l-13.5 4.5q-57 19 -107.5 42t-91.5 52q-42 30 -71 68.5t-39 100.5q-4 23 -4 54q0 54 15.5 114t48.5 118q41 71 106 126.5t157 87.5q93 32 205 32q118 0 196.5 -32t124.5 -87q34 -41 50 -90.5t16 -106.5q0 -20 -1.5 -41t-6.5 -43h-210 q6 33 6 64q0 32 -7 58.5t-23 47.5q-50 65 -177 65q-60 0 -109 -15t-89 -47q-39 -32 -62 -74.5t-31 -88.5q-4 -20 -4 -41q0 -46 21.5 -79.5t66.5 -61.5q29 -19 59 -31.5t53 -20.5q60 -22 129.5 -46.5t131.5 -57.5q63 -34 107.5 -80t61.5 -118q9 -38 9 -80q0 -66 -20 -136 t-58 -135q-50 -85 -123.5 -145t-171.5 -93q-101 -34 -219 -34z" />
-<glyph unicode="&#x550;" d="M200 1036q24 125 73.5 216t121.5 151t164.5 89.5t203.5 29.5t192 -29.5t130 -89.5q33 -42 50.5 -97.5t17.5 -127.5q0 -64 -15 -142l-31 -161h-202l43 223q4 20 6 39t2 38q0 26 -5 50.5t-17 46.5q-20 36 -66.5 61t-135.5 25q-87 0 -143.5 -24t-92.5 -62 q-33 -35 -52.5 -79.5t-29.5 -94.5l-213 -1098h-201z" />
-<glyph unicode="&#x551;" d="M506 -29q-132 0 -220.5 37.5t-139.5 105.5q-35 47 -52 103.5t-17 121.5q0 50 11 108h210q-9 -45 -9 -87q0 -79 35 -133q26 -41 76.5 -66.5t136.5 -25.5q84 0 146 25t107 69t72 101t38 117q6 31 6 59q0 78 -47 128q-32 34 -84 52.5t-125 18.5h-594l33 170h273 q-29 17 -47.5 45t-29.5 63q-12 40 -12 82q0 13 1.5 27t3.5 28q14 84 60.5 159.5t115.5 129.5t157.5 82.5t195.5 28.5t185.5 -28.5t126.5 -81.5q72 -78 72 -200q0 -42 -9 -90q-22 -118 -93 -201q-35 -41 -78.5 -70t-92.5 -44q64 -17 106.5 -53t65.5 -86q15 -32 21.5 -65.5 t6.5 -68.5q0 -21 -2 -42t-6 -43q-17 -96 -64 -181t-122 -151t-178.5 -105t-239.5 -39zM680 875q71 0 120.5 21t83.5 54q35 33 58 78.5t32 91.5q6 28 6 60q0 29 -6 55.5t-20 49.5q-10 16 -24.5 29t-37.5 23q-44 19 -117 19q-72 0 -120.5 -18t-83.5 -52q-64 -63 -84 -166 q-3 -17 -5 -34t-2 -34q0 -29 5.5 -55.5t18.5 -46.5q22 -36 66 -55.5t110 -19.5z" />
-<glyph unicode="&#x552;" d="M280 1493h203l-73 -373h760l-34 -175h-760l-184 -945h-202z" />
-<glyph unicode="&#x553;" d="M403 158q-135 5 -215 51t-111 120q-16 39 -23.5 91.5t-7.5 112.5q0 112 23 233q27 142 75 252.5t106 182.5q32 40 70 70t85 51t104.5 33.5t129.5 15.5l24 122h193l-24 -122q133 -5 212.5 -47.5t115.5 -121.5q34 -77 34 -187q0 -55 -7.5 -117.5t-21.5 -132.5 q-27 -140 -68.5 -250t-107.5 -188t-161.5 -121.5t-231.5 -48.5l-31 -157h-193zM606 1203q-75 -3 -128 -26.5t-91 -74.5q-39 -52 -67.5 -134t-51.5 -203q-14 -70 -21 -127t-7 -104q0 -67 16 -111q19 -54 62.5 -79t115.5 -28zM627 316q42 3 74.5 9.5t58 19t46 32.5t39.5 49 q16 24 34 58t35 77t32 94t26 109t15 109.5t4 94.5q0 49 -3.5 83.5t-8.5 50.5q-7 25 -24 43.5t-40.5 31t-53 19t-62.5 7.5z" />
-<glyph unicode="&#x554;" d="M141 244h-190l34 175h190l129 661q18 94 59.5 174t113.5 141q70 60 164.5 92.5t215.5 32.5q126 0 209 -34t127 -93q32 -42 46.5 -97.5t14.5 -115.5q0 -26 -2.5 -51.5t-7.5 -51.5q-18 -98 -63.5 -177t-111.5 -137q-147 -129 -363 -129q-46 0 -84 6.5t-73 20.5 q-29 12 -60 33t-48 51l-64 -326h724l-34 -175h-724l-47 -244h-202zM733 798q75 0 124.5 19t86.5 58q29 31 58.5 83.5t41.5 118.5q6 36 6 70q0 41 -8 74.5t-20 56.5q-10 17 -25.5 32.5t-42.5 26.5q-24 9 -58 14t-73 5q-81 0 -133 -21t-87 -56q-37 -36 -62 -88.5t-36 -110.5 q-4 -20 -5.5 -38.5t-1.5 -37.5q0 -37 7 -69t23 -57q25 -39 75 -59.5t130 -20.5z" />
-<glyph unicode="&#x555;" d="M480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
-<glyph unicode="&#x556;" d="M479 -29q-63 0 -114 3t-91.5 9.5t-73 16.5t-59.5 24q-61 32 -91 84t-40 121q-3 19 -4 37.5t-1 37.5q0 60 9.5 117.5t18.5 115.5l3 19h194l-3 -19q-12 -62 -19.5 -114t-7.5 -96q0 -24 2.5 -45.5t8.5 -40.5q17 -52 61 -80t129 -28l159 819q-169 0 -250 48.5t-81 154.5 q0 33 7 68q13 66 43.5 118t87.5 87q105 65 309 65h182l-72 -373q121 -5 203.5 -39t119.5 -101q20 -38 31 -93t11 -124q0 -51 -6 -108t-19 -119q-17 -81 -43.5 -161.5t-60.5 -144.5q-35 -66 -84 -119.5t-120 -86.5q-31 -14 -69.5 -25.5t-80.5 -17.5q-43 -6 -92.5 -8t-96.5 -2 zM634 1329q-48 0 -81.5 -3.5t-56.5 -14.5q-24 -11 -38 -32t-21 -56q-2 -9 -3 -17t-1 -16q0 -38 29 -53q20 -11 51.5 -14t79.5 -3zM594 133q84 0 139 27t90 77q34 48 58.5 123t44.5 177q14 69 21.5 125t7.5 101q0 53 -12 89q-18 54 -66.5 75.5t-123.5 21.5z" />
-<glyph unicode="&#x559;" d="M819 1007q-51 0 -92.5 17t-71 46.5t-46 70t-16.5 88.5q0 13 1.5 26t3.5 27q11 57 42 107t75 87t98.5 58.5t111.5 21.5l-24 -123q-36 0 -69 -14.5t-58.5 -39.5t-41 -58t-15.5 -69q0 -53 34 -87.5t91 -34.5q-6 -31 -12 -61.5t-11 -61.5z" />
-<glyph unicode="&#x55a;" d="M568 1341l29 152h211l-29 -152l-226 -319h-129z" />
-<glyph unicode="&#x55b;" d="M810 1645h219l-395 -376h-156z" />
-<glyph unicode="&#x55c;" d="M170 1265q12 60 43 114t76 98t102.5 74.5t121.5 45.5q26 6 55 12.5t61 13.5q63 14 120 38.5t102 64.5t58 103h152q-11 -60 -41 -112.5t-73 -95.5t-96.5 -74t-111.5 -46q-35 -10 -70 -17.5t-70 -14.5q-69 -13 -125.5 -35t-97.5 -60q-41 -39 -54 -109h-152v0z" />
-<glyph unicode="&#x55d;" d="M551 1638h198l197 -376h-143z" />
-<glyph unicode="&#x55e;" d="M737 1256q-49 0 -85.5 11.5t-64.5 33.5q-31 24 -50 61.5t-22 91.5h165q-1 -32 23 -46.5t56 -14.5q26 0 47.5 8.5t35.5 22.5q26 26 35 71q4 17 4 37q0 29 -9.5 50.5t-26.5 38.5q-44 42 -131 42q-23 0 -48 -3t-51 -10l-2 -1q-138 -32 -218.5 -129t-111.5 -255h-158 q22 115 67 205t108 155q64 66 145 109.5t166 63.5q64 15 129 15q72 0 134 -19t104 -55q36 -31 56 -75.5t20 -99.5q0 -33 -7 -64q-11 -51 -36 -95.5t-65 -77.5t-93 -52t-116 -19z" />
-<glyph unicode="&#x55f;" d="M216 1556h140l-33 -169h716l-24 -122h-856z" />
-<glyph unicode="&#x561;" d="M231 -27q-62 0 -103 22t-61 81q-15 45 -15 111q0 54 9.5 123.5t26.5 160.5l126 649h168l-125 -641q-11 -59 -18.5 -102.5t-12.5 -89.5q-2 -18 -3.5 -34t-1.5 -30q0 -45 18.5 -70.5t71.5 -25.5q42 0 72 16t50 45q24 35 44.5 108.5t41.5 182.5l125 641h168l-125 -641 q-17 -89 -25.5 -150.5t-8.5 -99.5q0 -28 5 -46q7 -24 29 -40t64 -16q35 0 60 12.5t42.5 35t29.5 52t22 64.5q21 75 43 188l125 641h167l-218 -1120h-147l-1 96q-49 -65 -104 -94t-118 -29q-69 0 -115 34t-60 107q-49 -72 -106 -106.5t-140 -34.5z" />
-<glyph unicode="&#x562;" d="M330 1120h184l-33 -168q138 195 370 195q139 0 205 -70.5t66 -211.5q0 -38 -5 -80.5t-14 -90.5l-47 -244h-185l47 244q6 32 9.5 61t3.5 54q0 92 -43 135t-131 43q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-95 -490h682l-28 -143h-682l-82 -426h-184z" />
-<glyph unicode="&#x563;" d="M763 139q-63 -85 -146.5 -128.5t-187.5 -43.5q-103 0 -174 41t-112 116q-52 96 -52 239q0 43 4.5 90t14.5 98q27 141 79 250t121 184q72 77 160 117.5t188 40.5q102 0 170 -42.5t97 -127.5l49 147h165l-190 -977h168l-28 -143h-168l-83 -426h-185zM491 123 q137 0 224.5 111.5t128.5 320.5q20 103 20 179q0 125 -51 189t-154 64q-70 0 -126 -28.5t-97 -79.5q-33 -41 -60 -101t-47 -127.5t-31 -138.5t-11 -134q0 -88 23 -146q23 -56 69 -82.5t112 -26.5z" />
-<glyph unicode="&#x564;" d="M849 694q6 32 9.5 61t3.5 54q0 92 -43 135t-131 43q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-123 -633h-184l218 1120h164l-13 -168q138 195 370 195q140 0 205.5 -71t65.5 -211q0 -38 -5 -80.5t-14 -90.5l-107 -551h148l-28 -143h-148l-82 -426h-185z" />
-<glyph unicode="&#x565;" d="M347 -29q-137 0 -202.5 69.5t-65.5 210.5q0 78 19 173l220 1132h184l-85 -436h721l-28 -143h-721l-107 -553q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l46 235h185l-140 -720h-185l33 168q-69 -97 -162 -147t-210 -50z" />
-<glyph unicode="&#x566;" d="M763 139q-63 -85 -146.5 -128.5t-187.5 -43.5q-103 0 -174 41t-112 116q-52 96 -52 239q0 43 4.5 90t14.5 98q27 141 79 250t121 184q72 77 160 117.5t188 40.5q102 0 170 -42.5t97 -127.5l49 147h165l-273 -1401h168l-28 -145h-353zM491 123q137 0 224.5 111.5 t128.5 320.5q20 103 20 179q0 125 -51 189t-154 64q-70 0 -126 -28.5t-97 -79.5q-33 -41 -60 -101t-47 -127.5t-31 -138.5t-11 -134q0 -88 23 -146q23 -56 69 -82.5t112 -26.5z" />
-<glyph unicode="&#x567;" d="M358 1556h184l-85 -436h634l-28 -143h-634l-161 -829h549l-29 -148h-733z" />
-<glyph unicode="&#x568;" d="M330 1120h164l-13 -168q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-135 -694h-185l135 694q6 32 9.5 60.5t3.5 54.5q0 91 -42.5 134.5t-131.5 43.5q-133 0 -219 -91.5t-119 -262.5l-178 -916h682l-27 -143h-866z" />
-<glyph unicode="&#x569;" d="M213 1120h164l-13 -170q45 58 88.5 96t91.5 61t100 31.5t100 8.5q112 0 187.5 -40t121.5 -119q30 -53 46.5 -120t16.5 -152q0 -36 -3 -75.5t-10 -81.5h101l-28 -143h-104q-36 -132 -88 -217t-113 -136t-125.5 -71.5t-130.5 -20.5q-70 0 -123 19.5t-87 56.5 q-51 55 -51 143q0 31 6 64q15 80 53 137t88 94q51 38 111 56t120 18h201q7 38 10 73t3 67q0 108 -39 180q-31 56 -87 86t-145 30q-72 0 -133 -21t-109 -66q-47 -44 -80 -113.5t-53 -175.5l-203 -1045h-183zM641 107q40 0 75.5 16t68.5 53q35 38 63 96t52 144h-196 q-28 0 -55 -10.5t-49 -29.5t-41 -49.5t-27 -72.5q-4 -19 -4 -40q0 -37 16 -63q13 -20 36.5 -32t60.5 -12z" />
-<glyph unicode="&#x56a;" d="M377 -29q-124 0 -201.5 44.5t-116.5 122.5q-23 47 -34.5 105t-11.5 125q0 88 20 191q22 112 65.5 213t115.5 180q70 78 165 123t219 45h277l85 436h185l-85 -436h168l-28 -143h-168l-92 -472q-22 -113 -66.5 -210t-117.5 -171q-72 -72 -166.5 -112.5t-212.5 -40.5z M411 127q72 0 129 31t99 85t74.5 132.5t52.5 183.5l81 418h-275q-60 0 -113.5 -29t-98.5 -83q-46 -55 -79 -130.5t-53 -175.5t-20 -176q0 -83 23 -141q22 -56 66.5 -85.5t113.5 -29.5z" />
-<glyph unicode="&#x56b;" d="M380 1556h184l-117 -604q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-135 -694h-185l135 694q6 32 9.5 61t3.5 54q0 91 -42.5 134.5t-131.5 43.5q-128 0 -215.5 -87.5t-122.5 -266.5l-206 -1059h-183z" />
-<glyph unicode="&#x56c;" d="M477 1120h184l-273 -1403h395l-28 -143h-579z" />
-<glyph unicode="&#x56d;" d="M296 1556h167l-103 -532q48 63 102.5 93t121.5 30q132 0 163 -109q11 -39 11 -92q0 -42 -6.5 -95.5t-19.5 -119.5l-49 -252q-12 -61 -20 -114t-11 -80q-2 -16 -3 -30.5t-1 -27.5q0 -48 19 -74t73 -26q42 0 71 16t47 45q21 35 42.5 107t43.5 184l124 641h167l-217 -1120 h-167l18 96q-48 -63 -102.5 -93t-121.5 -30q-132 0 -163 109q-11 39 -11 92q0 42 6.5 95.5t19.5 119.5l49 252q13 66 20.5 117.5t10.5 77.5q2 16 3 30t1 28q0 47 -19 73t-73 26q-42 0 -71 -16t-47 -45q-23 -38 -45 -116t-41 -175l-207 -1067h-166z" />
-<glyph unicode="&#x56e;" d="M459 -29q-127 0 -207.5 43.5t-123.5 117.5q-29 49 -42.5 107.5t-13.5 125.5q0 80 18 170q26 136 76.5 237t116.5 172t143.5 111.5t161.5 55.5l-236 179l263 289l129 -98l-136 -151l281 -210h271l-33 -170h-90q21 -46 29.5 -96.5t8.5 -100.5q0 -29 -2.5 -59t-6.5 -59 t-8.5 -55t-8.5 -45q-26 -124 -71.5 -224.5t-123.5 -178.5q-76 -77 -173.5 -119t-221.5 -42zM489 127q80 0 141 32.5t106 88.5q48 59 74.5 132.5t43.5 154.5q9 44 16 96.5t7 100.5q0 56 -16 114.5t-58 103.5h-153q-78 0 -139 -32.5t-106 -89.5q-47 -58 -76.5 -134.5 t-45.5 -158.5q-8 -38 -12 -75.5t-4 -72.5q0 -79 24 -139q23 -57 71.5 -89t126.5 -32z" />
-<glyph unicode="&#x56f;" d="M781 168q-69 -97 -161.5 -147t-209.5 -50q-137 0 -203 70t-66 211q0 38 4.5 81t14.5 91l220 1132h184l-220 -1132q-6 -32 -9.5 -60.5t-3.5 -53.5q0 -91 42.5 -135t133.5 -44q129 0 215.5 89t120.5 265l123 635h185l-300 -1546h-185z" />
-<glyph unicode="&#x570;" d="M381 1556h184l-116 -604q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184z" />
-<glyph unicode="&#x571;" d="M390 -30q-86 0 -149 31.5t-101 93.5q-24 40 -37 91.5t-13 111.5q0 61 13 123q18 91 61.5 187.5t111.5 190.5q66 91 151 172t191 150q-56 7 -92.5 29t-59.5 55q-32 46 -32 105q0 19 5 44q7 32 21.5 63.5t37.5 59.5l67 79h199l-74 -85q-21 -24 -33.5 -49t-17.5 -48 q-3 -14 -3 -27q0 -37 23 -66q15 -18 37.5 -28.5t57.5 -10.5q18 0 38 3.5t36 12.5l117 66l-35 -177q-11 -6 -14 -7.5t-5.5 -3t-8.5 -5t-24 -13.5q-7 -4 -11.5 -6.5t-10 -5.5t-12.5 -7t-19 -11q81 -48 129.5 -108.5t71.5 -134.5q24 -77 24 -164q0 -40 -5 -81.5t-13 -86.5 l-100 -513h-184l34 172q-28 -45 -67.5 -82t-86.5 -63q-48 -27 -102.5 -42t-115.5 -15zM477 131q69 0 127.5 26t104.5 77q45 49 72 110.5t39 125.5l16 86q5 29 8.5 59.5t3.5 62.5q0 58 -13 110q-16 60 -53.5 113.5t-104.5 92.5q-69 -54 -130.5 -116t-109.5 -128 q-46 -63 -83 -139t-54 -158q-11 -55 -11 -105q0 -35 5.5 -67t17.5 -58q20 -45 60.5 -68.5t104.5 -23.5z" />
-<glyph unicode="&#x572;" d="M849 694q6 32 9.5 61t3.5 54q0 92 -43 135t-131 43q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-123 -633h-184l218 1120h164l-13 -168q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-190 -977h149l-27 -143h-334z" />
-<glyph unicode="&#x573;" d="M404 -29q-94 0 -154.5 32t-95.5 89q-24 39 -34.5 84.5t-10.5 95.5q0 29 3.5 59t8.5 61q10 58 31 130t49.5 149.5t65 155.5t78.5 150h-145l28 143h210q69 94 147 174.5t164 138.5q87 59 179.5 91t184.5 32q28 0 52.5 -3t34.5 -8l-29 -151q-19 9 -45.5 14t-52.5 5 q-55 0 -113 -21.5t-113 -58.5q-118 -79 -225 -217q120 -10 208 -50t142 -106q81 -99 81 -248q0 -56 -12 -116l-116 -596h-164l13 168q-33 -45 -72 -80.5t-84 -61.5q-46 -26 -99 -40.5t-115 -14.5zM496 131q78 0 134.5 30t98.5 79q43 51 67.5 111.5t35.5 118.5l27 139 q9 45 9 88q0 48 -13 90t-40 75q-40 48 -111 77t-179 36q-37 -59 -70 -127.5t-60.5 -139t-48 -140.5t-31.5 -133q-11 -64 -11 -110q0 -41 8.5 -73t28.5 -57q29 -37 69.5 -50.5t85.5 -13.5z" />
-<glyph unicode="&#x574;" d="M287 -29q-138 0 -203 70t-65 210q0 79 19 173l135 696h184l-135 -696q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l209 1071h353l-28 -143h-168l-275 -1413h-165l13 168q-69 -97 -162 -147t-210 -50z" />
-<glyph unicode="&#x575;" d="M197 -270h234q92 0 148 62.5t80 187.5l222 1140h184l-222 -1140q-38 -196 -147.5 -301t-275.5 -105h-254z" />
-<glyph unicode="&#x576;" d="M455 -29q-138 0 -203 70t-65 210q0 79 19 173l192 989h-168l28 143h352l-220 -1132q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l124 635h185l-218 -1120h-165l13 168q-69 -97 -162 -147t-210 -50z" />
-<glyph unicode="&#x577;" d="M204 -426q-42 0 -73 13.5t-51 37.5q-14 17 -22 39.5t-8 49.5q0 16 3 33q11 52 51.5 106t100.5 111q31 30 69.5 63t78 65.5t76.5 62t64 51.5q78 63 152 126.5t140 134.5q65 69 106.5 133.5t55.5 135.5q6 31 6 60q0 38 -11 71t-34 58q-31 33 -82.5 51t-112.5 18 q-39 0 -78 -8.5t-81 -28.5q-39 -19 -74.5 -46t-63.5 -61l-117 101q86 90 200 143q57 26 116.5 40t130.5 14q99 0 182 -27t134 -80q38 -40 58.5 -96.5t20.5 -122.5q0 -43 -9 -86q-16 -75 -58.5 -149.5t-104.5 -146.5q-55 -64 -125.5 -131t-158.5 -141q-19 -16 -40.5 -33.5 t-41.5 -33.5l-37.5 -30l-27.5 -22q-69 -55 -125.5 -102t-96.5 -89q-20 -21 -29.5 -35.5t-12.5 -29.5q-1 -3 -1 -11q0 -19 9 -35q7 -12 21.5 -21t40.5 -9h539l-27 -143h-652v0z" />
-<glyph unicode="&#x578;" d="M297 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184z" />
-<glyph unicode="&#x579;" d="M256 -426q-73 0 -111 43q-29 33 -29 85q0 11 1 22t3 23q11 57 41.5 125.5t74.5 140.5q45 72 99.5 146t116.5 143q25 28 55.5 60.5t64.5 65.5t69 64.5t68 58.5q-45 0 -96 16t-93 51q-32 27 -54 66.5t-22 95.5q0 26 6 56q11 57 45 117.5t105 120.5l114 96l101 -113l-37 -30 q-29 -23 -55 -49t-46.5 -53t-32.5 -55t-12 -55q0 -31 16.5 -52.5t39.5 -35.5q58 -36 146 -36q35 0 66.5 5.5t56.5 14.5l41 -113q-89 -62 -170 -131.5t-148 -136.5q-66 -66 -127 -138.5t-109 -142.5q-52 -76 -83.5 -141.5t-31.5 -111.5q0 -25 10 -44q8 -16 22.5 -25.5 t37.5 -9.5h463l-28 -143h-578v0z" />
-<glyph unicode="&#x57a;" d="M913 96q-49 -65 -104 -94t-118 -29q-69 0 -115 34t-60 107q-49 -72 -106 -106.5t-140 -34.5q-62 0 -103 22t-61 81q-15 45 -15 111q0 54 9.5 123.5t26.5 160.5l126 649h168l-125 -641q-6 -32 -10.5 -57.5t-8.5 -48t-6.5 -43.5t-5.5 -43q-2 -18 -3.5 -35t-1.5 -31 q0 -44 18 -69t72 -25q43 0 73 16t49 45q20 31 41 99.5t45 191.5l125 641h168l-125 -641q-18 -95 -26 -155t-8 -95q0 -28 5 -46q8 -29 32.5 -42.5t59.5 -13.5q42 0 68 16.5t44 44.5q10 16 20 38t20 55.5t21.5 81.5t24.5 116l125 641h167l-301 -1546h-167z" />
-<glyph unicode="&#x57b;" d="M210 -426q-38 0 -69 12.5t-51 34.5q-35 36 -35 84q0 7 0.5 13t1.5 13q6 40 27.5 78.5t50.5 73.5t63.5 68t67.5 63q35 32 56 58t36 61q13 29 22 64.5t14 64.5q2 15 3.5 28.5t1.5 26.5q0 35 -8.5 65.5t-23.5 63.5q-11 23 -24 45.5t-20 33.5q-25 41 -45 79.5t-28 84.5 q-4 23 -4 49q0 74 40 148q51 93 148 160q48 33 99.5 55.5t105.5 34.5q27 6 54 9t59 3q98 0 180 -26.5t133 -77.5q40 -40 62 -96t22 -122q0 -20 -2 -39.5t-6 -39.5q-16 -79 -60 -156t-105 -149q-65 -77 -140.5 -146t-144.5 -126q-17 -14 -38.5 -31.5t-42.5 -34.5t-39 -31.5 t-27 -21.5q-75 -59 -129 -103.5t-92 -86.5q-20 -22 -29.5 -37t-13.5 -31q-1 -4 -1 -7.5v-6.5q0 -18 7 -29t15 -17q11 -9 24.5 -12.5t24.5 -3.5h539l-27 -143h-652zM478 188q75 61 152 125t146 135q67 69 114 139.5t63 148.5q6 31 6 61q0 39 -11.5 72.5t-34.5 58.5 q-31 33 -81 49.5t-108 16.5q-101 0 -178 -53q-47 -32 -78.5 -77t-31.5 -104q0 -26 8 -51t22 -55l7.5 -16.5t6 -11.5t8.5 -15t14 -26q20 -35 36 -72.5t23 -79.5q3 -20 3 -37q0 -12 -1.5 -24t-3.5 -24q-9 -44 -29 -83t-52 -77z" />
-<glyph unicode="&#x57c;" d="M238 1120h164l-14 -172q70 102 161 150.5t208 48.5q102 0 165.5 -34.5t96.5 -97.5q39 -75 39 -183q0 -36 -4.5 -75t-12.5 -82q-16 -82 -43 -153t-69 -139q-41 -66 -93 -124.5t-116 -115.5h297l-28 -143h-515l26 132q73 52 129.5 107t98.5 115q42 61 70 130.5t43 147.5 q14 68 14 128q0 35 -5.5 66t-16.5 57q-21 48 -65.5 76t-113.5 28q-66 0 -118 -26t-94 -71q-41 -45 -69 -103.5t-42 -133.5l-127 -653h-184z" />
-<glyph unicode="&#x57d;" d="M403 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
-<glyph unicode="&#x57e;" d="M695 168q-69 -97 -161.5 -147t-209.5 -50q-269 0 -269 281q0 38 5 81t14 91l135 696h184l-135 -696q-12 -65 -12 -114q0 -92 43 -135.5t132 -43.5q130 0 216 89.5t120 264.5l208 1071h185l-357 -1837h172l-28 -145h-357z" />
-<glyph unicode="&#x57f;" d="M217 -27q-67 0 -106 27.5t-55 79.5q-12 39 -12 94q0 43 6.5 96.5t20.5 122.5l141 727h168l-124 -641q-12 -63 -19.5 -112t-11.5 -82q-2 -16 -3 -30.5t-1 -27.5q0 -48 19 -74t73 -26q42 0 71 16t47 45q21 35 42.5 107t43.5 184l124 641h167l-18 -96q48 63 102.5 93 t122.5 30q129 0 161 -107q6 -20 8.5 -43.5t2.5 -50.5q0 -46 -7 -101t-19 -118l-141 -727h-168l124 641q11 55 18.5 105t12.5 90q2 16 3 30.5t1 27.5q0 47 -19.5 73t-74.5 26q-36 0 -61 -11.5t-42.5 -32t-29.5 -48.5t-22 -62q-10 -32 -20 -73t-20 -92l-131 -674h-167l18 96 q-51 -66 -105.5 -94.5t-119.5 -28.5z" />
-<glyph unicode="&#x580;" d="M335 1120h164l-13 -168q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-135 -694h-185l135 694q6 32 9.5 60.5t3.5 54.5q0 93 -43.5 135.5t-130.5 42.5q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-205 -1059h-184z" />
-<glyph unicode="&#x581;" d="M412 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133t30 134t47.5 128t64 115q37 55 81.5 99t95 74.5 t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM541 145q166 0 263 174q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5t-152 66.5q-57 0 -107 -23t-91 -63t-73 -94.5 t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
-<glyph unicode="&#x582;" d="M357 1120h184l-190 -977h550l-27 -143h-734z" />
-<glyph unicode="&#x583;" d="M441 96q-51 -66 -105.5 -94.5t-119.5 -28.5q-67 0 -106 27.5t-55 79.5q-12 39 -12 94q0 43 6.5 96.5t20.5 122.5l141 727h168l-124 -641q-12 -63 -19.5 -112t-11.5 -82q-2 -16 -3 -30.5t-1 -27.5q0 -48 19 -74t73 -26q42 0 71 16t47 45q22 35 43.5 108.5t42.5 182.5 l209 1077h167l-103 -532q48 63 102.5 93t122.5 30q129 0 161 -107q6 -20 8.5 -43.5t2.5 -50.5q0 -46 -7 -101t-19 -118l-141 -727h-168l124 641q11 55 18.5 105t12.5 90q2 16 3 30.5t1 27.5q0 47 -19.5 73t-74.5 26q-36 0 -61 -11.5t-42.5 -32t-29.5 -48.5t-22 -62 q-11 -35 -21 -76.5t-19 -88.5l-214 -1100h-167z" />
-<glyph unicode="&#x584;" d="M73 -327h-119l28 143h119l253 1304h165l-8 -143q63 85 147 127.5t186 42.5q103 0 175 -42t112 -116q52 -96 52 -239q0 -90 -21 -195q-26 -136 -76 -243t-122 -184q-71 -76 -158.5 -116.5t-189.5 -40.5q-104 0 -171.5 42.5t-95.5 127.5l-63 -325h754l-28 -143h-754 l-19 -99h-185zM617 127q137 0 223 109q34 42 61 102.5t46.5 128t30 137.5t10.5 133q0 43 -5.5 80t-16.5 66q-20 51 -65 79.5t-116 28.5q-136 0 -224.5 -109.5t-130.5 -322.5q-20 -103 -20 -177q0 -126 51.5 -190.5t155.5 -64.5z" />
-<glyph unicode="&#x585;" d="M514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99 t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
-<glyph unicode="&#x586;" d="M385 -5q-75 0 -135.5 15t-111.5 43q-49 27 -88 64t-79 93l147 128q28 -50 55 -84t61 -60q35 -27 78 -41.5t100 -14.5l159 814q-99 0 -171.5 22.5t-119.5 62.5q-76 64 -76 166q0 13 1.5 26t3.5 27q12 64 50 122.5t107 100.5q125 77 331 77h175l-86 -441q139 0 229 -35.5 t138 -104.5q32 -45 45.5 -101t13.5 -122q0 -80 -18 -173q-25 -131 -73 -237.5t-125 -184.5t-182 -120t-245 -42l-82 -421h-184zM661 1414q-123 0 -191.5 -39.5t-79.5 -111.5q-1 -6 -1.5 -11.5t-0.5 -10.5q0 -58 52 -92t162 -34zM596 138q97 0 165 33t118 93q51 61 85 142.5 t51 169.5q14 73 14 135q0 43 -7 80t-22 63q-54 98 -245 98z" />
-<glyph unicode="&#x587;" d="M255 -29q-137 0 -202.5 69.5t-65.5 210.5q0 78 19 173l220 1132h184l-220 -1132q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l124 635h185l-190 -977h232l-28 -143h-417l33 168q-69 -97 -162 -147t-210 -50z" />
-<glyph unicode="&#x589;" d="M593 850h211l-49 -254h-211zM477 254h211l-49 -254h-211z" />
-<glyph unicode="&#x58a;" d="M379 643q58 -31 118 -45.5t123 -14.5q67 0 136.5 15.5t143.5 44.5l-31 -164q-74 -29 -143 -44.5t-136 -15.5q-64 0 -124 14.5t-118 45.5z" />
-<glyph unicode="&#xe3f;" d="M438 0h-376l254 1306h376l48 250h100l-48 -251q79 -4 143.5 -21.5t110.5 -49.5t71.5 -79.5t25.5 -111.5q0 -35 -7 -69q-23 -121 -100.5 -189.5t-204.5 -85.5q120 -17 182.5 -85t62.5 -177q0 -35 -8 -78q-17 -90 -61.5 -155.5t-113 -109.5t-158.5 -66.5t-197 -26.5 l-58 -302h-100zM587 767l77 394h-180l-77 -394h180zM688 769q51 4 93 16.5t74 36.5t53.5 61t31.5 91q2 14 3.5 26.5t1.5 23.5q0 68 -45.5 98t-136.5 37zM466 145l93 479h-180l-93 -479h180zM566 146q66 3 118 16.5t90.5 40.5t63.5 69t37 104q4 18 5.5 35t1.5 32 q0 91 -58.5 131.5t-164.5 47.5z" />
-<glyph unicode="&#x10d0;" d="M493 0q-188 0 -279 82t-91 256q0 65 11.5 113t30.5 85t43 66.5t49 57.5h190q-29 -28 -49.5 -51.5t-34.5 -46t-23 -44t-14 -45.5q-5 -23 -8.5 -55.5t-3.5 -59.5q0 -105 54.5 -159t159.5 -54q65 0 122.5 21.5t102.5 64t76 105t43 144.5q3 20 5 44t2 41q0 69 -36.5 122 t-104.5 81q-229 85 -229 294q0 38 8 84h181q-6 -33 -6 -62q0 -109 92 -150q285 -110 285 -351q0 -22 -2 -42.5t-7 -45.5q-45 -249 -188.5 -372t-378.5 -123z" />
-<glyph unicode="&#x10d1;" d="M465 0q-182 0 -276.5 91t-94.5 275q0 40 4.5 84.5t14.5 94.5q85 427 489 511l27 138q3 16 3 30q0 33 -14 54t-35 34t-45 19.5t-43 10.5q-50 11 -78 43.5t-28 101.5q0 15 1.5 33t5.5 38h181q-1 -5 -1.5 -10.5t-0.5 -11.5q0 -70 106 -94q59 -23 90 -64.5t31 -109.5 q0 -15 -1.5 -32.5t-5.5 -35.5l-28 -144q136 -46 206.5 -139.5t70.5 -228.5q0 -31 -3.5 -69.5t-9.5 -74.5q-22 -134 -71 -235.5t-121.5 -170t-167 -103.5t-206.5 -35zM494 145q135 0 226 102.5t124 297.5q7 39 10.5 78.5t3.5 68.5q0 109 -53.5 166.5t-161.5 57.5 q-137 0 -222.5 -93t-120.5 -273q-8 -43 -12.5 -84t-4.5 -76q0 -122 54 -183.5t157 -61.5z" />
-<glyph unicode="&#x10d2;" d="M470 -425q-211 0 -318.5 84.5t-107.5 253.5q0 31 3.5 63t10.5 67q46 233 204 348.5t428 117.5q30 19 56 46t46.5 60t35 70t21.5 76q3 16 3 30q0 57 -47 84.5t-136 27.5q-99 0 -150.5 -34.5t-64.5 -104.5q-5 -28 -5 -53q0 -18 3 -36l-153 -82q-18 45 -18 101q0 23 2.5 46 t5.5 40q23 131 124 198t286 67q167 0 252 -55.5t85 -167.5q0 -15 -1.5 -33t-5.5 -37q-32 -164 -170 -248l-4 -20q117 -45 171.5 -128.5t54.5 -188.5q0 -25 -3 -58.5t-8 -65.5q-18 -108 -64.5 -194.5t-121.5 -147.5t-178.5 -93.5t-235.5 -32.5zM503 -276q327 0 388 319 q5 26 7.5 50.5t2.5 41.5q0 55 -23 98.5t-61.5 73t-89 45t-105.5 15.5q-60 0 -121 -19t-114 -58.5t-93 -101t-57 -145.5q-10 -49 -10 -93q0 -226 272 -226h4z" />
-<glyph unicode="&#x10d3;" d="M638 -425q-57 167 -139 171q-42 2 -65 3t-35 1q-60 0 -126.5 -19t-130.5 -61l-24 105q50 44 136 62l2 11q-171 202 -171 498q0 111 24 236q88 453 430 453h2q90 0 152 -98h20q80 98 248 98q286 0 286 -296q0 -41 -5 -86t-13 -87l-4 -20q-51 -253 -159.5 -379.5 t-282.5 -126.5q-266 0 -266 310q0 95 24 217l45 234q4 16 4 32q0 61 -59 61h-43q-129 0 -190 -316l-21 -109q-19 -98 -19 -177q0 -101 26 -169t65 -113.5t84.5 -73t83.5 -46.5q57 -29 105 -56.5t88 -62t72.5 -81t57.5 -114.5zM808 185q80 0 130.5 61t76.5 195l42 212 q5 23 8 51.5t3 52.5q0 137 -114 137h-71q-61 0 -99 -46t-55 -136l-48 -247q-12 -63 -12 -111q0 -85 36 -127t103 -42z" />
-<glyph unicode="&#x10d4;" d="M486 -425q-197 0 -299.5 73t-102.5 219q0 25 3 54.5t8 55.5q14 69 58.5 130.5t131.5 118.5h188q-90 -63 -135 -123.5t-58 -124.5q-4 -20 -5.5 -37.5t-1.5 -32.5q0 -97 62 -144t183 -47q137 0 213.5 60t99.5 181l131 676q9 49 9 88q0 93 -49 137t-150 44 q-114 0 -183.5 -55t-91.5 -167q-4 -19 -5.5 -37.5t-1.5 -35.5q0 -73 28 -139l-176 -1q-13 23 -19.5 51.5t-6.5 58.5q0 17 2 44t7 54q15 90 54.5 159t100.5 115.5t142.5 70.5t179.5 24h2q346 0 346 -290q0 -30 -3.5 -62t-8.5 -60l-129 -665q-39 -200 -170 -296.5t-353 -96.5z " />
-<glyph unicode="&#x10d5;" d="M475 -425q-392 0 -392 297q0 50 11 111q21 92 147 202h192q-70 -62 -106.5 -111t-45.5 -91q-3 -14 -5.5 -38t-2.5 -45q0 -92 57 -137.5t176 -45.5q134 0 212.5 57t99.5 166l19 98q4 20 6 38t2 36q0 169 -198 169h-73l28 140h74q115 0 182.5 61t89.5 178q4 21 6 39.5 t2 37.5q0 87 -48 126.5t-150 39.5q-116 0 -192 -50.5t-96 -151.5q-4 -19 -5.5 -39t-1.5 -41q0 -30 3 -61.5t10 -66.5h-161q-29 53 -29 124q0 39 9 84q33 166 155.5 255t334.5 89q183 0 271.5 -68t88.5 -208q0 -26 -3 -55t-9 -58q-22 -105 -90 -179t-197 -122l-4 -20 q187 -34 187 -215q0 -40 -9 -86l-15 -79q-36 -190 -169.5 -285t-360.5 -95z" />
-<glyph unicode="&#x10d6;" d="M460 0q-186 0 -279 85.5t-93 256.5q0 38 4.5 78t12.5 85q30 159 99.5 263t178.5 140l4 20q-78 23 -114.5 76.5t-36.5 122.5q0 17 2 43t6 49q13 83 47 146t86.5 105.5t122.5 64t155 21.5q140 0 212 -57.5t72 -172.5q0 -20 -2.5 -44t-7.5 -49q-32 -155 -139 -240l-4 -20 q124 -17 188 -94.5t64 -209.5q0 -35 -4 -78t-12 -87q-21 -121 -68 -215t-118.5 -158t-165.5 -97.5t-210 -33.5zM549 983q93 0 145 56.5t72 161.5q4 20 6 37.5t2 33.5q0 71 -40.5 107.5t-112.5 36.5q-90 0 -141.5 -55t-71.5 -159q-8 -43 -8 -75q0 -72 38.5 -108t110.5 -36z M494 145q71 0 127.5 25t99.5 72t71.5 114t44.5 152q7 38 10.5 70.5t3.5 62.5q0 233 -217 233h-3q-130 0 -218.5 -94.5t-120.5 -274.5q-7 -38 -10.5 -75.5t-3.5 -65.5q0 -106 54 -162.5t162 -56.5z" />
-<glyph unicode="&#x10d7;" d="M320 0q-136 0 -211 80.5t-75 240.5q0 42 5 93.5t16 104.5l6 30q48 242 165 364t303 122q78 0 127.5 -23t77.5 -76h14q52 54 103 76.5t116 22.5q118 0 180.5 -69t62.5 -209q0 -37 -4.5 -80.5t-14.5 -92.5l-13 -67q-68 -350 -340 -517h-162q122 87 199.5 209t109.5 287 l23 117q8 42 12 76.5t4 63.5q0 141 -94 141h-33q-82 0 -118 -182l-43 -220q-25 -127 -62.5 -219.5t-89 -153t-117.5 -90t-147 -29.5zM342 145q81 0 135 58.5t78 184.5l70 361q9 43 9 74q0 71 -49 71l-87 -1h-1q-179 0 -232 -272l-37 -189q-14 -73 -14 -130q0 -157 128 -157z " />
-<glyph unicode="&#x10d8;" d="M294 0q-146 154 -146 383q0 80 18 170q49 249 188.5 370.5t366.5 121.5q190 0 282.5 -83t92.5 -251q0 -76 -17 -164q-33 -174 -120.5 -311t-226.5 -236h-146q127 131 203.5 267.5t103.5 279.5q6 32 10 67t4 68q0 111 -51.5 165.5t-158.5 54.5q-71 0 -128 -24 t-100.5 -69.5t-72.5 -110.5t-45 -147q-15 -78 -15 -155q0 -202 106 -396h-148v0z" />
-<glyph unicode="&#x10d9;" d="M485 -423q-198 0 -298 76.5t-100 227.5q0 26 3 58t9 61q15 72 53 130t106 111h173q-63 -58 -98.5 -121t-46.5 -120q-3 -16 -5.5 -40t-2.5 -46q0 -98 60 -147t175 -49q127 0 207.5 61.5t103.5 190.5l9 50q5 24 7.5 43.5t2.5 42.5q0 94 -47.5 140t-147.5 46h-65l30 152h65 q112 0 179.5 48.5t86.5 149.5q2 11 3 22t1 19q0 95 -93.5 142t-287.5 47l30 154q535 0 535 -301q0 -20 -2 -41.5t-6 -41.5q-20 -101 -95 -166t-221 -91l-4 -20q120 -22 173.5 -86t53.5 -169q0 -26 -2.5 -46t-7.5 -44l-9 -50q-35 -192 -166.5 -292.5t-360.5 -100.5z" />
-<glyph unicode="&#x10da;" d="M619 -425q-1 74 -23.5 118.5t-56 68.5t-73.5 31.5t-76 7.5q-59 0 -106.5 -15t-98.5 -60l-58 95q78 90 194 104l16 14q-144 189 -144 443q0 51 5.5 103.5t15.5 100.5q46 229 180.5 344t367.5 115q196 0 287.5 -83.5t91.5 -258.5q0 -66 -11.5 -116.5t-28 -89t-36 -66 t-35.5 -48.5q-19 -25 -34 -50t-26 -54t-18 -64t-10 -79l-159 -1q4 51 10.5 86.5t15.5 62.5t21 48t26 44q13 21 25.5 40.5t23 42.5t19.5 51t17 67q12 61 12 113q0 214 -220 214q-137 0 -219.5 -79t-115.5 -244q-9 -45 -14.5 -96.5t-5.5 -101.5q0 -78 14.5 -143t42 -122.5 t68 -109t92.5 -100.5q39 -38 78 -76.5t69.5 -77.5t49.5 -78t19 -78q0 -8 -0.5 -13t-1.5 -10h-190v0z" />
-<glyph unicode="&#x10db;" d="M480 0q-194 0 -291.5 89t-97.5 260q0 37 4.5 83t12.5 93q23 130 72.5 227.5t121 163t163 98t199.5 32.5q105 0 163.5 -31t81.5 -94h20l50 258q6 33 6 58q0 45 -21 78.5t-55.5 55.5t-79 33t-90.5 11q-45 0 -88.5 -10t-79 -29t-60.5 -47.5t-32 -65.5l-12 -62h-187l12 62 q29 148 147 221t326 73q399 0 399 -281q0 -22 -2.5 -46.5t-7.5 -50.5l-133 -684q-96 -495 -541 -495zM506 145q132 0 212 86.5t115 263.5q18 91 18 162q0 125 -53 185t-157 60q-70 0 -126.5 -26t-100 -75t-73 -118t-45.5 -156q-8 -42 -11.5 -80.5t-3.5 -67.5 q0 -115 56.5 -174.5t168.5 -59.5z" />
-<glyph unicode="&#x10dc;" d="M459 0q-183 0 -276.5 83.5t-93.5 252.5q0 34 4 72.5t12 81.5l135 694q68 347 400 347h462l-28 -143h-482q-140 0 -175 -176l-57 -294h35q20 28 53.5 52t75.5 41.5t90 27.5t98 10q63 0 123.5 -18t108 -59.5t76 -108t28.5 -162.5q0 -67 -16 -153q-51 -275 -194.5 -411.5 t-378.5 -136.5zM492 146q66 0 123.5 25.5t103.5 76t78.5 125t49.5 172.5q6 36 9.5 72.5t3.5 64.5q0 108 -55.5 165t-164.5 57q-278 0 -349 -379q-15 -81 -15 -144q0 -235 213 -235h3z" />
-<glyph unicode="&#x10dd;" d="M153 0q-119 175 -119 356q0 25 2.5 51.5t7.5 53.5l20 102q45 231 161 351.5t293 120.5q30 0 54.5 -4.5t45.5 -16t38.5 -32t34.5 -51.5h17q27 30 50.5 50t47.5 32t50 17t59 5q67 0 120.5 -19.5t91 -58t57.5 -97t20 -136.5q0 -39 -5 -79t-13 -84l-20 -107 q-20 -110 -89 -226t-188 -228h-179q216 191 257 399l55 281q9 46 9 82q0 132 -119 132h-77q-64 0 -104 -207l-54 -277h-160l54 277q15 78 15 126q0 81 -41 81h-77q-77 0 -123.5 -58t-68.5 -170l-51 -260q-9 -45 -9 -88q0 -166 131 -318h-194v0z" />
-<glyph unicode="&#x10de;" d="M464 0q-183 0 -283 78t-100 234q0 26 3 57.5t10 64.5q18 91 54.5 157.5t99.5 115.5h175q-60 -66 -94 -131.5t-50 -140.5q-10 -49 -10 -86q0 -103 60 -153.5t166 -50.5q134 0 220.5 81.5t114.5 247.5q5 31 8 64t3 56q0 102 -55.5 156t-167.5 54h-63l26 135h82 q214 0 255 200q1 7 1.5 14t0.5 14q0 124 -246 154q-251 48 -251 194q0 19 4 36h172q-1 -3 -1 -8q0 -65 218 -104q291 -36 291 -236q0 -14 -1.5 -31.5t-5.5 -35.5q-20 -103 -80 -168t-157 -95l-4 -20q79 -38 124 -106t45 -161q0 -23 -2.5 -53.5t-7.5 -58.5 q-18 -115 -63 -203.5t-115.5 -148.5t-164.5 -91t-211 -31z" />
-<glyph unicode="&#x10df;" d="M462 -423q-193 0 -290 68t-97 207q0 21 2.5 44t7.5 48h187q-7 -32 -7 -62q0 -165 225 -165q291 0 344 267l182 936l-446 -52l-11 -60q88 -38 127 -100.5t39 -143.5q0 -40 -9 -83q-32 -154 -175 -230t-411 -77l32 167q98 0 167.5 9.5t115 27.5t70.5 44t33 59q3 12 5 30 t2 35q0 205 -301 269l25 130l941 129l-212 -1092q-39 -201 -173.5 -303t-372.5 -102z" />
-<glyph unicode="&#x10e0;" d="M114 0q-64 80 -96 168.5t-32 190.5q0 31 3 64t10 67l20 103q16 84 52 176.5t92.5 186t134.5 183.5t179 169.5t225 143.5t273 105l-3 -148q-379 -83 -665 -435h24l98 61q165 0 218 -98h15q92 98 249 98q250 0 250 -273q0 -72 -18 -166l-28 -142q-24 -124 -96.5 -235.5 t-199.5 -218.5h-197q251 185 294 403l38 193q8 44 12.5 84.5t4.5 71.5q0 142 -92 142h-88q-34 0 -57.5 -43t-39.5 -124l-62 -317h-160l63 317q10 50 10 87q0 80 -51 80h-124q-103 0 -160 -293l-32 -165q-5 -24 -7 -50.5t-2 -49.5q0 -189 155 -336h-210v0z" />
-<glyph unicode="&#x10e1;" d="M467 0q-181 0 -277 86.5t-96 259.5q0 38 4.5 81.5t12.5 87.5l196 1006h182l-196 -1006q-7 -36 -10.5 -71.5t-3.5 -64.5q0 -118 57 -176t160 -58q71 0 129.5 27t102.5 75.5t73 116.5t41 151q3 20 5 42.5t2 39.5q0 62 -27.5 103.5t-70.5 73.5q-14 10 -31 23.5t-32 31.5 t-25 41.5t-10 53.5q0 15 3 30q29 149 259 273l63 -124q-153 -55 -165 -115q-1 -4 -1 -12q0 -23 12 -43.5t29.5 -38.5t37 -33t34.5 -27q25 -20 45.5 -41.5t35.5 -47t23 -57t8 -71.5q0 -24 -2.5 -51t-6.5 -51q-19 -121 -65.5 -216.5t-117.5 -162t-166.5 -101.5t-211.5 -35z " />
-<glyph unicode="&#x10e2;" d="M452 -423q-229 0 -344 115.5t-115 340.5q0 54 6.5 121t19.5 136q29 155 85.5 278.5t138.5 213.5t188 145t233 74l35 257h166l-65 -261q194 -30 290.5 -150t96.5 -324q0 -51 -6 -112t-18 -127q-32 -173 -93.5 -305t-151.5 -221t-207 -135t-259 -46zM479 -283q94 0 175 36 t145.5 108t110.5 179.5t72 249.5q11 60 16.5 116.5t5.5 103.5q0 138 -55.5 237t-170.5 141l-89 -539h-165l118 538q-88 -27 -159 -82t-125.5 -132.5t-92 -174.5t-58.5 -208q-12 -65 -18 -126t-6 -109q0 -166 73.5 -252t222.5 -86z" />
-<glyph unicode="&#x10e3;" d="M515 -423q-201 0 -304 76t-103 229q0 29 3.5 59.5t8.5 55.5q16 76 61 138t132 111h179q-84 -65 -128 -124t-58 -125q-9 -44 -9 -79q0 -99 61 -150t186 -51q133 0 209 59.5t99 180.5l145 746q4 21 6 38.5t2 34.5q0 59 -25.5 88.5t-71.5 29.5q-69 0 -115 -66.5t-73 -204.5 l-48 -193h-133l29 193q8 44 12 80t4 65q0 124 -74 126q-37 -2 -59 -18t-47 -50q-6 -9 -15 -20.5t-22 -22t-29.5 -17.5t-38.5 -7q-73 0 -138 95l86 181q24 -52 43.5 -75t48.5 -23q26 0 45.5 15t39.5 35t42.5 34.5t62.5 14.5q64 0 96 -45t50 -139h20q106 183 243 183h3 q245 0 245 -223q0 -51 -11 -109l-146 -746q-38 -190 -164.5 -285t-349.5 -95z" />
-<glyph unicode="&#x10e4;" d="M523 -425q-366 0 -366 281q0 49 12 108h183q-4 -20 -6 -38.5t-2 -36.5q0 -172 209 -172h47q279 0 321 222l19 101q5 28 8.5 51.5t3.5 46.5q0 39 -10 54t-26 16h-80l29 151h80q27 0 47.5 36t35.5 113l36 182q5 23 8 50.5t3 50.5q0 103 -72 103h-83q-32 0 -51.5 -32 t-30.5 -91l-40 -202q-48 -244 -151 -362t-264 -118h-2q-303 0 -303 276q0 31 3.5 63.5t10.5 68.5l25 128q40 206 154 308t289 102q80 0 125.5 -23.5t72.5 -75.5h17q115 99 255 99q228 0 228 -253q0 -67 -16 -150q-50 -252 -224 -335l-3 -20q120 -77 120 -187 q0 -12 -1.5 -23.5t-3.5 -22.5l-20 -105q-69 -364 -531 -364h-56zM403 215q83 0 133 66.5t75 194.5l49 251q8 43 8 77q0 44 -17.5 67t-52.5 23h-77q-85 0 -135.5 -66.5t-76.5 -195.5l-24 -120q-6 -31 -10 -66t-4 -65q0 -81 33 -123.5t99 -42.5z" />
-<glyph unicode="&#x10e5;" d="M438 -425q-93 0 -166.5 19.5t-125 58t-78.5 96t-27 134.5q0 29 3.5 60.5t8.5 56.5q14 67 56.5 122.5t123.5 109.5l175 -1q-75 -62 -115.5 -117.5t-54.5 -116.5q-4 -17 -6.5 -39t-2.5 -43q0 -99 63.5 -148.5t174.5 -49.5q136 0 218.5 82.5t119.5 267.5l59 296 q28 143 28 250q0 289 -209 289h-3h-7q-94 0 -147.5 -37.5t-73.5 -123.5q-7 -30 -10 -62t-3 -57q0 -94 42 -152h-179q-30 67 -30 153q0 57 13 118q32 149 133.5 227t263.5 78q43 0 78 -7.5t66 -28t59 -57.5t57 -97h17l130 665h173l-282 -1454q-48 -246 -178 -369t-364 -123z " />
-<glyph unicode="&#x10e6;" d="M631 -425q0 47 -13 81.5t-34 58.5t-47 39t-52.5 23t-51 11t-41.5 3q-52 0 -102 -20.5t-104 -63.5l-47 92q74 84 138 85l4 22q-206 214 -206 447q0 28 3 55t8 54l15 80q46 246 159.5 370t278.5 124q73 0 119 -25t75 -79h16q90 104 243 104q126 0 192.5 -70.5t66.5 -211.5 q0 -38 -5 -82t-13 -86l-14 -70q-24 -122 -84.5 -225t-166.5 -196l-140 -1q152 167 186 341l43 219q12 61 12 108q0 132 -100 132h-100q-58 0 -92 -175l-60 -309h-160l60 309q12 60 12 100q0 75 -43 75h-76q-80 0 -128 -67t-73 -195l-27 -138q-7 -36 -10.5 -70.5t-3.5 -66.5 q0 -95 29 -163.5t71 -117.5t88.5 -81t81.5 -54q64 -41 114 -77.5t86.5 -77.5t60 -92t35.5 -120z" />
-<glyph unicode="&#x10e7;" d="M489 -423q-201 0 -302.5 73t-101.5 222q0 47 11 105h188q-4 -20 -6 -38t-2 -35q0 -94 61.5 -141t179.5 -47q265 0 312 241l48 244h-20q-55 -49 -124 -73.5t-167 -24.5q-179 0 -273 83t-94 250q0 36 4 76t12 76q13 64 40.5 122.5t71.5 111t105.5 100.5t144.5 93h216 q-91 -54 -159 -107t-115.5 -105.5t-76 -105.5t-40.5 -109q-6 -27 -9.5 -60t-3.5 -62q0 -112 54.5 -163.5t172.5 -51.5q61 0 113.5 14t93.5 42.5t69 73t40 105.5l101 521h179l-205 -1054q-37 -189 -164.5 -282.5t-353.5 -93.5z" />
-<glyph unicode="&#x10e8;" d="M493 0q-194 0 -297.5 90.5t-103.5 271.5q0 72 17 163q48 255 187.5 388t357.5 133q107 0 166 -33t82 -97h20l56 289q9 48 9 85q0 128 -111 128q-72 0 -114.5 -51.5t-65.5 -158.5l-7 -33h-157l7 35q4 20 6 40t2 36q0 66 -33 99t-82 33q-25 0 -45.5 -10t-37.5 -35.5 t-31.5 -69.5t-27.5 -111h-155q37 190 110.5 277t186.5 87q87 0 140.5 -48t65.5 -145h20q27 53 56.5 90t63.5 60t73.5 33t85.5 10q112 0 174.5 -54.5t62.5 -163.5q0 -44 -11 -102l-146 -759q-46 -239 -174 -358t-350 -119zM516 145q123 0 206.5 89t117.5 281q8 43 11.5 82.5 t3.5 68.5q0 115 -54.5 176.5t-163.5 61.5q-69 0 -125 -26t-99 -74.5t-72 -119t-45 -159.5q-7 -38 -10.5 -74.5t-3.5 -63.5q0 -59 16.5 -104t47 -75.5t73.5 -46.5t97 -16z" />
-<glyph unicode="&#x10e9;" d="M245 1214q34 178 145 260t296 82q171 0 259.5 -66.5t88.5 -200.5q0 -24 -3 -46q-16 -96 -146 -257q158 -78 158 -301q0 -41 -5 -84.5t-13 -84.5q-34 -167 -127.5 -294t-252.5 -222h-178q308 200 372 520q15 76 15 135q0 110 -50 168.5t-157 59.5q-8 1 -16 1h-16 q-131 0 -209 -75t-107 -222l-114 -587h-178zM393 917q71 104 273 104q48 0 102 -6q82 132 97 209v12q0 90 -53 134.5t-150 44.5q-106 0 -164.5 -53t-79.5 -161l-55 -284h30z" />
-<glyph unicode="&#x10ea;" d="M484 -423q-218 0 -325.5 110.5t-107.5 337.5q0 57 7 122t21 137l19 97q63 324 341 680l130 -76q-106 -125 -173.5 -261t-96.5 -282l-31 -158q-12 -62 -19 -124t-7 -118q0 -166 67 -245.5t208 -79.5q78 0 145.5 24.5t120 73t89 120.5t53.5 167q8 46 8 78q0 141 -148 141 h-184l27 136h176q79 0 130.5 45t68.5 139q3 16 3 31q0 27 -9 47.5t-26.5 36.5t-41.5 28.5t-54 23.5q-14 5 -33 14t-35.5 26.5t-28 45t-11.5 69.5q0 28 6 63h183q-4 -19 -4 -39q0 -47 23 -78t78 -54q16 -7 39 -18t43 -30t34.5 -47t14.5 -69q0 -12 -1.5 -22.5t-3.5 -23.5 q-16 -81 -70.5 -139t-146.5 -102l-4 -20q70 -48 108 -111t38 -133q0 -14 -1.5 -32.5t-3.5 -37.5q-14 -111 -64.5 -202t-130.5 -155.5t-187 -100t-233 -35.5z" />
-<glyph unicode="&#x10eb;" d="M466 0q-190 0 -282.5 85t-92.5 251q0 36 4.5 81.5t12.5 91.5q48 266 191.5 401.5t371.5 135.5q103 0 164 -28.5t75 -86.5h20l115 590h178l-195 -1004q-50 -256 -189.5 -386.5t-372.5 -130.5zM490 145q135 0 227 94t126 280q8 41 11.5 82t3.5 70q0 112 -54 172t-159 60 q-134 0 -225 -99.5t-125 -294.5q-7 -38 -10.5 -77t-3.5 -68q0 -106 52 -162.5t157 -56.5z" />
-<glyph unicode="&#x10ec;" d="M93 355q0 32 4.5 77t14.5 95l138 709q30 157 119 238.5t230 81.5q51 0 87 -11t61 -34.5t39.5 -60t20.5 -87.5h20q50 97 122 145t158 48q88 0 129.5 -50t41.5 -156q0 -70 -18 -158h-153q15 76 15 130t-16 75t-54 21q-67 0 -116.5 -52.5t-69.5 -155.5l-7 -35h-157l7 33 q4 18 6.5 41t2.5 43q0 126 -110 126q-143 0 -183 -213l-56 -289h20q21 28 55 52.5t76.5 42t91 27.5t97.5 10q63 0 123 -18.5t106.5 -60.5t75 -109.5t28.5 -165.5q0 -41 -5 -87t-14 -91q-27 -135 -85 -233t-133 -161.5t-160.5 -94t-169.5 -30.5q-76 0 -145.5 24t-122 70 t-83.5 112.5t-31 151.5zM286 390q0 -58 18 -104t48 -77.5t70 -48t84 -16.5q49 0 99.5 21.5t95.5 67t81 115.5t56 168q8 42 12.5 83.5t4.5 75.5q0 113 -50 171t-152 58h-2q-135 0 -222.5 -81.5t-122.5 -257.5q-10 -50 -15 -97t-5 -78z" />
-<glyph unicode="&#x10ed;" d="M428 -423q-196 0 -293 73t-97 217q0 29 3.5 59.5t8.5 55.5q12 56 39.5 102.5t79.5 96.5l123 -105q-23 -20 -37 -44t-22 -65q-8 -40 -8 -69q0 -43 19 -77t51.5 -57t74.5 -35.5t88 -12.5q51 0 102 15.5t95 47.5t76.5 82t45.5 119q6 25 6 51q0 125 -131 208q-77 95 -77 181 q0 8 0.5 16t1.5 16l-93 -19q-256 0 -256 225q0 24 3 49.5t8 53.5q64 333 386 333l75 -9l85 436h157l-99 -511q66 -48 66 -126q0 -19 -3 -38h184l-32 -162h-189q-19 -104 -113 -160l-15 -72q-1 -3 -1 -9q0 -64 141 -161q93 -74 93 -212q0 -42 -9 -90q-36 -196 -170 -299.5 t-367 -103.5zM542 562q80 0 132.5 48t72.5 153q4 19 5.5 35.5t1.5 30.5q0 127 -131 127h-2q-83 0 -135 -46t-72 -147q-4 -20 -6 -36t-2 -33q0 -132 132 -132h4z" />
-<glyph unicode="&#x10ee;" d="M468 0q-185 0 -279 87.5t-94 265.5q0 77 18 172l194 996h171l-118 -607h41q22 29 56.5 54t77 43t90.5 28t97 10q62 0 121 -18.5t104.5 -59.5t73.5 -107t28 -162q0 -40 -5 -86t-13 -91q-48 -260 -192 -392.5t-371 -132.5zM498 145q69 0 126 26t100.5 74.5t73.5 119 t46 160.5q8 41 11.5 82t3.5 70q0 111 -52.5 169t-158.5 58q-140 0 -228.5 -100t-121.5 -281q-8 -42 -11.5 -80t-3.5 -67q0 -112 54 -171.5t161 -59.5z" />
-<glyph unicode="&#x10ef;" d="M443 -423q-184 0 -277.5 80t-93.5 239q0 35 4 74t11 69q7 32 19 63t31 63.5t46 67t63 72.5l127 -89q-48 -59 -70 -100.5t-29 -75.5q-2 -10 -4.5 -24t-4 -29t-2.5 -30t-1 -27q0 -50 18.5 -89.5t50 -67t73 -42t86.5 -14.5q50 0 101.5 18.5t96 57.5t78.5 100t50 146 q6 30 6 62q0 137 -135 268q-115 143 -115 264q0 10 1 20.5t3 21.5l31 160l-304 120l35 180l302 -128l46 232h146l-53 -269l312 -127l-35 -177l-310 134l-24 -125q-1 -3 -1 -11q0 -75 166 -247q60 -71 92.5 -148t32.5 -149q0 -15 -1.5 -37t-4.5 -42q-14 -104 -58.5 -189 t-116 -146.5t-169.5 -95t-219 -33.5z" />
-<glyph unicode="&#x10f0;" d="M464 0q-192 0 -290 74t-98 227q0 53 12 115l19 101h188l-19 -101q-5 -23 -7.5 -44.5t-2.5 -41.5q0 -99 56.5 -144.5t175.5 -45.5q135 0 211 54.5t96 157.5q3 15 5.5 36t2.5 39q0 100 -82 100h-251l29 150h251q51 0 82 31t42 91q2 11 3 21t1 18q0 76 -82 76h-251l30 152 h249q91 0 118 132q1 3 1 10q0 25 -20.5 42t-54 29.5t-75.5 21t-85 15.5q-23 4 -56 11.5t-63 26.5t-51.5 53t-21.5 90q0 27 6 59h166q-1 -5 -1.5 -9.5t-0.5 -10.5q0 -33 23.5 -55t59.5 -36t80.5 -22t86.5 -14q23 -3 56.5 -10t64.5 -24t53 -48t22 -83q0 -13 -1.5 -25t-3.5 -25 q-14 -72 -59.5 -118t-120.5 -69l-4 -20q65 -25 93 -62.5t28 -88.5q0 -8 -1 -18.5t-3 -21.5q-25 -126 -184 -184l-4 -20q64 -43 90.5 -91t26.5 -89q0 -8 -0.5 -23.5t-2.5 -28.5q-9 -84 -51 -150.5t-111.5 -113t-163.5 -71.5t-206 -25z" />
-<glyph unicode="&#x10f1;" d="M456 -423q-229 0 -340.5 86.5t-111.5 252.5q0 56 12 133q9 55 23.5 115t32 119.5t35.5 115t33.5 100.5t27.5 76t16 42q15 39 27.5 77.5t21.5 81.5t14 93t5 110q0 45 -3 90.5t-10 93.5h185q9 -69 9 -140q0 -196 -68 -406q-24 -55 -48 -128t-45.5 -150.5t-39 -153.5 t-28.5 -136q-5 -25 -7.5 -47t-2.5 -47q0 -124 73 -181.5t222 -57.5q63 0 110 10t79.5 30t52 50t29.5 70q9 39 9 75q0 125 -103 125h-136l27 142h136q65 0 106 33.5t55 101.5q6 31 6 58q0 106 -107 106h-138l27 138h138q69 0 109 40.5t54 115.5q2 11 3 21t1 18q0 46 -27 69 t-84 23h-138l28 145h136q134 0 162 142q1 4 1 12q0 73 -165 103q-111 27 -111 148q0 29 6 64h166q-1 -3 -1 -10q0 -21 14 -38t37 -30.5t53 -25.5t62 -23q17 -6 38 -15.5t40 -27t31.5 -44.5t12.5 -68q0 -9 -1 -20.5t-3 -24.5q-14 -78 -69 -130t-149 -69l-4 -20 q78 -19 111.5 -58t33.5 -97q0 -9 -1 -20.5t-3 -23.5q-17 -94 -76 -149t-146 -68l-4 -20q142 -31 142 -163q0 -14 -1.5 -28t-3.5 -30q-32 -146 -217 -194l-4 -20q69 -24 102 -71.5t33 -119.5q0 -16 -1.5 -34t-5.5 -38q-28 -147 -148.5 -223t-336.5 -76z" />
-<glyph unicode="&#x10f2;" d="M114 -60q148 0 246 89q-188 135 -188 362q0 29 3 61.5t10 66.5q27 138 84.5 237t132.5 163.5t161.5 95t170.5 30.5q76 0 146 -24t123.5 -70.5t85 -113.5t31.5 -152q0 -32 -4.5 -75t-14.5 -91q-32 -156 -120.5 -277.5t-255.5 -212.5q71 -89 203 -89h15l-41 -209 q-250 69 -363 263q-115 -97 -231.5 -162.5t-234.5 -100.5zM563 118q73 22 130.5 56.5t101 83.5t73 113.5t46.5 147.5q16 80 16 144q0 121 -55 180t-157 59q-69 0 -127 -26.5t-102.5 -76t-74.5 -120.5t-45 -160q-5 -31 -8 -64t-3 -58q0 -103 52 -175t153 -104z" />
-<glyph unicode="&#x10f3;" d="M501 -283q134 0 215 65t106 198l6 32q9 46 9 85q0 213 -267 213h-116l31 160h114q75 0 134.5 25.5t104 72t74 112.5t43.5 147l13 74l-486 -30l-40 -204h-173l68 349l882 29q-90 -465 -402 -649q210 -95 210 -296q0 -42 -9 -88l-6 -32q-20 -105 -73 -181t-126 -125.5 t-159 -73.5t-171 -24q-78 0 -150.5 19.5t-128 57.5t-88.5 93t-33 127q0 21 3 49t9 58l52 111l177 -20l-39 -91q-4 -21 -6 -40.5t-2 -38.5q0 -184 224 -184z" />
-<glyph unicode="&#x10f4;" d="M425 -425q-391 0 -391 294q0 26 3 53.5t8 57.5h190q-4 -22 -6 -41.5t-2 -38.5q0 -184 225 -184q266 0 319 264l11 55q3 16 4.5 33t1.5 31q0 172 -235 172h-156l30 157h156q278 11 359 425q-130 -37 -275 -37h-8q-392 0 -392 265q0 41 9 89q35 192 169 289.5t363 97.5h3 l-28 -142q-159 0 -248 -62.5t-112 -183.5q-2 -12 -3.5 -23.5t-1.5 -23.5q0 -81 68.5 -122t198.5 -41q126 0 247 41t252 127l-51 -264q-77 -395 -405 -500l-4 -20q125 -26 190 -86t65 -157q0 -14 -1.5 -31.5t-4.5 -33.5l-11 -55q-41 -206 -176.5 -305.5t-360.5 -99.5z" />
-<glyph unicode="&#x10f5;" d="M442 0q-196 0 -296.5 64t-100.5 194q0 19 2 37.5t6 39.5q33 180 165.5 270t356.5 90h273l31 161h-273q-391 0 -391 274q0 43 10 90q34 164 159.5 250.5t357.5 86.5q197 0 291.5 -62.5t94.5 -189.5q0 -20 -2 -42.5t-6 -42.5l-42 -216h114l-29 -148h-114l-31 -161h114 l-35 -178h-114l-35 -182q-32 -164 -155.5 -249.5t-350.5 -85.5zM908 1004l42 216q2 12 3.5 23.5t1.5 23.5q0 148 -233 148q-134 0 -211 -48.5t-97 -148.5q-2 -14 -3.5 -28t-1.5 -27q0 -159 226 -159h273zM473 140q268 0 308 211l38 196h-273q-132 0 -207.5 -52t-94.5 -154 q-2 -13 -3.5 -24.5t-1.5 -23.5q0 -153 234 -153z" />
-<glyph unicode="&#x10f6;" d="M245 -282q183 0 219 231l151 777q5 28 7.5 51t2.5 41q0 86 -53 86l-97 -1h-1q-114 0 -150 -188l-62 -319q-5 -27 -8 -50.5t-3 -44.5q0 -122 96 -122l-28 -148q-258 1 -258 253q0 27 3 59t10 67l47 240q38 197 132.5 296.5t249.5 99.5q183 0 223 -145h16q21 33 52 60 t67.5 46t77 29t81.5 10q46 0 89.5 -14.5t76.5 -46t53 -80t20 -117.5q0 -59 -15 -138l-48 -244q-39 -201 -133.5 -303.5t-241.5 -102.5q-72 0 -104 27t-36 89h-15l-31 -152q-40 -197 -146.5 -292.5t-271.5 -95.5zM833 145q66 0 103 41.5t53 125.5l81 417q4 17 5.5 33.5 t1.5 30.5q0 56 -26 83.5t-83 27.5h-76q-73 0 -105 -167l-74 -381q-4 -21 -6 -39.5t-2 -35.5q0 -69 34 -102.5t94 -33.5z" />
-<glyph unicode="&#x10f7;" d="M461 -423q-426 0 -426 312q0 26 3 53.5t8 57.5q16 87 46 154.5t68 118t81 86.5t84.5 60.5t78.5 39.5t64 25q88 31 151.5 55.5t107.5 49.5t70 54.5t38 71.5q5 18 7 34.5t2 30.5q0 63 -31 93t-100 30q-85 0 -138 -41t-67 -118l-6 -56l-169 -21l3 65q31 161 136.5 237.5 t271.5 76.5q290 0 290 -236q0 -24 -3 -53.5t-8 -54.5q-23 -107 -122 -191.5t-283 -151.5q-168 -40 -260.5 -127t-119.5 -224q-9 -47 -9 -85q0 -207 264 -207q161 0 258.5 74t126.5 223q4 19 5.5 36.5t1.5 32.5q0 71 -37 108l172 92q28 -38 41.5 -84.5t13.5 -95.5 q0 -20 -2 -47.5t-7 -54.5q-17 -104 -66.5 -183t-127 -132.5t-181.5 -80.5t-230 -27z" />
-<glyph unicode="&#x10f8;" d="M476 -423q-198 0 -296 73t-98 218q0 26 3 51t8 54l204 1049h173l-109 -564q-2 -11 -3 -21t-1 -18q0 -38 17 -66.5t48 -47.5t74.5 -28.5t96.5 -9.5q79 0 138 20t101 59t68 95.5t38 129.5q4 23 6 44.5t2 42.5q0 197 -188 343l184 63q94 -90 143 -189.5t49 -202.5 q0 -21 -2 -48t-6 -53q-15 -103 -58 -187t-111.5 -144t-161.5 -92.5t-207 -32.5h-4q-185 0 -253 89h-20l-44 -227q-4 -20 -6 -38t-2 -36q0 -186 247 -186h3q263 0 313 260h187q-40 -201 -171.5 -300.5t-361.5 -99.5z" />
-<glyph unicode="&#x10f9;" d="M490 -425q-154 0 -227 55t-73 170q0 40 9 87q45 231 301 315q-340 75 -340 330q0 40 9 87q22 114 81 197.5t139.5 138t175 80.5t188.5 26q87 0 166.5 -21.5t140.5 -63t97.5 -102.5t36.5 -139q0 -22 -3 -53.5t-9 -62.5q-28 -143 -141 -252.5t-308 -193.5 q-315 -116 -348 -275q-3 -15 -4.5 -31.5t-1.5 -30.5q0 -62 33.5 -91t107.5 -29q83 0 139.5 35.5t70.5 105.5l15 76h178l-15 -76q-28 -142 -134.5 -212t-283.5 -70zM623 326q321 40 372 293q9 46 9 83q0 109 -67 162t-196 53q-159 0 -259 -77t-123 -221q-3 -20 -4.5 -38 t-1.5 -32q0 -89 65.5 -148t204.5 -75z" />
-<glyph unicode="&#x10fa;" d="M636 -134q1 0 -4 8t-12.5 18.5t-15.5 22t-13 17.5q-48 60 -140 60q-131 0 -221 -116l-115 74q87 102 207 126l6 30q-154 130 -154 354q0 71 16 148q45 220 184.5 328t384.5 110q369 -32 369 -278q0 -201 -240 -541l-134 61q190 292 190 446q0 82 -55 125.5t-164 43.5 q-140 0 -227.5 -73t-116.5 -220q-7 -34 -11 -75.5t-4 -82.5q0 -29 4 -62t17.5 -71t40.5 -81t73 -91q171 -42 265 -189l-130 -93v1z" />
-<glyph unicode="&#x10fb;" d="M383 995h192l-34 -176h-192zM777 630h186l-34 -174h-186zM233 224h189l-34 -174h-189z" />
-<glyph unicode="&#x10fc;" d="M371 938q0 20 3 47.5t9 57.5l64 332q18 94 74.5 137.5t146.5 43.5h235l-16 -82l-258 2q-37 0 -57.5 -21.5t-28.5 -59.5l-30 -158l138 79q165 0 165 -172q0 -23 -3 -48t-8 -53q-15 -76 -43.5 -130.5t-64 -89.5t-76 -51.5t-79.5 -16.5q-35 0 -66 12.5t-54 36t-37 57.5 t-14 77zM552 836q64 0 103 55.5t57 151.5q4 20 6 37.5t2 34.5q0 54 -24.5 81t-70.5 27q-58 0 -94.5 -45t-56.5 -141q-5 -25 -7.5 -48t-2.5 -41q0 -112 88 -112z" />
-<glyph unicode="&#x1e80;" d="M530 1866h182l147 -264h-139zM145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
-<glyph unicode="&#x1e81;" d="M430 1646h198l197 -376h-143zM92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
-<glyph unicode="&#x1e82;" d="M874 1866h208l-307 -264h-160zM145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
-<glyph unicode="&#x1e83;" d="M926 1646h219l-395 -376h-156zM92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
-<glyph unicode="&#x1e84;" d="M532 1602q-16 0 -26 11t-7 28l27 140q2 11 10 17t19 6h140q16 0 25.5 -11t6.5 -28l-27 -140q-2 -11 -10 -17t-19 -6h-139zM923 1602q-16 0 -26 11t-7 28l27 140q2 11 10 17t19 6h140q16 0 25.5 -11t6.5 -28l-27 -140q-2 -11 -10 -17t-19 -6h-139zM178 1493h191l-90 -1210 l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
-<glyph unicode="&#x1e85;" d="M469 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM92 1120h176l15 -905l268 578h162 l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
-<glyph unicode="&#x1ebc;" d="M700 1728q-69 0 -107 -101h-125q35 108 96.5 163.5t143.5 55.5q72 0 135 -47l35 -26q36 -27 72 -27q41 0 68.5 26.5t39.5 73.5h125q-32 -108 -96 -163.5t-149 -55.5q-33 0 -61.5 9.5t-60.5 33.5l-34 25l-2 1q-44 32 -80 32zM53 0l291 1493h885l-33 -170h-684l-86 -442 h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#x1ebd;" d="M1111 1554q-36 -284 -224 -284q-37 0 -71.5 15t-73.5 54l-47 49q-36 37 -74 37q-41 0 -63 -38.5t-31 -114.5h-125q18 137 73.5 209.5t149.5 72.5q41 0 74.5 -15.5t71.5 -53.5l47 -47q22 -22 36.5 -30.5t33.5 -8.5q81 0 98 155h125zM213 83q-115 112 -115 327 q0 154 60 304t166 259q81 85 184 131q99 45 211 45q184 0 296 -114q55 -57 83 -135t28 -171q0 -29 -5 -84l-5 -48l-12 -81h-807q-12 -60 -12 -107q0 -135 77 -209q76 -73 222 -73q87 0 195 29q106 29 218 84l-36 -183q-102 -42 -205 -64q-98 -22 -198 -22q-228 0 -345 112z M938 659q7 33 8 45q2 22 2 37q0 115 -65 183q-64 67 -177 67q-129 0 -229 -90q-48 -44 -86 -105.5t-59 -136.5h606z" />
-<glyph unicode="&#x1ef2;" d="M540 1866h182l147 -264h-139zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#x1ef3;" d="M470 1646h198l197 -376h-143zM20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
-<glyph unicode="&#x1ef8;" d="M690 1728q-69 0 -107 -101h-125q35 108 96.5 163.5t143.5 55.5q72 0 135 -47l35 -26q36 -27 72 -27q41 0 68.5 26.5t39.5 73.5h125q-32 -108 -96 -163.5t-149 -55.5q-33 0 -61.5 9.5t-60.5 33.5l-34 25l-2 1q-44 32 -80 32zM377 0l131 670l-313 823h202l236 -651l497 651 h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#x1ef9;" d="M1156 1554q-36 -284 -224 -284q-37 0 -71.5 15t-73.5 54l-47 49q-36 37 -74 37q-41 0 -63 -38.5t-31 -114.5h-125q18 137 73.5 209.5t149.5 72.5q41 0 74.5 -15.5t71.5 -53.5l47 -47q22 -22 36.5 -30.5t33.5 -8.5q81 0 98 155h125zM-9 -426l29 154h108q82 0 141.5 48 t116.5 158l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-38 -68 -52 -90q3 5 -29 -50q-4 -8 -8.5 -15t-7.5 -14l-32 -56l-36 -63q-99 -174 -140 -243q-34 -57 -69 -104q-30 -39 -61.5 -67t-70.5 -47q-73 -37 -171 -37h-148z" />
-<glyph unicode="&#x2000;" />
-<glyph unicode="&#x2001;" />
-<glyph unicode="&#x2002;" />
-<glyph unicode="&#x2003;" />
-<glyph unicode="&#x2004;" />
-<glyph unicode="&#x2005;" />
-<glyph unicode="&#x2006;" />
-<glyph unicode="&#x2007;" />
-<glyph unicode="&#x2008;" />
-<glyph unicode="&#x2009;" />
-<glyph unicode="&#x200a;" />
-<glyph unicode="&#x2010;" d="M336 643h522l-33 -164h-522z" />
-<glyph unicode="&#x2011;" d="M336 643h522l-33 -164h-522z" />
-<glyph unicode="&#x2012;" d="M-23 633h1233l-28 -141h-1233z" />
-<glyph unicode="&#x2013;" d="M-23 633h1233l-28 -141h-1233z" />
-<glyph unicode="&#x2014;" d="M-23 633h1233l-28 -141h-1233z" />
-<glyph unicode="&#x2015;" d="M-23 633h1233l-28 -141h-1233z" />
-<glyph unicode="&#x2016;" d="M285 1565h172v-2048h-172v2048zM775 1565h172v-2048h-172v2048z" />
-<glyph unicode="&#x2017;" d="M0 -163h1233v-80h-1233v80zM0 -403h1233v-80h-1233v80z" />
-<glyph unicode="&#x2018;" d="M504 1174l270 382h154l-172 -382l-41 -207h-252z" />
-<glyph unicode="&#x2019;" d="M635 1350l41 206h252l-41 -206l-271 -383h-153z" />
-<glyph unicode="&#x201a;" d="M375 96l41 207h252l-41 -207l-271 -383h-153z" />
-<glyph unicode="&#x201b;" d="M540 1350l42 206h252l-42 -206l17 -383h-153z" />
-<glyph unicode="&#x201c;" d="M285 1174l272 382h154l-174 -382l-39 -207h-252zM743 1174l273 382h153l-172 -382l-41 -207h-251z" />
-<glyph unicode="&#x201d;" d="M393 1350l41 206h252l-41 -206l-270 -383h-154zM852 1350l41 206h252l-41 -206l-270 -383h-154z" />
-<glyph unicode="&#x201e;" d="M156 96l41 207h252l-39 -207l-273 -383h-153zM614 96l41 207h252l-39 -207l-272 -383h-154z" />
-<glyph unicode="&#x201f;" d="M298 1350l42 206h252l-42 -206l17 -383h-154zM757 1350l42 206h252l-42 -206l17 -383h-154z" />
-<glyph unicode="&#x2020;" d="M563 920h-368l30 153h367l82 420h176l-82 -420h367l-31 -153h-367l-217 -1117h-174z" />
-<glyph unicode="&#x2021;" d="M426 223h-367l31 154h367l106 543h-368l30 153h367l82 420h176l-82 -420h367l-31 -153h-367l-104 -543h366l-30 -154h-367l-82 -420h-174z" />
-<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -63 -22.5 -116t-64.5 -94q-44 -43 -98 -64.5t-114 -21.5z" />
-<glyph unicode="&#x2023;" d="M319 1137l674 -376l-674 -376v752z" />
-<glyph unicode="&#x2026;" d="M-33 0q-28 0 -28 25q0 5 1 8l49 243q6 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-49 -243q-6 -27 -32 -27h-192zM377 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192zM787 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27 h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192z" />
-<glyph unicode="&#x202f;" />
-<glyph unicode="&#x2030;" d="M287 856q-63 0 -115 22.5t-90 61.5q-41 42 -61.5 94t-20.5 110q0 61 22 114t61 92q38 38 90.5 60t112.5 22q58 0 110.5 -20.5t93.5 -61.5q36 -36 59.5 -88.5t23.5 -117.5q0 -60 -21.5 -112t-60.5 -92t-91 -62t-113 -22zM287 979q69 0 118 49q48 48 48 117q0 68 -49 117 t-117 49q-69 0 -117 -48q-49 -49 -49 -118q0 -38 13 -66t36 -51t51 -36t66 -13zM35 664l1044 415l39 -96l-1046 -416zM329 0q-62 0 -114 22.5t-89 60.5q-41 42 -61 94.5t-20 111.5q0 60 20.5 111.5t62.5 93.5q42 41 93 61t108 20q63 0 115 -22.5t89 -59.5q41 -41 62 -93 t21 -111t-21 -111.5t-61 -93.5q-38 -38 -90.5 -61t-114.5 -23zM946 0q-59 0 -111.5 21t-92.5 61q-38 38 -60.5 91.5t-22.5 115.5q0 63 22.5 114.5t59.5 88.5q41 41 93 62t111 21q62 0 115 -22.5t91 -60.5q41 -41 61.5 -93.5t20.5 -109.5q0 -59 -21 -111.5t-61 -93.5 q-38 -39 -91 -61.5t-114 -22.5zM329 121q35 0 65.5 13.5t52.5 35.5t35.5 52.5t13.5 65.5q0 33 -12.5 64t-36.5 55q-20 20 -50.5 34t-67.5 14q-32 0 -62 -12t-53 -35q-20 -20 -34 -51t-14 -69q0 -35 12.5 -65t34.5 -53q23 -23 52.5 -36t63.5 -13zM946 121q70 0 118 49 q26 26 37 55.5t11 62.5q0 34 -11.5 63t-37.5 55q-49 49 -117 49q-69 0 -117 -48q-49 -49 -49 -119q0 -33 11.5 -62.5t37.5 -55.5q24 -24 52 -36.5t65 -12.5z" />
-<glyph unicode="&#x2031;" d="M286 856q-60 0 -112 22.5t-91 61.5t-61 91.5t-22 112.5t22 112.5t61 91.5t91.5 61.5t112.5 22.5t112 -22.5t91 -61t61 -91t22 -112.5t-22 -113t-61 -92t-91.5 -61.5t-112.5 -22.5zM287 979q34 0 64.5 13t53 35.5t35.5 52.5t13 64t-13 64t-36 53t-53.5 36.5t-65.5 13.5 q-67 0 -115 -48q-49 -49 -49 -117q0 -35 13 -65.5t35.5 -53t52.5 -35.5t65 -13zM35 664l1044 415l39 -96l-1046 -416zM239 0q-51 0 -94.5 22t-76 60.5t-50.5 91t-18 113.5t18 113.5t50.5 91.5t76.5 61t95 22q45 0 87 -19t80 -64q5 -6 9.5 -12.5t9.5 -13.5q5 7 9.5 13t9.5 13 q69 83 172 83q47 0 88 -19t80 -64q5 -5 8.5 -10l10.5 -15q7 11 12 16.5t7 8.5q34 40 75.5 61.5t92.5 21.5q52 0 96 -22t76.5 -61t51 -91t18.5 -112t-18.5 -113t-51 -92t-77 -61.5t-95.5 -22.5q-52 0 -93 22.5t-75 61.5q-5 5 -8.5 10l-10.5 15q-5 -7 -9 -12.5t-10 -12.5 q-72 -84 -169 -84q-101 0 -171 84q-5 7 -10 13t-9 13q-5 -7 -9.5 -13t-9.5 -13q-71 -84 -168 -84zM237 121q29 0 54.5 13.5t44 36t29.5 53t11 64.5t-11 64t-29.5 53t-44 36.5t-54.5 13.5t-53.5 -13t-43 -35.5t-29 -53t-10.5 -65.5t10.5 -65.5t29 -53t43 -35.5t53.5 -13z M616 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5t-44.5 36t-53.5 13q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13zM994 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5t-44.5 36t-53.5 13 q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13z" />
-<glyph unicode="&#x2034;" d="M591 1493h203l-361 -373h-87zM891 1493h203l-361 -373h-87zM1191 1493h203l-361 -373h-87z" />
-<glyph unicode="&#x2035;" d="M718 1493h203l101 -373h-87z" />
-<glyph unicode="&#x2036;" d="M568 1493h203l101 -373h-87zM868 1493h203l101 -373h-87z" />
-<glyph unicode="&#x2037;" d="M418 1493h203l101 -373h-87zM718 1493h203l101 -373h-87zM1018 1493h203l101 -373h-87z" />
-<glyph unicode="&#x2039;" d="M249 559l17 82l551 418l-43 -211l-351 -264l248 -267l-33 -176z" />
-<glyph unicode="&#x203a;" d="M430 352l351 262l-250 269l35 176l387 -418l-17 -82l-549 -418z" />
-<glyph unicode="&#x203c;" d="M337 1053l70 445h265l-70 -445l-157 -567h-121zM837 1053l70 445h265l-70 -445l-157 -567h-121zM296 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5 q-24 -23 -54.5 -35.5t-70.5 -12.5zM796 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5z" />
-<glyph unicode="&#x203d;" d="M607 1342q-14 -3 -33.5 -9t-33.5 -11q-42 -14 -96.5 -41.5t-110.5 -61.5l37 188q98 54 199.5 83.5t207.5 29.5q85 0 150 -20t109.5 -56t67.5 -87t23 -114q0 -18 -2 -37t-6 -39q-8 -38 -22.5 -73t-40.5 -70.5t-64 -73.5t-92 -82l-105 -86q-41 -33 -66.5 -58.5t-42 -49 t-25 -48t-14.5 -55.5l-33 -170h-190zM768 961q36 30 61.5 54t43 46.5t27.5 45.5t15 50q2 11 3 21.5t1 19.5q0 33 -10 57.5t-27 42.5t-39 29.5t-45 18.5l-84 -430zM440 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13 q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
-<glyph unicode="&#x203e;" d="M0 1547h1233v-80h-1233v80z" />
-<glyph unicode="&#x203f;" d="M614 -485q-168 0 -336 58t-346 178v126q91 -55 173.5 -92.5t167.5 -63.5t167.5 -39t172.5 -13q177 0 345.5 51.5t341.5 156.5v-126q-177 -118 -346.5 -177t-339.5 -59z" />
-<glyph unicode="&#x2045;" d="M621 1556h423l-28 -143h-240l-136 -699h240l-28 -143h-240l-135 -698h240l-27 -143h-426z" />
-<glyph unicode="&#x2046;" d="M176 -127h240l135 698h-240l29 143h240l135 699h-240l29 143h424l-357 -1826h-424z" />
-<glyph unicode="&#x2047;" d="M157 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5 t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM773 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46 t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66 q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM162 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5 t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM782 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
-<glyph unicode="&#x2048;" d="M233 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5 t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM927 1053l70 445h265l-70 -445l-157 -567h-121zM232 -40q-26 0 -48 8.5t-40 28.5 q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM895 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13 q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
-<glyph unicode="&#x2049;" d="M743 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5 t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM257 1053l70 445h265l-70 -445l-157 -567h-121zM225 -40q-26 0 -48 8.5t-40 28.5 q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM742 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13 q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
-<glyph unicode="&#x204b;" d="M367 1493h448q94 0 169 -23t127 -66.5t79.5 -105.5t27.5 -139q0 -42 -9 -88q-17 -92 -62 -166t-113.5 -128t-159 -87t-198.5 -41l-164 -846h-141l304 1567h-191l-304 -1567h-141z" />
-<glyph unicode="&#x205f;" />
-<glyph unicode="&#x2070;" d="M611 653q-131 0 -194.5 67.5t-63.5 208.5q0 57 10 116.5t27.5 117t42 110t54.5 93.5q59 82 134 118t169 36q131 0 195.5 -67t64.5 -207q0 -55 -9.5 -114.5t-27.5 -117.5t-42.5 -111t-54.5 -95q-110 -155 -305 -155zM625 745q57 0 100.5 26.5t78.5 84.5q23 38 43 88 t34.5 104.5t23 109.5t8.5 102q0 90 -32.5 129t-101.5 39q-57 0 -101.5 -25.5t-80.5 -84.5q-23 -38 -43 -88.5t-34.5 -105.5t-23 -110t-8.5 -101q0 -88 33 -128t104 -40zM702 1014q-38 0 -65 21.5t-27 53.5q0 16 7.5 29.5t20 24t29 16.5t34.5 6t34.5 -6t29 -16.5t19.5 -24.5 t7 -30q0 -31 -25.5 -52.5t-63.5 -21.5z" />
-<glyph unicode="&#x2074;" d="M662 1304h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM684 1415l76 391l-342 -391h266z" />
-<glyph unicode="&#x2075;" d="M548 1113q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
-<glyph unicode="&#x2076;" d="M634 1113q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5 q-55 -59 -125 -83.5t-148 -24.5zM639 1201q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z" />
-<glyph unicode="&#x2077;" d="M876 1860h-476l21 95h629l-10 -53l-541 -782h-146z" />
-<glyph unicode="&#x2078;" d="M617 1113q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35 q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM716 1614q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM625 1200q49 0 89.5 13.5t69.5 38t45 58.5t16 74 q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
-<glyph unicode="&#x2079;" d="M543 1113q-54 0 -100.5 8.5t-89.5 24.5l24 104q39 -20 84.5 -31t94.5 -11q135 0 218 81.5t119 237.5q-46 -57 -107 -86.5t-145 -29.5q-115 0 -180 56t-65 160q0 63 25 128t74 117q102 108 275 108q131 0 205.5 -65.5t74.5 -199.5q0 -40 -7 -86.5t-19.5 -94t-31 -94.5 t-40.5 -87q-133 -240 -409 -240zM677 1499q54 0 97.5 20t74.5 53t48 77t17 92q0 75 -40 113t-109 38q-53 0 -96 -21.5t-73 -57t-46.5 -80.5t-16.5 -92q0 -73 38 -107.5t106 -34.5z" />
-<glyph unicode="&#x207a;" d="M564 980h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
-<glyph unicode="&#x207b;" d="M284 1075h666v-95h-666v95z" />
-<glyph unicode="&#x207c;" d="M284 1189h666v-95h-666v95zM284 961h666v-96h-666v96z" />
-<glyph unicode="&#x207d;" d="M502 517q-25 54 -43 102t-30 92.5t-17.5 86.5t-5.5 85q0 164 80.5 331.5t240.5 323.5h100q-149 -169 -224 -338.5t-75 -340.5q0 -82 18.5 -166.5t56.5 -175.5h-101v0z" />
-<glyph unicode="&#x207e;" d="M406 517q149 169 224.5 339t75.5 339q0 164 -76 343h102q48 -106 72 -192.5t24 -174.5q0 -168 -83.5 -335t-238.5 -319h-100v0z" />
-<glyph unicode="&#x208a;" d="M564 312h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
-<glyph unicode="&#x208b;" d="M284 407h666v-95h-666v95z" />
-<glyph unicode="&#x208c;" d="M284 521h666v-95h-666v95zM284 293h666v-96h-666v96z" />
-<glyph unicode="&#x208d;" d="M502 -151q-25 54 -43 102t-30 92.5t-17.5 86.5t-5.5 85q0 164 80.5 331.5t240.5 323.5h100q-149 -169 -224 -338.5t-75 -340.5q0 -82 18.5 -166.5t56.5 -175.5h-101v0z" />
-<glyph unicode="&#x208e;" d="M406 -151q149 169 224.5 339t75.5 339q0 164 -76 343h102q48 -106 72 -192.5t24 -174.5q0 -168 -83.5 -335t-238.5 -319h-100v0z" />
-<glyph unicode="&#x20a0;" d="M639 440q-63 -54 -126.5 -81t-133.5 -27q-74 0 -131 29t-97 84t-60.5 134.5t-20.5 180.5q0 36 3 74t8 79q18 135 58.5 242.5t99 183t134 115.5t162.5 40q139 0 230 -107l-21 -159q-45 74 -99 107.5t-122 33.5q-133 0 -217.5 -117t-113.5 -339q-5 -39 -7.5 -75t-2.5 -68 q0 -156 56 -234.5t162 -78.5q137 0 260 141l70 522h487l-18 -128h-383l-44 -331h367l-17 -128h-367l-54 -405h392l-17 -128h-496z" />
-<glyph unicode="&#x20a1;" d="M228 107q-5 5 -9 10l-8 10q-133 155 -133 435q0 182 51 352.5t145 310.5q49 74 105 129.5t121 92t140 55t163 18.5h10l30 73h122l-37 -87q39 -8 74 -21l14 -6l47 114h122l-69 -167q16 -11 31 -23t31 -25l-34 -213q-23 29 -47.5 53t-49.5 44l-466 -1127h11q115 0 219.5 44 t204.5 134l-39 -239q-195 -103 -397 -103q-17 0 -33 1t-32 3l-26 -64h-121l35 87q-22 7 -42.5 16.5t-40.5 20.5l-52 -125h-121zM744 1354q-57 -5 -110 -25t-102 -59t-93.5 -99.5t-83.5 -146.5q-51 -111 -76.5 -228t-25.5 -237q0 -86 13.5 -150t39.5 -115zM951 1321 q-41 19 -87 28l-477 -1153q36 -27 81 -42z" />
-<glyph unicode="&#x20a2;" d="M587 -29q-121 0 -215.5 40.5t-160 116.5t-99.5 185.5t-34 248.5q0 89 13.5 179t39 175.5t62 164t81.5 145.5q103 152 235 223t293 71q115 0 207.5 -35t175.5 -107l-34 -213q-81 97 -168.5 144t-193.5 47q-142 0 -248.5 -82t-183.5 -250q-51 -112 -76.5 -230.5 t-25.5 -233.5q0 -108 21 -183.5t58.5 -125.5t88 -76.5t110.5 -35.5l141 869h138l-27 -157q55 88 129.5 134.5t162.5 46.5q21 0 43 -3t43 -10l-25 -164q-21 14 -48 21t-55 7q-55 0 -103.5 -25.5t-88 -73t-68 -116t-42.5 -154.5l-62 -374q37 5 78 16t85 31t91.5 50.5 t97.5 75.5l-39 -239q-100 -51 -200 -77t-197 -26z" />
-<glyph unicode="&#x20a3;" d="M218 260h-161l25 148h161l184 1085h748l-29 -170h-572l-75 -440h517l-29 -170h-517l-52 -305h187l-26 -148h-186l-44 -260h-176z" />
-<glyph unicode="&#x20a4;" d="M76 170h216l66 365h-188l26 143h187l26 149h-186l27 143h185l8 46q23 131 65.5 226.5t104.5 157t143.5 91t182.5 29.5q73 0 136 -15t128 -45l-33 -182q-59 41 -117 61.5t-127 20.5q-64 0 -112.5 -19.5t-84.5 -63.5t-61 -114t-43 -170l-4 -23h357l-27 -143h-356l-26 -149 h355l-26 -143h-355l-66 -365h495l-30 -170h-897z" />
-<glyph unicode="&#x20a5;" d="M558 698q2 26 3.5 49.5t1.5 45.5q0 96 -25.5 145t-84.5 49q-42 0 -78.5 -25t-66 -71t-50 -111.5t-29.5 -146.5l-73 -633h-110l130 1120h110l-21 -174q95 201 236 201q37 0 64 -13.5t46 -36t31 -51.5t20 -61l116 325h101l-77 -214q61 51 131 51q51 0 88.5 -30t59.5 -93 q26 -78 26 -191q0 -36 -2.5 -75t-7.5 -82l-78 -676h-110l77 670q5 36 6.5 67t1.5 58q0 35 -3 63t-11 51q-13 39 -36 58.5t-60 19.5q-42 0 -78.5 -24.5t-66 -70.5t-50 -111.5t-29.5 -147.5l-73 -633h-110l34 285l-172 -475h-101z" />
-<glyph unicode="&#x20a6;" d="M125 550h-162l24 123h162l28 147h-162l24 123h162l107 550h272l104 -550h230l107 550h196l-107 -550h162l-24 -123h-162l-28 -147h162l-24 -123h-162l-107 -550h-272l-104 550h-230l-107 -550h-196zM476 943l-39 206l-40 -206h79zM527 673l-27 147h-127l-28 -147h182z M862 673l28 147h-182l27 -147h127zM838 550h-79l39 -206z" />
-<glyph unicode="&#x20a7;" d="M928 -29q-41 0 -89 17q-11 4 -23 9.5t-17 7.5l-1 -5h-85q-158 0 -158 258q0 25 1.5 51.5t4.5 59.5l58 608h-51q-8 -73 -27.5 -141t-53.5 -120.5t-84.5 -84t-119.5 -31.5h-123l-57 -600h-98l141 1493h227q100 0 151 -94.5t51 -278.5h57l30 318h89l-30 -318h179l-5 -47 q62 74 157 74q87 0 167 -60l-17 -174q-71 80 -156 80q-35 0 -63 -13t-47.5 -37t-30 -57t-10.5 -73q0 -32 6.5 -55t19 -40.5t30 -31.5t39.5 -29q5 -3 4 -2.5t6 -3.5l29 -18q45 -26 73.5 -51.5t45.5 -55.5t23.5 -67.5t6.5 -85.5q0 -89 -18 -163t-51 -127t-79 -82.5t-102 -29.5 zM299 766q42 0 74.5 23t54 65.5t33 102.5t11.5 133q0 124 -30.5 180.5t-84.5 56.5h-128l-53 -561h123zM938 125q34 0 61.5 16t47 43t30 62t10.5 74q0 60 -26.5 97t-81.5 68l-9 5l-31 16q-72 37 -101.5 100t-29.5 160q0 48 7.5 105.5t26.5 105.5h-134l-57 -608 q-3 -34 -4.5 -56t-1.5 -39q0 -62 19 -91t59 -29h21l7 77q48 -51 95 -78.5t92 -27.5z" />
-<glyph unicode="&#x20a8;" d="M831 -29q-54 0 -106 18q-24 7 -49 18l1 -7h-125l-67 383q-26 151 -59 199q-34 49 -104 49h-127l-70 -631h-116l166 1493h263q129 0 189.5 -80t60.5 -233q0 -27 -1.5 -56t-5.5 -61q-17 -145 -62 -234t-125 -129q35 -23 62 -94q27 -72 49 -198l32 -180q51 -51 104 -77 t110 -26q75 0 118 43t55 127q3 22 3 42q0 30 -8.5 52t-25.5 38.5t-43 30.5t-61 29l-35 15q-81 31 -118 90.5t-37 153.5q0 17 1 34.5t3 36.5q18 159 91.5 244.5t198.5 85.5q54 0 105 -15.5t88 -44.5l-19 -174q-80 80 -187 80q-74 0 -118 -40t-55 -128q-1 -9 -1.5 -16.5 t-0.5 -15.5q0 -24 6 -43t20.5 -35.5t38 -31t59.5 -28.5l35 -14q87 -35 131 -95t44 -162q0 -17 -1 -36t-4 -39q-10 -78 -35 -140.5t-63.5 -106.5t-90 -67.5t-114.5 -23.5zM360 797q85 0 134.5 67t64.5 199q2 20 3 37.5t1 34.5q0 192 -144 192h-146l-59 -530h146z" />
-<glyph unicode="&#x20a9;" d="M108 896h-104l18 143h81l-5 117h-61l18 143h38l-7 194h133l7 -194h347l56 194h149l6 -194h348l56 194h134l-57 -194h37l-18 -143h-61l-33 -117h79l-18 -143h-103l-261 -896h-166l-29 896h-128l-257 -896h-166zM498 1039l33 117h-300l4 -117h263zM687 1039l-3 117h-45 l-33 -117h81zM1056 1039l34 117h-300l4 -117h262zM457 896h-216l23 -665zM1015 896h-216l24 -665z" />
-<glyph unicode="&#x20aa;" d="M242 1490l403 3q157 1 236 -95t79 -277q0 -49 -6 -103.5t-17 -114.5l-69 -367h-142l63 342q11 63 17 115t6 97q0 126 -48 182.5t-150 56.5h-259l-253 -1358h-141zM664 -29q-157 0 -236 92.5t-79 277.5q0 49 6 103.5t17 116.5l68 367h142l-63 -342q-11 -63 -17 -115 t-6 -97q0 -126 48.5 -182.5t150.5 -56.5h261l250 1358h143l-287 -1522h-398z" />
-<glyph unicode="&#x20ab;" d="M567 -30q-161 0 -251 104t-90 304q0 66 10 136.5t29.5 139.5t47 134t62.5 120q75 118 176.5 178t221.5 60q100 0 172.5 -42t115.5 -128l62 309h-332l25 121h329l31 149h184l-30 -149h192l-22 -121h-193l-250 -1286h-184l27 141q-66 -85 -148 -127.5t-185 -42.5zM624 126 q89 0 156 45.5t115 132.5q24 43 43.5 95.5t33 108t21 110.5t7.5 105q0 138 -54.5 202.5t-157.5 64.5q-89 0 -153 -45t-110 -129q-24 -44 -43 -96t-32.5 -108t-20.5 -112.5t-7 -108.5q0 -136 49.5 -200.5t152.5 -64.5zM240 -210h598l-29 -148h-598z" />
-<glyph unicode="&#x20ac;" d="M612 -29q-114 0 -197 35t-138 99q-60 69 -87.5 168.5t-27.5 224.5v45h-172l49 110h133q4 29 8 55t9 49q8 45 18 83h-158l49 108h140q48 146 113 252t146 176q84 72 183 108t211 36q42 0 79 -5t75 -16q77 -21 147 -61l-39 -207q-72 66 -135 95q-65 30 -138 30 q-137 0 -248 -105q-112 -106 -183 -303h473l-50 -108h-456q-3 -12 -5.5 -20t-4.5 -16.5t-4.5 -20.5t-6.5 -32t-7 -33.5t-5 -24.5t-3.5 -20t-2.5 -20h411l-47 -110h-376v-54q0 -171 73 -262q35 -45 86 -68.5t120 -23.5q40 0 80 8t83 24q83 31 170 93l-39 -207 q-80 -42 -160 -62q-40 -10 -81 -15t-85 -5z" />
-<glyph unicode="&#x20b0;" d="M511 133q61 0 114 16.5t94.5 50.5t70.5 87t42 127q1 7 1.5 13.5t0.5 14.5q0 76 -74 174q-77 -65 -137 -95.5t-114 -30.5q-34 0 -58.5 11t-41.5 26.5t-28.5 33.5t-19.5 33q-15 28 -32 49t-43 21q-30 0 -66.5 -35t-93.5 -113l-109 96q51 69 91.5 115t75 73.5t65 39.5 t61.5 12q41 0 78.5 -18.5t62.5 -59.5q33 -54 53 -80.5t43 -26.5q17 0 44 16.5t58 49.5q-139 140 -139 331q0 47 9 100q15 87 47.5 153.5t77 111.5t98.5 68t112 23q56 0 98 -20.5t69.5 -55t41.5 -80t14 -94.5q0 -20 -2.5 -48t-7.5 -58q-17 -103 -59.5 -206.5t-108.5 -191.5 q54 -66 81 -134.5t27 -143.5q0 -18 -1.5 -37.5t-4.5 -38.5q-14 -93 -54 -174t-105 -140t-155 -93t-205 -34zM782 881q43 57 71 132t41 151q4 21 5.5 40t1.5 33q0 19 -3 40.5t-11 40.5t-22.5 31.5t-37.5 12.5q-24 0 -45 -14.5t-38.5 -41t-31 -63t-20.5 -79.5q-6 -33 -6 -64 q0 -125 96 -219z" />
-<glyph unicode="&#x20b1;" d="M230 919h-100l19 90h99l17 89h-110l19 90h109l59 305h440q103 0 178.5 -22t126.5 -62.5t79 -96.5t35 -124h112l-19 -90h-91q-1 -23 -3.5 -45t-7.5 -44h96l-19 -90h-102q-41 -103 -123 -176q-161 -143 -440 -143h-233l-117 -600h-203zM991 1188q-37 139 -246 139h-233 l-27 -139h506zM986 1009q5 21 8.5 43.5t4.5 45.5h-531l-18 -89h536zM637 766q214 0 310 153h-514l-30 -153h234z" />
-<glyph unicode="&#x20b2;" d="M429 -22q-97 15 -167 61.5t-115 116t-66 157.5t-21 185q0 53 6 117t17 130q31 181 92.5 318t144 232.5t180 149.5t200.5 68l25 143h128l-25 -137q96 -4 183.5 -37.5t162.5 -103.5l-38 -215q-70 96 -155 141.5t-182 49.5l-215 -1217q72 2 135.5 19.5t123.5 56.5l71 401 h-110l30 166h263l-112 -641q-106 -84 -214 -123t-217 -44l-23 -137h-128zM669 1341q-61 -15 -116 -49.5t-102 -90.5q-64 -77 -109.5 -191.5t-71.5 -264.5q-22 -125 -22 -226q0 -72 11.5 -133t37 -108t65.5 -79.5t97 -48.5z" />
-<glyph unicode="&#x20b3;" d="M198 520h-133l22 123h172l103 207h-238l22 123h276l258 520h208l73 -520h277l-22 -123h-238l28 -207h173l-22 -123h-133l72 -520h-191l-62 520h-462l-245 -520h-194zM787 973l-39 321l-152 -321h191zM827 643l-24 207h-265l-98 -207h387z" />
-<glyph unicode="&#x20b4;" d="M501 -29q-210 0 -324.5 83.5t-114.5 244.5q0 50 12 109q8 36 19.5 73t26.5 69h-157l24 123h217l22 21q87 79 233 126h-444l24 123h831q7 5 11 7.5t12 8.5q20 16 36.5 38.5t28 48t18 54t6.5 56.5q0 38 -12.5 72.5t-40.5 61.5q-31 30 -84 48t-129 18q-188 0 -394 -119 l39 205q226 78 397 78q98 0 175 -24.5t130.5 -69.5t82 -109t28.5 -142q0 -23 -2.5 -47t-7.5 -49q-15 -73 -47 -136h155l-24 -123h-233q-55 -45 -134.5 -79.5t-189.5 -58.5l-41 -9h570l-24 -123h-857q-34 -36 -57 -92t-23 -115q0 -38 12.5 -74t41.5 -65q70 -69 223 -69 q105 0 214.5 34t238.5 107l-42 -215q-117 -45 -227 -67.5t-219 -22.5z" />
-<glyph unicode="&#x20b5;" d="M515 -24q-50 7 -89.5 19t-72.5 29t-60 40t-51 52q-65 77 -94.5 169t-29.5 198q0 77 15 160l3 17q18 103 56 190.5t89 159t112.5 127t126.5 95t131 62.5t126 30l44 230l101 2l-43 -226q93 -2 176.5 -36t156.5 -106l-41 -213q-36 52 -72 89.5t-75 60.5t-82.5 34t-94.5 11 l-202 -1039q51 0 99 11t96 34t98 60t106 90l-41 -211q-103 -72 -199.5 -107t-189.5 -37l-52 -272h-100zM744 1159q-50 -12 -93 -34.5t-82 -54.5q-68 -56 -113 -128.5t-72.5 -148t-39.5 -147t-15 -126.5q-1 -9 -1 -18v-17q0 -81 19.5 -143t58.5 -110q29 -35 63.5 -57 t77.5 -33z" />
-<glyph unicode="&#x20b7;" d="M473 1068q0 -39 12 -67.5t37 -50.5q49 -43 178 -84l121 -39q87 -28 143.5 -59t95.5 -74t57 -95.5t18 -125.5q0 -112 -41.5 -204t-124.5 -160q-152 -125 -395 -137l-21 -174h-88l20 174q-68 1 -134 14l-23 -188h-88l27 207q-77 22 -127 44l-36 -251h-88l114 657h78v-50 q46 64 115 64q39 0 63 -19.5t29 -54.5q47 74 126 74q46 0 72.5 -28.5t26.5 -78.5q0 -37 -4 -62l-6 -39l-10 -53l-14 -71q90 5 165 44.5t119 108t44 154.5q0 79 -44 129q-24 24 -65 44t-112 42l-101 33q-97 32 -157.5 62.5t-99.5 69.5t-56.5 86t-17.5 115q0 105 42 195.5 t123 159.5q83 69 190.5 104.5t232.5 35.5q168 0 364 -78l-39 -205q-164 119 -349 119q-82 0 -151 -21t-118 -61q-49 -39 -76 -92.5t-27 -113.5zM303 186l3 18l3 17l9 44l6 42l1 22q0 30 -13 43q-10 16 -38 16q-38 0 -59 -30q-18 -32 -35 -106q60 -39 123 -66zM518 136l13 68 l9 44l6 35q4 19 4 46q0 31 -12 44q-11 15 -38 15q-22 0 -36 -8t-25 -26q-12 -19 -22.5 -53.5t-22.5 -96.5l-9 -46q64 -17 133 -22z" />
-<glyph unicode="&#x20b8;" d="M192 1493h1139l-33 -170h-1139zM572 1033h-469l33 170h1139l-33 -170h-467l-201 -1033h-203z" />
-<glyph unicode="&#x20b9;" d="M554 377q-22 79 -45 128.5t-51.5 77.5t-65 38t-87.5 10h-193l32 166h221q72 0 127.5 19t96 51.5t67 77t41.5 95.5h-536l79 123h475q-1 38 -12.5 75t-39.5 66.5t-75.5 47.5t-119.5 18h-243l79 123h978l-79 -123h-344q70 -78 68 -207h291l-79 -123h-227q-15 -67 -47 -124 t-79.5 -100.5t-109 -72t-136.5 -38.5q37 -9 65.5 -25.5t52.5 -48.5t46 -85.5t48 -137.5l124 -408h-217z" />
-<glyph unicode="&#x2116;" d="M-100 0l290 1493h194l56 -940l182 940h175l-290 -1493h-194l-71 859l-167 -859h-175zM1173 782q-86 -112 -199 -112q-59 0 -96 29t-59 82q-25 59 -25 145q0 64 17 154q36 184 124 300q89 112 199 112q114 0 155 -113q24 -61 24 -145q0 -73 -16 -154q-36 -186 -124 -298z M908 863q24 -76 89 -76q58 0 98.5 49t66.5 119q20 52 34 127q14 69 14 130q0 51 -10 85q-22 78 -89 78q-66 0 -119 -77q-53 -80 -80 -218q-14 -70 -14 -132q0 -51 10 -85zM708 441l24 123h441l-24 -123h-441z" />
-<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
-<glyph unicode="&#x2126;" d="M-33 172h245q-69 94 -102.5 194.5t-33.5 218.5q0 92 21 197q30 154 91.5 279.5t147.5 214t193.5 136.5t229.5 48q101 0 179 -33t131 -94.5t80.5 -149.5t27.5 -198q0 -95 -21 -203q-18 -94 -47.5 -176.5t-72.5 -156.5t-100.5 -142.5t-131.5 -134.5h248l-34 -172h-463 l34 172q67 37 126.5 99.5t108 144t84.5 179t56 204.5q8 47 12.5 90t4.5 82q0 153 -63.5 238t-189.5 85q-76 0 -144 -32.5t-123.5 -95.5t-97.5 -155.5t-66 -211.5q-24 -117 -24 -222q0 -140 40 -245.5t117 -159.5l-34 -172h-463z" />
-<glyph unicode="&#x2150;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM1013 470h-476l21 95h629l-10 -53l-541 -782h-146z" />
-<glyph unicode="&#x2151;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM680 -275q-54 0 -100.5 8.5t-89.5 24.5l24 104q39 -20 84.5 -31t94.5 -11q135 0 218 81.5t119 237.5q-46 -57 -107 -86.5t-145 -29.5q-115 0 -180 56 t-65 160q0 63 25 128t74 117q102 108 275 108q131 0 205.5 -65.5t74.5 -199.5q0 -40 -7 -86.5t-19.5 -94t-31 -94.5t-40.5 -87q-133 -240 -409 -240zM814 111q54 0 97.5 20t74.5 53t48 77t17 92q0 75 -40 113t-109 38q-53 0 -96 -21.5t-73 -57t-46.5 -80.5t-16.5 -92 q0 -73 38 -107.5t106 -34.5z" />
-<glyph unicode="&#x2153;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM673 -285q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5 t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
-<glyph unicode="&#x2154;" d="M70 934l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557zM47 612l1059 258l27 -108l-1063 -258zM673 -285q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10 t-111.5 -33l22 115q145 35 245 35q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
-<glyph unicode="&#x2155;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11 t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
-<glyph unicode="&#x2156;" d="M70 934l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5 t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
-<glyph unicode="&#x2157;" d="M308 809q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5 t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
-<glyph unicode="&#x2158;" d="M434 1008h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM456 1119l76 391l-342 -391h266zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89 q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
-<glyph unicode="&#x2159;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM771 -285q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104 q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5q-55 -59 -125 -83.5t-148 -24.5zM776 -197q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77 t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z" />
-<glyph unicode="&#x215a;" d="M320 809q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22zM47 612l1059 258l27 -108l-1063 -258zM771 -285q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320 q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5q-55 -59 -125 -83.5t-148 -24.5zM776 -197q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z " />
-<glyph unicode="&#x215b;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5 t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30 q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
-<glyph unicode="&#x215c;" d="M308 809q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5 t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5 t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
-<glyph unicode="&#x215d;" d="M320 809q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5 t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63 q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
-<glyph unicode="&#x215e;" d="M618 1564h-476l21 95h629l-10 -53l-541 -782h-146zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19 q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50 t-14.5 -63q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
-<glyph unicode="&#x215f;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258z" />
-<glyph unicode="&#x2189;" d="M353 809q-131 0 -194.5 67.5t-63.5 208.5q0 57 10 116.5t27.5 117t42 110t54.5 93.5q59 82 134 118t169 36q131 0 195.5 -67t64.5 -207q0 -55 -9.5 -114.5t-27.5 -117.5t-42.5 -111t-54.5 -95q-110 -155 -305 -155zM367 901q57 0 100.5 26.5t78.5 84.5q23 38 43 88 t34.5 104.5t23 109.5t8.5 102q0 90 -32.5 129t-101.5 39q-57 0 -101.5 -25.5t-80.5 -84.5q-23 -38 -43 -88.5t-34.5 -105.5t-23 -110t-8.5 -101q0 -88 33 -128t104 -40zM444 1170q-38 0 -65 21.5t-27 53.5q0 16 7.5 29.5t20 24t29 16.5t34.5 6t34.5 -6t29 -16.5t19.5 -24.5 t7 -30q0 -31 -25.5 -52.5t-63.5 -21.5zM47 612l1059 258l27 -108l-1063 -258zM673 -285q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5 q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
-<glyph unicode="&#x2190;" d="M66 520v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x2191;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
-<glyph unicode="&#x2192;" d="M786 319l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x2193;" d="M284 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x2194;" d="M66 520v82l291 291l90 -90l-160 -160h659l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-659l160 -160l-90 -90z" />
-<glyph unicode="&#x2195;" d="M284 291l90 90l160 -160v659l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-659l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x2196;" d="M311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
-<glyph unicode="&#x2197;" d="M184 116l622 622h-227v127h412l58 -58v-412h-127v227l-622 -622z" />
-<glyph unicode="&#x2198;" d="M579 127h227l-622 622l116 116l622 -622v227h127v-412l-58 -58h-412v127z" />
-<glyph unicode="&#x2199;" d="M184 58v412h127v-227l622 622l116 -116l-622 -622h227v-127h-412z" />
-<glyph unicode="&#x219a;" d="M66 520v82l291 291l90 -90l-160 -160h483l148 250l142 -82l-99 -168h206v-164h-303l-147 -250l-142 82l99 168h-387l160 -160l-90 -90z" />
-<glyph unicode="&#x219b;" d="M173 311l99 168h-206v164h303l147 250l142 -82l-99 -168h387l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-483l-148 -250z" />
-<glyph unicode="&#x219c;" d="M89 807l58 58h412v-127h-267q2 -2 5 -6.5t13.5 -17.5t31.5 -38.5t59 -68.5q18 -21 46.5 -37.5t57.5 -16.5q9 0 22.5 2.5t29 8.5t31 16.5t29.5 27.5q5 7 9 13t7.5 12.5t7.5 15.5t9 21q21 50 55.5 97t88.5 74q46 23 99 23q104 0 183 -92q42 -49 68 -112l-106 -67 q-3 9 -11 23t-20 28.5t-26.5 28t-30.5 22.5q-25 14 -56 14q-29 0 -57 -14t-51 -41q-15 -18 -21 -31t-14 -30q-10 -23 -23.5 -47.5t-31 -47.5t-40 -43t-49.5 -33q-48 -23 -98 -23q-57 0 -103.5 26t-80.5 66l-109 128v-224h-127v412z" />
-<glyph unicode="&#x219d;" d="M1017 619l-109 -128q-36 -43 -82.5 -67.5t-100.5 -24.5t-101 24.5t-83 67.5q-24 29 -36 54t-23 48q-17 38 -35.5 62t-50.5 40q-14 7 -27.5 10.5t-29.5 3.5q-38 0 -63.5 -18t-42.5 -38t-27 -37.5t-11 -22.5l-106 67q25 63 66.5 110.5t85.5 70.5t97 23q57 0 105 -25.5 t80 -64.5q23 -27 37 -55t23 -49q7 -16 13 -30t15 -26t22.5 -23.5t33.5 -22.5q25 -15 56 -15q34 0 62.5 16.5t46.5 37.5q29 34 48.5 57t32 38t19 23.5t9.5 12.5h-267v127h412l58 -58v-412h-127v224z" />
-<glyph unicode="&#x219e;" d="M66 520v82l291 291l90 -90l-160 -160h150l250 250l90 -90l-160 -160h550v-164h-550l160 -160l-90 -90l-250 250h-150l160 -160l-90 -90z" />
-<glyph unicode="&#x219f;" d="M534 550l-160 -160l-90 90l250 250v150l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-150l250 -250l-90 -90l-160 160v-550h-164v550z" />
-<glyph unicode="&#x21a0;" d="M456 319l160 160h-550v164h550l-160 160l90 90l250 -250h150l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-150l-250 -250z" />
-<glyph unicode="&#x21a1;" d="M284 291l90 90l160 -160v150l-250 250l90 90l160 -160v550h164v-550l160 160l90 -90l-250 -250v-150l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21a2;" d="M66 520v82l291 291l90 -90l-160 -160h540l250 250l90 -90l-242 -242l242 -242l-90 -90l-250 250h-540l160 -160l-90 -90z" />
-<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l90 90l250 -250h540l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-540l-250 -250z" />
-<glyph unicode="&#x21a4;" d="M66 520v82l291 291l90 -90l-160 -160h716v250h164v-664h-164v250h-716l160 -160l-90 -90z" />
-<glyph unicode="&#x21a5;" d="M284 164h250v716l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-716h250v-164h-664v164z" />
-<glyph unicode="&#x21a6;" d="M66 893h164v-250h716l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-716v-250h-164v664z" />
-<glyph unicode="&#x21a7;" d="M284 291l90 90l160 -160v716h-250v164h664v-164h-250v-716l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21a8;" d="M284 164h250l-250 250l90 90l160 -160v536l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-536l160 160l90 -90l-250 -250h250v-164h-664v164z" />
-<glyph unicode="&#x21a9;" d="M66 520v82l291 291l90 -90l-160 -160h581q32 0 57 10.5t41 26.5q17 17 27 40.5t10 49.5q0 29 -11 51.5t-26 36.5q-17 17 -41 27t-49 10v164q52 0 106.5 -20t99.5 -64q38 -37 61.5 -90.5t23.5 -116.5q0 -48 -18 -101.5t-68 -102.5q-21 -21 -45 -37t-47 -26.5t-44 -16 t-37 -5.5h-621l160 -160l-90 -90z" />
-<glyph unicode="&#x21aa;" d="M786 319l160 160h-621q-16 0 -37.5 5.5t-45 16.5t-47 27t-44.5 36q-45 45 -65 99t-20 108q0 118 86 203q47 46 98 65.5t107 19.5v-164q-25 0 -49 -10t-41 -27q-15 -14 -26 -36.5t-11 -51.5q0 -26 10 -49.5t27 -40.5q16 -16 41 -26.5t57 -10.5h581l-160 160l90 90 l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21ab;" d="M66 520v82l291 291l90 -90l-160 -160h306v125q0 55 20 109t63 97q35 35 88 60t116 25q61 0 112.5 -24t88.5 -60q43 -42 64.5 -94.5t21.5 -111.5q0 -56 -20 -108t-65 -96q-23 -23 -47.5 -39t-48 -26.5t-43.5 -15.5t-35 -5h-151v-213h-164v213h-306l160 -160l-90 -90z M868 643q59 0 98 37q17 17 27 40.5t10 49.5q0 25 -9.5 48t-27.5 40q-16 15 -39.5 26t-46.5 11t-47.5 -11t-39.5 -26t-25.5 -39.5t-10.5 -50.5v-125h111z" />
-<glyph unicode="&#x21ac;" d="M786 319l160 160h-306v-213h-164v213h-151q-15 0 -35 5t-43.5 15.5t-48 26.5t-47.5 39q-45 44 -65 96t-20 108q0 59 21.5 111.5t64.5 94.5q37 36 88.5 60t112.5 24q63 0 116 -25t88 -60q43 -43 63 -97t20 -109v-125h306l-160 160l90 90l291 -291v-82l-291 -291zM476 643 v125q0 26 -10.5 50.5t-25.5 39.5t-39 26t-47 11t-47 -11t-40 -26q-18 -17 -27.5 -40t-9.5 -48q0 -26 10 -49.5t27 -40.5q39 -37 98 -37h111z" />
-<glyph unicode="&#x21ad;" d="M66 520v82l291 291l90 -90l-160 -160h8q20 -2 34.5 -7.5t26 -14t22 -20.5t23.5 -28q6 -8 13.5 -14t18.5 -6q18 0 33 20q4 6 6.5 12t4.5 12q12 45 34 77t48 49q28 17 58 17q35 0 62.5 -20.5t44.5 -46.5q6 -9 9.5 -16t7 -15.5t7.5 -19t9 -25.5q5 -14 9.5 -22t16.5 -16 q7 -6 17 -6t17.5 5t15.5 15q10 12 17.5 23t17.5 19.5t24.5 14.5t38.5 10l15 3l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-6q-14 1 -20 -4t-14 -15q-26 -33 -48.5 -50t-55.5 -17t-60 17.5t-49 49.5q-14 20 -21.5 39.5t-11.5 36.5q-3 12 -10 22.5t-16 15.5 q-8 6 -17 6q-18 0 -33 -21q-4 -4 -6 -8t-4 -15q-10 -40 -33 -74.5t-50 -51.5q-26 -17 -58 -17q-35 0 -59 18.5t-47 48.5q-8 10 -14 15t-19 4h-7l160 -160l-90 -90z" />
-<glyph unicode="&#x21ae;" d="M466 241l50 238h-229l160 -160l-90 -90l-291 291v82l291 291l90 -90l-160 -160h262l60 270l140 -32l-50 -238h247l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-280l-60 -270z" />
-<glyph unicode="&#x21af;" d="M703 13l-239 336l103 74l132 -185l122 724l-707 -426l151 893l160 -30l-90 -532l707 426l-181 -1082l184 132l74 -104l-335 -239z" />
-<glyph unicode="&#x21b0;" d="M886 967h-482l160 -160l-90 -90l-290 291v82l290 291l90 -90l-160 -160h646v-1131h-164v967z" />
-<glyph unicode="&#x21b1;" d="M184 1131h644l-160 160l90 90l292 -291v-82l-292 -291l-90 90l160 160h-480v-967h-164v1131z" />
-<glyph unicode="&#x21b2;" d="M184 291v82l290 291l90 -90l-160 -160h482v967h164v-1131h-646l160 -160l-90 -90z" />
-<glyph unicode="&#x21b3;" d="M668 90l160 160h-644v1131h164v-967h480l-160 160l90 90l292 -291v-82l-292 -291z" />
-<glyph unicode="&#x21b4;" d="M383 291l90 90l160 -160v721h-447v164h611v-885l160 160l90 -90l-291 -291h-82z" />
-<glyph unicode="&#x21b5;" d="M64 291v82l290 291l90 -90l-160 -160h722v447h164v-611h-886l160 -160l-90 -90z" />
-<glyph unicode="&#x21b6;" d="M81 635l90 90l160 -160l1 24q3 82 35 158t92 135q58 57 130 86t156 29q88 0 159.5 -31t126.5 -85t87.5 -126t33.5 -159h-152q0 58 -21.5 107t-53.5 83q-37 38 -82.5 57t-94.5 19q-54 0 -101 -20.5t-82 -54.5q-22 -21 -35.5 -45t-21 -49.5t-10.5 -51.5t-3 -53v-23l160 160 l90 -90l-291 -291h-82z" />
-<glyph unicode="&#x21b7;" d="M488 635l90 90l160 -160v23q0 38 -4 66.5t-12.5 51t-22 41.5t-32.5 38q-34 34 -75.5 55.5t-101.5 21.5q-55 0 -99.5 -18.5t-82.5 -58.5q-75 -80 -75 -189h-152q1 85 32.5 156.5t88.5 128.5q55 54 126.5 85t159.5 31q84 0 156 -29t130 -86q57 -57 90 -131t37 -162l1 -24 l160 160l90 -90l-291 -291h-82z" />
-<glyph unicode="&#x21b8;" d="M50 1050h1132v-80h-1132v80zM311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
-<glyph unicode="&#x21b9;" d="M66 1238h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664zM622 90l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
-<glyph unicode="&#x21ba;" d="M591 0q-107 0 -198 40.5t-157 106.5q-75 75 -111 167t-36 191q0 202 148 356l119 -115q-52 -51 -76.5 -112t-24.5 -129q0 -72 25.5 -133.5t74.5 -109.5q45 -45 105.5 -72t133.5 -27q70 0 132 26t109 73q46 46 72.5 108.5t26.5 131.5q0 36 -7.5 71.5t-21 68t-31.5 59.5 t-40 45l-33 28v-227h-127v412l58 58h412v-127h-227l29 -29q75 -75 111.5 -165.5t36.5 -190.5q0 -106 -38.5 -197.5t-109.5 -161.5q-66 -65 -156.5 -105.5t-198.5 -40.5z" />
-<glyph unicode="&#x21bb;" d="M642 0q-103 0 -194.5 39t-161.5 108q-69 69 -108.5 159.5t-39.5 197.5q0 102 38 193t111 164l29 29h-227v127h412l58 -58v-412h-127v227l-33 -28q-22 -18 -40 -45t-31.5 -59.5t-21 -68t-7.5 -71.5q0 -69 26.5 -131.5t72.5 -108.5q47 -47 109 -73t132 -26q73 0 133.5 27 t105.5 72q49 48 74.5 109.5t25.5 133.5q0 68 -24.5 129t-76.5 112l119 115q148 -154 148 -356q0 -103 -38 -195t-110 -164q-69 -69 -160 -107.5t-194 -38.5z" />
-<glyph unicode="&#x21bc;" d="M66 602l291 291l90 -90l-160 -160h880v-164h-1101v123z" />
-<glyph unicode="&#x21bd;" d="M66 520v123h1101v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21be;" d="M534 1101h124l290 -291l-90 -90l-160 160v-880h-164v1101z" />
-<glyph unicode="&#x21bf;" d="M534 880l-160 -160l-90 90l292 291h122v-1101h-164v880z" />
-<glyph unicode="&#x21c0;" d="M66 643h880l-160 160l90 90l291 -291v-123h-1101v164z" />
-<glyph unicode="&#x21c1;" d="M786 319l160 160h-880v164h1101v-123l-291 -291z" />
-<glyph unicode="&#x21c2;" d="M534 1101h164v-880l160 160l90 -90l-290 -291h-124v1101z" />
-<glyph unicode="&#x21c3;" d="M327 291l90 90l160 -160v880h164v-1101h-123z" />
-<glyph unicode="&#x21c4;" d="M786 574l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291zM66 291v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21c5;" d="M292 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880zM526 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21c6;" d="M66 775v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90zM786 90l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21c7;" d="M66 291v82l201 201l-201 201v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-160 -160h880v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21c8;" d="M292 880l-160 -160l-90 90l292 291h82l200 -201l202 201h82l290 -291l-90 -90l-160 160v-880h-164v880l-160 -160l-160 160v-880h-164v880z" />
-<glyph unicode="&#x21c9;" d="M786 90l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-291 -291z" />
-<glyph unicode="&#x21ca;" d="M42 291l90 90l160 -160v880h164v-880l160 160l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82l-202 201l-200 -201h-82z" />
-<glyph unicode="&#x21cb;" d="M66 766l291 291l90 -90l-160 -160h880v-164h-1101v123zM786 155l160 160h-880v164h1101v-123l-291 -291z" />
-<glyph unicode="&#x21cc;" d="M66 807h880l-160 160l90 90l291 -291v-123h-1101v164zM66 356v123h1101v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21cd;" d="M66 520v82l291 291l90 -90l-78 -78h419l86 168l97 -59l-54 -109h250v-82h-302l-90 -164h392v-82h-443l-86 -166l-96 58l54 108h-227l78 -78l-90 -90zM649 479l88 164h-450l-82 -82l82 -82h362z" />
-<glyph unicode="&#x21ce;" d="M66 520v82l291 291l90 -90l-78 -78h194l46 218l140 -32l-39 -186h154l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-227l-31 -158l-140 32l27 126h-124l78 -78l-90 -90zM510 479l35 164h-258l-82 -82l82 -82h223zM946 479l82 82l-82 82h-254l-35 -164h289z" />
-<glyph unicode="&#x21cf;" d="M262 288l54 109h-250v82h302l90 164h-392v82h443l86 166l96 -58l-54 -108h227l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-419l-86 -168zM946 479l82 82l-82 82h-362l-88 -164h450z" />
-<glyph unicode="&#x21d0;" d="M66 520v82l291 291l90 -90l-78 -78h798v-82h-880l-82 -82l82 -82h880v-82h-798l78 -78l-90 -90z" />
-<glyph unicode="&#x21d1;" d="M452 798l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-798h-82l1 880l-83 82l-82 -82v-880h-82v798z" />
-<glyph unicode="&#x21d2;" d="M786 319l78 78h-798v82h880l82 82l-82 82h-880v82h798l-78 78l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21d3;" d="M284 291l90 90l78 -78v798h82v-880l82 -82l83 82l-1 880h82v-798l78 78l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21d4;" d="M66 520v82l291 291l90 -90l-78 -78h495l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-495l78 -78l-90 -90zM946 479l82 82l-82 82h-659l-82 -82l82 -82h659z" />
-<glyph unicode="&#x21d5;" d="M284 291l90 90l78 -78v495l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-495l78 78l90 -90l-290 -291h-82zM699 221v659l-83 82l-82 -82v-659l82 -82z" />
-<glyph unicode="&#x21d6;" d="M282 507v-112h-127v412l58 58h412v-127h-110l563 -564l-58 -58l-622 622h-116v-116l622 -622l-58 -58z" />
-<glyph unicode="&#x21d7;" d="M329 0l622 622v116h-116l-622 -622l-58 58l563 564h-110v127h412l58 -58v-412h-127v112l-564 -565z" />
-<glyph unicode="&#x21d8;" d="M608 127h112l-565 564l58 58l622 -622h116v116l-622 622l58 58l564 -563v110h127v-412l-58 -58h-412v127z" />
-<glyph unicode="&#x21d9;" d="M155 58v412h127v-112l564 565l58 -58l-622 -622v-116h116l622 622l58 -58l-563 -564h110v-127h-412z" />
-<glyph unicode="&#x21da;" d="M66 520v82l291 291l90 -90h720v-82h-802l-119 -119h921v-82h-921l119 -119h802v-82h-720l-90 -90z" />
-<glyph unicode="&#x21db;" d="M786 319h-720v82h802l119 119h-921v82h921l-119 119h-802v82h720l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21dc;" d="M66 520v82l291 291l90 -90l-160 -160h129l58 -67l151 173l150 -173l150 173l150 -173l59 67h33v-164l-92 -106l-150 173l-150 -173l-150 173l-151 -173l-91 106h-96l160 -160l-90 -90z" />
-<glyph unicode="&#x21dd;" d="M786 319l160 160h-96l-91 -106l-151 173l-150 -173l-150 173l-150 -173l-92 106v164h33l59 -67l150 173l150 -173l150 173l151 -173l58 67h129l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21e0;" d="M66 520v82l291 291l90 -90l-160 -160h258v-164h-258l160 -160l-90 -90zM670 643h187v-164h-187v164zM980 643h187v-164h-187v164z" />
-<glyph unicode="&#x21e1;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160l1 -258h-165v258zM535 497h163l1 -187h-165zM535 187h163v-187h-164z" />
-<glyph unicode="&#x21e2;" d="M786 319l160 160h-258v164h258l-160 160l90 90l291 -291v-82l-291 -291zM66 643h187v-164h-187v164zM376 643h187v-164h-187v164z" />
-<glyph unicode="&#x21e3;" d="M534 1101h164v-187h-163zM534 791h164v-187h-163zM284 291l90 90l160 -160v258h164v-258l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21e4;" d="M66 893h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664z" />
-<glyph unicode="&#x21e5;" d="M622 319l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
-<glyph unicode="&#x21e6;" d="M25 561l373 373v-201h769v-344h-769v-201zM319 459h778v204h-778v93l-194 -195l194 -195v93z" />
-<glyph unicode="&#x21e7;" d="M444 769h-200l372 373l374 -373h-202v-769h-344v769zM718 70v778h94l-196 194l-194 -194h92v-778h204z" />
-<glyph unicode="&#x21e8;" d="M836 389h-770v344h770v201l372 -373l-372 -373v201zM1108 561l-194 195v-93h-778v-204h778v-93z" />
-<glyph unicode="&#x21e9;" d="M244 373h200v769h344v-769h202l-374 -373zM812 294h-94v778h-204v-778h-92l194 -194z" />
-<glyph unicode="&#x21eb;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM920 70v140h-202v638h94l-196 194l-194 -194h92v-638h-200v-140h606z" />
-<glyph unicode="&#x21ec;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM688 971l-72 71l-71 -71h143zM920 70v140h-202v638h94l-76 74h-240l-74 -74h92v-638h-200v-140h606z" />
-<glyph unicode="&#x21ed;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM582 70v937l-160 -159h92v-638h-200v-140h268zM920 70v140h-202v638h94l-160 159v-937h268z" />
-<glyph unicode="&#x21ee;" d="M444 569h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-569h-344v569zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM718 70v578h94l-196 194l-194 -194h92v-578h204z" />
-<glyph unicode="&#x21ef;" d="M244 280h200v289h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-289h202v-280h-746v280zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM920 70v140h-202v438h94l-196 194l-194 -194h92v-438h-200v-140h606z" />
-<glyph unicode="&#x21f0;" d="M66 934h280v-201h490v201l372 -373l-372 -373v201h-490v-201h-280v746zM276 258v201h638v-93l194 195l-194 195v-93h-637l-1 201h-140v-606h140z" />
-<glyph unicode="&#x21f1;" d="M70 1094h1093v-73h-1020v-1021h-73v1094zM425 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
-<glyph unicode="&#x21f2;" d="M464 356h228l-622 622l116 116l622 -622v227h126v-412l-58 -58h-412v127zM70 73h1020v1020h74v-1093h-1094v73z" />
-<glyph unicode="&#x21f3;" d="M244 373h200v396h-200l372 373l374 -373h-202v-396h202l-374 -373zM812 294h-94v554h94l-196 194l-194 -194h92v-554h-92l194 -194z" />
-<glyph unicode="&#x21f4;" d="M786 319l160 160h-237q-9 -32 -30.5 -66.5t-55.5 -63t-80.5 -47t-106.5 -18.5q-59 0 -104 18t-77.5 46.5t-52.5 63t-29 67.5h-107v164h107q9 33 30 68.5t54 65t78 48t104 18.5q54 0 104.5 -19.5t95.5 -65.5q15 -15 30 -36t30 -53q3 -6 5.5 -12.5t4.5 -13.5h237l-160 160 l90 90l291 -291v-82l-291 -291zM587 643q-11 19 -28 37q-23 23 -51.5 36t-66.5 13q-70 0 -119 -49q-18 -16 -29 -37h294zM437 396q69 0 122 48q8 8 15.5 16.5t12.5 18.5h-293q6 -10 13.5 -19.5t13.5 -16.5q44 -47 116 -47z" />
-<glyph unicode="&#x21f5;" d="M42 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82zM776 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
-<glyph unicode="&#x21f6;" d="M786 -165l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-201 -201l201 -201v-82l-291 -291z" />
-<glyph unicode="&#x21f7;" d="M66 520v82l291 291l90 -90l-160 -160h347v250h164v-250h369v-164h-369v-250h-164v250h-347l160 -160l-90 -90z" />
-<glyph unicode="&#x21f8;" d="M434 479h-368v164h368v250h164v-250h348l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-348v-250h-164v250z" />
-<glyph unicode="&#x21f9;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-247l160 -160l-90 -90z" />
-<glyph unicode="&#x21fa;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h116v250h164v-250h189v-164h-189v-250h-164v250h-116v-250h-164v250h-247l160 -160l-90 -90z" />
-<glyph unicode="&#x21fb;" d="M254 479h-188v164h188v250h164v-250h116v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-116v-250h-164v250z" />
-<glyph unicode="&#x21fc;" d="M66 520v82l291 291l90 -90l-160 -160h167v250h134v-250h56v250h134v-250h168l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-168v-250h-134v250h-56v-250h-134v250h-167l160 -160l-90 -90z" />
-<glyph unicode="&#x21fd;" d="M25 561l373 373v-291h769v-164h-769v-291zM319 756l-194 -195l194 -195v390z" />
-<glyph unicode="&#x21fe;" d="M835 479h-769v164h769v291l373 -373l-373 -373v291zM1108 561l-194 195v-390z" />
-<glyph unicode="&#x21ff;" d="M25 561l373 373v-291h437v291l373 -373l-373 -373v291h-437v-291zM319 756l-194 -195l194 -195v390zM1108 561l-194 195v-390z" />
-<glyph unicode="&#x2200;" d="M37 1493h209l108 -389h523l110 389h209l-457 -1493h-245zM829 942h-426l213 -764z" />
-<glyph unicode="&#x2201;" d="M636 -29q-254 0 -386 198q-69 103 -101 246t-32 328q0 379 131.5 578t388.5 199q84 0 149 -20t114.5 -54t85.5 -78.5t61.5 -93.5t42 -99.5t26.5 -95.5h-202q-9 37 -20.5 69.5t-24.5 58.5q-35 72 -94.5 112.5t-142.5 40.5q-155 0 -233.5 -153t-78.5 -462t78.5 -462 t233.5 -153q83 0 142.5 40.5t94.5 112.5q12 24 24 57.5t21 70.5h202q-11 -48 -28 -99.5t-43 -100.5t-62 -92.5t-86 -76.5t-114.5 -52t-146.5 -19z" />
-<glyph unicode="&#x2202;" d="M545 -25q-72 0 -138 27t-116 80q-51 54 -76 124.5t-25 154.5q0 87 27.5 171.5t82.5 149.5q57 67 129.5 97t148.5 30q95 0 160 -45q29 -20 56 -54t48 -89q8 44 13.5 85.5t9.5 83.5q4 41 5.5 80.5t1.5 68.5q0 66 -8 116.5t-28 85.5q-19 33 -47 49t-62 16q-33 0 -61 -14.5 t-66 -43.5q-34 -26 -59 -42t-50 -16q-7 0 -25 3.5t-35 18.5q-11 11 -17 25t-6 29q0 27 18.5 57.5t53.5 53.5q33 23 78 35.5t96 12.5q87 0 160 -38.5t127 -116.5q51 -75 78.5 -180.5t27.5 -243.5q0 -167 -38.5 -308t-104.5 -243q-69 -106 -161 -163t-198 -57zM543 31 q53 0 99 31.5t81 97.5q34 63 52 147t18 176q0 69 -10.5 114t-32.5 76q-44 62 -122 62q-53 0 -99 -31t-81 -97t-53 -151t-18 -174q0 -71 11 -116t32 -74q22 -30 53.5 -45.5t69.5 -15.5z" />
-<glyph unicode="&#x2203;" d="M178 170h692v492h-692v170h692v491h-692v170h875v-1493h-875v170z" />
-<glyph unicode="&#x2204;" d="M268 0h-90v170h138l139 492h-277v170h324l138 491h-462v170h510l27 96h155l-28 -96h211v-1493h-630l-27 -94h-154zM870 832v491h-75l-138 -491h213zM870 170v492h-261l-138 -492h399z" />
-<glyph unicode="&#x2205;" d="M74 198l117 117q-23 29 -43 63.5t-35 75t-24 87.5t-9 102q0 223 157 380q159 159 380 159q55 0 102.5 -9t88 -25t74.5 -36.5t63 -42.5l117 117l99 -99l-118 -118q45 -56 77.5 -136t32.5 -189q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5q-54 0 -101 9t-87 24 t-74 35t-62 43l-118 -118zM844 968q-17 12 -34 22t-42 21q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-60 -60 -87.5 -133.5t-27.5 -151.5q0 -79 28 -148q8 -20 19 -39t24 -37zM614 246q78 0 152 29.5t131 86.5q59 59 87 132t28 151q0 38 -7 76.5t-21 73.5q-8 18 -18 37.5 t-23 36.5l-552 -552q16 -12 36.5 -23t36.5 -18q35 -15 73.5 -22.5t76.5 -7.5z" />
-<glyph unicode="&#x2206;" d="M452 1423h209l520 -1423h-1247zM925 172l-369 1047l-368 -1047h737z" />
-<glyph unicode="&#x2207;" d="M-6 1423h1247l-520 -1423h-209zM985 1251h-737l368 -1047z" />
-<glyph unicode="&#x2208;" d="M632 0q-69 0 -133 26t-120.5 73.5t-102.5 114.5t-79 150q-34 85 -50.5 177t-16.5 188q0 103 18 198t51 177t78.5 148.5t101.5 113.5q57 48 120.5 73t132.5 25h472v-170h-472q-48 0 -91.5 -21.5t-80 -59t-66 -88.5t-49.5 -111q-15 -45 -26.5 -97t-14.5 -100h798v-170h-798 q4 -54 14.5 -102.5t27.5 -94.5q50 -139 124 -209.5t162 -70.5h472v-170h-472v0z" />
-<glyph unicode="&#x2209;" d="M319 -128l67 221q-60 49 -107.5 118t-80.5 151.5t-50.5 176.5t-17.5 193t17.5 192t49.5 175t78.5 150t104.5 117q116 98 252 98h170l54 177l163 -50l-39 -127h124v-170h-176l-144 -477h318v-170h-370l-144 -473q19 -4 44 -4h472v-170h-472q-49 0 -92 12l-58 -189z M606 817l144 477h-118q-91 0 -164 -71.5t-122 -208.5q-15 -42 -26 -89.5t-16 -107.5h302zM554 647h-250q2 -29 5.5 -54t9 -48.5t12 -46.5t15.5 -48q19 -56 40.5 -97t53.5 -81z" />
-<glyph unicode="&#x220a;" d="M630 165q-69 0 -132.5 16.5t-119 47t-102 74.5t-79.5 99q-35 58 -51 117.5t-16 119.5q0 66 17.5 127.5t50 115t78.5 97.5t103 75q115 63 251 63h472v-170h-472q-66 0 -119.5 -21t-93.5 -53t-65.5 -71.5t-36.5 -75.5h787v-170h-787q11 -36 36.5 -75.5t65.5 -71.5t93.5 -53 t119.5 -21h472v-170h-472v0z" />
-<glyph unicode="&#x220b;" d="M130 170h472q47 0 89.5 20.5t79.5 58t66.5 88.5t50.5 113q14 42 25 93t15 104h-798v170h798q-4 49 -15 104t-30.5 108.5t-47.5 102.5t-67 87q-77 75 -166 75h-472v170h472q68 0 132 -25.5t120 -72.5t103 -114.5t80 -151.5q34 -85 50.5 -176.5t16.5 -188.5 q0 -103 -18 -198t-51 -177t-79 -149t-101 -113q-57 -48 -120.5 -73t-132.5 -25h-472v170z" />
-<glyph unicode="&#x220c;" d="M214 -127l39 127h-123v170h174l146 477h-320v170h370l145 473q-19 4 -43 4h-472v170h472q47 0 92 -12l57 189l163 -49l-67 -221q60 -50 108 -118.5t81 -151t50.5 -176.5t17.5 -194q0 -99 -17.5 -192t-49.5 -174.5t-78.5 -149.5t-104.5 -117q-116 -98 -252 -98h-171 l-54 -177zM928 817q-4 51 -15 103t-28 100.5t-40 92.5t-52 79l-114 -375h249zM602 170q45 0 87.5 19.5t79 56t67 88.5t52.5 116q14 42 25 93t15 104h-301l-145 -477h120z" />
-<glyph unicode="&#x220d;" d="M130 335h472q67 0 120.5 21t93.5 53t65.5 71.5t36.5 75.5h-787v170h787q-11 36 -36.5 75.5t-65.5 71.5t-93.5 53t-120.5 21h-472v170h472q69 0 132.5 -16.5t119 -47.5t102 -74.5t79.5 -98.5q67 -110 67 -237q0 -64 -16.5 -124.5t-48.5 -113.5t-78.5 -98t-105.5 -78 q-115 -64 -251 -64h-472v170z" />
-<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
-<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-155v1822h-619v-1822h-155v1954z" />
-<glyph unicode="&#x2210;" d="M152 1518h155v-1822h619v1822h155v-1954h-929v1954z" />
-<glyph unicode="&#x2211;" d="M143 -344l549 919l-549 848v95h922v-140h-733l522 -803l-522 -874h753v-137h-942v92z" />
-<glyph unicode="&#x2212;" d="M88 727h1057v-170h-1057v170z" />
-<glyph unicode="&#x2213;" d="M88 1171h1057v-170h-1057v170zM532 329h-444v170h444v332h168v-332h445v-170h-445v-329h-168v329z" />
-<glyph unicode="&#x2215;" d="M868 1493h191l-854 -1683h-189z" />
-<glyph unicode="&#x2217;" d="M559 552l-336 -203l-57 98l358 195l-358 194l57 99l336 -203v377h115v-377l336 203l57 -99l-358 -194l358 -195l-57 -98l-336 203v-377h-115v377z" />
-<glyph unicode="&#x2218;" d="M613 327q-67 0 -124.5 24t-99.5 66t-66 99.5t-24 124.5q0 68 24.5 126.5t67.5 102t101 68t125 24.5q66 0 123 -24.5t102 -70.5q48 -48 70 -104.5t22 -118.5q0 -68 -25 -125.5t-68 -100.5t-102 -67t-126 -24zM614 454q40 0 75 14.5t61.5 40t41.5 60t15 73.5t-15 74t-41 61 t-61 41t-75 15q-39 0 -73.5 -15t-60 -40.5t-40.5 -61t-15 -75.5t14.5 -74t40 -59t60 -39.5t73.5 -14.5z" />
-<glyph unicode="&#x2219;" d="M488 559q-28 0 -28 25q0 5 1 8l46 245q4 27 32 27h194q15 0 22.5 -9t4.5 -24l-48 -245q-5 -27 -32 -27h-192v0z" />
-<glyph unicode="&#x221a;" d="M258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
-<glyph unicode="&#x221b;" d="M409 1043q-66 0 -122 10.5t-116 30.5v121q70 -27 125 -40t108 -13q46 0 85.5 10t67.5 29.5t44 48t16 66.5q0 69 -54.5 107t-164.5 38h-66v108h74q94 0 142.5 31.5t48.5 89.5t-47.5 89.5t-130.5 31.5q-100 0 -220 -47v121q69 17 127 26t112 9q71 0 128 -15.5t97.5 -44 t62.5 -68.5t22 -90q0 -71 -43.5 -117t-128.5 -65q193 -44 193 -213q0 -60 -24.5 -107t-71 -80t-113.5 -50t-151 -17zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
-<glyph unicode="&#x221c;" d="M500 1244h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM500 1355v413l-274 -413h274zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
-<glyph unicode="&#x221d;" d="M479 250q-63 0 -117 28t-93 78.5t-61 121.5t-22 158q0 83 20.5 151.5t58.5 117.5t92 76t120 27q92 0 160.5 -57.5t124.5 -186.5q46 118 119.5 181t164.5 63v-140q-57 0 -108.5 -58t-97.5 -183q55 -134 102 -186q47 -50 104 -50v-141q-40 0 -75 11.5t-69 38.5t-68.5 71 t-73.5 110q-32 -60 -63.5 -103.5t-65.5 -72t-71.5 -42t-80.5 -13.5zM465 391q69 0 121.5 62.5t95.5 181.5q-28 67 -52.5 112.5t-49.5 71.5q-46 49 -106 49q-36 0 -66 -17t-51 -49t-33 -77t-12 -101q0 -53 10.5 -95.5t30.5 -73.5t48.5 -47.5t63.5 -16.5z" />
-<glyph unicode="&#x221e;" d="M332 250q-61 0 -114.5 27t-94.5 80t-61.5 122.5t-20.5 152.5q0 80 19.5 150.5t58.5 122.5q37 49 90.5 76t122.5 27q50 0 88 -14.5t71 -42.5q34 -29 64.5 -73.5t60.5 -113.5q24 61 55.5 106.5t65.5 74.5t74.5 46t88.5 17q63 0 115.5 -29t91.5 -80q37 -48 61 -115.5 t24 -157.5q0 -83 -21.5 -152.5t-59.5 -118.5q-40 -52 -93.5 -78.5t-114.5 -26.5q-82 0 -147 50q-34 26 -68.5 70.5t-73.5 110.5q-64 -123 -131 -177q-35 -29 -72.5 -41.5t-78.5 -12.5zM318 391q66 0 119 59q54 60 100 185q-30 72 -55 116.5t-47 67.5q-46 49 -106 49 q-34 0 -64.5 -16.5t-53.5 -49.5q-20 -29 -32.5 -72.5t-12.5 -102.5q0 -51 10.5 -95t31.5 -77q19 -29 46.5 -46.5t63.5 -17.5zM903 391q34 0 64 16t53 51q22 32 33.5 76t11.5 99q0 57 -11.5 100t-30.5 72q-41 63 -113 63q-65 0 -117 -58q-53 -59 -99 -183q32 -75 56 -118 t47 -68q45 -50 106 -50z" />
-<glyph unicode="&#x221f;" d="M126 1269h170v-812h812v-170h-982v982z" />
-<glyph unicode="&#x2220;" d="M918 1269h170l-656 -812h676v-170h-982z" />
-<glyph unicode="&#x2223;" d="M530 1565h172v-2048h-172v2048z" />
-<glyph unicode="&#x2227;" d="M498 1186h237l333 -1186h-191l-261 940l-261 -940h-191z" />
-<glyph unicode="&#x2228;" d="M164 1186h191l261 -940l261 940h191l-333 -1186h-237z" />
-<glyph unicode="&#x2229;" d="M164 580q0 120 6 198t19 130q25 101 84 159.5t153 89.5q87 29 189 29q109 0 197.5 -31t145.5 -86q28 -27 50 -65t36 -94q5 -22 9.5 -50.5t7.5 -67.5t5 -91t2 -121v-580h-172v674q0 13 -0.5 32.5t-2 41.5t-3.5 44t-5 40q-5 30 -11 48.5t-8 22.5q-10 24 -34.5 46t-58.5 38 t-75 25.5t-84 9.5q-38 0 -76 -8t-71.5 -23t-59.5 -37.5t-40 -50.5q-6 -13 -10 -27t-8 -44q-3 -22 -5 -46t-3.5 -46.5t-2.5 -40.5t-1 -27v-672h-173v580z" />
-<glyph unicode="&#x222a;" d="M616 0q-50 0 -98.5 7.5t-93 22t-83 36.5t-67.5 51q-60 60 -85 161q-13 52 -19 130t-6 198v580h173v-672q0 -9 1 -27t2.5 -40.5t3.5 -46.5t5 -46q2 -20 6 -37t12 -34q14 -29 40 -51t59.5 -37t71.5 -23t77 -8q40 0 80 8.5t74 24.5t59.5 38t37.5 49q3 8 8.5 25.5t10.5 44.5 q3 18 5 40t3.5 44t2 41.5t0.5 32.5v674h172v-580q0 -73 -2 -125.5t-5 -91t-7.5 -65.5t-10.5 -48q-14 -54 -37.5 -94.5t-54 -70t-67 -49.5t-76.5 -33q-89 -29 -192 -29z" />
-<glyph unicode="&#x222b;" d="M314 -371q-41 0 -75 10t-60 31q-26 22 -38 50.5t-12 58.5q0 25 8 46.5t26 38.5q35 32 93 32q35 0 59 -15q25 -15 39 -42q6 -12 9 -25.5t6 -33.5t7.5 -31t18.5 -11q27 0 47.5 45t35 132.5t23 216t12.5 294.5q1 31 1 50.5t0.5 36t0.5 34t1 44.5q7 252 32 435.5t75 300.5 t124.5 170t167.5 53q39 0 74.5 -9.5t61.5 -32.5q49 -43 49 -109q0 -51 -32 -83t-87 -32q-42 0 -70 19q-30 20 -40 54q-5 16 -6.5 26.5l-3.5 24.5q-3 19 -7.5 27.5t-16.5 8.5q-103 0 -118 -619q0 -13 -1 -47t-2 -77.5t-2.5 -91t-2.5 -87.5q-5 -127 -14.5 -231.5t-23 -189 t-32 -150t-41.5 -115.5q-47 -102 -118.5 -154.5t-167.5 -52.5z" />
-<glyph unicode="&#x222c;" d="M250 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t44.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5l1 1570q0 49 15.5 101t45.5 95t75.5 71t105.5 28q40 0 91 -14t96 -43l-67 -127q-25 14 -49.5 24t-46.5 10q-18 0 -33 -8.5t-26.5 -28t-17.5 -52.5t-6 -81v-1570 q0 -49 -15.5 -101.5t-46 -95.5t-75.5 -70.5t-105 -27.5zM681 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t45.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5v1570q0 49 15.5 101.5t46 95.5t75.5 70.5t105 27.5q40 0 91 -14t96 -43l-67 -127q-26 15 -50 24.5t-45 9.5 q-18 0 -33.5 -8.5t-26.5 -28.5t-17 -52.5t-6 -80.5l-1 -1570q0 -49 -15.5 -101t-45.5 -95t-75.5 -71t-105.5 -28z" />
-<glyph unicode="&#x222d;" d="M89 -191q16 -7 39.5 -10.5t35.5 -3.5q20 0 28 15.5t8 62.5v1629q0 54 13.5 105t36.5 87q27 42 65 59.5t82 17.5q33 0 67 -8t68 -21l-36 -142q-18 8 -41 11t-34 3q-21 0 -29 -15.5t-8 -62.5v-1629q0 -57 -13 -107t-36 -85q-28 -43 -66 -60t-81 -17q-34 0 -68.5 8.5 t-66.5 20.5zM414 -191q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 54 13 105t36 87q28 43 66 60t81 17q33 0 67.5 -8t67.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -57 -13.5 -107t-36.5 -85q-28 -42 -65 -59.5t-81 -17.5 q-32 0 -66.5 7.5t-69.5 21.5zM738 -191q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 54 13 105t36 87q28 43 66 60t81 17q33 0 67.5 -8t67.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -57 -13.5 -107t-36.5 -85q-28 -42 -65 -59.5 t-81 -17.5q-32 0 -66.5 7.5t-69.5 21.5z" />
-<glyph unicode="&#x2234;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2235;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2236;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2237;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134 q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2238;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170z" />
-<glyph unicode="&#x2239;" d="M937 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM74 727h746v-170h-746v170zM935 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x223a;" d="M118 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM923 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170zM117 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245 q0 -30 -30 -30h-192zM927 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x223b;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5 t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM520 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x223c;" d="M88 671q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5 t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
-<glyph unicode="&#x223d;" d="M383 497q-82 0 -154 29.5t-141 84.5v175q75 -63 143 -93t140 -30q54 0 103 15t104 39q8 4 12 5.5t6.5 3t5 2.5t8.5 4q72 33 128.5 43.5t101.5 10.5q82 0 154.5 -27.5t150.5 -87.5v-174q-78 68 -149 95.5t-148 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5l-33 -14 q-30 -13 -56 -22.5t-50 -16t-48 -9.5t-51 -3z" />
-<glyph unicode="&#x2241;" d="M448 205l88 387q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5 t-95.5 30.5l-83 -364z" />
-<glyph unicode="&#x2242;" d="M88 930h1057v-170h-1057v170zM88 479q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11 q-81 0 -150.5 -30t-143.5 -95v174z" />
-<glyph unicode="&#x2243;" d="M88 848q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5 t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2244;" d="M232 199l89 154h-233v171h337l146 231q-42 19 -88 31t-97 12q-35 0 -71.5 -7t-74.5 -22q-46 -18 -85 -44t-67 -52v172q43 37 86.5 60.5t84 36.5t77 17.5t67.5 4.5q25 0 47.5 -2.5t47 -8.5t52.5 -15.5t64 -23.5l13 -5l29 -16l198 344l113 -100l-167 -288q34 -6 66 -6 q81 0 151 34t128 89v-178q-27 -26 -65.5 -47.5t-80.5 -36.5t-83.5 -23.5t-75.5 -8.5q-31 0 -61 7.5t-77 22.5l-110 -178h554v-171h-648l-152 -254z" />
-<glyph unicode="&#x2245;" d="M88 1052q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
-<glyph unicode="&#x2246;" d="M88 1052q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM293 131l44 61h-249v172h373l139 192h-512v172h635l104 143l113 -82l-44 -61h249v-172h-373l-139 -192h512v-172h-636l-103 -143z" />
-<glyph unicode="&#x2247;" d="M310 55l50 137h-272v172h333l69 192h-402v172h464l75 209q-9 4 -15 6q-39 17 -70.5 28t-58.5 18t-51 9.5t-48 2.5q-82 0 -152.5 -29.5t-143.5 -93.5v174q39 30 76 51.5t74.5 36t77 21t83.5 6.5q24 0 48.5 -2.5t51 -8.5t57 -16.5t67.5 -26.5l58 -25l86 238l155 -56 l-81 -225q5 -1 11 -1h12q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-148.5 -27q-18 0 -33.5 1.5t-32.5 4.5l-56 -156h417v-172h-479l-69 -192h548v-172h-609l-70 -192z" />
-<glyph unicode="&#x2248;" d="M88 848q39 30 78 52.5t73 35.5q36 14 75 20.5t93 6.5q9 0 17 -0.5t18.5 -1.5t23.5 -3.5t32 -6.5q17 -4 30.5 -7.5t27 -8t29.5 -11t38 -15.5q9 -4 12 -5.5t5 -2t4.5 -2t10.5 -5.5q47 -23 103.5 -38.5t107.5 -15.5q68 0 137 30q32 14 69.5 38.5t72.5 54.5v-175 q-75 -58 -146 -86q-33 -13 -69.5 -20.5t-79.5 -7.5q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -102 12q-41 0 -79.5 -7.5t-70.5 -21.5q-34 -14 -70.5 -38t-73.5 -56v174zM88 479q40 31 79 54t73 36 q32 12 71.5 19.5t80.5 7.5q100 0 229 -55h1l33 -15q60 -27 108 -41t99 -14q41 0 74 8.5t65 22.5q34 15 68 37t76 57v-176q-38 -29 -75 -51t-71 -36q-36 -14 -74 -21t-74 -7q-49 0 -99 12.5t-107 38.5l-33 15q-15 7 -33 14t-36 13.5t-34.5 12t-28.5 8.5q-19 5 -47 8t-54 3 q-76 0 -146 -30q-71 -30 -145 -95v174z" />
-<glyph unicode="&#x2249;" d="M378 89l99 330q-50 11 -97 11q-78 0 -147.5 -29.5t-144.5 -95.5v174q77 61 150.5 89t151.5 28q35 0 67 -5t67 -15l54 178q-55 22 -100.5 32.5t-94.5 10.5q-81 0 -151.5 -29.5t-143.5 -93.5v174q38 29 74.5 50.5t74 36t77.5 21.5t85 7q25 0 48.5 -2.5t49.5 -8.5t57 -17 t70 -27l93 311l138 -41l-97 -323q57 -15 106 -15q70 0 138 30t143 93v-175q-72 -57 -144 -85.5t-150 -28.5q-68 0 -140 25l-52 -175q115 -53 205 -53q69 0 137.5 30.5t143.5 94.5v-176q-73 -58 -145 -86.5t-148 -28.5q-50 0 -103 12.5t-104 38.5l-31 16l-98 -324z" />
-<glyph unicode="&#x224a;" d="M88 1056q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 687q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1q4 -2 5.5 -2.5t4 -1.5t7.5 -3.5t16 -7.5q55 -25 104 -40t103 -15q72 0 140 30.5t143 94.5v-176q-70 -56 -142.5 -85.5 t-147.5 -29.5q-53 0 -107 14t-103 37q-2 1 -6.5 3t-26.5 12q-40 17 -71.5 28.5t-58.5 18t-50.5 9.5t-47.5 3q-78 0 -148 -28.5t-148 -96.5v174zM88 364h1057v-172h-1057v172z" />
-<glyph unicode="&#x224b;" d="M88 1056q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 687q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1q4 -2 5.5 -2.5t4 -1.5t7.5 -3.5t16 -7.5q55 -25 104 -40t103 -15q72 0 140 30.5t143 94.5v-176q-70 -56 -142.5 -85.5 t-147.5 -29.5q-53 0 -107 14t-103 37q-2 1 -6.5 3t-26.5 12q-40 17 -71.5 28.5t-58.5 18t-50.5 9.5t-47.5 3q-78 0 -148 -28.5t-148 -96.5v174zM88 323q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q55 -25 104 -40t103 -15q72 0 140 30.5t143 94.5v-176 q-70 -56 -142.5 -85.5t-147.5 -29.5q-53 0 -107 14t-103 37q-2 1 -6.5 3t-26.5 12q-40 17 -71.5 28.5t-58.5 18t-50.5 9.5t-47.5 3q-78 0 -148 -28.5t-148 -96.5v174z" />
-<glyph unicode="&#x224c;" d="M383 878q-82 0 -154 29.5t-141 84.5v175q75 -63 143 -93t136 -30q50 0 105 14.5t106 39.5l6 3t4.5 2.5t7 3.5l13.5 6q38 18 74 28.5t67 16t56 7.5t41 2q75 0 149 -28t149 -87v-174q-78 68 -149 95.5t-148 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5l-33 -14 q-30 -13 -56 -22.5t-50 -16t-48 -9.5t-51 -3zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
-<glyph unicode="&#x224d;" d="M617 729q-200 0 -530 156v178q345 -155 530 -163q186 0 527 163v-178q-327 -156 -527 -156zM88 399q328 156 528 156t529 -156v-178q-344 155 -529 163q-186 0 -528 -163v178z" />
-<glyph unicode="&#x224e;" d="M88 930h225q0 3 5.5 28.5t21.5 60.5t44.5 74.5t75.5 70.5q34 23 74 36.5t82 13.5q37 0 76 -12t75 -34.5t67 -55.5t52 -75q23 -46 34 -107h225v-168h-342q-2 91 -28 159.5t-66 103.5q-22 20 -44.5 27t-42.5 7q-32 0 -58 -11.5t-46.5 -31t-36 -46t-25.5 -56.5 q-20 -61 -25 -152h-343v168zM617 68q-30 0 -66.5 9.5t-73 30.5t-70.5 54.5t-59 81.5q-13 25 -21 50t-14 58h-225v168h343q7 -190 96 -263q17 -14 39 -24t51 -10q48 0 91.5 34.5t69.5 110.5q20 57 25 152h342v-168h-225q-3 -24 -12.5 -55t-27 -62.5t-44 -62t-63.5 -54.5 q-38 -25 -78.5 -37.5t-77.5 -12.5z" />
-<glyph unicode="&#x224f;" d="M88 930h225q0 3 5.5 28.5t21.5 60.5t44.5 74.5t75.5 70.5q34 23 74 36.5t82 13.5q37 0 76 -12t75 -34.5t67 -55.5t52 -75q23 -46 34 -107h225v-168h-342q-2 91 -28 159.5t-66 103.5q-22 20 -44.5 27t-42.5 7q-32 0 -58 -11.5t-46.5 -31t-36 -46t-25.5 -56.5 q-20 -61 -25 -152h-343v168zM88 522h1057v-170h-1057v170z" />
-<glyph unicode="&#x2250;" d="M521 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2251;" d="M521 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM520 -23q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2252;" d="M118 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM923 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2253;" d="M923 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM117 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2254;" d="M104 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 930h773v-170h-773v170zM104 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 524h773v-172h-773v172z" />
-<glyph unicode="&#x2255;" d="M953 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 930h773v-170h-773v170zM953 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 524h773v-172h-773v172z" />
-<glyph unicode="&#x2256;" d="M88 522h318q-25 62 -25 120q0 61 27 120h-320v168h1057v-168h-311q13 -12 19.5 -44t6.5 -70q0 -32 -5.5 -60t-21.5 -66h312v-170h-1057v170zM693 522q26 24 38.5 55t12.5 63q0 33 -13 64.5t-39 57.5h-143q-52 -48 -52 -120t51 -120h145z" />
-<glyph unicode="&#x2257;" d="M614 1000q-61 0 -113.5 21t-90.5 58t-60 87.5t-22 108.5q0 59 22.5 110.5t61.5 89.5t91.5 60t112.5 22t114 -22t92 -61q42 -40 63 -90t21 -106q0 -59 -22.5 -109.5t-62 -88t-93 -59t-114.5 -21.5zM617 1111q36 0 68 13t55 35t36.5 52t13.5 65t-13.5 65.5t-37 53.5t-55 36 t-67.5 13t-68 -13t-55 -36t-36.5 -53.5t-13.5 -65.5t13.5 -65t36.5 -52t55 -35t68 -13zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2258;" d="M182 1204q209 151 437 151q230 0 432 -151v-178q-214 151 -433 160q-214 -1 -436 -160v178zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2259;" d="M536 1604h162l233 -602h-143l-171 426l-166 -426h-149zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225a;" d="M302 1604h149l166 -426l171 426h143l-233 -602h-162zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225b;" d="M482 1287l-218 158h269l84 256l85 -256h268l-218 -158l85 -256l-220 159l-219 -159zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225c;" d="M566 1711h101l260 -663h-621zM767 1159l-151 390l-150 -390h301zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225d;" d="M238 994q-39 0 -70 15t-53 43t-34 66.5t-12 86.5t12 87t34 66.5t53 43t70 15.5t71.5 -17t53.5 -54v218h67v-560h-67v61q-21 -37 -53.5 -54t-71.5 -17zM970 1356h-63v51h63v28q0 69 31 99t100 30h63v-55h-64q-35 0 -49 -14.5t-14 -51.5v-36h109v-51h-109v-352h-67v352z M701 994q-98 0 -154.5 55t-56.5 155q0 49 14 88t40 67t62 43t80 15q84 0 131 -52t47 -143v-32h-304q4 -69 41 -104.5t106 -35.5q68 0 142 37v-62q-74 -31 -148 -31zM251 1049q53 0 82.5 41.5t29.5 115.5t-29.5 115t-82.5 41t-83 -41q-30 -42 -30 -114q0 -75 30 -116.5 t83 -41.5zM798 1242q-2 55 -30.5 87t-82.5 32t-86 -32.5t-37 -87.5zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225e;" d="M221 1543h89v-85q29 48 71 73t101 25q58 0 99.5 -28t64.5 -91q65 119 187 119q88 0 133.5 -60t45.5 -171v-331h-89v328q0 80 -28 118t-86 38q-67 0 -107.5 -46.5t-40.5 -127.5v-310h-89v328q0 81 -27.5 118.5t-85.5 37.5q-69 0 -109 -46.5t-40 -127.5v-310h-89v549z M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225f;" d="M542 1272q0 28 3.5 48t11.5 37.5t22.5 34.5t35.5 38l45 44q26 26 40 47.5t14 50.5q0 45 -32 72.5t-85 27.5q-42 0 -86.5 -17.5t-93.5 -50.5v94q95 56 193 56q47 0 85 -12.5t65 -36t41.5 -56t14.5 -71.5q0 -41 -18.5 -74t-62.5 -76l-44 -43q-24 -23 -33.5 -36.5 t-13.5 -26.5q-3 -10 -4.5 -25t-1.5 -41v-62h-96v78zM539 1121h102v-127h-102v127zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2260;" d="M125 141l164 211h-201v172h330l184 236h-514v170h647l246 315l125 -102l-164 -213h203v-170h-334l-184 -236h518v-172h-647l-248 -315z" />
-<glyph unicode="&#x2261;" d="M88 1090h1057v-170h-1057v170zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
-<glyph unicode="&#x2262;" d="M272 74l55 118h-239v172h317l88 192h-405v172h485l88 192h-573v170h651l85 184l141 -65l-55 -119h235v-170h-312l-89 -192h401v-172h-480l-90 -192h570v-172h-649l-83 -182z" />
-<glyph unicode="&#x2263;" d="M88 1262h1057v-170h-1057v170zM88 900h1057v-172h-1057v172zM88 536h1057v-172h-1057v172zM88 172h1057v-172h-1057v172z" />
-<glyph unicode="&#x2264;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x2265;" d="M88 438l803 234l-803 231v184l1057 -331v-168l-1057 -332v182zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x2266;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
-<glyph unicode="&#x2267;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
-<glyph unicode="&#x2268;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
-<glyph unicode="&#x2269;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
-<glyph unicode="&#x226d;" d="M235 77l129 258q-125 -41 -276 -114v178q110 52 204 87t175 52l97 193q-190 18 -477 154v178q347 -170 563 -162l194 383l154 -77l-130 -258q121 40 276 114v-178q-216 -104 -378 -138l-98 -194q192 -18 477 -154v-178q-347 170 -563 162l-193 -383z" />
-<glyph unicode="&#x226e;" d="M362 19l119 385l-393 155v166l562 222l114 365l153 -48l-75 -241l303 120v-182l-366 -138l-100 -325l466 -174v-183l-514 203l-116 -373zM590 752l-295 -111l233 -86z" />
-<glyph unicode="&#x226f;" d="M316 19l75 241l-303 -120v182l366 138l100 325l-466 174v183l514 -203l116 373l153 -48l-119 -385l393 -155v-166l-562 -222l-114 -365zM938 642l-233 86l-62 -197z" />
-<glyph unicode="&#x2270;" d="M293 -190l63 190h-268v170h323l95 287l-418 131v168l575 180l115 352l161 -53l-77 -237l283 89v-184l-348 -100l-78 -241l426 -124v-182l-477 150l-78 -236h555v-170h-610l-80 -243zM600 746l-256 -74l211 -62z" />
-<glyph unicode="&#x2271;" d="M205 -190l62 190h-179v170h235l58 178l-293 -92v182l358 104l76 236l-434 125v184l486 -152l116 353l161 -53l-115 -351l409 -128v-168l-565 -177l-78 -241h643v-170h-699l-79 -243zM891 672l-206 60l-42 -132z" />
-<glyph unicode="&#x2272;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 130q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37 q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
-<glyph unicode="&#x2273;" d="M86 438l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 130q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14 t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
-<glyph unicode="&#x2274;" d="M293 -190l88 269q-81 0 -151.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q14 0 24 -0.5t21 -1.5l69 214l-418 131v168l577 181l115 351l161 -53l-77 -236l281 88v-184l-345 -99l-80 -242l425 -124v-182l-477 150l-66 -207q23 -7 53 -23q115 -54 209 -54 q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-148.5 -27q-27 0 -51 3t-48 9.5t-50 16t-56 22.5q-4 2 -5.5 2.5t-4 1.5l-7.5 3t-16 7q-16 7 -31 13.5t-29 11.5l-95 -289zM601 747l-259 -75l213 -62z" />
-<glyph unicode="&#x2275;" d="M205 -190l85 259q-20 -5 -35.5 -10t-24.5 -9q-31 -13 -68.5 -36.5t-75.5 -57.5v174q78 60 141 84t121 29l34 106l-296 -93v182l359 105l78 234l-437 126v184l488 -153l116 354l161 -53l-115 -352l407 -127v-168l-563 -177l-59 -184q12 -2 41 -12.5t59 -23.5 q2 -1 3.5 -1.5t4 -2t8 -4l16.5 -7.5q55 -26 108.5 -40t101.5 -14q69 0 137 30t143 93v-175q-72 -57 -145 -85.5t-151 -28.5q-52 0 -98 12.5t-106 38.5q-4 2 -5.5 2.5t-4 1.5l-7.5 3t-16 7q-20 9 -36 15.5t-32 12.5t-33 11t-39 10l-103 -313zM887 672l-202 59l-42 -130z" />
-<glyph unicode="&#x2276;" d="M86 736v168l1057 331v-184l-801 -231l801 -234v-182zM86 0l801 234l-801 231v184l1057 -331v-168l-1057 -332v182z" />
-<glyph unicode="&#x2277;" d="M86 586l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 150v168l1057 331v-184l-801 -231l801 -234v-182z" />
-<glyph unicode="&#x2278;" d="M259 -352l76 248l-249 -78v182l308 90l80 263l-388 112v184l437 -137l24 79l-461 145v168l616 193l110 360l162 -50l-76 -249l245 77v-184l-306 -88l-80 -264l386 -113v-182l-434 136l-25 -78l459 -144v-168l-613 -193l-109 -357zM644 907l-302 -87l252 -74zM887 234 l-250 72l-50 -160z" />
-<glyph unicode="&#x2279;" d="M259 -352l125 408l-298 94v168l418 131l29 95l-447 -140v182l505 147l48 158l-553 160v184l601 -188l125 410l162 -50l-126 -411l295 -92v-168l-414 -130l-29 -96l443 139v-184l-502 -145l-48 -159l550 -161v-182l-598 188l-124 -406zM887 820l-85 25l-17 -55zM447 264 l-105 -30l88 -26z" />
-<glyph unicode="&#x227a;" d="M1143 -45q-327 453 -1057 603v166q735 149 1057 603v-239q-327 -360 -747 -447q427 -98 747 -447v-239v0z" />
-<glyph unicode="&#x227b;" d="M88 194q319 349 747 447q-420 87 -747 447v239q322 -454 1057 -603v-166q-730 -150 -1057 -603v239z" />
-<glyph unicode="&#x227c;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM1143 -252q-43 51 -99 106.5t-118.5 109t-127 103t-123.5 88.5q-58 38 -117.5 69t-129 56.5t-153 45.5t-189.5 37 v200q184 -28 334 -78.5t277 -121.5t235.5 -162t210.5 -201v-252z" />
-<glyph unicode="&#x227d;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-171 -29 -323.5 -79t-285 -118.5t-245 -155t-203.5 -186.5v239zM86 0q102 110 210.5 201t235.5 162t277 121.5t334 78.5v-200q-106 -16 -190.5 -37t-155 -47t-130 -57t-114.5 -67 q-54 -36 -117.5 -84.5t-127 -103t-121.5 -111t-101 -108.5v252z" />
-<glyph unicode="&#x227e;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM86 60q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5 q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
-<glyph unicode="&#x227f;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM86 60q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30 t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
-<glyph unicode="&#x2280;" d="M345 -115l166 546q-97 40 -202.5 71.5t-222.5 55.5v166q329 66 573 193l161 530l163 -50l-104 -342q154 118 264 272v-239q-81 -88 -165.5 -159.5t-175.5 -126.5l-85 -277q231 -118 426 -331v-239q-178 247 -476 404l-160 -524zM592 699q-48 -19 -96.5 -33t-99.5 -25 q85 -20 164 -48z" />
-<glyph unicode="&#x2281;" d="M246 -115l104 342q-154 -118 -264 -272v239q81 88 165.5 159.5t175.5 126.5l85 277q-231 118 -426 331v239q178 -247 476 -404l160 524l162 -50l-166 -546q97 -40 202.5 -71.5t222.5 -55.5v-166q-329 -66 -573 -193l-161 -530zM637 583q48 19 96.5 33t99.5 25 q-85 20 -164 48z" />
-<glyph unicode="&#x2282;" d="M566 163q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579v0z" />
-<glyph unicode="&#x2283;" d="M88 313h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150z" />
-<glyph unicode="&#x2284;" d="M309 -7l70 205q-42 17 -79.5 42.5t-72.5 61.5q-68 69 -103.5 152t-35.5 182q0 102 37 190t101.5 153.5t151.5 102.5t187 37h126l75 223l161 -53l-57 -170h275v-150h-326l-221 -656h547v-150h-579h-20l-75 -223zM639 969h-74q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105 t-25.5 -130.5q0 -66 23.5 -123.5t71.5 -105.5q43 -43 94 -67z" />
-<glyph unicode="&#x2285;" d="M306 -7l57 170h-275v150h326l221 656h-547v150h579h20l75 223l162 -53l-70 -205q42 -17 79.5 -42.5t72.5 -61.5q68 -69 103.5 -152t35.5 -182q0 -102 -37 -190t-101.5 -153.5t-151.5 -102.5t-187 -37h-126l-75 -223zM668 313q69 0 128.5 25.5t103.5 70t69.5 105 t25.5 130.5q0 66 -23.5 123.5t-71.5 105.5q-43 43 -94 67l-212 -627h74z" />
-<glyph unicode="&#x2286;" d="M566 324q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579zM88 170h1057v-170 h-1057v170z" />
-<glyph unicode="&#x2287;" d="M88 474h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150zM88 170h1057v-170 h-1057v170z" />
-<glyph unicode="&#x2288;" d="M261 -159l54 159h-227v170h283l58 172q-57 16 -117 52.5t-110 94t-82 134.5t-32 174q0 102 37 190t101.5 153.5t151.5 102.5t187 37h178l71 214l158 -53l-53 -161h226v-150h-276l-220 -656h496v-150h-547l-50 -154h597v-170h-654l-71 -212zM692 1130h-127 q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105t-25.5 -130.5q0 -66 21.5 -118.5t56 -92t77 -65t83.5 -37.5z" />
-<glyph unicode="&#x2289;" d="M261 -159l53 159h-226v170h283l51 154h-334v150h385l219 655q-6 1 -12 1h-12h-580v150h580q19 0 37.5 -1.5t35.5 -3.5l73 219l158 -53l-73 -218q29 -16 56 -37t51 -45q68 -68 103.5 -152.5t35.5 -183.5q0 -102 -37 -189.5t-101.5 -152.5t-152 -102t-187.5 -37h-68 l-52 -154h598v-170h-655l-70 -212zM668 474q68 0 127.5 25.5t104 69.5t70 104.5t25.5 130.5q0 69 -25 127t-70 103q-23 23 -50 42l-202 -602h20z" />
-<glyph unicode="&#x228a;" d="M358 -102l82 102h-352v170h488l124 154h-134q-101 0 -188 37.5t-151.5 102t-101.5 152t-37 186.5t37 186t101.5 152t151.5 102.5t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104t-25.5 -127.5q0 -69 26 -129t70 -104t103.5 -69.5t127.5 -25.5h580 v-150h-335l65 -53l-81 -101h351v-170h-488l-167 -208z" />
-<glyph unicode="&#x228b;" d="M358 -102l82 102h-352v170h488l124 155q-8 -1 -16.5 -1h-16.5h-579v150h580q67 0 127 25.5t104 69.5t70 104t26 129q0 68 -25.5 127.5t-69.5 104t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102.5t101.5 -153t37 -189q0 -98 -33 -176.5t-84.5 -136.5 t-114 -95t-122.5 -51l84 -68l-81 -101h351v-170h-488l-167 -208z" />
-<glyph unicode="&#x228d;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM539 446q-30 0 -30 30 v166q0 30 30 30h152q30 0 30 -30v-166q0 -30 -30 -30h-152z" />
-<glyph unicode="&#x228e;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM566 509h-170v100h170 v170h101v-170h170v-100h-170v-172h-101v172z" />
-<glyph unicode="&#x228f;" d="M88 1163h1057v-170h-887v-704h887v-170h-1057v1044z" />
-<glyph unicode="&#x2290;" d="M88 289h887v704h-887v170h1057v-1044h-1057v170z" />
-<glyph unicode="&#x2291;" d="M88 1268h1057v-170h-887v-616h887v-170h-1057v956zM88 184h1057v-170h-1057v170z" />
-<glyph unicode="&#x2292;" d="M88 482h887v616h-887v170h1057v-956h-1057v170zM88 184h1057v-170h-1057v170z" />
-<glyph unicode="&#x2293;" d="M94 1284h1044v-1284h-170v1114h-704v-1114h-170v1284z" />
-<glyph unicode="&#x2294;" d="M94 1284h170v-1114h704v1114h170v-1284h-1044v1284z" />
-<glyph unicode="&#x2295;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM546 572h-275v140h275v277 h140v-277h276v-140h-276v-274h-140v274z" />
-<glyph unicode="&#x2296;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM271 712h691v-140h-691v140 z" />
-<glyph unicode="&#x2297;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448l194 194l-196 196 l99 99l196 -196l195 195l99 -99l-195 -195l194 -194l-99 -99l-194 194l-194 -194z" />
-<glyph unicode="&#x2298;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448l488 488l99 -99 l-488 -488z" />
-<glyph unicode="&#x2299;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM489 784h252v-305h-252v305 z" />
-<glyph unicode="&#x229a;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM614 378q-57 0 -105 20 t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 511q28 0 52.5 10t43 28t29 42.5t10.5 52.5q0 54 -39 93q-18 18 -42 28.5t-53 10.5 q-28 0 -52 -10.5t-42 -28.5t-28.5 -42.5t-10.5 -52.5t10 -52t28 -41.5t42 -27.5t52 -10z" />
-<glyph unicode="&#x229b;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M559 1037q-49 -7 -106.5 -31.5t-115.5 -81.5q-9 -10 -17 -19t-16 -19l255 -154v305zM929 886q-8 10 -16 19t-17 19q-58 57 -115.5 81.5t-106.5 31.5v-305zM524 642l-276 150q-27 -69 -27 -150t28 -150zM984 492q28 69 28 150t-27 150l-276 -150zM559 552l-254 -153l16 -18 l16 -18q58 -57 115.5 -81.5t106.5 -31.5v302zM674 250q49 7 106.5 31.5t115.5 81.5l16 18l16 18l-254 153v-302z" />
-<glyph unicode="&#x229c;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM299 814h635v-102h-635v102 zM299 571h635v-103h-635v103z" />
-<glyph unicode="&#x229d;" d="M617 106q-112 0 -210.5 42.5t-170.5 114.5t-114 169.5t-42 212.5q0 112 41 208.5t116 170.5q39 38 82 67.5t93 50.5q95 40 201 40q118 0 215 -43t169 -115q78 -78 117 -176t39 -204q0 -109 -40.5 -207.5t-115.5 -173.5t-173 -116t-207 -41zM616 246q76 0 149.5 29.5 t131.5 86.5q59 59 87 132t28 149q0 78 -29 151.5t-86 130.5q-52 52 -124.5 84t-156.5 32q-83 0 -155.5 -32t-124.5 -84q-60 -60 -87.5 -133t-27.5 -148q0 -79 29 -152t86 -130q51 -51 123 -83.5t157 -32.5zM415 712h403v-140h-403v140z" />
-<glyph unicode="&#x229e;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM546 572h-311v140h311v313h140v-313h312v-140h-312v-310h-140v310z" />
-<glyph unicode="&#x229f;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM271 712h691v-140h-691v140z" />
-<glyph unicode="&#x22a0;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM253 376l266 265l-267 267l99 99l267 -267l268 268l99 -99l-268 -268l264 -264l-99 -99l-264 264l-266 -265z" />
-<glyph unicode="&#x22a1;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM489 784h252v-305h-252v305z" />
-<glyph unicode="&#x22a2;" d="M88 1284h168v-557h889v-170h-889v-557h-168v1284z" />
-<glyph unicode="&#x22a3;" d="M977 557h-889v170h889v557h168v-1284h-168v557z" />
-<glyph unicode="&#x22a4;" d="M533 1114h-445v170h1057v-170h-444v-1114h-168v1114z" />
-<glyph unicode="&#x22b2;" d="M88 559v166l1057 418v-1002zM977 898l-682 -257l682 -254v511z" />
-<glyph unicode="&#x22b3;" d="M88 1143l1057 -418v-166l-1057 -418v1002zM938 641l-682 257v-511z" />
-<glyph unicode="&#x22b4;" d="M88 588v168l1057 331v-831zM977 855l-633 -183l633 -185v368zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x22b5;" d="M88 1087l1057 -331v-168l-1057 -332v831zM891 672l-635 183v-368zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x22b8;" d="M920 359q-60 0 -107 19.5t-81 48.5t-55 64t-30 67h-619l1 168h617q9 34 32 70.5t58 66t81 48.5t103 19q60 0 112.5 -22.5t90.5 -61.5t60 -91.5t22 -113.5q0 -60 -21.5 -111.5t-59.5 -89.5t-90.5 -59.5t-113.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43t10.5 53.5 q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
-<glyph unicode="&#x22c2;" d="M131 1023q0 148 27 248.5t85.5 161.5t150.5 87.5t222 26.5t222.5 -26.5t151 -87.5t85.5 -161.5t27 -248.5v-1459h-172v1414q0 122 -18 200.5t-56 124t-97.5 63t-142.5 17.5t-142 -17.5t-97 -63t-56 -124t-18 -200.5v-1414h-172v1459z" />
-<glyph unicode="&#x22c3;" d="M617 -465q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v1459h172v-1414q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v1414h172v-1459q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5z" />
-<glyph unicode="&#x22c4;" d="M105 642l510 510l512 -512l-510 -510zM887 640l-272 272l-270 -270l272 -272z" />
-<glyph unicode="&#x22c5;" d="M489 864h252v-305h-252v305z" />
-<glyph unicode="&#x22c6;" d="M482 666l-217 158h268l84 255l83 -255h268l-217 -158l84 -255l-218 158l-218 -158z" />
-<glyph unicode="&#x22cd;" d="M383 674q-82 0 -154 29.5t-141 84.5v175q75 -63 143 -93t140 -30q54 0 103 15t104 39q8 4 12 5.5t6.5 3t5 2.5t8.5 4q72 33 128.5 43.5t101.5 10.5q82 0 154.5 -27.5t150.5 -87.5v-174q-78 68 -149 95.5t-148 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5l-33 -14 q-30 -13 -56 -22.5t-50 -16t-48 -9.5t-51 -3zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x22ce;" d="M532 0q0 892 -540 1284h240q369 -295 384 -596q19 298 382 596h240q-540 -392 -540 -1284h-166v0z" />
-<glyph unicode="&#x22cf;" d="M-8 0q540 391 540 1284h166q0 -893 540 -1284h-240q-369 295 -384 596q-19 -298 -382 -596h-240v0z" />
-<glyph unicode="&#x22d0;" d="M738 -6q-90 0 -173 23t-155 65t-131 101t-101 131t-65 155t-23 173q0 89 23 172t64.5 155t100 131t130.5 101.5t155 65.5t173 23h407v-170h-406q-100 0 -187 -37.5t-151.5 -102t-101.5 -152t-37 -186.5q0 -100 37 -187t101.5 -151.5t151.5 -102t188 -37.5h405v-170h-405z M737 334q-64 0 -120 24t-97.5 65.5t-65.5 97.5t-24 121q0 64 24 120t65 98t97 66t121 24h406v-170h-405q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5q0 -29 10.5 -54t29.5 -44t44 -29.5t54 -10.5h405v-170h-406z" />
-<glyph unicode="&#x22d1;" d="M90 164h406q100 0 187 37.5t151.5 102.5t101.5 152t37 187q0 99 -37 186t-101.5 151.5t-152 102t-187.5 37.5h-405v170h405q90 0 173 -23t155 -65t131 -101t101 -131t65 -155t23 -173q0 -89 -23 -172t-64.5 -155t-100 -131t-130.5 -101.5t-155 -65.5t-173 -23h-407v170z M90 504h405q29 0 54 11t44 29.5t29.5 43.5t10.5 54t-10.5 54t-29.5 44t-44 29.5t-54 10.5h-405v170h406q64 0 120 -24t97.5 -65.5t65.5 -97.5t24 -121q0 -64 -24 -120t-65 -98t-97.5 -66t-120.5 -24h-406v170z" />
-<glyph unicode="&#x22da;" d="M88 1058v168l1057 331v-184l-801 -231l801 -234v-182zM88 640h1057v-170h-1057v170zM88 -263l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
-<glyph unicode="&#x22db;" d="M88 908l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM88 640h1057v-170h-1057v170zM88 -116v168l1057 332v-182l-803 -234l803 -231v-184z" />
-<glyph unicode="&#x22dc;" d="M86 1087h1057v-170h-1057v170zM86 331v168l1057 332v-182l-801 -234l801 -231v-184z" />
-<glyph unicode="&#x22dd;" d="M88 1087h1057v-170h-1057v170zM88 184l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
-<glyph unicode="&#x22de;" d="M86 842q106 16 190.5 37t155 47t130 57t114.5 67q54 36 117.5 84.5t127 103t121.5 111t101 108.5v-252q-102 -110 -210.5 -201t-235.5 -162t-277 -121.5t-334 -78.5v200zM1143 -252q-183 203 -443.5 340.5t-613.5 198.5v166q171 28 323.5 78.5t285 119t244.5 154.5 t204 187v-239q-292 -290 -695 -383q405 -80 695 -383v-239z" />
-<glyph unicode="&#x22df;" d="M1143 642q-184 28 -334 78.5t-277 121.5t-235.5 162t-210.5 201v252q43 -51 99 -106.5t118.5 -109t127 -103t123.5 -88.5q58 -38 117.5 -69t129 -56.5t153 -46t189.5 -36.5v-200zM86 -13q290 303 695 383q-403 93 -695 383v239q91 -101 203.5 -187t245 -154.5t285 -119 t323.5 -78.5v-166q-353 -61 -613.5 -198.5t-443.5 -340.5v239z" />
-<glyph unicode="&#x22e0;" d="M271 -321l186 590q-162 64 -371 94v200q250 -38 429 -109l51 163q-210 90 -480 135v166q92 16 178.5 37.5t163 46t139.5 50.5t109 52l52 29l140 444l162 -51l-77 -245q54 42 101 85.5t89 90.5v-239q-65 -68 -135 -124t-146 -102l-86 -274q201 -100 367 -266v-239 q-85 93 -190 174.5t-233 153.5l-51 -161l7 -4q60 -35 123.5 -78.5t124 -92.5t116.5 -101.5t103 -103.5v-252q-45 53 -101 108.5t-117.5 108.5t-125 101.5t-123.5 88.5q-17 11 -36 23.5t-28 17.5l-179 -568zM653 892q-100 -36 -205 -57q45 -10 87 -22.5t84 -27.5z" />
-<glyph unicode="&#x22e1;" d="M208 -321l87 278q-119 -104 -209 -209v252q139 151 309 273l78 247q-232 -136 -387 -307v239q204 202 462 309l40 127q-283 100 -502 330v239q47 -53 102.5 -102t115.5 -94t123 -84.5t126 -72.5q19 -10 44.5 -22.5t45.5 -20.5l162 516l162 -51l-165 -525 q78 -26 162.5 -46.5t178.5 -36.5v-166q-257 -44 -459 -126l-68 -216q208 105 527 153v-200q-184 -27 -329 -78t-261 -130l-22 -15l-161 -512zM781 835l-29 6l-5 -14z" />
-<glyph unicode="&#x22e2;" d="M227 -102l89 221h-228v1044h646l114 284l158 -63l-89 -221h228v-170h-296l-282 -704h578v-170h-646l-114 -284zM384 289l282 704h-408v-704h126z" />
-<glyph unicode="&#x22e3;" d="M227 -102l89 221h-228v170h296l282 704h-578v170h646l114 284l158 -63l-89 -221h228v-1044h-646l-114 -284zM975 289v704h-126l-282 -704h408z" />
-<glyph unicode="&#x22e4;" d="M358 -88l82 102h-352v170h488l103 128h-591v956h1057v-170h-887v-616h887v-170h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
-<glyph unicode="&#x22e5;" d="M358 -88l82 102h-352v170h488l103 128h-591v170h887v616h-887v170h1057v-956h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
-<glyph unicode="&#x22e6;" d="M467 -244l67 295q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 210l-532 167v168l1057 331v-184l-801 -231l801 -234v-182l-392 123l-50 -223q87 -34 161 -34q70 0 138 30t143 93 v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
-<glyph unicode="&#x22e7;" d="M467 -244l67 295q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 212l-532 -167v182l801 234l-801 231v184l1057 -331v-168l-449 -141l69 -16l-62 -275q87 -34 161 -34q70 0 138 30 t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
-<glyph unicode="&#x22e8;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM446 -406l88 387q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174 q78 60 150.5 87.5t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
-<glyph unicode="&#x22e9;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM446 -406l88 387q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5 q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
-<glyph unicode="&#x22ef;" d="M80 795h252v-305h-252v305zM489 795h252v-305h-252v305zM899 795h252v-305h-252v305z" />
-<glyph unicode="&#x2304;" d="M146 428h163l307 -456l307 456h163l-470 -698z" />
-<glyph unicode="&#x2308;" d="M640 1556h424l-27 -143h-240l-327 -1683h-184z" />
-<glyph unicode="&#x2309;" d="M736 1413h-240l27 143h424l-354 -1826h-184z" />
-<glyph unicode="&#x230a;" d="M640 1556h184l-327 -1683h240l-27 -143h-424z" />
-<glyph unicode="&#x230b;" d="M196 -127h240l327 1683h184l-354 -1826h-424z" />
-<glyph unicode="&#x2310;" d="M88 862h1057v-172h-889v-319h-168v491z" />
-<glyph unicode="&#x2320;" d="M513 776q0 36 3 165q7 262 33.5 444.5t73.5 292.5q48 112 122 167t169 55q88 0 137 -42t49 -108q0 -54 -32 -85t-88 -31q-38 0 -66.5 17t-42.5 56q-5 12 -7 28t-3 23q-3 21 -8 28.5t-15 7.5q-50 0 -80.5 -154.5t-38.5 -464.5l-8 -303v-1384h-198v1288z" />
-<glyph unicode="&#x2321;" d="M310 -486q-88 0 -137 42t-49 108q0 54 32 85t88 31q45 0 71.5 -20t37.5 -52q5 -11 7.5 -28t3.5 -24q3 -21 7.5 -28.5t14.5 -7.5q49 0 80 154.5t39 464.5l8 303v1387h198v-1291q0 -36 -3 -165q-7 -263 -33.5 -445t-73.5 -292q-48 -112 -122 -167t-169 -55z" />
-<glyph unicode="&#x239b;" d="M280 -294q0 306 22.5 565.5t61 477.5t89.5 397t108 323.5t116.5 257.5t114.5 199h160q-87 -175 -156 -334.5t-122 -319t-90.5 -325.5t-62 -354.5t-35.5 -406.5t-11 -480v-234h-195v234z" />
-<glyph unicode="&#x239c;" d="M280 1929h195v-2445h-195v2445z" />
-<glyph unicode="&#x239d;" d="M792 -492q-69 108 -134 236.5t-122 280.5t-104 329.5t-81 384.5t-52.5 445t-18.5 511v234h195v-234q0 -286 16.5 -521.5t47 -432.5t73.5 -363t96 -313.5t114.5 -283.5t129.5 -273h-160v0z" />
-<glyph unicode="&#x239e;" d="M758 -294q0 262 -11 480t-35.5 406.5t-62 354.5t-90.5 325.5t-122 319t-156 334.5h160q55 -86 114.5 -199t116.5 -257.5t108 -323.5t89.5 -397t61 -477.5t22.5 -565.5v-234h-195v234z" />
-<glyph unicode="&#x239f;" d="M758 1929h195v-2445h-195v2445z" />
-<glyph unicode="&#x23a0;" d="M281 -492q68 137 129.5 273t114.5 283.5t96 313.5t73.5 363t47 432.5t16.5 521.5v234h195v-234q0 -273 -18.5 -511t-52.5 -445t-81 -384.5t-104 -329.5t-122 -280.5t-134 -236.5h-160v0z" />
-<glyph unicode="&#x23a1;" d="M280 1901h672v-195h-477v-2222h-195v2417z" />
-<glyph unicode="&#x23a2;" d="M280 1929h195v-2445h-195v2445z" />
-<glyph unicode="&#x23a3;" d="M280 1929h195v-2226h477v-195h-672v2421z" />
-<glyph unicode="&#x23a4;" d="M757 1706h-477v195h672v-2417h-195v2222z" />
-<glyph unicode="&#x23a5;" d="M757 1914h195v-2430h-195v2430z" />
-<glyph unicode="&#x23a6;" d="M280 -297h477v2211h195v-2406h-672v195z" />
-<glyph unicode="&#x23a7;" d="M524 1375q0 111 30.5 207.5t85.5 167t132 111t170 40.5h275v-176h-281q-51 0 -92.5 -25t-71 -70t-46 -108t-16.5 -139v-1917h-186v1909z" />
-<glyph unicode="&#x23a8;" d="M524 8q0 147 -9 248.5t-29.5 168t-54.5 103.5t-83.5 55t-116 22t-153.5 6l-61 1v187h61q86 0 152.5 4.5t116.5 23t83.5 56.5t54.5 105t30 168t9 246v524h186v-536q0 -440 -101 -592q-18 -27 -43 -51.5t-57 -41.5q29 -16 54.5 -40t45.5 -53q49 -74 75 -218.5t26 -373.5 v-536h-186v524z" />
-<glyph unicode="&#x23a9;" d="M942 -492q-92 0 -168.5 40t-132 110.5t-86.5 166.5t-31 209v1892h186v-1900q0 -77 16.5 -140t46 -108t71 -69.5t92.5 -24.5h281v-176h-275v0z" />
-<glyph unicode="&#x23aa;" d="M524 1932h186v-2456h-186v2456z" />
-<glyph unicode="&#x23ab;" d="M523 1383q0 76 -16.5 139t-46 108t-71 70t-92.5 25h-281v176h275q93 0 170 -40.5t132 -111t85.5 -167t30.5 -207.5v-1909h-186v1917z" />
-<glyph unicode="&#x23ac;" d="M523 20q0 229 25.5 373.5t75.5 218.5q17 26 43.5 51.5t56.5 41.5q-30 17 -55.5 40.5t-44.5 52.5q-101 152 -101 592v536h186v-524q0 -145 9 -246t30 -168t54.5 -105t83.5 -56.5t116.5 -23t152.5 -4.5h61v-187l-61 -1q-87 -2 -153.5 -6t-116 -22t-83.5 -55t-54.5 -103.5 t-29.5 -168t-9 -248.5v-524h-186v536z" />
-<glyph unicode="&#x23ad;" d="M16 -316h281q51 0 92.5 24.5t71 69.5t46 108t16.5 140v1900h186v-1892q0 -113 -31 -209t-86.5 -166.5t-132 -110.5t-168.5 -40h-275v176z" />
-<glyph unicode="&#x23ae;" d="M513 1929h198v-2441h-198v2441z" />
-<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
-<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
-<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
-<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
-<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
-<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
-<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
-<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
-<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
-<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
-<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
-<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
-<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
-<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
-<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
-<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
-<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
-<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
-<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
-<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
-<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
-<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
-<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
-<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
-<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
-<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
-<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
-<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
-<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
-<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
-<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
-<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
-<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
-<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
-<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
-<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
-<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
-<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
-<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
-<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
-<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
-<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
-<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
-<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
-<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
-<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
-<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
-<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
-<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
-<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
-<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
-<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
-<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
-<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
-<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
-<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
-<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
-<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
-<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
-<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
-<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
-<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
-<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
-<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
-<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
-<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
-<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
-<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
-<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
-<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
-<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
-<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
-<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
-<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
-<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
-<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
-<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
-<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
-<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
-<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
-<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
-<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
-<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
-<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
-<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
-<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
-<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
-<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
-<glyph unicode="&#x2588;" d="M-20 1921h1273v-2433h-1273v2433z" />
-<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
-<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
-<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
-<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
-<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
-<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
-<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
-<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
-<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
-<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
-<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
-<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
-<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
-<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
-<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
-<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
-<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
-<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
-<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
-<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
-<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
-<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
-<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
-<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
-<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
-<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
-<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
-<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
-<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
-<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
-<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
-<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
-<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
-<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
-<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
-<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
-<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
-<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
-<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
-<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
-<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1056 1028h-879l439 -878z" />
-<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
-<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
-<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
-<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
-<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
-<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
-<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
-<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
-<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
-<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1038 532l-422 422l-421 -422l421 -422z" />
-<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
-<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
-<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
-<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-30 -119q-62 17 -120 17t-120 -17zM111 885q42 58 93.5 100.5t106.5 74.5l61 -106q-45 -25 -85.5 -58.5t-74.5 -81.5zM1020 814q-34 48 -74.5 81.5t-85.5 58.5l61 106q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150 l119 -30q-13 -55 -13 -120t13 -120zM1092 412q13 55 13 120t-13 120l119 30q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l101 71q34 -48 74.5 -81.5t85.5 -58.5zM860 110q45 25 83 57t77 83l101 -70q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l30 119q62 -17 120 -17t120 17l30 -119q-75 -21 -150 -21z" />
-<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q10 4 18 7.5t16.5 7.5t18.5 9.5t25 13.5q21 11 28 17v810q-6 3 -7.5 4.5t-3.5 2.5t-5 3t-12 7q-21 12 -39 21t-39 17v-920zM448 991 q-19 -8 -38 -17t-38 -20q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
-<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 286 q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM617 396q32 0 66 20q33 20 50.5 48t17.5 68t-17.5 68t-50.5 48 q-34 20 -66 20q-33 0 -68 -20q-67 -39 -67 -116t67 -116q35 -20 68 -20z" />
-<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
-<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
-<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
-<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 137 -62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250h977z" />
-<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q122 0 244 71q245 141 245 422h-977q0 -145 61.5 -248.5t182.5 -173.5q122 -71 244 -71z" />
-<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
-<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
-<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
-<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM614 465q63 0 117.5 23t95 63.5t63.5 94.5t23 116q0 61 -23 115t-63.5 94t-94.5 63t-117 23q-62 0 -116 -23t-94 -63t-63 -94t-23 -116t23 -116t62.5 -94t93.5 -63t116 -23z" />
-<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM372 110q-119 69 -181.5 172t-62.5 250t62.5 250t181.5 172q124 71 244 71q122 0 244 -71q245 -141 245 -422t-245 -422q-122 -71 -244 -71q-120 0 -244 71z" />
-<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 179 -76.5 309.5t-229.5 218.5q-152 88 -306 88q-74 0 -149.5 -21t-154.5 -67q-152 -88 -228.5 -218.5t-76.5 -309.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5q120 -68 182 -177t62 -246 h-977z" />
-<glyph unicode="&#x25db;" d="M-20 532h26q0 -87 20.5 -165.5t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5t148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5h26v-1044h-1273v1044zM616 39q-57 0 -120 17.5t-125 52.5q-112 63 -177.5 170t-65.5 253h977q0 -137 -62 -246 t-182 -177q-62 -35 -125 -52.5t-120 -17.5z" />
-<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
-<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q150 0 304 -88q306 -176 306 -528h-123v0z" />
-<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
-<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
-<glyph unicode="&#x25e0;" d="M6 532q0 87 20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5h-122q0 137 -62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250h-122v0z " />
-<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h122q0 -145 61.5 -248.5t182.5 -173.5q122 -71 244 -71t244 71q245 141 245 422h122q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
-<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
-<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
-<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
-<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
-<glyph unicode="&#x25e6;" d="M614 465q-62 0 -116 23t-93.5 63t-62.5 94t-23 116t23 116t63 94t94 63t116 23q63 0 117 -23t94.5 -63t63.5 -94t23 -115q0 -62 -23 -116t-63.5 -94.5t-95 -63.5t-117.5 -23zM614 524q50 0 93.5 18.5t76 51t51.5 75.5t19 93q0 49 -18.5 92t-51 75t-76 50.5t-93.5 18.5 t-93 -18.5t-75 -50.5t-50.5 -75t-18.5 -93t18.5 -93t50 -75t74.5 -50.5t93 -18.5z" />
-<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
-<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
-<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
-<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
-<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
-<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
-<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
-<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
-<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
-<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q56 0 119.5 17.5t125.5 52.5q121 69 182.5 178.5t61.5 246.5q0 73 -17.5 136.5t-49.5 116t-77 94.5t-100 73q-42 24 -92.5 42.5t-95.5 24.5v-547h-542q8 -79 35.5 -142t67.5 -111.5t89.5 -82.5t100.5 -56t101 -32.5t91 -10.5z M559 588v433q-47 -7 -93 -23t-94 -44q-219 -126 -241 -366h428z" />
-<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q48 8 93.5 23.5t93.5 43.5q245 141 245 422t-245 422q-64 37 -125 54t-116 17q-43 0 -94 -10.5t-102.5 -32.5t-101 -56.5t-89.5 -83t-67 -112t-34 -142.5h542v-545zM559 474h-428q22 -237 241 -364q92 -53 187 -67v431z" />
-<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142t-67 111.5t-89 83t-100.5 57t-102 33t-92.5 10.5q-57 0 -120.5 -17.5t-125.5 -52.5q-121 -69 -182 -178.5t-61 -246.5q0 -141 62.5 -247t180.5 -173q48 -27 96 -44t92 -23v545zM673 43q51 8 96.5 24.5 t90.5 42.5q220 126 242 364h-429v-431z" />
-<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM613 39q42 0 92.5 10t102 32t101 56.5t90 82.5t68 111t35.5 143h-543v547q-47 -7 -93 -23t-94 -44q-244 -141 -244 -422t244 -422q61 -35 122.5 -53t118.5 -18zM1102 588q-23 241 -242 366q-93 53 -187 67v-433h429z" />
-<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
-<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
-<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
-<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
-<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
-<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
-<glyph unicode="&#x266a;" d="M894 1493h134q106 -123 154 -257.5t48 -288.5q0 -125 -31 -284l-147 -61q19 90 27 154t8 134q0 209 -98 400l-199 -1023q-28 -146 -72.5 -242t-111.5 -157q-67 -62 -151.5 -90.5t-205.5 -28.5q-87 0 -157.5 28.5t-109.5 78.5q-40 49 -40 110q0 17 3 35q13 68 71.5 125.5 t147.5 91.5q87 33 183 33q89 0 160 -28.5t110 -79.5q26 57 39 124z" />
-<glyph unicode="&#x27c2;" d="M88 170h444l1 1114h168l-1 -1114h445v-170h-1057v170z" />
-<glyph unicode="&#x27c5;" d="M675 -334q-29 0 -53 3t-52 8q-101 19 -173 47t-117.5 65.5t-66.5 85.5t-21 108q0 67 24.5 149t68.5 181t105 215t134 251q73 136 128.5 238t92 175t55 119.5t18.5 70.5q0 34 -22 48.5t-51 14.5q-18 0 -34 -6.5t-32.5 -22t-34 -42t-39.5 -66.5l-126 49q24 55 60 96 t78.5 68t88 40.5t87.5 13.5q36 0 68.5 -10t57 -30.5t38.5 -51t14 -70.5q0 -10 -1 -20.5t-3 -21.5q-7 -41 -27.5 -97.5t-56.5 -133.5t-87.5 -177t-119.5 -227q-65 -122 -115.5 -217t-87 -169.5t-59.5 -131t-33 -99.5q-9 -39 -9 -72q0 -84 56 -136.5t168 -83.5q38 -11 68 -16 t45 -4q17 0 30.5 0.5t24.5 1.5l-28 -143h-61v0z" />
-<glyph unicode="&#x27c6;" d="M154 -191q10 -1 23.5 -1.5t30.5 -0.5q34 -2 120 20q96 24 160.5 55t103.5 75t56 105t17 145q0 97 -18 226t-45 303q-26 169 -40.5 297.5t-14.5 219.5q0 74 10 118q11 51 36.5 89t60 63.5t75.5 38.5t82 13q43 0 83 -13.5t72 -40.5t52 -68t23 -96l-146 -49 q-6 41 -13.5 67.5t-17.5 42t-24 21.5t-32 6q-35 0 -63.5 -19.5t-37.5 -59.5q-5 -23 -5 -54q0 -68 18.5 -196t50.5 -337q26 -164 43 -299t17 -247q0 -117 -25 -208.5t-86 -159.5t-164.5 -114.5t-259.5 -73.5q-30 -5 -55 -8t-54 -3h-61z" />
-<glyph unicode="&#x27dc;" d="M313 359q-60 0 -112.5 22.5t-90.5 61.5t-60 91.5t-22 113.5q0 60 21.5 111.5t59.5 89.5t90 59.5t114 21.5q60 0 107 -19.5t81 -48.5t55 -64.5t30 -66.5h619l-1 -168h-617q-9 -33 -31 -69t-56.5 -66t-81.5 -49.5t-105 -19.5zM312 509q29 0 54 11t44 29.5t29.5 43.5 t10.5 54q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43 -29.5t53.5 -10.5z" />
-<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
-<glyph unicode="&#x27e6;" d="M474 1556h640l-19 -100h-240l-316 -1626h240l-19 -100h-640zM439 -170l316 1626h-200l-316 -1626h200z" />
-<glyph unicode="&#x27e7;" d="M138 -170h240l316 1626h-240l19 100h640l-354 -1826h-640zM678 -170l316 1626h-200l-316 -1626h200z" />
-<glyph unicode="&#x27e8;" d="M391 642l459 912h170l-459 -912l104 -912h-170z" />
-<glyph unicode="&#x27e9;" d="M672 642l-104 912h170l104 -912l-459 -912h-170z" />
-<glyph unicode="&#x27ea;" d="M191 642l459 912h170l-459 -912l104 -912h-170zM581 642l459 912h170l-459 -912l104 -912h-170z" />
-<glyph unicode="&#x27eb;" d="M472 642l-104 912h170l104 -912l-459 -912h-170zM872 642l-104 912h170l104 -912l-459 -912h-170z" />
-<glyph unicode="&#x27f5;" d="M-100 520v82l291 291l90 -90l-160 -160h1212v-164h-1212l160 -160l-90 -90z" />
-<glyph unicode="&#x27f6;" d="M952 319l160 160h-1212v164h1212l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x27f7;" d="M-100 520v82l291 291l90 -90l-160 -160h991l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-991l160 -160l-90 -90z" />
-<glyph unicode="&#x2987;" d="M756 -270q-129 33 -219.5 98.5t-148.5 155.5t-84.5 198.5t-26.5 226.5q0 113 23 234q28 147 90 292t161.5 268.5t238 216t320.5 134.5zM975 1373q-51 -13 -103.5 -49t-102.5 -89t-96 -121t-84.5 -144.5t-68 -159.5t-45.5 -167q-11 -54 -15.5 -106t-4.5 -104 q0 -96 16.5 -184t47 -157.5t74.5 -117t98 -63.5z" />
-<glyph unicode="&#x2988;" d="M477 1554q129 -33 219.5 -98.5t148.5 -155.5t84.5 -198.5t26.5 -226.5q0 -113 -23 -234q-28 -147 -90 -292t-161.5 -268.5t-238 -216t-320.5 -134.5zM258 -89q51 13 103.5 49t102.5 89t96 121t84.5 144.5t68 159.5t45.5 167q11 54 15.5 106t4.5 104q0 96 -16.5 184 t-47 157.5t-74.5 117t-98 63.5z" />
-<glyph unicode="&#x2997;" d="M231 159l188 968l576 481l81 -101l-333 -278l-228 -1172l225 -278l-121 -101z" />
-<glyph unicode="&#x2998;" d="M157 -221l333 278l228 1172l-225 278l121 101l388 -481l-188 -968l-576 -481z" />
-<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
-<glyph unicode="&#x29fa;" d="M332 557h-244v170h244v444h168v-444h232v444h168v-444h245v-170h-245v-444h-168v444h-232v-444h-168v444z" />
-<glyph unicode="&#x29fb;" d="M202 557h-114v170h114v444h168v-444h162v444h168v-444h162v444h168v-444h115v-170h-115v-444h-168v444h-162v-444h-168v444h-162v-444h-168v444z" />
-<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -325q397 0 397 865q0 432 -99 649.5t-298 217.5q-396 0 -396 -867q0 -865 396 -865zM489 681h252v-305h-252v305z" />
-<glyph unicode="&#x2a2f;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
-<glyph unicode="&#x2a6a;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5 t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
-<glyph unicode="&#x2a6b;" d="M761 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5 t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM280 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
-<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
-<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
-<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
-<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
-<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
-<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
-<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
-<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
-<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
-<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
-<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
-<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
-<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
-<glyph unicode="&#x2c7d;" d="M345 1504h132l76 -741l365 741h132l-437 -836h-155z" />
-<glyph unicode="&#x2e18;" d="M785 950q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM492 -400q-85 0 -150 20t-109.5 56t-67.5 87t-23 114q0 18 2 37 t6 39q7 38 22 73t41 70.5t64 73.5t92 82l105 86q40 33 66 58.5t42.5 49t25 48t14.5 55.5l33 170h190l-183 -941q14 3 33.5 9t33.5 11q42 14 96.5 41.5t110.5 61.5l-37 -188q-98 -54 -199.5 -83.5t-207.5 -29.5zM555 204l-54 -45q-36 -30 -61.5 -54t-43 -46.5t-27.5 -45.5 t-15 -50q-2 -11 -3 -21.5t-1 -19.5q0 -33 10 -57.5t27 -42.5t39 -29.5t45 -18.5z" />
-<glyph unicode="&#x2e1f;" d="M88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5 t-146 -94.5v174zM520 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2e22;" d="M621 1556h423l-28 -143h-240l-149 -770h-184z" />
-<glyph unicode="&#x2e23;" d="M715 1413h-240l29 143h424l-178 -913h-184z" />
-<glyph unicode="&#x2e24;" d="M443 643h184l-150 -770h240l-27 -143h-426z" />
-<glyph unicode="&#x2e25;" d="M176 -127h240l150 770h184l-179 -913h-424z" />
-<glyph unicode="&#x2e2e;" d="M528 524q8 42 11.5 68.5t3.5 46.5q0 12 -1.5 24t-8 28t-21 37.5t-40.5 53.5l-71 86q-30 36 -51 67.5t-34 60t-19 55.5t-6 55q0 29 6 61q15 81 57.5 146t105.5 111t144 71t174 25q97 0 188.5 -28t174.5 -85l-37 -188q-85 67 -167 102t-163 35q-53 0 -99.5 -14.5t-83 -41 t-61 -63t-32.5 -80.5q-3 -18 -3 -36q0 -39 17.5 -77.5t55.5 -82.5l73 -89q25 -31 43.5 -57.5t30 -51.5t17 -50t5.5 -54q0 -44 -12 -104l-30 -154h-191zM520 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5 t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
-<glyph d="M713 1170q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5zM498 655l108 357h162l-39 -357l-127 -655h-233z" />
-<glyph d="M768 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM492 -27q-85 0 -150 20t-109.5 56t-67.5 87t-23 114q0 18 2 37 t6 39q7 38 22 73t41 70.5t64 73.5t92 82l105 86q40 33 66 58.5t42.5 49t25 48t14.5 55.5l33 170h190l-183 -941q14 3 33.5 9t33.5 11q42 14 96.5 41.5t110.5 61.5l-37 -188q-98 -54 -199.5 -83.5t-207.5 -29.5zM555 577l-54 -45q-36 -30 -61.5 -54t-43 -46.5t-27.5 -45.5 t-15 -50q-2 -11 -3 -21.5t-1 -19.5q0 -33 10 -57.5t27 -42.5t39 -29.5t45 -18.5z" />
-<glyph d="M772 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM497 -27q-81 0 -146 21t-111.5 60t-71.5 93.5t-25 121.5 q0 45 12.5 87.5t40 85t70.5 87.5t105 96l104 86q42 34 69.5 63t45.5 58.5t28 62.5t17 74l20 123h191l-29 -154q-9 -48 -22.5 -86.5t-37 -74.5t-59.5 -73.5t-90 -82.5l-106 -89q-85 -71 -120.5 -127.5t-35.5 -110.5q0 -75 56 -116t149 -41q89 0 185.5 36t201.5 101l-37 -188 q-106 -57 -208.5 -85t-195.5 -28z" />
-<glyph horiz-adv-x="0" d="M-439 1659q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61z" />
-<glyph horiz-adv-x="0" d="M-752 1659q71 242 360 242q72 0 123 -15t83.5 -42t47.5 -64.5t15 -83.5q0 -11 -0.5 -19.5t-1.5 -17.5h-119q-7 111 -171 111q-85 0 -140 -28.5t-78 -82.5h-119v0z" />
-<glyph horiz-adv-x="0" d="M-821 1899h186l146 -264h-154zM-502 1899h186l146 -264h-154z" />
-<glyph horiz-adv-x="0" d="M-500 1872h205l-40 -205h-205z" />
-<glyph horiz-adv-x="0" d="M-467 1899h186l-280 -264h-154zM-148 1899h186l-280 -264h-154z" />
-<glyph horiz-adv-x="0" d="M-702 1840h598l-29 -148h-598z" />
-<glyph d="M449 1294q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM840 1294q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143z" />
-<glyph d="M834 1526h208l-307 -264h-160z" />
-<glyph d="M391 1294q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125v0z" />
-<glyph d="M500 1526h182l147 -264h-139z" />
-<glyph d="M653 1528h213l158 -266h-133l-139 178l-209 -178h-152z" />
-<glyph d="M442 1528h136l139 -178l209 178h151l-264 -266h-213z" />
-<glyph d="M47 612l1059 258l27 -108l-1063 -258z" />
-<glyph d="M662 852h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM684 963l76 391l-342 -391h266z" />
-<glyph d="M731 1286q-120 0 -190 61q-33 29 -56 72t-34 109h114q17 -62 56 -88q20 -14 48 -20.5t69 -6.5t76 7t62 21q53 28 80 87h121q-33 -112 -125 -177q-94 -65 -221 -65z" />
-<glyph d="M654 1294q-27 0 -27 24q0 6 1 9l29 145q4 27 32 27h142q15 0 22.5 -9t4.5 -24l-28 -145q-5 -27 -32 -27h-144v0z" />
-<glyph d="M611 -425q-131 0 -194.5 67.5t-63.5 208.5q0 57 10 116.5t27.5 117t42 110t54.5 93.5q59 82 134 118t169 36q131 0 195.5 -67t64.5 -207q0 -55 -9.5 -114.5t-27.5 -117.5t-42.5 -111t-54.5 -95q-110 -155 -305 -155zM625 -333q57 0 100.5 26.5t78.5 84.5q23 38 43 88 t34.5 104.5t23 109.5t8.5 102q0 90 -32.5 129t-101.5 39q-57 0 -101.5 -25.5t-80.5 -84.5q-23 -38 -43 -88.5t-34.5 -105.5t-23 -110t-8.5 -101q0 -88 33 -128t104 -40zM702 -64q-38 0 -65 21.5t-27 53.5q0 16 7.5 29.5t20 24t29 16.5t34.5 6t34.5 -6t29 -16.5t19.5 -24.5 t7 -30q0 -31 -25.5 -52.5t-63.5 -21.5z" />
-<glyph d="M369 -290h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553z" />
-<glyph d="M328 -300l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557z" />
-<glyph d="M536 -425q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
-<glyph d="M662 -216h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM684 -105l76 391l-342 -391h266z" />
-<glyph d="M548 -415q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
-<glyph d="M634 -415q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5 q-55 -59 -125 -83.5t-148 -24.5zM639 -327q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z" />
-<glyph d="M876 350h-476l21 95h629l-10 -53l-541 -782h-146z" />
-<glyph d="M617 -413q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35 q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM716 88q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM625 -326q49 0 89.5 13.5t69.5 38t45 58.5t16 74 q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
-<glyph d="M543 -412q-54 0 -100.5 8.5t-89.5 24.5l24 104q39 -20 84.5 -31t94.5 -11q135 0 218 81.5t119 237.5q-46 -57 -107 -86.5t-145 -29.5q-115 0 -180 56t-65 160q0 63 25 128t74 117q102 108 275 108q131 0 205.5 -65.5t74.5 -199.5q0 -40 -7 -86.5t-19.5 -94t-31 -94.5 t-40.5 -87q-133 -240 -409 -240zM677 -26q54 0 97.5 20t74.5 53t48 77t17 92q0 75 -40 113t-109 38q-53 0 -96 -21.5t-73 -57t-46.5 -80.5t-16.5 -92q0 -73 38 -107.5t106 -34.5z" />
-<glyph horiz-adv-x="0" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/svg/hack-regular-webfont.svg b/pagure/static/hack_fonts/fonts/svg/hack-regular-webfont.svg
deleted file mode 100755
index 0c1d1dd..0000000
--- a/pagure/static/hack_fonts/fonts/svg/hack-regular-webfont.svg
+++ /dev/null
@@ -1,1570 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackregular" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M481 1053v445h265v-445l-67 -567h-121zM616 -60q-70 0 -116 48q-46 47 -46 125q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48z" />
-<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
-<glyph unicode="#" d="M260 414h-258v153h297l84 334h-266v154h303l104 415h160l-104 -415h245l105 415h160l-105 -415h244v-154h-281l-84 -334h250v-153h-289l-104 -414h-160l105 414h-246l-105 -414h-159zM705 567l83 334h-245l-84 -334h246z" />
-<glyph unicode="$" d="M552 0q-12 2 -62 9.5t-101 18.5q-50 11 -98 26.5t-101 37.5v180q54 -33 102 -55.5t100 -39.5q102 -34 190 -35v458q-90 16 -164.5 45.5t-126.5 76.5q-51 46 -76 105.5t-25 136.5q0 156 106 250t256 107v235h180v-235q1 -2 42.5 -7.5t78.5 -12.5q41 -8 82 -18t83 -23v-173 q-44 23 -90 41t-75 26q-34 10 -76.5 17.5t-74.5 9.5v-431q197 -32 304 -128q108 -98 108 -249q0 -76 -28 -140.5t-88 -118.5q-116 -103 -266 -112v-303h-180v301zM582 1183q-94 -5 -152 -60q-59 -56 -59 -149q0 -46 14 -79t41 -58q55 -50 156 -67v413zM702 146q101 3 162 61 q62 59 62 156q0 46 -13.5 83.5t-42.5 63.5q-55 50 -168 70v-434z" />
-<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5t100 66.5 t126 24.5q65 0 122 -24t103 -70q26 -26 43 -53t28 -52q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
-<glyph unicode="&#x26;" d="M552 -30q-107 0 -197.5 36.5t-156.5 99.5q-64 61 -103 145.5t-39 187.5q0 67 17.5 133.5t52.5 125.5q68 116 208 217q-51 73 -74 141q-24 69 -24 141q0 79 26 136.5t74 99.5q99 87 272 87q65 0 131 -12q29 -5 63 -14t72 -21v-183q-29 20 -61 35t-61 23q-62 18 -128 18 q-101 0 -156 -45q-56 -45 -56 -124q0 -58 29 -122q14 -30 39 -71t67 -97l416 -559q38 49 58 124q10 38 14.5 82.5t4.5 92.5q0 20 -0.5 45.5t-2.5 60.5l-1 7h164v-39q0 -162 -37 -282q-18 -59 -46 -112t-66 -98l170 -229h-213l-78 109q-40 -34 -83 -60t-94 -44 q-42 -15 -93 -25t-108 -10zM585 125q25 0 46.5 3t44.5 9q49 13 90 35q24 13 45 27q11 7 16 10.5t7.5 6t4 3.5t5.5 4l-428 580q-93 -75 -137 -154q-46 -82 -46 -176q0 -72 24.5 -135t74.5 -113q47 -47 111.5 -73.5t141.5 -26.5z" />
-<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
-<glyph unicode="(" d="M595 -270q-78 124 -133 237.5t-92 226.5q-74 227 -74 449q0 221 74 449q38 115 93 228.5t132 233.5h160q-71 -121 -118.5 -231.5t-79.5 -222.5q-34 -118 -50 -230t-16 -227q0 -118 16.5 -229.5t49.5 -226.5t81 -226t117 -231h-160v0z" />
-<glyph unicode=")" d="M478 -270q132 231 199 459q31 107 48 222t17 232q0 112 -16.5 227.5t-48.5 227.5q-31 107 -80.5 222t-118.5 234h160q153 -237 225 -462q74 -228 74 -449q0 -223 -74 -451q-74 -227 -225 -462h-160v0z" />
-<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
-<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
-<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 110q0 33 11 62.5t35 50.5q20 17 50 28.5t66 11.5q85 0 132 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
-<glyph unicode="-" d="M206 683h821v-164h-821v164z" />
-<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="/" d="M889 1493h190l-786 -1683h-191z" />
-<glyph unicode="0" d="M616 -29q-240 0 -361 196q-122 197 -122 578q0 382 122 579q121 196 361 196q118 0 209 -48t153 -148q60 -96 91 -239.5t31 -339.5t-31 -339t-91 -239q-123 -196 -362 -196zM616 131q73 0 125.5 39t86.5 113q69 151 69 462q0 312 -69 462q-34 75 -86 114t-126 39 q-141 0 -210 -152q-35 -75 -52.5 -188.5t-17.5 -274.5q0 -312 70 -462q36 -78 88.5 -115t121.5 -37zM618 396q-15 0 -27.5 11.5t-22 31t-16.5 46t-13 55.5q-5 24 -9 53t-7 58.5t-5 55.5t-2 43q0 12 1 35t3.5 51t6 58.5t9.5 58.5q28 143 78 143q28 0 47.5 -38t33.5 -108 q5 -25 9 -54t7 -57.5t4.5 -54t1.5 -42.5q0 -10 -0.5 -31t-2.5 -48.5t-5.5 -58.5t-8.5 -62q-13 -74 -34.5 -110t-47.5 -36z" />
-<glyph unicode="1" d="M270 170h314v1141l-338 -76v184l336 74h202v-1323h310v-170h-824v170z" />
-<glyph unicode="2" d="M152 134q0 19 5.5 33.5t19.5 28.5q57 60 135 142.5t167 179.5q51 55 82 89t51 56t32.5 36.5t26.5 31.5q27 32 47.5 58.5t37 50t29 45.5t22.5 44q17 38 26 76t9 80q0 60 -18 109.5t-55 84.5q-74 71 -203 71q-90 0 -190 -33t-212 -100v204q52 25 103.5 43.5t99.5 30.5 q50 13 99 19t97 6q104 0 195 -28t159 -88q60 -53 96 -129.5t36 -172.5q0 -51 -11 -99.5t-33 -97.5q-11 -25 -25 -49t-31.5 -49t-39.5 -52.5t-49 -59.5q-29 -34 -69 -79t-93 -102q-38 -41 -70 -73.5t-68.5 -69t-83 -83.5t-113.5 -118h696v-170h-907v134z" />
-<glyph unicode="3" d="M566 -29q-48 0 -100.5 4.5t-106.5 14.5q-46 8 -101 22t-109 33v204q51 -26 100 -47t101 -35q50 -13 98.5 -19.5t98.5 -6.5q166 0 255 75q45 38 67 92t22 121q0 134 -88 210q-43 37 -104 56.5t-138 19.5h-154v166h154q140 0 218 61q77 60 77 173q0 54 -18 98.5t-54 75.5 q-71 61 -210 61q-41 0 -87 -5t-94 -15q-97 -20 -199 -60v186q121 31 216 48q92 16 169 16q105 0 193.5 -27t154.5 -82q62 -52 95.5 -125t33.5 -164q0 -65 -17.5 -116t-50.5 -91q-68 -81 -200 -116q147 -39 225 -138q41 -52 59.5 -115t18.5 -135q0 -100 -34 -181.5 t-103 -140.5q-68 -58 -164.5 -88t-223.5 -30z" />
-<glyph unicode="4" d="M735 356h-633v191l600 946h234v-973h199v-164h-199v-356h-201v356zM735 520v789l-471 -789h471z" />
-<glyph unicode="5" d="M525 -29q-45 0 -100.5 4t-104.5 12q-51 8 -94 20t-83 28v205q93 -50 185 -74q94 -25 185 -25q174 0 263 88q90 88 90 248q0 87 -25 149t-68 103q-42 40 -108 64t-157 24q-37 0 -76.5 -4.5t-77.5 -13.5q-37 -9 -76 -24t-71 -32v750h756v-170h-572v-367q43 16 87 24 q41 7 88 7q121 0 213 -37t155 -100q68 -69 101.5 -162.5t33.5 -206.5q0 -118 -36 -213t-105 -162q-69 -66 -168.5 -100.5t-234.5 -34.5z" />
-<glyph unicode="6" d="M633 -29q-137 0 -228 48.5t-150 139.5q-63 98 -92.5 240t-29.5 325q0 206 36.5 353t108.5 245t177.5 148t242.5 50q41 0 79.5 -4t70.5 -11q40 -8 75.5 -20t67.5 -25v-186q-30 18 -65 33t-69 24q-35 10 -73 14.5t-73 4.5q-195 0 -293 -144q-99 -146 -99 -426 q48 100 133 154q45 28 94 40.5t109 12.5q100 0 183.5 -33t143.5 -99t89 -161t29 -213q0 -122 -30.5 -216.5t-90.5 -160.5t-146.5 -99.5t-199.5 -33.5zM633 129q65 0 115.5 22t84.5 67q68 89 68 261q0 173 -68 262q-35 46 -86 67t-113 21q-70 0 -121 -24.5t-85 -67.5 q-35 -44 -54.5 -108.5t-19.5 -149.5t19.5 -149.5t54.5 -108.5q34 -43 85 -67.5t120 -24.5z" />
-<glyph unicode="7" d="M854 1323h-715v170h940v-86l-534 -1407h-211z" />
-<glyph unicode="8" d="M615 -29q-116 0 -204.5 29.5t-150.5 83.5t-95.5 132.5t-33.5 183.5q0 159 80 260q79 100 229 133q-61 15 -113 46t-88 76q-38 47 -55.5 103t-17.5 119q0 85 30 155.5t91 123.5q59 51 140.5 77.5t188.5 26.5t189 -26.5t141 -77.5q60 -51 90.5 -121.5t30.5 -158.5 q0 -68 -18.5 -122t-53.5 -98t-85.5 -75t-116.5 -48q151 -33 230 -133t79 -258q0 -105 -33.5 -184.5t-95.5 -133.5q-63 -55 -153 -84t-205 -29zM616 868q121 0 186 63q64 63 64 183q0 121 -63 186q-64 64 -187 64q-121 0 -185 -64t-64 -186q0 -120 64 -183t185 -63zM619 129 q66 0 118 19t89 57t55 91.5t18 121.5q0 74 -19.5 127t-54.5 88q-75 76 -209 76q-135 0 -208 -75q-35 -36 -54.5 -89.5t-19.5 -123.5q0 -68 18.5 -122.5t55.5 -92.5q38 -39 91.5 -58t119.5 -19z" />
-<glyph unicode="9" d="M528 -29q-37 0 -75.5 3.5t-73.5 11.5q-32 7 -70 19t-73 26v186q32 -19 66.5 -33t67.5 -23q72 -20 147 -20q193 0 292 145q98 145 98 425q-23 -51 -58 -90t-74 -64q-83 -53 -206 -53q-100 0 -182 33.5t-141 99.5q-119 134 -119 373q0 118 29.5 214.5t92.5 164.5 q60 66 147 98.5t198 32.5q137 0 228 -48.5t150 -139.5q64 -100 93 -243t29 -323q0 -198 -34.5 -347t-109.5 -250q-74 -100 -181 -149t-241 -49zM593 662q70 0 121 24.5t85 67.5q35 44 54 108.5t19 149.5t-19 149.5t-54 108.5q-34 43 -85 67.5t-121 24.5q-62 0 -113 -21 t-86 -67q-68 -89 -68 -262t68 -262q34 -45 84.5 -66.5t114.5 -21.5z" />
-<glyph unicode=":" d="M620 776q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47zM620 60q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode=";" d="M610 703q-72 0 -120 50q-50 48 -50 128q0 78 50 128q48 49 120 49q73 0 121 -49q49 -49 49 -128q0 -80 -49 -128q-48 -50 -121 -50zM394 -361q256 114 265 351q-13 -3 -23 -4t-19 -1q-33 0 -63 10.5t-53 30.5q-46 43 -46 116q0 35 11.5 65.5t36.5 52.5q21 19 52.5 30.5 t69.5 11.5q89 0 139 -71q48 -71 48 -197q0 -180 -97 -310t-273 -194z" />
-<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
-<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
-<glyph unicode="?" d="M494 583q0 78 30 146q17 36 44.5 72t70.5 79l90 89q29 29 51.5 55.5t33.5 47.5q24 43 24 94q0 47 -18 82.5t-47 60.5q-33 28 -76.5 41.5t-96.5 13.5q-82 0 -169 -34q-45 -17 -91.5 -43t-95.5 -60v188q48 29 96.5 50.5t93.5 34.5q46 14 94.5 21t100.5 7q100 0 175.5 -25.5 t126.5 -70.5q54 -48 81.5 -113.5t27.5 -140.5q0 -80 -34 -145q-36 -67 -127 -157l-88 -86q-70 -68 -88 -108q-19 -40 -19 -83v-127h-190v111zM593 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31 q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
-<glyph unicode="@" d="M796 -319q-164 0 -308.5 57t-251.5 175q-101 112 -155 271t-54 363q0 188 46.5 345t140.5 272q96 118 224 174.5t271 56.5q114 0 199.5 -34t145.5 -98t92 -155.5t32 -202.5v-770h-144v111q-37 -62 -102 -97q-65 -34 -147 -34q-80 0 -148.5 31t-119.5 89q-48 54 -76.5 133 t-28.5 178q0 91 26 169t79 139q55 63 123.5 92t141.5 29q42 0 78.5 -9t70.5 -26q67 -35 103 -96v63q0 78 -22.5 142.5t-64.5 109.5q-42 46 -103.5 70t-141.5 24q-112 0 -209.5 -47.5t-170.5 -143.5q-71 -93 -108.5 -222.5t-37.5 -290.5q0 -170 42 -303.5t122 -227.5 q78 -93 189.5 -143.5t248.5 -50.5q29 0 56 2.5t54 7.5t54.5 12.5t56.5 18.5l48 -135q-34 -14 -64 -22.5t-60 -14.5q-31 -6 -60 -9t-67 -3zM803 260q52 0 96 20t76 58t47.5 91t15.5 116t-16 116.5t-48 91.5q-31 37 -75 56.5t-97 19.5q-105 0 -170 -77q-32 -38 -48.5 -89.5 t-16.5 -116.5q0 -66 16.5 -118.5t48.5 -90.5q65 -77 171 -77z" />
-<glyph unicode="A" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="B" d="M166 1493h442q228 0 353 -99q124 -99 124 -281q0 -70 -17 -123.5t-48 -91.5q-32 -38 -81 -63.5t-116 -35.5q148 -23 231 -125q41 -51 62 -117t21 -148q0 -202 -133 -305q-134 -104 -396 -104h-442v1493zM604 877q76 0 127.5 14t84.5 43q65 56 65 177q0 60 -16 100.5 t-48 65.5q-65 50 -213 50h-235v-450h235zM608 166q175 0 251 62q75 61 75 202q0 146 -79 215q-80 68 -247 68h-239v-547h239z" />
-<glyph unicode="C" d="M742 -29q-140 0 -252.5 50t-192.5 153q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247t192 153.5t252 50.5q48 0 92.5 -5.5t80.5 -14.5t79 -25.5t79 -36.5v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459 q0 -306 98 -458t295 -152q45 0 87.5 8t85.5 24q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
-<glyph unicode="D" d="M137 1493h303q342 0 504 -182t162 -566q0 -382 -162 -563q-162 -182 -504 -182h-303v1493zM436 166q255 0 356 126q51 63 76 175t25 280q0 165 -24.5 278.5t-75.5 176.5q-51 64 -141.5 94.5t-215.5 30.5h-96v-1161h96z" />
-<glyph unicode="E" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="F" d="M233 1493h879v-170h-676v-460h613v-170h-613v-693h-203v1493z" />
-<glyph unicode="G" d="M700 -29q-143 0 -253.5 52t-187.5 152q-78 102 -117.5 245t-39.5 324q0 186 41 329.5t119 243.5t189.5 151.5t251.5 51.5q100 0 184 -26q44 -14 85.5 -34.5t80.5 -46.5v-207q-43 41 -85.5 69t-80.5 45q-44 19 -90 27.5t-91 8.5q-97 0 -170 -37t-124 -115 q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -158 24 -270.5t72 -187.5q94 -150 294 -150q32 0 61.5 4t55.5 12q24 8 47 19.5t44 28.5v401h-217v166h410v-643q-81 -75 -182 -113q-102 -39 -222 -39z" />
-<glyph unicode="H" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
-<glyph unicode="I" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="J" d="M502 -29q-103 0 -195 22q-97 23 -198 68v236q91 -81 188 -121q99 -41 202 -41q67 0 118.5 18t80.5 57q56 74 56 277v836h-381v170h583v-1006q0 -144 -25.5 -240.5t-80.5 -157.5t-140.5 -89.5t-207.5 -28.5z" />
-<glyph unicode="K" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
-<glyph unicode="L" d="M215 1493h203v-1323h721v-170h-924v1493z" />
-<glyph unicode="M" d="M86 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
-<glyph unicode="N" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
-<glyph unicode="O" d="M616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141 q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="P" d="M172 1493h436q249 0 379 -113q67 -59 98 -143.5t31 -190.5q0 -220 -128 -333q-63 -56 -158 -84.5t-222 -28.5h-234v-600h-202v1493zM608 766q75 0 129 20t90 54q78 73 78 207q0 133 -78 207q-77 73 -219 73h-234v-561h234z" />
-<glyph unicode="Q" d="M655 -27h-8.5t-11.5 -1t-11.5 -1h-6.5q-125 0 -218.5 46t-157.5 146t-94 245t-30 337q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -293 -68 -473q-33 -88 -85 -152t-123 -100l285 -290h-236zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="R" d="M143 1493h416q246 0 377 -111q66 -56 98.5 -136t32.5 -181q0 -79 -20 -138.5t-60 -106.5q-80 -94 -227 -115q40 -10 74 -29.5t59 -45.5q28 -29 60.5 -81.5t76.5 -140.5l203 -408h-217l-178 377q-39 83 -73.5 134t-64.5 74q-31 24 -72.5 35t-88.5 11h-193v-631h-203v1493z M567 797q145 0 216 65q35 32 53 82t18 115t-18.5 115t-56.5 85q-36 32 -90.5 50t-129.5 18h-213v-530h221z" />
-<glyph unicode="S" d="M584 -29q-53 0 -107 5.5t-106 16.5t-107 29t-106 39v215q58 -37 112 -63.5t106 -43.5q102 -34 205 -34q75 0 135.5 17t103.5 51q44 35 64.5 84t20.5 113q0 56 -14.5 96t-43.5 69q-32 33 -80.5 54t-123.5 38l-108 25q-101 23 -176.5 57t-125.5 85q-94 94 -94 255 q0 102 35 183t100 139q64 57 153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-48 31 -93.5 52.5t-90.5 36.5q-93 30 -186 30q-68 0 -127 -16t-101 -50t-62 -81t-20 -104q0 -51 14.5 -85.5t40.5 -59.5q31 -29 79.5 -50t123.5 -38l106 -24q106 -24 181 -62.5 t124 -91.5q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-66 -56 -162.5 -84t-220.5 -28z" />
-<glyph unicode="T" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
-<glyph unicode="U" d="M616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154 v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="V" d="M57 1493h209l350 -1323l351 1323h209l-437 -1493h-245z" />
-<glyph unicode="W" d="M0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
-<glyph unicode="X" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
-<glyph unicode="Y" d="M514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="Z" d="M110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
-<glyph unicode="[" d="M423 1636h424v-143h-240v-1620h240v-143h-424v1906z" />
-<glyph unicode="\" d="M102 1493h191l786 -1683h-190z" />
-<glyph unicode="]" d="M386 -127h240v1619h-240v143h424v-1905h-424v143z" />
-<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
-<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
-<glyph unicode="`" d="M604 1262l-325 376h198l281 -376h-154z" />
-<glyph unicode="a" d="M513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5 q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106 q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="b" d="M676 -29q-51 0 -93 10.5t-83 33.5q-77 44 -123 126l-18 -141h-166v1556h184v-579q43 82 122 126q77 44 181 44q96 0 176.5 -38t139.5 -116q58 -78 87 -187t29 -245q0 -274 -116 -432q-57 -78 -137 -118t-183 -40zM650 127q133 0 200 109q68 110 68 323t-68 323 q-67 109 -201 109t-203 -109q-69 -110 -69 -323t69 -322q69 -110 204 -110z" />
-<glyph unicode="c" d="M712 -29q-125 0 -227.5 39.5t-174.5 116.5q-73 78 -109.5 186.5t-36.5 245.5q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178 t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
-<glyph unicode="d" d="M559 -29q-106 0 -186 42t-134 116q-58 79 -87 188.5t-29 244.5q0 133 28.5 242.5t87.5 187.5t141 116.5t179 38.5q102 0 178 -43q77 -44 121 -127v579h184v-1556h-166l-18 141q-23 -40 -52 -71.5t-70 -54.5q-76 -44 -177 -44zM585 127q135 0 204 110q69 109 69 322 t-69 323q-32 51 -82 80t-121 29q-134 0 -201 -109q-68 -110 -68 -323t68 -323q35 -57 86 -83t114 -26z" />
-<glyph unicode="e" d="M677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183 q-53 -22 -103 -38t-99 -27q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="f" d="M466 977h-299v143h299v78q0 185 85 271q84 87 263 87h221v-153h-209q-54 0 -86.5 -10.5t-50.5 -29.5q-39 -41 -39 -144v-99h385v-143h-385v-977h-184v977z" />
-<glyph unicode="g" d="M601 -440q-39 0 -78 3.5t-81 10.5q-41 7 -81.5 17t-84.5 24v182q49 -23 94.5 -40t83.5 -28q78 -22 151 -22q74 0 126 20t87 62q68 80 68 256v133q-43 -93 -120 -140q-76 -46 -184 -46q-197 0 -314 157t-117 420t117 421q59 79 136.5 118t178.5 39q52 0 97.5 -10.5 t83.5 -32.5q76 -44 122 -133l18 145h166v-1044q0 -251 -119 -382q-118 -130 -350 -130zM622 145q130 0 197 109t67 315q0 208 -67 315q-35 57 -85.5 82t-112.5 25q-134 0 -205 -107t-71 -316q0 -205 72 -314t205 -109z" />
-<glyph unicode="h" d="M195 1556h184v-604q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1556z" />
-<glyph unicode="i" d="M523 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="j" d="M652 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM238 -270h234q90 0 135 62q45 63 45 188v997h-317v143h501v-1140q0 -95 -22 -171t-67 -130t-109.5 -79.5t-145.5 -25.5h-254v156z" />
-<glyph unicode="k" d="M226 1556h190v-901l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1556z" />
-<glyph unicode="l" d="M821 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v1014h-295v144h479v-1158q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
-<glyph unicode="m" d="M109 1120h151l16 -96q33 60 83 92q49 31 113 31q74 0 126 -35q49 -34 78 -106q35 73 87 107t126 34q69 0 117 -26.5t74 -77.5q55 -104 55 -394v-649h-168v641q0 64 -1.5 112t-5 83.5t-8.5 60t-12 39.5q-11 26 -34 41.5t-65 15.5q-38 0 -64 -14.5t-41 -46.5 q-17 -35 -24 -103.5t-7 -187.5v-641h-168v641q0 73 -2 123.5t-6 84.5t-9.5 54.5t-11.5 33.5q-13 26 -37.5 41t-63.5 15q-42 0 -65.5 -16.5t-35.5 -43.5q-7 -15 -12.5 -38t-9.5 -57.5t-6 -82.5t-2 -114v-641h-167v1120z" />
-<glyph unicode="n" d="M195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
-<glyph unicode="o" d="M616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323 q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="p" d="M190 1120h167l18 -143q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1546zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
-<glyph unicode="q" d="M870 139q-22 -40 -51 -72t-70 -55q-77 -45 -180 -45q-95 0 -175.5 38t-140.5 118q-53 71 -84.5 176t-31.5 252q0 134 28.5 245t87.5 191q58 78 138 117t179 39q102 0 178 -43q38 -22 68.5 -53.5t53.5 -73.5l18 143h167v-1546h-185v569zM599 123q66 0 117 27t86 83 q68 110 68 322q0 213 -68 323q-35 56 -85.5 82.5t-116.5 26.5q-133 0 -200 -109q-68 -110 -68 -323t68 -323q67 -109 199 -109z" />
-<glyph unicode="r" d="M302 1120h167l18 -219q47 119 142 183q94 63 225 63q68 0 128 -17q29 -8 58 -21.5t55 -31.5v-188q-57 46 -120 67q-62 21 -135 21q-171 0 -262 -108q-91 -107 -91 -312v-557h-185v1120z" />
-<glyph unicode="s" d="M590 -29q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105 q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5l74 -14q72 -14 123 -40t85 -64q70 -77 70 -204 q0 -86 -30.5 -149.5t-87.5 -108.5q-61 -48 -142.5 -71t-179.5 -23z" />
-<glyph unicode="t" d="M807 -4q-206 0 -292 83q-85 82 -85 286v612h-299v143h299v293l184 80v-373h418v-143h-418v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-225v0z" />
-<glyph unicode="u" d="M534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="v" d="M100 1120h191l325 -940l326 940h191l-398 -1120h-237z" />
-<glyph unicode="w" d="M0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
-<glyph unicode="x" d="M516 584l-401 536h204l297 -405l295 405h207l-401 -536l440 -584h-213l-328 449l-327 -449h-213z" />
-<glyph unicode="y" d="M184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5 q-69 -39 -161 -39h-148v154z" />
-<glyph unicode="z" d="M203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
-<glyph unicode="{" d="M908 -253q-248 0 -333 74q-85 73 -85 295v239q0 150 -53 209q-54 58 -194 58h-116v143h116q141 0 194 57q53 58 53 207v240q0 222 85 295q83 73 333 73h64v-143h-70q-140 0 -182 -43q-43 -43 -43 -186v-248q0 -158 -45 -228q-22 -34 -61 -58.5t-95 -37.5q111 -27 156 -98 t45 -227v-248q0 -143 43 -186q42 -43 182 -43h70v-144h-64v0z" />
-<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
-<glyph unicode="}" d="M261 -118h68q140 0 184 44q43 43 43 185v248q0 156 45 227t156 98q-110 26 -155 96q-22 34 -34 88.5t-12 139.5v248q0 142 -43 185q-44 44 -184 44h-68v143h62q250 0 333 -73q84 -74 84 -295v-240q0 -78 21 -127.5t63 -79.5q40 -29 97.5 -43t126.5 -14h64v-143h-64 q-71 0 -128 -14.5t-96 -43.5q-42 -31 -63 -81t-21 -128v-239q0 -222 -84 -295q-85 -74 -333 -74h-62v144z" />
-<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M626 1498q69 0 116 -48q23 -23 34.5 -53t11.5 -72q0 -78 -46 -124q-47 -47 -116 -47t-116 47q-46 47 -46 124q0 78 46 125q46 48 116 48zM689 952l67 -567v-445h-265v445l77 567h121z" />
-<glyph unicode="&#xa2;" d="M698 -27q-112 11 -200 54.5t-154 124.5q-63 77 -98.5 181.5t-35.5 224.5q0 122 36.5 227.5t98.5 181.5q61 75 148 121t205 57v287h103v-287q29 -2 61 -7t61 -13t65.5 -20t72.5 -28v-172q-30 18 -65 34.5t-67 27.5q-35 12 -66 18t-62 8v-870q32 2 64 9.5t65 18.5 q31 11 65 26.5t66 35.5v-172q-46 -20 -76.5 -30t-61.5 -18q-65 -17 -122 -20v-286h-103v286zM698 991q-133 -12 -212 -130q-80 -119 -80 -302t80 -301q41 -60 93.5 -92t118.5 -39v864z" />
-<glyph unicode="&#xa3;" d="M139 170h236v465h-199v143h199v238q0 254 110 379q55 63 137.5 94t187.5 31q36 0 72.5 -3.5t68.5 -10.5q24 -5 62.5 -16.5t78.5 -27.5v-184q-34 24 -66.5 40.5t-58.5 25.5q-63 22 -130 22q-135 0 -198 -89q-64 -89 -64 -282v-217h371v-143h-371v-465h537v-170h-973v170z " />
-<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
-<glyph unicode="&#xa5;" d="M514 524h-399v111h399v35l-90 151h-309v111h243l-321 561h215l364 -659l363 659h217l-330 -561h252v-111h-315l-86 -151v-35h401v-111h-401v-524h-203v524z" />
-<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
-<glyph unicode="&#xa7;" d="M595 -195q-39 0 -79 4t-72 10q-36 7 -78.5 18.5t-86.5 25.5v164q89 -40 161 -59t133 -19q101 0 157 42q28 21 42 50.5t14 61.5q0 30 -13 57.5t-40 55t-69 56.5t-99 62l-24 14q-100 58 -168 103t-110 94q-64 76 -64 179q0 89 47 162q46 71 137 120q-60 43 -89 100 q-30 57 -30 124q0 66 25.5 120t74.5 92q52 41 121 59.5t144 18.5q38 0 78.5 -4t72.5 -10q35 -7 75.5 -18.5t80.5 -25.5v-164q-84 40 -154 59t-131 19q-51 0 -87 -10.5t-61 -29.5q-27 -20 -40.5 -48.5t-13.5 -55.5q0 -49 47.5 -99.5t156.5 -112.5l41 -23q60 -33 104.5 -61 t77 -51.5t55.5 -44t39 -39.5q33 -38 49.5 -81.5t16.5 -97.5q0 -89 -45 -159q-46 -70 -139 -123q62 -53 90 -106q14 -26 21.5 -55.5t7.5 -67.5q0 -67 -25.5 -123.5t-76.5 -98.5q-102 -84 -274 -84zM750 410q62 46 92 90q30 45 30 92q0 41 -19.5 78t-51.5 66q-74 69 -316 200 q-32 -24 -54 -45.5t-38 -44.5q-14 -21 -22.5 -43t-8.5 -50q0 -39 18 -73.5t54 -68.5q19 -18 46 -38.5t64.5 -44.5t88 -53t117.5 -65z" />
-<glyph unicode="&#xa8;" d="M492 1552q30 0 30 -30v-142q0 -30 -30 -30h-143q-30 0 -30 30v142q0 30 30 30h143zM883 1552q30 0 30 -30v-142q0 -30 -30 -30h-142q-30 0 -30 30v142q0 30 30 30h142z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
-<glyph unicode="&#xaa;" d="M547 698q-126 0 -202 68q-75 67 -75 183q0 129 93 200q94 70 266 70h182v4q0 44 -14 78t-46 58q-35 26 -79 36t-89 10q-33 0 -62.5 -4.5t-58.5 -12.5q-62 -18 -130 -51v127q34 14 69.5 25t66.5 17q34 7 65.5 10.5t69.5 3.5q177 0 264 -86q44 -43 65.5 -109t21.5 -160 v-448h-129l-14 112q-50 -65 -114 -98q-33 -17 -69.5 -25t-80.5 -8zM576 817q54 0 96 18.5t74 53.5q65 71 65 186v29h-127q-145 0 -206 -34q-62 -35 -62 -112q0 -36 12 -60.5t32 -41.5q43 -39 116 -39zM293 592h668v-123h-668v123z" />
-<glyph unicode="&#xab;" d="M79 559v82l469 418v-191l-301 -268l301 -268v-191zM533 559v82l469 418v-191l-301 -268l301 -268v-191z" />
-<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
-<glyph unicode="&#xad;" d="M356 643h521v-164h-521v164z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
-<glyph unicode="&#xaf;" d="M915 1378h-598v148h598v-148z" />
-<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
-<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#xb2;" d="M322 1230l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5 l-211 -205h410v-114h-571v110z" />
-<glyph unicode="&#xb3;" d="M562 1109q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5z" />
-<glyph unicode="&#xb4;" d="M629 1262h-154l281 376h198z" />
-<glyph unicode="&#xb5;" d="M165 1120h184v-696q0 -78 16 -130t44 -87q60 -76 173 -76q62 0 110 21t80 64q64 85 64 251v653h185v-864q0 -59 16 -87q8 -14 20 -21t26 -7q12 0 27 5q13 4 42 18v-148q-19 -11 -37.5 -20t-34.5 -14q-36 -11 -68 -11q-62 0 -99 40q-38 40 -50 118q-47 -81 -112 -119 q-66 -39 -157 -39q-90 0 -154 38t-108 118v-555h-167v1548z" />
-<glyph unicode="&#xb6;" d="M557 649q-214 16 -333 128q-57 54 -87.5 125.5t-30.5 167.5q0 191 131 307t345 116h448v-1690h-141v1567h-191v-1567h-141v846z" />
-<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="&#xb8;" d="M700 0q55 -61 83 -115q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-23 43 -66 105h118v0z" />
-<glyph unicode="&#xb9;" d="M362 1230h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110z" />
-<glyph unicode="&#xba;" d="M616 698q-94 0 -160 31t-111 80q-47 51 -74 126t-27 173q0 92 25 167.5t76 132.5q47 52 114 82t158 30q90 0 157.5 -30t114.5 -83q100 -112 100 -299q0 -186 -100 -298q-47 -52 -114.5 -82t-158.5 -30zM616 815q49 0 90 19.5t70 58.5q27 36 42.5 90t15.5 127 q0 137 -57 215q-27 37 -66.5 57.5t-93.5 20.5q-103 0 -160 -77q-58 -79 -58 -218q0 -69 14.5 -123.5t43.5 -93.5q58 -76 159 -76zM276 592h676v-123h-676v123z" />
-<glyph unicode="&#xbb;" d="M231 332l301 268l-301 268v191l469 -418v-82l-469 -418v191zM685 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
-<glyph unicode="&#xbc;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
-<glyph unicode="&#xbd;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM523 -160l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5 t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5l-211 -205h410v-114h-571v110z" />
-<glyph unicode="&#xbe;" d="M335 809q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5zM27 612l1060 262l27 -108l-1063 -262z M839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
-<glyph unicode="&#xbf;" d="M656 1252q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM602 -27q-188 0 -298 95q-54 47 -82.5 112t-28.5 144q0 42 8.5 76.5t25.5 67.5t47.5 71t79.5 86 l88 86q30 29 52.5 55t33.5 51q19 41 19 105v5q1 11 1.5 21.5t0.5 20.5v123h190v-154q0 -99 -30 -166q-30 -68 -115 -151l-90 -89q-20 -20 -46 -48t-40 -55q-13 -24 -18 -50.5t-5 -46.5q0 -43 18 -79.5t47 -60.5q33 -28 77.5 -41.5t95.5 -13.5q42 0 83 9t86 26q91 35 187 102 v-188q-50 -30 -98 -51t-91 -34q-48 -14 -98.5 -21t-99.5 -7z" />
-<glyph unicode="&#xc0;" d="M358 1849h184l197 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc1;" d="M691 1856h186l-229 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc2;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc3;" d="M287 1587q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc4;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc5;" d="M465 1399q-30 17 -52.5 41t-37.5 52q-17 31 -25 64.5t-8 68.5q0 59 21.5 109.5t58.5 87.5t87 58t107 21q58 0 108.5 -21.5t87.5 -58.5q35 -35 57 -85t22 -111q0 -72 -32 -131q-31 -58 -91 -95l428 -1399h-209l-110 389h-523l-108 -389h-209zM616 1475q34 0 61 12t47 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM829 551l-213 760l-213 -760h426z" />
-<glyph unicode="&#xc6;" d="M410 1493h751v-170h-338v-442h307v-170h-307v-541h357v-170h-543v383h-352l-101 -383h-184zM637 551v772h-107l-202 -772h309z" />
-<glyph unicode="&#xc7;" d="M741 1356q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-22 -5 -45.5 -9.5t-47.5 -6.5q41 -50 61 -90q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57 q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-129 8 -230.5 59t-173.5 143q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52 q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8z" />
-<glyph unicode="&#xc8;" d="M395 1856h184l197 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xc9;" d="M690 1856h186l-229 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xca;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xcb;" d="M367 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM759 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xcc;" d="M372 1856h184l197 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xcd;" d="M691 1856h186l-229 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xce;" d="M521 1852h189l211 -266h-140l-166 178l-165 -178h-140zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xcf;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xd0;" d="M133 709h-125v149h125v635h303q342 0 504 -182t162 -565t-162 -564q-83 -93 -209.5 -137.5t-294.5 -44.5h-303v709zM436 166q69 0 124 8.5t98 24.5t75.5 39.5t57.5 54.5q52 65 77 175t25 280q0 87 -6.5 157t-19 125t-31.5 96.5t-44 73.5q-53 67 -139.5 97t-216.5 30h-96 v-469h264v-149h-264v-543h96z" />
-<glyph unicode="&#xd1;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
-<glyph unicode="&#xd2;" d="M382 1856h184l197 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd3;" d="M701 1856h186l-229 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd4;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd5;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469 q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd6;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46 t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
-<glyph unicode="&#xd8;" d="M8 0l178 252q-17 39 -28.5 87t-21.5 117q-9 63 -14 131.5t-5 152.5q0 203 30.5 347t93.5 241q64 99 157 145.5t217 46.5q60 0 109.5 -10.5t93.5 -30.5q85 -40 143 -121l139 201l100 -74l-168 -238q21 -41 36.5 -95t26.5 -115q10 -58 15.5 -132.5t5.5 -160.5 q0 -389 -123 -581q-60 -94 -153.5 -143t-227.5 -49q-57 0 -108 9.5t-99 31.5q-90 40 -151 121l-143 -203zM842 1190q-13 42 -34.5 73t-47.5 51q-29 22 -66 32t-79 10q-84 0 -136.5 -38t-84.5 -110q-17 -38 -29.5 -87t-20.5 -112.5t-12 -143.5t-4 -179v-39t0.5 -32t1 -29 t1.5 -30q1 -14 1.5 -32t5.5 -53zM617 135q82 0 135.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 163.5q0 52 -1.5 96.5t-3.5 78.5q-2 33 -5.5 60t-9.5 53l-514 -733q30 -78 96 -123q34 -23 71 -34t79 -11z" />
-<glyph unicode="&#xd9;" d="M377 1852h184l197 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xda;" d="M672 1856h186l-229 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xdb;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30 q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xdc;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95 q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71 q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xdd;" d="M672 1852h186l-229 -264h-154zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="&#xde;" d="M201 1493h202v-270h254q259 0 384 -105q124 -105 124 -324q0 -112 -31.5 -191.5t-92.5 -130.5q-125 -105 -384 -105h-254v-367h-202v1493zM637 532q157 0 237 66q78 66 78 197q0 63 -19 113.5t-59 83.5q-36 30 -95 47.5t-142 17.5h-234v-525h234z" />
-<glyph unicode="&#xdf;" d="M731 -29q-34 0 -70 3t-68 9q-23 5 -60 14t-74 23v164q75 -31 143 -46q66 -15 126 -15q55 0 97.5 12.5t73.5 35.5q35 26 49.5 60t14.5 79q0 32 -7.5 57.5t-26.5 51.5q-25 35 -63.5 64t-87.5 58l-67 39q-47 27 -81 59t-56 64q-23 34 -34.5 68.5t-11.5 79.5q0 60 20 114 t61 97q39 42 97.5 72t139.5 48q-2 107 -62 164q-62 57 -174 57q-121 0 -178 -65q-57 -66 -57 -205v-1133h-187v1137q0 212 105 316q53 52 133.5 77.5t183.5 25.5q209 0 313 -110q106 -112 107 -327q-154 -13 -239 -76q-84 -62 -84 -160q0 -28 7 -48.5t21 -40.5 q17 -24 40 -42.5t54 -38.5l58 -37q79 -50 128.5 -90.5t78.5 -84.5q28 -42 41.5 -91.5t13.5 -103.5q0 -74 -26 -137t-86 -110q-55 -43 -133 -65.5t-173 -22.5z" />
-<glyph unicode="&#xe0;" d="M282 1673h198l281 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe1;" d="M759 1673h198l-325 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe2;" d="M546 1673h147l246 -376h-139l-181 245l-180 -245h-139zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe3;" d="M290 1339q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe4;" d="M352 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM744 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29 q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56 q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5 t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe5;" d="M619 1249q-114 0 -194 80t-80 195t80 195q79 79 194 79q117 0 196 -79t79 -195t-79 -195q-80 -80 -196 -80zM619 1372q64 0 108 44t44 108q0 63 -44 107t-109 44q-63 0 -106 -43q-44 -44 -44 -108t44 -108t107 -44zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5 q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102 t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56 q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe6;" d="M358 -29q-154 0 -235 86q-43 45 -62.5 107.5t-19.5 139.5q0 85 23.5 151t76.5 113q101 89 291 89h117v88q0 120 -49 184t-143 64q-29 0 -61.5 -5.5t-61.5 -15.5q-30 -10 -63.5 -25.5t-64.5 -35.5v168q38 17 74 30.5t69 21.5q64 16 127 16q91 0 152 -31q61 -32 99 -96 q33 61 99 94t156 33q85 0 147.5 -29t98.5 -89q72 -119 72 -425v-90h-491q-1 -8 -1 -16v-16q0 -3 -0.5 -9.5t-0.5 -29.5q0 -98 13.5 -155.5t37.5 -91.5q27 -38 68 -54.5t97 -16.5q75 0 141 26q65 26 114 76v-172q-29 -21 -60.5 -37t-60.5 -26t-65 -15.5t-75 -5.5 q-51 0 -97.5 10.5t-83.5 30.5q-75 41 -107 119q-39 -80 -105 -120q-34 -20 -74.5 -30t-91.5 -10zM1036 657v52q0 78 -10 132t-28 86q-17 30 -48 48t-78 18q-87 0 -125 -68t-38 -225v-43h327zM375 125q94 0 131 67q17 32 27 90t10 160v72h-49q-169 0 -229 -45 q-30 -23 -45 -62.5t-15 -93.5q0 -91 45 -139q45 -49 125 -49z" />
-<glyph unicode="&#xe7;" d="M718 991q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-20 -5 -40.5 -9.5t-43.5 -6.5q40 -48 62 -91q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74 t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-112 6 -204.5 45t-159.5 110q-72 77 -109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5 t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29z" />
-<glyph unicode="&#xe8;" d="M294 1673h198l281 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xe9;" d="M771 1673h198l-325 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xea;" d="M558 1673h147l246 -376h-139l-181 245l-180 -245h-139zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283 q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xeb;" d="M364 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM756 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5 q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5 q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xec;" d="M218 1647h198l281 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xed;" d="M794 1647h198l-325 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xee;" d="M514 1648h147l246 -376h-139l-181 245l-180 -245h-139zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xef;" d="M328 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM720 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187 q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xf0;" d="M617 -29q-116 0 -204.5 37.5t-150.5 110.5q-63 75 -94 179t-31 235q0 132 31.5 237t93.5 179t152.5 110.5t216.5 36.5q18 0 23.5 -0.5t8.5 -0.5q11 -1 14.5 -1t5 -0.5t3.5 -0.5t10 -1l-10.5 14t-17.5 23t-20.5 27t-20.5 26q-18 23 -36.5 44.5t-37.5 43.5l-279 -92l-30 98 l237 80l-182 200h219l127 -145l289 94l33 -98l-250 -80q196 -212 288 -402q46 -96 68.5 -192.5t22.5 -204.5q0 -128 -31 -231t-94 -178q-64 -76 -153 -112t-201 -36zM616 127q138 0 211 106q37 54 55.5 129t18.5 169q0 60 -7.5 112.5t-21.5 103.5t-34 93.5t-45 77.5 q-17 7 -39.5 12.5t-36.5 7.5q-41 6 -79 6q-73 0 -131.5 -25t-97.5 -79t-58 -131.5t-19 -174.5q0 -194 74 -301q73 -106 210 -106z" />
-<glyph unicode="&#xf1;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
-<glyph unicode="&#xf2;" d="M279 1673h198l281 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf3;" d="M756 1673h198l-325 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf4;" d="M543 1673h147l246 -376h-139l-181 245l-180 -245h-139zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112 t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf5;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38z M616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf6;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436 q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
-<glyph unicode="&#xf8;" d="M47 -20l170 200q-23 42 -36 82t-23 87q-11 51 -16 101t-5 109q0 285 123 437q123 151 355 151q49 0 95.5 -6.5t84.5 -20.5q37 -13 72.5 -34t66.5 -50l147 176l93 -77l-164 -195q41 -65 64 -162q11 -49 16.5 -103.5t5.5 -113.5q0 -143 -30.5 -254t-92.5 -186 q-123 -150 -358 -150q-55 0 -98.5 8t-81.5 22q-41 15 -73.5 36t-62.5 53l-160 -186zM817 897q-35 49 -84 71q-51 23 -117 23q-139 0 -213 -107q-36 -52 -55.5 -127t-19.5 -178q0 -28 1.5 -54.5t5.5 -55.5q7 -59 21 -129zM615 127q142 0 214 110q36 55 54 135.5t18 183.5 q0 30 -1.5 56.5t-4.5 54.5q-2 21 -6 49t-12 64l-463 -559q22 -28 42.5 -43.5t44.5 -26.5q25 -11 52 -17.5t62 -6.5z" />
-<glyph unicode="&#xf9;" d="M279 1644h198l281 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfa;" d="M756 1644h198l-325 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfb;" d="M543 1644h147l246 -376h-139l-181 245l-180 -245h-139zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfc;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5 t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfd;" d="M756 1646h198l-325 -376h-154zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-33 -84 -52.5 -135t-31.5 -82.5t-19 -50.5t-14 -40q-25 -70 -45 -121.5t-36.5 -89t-30 -63.5t-23.5 -45q-31 -54 -57 -79.5 t-55 -41.5q-35 -19 -78 -28.5t-84 -9.5h-148v154z" />
-<glyph unicode="&#xfe;" d="M190 1567h185v-590q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1993zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
-<glyph unicode="&#xff;" d="M349 1320q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1320q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195 l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5q-69 -39 -161 -39h-148v154z" />
-<glyph unicode="&#x100;" d="M317 1800h598v-148h-598v148zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x101;" d="M320 1496h598v-148h-598v148zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#x102;" d="M616 1589q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x103;" d="M619 1296q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27 q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5 q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#x104;" d="M1124 -272q31 0 54.5 7.5t54.5 22.5v-133q-22 -6 -38.5 -9.5t-30.5 -6t-27.5 -3.5t-30.5 -1q-113 0 -172 42.5t-59 130.5q0 25 5.5 49.5t18 51t33 56.5t51.5 65h4l-110 389h-523l-108 -389h-209l457 1493h245l457 -1493h-94q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65 t82 -23zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x105;" d="M1078 -269q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49t17.5 50.5t32.5 55.5t50.5 64q-5 13 -12 36t-14 50q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5q-174 0 -275 97 q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63 q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-67q-47 -64 -66.5 -106t-19.5 -75q0 -42 28 -65t82 -23zM877 563h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15 q151 0 238 106q88 108 88 291v41z" />
-<glyph unicode="&#x106;" d="M762 1852h186l-229 -264h-154zM742 -29q-143 0 -255 51.5t-190 151.5q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8q-97 0 -170.5 -38 t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
-<glyph unicode="&#x107;" d="M815 1673h198l-325 -376h-154zM712 -29q-125 0 -227.5 39.5t-174.5 116.5t-109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29q-174 0 -267 -112q-93 -113 -93 -319 q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
-<glyph unicode="&#x108;" d="M582 1852h189l211 -266h-140l-166 178l-165 -178h-140zM297 174q-158 206 -158 570q0 368 159 572q79 100 191 152t253 52q92 0 172 -20t159 -62v-207q-73 61 -159 93t-173 32q-391 0 -391 -611q0 -305 98.5 -457.5t293.5 -152.5q182 0 331 125v-207q-80 -42 -159.5 -62 t-171.5 -20q-143 0 -255 51.5t-190 151.5z" />
-<glyph unicode="&#x109;" d="M578 1673h147l246 -376h-139l-181 245l-180 -245h-139zM310 127q-146 158 -146 432q0 183 66.5 315.5t190 202.5t292.5 70q89 0 161.5 -20t155.5 -66v-193q-75 66 -148 94.5t-164 28.5q-174 0 -267 -112t-93 -319q0 -209 94 -321t269 -112q95 0 168 30q41 15 73.5 36.5 t67.5 54.5v-191q-68 -41 -149 -63.5t-169 -22.5q-126 0 -228 39.5t-174 116.5z" />
-<glyph unicode="&#x10a;" d="M618 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM744 -29q-144 0 -256.5 52t-190 151t-118 242.5t-40.5 326.5q0 184 40.5 328t118.5 244t190.5 152.5t256.5 52.5q89 0 169.5 -20t158.5 -62v-207q-73 60 -156.5 92.5t-176.5 32.5 q-194 0 -292 -152t-98 -459q0 -610 390 -610q91 0 175.5 32t157.5 93v-207q-78 -42 -158.5 -62t-170.5 -20z" />
-<glyph unicode="&#x10b;" d="M587 1348q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM717 -29q-130 0 -232.5 40t-174 116t-109 185t-37.5 247t37.5 247t109 185t174 116t232.5 40q81 0 158 -20.5t155 -65.5v-193q-73 65 -146.5 94t-166.5 29q-174 0 -266.5 -111.5 t-92.5 -320.5q0 -208 93 -320t266 -112q97 0 172 29t141 92v-191q-149 -86 -313 -86z" />
-<glyph unicode="&#x10c;" d="M401 1852h140l165 -178l166 178h140l-211 -266h-189zM742 -29q-143 0 -255 51.5t-190 151.5q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8 q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
-<glyph unicode="&#x10d;" d="M356 1673h139l180 -245l181 245h139l-246 -376h-147zM712 -29q-125 0 -227.5 39.5t-174.5 116.5t-109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29 q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
-<glyph unicode="&#x10e;" d="M233 1852h140l165 -178l166 178h140l-211 -266h-189zM137 1493h303q171 0 296.5 -45t207.5 -137t122 -232.5t40 -331.5q0 -192 -40 -332.5t-122 -232.5t-207.5 -137t-296.5 -45h-303v1493zM436 166q128 0 215.5 29t141 96.5t77 179t23.5 275.5q0 165 -23.5 276.5 t-77.5 179t-141.5 96.5t-214.5 29h-96v-1161h96z" />
-<glyph unicode="&#x10f;" d="M1114 1557h198l-113 -376h-154zM526 -29q-100 0 -180 40.5t-136.5 117t-86.5 185.5t-30 247q0 137 30.5 246t86.5 184.5t136.5 115.5t180.5 40q104 0 180 -43t121 -127v579h184v-1556h-166l-18 141q-46 -84 -122.5 -127t-179.5 -43zM556 127q134 0 203 109t69 323 t-69 323t-203 109t-201.5 -108.5t-67.5 -323.5t67.5 -323.5t201.5 -108.5z" />
-<glyph unicode="&#x110;" d="M133 709h-125v149h125v635h303q171 0 296 -45t207.5 -137t122.5 -232.5t40 -332.5q0 -191 -40 -331.5t-122 -232.5t-207.5 -137t-296.5 -45h-303v709zM436 166q128 0 215.5 29t141 96.5t77 179t23.5 275.5q0 165 -23.5 276.5t-77.5 179t-141.5 96.5t-214.5 29h-96v-469 h264v-149h-264v-543h96z" />
-<glyph unicode="&#x111;" d="M559 -29q-106 0 -186 42t-134 116q-58 79 -87 188.5t-29 244.5q0 133 28.5 242.5t87.5 187.5t141 116.5t179 38.5q102 0 178 -43q77 -44 121 -127v309h-305v121h305v149h184v-149h191v-121h-191v-1286h-166l-18 141q-23 -40 -52 -71.5t-70 -54.5q-76 -44 -177 -44z M585 127q135 0 204 110q69 109 69 322t-69 323q-32 51 -82 80t-121 29q-134 0 -201 -109q-68 -110 -68 -323t68 -323q35 -57 86 -83t114 -26z" />
-<glyph unicode="&#x112;" d="M335 1800h598v-148h-598v148zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x113;" d="M353 1496h598v-148h-598v148zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85 v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
-<glyph unicode="&#x116;" d="M561 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x117;" d="M558 1348q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163 t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
-<glyph unicode="&#x118;" d="M952 0q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49.5t18 50.5t33 56t51.5 65h-636v1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-150z" />
-<glyph unicode="&#x119;" d="M316 516v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-46 -19 -90 -33t-87 -25q-47 -65 -67 -107t-20 -76q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 22 4.5 44.5t14.5 46 t26.5 49.5t41.5 56q-20 -2 -39 -3t-38 -1q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797zM647 991q-136 0 -221.5 -86.5t-102.5 -245.5l606 1q-3 157 -74.5 244 t-207.5 87z" />
-<glyph unicode="&#x11a;" d="M347 1852h140l165 -178l166 178h140l-211 -266h-189zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x11b;" d="M333 1673h139l180 -245l181 245h139l-246 -376h-147zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5 q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
-<glyph unicode="&#x11c;" d="M582 1852h189l211 -266h-140l-166 178l-165 -178h-140zM102 744q0 183 40.5 327t119.5 246q78 100 189.5 151.5t251.5 51.5q193 0 350 -107v-207q-77 74 -166 114q-86 36 -181 36q-98 0 -170.5 -37.5t-123.5 -114.5q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -156 24 -269 q20 -93 56 -166t111.5 -123t198.5 -50q65 0 118.5 17t89.5 47v401h-217v166h410v-643q-164 -152 -404 -152q-187 0 -321.5 92t-205.5 266t-71 415z" />
-<glyph unicode="&#x11d;" d="M573 1673h147l246 -376h-139l-181 245l-180 -245h-139zM276 -385v182q188 -90 329 -90q74 0 126 20t87 62q68 80 68 256v133q-85 -186 -304 -186q-129 0 -227 71q-98 72 -151 202.5t-53 303.5q0 264 117 421q61 79 138 118t177 39q106 0 180.5 -43t122.5 -133l18 145h166 v-1044q0 -252 -119 -382t-350 -130q-153 0 -325 55zM886 569q0 209 -66.5 315.5t-198.5 106.5q-135 0 -205.5 -107.5t-70.5 -315.5q0 -204 72 -313.5t205 -109.5q129 0 196.5 108.5t67.5 315.5z" />
-<glyph unicode="&#x11e;" d="M656 1589q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM700 -29q-143 0 -253.5 52t-187.5 152q-78 102 -117.5 245t-39.5 324t39.5 325t119.5 247q76 97 187 150.5t254 53.5q47 0 94 -6t91 -20t87 -35t79 -46v-207 q-43 41 -85.5 69t-80.5 45q-44 19 -90 27.5t-91 8.5q-97 0 -170 -37t-124 -115q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -158 24 -270.5t72 -187.5q50 -78 122.5 -114t171.5 -36q35 0 64 4t53 12t47 19.5t44 28.5v401h-217v166h410v-643q-81 -75 -182 -113q-102 -39 -222 -39z " />
-<glyph unicode="&#x11f;" d="M644 1298q-144 0 -223 72t-90 215h119q10 -75 59 -113q47 -37 135 -37q86 0 133 37q49 38 62 113h119q-11 -143 -90 -215q-80 -72 -224 -72zM601 -440q-39 0 -78 3.5t-81 10.5q-41 7 -81.5 17t-84.5 24v182q49 -23 94.5 -40t83.5 -28q78 -22 151 -22q74 0 126 20t87 62 q33 40 50.5 101.5t17.5 154.5v133q-43 -93 -120 -140q-76 -46 -184 -46q-197 0 -314 157t-117 420t117 421q59 79 136.5 118t178.5 39q52 0 97.5 -10.5t83.5 -32.5q76 -44 122 -133l18 145h166v-1044q0 -251 -119 -382q-118 -130 -350 -130zM622 145q130 0 197 109t67 315 q0 208 -67 315q-35 57 -85.5 82t-112.5 25q-134 0 -205 -107t-71 -316q0 -205 72 -314t205 -109z" />
-<glyph unicode="&#x120;" d="M618 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM700 -29q-141 0 -252 52t-188 151t-117.5 242.5t-40.5 326.5q0 184 41 328t118.5 244t189 152.5t252.5 52.5q99 0 184 -26.5t166 -80.5v-207q-81 78 -165.5 114t-180.5 36 q-200 0 -297 -152.5t-97 -464.5q0 -307 96 -455.5t296 -148.5q64 0 114 15.5t92 48.5v401h-217v166h410v-643q-81 -75 -182 -113.5t-222 -38.5z" />
-<glyph unicode="&#x121;" d="M571 1348q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM601 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116 t-86.5 182t-30.5 239t30 238.5t86.5 181.5t137 116t181.5 41q103 0 178.5 -43.5t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM620 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
-<glyph unicode="&#x122;" d="M700 -29q-141 0 -252 52t-188 151t-117.5 242.5t-40.5 326.5q0 184 41 328t118.5 244t189 152.5t252.5 52.5q99 0 184 -26.5t166 -80.5v-207q-81 78 -165.5 114t-180.5 36q-200 0 -297 -152.5t-97 -464.5q0 -307 96 -455.5t296 -148.5q64 0 114 15.5t92 48.5v401h-217 v166h410v-643q-81 -75 -182 -113.5t-222 -38.5zM630 -228h239l-187 -345h-146z" />
-<glyph unicode="&#x123;" d="M701 1642h146l-94 -345h-239zM601 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116t-86.5 182t-30.5 239t30 238.5t86.5 181.5t137 116 t181.5 41q103 0 178.5 -43.5t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM620 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
-<glyph unicode="&#x124;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
-<glyph unicode="&#x125;" d="M651 1852h189l211 -266h-140l-166 178l-165 -178h-140zM195 1556h184v-604q101 195 331 195q172 0 257 -112q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-129 0 -198 -91t-69 -263v-633h-184v1556z" />
-<glyph unicode="&#x126;" d="M137 1105h-134v164h134v224h202v-224h554v224h202v-224h135v-164h-135v-1105h-202v711h-554v-711h-202v1105zM893 881v224h-554v-224h554z" />
-<glyph unicode="&#x127;" d="M195 1270h-125v164h125v122h184v-122h353v-164h-353v-318q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1270z" />
-<glyph unicode="&#x128;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x129;" d="M268 1259q0 65 13 117.5t37.5 89t61 56t83.5 19.5q38 0 70 -14t69 -47l57 -55q24 -23 40 -31t30 -8q17 0 31 9t23 28q17 36 19 118h125q0 -65 -13 -117.5t-37.5 -89t-61 -56t-83.5 -19.5q-38 0 -70 14t-69 47l-57 55q-21 20 -37 29.5t-33 9.5t-31 -9t-23 -28 q-19 -39 -20 -118h-124zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#x12a;" d="M335 1800h598v-148h-598v148zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x12b;" d="M268 1468h598v-148h-598v148zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#x12e;" d="M717 1323v-1153h313v-170h-313q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49.5t18 50.5t33 56t51.5 65h-397v170h313v1153h-313v170h829v-170h-313z" />
-<glyph unicode="&#x12f;" d="M526 1323q-33 0 -33 30v173q0 30 33 30h138q33 0 33 -30v-173q0 -30 -33 -30h-138zM972 -261q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 23 4.5 46t15.5 47.5t29 51.5t44 59q-65 6 -118 31t-94 73q-91 106 -91 300v578h-245v144h429 v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-156q-40 -57 -57 -95t-17 -70q0 -42 28 -65t82 -23z" />
-<glyph unicode="&#x130;" d="M543 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x131;" d="M859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
-<glyph unicode="&#x132;" d="M135 203h558q56 0 102 28q47 27 74 74t27 101l-1 917h-320v170l523 1l1 -1088q0 -110 -54 -203q-55 -94 -148.5 -148.5t-203.5 -54.5h-558v203zM135 1493h203v-1087h-203v1087z" />
-<glyph unicode="&#x133;" d="M176 1353v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144q-30 0 -30 30zM863 1353v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144q-30 0 -30 30zM186 1120h184v-1120h-184v1120zM370 -270h323q180 0 180 250v997h-267v143h451v-1140 q0 -195 -88.5 -300.5t-255.5 -105.5h-343v156z" />
-<glyph unicode="&#x134;" d="M761 1852h189l211 -266h-140l-166 178l-165 -178h-140zM109 61v236q182 -162 390 -162q98 0 152.5 32t78.5 107.5t24 212.5v836h-381v170h583v-1006q0 -144 -25.5 -240.5t-80.5 -157.5q-55 -60 -140 -89t-208 -29q-100 0 -194.5 22t-198.5 68z" />
-<glyph unicode="&#x135;" d="M671 1648h147l246 -376h-139l-181 245l-180 -245h-139zM238 -270h234q180 0 180 250v997h-317v143h501v-1140q0 -195 -88.5 -300.5t-255.5 -105.5h-254v156z" />
-<glyph unicode="&#x136;" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493zM608 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x137;" d="M226 1556h190v-901l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1556zM626 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x138;" d="M186 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
-<glyph unicode="&#x139;" d="M412 1856h186l-229 -264h-154zM215 1493h203v-1323h721v-170h-924v1493z" />
-<glyph unicode="&#x13a;" d="M577 1880h186l-229 -264h-154zM801 -8q-166 0 -256 105.5t-90 300.5v1014h-295v144h479v-1158q0 -250 180 -250h215v-156h-233z" />
-<glyph unicode="&#x13b;" d="M215 1493h203v-1323h721v-170h-924v1493zM604 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x13c;" d="M801 -8q-166 0 -256 105.5t-90 300.5v1014h-295v144h479v-1158q0 -250 180 -250h215v-156h-233zM497 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x13d;" d="M215 1493h203v-1323h721v-170h-924v1493zM718 1491h198l-113 -376h-154z" />
-<glyph unicode="&#x13e;" d="M801 -8q-166 0 -256 105.5t-90 300.5v1014h-295v144h479v-1158q0 -250 180 -250h215v-156h-233zM959 1556h198l-113 -376h-154z" />
-<glyph unicode="&#x13f;" d="M215 1493h203v-1323h721v-170h-924v1493zM676 570v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145q-30 0 -30 30z" />
-<glyph unicode="&#x140;" d="M566 98q-91 106 -91 300v1014h-295v144h479v-1158q0 -125 46 -187.5t134 -62.5h215v-156h-233q-82 0 -145 26t-110 80zM849 570v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145q-30 0 -30 30z" />
-<glyph unicode="&#x141;" d="M215 571l-145 -106l-80 110l225 158v760h203v-616l315 219l78 -111l-393 -274v-541h721v-170h-924v571z" />
-<glyph unicode="&#x142;" d="M801 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v292l-299 -209l-80 111l379 264v556h-295v144h479v-575l315 219l80 -110l-395 -275v-417q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
-<glyph unicode="&#x143;" d="M731 1856h186l-229 -264h-154zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
-<glyph unicode="&#x144;" d="M776 1673h198l-325 -376h-154zM195 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120z" />
-<glyph unicode="&#x145;" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493zM544 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x146;" d="M195 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120zM550 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x147;" d="M347 1852h140l165 -178l166 178h140l-211 -266h-189zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
-<glyph unicode="&#x148;" d="M285 1673h139l180 -245l181 245h139l-246 -376h-147zM195 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120z" />
-<glyph unicode="&#x149;" d="M98 1350v206h252v-206l-197 -383h-153zM372 1120h166l18 -168q100 195 331 195q172 0 257 -112q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-129 0 -198 -91t-69 -263v-633h-184v1120z" />
-<glyph unicode="&#x14a;" d="M536 -270h167q45 0 78.5 15t56 47t33.5 83.5t11 124.5v1009q0 180 -58 264.5t-182 84.5q-142 0 -217.5 -108.5t-75.5 -312.5v-937h-202v1493h184l18 -198q54 112 145.5 169.5t218.5 57.5q372 0 372 -523v-1019q0 -196 -89 -301t-255 -105h-205v156z" />
-<glyph unicode="&#x14b;" d="M502 -270h185q179 0 179 250v714q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-714q0 -196 -89 -301t-255 -105h-205v156z" />
-<glyph unicode="&#x14c;" d="M317 1800h598v-148h-598v148zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470 q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#x14d;" d="M317 1495h598v-148h-598v148zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5 q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x150;" d="M541 1859h186l-229 -264h-154zM860 1859h186l-229 -264h-154zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141 q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#x151;" d="M535 1673h170l-224 -376h-137zM868 1673h179l-248 -376h-135zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323 q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x152;" d="M612 0q-158 0 -257.5 43.5t-158.5 123.5q-64 87 -94 229t-30 351q0 111 8 200t24 160t38.5 125t52.5 95q60 82 161 124t256 42h594v-170h-358v-442h328v-170h-328v-541h369v-170h-605zM651 170v1153h-61q-177 0 -246 -115q-34 -57 -52 -168t-18 -295q0 -180 17.5 -291 t52.5 -169q69 -115 246 -115h61z" />
-<glyph unicode="&#x153;" d="M369 -29q-99 0 -163.5 36t-105.5 102q-45 72 -65.5 181.5t-20.5 267.5q0 84 5.5 152.5t16.5 123.5t27 98t36 76q43 70 110 104.5t164 34.5q90 0 153 -31q64 -32 111 -96q17 29 43 53.5t59 41.5t72 24.5t82 7.5q173 0 245 -118q72 -119 72 -425v-90h-491v-84 q0 -162 50 -235q25 -36 64 -54t99 -18q37 0 74 6.5t70 20.5q66 26 112 77v-172q-30 -23 -62.5 -39.5t-58.5 -24.5q-27 -9 -63.5 -14.5t-76.5 -5.5q-51 0 -92 9t-76 25t-65.5 39.5t-56.5 59.5q-30 -38 -58 -61.5t-58 -38.5q-32 -17 -69 -25t-83 -8zM372 123q103 0 144 84 q10 21 17.5 50.5t13 71t8 96t2.5 125.5q0 138 -10 223.5t-31 133.5t-56.5 68t-86.5 20q-55 0 -89 -21.5t-53 -61.5q-10 -21 -17.5 -50t-13 -71t-8 -99.5t-2.5 -133.5q0 -74 2.5 -130t8 -98t13 -72t17.5 -51q22 -46 57.5 -65t83.5 -19zM1047 657v12.5t1 17.5t1 15v7 q0 152 -40 219t-126 67q-87 0 -125 -68q-39 -69 -39 -227v-43h328z" />
-<glyph unicode="&#x154;" d="M631 1856h186l-229 -264h-154zM143 1493h416q123 0 217.5 -28.5t159 -83t98 -133.5t33.5 -179q0 -160 -81 -251t-226 -113q40 -11 72.5 -28t62.5 -49.5t62 -85.5t73 -134l203 -408h-217l-178 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v-631h-203v1493zM567 797 q287 0 287 259q0 136 -75.5 203.5t-219.5 67.5h-213v-530h221z" />
-<glyph unicode="&#x155;" d="M822 1674h198l-325 -376h-154zM302 1120h167l18 -219q45 116 138.5 181t230.5 65q67 0 126 -17t113 -53v-188q-60 46 -120.5 67t-133.5 21q-173 0 -263.5 -107.5t-90.5 -312.5v-557h-185v1120z" />
-<glyph unicode="&#x156;" d="M143 1493h416q123 0 217.5 -28.5t159 -83t98 -133.5t33.5 -179q0 -160 -81 -251t-226 -113q40 -11 72.5 -28t62.5 -49.5t62 -85.5t73 -134l203 -408h-217l-178 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v-631h-203v1493zM567 797q287 0 287 259 q0 136 -75.5 203.5t-219.5 67.5h-213v-530h221zM616 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x157;" d="M302 1120h167l18 -219q45 116 138.5 181t230.5 65q67 0 126 -17t113 -53v-188q-60 46 -120.5 67t-133.5 21q-173 0 -263.5 -107.5t-90.5 -312.5v-557h-185v1120zM322 -199h239l-187 -345h-146z" />
-<glyph unicode="&#x158;" d="M257 1852h140l165 -178l166 178h140l-211 -266h-189zM143 1493h416q123 0 217.5 -28.5t159 -83t98 -133.5t33.5 -179q0 -160 -81 -251t-226 -113q40 -11 72.5 -28t62.5 -49.5t62 -85.5t73 -134l203 -408h-217l-178 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v-631 h-203v1493zM567 797q287 0 287 259q0 136 -75.5 203.5t-219.5 67.5h-213v-530h221z" />
-<glyph unicode="&#x159;" d="M337 1673h139l180 -245l181 245h139l-246 -376h-147zM302 1120h167l18 -219q45 116 138.5 181t230.5 65q67 0 126 -17t113 -53v-188q-60 46 -120.5 67t-133.5 21q-173 0 -263.5 -107.5t-90.5 -312.5v-557h-185v1120z" />
-<glyph unicode="&#x15a;" d="M701 1856h186l-229 -264h-154zM586 -29q-110 0 -215 22.5t-213 67.5v215q115 -73 217 -107t208 -34q153 0 237.5 67.5t84.5 202.5q0 50 -13.5 89.5t-44 70t-81 53t-123.5 39.5l-108 25q-105 24 -180 59.5t-123 84t-70.5 111t-22.5 140.5q0 101 35 183t99.5 139.5 t155.5 89t202 31.5q171 0 381 -78v-205q-185 119 -372 119q-71 0 -128 -17t-97 -49t-61.5 -80t-21.5 -109q0 -45 13 -80t43 -63t79.5 -49t122.5 -37l106 -24q106 -24 182 -62.5t125 -92.5t72 -124.5t23 -157.5q0 -215 -132 -327.5t-380 -112.5z" />
-<glyph unicode="&#x15b;" d="M782 1673h198l-325 -376h-154zM587 -29q-87 0 -177.5 17.5t-196.5 52.5v190q205 -106 375 -106q61 0 108.5 13t80.5 37t50 57t17 73q0 34 -13.5 62t-42.5 50.5t-76 40.5t-113 32l-8 2l-69 14q-82 16 -140 42.5t-94.5 64t-53.5 86.5t-17 111q0 163 108 250t314 87 q173 0 334 -66v-180q-81 46 -159.5 69t-168.5 23q-242 0 -242 -165q0 -35 11.5 -64t34.5 -47q26 -20 83.5 -37.5t145.5 -34.5l74 -14q138 -26 208 -103.5t70 -203.5q0 -83 -30.5 -148.5t-87.5 -111t-139.5 -69.5t-185.5 -24z" />
-<glyph unicode="&#x15c;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM158 61v215q114 -72 216.5 -106.5t206.5 -34.5q154 0 239 68.5t85 196.5q0 56 -14 95.5t-44 69.5q-30 32 -77.5 53t-126.5 39l-108 25q-107 24 -180.5 58.5t-121.5 83.5q-94 94 -94 255q0 101 34.5 182.5 t100.5 139.5t156 88.5t201 30.5q178 0 381 -78v-205q-185 119 -370 119q-71 0 -129 -16.5t-99 -49.5q-82 -66 -82 -185q0 -48 13.5 -83t41.5 -62q30 -29 78 -50t125 -38l106 -24q208 -47 305 -152.5t97 -285.5q0 -215 -131 -327t-383 -112q-110 0 -211 21.5t-215 68.5z" />
-<glyph unicode="&#x15d;" d="M548 1673h147l246 -376h-139l-181 245l-180 -245h-139zM213 41v190q109 -54 197 -79q98 -27 178 -27q121 0 189 50q33 24 50 58.5t17 73.5q0 69 -59 113t-186 70l-8 2l-69 14q-159 32 -232 105t-73 201q0 162 108.5 248.5t313.5 86.5q171 0 334 -66v-180 q-80 47 -160 69.5t-166 22.5q-244 0 -244 -165q0 -35 12 -64q12 -30 35.5 -48.5t75.5 -33.5q54 -19 152 -37l74 -14q141 -29 208 -104q70 -76 70 -204q0 -109 -53.5 -188.5t-152.5 -121.5t-234 -42q-88 0 -179 17.5t-198 52.5z" />
-<glyph unicode="&#x15e;" d="M1001 694q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-47 -40 -110 -65.5t-140 -37.5q22 -26 39 -50.5t27 -44.5q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5 t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-8 17 -20 35.5t-26 40.5h-18q-57 0 -111 5.5t-102 16.5q-53 11 -107.5 29t-105.5 39v215q58 -37 112 -63.5t106 -43.5q54 -18 105 -26t101 -8q75 0 135 17t103 51q40 32 62.5 79.5t22.5 116.5q0 57 -15.5 98t-42.5 69 q-31 32 -82.5 53.5t-121.5 37.5l-108 25q-101 23 -176.5 57t-125.5 85q-46 47 -70 109t-24 146q0 103 35.5 184t99.5 138t153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-50 32 -96 53.5t-88 35.5q-93 30 -186 30q-75 0 -132.5 -17.5t-95.5 -48.5 q-40 -32 -61 -78.5t-21 -106.5q0 -41 11.5 -78t43.5 -67q29 -28 78 -49.5t125 -38.5l106 -24q97 -22 174.5 -59.5t130.5 -94.5z" />
-<glyph unicode="&#x15f;" d="M960 527q70 -77 70 -204q0 -86 -30.5 -149.5t-87.5 -108.5q-80 -63 -196 -83q23 -26 39.5 -51.5t27.5 -45.5q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5 t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-8 17 -20 35.5t-26 40.5h-12q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40 t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5 l74 -14q72 -14 123 -40t85 -64z" />
-<glyph unicode="&#x160;" d="M327 1852h140l165 -178l166 178h140l-211 -266h-189zM584 -29q-57 0 -111 5.5t-102 16.5q-53 11 -107.5 29t-105.5 39v215q58 -37 112 -63.5t106 -43.5q54 -18 105 -26t101 -8q75 0 135 17t103 51q40 32 62.5 79.5t22.5 116.5q0 57 -15.5 98t-42.5 69q-31 32 -82.5 53.5 t-121.5 37.5l-108 25q-101 23 -176.5 57t-125.5 85q-46 47 -70 109t-24 146q0 103 35.5 184t99.5 138t153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-50 32 -96 53.5t-88 35.5q-93 30 -186 30q-75 0 -132.5 -17.5t-95.5 -48.5q-40 -32 -61 -78.5 t-21 -106.5q0 -41 11.5 -78t43.5 -67q29 -28 78 -49.5t125 -38.5l106 -24q97 -22 174.5 -59.5t130.5 -94.5q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-66 -57 -163.5 -84.5t-219.5 -27.5z" />
-<glyph unicode="&#x161;" d="M297 1673h139l180 -245l181 245h139l-246 -376h-147zM590 -29q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40 t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5 l74 -14q72 -14 123 -40t85 -64q70 -77 70 -204q0 -86 -30.5 -149.5t-87.5 -108.5q-61 -48 -142.5 -71t-179.5 -23z" />
-<glyph unicode="&#x162;" d="M719 1323v-1323h-72q4 -5 39 -40q27 -27 41 -43.5t23 -31.5q26 -55 26 -104q0 -40 -15 -74t-45 -57q-61 -45 -179 -45q-91 0 -175 24v131q38 -18 72 -25t79 -7q124 0 124 92q0 40 -15.5 82.5t-52.5 97.5h-53v1323h-469v170h1139v-170h-467z" />
-<glyph unicode="&#x163;" d="M1032 977h-418v-612q0 -84 20.5 -131.5t65.5 -68.5q45 -22 125 -22h207v-147h-254q36 -42 65 -94q26 -55 26 -104q0 -40 -15 -74t-45 -57q-62 -45 -179 -45q-91 0 -175 24v131q38 -18 72 -25t79 -7q124 0 124 92q0 29 -20 69.5t-65 105.5q-114 28 -164.5 111t-50.5 242 v612h-299v143h299v293l184 80v-373h418v-143z" />
-<glyph unicode="&#x164;" d="M317 1852h140l165 -178l166 178h140l-211 -266h-189zM516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
-<glyph unicode="&#x165;" d="M820 1682h198l-113 -376h-154zM807 -4q-206 0 -292 83q-85 82 -85 286v612h-299v143h299v293l184 80v-373h418v-143h-418v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-225z" />
-<glyph unicode="&#x166;" d="M516 577h-265v170h265v576h-469v170h1139v-170h-467v-576h265v-170h-265v-577h-203v577z" />
-<glyph unicode="&#x167;" d="M807 -4q-104 0 -175.5 19.5t-116.5 63.5t-65 114t-20 172v237h-229v142h229v233h-299v143h299v303l184 70v-373h418v-143h-418v-233h229v-142h-229v-237q0 -62 11 -104.5t36 -68.5t65 -37.5t99 -11.5h207v-147h-225v0z" />
-<glyph unicode="&#x168;" d="M287 1633q0 102 50.5 160.5t144.5 58.5q40 0 70.5 -11.5t68.5 -31.5l57 -30q43 -25 72 -25q31 0 51 25t20 67v6h125q-2 -49 -15 -89.5t-37 -69t-59.5 -44.5t-81.5 -16q-32 0 -63.5 9.5t-77.5 33.5l-57 33q-25 14 -40 19.5t-29 5.5q-34 0 -54 -25t-20 -70v-6h-125z M618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-920 q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
-<glyph unicode="&#x169;" d="M287 1257q0 65 13 117.5t37.5 89t61 56t83.5 19.5q38 0 70 -14t69 -47l57 -55q24 -23 40 -31t30 -8q17 0 31 9t23 28q17 36 19 118h125q0 -65 -13 -117.5t-37.5 -89t-61 -56t-83.5 -19.5q-38 0 -70 14t-69 47l-57 55q-21 20 -37 29.5t-33 9.5t-31 -9t-23 -28 q-19 -39 -20 -118h-124zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
-<glyph unicode="&#x16a;" d="M317 1800h598v-148h-598v148zM618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41 q6 46 6 154v1014h202v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
-<glyph unicode="&#x16b;" d="M317 1466h598v-148h-598v148zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
-<glyph unicode="&#x16c;" d="M930 1831q-11 -120 -90 -181t-224 -61q-290 0 -313 242h119q12 -54 62 -82.5t134 -28.5q163 0 193 111h119zM810 2q-89 -31 -194 -31q-100 0 -189 29q-95 35 -154 88q-33 30 -56 68.5t-40 92.5q-30 92 -30 324v920h203v-1012q0 -115 7 -161q7 -53 34.5 -92t83.5 -65 q57 -28 141 -28q101 0 174.5 44.5t86.5 145.5q6 47 6 154v1014h202v-920q0 -131 -8 -213t-31 -147q-24 -69 -86 -125t-150 -86z" />
-<glyph unicode="&#x16d;" d="M937 1585q-11 -143 -90.5 -215t-223.5 -72t-223 72t-90 215h119q20 -150 194 -150q86 0 134 37.5t61 112.5h119zM866 168q-50 -98 -134 -147.5t-198 -49.5q-171 0 -255 112.5t-84 340.5v694h184v-694q0 -151 54 -222q27 -36 67.5 -53.5t97.5 -17.5q130 0 199 91.5 t69 262.5v633h185v-1118h-167z" />
-<glyph unicode="&#x16e;" d="M627 1352q-58 0 -108 21.5t-87 58.5t-58.5 87.5t-21.5 107.5t21.5 107t58.5 87t87 58.5t108 21.5t108 -21.5t87 -58.5t58 -87t21 -107t-21 -107.5t-58 -87.5t-87 -58.5t-108 -21.5zM626 1475q32 0 59.5 12t48 32.5t32.5 48t12 59.5q0 31 -12 59t-32.5 48t-48 32t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5 t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
-<glyph unicode="&#x16f;" d="M632 1204q-58 0 -108 21.5t-87 58.5t-58.5 87.5t-21.5 107.5t21.5 107t58.5 87t87 58.5t108 21.5t108 -21.5t87 -58.5t58 -87t21 -107t-21 -107.5t-58 -87.5t-87 -58.5t-108 -21.5zM631 1327q32 0 59.5 12t48 32.5t32.5 48t12 59.5q0 31 -12 59t-32.5 48t-48 32t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
-<glyph unicode="&#x170;" d="M541 1852h186l-229 -264h-154zM860 1852h186l-229 -264h-154zM618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5 q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
-<glyph unicode="&#x171;" d="M535 1644h170l-224 -376h-137zM868 1644h179l-248 -376h-135zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
-<glyph unicode="&#x172;" d="M1085 1493v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-32 -11 -67 -18t-73 -9q-44 -61 -62 -101t-18 -72q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5 q0 24 5 47.5t16.5 49t30.5 54t48 61.5q-86 8 -155 37.5t-119 74.5q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41 q6 46 6 154v1014h202z" />
-<glyph unicode="&#x173;" d="M1076 -272q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49.5t18 50.5t33 56t51.5 65h-69v168q-49 -97 -133 -147t-199 -50q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633 h185v-1118h3q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65t82 -23z" />
-<glyph unicode="&#x174;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
-<glyph unicode="&#x175;" d="M543 1647h147l246 -376h-139l-181 245l-180 -245h-139zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
-<glyph unicode="&#x176;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="&#x177;" d="M555 1647h147l246 -376h-139l-181 245l-180 -245h-139zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64 q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
-<glyph unicode="&#x178;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="&#x179;" d="M653 1852h186l-229 -264h-154zM110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
-<glyph unicode="&#x17a;" d="M842 1649h198l-325 -376h-154zM203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
-<glyph unicode="&#x17b;" d="M547 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
-<glyph unicode="&#x17c;" d="M543 1322q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
-<glyph unicode="&#x17d;" d="M265 1852h140l165 -178l166 178h140l-211 -266h-189zM110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
-<glyph unicode="&#x17e;" d="M297 1649h139l180 -245l181 245h139l-246 -376h-147zM203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
-<glyph unicode="&#x192;" d="M203 -426q-26 0 -53 2.5t-53 7.5q-50 10 -97 33v164q27 -17 51 -28.5t48 -19.5q25 -8 49.5 -12t46.5 -4q53 0 91.5 20t67.5 55t50.5 90.5t35.5 135.5l117 687h-252v143h275l49 330q14 92 45 160t80 118q99 100 248 100q48 0 98 -9q48 -9 100 -27v-164q-15 12 -36 24 t-41 19q-17 6 -39.5 10t-48.5 4q-51 0 -89.5 -16.5t-66.5 -45.5q-30 -32 -48 -78t-28 -114l-45 -311h303v-143h-328l-100 -635q-20 -125 -55.5 -223t-86.5 -158q-98 -115 -288 -115z" />
-<glyph unicode="&#x1a0;" d="M1171 1557q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-36 0 -73 12q61 -176 61 -451q0 -390 -124 -582t-377 -192q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q220 0 340 -144q45 -29 76.5 -41t58.5 -12q42 0 65 28t23 82q0 62 -30 124h133z M727 276q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141q154 0 222 141z" />
-<glyph unicode="&#x1a1;" d="M1182 1137q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-15 0 -29.5 1.5t-28.5 6.5q21 -96 21 -214q0 -286 -123 -436.5t-357 -150.5q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5q143 0 244.5 -56.5t160.5 -168.5q42 -19 75 -19 q42 0 65 28t23 82q0 62 -30 124h133zM511 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x1a4;" d="M284 1327q-54 0 -79 -50.5t-25 -156.5h-175v114q0 80 34.5 139t98.5 90q63 30 146 30h436q122 0 218 -28.5t161 -84.5q129 -113 129 -335q0 -219 -128.5 -332t-379.5 -113h-234v-600h-202v1327zM720 766q140 0 218.5 74.5t78.5 207.5q0 132 -78 205.5t-219 73.5h-234 v-561h234z" />
-<glyph unicode="&#x1af;" d="M1204 1561q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-26 0 -51 5.5t-52 19.5v-640q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89 q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-151q37 -15 66 -15q42 0 65 28t23 82q0 62 -30 124h133v0z" />
-<glyph unicode="&#x1b0;" d="M1174 1137q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-31 0 -60.5 8.5t-64.5 28.5v-801h-167l-18 168q-49 -97 -133 -147t-199 -50q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-189 q51 -26 88 -26q42 0 65 28t23 82q0 62 -30 124h133v0z" />
-<glyph unicode="&#x1e6;" d="M401 1852h140l165 -178l166 178h140l-211 -266h-189zM700 -29q-141 0 -252 52t-188 151t-117.5 242.5t-40.5 326.5q0 184 41 328t118.5 244t189 152.5t252.5 52.5q99 0 184 -26.5t166 -80.5v-207q-81 78 -165.5 114t-180.5 36q-200 0 -297 -152.5t-97 -464.5 q0 -307 96 -455.5t296 -148.5q64 0 114 15.5t92 48.5v401h-217v166h410v-643q-81 -75 -182 -113.5t-222 -38.5z" />
-<glyph unicode="&#x1e7;" d="M325 1673h139l180 -245l181 245h139l-246 -376h-147zM601 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116t-86.5 182t-30.5 239t30 238.5 t86.5 181.5t137 116t181.5 41q103 0 178.5 -43.5t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM620 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
-<glyph unicode="&#x1fe;" d="M691 1856h186l-229 -264h-154zM8 0l178 252q-16 36 -29 88t-22 116t-13.5 137t-4.5 151q0 391 123 583.5t374 192.5q232 0 347 -162l139 201l100 -74l-168 -238q42 -81 63 -209.5t21 -293.5q0 -390 -124 -581.5t-379 -191.5q-238 0 -359 162l-143 -203zM842 1190 q-24 78 -80 122t-147 44q-85 0 -136.5 -38t-83.5 -108q-37 -82 -52 -212t-15 -316q0 -76 2.5 -126.5t7.5 -84.5zM619 135q151 0 219 142q16 33 28.5 76.5t21 101t13 131.5t4.5 169q0 100 -5 168t-15 113l-514 -733q32 -81 96.5 -124.5t151.5 -43.5z" />
-<glyph unicode="&#x1ff;" d="M756 1673h198l-325 -376h-154zM47 -20l170 200q-39 72 -59.5 168.5t-20.5 213.5q0 142 31 251t92 183t151 112.5t207 38.5q98 0 177 -27t139 -84l147 176l93 -77l-164 -195q42 -66 64 -162t22 -218q0 -290 -122.5 -439.5t-357.5 -149.5q-204 0 -317 119l-160 -186z M817 897q-36 50 -86.5 72t-111.5 22q-71 0 -125 -27.5t-91 -79.5t-56 -127.5t-19 -172.5q0 -57 7 -114.5t21 -129.5zM615 127q142 0 214 109.5t72 315.5q0 60 -6 115t-18 113l-463 -559q72 -94 201 -94z" />
-<glyph unicode="&#x218;" d="M586 -29q-110 0 -215 22.5t-213 67.5v215q115 -73 217 -107t208 -34q153 0 237.5 67.5t84.5 202.5q0 50 -13.5 89.5t-44 70t-81 53t-123.5 39.5l-108 25q-105 24 -180 59.5t-123 84t-70.5 111t-22.5 140.5q0 101 35 183t99.5 139.5t155.5 89t202 31.5q171 0 381 -78v-205 q-185 119 -372 119q-71 0 -128 -17t-97 -49t-61.5 -80t-21.5 -109q0 -45 13 -80t43 -63t79.5 -49t122.5 -37l106 -24q106 -24 182 -62.5t125 -92.5t72 -124.5t23 -157.5q0 -215 -132 -327.5t-380 -112.5zM502 -197h239l-187 -345h-146z" />
-<glyph unicode="&#x219;" d="M587 -29q-87 0 -177.5 17.5t-196.5 52.5v190q205 -106 375 -106q61 0 108.5 13t80.5 37t50 57t17 73q0 34 -13.5 62t-42.5 50.5t-76 40.5t-113 32l-8 2l-69 14q-82 16 -140 42.5t-94.5 64t-53.5 86.5t-17 111q0 163 108 250t314 87q173 0 334 -66v-180q-81 46 -159.5 69 t-168.5 23q-242 0 -242 -165q0 -35 11.5 -64t34.5 -47q26 -20 83.5 -37.5t145.5 -34.5l74 -14q138 -26 208 -103.5t70 -203.5q0 -83 -30.5 -148.5t-87.5 -111t-139.5 -69.5t-185.5 -24zM502 -197h239l-187 -345h-146z" />
-<glyph unicode="&#x21a;" d="M719 0h-19q57 -63 83 -114t26 -106q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 31 -19.5 72.5t-68.5 109.5h-66v1323h-469v170h1139v-170h-467v-1323z" />
-<glyph unicode="&#x21b;" d="M614 977v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-194q48 -56 70 -102.5t22 -97.5q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 15 -4 31.5t-13 36.5t-24 44t-36 55q-134 15 -199 78q-85 82 -85 286v612h-299 v143h299v293l184 80v-373h418v-143h-418z" />
-<glyph unicode="&#x2c6;" d="M936 1262h-139l-181 245l-180 -245h-139l246 376h147z" />
-<glyph unicode="&#x2c7;" d="M436 1638l180 -245l181 245h139l-246 -376h-147l-246 376h139z" />
-<glyph unicode="&#x2d8;" d="M422 1608q10 -75 59 -113q47 -37 135 -37q86 0 133 37q49 38 62 113h119q-11 -143 -90 -215q-80 -72 -224 -72t-223 72t-90 215h119v0z" />
-<glyph unicode="&#x2d9;" d="M689 1552q30 0 30 -30v-144q0 -30 -30 -30h-145q-30 0 -30 30v144q0 30 30 30h145v0z" />
-<glyph unicode="&#x2da;" d="M891 1524q0 -116 -79 -195q-80 -80 -196 -80q-114 0 -194 80t-80 195t80 195q79 79 194 79q117 0 196 -79t79 -195zM768 1524q0 63 -44 107t-109 44q-63 0 -106 -43q-44 -44 -44 -108t44 -108t107 -44q64 0 108 44t44 108z" />
-<glyph unicode="&#x2db;" d="M647 0q-45 -62 -66 -105q-22 -43 -22 -75q0 -47 28 -69q28 -23 81 -23q34 0 63 7q16 4 31 9.5t31 13.5v-133q-38 -11 -72 -15q-17 -2 -33 -3.5t-31 -1.5q-123 0 -179 43q-58 43 -58 137q0 47 27 100q13 26 33 55t48 60h119v0z" />
-<glyph unicode="&#x2dc;" d="M555 1425q-22 21 -37 30q-17 9 -31 9q-38 0 -56 -37q-19 -39 -20 -118h-124q2 135 52 208q51 74 142 74q38 0 71 -14q30 -13 69 -47l57 -55q22 -20 38 -29q16 -10 29 -10q39 0 57 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -142 -74q-38 0 -71 14q-30 13 -69 47 l-57 55v0z" />
-<glyph unicode="&#x2dd;" d="M481 1262h-137l191 376h170zM799 1262h-135l204 376h179z" />
-<glyph unicode="&#x300;" horiz-adv-x="0" d="M-954 1638h198l281 -376h-154z" />
-<glyph unicode="&#x301;" horiz-adv-x="0" d="M-758 1262l281 376h198l-325 -376h-154z" />
-<glyph unicode="&#x303;" horiz-adv-x="0" d="M-621 1370l-57 55q-40 39 -68 39q-38 0 -56 -37q-19 -39 -20 -118h-124q1 135 52 208.5t142 73.5q39 0 71 -14t69 -47l57 -55q40 -39 67 -39q39 0 57 37q17 36 19 118h125q-1 -135 -52 -208.5t-142 -73.5q-39 0 -71 14t-69 47z" />
-<glyph unicode="&#x309;" horiz-adv-x="0" d="M-647 1734q229 0 237 -170q1 -3 1 -10q0 -32 -10.5 -61t-28.5 -54.5t-41.5 -47t-49.5 -37.5v-88h-148v108q67 22 116 70q22 19 22 73q0 94 -120 94q-88 0 -154 -32v131q85 24 176 24z" />
-<glyph unicode="&#x323;" horiz-adv-x="0" d="M-720 -413v204h205v-204h-205z" />
-<glyph unicode="&#x384;" d="M756 1638h198l-325 -376h-154z" />
-<glyph unicode="&#x385;" d="M766 1894h198l-325 -376h-154zM272 1326q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM749 1326q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142z" />
-<glyph unicode="&#x386;" d="M-60 1117l281 376h198l-325 -376h-154zM37 0l457 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x388;" d="M55 1493h198l-325 -376h-154zM328 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x389;" d="M-16 1493h198l-325 -376h-154zM257 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
-<glyph unicode="&#x38a;" d="M58 1493h198l-325 -376h-154zM331 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x38c;" d="M676 -29q-253 0 -376 191t-123 583q0 391 123.5 583t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -123.5 -582t-376.5 -192zM103 1493h198l-325 -376h-154zM676 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470 q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#x38e;" d="M519 650q0 60 -8.5 126.5t-24 133t-36.5 128.5t-47 114t-56 90t-62 55q-13 7 -32 13.5t-40 11t-43.5 7.5t-42.5 3q-17 0 -37.5 -2t-40.5 -7v170q18 6 40 8.5t46 2.5q31 0 69.5 -3.5t71.5 -10.5q68 -14 123 -46.5t97.5 -86.5t73.5 -131.5t51 -181.5q60 204 146.5 312 t196.5 134q20 5 34.5 6t24.5 1q39 0 75.5 -12t64.5 -35t44.5 -56.5t16.5 -75.5q0 -17 -3.5 -43t-14.5 -51q-17 -38 -44.5 -52.5t-56.5 -14.5q-26 0 -50.5 9t-45 27t-35 44t-18.5 60q-38 -26 -70 -69t-58 -96.5t-45.5 -115t-33 -124.5t-20.5 -125t-7 -117v-650h-203v650z M-188 1493h198l-325 -376h-154z" />
-<glyph unicode="&#x38f;" d="M90 1460h198l-325 -376h-154zM119 172h245q-60 65 -104 133t-72.5 141.5t-42.5 155.5t-14 176q0 158 37.5 284.5t106.5 215t167 135.5t218 47q121 0 219 -47.5t167 -136t106.5 -214.5t37.5 -284q0 -92 -13.5 -173t-42 -155.5t-73 -143t-105.5 -134.5h248v-172h-463v172 q58 36 105 97t80 141t51 176t18 202q0 121 -23.5 215.5t-67 159t-105 98t-138.5 33.5t-138.5 -33.5t-105 -98t-66.5 -158.5t-23 -215q0 -102 16.5 -196.5t49 -175.5t79.5 -144t109 -101v-172h-463v172z" />
-<glyph unicode="&#x390;" d="M766 1892h198l-325 -376h-154zM272 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM749 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM864 -8q-180 0 -262 96q-82 99 -82 310v579h-210v143h398v-733 q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111z" />
-<glyph unicode="&#x391;" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x392;" d="M166 1493h442q114 0 203 -25t150 -74t92.5 -120t31.5 -164q0 -134 -65.5 -212.5t-196.5 -98.5q73 -11 131 -42.5t98.5 -82t62.5 -118t22 -149.5q0 -201 -132 -304t-397 -103h-442v1493zM604 877q144 0 210.5 55.5t66.5 177.5q0 58 -15 99t-48.5 67.5t-86 38.5t-127.5 12 h-235v-450h235zM608 166q88 0 150 15t101 46.5t57 81.5t18 120q0 147 -78.5 215.5t-247.5 68.5h-239v-547h239z" />
-<glyph unicode="&#x393;" d="M215 1493h924v-170h-721v-1323h-203v1493z" />
-<glyph unicode="&#x394;" d="M494 1493h245l457 -1493h-1159zM938 170l-322 1145l-322 -1145h644z" />
-<glyph unicode="&#x395;" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x396;" d="M110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
-<glyph unicode="&#x397;" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
-<glyph unicode="&#x398;" d="M40 676q0 196 76 360.5t210 260.5t301 96q166 0 295 -95.5t200 -258t71 -355.5q0 -205 -78.5 -368t-212.5 -254t-293 -91q-163 0 -293 94.5t-203 256t-73 354.5zM990 685q0 139 -38 257.5t-121 192t-212 73.5q-130 0 -214 -74.5t-123 -194.5t-39 -260q0 -143 40.5 -261.5 t124.5 -190t208 -71.5q125 0 209 72t124.5 192t40.5 265zM383 764h467v-170h-467v170z" />
-<glyph unicode="&#x399;" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x39a;" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
-<glyph unicode="&#x39b;" d="M494 1493h245l457 -1493h-209l-371 1315l-370 -1315h-209z" />
-<glyph unicode="&#x39c;" d="M87 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
-<glyph unicode="&#x39d;" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
-<glyph unicode="&#x39e;" d="M137 1493h959v-170h-959v170zM340 881h553v-170h-553v170zM137 170h959v-170h-959v170z" />
-<glyph unicode="&#x39f;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q83 0 136.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 162.5t-4.5 161.5t-13.5 128.5t-21.5 100.5t-28.5 77.5 q-35 72 -88.5 106.5t-131.5 34.5q-79 0 -133 -35t-88 -107q-68 -143 -68 -469q0 -165 16.5 -280t51.5 -188q33 -70 86.5 -106t133.5 -36z" />
-<glyph unicode="&#x3a0;" d="M137 1493h959v-1493h-203v1323h-553v-1323h-203v1493z" />
-<glyph unicode="&#x3a1;" d="M172 1493h436q251 0 379.5 -112.5t128.5 -334.5q0 -221 -127.5 -333.5t-380.5 -112.5h-234v-600h-202v1493zM608 766q141 0 219 73.5t78 207.5t-77.5 207t-219.5 73h-234v-561h234z" />
-<glyph unicode="&#x3a3;" d="M120 170l454 577l-454 576v170h1013v-170h-802l455 -576l-455 -577h802v-170h-1013v170z" />
-<glyph unicode="&#x3a4;" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
-<glyph unicode="&#x3a5;" d="M504 650q0 60 -8.5 126.5t-24 133t-36.5 128.5t-47 114t-56 90t-62 55q-13 7 -32 13.5t-40 11t-43.5 7.5t-42.5 3q-17 0 -37.5 -2t-40.5 -7v170q18 6 40 8.5t46 2.5q31 0 69.5 -3.5t71.5 -10.5q68 -14 123 -46.5t97.5 -86.5t73.5 -131.5t51 -181.5q60 204 146.5 312 t196.5 134q20 5 34.5 6t24.5 1q39 0 75.5 -12t64.5 -35t44.5 -56.5t16.5 -75.5q0 -17 -3.5 -43t-14.5 -51q-17 -38 -44.5 -52.5t-56.5 -14.5q-26 0 -50.5 9t-45 27t-35 44t-18.5 60q-38 -26 -70 -69t-58 -96.5t-45.5 -115t-33 -124.5t-20.5 -125t-7 -117v-650h-203v650z" />
-<glyph unicode="&#x3a6;" d="M368 170h147v116q-89 9 -162 38t-125 83.5t-81 137.5t-29 200t29 200t81.5 138t125.5 84t161 38v118h-147v170h497v-170h-147v-118q88 -9 161 -38t125.5 -84t81.5 -138t29 -200t-29 -200t-81 -137.5t-125.5 -83.5t-161.5 -38v-116h147v-170h-497v170zM515 1029 q-77 -17 -118 -58q-68 -68 -68 -226q0 -157 68 -225q41 -42 118 -58v567zM718 462q42 9 72 25t47 33q67 67 67 225q0 159 -67 226q-41 41 -119 58v-567z" />
-<glyph unicode="&#x3a7;" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
-<glyph unicode="&#x3a8;" d="M367 170h147v214q-177 32 -274 183q-123 190 -123 583v343h203v-343q0 -173 20 -286t56 -183q45 -87 118 -121v933h203v-933q73 33 119 121q75 145 75 469v343h203v-343q0 -393 -123 -583q-97 -151 -274 -183v-214h147v-170h-497v170z" />
-<glyph unicode="&#x3a9;" d="M74 172h245q-122 132 -178 278q-55 143 -55 333q0 309 144 494q71 91 166.5 137t217.5 46q125 0 221 -47t166 -136q144 -183 144 -494q0 -190 -55 -333q-29 -75 -73.5 -143.5t-105.5 -134.5h248v-172h-463v172q120 76 187 241q33 81 50 176t17 201q0 116 -21.5 210 t-67.5 162q-43 63 -105 97.5t-140 34.5q-82 0 -142.5 -36t-101.5 -96q-44 -65 -66.5 -157t-22.5 -215q0 -106 17 -201t50 -176q35 -85 82 -144.5t105 -96.5v-172h-463v172z" />
-<glyph unicode="&#x3aa;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM202 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x3ab;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM504 650q0 60 -8.5 126.5t-24 133t-36.5 128.5t-47 114t-56 90t-62 55q-13 7 -32 13.5t-40 11 t-43.5 7.5t-42.5 3q-17 0 -37.5 -2t-40.5 -7v170q18 6 40 8.5t46 2.5q31 0 69.5 -3.5t71.5 -10.5q68 -14 123 -46.5t97.5 -86.5t73.5 -131.5t51 -181.5q60 204 146.5 312t196.5 134q20 5 34.5 6t24.5 1q39 0 75.5 -12t64.5 -35t44.5 -56.5t16.5 -75.5q0 -17 -3.5 -43 t-14.5 -51q-17 -38 -44.5 -52.5t-56.5 -14.5q-26 0 -50.5 9t-45 27t-35 44t-18.5 60q-38 -26 -70 -69t-58 -96.5t-45.5 -115t-33 -124.5t-20.5 -125t-7 -117v-650h-203v650z" />
-<glyph unicode="&#x3ac;" d="M756 1673h198l-325 -376h-154zM508 -25q-101 0 -182 39t-138 113t-87.5 181t-30.5 244q0 153 36.5 265t98.5 184.5t143.5 108t171.5 35.5q68 0 126 -20t103 -59.5t75.5 -99.5t44.5 -139l99 293h164l-205 -607l40 -219q4 -24 17 -49t30 -44.5t35.5 -32t34.5 -12.5h88v-156 h-110q-47 0 -86.5 17t-70 46t-50.5 68t-29 83q-23 -54 -50 -98t-64 -75.5t-87 -48.5t-117 -17zM504 127q63 0 114 53t87 160l61 181l-44 231q-12 65 -33.5 110.5t-49 74t-59.5 41.5t-65 13q-49 0 -94 -27.5t-80 -84.5q-38 -63 -57.5 -149t-19.5 -183q0 -104 21 -183 t55 -131.5t77 -79t87 -26.5z" />
-<glyph unicode="&#x3ad;" d="M756 1675h198l-325 -376h-154zM693 -22q-125 0 -222 24t-164.5 68.5t-102.5 108t-35 142.5q0 59 19.5 107t56 84t88 59.5t116.5 35.5q-120 25 -184 89t-64 160q0 67 31.5 120.5t90.5 91.5t143 58.5t189 20.5q158 0 368 -48v-167q-105 27 -191 39.5t-158 12.5 q-142 0 -216 -42.5t-74 -111.5q0 -68 71.5 -111t207.5 -43h166v-144h-159q-75 0 -134 -14t-100 -40t-62.5 -62.5t-21.5 -81.5q0 -91 90 -143.5t265 -52.5q99 0 189 17.5t168 51.5v-173q-97 -28 -187 -42t-184 -14z" />
-<glyph unicode="&#x3ae;" d="M756 1675h198l-325 -376h-154zM866 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-1120h-185v1120z" />
-<glyph unicode="&#x3af;" d="M756 1648h198l-325 -376h-154zM864 -8q-94 0 -159 25.5t-103 70.5q-41 49 -61.5 128t-20.5 182v579h-210v143h398v-733q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111z" />
-<glyph unicode="&#x3b0;" d="M766 1894h198l-325 -376h-154zM272 1326q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM749 1326q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM608 -6q-90 0 -155.5 23.5t-107.5 73t-62.5 126t-20.5 183.5l-1 571 h-210v143h399v-725q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10q75 0 130.5 40.5t94 108t60 155t29.5 180.5q1 14 1.5 27.5t0.5 27.5q0 47 -7.5 98t-25.5 104.5t-48.5 109.5t-76.5 113h186q70 -90 113.5 -209t43.5 -273q0 -75 -14.5 -151.5t-43.5 -147.5t-72 -132.5 t-101 -107.5t-130.5 -72.5t-159.5 -26.5z" />
-<glyph unicode="&#x3b1;" d="M508 -25q-101 0 -182 39t-138 113t-87.5 181t-30.5 244q0 153 36.5 265t98.5 184.5t143.5 108t171.5 35.5q68 0 126 -20t103 -59.5t75.5 -99.5t44.5 -139l99 293h164l-205 -607l40 -219q4 -24 17 -49t30 -44.5t35.5 -32t34.5 -12.5h88v-156h-110q-47 0 -86.5 17t-70 46 t-50.5 68t-29 83q-23 -54 -50 -98t-64 -75.5t-87 -48.5t-117 -17zM504 127q63 0 114 53t87 160l61 181l-44 231q-12 65 -33.5 110.5t-49 74t-59.5 41.5t-65 13q-49 0 -94 -27.5t-80 -84.5q-38 -63 -57.5 -149t-19.5 -183q0 -104 21 -183t55 -131.5t77 -79t87 -26.5z" />
-<glyph unicode="&#x3b2;" d="M152 1113q0 120 36 206.5t95 142.5t135 82.5t156 26.5q50 0 102 -10t100.5 -31.5t91.5 -54.5t75 -78.5t50.5 -103.5t18.5 -130q0 -53 -10.5 -106t-32 -100.5t-54 -85.5t-75.5 -61q65 -13 117.5 -50.5t89 -90.5t56.5 -118.5t20 -133.5q0 -94 -36.5 -174t-101 -138.5 t-153.5 -91.5t-194 -34q-37 0 -71.5 4.5t-70 15t-74.5 27.5t-85 43v-495h-185v1539zM337 342q20 -35 56 -65t81 -52t95.5 -34.5t100.5 -12.5q52 0 99.5 15t84 47t58 81.5t21.5 118.5q0 138 -96.5 205t-295.5 67q-21 0 -38 -0.5t-34 -1.5v170q88 -3 156 16t114 55.5 t69.5 88.5t23.5 114q0 65 -23.5 108.5t-59 70t-78.5 37.5t-82 11q-48 0 -93 -15.5t-80.5 -48.5t-57 -85t-21.5 -125v-765z" />
-<glyph unicode="&#x3b3;" d="M556 0l-302 836q-45 126 -139 126h-49v158h70q194 0 259 -176l255 -685l326 861h191l-421 -1120v-426h-190v426z" />
-<glyph unicode="&#x3b4;" d="M617 -29q-235 0 -357.5 149.5t-122.5 438.5q0 151 32.5 259t90.5 178q14 17 33 35.5t41 35.5q-8 3 -25 17.5t-34 31.5q-34 35 -48 72t-14 81q0 68 30 123.5t87.5 94.5t140 60.5t187.5 21.5q38 0 77 -3t64 -9l151 -36v-173q-66 24 -144 40t-159 14l-32 -1 q-35 -1 -67.5 -11t-65.5 -34l-39 -28q-27 -24 -27 -71q0 -32 15 -53.5t56 -42.5q18 -8 46 -10.5t83 -3.5q241 -7 360.5 -154t119.5 -432q0 -291 -122 -440.5t-357 -149.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5 t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x3b5;" d="M693 -22q-125 0 -222 24t-164.5 68.5t-102.5 108t-35 142.5q0 59 19.5 107t56 84t88 59.5t116.5 35.5q-120 25 -184 89t-64 160q0 67 31.5 120.5t90.5 91.5t143 58.5t189 20.5q158 0 368 -48v-167q-105 27 -191 39.5t-158 12.5q-142 0 -216 -42.5t-74 -111.5 q0 -68 71.5 -111t207.5 -43h166v-144h-159q-75 0 -134 -14t-100 -40t-62.5 -62.5t-21.5 -81.5q0 -91 90 -143.5t265 -52.5q99 0 189 17.5t168 51.5v-173q-97 -28 -187 -42t-184 -14z" />
-<glyph unicode="&#x3b6;" d="M738 -279q26 -2 51.5 4.5t46 22t33 40t12.5 58.5q0 48 -29 81t-92 44q-30 6 -86.5 12t-124 23t-137.5 48.5t-127.5 88.5t-94 143t-36.5 212q0 117 35 234.5t106 230t178 216.5t251 192h-532v185h870v-185q-362 -195 -544.5 -390t-182.5 -396q0 -27 3 -51q10 -94 35 -160 t58.5 -110t74.5 -70t84.5 -40t87 -19t82.5 -8q141 -11 218 -79t77 -192q0 -59 -19 -111t-58 -91t-99 -61.5t-141 -22.5v151z" />
-<glyph unicode="&#x3b7;" d="M866 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-1120h-185v1120z" />
-<glyph unicode="&#x3b8;" d="M616 -29q-117 0 -206 49.5t-150 146t-92 239t-31 329.5q0 186 31 329t92 240t150 146.5t206 49.5t206.5 -49.5t150 -146.5t92 -240t31.5 -330q0 -372 -123 -567.5t-357 -195.5zM899 828q-3 113 -21.5 207.5t-53 162.5t-86.5 106t-122 38t-121.5 -38t-86 -106t-53 -162.5 t-21.5 -207.5h565zM616 129q70 0 122 38.5t87 107t53 163t21 206.5h-565q3 -112 21 -206.5t52.5 -163t86.5 -107t122 -38.5z" />
-<glyph unicode="&#x3b9;" d="M864 -8q-94 0 -159 25.5t-103 70.5q-41 49 -61.5 128t-20.5 182v579h-210v143h398v-733q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111v0z" />
-<glyph unicode="&#x3ba;" d="M186 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
-<glyph unicode="&#x3bb;" d="M559 1074l-74 198q-25 67 -75 96.5t-126 29.5h-49v158l70 -2q133 -4 219 -45t118 -128l516 -1381h-195l-314 828l-386 -828h-195z" />
-<glyph unicode="&#x3bc;" d="M195 1120h184v-696q0 -143 59.5 -218t171.5 -75q128 0 192 84.5t64 251.5v653h185v-864q0 -60 16 -87.5t49 -27.5q7 0 24 5q13 4 42 18v-148q-38 -23 -72 -34t-68 -11q-125 0 -149 158q-46 -81 -112 -119.5t-156 -38.5q-93 0 -155.5 37.5t-107.5 118.5v-555h-167v1548z " />
-<glyph unicode="&#x3bd;" d="M116 1120h198l289 -940q63 64 117.5 137t95 145.5t64 139t23.5 119.5q0 24 -5.5 64t-16.5 85q-8 29 -18.5 57.5t-26 59t-37.5 63.5t-52 70h186q33 -44 62 -96.5t50 -107.5t33 -109t12 -100q0 -61 -21 -126.5t-55.5 -131.5t-79.5 -130t-93.5 -122t-97 -108.5t-89.5 -88.5 h-196z" />
-<glyph unicode="&#x3be;" d="M763 -279q31 -2 57.5 6t45.5 24.5t29.5 40t10.5 52.5q0 46 -29 82t-92 45q-28 4 -85 8t-126.5 15.5t-143 34.5t-133.5 65.5t-98.5 107t-38.5 160.5q0 71 23 137.5t66.5 123.5t105.5 101.5t140 71.5q-141 17 -210.5 93t-69.5 196q0 106 53.5 174.5t166.5 111.5h-208v185 h789v-185q-158 0 -275.5 -19t-196.5 -54.5t-118 -86.5t-39 -115q0 -56 30.5 -95t95 -65t164 -39.5t238.5 -16.5v-170q-147 -11 -254 -41t-176.5 -75t-103.5 -101t-34 -117q0 -53 22.5 -90.5t59 -63t83 -41.5t95 -26.5t95 -16.5t83.5 -11q82 -12 138.5 -34t91 -54.5t50 -76 t15.5 -99.5q0 -64 -19 -117.5t-58 -92.5t-99 -61t-141 -22v151z" />
-<glyph unicode="&#x3bf;" d="M616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5 q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x3c0;" d="M1037 -39q-114 0 -160 66q-23 32 -34.5 90t-11.5 151v684h-428v-952h-180v952h-143v148h1073v-148h-141v-704q0 -35 5.5 -60.5t19.5 -42.5q12 -16 30 -24t45 -8q18 0 41 3q10 1 14.5 1.5t6.5 0.5h3.5t4.5 1v-133q-32 -13 -72 -19q-38 -6 -73 -6z" />
-<glyph unicode="&#x3c1;" d="M180 540q0 158 31 272.5t89.5 189t142.5 110t190 35.5q116 0 203.5 -40.5t145.5 -116.5t87 -184t29 -244q0 -140 -30 -250t-86 -185.5t-136 -115.5t-180 -40q-105 0 -180.5 43t-120.5 127v-567h-185v966zM637 127q134 0 201 108.5t67 323.5t-67 323.5t-201 108.5 q-135 0 -203.5 -109t-68.5 -323t68.5 -323t203.5 -109z" />
-<glyph unicode="&#x3c2;" d="M696 -279q31 -2 57 6t45 24t30 40t11 54q0 44 -27 79.5t-94 46.5q-27 4 -78.5 9.5t-113 22.5t-125.5 52t-116.5 97.5t-86 158.5t-33.5 236q0 143 37.5 255t108 188.5t171.5 116.5t229 40q88 0 164 -20.5t156 -65.5v-193q-69 62 -142 92.5t-166 30.5q-179 0 -271.5 -112.5 t-92.5 -321.5q0 -101 20 -172t52 -118.5t72 -74.5t80 -41t75.5 -18.5t59.5 -5.5q148 -10 221.5 -84t73.5 -189q0 -59 -19 -110.5t-58 -90t-99 -61t-141 -22.5v151z" />
-<glyph unicode="&#x3c3;" d="M589 -29q-111 0 -198 38t-147.5 112t-92.5 182.5t-32 250.5q0 135 29.5 240.5t89.5 177.5t150 110t210 38h515v-184h-241q206 -162 206 -443q0 -114 -34 -210t-97 -165.5t-153.5 -108t-204.5 -38.5zM594 127q72 0 126 29t90.5 79t54.5 117.5t18 145.5q0 123 -43.5 215.5 t-128.5 156.5q-28 21 -59 38t-61 27q-68 0 -119.5 -19t-86.5 -62.5t-53 -115.5t-18 -178q0 -216 71.5 -324.5t208.5 -108.5z" />
-<glyph unicode="&#x3c4;" d="M864 0q-90 0 -155 23.5t-107 73t-62 126.5t-20 183v530h-360v182h914v-182h-366v-541q0 -145 34 -191q36 -48 144 -48h89v-156h-111v0z" />
-<glyph unicode="&#x3c5;" d="M595 0q-83 0 -145.5 23.5t-104 73t-62.5 126t-21 183.5l-1 571h-210v143h399v-725q0 -63 6.5 -108t23.5 -74.5t47 -43t77 -13.5q85 0 146.5 39.5t102 106.5t62 154.5t27.5 183.5q1 12 1.5 27t0.5 31q0 45 -7.5 95.5t-25.5 104t-48.5 109.5t-76.5 113h186 q73 -94 115 -214.5t42 -260.5q0 -77 -14 -154.5t-42 -149t-71.5 -134t-103 -108.5t-135 -72.5t-168.5 -26.5z" />
-<glyph unicode="&#x3c6;" d="M525 -25q-99 0 -182 39t-142 114.5t-92 186.5t-33 255q0 142 31 242.5t84 166t122.5 101t146.5 48.5v-163q-64 -25 -114 -101q-38 -58 -57 -133.5t-19 -173.5q0 -107 21 -185.5t56 -130.5t81 -77t97 -25v687q0 152 62.5 227t175.5 75q74 0 144.5 -33.5t126 -102.5 t89.5 -175.5t34 -251.5q0 -144 -34 -254t-94 -184.5t-142.5 -112.5t-178.5 -38v-402h-183v401zM708 140q46 0 91.5 23.5t82 74.5t59 133t22.5 199q0 112 -21 186.5t-56 124.5q-31 44 -64 67t-55 23q-26 0 -42.5 -36.5t-16.5 -108.5v-686z" />
-<glyph unicode="&#x3c7;" d="M524 351l-183 485q-47 126 -203 126h-49v158h70q126 0 207.5 -43t115.5 -133l143 -380l266 556h191l-373 -780l182 -482q46 -126 204 -126h49v-158h-70q-126 0 -208 43t-116 133l-142 378l-265 -554h-191z" />
-<glyph unicode="&#x3c8;" d="M525 -25q-72 0 -142.5 37.5t-126.5 103.5t-90.5 157t-34.5 199v648h185v-641q0 -89 21.5 -149t62.5 -104q27 -29 59.5 -51.5t65.5 -34.5v980h183v-980q29 10 62.5 32t62.5 54q41 44 62.5 104t21.5 149v641h185v-648q0 -108 -34.5 -199t-90.5 -157t-126.5 -103.5 t-142.5 -37.5v-401h-183v401z" />
-<glyph unicode="&#x3c9;" d="M369 -29q-83 0 -140.5 38.5t-92.5 111t-50.5 176t-15.5 234.5q0 87 7 161.5t22.5 144t40.5 138.5t61 145h190q-34 -77 -58 -147.5t-39 -142.5t-22 -149.5t-7 -168.5q0 -193 30 -289t95 -96q37 0 69.5 29.5t47.5 83.5q6 22 10.5 57.5t8 90.5t5 131.5t1.5 179.5h170 q0 -106 1.5 -181.5t4.5 -129t8 -88.5t12 -59q14 -53 42 -83.5t62 -30.5q22 0 41 12.5t34 32.5t26.5 45.5t18.5 52.5q3 14 6.5 33t5.5 48t3.5 71.5t1.5 103.5v32q0 287 -126 562h190q36 -76 61 -145t40.5 -138.5t22.5 -144t7 -161.5q0 -131 -15.5 -234.5t-51 -176t-92.5 -111 t-140 -38.5q-51 0 -92.5 14t-72 38.5t-51.5 57t-32 69.5q-11 -37 -32 -69.5t-52 -57t-72 -38.5t-92 -14z" />
-<glyph unicode="&#x3ca;" d="M349 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM864 -8q-94 0 -159 25.5t-103 70.5q-41 49 -61.5 128t-20.5 182v579h-210v143h398v-733 q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111z" />
-<glyph unicode="&#x3cb;" d="M349 1322q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1322q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM595 0q-83 0 -145.5 23.5t-104 73t-62.5 126t-21 183.5l-1 571h-210v143h399v-725q0 -63 6.5 -108 t23.5 -74.5t47 -43t77 -13.5q85 0 146.5 39.5t102 106.5t62 154.5t27.5 183.5q1 12 1.5 27t0.5 31q0 45 -7.5 95.5t-25.5 104t-48.5 109.5t-76.5 113h186q73 -94 115 -214.5t42 -260.5q0 -77 -14 -154.5t-42 -149t-71.5 -134t-103 -108.5t-135 -72.5t-168.5 -26.5z" />
-<glyph unicode="&#x3cc;" d="M756 1675h198l-325 -376h-154zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5 q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x3cd;" d="M756 1648h198l-325 -376h-154zM595 0q-83 0 -145.5 23.5t-104 73t-62.5 126t-21 183.5l-1 571h-210v143h399v-725q0 -63 6.5 -108t23.5 -74.5t47 -43t77 -13.5q85 0 146.5 39.5t102 106.5t62 154.5t27.5 183.5q1 12 1.5 27t0.5 31q0 45 -7.5 95.5t-25.5 104t-48.5 109.5 t-76.5 113h186q73 -94 115 -214.5t42 -260.5q0 -77 -14 -154.5t-42 -149t-71.5 -134t-103 -108.5t-135 -72.5t-168.5 -26.5z" />
-<glyph unicode="&#x3ce;" d="M756 1648h198l-325 -376h-154zM369 -29q-83 0 -140.5 38.5t-92.5 111t-50.5 176t-15.5 234.5q0 87 7 161.5t22.5 144t40.5 138.5t61 145h190q-34 -77 -58 -147.5t-39 -142.5t-22 -149.5t-7 -168.5q0 -193 30 -289t95 -96q37 0 69.5 29.5t47.5 83.5q6 22 10.5 57.5t8 90.5 t5 131.5t1.5 179.5h170q0 -106 1.5 -181.5t4.5 -129t8 -88.5t12 -59q14 -53 42 -83.5t62 -30.5q22 0 41 12.5t34 32.5t26.5 45.5t18.5 52.5q3 14 6.5 33t5.5 48t3.5 71.5t1.5 103.5v32q0 287 -126 562h190q36 -76 61 -145t40.5 -138.5t22.5 -144t7 -161.5 q0 -131 -15.5 -234.5t-51 -176t-92.5 -111t-140 -38.5q-51 0 -92.5 14t-72 38.5t-51.5 57t-32 69.5q-11 -37 -32 -69.5t-52 -57t-72 -38.5t-92 -14z" />
-<glyph unicode="&#x3f4;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM902 881q-6 111 -22.5 199.5t-49.5 149.5t-85 93.5t-129 32.5q-78 0 -130 -33.5t-84.5 -95t-48.5 -149.5t-22 -197h571zM617 135q76 0 130 33.5 t88.5 104t51 179.5t18.5 259h-577q1 -150 17.5 -258.5t51 -179t89 -104.5t131.5 -34z" />
-<glyph unicode="&#x3f6;" d="M450 -29q-52 0 -107 5.5t-102 16.5l-79 18v167l74 -25q38 -13 90 -19.5t103 -6.5q98 0 171 24.5t122.5 70.5t78 113t38.5 152h-677v144h677q-9 84 -37.5 150.5t-78 113t-121 71.5t-165.5 25q-54 0 -106 -7.5t-95 -18.5q-15 -4 -35 -10t-39 -13v163q13 4 23 7t18.5 5 t17.5 4t20 4q57 11 108 16.5t100 5.5q136 0 244.5 -40t184 -116t115.5 -184.5t40 -246.5t-40.5 -247.5t-116 -185.5t-183.5 -116t-243 -40z" />
-<glyph unicode="&#x400;" d="M377 1852h184l197 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x401;" d="M405 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM797 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x402;" d="M658 -470h-24t-24.5 0.5t-20.5 1t-13 0.5l-3 181l78 -17q7 -1 14 -1.5t22 -0.5q67 0 114 17t76 57.5t42 108.5t13 169v416q0 154 -54 223.5t-172 69.5q-50 0 -96 -11t-90 -31q-23 -11 -38.5 -21.5t-29.5 -27.5q-33 -40 -51 -109.5t-18 -153.5v-401h-203v1325h-226v170 h874v-170h-445v-525q22 25 40.5 38.5t44.5 27.5q7 4 11.5 6t9 4.5t10.5 5.5t17 10q62 36 213 47q13 1 23.5 1.5t24.5 0.5q78 0 141.5 -21t106.5 -63q9 -8 16 -16.5t9 -12.5q85 -112 85 -340v-442q0 -143 -25.5 -241t-82.5 -159.5t-148 -88.5t-221 -27z" />
-<glyph unicode="&#x403;" d="M744 1852h186l-229 -264h-154zM215 1493h924v-170h-721v-1323h-203v1493z" />
-<glyph unicode="&#x404;" d="M733 -29q-144 0 -256 52t-189.5 151t-118 242.5t-40.5 326.5q0 184 41 328.5t118.5 244t189.5 152t255 52.5q176 0 330 -82v-207q-152 125 -339 125q-96 0 -163 -34t-111 -100t-68.5 -164t-36.5 -227h627v-170h-632q2 -113 26.5 -209.5t72.5 -167t120.5 -110t171.5 -39.5 q88 0 173 31.5t159 93.5v-207q-154 -82 -330 -82z" />
-<glyph unicode="&#x405;" d="M586 -29q-110 0 -215 22.5t-213 67.5v215q115 -73 217 -107t208 -34q153 0 237.5 67.5t84.5 202.5q0 50 -13.5 89.5t-44 70t-81 53t-123.5 39.5l-108 25q-105 24 -180 59.5t-123 84t-70.5 111t-22.5 140.5q0 101 35 183t99.5 139.5t155.5 89t202 31.5q171 0 381 -78v-205 q-185 119 -372 119q-71 0 -128 -17t-97 -49t-61.5 -80t-21.5 -109q0 -45 13 -80t43 -63t79.5 -49t122.5 -37l106 -24q106 -24 182 -62.5t125 -92.5t72 -124.5t23 -157.5q0 -215 -132 -327.5t-380 -112.5z" />
-<glyph unicode="&#x406;" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x407;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x408;" d="M506 -29q-50 0 -97.5 5t-95.5 15.5t-98.5 28t-105.5 41.5v236q92 -81 187.5 -121.5t207.5 -40.5q69 0 117 17.5t77.5 58t42.5 108t13 168.5v836h-381v170h583v-1006q0 -139 -25 -237t-79.5 -160t-140 -90.5t-205.5 -28.5z" />
-<glyph unicode="&#x409;" d="M0 164q71 0 117.5 16t75.5 56t43.5 108t20.5 172q3 46 4.5 109t3 136t2 151t0.5 155v426h544v-600h21q72 0 143.5 -28.5t129 -84.5t93 -139.5t35.5 -193.5t-36 -193.5t-93 -140t-128.5 -85t-143.5 -28.5h-207v1323h-172v-250v-160q0 -140 -3 -261.5t-16 -222.5 t-38 -179.5t-68 -130.5q-49 -59 -129.5 -89t-198.5 -30v164zM832 166q45 0 84 18t68.5 53t46 87t16.5 120q0 67 -16 119.5t-44.5 89t-68 55.5t-86.5 19h-21v-561h21z" />
-<glyph unicode="&#x40a;" d="M44 1493h186v-612h395v612h186v-600h21q90 0 163.5 -27t126.5 -80.5t82 -133.5t29 -186q0 -121 -36 -209t-93 -145t-128.5 -84.5t-143.5 -27.5h-207v711h-395v-711h-186v1493zM832 166q45 0 84 17.5t68.5 52.5t46 87t16.5 121q0 66 -15.5 118.5t-44 89t-68 56t-87.5 19.5 h-21v-561h21z" />
-<glyph unicode="&#x40b;" d="M180 1325h-216v170h864v-170h-445v-525q22 25 40.5 38.5t44.5 27.5q7 4 11.5 6t9 4.5t10.5 5.5t17 10q62 36 213 47q13 1 23.5 1.5t24.5 0.5q78 0 141.5 -21t106.5 -63q9 -8 16 -16.5t9 -12.5q85 -112 85 -340v-488h-203v462q0 154 -54 223.5t-172 69.5q-50 0 -96 -11 t-90 -31q-23 -11 -38.5 -21.5t-29.5 -27.5q-33 -40 -51 -109.5t-18 -153.5v-401h-203v1325z" />
-<glyph unicode="&#x40c;" d="M699 1851h186l-229 -264h-154zM137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
-<glyph unicode="&#x40d;" d="M377 1851h184l197 -264h-154zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
-<glyph unicode="&#x40e;" d="M636 1609q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148 t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
-<glyph unicode="&#x40f;" d="M531 0h-394v1493h203v-1323h553v1323h203v-1493h-394v-322h-171v322z" />
-<glyph unicode="&#x410;" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x411;" d="M166 1493h902v-166h-699v-450h235q379 -15 480 -206q28 -53 40.5 -120t12.5 -132q0 -211 -130 -315t-399 -104h-442v1493zM608 166q88 0 150 15t101 46.5t57 81.5t18 120q0 147 -78.5 215.5t-247.5 68.5h-239v-547h239z" />
-<glyph unicode="&#x412;" d="M166 1493h442q114 0 203 -25t150 -74t92.5 -120t31.5 -164q0 -134 -65.5 -212.5t-196.5 -98.5q73 -11 131 -42.5t98.5 -82t62.5 -118t22 -149.5q0 -201 -132 -304t-397 -103h-442v1493zM604 877q144 0 210.5 55.5t66.5 177.5q0 58 -15 99t-48.5 67.5t-86 38.5t-127.5 12 h-235v-450h235zM608 166q88 0 150 15t101 46.5t57 81.5t18 120q0 147 -78.5 215.5t-247.5 68.5h-239v-547h239z" />
-<glyph unicode="&#x413;" d="M215 1493h924v-170h-721v-1323h-203v1493z" />
-<glyph unicode="&#x414;" d="M33 170h77q16 0 31 38.5t28 104t23.5 151.5t18.5 181t12 193.5t4 188.5v466h852v-1323h121v-492h-170v322h-827v-322h-170v492zM876 170v1153h-446v-297q0 -75 -4 -163t-10 -176.5t-13.5 -171.5t-14 -148.5t-11.5 -106.5t-7 -46q-6 -14 -6 -22q0 -22 47 -22h465z" />
-<glyph unicode="&#x415;" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x416;" d="M319 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l304 -891h-197l-222 650l-89 -186v-464h-187v464l-89 186l-222 -650h-197z" />
-<glyph unicode="&#x417;" d="M553 -29q-99 0 -206 19t-210 55v201q103 -54 201 -79.5t194 -25.5q169 0 258 74.5t89 210.5q0 68 -23 122t-66 91t-104 56.5t-137 19.5h-154v166h154q140 0 217.5 60.5t77.5 176.5q0 111 -73 171.5t-214 60.5q-76 0 -171.5 -19t-203.5 -61v186q121 32 215 48t172 16 q106 0 194 -28.5t150 -81t96.5 -125.5t34.5 -163q0 -126 -68 -207.5t-200 -115.5q148 -39 225.5 -138t77.5 -251q0 -102 -35.5 -183.5t-103 -138.5t-165.5 -87t-222 -30z" />
-<glyph unicode="&#x418;" d="M139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
-<glyph unicode="&#x419;" d="M616 1609q-290 0 -313 242h119q12 -54 62 -82.5t132 -28.5q165 0 195 111h119q-11 -120 -90 -181t-224 -61zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
-<glyph unicode="&#x41a;" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
-<glyph unicode="&#x41b;" d="M14 164q71 0 119 16t79 56t46.5 108t21.5 172q3 46 4.5 109t3 136t2 151t0.5 155v426h814v-1493h-203v1323h-408v-250v-185q0 -128 -3 -245t-15.5 -217t-37.5 -178.5t-68 -128.5q-102 -119 -355 -119v164z" />
-<glyph unicode="&#x41c;" d="M86 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
-<glyph unicode="&#x41d;" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
-<glyph unicode="&#x41e;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141 z" />
-<glyph unicode="&#x41f;" d="M137 1493h959v-1493h-203v1323h-553v-1323h-203v1493z" />
-<glyph unicode="&#x420;" d="M197 1493h436q251 0 379.5 -112.5t128.5 -334.5q0 -221 -127.5 -333.5t-380.5 -112.5h-234v-600h-202v1493zM633 766q141 0 219 73.5t78 207.5t-77.5 207t-219.5 73h-234v-561h234z" />
-<glyph unicode="&#x421;" d="M298 1315q159 205 453 205q43 0 99 -7h4q12 0 12 13v224q0 10 10 10h187q10 0 10 -10v-519q-152 125 -332 125q-391 0 -391 -611q0 -610 390 -610q90 0 175 32t158 93v-207q-152 -82 -328 -82q-144 0 -256.5 51.5t-190.5 151.5q-159 203 -159 569q0 367 159 572z" />
-<glyph unicode="&#x422;" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
-<glyph unicode="&#x423;" d="M204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
-<glyph unicode="&#x424;" d="M515 152q-129 6 -215.5 55.5t-138.5 132t-73.5 193.5t-21.5 239q0 127 21.5 235t73 187.5t138 126t216.5 50.5v122h203v-122q135 -5 222 -53.5t137.5 -129.5t70 -190.5t19.5 -235.5q0 -134 -21 -244t-72.5 -189.5t-138 -125.5t-217.5 -51v-152h-203v152zM515 1207 q-83 -13 -130.5 -47t-71.5 -89.5t-30 -132.5t-6 -177t6 -177t30 -132t71.5 -89t130.5 -47v891zM718 316q82 13 129.5 47t71.5 89t30.5 132t6.5 177t-6.5 177t-30.5 132.5t-71.5 89.5t-129.5 47v-891z" />
-<glyph unicode="&#x425;" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
-<glyph unicode="&#x426;" d="M1023 0h-923v1493h203v-1323h553v1323h203v-1323h134v-492h-170v322z" />
-<glyph unicode="&#x427;" d="M889 658q-52 -26 -95.5 -42t-84 -24.5t-80.5 -11.5t-85 -3q-55 0 -107 4.5t-97 19.5t-82.5 42t-64 71.5t-41.5 109.5t-15 156v513h203v-487q0 -84 14.5 -132.5t44.5 -73t76.5 -31t111.5 -6.5q46 0 82.5 3t71 13t70 29.5t78.5 52.5v632h203v-1493h-203v658z" />
-<glyph unicode="&#x428;" d="M114 1493h186v-1323h224v1323h186v-1323h224v1323h186v-1493h-1006v1493z" />
-<glyph unicode="&#x429;" d="M1063 0h-970v1493h186v-1323h224v1323h186v-1323h224v1323h186v-1323h134v-492h-170v322z" />
-<glyph unicode="&#x42a;" d="M313 1323h-261v170h463v-600h138q253 0 380.5 -112.5t127.5 -333.5q0 -222 -128.5 -334.5t-379.5 -112.5h-340v1323zM653 166q142 0 219.5 73t77.5 207t-78 207.5t-219 73.5h-138v-561h138z" />
-<glyph unicode="&#x42b;" d="M65 1493h202v-600h91q97 0 179.5 -28.5t143 -84.5t94.5 -139.5t34 -193.5t-34.5 -194t-95 -140t-143 -84.5t-178.5 -28.5h-293v1493zM931 1493h203v-1493h-203v1493zM358 166q51 0 95 15.5t76 49.5t50.5 87t18.5 128q0 134 -60 207.5t-180 73.5h-91v-561h91z" />
-<glyph unicode="&#x42c;" d="M197 1493h202v-600h234q253 0 380.5 -112.5t127.5 -333.5q0 -222 -128.5 -334.5t-379.5 -112.5h-436v1493zM633 166q142 0 219.5 73t77.5 207t-78 207.5t-219 73.5h-234v-561h234z" />
-<glyph unicode="&#x42d;" d="M499 -29q-176 0 -330 82v207q75 -63 161 -94t171 -31q98 0 170 38.5t120 108t73 166.5t28 213h-632v170h627q-15 138 -41 237.5t-69.5 163t-108.5 94t-158 30.5q-97 0 -181 -31t-160 -94v207q154 82 330 82q142 0 254.5 -52.5t190 -152t118.5 -244t41 -328.5 q0 -183 -40.5 -326.5t-118 -242.5t-189.5 -151t-256 -52z" />
-<glyph unicode="&#x42e;" d="M792 -29q-100 0 -172.5 45.5t-121 133.5t-74 217.5t-30.5 298.5h-111v-666h-203v1493h203v-657h111q5 162 30 289t73.5 214.5t121.5 134t174 46.5q202 0 301 -192t99 -583t-99.5 -582.5t-301.5 -191.5zM794 135q55 0 92 35t61 106q24 70 36 184t12 285t-12 285t-36 185 q-23 69 -60 105t-94 36q-107 0 -154 -141q-48 -141 -48 -470q0 -328 48 -469q47 -141 155 -141z" />
-<glyph unicode="&#x42f;" d="M415 666q-54 20 -105.5 50.5t-91.5 77.5t-64.5 113.5t-24.5 157.5q0 103 33 182.5t97.5 134t159.5 83t218 28.5h466v-1493h-203v631h-290l-350 -631h-214zM900 797v530h-263q-144 0 -219.5 -67.5t-75.5 -203.5q0 -259 287 -259h271z" />
-<glyph unicode="&#x430;" d="M513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5 q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106 q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#x431;" d="M617 -29q-116 0 -205.5 37.5t-150.5 109.5t-92.5 176.5t-31.5 237.5q0 28 0.5 39.5t0.5 22.5v11.5t-1 15.5l-7 167q-2 56 -3.5 100.5t-1.5 65.5q0 14 0.5 28t1.5 22q8 71 29 143.5t58 137.5t92.5 120t133.5 92q86 41 189 54.5t224 21.5q26 2 44 4.5t42 13.5l70 -142 q-19 -8 -40.5 -12t-45.5 -6l-240 -24q-44 -5 -86 -17t-86 -35q-45 -24 -83 -56t-66.5 -68t-46 -73.5t-22.5 -73.5l-8 -60q63 65 150.5 94t184.5 29q115 0 203.5 -38t149 -112.5t92 -184.5t31.5 -254q0 -143 -31.5 -252.5t-92 -184t-150 -112.5t-205.5 -38zM618 127 q283 0 283 432t-284 432q-285 0 -285 -430q0 -215 71 -324.5t215 -109.5z" />
-<glyph unicode="&#x432;" d="M239 1120h397q76 0 143.5 -17t118 -52.5t79.5 -88.5t29 -125q0 -44 -12 -84.5t-36 -72.5t-60.5 -53t-85.5 -27q67 -12 113 -35.5t74.5 -58t41.5 -79t13 -98.5q0 -162 -103.5 -245.5t-298.5 -83.5h-413v1120zM651 665q85 0 127 42.5t42 109.5t-42 110t-128 43h-227v-305 h228zM662 150q48 0 84.5 14.5t61 41t37.5 62.5t13 79q0 37 -10.5 68t-33 53.5t-59.5 34.5t-89 12h-243v-365h239z" />
-<glyph unicode="&#x433;" d="M307 1120h752v-150h-568v-970h-184v1120z" />
-<glyph unicode="&#x434;" d="M105 150h67q18 0 31.5 32t23.5 82.5t16 113t9.5 124t5 115.5t1.5 87v416h748v-970h121v-436h-150v286h-723v-286h-150v436zM822 150v820h-380v-270q0 -30 -4.5 -119.5t-14.5 -227.5q-5 -73 -8.5 -111.5t-7.5 -48.5q-7 -18 -7 -27q0 -8 6 -12t28 -4h388z" />
-<glyph unicode="&#x435;" d="M677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5 t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
-<glyph unicode="&#x436;" d="M318 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l259 -716h-179l-191 528l-104 -177v-351h-168v351l-104 177l-191 -528h-179z" />
-<glyph unicode="&#x437;" d="M539 -22q-90 0 -178.5 13.5t-191.5 42.5v173q76 -34 167 -51.5t190 -17.5q175 0 265 52.5t90 143.5q0 45 -22 81.5t-63 62.5t-100 40t-134 14h-158v144h165q137 0 208.5 43t71.5 111q0 69 -74.5 111.5t-216.5 42.5q-71 0 -157 -12.5t-191 -39.5v167q210 48 367 48 q105 0 189 -20.5t143.5 -58.5t91 -91.5t31.5 -120.5q0 -96 -64.5 -160t-184.5 -89q64 -12 116 -35.5t89 -59.5t56.5 -84t19.5 -107q0 -79 -35.5 -142.5t-102.5 -108t-165 -68.5t-222 -24z" />
-<glyph unicode="&#x438;" d="M195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
-<glyph unicode="&#x439;" d="M616 1272q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
-<glyph unicode="&#x43a;" d="M236 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
-<glyph unicode="&#x43b;" d="M50 150h35q45 0 78 14.5t56 46t36.5 80.5t19.5 117q2 26 4 61.5t3.5 77t2 86.5t0.5 89v398h785v-1120h-184v970h-417v-245q0 -80 -1.5 -164.5t-11 -165t-30.5 -152.5t-59 -126q-41 -58 -102.5 -87.5t-159.5 -29.5h-55v150z" />
-<glyph unicode="&#x43c;" d="M61 1120h184l375 -691l375 691h184v-1120h-184v741l-283 -481h-184l-283 481v-741h-184v1120z" />
-<glyph unicode="&#x43d;" d="M189 1120h184v-455h487v455h184v-1120h-184v515h-487v-515h-184v1120z" />
-<glyph unicode="&#x43e;" d="M616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5 q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x43f;" d="M189 1120h855v-1120h-184v970h-487v-970h-184v1120z" />
-<glyph unicode="&#x440;" d="M190 1120h167l18 -143q48 86 124.5 128t177.5 42q100 0 179.5 -40.5t135.5 -116.5t86 -185t30 -247t-30 -246.5t-86 -184.5t-136 -116t-180 -40q-105 0 -180.5 43t-120.5 127v-567h-185v1546zM647 127q134 0 201 108.5t67 323.5t-67 323.5t-201 108.5q-135 0 -203.5 -109 t-68.5 -323t68.5 -323t203.5 -109z" />
-<glyph unicode="&#x441;" d="M302 991q147 156 404 156q28 0 53 -2.5t53 -6.5h4q12 0 12 13v177q0 10 10 10h173q10 0 10 -10v-460q-71 64 -145 93.5t-163 29.5q-178 0 -271 -111.5t-93 -320.5t93.5 -320.5t271.5 -111.5q180 0 307 121v-191q-80 -45 -157 -65.5t-163 -20.5q-125 0 -226 40t-173 116 t-109.5 185.5t-37.5 246.5t37.5 246.5t109.5 185.5z" />
-<glyph unicode="&#x442;" d="M525 970h-311v150h806v-150h-311v-970h-184v970z" />
-<glyph unicode="&#x443;" d="M194 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47 q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
-<glyph unicode="&#x444;" d="M525 -29q-110 11 -189.5 48t-131 107t-76 177t-24.5 257q0 149 24 255t75.5 176.5t131 107.5t190.5 48v409h184v-409q111 -11 190.5 -48t131 -107.5t75.5 -176.5t24 -255q0 -150 -24.5 -257t-76 -177t-131 -107t-189.5 -48v-397h-184v397zM525 982q-60 -12 -103 -34 t-70 -67.5t-40 -122t-13 -199.5t13 -201t40 -125.5t70 -70.5t103 -35v855zM709 127q60 12 103 35t70 70.5t40 125.5t13 201t-13 199.5t-40 122t-70 67.5t-103 34v-855z" />
-<glyph unicode="&#x445;" d="M516 584l-401 536h204l297 -405l295 405h207l-401 -536l440 -584h-213l-328 449l-327 -449h-213z" />
-<glyph unicode="&#x446;" d="M1028 0h-844v1120h184v-970h486v970h184v-970h140v-436h-150v286z" />
-<glyph unicode="&#x447;" d="M837 466q-8 -3 -33 -13.5t-64.5 -21.5t-92.5 -20t-116 -9q-84 0 -152 19.5t-115.5 62t-73 109.5t-25.5 162v367h184v-367q0 -65 19.5 -103t53 -58t77 -26t91.5 -6q69 0 127 11.5t120 47.5v501h184v-1122h-184v466z" />
-<glyph unicode="&#x448;" d="M125 1120h168v-970h240v970h168v-970h240v970h168v-1120h-984v1120z" />
-<glyph unicode="&#x449;" d="M1083 0h-978v1120h168v-970h240v970h168v-970h240v970h168v-970h144v-436h-150v286z" />
-<glyph unicode="&#x44a;" d="M308 970h-248v150h432v-453h256q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82h-440v970zM740 156q124 0 191 43.5t67 133.5q0 91 -68 136t-190 45h-248v-358h248z" />
-<glyph unicode="&#x44b;" d="M104 1120h182v-453h91q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82h-273v1120zM945 1120h184v-1120h-184v1120zM369 154q124 0 191 44t67 135q0 92 -68 137.5t-190 45.5h-83v-362h83z" />
-<glyph unicode="&#x44c;" d="M225 1120h184v-453h256q104 0 186.5 -20.5t140 -62.5t88 -105.5t30.5 -148.5q0 -166 -115.5 -248t-329.5 -82h-440v1120zM657 153q257 0 257 180q0 94 -64.5 137.5t-192.5 43.5h-248v-361h248z" />
-<glyph unicode="&#x44d;" d="M545 -29q-85 0 -162 20t-158 66v191q62 -60 138 -90.5t170 -30.5q90 0 156 28t110.5 79t68 123t28.5 159h-542v144h537q-9 66 -32 126t-65 105.5t-106 72.5t-154 27q-91 0 -165 -30t-144 -93v193q82 46 158.5 66t160.5 20q127 0 228 -40t172 -116t109 -185t38 -247 t-38 -247t-109 -185t-172 -116t-227 -40z" />
-<glyph unicode="&#x44e;" d="M828 -29q-78 0 -145 35.5t-117 101.5t-82 161t-40 215h-142v-484h-184v1120h184v-486h142q8 127 40 223t82 160.5t115.5 97t142.5 32.5q80 0 150 -36t122 -109t82 -184t30 -260q0 -153 -31 -263.5t-83.5 -182.5t-121.5 -106.5t-144 -34.5zM689 243q27 -59 62.5 -88 t73.5 -29q39 0 75.5 31.5t62.5 94.5q23 57 36.5 139t13.5 183q0 198 -56 308q-26 53 -60 80.5t-70 27.5q-38 0 -72.5 -30.5t-62.5 -91.5q-27 -60 -41.5 -139.5t-14.5 -177.5t14 -176t39 -132z" />
-<glyph unicode="&#x44f;" d="M450 479q-25 10 -63 30t-73.5 56t-61 91.5t-25.5 138.5q0 86 29.5 147.5t80.5 101t118 58t142 18.5h397v-1120h-184v455h-193l-258 -455h-181zM810 605v365h-227q-28 0 -58 -10.5t-55 -32.5t-41 -57t-16 -83t16 -82.5t41 -56.5t55 -32.5t57 -10.5h228z" />
-<glyph unicode="&#x450;" d="M250 1673h198l281 -376h-154zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85 v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
-<glyph unicode="&#x451;" d="M385 1347q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM777 1347q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5 q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
-<glyph unicode="&#x452;" d="M661 -261q60 11 113.5 53t93.5 113.5t63.5 171.5t23.5 227q0 76 -10.5 134t-36 97.5t-68.5 59.5t-109 20q-144 0 -213 -91t-69 -263v-261h-184v977h-190v143h190v436h184v-436h448v-143h-448v-397q49 97 133 146t206 49q186 0 273 -119t87 -360q0 -146 -31 -269 t-92 -216.5t-152 -154t-212 -82.5v165z" />
-<glyph unicode="&#x453;" d="M887 1645h198l-325 -376h-154zM307 1120h752v-150h-568v-970h-184v1120z" />
-<glyph unicode="&#x454;" d="M711 -29q-126 0 -227 40t-172 116t-109 185t-38 247t38 247t109 185t172 116t228 40q84 0 160 -20t159 -66v-193q-68 61 -141 92t-168 31q-91 0 -154.5 -27t-105.5 -72.5t-65 -105.5t-32 -127l537 1v-144h-542q5 -87 28.5 -159t68 -123t110.5 -79t156 -28q94 0 170 30.5 t138 90.5v-191q-81 -46 -158 -66t-162 -20z" />
-<glyph unicode="&#x455;" d="M587 -29q-87 0 -177.5 17.5t-196.5 52.5v190q205 -106 375 -106q61 0 108.5 13t80.5 37t50 57t17 73q0 34 -13.5 62t-42.5 50.5t-76 40.5t-113 32l-8 2l-69 14q-82 16 -140 42.5t-94.5 64t-53.5 86.5t-17 111q0 163 108 250t314 87q173 0 334 -66v-180q-81 46 -159.5 69 t-168.5 23q-242 0 -242 -165q0 -35 11.5 -64t34.5 -47q26 -20 83.5 -37.5t145.5 -34.5l74 -14q138 -26 208 -103.5t70 -203.5q0 -83 -30.5 -148.5t-87.5 -111t-139.5 -69.5t-185.5 -24z" />
-<glyph unicode="&#x456;" d="M495 1323q-32 0 -32 30v173q0 30 32 30h130q32 0 32 -30v-173q0 -30 -32 -30h-130zM657 398q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722z" />
-<glyph unicode="&#x457;" d="M258 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM650 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM657 398q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233q-80 0 -143.5 25t-111.5 81 q-91 106 -91 300v578h-245v144h429v-722z" />
-<glyph unicode="&#x458;" d="M674 1323q-32 0 -32 30v173q0 30 32 30h130q32 0 32 -30v-173q0 -30 -32 -30h-130zM238 -270h234q180 0 180 250v997h-317v143h501v-1140q0 -196 -89 -301t-255 -105h-254v156z" />
-<glyph unicode="&#x459;" d="M16 150h35q45 0 78 14.5t56 46t36.5 80.5t19.5 117q2 26 4 61.5t3.5 77t2 86.5t0.5 89v398h565v-453h21q79 0 151 -20.5t126.5 -62.5t86.5 -105t32 -148q0 -83 -31 -145.5t-85 -103.5t-126 -61.5t-154 -20.5h-189v970h-229v-245v-69q0 -59 -2.5 -132.5t-13.5 -149 t-33 -146.5t-60 -123q-17 -23 -38 -42t-51 -33t-70.5 -22t-95.5 -8h-39v150zM829 153q208 0 208 181q0 180 -208 180h-13v-361h13z" />
-<glyph unicode="&#x45a;" d="M106 1120h168v-455h364v455h168v-453h21q79 0 151 -20.5t126.5 -62.5t86.5 -105t32 -148q0 -83 -31 -145.5t-85 -103.5t-126 -61.5t-154 -20.5h-189v515h-364v-515h-168v1120zM819 153q208 0 208 181q0 180 -208 180h-13v-361h13z" />
-<glyph unicode="&#x45b;" d="M255 977h-190v143h190v436h184v-436h448v-143h-448v-397q49 97 133 146t199 49q172 0 256 -112t84 -341v-322h-185v322q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-261h-184v977z" />
-<glyph unicode="&#x45c;" d="M804 1647h198l-325 -376h-154zM236 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
-<glyph unicode="&#x45d;" d="M343 1647h198l281 -376h-154zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
-<glyph unicode="&#x45e;" d="M626 1270q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM194 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5 t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
-<glyph unicode="&#x45f;" d="M541 0h-352v1120h184v-970h487v970h184v-1120h-352v-286h-151v286z" />
-<glyph unicode="&#x462;" d="M293 1105h-261v164h261v224h202v-224h369v-164h-369v-212h138q253 0 380.5 -112.5t127.5 -333.5q0 -222 -128.5 -334.5t-379.5 -112.5h-340v1105zM633 166q142 0 219.5 73t77.5 207t-78 207.5t-219 73.5h-138v-561h138z" />
-<glyph unicode="&#x463;" d="M298 973h-248v147h248v436h184v-436h425v-147h-425v-306h256q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82h-440v973zM730 156q124 0 191 43.5t67 133.5q0 91 -68 136t-190 45h-248v-358h248z" />
-<glyph unicode="&#x472;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM904 828q-4 132 -21 231t-50.5 165t-86.5 99t-130 33t-129.5 -33t-86.5 -99t-50.5 -165t-20.5 -231h575zM617 135q75 0 127.5 31.5t86.5 95.5 t50.5 159t21.5 223h-573q4 -122 20.5 -217t49.5 -160t86 -98.5t131 -33.5z" />
-<glyph unicode="&#x473;" d="M616 -29q-233 0 -356 150.5t-123 438.5q0 284 123 436q60 73 147 112t208 39q235 0 358 -151t123 -437q0 -288 -122.5 -438t-357.5 -150zM900 611q-4 88 -22.5 158.5t-53 119.5t-86.5 75.5t-122 26.5t-121.5 -26.5t-86 -75.5t-53 -119.5t-22.5 -158.5h567zM616 127 q70 0 120 25t83 68.5t51 102t25 124.5h-557q7 -66 25 -124.5t51 -102t82.5 -68.5t119.5 -25z" />
-<glyph unicode="&#x490;" d="M215 1493h754l3 306h167v-476h-721v-1323h-203v1493z" />
-<glyph unicode="&#x491;" d="M317 1120h568v314h185l-1 -498h-568v-936h-184v1120z" />
-<glyph unicode="&#x492;" d="M225 830h-130v170h130v493h924v-170h-721v-323h547v-170h-547v-830h-203v830z" />
-<glyph unicode="&#x493;" d="M317 500h-130v170h130v450h752v-184h-568v-266h416v-170h-416v-500h-184v500z" />
-<glyph unicode="&#x494;" d="M589 -240h62q67 0 113.5 17.5t76 57.5t42.5 106t13 163v290q0 317 -248 317h-270v-711h-203v1493h924v-170h-721v-442h311q188 0 299 -119q57 -61 84 -146.5t27 -205.5v-306q0 -134 -25 -231t-78 -160t-135 -93t-196 -30h-76v170z" />
-<glyph unicode="&#x495;" d="M539 -270h172q55 0 90 11.5t55.5 40t28 76.5t7.5 122v264q0 85 -9.5 133.5t-34 73t-67.5 30.5t-110 6h-260v-487h-184v1120h752v-184h-568v-305h250q130 0 211.5 -16.5t126.5 -59.5t61 -117t16 -188v-270q0 -107 -20 -183.5t-62 -126t-107 -73t-155 -23.5h-193v156z" />
-<glyph unicode="&#x496;" d="M1048 0h-27l-222 650l-89 -186v-464h-187v464l-89 186l-222 -650h-197l304 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l246 -721h58v-492h-170v322z" />
-<glyph unicode="&#x497;" d="M1048 0h-52l-191 528l-104 -177v-351h-168v351l-104 177l-191 -528h-179l259 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l205 -566h77v-436h-150v286z" />
-<glyph unicode="&#x498;" d="M1079 410q0 -92 -29 -167.5t-84 -131t-135 -90t-183 -45.5q45 -54 66.5 -100t21.5 -96q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 28 -15 63t-53 90q-94 2 -194.5 21t-197.5 53v201q103 -54 201 -79.5t194 -25.5 q169 0 258 74.5t89 210.5q0 68 -23 122t-66 91t-104 56.5t-137 19.5h-154v166h154q140 0 217.5 60.5t77.5 176.5q0 111 -73 171.5t-214 60.5q-76 0 -171.5 -19t-203.5 -61v186q121 32 215 48t172 16q106 0 194 -28.5t150 -81t96.5 -125.5t34.5 -163q0 -126 -68 -207.5 t-200 -115.5q148 -39 225.5 -138t77.5 -251z" />
-<glyph unicode="&#x499;" d="M1064 321q0 -70 -27.5 -127.5t-81 -101t-131 -71.5t-176.5 -38q48 -57 71 -104.5t23 -98.5q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 29 -15.5 65.5t-56.5 94.5q-87 1 -174.5 14t-187.5 42v173q76 -34 167 -51.5 t190 -17.5q175 0 265 52.5t90 143.5q0 45 -22 81.5t-63 62.5t-100 40t-134 14h-158v144h165q137 0 208.5 43t71.5 111q0 69 -74.5 111.5t-216.5 42.5q-71 0 -157 -12.5t-191 -39.5v167q210 48 367 48q105 0 189 -20.5t143.5 -58.5t91 -91.5t31.5 -120.5q0 -96 -64.5 -160 t-184.5 -89q64 -12 116 -35.5t89 -59.5t56.5 -84t19.5 -107z" />
-<glyph unicode="&#x49a;" d="M1012 0h-31l-487 748l-154 -164v-584h-203v1493h203v-664l631 664h237l-581 -610l483 -713h114v-492h-212v322z" />
-<glyph unicode="&#x49b;" d="M986 0h-29l-414 578l-137 -129v-449h-190v1120h190v-465l483 465h224l-441 -422l376 -514h134v-470h-196v286z" />
-<glyph unicode="&#x4a2;" d="M1020 0h-203v711h-553v-711h-203v1493h203v-612h553v612h203v-1323h213v-492h-213v322z" />
-<glyph unicode="&#x4a3;" d="M1038 0h-184v505h-487v-505h-184v1120h184v-445h487v445h184v-936h195v-470h-195v286z" />
-<glyph unicode="&#x4a4;" d="M213 1493h186v-612h364v612h470v-170h-284v-1323h-186v711h-364v-711h-186v1493z" />
-<glyph unicode="&#x4a5;" d="M185 1120h168v-455h410v455h470v-150h-302v-970h-168v515h-410v-515h-168v1120z" />
-<glyph unicode="&#x4aa;" d="M740 1356q-194 0 -292 -152t-98 -459q0 -610 390 -610q91 0 175.5 32t157.5 93v-207q-120 -65 -251 -78q45 -54 66 -99.5t21 -95.5q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 29 -15 64t-53 90q-134 7 -239 62.5 t-177 154t-109.5 238t-37.5 316.5q0 184 40.5 328t118.5 244t190.5 152.5t256.5 52.5q89 0 169.5 -20t158.5 -62v-207q-73 60 -156.5 92.5t-176.5 32.5z" />
-<glyph unicode="&#x4ab;" d="M723 991q-179 0 -271.5 -112t-92.5 -319q0 -209 93 -321t272 -112q88 0 164.5 29t142.5 92v-191q-60 -35 -118 -54t-118 -27q45 -54 66.5 -100t21.5 -96q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 28 -15 63 t-53 91q-119 6 -213.5 48.5t-160.5 117.5t-101.5 181.5t-35.5 239.5q0 138 38 247t109 185t172 116t228 40q84 0 160 -20t159 -66v-193q-71 64 -145 93.5t-163 29.5z" />
-<glyph unicode="&#x4ac;" d="M719 0h-203v1323h-469v170h1139v-170h-467v-1153h213v-492h-213v322z" />
-<glyph unicode="&#x4ad;" d="M709 0h-184v942h-311v178h806v-178h-311v-758h195v-470h-195v286z" />
-<glyph unicode="&#x4ae;" d="M514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="&#x4af;" d="M520 18l-428 1102h195l329 -876l329 876h195l-428 -1102v-444h-192v444z" />
-<glyph unicode="&#x4b0;" d="M514 420h-264v170h264v80l-477 823h215l364 -659l363 659h217l-479 -823v-80h266v-170h-266v-420h-203v420z" />
-<glyph unicode="&#x4b1;" d="M520 -185h-200v150h200v53l-428 1102h195l329 -876l329 876h195l-428 -1102v-53h200v-150h-200v-241h-192v241z" />
-<glyph unicode="&#x4b2;" d="M1002 0h-5l-366 643l-395 -643h-218l500 791l-432 702h217l328 -563l334 563h217l-447 -702l377 -621h102v-492h-212v322z" />
-<glyph unicode="&#x4b3;" d="M982 0h-18l-328 449l-327 -449h-213l440 584l-401 536h204l297 -405l295 405h207l-401 -536l301 -400h140v-470h-196v286z" />
-<glyph unicode="&#x4ba;" d="M160 1495h203v-683q34 38 85 66l48 26q19 10 44.5 18.5t54 14.5t58 9.5t56.5 4.5l48 2q85 0 146 -22.5t102 -61.5q9 -8 16 -16.5t9 -12.5q85 -112 85 -340v-500h-203v474q0 154 -54 223.5t-172 69.5q-50 0 -96 -11t-90 -31q-23 -11 -38.5 -21.5t-29.5 -27.5 q-33 -40 -51 -109.5t-18 -153.5v-413h-203v1495z" />
-<glyph unicode="&#x4bb;" d="M195 1556h184v-604q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1556z" />
-<glyph unicode="&#x4c0;" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#x4c1;" d="M616 1609q-290 0 -313 242h119q12 -54 62 -82.5t132 -28.5q165 0 195 111h119q-11 -120 -90 -181t-224 -61zM319 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l304 -891h-197l-222 650l-89 -186v-464h-187v464l-89 186l-222 -650h-197z" />
-<glyph unicode="&#x4c2;" d="M616 1321q-290 0 -313 287h119q22 -150 194 -150q167 0 195 150h119q-23 -287 -314 -287zM318 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l259 -716h-179l-191 528l-104 -177v-351h-168v351l-104 177l-191 -528h-179z" />
-<glyph unicode="&#x4c3;" d="M551 -240h62q67 0 113.5 17.5t76 57.5t42.5 106t13 163v290q0 317 -248 317h-151l-119 -127v-584h-203v1493h203v-664l631 664h237l-581 -612h24q91 0 166.5 -29t129.5 -87.5t84 -147t30 -207.5v-306q0 -134 -25 -231t-78 -160t-135 -93t-196 -30h-76v170z" />
-<glyph unicode="&#x4c4;" d="M534 -270h172q55 0 90 11.5t55.5 40t28 76.5t7.5 122v264q0 85 -9.5 133.5t-34 73t-67.5 30.5t-110 6h-221l-39 -38v-449h-190v1120h190v-465l483 465h224l-515 -489h58q130 0 211.5 -16.5t126.5 -59.5t61 -117t16 -188v-270q0 -107 -20 -183.5t-62 -126t-107 -73 t-155 -23.5h-193v156z" />
-<glyph unicode="&#x4c7;" d="M586 -240h62q67 0 113.5 17.5t76 57.5t42.5 106t13 163v607h-553v-711h-203v1493h203v-612h553v612h203v-1389q0 -135 -25 -232t-78 -160t-135 -92.5t-196 -29.5h-76v170z" />
-<glyph unicode="&#x4c8;" d="M523 -270h172q55 0 90 11.5t55.5 40t28 76.5t7.5 122v525h-487v-505h-184v1120h184v-445h487v445h184v-1140q0 -107 -20 -183.5t-62 -126t-107 -73t-155 -23.5h-193v156z" />
-<glyph unicode="&#x4cb;" d="M669 170h213v548q-17 -20 -37 -35t-49 -31l-47 -26q-18 -10 -43.5 -18.5t-54 -14.5t-58.5 -9.5t-57 -4.5l-48 -2q-160 0 -248 84q-8 8 -15 16t-11 13q-40 54 -62 136.5t-22 203.5v465h203v-439q0 -153 53 -223t168 -70q44 0 95 10t96 31q25 12 40.5 24t26.5 26 q31 37 50.5 104t19.5 159v378h203v-1495h-203v-322h-213v492z" />
-<glyph unicode="&#x4cc;" d="M652 184h195v382q-27 -51 -87 -87q1 1 -7 -4t-39 -23q-43 -25 -91.5 -37.5t-106.5 -12.5q-173 0 -257 112t-84 341v267h185v-267q0 -151 52.5 -222t165.5 -71q131 0 200 91t69 263v206h184v-1122h-184v-286h-195v470z" />
-<glyph unicode="&#x4cf;" d="M455 1567h184v-1567h-184v1567z" />
-<glyph unicode="&#x4d0;" d="M616 1609q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x4d1;" d="M616 1298q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM520 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27 q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5 q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM558 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#x4d2;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#x4d3;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM520 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29 q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56 q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM558 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5 t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#x4d4;" d="M410 1493h751v-170h-338v-442h307v-170h-307v-541h357v-170h-543v383h-352l-101 -383h-184zM637 551v772h-107l-202 -772h309z" />
-<glyph unicode="&#x4d5;" d="M357 -29q-155 0 -235.5 86.5t-80.5 245.5q0 177 99.5 265.5t291.5 88.5h117v88q0 121 -49.5 184.5t-144.5 63.5q-56 0 -121 -21.5t-128 -60.5v168q78 35 143 51.5t128 16.5q177 0 250 -127q32 57 94.5 92t165.5 35q85 0 144.5 -28t97 -92t54.5 -168t17 -255v-90h-491 q-1 -15 -1.5 -33t-0.5 -40q0 -85 11.5 -145t37.5 -98t67.5 -55.5t100.5 -17.5q75 0 140 25.5t114 76.5v-172q-113 -84 -262 -84q-109 0 -182.5 42t-104.5 118q-41 -83 -107 -121.5t-165 -38.5zM1036 657v52q0 75 -9.5 129t-29 88.5t-51 50.5t-74.5 16q-44 0 -74.5 -16.5 t-50.5 -51.5t-29 -91t-9 -134v-43h327zM375 125q94 0 131 67q17 32 27 90t10 160v72h-49q-82 0 -137.5 -10.5t-89 -33.5t-48 -60t-14.5 -90q0 -100 44 -147.5t126 -47.5z" />
-<glyph unicode="&#x4d6;" d="M634 1609q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#x4d7;" d="M631 1298q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797 v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
-<glyph unicode="&#x4d8;" d="M615 -29q-252 0 -375 191t-123 583v83h787v8q0 121 -16.5 217t-52 163.5t-92 103.5t-136.5 36q-38 0 -79.5 -8.5t-83.5 -24.5t-82 -39t-76 -53v207q78 42 160 62t165 20q256 0 380.5 -191t124.5 -583q0 -391 -123.5 -583t-377.5 -192zM621 135q73 0 124.5 32t85 95.5 t50.5 159t22 222.5h-571q0 -249 70 -379t219 -130z" />
-<glyph unicode="&#x4d9;" d="M610 -29q-111 0 -198 37.5t-147 107.5t-91.5 170t-31.5 226v90h797v6q0 91 -24.5 162.5t-71 120.5t-114.5 74.5t-154 25.5q-90 0 -185.5 -28t-204.5 -85v183q106 43 202.5 64.5t190.5 21.5q130 0 232.5 -40.5t173.5 -116.5t109 -184t38 -243t-37.5 -244.5t-106 -187 t-164.5 -119t-213 -41.5zM608 127q136 0 221.5 86.5t102.5 245.5h-606q0 -163 75 -247.5t207 -84.5z" />
-<glyph unicode="&#x4da;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM615 -29q-252 0 -375 191t-123 583v83h787v8q0 121 -16.5 217t-52 163.5t-92 103.5t-136.5 36 q-38 0 -79.5 -8.5t-83.5 -24.5t-82 -39t-76 -53v207q78 42 160 62t165 20q256 0 380.5 -191t124.5 -583q0 -391 -123.5 -583t-377.5 -192zM621 135q73 0 124.5 32t85 95.5t50.5 159t22 222.5h-571q0 -249 70 -379t219 -130z" />
-<glyph unicode="&#x4db;" d="M369 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM761 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM610 -29q-111 0 -198 37.5t-147 107.5t-91.5 170t-31.5 226v90h797v6q0 91 -24.5 162.5t-71 120.5 t-114.5 74.5t-154 25.5q-90 0 -185.5 -28t-204.5 -85v183q106 43 202.5 64.5t190.5 21.5q130 0 232.5 -40.5t173.5 -116.5t109 -184t38 -243t-37.5 -244.5t-106 -187t-164.5 -119t-213 -41.5zM608 127q136 0 221.5 86.5t102.5 245.5h-606q0 -163 75 -247.5t207 -84.5z" />
-<glyph unicode="&#x4dc;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM319 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l304 -891h-197l-222 650 l-89 -186v-464h-187v464l-89 186l-222 -650h-197z" />
-<glyph unicode="&#x4dd;" d="M349 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM318 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l259 -716h-179l-191 528 l-104 -177v-351h-168v351l-104 177l-191 -528h-179z" />
-<glyph unicode="&#x4de;" d="M332 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM724 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM553 -29q-99 0 -206 19t-210 55v201q103 -54 201 -79.5t194 -25.5q169 0 258 74.5t89 210.5 q0 68 -23 122t-66 91t-104 56.5t-137 19.5h-154v166h154q140 0 217.5 60.5t77.5 176.5q0 111 -73 171.5t-214 60.5q-76 0 -171.5 -19t-203.5 -61v186q121 32 215 48t172 16q106 0 194 -28.5t150 -81t96.5 -125.5t34.5 -163q0 -126 -68 -207.5t-200 -115.5 q148 -39 225.5 -138t77.5 -251q0 -102 -35.5 -183.5t-103 -138.5t-165.5 -87t-222 -30z" />
-<glyph unicode="&#x4df;" d="M334 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM726 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM539 -22q-90 0 -178.5 13.5t-191.5 42.5v173q76 -34 167 -51.5t190 -17.5q175 0 265 52.5t90 143.5 q0 45 -22 81.5t-63 62.5t-100 40t-134 14h-158v144h165q137 0 208.5 43t71.5 111q0 69 -74.5 111.5t-216.5 42.5q-71 0 -157 -12.5t-191 -39.5v167q210 48 367 48q105 0 189 -20.5t143.5 -58.5t91 -91.5t31.5 -120.5q0 -96 -64.5 -160t-184.5 -89q64 -12 116 -35.5t89 -59.5 t56.5 -84t19.5 -107q0 -79 -35.5 -142.5t-102.5 -108t-165 -68.5t-222 -24z" />
-<glyph unicode="&#x4e0;" d="M615 -28q-142 0 -252 31t-185 90t-113.5 145t-38.5 197h202q0 -144 99 -218.5t289 -74.5q191 0 290.5 74.5t99.5 215.5q0 69 -24 122t-69 89t-110 54.5t-147 18.5h-174v166l370 441h-738v170h970v-168l-376 -441q52 0 109.5 -13t113 -39t106 -65t89.5 -90 q43 -57 61.5 -116.5t18.5 -131.5q0 -108 -39 -193t-114 -143.5t-185 -89.5t-253 -31z" />
-<glyph unicode="&#x4e1;" d="M551 -436q-49 0 -97 4t-98 13t-102 23t-109 34v195q85 -49 184.5 -74t208.5 -25q191 0 290 75t99 215q0 68 -24 121t-69 89t-110 55t-147 19h-174v166l430 499h-667v147h874v-168l-411 -476q48 0 103.5 -11.5t111 -36t108 -64t95.5 -95.5q42 -55 61.5 -114t19.5 -133 q0 -109 -39.5 -194t-114 -143.5t-181.5 -89.5t-242 -31z" />
-<glyph unicode="&#x4e2;" d="M317 1852h598v-148h-598v148zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
-<glyph unicode="&#x4e3;" d="M317 1468h598v-148h-598v148zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
-<glyph unicode="&#x4e4;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
-<glyph unicode="&#x4e5;" d="M349 1322q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1322q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
-<glyph unicode="&#x4e6;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583 q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#x4e7;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5 t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x4e8;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM902 881q-6 111 -22.5 199.5t-49.5 149.5t-85 93.5t-129 32.5q-78 0 -130 -33.5t-84.5 -95t-48.5 -149.5t-22 -197h571zM617 135q76 0 130 33.5 t88.5 104t51 179.5t18.5 259h-577q1 -150 17.5 -258.5t51 -179t89 -104.5t131.5 -34z" />
-<glyph unicode="&#x4e9;" d="M616 -29q-233 0 -356 150.5t-123 438.5q0 284 123 436q60 73 147 112t208 39q235 0 358 -151t123 -437q0 -288 -122.5 -438t-357.5 -150zM900 611q-4 88 -22.5 158.5t-53 119.5t-86.5 75.5t-122 26.5t-121.5 -26.5t-86 -75.5t-53 -119.5t-22.5 -158.5h567zM616 127 q70 0 120 25t83 68.5t51 102t25 124.5h-557q7 -66 25 -124.5t51 -102t82.5 -68.5t119.5 -25z" />
-<glyph unicode="&#x4ea;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583 q0 -390 -124 -582t-377 -192zM902 881q-6 111 -22.5 199.5t-49.5 149.5t-85 93.5t-129 32.5q-78 0 -130 -33.5t-84.5 -95t-48.5 -149.5t-22 -197h571zM617 135q76 0 130 33.5t88.5 104t51 179.5t18.5 259h-577q1 -150 17.5 -258.5t51 -179t89 -104.5t131.5 -34z" />
-<glyph unicode="&#x4eb;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-233 0 -356 150.5t-123 438.5q0 284 123 436q60 73 147 112t208 39q235 0 358 -151 t123 -437q0 -288 -122.5 -438t-357.5 -150zM900 611q-4 88 -22.5 158.5t-53 119.5t-86.5 75.5t-122 26.5t-121.5 -26.5t-86 -75.5t-53 -119.5t-22.5 -158.5h567zM616 127q70 0 120 25t83 68.5t51 102t25 124.5h-557q7 -66 25 -124.5t51 -102t82.5 -68.5t119.5 -25z" />
-<glyph unicode="&#x4ec;" d="M336 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM728 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM509 -29q-176 0 -330 82v207q75 -63 161 -94t171 -31q98 0 170 38.5t120 108t73 166.5t28 213h-632 v170h627q-15 138 -41 237.5t-69.5 163t-108.5 94t-158 30.5q-97 0 -181 -31t-160 -94v207q154 82 330 82q142 0 254.5 -52.5t190 -152t118.5 -244t41 -328.5q0 -183 -40.5 -326.5t-118 -242.5t-189.5 -151t-256 -52z" />
-<glyph unicode="&#x4ed;" d="M329 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM721 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM535 -29q-85 0 -162 20t-158 66v191q62 -60 138 -90.5t170 -30.5q90 0 156 28t110.5 79t68 123 t28.5 159h-542v144h537q-9 66 -32 126t-65 105.5t-106 72.5t-154 27q-91 0 -165 -30t-144 -93v193q82 46 158.5 66t160.5 20q127 0 228 -40t172 -116t109 -185t38 -247t-38 -247t-109 -185t-172 -116t-227 -40z" />
-<glyph unicode="&#x4ee;" d="M337 1852h598v-148h-598v148zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
-<glyph unicode="&#x4ef;" d="M317 1468h598v-148h-598v148zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5 t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
-<glyph unicode="&#x4f0;" d="M369 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM761 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217 l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
-<glyph unicode="&#x4f1;" d="M349 1312q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1312q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195 l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
-<glyph unicode="&#x4f2;" d="M561 1852h186l-229 -264h-154zM880 1852h186l-229 -264h-154zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32 t-93.5 -11.5h-148v172z" />
-<glyph unicode="&#x4f3;" d="M535 1648h170l-224 -376h-137zM868 1648h179l-248 -376h-135zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64 q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
-<glyph unicode="&#x4f4;" d="M339 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM731 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM879 658q-52 -26 -95.5 -42t-84 -24.5t-80.5 -11.5t-85 -3q-55 0 -107 4.5t-97 19.5t-82.5 42 t-64 71.5t-41.5 109.5t-15 156v513h203v-487q0 -84 14.5 -132.5t44.5 -73t76.5 -31t111.5 -6.5q46 0 82.5 3t71 13t70 29.5t78.5 52.5v632h203v-1493h-203v658z" />
-<glyph unicode="&#x4f5;" d="M359 1323q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM751 1323q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM837 466q-8 -3 -33 -13.5t-64.5 -21.5t-92.5 -20t-116 -9q-84 0 -152 19.5t-115.5 62t-73 109.5 t-25.5 162v367h184v-367q0 -64 19 -102t52 -58.5t77 -26.5t93 -6q37 0 69 2.5t61.5 9.5t58 18.5t58.5 28.5v501h184v-1122h-184v466z" />
-<glyph unicode="&#x4f6;" d="M418 0h-203v1493h924v-170h-721v-1153h213v-492h-213v322z" />
-<glyph unicode="&#x4f7;" d="M476 0h-184v1120h752v-184h-568v-752h195v-470h-195v286z" />
-<glyph unicode="&#x4f8;" d="M366 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM758 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM82 1493h202v-600h91q97 0 179.5 -28.5t143 -84.5t94.5 -139.5t34 -193.5t-34.5 -194t-95 -140 t-143 -84.5t-178.5 -28.5h-293v1493zM948 1493h203v-1493h-203v1493zM375 166q51 0 95 15.5t76 49.5t50.5 87t18.5 128q0 134 -60 207.5t-180 73.5h-91v-561h91z" />
-<glyph unicode="&#x4f9;" d="M349 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM104 1120h182v-453h91q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82 h-273v1120zM945 1120h184v-1120h-184v1120zM369 154q124 0 191 44t67 135q0 92 -68 137.5t-190 45.5h-83v-362h83z" />
-<glyph unicode="&#x510;" d="M663 -29q-125 0 -222.5 30t-165 87t-103 138.5t-35.5 183.5q0 152 77.5 251t225.5 138q-132 34 -200 114.5t-68 206.5q0 90 34.5 163.5t96.5 126t149.5 81.5t194.5 29q78 0 172 -16t215 -48v-186q-108 42 -203.5 61t-171.5 19q-141 0 -214 -60.5t-73 -171.5 q0 -116 77.5 -176.5t217.5 -60.5h154v-166h-154q-76 0 -137 -19.5t-104 -56.5t-66 -91t-23 -122q0 -136 89 -210.5t258 -74.5q96 0 194 25.5t201 79.5v-201q-103 -36 -210 -55t-206 -19z" />
-<glyph unicode="&#x511;" d="M693 -22q-125 0 -222 24t-164.5 68.5t-102.5 108t-35 142.5q0 59 19.5 107t56 84t88 59.5t116.5 35.5q-120 25 -184 89t-64 160q0 67 31.5 120.5t90.5 91.5t143 58.5t189 20.5q158 0 368 -48v-167q-105 27 -191 39.5t-158 12.5q-142 0 -216 -42.5t-74 -111.5 q0 -68 71.5 -111t207.5 -43h166v-144h-159q-75 0 -134 -14t-100 -40t-62.5 -62.5t-21.5 -81.5q0 -91 90 -143.5t265 -52.5q99 0 189 17.5t168 51.5v-173q-97 -28 -187 -42t-184 -14z" />
-<glyph unicode="&#x51a;" d="M655 -27h-8.5t-11.5 -1t-10 -1h-5q-254 0 -378.5 193t-124.5 583q0 388 123.5 580.5t376.5 192.5q252 0 375.5 -192.5t123.5 -583.5q0 -293 -68.5 -472.5t-207.5 -251.5l200 -190l-151 -100zM616 135q83 0 136.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 162.5 t-4.5 161.5t-13.5 128.5t-21.5 100.5t-28.5 77.5q-35 72 -88.5 106.5t-131.5 34.5q-79 0 -133 -35t-88 -107q-68 -143 -68 -469q0 -165 16.5 -280t51.5 -188q33 -70 86.5 -106t133.5 -36z" />
-<glyph unicode="&#x51b;" d="M865 139q-46 -85 -121.5 -128.5t-180.5 -43.5q-99 0 -179 40t-136 116t-86 184.5t-30 246.5q0 137 30 246.5t86 185.5t136 116.5t179 40.5q103 0 179.5 -43t122.5 -127l18 143h167v-1546h-185v569zM595 123q134 0 202 109t68 323t-68 323t-202 109t-201 -108.5 t-67 -323.5t67 -323.5t201 -108.5z" />
-<glyph unicode="&#x51c;" d="M0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
-<glyph unicode="&#x51d;" d="M0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
-<glyph unicode="&#x531;" d="M1044 -60q-45 20 -88 45t-88 54q-113 -68 -281 -68q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-1098q0 -45 9.5 -90.5t38.5 -83.5t81 -62t138 -24q74 0 128 20q-61 54 -108.5 107t-75.5 104l137 92q28 -51 69 -98t95 -92q13 31 17.5 63t4.5 64 v1098h202v-1036q0 -93 -17.5 -165.5t-51.5 -129.5q31 -18 62.5 -34t63.5 -30l-70 -158v0z" />
-<glyph unicode="&#x532;" d="M128 1036q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-161h-202v223q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-477h774v-170h-774v-451h-202v1036 z" />
-<glyph unicode="&#x533;" d="M821 451h-269q-221 0 -340 128q-61 66 -94 166t-33 246q0 140 31.5 241t91.5 165t146 93.5t198 29.5q111 0 198 -29.5t148 -93.5q60 -64 92.5 -164.5t32.5 -244.5v-367h125v-170h-125v-451h-202v451zM821 621v437q0 55 -10 108.5t-39 95.5t-82 68t-139 26t-137.5 -27 t-79.5 -76t-37.5 -116.5t-9.5 -148.5t9.5 -148.5t37.5 -115.5q28 -49 79.5 -76t138.5 -27h269z" />
-<glyph unicode="&#x534;" d="M790 1098q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-223h-202v161q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-415h187v-170h-187v-451h-202v1098 z" />
-<glyph unicode="&#x535;" d="M596 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-373h774v-170h-774v-555q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v223h202v-161q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
-<glyph unicode="&#x536;" d="M140 331h203v-161h51q52 0 109.5 24.5t116.5 70.5q61 48 116.5 112.5t97.5 144.5q48 90 70 187t22 213q0 96 -17 182.5t-59 147.5q-38 54 -94 79t-142 25q-83 0 -141.5 -24t-97.5 -79t-57.5 -142.5t-18.5 -215.5v-20h-203v20q0 173 40 291.5t109 193.5t162.5 107.5 t204.5 32.5q114 0 206 -33.5t163 -107.5q78 -81 117 -199.5t39 -268.5q0 -105 -18.5 -193t-52.5 -167q-31 -72 -72.5 -137t-87.5 -116q-45 -51 -88.5 -83t-79.5 -45h359v-170h-957v331z" />
-<glyph unicode="&#x537;" d="M120 1493h203v-373h790v-170h-790v-780h651v-170h-854v1493z" />
-<glyph unicode="&#x538;" d="M128 1036q0 125 32 216t93 151q60 60 146.5 89.5t196.5 29.5q109 0 197 -29t149 -90q60 -60 92 -151t32 -216v-161h-202v223q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-928h774v-170h-976v1036z" />
-<glyph unicode="&#x539;" d="M750 -29q-70 0 -129.5 25.5t-104.5 79.5t-70 137.5t-25 201.5t25 204t70 143t105.5 85t132.5 28h138v24q0 128 -14 212t-48 139q-35 56 -95 81q-59 25 -153 25q-92 0 -152 -24t-96 -78t-50.5 -139t-14.5 -206v-909h-196v934q0 290 135 440q66 73 160 109.5t213 36.5 q122 0 216 -38t158 -111q65 -74 99.5 -184.5t34.5 -259.5v-52h131v-175h-131v-285q0 -108 -24.5 -189.5t-69.5 -138.5q-47 -60 -109 -88t-136 -28zM752 135q35 0 61.5 13.5t44.5 47.5q17 32 25.5 85t8.5 134v285h-138q-36 0 -61 -13t-42 -45t-24 -87q-4 -28 -6 -62.5 t-2 -79.5q0 -82 8 -136t25 -86q18 -34 44.5 -45t55.5 -11z" />
-<glyph unicode="&#x53a;" d="M542 -29q-118 0 -203.5 36t-145.5 108t-91.5 176.5t-31.5 247.5q0 147 33.5 254.5t93.5 179.5q61 72 147.5 109.5t192.5 37.5h269v373h202v-373h125v-170h-125v-446q0 -140 -31.5 -241.5t-93.5 -167.5q-61 -65 -148.5 -94.5t-192.5 -29.5zM541 135q81 0 134 26t82 68 t39 95.5t10 108.5v517h-269q-87 0 -138.5 -32.5t-79.5 -89.5q-26 -54 -36.5 -126t-10.5 -160q0 -81 9.5 -154t37.5 -130t79.5 -90t142.5 -33z" />
-<glyph unicode="&#x53b;" d="M187 1493h202v-432q60 42 126.5 61t147.5 19q103 0 190 -29.5t148 -89.5q60 -60 92 -151t32 -216v-161h-202v223q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-717h-202v1493z" />
-<glyph unicode="&#x53c;" d="M184 1493h203v-1323h721v-170h-924v1493z" />
-<glyph unicode="&#x53d;" d="M806 -29q-111 0 -175 28t-101 81q-39 56 -53.5 140.5t-14.5 204.5v520h-183v-945h-186v1493h186v-373h369v-719q0 -75 6.5 -126t24.5 -82t48.5 -44.5t78.5 -13.5q49 0 78 14t44 44q15 31 20.5 82t5.5 126v719h186v-695q0 -120 -13 -204.5t-49 -140.5 q-37 -56 -101.5 -82.5t-170.5 -26.5z" />
-<glyph unicode="&#x53e;" d="M626 -29q-79 0 -143 13t-116 37.5t-91.5 59t-69.5 78.5q-60 88 -83 204.5t-23 247.5q0 139 23 252.5t69 217.5h-138v412h183v-245h52q96 128 229 200q66 35 141 53.5t170 18.5q47 0 94 -4.5t88 -13.5q42 -9 81.5 -23t81.5 -31v-215q-108 70 -200 97t-174 27 q-94 0 -167.5 -29t-130.5 -81q168 -4 292 -47.5t207 -120.5q85 -79 131 -198t46 -288q0 -82 -11.5 -158.5t-36.5 -143.5q-26 -72 -68.5 -130.5t-101.5 -99.5q-63 -44 -145.5 -67t-188.5 -23zM632 135q83 0 140 17.5t95 49.5t58.5 75t30.5 95q5 25 7.5 53.5t4 56.5t2 53.5 t0.5 45.5q0 70 -5 136.5t-25 122.5q-20 54 -56.5 97.5t-99.5 75.5q-64 32 -157.5 50t-227.5 18h-12q-43 -97 -61.5 -214t-18.5 -246v-36q0 -54 1.5 -104.5t9.5 -97.5q9 -57 27.5 -101.5t53.5 -76.5q36 -33 92 -51.5t141 -18.5z" />
-<glyph unicode="&#x53f;" d="M883 431q-54 -36 -119 -57.5t-157 -21.5q-106 0 -191 30.5t-144 88.5q-61 60 -93 151t-32 216v655h202v-717q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v344h202v-1120h-202v431z" />
-<glyph unicode="&#x540;" d="M320 266q-60 24 -102 47t-74 49q-34 28 -53.5 59.5t-19.5 72.5q0 61 52.5 140.5t173.5 181.5q52 44 115 90.5t133.5 93t146 91.5t153.5 87l-181 315h238l217 -375q-111 -53 -212 -109.5t-188 -110.5q-89 -56 -166.5 -111t-131.5 -103q-29 -26 -49.5 -46.5t-36.5 -39.5 q-31 -38 -31 -64q0 -14 7.5 -25t20.5 -22q15 -12 39 -25t48 -23l703 -289v-204z" />
-<glyph unicode="&#x541;" d="M982 -48q-35 54 -71 102.5t-72 93.5q-88 -84 -190 -130.5t-216 -46.5q-69 0 -128.5 18.5t-104.5 56.5q-43 37 -66.5 92t-23.5 127t23.5 128.5t66.5 96.5q42 39 102 59.5t133 20.5q103 0 198.5 -38.5t183.5 -104.5q55 107 81.5 221.5t26.5 252.5q0 115 -18.5 205.5 t-56.5 145.5q-40 58 -102 81t-137 23q-80 0 -139 -24t-98 -79t-57.5 -142.5t-18.5 -215.5v-22h-203v22q0 173 40 291.5t109 193.5q69 74 163 107t202 33q110 0 206 -33t166 -105q72 -74 113.5 -193.5t41.5 -287.5q0 -180 -47.5 -331.5t-127.5 -274.5q51 -55 95 -115t82 -126 zM438 133q68 0 140 37t137 109q-69 62 -139.5 95.5t-135.5 33.5q-68 0 -104 -36.5t-36 -102.5q0 -65 35 -100.5t103 -35.5z" />
-<glyph unicode="&#x542;" d="M790 1098q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-223h-202v161q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-866h187v-170h-389v1098z" />
-<glyph unicode="&#x543;" d="M363 0q-56 0 -107 12t-91 42q-37 28 -58 72t-21 112q0 43 9.5 89.5t30 100.5t52.5 118t77 141q46 79 95 156t93 140l-293 510h228l194 -338q141 175 281 270t293 95v-175q-109 0 -228 -91t-250 -266l473 -824v-164h-778zM909 175l-365 633q-29 -45 -57.5 -92t-57.5 -98 q-66 -115 -96.5 -192.5t-30.5 -130.5q0 -69 49 -94.5t140 -25.5h418z" />
-<glyph unicode="&#x544;" d="M554 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-1098q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v1098h389v-170h-187v-866q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
-<glyph unicode="&#x545;" d="M656 -29q-135 0 -230 38.5t-158 104.5t-92 151t-29 182h210q0 -66 16.5 -122t52.5 -98q35 -41 90.5 -66.5t140.5 -25.5q80 0 137 23t94 64q35 38 53 91.5t18 116.5q0 130 -78 202q-39 35 -95.5 54t-129.5 19h-592v170h592q66 0 112.5 21t76.5 57q29 35 42 79.5t13 95.5 q0 116 -62.5 172t-182.5 56q-117 0 -177.5 -56.5t-60.5 -179.5h-210q0 91 32 165t92 127t142 80.5t182 27.5q102 0 185 -28t143 -79q57 -49 92 -121t35 -166q0 -60 -14.5 -111t-40.5 -93q-55 -86 -148 -117q69 -17 118 -52.5t81 -83.5t47.5 -105t15.5 -123q0 -88 -28.5 -174 t-93.5 -154q-63 -66 -159.5 -104t-231.5 -38z" />
-<glyph unicode="&#x546;" d="M709 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v866h-187v170h389v-1098q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v223h202v-161q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
-<glyph unicode="&#x547;" d="M625 -29q-111 0 -206 34.5t-167 109.5t-114 193.5t-42 288.5q0 165 37.5 285.5t96.5 199.5q57 76 126 116t136 42l-90 40q-57 25 -111.5 34t-91.5 9h-45v170h123q51 0 114 -13t135 -43l507 -213v-212l-244 103q-13 6 -32.5 11.5t-42.5 10.5t-46.5 7.5t-43.5 2.5 q-145 0 -231 -150q-23 -39 -38 -82t-26 -91q-22 -100 -22 -230q0 -246 77 -354q39 -55 98.5 -80t141.5 -25t140 24.5t96 78.5q38 55 56 142t18 216v22h203v-22q0 -174 -40 -292t-109 -193q-69 -74 -163 -107t-200 -33z" />
-<glyph unicode="&#x548;" d="M147 1036q0 125 32 216t93 151q60 60 146.5 89.5t196.5 29.5q109 0 197 -29t149 -90q60 -60 92 -151t32 -216v-1036h-202v1098q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-1098h-202v1036z" />
-<glyph unicode="&#x549;" d="M200 267v212l238 -101q16 -7 36 -13t42 -10.5t44.5 -7.5t43.5 -3q78 0 137.5 39.5t99.5 110.5q20 35 36 79.5t27 94.5q22 98 22 229q0 246 -77 354q-39 55 -98 80t-142 25q-80 0 -138.5 -24t-96.5 -79q-39 -55 -57 -142.5t-18 -215.5v-22h-203v22q0 173 40 291.5 t109 193.5q69 74 163 107t200 33q111 0 206.5 -34.5t167.5 -109.5q71 -75 113 -193.5t42 -288.5q0 -112 -18 -203t-49 -163t-70.5 -124t-84.5 -86t-89.5 -50.5t-84.5 -16.5l232 -99v-210z" />
-<glyph unicode="&#x54a;" d="M958 917q0 79 -8.5 153t-37.5 134q-29 59 -81.5 98.5t-139.5 48.5v-876h-190v876q-87 -12 -138.5 -48t-80.5 -93t-38 -131t-9 -162v-42h-190v57q0 131 31 238.5t98 185.5t170.5 121t256.5 43q152 0 257.5 -43t170.5 -121t92 -185.5t27 -238.5v-932h-190v917z" />
-<glyph unicode="&#x54b;" d="M139 332h203v-162h40q60 0 120.5 23t117.5 66q12 52 19 99t7 89q0 51 -11 91.5t-35 69.5q-17 20 -37.5 31.5t-41.5 17.5t-41.5 7.5t-37.5 2.5q-61 2 -124 10.5t-118 43.5q-38 24 -59 56t-32 70q-9 32 -11 62t-2 51q0 75 10.5 139.5t34.5 124.5q25 62 64 115t95 93 q57 41 132.5 64.5t178.5 23.5q150 0 249 -51t160 -136q31 -44 53.5 -94.5t36 -105t20 -110.5t6.5 -111q0 -140 -34.5 -255.5t-88.5 -208.5q-56 -95 -128.5 -168.5t-147.5 -109.5h359v-170h-957v332zM776 423q35 52 63 106.5t47 114.5t29 127t10 145q0 40 -3 82.5t-10 83 t-18.5 77.5t-28.5 67q-35 63 -97.5 96.5t-153.5 33.5q-66 0 -112.5 -16t-79.5 -42q-37 -29 -59.5 -65t-35.5 -72q-26 -73 -26 -164q0 -34 5.5 -64.5t24.5 -50.5q24 -27 63.5 -33t88.5 -7q23 -1 51.5 -4t58 -13t59.5 -29t56 -51q37 -46 55.5 -107t18.5 -133q0 -40 -6 -82z " />
-<glyph unicode="&#x54c;" d="M98 1036q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-415h187v-170h-187v-451h-202v1098q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-1098h-202 v1036z" />
-<glyph unicode="&#x54d;" d="M615 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-1098q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v1098h202v-1036q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
-<glyph unicode="&#x54e;" d="M769 431q-54 -36 -119 -57.5t-157 -21.5q-106 0 -191 30.5t-144 88.5q-61 60 -93 151t-32 216v282h202v-344q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v717h202v-1323h228v-170h-430v431z" />
-<glyph unicode="&#x54f;" d="M631 -29q-122 0 -219.5 34.5t-166.5 97.5t-104.5 149.5t-35.5 194.5h210q0 -146 91 -231q87 -81 225 -81q134 0 214 75q38 35 60.5 87t22.5 118q0 74 -30.5 123t-88.5 84q-54 33 -122.5 56t-140.5 47q-78 26 -142.5 54t-119.5 73q-54 45 -87 108t-33 160q0 81 26.5 153.5 t82.5 127.5t139 87t199 32t202 -32t143 -87t84.5 -127.5t27.5 -153.5h-210q0 52 -14 95.5t-44 74.5t-76 48t-112 17q-64 0 -110.5 -16.5t-76.5 -45.5q-32 -32 -46.5 -74t-14.5 -85q0 -58 22 -96t57 -64q38 -29 87.5 -49t102.5 -38q37 -13 54 -18.5t25 -8.5t13.5 -4.5 t20.5 -6.5q53 -17 110.5 -42.5t104.5 -57.5q48 -33 86 -77.5t59 -107.5q21 -62 21 -141q0 -99 -32.5 -181t-95.5 -142q-63 -61 -155 -95t-213 -34z" />
-<glyph unicode="&#x550;" d="M147 1036q0 125 32 216t93 151q60 60 146.5 89.5t196.5 29.5q109 0 197 -29t149 -90q60 -60 92 -151t32 -216v-161h-202v223q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-1098h-202v1036z" />
-<glyph unicode="&#x551;" d="M656 -29q-131 0 -226 37t-161 106t-94 154t-28 179h210q0 -65 15.5 -120.5t52.5 -99.5t93.5 -68t137.5 -24q86 0 143.5 26t92.5 68q35 43 51 99.5t16 112.5q0 65 -20 112t-58 81t-94 52.5t-129 18.5h-594v170h273q-32 17 -56 45.5t-41 62.5t-25.5 69.5t-8.5 77.5 q0 78 30.5 151.5t89.5 127.5q55 51 137 81t194 30q107 0 191 -28.5t143 -81.5t89 -127t30 -162q0 -61 -14.5 -111t-40.5 -91q-55 -83 -148 -114q69 -17 118 -53.5t81 -85.5t47.5 -105t15.5 -121q0 -89 -29 -174t-92 -151q-64 -68 -161 -106t-231 -38zM656 875q69 0 115 20.5 t75 54.5t41.5 77t12.5 94q0 44 -10.5 88.5t-38.5 76.5q-14 16 -33.5 29.5t-40.5 21.5q-23 9 -51 14t-66 5q-75 0 -121.5 -19t-73.5 -51q-26 -32 -37.5 -74t-11.5 -93q0 -47 10.5 -91.5t37.5 -77.5q27 -34 74.5 -54.5t117.5 -20.5z" />
-<glyph unicode="&#x552;" d="M155 1493h203v-373h760v-175h-760v-945h-203v1493z" />
-<glyph unicode="&#x553;" d="M518 158q-132 6 -219 48t-140 123q-48 74 -68.5 179t-20.5 255q0 142 19.5 251.5t70.5 187.5q51 79 137 121.5t221 47.5v122h193v-122q135 -5 222 -48t138 -121t71 -187.5t20 -249.5t-20 -250t-71 -188t-138 -121.5t-222 -48.5v-157h-193v158zM518 1203 q-73 -3 -121.5 -26.5t-77.5 -74.5q-30 -52 -42 -134.5t-12 -201.5q0 -120 12 -203.5t43 -139.5q29 -54 76.5 -79t121.5 -28v887zM711 316q73 3 122 28.5t78 79.5t41 137t12 204t-12 203t-41 134q-29 51 -78 74.5t-122 26.5v-887z" />
-<glyph unicode="&#x554;" d="M227 244h-191v175h191v661q0 96 27.5 175.5t85.5 139.5q60 61 148 93t208 32q126 0 214 -33.5t145 -93.5t84 -140t27 -177t-27 -176t-85 -139q-56 -57 -140.5 -92t-197.5 -35q-45 0 -84.5 6.5t-77.5 20.5q-84 32 -125 84v-326h724v-175h-724v-244h-202v244zM706 798 q78 0 127 20.5t77 54.5q29 36 41 88t12 116t-12 114.5t-42 87.5q-30 38 -81 57q-54 20 -130 20q-78 0 -129.5 -20t-82.5 -56t-43.5 -86.5t-12.5 -110.5q0 -66 14.5 -116.5t46.5 -88.5t84.5 -59t130.5 -21z" />
-<glyph unicode="&#x555;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q83 0 136.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 162.5t-4.5 161.5t-13.5 128.5t-21.5 100.5t-28.5 77.5 q-35 72 -88.5 106.5t-131.5 34.5q-79 0 -133 -35t-88 -107q-68 -143 -68 -469q0 -165 16.5 -280t51.5 -188q33 -70 86.5 -106t133.5 -36z" />
-<glyph unicode="&#x556;" d="M628 -29q-122 0 -205.5 12t-143.5 41q-67 32 -108 84.5t-63 120.5t-29.5 145.5t-7.5 162.5v19h194v-19q0 -54 2 -97.5t6.5 -79.5t12.5 -65t21 -54q26 -51 75.5 -79.5t135.5 -28.5v819q-197 0 -287 66t-90 205q0 69 21.5 120t69.5 85q93 65 297 65h182v-373 q69 -3 123 -13.5t96.5 -28.5t74.5 -42.5t57 -56.5q57 -74 78.5 -184.5t21.5 -254.5q0 -88 -8.5 -166t-31.5 -145q-23 -65 -63.5 -118.5t-103.5 -86.5q-59 -31 -141 -43q-42 -6 -91 -8t-95 -2zM518 1329q-48 0 -81 -3.5t-54 -14.5t-31 -32t-10 -56t10 -55t31 -31t54 -14 t81 -3v209zM711 133q82 0 132 26.5t77 77.5t35.5 125.5t8.5 179.5q0 104 -8.5 181.5t-35.5 128.5t-77 74t-132 23v-816z" />
-<glyph unicode="&#x559;" d="M754 1007q-58 0 -108 21.5t-87 58.5t-58 87.5t-21 107.5t21 107t58 87t87 58.5t108 21.5v-123q-32 0 -59.5 -12t-48 -32t-32.5 -48t-12 -59q0 -32 12 -59.5t32.5 -48t48 -32.5t59.5 -12v-123z" />
-<glyph unicode="&#x55a;" d="M552 1341v152h211v-152l-164 -319h-129z" />
-<glyph unicode="&#x55b;" d="M659 1645h198l-325 -376h-154z" />
-<glyph unicode="&#x55c;" d="M225 1265q0 60 20.5 114t57.5 98q42 49 93.5 77.5t107.5 42.5q6 2 30.5 7.5t80.5 18.5q28 6 56.5 15.5t55 22.5t49.5 29t41 36q17 19 27 42.5t11 60.5h152q0 -57 -19 -110.5t-55 -98.5q-38 -48 -86.5 -75.5t-99.5 -43.5q-29 -9 -66.5 -17.5t-66.5 -14.5t-59 -14 t-57 -19.5t-49.5 -26t-38.5 -34.5q-14 -18 -23.5 -44.5t-9.5 -65.5h-152v0z" />
-<glyph unicode="&#x55d;" d="M377 1638h198l281 -376h-154z" />
-<glyph unicode="&#x55e;" d="M792 1256q-42 0 -82 10t-77 35q-34 23 -61 59.5t-41 93.5h165q5 -29 30.5 -45t60.5 -16q26 0 45.5 8.5t31.5 22.5q21 25 21 73q0 40 -15 71.5t-41 52.5q-53 42 -139 42q-23 0 -48 -3t-49 -10l-2 -1q-130 -32 -192.5 -129.5t-62.5 -254.5h-158q0 120 27.5 207t78.5 153 q54 69 124.5 111t151.5 62q61 15 127 15q69 0 133 -17.5t117 -56.5q52 -38 84.5 -97t32.5 -138q0 -59 -18 -103t-49 -74q-34 -33 -83 -52t-112 -19z" />
-<glyph unicode="&#x55f;" d="M188 1556h140v-169h716v-122h-856v291z" />
-<glyph unicode="&#x561;" d="M344 -27q-62 0 -108 22t-77 81q-14 27 -24.5 63t-17.5 83.5t-10.5 109t-3.5 139.5v649h168v-641q0 -119 6 -192q3 -37 8 -66.5t17.5 -50.5t34 -32t57.5 -11q45 0 69.5 16t38.5 45q16 32 23.5 100t7.5 191v641h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33 q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-1120h-167v96q-68 -123 -198 -123q-68 0 -120.5 33.5t-81.5 107.5q-35 -72 -85.5 -106.5t-132.5 -34.5z" />
-<glyph unicode="&#x562;" d="M193 1120h184v-168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-244h-185v244q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-490h682v-143h-682v-426h-184v1546z" />
-<glyph unicode="&#x563;" d="M806 139q-45 -85 -120.5 -128.5t-179.5 -43.5q-100 0 -180 40.5t-137 116.5q-57 77 -86.5 184t-29.5 244q0 138 29.5 247t86.5 186t137 117.5t180 40.5q102 0 178 -42.5t122 -127.5l18 147h167v-977h168v-143h-168v-426h-185v565zM536 123q135 0 202.5 108.5t67.5 323.5 t-67.5 323.5t-202.5 108.5q-134 0 -201 -108q-67 -109 -67 -324q0 -432 268 -432z" />
-<glyph unicode="&#x564;" d="M855 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-633h-184v1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-551h148v-143h-148v-426h-185v1120z" />
-<glyph unicode="&#x565;" d="M522 -29q-173 0 -255.5 112t-82.5 341v1132h184v-436h721v-143h-721v-553q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v235h185v-720h-185v168q-49 -97 -132.5 -147t-200.5 -50z" />
-<glyph unicode="&#x566;" d="M836 139q-45 -85 -120.5 -128.5t-179.5 -43.5q-100 0 -180 40.5t-137 116.5q-57 77 -86.5 184t-29.5 244q0 138 29.5 247t86.5 186t137 117.5t180 40.5q102 0 178 -42.5t122 -127.5l18 147h167v-1401h168v-145h-353v565zM566 123q135 0 202.5 108.5t67.5 323.5 t-67.5 323.5t-202.5 108.5q-134 0 -201 -108q-67 -109 -67 -324q0 -432 268 -432z" />
-<glyph unicode="&#x567;" d="M227 1556h184v-436h634v-143h-634v-829h549v-148h-733v1556z" />
-<glyph unicode="&#x568;" d="M183 1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-916h682v-143h-866v1546z" />
-<glyph unicode="&#x569;" d="M106 1120h166l18 -170q34 58 70.5 96t79.5 61q77 40 190 40q117 0 200 -41.5t142 -117.5q61 -79 94.5 -187.5t38.5 -241.5h101v-143h-104q-11 -131 -46.5 -216.5t-86.5 -136.5t-111.5 -71.5t-126.5 -20.5q-69 0 -126 19.5t-99 56.5t-63.5 89t-21.5 119q0 77 26.5 134.5 t70.5 95.5t100 56t116 18h201q-2 109 -25.5 188t-62.5 132q-86 116 -256 116q-71 0 -128.5 -21t-95.5 -66t-57.5 -116t-19.5 -173v-1045h-184v1546zM731 107q40 0 72.5 16t58.5 53q26 38 43.5 96t24.5 144h-196q-26 0 -51 -10t-45 -30q-20 -21 -32.5 -51.5t-12.5 -70.5 q0 -30 8 -56.5t25 -46.5q16 -19 41 -31.5t64 -12.5z" />
-<glyph unicode="&#x56a;" d="M551 -29q-123 0 -208.5 44t-141.5 123q-57 81 -82.5 188t-25.5 228q0 120 25 220t80 178q55 77 141.5 122.5t209.5 45.5h277v436h185v-436h168v-143h-168v-472q0 -115 -26.5 -212t-83.5 -169t-144.5 -112.5t-205.5 -40.5zM555 127q67 0 119 29t87 87q33 56 49 135t16 181 v418h-275q-60 0 -107.5 -29t-82.5 -83t-54 -131t-19 -182q0 -94 16 -173.5t49 -136.5q67 -115 202 -115z" />
-<glyph unicode="&#x56b;" d="M188 1556h184v-604q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-1059h-184v1982z" />
-<glyph unicode="&#x56c;" d="M407 1120h184v-1403h395v-143h-579v1546z" />
-<glyph unicode="&#x56d;" d="M104 1556h167v-532q35 62 83.5 92.5t117.5 30.5q67 0 112.5 -28t71.5 -81q26 -54 35 -130.5t9 -176.5v-252q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-1120h-167v96q-35 -62 -83.5 -92.5 t-117.5 -30.5q-67 0 -112 28t-71 81q-26 54 -35.5 130.5t-9.5 176.5v252q0 73 -2 124t-6 85t-9.5 54t-11.5 33q-13 26 -37.5 41t-64.5 15q-43 0 -65.5 -17t-34.5 -44q-17 -37 -23.5 -108t-6.5 -183v-1067h-167v1982z" />
-<glyph unicode="&#x56e;" d="M615 -29q-126 0 -215 43.5t-147 117.5q-60 75 -88 177.5t-28 226.5q0 135 30.5 236t83.5 172t122 111.5t150 55.5l-271 179l207 289l148 -98l-106 -151l321 -210h271v-170h-90q32 -48 51.5 -105t28.5 -111q4 -27 7 -54t4 -51t1.5 -43t0.5 -30q0 -138 -27.5 -243.5 t-87.5 -180.5q-57 -72 -148 -116.5t-218 -44.5zM614 127q78 0 134 32t91 89q31 52 46.5 127t15.5 186q0 12 -0.5 33.5t-2.5 47t-5.5 54.5t-10.5 56q-13 53 -40 104.5t-73 93.5h-153q-78 0 -132.5 -32.5t-88.5 -89.5t-49.5 -132.5t-15.5 -160.5q0 -83 15 -157t49 -130 q35 -59 89.5 -90t130.5 -31z" />
-<glyph unicode="&#x56f;" d="M859 168q-49 -97 -132.5 -147t-200.5 -50q-173 0 -255.5 112t-82.5 341v1132h184v-1132q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v635h185v-1546h-185v594z" />
-<glyph unicode="&#x570;" d="M189 1556h184v-604q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1556z" />
-<glyph unicode="&#x571;" d="M540 -30q-89 0 -158 32.5t-117 92.5t-73.5 142t-25.5 182q0 196 97.5 371t280.5 331q-57 7 -99 29.5t-70 54.5t-41.5 70.5t-13.5 79.5q0 32 8.5 63t26.5 59l51 79h199l-57 -85q-32 -49 -32 -97q0 -55 38 -93q18 -18 43 -28.5t57 -10.5t65 11q27 18 55 36t57 35v-177 q-21 -13 -41.5 -26.5t-41.5 -27.5q90 -53 150 -116.5t95 -135.5q35 -73 49 -155t14 -173v-513h-184v172q-20 -45 -51.5 -81.5t-73.5 -63.5q-40 -26 -92 -41.5t-115 -15.5zM594 131q72 0 126 27.5t88 74.5q32 44 48 105t16 132v86q0 51 -10 111.5t-37 120.5t-74.5 113.5 t-122.5 92.5q-61 -57 -108.5 -116.5t-83.5 -127.5q-37 -69 -58 -143t-21 -159q0 -65 13.5 -123t42.5 -102q30 -46 74 -69t107 -23z" />
-<glyph unicode="&#x572;" d="M865 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-633h-184v1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-977h149v-143h-334v1120z" />
-<glyph unicode="&#x573;" d="M553 -29q-96 0 -162 32.5t-111 88.5q-46 57 -68.5 132.5t-22.5 185.5q0 61 7 131.5t21 144.5t34.5 148t47.5 143h-145v143h210q51 94 113 174t137 139t161.5 91t180.5 32q27 0 51 -3q11 -2 20 -3.5t17 -4.5v-151q-20 9 -48 14t-54 5q-57 0 -110.5 -22.5t-99.5 -57.5 q-49 -38 -96.5 -93.5t-86.5 -123.5q121 -10 216.5 -49.5t163.5 -106.5t104 -158t36 -206v-596h-166l-18 168q-24 -45 -55 -80.5t-72 -61.5t-91.5 -40.5t-113.5 -14.5zM614 131q78 0 129 30t83 79q32 48 45.5 108.5t13.5 121.5v139q0 76 -22.5 140.5t-71.5 112.5t-126 77 t-186 36q-26 -61 -45.5 -127.5t-32.5 -134.5t-20 -134.5t-7 -127.5q0 -53 5 -93t14.5 -70.5t23 -52.5t30.5 -40q63 -64 167 -64z" />
-<glyph unicode="&#x574;" d="M482 -29q-173 0 -255.5 112t-82.5 341v696h184v-696q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v1071h353v-143h-168v-1413h-167l-18 168q-49 -97 -132.5 -147t-200.5 -50z" />
-<glyph unicode="&#x575;" d="M217 -270h234q180 0 180 250v1140h184v-1140q0 -197 -88.5 -301.5t-255.5 -104.5h-254v156z" />
-<glyph unicode="&#x576;" d="M530 -29q-173 0 -255.5 112t-82.5 341v989h-168v143h352v-1132q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v635h185v-1120h-167l-18 168q-49 -97 -132.5 -147t-200.5 -50z" />
-<glyph unicode="&#x577;" d="M352 -426q-42 0 -76 13.5t-58 37.5q-24 23 -37 54.5t-13 65.5q0 54 31 109t79 110t111.5 117t129.5 125q69 66 130.5 130t111.5 131q51 68 80 134t29 139q0 51 -17 99t-59 85q-38 34 -92 52t-117 18q-47 0 -83 -10t-68 -27q-35 -19 -65.5 -46t-52.5 -61l-136 101 q72 92 172.5 144.5t241.5 52.5q97 0 183 -27t149 -81q64 -55 96 -130.5t32 -163.5q0 -85 -28 -158.5t-77 -147.5q-51 -76 -111 -143t-121 -129l-24.5 -24.5t-31.5 -31t-34.5 -33t-32.5 -30.5l-54 -52t-51.5 -50.5t-45 -47t-34.5 -41.5q-29 -39 -29 -65q0 -8 3.5 -21 t13.5 -25t26 -21t42 -9h539v-143h-652v0z" />
-<glyph unicode="&#x578;" d="M189 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120z" />
-<glyph unicode="&#x579;" d="M412 -426q-34 0 -63.5 10t-55.5 33q-24 22 -37.5 53t-13.5 80q0 55 17 123t47 140t72 147.5t88 141.5q48 69 102 133.5t107 115.5q-45 0 -99.5 16t-102.5 51t-80.5 88.5t-32.5 129.5q0 60 24.5 121.5t79.5 116.5l95 96l123 -113l-31 -30q-47 -45 -76.5 -93t-29.5 -95 q0 -41 21.5 -68t52.5 -44q33 -19 73.5 -27.5t80.5 -8.5q35 0 65.5 5.5t53.5 14.5l63 -113q-112 -91 -206.5 -197.5t-163.5 -213.5q-35 -53 -62 -104t-45.5 -97.5t-28.5 -87t-10 -71.5q0 -46 24 -77q11 -15 27 -24t37 -9h463v-143h-578v0z" />
-<glyph unicode="&#x57a;" d="M957 96q-68 -123 -198 -123q-68 0 -120.5 33.5t-81.5 107.5q-35 -72 -85.5 -106.5t-132.5 -34.5q-62 0 -108 22t-77 81q-14 27 -24.5 63t-17.5 83.5t-10.5 109t-3.5 139.5v649h168v-641q0 -119 6 -192q3 -37 8 -66.5t17.5 -50.5t34 -32t57.5 -11q45 0 69.5 16t38.5 45 q16 32 23.5 100t7.5 191v641h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-1546h-167v522z" />
-<glyph unicode="&#x57b;" d="M363 -426q-38 0 -71.5 13t-57.5 33t-39 49.5t-15 69.5q0 39 14.5 76t37 71.5t49.5 66.5t53 61q21 23 39.5 49t29.5 70q8 29 9.5 55.5t1.5 44.5q0 33 -3 60t-10 52t-19 49.5t-31 51.5q-14 21 -30 41.5t-30 37.5q-38 47 -63 84t-42 79q-8 20 -13 43t-5 53q0 76 35 143.5 t97 118.5q57 47 135.5 74.5t174.5 27.5q41 0 83.5 -6t84 -18.5t80.5 -32.5t74 -48q66 -54 99.5 -126.5t33.5 -163.5q0 -88 -29 -163.5t-76 -147.5q-48 -74 -108 -141t-124 -131q-27 -27 -59 -58t-64 -61l-66.5 -63t-50 -49t-38 -40.5t-30.5 -37.5q-14 -20 -21.5 -36.5 t-7.5 -33.5q0 -20 9.5 -34.5t22.5 -23.5t27.5 -12.5t25.5 -3.5h539v-143h-652zM512 188q63 61 128.5 126t119.5 134t87.5 140t33.5 152q0 60 -20.5 107.5t-58.5 80.5q-39 34 -90 50t-108 16q-54 0 -97 -13.5t-75 -39.5q-36 -29 -56 -68t-20 -81q0 -29 12 -61.5t42 -77.5 q16 -23 30.5 -43t18.5 -25q26 -35 50 -74.5t38 -77.5q15 -41 15 -85q0 -80 -50 -160z" />
-<glyph unicode="&#x57c;" d="M182 1120h166l18 -172q49 100 130 149.5t199 49.5q103 0 173.5 -34.5t115.5 -97.5t66.5 -150t21.5 -188q0 -79 -13 -152.5t-42 -141.5q-27 -64 -68 -123t-95 -117h297v-143h-515v132q63 52 109 106.5t76 115.5q29 58 44 125t15 154q0 68 -12 133t-45 117q-32 50 -80.5 77 t-117.5 27q-68 0 -115 -26t-79 -71t-48.5 -106t-16.5 -131v-653h-184v1120z" />
-<glyph unicode="&#x57d;" d="M528 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
-<glyph unicode="&#x57e;" d="M853 168q-49 -97 -132.5 -147t-200.5 -50q-173 0 -255.5 112t-82.5 341v696h184v-696q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v1071h185v-1837h172v-145h-357v594z" />
-<glyph unicode="&#x57f;" d="M333 -27q-130 0 -183 107q-26 54 -36 132t-10 181v727h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-96q37 66 86 94.5t115 28.5q129 0 182 -107q26 -54 36 -132t10 -181v-727 h-168v641q0 71 -2 121.5t-6 85t-9 55.5t-11 34q-14 29 -41.5 42.5t-63.5 13.5q-34 0 -55.5 -11.5t-34.5 -32.5t-19.5 -49t-10.5 -61q-4 -32 -6 -73t-2 -92v-674h-167v96q-37 -66 -86 -94.5t-114 -28.5z" />
-<glyph unicode="&#x580;" d="M188 1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-1059h-184v1546z" />
-<glyph unicode="&#x581;" d="M597 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116t-86.5 182t-30.5 239t30 238.5t86.5 181.5t137 116t181.5 41q103 0 178.5 -43.5 t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM616 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
-<glyph unicode="&#x582;" d="M309 1120h184v-977h550v-143h-734v1120z" />
-<glyph unicode="&#x583;" d="M533 96q-37 -66 -86 -94.5t-114 -28.5q-130 0 -183 107q-26 54 -36 132t-10 181v727h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v1077h167v-532q37 66 86 94.5t115 28.5q129 0 182 -107 q26 -54 36 -132t10 -181v-727h-168v641q0 71 -2 121.5t-6 85t-9 55.5t-11 34q-14 29 -41.5 42.5t-63.5 13.5q-34 0 -55.5 -11.5t-34.5 -32.5t-19.5 -49t-10.5 -61q-4 -32 -6 -73t-2 -92v-1100h-167v522z" />
-<glyph unicode="&#x584;" d="M199 -327h-120v143h120v1304h167l18 -143q46 85 122 127.5t178 42.5q100 0 180 -40.5t137 -117.5t86.5 -186t29.5 -248q0 -134 -28.5 -241.5t-86.5 -185.5q-57 -76 -136.5 -116.5t-182.5 -40.5q-208 0 -299 170v-325h754v-143h-754v-99h-185v99zM656 127q134 0 201 109 q67 107 67 323q0 432 -268 432q-136 0 -204 -108.5t-68 -323.5t68 -323.5t204 -108.5z" />
-<glyph unicode="&#x585;" d="M616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5 q0 -214 71.5 -323t212.5 -109z" />
-<glyph unicode="&#x586;" d="M481 -5q-80 0 -142.5 16t-115.5 42q-56 28 -103.5 66.5t-94.5 90.5l123 128q33 -45 68.5 -81.5t75.5 -62.5q43 -29 88.5 -42.5t100.5 -13.5v814q-99 0 -176 22.5t-132 62.5t-84 96t-29 125q0 68 28.5 124.5t85.5 96.5q112 77 316 77h175v-441q139 0 235.5 -35.5 t158.5 -104.5t90 -168.5t28 -228.5t-28 -236t-89 -185t-158 -120t-237 -42v-421h-184v421zM481 1414q-125 0 -183 -39.5t-58 -106.5q0 -72 61 -112.5t180 -40.5v299zM665 138q94 0 157.5 33t102.5 92q38 59 54.5 138.5t16.5 176.5q0 88 -14 158t-52 118t-101.5 73t-163.5 25 v-814z" />
-<glyph unicode="&#x587;" d="M450 -29q-173 0 -255.5 112t-82.5 341v1132h184v-1132q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v635h185v-977h232v-143h-417v168q-49 -97 -132.5 -147t-200.5 -50z" />
-<glyph unicode="&#x589;" d="M541 596q-30 0 -30 30v194q0 30 30 30h151q30 0 30 -30v-194q0 -30 -30 -30h-151zM541 0q-30 0 -30 30v194q0 30 30 30h151q30 0 30 -30v-194q0 -30 -30 -30h-151z" />
-<glyph unicode="&#x58a;" d="M356 643q64 -31 127 -45.5t127 -14.5q66 0 132.5 15.5t134.5 44.5v-164q-68 -29 -134.5 -44t-133.5 -15q-63 0 -126.5 14.5t-126.5 44.5v164z" />
-<glyph unicode="&#xe3f;" d="M560 0h-376v1306h376v250h100v-251q90 -5 165 -26.5t129 -62t84.5 -101.5t30.5 -144q0 -121 -64.5 -188t-187.5 -84q145 -20 224 -110t79 -233q0 -173 -120 -260t-340 -95v-302h-100v301zM560 767v394h-180v-394h180zM660 769q46 4 85.5 15.5t67.5 34.5t44 60t16 92 q0 51 -14 85.5t-41.5 56t-67 32.5t-90.5 14v-390zM560 145v479h-180v-479h180zM660 146q66 3 115.5 16.5t82.5 40.5t49.5 69t16.5 103q0 65 -18.5 110.5t-52.5 74.5t-83 43.5t-110 18.5v-476z" />
-<glyph unicode="&#x10d0;" d="M609 0q-112 0 -196 30t-140.5 86.5t-84.5 137.5t-28 184q0 31 3 58t12 53t24.5 52.5t40.5 58.5h190q-26 -31 -42 -55.5t-26 -48t-13.5 -48.5t-3.5 -55q0 -71 17 -127.5t51 -97t85 -62t119 -21.5q136 0 204 84.5t68 236.5q0 116 -43.5 188.5t-145.5 113.5 q-293 102 -294 378h181q2 -161 127 -212q97 -37 166 -81t112 -100.5t63 -126t20 -157.5q0 -109 -29 -196t-87.5 -147.5t-145.5 -93t-204 -32.5z" />
-<glyph unicode="&#x10d1;" d="M621 0q-230 0 -346 138t-116 393q0 117 24.5 205t73 152t121.5 105t170 63v138q0 41 -14.5 66.5t-38 41.5t-52.5 24.5t-57 15.5q-71 17 -106 67t-35 149h181q0 -89 126 -116q161 -57 161 -242v-144q92 -32 160.5 -77.5t113.5 -110t67 -149.5t22 -195q0 -126 -28.5 -223.5 t-85 -164t-142 -101.5t-199.5 -35zM620 145q136 0 202 101t66 292q0 193 -66.5 285.5t-204.5 92.5q-272 0 -272 -374q0 -193 69 -295t206 -102z" />
-<glyph unicode="&#x10d2;" d="M638 -425q-137 0 -236.5 39t-164 103.5t-95.5 146t-31 167.5q0 88 32.5 173t99.5 152t168.5 109t239.5 44q25 19 45 44.5t34.5 54t22.5 59.5t8 61q0 35 -11.5 66.5t-37.5 55.5t-67 38.5t-101 14.5q-88 0 -133 -34.5t-45 -106.5q0 -42 15 -87l-137 -82q-23 38 -34.5 84.5 t-11.5 97.5q0 137 86 203.5t270 66.5q193 0 291 -72.5t98 -220.5q0 -81 -30 -143.5t-92 -104.5v-20q151 -56 225.5 -164t74.5 -280q0 -116 -33 -203t-95 -145.5t-151.5 -87.5t-203.5 -29zM616 -276q163 0 245 80t82 225q0 89 -28 152.5t-74 104.5t-104.5 60.5t-119.5 19.5 t-120 -19.5t-105 -60.5t-74.5 -105t-28.5 -153q0 -144 81.5 -224t245.5 -80z" />
-<glyph unicode="&#x10d3;" d="M780 -425q-51 94 -125 135t-155 41q-63 0 -123.5 -21.5t-111.5 -59.5l-44 105q41 44 124 62v11q-146 139 -218 324t-72 399q0 235 85 349.5t241 114.5q28 0 52 -4.5t46 -15.5t44 -30t47 -48h20q60 98 229 98q359 0 359 -469v-20q0 -506 -343 -506q-345 0 -345 527v234 q0 93 -73 93h-43q-129 0 -129 -316v-109q0 -127 23 -219t65 -157.5t100.5 -110t128.5 -77.5q80 -38 141 -68.5t110 -66t89.5 -81.5t79.5 -113zM831 185q81 0 119.5 61.5t38.5 194.5v212q0 241 -149 241h-71q-119 0 -119 -182v-247q0 -141 46.5 -210.5t134.5 -69.5z" />
-<glyph unicode="&#x10d4;" d="M631 -425q-117 0 -205.5 26.5t-147.5 76t-88.5 121t-29.5 161.5q0 41 7 76t23 66.5t43 61.5t68 62h188q-36 -30 -63 -59t-45 -60t-27 -65.5t-9 -75.5q0 -117 72 -183t218 -66q264 0 264 241v676q0 137 -59.5 203t-182.5 66q-113 0 -172.5 -55t-59.5 -167q0 -111 62 -212 l-176 -1q-30 40 -43 94t-13 108q0 94 34 164.5t90.5 117.5t128 70t146.5 23q79 0 154.5 -25.5t134.5 -76.5t95.5 -128.5t36.5 -181.5v-665q0 -198 -109.5 -295.5t-334.5 -97.5z" />
-<glyph unicode="&#x10d5;" d="M624 -425q-117 0 -204.5 26.5t-145.5 76t-87 120t-29 159.5q0 32 4.5 58.5t16.5 52.5t32.5 54t53.5 63h192q-34 -38 -56 -66.5t-34.5 -53.5t-17 -49t-4.5 -52q0 -115 68.5 -181t211.5 -66q127 0 196 55.5t69 167.5v98q0 243 -237 243h-73v140h73q57 0 99 20.5t70.5 54.5 t42.5 78t14 92q0 44 -12.5 86.5t-42 76t-76.5 54t-116 20.5q-51 0 -95 -12.5t-75.5 -37.5t-49.5 -63t-18 -88q0 -39 11.5 -93t34.5 -116h-161q-60 82 -60 208q0 172 109 258t311 86q217 0 322 -96t105 -273q0 -62 -13 -110.5t-41 -86.5t-71 -68.5t-104 -55.5v-20 q237 -44 237 -301v-79q0 -191 -115 -285.5t-335 -94.5z" />
-<glyph unicode="&#x10d6;" d="M640 0q-457 0 -457 503q0 331 200 405v20q-107 32 -153 105t-46 191q0 165 84 248.5t257 83.5q171 0 256 -81t85 -236q0 -82 -23.5 -142.5t-69.5 -103.5v-20q326 -45 326 -468q0 -505 -459 -505zM533 983q90 0 133 55t43 151q0 61 -15.5 104t-40.5 70t-57.5 39.5 t-65.5 12.5q-34 0 -66.5 -13t-57.5 -40.5t-40 -69.5t-15 -100q0 -98 45.5 -153.5t136.5 -55.5zM641 145q136 0 204.5 91.5t68.5 256.5q0 100 -23 172.5t-61.5 119t-87 68.5t-99.5 22t-100 -22t-87 -68.5t-61.5 -119.5t-23.5 -174q0 -165 67.5 -255.5t202.5 -90.5z" />
-<glyph unicode="&#x10d7;" d="M409 0q-174 0 -269 130t-95 389v30q0 242 94 364t280 122q74 0 129 -22t95 -77h14q43 56 90.5 77.5t107.5 21.5q151 0 232 -112.5t81 -338.5v-67q0 -350 -239 -517h-162q212 174 212 496v117q0 281 -132 281h-33q-83 0 -83 -182v-220q0 -254 -79 -373t-243 -119zM405 145 q165 0 165 243v361q0 75 -16.5 110t-51.5 35l-87 -1q-91 -1 -135.5 -66.5t-44.5 -205.5v-189q0 -148 41.5 -217.5t128.5 -69.5z" />
-<glyph unicode="&#x10d8;" d="M396 0q-124 108 -180 244.5t-56 306.5q0 494 459 494q455 0 455 -491q0 -174 -58 -312.5t-182 -241.5h-146q49 63 86.5 133.5t63 143.5t38.5 146.5t13 141.5q0 71 -15 132.5t-47.5 107t-84 71.5t-124.5 26q-129 0 -200.5 -87.5t-71.5 -262.5q0 -284 198 -552h-148v0z" />
-<glyph unicode="&#x10d9;" d="M630 -423q-236 0 -354 106.5t-118 300.5q0 39 5.5 73t18.5 65t34.5 60t53.5 59h173q-25 -29 -43.5 -58t-30.5 -59t-18 -63t-6 -71q0 -130 71 -201t213 -71q259 0 259 252v50q0 272 -238 272h-65v152h65q115 0 171.5 50t56.5 141q0 121 -102.5 179t-319.5 58v154 q301 0 451.5 -96.5t150.5 -277.5q0 -54 -14 -97t-45.5 -76t-82.5 -56.5t-124 -37.5v-20q139 -24 211.5 -109.5t72.5 -235.5v-50q0 -393 -446 -393z" />
-<glyph unicode="&#x10da;" d="M762 -425q-12 56 -40 98.5t-66.5 71t-83.5 42.5t-91 14q-53 0 -100.5 -18.5t-81.5 -56.5l-77 95q61 90 174 104l13 14q-125 130 -187 293.5t-62 341.5q0 238 113 354.5t339 116.5q233 0 347.5 -117.5t114.5 -334.5q0 -42 -4 -70.5t-11.5 -51.5t-18.5 -43.5t-25 -44.5 q-16 -28 -30 -66.5t-14 -104.5q0 -20 1.5 -38t3.5 -38l-159 -1q-6 48 -6 90q0 30 2.5 52t7 39.5t10 31.5t12.5 28q10 21 18.5 41t14.5 43.5t9.5 51.5t3.5 66q0 166 -67.5 246t-206.5 80t-204.5 -84t-65.5 -262q0 -127 29 -226t73.5 -175.5t98 -133t103.5 -96.5 q57 -47 111.5 -92.5t97 -90t68.5 -87t26 -82.5h-190v0z" />
-<glyph unicode="&#x10db;" d="M616 0q-234 0 -352 130.5t-118 394.5q0 260 115.5 390.5t336.5 130.5q105 0 170 -30t101 -95h20v258q0 62 -24.5 107t-64 74t-89.5 42.5t-101 13.5q-45 0 -88 -10.5t-76 -30t-53 -48t-20 -64.5v-62h-187v62q0 294 415 294q463 0 463 -378v-684q0 -249 -111.5 -372 t-336.5 -123zM628 145q121 0 184.5 88.5t63.5 272.5q0 196 -69 296t-194 100q-72 0 -125 -32t-87 -85t-50.5 -120.5t-16.5 -137.5q0 -72 17 -140.5t53 -122t91.5 -86.5t132.5 -33z" />
-<glyph unicode="&#x10dc;" d="M607 0q-221 0 -334.5 122.5t-113.5 367.5v694q-2 347 332 347h462v-143h-482q-141 0 -141 -176v-294h35q35 66 95 97t167 31q219 0 333 -127t114 -388q0 -259 -116 -395t-351 -136zM609 146q141 0 210.5 98.5t69.5 289.5q0 187 -68.5 278.5t-205.5 91.5 q-140 0 -208.5 -93t-68.5 -285q0 -380 271 -380z" />
-<glyph unicode="&#x10dd;" d="M254 0q-199 224 -199 461v102q0 118 24.5 206.5t71 147.5t113 88.5t150.5 29.5q36 0 63 -5.5t49.5 -18t43 -32.5t41.5 -48h17q22 31 42.5 51.5t42 32t46 16t54.5 4.5q85 0 152.5 -29.5t115 -88.5t72.5 -148t25 -208v-107q0 -236 -188 -454h-179q179 193 179 399v281 q0 215 -153 214h-75q-64 0 -64 -207v-277h-160v277q0 207 -66 207h-77q-148 0 -148 -228v-260q0 -110 49.5 -209.5t151.5 -196.5h-194v0z" />
-<glyph unicode="&#x10de;" d="M619 0q-220 0 -339.5 107.5t-119.5 321.5q0 189 101 278h175q-91 -125 -91 -276q0 -143 72.5 -214.5t203.5 -71.5q137 0 202 79.5t65 244.5q0 170 -68 252.5t-208 82.5h-63v135h82q52 0 92.5 13.5t68 36.5t41.5 53t14 63q0 34 -16.5 69t-51 65t-87 51.5t-124.5 30.5 q-292 54 -292 230h172q0 -71 239 -112q171 -20 257 -94t86 -210q0 -96 -44.5 -163t-141.5 -99v-20q61 -29 104.5 -65.5t72 -84.5t42 -109t13.5 -137q0 -223 -112.5 -340t-344.5 -117z" />
-<glyph unicode="&#x10df;" d="M607 -423q-223 0 -335 91t-113 276h187q-2 -227 263 -227q145 0 218 66.5t73 200.5v936l-435 -52v-60q110 -43 165.5 -126t55.5 -192q0 -159 -127.5 -237t-399.5 -79v167q100 0 169 9t111 29t60.5 51t18.5 75q0 51 -23 99.5t-68.5 90t-112.5 72.5t-155 48v130l916 129 v-1092q0 -405 -468 -405z" />
-<glyph unicode="&#x10e0;" d="M265 0q-210 210 -210 490v103q0 84 18 176.5t56 186t99 183.5t146 169.5t197 143.5t253 105l25 -148q-363 -83 -580 -435h24l86 61q165 0 237 -98h15q35 48 93 73t137 25q159 0 238 -109t79 -330v-142q0 -245 -208 -454h-197q216 184 216 403v193q0 298 -132 298h-88 q-65 0 -65 -167v-317h-160l1 317q2 167 -73 167h-124q-103 0 -103 -293v-165q0 -251 230 -436h-210v0z" />
-<glyph unicode="&#x10e1;" d="M618 0q-226 0 -342.5 129t-116.5 386v1006h182v-1006q0 -186 70.5 -278t206.5 -92q137 0 204 92t67 259q0 51 -6.5 90.5t-22.5 72.5t-41.5 60t-64.5 52q-24 16 -48.5 33t-44 39t-31.5 49.5t-12 63.5q0 73 53 142t153 129l87 -124q-77 -30 -109.5 -59t-32.5 -58 q0 -22 14.5 -43.5t37 -41.5t49.5 -39t52 -35q43 -28 72 -60.5t47 -72.5t26 -88.5t8 -109.5q0 -239 -113.5 -367.5t-343.5 -128.5z" />
-<glyph unicode="&#x10e2;" d="M598 -423q-131 0 -233.5 44.5t-173.5 133t-108.5 221.5t-37.5 309q0 319 126 496.5t380 219.5l-15 257h166l-15 -261q123 -20 216.5 -89t156.5 -170t95 -224.5t32 -252.5t-33.5 -252t-104.5 -219t-183 -154.5t-268 -58.5zM618 -283q193 0 290.5 144t97.5 423 q0 246 -77 396t-242 208l15 -539h-165l14 538q-163 -57 -240.5 -207t-77.5 -398q0 -281 95.5 -423t289.5 -142z" />
-<glyph unicode="&#x10e3;" d="M658 -423q-119 0 -208.5 27.5t-149.5 79.5t-90 127t-30 170q0 44 7 81t24 69t44.5 60t69.5 55h179q-39 -36 -65.5 -67.5t-42.5 -63t-23 -64t-7 -68.5q0 -124 73.5 -195t220.5 -71q260 0 260 240v746q0 46 -10.5 81.5t-27.5 60t-39 37t-45 12.5q-26 0 -51 -16t-44.5 -49 t-32 -84.5t-12.5 -121.5l-10 -193h-133l-9 193q0 269 -110 271q-37 -2 -55.5 -18t-37.5 -50q-6 -11 -13.5 -23t-18 -22t-25.5 -16t-35 -6q-73 0 -156 95l50 181q34 -53 58.5 -75.5t52.5 -22.5t44.5 16t30.5 34q18 24 40 36.5t57 12.5q28 0 52 -9t46 -30.5t42.5 -57 t40.5 -87.5h20q22 54 45.5 89.5t50.5 56.5t59 29t70 8q65 0 117.5 -20.5t89.5 -62t57 -104t20 -145.5v-746q0 -380 -440 -380z" />
-<glyph unicode="&#x10e4;" d="M655 -425q-430 0 -430 389h183q0 -247 249 -247h47q278 0 278 222v101q0 166 -57 168h-80v151h80q54 1 54 149v182q0 204 -100 204h-83q-59 0 -59 -123v-202q0 -123 -31 -213.5t-81 -150t-114.5 -88.5t-130.5 -29q-63 0 -123.5 26.5t-107.5 78t-75.5 128t-28.5 176.5v128 q0 205 94.5 307.5t269.5 102.5q75 0 126 -21.5t90 -77.5h17q96 99 236 99q145 0 217.5 -101.5t72.5 -290.5q0 -137 -39 -219.5t-119 -126.5v-20q161 -92 161 -233v-105q0 -364 -460 -364h-56zM409 215q159 0 159 261v251q0 167 -94 167h-77q-162 0 -162 -262v-120 q0 -149 44 -223t130 -74z" />
-<glyph unicode="&#x10e5;" d="M598 -425q-115 0 -202.5 29t-146.5 82t-89 127.5t-30 166.5q0 41 6.5 74t22 62.5t41.5 57.5t64 58l176 -1q-35 -35 -59 -65.5t-38.5 -59.5t-21 -59t-6.5 -64q0 -60 18.5 -109t54 -84t88.5 -54t122 -19q143 0 206.5 86.5t64.5 263.5l1 296q1 274 -72.5 407t-233.5 133 q-88 0 -134 -42.5t-46 -140.5q0 -32 5 -67.5t15.5 -69.5t26 -63.5t35.5 -49.5h-179q-37 57 -53.5 126.5t-16.5 137.5q0 84 23 143.5t61 97t88.5 54.5t106.5 17q52 0 103.5 -13.5t98 -38.5t86.5 -60t68 -78h17l1 665h173v-1454q0 -253 -109.5 -372.5t-335.5 -119.5z" />
-<glyph unicode="&#x10e6;" d="M773 -425q-8 46 -33.5 85t-62.5 67.5t-82.5 44t-94.5 15.5q-51 0 -102 -19t-96 -61l-65 92q58 84 122 85v22q-304 261 -304 556v80q0 248 88 371t253 123q76 0 126.5 -26t88.5 -78h16q71 104 224 104q160 0 243.5 -113t83.5 -337v-70q0 -245 -169 -421l-140 -1 q120 166 120 341v219q0 240 -134 240h-100q-58 0 -58 -175v-309h-160v309q0 175 -65 175h-76q-151 0 -151 -262v-138q0 -125 31.5 -213t80.5 -150t107 -103t112 -71q78 -44 139.5 -81.5t110.5 -80t85.5 -95t64.5 -126.5z" />
-<glyph unicode="&#x10e7;" d="M628 -423q-234 0 -352 99.5t-118 300.5h188q0 -131 71.5 -196t211.5 -65q266 0 266 241v244h-20q-46 -50 -110 -74t-159 -24q-111 0 -195 32t-140.5 92t-84.5 145t-28 190q0 77 15.5 140t49.5 117t86.5 102t127.5 94h216q-85 -59 -143.5 -111.5t-95 -106.5t-53 -112 t-16.5 -127q0 -72 17 -128.5t52 -96.5t89 -61t128 -21q60 0 109 14.5t83.5 44t53 73.5t18.5 103v521h179v-1054q0 -190 -111 -283t-335 -93z" />
-<glyph unicode="&#x10e8;" d="M662 0q-130 0 -225 46t-157 120.5t-92 169.5t-30 194q0 98 29 191t86 165t142 116t198 44q93 0 160 -32t102 -98h20v289q0 213 -142 213q-141 0 -141 -210v-33h-157v35q0 52 -11 91t-30 65t-45 39t-57 13q-28 0 -47.5 -11.5t-31.5 -38t-17.5 -69.5t-5.5 -107h-155 q0 187 55.5 275.5t170.5 88.5q85 0 148 -47t95 -146h20q16 50 37 86.5t50.5 60t67.5 35t89 11.5q142 0 214 -82.5t72 -237.5l2 -759q1 -233 -104 -355t-310 -122zM637 145q131 0 192 88t61 272q0 203 -69.5 301t-207.5 98q-136 0 -201.5 -93t-65.5 -273q0 -200 76.5 -296.5 t214.5 -96.5z" />
-<glyph unicode="&#x10e9;" d="M160 1214q0 172 91.5 257t283.5 85q181 0 286.5 -78t119.5 -235q2 -96 -96 -257q60 -26 103.5 -71.5t72 -105t42 -131t13.5 -149.5q0 -177 -69.5 -305t-210.5 -224h-178q68 50 118.5 114.5t84.5 136.5t50.5 146.5t16.5 145.5q0 70 -16.5 132t-49 108t-81.5 73t-114 27 q-8 1 -16.5 1h-16.5q-258 0 -258 -297v-587h-178zM366 917q51 104 253 104q47 0 103 -6q56 135 56 209q-14 93 -75.5 142t-165.5 49q-103 0 -152 -51.5t-49 -162.5v-284h30z" />
-<glyph unicode="&#x10ea;" d="M636 -423q-278 0 -414 173.5t-136 533.5v97q0 324 209 680l145 -76q-82 -126 -123.5 -262.5t-41.5 -280.5v-158q0 -289 89 -428t272 -139q76 0 137.5 24t104.5 70.5t66 116t23 160.5q0 120 -42.5 176.5t-139.5 56.5h-184v136h176q83 0 123 47t40 127q0 39 -10 66 t-29.5 46.5t-50 34.5t-70.5 30q-22 8 -46.5 20t-45.5 35.5t-36 62t-16 100.5h183q0 -67 33 -106.5t97 -64.5q22 -9 51 -22.5t55 -37t43.5 -59.5t17.5 -90q0 -81 -44 -140t-127 -102v-20q55 -35 93.5 -70.5t62.5 -75.5t34.5 -87t10.5 -106q0 -107 -32.5 -193t-97 -147.5 t-160 -94.5t-220.5 -33z" />
-<glyph unicode="&#x10eb;" d="M593 0q-230 0 -342.5 127.5t-112.5 387.5q0 264 113 397.5t343 133.5q106 0 172 -28.5t91 -86.5h20v590h178v-1004q0 -260 -114 -388.5t-348 -128.5zM592 145q277 0 277 376q0 192 -70 287t-204 95q-137 0 -203.5 -97.5t-66.5 -289.5q0 -189 65 -280t202 -91z" />
-<glyph unicode="&#x10ec;" d="M589 0q-205 0 -316.5 132t-111.5 395v709q0 161 75 240.5t213 79.5q98 0 154.5 -45t89.5 -148h20q30 95 92.5 144t149.5 49q115 0 170 -88.5t55 -275.5h-153q0 64 -5.5 107t-17.5 69.5t-31.5 38t-47.5 11.5q-62 0 -102.5 -52t-40.5 -156v-35h-157v33q0 210 -141 210 q-142 0 -142 -213v-289h20q35 66 103.5 98t159.5 32q112 0 196 -44t140 -117t84.5 -166t28.5 -192q0 -98 -28.5 -193t-88 -169t-151 -119.5t-217.5 -45.5zM889 522q0 97 -24 169t-63 119.5t-89.5 71t-102.5 23.5q-48 0 -95 -20.5t-84.5 -64t-60.5 -110.5t-23 -161t23.5 -169 t62.5 -127t89.5 -79.5t104.5 -27.5q49 0 96 23.5t84 70.5t59.5 117.5t22.5 164.5z" />
-<glyph unicode="&#x10ed;" d="M618 -423q-230 0 -344 101t-114 284q0 36 4.5 64.5t14 54t25 50t37.5 50.5l143 -105q-38 -36 -38 -110q0 -62 23 -108.5t60.5 -77.5t86 -47t99.5 -16t100 16t87.5 48.5t62 81t23.5 113.5q0 84 -43 148t-133 115q-113 112 -116 213l-89 -19q-309 0 -309 328q0 333 321 333 l77 -9v436h157v-511q93 -58 95 -164h184v-162h-189q0 -105 -82 -160l-1 -72q2 -66 173 -170q71 -49 107 -124.5t36 -184.5q0 -194 -114 -295t-344 -101zM540 562q85 0 125 51q20 26 30 63.5t10 79.5q0 52 -14.5 90t-37.5 63t-53.5 36.5t-61.5 11.5t-61 -11.5t-53 -36.5 t-37.5 -63.5t-14.5 -93.5q0 -90 41.5 -140t126.5 -50z" />
-<glyph unicode="&#x10ee;" d="M638 0q-459 0 -459 525v996h171v-607h41q42 73 104.5 102.5t158.5 29.5q212 0 327 -130.5t115 -393.5q0 -260 -114 -391t-344 -131zM639 145q270 0 270 379q0 380 -270 380q-274 0 -274 -380q0 -379 274 -379z" />
-<glyph unicode="&#x10ef;" d="M613 -423q-114 0 -199 30t-142 86.5t-85 137.5t-28 183q0 43 5.5 79t18 69.5t33 67.5t50.5 75l144 -89q-20 -33 -32.5 -59t-19.5 -47.5t-9.5 -41.5t-2.5 -41q0 -73 23.5 -130.5t61.5 -97t86.5 -60.5t99.5 -21t100 21t87 61.5t61 98t23 131.5q0 47 -10.5 89.5t-34 83.5 t-60 82t-88.5 84q-171 173 -171 306v160l-327 120v180l327 -128v232h146v-269l336 -127v-177l-336 134v-125q0 -72 215 -258q52 -52 88.5 -99t59.5 -95t33 -98.5t10 -108.5q0 -101 -29 -182.5t-87 -138.5t-145 -87.5t-202 -30.5z" />
-<glyph unicode="&#x10f0;" d="M604 0q-464 0 -464 416v101h188v-101q-2 -276 267 -276q77 0 130 20t86 52.5t47.5 72.5t14.5 80q0 32 -8.5 61t-23 51.5t-35 36t-44.5 13.5h-251v150h251q25 0 44 10.5t31.5 27t19 38t6.5 43.5t-6.5 43.5t-19 38t-31.5 26.5t-44 10h-251v152h249q23 0 40 9.5t28.5 25.5 t17.5 37t6 44q0 29 -11 49t-39.5 34.5t-78.5 26t-127 24.5q-27 4 -67 14t-77 35t-63 70.5t-26 120.5h166q0 -38 23.5 -63.5t62.5 -41.5t88.5 -25.5t101.5 -16.5q26 -3 66 -11.5t77 -30t63.5 -62t26.5 -107.5q0 -145 -144 -191v-20q78 -27 116 -75t38 -114q0 -128 -148 -186 v-20q43 -27 73 -53.5t49 -56t27.5 -64t8.5 -76.5q0 -80 -28.5 -143t-85.5 -107.5t-142 -68t-198 -23.5z" />
-<glyph unicode="&#x10f1;" d="M660 -423q-143 0 -242.5 32t-161.5 97t-90 163.5t-28 232.5q0 48 3.5 108t10 127.5t17 139t24.5 140.5q8 40 13 75t5 85q0 91 -17 185.5t-51 200.5h185q58 -180 58 -377q0 -40 -2.5 -82.5t-8.5 -86.5q-14 -58 -23.5 -131t-15.5 -146.5t-8.5 -140t-2.5 -109.5 q0 -76 11.5 -144t48 -119t105.5 -81t184 -30q127 0 184 42t57 137q0 37 -8.5 70t-25 58t-41.5 39t-59 14h-136v142h136q134 0 134 142q0 74 -33 115.5t-99 41.5h-138v138h138q66 0 99 38.5t33 112.5q0 70 -32 103t-102 33h-136v145h136q65 0 99.5 31.5t34.5 73.5 q0 22 -11 45.5t-33.5 44.5t-58 37t-83.5 25q-145 34 -146 212h166q0 -23 15 -40.5t41 -32.5t60.5 -28t72.5 -26q17 -6 43.5 -17t52 -33.5t43.5 -58.5t18 -91q0 -80 -44 -131t-135 -68v-20q91 -21 135 -70.5t44 -133.5q0 -41 -11 -76.5t-33 -63.5t-55.5 -46.5t-79.5 -25.5 v-20q89 -17 134 -75t45 -139q0 -78 -43 -126.5t-136 -74.5v-20q88 -28 133.5 -94t45.5 -167q0 -153 -107.5 -227t-327.5 -74z" />
-<glyph unicode="&#x10f2;" d="M201 -60q149 0 229 89q-270 169 -270 492q0 129 39.5 227.5t104.5 164.5t147.5 99.5t168.5 33.5q85 0 167 -33t146.5 -99t103.5 -163.5t39 -226.5q0 -165 -69 -286.5t-212 -208.5q91 -94 235 -89v-209q-264 69 -414 263q-192 -192 -415 -263v209zM616 118q72 23 123.5 59 t84.5 86.5t49 116.5t16 150q0 180 -68.5 276t-205.5 96q-136 0 -203 -95.5t-67 -273.5q0 -83 15 -149.5t48 -117.5t84.5 -87.5t123.5 -60.5z" />
-<glyph unicode="&#x10f3;" d="M618 -283q268 0 268 263v32q0 299 -318 298h-114v160h114q148 0 218 93.5t68 263.5l-1 74l-480 -30v-204h-173v349l876 29q0 -465 -276 -649q276 -113 276 -384v-32q0 -101 -40 -176.5t-104.5 -126t-147 -76t-168.5 -25.5t-168 25t-146.5 75.5t-103.5 126.5t-39 177 l31 111l180 -20l-21 -91q2 -263 269 -263z" />
-<glyph unicode="&#x10f4;" d="M609 -425q-458 0 -458 405h190q0 -264 267 -264q269 0 269 264v55q0 236 -275 236h-156v157h156q276 10 276 425q-64 -20 -133 -28.5t-140 -8.5q-232 0 -343 89t-111 270q0 184 113 283.5t346 98.5v-142q-156 0 -234 -61.5t-78 -175.5q0 -112 75.5 -165.5t224.5 -53.5 q133 0 245 42t224 126v-264q0 -200 -76 -323t-232 -177v-20q309 -62 309 -308v-55q0 -405 -459 -405z" />
-<glyph unicode="&#x10f5;" d="M565 0q-451 0 -451 341q0 173 112.5 263.5t339.5 90.5h273v161h-273q-227 0 -339.5 92t-112.5 266t113 258.5t340 84.5q224 0 333 -82.5t109 -254.5v-216h114v-148h-114v-161h114v-178h-114v-182q0 -170 -109.5 -252.5t-334.5 -82.5zM839 1004v216q0 195 -267 195 q-137 0 -202.5 -49.5t-65.5 -152.5t65.5 -156t196.5 -53h273zM571 140q268 0 268 211v196h-273q-132 0 -197 -51.5t-65 -152.5q0 -203 267 -203z" />
-<glyph unicode="&#x10f6;" d="M360 -282q183 0 174 231v777q0 178 -77 178l-97 -1q-60 -1 -87.5 -47t-27.5 -141v-319q0 -217 128 -217v-148q-318 3 -318 379v240q0 396 305 396q184 0 251 -145h16q61 145 245 145q153 0 229.5 -99t76.5 -297v-244q0 -204 -77 -305t-220 -101q-70 0 -108.5 26.5 t-53.5 89.5h-15v-152q-10 -388 -344 -388v142zM864 145q65 0 95 39.5t30 127.5v417q0 175 -136 175h-76q-73 0 -73 -167v-381q0 -106 42 -158.5t118 -52.5z" />
-<glyph unicode="&#x10f7;" d="M623 -423q-143 0 -242 36t-160 96.5t-88 139.5t-27 164q0 75 19.5 144t60 129.5t102.5 111t146 86.5q35 15 72.5 28t73.5 27.5t68 32t56.5 41.5t39 55.5t14.5 74.5q0 34 -10 63.5t-30 51t-51 33.5t-74 12q-76 0 -122.5 -40t-46.5 -119l5 -56l-165 -21l-10 65 q0 158 88 236t254 78q91 0 157.5 -22.5t109.5 -60.5t63.5 -88t20.5 -106q0 -59 -22 -118t-64.5 -113t-106 -100.5t-145.5 -78.5q-80 -20 -138.5 -58.5t-97 -88t-57.5 -105.5t-19 -111q0 -54 18.5 -104.5t58 -89.5t100.5 -62.5t147 -23.5q73 0 131.5 18.5t99 55.5t62.5 93 t22 130q0 123 -64 177l154 92q49 -54 74.5 -125t25.5 -161q0 -104 -34.5 -182.5t-99.5 -131t-158.5 -79t-210.5 -26.5z" />
-<glyph unicode="&#x10f8;" d="M638 -423q-459 0 -459 396v1049h173v-564q0 -48 19.5 -83.5t55.5 -59.5t85.5 -36t109.5 -12q148 0 216.5 72t68.5 218q0 72 -16 133t-49 115t-82.5 102t-115.5 94l171 63q66 -53 118 -119t88 -138t55 -147.5t19 -147.5q0 -81 -26 -153.5t-80.5 -126.5t-140 -85.5 t-204.5 -31.5h-2q-184 0 -270 89h-20v-227q0 -65 23.5 -114t62 -81.5t88.5 -49t102 -16.5t102 16.5t89.5 49t63.5 81.5t24 114h187q-1 -400 -456 -400z" />
-<glyph unicode="&#x10f9;" d="M628 -425q-181 0 -267.5 76t-86.5 228q0 125 59 202t180 121q-211 44 -311.5 150t-100.5 266q0 111 43.5 193.5t114.5 138t161.5 83t185.5 27.5t186.5 -28t163 -82.5t115 -136t43.5 -188.5q0 -140 -86.5 -251.5t-275.5 -200.5q-84 -34 -140 -67.5t-90.5 -68.5t-49 -73.5 t-14.5 -82.5q0 -77 41.5 -121t131.5 -44q39 0 72 9t57 26.5t37.5 44t13.5 61.5v76h178v-76q0 -141 -94.5 -211.5t-266.5 -70.5zM612 326q166 22 240.5 97t74.5 206q0 140 -78.5 214t-237.5 74q-160 0 -239.5 -74.5t-79.5 -213.5t80 -211.5t240 -91.5z" />
-<glyph unicode="&#x10fa;" d="M751 -134q0 1 -6 8.5t-15 17.5t-19 21t-18 19q-28 27 -63.5 43.5t-88.5 16.5q-69 0 -117 -29.5t-81 -86.5l-130 74q67 102 183 126v30q-119 87 -177.5 213t-58.5 284q0 225 121 333t363 110q431 -35 431 -355q0 -184 -143 -464l-145 61q108 240 108 385q0 112 -64 171 t-196 59q-146 0 -214.5 -75.5t-68.5 -238.5q0 -136 49.5 -243t159.5 -199q177 -42 302 -189l-112 -93v1z" />
-<glyph unicode="&#x10fb;" d="M321 819q-30 0 -30 30v116q0 30 30 30h132q30 0 30 -30v-116q0 -30 -30 -30h-132zM786 456q-30 0 -30 30v114q0 30 30 30h126q30 0 30 -30v-114q0 -30 -30 -30h-126zM321 50q-30 0 -30 30v114q0 30 30 30h129q30 0 30 -30v-114q0 -30 -30 -30h-129z" />
-<glyph unicode="&#x10fc;" d="M606 757q-96 0 -148.5 71t-52.5 215v332q0 181 185 181h235v-82l-258 2q-70 0 -70 -81v-158l123 79q52 0 90.5 -23.5t64.5 -62.5t39 -89.5t13 -103.5q0 -52 -13 -102.5t-40 -90t-68.5 -63.5t-99.5 -24zM618 836q57 0 86.5 53.5t29.5 145.5q0 96 -30 142t-84 46 q-33 0 -56.5 -16.5t-38 -43.5t-21 -61.5t-6.5 -70.5q0 -37 7 -72t21.5 -62.5t37 -44t54.5 -16.5z" />
-<glyph unicode="&#x1e80;" d="M377 1852h184l197 -264h-154zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
-<glyph unicode="&#x1e81;" d="M215 1647h198l281 -376h-154zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
-<glyph unicode="&#x1e82;" d="M672 1856h186l-229 -264h-154zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
-<glyph unicode="&#x1e83;" d="M820 1647h198l-325 -376h-154zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
-<glyph unicode="&#x1e84;" d="M350 1650q-13 0 -22 9t-9 22v140q0 13 9 22t22 9h141q13 0 22 -9t9 -22v-140q0 -13 -9 -22t-22 -9h-141zM742 1650q-13 0 -22 9t-9 22v140q0 13 9 22t22 9h140q13 0 22 -9t9 -22v-140q0 -13 -9 -22t-22 -9h-140zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197 l-223 -1493h-191l-203 887l-202 -887h-191z" />
-<glyph unicode="&#x1e85;" d="M349 1320q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1320q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z " />
-<glyph unicode="&#x1ebc;" d="M442 1633h-125q0 100 52 160q51 59 137 59q29 0 66 -8q27 -7 79 -35l57 -30q41 -25 72 -25t51 26t20 66v6h125q0 -65 -24 -115t-66.5 -77t-98.5 -27q-29 0 -63 8q-28 7 -82 35l-57 33q-16 10 -41 20q-14 5 -29 5q-34 0 -53 -25q-20 -26 -20 -70v-6zM197 0v1493h886v-170 h-684v-442h654v-170h-654v-541h703v-170h-905z" />
-<glyph unicode="&#x1ebd;" d="M452 1377q-18 -37 -20 -118h-124q0 131 51 207q24 36 60.5 55.5t83.5 19.5q38 0 70 -14t69 -47l57 -55q23 -22 39 -30.5t31 -8.5q36 0 54 37q18 38 19 118h125q0 -131 -50 -206q-51 -76 -145 -76q-38 0 -70 14t-69 47l-57 55q-22 21 -37.5 30t-32.5 9q-36 0 -54 -37z M271 127q-147 158 -147 431q0 268 143 429q72 80 169.5 120t212.5 40q217 0 341 -144q123 -143 123 -397v-90h-797v-6q0 -182 96 -283q95 -100 268 -100q90 0 185.5 28t204.5 85v-183q-103 -42 -202 -65q-90 -21 -191 -21q-129 0 -231.5 39.5t-174.5 116.5zM929 660 q-4 164 -76 247q-36 42 -89 63t-119 21q-89 0 -158 -40t-111.5 -114.5t-52.5 -177.5z" />
-<glyph unicode="&#x1ef2;" d="M377 1852h184l197 -264h-154zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="&#x1ef3;" d="M227 1647h198l281 -376h-154zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-26 -67 -41 -106t-24 -62t-13 -34.5t-8.5 -23.5t-11 -30t-19.5 -52q-33 -87 -54.5 -142.5t-36.5 -91t-24.5 -55t-17.5 -33.5 q-43 -75 -112.5 -115.5t-163.5 -40.5h-148v154z" />
-<glyph unicode="&#x1ef8;" d="M422 1633h-125q0 100 52 160q51 59 137 59q29 0 66 -8q27 -7 79 -35l57 -30q41 -25 72 -25t51 26t20 66v6h125q0 -65 -24 -115t-66.5 -77t-98.5 -27q-29 0 -63 8q-28 7 -82 35l-57 33q-16 10 -41 20q-14 5 -29 5q-34 0 -53 -25q-20 -26 -20 -70v-6zM514 0v670l-477 823 h215l364 -659l363 659h217l-479 -823v-670h-203z" />
-<glyph unicode="&#x1ef9;" d="M461 1404q-18 -37 -20 -118h-124q2 135 52.5 208.5t140.5 73.5q39 0 70.5 -13.5t70.5 -47.5l57 -55q22 -19 38 -29q10 -6 16 -8t14 -2q38 0 56 37q18 38 19 118h125q-2 -135 -52.5 -208.5t-140.5 -73.5q-39 0 -70.5 13.5t-70.5 47.5l-57 55q-20 19 -38 30q-15 9 -30 9 q-38 0 -56 -37zM184 -426v154h109q80 0 127 47q19 19 50 79q26 51 67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-44 -112 -84 -217q-24 -63 -33 -91q-47 -134 -81 -210q-18 -41 -34 -71.5t-20 -37.5q-29 -51 -54.5 -77.5t-57.5 -43.5q-35 -18 -77.5 -28t-84.5 -10 h-148z" />
-<glyph unicode="&#x2000;" />
-<glyph unicode="&#x2001;" />
-<glyph unicode="&#x2002;" />
-<glyph unicode="&#x2003;" />
-<glyph unicode="&#x2004;" />
-<glyph unicode="&#x2005;" />
-<glyph unicode="&#x2006;" />
-<glyph unicode="&#x2007;" />
-<glyph unicode="&#x2008;" />
-<glyph unicode="&#x2009;" />
-<glyph unicode="&#x200a;" />
-<glyph unicode="&#x2010;" d="M356 643h521v-164h-521v164z" />
-<glyph unicode="&#x2011;" d="M356 643h521v-164h-521v164z" />
-<glyph unicode="&#x2012;" d="M0 633h1233v-141h-1233v141z" />
-<glyph unicode="&#x2013;" d="M0 633h1233v-141h-1233v141z" />
-<glyph unicode="&#x2014;" d="M0 633h1233v-141h-1233v141z" />
-<glyph unicode="&#x2015;" d="M0 633h1233v-141h-1233v141z" />
-<glyph unicode="&#x2016;" d="M285 1565h172v-2048h-172v2048zM775 1565h172v-2048h-172v2048z" />
-<glyph unicode="&#x2017;" d="M0 -163h1233v-80h-1233v80zM0 -403h1233v-80h-1233v80z" />
-<glyph unicode="&#x2018;" d="M463 1174l196 382h154l-98 -382v-207h-252v207z" />
-<glyph unicode="&#x2019;" d="M561 1350v206h252v-206l-197 -383h-153z" />
-<glyph unicode="&#x201a;" d="M502 96v207h252v-207l-197 -383h-154z" />
-<glyph unicode="&#x201b;" d="M463 1350v206h252v-206l98 -383h-153z" />
-<glyph unicode="&#x201c;" d="M211 1174l199 382h153l-98 -382v-207h-254v207zM672 1174l196 382h154l-98 -382v-207h-252v207z" />
-<glyph unicode="&#x201d;" d="M309 1350v206h252v-206l-196 -383h-154zM768 1350v206h252v-206l-197 -383h-153z" />
-<glyph unicode="&#x201e;" d="M309 96v207h252v-207l-196 -383h-154zM768 96v207h252v-207l-197 -383h-153z" />
-<glyph unicode="&#x201f;" d="M211 1350v206h252v-206l98 -383h-153zM670 1350v206h252v-206l98 -383h-154z" />
-<glyph unicode="&#x2020;" d="M528 920h-366v153h366v420h177v-420h366v-153h-366v-1117h-177v1117z" />
-<glyph unicode="&#x2021;" d="M528 223h-366v154h366v543h-366v153h366v420h177v-420h366v-153h-366v-543h366v-154h-366v-420h-177v420z" />
-<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -60 -21.5 -113t-65.5 -97q-44 -43 -98 -64.5t-114 -21.5z" />
-<glyph unicode="&#x2023;" d="M319 1137l674 -376l-674 -376v752z" />
-<glyph unicode="&#x2026;" d="M110 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM519 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM929 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x202f;" />
-<glyph unicode="&#x2030;" d="M287 856q-63 0 -115 22.5t-90 61.5q-41 42 -61.5 94t-20.5 110q0 61 22 114t61 92q38 38 90.5 60t112.5 22q58 0 110.5 -20.5t93.5 -61.5q36 -36 59.5 -88.5t23.5 -117.5q0 -60 -21.5 -112t-60.5 -92t-91 -62t-113 -22zM287 979q69 0 118 49q48 48 48 117q0 68 -49 117 t-117 49q-69 0 -117 -48q-49 -49 -49 -118q0 -38 13 -66t36 -51t51 -36t66 -13zM35 664l1044 415l39 -96l-1046 -416zM329 0q-62 0 -114 22.5t-89 60.5q-41 42 -61 94.5t-20 111.5q0 60 20.5 111.5t62.5 93.5q42 41 93 61t108 20q63 0 115 -22.5t89 -59.5q41 -41 62 -93 t21 -111t-21 -111.5t-61 -93.5q-38 -38 -90.5 -61t-114.5 -23zM945 0q-60 0 -112 21.5t-92 62.5q-41 42 -61.5 94t-20.5 110q0 63 22 114.5t60 89.5q41 41 93 62t111 21q62 0 115 -22.5t91 -60.5q41 -41 61.5 -93.5t20.5 -109.5q0 -59 -21 -111.5t-61 -93.5 q-37 -38 -89.5 -61t-116.5 -23zM329 121q35 0 65.5 13.5t52.5 35.5t35.5 52.5t13.5 65.5q0 33 -12.5 64t-36.5 55q-20 20 -50.5 34t-67.5 14q-32 0 -62 -12t-53 -35q-20 -20 -34 -51t-14 -69q0 -35 12.5 -65t34.5 -53q23 -23 52.5 -36t63.5 -13zM946 121q37 0 67.5 13.5 t51.5 35.5q24 25 35.5 56t11.5 62q0 32 -12 63t-37 56q-20 20 -50.5 34t-66.5 14t-66.5 -13.5t-51.5 -34.5q-22 -22 -35 -52.5t-13 -66.5q0 -31 11 -61.5t37 -56.5q23 -23 53 -36t65 -13z" />
-<glyph unicode="&#x2031;" d="M286 856q-60 0 -112 22.5t-91 61.5t-61 91.5t-22 112.5t22 112.5t61 91.5t91.5 61.5t112.5 22.5t112 -22.5t91 -61t61 -91t22 -112.5t-22 -113t-61 -92t-91.5 -61.5t-112.5 -22.5zM287 979q34 0 64.5 13t53 35.5t35.5 52.5t13 64t-13 64t-36 53t-53.5 36.5t-65.5 13.5 q-67 0 -115 -48q-49 -49 -49 -117q0 -35 13 -65.5t35.5 -53t52.5 -35.5t65 -13zM35 664l1044 415l39 -96l-1046 -416zM239 0q-51 0 -94.5 22t-76 60.5t-50.5 91t-18 113.5t18 113.5t50.5 91.5t76.5 61t95 22q98 0 167 -83q8 -9 10 -13t9 -13q5 7 9.5 13.5t9.5 12.5 q35 42 77.5 62.5t96.5 20.5q31 0 55 -7t43.5 -18.5t35.5 -26.5t32 -31q5 -5 8 -9.5t11 -15.5q9 14 19 25q34 39 76 61t93 22t95 -22t76.5 -60.5t51 -91t18.5 -112.5t-18.5 -113t-51 -92t-77 -61.5t-95.5 -22.5q-52 0 -93 22.5t-75 61.5q-6 7 -10 12.5t-9 12.5q-3 -6 -8 -12 t-11 -13q-35 -40 -73.5 -62t-93.5 -22q-103 0 -173 84q-8 9 -10 13t-9 13q-5 -7 -9.5 -13t-9.5 -13q-71 -84 -168 -84zM237 121q28 0 53.5 13.5t44.5 36t30 53t11 64.5t-11 64t-29.5 53t-44 36.5t-54.5 13.5t-53.5 -13t-43 -35.5t-29 -53t-10.5 -65.5t10.5 -65.5t29 -53 t43.5 -35.5t53 -13zM616 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5t-44.5 36t-53.5 13q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13zM994 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5 t-44.5 36t-53.5 13q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13z" />
-<glyph unicode="&#x2034;" d="M302 1493h202l-288 -373h-88zM602 1493h202l-288 -373h-88zM902 1493h202l-288 -373h-88z" />
-<glyph unicode="&#x2035;" d="M428 1493h204l172 -373h-86z" />
-<glyph unicode="&#x2036;" d="M278 1493h204l172 -373h-86zM578 1493h204l172 -373h-86z" />
-<glyph unicode="&#x2037;" d="M128 1493h204l172 -373h-86zM428 1493h204l172 -373h-86zM728 1493h204l172 -373h-86z" />
-<glyph unicode="&#x2039;" d="M256 559v82l469 418v-191l-301 -268l301 -268v-191z" />
-<glyph unicode="&#x203a;" d="M510 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
-<glyph unicode="&#x203c;" d="M271 1053v445h265v-445l-67 -567h-121zM761 1053v445h265v-445l-67 -567h-121zM406 -60q-70 0 -116 48q-46 47 -46 125q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48zM896 -60q-70 0 -116 48q-46 47 -46 125 q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48z" />
-<glyph unicode="&#x203d;" d="M494 1342q-19 -5 -35 -10t-28 -10q-43 -17 -90.5 -43t-96.5 -60v188q95 58 191 85.5t193 27.5q95 0 171.5 -25t130 -71t82 -111t28.5 -145q0 -37 -7.5 -71t-25.5 -69.5t-49 -74.5t-79 -85l-88 -86q-36 -35 -57 -61t-32 -49t-14.5 -47t-3.5 -54v-170h-190v941zM729 961 q28 28 49 51.5t34 46t19.5 46t6.5 51.5q0 45 -14.5 78t-37 55.5t-50 36t-52.5 20.5v-430zM593 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
-<glyph unicode="&#x203e;" d="M0 1547h1233v-80h-1233v80z" />
-<glyph unicode="&#x203f;" d="M614 -485q-168 0 -336 58t-346 178v126q173 -106 341 -156q85 -26 167.5 -39t172.5 -13q177 0 345.5 51.5t341.5 156.5v-126q-177 -118 -346.5 -177t-339.5 -59z" />
-<glyph unicode="&#x2044;" d="M915 1866h190l-786 -1683h-191z" />
-<glyph unicode="&#x2045;" d="M463 1556h424v-143h-240v-699h240v-143h-240v-698h240v-143h-424v1826z" />
-<glyph unicode="&#x2046;" d="M346 -127h240v698h-240v143h240v699h-240v143h424v-1826h-424v143z" />
-<glyph unicode="&#x2047;" d="M168 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86 l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM776 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1 q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM269 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31 q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM881 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
-<glyph unicode="&#x2048;" d="M168 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86 l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM781 1053v445h265v-445l-67 -567h-121zM273 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110 q-43 -43 -103 -43zM915 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
-<glyph unicode="&#x2049;" d="M776 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86 l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM208 838v655h203v-655l-21 -357h-161zM312 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110 q-43 -43 -103 -43zM881 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
-<glyph unicode="&#x204b;" d="M203 1493h448q107 0 195 -30t150.5 -85.5t96.5 -134t34 -175.5q0 -91 -30.5 -165t-88.5 -127.5t-142 -86t-190 -40.5v-846h-141v1567h-191v-1567h-141v1690z" />
-<glyph unicode="&#x205f;" />
-<glyph unicode="&#x2070;" d="M616 1120q-151 0 -225 109t-74 324q0 217 75 325.5t224 108.5q150 0 225.5 -108.5t75.5 -325.5q0 -215 -75.5 -324t-225.5 -109zM616 1209q88 0 131.5 84.5t43.5 259.5q0 176 -43.5 260.5t-131.5 84.5t-131 -84.5t-43 -260.5q0 -175 43 -259.5t131 -84.5zM615 1481 q-36 0 -58 21q-23 21 -23 53t23.5 54.5t57.5 22.5q37 0 60.5 -22.5t23.5 -54.5q0 -33 -24.5 -53.5t-59.5 -20.5z" />
-<glyph unicode="&#x2074;" d="M655 1306h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM655 1417v413l-274 -413h274z" />
-<glyph unicode="&#x2075;" d="M563 1084q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
-<glyph unicode="&#x2076;" d="M640 1102q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM638 1190q167 0 167 196t-167 196 q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
-<glyph unicode="&#x2077;" d="M761 1860h-444v95h584v-48l-332 -787h-131z" />
-<glyph unicode="&#x2078;" d="M616 1108q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5 q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM616 1609q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM616 1196q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120 t46.5 -120.5t128.5 -42.5z" />
-<glyph unicode="&#x2079;" d="M551 1113q-45 0 -91 8.5t-89 24.5v104q40 -20 83.5 -31t91.5 -11q242 0 242 319q-29 -57 -81.5 -86.5t-121.5 -29.5q-137 0 -209 74t-72 212q0 136 75 209.5t213 73.5q162 0 237 -104.5t75 -329.5q0 -212 -90 -322.5t-263 -110.5zM595 1499q81 0 126 51.5t45 145.5 q0 93 -45 144.5t-126 51.5q-168 0 -168 -196q0 -197 168 -197z" />
-<glyph unicode="&#x207a;" d="M564 980h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
-<glyph unicode="&#x207b;" d="M284 1075h666v-95h-666v95z" />
-<glyph unicode="&#x207c;" d="M284 1189h666v-95h-666v95zM284 961h666v-96h-666v96z" />
-<glyph unicode="&#x207d;" d="M660 517q-94 134 -141 259.5t-47 251.5t47 251.5t141 258.5h102q-168 -254 -168 -510q0 -129 41.5 -255t126.5 -256h-102v0z" />
-<glyph unicode="&#x207e;" d="M472 517q167 258 167 512t-167 509h101q96 -133 142 -258.5t46 -251.5q0 -127 -46 -252.5t-142 -258.5h-101v0z" />
-<glyph unicode="&#x208a;" d="M564 312h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
-<glyph unicode="&#x208b;" d="M284 407h666v-95h-666v95z" />
-<glyph unicode="&#x208c;" d="M284 521h666v-95h-666v95zM284 293h666v-96h-666v96z" />
-<glyph unicode="&#x208d;" d="M660 -151q-94 134 -141 259.5t-47 251.5t47 251.5t141 258.5h102q-168 -254 -168 -510q0 -129 41.5 -255t126.5 -256h-102v0z" />
-<glyph unicode="&#x208e;" d="M472 -151q167 258 167 512t-167 509h101q96 -133 142 -258.5t46 -251.5q0 -127 -46 -252.5t-142 -258.5h-101v0z" />
-<glyph unicode="&#x20a0;" d="M687 428q-60 -55 -126 -83t-143 -28q-94 0 -169.5 41t-128.5 118.5t-81.5 188t-28.5 248.5t28.5 248.5t81.5 188t128.5 118.5t170.5 41q152 0 268 -110v-163q-113 144 -263 144q-142 0 -218 -119t-76 -348t76 -348t218 -119q150 0 263 144v535h531v-131h-418v-339h401 v-131h-401v-416h428v-131h-541v451z" />
-<glyph unicode="&#x20a1;" d="M318 140q-18 18 -33 39q-81 104 -121.5 245t-40.5 319q0 182 40.5 322t113.5 237.5t173.5 151.5t220.5 64l19 75h142l-20 -78q60 -8 115 -27l28 105h141l-43 -165q18 -11 35.5 -23.5t34.5 -26.5v-213q-54 61 -111 101l-290 -1129h16q217 0 385 189v-211 q-176 -144 -391 -144q-16 0 -28 0.5t-24 1.5l-16 -63h-141l22 87q-59 18 -111 48l-34 -135h-141zM887 1330q-28 10 -57 15.5t-60 7.5l-290 -1131q47 -39 107 -61zM625 1341q-66 -16 -118.5 -51t-93.5 -92q-113 -158 -113 -453q0 -236 74 -386z" />
-<glyph unicode="&#x20a2;" d="M706 -28q-141 0 -254.5 53.5t-192.5 153.5t-121.5 243.5t-42.5 323.5t42.5 323t121.5 243.5t192.5 154t256.5 53.5q227 0 400 -142v-213q-84 94 -179.5 141.5t-213.5 47.5q-106 0 -188 -39.5t-138.5 -117t-85.5 -191.5t-29 -263q0 -146 27 -252t73 -177.5t108 -111.5 t133 -55v861h140v-157q86 181 283 181q18 0 35.5 -2t38.5 -7l1 -170q-47 31 -112 31q-118 0 -182 -90.5t-64 -262.5v-393q89 7 178.5 50t174.5 138v-211q-177 -143 -402 -143z" />
-<glyph unicode="&#x20a3;" d="M233 313h-233v69h233v1111h858v-170h-656v-440h592v-170h-592v-331h247v-69h-247v-313h-202v313z" />
-<glyph unicode="&#x20a4;" d="M139 170h236v322h-191v143h191v143h-199v143h199v95q0 255 105.5 379.5t326.5 124.5q81 0 153.5 -15.5t151.5 -44.5v-182q-39 21 -74.5 36.5t-69.5 25.5t-68.5 15t-71.5 5q-70 0 -118 -18.5t-78 -61.5t-43.5 -113.5t-13.5 -173.5v-72h391v-143h-391v-143h399v-143h-399 v-322h557v-170h-993v170z" />
-<glyph unicode="&#x20a5;" d="M537 647q0 66 -2 114t-6 82.5t-9.5 56.5t-12.5 37q-13 26 -36 41t-65 15q-44 0 -66 -17.5t-34 -43.5q-7 -15 -12.5 -37t-9.5 -56.5t-6 -82.5t-2 -115v-641h-167v1120h149l18 -96q35 63 84 93t115 30q37 0 65.5 -8.5t50 -22t37 -31t26.5 -35.5l66 260h106l-48 -188 q47 25 111 25t113 -25t78 -79q55 -104 55 -394v-649h-168v641q0 64 -1.5 112t-5 83.5t-8.5 60t-12 39.5q-11 26 -34 41.5t-65 15.5q-38 0 -64 -14.5t-41 -46.5q-17 -35 -24 -103.5t-7 -187.5v-641h-168v176l-93 -366h-105z" />
-<glyph unicode="&#x20a6;" d="M162 550h-162v123h162v147h-162v123h162v550h272l211 -550h230v550h196v-550h162v-123h-162v-147h162v-123h-162v-550h-272l-211 550h-230v-550h-196v550zM437 943l-79 206v-206h79zM541 673l-57 147h-126v-147h183zM875 673v147h-183l57 -147h126zM875 550h-79l79 -206 v206z" />
-<glyph unicode="&#x20a7;" d="M999 -29q-89 0 -196 70v1h-90q-105 0 -146 80t-41 289v608h-38q-3 -200 -65 -309.5t-187 -109.5h-126v-600h-100v1493h226q63 0 107 -26.5t73 -71.5t45.5 -105t22.5 -128h42v318h92v-318h189v-143h-189v-608q0 -138 19 -176q19 -39 76 -39h90v35q54 -57 102.5 -81.5 t95.5 -24.5q63 0 98 44t35 136q0 39 -7 65.5t-23 46.5t-42 36t-63 34l-32 15q-85 36 -122.5 110.5t-37.5 202.5q0 161 55 246.5t164 85.5q45 0 89.5 -15t82.5 -45v-174q-39 40 -80 60t-88 20q-135 0 -135 -170q0 -31 5 -54.5t19 -43t37.5 -36.5t61.5 -34l31 -14 q46 -21 80 -49t56 -66.5t32.5 -89t10.5 -117.5q0 -168 -61 -258t-168 -90zM236 766q70 0 108.5 72.5t38.5 208.5q0 135 -38.5 207.5t-108.5 72.5h-126v-561h126z" />
-<glyph unicode="&#x20a8;" d="M928 -29q-33 0 -61 5t-58 13q-20 5 -31.5 9t-25.5 9l2 -7h-139l-122 383q-24 74 -45.5 122t-45.5 76t-53.5 39t-68.5 11h-141v-631h-129v1493h292q165 0 245 -107t80 -315q0 -154 -42 -244t-122 -127q46 -25 83.5 -97.5t76.5 -194.5l58 -180q63 -51 125 -77t126 -26 q83 0 127.5 44t44.5 135q0 39 -9.5 66t-30 47.5t-53.5 36.5t-81 33l-41 15q-55 18 -94.5 45t-64.5 65.5t-36.5 88.5t-11.5 114q0 161 70.5 246.5t210.5 85.5q59 0 118 -15.5t105 -44.5v-174q-51 40 -104 60t-113 20q-173 0 -173 -169q0 -29 6 -53t23.5 -44t48 -38t79.5 -34 l41 -14q61 -21 105 -49.5t72 -67.5t41 -89.5t13 -115.5q0 -84 -20.5 -149t-58.5 -109t-93.5 -67t-124.5 -23zM302 797q94 0 141.5 67t47.5 199t-47.5 198t-141.5 66h-163v-530h163z" />
-<glyph unicode="&#x20a9;" d="M89 896h-89v143h68l-18 117h-50v143h29l-29 194h197l23 -194h305l30 194h140l30 -194h288l23 194h197l-29 -194h29v-143h-50l-17 -117h67v-143h-89l-134 -896h-191l-191 887h-14l-200 -887h-191zM475 1039l18 117h-257l14 -117h225zM633 1039l-17 117l-19 -117h36z M983 1039l13 117h-259l18 -117h228zM450 896h-183l73 -615zM966 896h-185l112 -617z" />
-<glyph unicode="&#x20aa;" d="M42 1490l419 3q202 1 310 -147t108 -443v-367h-149v342q0 120 -15.5 205.5t-48 140t-83.5 80t-122 25.5h-270v-1358h-149v1519zM775 -29q-206 0 -312 149t-106 441v367h149v-342q0 -120 15 -205.5t47.5 -140t83.5 -80t123 -25.5h273v1358h143l-1 -1522h-415z" />
-<glyph unicode="&#x20ab;" d="M678 -29q-100 0 -180 40.5t-136.5 117t-86.5 185.5t-30 247q0 137 30.5 246t86.5 184.5t136.5 115.5t180.5 40q104 0 180 -43t121 -127v309h-305v121h305v149h184v-149h191v-121h-191v-1286h-166l-18 141q-46 -84 -122.5 -127t-179.5 -43zM708 127q134 0 203 109t69 323 t-69 323t-203 109t-201.5 -108.5t-67.5 -323.5t67.5 -323.5t201.5 -108.5zM440 -209h598v-148h-598v148z" />
-<glyph unicode="&#x20ac;" d="M755 -29q-118 0 -207 37.5t-155 106.5t-112.5 174t-69.5 254h-174l49 110h117q-1 6 -1 14t-1 18l-2 62l2 65q0 5 1 15.5t1 12.5h-166l49 108h125q24 143 71 250t114 178q136 144 359 144q84 0 159 -20q72 -19 147 -62v-207q-33 31 -70 54.5t-75 40.5q-78 34 -160 34 q-144 0 -231 -104q-87 -103 -111 -308h481l-49 -108h-442q-1 -9 -1.5 -19.5t-0.5 -22.5v-6.5t-0.5 -9t-0.5 -15v-25.5v-24.5t0.5 -13t0.5 -6.5v-3v-20.5t1 -21.5h361l-49 -110h-301q22 -202 110 -307q87 -105 233 -105q81 0 159 34q42 18 77 41.5t68 53.5v-207 q-73 -43 -146 -62q-75 -20 -160 -20z" />
-<glyph unicode="&#x20ad;" d="M180 737h-138v115h138v641h172v-631l572 631h221l-582 -641h388v-115h-386l626 -737h-227l-612 719v-719h-172v737z" />
-<glyph unicode="&#x20ae;" d="M516 442l-208 -161l-77 110l285 217v136l-209 -162l-77 110l286 217v414h-469v170h1139v-170h-467v-271l229 161l80 -111l-309 -216v-136l230 162l80 -111l-310 -217v-584h-203v442z" />
-<glyph unicode="&#x20af;" d="M166 -29q-27 0 -52 17t-43.5 48t-29.5 73t-11 93q0 45 9 85.5t25.5 70.5t39.5 48t52 18q17 0 36.5 -7t39.5 -21q5 26 7.5 45.5t4.5 44.5l95 845q-26 -10 -44 -34t-28 -51q-11 -31 -20 -87l-92 53q15 87 41 147t61 97q32 34 72 49t88 15q103 0 181.5 -61.5t129.5 -170.5 q44 -94 66 -218.5t22 -262.5q0 -52 -3.5 -113t-11 -126t-19.5 -131.5t-30 -129.5q-18 -65 -42.5 -124t-59.5 -107q-37 -51 -80 -78t-91 -27q-27 0 -52.5 9.5t-51.5 32.5q-12 10 -25.5 24t-25.5 26.5t-21 23t-13 15.5l-8 10q-5 -20 -10 -33.5t-10 -23.5q-38 -84 -96 -84z M483 151q28 0 52.5 19t45 52t37.5 77.5t31 95.5q12 47 21.5 99t16 105t10 105.5t3.5 100.5q0 113 -16.5 204.5t-45.5 157.5q-37 85 -86 125t-103 46l-94 -869q-8 -69 -13.5 -111.5t-10.5 -76.5l21 -27q43 -55 72 -79t59 -24zM772 -414l85 720q18 152 49 248.5t68 145.5 q22 29 45 41t46 12q41 0 72 -30t51 -80q34 -86 34 -228q0 -120 -23.5 -219.5t-70.5 -162.5q-24 -32 -48 -47.5t-46 -15.5q-29 0 -57.5 27t-44.5 78l-62 -530zM1032 149q19 0 35 18t28 50q11 27 20.5 79t9.5 114q0 39 -4 72.5t-11 53.5q-14 43 -45 43q-9 0 -22.5 -7 t-26.5 -27.5t-24 -57t-17 -95.5q-2 -16 -3.5 -41.5t-1.5 -49.5q0 -29 3.5 -56.5t11 -48.5t19 -34t28.5 -13zM159 142q14 0 23.5 15t18.5 47q-21 34 -47 34q-20 0 -27 -14t-7 -29q0 -24 12.5 -38.5t26.5 -14.5z" />
-<glyph unicode="&#x20b0;" d="M682 133q67 0 122 17.5t94 50.5t60.5 82t21.5 112q0 30 -5.5 55t-19 50.5t-36.5 53t-58 62.5q-74 -68 -134 -97t-115 -29q-38 0 -68 11.5t-52.5 27.5t-38 34t-25.5 31q-27 35 -50 52.5t-47 17.5q-15 0 -30.5 -8t-33 -25.5t-37.5 -45.5t-45 -69l-139 96q41 66 75.5 111.5 t67 74t64.5 41.5t68 13q44 0 90 -18.5t81 -59.5q24 -28 42.5 -48.5t33 -33.5t26 -19t23.5 -6q18 0 44.5 15.5t55.5 50.5q-115 91 -171 197.5t-56 236.5q0 85 22.5 150.5t63 110.5t95 68.5t119.5 23.5q60 0 114.5 -21.5t96.5 -66.5t66.5 -114.5t24.5 -165.5 q0 -98 -26.5 -199.5t-80.5 -186.5q47 -43 81 -85.5t56.5 -86.5t33 -92.5t10.5 -103.5q0 -89 -28.5 -167t-87.5 -136t-150.5 -91t-217.5 -33v162zM834 881q17 26 29.5 58t21 67.5t13 72.5t4.5 73q0 103 -31.5 156.5t-80.5 53.5q-26 0 -46.5 -15t-34.5 -40.5t-21.5 -61 t-7.5 -75.5q0 -91 38 -160t116 -129z" />
-<glyph unicode="&#x20b1;" d="M197 882h-91v115h91v115h-91v116h91v265h436q386 0 480 -265h120v-116h-95q2 -15 3.5 -30.5t1.5 -29.5t-1 -27.5t-3 -27.5h94v-115h-114q-19 -62 -55 -113.5t-94.5 -89t-141.5 -58.5t-195 -21h-234v-600h-202v882zM875 1228q-77 99 -242 99h-234v-99h476zM927 997 q3 25 3 50q0 17 -1.5 33t-3.5 32h-526v-115h528zM633 766q176 0 253 116h-487v-116h234z" />
-<glyph unicode="&#x20b2;" d="M581 -22q-111 15 -207.5 68.5t-168 148t-112 231t-40.5 319.5t40.5 320t112 231.5t168 148t207.5 68.5v143h140v-137q106 -4 209.5 -37.5t197.5 -103.5v-215q-96 96 -197.5 141.5t-209.5 49.5v-1217q78 2 145.5 19.5t124.5 56.5v401h-120v166h290v-641 q-100 -84 -211 -123t-229 -44v-137h-140v143zM581 1341q-67 -16 -120 -51t-92 -89q-111 -153 -111 -456q0 -302 111 -455q39 -54 92 -89t120 -51v1191z" />
-<glyph unicode="&#x20b3;" d="M203 520h-133v123h172l67 207h-239v123h278l165 520h208l165 -520h276v-123h-237l65 -207h172v-123h-133l164 -520h-191l-154 520h-461l-155 -520h-193zM712 973l-96 321l-95 -321h191zM810 643l-62 207h-264l-61 -207h387z" />
-<glyph unicode="&#x20b4;" d="M651 -29q-248 0 -380 112t-132 325q0 77 18 142h-157v123h217l18 21q29 34 82.5 68t125.5 58h-443v123h831q10 7 19 16q27 27 41 62.5t14 83.5q0 60 -21.5 106.5t-61.5 78.5t-97.5 49t-128.5 17q-186 0 -371 -119v205q210 78 381 78q111 0 202 -31.5t155.5 -89t99.5 -139 t35 -181.5q0 -75 -21 -136h156v-123h-233q-48 -46 -120.5 -80t-177.5 -58l-39 -9h570v-123h-857q-22 -29 -33 -67.5t-11 -83.5q0 -128 84 -196t239 -68q105 0 207 34t217 107v-215q-108 -45 -213 -67.5t-215 -22.5z" />
-<glyph unicode="&#x20b5;" d="M642 -24q-62 8 -124 31.5t-118.5 62.5t-106 94.5t-85.5 127t-57 159.5t-21 192v17q0 107 21.5 196t58.5 160t86.5 125t106.5 92t118 60.5t120 30.5v230l101 2v-226q94 -2 183.5 -36t177.5 -106v-213q-45 52 -88.5 89.5t-87 60.5t-89 34t-96.5 11v-1039q51 0 96.5 11 t89 34t87 60t88.5 90v-211q-90 -72 -180 -107t-181 -37v-272h-100v277zM641 1159q-89 -22 -158 -89q-42 -41 -69.5 -91.5t-43.5 -105t-22.5 -110.5t-6.5 -107q0 -38 2.5 -73.5t6.5 -62.5q13 -92 48 -166t84 -122q31 -30 72.5 -54.5t87.5 -35.5z" />
-<glyph unicode="&#x20b7;" d="M130 455h78v-50q46 64 115 64q39 0 63 -19.5t29 -54.5q23 37 55 55.5t71 18.5q46 0 72.5 -28.5t26.5 -78.5q0 -34 -4 -62l-6 -39l-10 -53l-14 -71q134 7 225 86q103 88 103 221q0 80 -44 129q-24 24 -65 44t-112 42l-101 33q-94 31 -155.5 61.5t-101.5 70.5 q-39 39 -56.5 86t-17.5 115q0 104 42 195t123 160q83 69 190.5 104.5t232.5 35.5q168 0 364 -78l-39 -205q-164 119 -349 119q-82 0 -151 -21t-118 -61q-49 -39 -76 -92.5t-27 -113.5q0 -39 12 -67.5t37 -50.5q50 -44 178 -84l121 -39q87 -28 143.5 -59t95.5 -74t57 -95.5 t18 -125.5q0 -112 -41.5 -204t-124.5 -160q-152 -125 -395 -137l-21 -174h-88l20 174q-71 2 -134 14l-23 -188h-88l27 207q-68 19 -127 44l-36 -251h-88zM306 204l3 17l9 44l6 42l1 22q0 30 -13 43q-10 16 -38 16q-38 0 -59 -30q-17 -30 -35 -106q60 -39 123 -66zM531 204 q7 38 9 44l6 35q4 21 4 46q0 31 -12 44q-11 15 -38 15q-22 0 -36 -8t-25 -26q-12 -19 -22.5 -53.5t-22.5 -96.5l-9 -46q66 -18 133 -22z" />
-<glyph unicode="&#x20b8;" d="M47 1493h1139v-170h-1139v170zM516 1033h-469v170h1139v-170h-467v-1033h-203v1033z" />
-<glyph unicode="&#x20b9;" d="M626 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v166h221q72 0 124 19t86 51.5t52 77t23 95.5h-536l55 123h475q-8 38 -27 75t-52.5 66.5t-84.5 47.5t-123 18h-243l55 123h978l-55 -123h-345q87 -81 109 -207h291l-55 -123h-227q-3 -67 -24 -124t-59.5 -100.5 t-94.5 -72t-129 -38.5q39 -10 70.5 -26.5t62 -48.5t63 -85t74.5 -137l203 -408h-217z" />
-<glyph unicode="&#x2116;" d="M9 0v1493h194l238 -940v940h175v-1493h-194l-238 859v-859h-175zM1130 782q-65 -112 -177 -112q-59 0 -102 29t-75 82q-66 109 -66 299q0 186 66 300q67 112 177 112q114 0 177 -113q66 -112 66 -299q0 -185 -66 -298zM849 863q39 -76 104 -76q58 0 88.5 49t43.5 119 q10 51 10 127q0 136 -38 215q-38 78 -104 78t-104 -77q-38 -81 -38 -218q0 -138 38 -217zM731 441v123h441v-123h-441z" />
-<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
-<glyph unicode="&#x2126;" d="M74 172h245q-60 65 -104 133t-72.5 141.5t-42.5 155.5t-14 176q0 158 37.5 284.5t106.5 215t167 135.5t218 47q121 0 219 -47.5t167 -136t106.5 -214.5t37.5 -284q0 -92 -13.5 -173t-42 -155.5t-73 -143t-105.5 -134.5h248v-172h-463v172q58 36 105 97t80 141t51 176 t18 202q0 121 -23.5 215.5t-67 159t-105 98t-138.5 33.5t-138.5 -33.5t-105 -98t-66.5 -158.5t-23 -215q0 -102 16.5 -196.5t49 -175.5t79.5 -144t109 -101v-172h-463v172z" />
-<glyph unicode="&#x2150;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM962 470h-444v95h584v-48l-332 -787h-131z" />
-<glyph unicode="&#x2151;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM752 -275q-45 0 -91 8.5t-89 24.5v104q40 -20 83.5 -31t91.5 -11q242 0 242 319q-29 -57 -81.5 -86.5t-121.5 -29.5q-137 0 -209 74t-72 212q0 136 75 209.5 t213 73.5q162 0 237 -104.5t75 -329.5q0 -212 -90 -322.5t-263 -110.5zM796 111q81 0 126 51.5t45 145.5q0 93 -45 144.5t-126 51.5q-168 0 -168 -196q0 -197 168 -197z" />
-<glyph unicode="&#x2153;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM758 -285q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5 q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5z" />
-<glyph unicode="&#x2154;" d="M64 934l231 226q51 49 86.5 88t55.5 70q40 61 40 112q0 30 -13 55.5t-37 43.5t-57.5 28t-74.5 10q-99 0 -225 -72v125q66 28 125.5 42t119.5 14q71 0 129 -17.5t99 -49t63.5 -75.5t22.5 -98q0 -58 -37 -116q-38 -60 -156 -177l-211 -205h410v-114h-571v110zM27 612 l1060 262l27 -108l-1063 -262zM758 -285q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9 q72 0 130 -15.5t98.5 -43.5t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5z" />
-<glyph unicode="&#x2155;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204 q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
-<glyph unicode="&#x2156;" d="M64 934l231 226q51 49 86.5 88t55.5 70q40 61 40 112q0 30 -13 55.5t-37 43.5t-57.5 28t-74.5 10q-99 0 -225 -72v125q66 28 125.5 42t119.5 14q71 0 129 -17.5t99 -49t63.5 -75.5t22.5 -98q0 -58 -37 -116q-38 -60 -156 -177l-211 -205h410v-114h-571v110zM27 612 l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5 t-104 -56.5t-137.5 -19.5z" />
-<glyph unicode="&#x2157;" d="M299 809q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5 t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5zM27 612l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5 q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
-<glyph unicode="&#x2158;" d="M397 1010h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM397 1121v413l-274 -413h274zM27 612l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41 v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
-<glyph unicode="&#x2159;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM841 -285q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117 q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM839 -197q167 0 167 196t-167 196q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
-<glyph unicode="&#x215a;" d="M305 809q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z M27 612l1060 262l27 -108l-1063 -262zM841 -285q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM839 -197 q167 0 167 196t-167 196q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
-<glyph unicode="&#x215b;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15 t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5 q0 -67 39.5 -102.5t114.5 -35.5zM817 -198q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
-<glyph unicode="&#x215c;" d="M299 809q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5 t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5zM27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68 t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5 t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM817 -198q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
-<glyph unicode="&#x215d;" d="M305 809q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z M27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68 q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM817 -198q85 0 130.5 42.5t45.5 120.5t-46 120 t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
-<glyph unicode="&#x215e;" d="M503 1564h-444v95h584v-48l-332 -787h-131zM27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5 t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5z M817 -198q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
-<glyph unicode="&#x215f;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262z" />
-<glyph unicode="&#x2190;" d="M66 520v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x2191;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
-<glyph unicode="&#x2192;" d="M786 319l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x2193;" d="M284 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x2194;" d="M66 520v82l291 291l90 -90l-160 -160h659l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-659l160 -160l-90 -90z" />
-<glyph unicode="&#x2195;" d="M284 291l90 90l160 -160v659l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-659l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x2196;" d="M311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
-<glyph unicode="&#x2197;" d="M184 116l622 622h-227v127h412l58 -58v-412h-127v227l-622 -622z" />
-<glyph unicode="&#x2198;" d="M579 127h227l-622 622l116 116l622 -622v227h127v-412l-58 -58h-412v127z" />
-<glyph unicode="&#x2199;" d="M184 58v412h127v-227l622 622l116 -116l-622 -622h227v-127h-412z" />
-<glyph unicode="&#x219a;" d="M66 520v82l291 291l90 -90l-160 -160h483l148 250l142 -82l-99 -168h206v-164h-303l-147 -250l-142 82l99 168h-387l160 -160l-90 -90z" />
-<glyph unicode="&#x219b;" d="M173 311l99 168h-206v164h303l147 250l142 -82l-99 -168h387l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-483l-148 -250z" />
-<glyph unicode="&#x219c;" d="M89 807l58 58h412v-127h-267q3 -4 9.5 -12.5t19 -23.5t32 -38t48.5 -57q18 -21 46.5 -37.5t63.5 -16.5q27 0 53 13t52 43q8 9 13 16t8.5 14t6 14.5t6.5 16.5q9 22 22 46.5t31 47.5t40.5 43t50.5 34q46 23 98 23q60 0 106 -26.5t78 -64.5q20 -23 38 -53.5t30 -59.5 l-106 -67q-3 9 -11 22.5t-19.5 28.5t-26.5 28.5t-31 22.5q-25 14 -56 14q-27 0 -55 -13t-52 -41q-14 -17 -22.5 -32.5t-13.5 -29.5q-8 -18 -20 -41.5t-30 -47.5t-41 -45.5t-53 -36.5q-48 -23 -98 -23q-57 0 -103.5 26t-80.5 66l-109 128v-224h-127v412z" />
-<glyph unicode="&#x219d;" d="M1017 619l-109 -128q-36 -43 -82.5 -67.5t-102.5 -24.5q-103 0 -181 92q-26 31 -39 56.5t-21 45.5q-18 45 -40.5 68t-45.5 34q-14 7 -27.5 10.5t-29.5 3.5q-35 0 -60 -16t-45 -39q-15 -17 -26 -35t-13 -26l-106 67q11 28 27 55t36 51t42.5 43.5t46.5 31.5q44 23 98 23 q55 0 100.5 -23t83.5 -68q24 -29 37.5 -55t22.5 -48q7 -17 13.5 -31t15.5 -26t22 -22.5t33 -22.5q25 -15 56 -15q34 0 62.5 16.5t46.5 37.5q37 43 58.5 68.5t32 38.5t13.5 17.5t5 6.5h-267v127h412l58 -58v-412h-127v224z" />
-<glyph unicode="&#x219e;" d="M66 520v82l291 291l90 -90l-160 -160h150l250 250l90 -90l-160 -160h550v-164h-550l160 -160l-90 -90l-250 250h-150l160 -160l-90 -90z" />
-<glyph unicode="&#x219f;" d="M534 550l-160 -160l-90 90l250 250v150l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-150l250 -250l-90 -90l-160 160v-550h-164v550z" />
-<glyph unicode="&#x21a0;" d="M456 319l160 160h-550v164h550l-160 160l90 90l250 -250h150l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-150l-250 -250z" />
-<glyph unicode="&#x21a1;" d="M284 291l90 90l160 -160v150l-250 250l90 90l160 -160v550h164v-550l160 160l90 -90l-250 -250v-150l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21a2;" d="M66 520v82l291 291l90 -90l-160 -160h540l250 250l90 -90l-242 -242l242 -242l-90 -90l-250 250h-540l160 -160l-90 -90z" />
-<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l90 90l250 -250h540l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-540l-250 -250z" />
-<glyph unicode="&#x21a4;" d="M66 520v82l291 291l90 -90l-160 -160h716v250h164v-664h-164v250h-716l160 -160l-90 -90z" />
-<glyph unicode="&#x21a5;" d="M284 164h250v716l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-716h250v-164h-664v164z" />
-<glyph unicode="&#x21a6;" d="M66 893h164v-250h716l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-716v-250h-164v664z" />
-<glyph unicode="&#x21a7;" d="M284 291l90 90l160 -160v716h-250v164h664v-164h-250v-716l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21a8;" d="M284 164h250l-250 250l90 90l160 -160v536l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-536l160 160l90 -90l-250 -250h250v-164h-664v164z" />
-<glyph unicode="&#x21a9;" d="M66 520v82l291 291l90 -90l-160 -160h581q32 0 57 10.5t41 26.5q17 17 27 40.5t10 49.5q0 29 -11 51.5t-26 36.5q-17 17 -41 27t-49 10v164q56 0 107 -19.5t98 -65.5q86 -85 86 -203q0 -54 -20 -108t-65 -99q-21 -20 -44.5 -36t-47 -27t-45 -16.5t-37.5 -5.5h-621 l160 -160l-90 -90z" />
-<glyph unicode="&#x21aa;" d="M786 319l160 160h-621q-16 0 -37 5.5t-44 16t-47 26.5t-45 37q-50 49 -68 102.5t-18 101.5q0 63 23.5 116.5t61.5 90.5q45 44 99.5 64t106.5 20v-164q-25 0 -49 -10t-41 -27q-15 -14 -26 -36.5t-11 -51.5q0 -26 10 -49.5t27 -40.5q16 -16 41 -26.5t57 -10.5h581l-160 160 l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21ab;" d="M66 520v82l291 291l90 -90l-160 -160h306v125q0 55 20 109t63 97q35 35 88 60t116 25q61 0 112.5 -24t88.5 -60q43 -42 64.5 -94.5t21.5 -111.5q0 -56 -20 -108t-65 -96q-23 -23 -47.5 -39t-48 -26.5t-43.5 -15.5t-35 -5h-151v-213h-164v213h-306l160 -160l-90 -90z M868 643q59 0 98 37q17 17 27 40.5t10 49.5q0 25 -9.5 48t-27.5 40q-16 15 -39.5 26t-46.5 11t-47.5 -11t-39.5 -26t-25.5 -39.5t-10.5 -50.5v-125h111z" />
-<glyph unicode="&#x21ac;" d="M786 319l160 160h-306v-213h-164v213h-151q-15 0 -35 5t-43.5 15.5t-48 26.5t-47.5 39q-45 44 -65 96t-20 108q0 59 21.5 111.5t64.5 94.5q37 36 88.5 60t112.5 24q63 0 116 -25t88 -60q43 -43 63 -97t20 -109v-125h306l-160 160l90 90l291 -291v-82l-291 -291zM476 643 v125q0 27 -10 50t-27 40t-40 27t-45 10q-23 0 -47 -11t-40 -26q-18 -17 -27.5 -40t-9.5 -48q0 -26 10 -49.5t27 -40.5q39 -37 98 -37h111z" />
-<glyph unicode="&#x21ad;" d="M66 520v82l291 291l90 -90l-160 -160h8q19 -2 33 -6.5t25.5 -13t22.5 -20.5t25 -30q6 -8 13.5 -14t18.5 -6q18 0 33 20q4 6 6.5 12t4.5 12q11 42 33 75.5t49 50.5q28 17 58 17q35 0 62.5 -20.5t44.5 -46.5q11 -17 19 -37t14 -39q6 -18 11 -24.5t15 -13.5q7 -6 17 -6 t17.5 5t15.5 15q12 14 20 25t17 19t22.5 13.5t38.5 9.5l15 3l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-6q-14 1 -20 -4t-14 -15q-20 -26 -43.5 -46.5t-60.5 -20.5q-33 0 -60 17.5t-49 49.5q-25 38 -33 76q-3 12 -10 22.5t-16 15.5q-8 6 -17 6q-18 0 -33 -21 q-5 -5 -6.5 -10.5t-3.5 -12.5q-10 -40 -33 -74.5t-50 -51.5q-26 -17 -58 -17q-35 0 -59 18.5t-47 48.5q-8 10 -14 15t-19 4h-7l160 -160l-90 -90z" />
-<glyph unicode="&#x21ae;" d="M466 241l50 238h-229l160 -160l-90 -90l-291 291v82l291 291l90 -90l-160 -160h262l60 270l140 -32l-50 -238h247l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-280l-60 -270z" />
-<glyph unicode="&#x21af;" d="M703 13l-239 336l103 74l132 -185l122 724l-707 -426l151 893l160 -30l-90 -532l707 426l-181 -1082l184 132l74 -104l-335 -239z" />
-<glyph unicode="&#x21b0;" d="M886 967h-482l160 -160l-90 -90l-290 291v82l290 291l90 -90l-160 -160h646v-1131h-164v967z" />
-<glyph unicode="&#x21b1;" d="M184 1131h644l-160 160l90 90l292 -291v-82l-292 -291l-90 90l160 160h-480v-967h-164v1131z" />
-<glyph unicode="&#x21b2;" d="M184 291v82l290 291l90 -90l-160 -160h482v967h164v-1131h-646l160 -160l-90 -90z" />
-<glyph unicode="&#x21b3;" d="M668 90l160 160h-644v1131h164v-967h480l-160 160l90 90l292 -291v-82l-292 -291z" />
-<glyph unicode="&#x21b4;" d="M383 291l90 90l160 -160v721h-447v164h611v-885l160 160l90 -90l-291 -291h-82z" />
-<glyph unicode="&#x21b5;" d="M64 291v82l290 291l90 -90l-160 -160h722v447h164v-611h-886l160 -160l-90 -90z" />
-<glyph unicode="&#x21b6;" d="M81 635l90 90l160 -160l1 24q4 88 37 162t90 131q58 57 130 86t156 29q88 0 159.5 -31t126.5 -85q57 -57 88.5 -128.5t32.5 -156.5h-152q0 56 -20.5 105.5t-54.5 84.5q-27 29 -72 52.5t-106 23.5q-52 0 -99 -20t-83 -55q-44 -44 -57 -95.5t-13 -103.5v-23l160 160l90 -90 l-291 -291h-82z" />
-<glyph unicode="&#x21b7;" d="M488 635l90 90l160 -160v23q0 36 -3.5 63.5t-12 50.5t-22 43t-33.5 40q-37 37 -79 57t-99 20q-109 0 -181 -77q-75 -80 -75 -189h-152q1 87 33.5 159t87.5 126t126.5 85t159.5 31q84 0 156 -29t130 -86q60 -59 92 -135t35 -158l1 -24l160 160l90 -90l-291 -291h-82z" />
-<glyph unicode="&#x21b8;" d="M50 1050h1132v-80h-1132v80zM311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
-<glyph unicode="&#x21b9;" d="M66 1238h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664zM622 90l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
-<glyph unicode="&#x21ba;" d="M591 0q-103 0 -194 38.5t-160 107.5q-72 72 -110 164t-38 195q0 202 148 356l119 -115q-52 -51 -76.5 -112t-24.5 -129q0 -72 25.5 -133.5t74.5 -109.5q45 -45 105.5 -72t133.5 -27q70 0 132 26t109 73q46 46 72.5 108.5t26.5 131.5q0 36 -7.5 71.5t-21 68t-31.5 59.5 t-40 45l-33 28v-227h-127v412l58 58h412v-127h-227l29 -29q75 -75 111.5 -165.5t36.5 -190.5q0 -104 -37.5 -195t-109.5 -163q-70 -69 -161.5 -108t-194.5 -39z" />
-<glyph unicode="&#x21bb;" d="M642 0q-103 0 -194.5 39t-161.5 108q-69 69 -108.5 159.5t-39.5 197.5q0 102 38 193t111 164l29 29h-227v127h412l58 -58v-412h-127v227l-33 -28q-22 -18 -40 -45t-31.5 -59.5t-21 -68t-7.5 -71.5q0 -69 26.5 -131.5t72.5 -108.5q47 -47 109 -73t132 -26q73 0 133.5 27 t105.5 72q49 48 74.5 109.5t25.5 133.5q0 68 -24.5 129t-76.5 112l119 115q148 -154 148 -356q0 -103 -38 -195t-110 -164q-69 -69 -160 -107.5t-194 -38.5z" />
-<glyph unicode="&#x21bc;" d="M66 602l291 291l90 -90l-160 -160h880v-164h-1101v123z" />
-<glyph unicode="&#x21bd;" d="M66 520v123h1101v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21be;" d="M534 1101h124l290 -291l-90 -90l-160 160v-880h-164v1101z" />
-<glyph unicode="&#x21bf;" d="M534 880l-160 -160l-90 90l292 291h122v-1101h-164v880z" />
-<glyph unicode="&#x21c0;" d="M66 643h880l-160 160l90 90l291 -291v-123h-1101v164z" />
-<glyph unicode="&#x21c1;" d="M786 319l160 160h-880v164h1101v-123l-291 -291z" />
-<glyph unicode="&#x21c2;" d="M534 1101h164v-880l160 160l90 -90l-290 -291h-124v1101z" />
-<glyph unicode="&#x21c3;" d="M327 291l90 90l160 -160v880h164v-1101h-123z" />
-<glyph unicode="&#x21c4;" d="M786 574l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291zM66 291v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21c5;" d="M292 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880zM526 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21c6;" d="M66 775v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90zM786 90l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21c7;" d="M66 291v82l201 201l-201 201v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-160 -160h880v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21c8;" d="M292 880l-160 -160l-90 90l292 291h82l200 -201l202 201h82l290 -291l-90 -90l-160 160v-880h-164v880l-160 -160l-160 160v-880h-164v880z" />
-<glyph unicode="&#x21c9;" d="M786 90l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-291 -291z" />
-<glyph unicode="&#x21ca;" d="M42 291l90 90l160 -160v880h164v-880l160 160l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82l-202 201l-200 -201h-82z" />
-<glyph unicode="&#x21cb;" d="M66 766l291 291l90 -90l-160 -160h880v-164h-1101v123zM786 155l160 160h-880v164h1101v-123l-291 -291z" />
-<glyph unicode="&#x21cc;" d="M66 807h880l-160 160l90 90l291 -291v-123h-1101v164zM66 356v123h1101v-164h-880l160 -160l-90 -90z" />
-<glyph unicode="&#x21cd;" d="M66 520v82l291 291l90 -90l-78 -78h419l86 168l97 -59l-54 -109h250v-82h-302l-90 -164h392v-82h-443l-86 -166l-96 58l54 108h-227l78 -78l-90 -90zM649 479l88 164h-450l-82 -82l82 -82h362z" />
-<glyph unicode="&#x21ce;" d="M66 520v82l291 291l90 -90l-78 -78h194l46 218l140 -32l-39 -186h154l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-227l-31 -158l-140 32l27 126h-124l78 -78l-90 -90zM510 479l35 164h-258l-82 -82l82 -82h223zM946 479l82 82l-82 82h-254l-35 -164h289z" />
-<glyph unicode="&#x21cf;" d="M262 288l54 109h-250v82h302l90 164h-392v82h443l86 166l96 -58l-54 -108h227l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-419l-86 -168zM946 479l82 82l-82 82h-362l-88 -164h450z" />
-<glyph unicode="&#x21d0;" d="M66 520v82l291 291l90 -90l-78 -78h798v-82h-880l-82 -82l82 -82h880v-82h-798l78 -78l-90 -90z" />
-<glyph unicode="&#x21d1;" d="M452 798l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-798h-82l1 880l-83 82l-82 -82v-880h-82v798z" />
-<glyph unicode="&#x21d2;" d="M786 319l78 78h-798v82h880l82 82l-82 82h-880v82h798l-78 78l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21d3;" d="M284 291l90 90l78 -78v798h82v-880l82 -82l83 82l-1 880h82v-798l78 78l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21d4;" d="M66 520v82l291 291l90 -90l-78 -78h495l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-495l78 -78l-90 -90zM946 479l82 82l-82 82h-659l-82 -82l82 -82h659z" />
-<glyph unicode="&#x21d5;" d="M284 291l90 90l78 -78v495l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-495l78 78l90 -90l-290 -291h-82zM699 221v659l-83 82l-82 -82v-659l82 -82z" />
-<glyph unicode="&#x21d6;" d="M282 507v-112h-127v412l58 58h412v-127h-110l563 -564l-58 -58l-622 622h-116v-116l622 -622l-58 -58z" />
-<glyph unicode="&#x21d7;" d="M329 0l622 622v116h-116l-622 -622l-58 58l563 564h-110v127h412l58 -58v-412h-127v112l-564 -565z" />
-<glyph unicode="&#x21d8;" d="M608 127h112l-565 564l58 58l622 -622h116v116l-622 622l58 58l564 -563v110h127v-412l-58 -58h-412v127z" />
-<glyph unicode="&#x21d9;" d="M155 58v412h127v-112l564 565l58 -58l-622 -622v-116h116l622 622l58 -58l-563 -564h110v-127h-412z" />
-<glyph unicode="&#x21da;" d="M66 520v82l291 291l90 -90h720v-82h-802l-119 -119h921v-82h-921l119 -119h802v-82h-720l-90 -90z" />
-<glyph unicode="&#x21db;" d="M786 319h-720v82h802l119 119h-921v82h921l-119 119h-802v82h720l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21dc;" d="M66 520v82l291 291l90 -90l-160 -160h129l58 -67l151 173l150 -173l150 173l150 -173l59 67h33v-164l-92 -106l-150 173l-150 -173l-150 173l-151 -173l-91 106h-96l160 -160l-90 -90z" />
-<glyph unicode="&#x21dd;" d="M786 319l160 160h-96l-91 -106l-151 173l-150 -173l-150 173l-150 -173l-92 106v164h33l59 -67l150 173l150 -173l150 173l151 -173l58 67h129l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x21e0;" d="M66 520v82l291 291l90 -90l-160 -160h258v-164h-258l160 -160l-90 -90zM670 643h187v-164h-187v164zM980 643h187v-164h-187v164z" />
-<glyph unicode="&#x21e1;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160l1 -258h-165v258zM535 497h163l1 -187h-165zM535 187h163v-187h-164z" />
-<glyph unicode="&#x21e2;" d="M786 319l160 160h-258v164h258l-160 160l90 90l291 -291v-82l-291 -291zM66 643h187v-164h-187v164zM376 643h187v-164h-187v164z" />
-<glyph unicode="&#x21e3;" d="M534 1101h164v-187h-163zM534 791h164v-187h-163zM284 291l90 90l160 -160v258h164v-258l160 160l90 -90l-290 -291h-82z" />
-<glyph unicode="&#x21e4;" d="M66 893h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664z" />
-<glyph unicode="&#x21e5;" d="M622 319l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
-<glyph unicode="&#x21e6;" d="M25 561l373 373v-201h769v-344h-769v-201zM319 459h778v204h-778v93l-194 -195l194 -195v93z" />
-<glyph unicode="&#x21e7;" d="M444 769h-200l372 373l374 -373h-202v-769h-344v769zM718 70v778h94l-196 194l-194 -194h92v-778h204z" />
-<glyph unicode="&#x21e8;" d="M836 389h-770v344h770v201l372 -373l-372 -373v201zM1108 561l-194 195v-93h-778v-204h778v-93z" />
-<glyph unicode="&#x21e9;" d="M244 373h200v769h344v-769h202l-374 -373zM812 294h-94v778h-204v-778h-92l194 -194z" />
-<glyph unicode="&#x21eb;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM920 70v140h-202v638h94l-196 194l-194 -194h92v-638h-200v-140h606z" />
-<glyph unicode="&#x21ec;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM688 971l-72 71l-71 -71h143zM920 70v140h-202v638h94l-76 74h-240l-74 -74h92v-638h-200v-140h606z" />
-<glyph unicode="&#x21ed;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM582 70v937l-160 -159h92v-638h-200v-140h268zM920 70v140h-202v638h94l-160 159v-937h268z" />
-<glyph unicode="&#x21ee;" d="M444 569h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-569h-344v569zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM718 70v578h94l-196 194l-194 -194h92v-578h204z" />
-<glyph unicode="&#x21ef;" d="M244 280h200v289h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-289h202v-280h-746v280zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM920 70v140h-202v438h94l-196 194l-194 -194h92v-438h-200v-140h606z" />
-<glyph unicode="&#x21f0;" d="M66 934h280v-201h490v201l372 -373l-372 -373v201h-490v-201h-280v746zM276 258v201h638v-93l194 195l-194 195v-93h-637l-1 201h-140v-606h140z" />
-<glyph unicode="&#x21f1;" d="M70 1094h1093v-73h-1020v-1021h-73v1094zM425 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
-<glyph unicode="&#x21f2;" d="M464 356h228l-622 622l116 116l622 -622v227h126v-412l-58 -58h-412v127zM70 73h1020v1020h74v-1093h-1094v73z" />
-<glyph unicode="&#x21f3;" d="M244 373h200v396h-200l372 373l374 -373h-202v-396h202l-374 -373zM812 294h-94v554h94l-196 194l-194 -194h92v-554h-92l194 -194z" />
-<glyph unicode="&#x21f4;" d="M786 319l160 160h-237q-9 -32 -30.5 -66.5t-55.5 -63t-80.5 -47t-106.5 -18.5q-59 0 -104 18t-77.5 46.5t-52.5 63t-29 67.5h-107v164h107q9 33 30 68.5t54 65t78 48t104 18.5q61 0 109.5 -21.5t89.5 -62.5q17 -17 31.5 -37.5t29.5 -52.5q4 -8 5.5 -12.5l4.5 -13.5h237 l-160 160l90 90l291 -291v-82l-291 -291zM587 643q-11 19 -28 37q-23 23 -51.5 36t-66.5 13q-70 0 -119 -49q-18 -16 -29 -37h294zM437 396q69 0 122 48q8 8 15.5 16.5t12.5 18.5h-293q8 -12 14.5 -20.5t12.5 -15.5q44 -47 116 -47z" />
-<glyph unicode="&#x21f5;" d="M42 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82zM776 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
-<glyph unicode="&#x21f6;" d="M786 -165l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-201 -201l201 -201v-82l-291 -291z" />
-<glyph unicode="&#x21f7;" d="M66 520v82l291 291l90 -90l-160 -160h347v250h164v-250h369v-164h-369v-250h-164v250h-347l160 -160l-90 -90z" />
-<glyph unicode="&#x21f8;" d="M434 479h-368v164h368v250h164v-250h348l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-348v-250h-164v250z" />
-<glyph unicode="&#x21f9;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-247l160 -160l-90 -90z" />
-<glyph unicode="&#x21fa;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h116v250h164v-250h189v-164h-189v-250h-164v250h-116v-250h-164v250h-247l160 -160l-90 -90z" />
-<glyph unicode="&#x21fb;" d="M254 479h-188v164h188v250h164v-250h116v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-116v-250h-164v250z" />
-<glyph unicode="&#x21fc;" d="M66 520v82l291 291l90 -90l-160 -160h167v250h134v-250h56v250h134v-250h168l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-168v-250h-134v250h-56v-250h-134v250h-167l160 -160l-90 -90z" />
-<glyph unicode="&#x21fd;" d="M25 561l373 373v-291h769v-164h-769v-291zM319 756l-194 -195l194 -195v390z" />
-<glyph unicode="&#x21fe;" d="M835 479h-769v164h769v291l373 -373l-373 -373v291zM1108 561l-194 195v-390z" />
-<glyph unicode="&#x21ff;" d="M25 561l373 373v-291h437v291l373 -373l-373 -373v291h-437v-291zM319 756l-194 -195l194 -195v390zM1108 561l-194 195v-390z" />
-<glyph unicode="&#x2200;" d="M37 1493h209l108 -389h523l110 389h209l-457 -1493h-245zM829 942h-426l213 -764z" />
-<glyph unicode="&#x2201;" d="M636 -29q-254 0 -386 198q-69 103 -101 246t-32 328q0 379 131.5 578t388.5 199q84 0 149 -20t114.5 -54t85.5 -78.5t61.5 -93.5t42 -99.5t26.5 -95.5h-202q-9 37 -21 70.5t-24 57.5q-35 72 -94.5 112.5t-142.5 40.5q-155 0 -233.5 -153t-78.5 -462t78.5 -462t233.5 -153 q83 0 142.5 40.5t94.5 112.5q13 26 24.5 58.5t20.5 69.5h202q-11 -48 -28 -99.5t-43 -100.5t-62 -92.5t-86 -76.5t-114.5 -52t-146.5 -19z" />
-<glyph unicode="&#x2202;" d="M545 -25q-72 0 -138 27t-116 80q-51 54 -76 124.5t-25 154.5q0 87 27.5 171.5t82.5 149.5q57 67 129.5 97t148.5 30q95 0 160 -45q29 -20 56 -54t48 -89q8 44 13.5 85.5t9.5 83.5q4 41 5.5 80.5t1.5 68.5q0 66 -8 116.5t-28 85.5q-19 33 -47 49t-62 16q-33 0 -61 -14.5 t-66 -43.5q-34 -26 -59 -42t-50 -16q-7 0 -25 3.5t-35 18.5q-11 11 -17 25t-6 29q0 27 18.5 57.5t53.5 53.5q33 23 78 35.5t96 12.5q87 0 160 -38.5t127 -116.5q51 -75 78.5 -180.5t27.5 -243.5q0 -167 -38.5 -308t-104.5 -243q-69 -106 -161 -163t-198 -57zM543 31 q53 0 99 31.5t81 97.5q34 63 52 147t18 176q0 69 -10.5 114t-32.5 76q-44 62 -122 62q-53 0 -99 -31t-81 -97t-53 -151t-18 -174q0 -71 11 -116t32 -74q22 -30 53.5 -45.5t69.5 -15.5z" />
-<glyph unicode="&#x2203;" d="M178 170h692v492h-692v170h692v491h-692v170h875v-1493h-875v170z" />
-<glyph unicode="&#x2204;" d="M268 0h-90v170h138l139 492h-277v170h324l138 491h-462v170h510l27 96h155l-28 -96h211v-1493h-630l-27 -94h-154zM870 832v491h-75l-138 -491h213zM870 170v492h-261l-138 -492h399z" />
-<glyph unicode="&#x2205;" d="M74 198l117 117q-23 29 -43 63.5t-35 75t-24 87.5t-9 102q0 223 157 380q159 159 380 159q55 0 102.5 -9t88 -25t74.5 -36.5t63 -42.5l117 117l99 -99l-118 -118q45 -56 77.5 -136t32.5 -189q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5q-54 0 -101 9t-87 24 t-74 35t-62 43l-118 -118zM844 968q-18 13 -36 23.5t-40 19.5q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-60 -60 -87.5 -133.5t-27.5 -151.5q0 -79 28 -148q8 -20 19 -39t24 -37zM614 246q78 0 152 29.5t131 86.5q59 59 87 132t28 151q0 38 -7 76.5t-21 73.5 q-7 17 -18 37.5t-23 36.5l-552 -552q17 -13 37 -23.5t36 -17.5q35 -15 73.5 -22.5t76.5 -7.5z" />
-<glyph unicode="&#x2206;" d="M512 1423h209l520 -1423h-1247zM985 172l-369 1047l-368 -1047h737z" />
-<glyph unicode="&#x2207;" d="M-6 1423h1247l-520 -1423h-209zM985 1251h-737l368 -1047z" />
-<glyph unicode="&#x2208;" d="M632 0q-69 0 -133.5 26t-120.5 73.5t-102 115t-79 150.5q-34 85 -50.5 176t-16.5 188q0 100 17 194t49.5 175.5t78.5 149.5t105 118q116 98 252 98h472v-170h-472q-48 0 -91.5 -21.5t-80 -59t-66 -88.5t-49.5 -111q-14 -42 -26 -95t-15 -102h798v-170h-798q4 -51 14 -99 t28 -98q50 -139 124 -209.5t162 -70.5h472v-170h-472v0z" />
-<glyph unicode="&#x2209;" d="M319 -128l67 221q-60 49 -107.5 118t-80.5 151.5t-50.5 176.5t-17.5 193t17.5 192t49.5 175t78.5 150t104.5 117q116 98 252 98h170l54 177l163 -50l-39 -127h124v-170h-176l-144 -477h318v-170h-370l-144 -473q19 -4 44 -4h472v-170h-472q-49 0 -92 12l-58 -189z M606 817l144 477h-118q-91 0 -164 -71.5t-122 -208.5q-18 -51 -28 -98.5t-14 -98.5h302zM554 647h-250q5 -58 15 -103t27 -94q10 -30 20.5 -54.5t21.5 -45.5t23.5 -40t28.5 -38z" />
-<glyph unicode="&#x220a;" d="M630 165q-69 0 -132.5 16.5t-119 47t-102 74.5t-79.5 99q-35 58 -51 117.5t-16 119.5q0 66 17.5 127.5t50 115t78.5 97.5t103 75q115 63 251 63h472v-170h-472q-66 0 -119.5 -21t-93.5 -53t-65.5 -71.5t-36.5 -75.5h787v-170h-787q11 -36 36.5 -75.5t65.5 -71.5t93.5 -53 t119.5 -21h472v-170h-472v0z" />
-<glyph unicode="&#x220b;" d="M130 170h472q47 0 89.5 20.5t79.5 58t66.5 88.5t50.5 113q13 38 24.5 89.5t15.5 107.5h-798v170h798q-4 51 -15.5 106t-31 108.5t-47.5 101.5t-66 86q-77 75 -166 75h-472v170h472q68 0 132 -25.5t120 -72.5t103 -114.5t80 -151.5q34 -85 50.5 -176.5t16.5 -188.5 q0 -101 -17.5 -194.5t-49.5 -175.5t-78.5 -150t-104.5 -117q-116 -98 -252 -98h-472v170z" />
-<glyph unicode="&#x220c;" d="M214 -127l39 127h-123v170h174l146 477h-320v170h370l145 473q-19 4 -43 4h-472v170h472q47 0 92 -12l57 189l163 -49l-67 -221q60 -50 108 -118.5t81 -151t50.5 -176.5t17.5 -194q0 -99 -17.5 -192t-49.5 -174.5t-78.5 -149.5t-104.5 -117q-116 -98 -252 -98h-171 l-54 -177zM928 817q-4 51 -15 103t-28 100.5t-40 92.5t-52 79l-114 -375h249zM602 170q45 0 87.5 19.5t79 56t67 88.5t52.5 116q13 38 24.5 89.5t15.5 107.5h-301l-145 -477h120z" />
-<glyph unicode="&#x220d;" d="M130 335h472q67 0 120.5 21t93.5 53t65.5 71.5t36.5 75.5h-787v170h787q-11 36 -36.5 75.5t-65.5 71.5t-93.5 53t-120.5 21h-472v170h472q69 0 132.5 -16.5t119 -47.5t102 -74.5t79.5 -98.5q67 -110 67 -237q0 -64 -16.5 -124.5t-48.5 -113.5t-78.5 -98t-105.5 -78 q-115 -64 -251 -64h-472v170z" />
-<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
-<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-155v1822h-619v-1822h-155v1954z" />
-<glyph unicode="&#x2210;" d="M152 1518h155v-1822h619v1822h155v-1954h-929v1954z" />
-<glyph unicode="&#x2211;" d="M143 -344l549 919l-549 848v95h922v-140h-733l522 -803l-522 -874h753v-137h-942v92z" />
-<glyph unicode="&#x2212;" d="M88 727h1057v-170h-1057v170z" />
-<glyph unicode="&#x2213;" d="M88 1171h1057v-170h-1057v170zM532 329h-444v170h444v332h168v-332h445v-170h-445v-329h-168v329z" />
-<glyph unicode="&#x2215;" d="M889 1493h190l-786 -1683h-191z" />
-<glyph unicode="&#x2217;" d="M559 552l-336 -203l-57 98l358 195l-358 194l57 99l336 -203v377h115v-377l336 203l57 -99l-358 -194l358 -195l-57 -98l-336 203v-377h-115v377z" />
-<glyph unicode="&#x2218;" d="M613 327q-67 0 -124.5 24t-99.5 66t-66 99.5t-24 124.5q0 68 24.5 126.5t67.5 102t101 68t125 24.5q66 0 123 -24.5t102 -70.5q48 -48 70 -104.5t22 -118.5q0 -68 -25 -125.5t-68 -100.5t-102 -67t-126 -24zM614 454q40 0 75 14.5t61.5 40t41.5 60t15 73.5t-15 74t-41 61 t-61 41t-75 15q-39 0 -73.5 -15t-60 -40.5t-40.5 -61t-15 -75.5t14.5 -74t40 -59t60 -39.5t73.5 -14.5z" />
-<glyph unicode="&#x2219;" d="M519 559q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192v0z" />
-<glyph unicode="&#x221a;" d="M258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
-<glyph unicode="&#x221b;" d="M409 1043q-66 0 -122 10.5t-116 30.5v121q70 -27 125 -40t108 -13q47 0 86.5 10t67.5 29.5t43.5 48.5t15.5 66q0 69 -54.5 107t-164.5 38h-66v108h74q94 0 142.5 31.5t48.5 89.5t-47.5 89.5t-130.5 31.5q-100 0 -220 -47v121q69 17 127 26t112 9q71 0 128 -15.5t97.5 -44 t62.5 -68.5t22 -90q0 -71 -43.5 -117t-128.5 -65q193 -44 193 -213q0 -60 -24.5 -107t-71 -80t-113.5 -50t-151 -17zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
-<glyph unicode="&#x221c;" d="M500 1244h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM500 1355v413l-274 -413h274zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
-<glyph unicode="&#x221d;" d="M479 250q-63 0 -117 28t-93 78.5t-61 121.5t-22 158q0 83 20.5 151.5t58.5 117.5t92 76t120 27q92 0 160.5 -57.5t124.5 -186.5q46 118 119.5 181t164.5 63v-140q-57 0 -108.5 -58t-97.5 -183q16 -41 30.5 -70.5t27 -51.5t23.5 -37.5t21 -26.5q47 -50 104 -50v-141 q-40 0 -75 11.5t-69 38.5t-68.5 71t-73.5 110q-32 -60 -63.5 -103.5t-65.5 -72t-71.5 -42t-80.5 -13.5zM465 391q69 0 121.5 62.5t95.5 181.5q-30 72 -55 116.5t-47 67.5q-46 49 -106 49q-36 0 -66 -17t-51 -49t-33 -77t-12 -101q0 -53 10.5 -95.5t30.5 -73.5t48.5 -47.5 t63.5 -16.5z" />
-<glyph unicode="&#x221e;" d="M332 250q-61 0 -114.5 27t-94.5 80t-61.5 122.5t-20.5 152.5q0 80 19.5 150.5t58.5 122.5q37 49 90.5 76t122.5 27q50 0 88 -14.5t71 -42.5q34 -29 64.5 -73.5t60.5 -113.5q24 61 55.5 106.5t65.5 74.5t74.5 46t88.5 17q63 0 115.5 -29t91.5 -80q37 -48 61 -115.5 t24 -157.5q0 -83 -21.5 -152.5t-59.5 -118.5q-40 -52 -93.5 -78.5t-114.5 -26.5q-82 0 -147 50q-34 26 -68.5 70.5t-73.5 110.5q-64 -123 -131 -177q-35 -29 -72.5 -41.5t-78.5 -12.5zM318 391q66 0 119 59q54 60 100 185q-30 72 -55 116.5t-47 67.5q-46 49 -106 49 q-34 0 -64.5 -16.5t-53.5 -49.5q-20 -29 -32.5 -72.5t-12.5 -102.5q0 -51 10.5 -95t31.5 -77q19 -29 46.5 -46.5t63.5 -17.5zM903 391q34 0 64 16t53 51q22 32 33.5 75.5t11.5 100.5q0 105 -42 170q-42 64 -112 64q-66 0 -118 -58q-53 -59 -99 -183q32 -75 56 -118t47 -68 q45 -50 106 -50z" />
-<glyph unicode="&#x221f;" d="M126 1269h170v-812h812v-170h-982v982z" />
-<glyph unicode="&#x2220;" d="M918 1269h170l-656 -812h676v-170h-982z" />
-<glyph unicode="&#x2223;" d="M530 1565h172v-2048h-172v2048z" />
-<glyph unicode="&#x2227;" d="M498 1186h237l333 -1186h-191l-261 940l-261 -940h-191z" />
-<glyph unicode="&#x2228;" d="M164 1186h191l261 -940l261 940h191l-333 -1186h-237z" />
-<glyph unicode="&#x2229;" d="M164 580q0 120 6 198t19 130q25 103 85.5 161t151.5 88q87 29 189 29q109 0 197.5 -31t145.5 -86q28 -27 50 -65t36 -94q5 -22 9.5 -50.5t7.5 -67.5t5 -91t2 -121v-580h-172v674q0 13 -0.5 32.5t-2 41.5t-3.5 44t-5 40q-5 27 -10.5 44.5t-8.5 25.5q-12 27 -37.5 49 t-59.5 38t-74 24.5t-80 8.5q-39 0 -77 -8t-71.5 -23t-59.5 -37.5t-40 -50.5q-8 -17 -12 -34t-6 -37q-3 -22 -5 -46t-3.5 -46.5t-2.5 -40.5t-1 -27v-672h-173v580z" />
-<glyph unicode="&#x222a;" d="M616 0q-50 0 -98.5 7.5t-93 22t-83 36.5t-67.5 51q-60 60 -85 161q-13 52 -19 130t-6 198v580h173v-672q0 -9 1 -27t2.5 -40.5t3.5 -46.5t5 -46q4 -30 8 -44t10 -27q14 -29 40 -51t59.5 -37t71.5 -23t76 -8q43 0 84 9.5t75 25.5t58.5 38t34.5 46q2 4 8 22.5t11 48.5 q3 18 5 40t3.5 44t2 41.5t0.5 32.5v674h172v-580q0 -73 -2 -125.5t-5 -91t-7.5 -65.5t-10.5 -48q-14 -52 -36 -91.5t-52 -69.5t-67 -51t-80 -35q-89 -29 -192 -29z" />
-<glyph unicode="&#x222b;" d="M314 -371q-41 0 -75 10t-60 31q-26 22 -38 50.5t-12 58.5q0 25 8 46.5t26 38.5q35 32 93 32q35 0 59 -15q25 -15 39 -42q6 -12 9 -25.5t6 -33.5t7.5 -31t18.5 -11q27 0 47.5 45t35 132.5t23 216t12.5 294.5q1 31 1 50.5t0.5 36t0.5 34t1 44.5q7 252 32 435.5t75 300.5 t124.5 170t167.5 53q39 0 74.5 -9.5t61.5 -32.5q49 -43 49 -109q0 -51 -32 -83t-87 -32q-42 0 -70 19q-16 11 -25 24t-15 30q-4 11 -6 25.5t-4 25.5q-3 19 -7.5 27.5t-16.5 8.5q-51 0 -81 -154t-37 -465q0 -13 -1 -47t-2 -77.5t-2.5 -91t-2.5 -87.5q-5 -127 -14.5 -231.5 t-23 -189t-32 -150t-41.5 -115.5q-47 -102 -118.5 -154.5t-167.5 -52.5z" />
-<glyph unicode="&#x222c;" d="M250 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t44.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5l1 1570q0 49 15.5 101t45.5 95t75.5 71t105.5 28q40 0 91 -14t96 -43l-67 -127q-25 14 -49.5 24t-46.5 10q-18 0 -33 -8.5t-26.5 -28t-17.5 -52.5t-6 -81v-1570 q0 -49 -15.5 -101.5t-46 -95.5t-75.5 -70.5t-105 -27.5zM681 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t45.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5v1570q0 49 15.5 101.5t46 95.5t75.5 70.5t105 27.5q40 0 91 -14t96 -43l-67 -127q-25 14 -49.5 24t-46.5 10 q-18 0 -33 -8.5t-26 -28t-17 -52.5t-6 -81l-1 -1570q0 -49 -15.5 -101t-45.5 -95t-75.5 -71t-105.5 -28z" />
-<glyph unicode="&#x222d;" d="M178 -361q-32 0 -60.5 7t-64.5 21l36 142q16 -7 39.5 -10.5t35.5 -3.5q20 0 28 15.5t8 62.5v1629q0 55 12 104t37 85.5t64 57.5t94 21q32 0 60.5 -7t64.5 -21l-36 -142q-18 8 -41 11t-34 3q-21 0 -29 -15.5t-8 -62.5v-1629q0 -56 -11.5 -105t-36.5 -85t-64 -57t-94 -21z M503 -361q-32 0 -60.5 7t-64.5 21l36 142q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 55 11.5 104t36.5 85.5t64 57.5t94 21q32 0 60.5 -7t64.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -56 -12 -105t-37 -85t-64 -57t-94 -21z M827 -361q-32 0 -60.5 7t-64.5 21l36 142q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 55 11.5 104t36.5 85.5t64 57.5t94 21q32 0 60.5 -7t64.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -56 -12 -105t-37 -85t-64 -57t-94 -21z" />
-<glyph unicode="&#x2234;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2235;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2236;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2237;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134 q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2238;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170z" />
-<glyph unicode="&#x2239;" d="M937 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM74 727h746v-170h-746v170zM935 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x223a;" d="M118 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM923 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170zM117 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245 q0 -30 -30 -30h-192zM927 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x223b;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM520 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x223c;" d="M88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
-<glyph unicode="&#x223d;" d="M381 497q-75 0 -146.5 27t-146.5 87v175q75 -63 143 -93t137 -30q94 0 210 54l32 15q68 32 125 43t105 11q81 0 154 -27.5t151 -87.5v-174q-76 66 -146 94.5t-151 28.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5t-6 -2.5t-3.5 -1.5t-8 -3.5 q-54 -23 -102 -37t-105 -14z" />
-<glyph unicode="&#x2241;" d="M448 205l88 387q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5 t-95.5 30.5l-83 -364z" />
-<glyph unicode="&#x2242;" d="M88 930h1057v-170h-1057v170zM88 479q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11 q-81 0 -150.5 -30t-143.5 -95v174z" />
-<glyph unicode="&#x2243;" d="M88 848q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 524 h1057v-172h-1057v172z" />
-<glyph unicode="&#x2244;" d="M232 199l89 154h-233v171h337l146 231q-44 20 -92.5 31t-98.5 11q-76 0 -140 -27q-18 -8 -38.5 -18.5t-41 -23.5t-39 -27t-33.5 -28v172q42 36 84 59t82 36.5t77.5 18.5t70.5 5q26 0 49 -3t48 -9t52.5 -15.5t62.5 -22.5l13 -5l29 -16l198 344l113 -100l-167 -288 q34 -6 66 -6q81 0 151 34t128 89v-178q-27 -26 -65.5 -47.5t-80.5 -36.5t-83.5 -23.5t-75.5 -8.5q-31 0 -61 7.5t-77 22.5l-110 -178h554v-171h-648l-152 -254z" />
-<glyph unicode="&#x2245;" d="M88 1052q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18 t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
-<glyph unicode="&#x2246;" d="M88 1052q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18 t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM293 131l44 61h-249v172h373l139 192h-512v172h635l104 143l113 -82l-44 -61h249v-172h-373l-139 -192h512v-172h-636l-103 -143z" />
-<glyph unicode="&#x2247;" d="M310 55l50 137h-272v172h333l69 192h-402v172h464l75 209q-9 4 -15 6q-39 17 -70.5 28t-58.5 18t-51 9.5t-48 2.5q-82 0 -152.5 -29.5t-143.5 -93.5v174q39 30 76 51.5t74.5 36t77 21t83.5 6.5q24 0 48.5 -2.5t51 -8.5t57 -16.5t67.5 -26.5l58 -25l86 238l155 -56 l-81 -225q5 -1 11 -1h12q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-148.5 -27q-18 0 -33.5 1.5t-32.5 4.5l-56 -156h417v-172h-479l-69 -192h548v-172h-609l-70 -192z" />
-<glyph unicode="&#x2248;" d="M88 848q39 30 78 52.5t73 35.5q36 14 75 20.5t93 6.5q9 0 17 -0.5t18.5 -1.5t23.5 -3.5t32 -6.5q17 -4 30.5 -7.5t27 -8t29.5 -11t38 -15.5q9 -4 12 -5.5t5 -2t4.5 -2t10.5 -5.5q47 -23 103.5 -38.5t107.5 -15.5q68 0 137 30q32 14 69.5 38.5t72.5 54.5v-175 q-75 -58 -146 -86q-36 -14 -73.5 -21t-75.5 -7q-56 0 -103 14t-102 37l-33 14q-24 10 -41 17t-31 12.5t-27 9t-29 7.5q-53 12 -102 12q-41 0 -79.5 -7.5t-70.5 -21.5q-31 -13 -68.5 -36.5t-75.5 -57.5v174zM88 479q40 31 79 54t73 36q32 12 71.5 19.5t80.5 7.5 q100 0 229 -55h1l33 -15q60 -27 108 -41t99 -14q41 0 74 8.5t65 22.5q34 15 68 37t76 57v-176q-38 -29 -75 -51t-71 -36q-36 -14 -74 -21t-74 -7q-49 0 -99 12.5t-107 38.5l-33 15q-15 7 -33 14t-36 13.5t-34.5 12t-28.5 8.5q-19 5 -47 8t-54 3q-76 0 -146 -30 q-71 -30 -145 -95v174z" />
-<glyph unicode="&#x2249;" d="M378 89l99 330q-50 11 -97 11q-78 0 -147.5 -29.5t-144.5 -95.5v174q77 61 150.5 89t151.5 28q35 0 67 -5t67 -15l54 178q-55 22 -100.5 32.5t-94.5 10.5q-81 0 -151.5 -29.5t-143.5 -93.5v174q38 29 74.5 50.5t74 36t77.5 21.5t85 7q25 0 48.5 -2.5t49.5 -8.5t57 -17 t70 -27l93 311l138 -41l-97 -323q57 -15 106 -15q70 0 138 30t143 93v-175q-72 -57 -144 -85.5t-150 -28.5q-68 0 -140 25l-52 -175q115 -53 205 -53q69 0 137.5 30.5t143.5 94.5v-176q-73 -58 -145 -86.5t-148 -28.5q-50 0 -103 12.5t-104 38.5l-31 16l-98 -324z" />
-<glyph unicode="&#x224a;" d="M88 1056q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 687 q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11q-81 0 -150.5 -30t-143.5 -95v174zM88 364 h1057v-172h-1057v172z" />
-<glyph unicode="&#x224b;" d="M88 1056q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 687 q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11q-81 0 -150.5 -30t-143.5 -95v174zM88 323 q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11q-81 0 -150.5 -30t-143.5 -95v174z" />
-<glyph unicode="&#x224c;" d="M381 878q-75 0 -146.5 27t-146.5 87v175q75 -63 143 -93t140 -30q51 0 99 14t108 40l32 14q42 18 75.5 29t60.5 17t48.5 7.5t39.5 1.5q40 0 78 -6t76 -19.5t76.5 -35.5t80.5 -54v-174q-76 66 -146 94.5t-151 28.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5 q-11 -5 -15.5 -6.5t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
-<glyph unicode="&#x224d;" d="M617 729q-200 0 -530 156v178q345 -155 530 -163q186 0 527 163v-178q-327 -156 -527 -156zM88 399q328 156 528 156t529 -156v-178q-344 155 -529 163q-186 0 -528 -163v178z" />
-<glyph unicode="&#x224e;" d="M88 930h225q2 10 7.5 35.5t20.5 58.5t43.5 69.5t76.5 69.5q35 24 72.5 37.5t79.5 13.5q40 0 80.5 -12.5t77 -36t66.5 -56t49 -71.5q11 -22 20 -50t14 -58h225v-168h-342q-3 97 -28.5 162t-66.5 101q-22 20 -43.5 27.5t-47.5 6.5q-54 -2 -95.5 -37.5t-65.5 -107.5 q-20 -61 -25 -152h-343v168zM617 68q-30 0 -66.5 9.5t-73 30.5t-70.5 54.5t-59 81.5q-15 29 -22.5 54.5t-12.5 53.5h-225v168h343q3 -92 28 -161t67 -102q17 -14 41 -24t52 -10q48 0 90.5 35.5t68.5 109.5q11 30 17 66.5t8 85.5h342v-168h-225q-2 -12 -8.5 -39t-22.5 -61 t-44 -69.5t-72 -64.5q-37 -24 -77.5 -37t-78.5 -13z" />
-<glyph unicode="&#x224f;" d="M88 930h225q2 10 7.5 35.5t20.5 58.5t43.5 69.5t76.5 69.5q35 24 72.5 37.5t79.5 13.5q40 0 80.5 -12.5t77 -36t66.5 -56t49 -71.5q11 -22 20 -50t14 -58h225v-168h-342q-3 97 -28.5 162t-66.5 101q-22 20 -43.5 27.5t-47.5 6.5q-54 -2 -95.5 -37.5t-65.5 -107.5 q-20 -61 -25 -152h-343v168zM88 522h1057v-170h-1057v170z" />
-<glyph unicode="&#x2250;" d="M521 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2251;" d="M521 1305q-30 0 -30 -30v30h30zM743 1275q0 30 -30 30h30v-30zM491 1030q0 -30 30 -30h-30v30zM713 1000q30 0 30 30v-30h-30zM1145 930v-170h-1057v170h1057zM88 524h1057v-172h-1057v172zM712 282q30 0 30 -30v-245q0 -30 -30 -30h-192q-30 0 -30 30v245q0 30 30 30 h192z" />
-<glyph unicode="&#x2252;" d="M118 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM923 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2253;" d="M923 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM117 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2254;" d="M104 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 930h773v-170h-773v170zM104 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 524h773v-172h-773v172z" />
-<glyph unicode="&#x2255;" d="M953 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 930h773v-170h-773v170zM953 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 524h773v-172h-773v172z" />
-<glyph unicode="&#x2256;" d="M88 522h318q-25 62 -25 120q0 61 27 120h-320v168h1057v-168h-311q13 -12 19.5 -44t6.5 -70q0 -32 -5.5 -60t-21.5 -66h312v-170h-1057v170zM693 522q26 24 38.5 55t12.5 63q0 33 -13 64.5t-39 57.5h-143q-52 -48 -52 -120t51 -120h145z" />
-<glyph unicode="&#x2257;" d="M614 1000q-61 0 -113.5 21t-90.5 58t-60 87.5t-22 108.5q0 59 22.5 110.5t61.5 89.5t91.5 60t112.5 22t114 -22t92 -61q42 -40 63 -90t21 -106q0 -59 -22.5 -109.5t-62 -88t-93 -59t-114.5 -21.5zM617 1111q36 0 68 13t55 35t36.5 52t13.5 65t-13.5 65.5t-37 53.5t-55 36 t-67.5 13t-68 -13t-55 -36t-36.5 -53.5t-13.5 -65.5t13.5 -65t36.5 -52t55 -35t68 -13zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2258;" d="M182 1204q209 151 437 151q230 0 432 -151v-178q-214 151 -433 160q-214 -1 -436 -160v178zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2259;" d="M536 1604h162l233 -602h-143l-171 426l-166 -426h-149zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225a;" d="M302 1604h149l166 -426l171 426h143l-233 -602h-162zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225b;" d="M482 1287l-218 158h269l84 256l85 -256h268l-218 -158l85 -256l-220 159l-219 -159zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225c;" d="M566 1711h101l260 -663h-621zM767 1159l-151 390l-150 -390h301zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225d;" d="M238 994q-39 0 -70 15t-53 43t-34 66.5t-12 86.5t12 87t34 66.5t53 43t70 15.5t71.5 -17t53.5 -54v218h67v-560h-61l-6 61q-21 -37 -53.5 -54t-71.5 -17zM970 1356h-63v51h63v28q0 69 31 99t100 30h63v-55h-64q-35 0 -49 -14.5t-14 -51.5v-36h109v-51h-109v-352h-67v352z M701 994q-98 0 -154.5 55t-56.5 155q0 49 14 88t40 67t62 43t80 15q84 0 131 -52t47 -143v-32h-304q4 -69 41 -104.5t106 -35.5q68 0 142 37v-62q-74 -31 -148 -31zM251 1049q53 0 82.5 41.5t29.5 115.5t-29.5 115t-82.5 41t-83 -41q-30 -42 -30 -114q0 -75 30 -116.5 t83 -41.5zM798 1242q-2 55 -30.5 87t-82.5 32t-86 -32.5t-37 -87.5zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225e;" d="M221 1543h81l8 -85q29 48 71 73t101 25q58 0 99.5 -28t64.5 -91q65 119 187 119q88 0 133.5 -60t45.5 -171v-331h-89v328q0 80 -28 118t-86 38q-67 0 -107.5 -46.5t-40.5 -127.5v-310h-89v328q0 81 -27.5 118.5t-85.5 37.5q-69 0 -109 -46.5t-40 -127.5v-310h-89v549z M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x225f;" d="M542 1272q0 28 3.5 48t11.5 37.5t22.5 34.5t35.5 38l45 44q26 26 40 47.5t14 50.5q0 45 -32 72.5t-85 27.5q-42 0 -86.5 -17.5t-93.5 -50.5v94q95 56 193 56q47 0 85 -12.5t65 -36t41.5 -56t14.5 -71.5q0 -41 -18.5 -74t-62.5 -76l-44 -43q-14 -13 -22 -22.5t-13 -16.5 t-7.5 -12.5t-4.5 -11.5q-3 -10 -4.5 -25t-1.5 -41v-62h-96v78zM569 994q-30 0 -30 30v67q0 30 30 30h42q30 0 30 -30v-67q0 -30 -30 -30h-42zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x2260;" d="M125 141l164 211h-201v172h330l184 236h-514v170h647l246 315l125 -102l-164 -213h203v-170h-334l-184 -236h518v-172h-647l-248 -315z" />
-<glyph unicode="&#x2261;" d="M88 1090h1057v-170h-1057v170zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
-<glyph unicode="&#x2262;" d="M272 74l55 118h-239v172h317l88 192h-405v172h485l88 192h-573v170h651l85 184l141 -65l-55 -119h235v-170h-312l-89 -192h401v-172h-480l-90 -192h570v-172h-649l-83 -182z" />
-<glyph unicode="&#x2263;" d="M88 1262h1057v-170h-1057v170zM88 900h1057v-172h-1057v172zM88 536h1057v-172h-1057v172zM88 172h1057v-172h-1057v172z" />
-<glyph unicode="&#x2264;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x2265;" d="M88 438l803 234l-803 231v184l1057 -331v-168l-1057 -332v182zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x2266;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
-<glyph unicode="&#x2267;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
-<glyph unicode="&#x2268;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
-<glyph unicode="&#x2269;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
-<glyph unicode="&#x226d;" d="M235 77l129 258q-125 -41 -276 -114v178q110 52 204 87t175 52l97 193q-190 18 -477 154v178q347 -170 563 -162l194 383l154 -77l-130 -258q121 40 276 114v-178q-216 -104 -378 -138l-98 -194q192 -18 477 -154v-178q-347 170 -563 162l-193 -383z" />
-<glyph unicode="&#x226e;" d="M362 19l119 385l-393 155v166l562 222l114 365l153 -48l-75 -241l303 120v-182l-366 -138l-100 -325l466 -174v-183l-514 203l-116 -373zM590 752l-295 -111l233 -86z" />
-<glyph unicode="&#x226f;" d="M316 19l75 241l-303 -120v182l366 138l100 325l-466 174v183l514 -203l116 373l153 -48l-119 -385l393 -155v-166l-562 -222l-114 -365zM938 642l-233 86l-62 -197z" />
-<glyph unicode="&#x2270;" d="M293 -190l63 190h-268v170h323l95 287l-418 131v168l575 180l115 352l161 -53l-77 -237l283 89v-184l-348 -100l-78 -241l426 -124v-182l-477 150l-78 -236h555v-170h-610l-80 -243zM600 746l-256 -74l211 -62z" />
-<glyph unicode="&#x2271;" d="M205 -190l62 190h-179v170h235l58 178l-293 -92v182l358 104l76 236l-434 125v184l486 -152l116 353l161 -53l-115 -351l409 -128v-168l-565 -177l-78 -241h643v-170h-699l-79 -243zM891 672l-206 60l-42 -132z" />
-<glyph unicode="&#x2272;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 130q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3 t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
-<glyph unicode="&#x2273;" d="M86 438l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 130q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5 q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
-<glyph unicode="&#x2274;" d="M293 -190l88 269q-81 0 -151.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q14 0 24 -0.5t21 -1.5l69 214l-418 131v168l577 181l115 351l161 -53l-77 -236l281 88v-184l-345 -99l-80 -242l425 -124v-182l-477 150l-66 -207q23 -7 53 -23q115 -54 209 -54 q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-149.5 -27q-29 0 -53 3.5t-48 10t-49 16t-54 21.5l-33 14q-2 1 -4.5 2t-8.5 3.5t-17 7t-30 12.5l-95 -289zM601 747l-259 -75l213 -62z" />
-<glyph unicode="&#x2275;" d="M205 -190l85 259q-34 -8 -60 -19q-34 -14 -70.5 -38t-73.5 -56v174q78 60 141 84t121 29l34 106l-296 -93v182l359 105l78 234l-437 126v184l488 -153l116 354l161 -53l-115 -352l407 -127v-168l-563 -177l-59 -184q5 -1 18.5 -5.5t29 -10t30 -11.5t22.5 -9l32 -15 q115 -54 210 -54q69 0 137 30t143 93v-175q-72 -57 -145 -85.5t-151 -28.5q-52 0 -98 12.5t-106 38.5l-33 14q-26 11 -43.5 18t-31.5 12.5t-29 9.5t-36 9l-103 -313zM887 672l-202 59l-42 -130z" />
-<glyph unicode="&#x2276;" d="M86 736v168l1057 331v-184l-801 -231l801 -234v-182zM86 0l801 234l-801 231v184l1057 -331v-168l-1057 -332v182z" />
-<glyph unicode="&#x2277;" d="M86 586l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 150v168l1057 331v-184l-801 -231l801 -234v-182z" />
-<glyph unicode="&#x2278;" d="M259 -352l76 248l-249 -78v182l308 90l80 263l-388 112v184l437 -137l24 79l-461 145v168l616 193l110 360l162 -50l-76 -249l245 77v-184l-306 -88l-80 -264l386 -113v-182l-434 136l-25 -78l459 -144v-168l-613 -193l-109 -357zM644 907l-302 -87l252 -74zM887 234 l-250 72l-50 -160z" />
-<glyph unicode="&#x2279;" d="M259 -352l125 408l-298 94v168l418 131l29 95l-447 -140v182l505 147l48 158l-553 160v184l601 -188l125 410l162 -50l-126 -411l295 -92v-168l-414 -130l-29 -96l443 139v-184l-502 -145l-48 -159l550 -161v-182l-598 188l-124 -406zM887 820l-85 25l-17 -55zM447 264 l-105 -30l88 -26z" />
-<glyph unicode="&#x227a;" d="M1143 -45q-327 453 -1057 603v166q735 149 1057 603v-239q-327 -360 -747 -447q427 -98 747 -447v-239v0z" />
-<glyph unicode="&#x227b;" d="M88 194q319 349 747 447q-420 87 -747 447v239q322 -454 1057 -603v-166q-730 -150 -1057 -603v239z" />
-<glyph unicode="&#x227c;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM1143 -252q-43 52 -101 108.5t-121.5 111t-127 103t-117.5 84.5q-55 36 -114.5 67t-130 57t-155 47t-190.5 37v200 q184 -28 334 -78.5t277 -121.5t235.5 -162t210.5 -201v-252z" />
-<glyph unicode="&#x227d;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-171 -29 -323.5 -79t-285 -118.5t-245 -155t-203.5 -186.5v239zM86 0q102 110 210.5 201t235.5 162t277 121.5t334 78.5v-200q-106 -17 -189.5 -37t-153 -45.5t-129 -56.5 t-117.5 -69q-59 -39 -123.5 -88.5t-127 -103t-118.5 -109t-99 -106.5v252z" />
-<glyph unicode="&#x227e;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM86 60q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175 q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
-<glyph unicode="&#x227f;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM86 60q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5 q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
-<glyph unicode="&#x2280;" d="M345 -115l166 546q-97 40 -202.5 71.5t-222.5 55.5v166q329 66 573 193l161 530l163 -50l-104 -342q154 118 264 272v-239q-81 -88 -165.5 -159.5t-175.5 -126.5l-85 -277q231 -118 426 -331v-239q-178 247 -476 404l-160 -524zM592 699q-48 -19 -96.5 -33t-99.5 -25 q85 -20 164 -48z" />
-<glyph unicode="&#x2281;" d="M246 -115l104 342q-154 -118 -264 -272v239q81 88 165.5 159.5t175.5 126.5l85 277q-231 118 -426 331v239q178 -247 476 -404l160 524l162 -50l-166 -546q97 -40 202.5 -71.5t222.5 -55.5v-166q-329 -66 -573 -193l-161 -530zM637 583q48 19 96.5 33t99.5 25 q-85 20 -164 48z" />
-<glyph unicode="&#x2282;" d="M566 163q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579v0z" />
-<glyph unicode="&#x2283;" d="M88 313h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150z" />
-<glyph unicode="&#x2284;" d="M309 -7l70 205q-45 19 -82.5 45t-69.5 59q-68 69 -103.5 152t-35.5 182q0 102 37 190t101.5 153.5t151.5 102.5t187 37h126l75 223l161 -53l-57 -170h275v-150h-326l-221 -656h547v-150h-599l-75 -223zM639 969h-74q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105 t-25.5 -130.5q0 -66 23.5 -123.5t71.5 -105.5q23 -23 46.5 -39.5t47.5 -27.5z" />
-<glyph unicode="&#x2285;" d="M306 -7l57 170h-275v150h326l221 656h-547v150h599l75 223l162 -53l-70 -205q45 -19 82.5 -45t69.5 -59q68 -69 103.5 -152t35.5 -182q0 -102 -37 -190t-101.5 -153.5t-151.5 -102.5t-187 -37h-126l-75 -223zM668 313q69 0 128.5 25.5t103.5 70t69.5 105t25.5 130.5 q0 66 -23.5 123.5t-71.5 105.5q-23 23 -46.5 39.5t-47.5 27.5l-212 -627h74z" />
-<glyph unicode="&#x2286;" d="M566 324q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579zM88 170h1057v-170 h-1057v170z" />
-<glyph unicode="&#x2287;" d="M88 474h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150zM88 170h1057v-170 h-1057v170z" />
-<glyph unicode="&#x2288;" d="M261 -159l54 159h-227v170h283l58 172q-57 16 -117 52.5t-110 94t-82 134.5t-32 174q0 102 37 190t101.5 153.5t151.5 102.5t187 37h178l71 214l158 -53l-53 -161h226v-150h-276l-220 -656h496v-150h-547l-50 -154h597v-170h-654l-71 -212zM692 1130h-127 q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105t-25.5 -130.5q0 -66 21.5 -118.5t56 -92t77 -65t83.5 -37.5z" />
-<glyph unicode="&#x2289;" d="M261 -159l53 159h-226v170h283l51 154h-334v150h385l219 655q-6 1 -12 1h-12h-580v150h580q19 0 37.5 -1.5t35.5 -3.5l73 219l158 -53l-73 -218q56 -31 107 -82q70 -71 104.5 -155t34.5 -180q0 -102 -37 -190t-101.5 -153t-152 -102t-187.5 -37h-68l-52 -154h598v-170 h-655l-70 -212zM668 474q68 0 127.5 25.5t104 69.5t70 104.5t25.5 130.5q0 69 -25 127t-70 103q-23 23 -50 42l-202 -602h20z" />
-<glyph unicode="&#x228a;" d="M358 -102l82 102h-352v170h488l124 154h-134q-101 0 -188 37.5t-151.5 102t-101.5 152t-37 186.5t37 186t101.5 152t151.5 102.5t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104t-25.5 -127.5q0 -69 26 -129t70 -104t103.5 -69.5t127.5 -25.5h580 v-150h-335l65 -53l-81 -101h351v-170h-488l-167 -208z" />
-<glyph unicode="&#x228b;" d="M358 -102l82 102h-352v170h488l124 155q-8 -1 -16.5 -1h-16.5h-579v150h580q67 0 127 25.5t104 69.5t70 104t26 129q0 68 -25.5 127.5t-69.5 104t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102.5t101.5 -153t37 -189q0 -98 -33 -176.5t-84.5 -136.5 t-114 -95t-122.5 -51l84 -68l-81 -101h351v-170h-488l-167 -208z" />
-<glyph unicode="&#x228d;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM539 446q-30 0 -30 30 v166q0 30 30 30h152q30 0 30 -30v-166q0 -30 -30 -30h-152z" />
-<glyph unicode="&#x228e;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM566 509h-170v100h170 v170h101v-170h170v-100h-170v-172h-101v172z" />
-<glyph unicode="&#x228f;" d="M88 1163h1057v-170h-887v-704h887v-170h-1057v1044z" />
-<glyph unicode="&#x2290;" d="M88 289h887v704h-887v170h1057v-1044h-1057v170z" />
-<glyph unicode="&#x2291;" d="M88 1268h1057v-170h-887v-616h887v-170h-1057v956zM88 184h1057v-170h-1057v170z" />
-<glyph unicode="&#x2292;" d="M88 482h887v616h-887v170h1057v-956h-1057v170zM88 184h1057v-170h-1057v170z" />
-<glyph unicode="&#x2293;" d="M94 1284h1044v-1284h-170v1114h-704v-1114h-170v1284z" />
-<glyph unicode="&#x2294;" d="M94 1284h170v-1114h704v1114h170v-1284h-1044v1284z" />
-<glyph unicode="&#x2295;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM546 572 h-275v140h275v277h140v-277h276v-140h-276v-274h-140v274z" />
-<glyph unicode="&#x2296;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM271 712h691 v-140h-691v140z" />
-<glyph unicode="&#x2297;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448 l194 194l-196 196l99 99l196 -196l195 195l99 -99l-195 -195l194 -194l-99 -99l-194 194l-194 -194z" />
-<glyph unicode="&#x2298;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448 l488 488l99 -99l-488 -488z" />
-<glyph unicode="&#x2299;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM489 784h252 v-305h-252v305z" />
-<glyph unicode="&#x229a;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM614 378 q-57 0 -105 20t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 511q28 0 52.5 10t43 28t29 42.5t10.5 52.5q0 54 -39 93 q-18 18 -42 28.5t-53 10.5q-28 0 -52 -10.5t-42 -28.5t-28.5 -42.5t-10.5 -52.5t10 -52t28 -41.5t42 -27.5t52 -10z" />
-<glyph unicode="&#x229b;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M559 1037q-49 -7 -106.5 -31.5t-115.5 -81.5q-9 -10 -17 -19t-16 -19l255 -154v305zM929 886q-8 10 -16 19t-17 19q-58 57 -115.5 81.5t-106.5 31.5v-305zM524 642l-276 150q-27 -69 -27 -150t28 -150zM984 492q28 69 28 150t-27 150l-276 -150zM559 552l-254 -153l16 -18 l16 -18q58 -57 115.5 -81.5t106.5 -31.5v302zM674 250q49 7 106.5 31.5t115.5 81.5l16 18l16 18l-254 153v-302z" />
-<glyph unicode="&#x229c;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM299 814h635 v-102h-635v102zM299 571h635v-103h-635v103z" />
-<glyph unicode="&#x229d;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM415 712h403 v-140h-403v140z" />
-<glyph unicode="&#x229e;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM546 572h-311v140h311v313h140v-313h312v-140h-312v-310h-140v310z" />
-<glyph unicode="&#x229f;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM271 712h691v-140h-691v140z" />
-<glyph unicode="&#x22a0;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM253 376l266 265l-267 267l99 99l267 -267l268 268l99 -99l-268 -268l264 -264l-99 -99l-264 264l-266 -265z" />
-<glyph unicode="&#x22a1;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM489 784h252v-305h-252v305z" />
-<glyph unicode="&#x22a2;" d="M88 1284h168v-557h889v-170h-889v-557h-168v1284z" />
-<glyph unicode="&#x22a3;" d="M977 557h-889v170h889v557h168v-1284h-168v557z" />
-<glyph unicode="&#x22a4;" d="M533 1114h-445v170h1057v-170h-444v-1114h-168v1114z" />
-<glyph unicode="&#x22b2;" d="M88 559v166l1057 418v-1002zM977 898l-682 -257l682 -254v511z" />
-<glyph unicode="&#x22b3;" d="M88 1143l1057 -418v-166l-1057 -418v1002zM938 641l-682 257v-511z" />
-<glyph unicode="&#x22b4;" d="M88 588v168l1057 331v-831zM977 855l-633 -183l633 -185v368zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x22b5;" d="M88 1087l1057 -331v-168l-1057 -332v831zM891 672l-635 183v-368zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#x22b8;" d="M920 359q-60 0 -107 19.5t-81 48.5t-55 64t-30 67h-619l1 168h617q9 34 32 70.5t58 66t81 48.5t103 19q60 0 112.5 -22.5t90.5 -61.5t60 -91.5t22 -113.5q0 -60 -21.5 -111.5t-59.5 -89.5t-90.5 -59.5t-113.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43t10.5 53.5 q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
-<glyph unicode="&#x22c2;" d="M131 1023q0 148 27 248.5t85.5 161.5t150.5 87.5t222 26.5t222.5 -26.5t151 -87.5t85.5 -161.5t27 -248.5v-1459h-172v1414q0 122 -18 200.5t-56 124t-97.5 63t-142.5 17.5t-142 -17.5t-97 -63t-56 -124t-18 -200.5v-1414h-172v1459z" />
-<glyph unicode="&#x22c3;" d="M617 -465q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v1459h172v-1414q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v1414h172v-1459q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5z" />
-<glyph unicode="&#x22c4;" d="M105 642l510 510l512 -512l-510 -510zM887 640l-272 272l-270 -270l272 -272z" />
-<glyph unicode="&#x22c5;" d="M519 559q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192v0z" />
-<glyph unicode="&#x22c6;" d="M482 666l-217 158h268l84 255l83 -255h268l-217 -158l84 -255l-218 158l-218 -158z" />
-<glyph unicode="&#x22cd;" d="M381 674q-75 0 -146.5 27t-146.5 87v175q75 -63 143 -93t137 -30q94 0 210 54l32 15q68 32 125 43t105 11q81 0 154 -27.5t151 -87.5v-174q-76 66 -146 94.5t-151 28.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5t-6 -2.5t-3.5 -1.5t-8 -3.5 q-54 -23 -102 -37t-105 -14zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x22ce;" d="M532 0q0 892 -540 1284h240q369 -295 384 -596q19 298 382 596h240q-540 -392 -540 -1284h-166v0z" />
-<glyph unicode="&#x22cf;" d="M-8 0q540 391 540 1284h166q0 -893 540 -1284h-240q-369 295 -384 596q-19 -298 -382 -596h-240v0z" />
-<glyph unicode="&#x22d0;" d="M738 -6q-90 0 -173 23t-155 65t-131 101t-101 131t-65 155t-23 173q0 89 23 172t64.5 155t100 131t130.5 101.5t155 65.5t173 23h407v-170h-406q-100 0 -187 -37.5t-151.5 -102t-101.5 -152t-37 -186.5q0 -100 37 -187t101.5 -151.5t151.5 -102t188 -37.5h405v-170h-405z M737 334q-64 0 -120 24t-97.5 65.5t-65.5 97.5t-24 121q0 64 24 120t65 98t97 66t121 24h406v-170h-405q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5q0 -29 10.5 -54t29.5 -44t44 -29.5t54 -10.5h405v-170h-406z" />
-<glyph unicode="&#x22d1;" d="M90 164h406q100 0 187 37.5t151.5 102.5t101.5 152t37 187q0 99 -37 186t-101.5 151.5t-152 102t-187.5 37.5h-405v170h405q90 0 173 -23t155 -65t131 -101t101 -131t65 -155t23 -173q0 -89 -23 -172t-64.5 -155t-100 -131t-130.5 -101.5t-155 -65.5t-173 -23h-407v170z M90 504h405q29 0 54 11t44 29.5t29.5 43.5t10.5 54t-10.5 54t-29.5 44t-44 29.5t-54 10.5h-405v170h406q64 0 120 -24t97.5 -65.5t65.5 -97.5t24 -121q0 -64 -24 -120t-65 -98t-97.5 -66t-120.5 -24h-406v170z" />
-<glyph unicode="&#x22da;" d="M88 1058v168l1057 331v-184l-801 -231l801 -234v-182zM88 640h1057v-170h-1057v170zM88 -263l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
-<glyph unicode="&#x22db;" d="M88 908l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM88 640h1057v-170h-1057v170zM88 -116v168l1057 332v-182l-803 -234l803 -231v-184z" />
-<glyph unicode="&#x22dc;" d="M86 1087h1057v-170h-1057v170zM86 331v168l1057 332v-182l-801 -234l801 -231v-184z" />
-<glyph unicode="&#x22dd;" d="M88 1087h1057v-170h-1057v170zM88 184l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
-<glyph unicode="&#x22de;" d="M86 842q106 16 189.5 36.5t153 46t129 56.5t117.5 69q59 39 123.5 88.5t127 103t118.5 109t99 106.5v-252q-102 -110 -210.5 -201t-235.5 -162t-277 -121.5t-334 -78.5v200zM1143 -252q-183 203 -443.5 340.5t-613.5 198.5v166q171 28 323.5 78.5t285 119t244.5 154.5 t204 187v-239q-292 -290 -695 -383q405 -80 695 -383v-239z" />
-<glyph unicode="&#x22df;" d="M1143 642q-184 28 -334 78.5t-277 121.5t-235.5 162t-210.5 201v252q43 -52 101 -108.5t121.5 -111t127 -103t117.5 -84.5q55 -36 114.5 -67t130 -57t155 -47t190.5 -37v-200zM86 -13q290 303 695 383q-403 93 -695 383v239q91 -101 203.5 -187t245 -154.5t285 -119 t323.5 -78.5v-166q-353 -61 -613.5 -198.5t-443.5 -340.5v239z" />
-<glyph unicode="&#x22e0;" d="M271 -321l186 590q-162 64 -371 94v200q250 -38 429 -109l51 163q-210 90 -480 135v166q89 15 174.5 36t162 45.5t141.5 51.5t112 53l52 29l140 444l162 -51l-77 -245q54 42 101 85.5t89 90.5v-239q-65 -68 -135 -124t-146 -102l-86 -274q201 -100 367 -266v-239 q-85 93 -190 174.5t-233 153.5l-51 -161l7 -4q58 -33 119.5 -75.5t122 -91t118 -101.5t107.5 -108v-252q-83 98 -203.5 204t-263.5 203l-27 18t-15 9.5t-10.5 6t-11.5 7.5l-179 -568zM653 892q-100 -36 -205 -57q45 -10 87 -22.5t84 -27.5z" />
-<glyph unicode="&#x22e1;" d="M208 -321l87 278q-119 -104 -209 -209v252q139 151 309 273l78 247q-232 -136 -387 -307v239q204 202 462 309l40 127q-283 100 -502 330v239q45 -50 98.5 -98.5t113.5 -93.5t124.5 -86t130.5 -75q19 -10 43.5 -22t46.5 -21l162 516l162 -51l-165 -525 q78 -26 162.5 -46.5t178.5 -36.5v-166q-257 -44 -459 -126l-68 -216q208 105 527 153v-200q-191 -29 -335 -80.5t-255 -127.5l-22 -15l-161 -512zM781 835l-29 6l-5 -14z" />
-<glyph unicode="&#x22e2;" d="M227 -102l89 221h-228v1044h646l114 284l158 -63l-89 -221h228v-170h-296l-282 -704h578v-170h-646l-114 -284zM384 289l282 704h-408v-704h126z" />
-<glyph unicode="&#x22e3;" d="M227 -102l89 221h-228v170h296l282 704h-578v170h646l114 284l158 -63l-89 -221h228v-1044h-646l-114 -284zM975 289v704h-126l-282 -704h408z" />
-<glyph unicode="&#x22e4;" d="M358 -88l82 102h-352v170h488l103 128h-591v956h1057v-170h-887v-616h887v-170h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
-<glyph unicode="&#x22e5;" d="M358 -88l82 102h-352v170h488l103 128h-591v170h887v616h-887v170h1057v-956h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
-<glyph unicode="&#x22e6;" d="M467 -244l67 295q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 210l-532 167v168l1057 331v-184l-801 -231l801 -234v-182l-392 123l-50 -223q87 -34 161 -34q70 0 138 30t143 93v-175 q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
-<glyph unicode="&#x22e7;" d="M467 -244l67 295q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 212l-532 -167v182l801 234l-801 231v184l1057 -331v-168l-449 -141l69 -16l-62 -275q87 -34 161 -34q70 0 138 30t143 93 v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
-<glyph unicode="&#x22e8;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM446 -406l88 387q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5 t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
-<glyph unicode="&#x22e9;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM446 -406l88 387q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q57 0 104 -11 t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
-<glyph unicode="&#x22ef;" d="M110 490q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM519 490q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM929 490q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2304;" d="M146 428h163l307 -456l307 456h163l-470 -698z" />
-<glyph unicode="&#x2308;" d="M463 1556h424v-143h-240v-1683h-184v1826z" />
-<glyph unicode="&#x2309;" d="M586 1413h-240v143h424v-1826h-184v1683z" />
-<glyph unicode="&#x230a;" d="M463 1556h184v-1683h240v-143h-424v1826z" />
-<glyph unicode="&#x230b;" d="M346 -127h240v1683h184v-1826h-424v143z" />
-<glyph unicode="&#x2310;" d="M88 862h1057v-172h-889v-319h-168v491z" />
-<glyph unicode="&#x2320;" d="M513 776q0 36 3 165q7 263 33.5 445t73.5 292q48 112 122 167t169 55q88 0 137 -42t49 -108q0 -54 -32 -85t-89 -31q-44 0 -69.5 19t-38.5 54q-5 14 -6.5 25t-3.5 26q-3 22 -8.5 29t-14.5 7q-50 0 -80.5 -154.5t-38.5 -464.5l-8 -303v-1384h-198v1288z" />
-<glyph unicode="&#x2321;" d="M310 -486q-88 0 -137 42t-49 108q0 54 32 85t86 31q48 0 75.5 -22t36.5 -51q2 -8 5 -22t5 -29q3 -19 7 -27.5t15 -8.5q49 0 80 154.5t39 464.5l8 303v1387h198v-1291q0 -36 -3 -165q-7 -263 -33.5 -445t-73.5 -292q-48 -112 -122 -167t-169 -55z" />
-<glyph unicode="&#x239b;" d="M280 -294q0 306 22.5 565.5t61 477.5t89.5 397t108 323.5t116.5 257.5t114.5 199h160q-87 -175 -156 -334.5t-122 -319t-90.5 -325.5t-62 -354.5t-35.5 -406.5t-11 -480v-234h-195v234z" />
-<glyph unicode="&#x239c;" d="M280 1929h195v-2445h-195v2445z" />
-<glyph unicode="&#x239d;" d="M792 -492q-69 108 -134 236.5t-122 280.5t-104 329.5t-81 384.5t-52.5 445t-18.5 511v234h195v-234q0 -286 16.5 -521.5t47 -432.5t73.5 -363t96 -313.5t114.5 -283.5t129.5 -273h-160v0z" />
-<glyph unicode="&#x239e;" d="M758 -294q0 262 -11 480t-35.5 406.5t-62 354.5t-90.5 325.5t-122 319t-156 334.5h160q55 -86 114.5 -199t116.5 -257.5t108 -323.5t89.5 -397t61 -477.5t22.5 -565.5v-234h-195v234z" />
-<glyph unicode="&#x239f;" d="M758 1929h195v-2445h-195v2445z" />
-<glyph unicode="&#x23a0;" d="M281 -492q68 137 129.5 273t114.5 283.5t96 313.5t73.5 363t47 432.5t16.5 521.5v234h195v-234q0 -273 -18.5 -511t-52.5 -445t-81 -384.5t-104 -329.5t-122 -280.5t-134 -236.5h-160v0z" />
-<glyph unicode="&#x23a1;" d="M280 1901h672v-195h-477v-2222h-195v2417z" />
-<glyph unicode="&#x23a2;" d="M280 1929h195v-2445h-195v2445z" />
-<glyph unicode="&#x23a3;" d="M280 1929h195v-2226h477v-195h-672v2421z" />
-<glyph unicode="&#x23a4;" d="M757 1706h-477v195h672v-2417h-195v2222z" />
-<glyph unicode="&#x23a5;" d="M757 1914h195v-2430h-195v2430z" />
-<glyph unicode="&#x23a6;" d="M280 -297h477v2211h195v-2406h-672v195z" />
-<glyph unicode="&#x23a7;" d="M524 1375q0 111 30.5 207.5t85.5 167t132 111t170 40.5h275v-176h-281q-51 0 -92.5 -25t-71 -70t-46 -108t-16.5 -139v-1917h-186v1909z" />
-<glyph unicode="&#x23a8;" d="M524 8q0 147 -9 248.5t-29.5 168t-54.5 103.5t-83.5 55t-116 22t-153.5 6l-61 1v187h61q86 0 152.5 4.5t116.5 23t83.5 56.5t54.5 105t30 168t9 246v524h186v-536q0 -440 -101 -592q-19 -29 -44.5 -52.5t-55.5 -40.5q30 -16 56.5 -41.5t43.5 -51.5q49 -74 75 -218.5 t26 -373.5v-536h-186v524z" />
-<glyph unicode="&#x23a9;" d="M942 -492q-92 0 -168.5 40t-132 110.5t-86.5 166.5t-31 209v1892h186v-1900q0 -77 16.5 -140t46 -108t71 -69.5t92.5 -24.5h281v-176h-275v0z" />
-<glyph unicode="&#x23aa;" d="M524 1932h186v-2456h-186v2456z" />
-<glyph unicode="&#x23ab;" d="M523 1383q0 76 -16.5 139t-46 108t-71 70t-92.5 25h-281v176h275q93 0 170 -40.5t132 -111t85.5 -167t30.5 -207.5v-1909h-186v1917z" />
-<glyph unicode="&#x23ac;" d="M523 20q0 229 25.5 373.5t75.5 218.5q20 29 45.5 53t54.5 40q-32 17 -57 41.5t-43 51.5q-101 152 -101 592v536h186v-524q0 -145 9 -246t30 -168t54.5 -105t83.5 -56.5t116.5 -23t152.5 -4.5h61v-187l-61 -1q-87 -2 -153.5 -6t-116 -22t-83.5 -55t-54.5 -103.5 t-29.5 -168t-9 -248.5v-524h-186v536z" />
-<glyph unicode="&#x23ad;" d="M16 -316h281q51 0 92.5 24.5t71 69.5t46 108t16.5 140v1900h186v-1892q0 -113 -31 -209t-86.5 -166.5t-132 -110.5t-168.5 -40h-275v176z" />
-<glyph unicode="&#x23ae;" d="M513 1929h198v-2441h-198v2441z" />
-<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
-<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
-<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
-<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
-<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
-<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
-<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
-<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
-<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
-<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
-<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
-<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
-<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
-<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
-<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
-<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
-<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
-<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
-<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
-<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
-<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
-<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
-<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
-<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
-<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
-<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
-<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
-<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
-<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
-<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
-<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
-<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
-<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
-<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
-<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
-<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
-<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
-<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
-<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
-<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
-<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
-<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
-<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
-<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
-<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
-<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
-<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
-<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
-<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
-<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
-<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
-<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
-<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
-<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
-<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
-<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
-<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
-<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
-<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
-<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
-<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
-<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
-<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
-<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
-<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
-<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
-<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
-<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
-<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
-<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
-<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
-<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
-<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
-<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
-<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
-<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
-<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
-<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
-<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
-<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
-<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
-<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
-<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
-<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
-<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
-<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
-<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
-<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
-<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
-<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
-<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
-<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
-<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
-<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
-<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
-<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
-<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
-<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
-<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
-<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
-<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
-<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
-<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
-<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
-<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
-<glyph unicode="&#x2588;" d="M358 1125h517v-1135h-517v1135z" />
-<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
-<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
-<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
-<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
-<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
-<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
-<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
-<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
-<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
-<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
-<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
-<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
-<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
-<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
-<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
-<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
-<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
-<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
-<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
-<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
-<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
-<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
-<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
-<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
-<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
-<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
-<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
-<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
-<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
-<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
-<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
-<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
-<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
-<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
-<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
-<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
-<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
-<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
-<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
-<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
-<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
-<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
-<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
-<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
-<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
-<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1021 1013h-809l404 -808z" />
-<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
-<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
-<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
-<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
-<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
-<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
-<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
-<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
-<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
-<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1038 532l-422 422l-421 -422l421 -422z" />
-<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
-<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
-<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
-<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-30 -119q-62 17 -120 17t-120 -17zM111 885q42 58 93.5 100.5t106.5 74.5l61 -106q-45 -25 -85.5 -58.5t-74.5 -81.5zM1020 814q-34 48 -74.5 81.5t-85.5 58.5l61 106q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150 l119 -30q-13 -55 -13 -120t13 -120zM1092 412q13 55 13 120t-13 120l119 30q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l101 71q34 -48 74.5 -81.5t85.5 -58.5zM860 110q45 25 83 57t77 83l101 -70q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l30 119q62 -17 120 -17t120 17l30 -119q-75 -21 -150 -21z" />
-<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q21 8 39 17t39 21q9 5 12 7t5 3t3.5 2.5t7.5 4.5v810q-7 6 -28 17q-29 16 -43.5 23t-34.5 15v-920zM448 991q-19 -8 -38 -17t-38 -20 q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
-<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 286 q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM616 396q18 0 36 6t32 14q67 40 67 116t-67 116q-14 8 -32 14 t-36 6q-32 0 -67 -20q-67 -39 -67 -116t67 -116q35 -20 67 -20z" />
-<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
-<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
-<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
-<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h977z" />
-<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-977q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
-<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
-<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
-<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
-<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM614 465q63 0 117.5 23t95 63.5t63.5 94.5t23 116q0 61 -23 115t-63.5 94t-94.5 63t-117 23q-62 0 -116 -23t-94 -63t-63 -94t-23 -116t23 -116t62.5 -94t93.5 -63t116 -23z" />
-<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM616 39q-57 0 -120 17.5t-125 52.5q-116 66 -179.5 173t-63.5 250t63.5 250t179.5 173q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5q120 -68 182 -177t62 -246t-62 -246t-182 -177q-62 -35 -125 -52.5 t-120 -17.5z" />
-<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 180 -79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5 q120 -68 182 -177t62 -246h-977z" />
-<glyph unicode="&#x25db;" d="M-20 532h26q0 -179 76.5 -309.5t228.5 -218.5q79 -46 154.5 -67t149.5 -21q154 0 306 88q153 88 229.5 218.5t76.5 309.5h26v-1044h-1273v1044zM616 39q-122 0 -244 71q-244 141 -244 422h977q0 -281 -245 -422q-122 -71 -244 -71z" />
-<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
-<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q77 0 156.5 -24t148.5 -63q143 -81 224 -214t81 -315h-123v0z" />
-<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
-<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
-<glyph unicode="&#x25e0;" d="M6 532q0 179 76.5 309.5t228.5 218.5q79 46 154.5 67t149.5 21q154 0 306 -88q153 -88 229.5 -218.5t76.5 -309.5h-122q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h-122v0z" />
-<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h122q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5t120 17.5t125 52.5q120 68 182 177t62 246h122q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
-<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
-<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
-<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
-<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
-<glyph unicode="&#x25e6;" d="M614 465q-62 0 -116 23t-93.5 63t-62.5 94t-23 116t23 116t63 94t94 63t116 23q63 0 117 -23t94.5 -63t63.5 -94t23 -115q0 -62 -23 -116t-63.5 -94.5t-95 -63.5t-117.5 -23zM614 524q50 0 93.5 18.5t76 51t51.5 75.5t19 93q0 49 -18.5 92t-51 75t-76 50.5t-93.5 18.5 t-93 -18.5t-75 -50.5t-50.5 -75t-18.5 -93t18.5 -93t50 -75t74.5 -50.5t93 -18.5z" />
-<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
-<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
-<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
-<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
-<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
-<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
-<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
-<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
-<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
-<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
-<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
-<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM619 39q57 0 118.5 18t122.5 53q245 141 245 422t-245 422q-48 28 -93.5 43.5t-93.5 23.5v-547h-542q8 -79 35.5 -142.5t68 -111.5t89.5 -82.5t100.5 -56.5t102 -32t92.5 -10zM559 588v433q-95 -14 -187 -67q-219 -126 -241 -366h428z " />
-<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q45 6 95.5 24.5t92.5 42.5q55 31 100 73t77 94.5t49.5 115.5t17.5 137q0 137 -61.5 246.5t-182.5 178.5q-62 35 -125.5 52.5t-120.5 17.5q-42 0 -92 -10.5t-101.5 -33t-101 -57t-89 -83t-66.5 -111.5t-34 -142h542v-545zM559 474 h-428q22 -237 241 -364q92 -53 187 -67v431z" />
-<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142.5t-67 112t-89.5 83t-101.5 56.5t-103 32.5t-94 10.5q-55 0 -116 -17t-125 -54q-244 -141 -244 -422t244 -422q48 -28 94 -44t93 -23v545zM673 43q94 14 187 67q112 64 171.5 155t70.5 209h-429v-431z" />
-<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q41 0 91 10.5t101.5 32.5t101 56t89.5 82.5t67.5 111.5t35.5 142h-543v547q-44 -6 -92 -23t-96 -44q-118 -67 -180.5 -173t-62.5 -247q0 -137 61 -246.5t182 -178.5q62 -35 125.5 -52.5t119.5 -17.5zM1102 588q-23 241 -242 366 q-93 53 -187 67v-433h429z" />
-<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
-<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
-<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
-<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
-<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
-<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
-<glyph unicode="&#x266a;" d="M1154 956q25 -132 25 -293l-135 -61q0 140 -11 231t-51 205q-44 123 -135 252v-1023q0 -147 -25.5 -242.5t-80.5 -156.5q-57 -63 -135.5 -91t-198.5 -28q-95 0 -176 33.5t-129 91.5t-48 127q0 68 47 125.5t129 91.5q81 33 177 33q89 0 165.5 -28.5t125.5 -79.5 q15 60 15 124v1226h134q130 -123 205 -259t102 -278z" />
-<glyph unicode="&#x2756;" d="M358 879l260 261l260 -261l-260 -259zM44 569l259 259l260 -259l-260 -260zM670 569l260 258l259 -258l-259 -261zM358 254l260 260l260 -260l-260 -260z" />
-<glyph unicode="&#x2768;" d="M993 -101q-152 0 -286 56t-246 168q-107 107 -164 239.5t-57 290.5q0 157 56.5 291t164.5 242q112 112 247.5 168t284.5 56v-39q-90 0 -170 -51.5t-148 -158.5t-100.5 -233t-32.5 -273q0 -148 32.5 -274t99.5 -232t147.5 -159t171.5 -53v-38v0z" />
-<glyph unicode="&#x2769;" d="M240 -62q91 0 171.5 52.5t147.5 158.5t99.5 232.5t32.5 266.5q0 74 -9 146.5t-25.5 139.5t-41.5 125t-56 102q-42 59 -97 99t-105 65q-58 29 -117 47v38q152 0 287.5 -57.5t244.5 -166.5q57 -57 98.5 -120.5t69 -130t40.5 -136t13 -139.5q0 -78 -15.5 -154.5t-44 -146.5 t-69.5 -130.5t-92 -105.5q-35 -30 -76 -56t-85 -47.5t-88.5 -39t-85.5 -30.5q-97 -32 -197 -51v39z" />
-<glyph unicode="&#x276a;" d="M601 -121q-121 192 -181.5 375.5t-60.5 366.5q0 182 59.5 365t182.5 375h273q-108 -187 -161 -369.5t-53 -369.5q0 -189 52.5 -372.5t161.5 -370.5h-273v0z" />
-<glyph unicode="&#x276b;" d="M366 -121q105 181 156.5 359t51.5 361t-51 359t-157 358h265q120 -187 178 -363.5t58 -352.5q0 -179 -59 -357t-177 -364h-265v0z" />
-<glyph unicode="&#x276c;" d="M324 617l372 748h213l-374 -748l374 -747h-213z" />
-<glyph unicode="&#x276d;" d="M697 617l-372 748h212l372 -748l-372 -747h-213z" />
-<glyph unicode="&#x276e;" d="M211 578l481 748h330l-490 -748l490 -747h-330z" />
-<glyph unicode="&#x276f;" d="M701 578l-490 748h330l481 -748l-481 -747h-330z" />
-<glyph unicode="&#x2770;" d="M206 649l418 840h403l-420 -840l420 -839h-403z" />
-<glyph unicode="&#x2771;" d="M625 650l-418 840h402l418 -840l-418 -840h-403z" />
-<glyph unicode="&#x2772;" d="M457 -51v1218l232 231l87 -87l-196 -195v-1116l196 -195l-87 -87z" />
-<glyph unicode="&#x2773;" d="M457 -189l196 195v1116l-196 195l87 87l232 -231v-1218l-232 -231z" />
-<glyph unicode="&#x2774;" d="M801 -328q-89 0 -146.5 14.5t-91.5 52t-47 102t-13 163.5v215q0 68 -9 114t-29.5 74.5t-54.5 40.5t-85 12h-44v128h44q51 0 85 12t55 40t29.5 73.5t8.5 112.5v216q0 99 13 163.5t47 101.5t91.5 51.5t146.5 14.5h151v-129h-49q-50 0 -81.5 -8.5t-49 -31t-24 -63 t-6.5 -103.5v-223q0 -71 -7.5 -121t-25 -84t-45 -54.5t-66.5 -32.5q39 -12 66.5 -33t45 -55t25 -84t7.5 -120v-223q0 -63 6.5 -103.5t24 -63t49 -31t81.5 -8.5h49v-130h-151v0z" />
-<glyph unicode="&#x2775;" d="M250 -204h53q55 0 89.5 8.5t54 31.5t26.5 63.5t7 104.5v226q0 71 8 121.5t26.5 85t48.5 56t73 33.5q-42 11 -72 31.5t-48.5 55t-27 85.5t-8.5 123v225q0 64 -7 105t-26.5 64t-54 31.5t-89.5 8.5h-53v130h165q97 0 160 -14.5t100 -52.5t51.5 -103t14.5 -165v-219 q0 -68 9.5 -113.5t32 -74t60 -40.5t93.5 -12h47v-130h-47q-56 0 -93 -12t-60 -40.5t-32.5 -75t-9.5 -115.5v-217q0 -101 -14.5 -166t-51.5 -102.5t-100 -52.5t-160 -15h-165v131z" />
-<glyph unicode="&#x2794;" d="M837 565h-753v170h753l-262 262h227l347 -347l-347 -347h-227z" />
-<glyph unicode="&#x2798;" d="M513 208l271 186l-668 605l148 149l606 -668l186 270l61 -604z" />
-<glyph unicode="&#x2799;" d="M815 680l-731 -35v170l731 -35l-48 261l382 -311l-382 -311z" />
-<glyph unicode="&#x279a;" d="M116 342l668 605l-271 186l604 62l-61 -604l-186 270l-606 -668z" />
-<glyph unicode="&#x279b;" d="M578 659h-532v92h532l-128 242q266 -192 737 -288q-471 -96 -737 -288z" />
-<glyph unicode="&#x279c;" d="M766 298q-39 0 -66 27q-28 29 -28 66q0 20 7.5 37t20.5 30l139 140h-672q-36 0 -65 27q-28 26 -28 66t28 66q14 13 30 20.5t35 7.5h672l-139 139q-13 13 -20.5 30.5t-7.5 36.5q0 38 28 66q13 13 29.5 20.5t36.5 7.5t37 -8t29 -20l300 -300q13 -14 21 -30q7 -15 7 -36 q0 -19 -8 -36t-20 -30l-300 -300q-12 -12 -29 -19.5t-37 -7.5z" />
-<glyph unicode="&#x279d;" d="M838 722h-754v56h754v283l311 -311l-311 -311v283z" />
-<glyph unicode="&#x279e;" d="M854 626h-808v168h808v250l333 -334l-333 -334v250z" />
-<glyph unicode="&#x279f;" d="M850 552h-301v300h301v178l329 -328l-329 -329v179zM54 852h45v-300h-45v300zM159 852h90v-300h-90v300zM309 852h180v-300h-180v300z" />
-<glyph unicode="&#x27a0;" d="M838 510h-285v427h285v98q131 -218 311 -311q-181 -95 -311 -312v98zM84 937h42v-427h-42v427zM183 937h85v-427h-85v427zM325 937h171v-427h-171v427z" />
-<glyph unicode="&#x27a1;" d="M838 558h-754v284h754v169l311 -311l-311 -311v169z" />
-<glyph unicode="&#x27a2;" d="M434 710l-338 338l1041 -338l-1041 -338zM948 710l-627 203l203 -203h424z" />
-<glyph unicode="&#x27a3;" d="M443 740l-320 320l987 -320l-987 -320zM931 740h-403l-192 -193z" />
-<glyph unicode="&#x27a4;" d="M372 750l-249 462l987 -462l-987 -462z" />
-<glyph unicode="&#x27a5;" d="M850 545h-616q-36 0 -68 14t-58 39q-54 54 -54 127v360q0 -73 54 -127q26 -25 58 -39t68 -14h616v149l329 -329l-329 -329v149z" />
-<glyph unicode="&#x27a6;" d="M54 755q0 73 54 127q26 25 58 39t68 14h616v149l329 -329l-329 -329v149h-616q-36 0 -68 -14t-58 -39q-54 -54 -54 -127v360z" />
-<glyph unicode="&#x27a7;" d="M613 530h-277v450h277v268l284 -493l-284 -493v268z" />
-<glyph unicode="&#x27a8;" d="M738 485h-684v420h684v119q108 -230 441 -329q-333 -99 -441 -329v119z" />
-<glyph unicode="&#x27a9;" d="M607 532h-506v356h506v169h178l347 -347l-347 -347h-178v169zM954 710l-290 290v-169h-506v-242h506v-169z" />
-<glyph unicode="&#x27aa;" d="M607 472h-506v356h506v169h178l347 -347l-347 -347h-178v169zM1060 650l-290 290v-169h-505v-242h505v-169z" />
-<glyph unicode="&#x27ab;" d="M554 326l15 27h-515v142l205 356h597l99 169h71l153 -365v-143l-519 -328h-106v142zM1108 673l-122 290l-98 -169h-598l-140 -242h598l-98 -169z" />
-<glyph unicode="&#x27ac;" d="M838 361h-552l-189 308v123h476l-15 23v123h99l479 -284v-123l-142 -316h-65zM1070 515l-422 251l90 -146h-552l129 -210h552l90 -146z" />
-<glyph unicode="&#x27ad;" d="M600 338h-399l-75 150v494h458v119h82l366 -366l75 -150l-366 -366h-82zM950 735l-306 306v-119h-458v-374h458v-119z" />
-<glyph unicode="&#x27ae;" d="M581 259h-496v536l81 163h432l64 128h90l396 -397l-81 -162l-396 -397h-90v129zM978 527l-332 331v-128h-496v-406h496v-129z" />
-<glyph unicode="&#x27af;" d="M696 408v44h-608l-37 76l112 247l-112 247h645v119h83l366 -366l37 -75l-366 -366h-82zM1062 775l-306 306v-119h-609l85 -187l-85 -187h609v-119z" />
-<glyph unicode="&#x27b1;" d="M698 374h-656l114 251l-114 251l38 77h618v44l38 76h83l372 -372l-38 -76l-372 -372h-83v121zM1069 625l-310 311v-121h-620l87 -190l-87 -190h620v-121z" />
-<glyph unicode="&#x27b2;" d="M586 189q-100 0 -188.5 36.5t-166.5 112.5q-50 49 -84 110h487v-129l372 372l-372 372v-128h-489q16 29 40 60t55.5 61t69.5 56.5t83 45.5q91 38 193 38q99 0 187.5 -36.5t166.5 -112.5q73 -72 110.5 -161.5t37.5 -194.5q0 -100 -36 -187.5t-112 -165.5 q-70 -72 -160.5 -110.5t-193.5 -38.5z" />
-<glyph unicode="&#x27b3;" d="M221 533v57l-133 199h384l133 -199h278v198q62 -67 127 -123.5t135 -102.5q-70 -47 -135 -103.5t-127 -123.5v198h-278l-133 -199h-384zM307 590l-114 171h-43l114 -171h43zM392 590l-114 171h-43l114 -171h43zM477 590l-114 171h-42l114 -171h42zM562 590l-113 171h-43 l114 -171h42zM193 362l114 171h-43l-114 -171h43zM278 362l114 171h-43l-114 -171h43zM363 362l114 171h-42l-114 -171h42zM449 362l113 171h-42l-114 -171h43z" />
-<glyph unicode="&#x27b4;" d="M393 955v230l345 -345v-229zM116 908h230l346 -344h-230zM1117 186q-114 34 -249 34q-54 0 -111 -6l143 143l-207 207l46 46l207 -207l142 143q-6 -57 -6 -111q0 -132 35 -249z" />
-<glyph unicode="&#x27b5;" d="M909 642h-256v56h256v177q111 -135 240 -205q-129 -70 -240 -205v177zM84 841h426l142 -143h-426zM226 640h426l-142 -142h-426z" />
-<glyph unicode="&#x27b6;" d="M692 752l207 207l-142 143q57 -6 110 -6q135 0 249 34q-34 -115 -34 -249q0 -27 1.5 -54.5t3.5 -56.5l-142 143l-207 -207zM462 751h230l-345 -344h-230zM394 360l345 344v-230l-345 -344v230z" />
-<glyph unicode="&#x27b7;" d="M1154 186q-125 36 -269 36q-58 0 -118 -6q63 61 140 96q17 7 31 11t25 5l-266 265q-25 26 -57 38.5t-66 12.5t-67 -13t-57 -38l-371 371q31 32 69 47t80 15q38 0 78 -15.5t69 -46.5q-29 31 -45 70.5t-16 77.5q0 42 16 81t45 69l371 -372q-28 -29 -38.5 -59.5t-10.5 -63.5 q0 -35 12 -68q14 -32 37 -56l266 -265q3 17 17 54q31 79 95 141q-6 -62 -6 -121q0 -142 36 -266z" />
-<glyph unicode="&#x27b8;" d="M932 394q0 78 28 146q12 30 23 44h-328q-63 0 -108 -45q-21 -20 -33 -48.5t-12 -59.5h-459q0 37 14 71t40 59q24 24 58 39t71 15q-37 0 -71 15t-58 39q-54 54 -54 130h459q0 -31 12 -59.5t33 -48.5q45 -45 108 -45h328q-11 14 -23 44q-28 68 -28 146q119 -145 258 -221 q-139 -76 -258 -221z" />
-<glyph unicode="&#x27b9;" d="M393 176q-28 27 -42.5 63.5t-14.5 75.5q0 35 14.5 71.5t42.5 65.5q-28 -29 -65 -43t-73 -14q-39 0 -74.5 14.5t-63.5 42.5l345 344q22 -22 52.5 -34.5t62.5 -12.5q66 0 115 47l246 247q-20 1 -51 15q-74 31 -131 89q55 -6 110 -6q136 0 250 34q-34 -114 -34 -248 q0 -54 6 -112q-58 58 -88 131q-7 16 -11 28.5t-6 21.5l-246 -246q-25 -27 -35.5 -55t-10.5 -59t11.5 -61.5t34.5 -53.5l-344 -345v0z" />
-<glyph unicode="&#x27ba;" d="M1179 652q-137 37 -238.5 70.5t-169.5 63.5q-44 19 -62 61q-8 22 -8 43q0 49 33 80q33 33 80 33q23 0 42.5 -8.5t36.5 -24.5q13 -11 25 -36q90 -194 261 -282zM204 500q-31 0 -59.5 12.5t-46.5 31.5q-23 24 -33 49q-11 28 -11 58q0 31 12 59t32 47q22 21 48.5 33t57.5 12 q29 0 57 -11q133 -51 361 -85.5t556 -54.5q-671 -42 -917 -141q-26 -10 -57 -10zM814 298q-24 0 -44 9t-36 24q-33 31 -33 81q0 22 8.5 43t24.5 36q16 16 37 25q93 37 194.5 70t213.5 64q-170 -89 -261 -282q-9 -22 -25.5 -37t-36.5 -25q-21 -8 -42 -8z" />
-<glyph unicode="&#x27bb;" d="M920 367q-61 63 -61 144q0 42 15.5 77t45.5 67q-30 32 -45.5 67t-15.5 77q0 81 61 144q80 -196 284 -288q-204 -92 -284 -288zM285 451q-21 0 -41.5 5.5t-38.5 14t-33 19t-24 20.5q-11 14 -21.5 31t-20.5 36q-22 46 -77 78q53 32 77 78q13 25 25 43t25 30.5t26.5 21 t29.5 16.5q34 15 73 15q43 0 88 -16.5t87 -42.5q134 -84 458 -145q-324 -61 -458 -145q-45 -28 -89 -43.5t-86 -15.5z" />
-<glyph unicode="&#x27bc;" d="M70 446q-12 0 -22 10t-10 24q0 6 2 12l93 185q3 4 3 13q0 8 -3 13l-93 185q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h498q6 0 12 -2.5t10 -7.5q2 -1 7 -11l73 -146q5 -10 18 -18q8 -2 12 -2h229q6 0 12.5 3t10.5 7q10 10 10 22q0 4 -3 13l-22 81l-1.5 7.5t-0.5 4.5 q0 14 10 24q5 4 10.5 6.5t12.5 2.5q6 0 12.5 -3t9.5 -6l195 -195q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-195 -195q-3 -3 -9.5 -6t-12.5 -3q-7 0 -12.5 2.5t-10.5 6.5q-10 10 -10 24q0 2 0.5 4.5l1.5 7.5l22 81q3 9 3 13q0 12 -10 22q-4 4 -10.5 7t-12.5 3h-229q-6 0 -12 -3 t-11 -7q-4 -4 -7 -10l-73 -146q-4 -9 -7.5 -12t-10.5 -6q-5 -3 -11 -3h-498v0z" />
-<glyph unicode="&#x27bd;" d="M838 357q-7 0 -12.5 3t-10.5 7q-10 10 -10 23q0 3 0.5 6t1.5 7l71 178q3 6 3 13q0 5 -2.5 11.5t-7.5 10.5q-4 4 -10.5 7t-12.5 3h-75q-6 0 -12 -3t-10 -7q-6 -6 -8 -10l-97 -195q-4 -8 -8 -11.5t-10 -6.5q-5 -3 -12 -3h-537q-13 0 -23 10t-10 24q0 7 3 12l117 234 q2 6 2 13t-2 13l-126 250q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h538q16 0 23 -10q2 -1 7 -11l105 -211q5 -10 18 -18q8 -2 12 -2h75q6 0 12.5 3t10.5 7q5 4 7.5 10.5t2.5 11.5q0 7 -3 13l-71 178q-1 4 -1.5 7t-0.5 6q0 13 10 23q5 4 10.5 7t12.5 3q6 0 12 -3t10 -7 l325 -292q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-325 -292q-4 -4 -10 -7t-12 -3z" />
-<glyph unicode="&#x27be;" d="M50 756h612q-32 51 -52.5 98.5t-34.5 90.5h79q5 -14 10.5 -29t12.5 -29q44 -103 126 -202h-753v71zM782 285q62 140 182 256q14 14 35 30t48 36q-56 39 -83 66q-120 115 -182 255l-8 17h82q54 -115 161 -222q32 -30 73 -59t93 -57q-103 -56 -187.5 -137t-139.5 -202h-82z M575 268q14 45 34.5 91.5t52.5 98.5h-612v71h753q-82 -99 -126 -202q-7 -14 -12.5 -29t-10.5 -30h-79z" />
-<glyph unicode="&#x27c2;" d="M88 170h444l1 1114h168l-1 -1114h445v-170h-1057v170z" />
-<glyph unicode="&#x27c5;" d="M861 -334q-20 0 -48.5 2.5t-58.5 7.5q-120 18 -204.5 55t-138 90t-78 120.5t-24.5 146.5q0 63 14 136t38.5 158.5t58.5 184t74 212.5q85 242 131.5 386.5t46.5 197.5q0 42 -25.5 62t-60.5 20q-20 0 -35 -7t-28 -22.5t-25.5 -42t-25.5 -65.5l-136 49q13 55 41 95.5 t65 67.5t80.5 40.5t86.5 13.5q42 0 80.5 -12.5t68 -38t47 -64.5t17.5 -92q0 -79 -42 -236t-126 -395q-41 -115 -73.5 -210.5t-56 -174.5t-36 -142.5t-12.5 -114.5q0 -56 16 -97.5t49.5 -73t85.5 -54.5t124 -42q83 -22 117 -20q17 0 30.5 0.5t23.5 1.5v-143h-61v0z" />
-<glyph unicode="&#x27c6;" d="M311 -191q10 -1 24 -1.5t31 -0.5q17 -1 47.5 4.5t68.5 15.5q73 19 125 42.5t85.5 55t49 73t15.5 96.5q0 51 -12.5 114.5t-36 142.5t-56.5 174.5t-73 210.5q-84 238 -126 395t-42 236q0 53 17.5 92t47 64.5t68 38t80.5 12.5q43 0 86.5 -13.5t80.5 -40.5t65 -67.5t41 -95.5 l-136 -49q-14 39 -26 65t-25 42t-28.5 23t-35.5 7q-36 0 -60.5 -20.5t-24.5 -62.5q0 -27 11 -73.5t33.5 -117t56 -167.5t78.5 -225q40 -114 74 -213t58.5 -184.5t38 -158.5t13.5 -135q0 -80 -25 -148t-79 -120.5t-138.5 -89t-202.5 -54.5q-30 -5 -58.5 -7.5t-48.5 -2.5h-61 v143z" />
-<glyph unicode="&#x27dc;" d="M313 359q-60 0 -112.5 22.5t-90.5 61.5t-60 91.5t-22 113.5q0 60 21.5 111.5t59.5 89.5t90 59.5t114 21.5q60 0 107 -19.5t81 -48.5t55 -64.5t30 -66.5h619l-1 -168h-617q-9 -33 -31 -69t-56.5 -66t-81.5 -49.5t-105 -19.5zM312 509q29 0 54 11t44 29.5t29.5 43.5 t10.5 54q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43 -29.5t53.5 -10.5z" />
-<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
-<glyph unicode="&#x27e6;" d="M297 1556h640v-100h-240v-1626h240v-100h-640v1826zM597 -170v1626h-200v-1626h200z" />
-<glyph unicode="&#x27e7;" d="M296 -170h240v1626h-240v100h640v-1826h-640v100zM836 -170v1626h-200v-1626h200z" />
-<glyph unicode="&#x27e8;" d="M391 642l281 912h170l-281 -912l281 -912h-170z" />
-<glyph unicode="&#x27e9;" d="M672 642l-281 912h170l281 -912l-281 -912h-170z" />
-<glyph unicode="&#x27ea;" d="M191 642l281 912h170l-281 -912l281 -912h-170zM581 642l281 912h170l-281 -912l281 -912h-170z" />
-<glyph unicode="&#x27eb;" d="M472 642l-281 912h170l281 -912l-281 -912h-170zM872 642l-281 912h170l281 -912l-281 -912h-170z" />
-<glyph unicode="&#x27f5;" d="M-100 520v82l291 291l90 -90l-160 -160h1212v-164h-1212l160 -160l-90 -90z" />
-<glyph unicode="&#x27f6;" d="M952 319l160 160h-1212v164h1212l-160 160l90 90l291 -291v-82l-291 -291z" />
-<glyph unicode="&#x27f7;" d="M-100 520v82l291 291l90 -90l-160 -160h991l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-991l160 -160l-90 -90z" />
-<glyph unicode="&#x2987;" d="M933 -270q-112 27 -202 77t-160.5 117.5t-121.5 150.5t-84 176t-49 193t-16 202q0 100 15.5 199t48 190.5t83 174t120.5 150t161 117.5t205 77v-1824zM833 1373q-48 -13 -93.5 -49t-85 -89t-72.5 -121t-57 -144.5t-37 -159.5t-13 -167t13 -167t37 -160t57 -145 t72.5 -121.5t85 -89.5t93.5 -49v1462z" />
-<glyph unicode="&#x2988;" d="M300 1554q111 -27 201.5 -77t161 -117.5t121.5 -150.5t84 -176t49 -193t16 -202q0 -100 -15.5 -199t-48 -190.5t-83 -174t-120.5 -150t-161.5 -117.5t-204.5 -77v1824zM400 -89q48 13 93.5 49t85 89t72.5 121t57 144.5t37 159.5t13 167t-13 167t-37 160t-57 145 t-72.5 121.5t-85 89.5t-93.5 49v-1462z" />
-<glyph unicode="&#x2997;" d="M400 159v968l482 481l101 -101l-279 -278v-1172l279 -278l-101 -101z" />
-<glyph unicode="&#x2998;" d="M250 -221l279 278v1172l-279 278l101 101l482 -481v-968l-482 -481z" />
-<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
-<glyph unicode="&#x29fa;" d="M332 557h-244v170h244v444h168v-444h232v444h168v-444h245v-170h-245v-444h-168v444h-232v-444h-168v444z" />
-<glyph unicode="&#x29fb;" d="M202 557h-114v170h114v444h168v-444h162v444h168v-444h162v444h168v-444h115v-170h-115v-444h-168v444h-162v-444h-168v444h-162v-444h-168v444z" />
-<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -325q397 0 397 865q0 432 -99 649.5t-298 217.5q-396 0 -396 -867q0 -865 396 -865zM519 376q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2a2f;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
-<glyph unicode="&#x2a6a;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
-<glyph unicode="&#x2a6b;" d="M761 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM280 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
-<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
-<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
-<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
-<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
-<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
-<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
-<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
-<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
-<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
-<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
-<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
-<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
-<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
-<glyph unicode="&#x2e18;" d="M648 840q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM605 -400q-95 0 -171.5 25t-130 71t-82 111t-28.5 145q0 37 7.5 71t25.5 69.5t49 74t79 85.5 l88 86q36 34 57 60.5t32 49.5t14.5 47t3.5 54v170h190v-941q19 5 35 10t28 10q43 17 90.5 43t96.5 60v-188q-95 -58 -191 -85.5t-193 -27.5zM549 204l-45 -45q-29 -29 -49.5 -52t-33.5 -45.5t-19.5 -46t-6.5 -51.5q0 -45 14.5 -78t37 -55.5t49.5 -36t53 -20.5v430z" />
-<glyph unicode="&#x2e1f;" d="M88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM490 439 h252v-305h-252v305z" />
-<glyph unicode="&#x2e22;" d="M463 1556h424v-143h-240v-587h-184v730z" />
-<glyph unicode="&#x2e23;" d="M586 1413h-240v143h424v-730h-184v587z" />
-<glyph unicode="&#x2e24;" d="M463 460h184v-587h240v-143h-424v730z" />
-<glyph unicode="&#x2e25;" d="M346 -127h240v587h184v-730h-424v143z" />
-<glyph unicode="&#x2e2e;" d="M574 524q0 52 -3 82t-9 51q-7 22 -27.5 51t-66.5 74l-88 86q-44 43 -75 80t-50.5 72.5t-28 72t-8.5 77.5q0 78 29 142.5t83 110.5t130 71.5t170 25.5q100 0 197 -28.5t188 -84.5v-188q-97 67 -186.5 102t-171.5 35q-53 0 -96 -14.5t-74.5 -40.5t-48.5 -63t-17 -82 q0 -54 26.5 -97.5t81.5 -97.5l90 -89q45 -44 73 -79t44.5 -70.5t22.5 -75t6 -92.5v-154h-191v123zM669 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z " />
-<glyph unicode="&#xe0a0;" d="M279 1783h245v-1001l-245 -158v1159zM279 159q0 160 70 260q25 35 64 71t85 65l136 87q40 26 69 59t44 64q34 69 34 185v292h-185l260 303l257 -303h-185v-341q0 -81 -10.5 -145.5t-36.5 -115.5q-23 -47 -59 -84t-82 -68l-68 -46q-42 -29 -68.5 -53t-43.5 -56t-26.5 -72 t-9.5 -102v-426h-245v426z" />
-<glyph unicode="&#xe0a1;" d="M267 803v980h168v-837h384v-143h-552zM998 -267h-181l-268 636l20 -424v-212h-170v980h179l270 -638l-22 466v172h172v-980z" />
-<glyph unicode="&#xe0a2;" d="M276 -267q-178 0 -178 181v881q0 194 155 194v390q0 94 29 167t78 127q102 110 257 110t257 -110q49 -54 78 -127t29 -167v-390q155 0 155 -194v-881q0 -181 -181 -181h-679zM617 1618q-44 0 -78.5 -17t-60.5 -49q-50 -62 -50 -173v-390h378v390q0 56 -13.5 98.5 t-39.5 74.5t-59 49t-77 17zM688 449q86 44 86 141q0 34 -10.5 61.5t-33.5 51.5q-24 23 -51.5 35t-61.5 12t-61.5 -12t-51.5 -35q-23 -24 -35 -52t-12 -63q0 -96 87 -139v-415h144v415z" />
-<glyph unicode="&#xe0b0;" d="M-20 -488v2489l1136 -1244z" />
-<glyph unicode="&#xe0b1;" d="M1220 705l-937 -1027l-89 89l855 938l-855 939l89 87z" />
-<glyph unicode="&#xe0b2;" d="M1253 2001v-2489l-1136 1245z" />
-<glyph unicode="&#xe0b3;" d="M937 -322l-937 1027l937 1026l86 -87l-854 -939l854 -938z" />
-<glyph unicode="&#xfeff;" />
-<glyph d="M626 1498q69 0 116 -48q23 -23 34.5 -53t11.5 -72q0 -78 -46 -124q-47 -47 -116 -47t-116 47q-46 47 -46 124q0 78 46 125q46 48 116 48zM689 952l67 -567v-445h-265v445l77 567h121z" />
-<glyph d="M645 1230q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM605 -27q-95 0 -171.5 25t-130 71t-82 111t-28.5 145q0 37 7.5 71t25.5 69.5t49 74t79 85.5 l88 86q36 34 57 60.5t32 49.5t14.5 47t3.5 54v170h190v-941q19 5 35 10t28 10q43 17 90.5 43t96.5 60v-188q-95 -58 -191 -85.5t-193 -27.5zM549 577l-45 -45q-29 -29 -49.5 -52t-33.5 -45.5t-19.5 -46t-6.5 -51.5q0 -45 14.5 -78t37 -55.5t49.5 -36t53 -20.5v430z" />
-<glyph d="M646 1230q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM605 -27q-95 0 -171.5 25t-130 71t-82 111t-28.5 145q0 37 7.5 71t25.5 69.5t49 74t79 85.5 l88 86q33 33 54 57.5t32 47.5t15 48t4 58v5q1 11 1.5 21.5t0.5 20.5v123h190v-154q0 -52 -7.5 -93t-24.5 -77.5t-45 -71.5t-68 -75l-90 -89q-29 -29 -49.5 -52.5t-34 -46t-19.5 -45.5t-6 -50q0 -45 17 -82.5t48.5 -63.5t75 -40.5t97.5 -14.5q82 0 170 34.5t186 102.5v-188 q-95 -58 -191 -85.5t-193 -27.5z" />
-<glyph d="M492 1497q30 0 30 -30v-143q0 -30 -30 -30h-143q-30 0 -30 30v143q0 30 30 30h143zM883 1497q30 0 30 -30v-143q0 -30 -30 -30h-142q-30 0 -30 30v143q0 30 30 30h142z" />
-<glyph d="M629 1262h-154l197 264h186z" />
-<glyph d="M555 1370q-13 7 -22.5 12t-17.5 8q-18 5 -28 5q-36 0 -55 -25q-20 -26 -20 -70v-6h-125q0 102 52 160q51 59 136 59q18 0 34.5 -2t32.5 -6q15 -4 34.5 -12.5t44.5 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -100 -53 -159q-51 -60 -135 -60 q-32 0 -64 8q-15 4 -35.5 12.5t-46.5 22.5l-57 33v0z" />
-<glyph d="M604 1262l-227 264h184l197 -264h-154z" />
-<glyph d="M922 1262h-140l-166 178l-165 -178h-140l211 266h189z" />
-<glyph d="M451 1528l165 -178l166 178h140l-211 -266h-189l-211 266h140z" />
-<glyph d="M1087 874l27 -108l-1063 -262l-24 108z" />
-<glyph d="M793 965h116v-111h-116v-186h-138v186h-387v121l363 528h162v-538zM655 965v413l-274 -413h274z" />
-<glyph d="M422 1528q12 -53 62 -82t132 -29q83 0 132 28q48 27 63 83h119q-11 -119 -90 -180q-80 -62 -224 -62t-223 61q-80 62 -90 181h119v0z" />
-<glyph d="M689 1499q30 0 30 -30v-145q0 -30 -30 -30h-145q-30 0 -30 30v145q0 30 30 30h145v0z" />
-<glyph d="M616 -433q-151 0 -225 109t-74 324q0 217 75 325.5t224 108.5q150 0 225.5 -108.5t75.5 -325.5q0 -215 -75.5 -324t-225.5 -109zM616 -344q88 0 131.5 84.5t43.5 259.5q0 176 -43.5 260.5t-131.5 84.5t-131 -84.5t-43 -260.5q0 -175 43 -259.5t131 -84.5zM615 -72 q-36 0 -58 21q-23 21 -23 53t23.5 54.5t57.5 22.5q37 0 60.5 -22.5t23.5 -54.5q0 -33 -24.5 -53.5t-59.5 -20.5z" />
-<glyph d="M362 -290h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110z" />
-<glyph d="M322 -300l231 226q51 49 86.5 88t55.5 70q40 61 40 112q0 30 -13 55.5t-37 43.5t-57.5 28t-74.5 10q-99 0 -225 -72v125q66 28 125.5 42t119.5 14q71 0 129 -17.5t99 -49t63.5 -75.5t22.5 -98q0 -58 -37 -116q-38 -60 -156 -177l-211 -205h410v-114h-571v110z" />
-<glyph d="M557 -440q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5 t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5z" />
-<glyph d="M655 -240h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM655 -129v413l-274 -413h274z" />
-<glyph d="M563 -415q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
-<glyph d="M640 -405q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM638 -317q167 0 167 196t-167 196 q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
-<glyph d="M761 349h-444v95h584v-48l-332 -787h-131z" />
-<glyph d="M616 -422q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5 q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM616 79q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM616 -334q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120 t46.5 -120.5t128.5 -42.5z" />
-<glyph d="M551 -414q-45 0 -91 8.5t-89 24.5v104q40 -20 83.5 -31t91.5 -11q242 0 242 319q-29 -57 -81.5 -86.5t-121.5 -29.5q-137 0 -209 74t-72 212q0 136 75 209.5t213 73.5q162 0 237 -104.5t75 -329.5q0 -212 -90 -322.5t-263 -110.5zM595 -28q81 0 126 51.5t45 145.5 q0 93 -45 144.5t-126 51.5q-168 0 -168 -196q0 -197 168 -197z" />
-<glyph horiz-adv-x="0" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/svg/latin/hack-bold-latin-webfont.svg b/pagure/static/hack_fonts/fonts/svg/latin/hack-bold-latin-webfont.svg
deleted file mode 100755
index 3c84205..0000000
--- a/pagure/static/hack_fonts/fonts/svg/latin/hack-bold-latin-webfont.svg
+++ /dev/null
@@ -1,241 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackbold" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M470 1052v456h285v-456l-68 -576h-139zM615 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49 q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5z" />
-<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
-<glyph unicode="#" d="M209 373h-207v215h260l74 293h-219v215h274l94 374h222l-95 -374h203l94 374h224l-97 -374h193v-215h-246l-74 -293h205v-215h-258l-94 -373h-221l94 373h-205l-94 -373h-221zM688 588l74 293h-205l-74 -293h205z" />
-<glyph unicode="$" d="M512 0q-45 3 -142 26q-95 22 -198 66v262q103 -61 200 -94q51 -17 95 -25t86 -9v329q-197 39 -293 135q-96 94 -96 253q0 166 102 265t247 111v237h221l1 -237q32 -5 108 -18q34 -6 72.5 -15.5t83.5 -23.5v-256q-33 22 -68.5 37.5t-69.5 26.5q-39 12 -80 19.5t-87 10.5 v-307q199 -32 298 -134q51 -52 75.5 -121t24.5 -152q0 -86 -27 -152.5t-81 -119.5q-61 -59 -134.5 -84t-114.5 -30l-1 -301h-221zM553 1100q-61 -7 -93 -41q-14 -14 -23 -37t-9 -55q0 -57 32 -95q33 -39 93 -55v283zM694 226q36 5 59 18t39 31q35 40 35 101t-34 101 q-16 18 -40 31t-59 20v-302z" />
-<glyph unicode="%" d="M352 793q-133 0 -226 93q-45 45 -69 100.5t-24 125.5q0 134 93 227t226 93q69 0 125.5 -24t101.5 -69t69 -101.5t24 -125.5q0 -133 -93 -226q-45 -45 -101.5 -69t-125.5 -24zM352 975q58 0 98 40q39 39 39 97q0 57 -40 97t-97 40t-97 -39q-40 -40 -40 -98q0 -33 11 -56 t29 -41q40 -40 97 -40zM48 561l1143 436v-114l-1139 -432zM898 0q-71 0 -129 26.5t-97 65.5q-48 48 -70 107.5t-22 121.5q0 63 23 120.5t69 104.5q43 44 100.5 68.5t125.5 24.5t125 -24t102 -68q43 -42 68.5 -100t25.5 -127q0 -65 -24 -123.5t-69 -103.5q-42 -42 -101 -67.5 t-127 -25.5zM898 182q58 0 98 40t40 97t-41 98q-20 20 -45 30t-52 10q-57 0 -97 -40q-20 -20 -29.5 -45.5t-9.5 -52.5q0 -30 11 -55.5t28 -42.5q39 -39 97 -39z" />
-<glyph unicode="&#x26;" d="M537 -29q-221 0 -361 131q-139 130 -139 340q0 78 18 142t53 122q36 60 87.5 111t121.5 96q-27 43 -45 79t-29 66q-12 33 -18 64.5t-6 66.5q0 76 27 138t82 106q109 87 315 87q38 0 73 -3t70 -8q40 -6 71.5 -13.5t66.5 -18.5v-256q-28 16 -64 31.5t-65 23.5t-63.5 13 t-68.5 5q-38 0 -69 -7t-51 -21q-41 -29 -41 -80q0 -20 7 -43.5t24 -57.5q16 -32 39 -71t59 -94l313 -480q22 39 32 87q11 52 11 106q0 14 -0.5 30t-1.5 29q-1 15 -2 25.5t-4 27.5h235v-51q0 -147 -34 -253q-35 -111 -107 -195l162 -246h-317l-48 72q-39 -26 -77 -43.5 t-82 -31.5q-42 -13 -83 -19.5t-91 -6.5zM580 207q15 0 27 1.5t29 5.5q14 3 26.5 6.5t30.5 11.5l8 4q10 5 16.5 8.5t11 6l9 5t10.5 6.5l-308 469q-66 -44 -99 -102q-34 -59 -34 -135q0 -66 22 -116.5t56 -86.5q79 -84 195 -84z" />
-<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
-<glyph unicode="(" d="M596 -270q-74 107 -134 220.5t-102 235.5q-77 225 -77 457q0 231 78 458q38 110 94.5 221t140.5 232h228q-64 -116 -113.5 -232t-82.5 -231q-64 -222 -64 -448q0 -224 64 -447q65 -227 196 -466h-228v0z" />
-<glyph unicode=")" d="M409 -270q131 239 196 466q64 223 64 447q0 226 -64 448q-32 110 -80.5 226t-115.5 237h228q159 -229 236 -453q39 -114 58 -230.5t19 -229.5q0 -230 -77 -455q-40 -117 -98.5 -229t-137.5 -227h-228v0z" />
-<glyph unicode="*" d="M216 455l239 366l-358 155l51 148l369 -120l19 416h156l19 -416l369 120l51 -148l-358 -155l239 -366l-133 -95l-265 350l-265 -350z" />
-<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
-<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-11 -35 -28 -70t-43 -70q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
-<glyph unicode="-" d="M221 746h791v-291h-791v291z" />
-<glyph unicode="." d="M612 -42q-39 0 -69 13.5t-55 38.5q-52 52 -52 131q0 82 52 134q51 51 125 51q36 0 68 -12.5t58 -38.5q51 -51 51 -134q0 -80 -51 -131q-52 -52 -127 -52z" />
-<glyph unicode="/" d="M899 1493h221l-786 -1683h-221z" />
-<glyph unicode="0" d="M617 -29q-248 0 -371 194q-123 193 -123 580q0 388 123 582q123 193 370 193q248 0 371 -193q123 -194 123 -582t-123 -581t-370 -193zM616 221q103 0 150 125q47 126 47 399q0 274 -47 400q-47 125 -150 125q-102 0 -149 -125q-47 -126 -47 -400q0 -273 47 -399 q47 -125 149 -125zM617 460q-8 0 -14.5 10t-11.5 26.5t-8.5 37.5t-6.5 44q-2 19 -4.5 43t-4 48t-2.5 45t-1 35q0 10 0.5 28.5t2 41.5t3 48t4.5 48q13 117 41 117q15 0 26 -33.5t17 -85.5q2 -21 4 -45t3.5 -47t2.5 -44t1 -34q0 -9 -0.5 -26t-1.5 -39.5t-2.5 -48t-4.5 -50.5 q-7 -60 -18 -89.5t-25 -29.5z" />
-<glyph unicode="1" d="M188 260h330v969l-307 -76v266l309 74h285v-1233h330v-260h-947v260z" />
-<glyph unicode="2" d="M115 216q0 19 6 33.5t19 28.5l135 144q84 90 140 149.5t94.5 101t63.5 69.5t48 54q37 43 64 78.5t44 72.5q33 67 33 135q0 45 -14.5 84.5t-45.5 67.5t-75 41t-97 13q-81 0 -177 -31q-98 -31 -206 -92v275q60 22 114 37t96 23q50 10 100 15t100 5q109 0 203.5 -26.5 t165.5 -83.5q64 -52 99.5 -127t35.5 -179q0 -44 -7 -82t-23 -79q-17 -42 -42.5 -85.5t-58.5 -85.5q-18 -22 -42.5 -49.5t-59.5 -64t-81.5 -84t-107.5 -108.5q-55 -56 -91.5 -87.5t-62 -51t-44 -33.5t-37.5 -34h659v-260h-948v216z" />
-<glyph unicode="3" d="M555 -29q-53 0 -109 4.5t-111 14.5q-51 9 -104 22.5t-106 32.5v274q46 -23 96.5 -41t106.5 -30q57 -13 112 -19t101 -6q66 0 118 13t89 42q36 29 52.5 69t16.5 88q0 51 -17.5 95t-52.5 76q-33 29 -82.5 45.5t-115.5 16.5h-158v260h158q109 0 171 44q32 23 46 54t14 69 q0 82 -60 129q-29 23 -71.5 34.5t-101.5 11.5q-39 0 -84.5 -5t-93.5 -16q-45 -10 -96 -25.5t-103 -35.5v268q105 32 203 48q51 8 98.5 12t92.5 4q238 0 369 -103q132 -104 132 -284q0 -64 -17.5 -118t-58.5 -99q-77 -86 -217 -111q160 -28 244 -127q42 -49 63 -114t21 -150 q0 -106 -34.5 -189t-103.5 -140t-171 -85.5t-236 -28.5z" />
-<glyph unicode="4" d="M694 322h-592v286l566 885h309v-918h164v-253h-164v-322h-283v322zM694 575v590l-377 -590h377z" />
-<glyph unicode="5" d="M533 -29q-43 0 -92 4t-98 12q-50 8 -100.5 20.5t-99.5 27.5v266q45 -22 85 -36t86 -25q45 -11 87 -16t87 -5q158 0 238 67q81 67 81 189q0 66 -22 113.5t-58 79.5t-90.5 50.5t-128.5 18.5q-35 0 -74.5 -4.5t-79.5 -14.5q-41 -10 -83.5 -26t-77.5 -33v834h811v-260h-572 v-277q10 4 32 10.5t45 10.5q18 3 43 4.5t46 1.5q106 0 199 -35.5t160 -103.5q65 -66 101 -159t36 -208q0 -119 -39 -212t-110 -158t-173 -100.5t-239 -35.5z" />
-<glyph unicode="6" d="M644 -31q-131 0 -227.5 44.5t-160.5 139.5q-66 97 -95.5 241t-29.5 330q0 198 35 348.5t116 253.5q76 96 189.5 144t259.5 48q41 0 76 -3.5t73 -11.5q73 -15 150 -45v-268q-40 23 -77.5 40t-73.5 28q-72 22 -141 22q-159 0 -242 -107t-88 -318q23 32 54 57.5t66 40.5 q32 14 75.5 23t98.5 9q99 0 177.5 -31.5t132.5 -94.5q54 -62 82 -153.5t28 -210.5q0 -121 -30.5 -220.5t-92.5 -168.5q-63 -70 -152 -103.5t-203 -33.5zM643 207q45 0 83 16.5t65 53.5q51 69 51 200q0 130 -51 201q-24 33 -61 51.5t-88 18.5q-50 0 -85.5 -18t-59.5 -51 q-51 -71 -51 -201q0 -69 13.5 -119t37.5 -83q26 -36 63.5 -52.5t82.5 -16.5z" />
-<glyph unicode="7" d="M758 1233h-623v260h944v-209l-506 -1284h-301z" />
-<glyph unicode="8" d="M617 -29q-123 0 -212 30.5t-149 86.5q-64 59 -95.5 142t-31.5 184q0 76 18 134.5t53 107.5q71 97 197 135q-113 39 -172 123q-29 42 -44 92.5t-15 114.5q0 91 30 164t91 127q121 108 329 108t330 -108q121 -108 121 -292q0 -123 -58 -205q-58 -84 -169 -124 q122 -37 194 -136q35 -49 52.5 -107.5t17.5 -133.5q0 -101 -31.5 -184t-95.5 -142q-128 -117 -360 -117zM616 903q88 0 139 52q50 52 50 138q0 89 -50 139q-23 23 -58 36.5t-81 13.5q-86 0 -137 -51t-51 -138q0 -86 51 -138q27 -28 61 -40t76 -12zM616 209q48 0 89 15.5 t72 47.5q29 29 45 72t16 96q0 50 -15 91t-46 73q-28 29 -68 45.5t-93 16.5q-48 0 -88.5 -15t-71.5 -47q-61 -62 -61 -165q0 -51 15 -93.5t46 -74.5q27 -28 68 -45t92 -17z" />
-<glyph unicode="9" d="M502 -39q-40 0 -75.5 3.5t-72.5 11.5q-38 8 -75.5 19t-75.5 25v269q40 -23 77.5 -40t74.5 -28q70 -22 140 -22q76 0 137.5 26t104.5 81q40 51 63 130t25 188q-25 -34 -53.5 -57t-66.5 -40t-79.5 -25t-92.5 -8q-100 0 -179 32t-134 96q-54 63 -81.5 153.5t-27.5 207.5 q0 122 30.5 220t91.5 167q122 137 357 137q139 0 233 -47.5t154 -135.5q68 -100 96.5 -245t28.5 -323q0 -110 -10 -200.5t-29 -164t-47 -132t-64 -104.5q-78 -100 -193 -147t-257 -47zM589 741q96 0 147 70q50 70 50 200q0 69 -13.5 119.5t-36.5 82.5q-26 35 -63 52t-84 17 q-51 0 -86.5 -18.5t-59.5 -50.5q-52 -70 -52 -201t52 -201q26 -35 61.5 -52.5t84.5 -17.5z" />
-<glyph unicode=":" d="M619 752q-39 0 -70.5 14.5t-53.5 36.5q-27 27 -39.5 61t-12.5 72q0 43 14 76.5t37 56.5q26 26 59 38.5t68 12.5t67 -12.5t58 -38.5q23 -23 37 -56.5t14 -75.5t-14 -76.5t-37 -57.5t-56 -37t-71 -14zM620 36q-74 0 -125 51q-52 52 -52 133t52 133q51 51 125 51 q36 0 68 -12.5t58 -38.5q23 -23 37 -56.5t14 -76.5q0 -42 -13.5 -75.5t-37.5 -57.5q-26 -26 -58 -38.5t-68 -12.5z" />
-<glyph unicode=";" d="M609 695q-41 0 -74 15t-56 38q-29 29 -41.5 65t-12.5 75q0 45 15 80.5t38 59.5q27 26 61.5 39.5t72.5 13.5q76 0 131 -53q24 -25 38.5 -59.5t14.5 -79.5t-14.5 -80.5t-38.5 -60.5q-25 -24 -59.5 -38.5t-74.5 -14.5zM373 -346l15 7q55 23 103 57.5t80 74.5q29 36 48 83.5 t23 102.5q-10 -2 -13 -2h-10q-35 0 -69.5 11t-59.5 34q-26 23 -38.5 55.5t-12.5 72.5q0 81 54 128q14 12 28.5 20.5t31.5 15.5q14 5 32 8t39 3q23 0 45 -4.5t42 -15.5q40 -19 65 -58q14 -21 23.5 -42.5t15.5 -47.5q7 -26 10 -55t3 -61q0 -94 -25.5 -174t-73.5 -145 q-93 -129 -281 -200l-14 -5z" />
-<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
-<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
-<glyph unicode="?" d="M479 583q0 83 31 152q17 37 45 74.5t73 81.5l90 89q11 11 25.5 26t25.5 29q23 27 32 44q5 8 9.5 19.5t7.5 22.5q2 6 3.5 18.5t1.5 25.5q0 8 -0.5 20t-2.5 20q-1 4 -4 15.5t-7 19.5q-4 9 -8.5 15.5t-10.5 14.5t-12 14t-15 14q-14 11 -25 17.5t-20 10.5q-5 2 -21.5 8 t-33.5 9q-30 6 -64 6q-11 0 -26 -0.5t-26 -2.5t-25 -4.5t-29 -6.5q-14 -4 -30.5 -9.5t-26.5 -9.5q-39 -15 -87 -41t-96 -60l-24 -17v225l7 5q96 58 194 87q96 28 202 28q98 0 173 -25q76 -26 135 -75q27 -23 49 -52.5t37 -64.5q29 -69 29 -149q0 -82 -36 -151 q-17 -32 -46.5 -70t-83.5 -91l-87 -86q-22 -21 -32.5 -32.5t-22.5 -25.5q-10 -12 -17.5 -24.5t-12.5 -20.5q-8 -16 -13 -38t-5 -39v-142h-220v126zM592 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5 t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
-<glyph unicode="@" d="M767 -319q-171 0 -309.5 58t-243.5 175q-208 232 -208 632q0 192 46.5 346t140.5 271t217.5 174.5t272.5 57.5q118 0 204 -34t146 -97q126 -132 126 -359v-770h-196v82q-22 -30 -44 -48t-45 -29q-51 -25 -125 -25q-163 0 -263 118q-101 119 -101 313q0 99 25.5 176 t74.5 134q100 117 263 117q34 0 66.5 -5.5t60.5 -18.5q26 -12 49 -31t39 -41v41q0 136 -74 210q-76 74 -210 74q-108 0 -194.5 -47.5t-148.5 -134.5q-61 -85 -96 -206t-35 -270q0 -161 41 -284t110 -206q78 -93 182 -137t219 -44q40 0 81 5.5t79 17.5q36 11 72.5 29.5 t71.5 41.5l92 -176q-42 -29 -88 -50t-88 -33q-44 -13 -96.5 -20t-113.5 -7zM782 303q89 0 140 64t51 178q0 112 -51 177q-51 64 -140 64q-50 0 -83 -17.5t-56 -46.5q-51 -65 -51 -177q0 -114 51 -178q23 -29 56 -46.5t83 -17.5z" />
-<glyph unicode="A" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="B" d="M125 1495h481q250 0 375 -94q125 -95 125 -283q0 -143 -74 -225q-73 -80 -217 -94q88 -8 152 -37.5t106 -77.5q86 -98 86 -275q0 -215 -130 -312t-423 -97h-481v1495zM606 913q60 0 98 10t62 31q23 20 35 50.5t12 80.5q0 44 -11 77t-37 56q-21 18 -57.5 30t-101.5 12 h-196v-347h196zM606 236q141 0 198 48q56 48 56 167q0 121 -59 174t-195 53h-196v-442h196z" />
-<glyph unicode="C" d="M759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129 q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
-<glyph unicode="D" d="M137 1493h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v1493zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-961h80z" />
-<glyph unicode="E" d="M168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="F" d="M182 1493h930v-260h-635v-332h578v-260h-578v-641h-295v1493z" />
-<glyph unicode="G" d="M720 -29q-143 0 -255 50.5t-190 150.5q-75 96 -116.5 238t-41.5 337q0 186 39.5 330t120.5 244q160 199 455 199q51 0 94.5 -6t87.5 -19q85 -25 163 -74v-327q-62 80 -142 121q-80 40 -176 40q-170 0 -252 -126q-83 -128 -83 -382q0 -125 20 -220.5t60 -161.5 q38 -62 95.5 -95.5t138.5 -33.5q20 0 41 2t38 7q22 5 33 11t22 14v285h-202v248h460v-684q-84 -72 -187 -110q-52 -19 -106 -28.5t-117 -9.5z" />
-<glyph unicode="H" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
-<glyph unicode="I" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="J" d="M524 -29q-58 0 -106 6.5t-100 19.5q-51 13 -102 31.5t-107 45.5v342q43 -45 89 -78t95 -56q96 -46 197 -46q115 0 169 58t54 185v754h-361v260h656v-1014q0 -273 -114 -390q-58 -60 -153.5 -89t-216.5 -29z" />
-<glyph unicode="K" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
-<glyph unicode="L" d="M225 1493h295v-1233h631v-260h-926v1493z" />
-<glyph unicode="M" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
-<glyph unicode="N" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
-<glyph unicode="O" d="M616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388 q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="P" d="M166 1493h405q308 0 445 -110q135 -110 135 -357q0 -248 -135 -357q-137 -110 -445 -110h-110v-559h-295v1493zM582 807q146 0 204 49t58 170t-58 170t-204 49h-121v-438h121z" />
-<glyph unicode="Q" d="M656 -23l-23 -5q-5 -1 -7 -1h-4q-137 0 -234.5 50.5t-162.5 145.5q-133 196 -133 577q0 192 33 336.5t100 244.5q70 103 169.5 149t221.5 46q131 0 229 -49.5t164 -146.5q132 -197 132 -579q0 -263 -63 -440t-183 -254l286 -332h-342zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
-<glyph unicode="R" d="M133 1493h426q288 0 414 -102q63 -51 94 -134.5t31 -192.5q0 -84 -18.5 -144t-56.5 -106q-36 -44 -88.5 -71.5t-127.5 -37.5q23 -5 43 -16t34 -25q15 -15 34.5 -46t44.5 -81l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838 q121 0 174 48q24 22 38 59t14 97q0 110 -52 156q-53 47 -174 47h-139v-407h139z" />
-<glyph unicode="S" d="M582 -29q-60 0 -117 6t-114 20q-114 27 -216 79v305q62 -44 117 -74t112 -51q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55q-115 44 -189 88.5t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116 q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174q85 -109 85 -281q0 -221 -134 -332q-135 -112 -394 -112z" />
-<glyph unicode="T" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
-<glyph unicode="U" d="M616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="V" d="M57 1493h297l262 -1247l263 1247h297l-355 -1493h-409z" />
-<glyph unicode="W" d="M0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
-<glyph unicode="X" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
-<glyph unicode="Y" d="M469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="Z" d="M94 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
-<glyph unicode="[" d="M384 1636h503v-190h-238v-1531h238v-185h-503v1906z" />
-<glyph unicode="\" d="M111 1493h223l786 -1683h-223z" />
-<glyph unicode="]" d="M344 -83h243v1528h-243v190h505v-1905h-505v187z" />
-<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
-<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
-<glyph unicode="`" d="M199 1638h282l283 -376h-197z" />
-<glyph unicode="a" d="M494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14 t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290 q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="b" d="M740 -29q-103 0 -177 49q-75 49 -121 146l-29 -166h-263v1556h292v-595q54 94 126 140q35 23 75.5 34.5t91.5 11.5q96 0 172 -38.5t129 -113.5q51 -72 79 -180.5t28 -254.5q0 -137 -26 -247.5t-80 -188.5q-54 -77 -128.5 -115t-168.5 -38zM647 211q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
-<glyph unicode="c" d="M702 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33 t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
-<glyph unicode="d" d="M492 -29q-93 0 -167.5 38t-128.5 115q-106 153 -106 436t108 435q51 72 126 112t174 40q48 0 89 -10.5t79 -35.5q71 -47 125 -140v595h292v-1556h-263l-29 166q-23 -49 -54 -85.5t-67 -60.5q-74 -49 -178 -49zM586 211q94 0 150 92q55 91 55 254t-55 254q-56 92 -150 92 q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
-<glyph unicode="e" d="M665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63 q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="f" d="M426 895h-272v225h272v78q0 202 84 280t312 78h241v-225h-229q-67 0 -89 -24q-12 -12 -19 -36t-7 -53v-98h344v-225h-344v-895h-293v895z" />
-<glyph unicode="g" d="M578 -424q-44 0 -89.5 3t-90.5 10q-90 13 -183 42v269q42 -23 85 -40t84 -28q43 -11 87 -16.5t85 -5.5q68 0 113.5 14.5t74.5 43.5q59 59 59 183v121q-44 -80 -114 -119q-71 -39 -172 -39q-194 0 -306 150q-57 75 -85 176.5t-28 232.5q0 263 113 420q57 78 132 117 t169 39q98 0 173 -45t118 -127l29 143h264v-1036q0 -269 -121 -389q-122 -119 -397 -119zM596 246q93 0 150 91q28 45 42.5 103.5t14.5 136.5q0 74 -14 134.5t-43 107.5q-57 90 -150 90q-92 0 -148 -90q-57 -90 -57 -241q0 -152 57 -242q56 -90 148 -90z" />
-<glyph unicode="h" d="M172 1556h291v-604q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 121 -34 173q-17 26 -45.5 39t-65.5 13q-82 0 -127 -70q-45 -71 -45 -196v-641h-291v1556z" />
-<glyph unicode="i" d="M451 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="j" d="M614 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM170 -199h234q99 0 139 55q41 56 41 187v852h-297v225h590v-1077q0 -252 -90 -360q-44 -52 -119 -79.5t-182 -27.5h-316v225z" />
-<glyph unicode="k" d="M174 1556h293v-817l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1556z" />
-<glyph unicode="l" d="M788 -8q-209 0 -300 108q-91 107 -91 359v872h-297v225h590v-1097q0 -131 41 -187q40 -55 139 -55h234v-225h-316v0z" />
-<glyph unicode="m" d="M82 1120h184l29 -116q26 67 80 105q25 17 56.5 27.5t67.5 10.5q68 0 123 -40q56 -41 68 -99q33 70 84 105q50 34 128 34q73 0 122.5 -26t75.5 -74q29 -53 42 -156.5t13 -259.5v-631h-240v719q0 66 -4.5 105t-14.5 61q-19 43 -69 43q-29 0 -45 -12t-25 -32 q-10 -21 -15 -61.5t-5 -103.5v-719h-237v719q0 121 -20 166q-19 43 -70 43q-50 0 -69 -42q-19 -41 -19 -167v-719h-240v1120z" />
-<glyph unicode="n" d="M172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116v-641h-291v1120z" />
-<glyph unicode="o" d="M617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259 q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="p" d="M150 1120h263l29 -168q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1546zM647 215 q95 0 149 92q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
-<glyph unicode="q" d="M791 158q-53 -92 -125 -140q-36 -24 -76 -35.5t-91 -11.5q-93 0 -169 37t-132 115q-54 76 -81 185t-27 250q0 283 106 436q54 77 128.5 115t167.5 38q104 0 178 -49q36 -24 67 -60.5t54 -85.5l29 168h263v-1546h-292v584zM586 215q94 0 150 92q55 91 55 254t-55 254 q-56 92 -150 92q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
-<glyph unicode="r" d="M241 1120h264l29 -174q44 97 132 149q45 26 97 39t108 13q30 0 62 -3.5t59 -10.5q29 -8 58 -19.5t51 -23.5v-279q-48 44 -112 66q-32 11 -67.5 16.5t-73.5 5.5q-94 0 -163 -32q-70 -32 -108 -94q-10 -16 -19 -39t-14 -54q-5 -29 -7.5 -67t-2.5 -97v-516h-293v1120z" />
-<glyph unicode="s" d="M616 -29q-51 0 -105.5 4.5t-105.5 12.5t-105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 98.5 -21.5t98.5 -7.5q99 0 153 30q26 15 39.5 36.5t13.5 56.5q0 23 -7.5 42t-31.5 37t-66.5 34t-110.5 31l-81 18q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90 q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20q79 -19 138 -49t97 -73t56 -101.5t18 -127.5q0 -173 -113 -259 q-57 -44 -142.5 -65.5t-195.5 -21.5z" />
-<glyph unicode="t" d="M827 -4q-253 0 -341 81q-89 80 -89 298v520h-286v225h286v306l293 130v-436h383v-225h-383v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-246v0z" />
-<glyph unicode="u" d="M481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="v" d="M80 1120h297l239 -874l240 874h297l-356 -1120h-361z" />
-<glyph unicode="w" d="M0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
-<glyph unicode="x" d="M469 584l-381 536h342l186 -334l187 334h342l-377 -536l410 -584h-342l-220 377l-219 -377h-342z" />
-<glyph unicode="y" d="M137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
-<glyph unicode="z" d="M162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
-<glyph unicode="{" d="M853 -334q-248 0 -333 74q-85 73 -85 295v215q0 70 -12.5 124.5t-40.5 84.5q-27 29 -77 43t-117 14h-92v191h92q140 0 194 57q53 58 53 209v215q0 222 85 295q83 73 333 73h150v-190h-123q-105 0 -139 -42q-35 -43 -35 -185v-209q0 -165 -49 -232q-49 -66 -175 -86 q125 -21 175 -89q49 -67 49 -232v-205q0 -143 35 -187q34 -42 139 -42h123v-191h-150v0z" />
-<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
-<glyph unicode="}" d="M230 -143h121q104 0 140 43t36 186v205q0 165 49 232q26 35 70.5 57t103.5 32q-127 20 -174 86q-49 67 -49 232v209q0 140 -35 184q-19 23 -56 33t-85 10h-121v190h150q249 0 332 -73q83 -74 83 -295v-215q0 -81 14.5 -130.5t40.5 -77.5t73 -43t122 -15h92v-191h-92 q-141 0 -195 -58q-55 -58 -55 -208v-215q0 -221 -83 -295q-85 -74 -332 -74h-150v191z" />
-<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M615 1508q17 0 34 -2.5t34 -10.5q17 -7 29.5 -15.5t26.5 -23.5q12 -13 17 -20t11 -18q8 -14 11.5 -23t5.5 -22q5 -25 5 -49q0 -41 -12 -74.5t-37 -58.5q-24 -25 -56.5 -38t-66.5 -13q-8 0 -16.5 0.5t-14.5 1.5l-26 6q-6 2 -14.5 5.5t-10.5 4.5q-7 3 -13 7t-10 7 q-4 4 -7 6.5t-14 13.5q-50 49 -50 131q0 84 50 134q23 23 54.5 37t69.5 14zM687 960l68 -576v-456h-285v456l78 576h139z" />
-<glyph unicode="&#xa2;" d="M655 -25q-235 22 -371 179q-137 158 -137 408q0 130 35 232t102 179q136 156 371 172v287h142v-287q61 -5 120 -21q35 -10 62.5 -21.5t56.5 -25.5v-268q-29 22 -60.5 39.5t-55.5 27.5q-26 11 -58.5 19t-64.5 12v-692q33 2 64.5 10t59.5 19q29 12 58 28.5t57 38.5v-268 q-29 -16 -55.5 -27t-56.5 -19q-63 -18 -127 -22v-288h-142v288zM655 907q-113 -13 -175 -103q-30 -44 -46 -104.5t-16 -139.5q0 -75 15.5 -136.5t47.5 -109.5q63 -93 174 -99v692z" />
-<glyph unicode="&#xa3;" d="M119 260h235v334h-198v225h198v197q0 255 113 380q112 124 343 124q44 0 85 -4t70 -10t65.5 -17.5t71.5 -26.5v-274q-30 22 -63.5 38.5t-58.5 24.5q-32 11 -66 16t-66 5q-56 0 -94 -16.5t-63 -49.5q-50 -68 -50 -211v-176h336v-225h-336v-334h481v-260h-1003v260z" />
-<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
-<glyph unicode="&#xa5;" d="M469 438h-412v189h408l-86 151h-322v187h224l-273 528h318l290 -600l291 600h318l-273 -528h224v-187h-322l-86 -151h408v-189h-412v-438h-295v438z" />
-<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
-<glyph unicode="&#xa7;" d="M602 -195q-39 0 -85.5 3.5t-87.5 10.5t-85.5 18.5t-85.5 25.5v229q45 -16 85 -26.5t81 -18.5q39 -8 75.5 -12t71.5 -4q46 0 75.5 7.5t49.5 21.5t30.5 34t10.5 40q0 21 -12 41.5t-37.5 43.5t-66 49t-98.5 58l-37 20q-83 45 -142.5 88t-98 86t-57 86.5t-18.5 89.5 q0 38 13 79.5t39 76.5q24 32 61.5 58.5t87.5 43.5q-72 50 -103 110q-32 61 -32 141q0 143 104 229t277 86q72 0 152 -15q43 -8 82 -19.5t79 -25.5v-225q-86 30 -151 45q-31 7 -63.5 10.5t-58.5 3.5q-73 0 -116 -29q-23 -16 -33 -36.5t-10 -40.5q0 -23 12.5 -44t37.5 -42.5 t63 -45.5t90 -52q9 -5 13 -7l6 -3l3 -1.5t6 -3.5q57 -31 100 -55t75.5 -44.5t56 -40t41.5 -40.5q59 -71 59 -171q0 -90 -47 -154t-150 -111q70 -49 103 -111q32 -61 32 -144q0 -71 -25.5 -129.5t-78.5 -100.5q-50 -40 -123 -61.5t-170 -21.5zM711 473q27 17 48 36.5t32 34.5 q12 17 18 36t6 33q0 46 -67 103.5t-198 123.5l-32 16q-54 -35 -79 -70t-25 -74q0 -56 49 -99q12 -11 31 -23.5t48.5 -29.5t70.5 -38.5t98 -48.5z" />
-<glyph unicode="&#xa8;" d="M331 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
-<glyph unicode="&#xaa;" d="M537 698q-128 0 -205 68q-76 68 -76 187q0 67 24 117.5t69 82.5q91 66 280 66h157v26q0 27 -12.5 45t-32.5 29q-21 11 -55 17.5t-85 6.5q-38 0 -76.5 -4t-73.5 -12q-71 -16 -136 -51v188q27 11 66 22.5t81 19.5q37 7 74.5 10.5t76.5 3.5q188 0 277 -86t89 -269v-448h-174 l-19 92q-49 -57 -110 -84q-62 -27 -139 -27zM593 866q42 0 78 14.5t61 37.5q27 26 40.5 59.5t13.5 71.5v30h-102q-109 0 -159 -26t-50 -83q0 -22 7.5 -42t22.5 -34q14 -13 35.5 -20.5t52.5 -7.5zM293 598h688v-170h-688v170z" />
-<glyph unicode="&#xab;" d="M59 535v131l469 393v-238l-277 -221l277 -221v-238zM513 535v131l469 393v-238l-276 -221l276 -221v-238z" />
-<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
-<glyph unicode="&#xad;" d="M301 735h631v-291h-631v291z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
-<glyph unicode="&#xaf;" d="M301 1556h631v-188h-631v188z" />
-<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
-<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#xb2;" d="M274 1261q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79 t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
-<glyph unicode="&#xb3;" d="M588 1113q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64z" />
-<glyph unicode="&#xb4;" d="M752 1638h282l-368 -376h-197z" />
-<glyph unicode="&#xb5;" d="M154 1120h287v-680q0 -113 41 -171q20 -28 49.5 -43t72.5 -15q81 0 122 57q40 56 40 172v680h289v-776q0 -69 14 -102q13 -31 44 -31q8 0 13.5 1.5t13.5 4.5q9 4 13.5 6.5t14.5 9.5v-217q-25 -13 -42.5 -20.5t-37.5 -13.5q-19 -5 -36.5 -8t-37.5 -3q-39 0 -66.5 10.5 t-48.5 27.5q-26 21 -42.5 50t-30.5 70q-38 -78 -92 -118q-55 -40 -126 -40q-58 0 -99 23q-42 23 -68 72l2 -494h-289v1548z" />
-<glyph unicode="&#xb6;" d="M496 649q-107 14 -183.5 47.5t-131.5 87.5q-111 109 -111 286q0 192 130 307q131 116 345 116h520v-1690h-191v1543h-190v-1543h-188v846z" />
-<glyph unicode="&#xb7;" d="M614 344q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28z" />
-<glyph unicode="&#xb8;" d="M573 -401q-23 0 -51 1.5t-51 4.5q-18 2 -32 4.5t-25.5 5t-22.5 5t-24 5.5v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-11 20 -27.5 45.5t-39.5 55.5h140q30 -32 51.5 -62t33.5 -53q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-114.5 -12.5z" />
-<glyph unicode="&#xb9;" d="M313 1265h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145z" />
-<glyph unicode="&#xba;" d="M637 698q-87 0 -151.5 28.5t-112.5 82.5t-73.5 127t-25.5 171q0 189 99 302q97 111 264 111q166 0 264 -111q98 -112 98 -302q0 -94 -23.5 -167.5t-73.5 -130.5q-98 -111 -265 -111zM637 874q35 0 64.5 15.5t51.5 47.5q42 61 42 171q0 109 -42 172q-20 30 -49 46.5 t-67 16.5q-41 0 -69 -18t-46 -44q-43 -64 -43 -173t42 -171q19 -28 48 -45.5t68 -17.5zM293 598h688v-170h-688v170z" />
-<glyph unicode="&#xbb;" d="M253 379l276 221l-276 221v238l469 -393v-131l-469 -394v238zM707 379l277 221l-277 221v238l469 -393v-131l-469 -394v238z" />
-<glyph unicode="&#xbc;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
-<glyph unicode="&#xbd;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM475 -129q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164 q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
-<glyph unicode="&#xbe;" d="M361 809q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64zM47 618l1059 263l37 -119l-1059 -262z M823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
-<glyph unicode="&#xbf;" d="M667 1222q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM606 -27q-99 0 -179 23t-137 71t-85.5 113t-28.5 143 q0 42 8.5 77t25.5 68q17 32 47.5 70.5t80.5 86.5l88 86q66 64 85 106q19 41 19 105q0 3 1 6q1 11 1 21v20v123h267v-154q0 -100 -31 -169q-17 -38 -44.5 -74t-66.5 -74l-90 -89q-20 -20 -33.5 -34.5t-23 -25.5t-15.5 -20t-11 -18q-23 -43 -23 -87q0 -32 11.5 -57.5 t34.5 -42.5t57.5 -25.5t77.5 -8.5q45 0 88 9t89 27q48 19 92 44t95 61v-268q-49 -28 -97 -48.5t-101 -35.5q-50 -14 -98 -21.5t-104 -7.5z" />
-<glyph unicode="&#xc0;" d="M283 1852h284l199 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc1;" d="M668 1852h284l-286 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc2;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc3;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q14 -5 35.5 -15t39.5 -22l60 -39q6 -4 16 -9.5t25 -11.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9t-1 -8v-5q0 -108 -53 -173q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34q-2 1 -4.5 3t-7.5 4q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc4;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc5;" d="M418 1421q-45 39 -65 86q-11 24 -16 51.5t-5 55.5q0 63 23 115t60 89q35 35 87 59t115 24q56 0 108 -21t94 -63q36 -36 59 -87.5t23 -114.5q0 -29 -5 -57t-16 -51q-21 -48 -65 -86l385 -1421h-295l-92 369h-395l-90 -369h-295zM618 1485q53 0 92 39q38 38 38 92t-39 93 q-40 38 -92 38q-29 0 -52.5 -10.5t-40.5 -27.5q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q20 -20 44.5 -29.5t50.5 -9.5zM756 612l-140 611l-139 -611h279z" />
-<glyph unicode="&#xc6;" d="M358 1493h803v-260h-291v-311h260v-260h-260v-402h310v-260h-564v362h-282l-86 -362h-248zM616 598v635h-79l-148 -635h227z" />
-<glyph unicode="&#xc7;" d="M774 1255q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-21 -5 -42.5 -8.5t-44.5 -5.5q21 -26 36.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5 t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 40.5q-253 20 -393 196q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5 t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5z" />
-<glyph unicode="&#xc8;" d="M314 1842h284l199 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xc9;" d="M699 1841h284l-286 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xca;" d="M492 1852h309l223 -264h-178l-199 161l-198 -161h-178zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xcb;" d="M362 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM757 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
-<glyph unicode="&#xcc;" d="M283 1852h284l199 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xcd;" d="M668 1852h284l-286 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xce;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xcf;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
-<glyph unicode="&#xd0;" d="M137 664h-137v237h137v592h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v664zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-326h211v-237h-211v-398h80z" />
-<glyph unicode="&#xd1;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q17 -6 36.5 -15.5t38.5 -21.5l60 -39q8 -5 19 -10.5t22 -10.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q0 -2 -0.5 -3.5t-0.5 -13.5q0 -50 -13.5 -93.5t-39.5 -75.5 q-29 -35 -65 -50t-77 -15q-36 0 -72 11q-20 6 -38.5 15t-39.5 23l-54 34l-8 5l-4 2q-22 12 -39.5 19t-33.5 7q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
-<glyph unicode="&#xd2;" d="M283 1852h284l199 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd3;" d="M668 1852h284l-286 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd4;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5 zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd5;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q15 -5 34.5 -14t40.5 -23l60 -39q8 -5 17.5 -10t23.5 -11q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q-1 -4 -1 -7v-5q0 -109 -53 -174q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34l-12 7q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5 q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
-<glyph unicode="&#xd6;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5 q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390 q52 -121 165 -121z" />
-<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
-<glyph unicode="&#xd8;" d="M-6 51l168 238q-19 49 -31 95.5t-21 106.5q-8 54 -13 114t-5 138q0 385 133 581q66 98 162 147t229 49q105 0 186 -31q44 -17 79.5 -40t64.5 -52l113 162l162 -115l-158 -223q40 -97 59 -213q10 -60 14.5 -125.5t4.5 -137.5q0 -382 -132 -578q-69 -102 -168 -149 t-226 -47q-57 0 -102.5 8.5t-87.5 25.5t-78 40.5t-71 58.5l-120 -167zM772 1153q-26 51 -65 77q-38 25 -90 25q-59 0 -99 -30.5t-66 -89.5q-53 -121 -53 -379v-127zM618 236q60 0 99 31.5t64 89.5q13 30 22.5 68.5t16.5 90t10.5 117t3.5 148.5l-1 23q-1 14 -1 20.5 t-0.5 13.5t-1 17.5t-1.5 32.5l-378 -534q11 -28 28.5 -50.5t37.5 -36.5q43 -31 101 -31z" />
-<glyph unicode="&#xd9;" d="M283 1852h284l199 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="&#xda;" d="M668 1852h284l-286 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="&#xdb;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442 q-122 -138 -389 -138z" />
-<glyph unicode="&#xdc;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5 q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
-<glyph unicode="&#xdd;" d="M668 1852h284l-286 -264h-197zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="&#xde;" d="M162 1493h295v-238h110q309 0 445 -109q68 -55 101.5 -144.5t33.5 -210.5q0 -242 -137 -350q-70 -56 -180.5 -82.5t-262.5 -26.5h-110v-332h-295v1493zM578 575q146 0 204 49t58 169q0 122 -58 171q-59 50 -204 50h-121v-439h121z" />
-<glyph unicode="&#xdf;" d="M759 -29q-32 0 -64.5 3t-61.5 9q-26 5 -60.5 15t-68.5 22v250q29 -16 58 -27.5t58 -19.5q27 -8 53.5 -12t55.5 -4q42 0 70 9t48 25t31 38t11 49q0 42 -29 80.5t-86 83.5q-8 6 -11 8t-6 4.5t-8.5 6.5t-19.5 15l-86 68q-29 23 -51.5 51.5t-37.5 60.5q-30 63 -30 141 q0 125 74 211q39 45 91.5 72.5t119.5 43.5q-5 39 -20.5 67t-37.5 44q-25 18 -60 27t-77 9q-46 0 -83 -11.5t-63 -38.5q-48 -51 -48 -149v-1122h-293v1126q0 212 121 321q63 57 150 83t196 26q117 0 198.5 -29t135.5 -89q106 -118 106 -365v-14q-72 -4 -115.5 -17.5 t-72.5 -33.5q-32 -23 -49 -53.5t-17 -65.5q0 -21 6.5 -40t21 -37.5t36.5 -39t52 -44.5q13 -11 15.5 -12.5t3.5 -2.5l97 -74q45 -34 73.5 -67t48.5 -71q19 -36 29.5 -78t10.5 -93q0 -79 -27 -146.5t-84 -116.5q-57 -48 -135 -72t-169 -24z" />
-<glyph unicode="&#xe0;" d="M199 1673h282l283 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe1;" d="M752 1673h282l-368 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe2;" d="M496 1672h241l256 -376h-178l-199 225l-198 -225h-178zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5 t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5 q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5 q45 -45 124 -45z" />
-<glyph unicode="&#xe3;" d="M768 1317q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5 q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35 q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42 q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe4;" d="M331 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203 v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5 q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10z M576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe5;" d="M617 1249q-57 0 -109.5 21t-93.5 62q-35 35 -58.5 87.5t-23.5 115.5q0 64 24 115.5t59 86.5q41 41 92.5 61.5t108.5 20.5q62 0 113.5 -22.5t88.5 -59.5q36 -36 59.5 -88t23.5 -115q0 -57 -20.5 -108t-61.5 -93q-42 -42 -93.5 -63t-108.5 -21zM617 1403q54 0 93 39 q38 38 38 92t-39 93q-40 38 -93 38q-54 0 -92 -38q-39 -39 -39 -93q0 -55 38 -93q16 -16 40 -27t54 -11zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5 q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39 q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
-<glyph unicode="&#xe6;" d="M346 -29q-158 0 -245 92q-87 93 -87 263q0 185 101 277q100 91 305 91h76v51q0 93 -39 140t-114 47q-32 0 -64 -7.5t-61 -19.5t-66 -32.5t-76 -49.5v246q75 40 144 59t137 19q46 0 86 -7.5t72 -23.5q62 -31 97 -96q28 61 95 94q66 33 158 33q91 0 151.5 -29.5t97.5 -89.5 q18 -29 31.5 -67t23 -89t14.5 -117t5 -149v-127h-451q0 -143 50 -219q23 -35 58 -55.5t87 -20.5q34 0 63 8t57 22q26 13 55.5 33t63.5 54v-244q-50 -44 -112 -65q-32 -11 -68.5 -16t-74.5 -5q-55 0 -99 10.5t-82 31.5q-75 42 -117 122q-20 -42 -47 -73t-59 -51 q-65 -40 -166 -40zM963 690v23q0 126 -25 172q-26 47 -88 47t-88 -47q-25 -46 -25 -172v-23h226zM365 184q63 0 94 43q30 43 30 131v125h-73q-86 0 -131 -39t-45 -115q0 -69 32 -107t93 -38z" />
-<glyph unicode="&#xe7;" d="M761 909q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26q-50 -12 -101 -18q22 -26 37.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 39.5q-110 8 -195.5 46.5t-149.5 107.5q-146 157 -146 432q0 276 147 434 q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5z" />
-<glyph unicode="&#xe8;" d="M238 1673h282l283 -376h-197zM675 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM854 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xe9;" d="M781 1672h282l-368 -376h-197zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xea;" d="M525 1673h241l256 -376h-178l-199 225l-198 -225h-178zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65 q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xeb;" d="M360 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM755 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187 q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5 q-103 0 -163 -61q-60 -62 -71 -175z" />
-<glyph unicode="&#xec;" d="M159 1683h282l283 -376h-197zM822 -12q-209 0 -300 108q-91 107 -91 359v440h-247v225h540v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#xed;" d="M694 1673h282l-368 -376h-197zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#xee;" d="M440 1673h241l256 -376h-178l-199 225l-198 -225h-178zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
-<glyph unicode="&#xef;" d="M261 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM656 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55 h234v-225h-316z" />
-<glyph unicode="&#xf0;" d="M613 -29q-125 0 -219 41t-158 112q-69 77 -103.5 181t-34.5 229q0 239 129 379q61 66 148 103t199 37q41 0 73 -6t58 -19l-160 219l-312 -119l-55 117l283 109l-158 202h293l92 -116l297 127l66 -123l-277 -117l166 -227q51 -70 86 -135t57 -128q43 -126 43 -278 q0 -137 -34 -246t-101 -186t-162.5 -116.5t-215.5 -39.5zM613 209q57 0 98.5 24.5t67.5 66.5q29 45 43 111t14 145q0 26 -1.5 52.5t-4.5 48.5q-2 17 -7.5 46.5t-11.5 56.5q-33 18 -56 27t-42 14q-51 14 -96 14q-52 0 -95 -18.5t-73 -53.5q-29 -35 -44.5 -86t-15.5 -122 q0 -72 15.5 -133t44.5 -104q59 -89 164 -89z" />
-<glyph unicode="&#xf1;" d="M768 1297q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116 v-641h-291v1120z" />
-<glyph unicode="&#xf2;" d="M199 1596h282l283 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf3;" d="M752 1596h282l-368 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf4;" d="M496 1596h241l256 -299h-178l-199 147l-198 -147h-178zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187 q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf5;" d="M768 1297q-21 0 -36.5 3.5t-30.5 8.5q-23 8 -40 18t-43 27l-67 45q-44 29 -72 29q-31 0 -51 -32t-20 -89v-8h-140v33q0 114 54 183t143 69q37 0 72 -13q20 -8 38 -19t39 -26l62 -43q14 -10 22.5 -14t17.5 -8q19 -8 35 -8q36 0 55 31t19 89v9h140v-8t-1 -9t-1 -8.5v-5.5 q0 -117 -53 -185q-26 -33 -61 -51t-81 -18zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42 zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf6;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5 t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257 q0 -166 60 -259q60 -92 165 -92z" />
-<glyph unicode="&#xf7;" d="M491 889q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249zM66 762h1099v-238h-1099v238zM491 86q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249z" />
-<glyph unicode="&#xf8;" d="M25 2l163 197q-44 72 -67 162t-23 198q0 135 35.5 243.5t104.5 186.5q70 79 166 118.5t211 39.5q42 0 83.5 -5t76.5 -16q33 -10 69.5 -27t70.5 -40l148 176l139 -121l-160 -188q25 -41 42.5 -85.5t27.5 -82.5q11 -42 17 -93t6 -108q0 -131 -35 -239.5t-104 -187.5 q-66 -75 -161 -117t-215 -42q-45 0 -84.5 6t-77.5 17t-72 27t-71 40l-151 -178zM745 860q-25 25 -57 37t-70 12q-106 0 -166 -92q-61 -92 -61 -258q0 -18 0.5 -32.5t1.5 -27.5q1 -12 1.5 -21t4.5 -29zM617 209q106 0 165 93q30 48 45 113t15 138q0 17 -0.5 35t-1.5 29 q-1 9 -3.5 26.5t-5.5 31.5l-348 -413q31 -26 64 -40q32 -13 70 -13z" />
-<glyph unicode="&#xf9;" d="M199 1646h282l283 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="&#xfa;" d="M752 1646h282l-368 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="&#xfb;" d="M496 1646h241l256 -376h-178l-199 225l-198 -225h-178zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z " />
-<glyph unicode="&#xfc;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39 t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
-<glyph unicode="&#xfd;" d="M762 1646h282l-368 -376h-197zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
-<glyph unicode="&#xfe;" d="M150 1556h292v-604q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1982zM647 215q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
-<glyph unicode="&#xff;" d="M341 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727 h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
-<glyph unicode="&#x152;" d="M633 0q-324 0 -444 156q-62 80 -91.5 226t-29.5 363q0 437 121 592q62 80 174 118t270 38h573v-260h-332v-311h302v-260h-302v-402h343v-260h-584zM621 260v973h-52q-63 0 -105.5 -23.5t-63.5 -65.5q-23 -45 -34.5 -140.5t-11.5 -258.5q0 -82 3 -146t9 -112.5t14.5 -83 t19.5 -56.5q23 -46 66.5 -66.5t102.5 -20.5h52z" />
-<glyph unicode="&#x153;" d="M374 -29q-101 0 -167.5 36t-107.5 102q-45 72 -65 185t-20 266q0 156 20.5 268t64.5 183q42 69 110 102.5t168 33.5q95 0 156 -29q62 -29 104 -96q28 60 93 93q64 32 158 32q86 0 149 -29.5t100 -89.5q73 -118 73 -422v-127h-450q0 -143 50 -219q49 -76 145 -76 q33 0 62 8t57 22q29 14 58.5 34.5t61.5 52.5v-244q-50 -44 -111 -65q-62 -21 -144 -21q-102 0 -172 37q-71 37 -118 111q-21 -37 -47.5 -65t-61.5 -47q-68 -36 -166 -36zM385 184q45 0 68.5 18t36.5 49q7 18 13 44t9.5 62.5t5.5 86t2 114.5q0 71 -2 122t-6 87.5t-9.5 60.5 t-12.5 40q-14 34 -39.5 50t-66.5 16q-38 0 -64 -15.5t-41 -50.5q-17 -38 -24 -111.5t-7 -196.5q0 -68 2 -118.5t6 -87t9.5 -62t13.5 -42.5q14 -31 38 -48.5t68 -17.5zM985 690v35q0 57 -5.5 97t-19.5 65q-25 47 -87 47q-34 0 -55 -12.5t-33 -35.5q-11 -22 -18 -60.5 t-7 -112.5v-23h225z" />
-<glyph unicode="&#x178;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
-<glyph unicode="&#x2c6;" d="M496 1638h241l256 -376h-178l-199 225l-198 -225h-178z" />
-<glyph unicode="&#x2dc;" d="M768 1307q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5z" />
-<glyph unicode="&#x2000;" horiz-adv-x="990" />
-<glyph unicode="&#x2001;" horiz-adv-x="1980" />
-<glyph unicode="&#x2002;" horiz-adv-x="990" />
-<glyph unicode="&#x2003;" horiz-adv-x="1980" />
-<glyph unicode="&#x2004;" horiz-adv-x="660" />
-<glyph unicode="&#x2005;" horiz-adv-x="495" />
-<glyph unicode="&#x2006;" horiz-adv-x="330" />
-<glyph unicode="&#x2007;" horiz-adv-x="330" />
-<glyph unicode="&#x2008;" horiz-adv-x="247" />
-<glyph unicode="&#x2009;" horiz-adv-x="396" />
-<glyph unicode="&#x200a;" horiz-adv-x="110" />
-<glyph unicode="&#x2010;" d="M221 746h791v-291h-791v291z" />
-<glyph unicode="&#x2011;" d="M221 746h791v-291h-791v291z" />
-<glyph unicode="&#x2012;" d="M221 746h791v-291h-791v291z" />
-<glyph unicode="&#x2013;" d="M0 690h1233v-246h-1233v246z" />
-<glyph unicode="&#x2014;" d="M0 690h1233v-246h-1233v246z" />
-<glyph unicode="&#x2018;" d="M432 1174l197 382h215l-99 -382v-271h-313v271z" />
-<glyph unicode="&#x2019;" d="M530 1286v270h314v-270l-197 -383h-215z" />
-<glyph unicode="&#x201a;" d="M461 96v271h313v-271l-196 -383h-216z" />
-<glyph unicode="&#x201c;" d="M152 1174l196 382h215l-98 -382v-271h-313v271zM672 1174l196 382h213l-96 -382v-271h-313v271z" />
-<glyph unicode="&#x201d;" d="M248 1286v270h313v-270l-196 -383h-215zM768 1286v270h313v-270l-196 -383h-215z" />
-<glyph unicode="&#x201e;" d="M248 96v271h313v-271l-196 -383h-215zM768 96v271h313v-271l-196 -383h-215z" />
-<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-28 12 -59 32.5t-57 46.5q-25 26 -44 55.5t-33 61.5t-20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q31 -13 60.5 -32.5t54.5 -44.5q24 -24 44.5 -53t35.5 -64q27 -65 27 -137 q0 -74 -27 -138q-12 -29 -31.5 -59t-48.5 -59t-57.5 -47.5t-58.5 -31.5q-29 -12 -64 -20t-76 -8z" />
-<glyph unicode="&#x2026;" d="M87 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM499 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM911 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235z" />
-<glyph unicode="&#x202f;" horiz-adv-x="396" />
-<glyph unicode="&#x2039;" d="M256 535v131l469 393v-238l-276 -221l276 -221v-238z" />
-<glyph unicode="&#x203a;" d="M510 379l278 221l-278 221v238l469 -393v-131l-469 -394v238z" />
-<glyph unicode="&#x205f;" horiz-adv-x="495" />
-<glyph unicode="&#x20ac;" d="M779 -29q-234 0 -380 131q-147 132 -190 381h-203l84 187h96q-1 7 -1 14.5v15.5v2.5t-0.5 6t-0.5 13v23.5v23.5t0.5 13t0.5 5.5v3v15.5t1 15.5h-180l84 189h119q43 248 190 380q73 66 168 98t211 32q44 0 82.5 -4.5t75.5 -13.5q73 -18 141 -54v-328q-74 78 -144 114 q-71 36 -147 36q-57 0 -101 -18t-76 -47q-32 -30 -58 -78t-43 -117h442l-84 -189h-382q-1 -8 -1.5 -16.5t-0.5 -17.5q0 -5 -0.5 -12t-0.5 -33t0.5 -31t0.5 -8v-16.5t1 -16.5h316l-84 -187h-207q24 -126 96 -194q38 -35 82 -51.5t97 -16.5q79 0 150 36q70 36 144 114v-328 q-66 -36 -139 -54q-74 -18 -159 -18z" />
-<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/svg/latin/hack-bolditalic-latin-webfont.svg b/pagure/static/hack_fonts/fonts/svg/latin/hack-bolditalic-latin-webfont.svg
deleted file mode 100755
index 4aa1f74..0000000
--- a/pagure/static/hack_fonts/fonts/svg/latin/hack-bolditalic-latin-webfont.svg
+++ /dev/null
@@ -1,241 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackbold_italic" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M637 1054l71 454h286l-72 -457l-159 -575h-139zM612 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70 t-71.5 -48q-33 -13 -74 -13z" />
-<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
-<glyph unicode="#" d="M199 373h-240l53 215h242l72 293h-240l53 215h242l94 374h221l-94 -374h205l94 374h221l-94 -374h240l-54 -215h-241l-72 -293h240l-54 -215h-241l-94 -373h-222l95 373h-205l-94 -373h-222zM678 588l74 293h-203l-74 -293h203z" />
-<glyph unicode="$" d="M361 0q-3 1 -46.5 7.5t-88.5 17.5q-51 13 -94 29t-93 38l51 262q45 -31 89 -54t89 -40q87 -32 186 -37l68 346q-94 22 -150.5 52t-94.5 70q-39 42 -58.5 92.5t-19.5 116.5q0 85 32 159t96 134q127 118 290 126l48 237h221l-47 -237q-5 -2 33.5 -7t70.5 -11 q33 -6 71 -15.5t78 -23.5l-50 -250q-32 21 -66 36t-65 25q-72 22 -163 25l-64 -314q182 -48 263 -132q41 -42 61 -95t20 -122q0 -89 -32.5 -164.5t-98.5 -135.5q-68 -62 -156.5 -94.5t-157.5 -40.5l-58 -301h-221zM624 1099q-83 -9 -123 -54q-22 -24 -32 -52t-10 -58 q0 -25 6.5 -42t19.5 -31q26 -29 86 -41zM578 227q91 10 141 59q23 23 36 50.5t13 64.5q0 52 -28 83q-29 31 -103 48z" />
-<glyph unicode="%" d="M353 778q-67 0 -130.5 22.5t-113.5 70.5q-43 42 -69.5 102t-26.5 132q0 70 25.5 130t70.5 104q47 46 110.5 69.5t140.5 23.5h9.5t15.5 -1q7 -1 16.5 -2t17.5 -3t14 -3t19 -5q18 -5 24 -7.5t8 -3.5q13 -5 21 -8.5t14.5 -6.5t12 -6.5t13.5 -8.5q29 -18 52 -40t42.5 -48 t33.5 -58q27 -60 27 -128t-25 -125t-76 -105q-22 -20 -50 -38.5t-63 -32.5q-63 -24 -133 -24zM351 943q36 0 68 12q11 4 25.5 11.5t31.5 23.5q26 24 39 52q13 27 13 61q0 69 -51 116q-26 23 -58.5 35t-67.5 12t-68 -11.5t-57 -34.5t-36 -53.5t-12 -62.5q0 -33 12 -62.5 t35 -52.5q22 -21 54.5 -33.5t71.5 -12.5zM22 570l1210 448v-145l-1210 -442v139zM898 0q-71 0 -134 24q-28 11 -56 27.5t-56 42.5q-15 14 -29.5 31.5t-25.5 36.5q-23 37 -33 77q-11 42 -11 88q0 72 27 131t74 103q48 45 110.5 69t135.5 24q72 0 131 -25q30 -13 60 -32.5 t49 -38.5q9 -9 12.5 -13t6.5 -7q1 -2 7.5 -10t8.5 -10q5 -8 6 -9t1 -1.5t1 -2t6 -9.5l14 -22q2 -4 5.5 -12t5.5 -11q8 -17 12.5 -32.5t7.5 -28.5q3 -14 4.5 -31.5t1.5 -33.5q0 -64 -24.5 -124t-71.5 -106q-43 -42 -105.5 -68.5t-140.5 -26.5zM900 165q74 0 124 47 q25 23 37 52t12 61q0 33 -12.5 63.5t-36.5 53.5q-20 20 -51.5 33.5t-73.5 13.5q-35 0 -67 -11.5t-57 -34.5q-50 -47 -50 -117q0 -12 1.5 -21.5t4.5 -20.5t6.5 -20t9.5 -19q4 -6 11.5 -16t16.5 -18q13 -12 26.5 -20t29.5 -14q31 -12 69 -12z" />
-<glyph unicode="&#x26;" d="M387 -29q-92 0 -170.5 26t-136.5 80q-59 55 -86 128.5t-27 156.5q0 161 99 304q51 73 120.5 133.5t163.5 113.5q-14 31 -22.5 56t-15.5 52q-6 24 -9.5 46t-3.5 51q0 88 33 163t100 130q66 54 158 81.5t204 27.5q37 0 71 -3t68 -8q33 -5 65 -13t67 -19l-49 -256 q-54 35 -118 54q-32 10 -64.5 14.5t-64.5 4.5q-48 0 -81 -9t-55 -26q-47 -36 -47 -101q0 -36 19 -93q11 -35 24.5 -67t34.5 -78l221 -480q42 58 66 135q23 75 28 170h235q-10 -156 -71 -282q-60 -125 -168 -217l115 -246h-316l-35 72q-43 -25 -86.5 -44t-88.5 -32 q-88 -25 -177 -25zM473 207q42 0 89 14q23 7 45.5 17t45.5 24l-217 469q-91 -53 -137 -126q-24 -38 -35.5 -80.5t-11.5 -84.5q0 -49 15.5 -91.5t47.5 -75.5t72.5 -49.5t85.5 -16.5z" />
-<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
-<glyph unicode="(" d="M440 -270q-39 82 -70 166t-52 171q-40 163 -40 326q0 149 32.5 292t97.5 289t159 288t227 292h225q-234 -314 -350 -613q-117 -302 -117 -595q0 -71 7 -145t21 -151q15 -81 36.5 -161t48.5 -159h-225v0z" />
-<glyph unicode=")" d="M243 -270q233 313 350 614t117 595q0 71 -7 144.5t-21 151.5q-29 155 -85 319h225q82 -173 122 -336q20 -83 30 -164.5t10 -161.5q0 -146 -32 -291t-97 -291q-64 -144 -161 -289t-226 -291h-225v0z" />
-<glyph unicode="*" d="M230 467l240 368l-361 157l46 130l371 -122l20 420h136l20 -420l371 122l46 -130l-361 -157l240 -368l-117 -84l-267 353l-267 -353z" />
-<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
-<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-12 -38 -30.5 -74.5t-40.5 -65.5q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
-<glyph unicode="-" d="M259 746h789l-56 -291h-788z" />
-<glyph unicode="." d="M614 -42q-76 0 -127 51q-24 24 -37.5 57.5t-13.5 76.5q0 79 51 132q51 51 125 51q76 0 127 -51t51 -134q0 -80 -51 -132q-51 -51 -125 -51z" />
-<glyph unicode="/" d="M852 1493h223l-854 -1683h-221z" />
-<glyph unicode="0" d="M504 -29q-108 0 -183.5 31.5t-125.5 95.5q-48 62 -72.5 154t-24.5 225q0 57 4 103.5t11 94.5q8 59 18 108t24 103q28 106 64.5 196.5t79.5 160.5q16 26 32 48t30 38q33 39 70 70q36 30 77 53q61 34 129.5 51t148.5 17q112 0 187 -32.5t123 -93.5q50 -63 74.5 -156 t24.5 -215q0 -93 -14 -200.5t-43 -216.5q-27 -103 -64.5 -195.5t-79.5 -160.5q-19 -31 -43 -63t-52 -60q-25 -25 -54 -47.5t-60 -39.5q-122 -69 -281 -69zM529 165q22 0 40.5 3t37.5 9q16 5 35 14t36 21q32 22 62.5 58t53.5 81q7 13 16 31.5t19 40.5q9 20 16.5 40t14.5 39 q5 14 9 24.5t7 20.5t6 19.5t7 22.5q5 16 12 43t13 53q5 22 9 39.5t7 32.5t5.5 29.5t5.5 29.5q6 35 10 64.5t6 58.5t3.5 58.5t1.5 53.5q0 17 -0.5 32.5t-1.5 27.5t-2 23t-4 26q-1 5 -4 19t-5 22q-2 6 -6 17.5t-8 18.5q-2 5 -6 11.5t-11 15.5q-11 15 -26 27t-34 20t-42 11.5 t-46 3.5q-42 0 -80.5 -12t-71.5 -35q-38 -26 -67 -62.5t-50 -74.5q-35 -63 -67 -151t-54 -184q-24 -103 -35.5 -201.5t-11.5 -172.5q0 -76 12 -125.5t38 -81.5q49 -61 150 -61zM572 410q-1 0 -1.5 1t-1.5 1h-4q-48 15 -44 131v12q0 3 0.5 6t1.5 7v13v4.5t1 9.5q4 33 6 52.5 t4 32.5t3.5 22.5t3.5 22.5q1 6 3.5 18t5 24.5t5 23t3.5 13.5q4 15 6.5 23.5t4 13t2 5.5t0.5 2q2 8 8 26.5t10 30.5q6 17 14.5 37.5t13.5 31.5q9 21 21 41t25.5 35.5t27 24.5t25.5 9h5q2 0 6 -2q53 -15 48 -128v-1q-1 -4 -1 -12v-14q-2 -32 -12 -102q-5 -25 -9 -46.5 t-7 -32.5q-4 -17 -11 -42t-16 -52t-18.5 -54.5t-18.5 -49.5q-14 -35 -26.5 -60t-25.5 -43q-14 -19 -27.5 -27t-27.5 -8h-3z" />
-<glyph unicode="1" d="M94 260h330l188 969l-321 -76l51 266l326 74h282l-239 -1233h309l-51 -260h-926z" />
-<glyph unicode="2" d="M13 218q4 19 11.5 31.5t21.5 25.5l251 225q28 25 46 40.5t32.5 28.5t29.5 26t37 33q108 97 184.5 174t125 138.5t70.5 110t22 87.5q0 32 -14 61t-42 49t-66.5 30t-86.5 10q-42 0 -89.5 -7.5t-98.5 -21.5q-45 -13 -102 -35t-120 -53l51 267q55 20 110 35.5t106 25.5 q54 11 107 16t98 5q95 0 176 -23t141 -71q56 -44 88.5 -105.5t32.5 -134.5q0 -131 -113.5 -291t-340.5 -353l-40 -34l-317 -248h647l-51 -260h-949z" />
-<glyph unicode="3" d="M421 -29q-51 0 -103.5 4.5t-111.5 14.5q-63 11 -120 24.5t-117 30.5l54 270q50 -24 100.5 -41.5t99.5 -28.5q52 -12 105 -18t102 -6q88 0 144.5 18.5t94.5 50.5t59.5 79.5t21.5 107.5q0 95 -64 143q-32 24 -76.5 36t-95.5 12h-158l52 260h157q123 0 202 56q40 29 58.5 64 t18.5 76q0 70 -57 108q-26 17 -66.5 27.5t-98.5 10.5q-82 0 -181 -21q-51 -11 -103 -26t-107 -35l54 268q54 17 103.5 28.5t97.5 19.5t94.5 12t86.5 4q106 0 189.5 -25t141.5 -71q62 -49 92 -116t30 -144q0 -66 -22.5 -124t-71.5 -109t-115 -81.5t-147 -44.5 q135 -36 200 -118q33 -42 49.5 -94.5t16.5 -122.5q0 -110 -41 -203t-122 -161t-193.5 -101.5t-252.5 -33.5z" />
-<glyph unicode="4" d="M612 322h-594l58 286l735 885h309l-178 -918h164l-49 -253h-164l-62 -322h-282zM662 575l110 578l-483 -578h373z" />
-<glyph unicode="5" d="M387 -29q-47 0 -94.5 4t-95.5 12q-97 17 -191 48l51 266q69 -40 156 -61q43 -11 88 -16t90 -5q90 0 157.5 20t116.5 59q50 40 74.5 93.5t24.5 117.5q0 108 -71 168t-195 60q-73 0 -158 -20q-80 -19 -162 -58l162 834h811l-51 -260h-572l-53 -277q31 13 69 19q36 6 78 6 q99 0 179 -30.5t135 -85.5q56 -56 85.5 -136t29.5 -184q0 -127 -44.5 -233.5t-133.5 -184.5q-88 -78 -210.5 -117t-275.5 -39z" />
-<glyph unicode="6" d="M544 -33q-107 0 -191.5 31.5t-142.5 94.5q-57 63 -85.5 156t-28.5 231q0 100 15 203t46 208q30 103 72.5 192.5t96.5 163.5q49 67 106 118t131 86q71 34 151 50.5t167 16.5q42 0 75 -3.5t68 -11.5q68 -15 145 -45l-51 -268q-38 27 -68 41.5t-62 25.5q-35 11 -70 17t-72 6 q-157 0 -263 -108q-54 -54 -92 -134.5t-61 -183.5q61 66 136 98q76 33 166 33q165 0 263 -111q48 -54 72.5 -129.5t24.5 -179.5q0 -131 -39.5 -236t-114.5 -190q-76 -85 -171.5 -128.5t-222.5 -43.5zM551 207q52 0 98 25.5t81 73.5t54 111.5t19 132.5q0 48 -10.5 84 t-34.5 63q-47 51 -122 51q-56 0 -102 -27.5t-78 -72.5q-36 -51 -54.5 -114t-18.5 -126q0 -50 11 -86t34 -62q21 -24 51.5 -38.5t71.5 -14.5z" />
-<glyph unicode="7" d="M844 1233h-633l51 260h963l-41 -209l-756 -1284h-319z" />
-<glyph unicode="8" d="M502 -29q-106 0 -187 26t-137 74q-115 100 -115 281q0 85 25.5 157t73.5 130t116 99t156 61q-51 14 -90 37.5t-67 60.5q-26 34 -40 77.5t-14 100.5q0 88 36 169t111 147q69 60 160 94.5t200 34.5q90 0 164 -24.5t131 -73.5q54 -47 83 -112t29 -149q0 -145 -89 -248 q-88 -101 -239 -127q108 -28 170 -113q30 -42 45.5 -93t15.5 -119q0 -104 -36.5 -194.5t-111.5 -159.5q-69 -63 -166.5 -99.5t-223.5 -36.5zM653 903q44 0 86 15t74 45q64 60 64 153q0 79 -46 124q-47 44 -126 44q-94 0 -157 -61q-29 -28 -46 -67t-17 -86q0 -35 11 -66 t34 -54q24 -25 55 -36t68 -11zM528 209q54 0 100 19t81 57q34 37 51.5 86t17.5 103q0 49 -14 84t-39 59q-24 23 -60 37t-86 14q-112 0 -182 -75q-35 -37 -53 -86t-18 -102q0 -44 13.5 -81t42.5 -64q28 -26 65 -38.5t81 -12.5z" />
-<glyph unicode="9" d="M345 -31q-42 0 -75.5 3.5t-68.5 11.5q-31 7 -67.5 17.5t-78.5 27.5l51 268q30 -21 62.5 -38.5t68.5 -28.5q35 -11 70 -17t72 -6q156 0 262 109q58 60 94.5 140t59.5 177q-63 -66 -137 -98q-38 -17 -78.5 -25t-85.5 -8q-92 0 -156 31t-106 79q-52 60 -74.5 138.5 t-22.5 168.5q0 130 41 241.5t110 189.5q75 85 177 127.5t222 42.5q109 0 192.5 -33t137.5 -93q113 -123 113 -386q0 -99 -15 -204t-45 -208t-72.5 -193t-96.5 -165q-52 -72 -108.5 -120t-127.5 -82q-73 -35 -152.5 -51t-165.5 -16zM589 739q106 0 179 100q36 50 55 111 t19 128q0 48 -10.5 84.5t-34.5 64.5q-46 53 -122 53q-107 0 -179 -101q-36 -51 -54 -114t-18 -130q0 -54 11 -86.5t34 -58.5q20 -23 48.5 -37t71.5 -14z" />
-<glyph unicode=":" d="M734 747q-40 0 -68 13t-46 33q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14zM620 35q-40 0 -68 13t-46 33 q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14z" />
-<glyph unicode=";" d="M724 698q-38 0 -70.5 13.5t-55.5 39.5q-19 23 -26.5 52t-7.5 60v4.5t1 7.5l2 20q4 20 9.5 38t16.5 38q19 34 48 60q29 24 63 38.5t76 14.5q38 0 70 -13.5t55 -39.5q18 -22 27.5 -49t9.5 -62v-4.5t-1 -7.5l-2 -19q-6 -29 -12 -45t-16 -33q-10 -18 -21 -32t-27 -28 q-17 -15 -32.5 -23.5t-32.5 -16.5q-33 -13 -74 -13zM320 -342l13 6q129 54 205 134.5t101 182.5q-5 -1 -10 -1h-10q-79 0 -122 46q-35 37 -35 93v10q0 6 0.5 12.5t1.5 14.5q6 39 25 71t48 55q18 16 42 25q20 12 45 16q11 2 23 3.5t26 1.5q48 0 84 -19t59 -61 q14 -26 20.5 -56.5t6.5 -59.5q0 -17 -2 -42.5t-5 -47.5q-13 -90 -51 -171t-98 -148q-31 -34 -65.5 -61.5t-74.5 -53.5q-50 -32 -92 -51t-79 -32l-16 -5z" />
-<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
-<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
-<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
-<glyph unicode="?" d="M531 585q12 83 55 152q24 39 57.5 75t84.5 79l104 89q36 31 61.5 56.5t38.5 44.5q28 40 36 86q1 3 1 9q1 3 1 8t1 8v7q0 29 -10.5 54.5t-30.5 44.5q-25 24 -66 38q-20 7 -43 10t-46 3q-43 0 -85.5 -9.5t-83.5 -24.5q-49 -18 -98.5 -43.5t-101.5 -57.5l-28 -17l36 228l7 3 q13 8 34.5 18.5t34.5 16.5q16 8 34.5 15.5t34.5 13.5q17 7 31 11.5t37 10.5q48 13 97 21t109 8q105 0 175 -26t119 -74q16 -15 26 -28.5t18 -29.5q18 -32 27 -68q5 -18 7 -37t2 -33t-2 -35.5t-4 -38.5q-10 -76 -59 -148q-14 -21 -28 -37.5t-33 -36.5q-23 -25 -44 -44 t-49 -42l-102 -86q-5 -4 -13.5 -11.5t-18 -16.5t-18.5 -17.5t-16 -15.5q-11 -11 -21 -23.5t-15 -20.5q-12 -18 -19.5 -38.5t-10.5 -38.5l-8 -47l-14 -93h-220zM556 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5 t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
-<glyph unicode="@" d="M599 -319q-137 0 -250.5 48.5t-195.5 142.5q-84 96 -125.5 225.5t-41.5 289.5q0 163 44 322q23 81 55.5 156t72.5 139q115 185 284 289q81 50 170.5 76t186.5 26t176.5 -26t136.5 -76q61 -54 89 -123.5t28 -146.5q0 -13 -0.5 -31t-2.5 -32q-1 -10 -3.5 -24t-8.5 -44 l-147 -757h-197l17 82q-42 -48 -99 -75q-35 -17 -66 -22t-58 -5q-66 0 -120 22.5t-93 65.5q-42 46 -61 108t-19 137q0 109 34.5 206t92.5 167q65 78 146.5 115t165.5 37q35 0 66 -6t57 -18q27 -13 47.5 -32t33.5 -40q5 17 8.5 34t5.5 34t3 32.5t1 26.5q0 50 -16 87t-45 62 t-72.5 39t-100.5 14q-58 0 -116.5 -15.5t-115.5 -47.5t-107 -78t-94 -104q-51 -67 -84.5 -136.5t-54.5 -134.5q-48 -149 -48 -302q0 -113 28 -210t89 -169q58 -69 138.5 -104.5t180.5 -35.5q79 0 160 24t162 72l63 -174q-105 -56 -202 -84q-43 -12 -93.5 -19t-104.5 -7z M724 301q51 0 96 24t78 67q35 46 53 105t18 119q0 45 -10 74.5t-30 51.5q-41 44 -112 44q-51 0 -95.5 -22.5t-79.5 -66.5q-35 -45 -53 -101.5t-18 -114.5q0 -38 8.5 -73t31.5 -61q17 -20 45.5 -33t67.5 -13z" />
-<glyph unicode="A" d="M582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="B" d="M270 1495h482q210 0 319 -83q107 -83 107 -248q0 -159 -95 -259t-270 -119q66 -5 122 -28t94 -62q39 -40 58 -95t19 -121q0 -48 -9.5 -98.5t-28.5 -97.5q-18 -45 -45 -85t-62 -72q-74 -67 -190 -97t-310 -30h-481zM639 913q122 0 183 55q29 26 45 64.5t16 90.5 q0 40 -10.5 64.5t-32.5 40.5q-44 32 -133 32h-197l-68 -347h197zM508 236q157 0 230 67q37 34 55 85t18 113q0 54 -13.5 85t-39.5 51q-53 41 -164 41h-197l-86 -442h197z" />
-<glyph unicode="C" d="M598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q130 57 283 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5 q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z " />
-<glyph unicode="D" d="M283 1493h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -57t-12 -52.5q-20 -81 -44 -146t-46 -110q-29 -60 -62 -103.5t-62 -72.5q-45 -44 -102.5 -77.5t-123.5 -53.5q-127 -40 -349 -40h-330zM434 266 q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-186 -961h96z" />
-<glyph unicode="E" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="F" d="M338 1493h930l-51 -260h-635l-62 -332h578l-51 -260h-578l-127 -641h-295z" />
-<glyph unicode="G" d="M611 -29q-128 0 -220.5 38t-155.5 106q-70 76 -101.5 181t-31.5 232q0 96 17.5 204.5t54.5 216.5q32 94 80.5 183t112.5 162q45 51 101.5 94.5t126.5 74.5q130 57 281 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-66 -328q-51 67 -120 102q-70 35 -149 35 q-39 0 -73 -8t-63 -21q-30 -14 -58.5 -34.5t-57.5 -52.5q-23 -25 -41 -52t-35 -58q-16 -29 -31 -63t-29 -77q-15 -45 -28 -94.5t-21 -94.5q-17 -94 -17 -169q0 -82 18.5 -136.5t45.5 -87.5q34 -42 80.5 -60t100.5 -18q19 0 34.5 2t32.5 7q12 3 26 8t29 16l57 291h-206 l49 248h460l-139 -709q-72 -60 -168 -91q-99 -32 -212 -32z" />
-<glyph unicode="H" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
-<glyph unicode="I" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="J" d="M411 -29q-55 0 -111 6.5t-108 19.5q-46 11 -100.5 31.5t-111.5 49.5l65 344q78 -96 167 -143q88 -48 194 -48q112 0 169 54q29 27 49.5 74t34.5 120l148 754h-361l52 260h655l-199 -1014q-17 -88 -35.5 -150.5t-38.5 -105.5q-20 -42 -46.5 -77t-61.5 -64t-74.5 -49 t-83.5 -34q-46 -14 -97 -21t-106 -7z" />
-<glyph unicode="K" d="M270 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
-<glyph unicode="L" d="M371 1493h295l-240 -1233h631l-51 -260h-926z" />
-<glyph unicode="M" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
-<glyph unicode="N" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
-<glyph unicode="O" d="M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 60.5 198t74.5 160q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q13 37 22 69t20 78q15 63 25.5 115t18.5 101q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-13 -52 -24.5 -107.5t-19.5 -106.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="P" d="M305 1493h420q236 0 360 -91q63 -47 93 -114t30 -159q0 -51 -9 -107t-27 -113q-19 -59 -42.5 -101.5t-52.5 -76.5q-77 -90 -194 -131t-301 -41h-164l-109 -559h-295zM610 807q75 0 129.5 18t89.5 50q36 34 54 84.5t18 111.5q0 98 -52 136q-53 38 -177 38h-121l-84 -438 h143z" />
-<glyph unicode="Q" d="M535 -29h-27q-109 0 -192 31.5t-140 92.5q-60 65 -87.5 158.5t-27.5 220.5q0 88 12.5 190t37.5 206t59 195t74 161q38 66 87 122t117 97q60 36 131 55.5t153 19.5q106 0 187.5 -32t137.5 -91q62 -66 88 -156.5t26 -216.5q0 -83 -11.5 -183.5t-37.5 -213.5 q-23 -100 -56.5 -195t-75.5 -170q-21 -37 -43 -66.5t-45 -54.5q-53 -56 -126 -102l239 -320h-344zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q11 21 23 50t23 60q21 60 42 147q16 65 26 116.5t18 99.5q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-16 -64 -26 -114.5t-18 -99.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="R" d="M294 1493h410q231 0 344 -87q54 -42 83 -108t29 -165q0 -90 -24.5 -164t-73.5 -131q-98 -114 -279 -133q60 -9 95 -45q34 -36 61 -123l164 -537h-301l-106 376l-8 27q-31 101 -68.5 144t-89.5 43h-117l-115 -590h-295zM585 838q70 0 121 16.5t84 47.5q35 32 52 79t17 103 q0 86 -46 123q-47 38 -138 38h-133l-80 -407h123z" />
-<glyph unicode="S" d="M469 -29q-58 0 -113.5 6.5t-112.5 19.5q-60 14 -118 33.5t-121 45.5l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5 q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41q-37 -29 -55.5 -65.5t-18.5 -69.5q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72 t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-78 -66 -187.5 -101.5t-246.5 -35.5z" />
-<glyph unicode="T" d="M563 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
-<glyph unicode="U" d="M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 18 3.5 30t3 23.5t4 23.5t6.5 30l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-75 -73 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="V" d="M203 1493h291l24 -1251l506 1251h301l-645 -1493h-412z" />
-<glyph unicode="W" d="M143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
-<glyph unicode="X" d="M471 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
-<glyph unicode="Y" d="M432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="Z" d="M4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
-<glyph unicode="[" d="M649 1651h455l-28 -173h-240l-251 -1590h240l-28 -173h-455z" />
-<glyph unicode="\" d="M340 1493h203l198 -1683h-202z" />
-<glyph unicode="]" d="M373 -112h240l251 1589h-240l28 173h455l-307 -1935h-455z" />
-<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
-<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
-<glyph unicode="`" d="M371 1638h284l209 -376h-198z" />
-<glyph unicode="a" d="M379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19 t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66 t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="b" d="M651 -29q-58 0 -102.5 17t-78.5 46t-57 71t-32 102l-70 -207h-264l303 1556h293l-119 -604q63 96 146 146q42 25 86.5 37t91.5 12q71 0 130.5 -27t102.5 -82q45 -57 64.5 -135t19.5 -171q0 -58 -7.5 -123t-22.5 -130q-13 -54 -34.5 -116t-51.5 -119q-34 -63 -78 -114.5 t-95 -86.5t-108.5 -53.5t-116.5 -18.5zM599 209q57 0 106.5 37.5t86.5 104.5q38 69 58 155.5t20 175.5q0 60 -10 100.5t-31 68.5q-42 56 -115 56q-53 0 -104.5 -33t-93.5 -105q-39 -67 -60.5 -153t-21.5 -172q0 -63 11.5 -105t32.5 -70q22 -29 53 -44.5t68 -15.5z" />
-<glyph unicode="c" d="M621 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145 t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
-<glyph unicode="d" d="M382 -29q-144 0 -230 110q-43 55 -64.5 129.5t-21.5 175.5q0 60 7.5 124t23.5 129t39 126.5t48 108.5q32 61 76 112.5t98 89.5q104 73 223 73q111 0 185 -63q34 -29 57 -73t31 -102l125 645h293l-303 -1556h-262l2 166q-66 -96 -148 -145q-83 -50 -179 -50zM517 211 q57 0 107 34.5t92 104.5t62.5 153t20.5 171q0 66 -11.5 106.5t-33.5 69.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102.5t31.5 -66.5q42 -56 113 -56z" />
-<glyph unicode="e" d="M583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q115 54 250 54q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759 q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="f" d="M456 895h-273l43 225h273l16 78q23 114 56.5 182t77.5 103q46 36 126.5 54.5t204.5 18.5h240l-43 -225h-230q-66 0 -94 -27q-14 -14 -25.5 -41.5t-19.5 -66.5l-16 -76h344l-43 -225h-344l-174 -895h-293z" />
-<glyph unicode="g" d="M386 -424q-99 0 -190 15q-46 8 -90 19t-88 25l54 265q76 -46 158 -68q42 -11 83.5 -16.5t82.5 -5.5q66 0 115 14.5t84 43.5q39 32 60 77.5t33 105.5l27 133q-54 -83 -131 -125q-77 -43 -175 -43q-76 0 -137.5 25t-110.5 80q-48 54 -70.5 123t-22.5 163q0 65 10.5 135 t31.5 141q23 76 52 137.5t63 111.5q71 103 171 161t206 58q105 0 172 -55t88 -158l64 182h264l-203 -1036q-26 -135 -72 -233.5t-119 -159.5q-137 -115 -410 -115zM521 246q55 0 106 33.5t93 99.5q42 67 62.5 148t20.5 162q0 51 -9 93.5t-32 72.5q-22 29 -51 41.5t-62 12.5 q-57 0 -108.5 -34.5t-90.5 -97.5q-42 -66 -62.5 -148.5t-20.5 -163.5q0 -51 9 -93t31 -71q41 -55 114 -55z" />
-<glyph unicode="h" d="M362 1556h291l-116 -604q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5 q-29 30 -83 30q-45 0 -80 -19t-62 -52q-30 -37 -50.5 -89t-33.5 -118l-121 -629h-293z" />
-<glyph unicode="i" d="M615 1323q-28 0 -28 25q0 5 1 8l56 282q4 27 32 27h233q28 0 28 -25q0 -5 -1 -8l-56 -282q-5 -27 -32 -27h-233zM732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763 q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="j" d="M763 1323q-15 0 -22.5 9t-4.5 24l55 282q4 27 32 27h233q15 0 22.5 -9t4.5 -24l-55 -282q-5 -27 -32 -27h-233zM22 -199h231q100 0 151 53q29 30 46.5 79t29.5 110l166 852h-297l43 225h590l-209 -1077q-10 -50 -18.5 -87.5t-16.5 -66t-15 -49t-14 -36.5 q-30 -71 -77 -118q-30 -30 -66 -50.5t-75 -33.5q-40 -13 -90.5 -19.5t-116.5 -6.5h-307z" />
-<glyph unicode="k" d="M363 1556h293l-152 -782l404 346h370l-505 -418l313 -702h-311l-222 524l-116 -96l-82 -428h-293z" />
-<glyph unicode="l" d="M690 -10q-107 0 -177 14t-113 43q-41 27 -63 70.5t-22 108.5q0 17 1.5 33t3.5 31q2 10 5.5 33.5t8.5 45.5l203 962h-306l43 225h598l-249 -1201q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297 v0z" />
-<glyph unicode="m" d="M184 1120h192l-1 -116q41 69 102 106q59 37 129 37t113 -37q43 -38 51 -102q31 64 96 102q64 37 138 37q48 0 85 -14.5t63 -40.5q29 -30 41.5 -71.5t12.5 -89.5q0 -17 -1.5 -40.5t-3.5 -47.5q-3 -27 -9.5 -62t-11.5 -62l-140 -719h-239l139 719q5 23 8 41t6 41q2 15 3 27 t1 20q0 23 -5 37t-12 22q-18 21 -52 21q-48 0 -76 -45q-15 -24 -27.5 -64.5t-23.5 -99.5l-139 -719h-240l141 719q2 12 6.5 35.5t6.5 39.5q2 17 3 29.5t1 21.5q0 41 -18 62t-52 21q-47 0 -74 -43q-16 -25 -28 -65.5t-23 -100.5l-139 -719h-240z" />
-<glyph unicode="n" d="M276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q4 20 5.5 34t2.5 19q1 13 1.5 25.5t0.5 22.5q0 29 -6.5 53t-22.5 41q-29 30 -83 30 q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
-<glyph unicode="o" d="M543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5 t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="p" d="M264 1120h264l-4 -168q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
-<glyph unicode="q" d="M709 166q-64 -96 -146 -145q-83 -50 -178 -50q-70 0 -129.5 27.5t-102.5 82.5t-64 132t-21 174q0 58 7.5 122.5t23.5 129.5q31 129 88 235q35 64 76.5 114.5t95.5 88.5q104 72 221 72q57 0 104 -16.5t80 -45.5t57 -73t33 -103l68 209h264l-301 -1546h-291zM519 211 q116 0 198 139q41 69 61.5 151.5t20.5 172.5q0 59 -10 101.5t-35 74.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102t31.5 -66t49 -42.5t66 -14.5z" />
-<glyph unicode="r" d="M343 1120h264l-6 -174q62 96 161 149q98 52 217 52q63 0 119 -15q55 -15 99 -42l-53 -275q-26 23 -53.5 39t-53.5 25q-30 11 -65.5 15.5t-71.5 4.5q-78 0 -141 -21t-110 -67q-44 -43 -77 -116t-53 -179l-100 -516h-295z" />
-<glyph unicode="s" d="M501 -29q-53 0 -108 4.5t-100 12.5q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5 t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26q-55 -35 -55 -93q0 -46 37 -73q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5 t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-70 -53 -168 -78.5t-215 -25.5z" />
-<glyph unicode="t" d="M707 -5q-106 0 -176 14t-113 43q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5q0 -43 30 -61q29 -19 109 -19h225 l-43 -225h-245v0z" />
-<glyph unicode="u" d="M372 -29q-128 0 -197 71q-69 70 -69 202q0 14 1 30t3 34q1 3 4 28.5t9 54.5l143 729h291l-131 -684q-2 -13 -3.5 -24.5t-3.5 -28.5q-2 -16 -2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120 h-264l4 166q-24 -50 -56.5 -83.5t-72.5 -58.5q-46 -29 -91.5 -41t-95.5 -12z" />
-<glyph unicode="v" d="M172 1120h283l80 -878l389 878h307l-551 -1120h-369z" />
-<glyph unicode="w" d="M96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
-<glyph unicode="x" d="M436 594l-258 526h301l148 -317l268 317h332l-477 -553l278 -567h-299l-170 356l-303 -356h-332z" />
-<glyph unicode="y" d="M-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
-<glyph unicode="z" d="M94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
-<glyph unicode="{" d="M644 -334q-105 0 -171 14t-108 40t-63.5 68.5t-21.5 110.5q0 13 1 24t3 28q0 3 1.5 12t3.5 20.5t4 25t5 26.5l43 215q1 4 2.5 13t3.5 20.5t4 23.5t3 21q2 17 3 28.5t1 20.5q0 42 -15.5 67.5t-47.5 41.5q-27 14 -73 22t-109 8h-62l37 191h91q143 0 207 55t94 211l41 215 q22 115 56.5 188t80.5 108q93 72 353 72h149l-36 -190h-123q-56 0 -91.5 -11t-57.5 -32q-23 -22 -40 -65.5t-31 -118.5l-38 -209q-14 -78 -38 -138t-57 -96q-61 -67 -192 -84q96 -21 137 -64q20 -20 30.5 -48.5t10.5 -71.5q0 -11 -1 -29t-3 -35q-2 -13 -4.5 -30t-7.5 -43 l-41 -205q-3 -13 -4.5 -21t-3 -15t-2.5 -15.5t-3 -22.5l-3 -25.5t-1 -18.5q0 -32 8.5 -52.5t25.5 -33.5q34 -25 114 -25h121l-37 -191h-148v0z" />
-<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
-<glyph unicode="}" d="M56 -143h123q48 0 86.5 11t60.5 32q45 43 72 186l39 205q15 79 38.5 138t56.5 95q62 68 192 88q-95 16 -136 58q-42 42 -42 122q0 11 1 26.5t3 33.5q2 11 5 34.5t7 43.5l41 209q5 18 7.5 35t5.5 40q2 15 3 22t1 11t-0.5 5t-0.5 5q0 28 -8 50t-25 35q-33 24 -114 24h-121 l37 190h147q204 0 287 -48q42 -24 62 -65t20 -92q0 -49 -20 -149l-3 -15l-41 -215q-3 -16 -5.5 -32.5t-4.5 -28.5q-2 -16 -3 -26.5t-1 -20.5q0 -53 18.5 -80t44.5 -42q62 -35 178 -35h62l-37 -191h-92q-141 0 -206 -58q-67 -59 -95 -208l-41 -215q-42 -222 -142 -295 q-100 -74 -347 -74h-150z" />
-<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M696 1198q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM455 655l112 357h199 l-25 -357l-127 -655h-286z" />
-<glyph unicode="&#xa2;" d="M506 -25q-195 23 -298 141q-52 60 -78 138.5t-26 183.5q0 77 14 148.5t41 140.5q29 72 69 134t87 110q37 38 83 71t105 57q51 21 109 33t121 13l55 287h142l-55 -287q27 -2 55.5 -7t54.5 -13q57 -17 117 -48l-53 -264q-23 20 -48.5 36.5t-51.5 27.5q-52 22 -119 30 l-135 -692q32 2 64.5 9.5t64.5 18.5q34 12 65 28t63 36l-51 -264q-61 -31 -125 -48q-65 -17 -129 -20l-55 -288h-141zM688 907q-136 -15 -229 -145q-46 -64 -70 -139t-24 -160q0 -60 13 -102.5t39 -75.5q25 -32 57.5 -50t77.5 -20z" />
-<glyph unicode="&#xa3;" d="M29 260h235l64 334h-199l45 225h199l37 197q26 137 71 232.5t108 153.5q64 60 156 89t207 29q80 0 150 -16q73 -17 143 -48l-53 -266q-29 20 -61 36.5t-58 25.5t-58 14.5t-63 5.5q-105 0 -168 -67q-31 -33 -54.5 -84.5t-37.5 -125.5l-33 -176h336l-43 -225h-338l-63 -334 h481l-51 -260h-1004z" />
-<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
-<glyph unicode="&#xa5;" d="M383 438h-412l37 189h408l-58 151h-321l37 187h223l-170 528h317l174 -600l408 600h317l-374 -528h223l-37 -187h-321l-115 -151h407l-36 -189h-412l-86 -438h-293z" />
-<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
-<glyph unicode="&#xa7;" d="M458 -195q-79 0 -167 15q-91 15 -187 45l46 229q35 -16 72.5 -28.5t80.5 -21.5q82 -17 150 -17q91 0 137 34q23 17 35 41.5t12 48.5q0 39 -34.5 80t-117.5 97l-18 12l-100 68q-52 35 -88.5 65t-60.5 65q-18 26 -29 57.5t-11 73.5q0 95 61 171q30 38 74 70t101 57 q-51 40 -75 90q-12 25 -18 52.5t-6 62.5q0 154 118 251q56 46 131 71.5t175 25.5q73 0 153 -15q81 -15 167 -45l-45 -229q-34 17 -68.5 30t-64.5 21q-33 8 -65.5 12t-62.5 4q-87 0 -133 -34q-47 -35 -47 -95q0 -44 31 -79q20 -23 53.5 -47.5t85.5 -57.5l105 -67 q95 -60 142 -127q23 -32 32.5 -65.5t9.5 -69.5q0 -86 -55 -160q-29 -38 -71 -73t-99 -69q24 -23 40.5 -47t26.5 -47q21 -50 21 -111q0 -77 -30.5 -140.5t-88.5 -109.5q-57 -45 -137.5 -69.5t-180.5 -24.5zM682 451q55 38 88 83q17 24 24 44.5t7 40.5q0 35 -19 66 q-9 15 -22.5 29.5t-30.5 26.5l-80 54q-2 0 -12 7.5t-29 20.5l-78 54q-29 -21 -51.5 -44t-37.5 -44q-17 -24 -24 -44.5t-7 -40.5q0 -35 18 -65t55 -55l78 -54l51 -34q15 -10 24 -15.5t15.5 -10t13.5 -9t17 -10.5z" />
-<glyph unicode="&#xa8;" d="M449 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM844 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
-<glyph unicode="&#xaa;" d="M511 698q-111 0 -173 61q-64 61 -64 167q0 71 27 128t85 99q112 80 319 80h135l6 35q2 4 2 7v11q0 40 -36 61q-19 11 -45.5 16t-58.5 5t-64 -5t-69 -15q-36 -10 -73 -23.5t-84 -34.5l33 174q79 28 152 42q35 7 69.5 10.5t70.5 3.5q67 0 125.5 -12.5t100.5 -38.5 q44 -27 63 -65.5t19 -85.5q0 -10 -1 -28t-3 -35q-2 -19 -6.5 -44.5t-8.5 -45.5l-88 -448h-207l19 88q-25 -29 -50 -47.5t-57 -32.5q-63 -27 -138 -27zM598 838q38 0 73.5 16.5t63.5 48.5q26 29 46 75t30 109h-80q-122 0 -180 -36q-29 -18 -44 -45.5t-15 -62.5q0 -47 29 -76 q14 -14 32.5 -21.5t44.5 -7.5zM246 598h688l-35 -170h-688z" />
-<glyph unicode="&#xab;" d="M78 535l24 131l547 393l-47 -238l-319 -221l233 -221l-45 -238zM532 535l25 131l545 393l-45 -238l-320 -221l234 -221l-45 -238z" />
-<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
-<glyph unicode="&#xad;" d="M299 735h629l-56 -291h-628z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
-<glyph unicode="&#xaf;" d="M459 1556h631l-37 -188h-631z" />
-<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
-<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
-<glyph unicode="&#xb2;" d="M289 1261q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q109 78 185 138.5t124 106.5t69.5 80t21.5 58q0 16 -9 33.5t-27 30.5q-35 24 -104 24q-30 0 -64.5 -4.5t-71.5 -13.5q-38 -9 -77 -22.5t-75 -30.5l31 162q38 11 75 20t74 15q73 12 145 12q69 0 124.5 -12.5 t97.5 -41.5q41 -29 59.5 -67t18.5 -74q0 -41 -23.5 -86t-73.5 -98.5t-127.5 -116t-185.5 -138.5q-13 -9 -18 -12.5t-12.5 -8.5t-23 -16t-50.5 -36h438l-28 -145h-664z" />
-<glyph unicode="&#xb3;" d="M569 1103q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5z" />
-<glyph unicode="&#xb4;" d="M887 1638h321l-442 -376h-197z" />
-<glyph unicode="&#xb5;" d="M246 1120h289l-132 -680q-2 -8 -4.5 -20.5t-4.5 -31.5q-3 -24 -3 -42q0 -64 34 -98q17 -17 40.5 -26t55.5 -9q81 0 132 56q52 56 74 171l131 680h289l-150 -776q-2 -17 -3.5 -27t-2.5 -15t-1 -6.5v-2.5q-2 -10 -2.5 -16t-0.5 -13q0 -23 11 -37t30 -14q12 0 27 6 q5 2 14.5 7t20.5 12l-43 -222q-28 -14 -47 -21.5t-39 -12.5t-39 -8t-39 -3q-38 0 -64 10t-44 28q-38 38 -50 120q-52 -79 -114 -118q-29 -19 -61 -29.5t-71 -10.5q-59 0 -96 24q-38 24 -53 71l-97 -494h-288z" />
-<glyph unicode="&#xb6;" d="M457 649q-171 18 -263 104q-46 43 -69 99t-23 134q0 103 40.5 194t122.5 166q162 147 407 147h518l-328 -1690h-190l301 1543h-191l-299 -1543h-190z" />
-<glyph unicode="&#xb7;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
-<glyph unicode="&#xb8;" d="M349 -401q-26 0 -54.5 2t-45.5 4q-6 1 -19.5 3t-28.5 5t-29.5 6t-21.5 6l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-6 16 -17 39t-27 51h141q36 -49 54 -94q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5 q-37 -29 -90.5 -44t-120.5 -15z" />
-<glyph unicode="&#xb9;" d="M315 1265h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657z" />
-<glyph unicode="&#xba;" d="M634 698q-78 0 -137 21t-103 63q-45 42 -66 101t-21 144q0 103 30 193t90 160q119 140 313 140q154 0 241 -84q43 -42 64.5 -100t21.5 -145q0 -100 -29.5 -190.5t-89.5 -162.5q-62 -73 -140.5 -106.5t-173.5 -33.5zM649 862q45 0 82.5 25.5t64.5 69.5q30 49 45 110 t15 121q0 38 -7 71t-27 56q-17 20 -41.5 30.5t-52.5 10.5q-46 0 -83.5 -25.5t-64.5 -69.5q-32 -51 -46 -112.5t-14 -116.5q0 -47 9 -77t25 -50q17 -20 41 -31.5t54 -11.5zM254 598h688l-33 -170h-688z" />
-<glyph unicode="&#xbb;" d="M127 379l322 221l-234 221l45 238l393 -393l-26 -131l-545 -394zM582 379l321 221l-233 221l45 238l393 -393l-27 -131l-544 -394z" />
-<glyph unicode="&#xbc;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
-<glyph unicode="&#xbd;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM443 -129q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q107 77 183 137t124 106.5t70.5 80.5t22.5 59q0 16 -9 33.5t-27 30.5q-35 24 -104 24 q-30 0 -64.5 -4.5t-71.5 -13.5q-41 -10 -78 -23t-74 -30l31 162q38 11 75 20t74 15q73 12 144 12t128 -13t96 -41q40 -29 58.5 -67.5t18.5 -73.5q0 -80 -99.5 -186.5t-310.5 -252.5q-12 -8 -21.5 -14.5t-20.5 -14.5t-25.5 -18t-36.5 -26h438l-28 -145h-664z" />
-<glyph unicode="&#xbe;" d="M342 809q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
-<glyph unicode="&#xbf;" d="M732 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM454 -27q-85 0 -150 20.5t-115 62.5q-99 82 -99 216 q0 96 49 178q25 42 67.5 88.5t98.5 92.5l105 86l8 7q66 58 102.5 116t50.5 129l23 123h266l-29 -154q-10 -52 -24.5 -91.5t-36.5 -74.5q-26 -42 -60.5 -77.5t-78.5 -73.5l-105 -93l-15 -13q-68 -59 -104 -105.5t-36 -88.5q0 -20 9 -42.5t28 -38.5t45 -23.5t64 -7.5 q46 0 93 10t96 27t103.5 43.5t114.5 64.5l-52 -268q-100 -55 -208 -84t-210 -29z" />
-<glyph unicode="&#xc0;" d="M500 1852h264l143 -264h-178zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc1;" d="M862 1852h281l-320 -264h-207zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc2;" d="M639 1852h348l151 -264h-169l-164 161l-230 -161h-180zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc3;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-14 11 -22.5 16 t-19.5 10q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc4;" d="M487 1613q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM883 1613q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM582 1493h360l113 -1493h-293l-14 369h-400 l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
-<glyph unicode="&#xc5;" d="M547 1421q-36 36 -57 89q-21 52 -21 108q0 115 84 199q40 40 88.5 62t111.5 22q117 0 201 -84t84 -199q0 -32 -6 -61.5t-17 -53.5q-12 -28 -29.5 -52t-37.5 -42l107 -1409h-295l-21 369h-395l-162 -369h-295zM754 1485q54 0 93 39q38 38 38 92t-39 93q-40 38 -92 38 q-54 0 -92 -38q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q39 -39 93 -39zM729 612l-20 611l-258 -611h278z" />
-<glyph unicode="&#xc6;" d="M502 1493h809l-51 -260h-291l-60 -311h260l-51 -260h-260l-78 -402h310l-52 -260h-563l72 362h-283l-155 -362h-259zM592 598l125 635h-80l-272 -635h227z" />
-<glyph unicode="&#xc7;" d="M1038 1502q35 -8 75.5 -21.5t79.5 -32.5l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77 q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-22 -5 -43.5 -8.5t-43.5 -5.5q22 -35 36 -69q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156 q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 28t-18 36q-91 8 -167.5 41t-132.5 93q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 139.5 43t149.5 14 q42 0 78.5 -4.5t76.5 -13.5z" />
-<glyph unicode="&#xc8;" d="M527 1853h264l143 -264h-178zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xc9;" d="M899 1852h281l-320 -264h-207zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xca;" d="M666 1853h348l151 -264h-169l-164 161l-230 -161h-180zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xcb;" d="M514 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM910 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM317 1493h932l-51 -260h-635l-63 -322h575 l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
-<glyph unicode="&#xcc;" d="M496 1853h264l143 -264h-178zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xcd;" d="M858 1853h281l-320 -264h-207zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xce;" d="M645 1853h348l151 -264h-169l-164 161l-230 -161h-180zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xcf;" d="M493 1606q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM889 1606q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
-<glyph unicode="&#xd0;" d="M151 664h-137l47 237h135l117 592h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -56.5t-12 -53q-20 -81 -44 -146t-46 -110q-30 -62 -62 -104.5t-62 -71.5q-48 -47 -105.5 -79t-120.5 -52 q-69 -21 -154.5 -30.5t-194.5 -9.5h-330zM464 266q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-63 -326h211l-45 -237h-211l-78 -398h96z" />
-<glyph unicode="&#xd1;" d="M452 1588q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
-<glyph unicode="&#xd2;" d="M510 1852h264l143 -264h-178zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd3;" d="M872 1852h281l-320 -264h-207zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd4;" d="M629 1852h348l151 -264h-169l-164 161l-230 -161h-180zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94 q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112 t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45 t68.5 -14z" />
-<glyph unicode="&#xd5;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18 q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5 t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175 q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd6;" d="M487 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM883 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60 q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
-<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
-<glyph unicode="&#xd8;" d="M-141 51l219 244q-5 21 -7.5 37t-4.5 34q-2 19 -3.5 37t-1.5 51q0 94 12 200t37 211q23 100 57 193t77 169q39 69 89 124.5t114 93.5t137 56.5t148 18.5q104 0 187 -33q82 -33 144 -98l154 170l139 -115l-205 -227q6 -32 9.5 -56.5t5.5 -47.5q2 -25 3.5 -45t1.5 -46 t-1.5 -63t-5.5 -72q-2 -14 -4 -32.5t-5 -39l-6 -41t-6 -37.5q-5 -30 -12.5 -64t-15.5 -68t-17 -66t-18 -59q-17 -52 -39.5 -107t-51.5 -108q-42 -74 -93.5 -129t-109.5 -90q-63 -38 -135.5 -56.5t-150.5 -18.5q-110 0 -196 37q-88 38 -144 109l-160 -180zM852 1153 q-9 27 -23.5 47.5t-31.5 32.5q-20 15 -44 21t-47 6q-65 0 -112.5 -39t-83.5 -108q-38 -72 -70.5 -189t-60.5 -295zM525 233q127 0 204 153q38 76 70.5 203.5t58.5 299.5l-483 -535q18 -60 57 -90q18 -14 40 -22.5t53 -8.5z" />
-<glyph unicode="&#xd9;" d="M496 1852h264l143 -264h-178zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xda;" d="M868 1854h281l-320 -264h-207zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xdb;" d="M645 1855h348l151 -264h-169l-164 161l-230 -161h-180zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45 q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xdc;" d="M493 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM889 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
-<glyph unicode="&#xdd;" d="M868 1852h281l-320 -264h-207zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#xde;" d="M307 1493h295l-47 -227h127q235 0 360 -92q63 -47 93 -114t30 -158q0 -51 -9 -107t-27 -112q-19 -58 -42.5 -100.5t-52.5 -76.5q-44 -52 -91.5 -82t-102.5 -50q-59 -21 -130.5 -31.5t-170.5 -10.5h-164l-64 -332h-295zM569 580q147 0 217 67q36 34 54 83.5t18 112.5 q0 55 -13 87t-39 50q-26 19 -68.5 28.5t-106.5 9.5h-121l-86 -438h145z" />
-<glyph unicode="&#xdf;" d="M666 -29q-40 0 -70 3.5t-61 9.5q-39 8 -67.5 16t-61.5 20l49 250q29 -16 57 -27.5t55 -19.5q51 -16 102 -16q42 0 77.5 10t61.5 30t39 46t13 54q0 41 -27.5 84.5t-83.5 99.5l-6 6l-69 71q-45 46 -65 97q-21 51 -21 112q0 132 92 227q91 93 260 130v16q0 29 -10.5 55 t-34.5 45q-46 35 -125 35q-95 0 -152 -51t-77 -152l-219 -1122h-293l219 1126q21 109 64 188.5t109 134.5q131 110 346 110q97 0 170.5 -21.5t122.5 -65.5t73 -109.5t24 -147.5q0 -29 -3 -64t-8 -86l-1 -6q-73 -4 -128 -19.5t-91 -38.5t-57 -56t-21 -70q0 -33 21.5 -70 t74.5 -90l82 -82q59 -60 88 -121q14 -29 21.5 -62t7.5 -76q0 -86 -32 -161t-96 -131q-128 -111 -349 -111z" />
-<glyph unicode="&#xe0;" d="M402 1673h284l209 -376h-198zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe1;" d="M918 1673h321l-442 -376h-197zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe2;" d="M699 1673h243l183 -376h-176l-152 225l-240 -225h-190zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe3;" d="M911 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q109 0 189 -19.5t135 -56.5q60 -40 86 -95.5t26 -127.5q0 -18 -1.5 -41t-5.5 -51q-2 -14 -4 -27t-4 -26.5t-5 -29t-7 -34.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe4;" d="M480 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM875 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM379 -29q-75 0 -137 21t-107 66 q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5 q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46 t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe5;" d="M778 1249q-57 0 -108.5 21t-93.5 63q-41 42 -61.5 93t-20.5 108q0 63 23.5 115t59.5 88q37 37 88.5 59.5t113.5 22.5q57 0 108.5 -20.5t92.5 -61.5q35 -35 59 -86.5t24 -115.5q0 -63 -23.5 -115.5t-58.5 -87.5q-41 -41 -93.5 -62t-109.5 -21zM779 1403q25 0 49.5 9.5 t44.5 29.5q37 39 37 93q0 53 -39 92q-17 17 -40 27.5t-52 10.5q-55 0 -93 -38q-39 -39 -39 -93q0 -55 38 -93q17 -17 41.5 -27.5t52.5 -10.5zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17 q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125 q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
-<glyph unicode="&#xe6;" d="M246 -29q-127 0 -202 79q-38 40 -56.5 92.5t-18.5 124.5q0 92 30.5 169t91.5 137q121 117 325 117h108l11 58q3 17 3.5 21.5t1.5 8.5q1 5 1 12.5v9.5q0 36 -8.5 60t-25.5 40q-35 32 -98 32q-54 0 -122 -25q-37 -14 -75 -32.5t-81 -43.5l47 238q40 20 77.5 34.5t74.5 24.5 q36 10 71.5 14.5t67.5 4.5q84 0 142 -35q30 -18 50 -42t33 -56q53 65 122 99q68 34 154 34q126 0 193 -70q68 -71 68 -204q0 -24 -2 -51t-6 -61q-7 -58 -15 -99.5t-10 -55.5l-22 -129h-451q-3 -19 -6.5 -43t-4.5 -32q-3 -27 -3 -45q0 -42 11.5 -75t31.5 -55q42 -47 113 -47 q54 0 124 29q31 13 65.5 33t67.5 47l-47 -238q-57 -40 -125 -60q-34 -10 -71.5 -15t-74.5 -5q-52 0 -90.5 10.5t-73.5 32.5q-68 44 -99 121q-62 -83 -134 -123q-39 -22 -78.5 -31.5t-84.5 -9.5zM991 688l12 67q4 16 6 34q1 8 1 19.5v25.5q0 50 -20 75q-20 23 -64 23 q-57 0 -91 -42q-19 -23 -33 -57.5t-22 -72.5l-14 -72h225zM296 180q66 0 106 52t61 169l14 78h-74q-98 0 -156 -51q-30 -26 -44.5 -61.5t-14.5 -73.5q0 -28 7.5 -48t21.5 -35q28 -30 79 -30z" />
-<glyph unicode="&#xe7;" d="M809 909q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-18 -4 -36.5 -6.5t-36.5 -4.5q23 -35 37 -70q18 -47 18 -91 q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 27.5t-17 35.5q-89 6 -166.5 35t-137.5 86 q-69 66 -98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28z" />
-<glyph unicode="&#xe8;" d="M391 1674h284l209 -376h-198zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xe9;" d="M867 1673h321l-442 -376h-197zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xea;" d="M668 1673h243l183 -376h-176l-152 225l-240 -225h-190zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181 q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134 q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xeb;" d="M439 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM834 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM583 -29 q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16 t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
-<glyph unicode="&#xec;" d="M306 1648h284l209 -376h-198zM737 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xed;" d="M862 1648h321l-442 -376h-197zM697 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xee;" d="M596 1673h243l183 -376h-176l-152 225l-240 -225h-190zM700 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12 q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xef;" d="M395 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-175zM790 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-176zM718 -8q-107 0 -177 14 t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
-<glyph unicode="&#xf0;" d="M538 -29q-112 0 -195.5 30.5t-140.5 84.5q-63 60 -91.5 143.5t-28.5 190.5q0 129 39.5 245.5t119.5 207.5q74 84 176.5 132t233.5 48q42 0 75 -6q17 -3 32.5 -7.5t29.5 -11.5q-6 15 -10.5 25t-10 22t-13.5 28l-21 42q-23 44 -35 65.5t-20 32.5l-330 -123l-41 115l307 115 l-125 206h279l74 -120l323 118l41 -112l-303 -113q120 -182 179 -349q29 -81 44 -163t15 -171q0 -144 -41 -269t-123 -219q-78 -90 -188 -138.5t-251 -48.5zM560 207q60 0 113 31t94 94q39 60 60 143.5t21 176.5q0 17 -0.5 36t-1.5 30q-1 8 -3.5 27t-4.5 33q-19 11 -40 18.5 t-39 12.5q-20 5 -42.5 7.5t-40.5 2.5q-68 0 -122.5 -29t-93.5 -80q-43 -57 -64 -128.5t-21 -144.5q0 -60 13 -101.5t36 -68.5q22 -26 56 -43t80 -17z" />
-<glyph unicode="&#xf1;" d="M880 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8 q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5q-29 30 -83 30q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
-<glyph unicode="&#xf2;" d="M371 1673h284l209 -376h-198zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf3;" d="M887 1673h321l-442 -376h-197zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf4;" d="M668 1675h243l183 -376h-176l-152 225l-240 -225h-190zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf5;" d="M880 1299q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf6;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM543 -29 q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5 q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
-<glyph unicode="&#xf7;" d="M461 1198h309v-309h-309v309zM66 762h1099v-238h-1099v238zM461 395h309v-309h-309v309z" />
-<glyph unicode="&#xf8;" d="M-82 2l211 207q-11 27 -17.5 49t-12.5 50q-5 26 -8 53.5t-3 68.5q0 153 42 287t123 233q83 100 194.5 149.5t240.5 49.5q45 0 88 -6t82 -19q76 -25 143 -75l193 186l117 -121l-207 -201q10 -25 18 -50.5t13 -52.5q5 -28 7.5 -53.5t2.5 -60.5q0 -155 -41.5 -290.5 t-123.5 -235.5q-79 -96 -189.5 -147.5t-249.5 -51.5q-47 0 -90 6t-81 19q-76 25 -137 76l-198 -189zM801 856q-26 29 -56 42t-71 13q-63 0 -110.5 -29.5t-85.5 -88.5q-39 -61 -62 -145t-33 -195zM562 207q120 0 196 121q39 63 61.5 147.5t30.5 194.5l-416 -404 q14 -17 26.5 -26.5t29.5 -17.5q31 -15 72 -15z" />
-<glyph unicode="&#xf9;" d="M381 1648h284l209 -376h-198zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfa;" d="M897 1648h321l-442 -376h-197zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfb;" d="M678 1648h243l183 -376h-176l-152 225l-240 -225h-190zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9 q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfc;" d="M459 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM854 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM370 -29q-61 0 -110.5 18t-84.5 53 q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5 q-47 -29 -95 -41t-95 -12z" />
-<glyph unicode="&#xfd;" d="M922 1648h321l-442 -376h-197zM-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
-<glyph unicode="&#xfe;" d="M348 1556h293l-117 -604q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
-<glyph unicode="&#xff;" d="M484 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM879 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM-20 -201 h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
-<glyph unicode="&#x152;" d="M474 0q-133 0 -219 23.5t-138 67.5q-53 45 -79.5 119.5t-26.5 191.5q0 66 8.5 147t25.5 175t41 187t52 172q35 99 80 177.5t116 134.5q64 51 141 74.5t171 23.5h686l-52 -260h-331l-60 -311h301l-51 -260h-301l-78 -402h342l-51 -260h-577zM506 260l189 973h-51 q-48 0 -82.5 -13t-60.5 -34q-30 -25 -51.5 -61t-39.5 -86q-10 -27 -21 -64t-22 -79.5t-21.5 -88.5t-18.5 -90q-15 -80 -23.5 -153t-8.5 -124q0 -52 9.5 -84.5t29.5 -53.5q18 -20 47 -31t74 -11h51z" />
-<glyph unicode="&#x153;" d="M296 -29q-72 0 -132 20.5t-102 62.5q-40 40 -61 101.5t-21 153.5q0 57 8 132t24 154q17 84 39 155.5t48 130.5q29 66 66 115t89 84q50 33 109 50t122 17q39 0 75.5 -7t67.5 -23t55.5 -39.5t41.5 -51.5q48 58 117 90q68 31 151 31q67 0 117 -18t83 -51q35 -35 52 -86 t17 -114q0 -26 -2.5 -59t-5.5 -58q-4 -29 -10.5 -71t-14.5 -84l-23 -127h-450q-5 -26 -7.5 -46t-4.5 -33q-3 -26 -3 -44q0 -38 11 -70.5t32 -55.5q20 -22 50 -34t67 -12q55 0 123 28q33 14 64.5 32t66.5 45l-47 -238q-57 -41 -126 -60q-71 -20 -147 -20q-52 0 -91.5 10.5 t-72.5 30.5q-68 41 -87 109q-25 -38 -55.5 -65.5t-65.5 -46.5q-36 -19 -76.5 -28.5t-90.5 -9.5zM319 184q27 0 48 8t38 24q20 18 33.5 44t26.5 62q10 25 23 81q7 29 14.5 68t17.5 88q4 19 8 41t8 43t7 38.5t5 27.5q4 23 6.5 48t2.5 47q0 31 -6 56t-20 42q-26 32 -79 32 q-55 0 -90 -32q-17 -16 -30 -39.5t-28 -65.5q-9 -26 -15.5 -48t-14.5 -55t-15 -62.5t-15 -72.5q-8 -41 -13.5 -71.5t-10.5 -70.5q-5 -33 -7 -53.5t-2 -41.5q0 -73 26 -105q25 -33 82 -33zM1022 690l10 66q4 19 6 40q1 10 1.5 19t0.5 19q0 51 -20 76q-20 24 -63 24 q-57 0 -91 -42q-17 -21 -32 -55.5t-23 -76.5l-14 -70h225z" />
-<glyph unicode="&#x178;" d="M489 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM885 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM432 588l-287 905h293l187 -649l411 649h322 l-633 -905l-115 -588h-293z" />
-<glyph unicode="&#x2c6;" d="M668 1638h243l183 -376h-176l-152 225l-240 -225h-190z" />
-<glyph unicode="&#x2dc;" d="M880 1307q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -1.5 1.5t-3.5 2.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2 q20 0 35.5 9t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72z" />
-<glyph unicode="&#x2000;" horiz-adv-x="986" />
-<glyph unicode="&#x2001;" horiz-adv-x="1972" />
-<glyph unicode="&#x2002;" horiz-adv-x="986" />
-<glyph unicode="&#x2003;" horiz-adv-x="1972" />
-<glyph unicode="&#x2004;" horiz-adv-x="657" />
-<glyph unicode="&#x2005;" horiz-adv-x="493" />
-<glyph unicode="&#x2006;" horiz-adv-x="328" />
-<glyph unicode="&#x2007;" horiz-adv-x="328" />
-<glyph unicode="&#x2008;" horiz-adv-x="246" />
-<glyph unicode="&#x2009;" horiz-adv-x="394" />
-<glyph unicode="&#x200a;" horiz-adv-x="109" />
-<glyph unicode="&#x2010;" d="M259 746h789l-56 -291h-788z" />
-<glyph unicode="&#x2011;" d="M259 746h789l-56 -291h-788z" />
-<glyph unicode="&#x2012;" d="M259 746h789l-56 -291h-788z" />
-<glyph unicode="&#x2013;" d="M-10 690h1233l-49 -246h-1233z" />
-<glyph unicode="&#x2014;" d="M-10 690h1233l-49 -246h-1233z" />
-<glyph unicode="&#x2018;" d="M473 1174l270 382h215l-172 -382l-53 -271h-313z" />
-<glyph unicode="&#x2019;" d="M592 1286l53 270h313l-53 -270l-270 -383h-215z" />
-<glyph unicode="&#x201a;" d="M344 96l53 271h314l-54 -271l-270 -383h-215z" />
-<glyph unicode="&#x201c;" d="M248 1174l270 382h215l-172 -382l-53 -271h-313zM768 1174l270 382h215l-172 -382l-53 -271h-313z" />
-<glyph unicode="&#x201d;" d="M319 1286l54 270h313l-53 -270l-271 -383h-215zM840 1286l53 270h313l-53 -270l-270 -383h-215z" />
-<glyph unicode="&#x201e;" d="M94 96l51 271h314l-51 -271l-273 -383h-213zM614 96l52 271h313l-51 -271l-273 -383h-213z" />
-<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
-<glyph unicode="&#x2026;" d="M-53 0q-15 0 -22.5 9t-4.5 24l59 307q4 27 32 27h255q28 0 28 -25q0 -5 -1 -8l-61 -307q-5 -27 -32 -27h-253zM357 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27h235q28 0 28 -25q0 -5 -1 -8l-58 -307q-5 -27 -32 -27h-237zM748 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27 h254q15 0 22.5 -9t4.5 -24l-59 -307q-5 -27 -32 -27h-255z" />
-<glyph unicode="&#x202f;" horiz-adv-x="394" />
-<glyph unicode="&#x2039;" d="M265 535l25 131l547 393l-50 -252l-317 -227l229 -226l-41 -213z" />
-<glyph unicode="&#x203a;" d="M402 379l322 221l-235 221l47 238l391 -393l-25 -131l-545 -394z" />
-<glyph unicode="&#x205f;" horiz-adv-x="493" />
-<glyph unicode="&#x20ac;" d="M651 -29q-119 0 -208 35.5t-149 98.5q-63 67 -94.5 160.5t-31.5 211.5v6h-201l84 187h127q3 28 5.5 44.5t6.5 36.5q3 16 6 30t9 40h-176l84 189h147q94 249 264 379q172 131 400 131q82 0 160 -18q77 -18 151 -54l-64 -328q-29 40 -62 68.5t-63 45.5q-35 20 -73.5 29 t-76.5 9q-51 0 -99 -16.5t-91 -50.5q-42 -33 -78 -81t-65 -114h402l-82 -189h-385q-2 -6 -4 -17t-4.5 -22t-4.5 -21.5t-3 -15.5l-15 -75h346l-82 -187h-278q8 -125 71 -194q64 -70 170 -70q36 0 73.5 7.5t74.5 23.5q35 15 80.5 44t107.5 77l-63 -328q-77 -36 -154 -54 q-80 -18 -162 -18z" />
-<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/svg/latin/hack-italic-latin-webfont.svg b/pagure/static/hack_fonts/fonts/svg/latin/hack-italic-latin-webfont.svg
deleted file mode 100755
index 8f31418..0000000
--- a/pagure/static/hack_fonts/fonts/svg/latin/hack-italic-latin-webfont.svg
+++ /dev/null
@@ -1,241 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackitalic" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M647 1053l70 445h265l-70 -445l-157 -567h-121zM606 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5z" />
-<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
-<glyph unicode="#" d="M250 414h-256l39 153h256l84 334h-258l39 154h258l104 415h160l-105 -415h246l105 415h159l-104 -415h256l-39 -154h-256l-84 -334h258l-39 -153h-258l-104 -414h-160l104 414h-245l-105 -414h-160zM694 567l84 334h-246l-83 -334h245z" />
-<glyph unicode="$" d="M373 0q-53 3 -151 26q-51 12 -98 28.5t-93 37.5l35 180q81 -60 176 -93q96 -34 188 -38l90 465q-75 17 -138.5 43t-106.5 65q-38 35 -59 82.5t-21 115.5q0 83 33 156.5t100 131.5t154.5 88t146.5 33l48 235h180l-47 -235q5 -3 49 -9t74 -12q15 -3 34 -7.5t39.5 -10 t40 -11t36.5 -11.5l-32 -173q-32 20 -71 37t-71 27t-76 18.5t-80 12.5l-81 -426q165 -35 253 -117q45 -42 67 -94.5t22 -123.5q0 -88 -34 -163.5t-103 -135.5q-137 -120 -353 -120h30l-59 -303h-181zM633 1184q-108 -7 -184 -76t-76 -167q0 -70 42 -107q20 -18 55.5 -33 t82.5 -27zM553 145q120 0 199 73q38 35 58.5 81t20.5 103q0 44 -12 74.5t-35 50.5q-46 41 -145 61z" />
-<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5 t99.5 66.5t126.5 24.5q33 0 63 -6t59 -18q57 -24 103 -70q25 -25 42.5 -52t28.5 -53q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
-<glyph unicode="&#x26;" d="M408 -29q-94 0 -174 27t-138 80q-57 51 -86.5 122.5t-29.5 161.5q0 81 25 160.5t74 150.5t121.5 133t166.5 114q-17 32 -26 55t-17 51q-7 26 -11 51.5t-4 57.5q0 84 30.5 156t92.5 125q60 51 144 77.5t185 26.5q66 0 128 -12q60 -12 119 -35l-35 -183q-42 38 -103 57 q-31 10 -65 14.5t-67 4.5q-120 0 -187 -57q-34 -29 -51 -68t-17 -84q0 -23 5 -50t17 -62q11 -32 25 -64.5t37 -73.5l307 -557q62 66 99 169q19 52 31 111t18 130h168q-8 -85 -27 -159t-51 -143q-62 -135 -168 -237l123 -221h-199l-59 113q-49 -36 -95 -61.5t-100 -44.5 q-101 -36 -206 -36zM456 129q36 0 70 7.5t71 21.5q35 14 70.5 33.5t73.5 48.5l-309 555q-135 -74 -204 -171q-35 -50 -52.5 -104.5t-17.5 -108.5q0 -65 23 -115.5t62 -86.5q41 -38 95.5 -59t117.5 -21z" />
-<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
-<glyph unicode="(" d="M426 -270q-40 95 -68.5 181t-47.5 165t-28 153t-9 152q0 146 32 296t97 301q63 147 158 291t223 285h159q-118 -152 -206 -301t-149 -305q-120 -306 -120 -608q0 -79 8 -151t22 -146q16 -81 37.5 -156.5t51.5 -156.5h-160v0z" />
-<glyph unicode=")" d="M320 -270q237 302 356 606q60 153 89.5 304.5t29.5 299.5q0 74 -7.5 150.5t-21.5 150.5q-14 73 -37 152.5t-53 160.5h160q79 -190 116 -345q19 -79 28 -153t9 -152q0 -146 -32 -296.5t-97 -300.5q-66 -152 -160.5 -295t-220.5 -282h-159v0z" />
-<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
-<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
-<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 111q0 71 46 111q20 18 48.5 29.5t66.5 11.5q86 0 133 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
-<glyph unicode="-" d="M226 683h822l-33 -164h-822z" />
-<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="/" d="M868 1493h191l-854 -1683h-189z" />
-<glyph unicode="0" d="M480 -29q-194 0 -288 124t-94 369q0 99 14.5 207t41.5 214t64 198t79 161q42 71 90 122.5t106 86.5q52 32 115 49.5t141 17.5q101 0 172 -30.5t119 -93.5q45 -60 70 -150t25 -218q0 -101 -15 -211t-41 -209q-26 -103 -63 -194.5t-80 -164.5q-42 -72 -90 -124t-105 -86 q-54 -32 -118.5 -50t-142.5 -18zM502 135q85 0 153 51q39 29 67 69.5t48 78.5q33 66 63 156.5t53 190.5q23 103 34.5 199t11.5 177q0 84 -12 139.5t-37 90.5t-64 52t-87 17q-42 0 -81 -12.5t-73 -37.5q-36 -26 -65 -64.5t-52 -83.5q-34 -66 -63.5 -153t-52.5 -193 q-24 -110 -35 -208t-11 -175q0 -87 13 -140t39 -86q24 -31 62 -49.5t89 -18.5zM550 401q-8 0 -12 2q-23 8 -32 41t-9 82q0 14 0.5 25.5t1.5 26.5q2 38 5 69t6.5 57t8 48.5t9.5 45.5q3 11 7.5 30.5t12 44t17.5 52t22 54.5q26 57 51.5 83.5t47.5 26.5h4t7 -2q19 -5 31.5 -31 t12.5 -87q-1 -6 -1 -13v-15q-2 -38 -4 -67t-5 -51.5t-6 -40t-7 -32.5q-5 -21 -12 -46.5t-15.5 -53t-18.5 -56t-20 -53.5q-26 -67 -51 -103.5t-51 -36.5z" />
-<glyph unicode="1" d="M156 170h313l221 1141l-352 -76l35 184l352 74h203l-258 -1323h309l-33 -170h-823z" />
-<glyph unicode="2" d="M32 136q4 20 12 33t21 24l285 251l39 35q131 117 231 216t168 182.5t103 153t35 129.5q0 42 -16.5 77.5t-47.5 61.5t-75.5 39.5t-102.5 13.5q-48 0 -99 -9t-99 -24q-50 -16 -109.5 -42t-122.5 -60l41 204q60 26 115 44.5t102 29.5q57 14 105.5 19.5t91.5 5.5 q97 0 173.5 -25t130.5 -71t83.5 -111.5t29.5 -149.5q0 -42 -8 -84t-28 -90q-40 -97 -117 -190q-9 -11 -19.5 -22.5t-24.5 -26t-32 -32t-43 -40.5q-99 -92 -169.5 -152.5t-96.5 -81.5l-330 -274h694l-32 -170h-914z" />
-<glyph unicode="3" d="M383 -29q-57 0 -105 5t-99 14q-54 10 -99.5 22.5t-97.5 32.5l38 201q49 -28 93 -46t93 -32t95.5 -20.5t96.5 -6.5q96 0 168 24t127 70t83.5 105.5t28.5 134.5q0 62 -18.5 106.5t-52.5 73.5q-71 60 -210 60h-153l32 166h154q76 0 140 18.5t111 55.5q45 35 69 86t24 116 q0 53 -16.5 88.5t-45.5 57.5q-62 47 -189 47q-43 0 -87 -5t-93 -15q-56 -11 -104 -25.5t-106 -34.5l37 186l58 14.5t59 14t55.5 12t47.5 8.5q42 7 90 11t90 4q93 0 168 -21.5t129 -65.5q52 -42 80 -103.5t28 -142.5q0 -72 -22 -135.5t-67 -115.5q-42 -49 -104 -84.5 t-147 -52.5q113 -19 178 -102q32 -42 48 -93t16 -120q0 -112 -41.5 -205.5t-125.5 -165.5q-82 -70 -193 -106t-261 -36z" />
-<glyph unicode="4" d="M659 356h-634l36 191l785 946h233l-190 -973h198l-30 -164h-199l-70 -356h-198zM690 520l152 762l-625 -762h473z" />
-<glyph unicode="5" d="M366 -29q-48 0 -98.5 4t-97.5 12q-94 16 -166 48l41 205q46 -28 89 -46.5t83 -29.5q45 -13 90.5 -19t87.5 -6q93 0 173 29t140 87q55 53 88 128t33 162q0 130 -80 203t-224 73q-39 0 -78.5 -5t-81.5 -15t-81 -24.5t-77 -33.5l145 750h756l-33 -170h-571l-72 -367 q46 16 92 24q22 4 44.5 5.5t43.5 1.5q96 0 172 -29t131 -83q57 -55 86 -131.5t29 -169.5q0 -124 -52 -240q-53 -117 -149 -203q-43 -38 -92.5 -68.5t-108.5 -51.5q-57 -20 -120.5 -30t-141.5 -10z" />
-<glyph unicode="6" d="M515 -29q-93 0 -174 28t-139 88q-54 56 -82 141.5t-28 204.5q0 69 9.5 155.5t29.5 176.5q19 87 47 172t60 154q51 111 114.5 191t136.5 131q152 107 357 107q38 0 76 -3.5t72 -11.5q31 -7 66.5 -19t67.5 -26l-36 -186q-59 37 -126 57q-34 10 -70 14.5t-71 4.5 q-100 0 -178.5 -35.5t-141.5 -107.5q-125 -143 -181 -427q36 54 75.5 91.5t86.5 63.5t98 39t112 13q88 0 156.5 -25.5t114.5 -73.5q50 -51 73 -123t23 -162q0 -54 -9 -113t-31 -124q-21 -63 -48 -111.5t-60 -90.5q-77 -97 -177 -145q-47 -23 -102 -35.5t-121 -12.5zM521 129 q67 0 130 32.5t113 101.5q47 66 71.5 149t24.5 171q0 62 -13.5 108t-44.5 78q-29 30 -71.5 45t-91.5 15q-75 0 -138 -33t-110 -93q-49 -63 -73.5 -143.5t-24.5 -165.5q0 -66 15 -114t45 -82q32 -35 76 -52t92 -17z" />
-<glyph unicode="7" d="M952 1323h-708l32 170h936l-16 -94l-805 -1399h-217z" />
-<glyph unicode="8" d="M483 -29q-100 0 -182 25.5t-142 76.5q-54 47 -86 117t-32 164q0 87 28 158.5t77 126.5t120 95t164 59q-57 20 -96 48t-65 63q-29 38 -41.5 82.5t-12.5 94.5q0 90 38 170.5t109 141.5q75 64 169 95.5t195 31.5q87 0 160.5 -22.5t128.5 -67.5q52 -42 81.5 -102t29.5 -137 q0 -70 -25 -135.5t-72 -119.5t-113 -94.5t-144 -59.5q125 -30 190 -113q32 -42 48 -95.5t16 -118.5q0 -103 -38.5 -192.5t-112.5 -155.5q-72 -65 -171.5 -100.5t-220.5 -35.5zM634 866q124 0 208 87q42 44 63 97t21 112q0 50 -15 85.5t-45 62.5q-60 54 -160 54 q-66 0 -118 -21t-90 -59q-82 -81 -82 -203q0 -101 59 -158q58 -57 159 -57zM494 127q72 0 132 23.5t105 68.5q45 46 67.5 106.5t22.5 132.5q0 62 -16.5 107t-49.5 78q-66 66 -183 66q-144 0 -234 -98q-46 -50 -69 -113t-23 -134q0 -60 16.5 -101t50.5 -73t78 -47.5 t103 -15.5z" />
-<glyph unicode="9" d="M343 -29q-76 0 -146 15q-32 7 -65.5 17.5t-68.5 27.5l35 186q29 -19 60.5 -32.5t65.5 -23.5q69 -20 142 -20q194 0 320 144q124 142 180 426q-67 -101 -161 -154q-51 -29 -103.5 -41t-109.5 -12q-87 0 -153.5 25.5t-114.5 74.5q-97 100 -97 285q0 63 10.5 122.5 t29.5 115.5q20 58 47.5 109t59.5 91q37 46 82.5 83.5t95.5 61.5q99 48 224 48q101 0 180.5 -30t133.5 -87q110 -116 110 -344q0 -69 -9.5 -156t-29.5 -177q-20 -91 -47 -172t-60 -153q-52 -112 -114 -190.5t-137 -131.5q-81 -57 -170.5 -82.5t-189.5 -25.5zM551 662 q75 0 138 33t110 93t72.5 140t25.5 169q0 69 -15.5 117.5t-44.5 80.5t-72 49.5t-94 17.5q-72 0 -134.5 -34.5t-109.5 -99.5q-45 -63 -71 -147t-26 -174q0 -57 13 -104.5t45 -80.5q29 -30 71.5 -45t91.5 -15z" />
-<glyph unicode=":" d="M728 776q-28 0 -52.5 9.5t-44.5 31.5q-21 23 -28.5 50t-7.5 56q0 39 15.5 74t46.5 63q27 25 61 39.5t72 14.5q35 0 59 -11.5t41 -29.5q16 -17 25.5 -42.5t9.5 -57.5q0 -38 -14.5 -76t-46.5 -67q-30 -28 -66.5 -41t-69.5 -13zM617 60q-32 0 -58 11t-43 31q-18 20 -26 46.5 t-8 54.5q0 39 15 76t47 66q26 24 60.5 38.5t72.5 14.5q28 0 54 -9t46 -32q16 -17 25.5 -42.5t9.5 -60.5q0 -83 -62 -140q-28 -26 -62 -40t-71 -14z" />
-<glyph unicode=";" d="M723 713q-71 0 -112 50q-32 38 -32 93q0 9 1 18t3 18q7 42 25 73.5t44 53.5q26 23 59 36t68 13t64.5 -12.5t49.5 -35.5q33 -38 33 -94q0 -16 -3 -34q-15 -80 -71 -129q-26 -23 -58.5 -36.5t-70.5 -13.5zM339 -351q275 114 320 351q-14 -3 -23 -4t-19 -1q-33 0 -61 10.5 t-48 30.5q-30 31 -30 84v9q0 5 0.5 11t1.5 13q6 35 22 64t45 52t61 33t64 10q91 0 130 -71q13 -23 19 -52t6 -57q0 -17 -2 -42t-5 -46q-14 -92 -51.5 -170.5t-94.5 -140.5q-56 -61 -134 -111.5t-169 -81.5z" />
-<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
-<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
-<glyph unicode="?" d="M546 583q12 78 53 146q21 35 53 70t86 81l104 89q42 35 65 59t37 44q32 45 39 93q3 18 3 34q0 32 -11.5 60t-34.5 50q-27 26 -68.5 40.5t-96.5 14.5q-80 0 -173 -34q-48 -17 -98.5 -43t-105.5 -60l30 188q49 27 100.5 49t102.5 36t101.5 21t100.5 7q91 0 162 -23t121 -73 q36 -36 56 -83.5t20 -98.5q0 -17 -2 -38t-4 -37q-5 -37 -18.5 -71.5t-37.5 -69.5q-26 -38 -64.5 -77t-87.5 -81l-102 -86q-43 -36 -67.5 -62t-37.5 -46q-11 -17 -20 -40t-12 -43l-8 -47l-12 -80h-190zM542 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5 t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
-<glyph unicode="@" d="M607 -317q-151 0 -267 50t-196 138q-87 95 -130 225t-43 283q0 97 17.5 198t54.5 204q34 94 83 182.5t112 161.5q52 61 117 113t140 88q72 35 149 53t156 18q95 0 171 -26t131 -77q57 -53 84.5 -124t27.5 -155q0 -14 -1 -33t-3 -38t-5.5 -41t-8.5 -45l-137 -723h-144 l21 111q-26 -32 -57.5 -56.5t-64.5 -40.5q-35 -17 -73.5 -25.5t-78.5 -8.5q-71 0 -123 24.5t-91 67.5q-42 46 -62.5 104.5t-20.5 139.5q0 103 33 197t99 173q63 75 141 115.5t172 40.5q85 0 150 -36t93 -97l8 43q2 12 4.5 30t4.5 31t2.5 23t0.5 22q0 59 -18 108t-55 84 q-73 70 -204 70q-72 0 -139.5 -20t-132.5 -58q-63 -38 -120 -92t-107 -128q-40 -60 -72.5 -129.5t-55.5 -145.5q-21 -72 -32.5 -149.5t-11.5 -155.5q0 -128 32 -230.5t96 -175.5q63 -72 152.5 -109.5t197.5 -37.5q30 0 62 3t60 9q21 5 53 14t74 25l45 -131 q-38 -18 -72 -28.5t-65 -17.5q-71 -15 -153 -15zM710 260q63 0 117 28t95 78q40 49 63 114t23 138q0 49 -12 88t-38 68q-50 55 -138 55q-60 0 -114 -26t-96 -77t-64 -116.5t-22 -135.5q0 -48 12 -89t38 -70q50 -55 136 -55z" />
-<glyph unicode="A" d="M639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="B" d="M313 1493h443q204 0 307 -79q52 -40 78 -98t26 -138q0 -151 -92 -255q-92 -105 -248 -124q124 -23 192 -102q34 -40 50 -91t16 -120q0 -109 -39.5 -199.5t-119.5 -156.5q-159 -130 -451 -130h-452zM639 877q152 0 238 73q86 72 86 198q0 95 -55 137q-56 42 -181 42h-244 l-88 -450h244zM506 166q184 0 282 87q49 44 73 107t24 136q0 63 -17 101.5t-51 64.5q-68 51 -211 51h-241l-107 -547h248z" />
-<glyph unicode="C" d="M597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124 q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
-<glyph unicode="D" d="M283 1493h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q184 0 297 63q113 62 180 203q25 52 48 122t41 153q17 80 25.5 153 t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-226 -1161h97z" />
-<glyph unicode="E" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="F" d="M383 1493h879l-33 -170h-676l-86 -450h612l-32 -170h-613l-139 -703h-203z" />
-<glyph unicode="G" d="M564 -29q-122 0 -211.5 34.5t-150.5 100.5q-63 69 -93.5 165t-30.5 217q0 47 4.5 94.5t12.5 98.5q8 46 20.5 103.5t27.5 108.5q17 57 38 110.5t44 101.5q25 50 51 89.5t52 72.5q50 62 110 110.5t128 80.5q130 62 288 62q46 0 86 -5t80 -16q81 -21 156 -61l-41 -207 q-35 34 -70 57t-66 37q-71 31 -153 31q-50 0 -96.5 -10.5t-87.5 -30.5q-42 -20 -82 -52t-72 -71q-45 -54 -83 -130q-21 -42 -38 -85.5t-31 -89.5q-17 -56 -30 -110.5t-21 -103.5q-9 -52 -13.5 -94.5t-4.5 -84.5q0 -174 79 -266q40 -47 95.5 -70t130.5 -23q36 0 65 5t55 14 q29 10 50.5 23t40.5 30l76 393h-217l30 166h410l-133 -670q-86 -61 -190 -93q-51 -16 -103.5 -24t-111.5 -8z" />
-<glyph unicode="H" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
-<glyph unicode="I" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="J" d="M375 -29q-54 0 -102 6t-99 17q-53 12 -101 28.5t-98 38.5l45 236q38 -42 78.5 -71t85.5 -49q44 -20 91 -31t105 -11q142 0 212 73q32 33 60 99.5t50 179.5l164 836h-381l33 170h584l-197 -1006q-29 -150 -72 -247t-104 -154q-63 -59 -149.5 -87t-204.5 -28z" />
-<glyph unicode="K" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
-<glyph unicode="L" d="M369 1493h202l-258 -1323h721l-33 -170h-923z" />
-<glyph unicode="M" d="M229 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
-<glyph unicode="N" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
-<glyph unicode="O" d="M478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265 q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5 q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="P" d="M321 1493h440q103 0 182 -23.5t133 -68.5t80.5 -112.5t26.5 -162.5q0 -120 -41 -217t-119 -166t-186.5 -106t-253.5 -37h-233l-117 -600h-203zM616 766q165 0 264 96q49 48 73.5 111.5t24.5 137.5q0 53 -14 95t-48 70q-62 51 -192 51h-233l-109 -561h234z" />
-<glyph unicode="Q" d="M504 -27h-10q-111 0 -187 30t-126 90t-74.5 152.5t-24.5 226.5q0 66 5.5 121.5t16.5 118.5q5 31 11 60.5t13.5 61t17 66t22.5 75.5q16 50 31 89t32 77q7 15 15.5 32t18 35t19.5 34.5t19 29.5q38 57 88.5 106.5t109.5 81.5q56 31 118 45.5t134 14.5q102 0 176.5 -30 t124.5 -93q48 -60 72.5 -151.5t24.5 -216.5q0 -48 -3.5 -95.5t-10.5 -94.5t-18 -100.5t-25 -109.5q-14 -53 -30.5 -107t-31.5 -95q-16 -43 -34 -82.5t-35 -70.5q-22 -39 -52.5 -81.5t-71.5 -81.5q-31 -30 -68.5 -57t-80.5 -44l236 -280h-236zM498 135q43 0 84 12.5t78 38.5 q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5 t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="R" d="M281 1493h416q206 0 321 -89q59 -46 86 -110.5t27 -149.5q0 -84 -25.5 -160t-77.5 -136q-51 -59 -121 -95.5t-161 -47.5q34 -6 64.5 -23.5t51.5 -43.5q20 -25 44.5 -80.5t52.5 -149.5l121 -408h-201l-106 377q-44 155 -98 205q-28 26 -70.5 37.5t-94.5 11.5h-192 l-123 -631h-203zM570 797q163 0 261 86q97 85 97 226q0 113 -63 166q-62 52 -199 52h-213l-102 -530h219z" />
-<glyph unicode="S" d="M435 -29q-58 0 -108 6t-101 17q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5 q0 101 40.5 192.5t124.5 162.5q83 70 191 105t232 35q48 0 91 -5t88 -15q46 -10 90.5 -24t94.5 -34l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60t-75.5 -91t-27.5 -115q0 -39 12 -67.5t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75 q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5t-197 -103.5t-251 -34.5z" />
-<glyph unicode="T" d="M629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
-<glyph unicode="U" d="M477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51 q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="V" d="M199 1493h198l113 -1303l598 1303h215l-719 -1493h-258z" />
-<glyph unicode="W" d="M145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
-<glyph unicode="X" d="M546 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
-<glyph unicode="Y" d="M508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="Z" d="M32 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
-<glyph unicode="[" d="M682 1636h424l-23 -143h-240l-256 -1620h240l-23 -143h-424z" />
-<glyph unicode="\" d="M356 1493h170l199 -1683h-170z" />
-<glyph unicode="]" d="M366 -127h240l256 1619h-240l23 143h424l-302 -1905h-424z" />
-<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
-<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
-<glyph unicode="`" d="M453 1638h198l197 -376h-143z" />
-<glyph unicode="a" d="M407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5 t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172 q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="b" d="M535 -29q-97 0 -164 43q-66 43 -101 127l-46 -141h-165l303 1556h185l-113 -579q61 83 144 127q82 43 185 43q79 0 144 -25.5t111 -77.5q90 -102 90 -296q0 -66 -10.5 -138.5t-30.5 -144.5q-19 -67 -46.5 -130t-66.5 -122q-78 -116 -184 -178q-56 -32 -115 -48t-120 -16z M540 127q83 0 151 45q35 23 62.5 55t51.5 77q25 46 45 100.5t33 108.5q14 58 21 114t7 106q0 62 -11.5 111.5t-38.5 84.5q-51 64 -151 64q-44 0 -82.5 -12t-70.5 -34t-62.5 -56t-56.5 -79q-26 -46 -44.5 -96t-32.5 -105q-14 -59 -21.5 -116t-7.5 -106q0 -63 12.5 -111.5 t40.5 -83.5q30 -38 70.5 -52.5t84.5 -14.5z" />
-<glyph unicode="c" d="M597 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5 t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-44 -11 -86.5 -16t-90.5 -5z" />
-<glyph unicode="d" d="M462 -29q-85 0 -146.5 27t-105.5 78q-46 53 -68.5 125.5t-22.5 172.5q0 66 10 138t30 145q21 76 49 138.5t60 113.5q39 62 83 105.5t94 72.5t105 44.5t118 15.5q51 0 93 -10.5t79 -32.5q73 -44 114 -127l115 579h184l-303 -1556h-164l7 141q-64 -83 -147 -127 q-82 -43 -184 -43zM518 127q85 0 154 45q35 23 63 55.5t53 77.5q49 87 77 203q14 56 21 112.5t7 106.5q0 132 -53 197q-25 31 -64.5 49t-93.5 18q-42 0 -81 -11.5t-70 -31.5q-32 -21 -61.5 -55t-52.5 -76q-22 -40 -41.5 -93.5t-33.5 -110.5t-20.5 -115.5t-6.5 -109.5 q0 -69 12.5 -117t38.5 -80q51 -64 152 -64z" />
-<glyph unicode="e" d="M558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49 q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69 q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="f" d="M523 977h-299l29 143h297l16 78q21 103 53.5 168.5t81.5 107.5q50 42 119.5 62t163.5 20h221l-31 -153h-208q-94 0 -143 -41q-26 -23 -41.5 -58.5t-26.5 -84.5l-21 -99h385l-26 -143h-385l-191 -977h-184z" />
-<glyph unicode="g" d="M376 -440q-43 0 -82.5 3.5t-79.5 10.5q-78 13 -155 41l37 182q40 -23 76 -39.5t76 -27.5q80 -23 158 -23q148 0 231 80q42 40 70.5 105t48.5 161l24 117q-59 -87 -145 -132q-45 -23 -93 -34.5t-99 -11.5q-79 0 -142.5 27t-108.5 80q-46 54 -68 129.5t-22 169.5 q0 63 10 132t30 138q39 135 112 243q40 60 83 101.5t95 72.5q104 62 216 62q99 0 176 -48q35 -23 63.5 -56t46.5 -78l47 151h164l-203 -1044q-53 -272 -186 -392q-134 -120 -380 -120zM513 145q38 0 74 11t71 34q65 44 112 129q26 46 46 100.5t31 101.5q14 55 20.5 111 t6.5 101q0 126 -56 192q-28 33 -67 49.5t-87 16.5q-84 0 -149.5 -46t-112.5 -122q-50 -81 -77.5 -187.5t-27.5 -214.5q0 -83 15.5 -131.5t40.5 -77.5q29 -32 70 -49.5t90 -17.5z" />
-<glyph unicode="h" d="M387 1556h184l-116 -604q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
-<glyph unicode="i" d="M627 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27 q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="j" d="M811 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM55 -270h233q45 0 83.5 14.5t66.5 44.5q54 58 80 191l192 997h-317l28 143h502l-221 -1140q-19 -97 -53 -177t-89 -133q-101 -96 -282 -96h-254z" />
-<glyph unicode="k" d="M393 1556h191l-170 -874l549 438h241l-520 -422l373 -698h-213l-307 582l-168 -133l-88 -449h-191z" />
-<glyph unicode="l" d="M739 -8q-174 0 -257 64q-41 31 -63 78.5t-22 113.5q0 17 1.5 34t3.5 36t5.5 39.5t8.5 46.5l211 1008h-316l29 144h500l-240 -1156q-4 -18 -5.5 -29t-2 -17.5t-0.5 -9v-4.5q0 -5 -3 -12.5t-3 -32.5q0 -76 44 -111q45 -36 136 -36h211l-31 -156h-207v0z" />
-<glyph unicode="m" d="M203 1120h148l1 -96q43 60 100 92q55 31 120 31q74 0 120 -37q45 -37 56 -104q20 35 46.5 61.5t55.5 43.5q31 18 66.5 27t70.5 9q42 0 78 -13t62 -40q30 -32 40.5 -72.5t10.5 -78.5q0 -20 -2 -52.5t-7 -66.5q-2 -18 -5 -36t-6.5 -38.5t-8 -45t-10.5 -55.5l-127 -649h-168 l125 641q3 15 7.5 38t8.5 45.5t7.5 41.5t4.5 26q5 26 7 50t2 39q0 24 -6 47t-17 37q-22 28 -74 28q-41 0 -68.5 -16t-47.5 -48q-24 -38 -43.5 -105.5t-42.5 -182.5l-125 -641h-168l125 641q3 13 6.5 33t7.5 41.5t8 42.5t6 37q3 20 5.5 44t2.5 42q0 23 -5 44t-18 38 q-23 30 -74 30q-35 0 -63 -13.5t-49 -45.5q-11 -17 -21.5 -42t-21 -60t-21.5 -82.5t-23 -108.5l-125 -641h-168z" />
-<glyph unicode="n" d="M303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
-<glyph unicode="o" d="M510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44 t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="p" d="M299 1120h164l-8 -143q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
-<glyph unicode="q" d="M774 141q-62 -84 -143 -127q-82 -43 -185 -43q-81 0 -145.5 25.5t-110.5 76.5q-44 49 -68 123t-24 176q0 65 10.5 136t30.5 144q20 70 48 135t65 122q39 61 83 104.5t97 73.5q105 60 231 60q57 0 98.5 -11t72.5 -31q68 -43 102 -128l47 143h164l-299 -1546h-184zM496 127 q85 0 154 46q36 24 66 59t52 73q48 84 77 203q14 59 21.5 116t7.5 107q0 63 -12.5 112t-40.5 83q-53 65 -154 65q-84 0 -152 -44q-35 -23 -63 -55t-51 -76q-25 -46 -44 -99.5t-33 -109.5q-29 -118 -29 -221q0 -131 51 -195t150 -64z" />
-<glyph unicode="r" d="M404 1120h164l-20 -219q67 120 174 183q106 63 239 63q35 0 69 -4.5t62 -13.5q25 -8 50.5 -22t46.5 -32l-35 -186q-23 22 -49.5 38.5t-54.5 27.5q-30 11 -64 16.5t-69 5.5q-82 0 -154 -28t-130 -85t-97 -137t-58 -178l-107 -549h-184z" />
-<glyph unicode="s" d="M477 -29q-48 0 -92.5 4.5t-82.5 12.5q-45 9 -92 22.5t-95 30.5l37 190q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172 q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5q-40 -27 -58 -63t-18 -71q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5 l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-72 -56 -169 -83.5t-207 -27.5z" />
-<glyph unicode="t" d="M682 -4q-89 0 -148 15t-97 41q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47q0 -67 39 -93q39 -27 141 -27h207 l-29 -147h-223v0z" />
-<glyph unicode="u" d="M409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5 q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="v" d="M182 1120h178l154 -956l502 956h198l-614 -1120h-238z" />
-<glyph unicode="w" d="M92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
-<glyph unicode="x" d="M524 596l-293 524h196l217 -395l369 395h225l-512 -547l318 -573h-197l-244 444l-417 -444h-226z" />
-<glyph unicode="y" d="M20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5 q-74 -37 -171 -37h-148z" />
-<glyph unicode="z" d="M111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
-<glyph unicode="{" d="M685 -334q-187 0 -268 54q-82 55 -82 178v13q-1 14 0 24.5t3 27.5q4 29 6.5 44.5t4.5 26.5l45 236q2 5 2 7.5t1 4.5q5 25 7.5 45t2.5 45q0 49 -12 79t-37 49q-49 37 -162 37h-92l29 147h91q146 0 208 55q62 54 93 205l50 244q25 124 61 194q36 71 90 111q22 16 49.5 28.5 t67.5 20.5q34 7 83 10.5t118 3.5h82l-29 -143h-85q-69 0 -111 -9.5t-65 -29.5q-25 -22 -44 -70t-33 -120l-51 -252q-15 -75 -37.5 -133.5t-55.5 -98.5q-59 -71 -171 -94q72 -18 113 -69q40 -52 40 -127q1 -13 0.5 -22.5t-3.5 -34.5q-2 -16 -3 -24.5t-2 -14.5t-2.5 -12.5 t-3.5 -18.5l-47 -244q-4 -20 -5.5 -33t-2.5 -26l-1.5 -25.5t-0.5 -13t-0.5 -6.5t-0.5 -5q0 -64 43 -92t140 -28h78l-29 -144h-72v0z" />
-<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
-<glyph unicode="}" d="M64 -190h78q137 0 183 40q22 19 41 63t36 126l51 252q15 75 37 133.5t56 99.5q61 73 172 92q-74 20 -114 70q-20 26 -30 55.5t-10 71.5q0 12 1 25.5t3 31.5q2 21 3.5 34t6.5 36l47 243q0 2 1.5 11t3 19.5t3 19t1.5 10.5q1 12 1.5 25t0.5 22q0 66 -42 95q-43 28 -141 28 h-77l26 143h74q100 0 165 -14t104 -40t60 -67.5t21 -114.5q0 -14 -1 -26.5t-3 -34.5q-2 -19 -3.5 -32t-6.5 -39l-45 -236l-2 -12q-5 -25 -7.5 -48t-2.5 -43q0 -89 49 -126t161 -37h92l-29 -147h-91q-143 0 -207 -55q-32 -27 -56.5 -77t-39.5 -128l-47 -244 q-12 -63 -28 -111.5t-34 -83.5q-36 -71 -90 -110q-25 -18 -53 -29.5t-63 -19.5q-69 -15 -201 -15h-82z" />
-<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M713 1170q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5zM498 655l108 357h162l-39 -357l-127 -655h-233z" />
-<glyph unicode="&#xa2;" d="M510 -27q-88 9 -161 44.5t-124 95.5t-76.5 140.5t-25.5 180.5q0 88 20 175.5t61 168.5q44 88 101 151.5t120 106.5q38 26 75.5 44.5t73.5 31.5q76 27 163 33l56 287h102l-55 -287q58 -3 123 -20q64 -17 124 -48l-32 -172q-50 38 -110 60t-134 28l-170 -870q32 2 66 9.5 t69 18.5t70.5 26.5t73.5 35.5l-33 -172q-20 -9 -41 -16.5t-40.5 -13.5t-35.5 -10.5t-26 -7.5q-30 -8 -65 -13t-67 -7l-55 -286h-102zM709 991q-165 -15 -279 -179q-58 -84 -86.5 -180.5t-28.5 -200.5q0 -75 15 -126t44 -89q28 -36 67.5 -59t99.5 -30z" />
-<glyph unicode="&#xa3;" d="M25 170h237l90 465h-198l26 143h199l47 238q27 137 72 229t110 152q63 59 150 91t199 32q73 0 135 -14q20 -5 58.5 -16.5t78.5 -27.5l-37 -184q-54 43 -114 66q-60 22 -126 22q-71 0 -123.5 -21.5t-90.5 -63.5t-66 -110.5t-49 -175.5l-43 -217h370l-28 -143h-371 l-90 -465h536l-32 -170h-973z" />
-<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
-<glyph unicode="&#xa5;" d="M444 524h-397l23 111h397l6 35l-55 151h-309l22 111h246l-205 561h207l223 -664l459 664h211l-404 -561h252l-22 -111h-312l-110 -151l-10 -35h393l-23 -111h-393l-98 -524h-199z" />
-<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
-<glyph unicode="&#xa7;" d="M411 -201q-40 0 -79.5 4t-71.5 10q-36 7 -78.5 18.5t-81.5 25.5l33 161q37 -18 73.5 -31.5t72.5 -23.5t68.5 -15t67.5 -5q52 0 97.5 12t78.5 35t49.5 54.5t16.5 65.5q0 54 -43.5 107.5t-139.5 119.5l-87 60q-125 86 -165 141q-21 29 -30.5 61t-9.5 68q0 45 15 90.5 t49 90.5q32 42 77 79.5t105 69.5q-42 39 -59 77q-10 21 -14.5 43t-4.5 50q0 74 30.5 137t89.5 111q60 48 139 72t170 24q35 0 70 -3.5t72 -10.5q39 -8 74.5 -18.5t73.5 -24.5l-33 -164q-34 18 -68.5 32.5t-70.5 25.5t-68.5 15.5t-61.5 4.5q-48 0 -90.5 -12t-75.5 -37 t-49.5 -55t-16.5 -61q0 -43 32.5 -86t101.5 -88l48 -32l86 -59q63 -43 104 -79t63 -65t32 -62.5t10 -68.5q0 -47 -16.5 -95t-49.5 -93q-35 -48 -80.5 -83t-99.5 -60q41 -35 62 -80q9 -20 14.5 -46t5.5 -58q0 -73 -30 -137.5t-90 -113.5q-61 -49 -142.5 -73.5t-174.5 -24.5z M678 401q84 51 128 107t44 108q0 30 -14.5 58t-38.5 53q-27 28 -79.5 67t-121.5 83l-80 51q-81 -52 -125 -108q-43 -55 -43 -109t43 -101q20 -22 59.5 -54t108.5 -77z" />
-<glyph unicode="&#xa8;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
-<glyph unicode="&#xaa;" d="M534 698q-61 0 -104.5 17t-71.5 43q-63 60 -63 163q0 71 29 126t82 93q112 79 311 79h174q0 4 1 9q2 11 2.5 24t0.5 21q0 28 -9.5 53.5t-35.5 45.5q-22 17 -55 25t-84 8q-35 0 -69 -4t-68 -12t-69 -21.5t-71 -30.5l23 127q75 29 148 42q37 7 71 10.5t69 3.5 q145 0 218 -62t73 -186q0 -13 -0.5 -27.5t-1.5 -24.5q-1 -7 -3.5 -26t-4.5 -29l-86 -448h-143l22 112q-26 -32 -59 -56.5t-68 -40.5q-39 -18 -79 -26t-79 -8zM581 817q49 0 96 16.5t85 50.5q41 36 66 86.5t36 104.5l6 29h-141q-149 0 -217 -40q-35 -20 -52.5 -52t-17.5 -71 q0 -59 37 -92q18 -16 42.5 -24t59.5 -8zM246 592h676l-23 -123h-676z" />
-<glyph unicode="&#xab;" d="M74 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176zM541 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176z" />
-<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
-<glyph unicode="&#xad;" d="M336 643h522l-33 -164h-522z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
-<glyph unicode="&#xaf;" d="M469 1526h598l-29 -148h-598z" />
-<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
-<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#xb2;" d="M328 1230l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557z" />
-<glyph unicode="&#xb3;" d="M536 1103q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
-<glyph unicode="&#xb4;" d="M907 1638h219l-395 -376h-156z" />
-<glyph unicode="&#xb5;" d="M252 1120h187l-136 -696q-2 -11 -4.5 -27.5t-4.5 -30.5q-3 -27 -3 -47q0 -40 12.5 -76.5t41.5 -62.5q30 -27 71.5 -38t86.5 -11q135 0 218 83q39 39 68.5 101t46.5 152l127 653h186l-168 -862q-1 -4 -2.5 -16.5t-1.5 -14.5q-1 -7 -1.5 -12.5t-0.5 -12.5q0 -29 13 -45 q5 -7 13.5 -11.5t20.5 -4.5q10 0 27 5q5 2 18.5 6.5t28.5 11.5l-29 -148q-19 -11 -41 -20.5t-36 -13.5q-36 -11 -73 -11q-31 0 -56.5 10t-46.5 33q-19 20 -29.5 47t-10.5 68q-52 -82 -122 -120q-71 -38 -166 -38t-156 42q-63 42 -94 124l-109 -563h-176z" />
-<glyph unicode="&#xb6;" d="M506 649q-177 4 -279 99q-102 94 -102 256q0 209 173 349t437 140h406l-328 -1690h-139l303 1567h-191l-303 -1567h-141z" />
-<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="&#xb8;" d="M366 -395q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 39 -17t38 -12q36 -9 68 -9q67 0 105 30q19 15 28 36t9 45q0 17 -4 35.5t-10 34.5q-5 12 -17 38.5t-27 54.5h119q19 -32 32.5 -60t22.5 -51q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54z " />
-<glyph unicode="&#xb9;" d="M369 1230h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553z" />
-<glyph unicode="&#xba;" d="M630 698q-78 0 -136 24t-100 67q-44 45 -65.5 107t-21.5 134q0 46 8.5 93t23.5 89q18 50 43.5 91t45.5 65q29 36 65.5 64.5t76.5 48.5q41 20 83.5 29.5t90.5 9.5q148 0 235 -91q41 -43 63.5 -105t22.5 -140q0 -42 -7.5 -87.5t-24.5 -93.5q-16 -44 -38 -82.5t-49 -70.5 q-30 -36 -65.5 -64.5t-75.5 -48.5q-80 -39 -175 -39zM645 813q53 0 102 26.5t87 80.5q38 53 57.5 121t19.5 138q0 107 -49 166q-26 32 -61 46t-73 14q-57 0 -104.5 -28t-83.5 -79q-38 -54 -57.5 -120.5t-19.5 -136.5q0 -57 12.5 -97.5t37.5 -70.5t59 -45t73 -15zM246 592 h676l-23 -123h-676z" />
-<glyph unicode="&#xbb;" d="M145 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418zM612 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418z" />
-<glyph unicode="&#xbc;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
-<glyph unicode="&#xbd;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM482 -160l203 167q153 125 233 213t80 150q0 20 -9 40.5t-28 36.5q-36 30 -100 30q-23 0 -53 -4.5t-59 -13.5q-27 -8 -64.5 -24t-79.5 -36l24 127 q42 14 78.5 25t68.5 18q31 7 60 10t56 3q62 0 107.5 -14.5t77.5 -40.5q34 -28 51 -66.5t17 -73.5q0 -39 -21.5 -85t-61 -96.5t-97 -103.5t-129.5 -107l-20 -15l-170 -136h395l-23 -114h-557z" />
-<glyph unicode="&#xbe;" d="M313 809q-34 0 -66 3t-64 8t-61.5 12t-61.5 18l24 121q69 -29 119 -42q51 -13 105 -13t98 11.5t76 34.5q34 24 49.5 55.5t15.5 69.5q0 66 -42 98q-44 32 -132 32h-72l21 106h72q98 0 156 40q59 41 59 103q0 53 -43 78q-22 13 -54 19t-72 6q-48 0 -95 -10 q-51 -11 -111 -33l22 115q35 8 68 14.5t64 11.5q61 9 115 9q58 0 105.5 -12t82.5 -38q65 -50 65 -140q0 -80 -57 -138q-27 -28 -65 -47.5t-89 -28.5q72 -12 111 -57q19 -22 29 -51.5t10 -68.5q0 -127 -104 -207q-103 -79 -278 -79zM47 612l1059 258l27 -108l-1063 -258z M799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
-<glyph unicode="&#xbf;" d="M752 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM495 -27q-72 0 -138.5 19t-117.5 62q-48 41 -72 95t-24 118 q0 89 49 169q26 43 69.5 89t109.5 100l104 86q39 32 69 63.5t46 57.5q15 25 27 62.5t18 74.5l20 123h191l-29 -154q-9 -48 -24.5 -88.5t-33.5 -69.5q-21 -34 -58 -73t-93 -86l-106 -89q-85 -71 -120 -127q-36 -56 -36 -113q0 -73 56 -114t153 -41q42 0 84.5 8.5t94.5 27.5 q50 18 98.5 42t105.5 59l-37 -188q-59 -31 -112.5 -52t-96.5 -33q-51 -14 -102 -21t-95 -7z" />
-<glyph unicode="&#xc0;" d="M551 1853h182l147 -264h-139zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc1;" d="M885 1852h208l-307 -264h-160zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc2;" d="M704 1854h213l158 -266h-133l-139 178l-209 -178h-152zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc3;" d="M442 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc4;" d="M500 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM891 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM639 1493h246l166 -1493h-201l-35 389h-520 l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc5;" d="M600 1415q-50 34 -76 89t-26 120q0 59 20.5 109t58.5 88q37 38 87 59t109 21q58 0 107 -21t87 -59q37 -37 58.5 -85.5t21.5 -111.5q0 -43 -10.5 -77.5t-29.5 -64.5q-41 -65 -110 -96l154 -1386h-201l-35 389h-520l-184 -389h-217zM772 1475q33 0 60.5 12t47.5 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -108q0 -65 44 -109q19 -19 46.5 -31t60.5 -12zM801 551l-66 774l-364 -774h430z" />
-<glyph unicode="&#xc6;" d="M555 1493h752l-33 -170h-338l-86 -442h307l-33 -170h-307l-106 -541h356l-33 -170h-542l75 383h-352l-176 -383h-184zM600 551l150 772h-103l-356 -772h309z" />
-<glyph unicode="&#xc7;" d="M1058 1499q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5 q-23 -5 -48.5 -9.5t-53.5 -6.5q14 -25 23.5 -46t17.5 -40q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5 q-4 9 -11.5 27t-18.5 38q-103 7 -181 41t-132 90q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16z" />
-<glyph unicode="&#xc8;" d="M596 1849h182l147 -264h-139zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xc9;" d="M930 1859h208l-307 -264h-160zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xca;" d="M749 1861h213l158 -266h-133l-139 178l-209 -178h-152zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xcb;" d="M545 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM936 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM344 1493h885l-33 -170h-684l-86 -442h653 l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
-<glyph unicode="&#xcc;" d="M557 1859h182l147 -264h-139zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xcd;" d="M891 1859h208l-307 -264h-160zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xce;" d="M710 1861h213l158 -266h-133l-139 178l-209 -178h-152zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xcf;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
-<glyph unicode="&#xd0;" d="M129 709h-127l29 149h129l123 635h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q99 0 170.5 16.5t126.5 46.5q63 35 104.5 84.5 t74.5 118.5q26 53 49 121t41 154q17 80 25.5 153t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-91 -469h267l-29 -149h-266l-107 -543h97z" />
-<glyph unicode="&#xd1;" d="M438 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
-<glyph unicode="&#xd2;" d="M543 1859h182l147 -264h-139zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd3;" d="M897 1859h208l-307 -264h-160zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd4;" d="M696 1861h213l158 -266h-133l-139 178l-209 -178h-152zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd5;" d="M434 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd6;" d="M492 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM478 -29q-202 0 -299 123q-97 122 -97 379 q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5 q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5 q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
-<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
-<glyph unicode="&#xd8;" d="M14 -6l119 170q-14 31 -24 64t-16 65q-13 68 -13 159q0 95 13 197.5t39 209.5q24 98 57.5 187.5t79.5 170.5q40 70 90 128t117 100q62 38 130.5 56.5t143.5 18.5q41 0 78 -5t69 -16q29 -10 60.5 -26.5t58.5 -38.5l84 125l100 -64l-106 -158q16 -34 26 -65.5t17 -66.5 q7 -36 10.5 -75.5t3.5 -90.5q0 -94 -13 -196t-39 -209q-29 -116 -64.5 -204.5t-72.5 -153.5q-45 -80 -96 -136t-110 -93t-129 -56.5t-148 -19.5q-43 0 -79.5 6t-70.5 17q-29 10 -61 26.5t-61 42.5l-94 -133zM905 1274q-13 18 -32.5 34t-41.5 27q-20 10 -47 15.5t-57 5.5 q-54 0 -101.5 -19.5t-89.5 -62.5q-81 -83 -141 -256q-11 -32 -22 -69t-21.5 -76.5t-19.5 -79t-16 -75.5q-14 -71 -21.5 -139t-7.5 -122l2 -38q1 -10 1 -15v-7t0.5 -3.5t0.5 -4.5zM501 135q113 0 194 82q34 35 70 96t71 160q12 33 23 70t21 75t18.5 75.5t14.5 72.5 q27 147 27 270v46q0 3 -0.5 14.5t-1.5 19.5l-616 -887q19 -43 67 -69q23 -13 51.5 -19t60.5 -6z" />
-<glyph unicode="&#xd9;" d="M555 1859h182l147 -264h-139zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xda;" d="M889 1859h208l-307 -264h-160zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xdb;" d="M708 1861h213l158 -266h-133l-139 178l-209 -178h-152zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5 q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xdc;" d="M504 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM895 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM477 -29q-190 0 -293 90q-104 90 -104 254 q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920 h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
-<glyph unicode="&#xdd;" d="M921 1859h208l-307 -264h-160zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#xde;" d="M342 1493l203 -2l-51 -274h241q207 0 316 -88q54 -44 81 -107.5t27 -154.5q0 -111 -40 -203.5t-121 -161.5q-161 -137 -441 -137h-231l-72 -365h-203zM590 522q163 0 263 92q50 46 74.5 107t24.5 132q0 60 -16.5 97t-45.5 60q-61 49 -192 49h-237l-105 -537h234z" />
-<glyph unicode="&#xdf;" d="M599 -29q-38 0 -69.5 3t-67.5 10q-41 7 -70 15.5t-62 20.5l30 164q58 -32 126 -48q68 -17 137 -17q130 0 207 63q36 30 55.5 71.5t19.5 94.5q0 31 -6.5 54t-20.5 43q-17 25 -43.5 48.5t-68.5 55.5l-61 47q-43 33 -71.5 59t-46.5 55q-28 46 -28 110q0 130 102 226 q47 45 115 79t164 53q2 8 3 15t2 15q1 7 1 12v7q0 40 -11 74.5t-40 59.5q-24 20 -61 32t-87 12q-57 0 -105.5 -16.5t-83.5 -50.5q-32 -31 -57.5 -81t-39.5 -124l-219 -1133h-187l221 1137q20 105 61 184.5t101 131.5q63 54 144 78.5t176 24.5q91 0 160 -21t114 -59 q94 -80 94 -232q0 -14 -1 -31t-3 -34t-5.5 -35t-8.5 -36q-174 -21 -274 -88q-101 -68 -101 -163q0 -21 5 -37t16 -32q14 -20 32 -36t48 -39l51 -39q54 -42 93.5 -77.5t62.5 -73.5q40 -65 40 -159q0 -84 -31 -156.5t-98 -128.5q-63 -53 -150.5 -80.5t-202.5 -27.5z" />
-<glyph unicode="&#xe0;" d="M457 1673h198l197 -376h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe1;" d="M911 1673h219l-395 -376h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe2;" d="M721 1673h147l164 -376h-133l-117 241l-225 -241h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19 q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125 q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe3;" d="M894 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12 q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5 t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe4;" d="M473 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM864 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 11v8q0 96 -62 140q-29 21 -75 33t-107 12q-42 0 -88 -6t-96 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe5;" d="M782 1321q-114 0 -194 80t-80 194q0 116 80 196q79 79 194 79q116 0 195 -79q80 -80 80 -196q0 -114 -80 -194t-195 -80zM782 1444q64 0 108 44t44 107q0 64 -44 108t-108 44t-107 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
-<glyph unicode="&#xe6;" d="M234 -29q-68 0 -120.5 20t-85.5 52q-41 38 -58 92t-17 117q0 87 30 164.5t91 132.5q120 108 344 108h117l18 88q3 14 4 21.5t2 20.5q1 11 1.5 22.5t0.5 22.5q0 42 -11 71.5t-31 49.5q-19 19 -49 30.5t-70 11.5q-27 0 -56.5 -5.5t-59.5 -15.5q-32 -11 -69 -27t-74 -36 l35 168q44 19 79 31t69 20q35 8 66 12.5t60 4.5q81 0 140 -33q58 -33 90 -96q23 29 54 54t66 42q36 17 74.5 25t75.5 8q59 0 108 -19t85 -58q35 -38 53 -90.5t18 -112.5q0 -21 -2 -49.5t-6 -57.5q-2 -11 -4.5 -30.5t-6.5 -41.5l-8 -44t-7 -40l-17 -90h-495 q-12 -57 -17.5 -88.5t-9.5 -57.5q-4 -28 -6 -47t-2 -36q0 -41 13 -71.5t36 -50.5q49 -44 133 -44q69 0 142 29q70 28 124 79l-34 -172q-28 -20 -61.5 -36.5t-63.5 -26.5q-65 -21 -137 -21q-53 0 -98 11t-79 31t-58 50t-36 68q-47 -80 -117 -120q-35 -20 -76.5 -30t-86.5 -10 zM1024 657l16 74q4 17 6 31.5t3 23.5q1 11 1.5 29t0.5 29q0 39 -9 66.5t-26 46.5q-33 38 -94 38q-35 0 -70 -14t-64 -49t-46 -82t-31 -111l-17 -82h330zM267 123q83 0 134 68q13 18 24.5 41t22 53.5t20 69t19.5 87.5l15 72h-49q-67 0 -107 -3.5t-70 -12.5q-31 -9 -51 -21.5 t-37 -32.5q-18 -20 -28.5 -39.5t-18.5 -42.5q-18 -51 -18 -95q0 -27 8.5 -55t29.5 -50q22 -22 50 -30.5t56 -8.5z" />
-<glyph unicode="&#xe7;" d="M469 813q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-24 -6 -48 -10t-48 -7q14 -24 23.5 -45.5t17.5 -40.5 q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -11 26.5t-18 38.5q-101 5 -174.5 33.5t-124.5 78.5 q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5z" />
-<glyph unicode="&#xe8;" d="M453 1673h198l197 -376h-143zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807 q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xe9;" d="M907 1673h219l-395 -376h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5 h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xea;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44 q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5 q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xeb;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM558 -29q-120 0 -204.5 29t-140.5 83 q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18 q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
-<glyph unicode="&#xec;" d="M383 1646h198l197 -376h-143zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#xed;" d="M828 1673h219l-395 -376h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#xee;" d="M688 1673h147l164 -376h-133l-117 241l-225 -241h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211 l-31 -156h-207z" />
-<glyph unicode="&#xef;" d="M380 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM771 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM749 -4q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
-<glyph unicode="&#xf0;" d="M516 -29q-193 0 -295 108q-54 57 -78 134.5t-24 175.5q0 125 38 248q20 66 50 125.5t59 101.5q77 112 192 173q58 31 120.5 46t118.5 15q18 0 35 -1.5t40 -3.5l33 -3q-20 37 -45 81q-5 7 -12.5 19.5t-17 26.5t-19.5 28.5t-19 26.5l-297 -94l-30 92l274 86l-141 200h213 l104 -145l287 88l28 -92l-260 -80q62 -86 107 -166.5t73 -153.5q56 -147 56 -306q0 -64 -9 -130t-28 -131q-37 -129 -108 -233q-42 -61 -87.5 -103.5t-102.5 -72.5q-114 -60 -255 -60zM534 127q79 0 149 40.5t123 120.5q53 81 79 186.5t26 227.5q0 36 -2 64t-7 54 q-9 51 -28 87q-37 19 -77 28q-41 9 -83 9q-94 0 -166.5 -41t-123.5 -114q-28 -40 -49 -87t-34.5 -97.5t-20.5 -103t-7 -103.5q0 -67 12.5 -119t44.5 -87q26 -29 67.5 -47t96.5 -18z" />
-<glyph unicode="&#xf1;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184 l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
-<glyph unicode="&#xf2;" d="M453 1673h198l197 -376h-143zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf3;" d="M907 1673h219l-395 -376h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf4;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137 t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230 q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf5;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314 q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126 q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf6;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM510 -29q-92 0 -166 26t-126 83 q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45 t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
-<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
-<glyph unicode="&#xf8;" d="M47 -20l129 153q-14 24 -25 52t-18 60t-10.5 67.5t-3.5 78.5q0 69 10 138t30 137q19 63 48 127t67 119t87 101.5t106 75.5q56 29 120.5 43.5t136.5 14.5q79 0 139 -18q59 -18 106 -54l112 137l93 -77l-123 -146q17 -26 29 -56t19 -58q8 -31 11.5 -69.5t3.5 -79.5 q0 -135 -41 -273q-21 -70 -50.5 -132t-64.5 -114q-42 -61 -88.5 -104.5t-103.5 -72.5q-113 -59 -259 -59q-40 0 -72 4.5t-64 14.5q-28 8 -56 21t-57 34l-119 -141zM852 938q-14 13 -31.5 24t-36.5 17q-18 6 -39.5 9t-43.5 3q-88 0 -158 -45t-121 -126t-80 -192.5t-29 -239.5 q0 -20 0.5 -29t1.5 -19q2 -19 2.5 -26.5t1.5 -11.5zM534 127q83 0 153 43t124 129q50 79 79.5 187t29.5 239q0 20 -0.5 34t-1.5 23q-1 10 -2.5 21t-4.5 22l-534 -639q15 -15 31.5 -25.5t37.5 -18.5q19 -7 40 -11t48 -4z" />
-<glyph unicode="&#xf9;" d="M449 1648h198l197 -376h-143zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfa;" d="M903 1648h219l-395 -376h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfb;" d="M713 1648h147l164 -376h-133l-117 241l-225 -241h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25 q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfc;" d="M465 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM856 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM409 -27q-65 0 -117.5 18t-90.5 55 q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5 t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
-<glyph unicode="&#xfd;" d="M947 1648h219l-395 -376h-156zM20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43 q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
-<glyph unicode="&#xfe;" d="M385 1567h184l-114 -590q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
-<glyph unicode="&#xff;" d="M509 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM900 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM20 -272h108q83 0 140 47q62 50 118 159 l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
-<glyph unicode="&#x152;" d="M467 0q-108 0 -190 25.5t-136 77.5q-56 54 -81 134.5t-25 186.5q0 62 8 144.5t25 173.5t39 175t47 150q45 120 100.5 200.5t124.5 128.5q137 97 379 97h594l-33 -170h-358l-87 -442h328l-33 -170h-327l-107 -541h369l-33 -170h-604zM539 170l225 1153h-62 q-119 0 -201 -54q-47 -30 -77 -70.5t-53 -92.5q-6 -14 -12 -28.5t-11.5 -31t-12 -37.5t-13.5 -48q-14 -52 -26 -103.5t-24 -112.5q-11 -53 -18.5 -98.5t-13.5 -90.5q-5 -42 -8 -77.5t-3 -62.5q0 -60 15.5 -107t47.5 -79q33 -32 80.5 -46t104.5 -14h62z" />
-<glyph unicode="&#x153;" d="M288 -29q-140 0 -217 83t-77 238q0 26 2 58t6 64q1 13 3.5 30.5t5.5 37t6.5 39.5t6.5 38q5 28 12 58.5t14.5 59.5t14.5 54.5t12 42.5q12 39 29 82t39 82q28 50 63 88.5t83 67.5q91 53 204 53q84 0 145 -34q62 -34 95 -93q59 64 126 95q69 32 147 32q123 0 193 -76 q35 -38 53 -91t18 -117q0 -26 -2.5 -55.5t-5.5 -53.5q-4 -29 -10.5 -69.5t-14.5 -80.5l-16 -90h-502q-5 -23 -8.5 -40.5t-6.5 -34t-5.5 -33.5t-5.5 -38q-5 -29 -7 -47.5t-2 -35.5q0 -42 12.5 -71t36.5 -51q49 -44 133 -44q70 0 142 29q69 28 125 79l-35 -172 q-34 -23 -64.5 -37.5t-60.5 -24.5q-32 -11 -64.5 -16.5t-71.5 -5.5q-96 0 -164 35t-102 98q-59 -65 -129 -99q-71 -34 -156 -34zM309 123q61 0 110 35q29 20 46 46.5t30 55.5q5 11 9 21t8.5 23t9.5 30.5t12 44.5q13 49 23 93t18 88t15.5 89.5t12.5 85.5q9 67 9 101 q0 36 -9 66t-27 51q-36 42 -104 42q-36 0 -63 -9.5t-48 -24.5q-24 -17 -42 -42t-34 -63q-11 -26 -22 -59t-20 -68q-20 -75 -38 -170q-8 -44 -14.5 -80.5t-12.5 -78.5q-5 -37 -7.5 -64t-2.5 -47q0 -79 37 -122q38 -44 104 -44zM1083 653l15 76q3 16 5.5 33.5t3.5 25.5 q2 14 2.5 27.5t0.5 24.5q0 33 -8 63t-25 50q-18 21 -43.5 29.5t-53.5 8.5q-43 0 -75.5 -17t-57.5 -48q-30 -37 -50 -87t-29 -104l-14 -82h329z" />
-<glyph unicode="&#x178;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM508 670l-313 823h202l236 -651l497 651 h218l-635 -823l-129 -670h-207z" />
-<glyph unicode="&#x2c6;" d="M717 1638h147l164 -376h-133l-117 241l-225 -241h-156z" />
-<glyph unicode="&#x2dc;" d="M890 1307q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18z" />
-<glyph unicode="&#x2000;" horiz-adv-x="986" />
-<glyph unicode="&#x2001;" horiz-adv-x="1972" />
-<glyph unicode="&#x2002;" horiz-adv-x="986" />
-<glyph unicode="&#x2003;" horiz-adv-x="1972" />
-<glyph unicode="&#x2004;" horiz-adv-x="657" />
-<glyph unicode="&#x2005;" horiz-adv-x="493" />
-<glyph unicode="&#x2006;" horiz-adv-x="328" />
-<glyph unicode="&#x2007;" horiz-adv-x="328" />
-<glyph unicode="&#x2008;" horiz-adv-x="246" />
-<glyph unicode="&#x2009;" horiz-adv-x="394" />
-<glyph unicode="&#x200a;" horiz-adv-x="109" />
-<glyph unicode="&#x2010;" d="M226 683h822l-33 -164h-822z" />
-<glyph unicode="&#x2011;" d="M226 683h822l-33 -164h-822z" />
-<glyph unicode="&#x2012;" d="M226 683h822l-33 -164h-822z" />
-<glyph unicode="&#x2013;" d="M-23 633h1233l-28 -141h-1233z" />
-<glyph unicode="&#x2014;" d="M-23 633h1233l-28 -141h-1233z" />
-<glyph unicode="&#x2018;" d="M504 1174l270 382h154l-172 -382l-41 -207h-252z" />
-<glyph unicode="&#x2019;" d="M635 1350l41 206h252l-41 -206l-271 -383h-153z" />
-<glyph unicode="&#x201a;" d="M375 96l41 207h252l-41 -207l-271 -383h-153z" />
-<glyph unicode="&#x201c;" d="M285 1174l272 382h154l-174 -382l-39 -207h-252zM743 1174l273 382h153l-172 -382l-41 -207h-251z" />
-<glyph unicode="&#x201d;" d="M393 1350l41 206h252l-41 -206l-270 -383h-154zM852 1350l41 206h252l-41 -206l-270 -383h-154z" />
-<glyph unicode="&#x201e;" d="M156 96l41 207h252l-39 -207l-273 -383h-153zM614 96l41 207h252l-39 -207l-272 -383h-154z" />
-<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -63 -22.5 -116t-64.5 -94q-44 -43 -98 -64.5t-114 -21.5z" />
-<glyph unicode="&#x2026;" d="M-33 0q-28 0 -28 25q0 5 1 8l49 243q6 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-49 -243q-6 -27 -32 -27h-192zM377 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192zM787 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27 h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192z" />
-<glyph unicode="&#x202f;" horiz-adv-x="394" />
-<glyph unicode="&#x2039;" d="M249 559l17 82l551 418l-43 -211l-351 -264l248 -267l-33 -176z" />
-<glyph unicode="&#x203a;" d="M430 352l351 262l-250 269l35 176l387 -418l-17 -82l-549 -418z" />
-<glyph unicode="&#x205f;" horiz-adv-x="493" />
-<glyph unicode="&#x20ac;" d="M612 -29q-114 0 -197 35t-138 99q-60 69 -87.5 168.5t-27.5 224.5v45h-172l49 110h133q4 29 8 55t9 49q8 45 18 83h-158l49 108h140q48 146 113 252t146 176q84 72 183 108t211 36q42 0 79 -5t75 -16q77 -21 147 -61l-39 -207q-72 66 -135 95q-65 30 -138 30 q-137 0 -248 -105q-112 -106 -183 -303h473l-50 -108h-456q-3 -12 -5.5 -20t-4.5 -16.5t-4.5 -20.5t-6.5 -32t-7 -33.5t-5 -24.5t-3.5 -20t-2.5 -20h411l-47 -110h-376v-54q0 -171 73 -262q35 -45 86 -68.5t120 -23.5q40 0 80 8t83 24q83 31 170 93l-39 -207 q-80 -42 -160 -62q-40 -10 -81 -15t-85 -5z" />
-<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/svg/latin/hack-regular-latin-webfont.svg b/pagure/static/hack_fonts/fonts/svg/latin/hack-regular-latin-webfont.svg
deleted file mode 100755
index 3a9a01b..0000000
--- a/pagure/static/hack_fonts/fonts/svg/latin/hack-regular-latin-webfont.svg
+++ /dev/null
@@ -1,241 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="hackregular" horiz-adv-x="1233" >
-<font-face units-per-em="2048" ascent="1556" descent="-492" />
-<missing-glyph horiz-adv-x="500" />
-<glyph horiz-adv-x="0" />
-<glyph unicode="&#xd;" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="0" />
-<glyph unicode=" " />
-<glyph unicode="!" d="M481 1053v445h265v-445l-67 -567h-121zM616 -60q-70 0 -116 48q-46 47 -46 125q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48z" />
-<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
-<glyph unicode="#" d="M260 414h-258v153h297l84 334h-266v154h303l104 415h160l-104 -415h245l105 415h160l-105 -415h244v-154h-281l-84 -334h250v-153h-289l-104 -414h-160l105 414h-246l-105 -414h-159zM705 567l83 334h-245l-84 -334h246z" />
-<glyph unicode="$" d="M552 0q-12 2 -62 9.5t-101 18.5q-50 11 -98 26.5t-101 37.5v180q54 -33 102 -55.5t100 -39.5q102 -34 190 -35v458q-90 16 -164.5 45.5t-126.5 76.5q-51 46 -76 105.5t-25 136.5q0 156 106 250t256 107v235h180v-235q1 -2 42.5 -7.5t78.5 -12.5q41 -8 82 -18t83 -23v-173 q-44 23 -90 41t-75 26q-34 10 -76.5 17.5t-74.5 9.5v-431q197 -32 304 -128q108 -98 108 -249q0 -76 -28 -140.5t-88 -118.5q-116 -103 -266 -112v-303h-180v301zM582 1183q-94 -5 -152 -60q-59 -56 -59 -149q0 -46 14 -79t41 -58q55 -50 156 -67v413zM702 146q101 3 162 61 q62 59 62 156q0 46 -13.5 83.5t-42.5 63.5q-55 50 -168 70v-434z" />
-<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5t100 66.5 t126 24.5q65 0 122 -24t103 -70q26 -26 43 -53t28 -52q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
-<glyph unicode="&#x26;" d="M552 -30q-107 0 -197.5 36.5t-156.5 99.5q-64 61 -103 145.5t-39 187.5q0 67 17.5 133.5t52.5 125.5q68 116 208 217q-51 73 -74 141q-24 69 -24 141q0 79 26 136.5t74 99.5q99 87 272 87q65 0 131 -12q29 -5 63 -14t72 -21v-183q-29 20 -61 35t-61 23q-62 18 -128 18 q-101 0 -156 -45q-56 -45 -56 -124q0 -58 29 -122q14 -30 39 -71t67 -97l416 -559q38 49 58 124q10 38 14.5 82.5t4.5 92.5q0 20 -0.5 45.5t-2.5 60.5l-1 7h164v-39q0 -162 -37 -282q-18 -59 -46 -112t-66 -98l170 -229h-213l-78 109q-40 -34 -83 -60t-94 -44 q-42 -15 -93 -25t-108 -10zM585 125q25 0 46.5 3t44.5 9q49 13 90 35q24 13 45 27q11 7 16 10.5t7.5 6t4 3.5t5.5 4l-428 580q-93 -75 -137 -154q-46 -82 -46 -176q0 -72 24.5 -135t74.5 -113q47 -47 111.5 -73.5t141.5 -26.5z" />
-<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
-<glyph unicode="(" d="M595 -270q-78 124 -133 237.5t-92 226.5q-74 227 -74 449q0 221 74 449q38 115 93 228.5t132 233.5h160q-71 -121 -118.5 -231.5t-79.5 -222.5q-34 -118 -50 -230t-16 -227q0 -118 16.5 -229.5t49.5 -226.5t81 -226t117 -231h-160v0z" />
-<glyph unicode=")" d="M478 -270q132 231 199 459q31 107 48 222t17 232q0 112 -16.5 227.5t-48.5 227.5q-31 107 -80.5 222t-118.5 234h160q153 -237 225 -462q74 -228 74 -449q0 -223 -74 -451q-74 -227 -225 -462h-160v0z" />
-<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
-<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
-<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 110q0 33 11 62.5t35 50.5q20 17 50 28.5t66 11.5q85 0 132 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
-<glyph unicode="-" d="M206 683h821v-164h-821v164z" />
-<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="/" d="M889 1493h190l-786 -1683h-191z" />
-<glyph unicode="0" d="M616 -29q-240 0 -361 196q-122 197 -122 578q0 382 122 579q121 196 361 196q118 0 209 -48t153 -148q60 -96 91 -239.5t31 -339.5t-31 -339t-91 -239q-123 -196 -362 -196zM616 131q73 0 125.5 39t86.5 113q69 151 69 462q0 312 -69 462q-34 75 -86 114t-126 39 q-141 0 -210 -152q-35 -75 -52.5 -188.5t-17.5 -274.5q0 -312 70 -462q36 -78 88.5 -115t121.5 -37zM618 396q-15 0 -27.5 11.5t-22 31t-16.5 46t-13 55.5q-5 24 -9 53t-7 58.5t-5 55.5t-2 43q0 12 1 35t3.5 51t6 58.5t9.5 58.5q28 143 78 143q28 0 47.5 -38t33.5 -108 q5 -25 9 -54t7 -57.5t4.5 -54t1.5 -42.5q0 -10 -0.5 -31t-2.5 -48.5t-5.5 -58.5t-8.5 -62q-13 -74 -34.5 -110t-47.5 -36z" />
-<glyph unicode="1" d="M270 170h314v1141l-338 -76v184l336 74h202v-1323h310v-170h-824v170z" />
-<glyph unicode="2" d="M152 134q0 19 5.5 33.5t19.5 28.5q57 60 135 142.5t167 179.5q51 55 82 89t51 56t32.5 36.5t26.5 31.5q27 32 47.5 58.5t37 50t29 45.5t22.5 44q17 38 26 76t9 80q0 60 -18 109.5t-55 84.5q-74 71 -203 71q-90 0 -190 -33t-212 -100v204q52 25 103.5 43.5t99.5 30.5 q50 13 99 19t97 6q104 0 195 -28t159 -88q60 -53 96 -129.5t36 -172.5q0 -51 -11 -99.5t-33 -97.5q-11 -25 -25 -49t-31.5 -49t-39.5 -52.5t-49 -59.5q-29 -34 -69 -79t-93 -102q-38 -41 -70 -73.5t-68.5 -69t-83 -83.5t-113.5 -118h696v-170h-907v134z" />
-<glyph unicode="3" d="M566 -29q-48 0 -100.5 4.5t-106.5 14.5q-46 8 -101 22t-109 33v204q51 -26 100 -47t101 -35q50 -13 98.5 -19.5t98.5 -6.5q166 0 255 75q45 38 67 92t22 121q0 134 -88 210q-43 37 -104 56.5t-138 19.5h-154v166h154q140 0 218 61q77 60 77 173q0 54 -18 98.5t-54 75.5 q-71 61 -210 61q-41 0 -87 -5t-94 -15q-97 -20 -199 -60v186q121 31 216 48q92 16 169 16q105 0 193.5 -27t154.5 -82q62 -52 95.5 -125t33.5 -164q0 -65 -17.5 -116t-50.5 -91q-68 -81 -200 -116q147 -39 225 -138q41 -52 59.5 -115t18.5 -135q0 -100 -34 -181.5 t-103 -140.5q-68 -58 -164.5 -88t-223.5 -30z" />
-<glyph unicode="4" d="M735 356h-633v191l600 946h234v-973h199v-164h-199v-356h-201v356zM735 520v789l-471 -789h471z" />
-<glyph unicode="5" d="M525 -29q-45 0 -100.5 4t-104.5 12q-51 8 -94 20t-83 28v205q93 -50 185 -74q94 -25 185 -25q174 0 263 88q90 88 90 248q0 87 -25 149t-68 103q-42 40 -108 64t-157 24q-37 0 -76.5 -4.5t-77.5 -13.5q-37 -9 -76 -24t-71 -32v750h756v-170h-572v-367q43 16 87 24 q41 7 88 7q121 0 213 -37t155 -100q68 -69 101.5 -162.5t33.5 -206.5q0 -118 -36 -213t-105 -162q-69 -66 -168.5 -100.5t-234.5 -34.5z" />
-<glyph unicode="6" d="M633 -29q-137 0 -228 48.5t-150 139.5q-63 98 -92.5 240t-29.5 325q0 206 36.5 353t108.5 245t177.5 148t242.5 50q41 0 79.5 -4t70.5 -11q40 -8 75.5 -20t67.5 -25v-186q-30 18 -65 33t-69 24q-35 10 -73 14.5t-73 4.5q-195 0 -293 -144q-99 -146 -99 -426 q48 100 133 154q45 28 94 40.5t109 12.5q100 0 183.5 -33t143.5 -99t89 -161t29 -213q0 -122 -30.5 -216.5t-90.5 -160.5t-146.5 -99.5t-199.5 -33.5zM633 129q65 0 115.5 22t84.5 67q68 89 68 261q0 173 -68 262q-35 46 -86 67t-113 21q-70 0 -121 -24.5t-85 -67.5 q-35 -44 -54.5 -108.5t-19.5 -149.5t19.5 -149.5t54.5 -108.5q34 -43 85 -67.5t120 -24.5z" />
-<glyph unicode="7" d="M854 1323h-715v170h940v-86l-534 -1407h-211z" />
-<glyph unicode="8" d="M615 -29q-116 0 -204.5 29.5t-150.5 83.5t-95.5 132.5t-33.5 183.5q0 159 80 260q79 100 229 133q-61 15 -113 46t-88 76q-38 47 -55.5 103t-17.5 119q0 85 30 155.5t91 123.5q59 51 140.5 77.5t188.5 26.5t189 -26.5t141 -77.5q60 -51 90.5 -121.5t30.5 -158.5 q0 -68 -18.5 -122t-53.5 -98t-85.5 -75t-116.5 -48q151 -33 230 -133t79 -258q0 -105 -33.5 -184.5t-95.5 -133.5q-63 -55 -153 -84t-205 -29zM616 868q121 0 186 63q64 63 64 183q0 121 -63 186q-64 64 -187 64q-121 0 -185 -64t-64 -186q0 -120 64 -183t185 -63zM619 129 q66 0 118 19t89 57t55 91.5t18 121.5q0 74 -19.5 127t-54.5 88q-75 76 -209 76q-135 0 -208 -75q-35 -36 -54.5 -89.5t-19.5 -123.5q0 -68 18.5 -122.5t55.5 -92.5q38 -39 91.5 -58t119.5 -19z" />
-<glyph unicode="9" d="M528 -29q-37 0 -75.5 3.5t-73.5 11.5q-32 7 -70 19t-73 26v186q32 -19 66.5 -33t67.5 -23q72 -20 147 -20q193 0 292 145q98 145 98 425q-23 -51 -58 -90t-74 -64q-83 -53 -206 -53q-100 0 -182 33.5t-141 99.5q-119 134 -119 373q0 118 29.5 214.5t92.5 164.5 q60 66 147 98.5t198 32.5q137 0 228 -48.5t150 -139.5q64 -100 93 -243t29 -323q0 -198 -34.5 -347t-109.5 -250q-74 -100 -181 -149t-241 -49zM593 662q70 0 121 24.5t85 67.5q35 44 54 108.5t19 149.5t-19 149.5t-54 108.5q-34 43 -85 67.5t-121 24.5q-62 0 -113 -21 t-86 -67q-68 -89 -68 -262t68 -262q34 -45 84.5 -66.5t114.5 -21.5z" />
-<glyph unicode=":" d="M620 776q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47zM620 60q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode=";" d="M610 703q-72 0 -120 50q-50 48 -50 128q0 78 50 128q48 49 120 49q73 0 121 -49q49 -49 49 -128q0 -80 -49 -128q-48 -50 -121 -50zM394 -361q256 114 265 351q-13 -3 -23 -4t-19 -1q-33 0 -63 10.5t-53 30.5q-46 43 -46 116q0 35 11.5 65.5t36.5 52.5q21 19 52.5 30.5 t69.5 11.5q89 0 139 -71q48 -71 48 -197q0 -180 -97 -310t-273 -194z" />
-<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
-<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
-<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
-<glyph unicode="?" d="M494 583q0 78 30 146q17 36 44.5 72t70.5 79l90 89q29 29 51.5 55.5t33.5 47.5q24 43 24 94q0 47 -18 82.5t-47 60.5q-33 28 -76.5 41.5t-96.5 13.5q-82 0 -169 -34q-45 -17 -91.5 -43t-95.5 -60v188q48 29 96.5 50.5t93.5 34.5q46 14 94.5 21t100.5 7q100 0 175.5 -25.5 t126.5 -70.5q54 -48 81.5 -113.5t27.5 -140.5q0 -80 -34 -145q-36 -67 -127 -157l-88 -86q-70 -68 -88 -108q-19 -40 -19 -83v-127h-190v111zM593 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31 q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
-<glyph unicode="@" d="M796 -319q-164 0 -308.5 57t-251.5 175q-101 112 -155 271t-54 363q0 188 46.5 345t140.5 272q96 118 224 174.5t271 56.5q114 0 199.5 -34t145.5 -98t92 -155.5t32 -202.5v-770h-144v111q-37 -62 -102 -97q-65 -34 -147 -34q-80 0 -148.5 31t-119.5 89q-48 54 -76.5 133 t-28.5 178q0 91 26 169t79 139q55 63 123.5 92t141.5 29q42 0 78.5 -9t70.5 -26q67 -35 103 -96v63q0 78 -22.5 142.5t-64.5 109.5q-42 46 -103.5 70t-141.5 24q-112 0 -209.5 -47.5t-170.5 -143.5q-71 -93 -108.5 -222.5t-37.5 -290.5q0 -170 42 -303.5t122 -227.5 q78 -93 189.5 -143.5t248.5 -50.5q29 0 56 2.5t54 7.5t54.5 12.5t56.5 18.5l48 -135q-34 -14 -64 -22.5t-60 -14.5q-31 -6 -60 -9t-67 -3zM803 260q52 0 96 20t76 58t47.5 91t15.5 116t-16 116.5t-48 91.5q-31 37 -75 56.5t-97 19.5q-105 0 -170 -77q-32 -38 -48.5 -89.5 t-16.5 -116.5q0 -66 16.5 -118.5t48.5 -90.5q65 -77 171 -77z" />
-<glyph unicode="A" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="B" d="M166 1493h442q228 0 353 -99q124 -99 124 -281q0 -70 -17 -123.5t-48 -91.5q-32 -38 -81 -63.5t-116 -35.5q148 -23 231 -125q41 -51 62 -117t21 -148q0 -202 -133 -305q-134 -104 -396 -104h-442v1493zM604 877q76 0 127.5 14t84.5 43q65 56 65 177q0 60 -16 100.5 t-48 65.5q-65 50 -213 50h-235v-450h235zM608 166q175 0 251 62q75 61 75 202q0 146 -79 215q-80 68 -247 68h-239v-547h239z" />
-<glyph unicode="C" d="M742 -29q-140 0 -252.5 50t-192.5 153q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247t192 153.5t252 50.5q48 0 92.5 -5.5t80.5 -14.5t79 -25.5t79 -36.5v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459 q0 -306 98 -458t295 -152q45 0 87.5 8t85.5 24q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
-<glyph unicode="D" d="M137 1493h303q342 0 504 -182t162 -566q0 -382 -162 -563q-162 -182 -504 -182h-303v1493zM436 166q255 0 356 126q51 63 76 175t25 280q0 165 -24.5 278.5t-75.5 176.5q-51 64 -141.5 94.5t-215.5 30.5h-96v-1161h96z" />
-<glyph unicode="E" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="F" d="M233 1493h879v-170h-676v-460h613v-170h-613v-693h-203v1493z" />
-<glyph unicode="G" d="M700 -29q-143 0 -253.5 52t-187.5 152q-78 102 -117.5 245t-39.5 324q0 186 41 329.5t119 243.5t189.5 151.5t251.5 51.5q100 0 184 -26q44 -14 85.5 -34.5t80.5 -46.5v-207q-43 41 -85.5 69t-80.5 45q-44 19 -90 27.5t-91 8.5q-97 0 -170 -37t-124 -115 q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -158 24 -270.5t72 -187.5q94 -150 294 -150q32 0 61.5 4t55.5 12q24 8 47 19.5t44 28.5v401h-217v166h410v-643q-81 -75 -182 -113q-102 -39 -222 -39z" />
-<glyph unicode="H" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
-<glyph unicode="I" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="J" d="M502 -29q-103 0 -195 22q-97 23 -198 68v236q91 -81 188 -121q99 -41 202 -41q67 0 118.5 18t80.5 57q56 74 56 277v836h-381v170h583v-1006q0 -144 -25.5 -240.5t-80.5 -157.5t-140.5 -89.5t-207.5 -28.5z" />
-<glyph unicode="K" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
-<glyph unicode="L" d="M215 1493h203v-1323h721v-170h-924v1493z" />
-<glyph unicode="M" d="M86 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
-<glyph unicode="N" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
-<glyph unicode="O" d="M616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141 q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="P" d="M172 1493h436q249 0 379 -113q67 -59 98 -143.5t31 -190.5q0 -220 -128 -333q-63 -56 -158 -84.5t-222 -28.5h-234v-600h-202v1493zM608 766q75 0 129 20t90 54q78 73 78 207q0 133 -78 207q-77 73 -219 73h-234v-561h234z" />
-<glyph unicode="Q" d="M655 -27h-8.5t-11.5 -1t-11.5 -1h-6.5q-125 0 -218.5 46t-157.5 146t-94 245t-30 337q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -293 -68 -473q-33 -88 -85 -152t-123 -100l285 -290h-236zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="R" d="M143 1493h416q246 0 377 -111q66 -56 98.5 -136t32.5 -181q0 -79 -20 -138.5t-60 -106.5q-80 -94 -227 -115q40 -10 74 -29.5t59 -45.5q28 -29 60.5 -81.5t76.5 -140.5l203 -408h-217l-178 377q-39 83 -73.5 134t-64.5 74q-31 24 -72.5 35t-88.5 11h-193v-631h-203v1493z M567 797q145 0 216 65q35 32 53 82t18 115t-18.5 115t-56.5 85q-36 32 -90.5 50t-129.5 18h-213v-530h221z" />
-<glyph unicode="S" d="M584 -29q-53 0 -107 5.5t-106 16.5t-107 29t-106 39v215q58 -37 112 -63.5t106 -43.5q102 -34 205 -34q75 0 135.5 17t103.5 51q44 35 64.5 84t20.5 113q0 56 -14.5 96t-43.5 69q-32 33 -80.5 54t-123.5 38l-108 25q-101 23 -176.5 57t-125.5 85q-94 94 -94 255 q0 102 35 183t100 139q64 57 153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-48 31 -93.5 52.5t-90.5 36.5q-93 30 -186 30q-68 0 -127 -16t-101 -50t-62 -81t-20 -104q0 -51 14.5 -85.5t40.5 -59.5q31 -29 79.5 -50t123.5 -38l106 -24q106 -24 181 -62.5 t124 -91.5q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-66 -56 -162.5 -84t-220.5 -28z" />
-<glyph unicode="T" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
-<glyph unicode="U" d="M616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154 v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="V" d="M57 1493h209l350 -1323l351 1323h209l-437 -1493h-245z" />
-<glyph unicode="W" d="M0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
-<glyph unicode="X" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
-<glyph unicode="Y" d="M514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="Z" d="M110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
-<glyph unicode="[" d="M423 1636h424v-143h-240v-1620h240v-143h-424v1906z" />
-<glyph unicode="\" d="M102 1493h191l786 -1683h-190z" />
-<glyph unicode="]" d="M386 -127h240v1619h-240v143h424v-1905h-424v143z" />
-<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
-<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
-<glyph unicode="`" d="M604 1262l-325 376h198l281 -376h-154z" />
-<glyph unicode="a" d="M513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5 q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106 q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="b" d="M676 -29q-51 0 -93 10.5t-83 33.5q-77 44 -123 126l-18 -141h-166v1556h184v-579q43 82 122 126q77 44 181 44q96 0 176.5 -38t139.5 -116q58 -78 87 -187t29 -245q0 -274 -116 -432q-57 -78 -137 -118t-183 -40zM650 127q133 0 200 109q68 110 68 323t-68 323 q-67 109 -201 109t-203 -109q-69 -110 -69 -323t69 -322q69 -110 204 -110z" />
-<glyph unicode="c" d="M712 -29q-125 0 -227.5 39.5t-174.5 116.5q-73 78 -109.5 186.5t-36.5 245.5q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178 t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
-<glyph unicode="d" d="M559 -29q-106 0 -186 42t-134 116q-58 79 -87 188.5t-29 244.5q0 133 28.5 242.5t87.5 187.5t141 116.5t179 38.5q102 0 178 -43q77 -44 121 -127v579h184v-1556h-166l-18 141q-23 -40 -52 -71.5t-70 -54.5q-76 -44 -177 -44zM585 127q135 0 204 110q69 109 69 322 t-69 323q-32 51 -82 80t-121 29q-134 0 -201 -109q-68 -110 -68 -323t68 -323q35 -57 86 -83t114 -26z" />
-<glyph unicode="e" d="M677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183 q-53 -22 -103 -38t-99 -27q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="f" d="M466 977h-299v143h299v78q0 185 85 271q84 87 263 87h221v-153h-209q-54 0 -86.5 -10.5t-50.5 -29.5q-39 -41 -39 -144v-99h385v-143h-385v-977h-184v977z" />
-<glyph unicode="g" d="M601 -440q-39 0 -78 3.5t-81 10.5q-41 7 -81.5 17t-84.5 24v182q49 -23 94.5 -40t83.5 -28q78 -22 151 -22q74 0 126 20t87 62q68 80 68 256v133q-43 -93 -120 -140q-76 -46 -184 -46q-197 0 -314 157t-117 420t117 421q59 79 136.5 118t178.5 39q52 0 97.5 -10.5 t83.5 -32.5q76 -44 122 -133l18 145h166v-1044q0 -251 -119 -382q-118 -130 -350 -130zM622 145q130 0 197 109t67 315q0 208 -67 315q-35 57 -85.5 82t-112.5 25q-134 0 -205 -107t-71 -316q0 -205 72 -314t205 -109z" />
-<glyph unicode="h" d="M195 1556h184v-604q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1556z" />
-<glyph unicode="i" d="M523 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="j" d="M652 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM238 -270h234q90 0 135 62q45 63 45 188v997h-317v143h501v-1140q0 -95 -22 -171t-67 -130t-109.5 -79.5t-145.5 -25.5h-254v156z" />
-<glyph unicode="k" d="M226 1556h190v-901l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1556z" />
-<glyph unicode="l" d="M821 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v1014h-295v144h479v-1158q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
-<glyph unicode="m" d="M109 1120h151l16 -96q33 60 83 92q49 31 113 31q74 0 126 -35q49 -34 78 -106q35 73 87 107t126 34q69 0 117 -26.5t74 -77.5q55 -104 55 -394v-649h-168v641q0 64 -1.5 112t-5 83.5t-8.5 60t-12 39.5q-11 26 -34 41.5t-65 15.5q-38 0 -64 -14.5t-41 -46.5 q-17 -35 -24 -103.5t-7 -187.5v-641h-168v641q0 73 -2 123.5t-6 84.5t-9.5 54.5t-11.5 33.5q-13 26 -37.5 41t-63.5 15q-42 0 -65.5 -16.5t-35.5 -43.5q-7 -15 -12.5 -38t-9.5 -57.5t-6 -82.5t-2 -114v-641h-167v1120z" />
-<glyph unicode="n" d="M195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
-<glyph unicode="o" d="M616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323 q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="p" d="M190 1120h167l18 -143q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1546zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
-<glyph unicode="q" d="M870 139q-22 -40 -51 -72t-70 -55q-77 -45 -180 -45q-95 0 -175.5 38t-140.5 118q-53 71 -84.5 176t-31.5 252q0 134 28.5 245t87.5 191q58 78 138 117t179 39q102 0 178 -43q38 -22 68.5 -53.5t53.5 -73.5l18 143h167v-1546h-185v569zM599 123q66 0 117 27t86 83 q68 110 68 322q0 213 -68 323q-35 56 -85.5 82.5t-116.5 26.5q-133 0 -200 -109q-68 -110 -68 -323t68 -323q67 -109 199 -109z" />
-<glyph unicode="r" d="M302 1120h167l18 -219q47 119 142 183q94 63 225 63q68 0 128 -17q29 -8 58 -21.5t55 -31.5v-188q-57 46 -120 67q-62 21 -135 21q-171 0 -262 -108q-91 -107 -91 -312v-557h-185v1120z" />
-<glyph unicode="s" d="M590 -29q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105 q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5l74 -14q72 -14 123 -40t85 -64q70 -77 70 -204 q0 -86 -30.5 -149.5t-87.5 -108.5q-61 -48 -142.5 -71t-179.5 -23z" />
-<glyph unicode="t" d="M807 -4q-206 0 -292 83q-85 82 -85 286v612h-299v143h299v293l184 80v-373h418v-143h-418v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-225v0z" />
-<glyph unicode="u" d="M534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="v" d="M100 1120h191l325 -940l326 940h191l-398 -1120h-237z" />
-<glyph unicode="w" d="M0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
-<glyph unicode="x" d="M516 584l-401 536h204l297 -405l295 405h207l-401 -536l440 -584h-213l-328 449l-327 -449h-213z" />
-<glyph unicode="y" d="M184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5 q-69 -39 -161 -39h-148v154z" />
-<glyph unicode="z" d="M203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
-<glyph unicode="{" d="M908 -253q-248 0 -333 74q-85 73 -85 295v239q0 150 -53 209q-54 58 -194 58h-116v143h116q141 0 194 57q53 58 53 207v240q0 222 85 295q83 73 333 73h64v-143h-70q-140 0 -182 -43q-43 -43 -43 -186v-248q0 -158 -45 -228q-22 -34 -61 -58.5t-95 -37.5q111 -27 156 -98 t45 -227v-248q0 -143 43 -186q42 -43 182 -43h70v-144h-64v0z" />
-<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
-<glyph unicode="}" d="M261 -118h68q140 0 184 44q43 43 43 185v248q0 156 45 227t156 98q-110 26 -155 96q-22 34 -34 88.5t-12 139.5v248q0 142 -43 185q-44 44 -184 44h-68v143h62q250 0 333 -73q84 -74 84 -295v-240q0 -78 21 -127.5t63 -79.5q40 -29 97.5 -43t126.5 -14h64v-143h-64 q-71 0 -128 -14.5t-96 -43.5q-42 -31 -63 -81t-21 -128v-239q0 -222 -84 -295q-85 -74 -333 -74h-62v144z" />
-<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
-<glyph unicode="&#xa0;" />
-<glyph unicode="&#xa1;" d="M626 1498q69 0 116 -48q23 -23 34.5 -53t11.5 -72q0 -78 -46 -124q-47 -47 -116 -47t-116 47q-46 47 -46 124q0 78 46 125q46 48 116 48zM689 952l67 -567v-445h-265v445l77 567h121z" />
-<glyph unicode="&#xa2;" d="M698 -27q-112 11 -200 54.5t-154 124.5q-63 77 -98.5 181.5t-35.5 224.5q0 122 36.5 227.5t98.5 181.5q61 75 148 121t205 57v287h103v-287q29 -2 61 -7t61 -13t65.5 -20t72.5 -28v-172q-30 18 -65 34.5t-67 27.5q-35 12 -66 18t-62 8v-870q32 2 64 9.5t65 18.5 q31 11 65 26.5t66 35.5v-172q-46 -20 -76.5 -30t-61.5 -18q-65 -17 -122 -20v-286h-103v286zM698 991q-133 -12 -212 -130q-80 -119 -80 -302t80 -301q41 -60 93.5 -92t118.5 -39v864z" />
-<glyph unicode="&#xa3;" d="M139 170h236v465h-199v143h199v238q0 254 110 379q55 63 137.5 94t187.5 31q36 0 72.5 -3.5t68.5 -10.5q24 -5 62.5 -16.5t78.5 -27.5v-184q-34 24 -66.5 40.5t-58.5 25.5q-63 22 -130 22q-135 0 -198 -89q-64 -89 -64 -282v-217h371v-143h-371v-465h537v-170h-973v170z " />
-<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
-<glyph unicode="&#xa5;" d="M514 524h-399v111h399v35l-90 151h-309v111h243l-321 561h215l364 -659l363 659h217l-330 -561h252v-111h-315l-86 -151v-35h401v-111h-401v-524h-203v524z" />
-<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
-<glyph unicode="&#xa7;" d="M595 -195q-39 0 -79 4t-72 10q-36 7 -78.5 18.5t-86.5 25.5v164q89 -40 161 -59t133 -19q101 0 157 42q28 21 42 50.5t14 61.5q0 30 -13 57.5t-40 55t-69 56.5t-99 62l-24 14q-100 58 -168 103t-110 94q-64 76 -64 179q0 89 47 162q46 71 137 120q-60 43 -89 100 q-30 57 -30 124q0 66 25.5 120t74.5 92q52 41 121 59.5t144 18.5q38 0 78.5 -4t72.5 -10q35 -7 75.5 -18.5t80.5 -25.5v-164q-84 40 -154 59t-131 19q-51 0 -87 -10.5t-61 -29.5q-27 -20 -40.5 -48.5t-13.5 -55.5q0 -49 47.5 -99.5t156.5 -112.5l41 -23q60 -33 104.5 -61 t77 -51.5t55.5 -44t39 -39.5q33 -38 49.5 -81.5t16.5 -97.5q0 -89 -45 -159q-46 -70 -139 -123q62 -53 90 -106q14 -26 21.5 -55.5t7.5 -67.5q0 -67 -25.5 -123.5t-76.5 -98.5q-102 -84 -274 -84zM750 410q62 46 92 90q30 45 30 92q0 41 -19.5 78t-51.5 66q-74 69 -316 200 q-32 -24 -54 -45.5t-38 -44.5q-14 -21 -22.5 -43t-8.5 -50q0 -39 18 -73.5t54 -68.5q19 -18 46 -38.5t64.5 -44.5t88 -53t117.5 -65z" />
-<glyph unicode="&#xa8;" d="M492 1552q30 0 30 -30v-142q0 -30 -30 -30h-143q-30 0 -30 30v142q0 30 30 30h143zM883 1552q30 0 30 -30v-142q0 -30 -30 -30h-142q-30 0 -30 30v142q0 30 30 30h142z" />
-<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
-<glyph unicode="&#xaa;" d="M547 698q-126 0 -202 68q-75 67 -75 183q0 129 93 200q94 70 266 70h182v4q0 44 -14 78t-46 58q-35 26 -79 36t-89 10q-33 0 -62.5 -4.5t-58.5 -12.5q-62 -18 -130 -51v127q34 14 69.5 25t66.5 17q34 7 65.5 10.5t69.5 3.5q177 0 264 -86q44 -43 65.5 -109t21.5 -160 v-448h-129l-14 112q-50 -65 -114 -98q-33 -17 -69.5 -25t-80.5 -8zM576 817q54 0 96 18.5t74 53.5q65 71 65 186v29h-127q-145 0 -206 -34q-62 -35 -62 -112q0 -36 12 -60.5t32 -41.5q43 -39 116 -39zM293 592h668v-123h-668v123z" />
-<glyph unicode="&#xab;" d="M79 559v82l469 418v-191l-301 -268l301 -268v-191zM533 559v82l469 418v-191l-301 -268l301 -268v-191z" />
-<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
-<glyph unicode="&#xad;" d="M356 643h521v-164h-521v164z" />
-<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
-<glyph unicode="&#xaf;" d="M915 1378h-598v148h598v-148z" />
-<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
-<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
-<glyph unicode="&#xb2;" d="M322 1230l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5 l-211 -205h410v-114h-571v110z" />
-<glyph unicode="&#xb3;" d="M562 1109q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5z" />
-<glyph unicode="&#xb4;" d="M629 1262h-154l281 376h198z" />
-<glyph unicode="&#xb5;" d="M165 1120h184v-696q0 -78 16 -130t44 -87q60 -76 173 -76q62 0 110 21t80 64q64 85 64 251v653h185v-864q0 -59 16 -87q8 -14 20 -21t26 -7q12 0 27 5q13 4 42 18v-148q-19 -11 -37.5 -20t-34.5 -14q-36 -11 -68 -11q-62 0 -99 40q-38 40 -50 118q-47 -81 -112 -119 q-66 -39 -157 -39q-90 0 -154 38t-108 118v-555h-167v1548z" />
-<glyph unicode="&#xb6;" d="M557 649q-214 16 -333 128q-57 54 -87.5 125.5t-30.5 167.5q0 191 131 307t345 116h448v-1690h-141v1567h-191v-1567h-141v846z" />
-<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
-<glyph unicode="&#xb8;" d="M700 0q55 -61 83 -115q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-23 43 -66 105h118v0z" />
-<glyph unicode="&#xb9;" d="M362 1230h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110z" />
-<glyph unicode="&#xba;" d="M616 698q-94 0 -160 31t-111 80q-47 51 -74 126t-27 173q0 92 25 167.5t76 132.5q47 52 114 82t158 30q90 0 157.5 -30t114.5 -83q100 -112 100 -299q0 -186 -100 -298q-47 -52 -114.5 -82t-158.5 -30zM616 815q49 0 90 19.5t70 58.5q27 36 42.5 90t15.5 127 q0 137 -57 215q-27 37 -66.5 57.5t-93.5 20.5q-103 0 -160 -77q-58 -79 -58 -218q0 -69 14.5 -123.5t43.5 -93.5q58 -76 159 -76zM276 592h676v-123h-676v123z" />
-<glyph unicode="&#xbb;" d="M231 332l301 268l-301 268v191l469 -418v-82l-469 -418v191zM685 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
-<glyph unicode="&#xbc;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
-<glyph unicode="&#xbd;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM523 -160l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5 t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5l-211 -205h410v-114h-571v110z" />
-<glyph unicode="&#xbe;" d="M335 809q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5zM27 612l1060 262l27 -108l-1063 -262z M839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
-<glyph unicode="&#xbf;" d="M656 1252q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM602 -27q-188 0 -298 95q-54 47 -82.5 112t-28.5 144q0 42 8.5 76.5t25.5 67.5t47.5 71t79.5 86 l88 86q30 29 52.5 55t33.5 51q19 41 19 105v5q1 11 1.5 21.5t0.5 20.5v123h190v-154q0 -99 -30 -166q-30 -68 -115 -151l-90 -89q-20 -20 -46 -48t-40 -55q-13 -24 -18 -50.5t-5 -46.5q0 -43 18 -79.5t47 -60.5q33 -28 77.5 -41.5t95.5 -13.5q42 0 83 9t86 26q91 35 187 102 v-188q-50 -30 -98 -51t-91 -34q-48 -14 -98.5 -21t-99.5 -7z" />
-<glyph unicode="&#xc0;" d="M358 1849h184l197 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc1;" d="M691 1856h186l-229 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc2;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc3;" d="M287 1587q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc4;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
-<glyph unicode="&#xc5;" d="M465 1399q-30 17 -52.5 41t-37.5 52q-17 31 -25 64.5t-8 68.5q0 59 21.5 109.5t58.5 87.5t87 58t107 21q58 0 108.5 -21.5t87.5 -58.5q35 -35 57 -85t22 -111q0 -72 -32 -131q-31 -58 -91 -95l428 -1399h-209l-110 389h-523l-108 -389h-209zM616 1475q34 0 61 12t47 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM829 551l-213 760l-213 -760h426z" />
-<glyph unicode="&#xc6;" d="M410 1493h751v-170h-338v-442h307v-170h-307v-541h357v-170h-543v383h-352l-101 -383h-184zM637 551v772h-107l-202 -772h309z" />
-<glyph unicode="&#xc7;" d="M741 1356q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-22 -5 -45.5 -9.5t-47.5 -6.5q41 -50 61 -90q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57 q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-129 8 -230.5 59t-173.5 143q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52 q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8z" />
-<glyph unicode="&#xc8;" d="M395 1856h184l197 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xc9;" d="M690 1856h186l-229 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xca;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xcb;" d="M367 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM759 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
-<glyph unicode="&#xcc;" d="M372 1856h184l197 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xcd;" d="M691 1856h186l-229 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xce;" d="M521 1852h189l211 -266h-140l-166 178l-165 -178h-140zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xcf;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
-<glyph unicode="&#xd0;" d="M133 709h-125v149h125v635h303q342 0 504 -182t162 -565t-162 -564q-83 -93 -209.5 -137.5t-294.5 -44.5h-303v709zM436 166q69 0 124 8.5t98 24.5t75.5 39.5t57.5 54.5q52 65 77 175t25 280q0 87 -6.5 157t-19 125t-31.5 96.5t-44 73.5q-53 67 -139.5 97t-216.5 30h-96 v-469h264v-149h-264v-543h96z" />
-<glyph unicode="&#xd1;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
-<glyph unicode="&#xd2;" d="M382 1856h184l197 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd3;" d="M701 1856h186l-229 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd4;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd5;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469 q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd6;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46 t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
-<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
-<glyph unicode="&#xd8;" d="M8 0l178 252q-17 39 -28.5 87t-21.5 117q-9 63 -14 131.5t-5 152.5q0 203 30.5 347t93.5 241q64 99 157 145.5t217 46.5q60 0 109.5 -10.5t93.5 -30.5q85 -40 143 -121l139 201l100 -74l-168 -238q21 -41 36.5 -95t26.5 -115q10 -58 15.5 -132.5t5.5 -160.5 q0 -389 -123 -581q-60 -94 -153.5 -143t-227.5 -49q-57 0 -108 9.5t-99 31.5q-90 40 -151 121l-143 -203zM842 1190q-13 42 -34.5 73t-47.5 51q-29 22 -66 32t-79 10q-84 0 -136.5 -38t-84.5 -110q-17 -38 -29.5 -87t-20.5 -112.5t-12 -143.5t-4 -179v-39t0.5 -32t1 -29 t1.5 -30q1 -14 1.5 -32t5.5 -53zM617 135q82 0 135.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 163.5q0 52 -1.5 96.5t-3.5 78.5q-2 33 -5.5 60t-9.5 53l-514 -733q30 -78 96 -123q34 -23 71 -34t79 -11z" />
-<glyph unicode="&#xd9;" d="M377 1852h184l197 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xda;" d="M672 1856h186l-229 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xdb;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30 q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xdc;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95 q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71 q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
-<glyph unicode="&#xdd;" d="M672 1852h186l-229 -264h-154zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="&#xde;" d="M201 1493h202v-270h254q259 0 384 -105q124 -105 124 -324q0 -112 -31.5 -191.5t-92.5 -130.5q-125 -105 -384 -105h-254v-367h-202v1493zM637 532q157 0 237 66q78 66 78 197q0 63 -19 113.5t-59 83.5q-36 30 -95 47.5t-142 17.5h-234v-525h234z" />
-<glyph unicode="&#xdf;" d="M731 -29q-34 0 -70 3t-68 9q-23 5 -60 14t-74 23v164q75 -31 143 -46q66 -15 126 -15q55 0 97.5 12.5t73.5 35.5q35 26 49.5 60t14.5 79q0 32 -7.5 57.5t-26.5 51.5q-25 35 -63.5 64t-87.5 58l-67 39q-47 27 -81 59t-56 64q-23 34 -34.5 68.5t-11.5 79.5q0 60 20 114 t61 97q39 42 97.5 72t139.5 48q-2 107 -62 164q-62 57 -174 57q-121 0 -178 -65q-57 -66 -57 -205v-1133h-187v1137q0 212 105 316q53 52 133.5 77.5t183.5 25.5q209 0 313 -110q106 -112 107 -327q-154 -13 -239 -76q-84 -62 -84 -160q0 -28 7 -48.5t21 -40.5 q17 -24 40 -42.5t54 -38.5l58 -37q79 -50 128.5 -90.5t78.5 -84.5q28 -42 41.5 -91.5t13.5 -103.5q0 -74 -26 -137t-86 -110q-55 -43 -133 -65.5t-173 -22.5z" />
-<glyph unicode="&#xe0;" d="M282 1673h198l281 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe1;" d="M759 1673h198l-325 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe2;" d="M546 1673h147l246 -376h-139l-181 245l-180 -245h-139zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe3;" d="M290 1339q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe4;" d="M352 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM744 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29 q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56 q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5 t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe5;" d="M619 1249q-114 0 -194 80t-80 195t80 195q79 79 194 79q117 0 196 -79t79 -195t-79 -195q-80 -80 -196 -80zM619 1372q64 0 108 44t44 108q0 63 -44 107t-109 44q-63 0 -106 -43q-44 -44 -44 -108t44 -108t107 -44zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5 q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102 t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56 q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
-<glyph unicode="&#xe6;" d="M358 -29q-154 0 -235 86q-43 45 -62.5 107.5t-19.5 139.5q0 85 23.5 151t76.5 113q101 89 291 89h117v88q0 120 -49 184t-143 64q-29 0 -61.5 -5.5t-61.5 -15.5q-30 -10 -63.5 -25.5t-64.5 -35.5v168q38 17 74 30.5t69 21.5q64 16 127 16q91 0 152 -31q61 -32 99 -96 q33 61 99 94t156 33q85 0 147.5 -29t98.5 -89q72 -119 72 -425v-90h-491q-1 -8 -1 -16v-16q0 -3 -0.5 -9.5t-0.5 -29.5q0 -98 13.5 -155.5t37.5 -91.5q27 -38 68 -54.5t97 -16.5q75 0 141 26q65 26 114 76v-172q-29 -21 -60.5 -37t-60.5 -26t-65 -15.5t-75 -5.5 q-51 0 -97.5 10.5t-83.5 30.5q-75 41 -107 119q-39 -80 -105 -120q-34 -20 -74.5 -30t-91.5 -10zM1036 657v52q0 78 -10 132t-28 86q-17 30 -48 48t-78 18q-87 0 -125 -68t-38 -225v-43h327zM375 125q94 0 131 67q17 32 27 90t10 160v72h-49q-169 0 -229 -45 q-30 -23 -45 -62.5t-15 -93.5q0 -91 45 -139q45 -49 125 -49z" />
-<glyph unicode="&#xe7;" d="M718 991q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-20 -5 -40.5 -9.5t-43.5 -6.5q40 -48 62 -91q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74 t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-112 6 -204.5 45t-159.5 110q-72 77 -109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5 t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29z" />
-<glyph unicode="&#xe8;" d="M294 1673h198l281 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xe9;" d="M771 1673h198l-325 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xea;" d="M558 1673h147l246 -376h-139l-181 245l-180 -245h-139zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283 q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xeb;" d="M364 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM756 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5 q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5 q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
-<glyph unicode="&#xec;" d="M218 1647h198l281 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xed;" d="M794 1647h198l-325 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xee;" d="M514 1648h147l246 -376h-139l-181 245l-180 -245h-139zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xef;" d="M328 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM720 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187 q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
-<glyph unicode="&#xf0;" d="M617 -29q-116 0 -204.5 37.5t-150.5 110.5q-63 75 -94 179t-31 235q0 132 31.5 237t93.5 179t152.5 110.5t216.5 36.5q18 0 23.5 -0.5t8.5 -0.5q11 -1 14.5 -1t5 -0.5t3.5 -0.5t10 -1l-10.5 14t-17.5 23t-20.5 27t-20.5 26q-18 23 -36.5 44.5t-37.5 43.5l-279 -92l-30 98 l237 80l-182 200h219l127 -145l289 94l33 -98l-250 -80q196 -212 288 -402q46 -96 68.5 -192.5t22.5 -204.5q0 -128 -31 -231t-94 -178q-64 -76 -153 -112t-201 -36zM616 127q138 0 211 106q37 54 55.5 129t18.5 169q0 60 -7.5 112.5t-21.5 103.5t-34 93.5t-45 77.5 q-17 7 -39.5 12.5t-36.5 7.5q-41 6 -79 6q-73 0 -131.5 -25t-97.5 -79t-58 -131.5t-19 -174.5q0 -194 74 -301q73 -106 210 -106z" />
-<glyph unicode="&#xf1;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
-<glyph unicode="&#xf2;" d="M279 1673h198l281 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf3;" d="M756 1673h198l-325 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf4;" d="M543 1673h147l246 -376h-139l-181 245l-180 -245h-139zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112 t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf5;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38z M616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf6;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436 q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
-<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
-<glyph unicode="&#xf8;" d="M47 -20l170 200q-23 42 -36 82t-23 87q-11 51 -16 101t-5 109q0 285 123 437q123 151 355 151q49 0 95.5 -6.5t84.5 -20.5q37 -13 72.5 -34t66.5 -50l147 176l93 -77l-164 -195q41 -65 64 -162q11 -49 16.5 -103.5t5.5 -113.5q0 -143 -30.5 -254t-92.5 -186 q-123 -150 -358 -150q-55 0 -98.5 8t-81.5 22q-41 15 -73.5 36t-62.5 53l-160 -186zM817 897q-35 49 -84 71q-51 23 -117 23q-139 0 -213 -107q-36 -52 -55.5 -127t-19.5 -178q0 -28 1.5 -54.5t5.5 -55.5q7 -59 21 -129zM615 127q142 0 214 110q36 55 54 135.5t18 183.5 q0 30 -1.5 56.5t-4.5 54.5q-2 21 -6 49t-12 64l-463 -559q22 -28 42.5 -43.5t44.5 -26.5q25 -11 52 -17.5t62 -6.5z" />
-<glyph unicode="&#xf9;" d="M279 1644h198l281 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfa;" d="M756 1644h198l-325 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfb;" d="M543 1644h147l246 -376h-139l-181 245l-180 -245h-139zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfc;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5 t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
-<glyph unicode="&#xfd;" d="M756 1646h198l-325 -376h-154zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-33 -84 -52.5 -135t-31.5 -82.5t-19 -50.5t-14 -40q-25 -70 -45 -121.5t-36.5 -89t-30 -63.5t-23.5 -45q-31 -54 -57 -79.5 t-55 -41.5q-35 -19 -78 -28.5t-84 -9.5h-148v154z" />
-<glyph unicode="&#xfe;" d="M190 1567h185v-590q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1993zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
-<glyph unicode="&#xff;" d="M349 1320q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1320q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195 l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5q-69 -39 -161 -39h-148v154z" />
-<glyph unicode="&#x152;" d="M612 0q-158 0 -257.5 43.5t-158.5 123.5q-64 87 -94 229t-30 351q0 111 8 200t24 160t38.5 125t52.5 95q60 82 161 124t256 42h594v-170h-358v-442h328v-170h-328v-541h369v-170h-605zM651 170v1153h-61q-177 0 -246 -115q-34 -57 -52 -168t-18 -295q0 -180 17.5 -291 t52.5 -169q69 -115 246 -115h61z" />
-<glyph unicode="&#x153;" d="M369 -29q-99 0 -163.5 36t-105.5 102q-45 72 -65.5 181.5t-20.5 267.5q0 84 5.5 152.5t16.5 123.5t27 98t36 76q43 70 110 104.5t164 34.5q90 0 153 -31q64 -32 111 -96q17 29 43 53.5t59 41.5t72 24.5t82 7.5q173 0 245 -118q72 -119 72 -425v-90h-491v-84 q0 -162 50 -235q25 -36 64 -54t99 -18q37 0 74 6.5t70 20.5q66 26 112 77v-172q-30 -23 -62.5 -39.5t-58.5 -24.5q-27 -9 -63.5 -14.5t-76.5 -5.5q-51 0 -92 9t-76 25t-65.5 39.5t-56.5 59.5q-30 -38 -58 -61.5t-58 -38.5q-32 -17 -69 -25t-83 -8zM372 123q103 0 144 84 q10 21 17.5 50.5t13 71t8 96t2.5 125.5q0 138 -10 223.5t-31 133.5t-56.5 68t-86.5 20q-55 0 -89 -21.5t-53 -61.5q-10 -21 -17.5 -50t-13 -71t-8 -99.5t-2.5 -133.5q0 -74 2.5 -130t8 -98t13 -72t17.5 -51q22 -46 57.5 -65t83.5 -19zM1047 657v12.5t1 17.5t1 15v7 q0 152 -40 219t-126 67q-87 0 -125 -68q-39 -69 -39 -227v-43h328z" />
-<glyph unicode="&#x178;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
-<glyph unicode="&#x2c6;" d="M936 1262h-139l-181 245l-180 -245h-139l246 376h147z" />
-<glyph unicode="&#x2dc;" d="M555 1425q-22 21 -37 30q-17 9 -31 9q-38 0 -56 -37q-19 -39 -20 -118h-124q2 135 52 208q51 74 142 74q38 0 71 -14q30 -13 69 -47l57 -55q22 -20 38 -29q16 -10 29 -10q39 0 57 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -142 -74q-38 0 -71 14q-30 13 -69 47 l-57 55v0z" />
-<glyph unicode="&#x2000;" horiz-adv-x="988" />
-<glyph unicode="&#x2001;" horiz-adv-x="1976" />
-<glyph unicode="&#x2002;" horiz-adv-x="988" />
-<glyph unicode="&#x2003;" horiz-adv-x="1976" />
-<glyph unicode="&#x2004;" horiz-adv-x="658" />
-<glyph unicode="&#x2005;" horiz-adv-x="494" />
-<glyph unicode="&#x2006;" horiz-adv-x="329" />
-<glyph unicode="&#x2007;" horiz-adv-x="329" />
-<glyph unicode="&#x2008;" horiz-adv-x="247" />
-<glyph unicode="&#x2009;" horiz-adv-x="395" />
-<glyph unicode="&#x200a;" horiz-adv-x="109" />
-<glyph unicode="&#x2010;" d="M206 683h821v-164h-821v164z" />
-<glyph unicode="&#x2011;" d="M206 683h821v-164h-821v164z" />
-<glyph unicode="&#x2012;" d="M206 683h821v-164h-821v164z" />
-<glyph unicode="&#x2013;" d="M0 633h1233v-141h-1233v141z" />
-<glyph unicode="&#x2014;" d="M0 633h1233v-141h-1233v141z" />
-<glyph unicode="&#x2018;" d="M463 1174l196 382h154l-98 -382v-207h-252v207z" />
-<glyph unicode="&#x2019;" d="M561 1350v206h252v-206l-197 -383h-153z" />
-<glyph unicode="&#x201a;" d="M502 96v207h252v-207l-197 -383h-154z" />
-<glyph unicode="&#x201c;" d="M211 1174l199 382h153l-98 -382v-207h-254v207zM672 1174l196 382h154l-98 -382v-207h-252v207z" />
-<glyph unicode="&#x201d;" d="M309 1350v206h252v-206l-196 -383h-154zM768 1350v206h252v-206l-197 -383h-153z" />
-<glyph unicode="&#x201e;" d="M309 96v207h252v-207l-196 -383h-154zM768 96v207h252v-207l-197 -383h-153z" />
-<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -60 -21.5 -113t-65.5 -97q-44 -43 -98 -64.5t-114 -21.5z" />
-<glyph unicode="&#x2026;" d="M110 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM519 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM929 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
-<glyph unicode="&#x202f;" horiz-adv-x="395" />
-<glyph unicode="&#x2039;" d="M256 559v82l469 418v-191l-301 -268l301 -268v-191z" />
-<glyph unicode="&#x203a;" d="M510 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
-<glyph unicode="&#x205f;" horiz-adv-x="494" />
-<glyph unicode="&#x20ac;" d="M755 -29q-118 0 -207 37.5t-155 106.5t-112.5 174t-69.5 254h-174l49 110h117q-1 6 -1 14t-1 18l-2 62l2 65q0 5 1 15.5t1 12.5h-166l49 108h125q24 143 71 250t114 178q136 144 359 144q84 0 159 -20q72 -19 147 -62v-207q-33 31 -70 54.5t-75 40.5q-78 34 -160 34 q-144 0 -231 -104q-87 -103 -111 -308h481l-49 -108h-442q-1 -9 -1.5 -19.5t-0.5 -22.5v-6.5t-0.5 -9t-0.5 -15v-25.5v-24.5t0.5 -13t0.5 -6.5v-3v-20.5t1 -21.5h361l-49 -110h-301q22 -202 110 -307q87 -105 233 -105q81 0 159 34q42 18 77 41.5t68 53.5v-207 q-73 -43 -146 -62q-75 -20 -160 -20z" />
-<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
-<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
-</font>
-</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/hack-bold-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/hack-bold-webfont.ttf
deleted file mode 100755
index ecd9950..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/hack-bold-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/hack-bolditalic-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/hack-bolditalic-webfont.ttf
deleted file mode 100755
index c17383a..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/hack-bolditalic-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/hack-italic-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/hack-italic-webfont.ttf
deleted file mode 100755
index 1266f84..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/hack-italic-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/hack-regular-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/hack-regular-webfont.ttf
deleted file mode 100755
index 16c1a01..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/hack-regular-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf
deleted file mode 100755
index 16325d5..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf
deleted file mode 100755
index b233262..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf
deleted file mode 100755
index 7878678..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf b/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf
deleted file mode 100755
index 0566ead..0000000
Binary files a/pagure/static/hack_fonts/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/hack-bold-webfont.woff b/pagure/static/hack_fonts/fonts/woff/hack-bold-webfont.woff
deleted file mode 100755
index 0eee5ab..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/hack-bold-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/hack-bolditalic-webfont.woff b/pagure/static/hack_fonts/fonts/woff/hack-bolditalic-webfont.woff
deleted file mode 100755
index 486912c..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/hack-bolditalic-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/hack-italic-webfont.woff b/pagure/static/hack_fonts/fonts/woff/hack-italic-webfont.woff
deleted file mode 100755
index 6121166..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/hack-italic-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/hack-regular-webfont.woff b/pagure/static/hack_fonts/fonts/woff/hack-regular-webfont.woff
deleted file mode 100755
index 334f02e..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/hack-regular-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/latin/hack-bold-latin-webfont.woff b/pagure/static/hack_fonts/fonts/woff/latin/hack-bold-latin-webfont.woff
deleted file mode 100755
index 247cdeb..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/latin/hack-bold-latin-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/latin/hack-bolditalic-latin-webfont.woff b/pagure/static/hack_fonts/fonts/woff/latin/hack-bolditalic-latin-webfont.woff
deleted file mode 100755
index 08c1a0a..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/latin/hack-bolditalic-latin-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/latin/hack-italic-latin-webfont.woff b/pagure/static/hack_fonts/fonts/woff/latin/hack-italic-latin-webfont.woff
deleted file mode 100755
index c200b42..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/latin/hack-italic-latin-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff/latin/hack-regular-latin-webfont.woff b/pagure/static/hack_fonts/fonts/woff/latin/hack-regular-latin-webfont.woff
deleted file mode 100755
index 9e20c8e..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff/latin/hack-regular-latin-webfont.woff and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/hack-bold-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/hack-bold-webfont.woff2
deleted file mode 100755
index e581886..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/hack-bold-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/hack-bolditalic-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/hack-bolditalic-webfont.woff2
deleted file mode 100755
index 2cee731..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/hack-bolditalic-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/hack-italic-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/hack-italic-webfont.woff2
deleted file mode 100755
index 0aa5119..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/hack-italic-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/hack-regular-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/hack-regular-webfont.woff2
deleted file mode 100755
index 3889738..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/hack-regular-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/latin/hack-bold-latin-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/latin/hack-bold-latin-webfont.woff2
deleted file mode 100755
index 34e13e7..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/latin/hack-bold-latin-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2
deleted file mode 100755
index 7c7d5a1..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/latin/hack-italic-latin-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/latin/hack-italic-latin-webfont.woff2
deleted file mode 100755
index 6e96597..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/latin/hack-italic-latin-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/hack_fonts/fonts/woff2/latin/hack-regular-latin-webfont.woff2 b/pagure/static/hack_fonts/fonts/woff2/latin/hack-regular-latin-webfont.woff2
deleted file mode 100755
index f608ee1..0000000
Binary files a/pagure/static/hack_fonts/fonts/woff2/latin/hack-regular-latin-webfont.woff2 and /dev/null differ
diff --git a/pagure/static/jdenticon-1.3.2.js b/pagure/static/jdenticon-1.3.2.js
deleted file mode 100644
index c56ee80..0000000
--- a/pagure/static/jdenticon-1.3.2.js
+++ /dev/null
@@ -1,801 +0,0 @@
-/**
- * Jdenticon 1.3.2
- * http://jdenticon.com
- *  
- * Built: 2015-10-10T11:55:57.451Z
- *
- * Copyright (c) 2014-2015 Daniel Mester Pirttijärvi
- *
- * This software is provided 'as-is', without any express or implied
- * warranty.  In no event will the authors be held liable for any damages
- * arising from the use of this software.
- * 
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- * 
- * 1. The origin of this software must not be misrepresented; you must not
- *    claim that you wrote the original software. If you use this software
- *    in a product, an acknowledgment in the product documentation would be
- *    appreciated but is not required.
- * 
- * 2. Altered source versions must be plainly marked as such, and must not be
- *    misrepresented as being the original software.
- * 
- * 3. This notice may not be removed or altered from any source distribution.
- * 
- */
-
-/*jslint bitwise: true */
-
-(function (global, name, factory) {
-    var jQuery = global["jQuery"],
-        jdenticon = factory(global, jQuery);
-
-    // Node.js
-    if (typeof module !== "undefined" && "exports" in module) {
-        module["exports"] = jdenticon;
-    }
-    // RequireJS
-    else if (typeof define === "function" && define["amd"]) {
-        define([], function () { return jdenticon; });
-    }
-    // No module loader
-    else {
-        global[name] = jdenticon;
-    }
-})(this, "jdenticon", function (global, jQuery) {
-    "use strict";
-
-
-
-    
-    /**
-     * Represents a point.
-     * @private
-     * @constructor
-     */
-    function Point(x, y) {
-        this.x = x;
-        this.y = y;
-    };
-    
-    
-    /**
-     * Translates and rotates a point before being passed on to the canvas context. This was previously done by the canvas context itself, 
-     * but this caused a rendering issue in Chrome on sizes > 256 where the rotation transformation of inverted paths was not done properly.
-     * @param {number} x The x-coordinate of the upper left corner of the transformed rectangle.
-     * @param {number} y The y-coordinate of the upper left corner of the transformed rectangle.
-     * @param {number} size The size of the transformed rectangle.
-     * @param {number} rotation Rotation specified as 0 = 0 rad, 1 = 0.5π rad, 2 = π rad, 3 = 1.5π rad
-     * @private
-     * @constructor
-     */
-    function Transform(x, y, size, rotation) {
-        this._x = x;
-        this._y = y;
-        this._size = size;
-        this._rotation = rotation;
-    }
-    Transform.prototype = {
-        /**
-         * Transforms the specified point based on the translation and rotation specification for this Transform.
-         * @param {number} x x-coordinate
-         * @param {number} y y-coordinate
-         * @param {number=} w The width of the transformed rectangle. If greater than 0, this will ensure the returned point is of the upper left corner of the transformed rectangle.
-         * @param {number=} h The height of the transformed rectangle. If greater than 0, this will ensure the returned point is of the upper left corner of the transformed rectangle.
-         */
-        transformPoint: function (x, y, w, h) {
-            var right = this._x + this._size,
-                bottom = this._y + this._size;
-            return this._rotation === 1 ? new Point(right - y - (h || 0), this._y + x) :
-                   this._rotation === 2 ? new Point(right - x - (w || 0), bottom - y - (h || 0)) :
-                   this._rotation === 3 ? new Point(this._x + y, bottom - x - (w || 0)) :
-                   new Point(this._x + x, this._y + y);
-        }
-    };
-    Transform.noTransform = new Transform(0, 0, 0, 0);
-    
-    
-    
-    /**
-     * Provides helper functions for rendering common basic shapes.
-     * @private
-     * @constructor
-     */
-    function Graphics(renderer) {
-        this._renderer = renderer;
-        this._transform = Transform.noTransform;
-    }
-    Graphics.prototype = {
-        /**
-         * Adds a polygon to the underlying renderer.
-         * @param {Array} points The points of the polygon clockwise on the format [ x0, y0, x1, y1, ..., xn, yn ]
-         * @param {boolean=} invert Specifies if the polygon will be inverted.
-         */
-        addPolygon: function (points, invert) {
-            var di = invert ? -2 : 2, 
-                transform = this._transform,
-                transformedPoints = [],
-                i;
-            
-            for (i = invert ? points.length - 2 : 0; i < points.length && i >= 0; i += di) {
-                transformedPoints.push(transform.transformPoint(points[i], points[i + 1]));
-            }
-            
-            this._renderer.addPolygon(transformedPoints);
-        },
-        
-        /**
-         * Adds a polygon to the underlying renderer.
-         * Source: http://stackoverflow.com/a/2173084
-         * @param {number} x The x-coordinate of the upper left corner of the rectangle holding the entire ellipse.
-         * @param {number} y The y-coordinate of the upper left corner of the rectangle holding the entire ellipse.
-         * @param {number} size The size of the ellipse.
-         * @param {boolean=} invert Specifies if the ellipse will be inverted.
-         */
-        addCircle: function (x, y, size, invert) {
-            var p = this._transform.transformPoint(x, y, size, size);
-            this._renderer.addCircle(p, size, invert);
-        },
-
-        /**
-         * Adds a rectangle to the underlying renderer.
-         * @param {number} x The x-coordinate of the upper left corner of the rectangle.
-         * @param {number} y The y-coordinate of the upper left corner of the rectangle.
-         * @param {number} w The width of the rectangle.
-         * @param {number} h The height of the rectangle.
-         * @param {boolean=} invert Specifies if the rectangle will be inverted.
-         */
-        addRectangle: function (x, y, w, h, invert) {
-            this.addPolygon([
-                x, y, 
-                x + w, y,
-                x + w, y + h,
-                x, y + h
-            ], invert);
-        },
-
-        /**
-         * Adds a right triangle to the underlying renderer.
-         * @param {number} x The x-coordinate of the upper left corner of the rectangle holding the triangle.
-         * @param {number} y The y-coordinate of the upper left corner of the rectangle holding the triangle.
-         * @param {number} w The width of the triangle.
-         * @param {number} h The height of the triangle.
-         * @param {number} r The rotation of the triangle (clockwise). 0 = right corner of the triangle in the lower left corner of the bounding rectangle.
-         * @param {boolean=} invert Specifies if the triangle will be inverted.
-         */
-        addTriangle: function (x, y, w, h, r, invert) {
-            var points = [
-                x + w, y, 
-                x + w, y + h, 
-                x, y + h,
-                x, y
-            ];
-            points.splice(((r || 0) % 4) * 2, 2);
-            this.addPolygon(points, invert);
-        },
-
-        /**
-         * Adds a rhombus to the underlying renderer.
-         * @param {number} x The x-coordinate of the upper left corner of the rectangle holding the rhombus.
-         * @param {number} y The y-coordinate of the upper left corner of the rectangle holding the rhombus.
-         * @param {number} w The width of the rhombus.
-         * @param {number} h The height of the rhombus.
-         * @param {boolean=} invert Specifies if the rhombus will be inverted.
-         */
-        addRhombus: function (x, y, w, h, invert) {
-            this.addPolygon([
-                x + w / 2, y,
-                x + w, y + h / 2,
-                x + w / 2, y + h,
-                x, y + h / 2
-            ], invert);
-        }
-    };
-    
-    
-    
-    
-    var shapes = {
-        center: [
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var k = cell * 0.42;
-                g.addPolygon([
-                    0, 0,
-                    cell, 0,
-                    cell, cell - k * 2,
-                    cell - k, cell,
-                    0, cell
-                ]);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var w = 0 | (cell * 0.5), 
-                    h = 0 | (cell * 0.8);
-                g.addTriangle(cell - w, 0, w, h, 2);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) { 
-                var s = 0 | (cell / 3);
-                g.addRectangle(s, s, cell - s, cell - s);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) { 
-                var inner = 0 | (cell * 0.1),
-                    outer = 0 | (cell * 0.25);
-                g.addRectangle(outer, outer, cell - inner - outer, cell - inner - outer);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) { 
-                var m = 0 | (cell * 0.15),
-                    s = 0 | (cell * 0.5);
-                g.addCircle(cell - s - m, cell - s - m, s);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var inner = cell * 0.1,
-                    outer = inner * 4;
-
-                g.addRectangle(0, 0, cell, cell);
-                g.addPolygon([
-                    outer, outer,
-                    cell - inner, outer,
-                    outer + (cell - outer - inner) / 2, cell - inner
-                ], true);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                g.addPolygon([
-                    0, 0,
-                    cell, 0,
-                    cell, cell * 0.7,
-                    cell * 0.4, cell * 0.4,
-                    cell * 0.7, cell,
-                    0, cell
-                ]);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                g.addTriangle(cell / 2, cell / 2, cell / 2, cell / 2, 3);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                g.addRectangle(0, 0, cell, cell / 2);
-                g.addRectangle(0, cell / 2, cell / 2, cell / 2);
-                g.addTriangle(cell / 2, cell / 2, cell / 2, cell / 2, 1);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var inner = 0 | (cell * 0.14),
-                    outer = 0 | (cell * 0.35);
-                g.addRectangle(0, 0, cell, cell);
-                g.addRectangle(outer, outer, cell - outer - inner, cell - outer - inner, true);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var inner = cell * 0.12,
-                    outer = inner * 3;
-
-                g.addRectangle(0, 0, cell, cell);
-                g.addCircle(outer, outer, cell - inner - outer, true);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                g.addTriangle(cell / 2, cell / 2, cell / 2, cell / 2, 3);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var m = cell * 0.25;
-                g.addRectangle(0, 0, cell, cell);
-                g.addRhombus(m, m, cell - m, cell - m, true);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var m = cell * 0.4, s = cell * 1.2;
-                if (!index) {
-                    g.addCircle(m, m, s);
-                }
-            }
-        ],
-        
-        outer: [
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                g.addTriangle(0, 0, cell, cell, 0);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                g.addTriangle(0, cell / 2, cell, cell / 2, 0);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                g.addRhombus(0, 0, cell, cell);
-            },
-            /** @param {Graphics} g */
-            function (g, cell, index) {
-                var m = cell / 6;
-                g.addCircle(m, m, cell - 2 * m);
-            }
-        ]
-    };
-
-    
-    
-    
-    function decToHex(v) {
-        v |= 0; // Ensure integer value
-        return v < 0 ? "00" :
-            v < 16 ? "0" + v.toString(16) :
-            v < 256 ? v.toString(16) :
-            "ff";
-    }
-    
-    function hueToRgb(m1, m2, h) {
-        h = h < 0 ? h + 6 : h > 6 ? h - 6 : h;
-        return decToHex(255 * (
-            h < 1 ? m1 + (m2 - m1) * h :
-            h < 3 ? m2 :
-            h < 4 ? m1 + (m2 - m1) * (4 - h) :
-            m1));
-    }
-        
-    /**
-     * Functions for converting colors to hex-rgb representations.
-     * @private
-     */
-    var color = {
-        /**
-         * @param {number} r Red channel [0, 255]
-         * @param {number} g Green channel [0, 255]
-         * @param {number} b Blue channel [0, 255]
-         */
-        rgb: function (r, g, b) {
-            return "#" + decToHex(r) + decToHex(g) + decToHex(b);
-        },
-        /**
-         * @param h Hue [0, 1]
-         * @param s Saturation [0, 1]
-         * @param l Lightness [0, 1]
-         */
-        hsl: function (h, s, l) {
-            // Based on http://www.w3.org/TR/2011/REC-css3-color-20110607/#hsl-color
-            if (s == 0) {
-                var partialHex = decToHex(l * 255);
-                return "#" + partialHex + partialHex + partialHex;
-            }
-            else {
-                var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s,
-                    m1 = l * 2 - m2;
-                return "#" +
-                    hueToRgb(m1, m2, h * 6 + 2) +
-                    hueToRgb(m1, m2, h * 6) +
-                    hueToRgb(m1, m2, h * 6 - 2);
-            }
-        },
-        // This function will correct the lightness for the "dark" hues
-        correctedHsl: function (h, s, l) {
-            // The corrector specifies the perceived middle lightnesses for each hue
-            var correctors = [ 0.55, 0.5, 0.5, 0.46, 0.6, 0.55, 0.55 ],
-                corrector = correctors[(h * 6 + 0.5) | 0];
-            
-            // Adjust the input lightness relative to the corrector
-            l = l < 0.5 ? l * corrector * 2 : corrector + (l - 0.5) * (1 - corrector) * 2;
-            
-            return color.hsl(h, s, l);
-        }
-    };
-
-    
-    
-    
-    /**
-     * Gets a set of identicon color candidates for a specified hue and config.
-     */
-    function colorTheme(hue, config) {
-        return [
-            // Dark gray
-            color.hsl(0, 0, config.grayscaleLightness(0)),
-            // Mid color
-            color.correctedHsl(hue, config.saturation, config.colorLightness(0.5)),
-            // Light gray
-            color.hsl(0, 0, config.grayscaleLightness(1)),
-            // Light color
-            color.correctedHsl(hue, config.saturation, config.colorLightness(1)),
-            // Dark color
-            color.correctedHsl(hue, config.saturation, config.colorLightness(0))
-        ];
-    }
-
-    
-    
-         
-    /**
-     * Draws an identicon to a specified renderer.
-     */
-    function iconGenerator(renderer, hash, x, y, size, padding, config) {
-        var undefined;
-        
-        // Calculate padding
-        padding = (size * (padding === undefined ? 0.08 : padding)) | 0;
-        size -= padding * 2;
-        
-        // Sizes smaller than 30 px are not supported. If really needed, apply a scaling transformation 
-        // to the context before passing it to this function.
-        if (size < 30) {
-            throw new Error("Jdenticon cannot render identicons smaller than 30 pixels.");
-        }
-        if (!/^[0-9a-f]{11,}$/i.test(hash)) {
-            throw new Error("Invalid hash passed to Jdenticon.");
-        }
-        
-        var graphics = new Graphics(renderer);
-        
-        // Calculate cell size and ensure it is an integer
-        var cell = 0 | (size / 4);
-        
-        // Since the cell size is integer based, the actual icon will be slightly smaller than specified => center icon
-        x += 0 | (padding + size / 2 - cell * 2);
-        y += 0 | (padding + size / 2 - cell * 2);
-
-        function renderShape(colorIndex, shapes, index, rotationIndex, positions) {
-            var r = rotationIndex ? parseInt(hash.charAt(rotationIndex), 16) : 0,
-                shape = shapes[parseInt(hash.charAt(index), 16) % shapes.length],
-                i;
-            
-            renderer.beginShape(availableColors[selectedColorIndexes[colorIndex]]);
-            
-            for (i = 0; i < positions.length; i++) {
-                graphics._transform = new Transform(x + positions[i][0] * cell, y + positions[i][1] * cell, cell, r++ % 4);
-                shape(graphics, cell, i);
-            }
-            
-            renderer.endShape();
-        }
-
-        // AVAILABLE COLORS
-        var hue = parseInt(hash.substr(-7), 16) / 0xfffffff,
-        
-            // Available colors for this icon
-            availableColors = colorTheme(hue, config),
-
-            // The index of the selected colors
-            selectedColorIndexes = [],
-            index;
-
-        function isDuplicate(values) {
-            if (values.indexOf(index) >= 0) {
-                for (var i = 0; i < values.length; i++) {
-                    if (selectedColorIndexes.indexOf(values[i]) >= 0) {
-                        return true;
-                    }
-                }
-            }
-        }
-
-        for (var i = 0; i < 3; i++) {
-            index = parseInt(hash.charAt(8 + i), 16) % availableColors.length;
-            if (isDuplicate([0, 4]) || // Disallow dark gray and dark color combo
-                isDuplicate([2, 3])) { // Disallow light gray and light color combo
-                index = 1;
-            }
-            selectedColorIndexes.push(index);
-        }
-
-        // ACTUAL RENDERING
-        // Sides
-        renderShape(0, shapes.outer, 2, 3, [[1, 0], [2, 0], [2, 3], [1, 3], [0, 1], [3, 1], [3, 2], [0, 2]]);
-        // Corners
-        renderShape(1, shapes.outer, 4, 5, [[0, 0], [3, 0], [3, 3], [0, 3]]);
-        // Center
-        renderShape(2, shapes.center, 1, null, [[1, 1], [2, 1], [2, 2], [1, 2]]);
-    };
-
-    
-    
-    /**
-     * Represents an SVG path element.
-     * @private
-     * @constructor
-     */
-    function SvgPath() {
-        /**
-         * This property holds the data string (path.d) of the SVG path.
-         */
-        this.dataString = "";
-    }
-    SvgPath.prototype = {
-        /**
-         * Adds a polygon with the current fill color to the SVG path.
-         * @param points An array of Point objects.
-         */
-        addPolygon: function (points) {
-            var dataString = "M" + points[0].x + " " + points[0].y;
-            for (var i = 1; i < points.length; i++) {
-                dataString += "L" + points[i].x + " " + points[i].y;
-            }
-            this.dataString += dataString + "Z";
-        },
-        /**
-         * Adds a circle with the current fill color to the SVG path.
-         * @param {Point} point The upper left corner of the circle bounding box.
-         * @param {number} diameter The diameter of the circle.
-         * @param {boolean} counterClockwise True if the circle is drawn counter-clockwise (will result in a hole if rendered on a clockwise path).
-         */
-        addCircle: function (point, diameter, counterClockwise) {
-            var sweepFlag = counterClockwise ? 0 : 1,
-                radius = diameter / 2;
-            this.dataString += 
-                "M" + (point.x) + " " + (point.y + radius) +
-                "a" + radius + "," + radius + " 0 1," + sweepFlag + " " + diameter + ",0" + 
-                "a" + radius + "," + radius + " 0 1," + sweepFlag + " " + (-diameter) + ",0";
-        }
-    };
-    
-    
-    
-    /**
-     * Renderer producing SVG output.
-     * @private
-     * @constructor
-     */
-    function SvgRenderer(width, height) {
-        this._pathsByColor = { };
-        this._size = { w: width, h: height };
-    }
-    SvgRenderer.prototype = {
-        /**
-         * Marks the beginning of a new shape of the specified color. Should be ended with a call to endShape.
-         * @param {string} color Fill color on format #xxxxxx.
-         */
-        beginShape: function (color) {
-            this._path = this._pathsByColor[color] || (this._pathsByColor[color] = new SvgPath());
-        },
-        /**
-         * Marks the end of the currently drawn shape.
-         */
-        endShape: function () { },
-        /**
-         * Adds a polygon with the current fill color to the SVG.
-         * @param points An array of Point objects.
-         */
-        addPolygon: function (points) {
-            this._path.addPolygon(points);
-        },
-        /**
-         * Adds a circle with the current fill color to the SVG.
-         * @param {Point} point The upper left corner of the circle bounding box.
-         * @param {number} diameter The diameter of the circle.
-         * @param {boolean} counterClockwise True if the circle is drawn counter-clockwise (will result in a hole if rendered on a clockwise path).
-         */
-        addCircle: function (point, diameter, counterClockwise) {
-            this._path.addCircle(point, diameter, counterClockwise);
-        },
-        /**
-         * Gets the rendered image as an SVG string.
-         * @param {boolean=} fragment If true, the container svg element is not included in the result.
-         */
-        toSvg: function (fragment) {
-            var svg = fragment ? '' : 
-                '<svg xmlns="http://www.w3.org/2000/svg" width="' + 
-                this._size.w + '" height="' + this._size.h + '" viewBox="0 0 ' + 
-                this._size.w + ' ' + this._size.h + '" preserveAspectRatio="xMidYMid meet">';
-            
-            for (var color in this._pathsByColor) {
-                svg += '<path fill="' + color + '" d="' + this._pathsByColor[color].dataString + '"/>';
-            }
-
-            return fragment ? svg : 
-                svg + '</svg>';
-        }
-    };
-    
-    
-    
-    /**
-     * Renderer redirecting drawing commands to a canvas context.
-     * @private
-     * @constructor
-     */
-    function CanvasRenderer(ctx, width, height) {
-        this._ctx = ctx;
-        ctx.clearRect(0, 0, width, height);
-    }
-    CanvasRenderer.prototype = {
-        /**
-         * Marks the beginning of a new shape of the specified color. Should be ended with a call to endShape.
-         * @param {string} color Fill color on format #xxxxxx.
-         */
-        beginShape: function (color) {
-            this._ctx.fillStyle = color;
-            this._ctx.beginPath();
-        },
-        /**
-         * Marks the end of the currently drawn shape. This causes the queued paths to be rendered on the canvas.
-         */
-        endShape: function () {
-            this._ctx.fill();
-        },
-        /**
-         * Adds a polygon to the rendering queue.
-         * @param points An array of Point objects.
-         */
-        addPolygon: function (points) {
-            var ctx = this._ctx, i;
-            ctx.moveTo(points[0].x, points[0].y);
-            for (i = 1; i < points.length; i++) {
-                ctx.lineTo(points[i].x, points[i].y);
-            }
-            ctx.closePath();
-        },
-        /**
-         * Adds a circle to the rendering queue.
-         * @param {Point} point The upper left corner of the circle bounding box.
-         * @param {number} diameter The diameter of the circle.
-         * @param {boolean} counterClockwise True if the circle is drawn counter-clockwise (will result in a hole if rendered on a clockwise path).
-         */
-        addCircle: function (point, diameter, counterClockwise) {
-            var ctx = this._ctx,
-                radius = diameter / 2;
-            ctx.arc(point.x + radius, point.y + radius, radius, 0, Math.PI * 2, counterClockwise);
-            ctx.closePath();
-        }
-    };
-    
-    
-    
-         
-    
-    
-    var /** @const */
-        HASH_ATTRIBUTE = "data-jdenticon-hash",
-        supportsQuerySelectorAll = "document" in global && "querySelectorAll" in document;
-    
-    /**
-     * Gets the normalized current Jdenticon color configuration. Missing fields have default values.
-     */
-    function getCurrentConfig() {
-        var configObject = jdenticon["config"] || global["jdenticon_config"] || { },
-            lightnessConfig = configObject["lightness"] || { },
-            saturation = configObject["saturation"];
-        
-        /**
-         * Creates a lightness range.
-         */
-        function lightness(configName, defaultMin, defaultMax) {
-            var range = lightnessConfig[configName] instanceof Array ? lightnessConfig[configName] : [defaultMin, defaultMax];
-            
-            /**
-             * Gets a lightness relative the specified value in the specified lightness range.
-             */
-            return function (value) {
-                value = range[0] + value * (range[1] - range[0]);
-                return value < 0 ? 0 : value > 1 ? 1 : value;
-            };
-        }
-            
-        return {
-            saturation: typeof saturation == "number" ? saturation : 0.5,
-            colorLightness: lightness("color", 0.4, 0.8),
-            grayscaleLightness: lightness("grayscale", 0.3, 0.9)
-        }
-    }
-    
-    /**
-     * Updates the identicon in the specified canvas or svg elements.
-     * @param {string=} hash Optional hash to be rendered. If not specified, the hash specified by the data-jdenticon-hash is used.
-     * @param {number=} padding Optional padding in percents. Extra padding might be added to center the rendered identicon.
-     */
-    function update(el, hash, padding) {
-        if (typeof(el) === "string") {
-            if (supportsQuerySelectorAll) {
-                var elements = document.querySelectorAll(el);
-                for (var i = 0; i < elements.length; i++) {
-                    update(elements[i], hash, padding);
-                }
-            }
-            return;
-        }
-        if (!el || !el["tagName"]) {
-            // No element found
-            return;
-        }
-        hash = hash || el.getAttribute(HASH_ATTRIBUTE);
-        if (!hash) {
-            // No hash specified
-            return;
-        }
-        
-        var isSvg = el["tagName"].toLowerCase() == "svg",
-            isCanvas = el["tagName"].toLowerCase() == "canvas";
-        
-        // Ensure we have a supported element
-        if (!isSvg && !(isCanvas && "getContext" in el)) {
-            return;
-        }
-        
-        var width = Number(el.getAttribute("width")) || el.clientWidth || 0,
-            height = Number(el.getAttribute("height")) || el.clientHeight || 0,
-            renderer = isSvg ? new SvgRenderer(width, height) : new CanvasRenderer(el.getContext("2d"), width, height),
-            size = Math.min(width, height);
-        
-        // Draw icon
-        iconGenerator(renderer, hash, 0, 0, size, padding, getCurrentConfig());
-        
-        // SVG needs postprocessing
-        if (isSvg) {
-            // Parse svg to a temporary span element.
-            // Simply using innerHTML does unfortunately not work on IE.
-            var wrapper = document.createElement("span");
-            wrapper.innerHTML = renderer.toSvg(false);
-            
-            // Then replace the content of the target element with the parsed svg.
-            while (el.firstChild) {
-                el.removeChild(el.firstChild);
-            }
-            var newNodes = wrapper.firstChild.childNodes;
-            while (newNodes.length) {
-                el.appendChild(newNodes[0]);
-            }
-            
-            // Set viewBox attribute to ensure the svg scales nicely.
-            el.setAttribute("viewBox", "0 0 " + width + " " + height);
-        }
-    }
-    
-    /**
-     * Draws an identicon to a context.
-     */
-    function drawIcon(ctx, hash, size) {
-        if (!ctx) {
-            throw new Error("No canvas specified.");
-        }
-        
-        var renderer = new CanvasRenderer(ctx, size, size);
-        iconGenerator(renderer, hash, 0, 0, size, 0, getCurrentConfig());
-    }
-    
-    /**
-     * Draws an identicon to a context.
-     * @param {number=} padding Optional padding in percents. Extra padding might be added to center the rendered identicon.
-     */
-    function toSvg(hash, size, padding) {
-        var renderer = new SvgRenderer(size, size);
-        iconGenerator(renderer, hash, 0, 0, size, padding, getCurrentConfig());
-        return renderer.toSvg();
-    }
-
-    /**
-     * Updates all canvas elements with the data-jdenticon-hash attribute.
-     */
-    function jdenticon() {
-        if (supportsQuerySelectorAll) {
-            update("svg[" + HASH_ATTRIBUTE + "],canvas[" + HASH_ATTRIBUTE + "]");
-        }
-    }
-    
-    // Public API
-    jdenticon["drawIcon"] = drawIcon;
-    jdenticon["toSvg"] = toSvg;
-    jdenticon["update"] = update;
-    jdenticon["version"] = "1.3.2";
-    
-    // Basic jQuery plugin
-    if (jQuery) {
-        jQuery["fn"]["jdenticon"] = function (hash, padding) {
-            this["each"](function (index, el) {
-                update(el, hash, padding);
-            });
-            return this;
-        };
-    }
-    
-    // Schedule to render all identicons on the page once it has been loaded.
-    if (typeof setTimeout === "function") {
-        setTimeout(jdenticon, 0);
-    }
-    
-    return jdenticon;
-
-});
\ No newline at end of file
diff --git a/pagure/static/jdenticon-1.3.2.min.js b/pagure/static/jdenticon-1.3.2.min.js
deleted file mode 100644
index 610d18e..0000000
--- a/pagure/static/jdenticon-1.3.2.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Jdenticon 1.3.2 | jdenticon.com | zlib licensed | (c) 2014-2015 Daniel Mester Pirttijärvi
-(function(k,g,h){var l=h(k,k.jQuery);"undefined"!==typeof module&&"exports"in module?module.exports=l:"function"===typeof define&&define.amd?define([],function(){return l}):k[g]=l})(this,"jdenticon",function(k,g){function h(b,a){this.x=b;this.y=a}function l(b,a,c,d){this.o=b;this.s=a;this.f=c;this.l=d}function A(b){this.C=b;this.m=l.O}function m(b){b|=0;return 0>b?"00":16>b?"0"+b.toString(16):256>b?b.toString(16):"ff"}function q(b,a,c){c=0>c?c+6:6<c?c-6:c;return m(255*(1>c?b+(a-b)*c:3>c?a:4>c?b+(a-
-b)*(4-c):b))}function D(b,a){return[n.w(0,0,a.H(0)),n.v(b,a.A,a.u(.5)),n.w(0,0,a.H(1)),n.v(b,a.A,a.u(1)),n.v(b,a.A,a.u(0))]}function r(b,a,c,d,t){var f=0,u=0;function v(c,d,t,e,g){e=e?parseInt(a.charAt(e),16):0;d=d[parseInt(a.charAt(t),16)%d.length];b.F(n[m[c]]);for(c=0;c<g.length;c++)k.m=new l(f+g[c][0]*h,u+g[c][1]*h,h,e++%4),d(k,h,c);b.G()}function e(a){if(0<=a.indexOf(g))for(var b=0;b<a.length;b++)if(0<=m.indexOf(a[b]))return!0}d=c*(void 0===d?.08:d)|0;c-=2*d;if(30>c)throw Error("Jdenticon cannot render identicons smaller than 30 pixels.");
-if(!/^[0-9a-f]{11,}$/i.test(a))throw Error("Invalid hash passed to Jdenticon.");var k=new A(b),h=0|c/4,f=f+(0|d+c/2-2*h),u=u+(0|d+c/2-2*h),n=D(parseInt(a.substr(-7),16)/268435455,t),m=[],g;for(c=0;3>c;c++){g=parseInt(a.charAt(8+c),16)%n.length;if(e([0,4])||e([2,3]))g=1;m.push(g)}v(0,w.J,2,3,[[1,0],[2,0],[2,3],[1,3],[0,1],[3,1],[3,2],[0,2]]);v(1,w.J,4,5,[[0,0],[3,0],[3,3],[0,3]]);v(2,w.N,1,null,[[1,1],[2,1],[2,2],[1,2]])}function B(){this.i=""}function x(b,a){this.j={};this.f={M:b,I:a}}function y(b,
-a,c){this.h=b;b.clearRect(0,0,a,c)}function z(){function b(a,b,f){var e=c[a]instanceof Array?c[a]:[b,f];return function(a){a=e[0]+a*(e[1]-e[0]);return 0>a?0:1<a?1:a}}var a=e.config||k.jdenticon_config||{},c=a.lightness||{},a=a.saturation;return{A:"number"==typeof a?a:.5,u:b("color",.4,.8),H:b("grayscale",.3,.9)}}function p(b,a,c){if("string"===typeof b){if(C){b=document.querySelectorAll(b);for(var d=0;d<b.length;d++)p(b[d],a,c)}}else if(b&&b.tagName&&(a=a||b.getAttribute("data-jdenticon-hash"))){var e=
-"svg"==b.tagName.toLowerCase(),d="canvas"==b.tagName.toLowerCase();if(e||d&&"getContext"in b){var d=Number(b.getAttribute("width"))||b.clientWidth||0,f=Number(b.getAttribute("height"))||b.clientHeight||0,g=e?new x(d,f):new y(b.getContext("2d"),d,f);r(g,a,Math.min(d,f),c,z());if(e){a=document.createElement("span");for(a.innerHTML=g.K(!1);b.firstChild;)b.removeChild(b.firstChild);for(a=a.firstChild.childNodes;a.length;)b.appendChild(a[0]);b.setAttribute("viewBox","0 0 "+d+" "+f)}}}}function e(){C&&
-p("svg[data-jdenticon-hash],canvas[data-jdenticon-hash]")}l.prototype={L:function(b,a,c,d){var e=this.o+this.f,f=this.s+this.f;return 1===this.l?new h(e-a-(d||0),this.s+b):2===this.l?new h(e-b-(c||0),f-a-(d||0)):3===this.l?new h(this.o+a,f-b-(c||0)):new h(this.o+b,this.s+a)}};l.O=new l(0,0,0,0);A.prototype={a:function(b,a){var c=a?-2:2,d=this.m,e=[],f;for(f=a?b.length-2:0;f<b.length&&0<=f;f+=c)e.push(d.L(b[f],b[f+1]));this.C.a(e)},b:function(b,a,c,d){this.C.b(this.m.L(b,a,c,c),c,d)},c:function(b,
-a,c,d,e){this.a([b,a,b+c,a,b+c,a+d,b,a+d],e)},g:function(b,a,c,d,e,f){b=[b+c,a,b+c,a+d,b,a+d,b,a];b.splice((e||0)%4*2,2);this.a(b,f)},D:function(b,a,c,d,e){this.a([b+c/2,a,b+c,a+d/2,b+c/2,a+d,b,a+d/2],e)}};var w={N:[function(b,a){var c=.42*a;b.a([0,0,a,0,a,a-2*c,a-c,a,0,a])},function(b,a){var c=0|.5*a;b.g(a-c,0,c,0|.8*a,2)},function(b,a){var c=0|a/3;b.c(c,c,a-c,a-c)},function(b,a){var c=0|.1*a,d=0|.25*a;b.c(d,d,a-c-d,a-c-d)},function(b,a){var c=0|.15*a,d=0|.5*a;b.b(a-d-c,a-d-c,d)},function(b,a){var c=
-.1*a,d=4*c;b.c(0,0,a,a);b.a([d,d,a-c,d,d+(a-d-c)/2,a-c],!0)},function(b,a){b.a([0,0,a,0,a,.7*a,.4*a,.4*a,.7*a,a,0,a])},function(b,a){b.g(a/2,a/2,a/2,a/2,3)},function(b,a){b.c(0,0,a,a/2);b.c(0,a/2,a/2,a/2);b.g(a/2,a/2,a/2,a/2,1)},function(b,a){var c=0|.14*a,d=0|.35*a;b.c(0,0,a,a);b.c(d,d,a-d-c,a-d-c,!0)},function(b,a){var c=.12*a,d=3*c;b.c(0,0,a,a);b.b(d,d,a-c-d,!0)},function(b,a){b.g(a/2,a/2,a/2,a/2,3)},function(b,a){var c=.25*a;b.c(0,0,a,a);b.D(c,c,a-c,a-c,!0)},function(b,a,c){var d=.4*a;c||b.b(d,
-d,1.2*a)}],J:[function(b,a){b.g(0,0,a,a,0)},function(b,a){b.g(0,a/2,a,a/2,0)},function(b,a){b.D(0,0,a,a)},function(b,a){var c=a/6;b.b(c,c,a-2*c)}]},n={P:function(b,a,c){return"#"+m(b)+m(a)+m(c)},w:function(b,a,c){if(0==a)return b=m(255*c),"#"+b+b+b;a=.5>=c?c*(a+1):c+a-c*a;c=2*c-a;return"#"+q(c,a,6*b+2)+q(c,a,6*b)+q(c,a,6*b-2)},v:function(b,a,c){var d=[.55,.5,.5,.46,.6,.55,.55][6*b+.5|0];return n.w(b,a,.5>c?c*d*2:d+(c-.5)*(1-d)*2)}};B.prototype={a:function(b){for(var a="M"+b[0].x+" "+b[0].y,c=1;c<
-b.length;c++)a+="L"+b[c].x+" "+b[c].y;this.i+=a+"Z"},b:function(b,a,c){c=c?0:1;var d=a/2;this.i+="M"+b.x+" "+(b.y+d)+"a"+d+","+d+" 0 1,"+c+" "+a+",0a"+d+","+d+" 0 1,"+c+" "+-a+",0"}};x.prototype={F:function(b){this.B=this.j[b]||(this.j[b]=new B)},G:function(){},a:function(b){this.B.a(b)},b:function(b,a,c){this.B.b(b,a,c)},K:function(b){var a=b?"":'<svg xmlns="http://www.w3.org/2000/svg" width="'+this.f.M+'" height="'+this.f.I+'" viewBox="0 0 '+this.f.M+" "+this.f.I+'" preserveAspectRatio="xMidYMid meet">',
-c;for(c in this.j)a+='<path fill="'+c+'" d="'+this.j[c].i+'"/>';return b?a:a+"</svg>"}};y.prototype={F:function(b){this.h.fillStyle=b;this.h.beginPath()},G:function(){this.h.fill()},a:function(b){var a=this.h,c;a.moveTo(b[0].x,b[0].y);for(c=1;c<b.length;c++)a.lineTo(b[c].x,b[c].y);a.closePath()},b:function(b,a,c){var d=this.h;a/=2;d.arc(b.x+a,b.y+a,a,0,2*Math.PI,c);d.closePath()}};var C="document"in k&&"querySelectorAll"in document;e.drawIcon=function(b,a,c){if(!b)throw Error("No canvas specified.");
-b=new y(b,c,c);r(b,a,c,0,z())};e.toSvg=function(b,a,c){var d=new x(a,a);r(d,b,a,c,z());return d.K()};e.update=p;e.version="1.3.2";g&&(g.fn.jdenticon=function(b,a){this.each(function(c,d){p(d,b,a)});return this});"function"===typeof setTimeout&&setTimeout(e,0);return e});
\ No newline at end of file
diff --git a/pagure/static/jdenticon.js b/pagure/static/jdenticon.js
deleted file mode 120000
index 068295f..0000000
--- a/pagure/static/jdenticon.js
+++ /dev/null
@@ -1 +0,0 @@
-jdenticon-1.3.2.js
\ No newline at end of file
diff --git a/pagure/static/jdenticon.min.js b/pagure/static/jdenticon.min.js
deleted file mode 120000
index 077f64e..0000000
--- a/pagure/static/jdenticon.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jdenticon-1.3.2.min.js
\ No newline at end of file
diff --git a/pagure/static/jquery-1.10.2.js b/pagure/static/jquery-1.10.2.js
deleted file mode 100644
index c5c6482..0000000
--- a/pagure/static/jquery-1.10.2.js
+++ /dev/null
@@ -1,9789 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.10.2
- * http://jquery.com/
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- *
- * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2013-07-03T13:48Z
- */
-(function( window, undefined ) {
-
-// Can't do this because several apps including ASP.NET trace
-// the stack via arguments.caller.callee and Firefox dies if
-// you try to trace through "use strict" call chains. (#13335)
-// Support: Firefox 18+
-//"use strict";
-var
-	// The deferred used on DOM ready
-	readyList,
-
-	// A central reference to the root jQuery(document)
-	rootjQuery,
-
-	// Support: IE<10
-	// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`
-	core_strundefined = typeof undefined,
-
-	// Use the correct document accordingly with window argument (sandbox)
-	location = window.location,
-	document = window.document,
-	docElem = document.documentElement,
-
-	// Map over jQuery in case of overwrite
-	_jQuery = window.jQuery,
-
-	// Map over the $ in case of overwrite
-	_$ = window.$,
-
-	// [[Class]] -> type pairs
-	class2type = {},
-
-	// List of deleted data cache ids, so we can reuse them
-	core_deletedIds = [],
-
-	core_version = "1.10.2",
-
-	// Save a reference to some core methods
-	core_concat = core_deletedIds.concat,
-	core_push = core_deletedIds.push,
-	core_slice = core_deletedIds.slice,
-	core_indexOf = core_deletedIds.indexOf,
-	core_toString = class2type.toString,
-	core_hasOwn = class2type.hasOwnProperty,
-	core_trim = core_version.trim,
-
-	// Define a local copy of jQuery
-	jQuery = function( selector, context ) {
-		// The jQuery object is actually just the init constructor 'enhanced'
-		return new jQuery.fn.init( selector, context, rootjQuery );
-	},
-
-	// Used for matching numbers
-	core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
-
-	// Used for splitting on whitespace
-	core_rnotwhite = /\S+/g,
-
-	// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
-	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
-
-	// A simple way to check for HTML strings
-	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
-	// Strict HTML recognition (#11290: must start with <)
-	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
-
-	// Match a standalone tag
-	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
-
-	// JSON RegExp
-	rvalidchars = /^[\],:{}\s]*$/,
-	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-	rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
-	rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
-
-	// Matches dashed string for camelizing
-	rmsPrefix = /^-ms-/,
-	rdashAlpha = /-([\da-z])/gi,
-
-	// Used by jQuery.camelCase as callback to replace()
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
-	},
-
-	// The ready event handler
-	completed = function( event ) {
-
-		// readyState === "complete" is good enough for us to call the dom ready in oldIE
-		if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
-			detach();
-			jQuery.ready();
-		}
-	},
-	// Clean-up method for dom ready events
-	detach = function() {
-		if ( document.addEventListener ) {
-			document.removeEventListener( "DOMContentLoaded", completed, false );
-			window.removeEventListener( "load", completed, false );
-
-		} else {
-			document.detachEvent( "onreadystatechange", completed );
-			window.detachEvent( "onload", completed );
-		}
-	};
-
-jQuery.fn = jQuery.prototype = {
-	// The current version of jQuery being used
-	jquery: core_version,
-
-	constructor: jQuery,
-	init: function( selector, context, rootjQuery ) {
-		var match, elem;
-
-		// HANDLE: $(""), $(null), $(undefined), $(false)
-		if ( !selector ) {
-			return this;
-		}
-
-		// Handle HTML strings
-		if ( typeof selector === "string" ) {
-			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
-				// Assume that strings that start and end with <> are HTML and skip the regex check
-				match = [ null, selector, null ];
-
-			} else {
-				match = rquickExpr.exec( selector );
-			}
-
-			// Match html or make sure no context is specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] ) {
-					context = context instanceof jQuery ? context[0] : context;
-
-					// scripts is true for back-compat
-					jQuery.merge( this, jQuery.parseHTML(
-						match[1],
-						context && context.nodeType ? context.ownerDocument || context : document,
-						true
-					) );
-
-					// HANDLE: $(html, props)
-					if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
-						for ( match in context ) {
-							// Properties of context are called as methods if possible
-							if ( jQuery.isFunction( this[ match ] ) ) {
-								this[ match ]( context[ match ] );
-
-							// ...and otherwise set as attributes
-							} else {
-								this.attr( match, context[ match ] );
-							}
-						}
-					}
-
-					return this;
-
-				// HANDLE: $(#id)
-				} else {
-					elem = document.getElementById( match[2] );
-
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE and Opera return items
-						// by name instead of ID
-						if ( elem.id !== match[2] ) {
-							return rootjQuery.find( selector );
-						}
-
-						// Otherwise, we inject the element directly into the jQuery object
-						this.length = 1;
-						this[0] = elem;
-					}
-
-					this.context = document;
-					this.selector = selector;
-					return this;
-				}
-
-			// HANDLE: $(expr, $(...))
-			} else if ( !context || context.jquery ) {
-				return ( context || rootjQuery ).find( selector );
-
-			// HANDLE: $(expr, context)
-			// (which is just equivalent to: $(context).find(expr)
-			} else {
-				return this.constructor( context ).find( selector );
-			}
-
-		// HANDLE: $(DOMElement)
-		} else if ( selector.nodeType ) {
-			this.context = this[0] = selector;
-			this.length = 1;
-			return this;
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
-			return rootjQuery.ready( selector );
-		}
-
-		if ( selector.selector !== undefined ) {
-			this.selector = selector.selector;
-			this.context = selector.context;
-		}
-
-		return jQuery.makeArray( selector, this );
-	},
-
-	// Start with an empty selector
-	selector: "",
-
-	// The default length of a jQuery object is 0
-	length: 0,
-
-	toArray: function() {
-		return core_slice.call( this );
-	},
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-		return num == null ?
-
-			// Return a 'clean' array
-			this.toArray() :
-
-			// Return just the object
-			( num < 0 ? this[ this.length + num ] : this[ num ] );
-	},
-
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems ) {
-
-		// Build a new jQuery matched element set
-		var ret = jQuery.merge( this.constructor(), elems );
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-		ret.context = this.context;
-
-		// Return the newly-formed element set
-		return ret;
-	},
-
-	// Execute a callback for every element in the matched set.
-	// (You can seed the arguments with an array of args, but this is
-	// only used internally.)
-	each: function( callback, args ) {
-		return jQuery.each( this, callback, args );
-	},
-
-	ready: function( fn ) {
-		// Add the callback
-		jQuery.ready.promise().done( fn );
-
-		return this;
-	},
-
-	slice: function() {
-		return this.pushStack( core_slice.apply( this, arguments ) );
-	},
-
-	first: function() {
-		return this.eq( 0 );
-	},
-
-	last: function() {
-		return this.eq( -1 );
-	},
-
-	eq: function( i ) {
-		var len = this.length,
-			j = +i + ( i < 0 ? len : 0 );
-		return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function( elem, i ) {
-			return callback.call( elem, i, elem );
-		}));
-	},
-
-	end: function() {
-		return this.prevObject || this.constructor(null);
-	},
-
-	// For internal use only.
-	// Behaves like an Array's method, not like a jQuery method.
-	push: core_push,
-	sort: [].sort,
-	splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
-	var src, copyIsArray, copy, name, options, clone,
-		target = arguments[0] || {},
-		i = 1,
-		length = arguments.length,
-		deep = false;
-
-	// Handle a deep copy situation
-	if ( typeof target === "boolean" ) {
-		deep = target;
-		target = arguments[1] || {};
-		// skip the boolean and the target
-		i = 2;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
-		target = {};
-	}
-
-	// extend jQuery itself if only one argument is passed
-	if ( length === i ) {
-		target = this;
-		--i;
-	}
-
-	for ( ; i < length; i++ ) {
-		// Only deal with non-null/undefined values
-		if ( (options = arguments[ i ]) != null ) {
-			// Extend the base object
-			for ( name in options ) {
-				src = target[ name ];
-				copy = options[ name ];
-
-				// Prevent never-ending loop
-				if ( target === copy ) {
-					continue;
-				}
-
-				// Recurse if we're merging plain objects or arrays
-				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && jQuery.isArray(src) ? src : [];
-
-					} else {
-						clone = src && jQuery.isPlainObject(src) ? src : {};
-					}
-
-					// Never move original objects, clone them
-					target[ name ] = jQuery.extend( deep, clone, copy );
-
-				// Don't bring in undefined values
-				} else if ( copy !== undefined ) {
-					target[ name ] = copy;
-				}
-			}
-		}
-	}
-
-	// Return the modified object
-	return target;
-};
-
-jQuery.extend({
-	// Unique for each copy of jQuery on the page
-	// Non-digits removed to match rinlinejQuery
-	expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ),
-
-	noConflict: function( deep ) {
-		if ( window.$ === jQuery ) {
-			window.$ = _$;
-		}
-
-		if ( deep && window.jQuery === jQuery ) {
-			window.jQuery = _jQuery;
-		}
-
-		return jQuery;
-	},
-
-	// Is the DOM ready to be used? Set to true once it occurs.
-	isReady: false,
-
-	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
-	readyWait: 1,
-
-	// Hold (or release) the ready event
-	holdReady: function( hold ) {
-		if ( hold ) {
-			jQuery.readyWait++;
-		} else {
-			jQuery.ready( true );
-		}
-	},
-
-	// Handle when the DOM is ready
-	ready: function( wait ) {
-
-		// Abort if there are pending holds or we're already ready
-		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
-			return;
-		}
-
-		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-		if ( !document.body ) {
-			return setTimeout( jQuery.ready );
-		}
-
-		// Remember that the DOM is ready
-		jQuery.isReady = true;
-
-		// If a normal DOM Ready event fired, decrement, and wait if need be
-		if ( wait !== true && --jQuery.readyWait > 0 ) {
-			return;
-		}
-
-		// If there are functions bound, to execute
-		readyList.resolveWith( document, [ jQuery ] );
-
-		// Trigger any bound ready events
-		if ( jQuery.fn.trigger ) {
-			jQuery( document ).trigger("ready").off("ready");
-		}
-	},
-
-	// See test/unit/core.js for details concerning isFunction.
-	// Since version 1.3, DOM methods and functions like alert
-	// aren't supported. They return false on IE (#2968).
-	isFunction: function( obj ) {
-		return jQuery.type(obj) === "function";
-	},
-
-	isArray: Array.isArray || function( obj ) {
-		return jQuery.type(obj) === "array";
-	},
-
-	isWindow: function( obj ) {
-		/* jshint eqeqeq: false */
-		return obj != null && obj == obj.window;
-	},
-
-	isNumeric: function( obj ) {
-		return !isNaN( parseFloat(obj) ) && isFinite( obj );
-	},
-
-	type: function( obj ) {
-		if ( obj == null ) {
-			return String( obj );
-		}
-		return typeof obj === "object" || typeof obj === "function" ?
-			class2type[ core_toString.call(obj) ] || "object" :
-			typeof obj;
-	},
-
-	isPlainObject: function( obj ) {
-		var key;
-
-		// Must be an Object.
-		// Because of IE, we also have to check the presence of the constructor property.
-		// Make sure that DOM nodes and window objects don't pass through, as well
-		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
-			return false;
-		}
-
-		try {
-			// Not own constructor property must be Object
-			if ( obj.constructor &&
-				!core_hasOwn.call(obj, "constructor") &&
-				!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
-				return false;
-			}
-		} catch ( e ) {
-			// IE8,9 Will throw exceptions on certain host objects #9897
-			return false;
-		}
-
-		// Support: IE<9
-		// Handle iteration over inherited properties before own properties.
-		if ( jQuery.support.ownLast ) {
-			for ( key in obj ) {
-				return core_hasOwn.call( obj, key );
-			}
-		}
-
-		// Own properties are enumerated firstly, so to speed up,
-		// if last one is own, then all properties are own.
-		for ( key in obj ) {}
-
-		return key === undefined || core_hasOwn.call( obj, key );
-	},
-
-	isEmptyObject: function( obj ) {
-		var name;
-		for ( name in obj ) {
-			return false;
-		}
-		return true;
-	},
-
-	error: function( msg ) {
-		throw new Error( msg );
-	},
-
-	// data: string of html
-	// context (optional): If specified, the fragment will be created in this context, defaults to document
-	// keepScripts (optional): If true, will include scripts passed in the html string
-	parseHTML: function( data, context, keepScripts ) {
-		if ( !data || typeof data !== "string" ) {
-			return null;
-		}
-		if ( typeof context === "boolean" ) {
-			keepScripts = context;
-			context = false;
-		}
-		context = context || document;
-
-		var parsed = rsingleTag.exec( data ),
-			scripts = !keepScripts && [];
-
-		// Single tag
-		if ( parsed ) {
-			return [ context.createElement( parsed[1] ) ];
-		}
-
-		parsed = jQuery.buildFragment( [ data ], context, scripts );
-		if ( scripts ) {
-			jQuery( scripts ).remove();
-		}
-		return jQuery.merge( [], parsed.childNodes );
-	},
-
-	parseJSON: function( data ) {
-		// Attempt to parse using the native JSON parser first
-		if ( window.JSON && window.JSON.parse ) {
-			return window.JSON.parse( data );
-		}
-
-		if ( data === null ) {
-			return data;
-		}
-
-		if ( typeof data === "string" ) {
-
-			// Make sure leading/trailing whitespace is removed (IE can't handle it)
-			data = jQuery.trim( data );
-
-			if ( data ) {
-				// Make sure the incoming data is actual JSON
-				// Logic borrowed from http://json.org/json2.js
-				if ( rvalidchars.test( data.replace( rvalidescape, "@" )
-					.replace( rvalidtokens, "]" )
-					.replace( rvalidbraces, "")) ) {
-
-					return ( new Function( "return " + data ) )();
-				}
-			}
-		}
-
-		jQuery.error( "Invalid JSON: " + data );
-	},
-
-	// Cross-browser xml parsing
-	parseXML: function( data ) {
-		var xml, tmp;
-		if ( !data || typeof data !== "string" ) {
-			return null;
-		}
-		try {
-			if ( window.DOMParser ) { // Standard
-				tmp = new DOMParser();
-				xml = tmp.parseFromString( data , "text/xml" );
-			} else { // IE
-				xml = new ActiveXObject( "Microsoft.XMLDOM" );
-				xml.async = "false";
-				xml.loadXML( data );
-			}
-		} catch( e ) {
-			xml = undefined;
-		}
-		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
-			jQuery.error( "Invalid XML: " + data );
-		}
-		return xml;
-	},
-
-	noop: function() {},
-
-	// Evaluates a script in a global context
-	// Workarounds based on findings by Jim Driscoll
-	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
-	globalEval: function( data ) {
-		if ( data && jQuery.trim( data ) ) {
-			// We use execScript on Internet Explorer
-			// We use an anonymous function so that context is window
-			// rather than jQuery in Firefox
-			( window.execScript || function( data ) {
-				window[ "eval" ].call( window, data );
-			} )( data );
-		}
-	},
-
-	// Convert dashed to camelCase; used by the css and data modules
-	// Microsoft forgot to hump their vendor prefix (#9572)
-	camelCase: function( string ) {
-		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
-	},
-
-	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
-	},
-
-	// args is for internal usage only
-	each: function( obj, callback, args ) {
-		var value,
-			i = 0,
-			length = obj.length,
-			isArray = isArraylike( obj );
-
-		if ( args ) {
-			if ( isArray ) {
-				for ( ; i < length; i++ ) {
-					value = callback.apply( obj[ i ], args );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( i in obj ) {
-					value = callback.apply( obj[ i ], args );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			}
-
-		// A special, fast, case for the most common use of each
-		} else {
-			if ( isArray ) {
-				for ( ; i < length; i++ ) {
-					value = callback.call( obj[ i ], i, obj[ i ] );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( i in obj ) {
-					value = callback.call( obj[ i ], i, obj[ i ] );
-
-					if ( value === false ) {
-						break;
-					}
-				}
-			}
-		}
-
-		return obj;
-	},
-
-	// Use native String.trim function wherever possible
-	trim: core_trim && !core_trim.call("\uFEFF\xA0") ?
-		function( text ) {
-			return text == null ?
-				"" :
-				core_trim.call( text );
-		} :
-
-		// Otherwise use our own trimming functionality
-		function( text ) {
-			return text == null ?
-				"" :
-				( text + "" ).replace( rtrim, "" );
-		},
-
-	// results is for internal usage only
-	makeArray: function( arr, results ) {
-		var ret = results || [];
-
-		if ( arr != null ) {
-			if ( isArraylike( Object(arr) ) ) {
-				jQuery.merge( ret,
-					typeof arr === "string" ?
-					[ arr ] : arr
-				);
-			} else {
-				core_push.call( ret, arr );
-			}
-		}
-
-		return ret;
-	},
-
-	inArray: function( elem, arr, i ) {
-		var len;
-
-		if ( arr ) {
-			if ( core_indexOf ) {
-				return core_indexOf.call( arr, elem, i );
-			}
-
-			len = arr.length;
-			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
-
-			for ( ; i < len; i++ ) {
-				// Skip accessing in sparse arrays
-				if ( i in arr && arr[ i ] === elem ) {
-					return i;
-				}
-			}
-		}
-
-		return -1;
-	},
-
-	merge: function( first, second ) {
-		var l = second.length,
-			i = first.length,
-			j = 0;
-
-		if ( typeof l === "number" ) {
-			for ( ; j < l; j++ ) {
-				first[ i++ ] = second[ j ];
-			}
-		} else {
-			while ( second[j] !== undefined ) {
-				first[ i++ ] = second[ j++ ];
-			}
-		}
-
-		first.length = i;
-
-		return first;
-	},
-
-	grep: function( elems, callback, inv ) {
-		var retVal,
-			ret = [],
-			i = 0,
-			length = elems.length;
-		inv = !!inv;
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( ; i < length; i++ ) {
-			retVal = !!callback( elems[ i ], i );
-			if ( inv !== retVal ) {
-				ret.push( elems[ i ] );
-			}
-		}
-
-		return ret;
-	},
-
-	// arg is for internal usage only
-	map: function( elems, callback, arg ) {
-		var value,
-			i = 0,
-			length = elems.length,
-			isArray = isArraylike( elems ),
-			ret = [];
-
-		// Go through the array, translating each of the items to their
-		if ( isArray ) {
-			for ( ; i < length; i++ ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-
-		// Go through every key on the object,
-		} else {
-			for ( i in elems ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-		}
-
-		// Flatten any nested arrays
-		return core_concat.apply( [], ret );
-	},
-
-	// A global GUID counter for objects
-	guid: 1,
-
-	// Bind a function to a context, optionally partially applying any
-	// arguments.
-	proxy: function( fn, context ) {
-		var args, proxy, tmp;
-
-		if ( typeof context === "string" ) {
-			tmp = fn[ context ];
-			context = fn;
-			fn = tmp;
-		}
-
-		// Quick check to determine if target is callable, in the spec
-		// this throws a TypeError, but we will just return undefined.
-		if ( !jQuery.isFunction( fn ) ) {
-			return undefined;
-		}
-
-		// Simulated bind
-		args = core_slice.call( arguments, 2 );
-		proxy = function() {
-			return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );
-		};
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
-
-		return proxy;
-	},
-
-	// Multifunctional method to get and set values of a collection
-	// The value/s can optionally be executed if it's a function
-	access: function( elems, fn, key, value, chainable, emptyGet, raw ) {
-		var i = 0,
-			length = elems.length,
-			bulk = key == null;
-
-		// Sets many values
-		if ( jQuery.type( key ) === "object" ) {
-			chainable = true;
-			for ( i in key ) {
-				jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
-			}
-
-		// Sets one value
-		} else if ( value !== undefined ) {
-			chainable = true;
-
-			if ( !jQuery.isFunction( value ) ) {
-				raw = true;
-			}
-
-			if ( bulk ) {
-				// Bulk operations run against the entire set
-				if ( raw ) {
-					fn.call( elems, value );
-					fn = null;
-
-				// ...except when executing function values
-				} else {
-					bulk = fn;
-					fn = function( elem, key, value ) {
-						return bulk.call( jQuery( elem ), value );
-					};
-				}
-			}
-
-			if ( fn ) {
-				for ( ; i < length; i++ ) {
-					fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
-				}
-			}
-		}
-
-		return chainable ?
-			elems :
-
-			// Gets
-			bulk ?
-				fn.call( elems ) :
-				length ? fn( elems[0], key ) : emptyGet;
-	},
-
-	now: function() {
-		return ( new Date() ).getTime();
-	},
-
-	// A method for quickly swapping in/out CSS properties to get correct calculations.
-	// Note: this method belongs to the css module but it's needed here for the support module.
-	// If support gets modularized, this method should be moved back to the css module.
-	swap: function( elem, options, callback, args ) {
-		var ret, name,
-			old = {};
-
-		// Remember the old values, and insert the new ones
-		for ( name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
-		}
-
-		ret = callback.apply( elem, args || [] );
-
-		// Revert the old values
-		for ( name in options ) {
-			elem.style[ name ] = old[ name ];
-		}
-
-		return ret;
-	}
-});
-
-jQuery.ready.promise = function( obj ) {
-	if ( !readyList ) {
-
-		readyList = jQuery.Deferred();
-
-		// Catch cases where $(document).ready() is called after the browser event has already occurred.
-		// we once tried to use readyState "interactive" here, but it caused issues like the one
-		// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
-		if ( document.readyState === "complete" ) {
-			// Handle it asynchronously to allow scripts the opportunity to delay ready
-			setTimeout( jQuery.ready );
-
-		// Standards-based browsers support DOMContentLoaded
-		} else if ( document.addEventListener ) {
-			// Use the handy event callback
-			document.addEventListener( "DOMContentLoaded", completed, false );
-
-			// A fallback to window.onload, that will always work
-			window.addEventListener( "load", completed, false );
-
-		// If IE event model is used
-		} else {
-			// Ensure firing before onload, maybe late but safe also for iframes
-			document.attachEvent( "onreadystatechange", completed );
-
-			// A fallback to window.onload, that will always work
-			window.attachEvent( "onload", completed );
-
-			// If IE and not a frame
-			// continually check to see if the document is ready
-			var top = false;
-
-			try {
-				top = window.frameElement == null && document.documentElement;
-			} catch(e) {}
-
-			if ( top && top.doScroll ) {
-				(function doScrollCheck() {
-					if ( !jQuery.isReady ) {
-
-						try {
-							// Use the trick by Diego Perini
-							// http://javascript.nwbox.com/IEContentLoaded/
-							top.doScroll("left");
-						} catch(e) {
-							return setTimeout( doScrollCheck, 50 );
-						}
-
-						// detach all dom ready events
-						detach();
-
-						// and execute any waiting functions
-						jQuery.ready();
-					}
-				})();
-			}
-		}
-	}
-	return readyList.promise( obj );
-};
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-function isArraylike( obj ) {
-	var length = obj.length,
-		type = jQuery.type( obj );
-
-	if ( jQuery.isWindow( obj ) ) {
-		return false;
-	}
-
-	if ( obj.nodeType === 1 && length ) {
-		return true;
-	}
-
-	return type === "array" || type !== "function" &&
-		( length === 0 ||
-		typeof length === "number" && length > 0 && ( length - 1 ) in obj );
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-/*!
- * Sizzle CSS Selector Engine v1.10.2
- * http://sizzlejs.com/
- *
- * Copyright 2013 jQuery Foundation, Inc. and other contributors
- * Released under the MIT license
- * http://jquery.org/license
- *
- * Date: 2013-07-03
- */
-(function( window, undefined ) {
-
-var i,
-	support,
-	cachedruns,
-	Expr,
-	getText,
-	isXML,
-	compile,
-	outermostContext,
-	sortInput,
-
-	// Local document vars
-	setDocument,
-	document,
-	docElem,
-	documentIsHTML,
-	rbuggyQSA,
-	rbuggyMatches,
-	matches,
-	contains,
-
-	// Instance-specific data
-	expando = "sizzle" + -(new Date()),
-	preferredDoc = window.document,
-	dirruns = 0,
-	done = 0,
-	classCache = createCache(),
-	tokenCache = createCache(),
-	compilerCache = createCache(),
-	hasDuplicate = false,
-	sortOrder = function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-		return 0;
-	},
-
-	// General-purpose constants
-	strundefined = typeof undefined,
-	MAX_NEGATIVE = 1 << 31,
-
-	// Instance methods
-	hasOwn = ({}).hasOwnProperty,
-	arr = [],
-	pop = arr.pop,
-	push_native = arr.push,
-	push = arr.push,
-	slice = arr.slice,
-	// Use a stripped-down indexOf if we can't use a native one
-	indexOf = arr.indexOf || function( elem ) {
-		var i = 0,
-			len = this.length;
-		for ( ; i < len; i++ ) {
-			if ( this[i] === elem ) {
-				return i;
-			}
-		}
-		return -1;
-	},
-
-	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
-
-	// Regular expressions
-
-	// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
-	whitespace = "[\\x20\\t\\r\\n\\f]",
-	// http://www.w3.org/TR/css3-syntax/#characters
-	characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
-
-	// Loosely modeled on CSS identifier characters
-	// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
-	// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
-	identifier = characterEncoding.replace( "w", "w#" ),
-
-	// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
-	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
-		"*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
-
-	// Prefer arguments quoted,
-	//   then not containing pseudos/brackets,
-	//   then attribute selectors/non-parenthetical expressions,
-	//   then anything else
-	// These preferences are here to reduce the number of selectors
-	//   needing tokenize in the PSEUDO preFilter
-	pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
-
-	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
-	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
-
-	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
-	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
-
-	rsibling = new RegExp( whitespace + "*[+~]" ),
-	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ),
-
-	rpseudo = new RegExp( pseudos ),
-	ridentifier = new RegExp( "^" + identifier + "$" ),
-
-	matchExpr = {
-		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
-		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
-		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
-		"ATTR": new RegExp( "^" + attributes ),
-		"PSEUDO": new RegExp( "^" + pseudos ),
-		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
-			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
-			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
-		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
-		// For use in libraries implementing .is()
-		// We use this for POS matching in `select`
-		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
-			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
-	},
-
-	rnative = /^[^{]+\{\s*\[native \w/,
-
-	// Easily-parseable/retrievable ID or TAG or CLASS selectors
-	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
-
-	rinputs = /^(?:input|select|textarea|button)$/i,
-	rheader = /^h\d$/i,
-
-	rescape = /'|\\/g,
-
-	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
-	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
-	funescape = function( _, escaped, escapedWhitespace ) {
-		var high = "0x" + escaped - 0x10000;
-		// NaN means non-codepoint
-		// Support: Firefox
-		// Workaround erroneous numeric interpretation of +"0x"
-		return high !== high || escapedWhitespace ?
-			escaped :
-			// BMP codepoint
-			high < 0 ?
-				String.fromCharCode( high + 0x10000 ) :
-				// Supplemental Plane codepoint (surrogate pair)
-				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
-	};
-
-// Optimize for push.apply( _, NodeList )
-try {
-	push.apply(
-		(arr = slice.call( preferredDoc.childNodes )),
-		preferredDoc.childNodes
-	);
-	// Support: Android<4.0
-	// Detect silently failing push.apply
-	arr[ preferredDoc.childNodes.length ].nodeType;
-} catch ( e ) {
-	push = { apply: arr.length ?
-
-		// Leverage slice if possible
-		function( target, els ) {
-			push_native.apply( target, slice.call(els) );
-		} :
-
-		// Support: IE<9
-		// Otherwise append directly
-		function( target, els ) {
-			var j = target.length,
-				i = 0;
-			// Can't trust NodeList.length
-			while ( (target[j++] = els[i++]) ) {}
-			target.length = j - 1;
-		}
-	};
-}
-
-function Sizzle( selector, context, results, seed ) {
-	var match, elem, m, nodeType,
-		// QSA vars
-		i, groups, old, nid, newContext, newSelector;
-
-	if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
-		setDocument( context );
-	}
-
-	context = context || document;
-	results = results || [];
-
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
-		return [];
-	}
-
-	if ( documentIsHTML && !seed ) {
-
-		// Shortcuts
-		if ( (match = rquickExpr.exec( selector )) ) {
-			// Speed-up: Sizzle("#ID")
-			if ( (m = match[1]) ) {
-				if ( nodeType === 9 ) {
-					elem = context.getElementById( m );
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE, Opera, and Webkit return items
-						// by name instead of ID
-						if ( elem.id === m ) {
-							results.push( elem );
-							return results;
-						}
-					} else {
-						return results;
-					}
-				} else {
-					// Context is not a document
-					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
-						contains( context, elem ) && elem.id === m ) {
-						results.push( elem );
-						return results;
-					}
-				}
-
-			// Speed-up: Sizzle("TAG")
-			} else if ( match[2] ) {
-				push.apply( results, context.getElementsByTagName( selector ) );
-				return results;
-
-			// Speed-up: Sizzle(".CLASS")
-			} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
-				push.apply( results, context.getElementsByClassName( m ) );
-				return results;
-			}
-		}
-
-		// QSA path
-		if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
-			nid = old = expando;
-			newContext = context;
-			newSelector = nodeType === 9 && selector;
-
-			// qSA works strangely on Element-rooted queries
-			// We can work around this by specifying an extra ID on the root
-			// and working up from there (Thanks to Andrew Dupont for the technique)
-			// IE 8 doesn't work on object elements
-			if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-				groups = tokenize( selector );
-
-				if ( (old = context.getAttribute("id")) ) {
-					nid = old.replace( rescape, "\\$&" );
-				} else {
-					context.setAttribute( "id", nid );
-				}
-				nid = "[id='" + nid + "'] ";
-
-				i = groups.length;
-				while ( i-- ) {
-					groups[i] = nid + toSelector( groups[i] );
-				}
-				newContext = rsibling.test( selector ) && context.parentNode || context;
-				newSelector = groups.join(",");
-			}
-
-			if ( newSelector ) {
-				try {
-					push.apply( results,
-						newContext.querySelectorAll( newSelector )
-					);
-					return results;
-				} catch(qsaError) {
-				} finally {
-					if ( !old ) {
-						context.removeAttribute("id");
-					}
-				}
-			}
-		}
-	}
-
-	// All others
-	return select( selector.replace( rtrim, "$1" ), context, results, seed );
-}
-
-/**
- * Create key-value caches of limited size
- * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
- *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
- *	deleting the oldest entry
- */
-function createCache() {
-	var keys = [];
-
-	function cache( key, value ) {
-		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
-		if ( keys.push( key += " " ) > Expr.cacheLength ) {
-			// Only keep the most recent entries
-			delete cache[ keys.shift() ];
-		}
-		return (cache[ key ] = value);
-	}
-	return cache;
-}
-
-/**
- * Mark a function for special use by Sizzle
- * @param {Function} fn The function to mark
- */
-function markFunction( fn ) {
-	fn[ expando ] = true;
-	return fn;
-}
-
-/**
- * Support testing using an element
- * @param {Function} fn Passed the created div and expects a boolean result
- */
-function assert( fn ) {
-	var div = document.createElement("div");
-
-	try {
-		return !!fn( div );
-	} catch (e) {
-		return false;
-	} finally {
-		// Remove from its parent by default
-		if ( div.parentNode ) {
-			div.parentNode.removeChild( div );
-		}
-		// release memory in IE
-		div = null;
-	}
-}
-
-/**
- * Adds the same handler for all of the specified attrs
- * @param {String} attrs Pipe-separated list of attributes
- * @param {Function} handler The method that will be applied
- */
-function addHandle( attrs, handler ) {
-	var arr = attrs.split("|"),
-		i = attrs.length;
-
-	while ( i-- ) {
-		Expr.attrHandle[ arr[i] ] = handler;
-	}
-}
-
-/**
- * Checks document order of two siblings
- * @param {Element} a
- * @param {Element} b
- * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
- */
-function siblingCheck( a, b ) {
-	var cur = b && a,
-		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
-			( ~b.sourceIndex || MAX_NEGATIVE ) -
-			( ~a.sourceIndex || MAX_NEGATIVE );
-
-	// Use IE sourceIndex if available on both nodes
-	if ( diff ) {
-		return diff;
-	}
-
-	// Check if b follows a
-	if ( cur ) {
-		while ( (cur = cur.nextSibling) ) {
-			if ( cur === b ) {
-				return -1;
-			}
-		}
-	}
-
-	return a ? 1 : -1;
-}
-
-/**
- * Returns a function to use in pseudos for input types
- * @param {String} type
- */
-function createInputPseudo( type ) {
-	return function( elem ) {
-		var name = elem.nodeName.toLowerCase();
-		return name === "input" && elem.type === type;
-	};
-}
-
-/**
- * Returns a function to use in pseudos for buttons
- * @param {String} type
- */
-function createButtonPseudo( type ) {
-	return function( elem ) {
-		var name = elem.nodeName.toLowerCase();
-		return (name === "input" || name === "button") && elem.type === type;
-	};
-}
-
-/**
- * Returns a function to use in pseudos for positionals
- * @param {Function} fn
- */
-function createPositionalPseudo( fn ) {
-	return markFunction(function( argument ) {
-		argument = +argument;
-		return markFunction(function( seed, matches ) {
-			var j,
-				matchIndexes = fn( [], seed.length, argument ),
-				i = matchIndexes.length;
-
-			// Match elements found at the specified indexes
-			while ( i-- ) {
-				if ( seed[ (j = matchIndexes[i]) ] ) {
-					seed[j] = !(matches[j] = seed[j]);
-				}
-			}
-		});
-	});
-}
-
-/**
- * Detect xml
- * @param {Element|Object} elem An element or a document
- */
-isXML = Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833)
-	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-// Expose support vars for convenience
-support = Sizzle.support = {};
-
-/**
- * Sets document-related variables once based on the current document
- * @param {Element|Object} [doc] An element or document object to use to set the document
- * @returns {Object} Returns the current document
- */
-setDocument = Sizzle.setDocument = function( node ) {
-	var doc = node ? node.ownerDocument || node : preferredDoc,
-		parent = doc.defaultView;
-
-	// If no document and documentElement is available, return
-	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
-		return document;
-	}
-
-	// Set our document
-	document = doc;
-	docElem = doc.documentElement;
-
-	// Support tests
-	documentIsHTML = !isXML( doc );
-
-	// Support: IE>8
-	// If iframe document is assigned to "document" variable and if iframe has been reloaded,
-	// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
-	// IE6-8 do not support the defaultView property so parent will be undefined
-	if ( parent && parent.attachEvent && parent !== parent.top ) {
-		parent.attachEvent( "onbeforeunload", function() {
-			setDocument();
-		});
-	}
-
-	/* Attributes
-	---------------------------------------------------------------------- */
-
-	// Support: IE<8
-	// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
-	support.attributes = assert(function( div ) {
-		div.className = "i";
-		return !div.getAttribute("className");
-	});
-
-	/* getElement(s)By*
-	---------------------------------------------------------------------- */
-
-	// Check if getElementsByTagName("*") returns only elements
-	support.getElementsByTagName = assert(function( div ) {
-		div.appendChild( doc.createComment("") );
-		return !div.getElementsByTagName("*").length;
-	});
-
-	// Check if getElementsByClassName can be trusted
-	support.getElementsByClassName = assert(function( div ) {
-		div.innerHTML = "<div class='a'></div><div class='a i'></div>";
-
-		// Support: Safari<4
-		// Catch class over-caching
-		div.firstChild.className = "i";
-		// Support: Opera<10
-		// Catch gEBCN failure to find non-leading classes
-		return div.getElementsByClassName("i").length === 2;
-	});
-
-	// Support: IE<10
-	// Check if getElementById returns elements by name
-	// The broken getElementById methods don't pick up programatically-set names,
-	// so use a roundabout getElementsByName test
-	support.getById = assert(function( div ) {
-		docElem.appendChild( div ).id = expando;
-		return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
-	});
-
-	// ID find and filter
-	if ( support.getById ) {
-		Expr.find["ID"] = function( id, context ) {
-			if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
-				var m = context.getElementById( id );
-				// Check parentNode to catch when Blackberry 4.6 returns
-				// nodes that are no longer in the document #6963
-				return m && m.parentNode ? [m] : [];
-			}
-		};
-		Expr.filter["ID"] = function( id ) {
-			var attrId = id.replace( runescape, funescape );
-			return function( elem ) {
-				return elem.getAttribute("id") === attrId;
-			};
-		};
-	} else {
-		// Support: IE6/7
-		// getElementById is not reliable as a find shortcut
-		delete Expr.find["ID"];
-
-		Expr.filter["ID"] =  function( id ) {
-			var attrId = id.replace( runescape, funescape );
-			return function( elem ) {
-				var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
-				return node && node.value === attrId;
-			};
-		};
-	}
-
-	// Tag
-	Expr.find["TAG"] = support.getElementsByTagName ?
-		function( tag, context ) {
-			if ( typeof context.getElementsByTagName !== strundefined ) {
-				return context.getElementsByTagName( tag );
-			}
-		} :
-		function( tag, context ) {
-			var elem,
-				tmp = [],
-				i = 0,
-				results = context.getElementsByTagName( tag );
-
-			// Filter out possible comments
-			if ( tag === "*" ) {
-				while ( (elem = results[i++]) ) {
-					if ( elem.nodeType === 1 ) {
-						tmp.push( elem );
-					}
-				}
-
-				return tmp;
-			}
-			return results;
-		};
-
-	// Class
-	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
-		if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
-			return context.getElementsByClassName( className );
-		}
-	};
-
-	/* QSA/matchesSelector
-	---------------------------------------------------------------------- */
-
-	// QSA and matchesSelector support
-
-	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
-	rbuggyMatches = [];
-
-	// qSa(:focus) reports false when true (Chrome 21)
-	// We allow this because of a bug in IE8/9 that throws an error
-	// whenever `document.activeElement` is accessed on an iframe
-	// So, we allow :focus to pass through QSA all the time to avoid the IE error
-	// See http://bugs.jquery.com/ticket/13378
-	rbuggyQSA = [];
-
-	if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
-		// Build QSA regex
-		// Regex strategy adopted from Diego Perini
-		assert(function( div ) {
-			// Select is set to empty string on purpose
-			// This is to test IE's treatment of not explicitly
-			// setting a boolean content attribute,
-			// since its presence should be enough
-			// http://bugs.jquery.com/ticket/12359
-			div.innerHTML = "<select><option selected=''></option></select>";
-
-			// Support: IE8
-			// Boolean attributes and "value" are not treated correctly
-			if ( !div.querySelectorAll("[selected]").length ) {
-				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
-			}
-
-			// Webkit/Opera - :checked should return selected option elements
-			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
-			// IE8 throws error here and will not see later tests
-			if ( !div.querySelectorAll(":checked").length ) {
-				rbuggyQSA.push(":checked");
-			}
-		});
-
-		assert(function( div ) {
-
-			// Support: Opera 10-12/IE8
-			// ^= $= *= and empty values
-			// Should not select anything
-			// Support: Windows 8 Native Apps
-			// The type attribute is restricted during .innerHTML assignment
-			var input = doc.createElement("input");
-			input.setAttribute( "type", "hidden" );
-			div.appendChild( input ).setAttribute( "t", "" );
-
-			if ( div.querySelectorAll("[t^='']").length ) {
-				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
-			}
-
-			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
-			// IE8 throws error here and will not see later tests
-			if ( !div.querySelectorAll(":enabled").length ) {
-				rbuggyQSA.push( ":enabled", ":disabled" );
-			}
-
-			// Opera 10-11 does not throw on post-comma invalid pseudos
-			div.querySelectorAll("*,:x");
-			rbuggyQSA.push(",.*:");
-		});
-	}
-
-	if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
-		docElem.mozMatchesSelector ||
-		docElem.oMatchesSelector ||
-		docElem.msMatchesSelector) )) ) {
-
-		assert(function( div ) {
-			// Check to see if it's possible to do matchesSelector
-			// on a disconnected node (IE 9)
-			support.disconnectedMatch = matches.call( div, "div" );
-
-			// This should fail with an exception
-			// Gecko does not error, returns false instead
-			matches.call( div, "[s!='']:x" );
-			rbuggyMatches.push( "!=", pseudos );
-		});
-	}
-
-	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
-	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
-
-	/* Contains
-	---------------------------------------------------------------------- */
-
-	// Element contains another
-	// Purposefully does not implement inclusive descendent
-	// As in, an element does not contain itself
-	contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?
-		function( a, b ) {
-			var adown = a.nodeType === 9 ? a.documentElement : a,
-				bup = b && b.parentNode;
-			return a === bup || !!( bup && bup.nodeType === 1 && (
-				adown.contains ?
-					adown.contains( bup ) :
-					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
-			));
-		} :
-		function( a, b ) {
-			if ( b ) {
-				while ( (b = b.parentNode) ) {
-					if ( b === a ) {
-						return true;
-					}
-				}
-			}
-			return false;
-		};
-
-	/* Sorting
-	---------------------------------------------------------------------- */
-
-	// Document order sorting
-	sortOrder = docElem.compareDocumentPosition ?
-	function( a, b ) {
-
-		// Flag for duplicate removal
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-
-		var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );
-
-		if ( compare ) {
-			// Disconnected nodes
-			if ( compare & 1 ||
-				(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
-
-				// Choose the first element that is related to our preferred document
-				if ( a === doc || contains(preferredDoc, a) ) {
-					return -1;
-				}
-				if ( b === doc || contains(preferredDoc, b) ) {
-					return 1;
-				}
-
-				// Maintain original order
-				return sortInput ?
-					( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-					0;
-			}
-
-			return compare & 4 ? -1 : 1;
-		}
-
-		// Not directly comparable, sort on existence of method
-		return a.compareDocumentPosition ? -1 : 1;
-	} :
-	function( a, b ) {
-		var cur,
-			i = 0,
-			aup = a.parentNode,
-			bup = b.parentNode,
-			ap = [ a ],
-			bp = [ b ];
-
-		// Exit early if the nodes are identical
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-
-		// Parentless nodes are either documents or disconnected
-		} else if ( !aup || !bup ) {
-			return a === doc ? -1 :
-				b === doc ? 1 :
-				aup ? -1 :
-				bup ? 1 :
-				sortInput ?
-				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
-				0;
-
-		// If the nodes are siblings, we can do a quick check
-		} else if ( aup === bup ) {
-			return siblingCheck( a, b );
-		}
-
-		// Otherwise we need full lists of their ancestors for comparison
-		cur = a;
-		while ( (cur = cur.parentNode) ) {
-			ap.unshift( cur );
-		}
-		cur = b;
-		while ( (cur = cur.parentNode) ) {
-			bp.unshift( cur );
-		}
-
-		// Walk down the tree looking for a discrepancy
-		while ( ap[i] === bp[i] ) {
-			i++;
-		}
-
-		return i ?
-			// Do a sibling check if the nodes have a common ancestor
-			siblingCheck( ap[i], bp[i] ) :
-
-			// Otherwise nodes in our document sort first
-			ap[i] === preferredDoc ? -1 :
-			bp[i] === preferredDoc ? 1 :
-			0;
-	};
-
-	return doc;
-};
-
-Sizzle.matches = function( expr, elements ) {
-	return Sizzle( expr, null, null, elements );
-};
-
-Sizzle.matchesSelector = function( elem, expr ) {
-	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	// Make sure that attribute selectors are quoted
-	expr = expr.replace( rattributeQuotes, "='$1']" );
-
-	if ( support.matchesSelector && documentIsHTML &&
-		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
-		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
-
-		try {
-			var ret = matches.call( elem, expr );
-
-			// IE 9's matchesSelector returns false on disconnected nodes
-			if ( ret || support.disconnectedMatch ||
-					// As well, disconnected nodes are said to be in a document
-					// fragment in IE 9
-					elem.document && elem.document.nodeType !== 11 ) {
-				return ret;
-			}
-		} catch(e) {}
-	}
-
-	return Sizzle( expr, document, null, [elem] ).length > 0;
-};
-
-Sizzle.contains = function( context, elem ) {
-	// Set document vars if needed
-	if ( ( context.ownerDocument || context ) !== document ) {
-		setDocument( context );
-	}
-	return contains( context, elem );
-};
-
-Sizzle.attr = function( elem, name ) {
-	// Set document vars if needed
-	if ( ( elem.ownerDocument || elem ) !== document ) {
-		setDocument( elem );
-	}
-
-	var fn = Expr.attrHandle[ name.toLowerCase() ],
-		// Don't get fooled by Object.prototype properties (jQuery #13807)
-		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
-			fn( elem, name, !documentIsHTML ) :
-			undefined;
-
-	return val === undefined ?
-		support.attributes || !documentIsHTML ?
-			elem.getAttribute( name ) :
-			(val = elem.getAttributeNode(name)) && val.specified ?
-				val.value :
-				null :
-		val;
-};
-
-Sizzle.error = function( msg ) {
-	throw new Error( "Syntax error, unrecognized expression: " + msg );
-};
-
-/**
- * Document sorting and removing duplicates
- * @param {ArrayLike} results
- */
-Sizzle.uniqueSort = function( results ) {
-	var elem,
-		duplicates = [],
-		j = 0,
-		i = 0;
-
-	// Unless we *know* we can detect duplicates, assume their presence
-	hasDuplicate = !support.detectDuplicates;
-	sortInput = !support.sortStable && results.slice( 0 );
-	results.sort( sortOrder );
-
-	if ( hasDuplicate ) {
-		while ( (elem = results[i++]) ) {
-			if ( elem === results[ i ] ) {
-				j = duplicates.push( i );
-			}
-		}
-		while ( j-- ) {
-			results.splice( duplicates[ j ], 1 );
-		}
-	}
-
-	return results;
-};
-
-/**
- * Utility function for retrieving the text value of an array of DOM nodes
- * @param {Array|Element} elem
- */
-getText = Sizzle.getText = function( elem ) {
-	var node,
-		ret = "",
-		i = 0,
-		nodeType = elem.nodeType;
-
-	if ( !nodeType ) {
-		// If no nodeType, this is expected to be an array
-		for ( ; (node = elem[i]); i++ ) {
-			// Do not traverse comment nodes
-			ret += getText( node );
-		}
-	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
-		// Use textContent for elements
-		// innerText usage removed for consistency of new lines (see #11153)
-		if ( typeof elem.textContent === "string" ) {
-			return elem.textContent;
-		} else {
-			// Traverse its children
-			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-				ret += getText( elem );
-			}
-		}
-	} else if ( nodeType === 3 || nodeType === 4 ) {
-		return elem.nodeValue;
-	}
-	// Do not include comment or processing instruction nodes
-
-	return ret;
-};
-
-Expr = Sizzle.selectors = {
-
-	// Can be adjusted by the user
-	cacheLength: 50,
-
-	createPseudo: markFunction,
-
-	match: matchExpr,
-
-	attrHandle: {},
-
-	find: {},
-
-	relative: {
-		">": { dir: "parentNode", first: true },
-		" ": { dir: "parentNode" },
-		"+": { dir: "previousSibling", first: true },
-		"~": { dir: "previousSibling" }
-	},
-
-	preFilter: {
-		"ATTR": function( match ) {
-			match[1] = match[1].replace( runescape, funescape );
-
-			// Move the given value to match[3] whether quoted or unquoted
-			match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
-
-			if ( match[2] === "~=" ) {
-				match[3] = " " + match[3] + " ";
-			}
-
-			return match.slice( 0, 4 );
-		},
-
-		"CHILD": function( match ) {
-			/* matches from matchExpr["CHILD"]
-				1 type (only|nth|...)
-				2 what (child|of-type)
-				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
-				4 xn-component of xn+y argument ([+-]?\d*n|)
-				5 sign of xn-component
-				6 x of xn-component
-				7 sign of y-component
-				8 y of y-component
-			*/
-			match[1] = match[1].toLowerCase();
-
-			if ( match[1].slice( 0, 3 ) === "nth" ) {
-				// nth-* requires argument
-				if ( !match[3] ) {
-					Sizzle.error( match[0] );
-				}
-
-				// numeric x and y parameters for Expr.filter.CHILD
-				// remember that false/true cast respectively to 0/1
-				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
-				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
-
-			// other types prohibit arguments
-			} else if ( match[3] ) {
-				Sizzle.error( match[0] );
-			}
-
-			return match;
-		},
-
-		"PSEUDO": function( match ) {
-			var excess,
-				unquoted = !match[5] && match[2];
-
-			if ( matchExpr["CHILD"].test( match[0] ) ) {
-				return null;
-			}
-
-			// Accept quoted arguments as-is
-			if ( match[3] && match[4] !== undefined ) {
-				match[2] = match[4];
-
-			// Strip excess characters from unquoted arguments
-			} else if ( unquoted && rpseudo.test( unquoted ) &&
-				// Get excess from tokenize (recursively)
-				(excess = tokenize( unquoted, true )) &&
-				// advance to the next closing parenthesis
-				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
-
-				// excess is a negative index
-				match[0] = match[0].slice( 0, excess );
-				match[2] = unquoted.slice( 0, excess );
-			}
-
-			// Return only captures needed by the pseudo filter method (type and argument)
-			return match.slice( 0, 3 );
-		}
-	},
-
-	filter: {
-
-		"TAG": function( nodeNameSelector ) {
-			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
-			return nodeNameSelector === "*" ?
-				function() { return true; } :
-				function( elem ) {
-					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
-				};
-		},
-
-		"CLASS": function( className ) {
-			var pattern = classCache[ className + " " ];
-
-			return pattern ||
-				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
-				classCache( className, function( elem ) {
-					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
-				});
-		},
-
-		"ATTR": function( name, operator, check ) {
-			return function( elem ) {
-				var result = Sizzle.attr( elem, name );
-
-				if ( result == null ) {
-					return operator === "!=";
-				}
-				if ( !operator ) {
-					return true;
-				}
-
-				result += "";
-
-				return operator === "=" ? result === check :
-					operator === "!=" ? result !== check :
-					operator === "^=" ? check && result.indexOf( check ) === 0 :
-					operator === "*=" ? check && result.indexOf( check ) > -1 :
-					operator === "$=" ? check && result.slice( -check.length ) === check :
-					operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
-					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
-					false;
-			};
-		},
-
-		"CHILD": function( type, what, argument, first, last ) {
-			var simple = type.slice( 0, 3 ) !== "nth",
-				forward = type.slice( -4 ) !== "last",
-				ofType = what === "of-type";
-
-			return first === 1 && last === 0 ?
-
-				// Shortcut for :nth-*(n)
-				function( elem ) {
-					return !!elem.parentNode;
-				} :
-
-				function( elem, context, xml ) {
-					var cache, outerCache, node, diff, nodeIndex, start,
-						dir = simple !== forward ? "nextSibling" : "previousSibling",
-						parent = elem.parentNode,
-						name = ofType && elem.nodeName.toLowerCase(),
-						useCache = !xml && !ofType;
-
-					if ( parent ) {
-
-						// :(first|last|only)-(child|of-type)
-						if ( simple ) {
-							while ( dir ) {
-								node = elem;
-								while ( (node = node[ dir ]) ) {
-									if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
-										return false;
-									}
-								}
-								// Reverse direction for :only-* (if we haven't yet done so)
-								start = dir = type === "only" && !start && "nextSibling";
-							}
-							return true;
-						}
-
-						start = [ forward ? parent.firstChild : parent.lastChild ];
-
-						// non-xml :nth-child(...) stores cache data on `parent`
-						if ( forward && useCache ) {
-							// Seek `elem` from a previously-cached index
-							outerCache = parent[ expando ] || (parent[ expando ] = {});
-							cache = outerCache[ type ] || [];
-							nodeIndex = cache[0] === dirruns && cache[1];
-							diff = cache[0] === dirruns && cache[2];
-							node = nodeIndex && parent.childNodes[ nodeIndex ];
-
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
-
-								// Fallback to seeking `elem` from the start
-								(diff = nodeIndex = 0) || start.pop()) ) {
-
-								// When found, cache indexes on `parent` and break
-								if ( node.nodeType === 1 && ++diff && node === elem ) {
-									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
-									break;
-								}
-							}
-
-						// Use previously-cached element index if available
-						} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
-							diff = cache[1];
-
-						// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
-						} else {
-							// Use the same loop as above to seek `elem` from the start
-							while ( (node = ++nodeIndex && node && node[ dir ] ||
-								(diff = nodeIndex = 0) || start.pop()) ) {
-
-								if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
-									// Cache the index of each encountered element
-									if ( useCache ) {
-										(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
-									}
-
-									if ( node === elem ) {
-										break;
-									}
-								}
-							}
-						}
-
-						// Incorporate the offset, then check against cycle size
-						diff -= last;
-						return diff === first || ( diff % first === 0 && diff / first >= 0 );
-					}
-				};
-		},
-
-		"PSEUDO": function( pseudo, argument ) {
-			// pseudo-class names are case-insensitive
-			// http://www.w3.org/TR/selectors/#pseudo-classes
-			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
-			// Remember that setFilters inherits from pseudos
-			var args,
-				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
-					Sizzle.error( "unsupported pseudo: " + pseudo );
-
-			// The user may use createPseudo to indicate that
-			// arguments are needed to create the filter function
-			// just as Sizzle does
-			if ( fn[ expando ] ) {
-				return fn( argument );
-			}
-
-			// But maintain support for old signatures
-			if ( fn.length > 1 ) {
-				args = [ pseudo, pseudo, "", argument ];
-				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
-					markFunction(function( seed, matches ) {
-						var idx,
-							matched = fn( seed, argument ),
-							i = matched.length;
-						while ( i-- ) {
-							idx = indexOf.call( seed, matched[i] );
-							seed[ idx ] = !( matches[ idx ] = matched[i] );
-						}
-					}) :
-					function( elem ) {
-						return fn( elem, 0, args );
-					};
-			}
-
-			return fn;
-		}
-	},
-
-	pseudos: {
-		// Potentially complex pseudos
-		"not": markFunction(function( selector ) {
-			// Trim the selector passed to compile
-			// to avoid treating leading and trailing
-			// spaces as combinators
-			var input = [],
-				results = [],
-				matcher = compile( selector.replace( rtrim, "$1" ) );
-
-			return matcher[ expando ] ?
-				markFunction(function( seed, matches, context, xml ) {
-					var elem,
-						unmatched = matcher( seed, null, xml, [] ),
-						i = seed.length;
-
-					// Match elements unmatched by `matcher`
-					while ( i-- ) {
-						if ( (elem = unmatched[i]) ) {
-							seed[i] = !(matches[i] = elem);
-						}
-					}
-				}) :
-				function( elem, context, xml ) {
-					input[0] = elem;
-					matcher( input, null, xml, results );
-					return !results.pop();
-				};
-		}),
-
-		"has": markFunction(function( selector ) {
-			return function( elem ) {
-				return Sizzle( selector, elem ).length > 0;
-			};
-		}),
-
-		"contains": markFunction(function( text ) {
-			return function( elem ) {
-				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
-			};
-		}),
-
-		// "Whether an element is represented by a :lang() selector
-		// is based solely on the element's language value
-		// being equal to the identifier C,
-		// or beginning with the identifier C immediately followed by "-".
-		// The matching of C against the element's language value is performed case-insensitively.
-		// The identifier C does not have to be a valid language name."
-		// http://www.w3.org/TR/selectors/#lang-pseudo
-		"lang": markFunction( function( lang ) {
-			// lang value must be a valid identifier
-			if ( !ridentifier.test(lang || "") ) {
-				Sizzle.error( "unsupported lang: " + lang );
-			}
-			lang = lang.replace( runescape, funescape ).toLowerCase();
-			return function( elem ) {
-				var elemLang;
-				do {
-					if ( (elemLang = documentIsHTML ?
-						elem.lang :
-						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
-
-						elemLang = elemLang.toLowerCase();
-						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
-					}
-				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
-				return false;
-			};
-		}),
-
-		// Miscellaneous
-		"target": function( elem ) {
-			var hash = window.location && window.location.hash;
-			return hash && hash.slice( 1 ) === elem.id;
-		},
-
-		"root": function( elem ) {
-			return elem === docElem;
-		},
-
-		"focus": function( elem ) {
-			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
-		},
-
-		// Boolean properties
-		"enabled": function( elem ) {
-			return elem.disabled === false;
-		},
-
-		"disabled": function( elem ) {
-			return elem.disabled === true;
-		},
-
-		"checked": function( elem ) {
-			// In CSS3, :checked should return both checked and selected elements
-			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
-			var nodeName = elem.nodeName.toLowerCase();
-			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
-		},
-
-		"selected": function( elem ) {
-			// Accessing this property makes selected-by-default
-			// options in Safari work properly
-			if ( elem.parentNode ) {
-				elem.parentNode.selectedIndex;
-			}
-
-			return elem.selected === true;
-		},
-
-		// Contents
-		"empty": function( elem ) {
-			// http://www.w3.org/TR/selectors/#empty-pseudo
-			// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
-			//   not comment, processing instructions, or others
-			// Thanks to Diego Perini for the nodeName shortcut
-			//   Greater than "@" means alpha characters (specifically not starting with "#" or "?")
-			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
-				if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) {
-					return false;
-				}
-			}
-			return true;
-		},
-
-		"parent": function( elem ) {
-			return !Expr.pseudos["empty"]( elem );
-		},
-
-		// Element/input types
-		"header": function( elem ) {
-			return rheader.test( elem.nodeName );
-		},
-
-		"input": function( elem ) {
-			return rinputs.test( elem.nodeName );
-		},
-
-		"button": function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return name === "input" && elem.type === "button" || name === "button";
-		},
-
-		"text": function( elem ) {
-			var attr;
-			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
-			// use getAttribute instead to test this case
-			return elem.nodeName.toLowerCase() === "input" &&
-				elem.type === "text" &&
-				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type );
-		},
-
-		// Position-in-collection
-		"first": createPositionalPseudo(function() {
-			return [ 0 ];
-		}),
-
-		"last": createPositionalPseudo(function( matchIndexes, length ) {
-			return [ length - 1 ];
-		}),
-
-		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			return [ argument < 0 ? argument + length : argument ];
-		}),
-
-		"even": createPositionalPseudo(function( matchIndexes, length ) {
-			var i = 0;
-			for ( ; i < length; i += 2 ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"odd": createPositionalPseudo(function( matchIndexes, length ) {
-			var i = 1;
-			for ( ; i < length; i += 2 ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
-			for ( ; --i >= 0; ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		}),
-
-		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
-			var i = argument < 0 ? argument + length : argument;
-			for ( ; ++i < length; ) {
-				matchIndexes.push( i );
-			}
-			return matchIndexes;
-		})
-	}
-};
-
-Expr.pseudos["nth"] = Expr.pseudos["eq"];
-
-// Add button/input type pseudos
-for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
-	Expr.pseudos[ i ] = createInputPseudo( i );
-}
-for ( i in { submit: true, reset: true } ) {
-	Expr.pseudos[ i ] = createButtonPseudo( i );
-}
-
-// Easy API for creating new setFilters
-function setFilters() {}
-setFilters.prototype = Expr.filters = Expr.pseudos;
-Expr.setFilters = new setFilters();
-
-function tokenize( selector, parseOnly ) {
-	var matched, match, tokens, type,
-		soFar, groups, preFilters,
-		cached = tokenCache[ selector + " " ];
-
-	if ( cached ) {
-		return parseOnly ? 0 : cached.slice( 0 );
-	}
-
-	soFar = selector;
-	groups = [];
-	preFilters = Expr.preFilter;
-
-	while ( soFar ) {
-
-		// Comma and first run
-		if ( !matched || (match = rcomma.exec( soFar )) ) {
-			if ( match ) {
-				// Don't consume trailing commas as valid
-				soFar = soFar.slice( match[0].length ) || soFar;
-			}
-			groups.push( tokens = [] );
-		}
-
-		matched = false;
-
-		// Combinators
-		if ( (match = rcombinators.exec( soFar )) ) {
-			matched = match.shift();
-			tokens.push({
-				value: matched,
-				// Cast descendant combinators to space
-				type: match[0].replace( rtrim, " " )
-			});
-			soFar = soFar.slice( matched.length );
-		}
-
-		// Filters
-		for ( type in Expr.filter ) {
-			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
-				(match = preFilters[ type ]( match ))) ) {
-				matched = match.shift();
-				tokens.push({
-					value: matched,
-					type: type,
-					matches: match
-				});
-				soFar = soFar.slice( matched.length );
-			}
-		}
-
-		if ( !matched ) {
-			break;
-		}
-	}
-
-	// Return the length of the invalid excess
-	// if we're just parsing
-	// Otherwise, throw an error or return tokens
-	return parseOnly ?
-		soFar.length :
-		soFar ?
-			Sizzle.error( selector ) :
-			// Cache the tokens
-			tokenCache( selector, groups ).slice( 0 );
-}
-
-function toSelector( tokens ) {
-	var i = 0,
-		len = tokens.length,
-		selector = "";
-	for ( ; i < len; i++ ) {
-		selector += tokens[i].value;
-	}
-	return selector;
-}
-
-function addCombinator( matcher, combinator, base ) {
-	var dir = combinator.dir,
-		checkNonElements = base && dir === "parentNode",
-		doneName = done++;
-
-	return combinator.first ?
-		// Check against closest ancestor/preceding element
-		function( elem, context, xml ) {
-			while ( (elem = elem[ dir ]) ) {
-				if ( elem.nodeType === 1 || checkNonElements ) {
-					return matcher( elem, context, xml );
-				}
-			}
-		} :
-
-		// Check against all ancestor/preceding elements
-		function( elem, context, xml ) {
-			var data, cache, outerCache,
-				dirkey = dirruns + " " + doneName;
-
-			// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
-			if ( xml ) {
-				while ( (elem = elem[ dir ]) ) {
-					if ( elem.nodeType === 1 || checkNonElements ) {
-						if ( matcher( elem, context, xml ) ) {
-							return true;
-						}
-					}
-				}
-			} else {
-				while ( (elem = elem[ dir ]) ) {
-					if ( elem.nodeType === 1 || checkNonElements ) {
-						outerCache = elem[ expando ] || (elem[ expando ] = {});
-						if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {
-							if ( (data = cache[1]) === true || data === cachedruns ) {
-								return data === true;
-							}
-						} else {
-							cache = outerCache[ dir ] = [ dirkey ];
-							cache[1] = matcher( elem, context, xml ) || cachedruns;
-							if ( cache[1] === true ) {
-								return true;
-							}
-						}
-					}
-				}
-			}
-		};
-}
-
-function elementMatcher( matchers ) {
-	return matchers.length > 1 ?
-		function( elem, context, xml ) {
-			var i = matchers.length;
-			while ( i-- ) {
-				if ( !matchers[i]( elem, context, xml ) ) {
-					return false;
-				}
-			}
-			return true;
-		} :
-		matchers[0];
-}
-
-function condense( unmatched, map, filter, context, xml ) {
-	var elem,
-		newUnmatched = [],
-		i = 0,
-		len = unmatched.length,
-		mapped = map != null;
-
-	for ( ; i < len; i++ ) {
-		if ( (elem = unmatched[i]) ) {
-			if ( !filter || filter( elem, context, xml ) ) {
-				newUnmatched.push( elem );
-				if ( mapped ) {
-					map.push( i );
-				}
-			}
-		}
-	}
-
-	return newUnmatched;
-}
-
-function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
-	if ( postFilter && !postFilter[ expando ] ) {
-		postFilter = setMatcher( postFilter );
-	}
-	if ( postFinder && !postFinder[ expando ] ) {
-		postFinder = setMatcher( postFinder, postSelector );
-	}
-	return markFunction(function( seed, results, context, xml ) {
-		var temp, i, elem,
-			preMap = [],
-			postMap = [],
-			preexisting = results.length,
-
-			// Get initial elements from seed or context
-			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
-
-			// Prefilter to get matcher input, preserving a map for seed-results synchronization
-			matcherIn = preFilter && ( seed || !selector ) ?
-				condense( elems, preMap, preFilter, context, xml ) :
-				elems,
-
-			matcherOut = matcher ?
-				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
-				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
-
-					// ...intermediate processing is necessary
-					[] :
-
-					// ...otherwise use results directly
-					results :
-				matcherIn;
-
-		// Find primary matches
-		if ( matcher ) {
-			matcher( matcherIn, matcherOut, context, xml );
-		}
-
-		// Apply postFilter
-		if ( postFilter ) {
-			temp = condense( matcherOut, postMap );
-			postFilter( temp, [], context, xml );
-
-			// Un-match failing elements by moving them back to matcherIn
-			i = temp.length;
-			while ( i-- ) {
-				if ( (elem = temp[i]) ) {
-					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
-				}
-			}
-		}
-
-		if ( seed ) {
-			if ( postFinder || preFilter ) {
-				if ( postFinder ) {
-					// Get the final matcherOut by condensing this intermediate into postFinder contexts
-					temp = [];
-					i = matcherOut.length;
-					while ( i-- ) {
-						if ( (elem = matcherOut[i]) ) {
-							// Restore matcherIn since elem is not yet a final match
-							temp.push( (matcherIn[i] = elem) );
-						}
-					}
-					postFinder( null, (matcherOut = []), temp, xml );
-				}
-
-				// Move matched elements from seed to results to keep them synchronized
-				i = matcherOut.length;
-				while ( i-- ) {
-					if ( (elem = matcherOut[i]) &&
-						(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
-
-						seed[temp] = !(results[temp] = elem);
-					}
-				}
-			}
-
-		// Add elements to results, through postFinder if defined
-		} else {
-			matcherOut = condense(
-				matcherOut === results ?
-					matcherOut.splice( preexisting, matcherOut.length ) :
-					matcherOut
-			);
-			if ( postFinder ) {
-				postFinder( null, results, matcherOut, xml );
-			} else {
-				push.apply( results, matcherOut );
-			}
-		}
-	});
-}
-
-function matcherFromTokens( tokens ) {
-	var checkContext, matcher, j,
-		len = tokens.length,
-		leadingRelative = Expr.relative[ tokens[0].type ],
-		implicitRelative = leadingRelative || Expr.relative[" "],
-		i = leadingRelative ? 1 : 0,
-
-		// The foundational matcher ensures that elements are reachable from top-level context(s)
-		matchContext = addCombinator( function( elem ) {
-			return elem === checkContext;
-		}, implicitRelative, true ),
-		matchAnyContext = addCombinator( function( elem ) {
-			return indexOf.call( checkContext, elem ) > -1;
-		}, implicitRelative, true ),
-		matchers = [ function( elem, context, xml ) {
-			return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
-				(checkContext = context).nodeType ?
-					matchContext( elem, context, xml ) :
-					matchAnyContext( elem, context, xml ) );
-		} ];
-
-	for ( ; i < len; i++ ) {
-		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
-			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
-		} else {
-			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
-
-			// Return special upon seeing a positional matcher
-			if ( matcher[ expando ] ) {
-				// Find the next relative operator (if any) for proper handling
-				j = ++i;
-				for ( ; j < len; j++ ) {
-					if ( Expr.relative[ tokens[j].type ] ) {
-						break;
-					}
-				}
-				return setMatcher(
-					i > 1 && elementMatcher( matchers ),
-					i > 1 && toSelector(
-						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
-						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
-					).replace( rtrim, "$1" ),
-					matcher,
-					i < j && matcherFromTokens( tokens.slice( i, j ) ),
-					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
-					j < len && toSelector( tokens )
-				);
-			}
-			matchers.push( matcher );
-		}
-	}
-
-	return elementMatcher( matchers );
-}
-
-function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
-	// A counter to specify which element is currently being matched
-	var matcherCachedRuns = 0,
-		bySet = setMatchers.length > 0,
-		byElement = elementMatchers.length > 0,
-		superMatcher = function( seed, context, xml, results, expandContext ) {
-			var elem, j, matcher,
-				setMatched = [],
-				matchedCount = 0,
-				i = "0",
-				unmatched = seed && [],
-				outermost = expandContext != null,
-				contextBackup = outermostContext,
-				// We must always have either seed elements or context
-				elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
-				// Use integer dirruns iff this is the outermost matcher
-				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);
-
-			if ( outermost ) {
-				outermostContext = context !== document && context;
-				cachedruns = matcherCachedRuns;
-			}
-
-			// Add elements passing elementMatchers directly to results
-			// Keep `i` a string if there are no elements so `matchedCount` will be "00" below
-			for ( ; (elem = elems[i]) != null; i++ ) {
-				if ( byElement && elem ) {
-					j = 0;
-					while ( (matcher = elementMatchers[j++]) ) {
-						if ( matcher( elem, context, xml ) ) {
-							results.push( elem );
-							break;
-						}
-					}
-					if ( outermost ) {
-						dirruns = dirrunsUnique;
-						cachedruns = ++matcherCachedRuns;
-					}
-				}
-
-				// Track unmatched elements for set filters
-				if ( bySet ) {
-					// They will have gone through all possible matchers
-					if ( (elem = !matcher && elem) ) {
-						matchedCount--;
-					}
-
-					// Lengthen the array for every element, matched or not
-					if ( seed ) {
-						unmatched.push( elem );
-					}
-				}
-			}
-
-			// Apply set filters to unmatched elements
-			matchedCount += i;
-			if ( bySet && i !== matchedCount ) {
-				j = 0;
-				while ( (matcher = setMatchers[j++]) ) {
-					matcher( unmatched, setMatched, context, xml );
-				}
-
-				if ( seed ) {
-					// Reintegrate element matches to eliminate the need for sorting
-					if ( matchedCount > 0 ) {
-						while ( i-- ) {
-							if ( !(unmatched[i] || setMatched[i]) ) {
-								setMatched[i] = pop.call( results );
-							}
-						}
-					}
-
-					// Discard index placeholder values to get only actual matches
-					setMatched = condense( setMatched );
-				}
-
-				// Add matches to results
-				push.apply( results, setMatched );
-
-				// Seedless set matches succeeding multiple successful matchers stipulate sorting
-				if ( outermost && !seed && setMatched.length > 0 &&
-					( matchedCount + setMatchers.length ) > 1 ) {
-
-					Sizzle.uniqueSort( results );
-				}
-			}
-
-			// Override manipulation of globals by nested matchers
-			if ( outermost ) {
-				dirruns = dirrunsUnique;
-				outermostContext = contextBackup;
-			}
-
-			return unmatched;
-		};
-
-	return bySet ?
-		markFunction( superMatcher ) :
-		superMatcher;
-}
-
-compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
-	var i,
-		setMatchers = [],
-		elementMatchers = [],
-		cached = compilerCache[ selector + " " ];
-
-	if ( !cached ) {
-		// Generate a function of recursive functions that can be used to check each element
-		if ( !group ) {
-			group = tokenize( selector );
-		}
-		i = group.length;
-		while ( i-- ) {
-			cached = matcherFromTokens( group[i] );
-			if ( cached[ expando ] ) {
-				setMatchers.push( cached );
-			} else {
-				elementMatchers.push( cached );
-			}
-		}
-
-		// Cache the compiled function
-		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
-	}
-	return cached;
-};
-
-function multipleContexts( selector, contexts, results ) {
-	var i = 0,
-		len = contexts.length;
-	for ( ; i < len; i++ ) {
-		Sizzle( selector, contexts[i], results );
-	}
-	return results;
-}
-
-function select( selector, context, results, seed ) {
-	var i, tokens, token, type, find,
-		match = tokenize( selector );
-
-	if ( !seed ) {
-		// Try to minimize operations if there is only one group
-		if ( match.length === 1 ) {
-
-			// Take a shortcut and set the context if the root selector is an ID
-			tokens = match[0] = match[0].slice( 0 );
-			if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
-					support.getById && context.nodeType === 9 && documentIsHTML &&
-					Expr.relative[ tokens[1].type ] ) {
-
-				context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
-				if ( !context ) {
-					return results;
-				}
-				selector = selector.slice( tokens.shift().value.length );
-			}
-
-			// Fetch a seed set for right-to-left matching
-			i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
-			while ( i-- ) {
-				token = tokens[i];
-
-				// Abort if we hit a combinator
-				if ( Expr.relative[ (type = token.type) ] ) {
-					break;
-				}
-				if ( (find = Expr.find[ type ]) ) {
-					// Search, expanding context for leading sibling combinators
-					if ( (seed = find(
-						token.matches[0].replace( runescape, funescape ),
-						rsibling.test( tokens[0].type ) && context.parentNode || context
-					)) ) {
-
-						// If seed is empty or no tokens remain, we can return early
-						tokens.splice( i, 1 );
-						selector = seed.length && toSelector( tokens );
-						if ( !selector ) {
-							push.apply( results, seed );
-							return results;
-						}
-
-						break;
-					}
-				}
-			}
-		}
-	}
-
-	// Compile and execute a filtering function
-	// Provide `match` to avoid retokenization if we modified the selector above
-	compile( selector, match )(
-		seed,
-		context,
-		!documentIsHTML,
-		results,
-		rsibling.test( selector )
-	);
-	return results;
-}
-
-// One-time assignments
-
-// Sort stability
-support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
-
-// Support: Chrome<14
-// Always assume duplicates if they aren't passed to the comparison function
-support.detectDuplicates = hasDuplicate;
-
-// Initialize against the default document
-setDocument();
-
-// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
-// Detached nodes confoundingly follow *each other*
-support.sortDetached = assert(function( div1 ) {
-	// Should return 1, but returns 4 (following)
-	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
-});
-
-// Support: IE<8
-// Prevent attribute/property "interpolation"
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !assert(function( div ) {
-	div.innerHTML = "<a href='#'></a>";
-	return div.firstChild.getAttribute("href") === "#" ;
-}) ) {
-	addHandle( "type|href|height|width", function( elem, name, isXML ) {
-		if ( !isXML ) {
-			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
-		}
-	});
-}
-
-// Support: IE<9
-// Use defaultValue in place of getAttribute("value")
-if ( !support.attributes || !assert(function( div ) {
-	div.innerHTML = "<input/>";
-	div.firstChild.setAttribute( "value", "" );
-	return div.firstChild.getAttribute( "value" ) === "";
-}) ) {
-	addHandle( "value", function( elem, name, isXML ) {
-		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
-			return elem.defaultValue;
-		}
-	});
-}
-
-// Support: IE<9
-// Use getAttributeNode to fetch booleans when getAttribute lies
-if ( !assert(function( div ) {
-	return div.getAttribute("disabled") == null;
-}) ) {
-	addHandle( booleans, function( elem, name, isXML ) {
-		var val;
-		if ( !isXML ) {
-			return (val = elem.getAttributeNode( name )) && val.specified ?
-				val.value :
-				elem[ name ] === true ? name.toLowerCase() : null;
-		}
-	});
-}
-
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.pseudos;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})( window );
-// String to Object options format cache
-var optionsCache = {};
-
-// Convert String-formatted options into Object-formatted ones and store in cache
-function createOptions( options ) {
-	var object = optionsCache[ options ] = {};
-	jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {
-		object[ flag ] = true;
-	});
-	return object;
-}
-
-/*
- * Create a callback list using the following parameters:
- *
- *	options: an optional list of space-separated options that will change how
- *			the callback list behaves or a more traditional option object
- *
- * By default a callback list will act like an event callback list and can be
- * "fired" multiple times.
- *
- * Possible options:
- *
- *	once:			will ensure the callback list can only be fired once (like a Deferred)
- *
- *	memory:			will keep track of previous values and will call any callback added
- *					after the list has been fired right away with the latest "memorized"
- *					values (like a Deferred)
- *
- *	unique:			will ensure a callback can only be added once (no duplicate in the list)
- *
- *	stopOnFalse:	interrupt callings when a callback returns false
- *
- */
-jQuery.Callbacks = function( options ) {
-
-	// Convert options from String-formatted to Object-formatted if needed
-	// (we check in cache first)
-	options = typeof options === "string" ?
-		( optionsCache[ options ] || createOptions( options ) ) :
-		jQuery.extend( {}, options );
-
-	var // Flag to know if list is currently firing
-		firing,
-		// Last fire value (for non-forgettable lists)
-		memory,
-		// Flag to know if list was already fired
-		fired,
-		// End of the loop when firing
-		firingLength,
-		// Index of currently firing callback (modified by remove if needed)
-		firingIndex,
-		// First callback to fire (used internally by add and fireWith)
-		firingStart,
-		// Actual callback list
-		list = [],
-		// Stack of fire calls for repeatable lists
-		stack = !options.once && [],
-		// Fire callbacks
-		fire = function( data ) {
-			memory = options.memory && data;
-			fired = true;
-			firingIndex = firingStart || 0;
-			firingStart = 0;
-			firingLength = list.length;
-			firing = true;
-			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
-				if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
-					memory = false; // To prevent further calls using add
-					break;
-				}
-			}
-			firing = false;
-			if ( list ) {
-				if ( stack ) {
-					if ( stack.length ) {
-						fire( stack.shift() );
-					}
-				} else if ( memory ) {
-					list = [];
-				} else {
-					self.disable();
-				}
-			}
-		},
-		// Actual Callbacks object
-		self = {
-			// Add a callback or a collection of callbacks to the list
-			add: function() {
-				if ( list ) {
-					// First, we save the current length
-					var start = list.length;
-					(function add( args ) {
-						jQuery.each( args, function( _, arg ) {
-							var type = jQuery.type( arg );
-							if ( type === "function" ) {
-								if ( !options.unique || !self.has( arg ) ) {
-									list.push( arg );
-								}
-							} else if ( arg && arg.length && type !== "string" ) {
-								// Inspect recursively
-								add( arg );
-							}
-						});
-					})( arguments );
-					// Do we need to add the callbacks to the
-					// current firing batch?
-					if ( firing ) {
-						firingLength = list.length;
-					// With memory, if we're not firing then
-					// we should call right away
-					} else if ( memory ) {
-						firingStart = start;
-						fire( memory );
-					}
-				}
-				return this;
-			},
-			// Remove a callback from the list
-			remove: function() {
-				if ( list ) {
-					jQuery.each( arguments, function( _, arg ) {
-						var index;
-						while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
-							list.splice( index, 1 );
-							// Handle firing indexes
-							if ( firing ) {
-								if ( index <= firingLength ) {
-									firingLength--;
-								}
-								if ( index <= firingIndex ) {
-									firingIndex--;
-								}
-							}
-						}
-					});
-				}
-				return this;
-			},
-			// Check if a given callback is in the list.
-			// If no argument is given, return whether or not list has callbacks attached.
-			has: function( fn ) {
-				return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
-			},
-			// Remove all callbacks from the list
-			empty: function() {
-				list = [];
-				firingLength = 0;
-				return this;
-			},
-			// Have the list do nothing anymore
-			disable: function() {
-				list = stack = memory = undefined;
-				return this;
-			},
-			// Is it disabled?
-			disabled: function() {
-				return !list;
-			},
-			// Lock the list in its current state
-			lock: function() {
-				stack = undefined;
-				if ( !memory ) {
-					self.disable();
-				}
-				return this;
-			},
-			// Is it locked?
-			locked: function() {
-				return !stack;
-			},
-			// Call all callbacks with the given context and arguments
-			fireWith: function( context, args ) {
-				if ( list && ( !fired || stack ) ) {
-					args = args || [];
-					args = [ context, args.slice ? args.slice() : args ];
-					if ( firing ) {
-						stack.push( args );
-					} else {
-						fire( args );
-					}
-				}
-				return this;
-			},
-			// Call all the callbacks with the given arguments
-			fire: function() {
-				self.fireWith( this, arguments );
-				return this;
-			},
-			// To know if the callbacks have already been called at least once
-			fired: function() {
-				return !!fired;
-			}
-		};
-
-	return self;
-};
-jQuery.extend({
-
-	Deferred: function( func ) {
-		var tuples = [
-				// action, add listener, listener list, final state
-				[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
-				[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
-				[ "notify", "progress", jQuery.Callbacks("memory") ]
-			],
-			state = "pending",
-			promise = {
-				state: function() {
-					return state;
-				},
-				always: function() {
-					deferred.done( arguments ).fail( arguments );
-					return this;
-				},
-				then: function( /* fnDone, fnFail, fnProgress */ ) {
-					var fns = arguments;
-					return jQuery.Deferred(function( newDefer ) {
-						jQuery.each( tuples, function( i, tuple ) {
-							var action = tuple[ 0 ],
-								fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
-							// deferred[ done | fail | progress ] for forwarding actions to newDefer
-							deferred[ tuple[1] ](function() {
-								var returned = fn && fn.apply( this, arguments );
-								if ( returned && jQuery.isFunction( returned.promise ) ) {
-									returned.promise()
-										.done( newDefer.resolve )
-										.fail( newDefer.reject )
-										.progress( newDefer.notify );
-								} else {
-									newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
-								}
-							});
-						});
-						fns = null;
-					}).promise();
-				},
-				// Get a promise for this deferred
-				// If obj is provided, the promise aspect is added to the object
-				promise: function( obj ) {
-					return obj != null ? jQuery.extend( obj, promise ) : promise;
-				}
-			},
-			deferred = {};
-
-		// Keep pipe for back-compat
-		promise.pipe = promise.then;
-
-		// Add list-specific methods
-		jQuery.each( tuples, function( i, tuple ) {
-			var list = tuple[ 2 ],
-				stateString = tuple[ 3 ];
-
-			// promise[ done | fail | progress ] = list.add
-			promise[ tuple[1] ] = list.add;
-
-			// Handle state
-			if ( stateString ) {
-				list.add(function() {
-					// state = [ resolved | rejected ]
-					state = stateString;
-
-				// [ reject_list | resolve_list ].disable; progress_list.lock
-				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
-			}
-
-			// deferred[ resolve | reject | notify ]
-			deferred[ tuple[0] ] = function() {
-				deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
-				return this;
-			};
-			deferred[ tuple[0] + "With" ] = list.fireWith;
-		});
-
-		// Make the deferred a promise
-		promise.promise( deferred );
-
-		// Call given func if any
-		if ( func ) {
-			func.call( deferred, deferred );
-		}
-
-		// All done!
-		return deferred;
-	},
-
-	// Deferred helper
-	when: function( subordinate /* , ..., subordinateN */ ) {
-		var i = 0,
-			resolveValues = core_slice.call( arguments ),
-			length = resolveValues.length,
-
-			// the count of uncompleted subordinates
-			remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
-
-			// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
-			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
-
-			// Update function for both resolve and progress values
-			updateFunc = function( i, contexts, values ) {
-				return function( value ) {
-					contexts[ i ] = this;
-					values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
-					if( values === progressValues ) {
-						deferred.notifyWith( contexts, values );
-					} else if ( !( --remaining ) ) {
-						deferred.resolveWith( contexts, values );
-					}
-				};
-			},
-
-			progressValues, progressContexts, resolveContexts;
-
-		// add listeners to Deferred subordinates; treat others as resolved
-		if ( length > 1 ) {
-			progressValues = new Array( length );
-			progressContexts = new Array( length );
-			resolveContexts = new Array( length );
-			for ( ; i < length; i++ ) {
-				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
-					resolveValues[ i ].promise()
-						.done( updateFunc( i, resolveContexts, resolveValues ) )
-						.fail( deferred.reject )
-						.progress( updateFunc( i, progressContexts, progressValues ) );
-				} else {
-					--remaining;
-				}
-			}
-		}
-
-		// if we're not waiting on anything, resolve the master
-		if ( !remaining ) {
-			deferred.resolveWith( resolveContexts, resolveValues );
-		}
-
-		return deferred.promise();
-	}
-});
-jQuery.support = (function( support ) {
-
-	var all, a, input, select, fragment, opt, eventName, isSupported, i,
-		div = document.createElement("div");
-
-	// Setup
-	div.setAttribute( "className", "t" );
-	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
-
-	// Finish early in limited (non-browser) environments
-	all = div.getElementsByTagName("*") || [];
-	a = div.getElementsByTagName("a")[ 0 ];
-	if ( !a || !a.style || !all.length ) {
-		return support;
-	}
-
-	// First batch of tests
-	select = document.createElement("select");
-	opt = select.appendChild( document.createElement("option") );
-	input = div.getElementsByTagName("input")[ 0 ];
-
-	a.style.cssText = "top:1px;float:left;opacity:.5";
-
-	// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
-	support.getSetAttribute = div.className !== "t";
-
-	// IE strips leading whitespace when .innerHTML is used
-	support.leadingWhitespace = div.firstChild.nodeType === 3;
-
-	// Make sure that tbody elements aren't automatically inserted
-	// IE will insert them into empty tables
-	support.tbody = !div.getElementsByTagName("tbody").length;
-
-	// Make sure that link elements get serialized correctly by innerHTML
-	// This requires a wrapper element in IE
-	support.htmlSerialize = !!div.getElementsByTagName("link").length;
-
-	// Get the style information from getAttribute
-	// (IE uses .cssText instead)
-	support.style = /top/.test( a.getAttribute("style") );
-
-	// Make sure that URLs aren't manipulated
-	// (IE normalizes it by default)
-	support.hrefNormalized = a.getAttribute("href") === "/a";
-
-	// Make sure that element opacity exists
-	// (IE uses filter instead)
-	// Use a regex to work around a WebKit issue. See #5145
-	support.opacity = /^0.5/.test( a.style.opacity );
-
-	// Verify style float existence
-	// (IE uses styleFloat instead of cssFloat)
-	support.cssFloat = !!a.style.cssFloat;
-
-	// Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
-	support.checkOn = !!input.value;
-
-	// Make sure that a selected-by-default option has a working selected property.
-	// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
-	support.optSelected = opt.selected;
-
-	// Tests for enctype support on a form (#6743)
-	support.enctype = !!document.createElement("form").enctype;
-
-	// Makes sure cloning an html5 element does not cause problems
-	// Where outerHTML is undefined, this still works
-	support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>";
-
-	// Will be defined later
-	support.inlineBlockNeedsLayout = false;
-	support.shrinkWrapBlocks = false;
-	support.pixelPosition = false;
-	support.deleteExpando = true;
-	support.noCloneEvent = true;
-	support.reliableMarginRight = true;
-	support.boxSizingReliable = true;
-
-	// Make sure checked status is properly cloned
-	input.checked = true;
-	support.noCloneChecked = input.cloneNode( true ).checked;
-
-	// Make sure that the options inside disabled selects aren't marked as disabled
-	// (WebKit marks them as disabled)
-	select.disabled = true;
-	support.optDisabled = !opt.disabled;
-
-	// Support: IE<9
-	try {
-		delete div.test;
-	} catch( e ) {
-		support.deleteExpando = false;
-	}
-
-	// Check if we can trust getAttribute("value")
-	input = document.createElement("input");
-	input.setAttribute( "value", "" );
-	support.input = input.getAttribute( "value" ) === "";
-
-	// Check if an input maintains its value after becoming a radio
-	input.value = "t";
-	input.setAttribute( "type", "radio" );
-	support.radioValue = input.value === "t";
-
-	// #11217 - WebKit loses check when the name is after the checked attribute
-	input.setAttribute( "checked", "t" );
-	input.setAttribute( "name", "t" );
-
-	fragment = document.createDocumentFragment();
-	fragment.appendChild( input );
-
-	// Check if a disconnected checkbox will retain its checked
-	// value of true after appended to the DOM (IE6/7)
-	support.appendChecked = input.checked;
-
-	// WebKit doesn't clone checked state correctly in fragments
-	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
-	// Support: IE<9
-	// Opera does not clone events (and typeof div.attachEvent === undefined).
-	// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
-	if ( div.attachEvent ) {
-		div.attachEvent( "onclick", function() {
-			support.noCloneEvent = false;
-		});
-
-		div.cloneNode( true ).click();
-	}
-
-	// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)
-	// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
-	for ( i in { submit: true, change: true, focusin: true }) {
-		div.setAttribute( eventName = "on" + i, "t" );
-
-		support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
-	}
-
-	div.style.backgroundClip = "content-box";
-	div.cloneNode( true ).style.backgroundClip = "";
-	support.clearCloneStyle = div.style.backgroundClip === "content-box";
-
-	// Support: IE<9
-	// Iteration over object's inherited properties before its own.
-	for ( i in jQuery( support ) ) {
-		break;
-	}
-	support.ownLast = i !== "0";
-
-	// Run tests that need a body at doc ready
-	jQuery(function() {
-		var container, marginDiv, tds,
-			divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
-			body = document.getElementsByTagName("body")[0];
-
-		if ( !body ) {
-			// Return for frameset docs that don't have a body
-			return;
-		}
-
-		container = document.createElement("div");
-		container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
-
-		body.appendChild( container ).appendChild( div );
-
-		// Support: IE8
-		// Check if table cells still have offsetWidth/Height when they are set
-		// to display:none and there are still other visible table cells in a
-		// table row; if so, offsetWidth/Height are not reliable for use when
-		// determining if an element has been hidden directly using
-		// display:none (it is still safe to use offsets if a parent element is
-		// hidden; don safety goggles and see bug #4512 for more information).
-		div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
-		tds = div.getElementsByTagName("td");
-		tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
-		isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
-		tds[ 0 ].style.display = "";
-		tds[ 1 ].style.display = "none";
-
-		// Support: IE8
-		// Check if empty table cells still have offsetWidth/Height
-		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-
-		// Check box-sizing and margin behavior.
-		div.innerHTML = "";
-		div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
-
-		// Workaround failing boxSizing test due to offsetWidth returning wrong value
-		// with some non-1 values of body zoom, ticket #13543
-		jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
-			support.boxSizing = div.offsetWidth === 4;
-		});
-
-		// Use window.getComputedStyle because jsdom on node.js will break without it.
-		if ( window.getComputedStyle ) {
-			support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
-			support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
-
-			// Check if div with explicit width and no margin-right incorrectly
-			// gets computed margin-right based on width of container. (#3333)
-			// Fails in WebKit before Feb 2011 nightlies
-			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-			marginDiv = div.appendChild( document.createElement("div") );
-			marginDiv.style.cssText = div.style.cssText = divReset;
-			marginDiv.style.marginRight = marginDiv.style.width = "0";
-			div.style.width = "1px";
-
-			support.reliableMarginRight =
-				!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
-		}
-
-		if ( typeof div.style.zoom !== core_strundefined ) {
-			// Support: IE<8
-			// Check if natively block-level elements act like inline-block
-			// elements when setting their display to 'inline' and giving
-			// them layout
-			div.innerHTML = "";
-			div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
-			support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
-
-			// Support: IE6
-			// Check if elements with layout shrink-wrap their children
-			div.style.display = "block";
-			div.innerHTML = "<div></div>";
-			div.firstChild.style.width = "5px";
-			support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
-
-			if ( support.inlineBlockNeedsLayout ) {
-				// Prevent IE 6 from affecting layout for positioned elements #11048
-				// Prevent IE from shrinking the body in IE 7 mode #12869
-				// Support: IE<8
-				body.style.zoom = 1;
-			}
-		}
-
-		body.removeChild( container );
-
-		// Null elements to avoid leaks in IE
-		container = div = tds = marginDiv = null;
-	});
-
-	// Null elements to avoid leaks in IE
-	all = select = fragment = opt = a = input = null;
-
-	return support;
-})({});
-
-var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
-	rmultiDash = /([A-Z])/g;
-
-function internalData( elem, name, data, pvt /* Internal Use Only */ ){
-	if ( !jQuery.acceptData( elem ) ) {
-		return;
-	}
-
-	var ret, thisCache,
-		internalKey = jQuery.expando,
-
-		// We have to handle DOM nodes and JS objects differently because IE6-7
-		// can't GC object references properly across the DOM-JS boundary
-		isNode = elem.nodeType,
-
-		// Only DOM nodes need the global jQuery cache; JS object data is
-		// attached directly to the object so GC can occur automatically
-		cache = isNode ? jQuery.cache : elem,
-
-		// Only defining an ID for JS objects if its cache already exists allows
-		// the code to shortcut on the same path as a DOM node with no cache
-		id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
-
-	// Avoid doing any more work than we need to when trying to get data on an
-	// object that has no data at all
-	if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) {
-		return;
-	}
-
-	if ( !id ) {
-		// Only DOM nodes need a new unique ID for each element since their data
-		// ends up in the global cache
-		if ( isNode ) {
-			id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++;
-		} else {
-			id = internalKey;
-		}
-	}
-
-	if ( !cache[ id ] ) {
-		// Avoid exposing jQuery metadata on plain JS objects when the object
-		// is serialized using JSON.stringify
-		cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
-	}
-
-	// An object can be passed to jQuery.data instead of a key/value pair; this gets
-	// shallow copied over onto the existing cache
-	if ( typeof name === "object" || typeof name === "function" ) {
-		if ( pvt ) {
-			cache[ id ] = jQuery.extend( cache[ id ], name );
-		} else {
-			cache[ id ].data = jQuery.extend( cache[ id ].data, name );
-		}
-	}
-
-	thisCache = cache[ id ];
-
-	// jQuery data() is stored in a separate object inside the object's internal data
-	// cache in order to avoid key collisions between internal data and user-defined
-	// data.
-	if ( !pvt ) {
-		if ( !thisCache.data ) {
-			thisCache.data = {};
-		}
-
-		thisCache = thisCache.data;
-	}
-
-	if ( data !== undefined ) {
-		thisCache[ jQuery.camelCase( name ) ] = data;
-	}
-
-	// Check for both converted-to-camel and non-converted data property names
-	// If a data property was specified
-	if ( typeof name === "string" ) {
-
-		// First Try to find as-is property data
-		ret = thisCache[ name ];
-
-		// Test for null|undefined property data
-		if ( ret == null ) {
-
-			// Try to find the camelCased property
-			ret = thisCache[ jQuery.camelCase( name ) ];
-		}
-	} else {
-		ret = thisCache;
-	}
-
-	return ret;
-}
-
-function internalRemoveData( elem, name, pvt ) {
-	if ( !jQuery.acceptData( elem ) ) {
-		return;
-	}
-
-	var thisCache, i,
-		isNode = elem.nodeType,
-
-		// See jQuery.data for more information
-		cache = isNode ? jQuery.cache : elem,
-		id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
-	// If there is already no cache entry for this object, there is no
-	// purpose in continuing
-	if ( !cache[ id ] ) {
-		return;
-	}
-
-	if ( name ) {
-
-		thisCache = pvt ? cache[ id ] : cache[ id ].data;
-
-		if ( thisCache ) {
-
-			// Support array or space separated string names for data keys
-			if ( !jQuery.isArray( name ) ) {
-
-				// try the string as a key before any manipulation
-				if ( name in thisCache ) {
-					name = [ name ];
-				} else {
-
-					// split the camel cased version by spaces unless a key with the spaces exists
-					name = jQuery.camelCase( name );
-					if ( name in thisCache ) {
-						name = [ name ];
-					} else {
-						name = name.split(" ");
-					}
-				}
-			} else {
-				// If "name" is an array of keys...
-				// When data is initially created, via ("key", "val") signature,
-				// keys will be converted to camelCase.
-				// Since there is no way to tell _how_ a key was added, remove
-				// both plain key and camelCase key. #12786
-				// This will only penalize the array argument path.
-				name = name.concat( jQuery.map( name, jQuery.camelCase ) );
-			}
-
-			i = name.length;
-			while ( i-- ) {
-				delete thisCache[ name[i] ];
-			}
-
-			// If there is no data left in the cache, we want to continue
-			// and let the cache object itself get destroyed
-			if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {
-				return;
-			}
-		}
-	}
-
-	// See jQuery.data for more information
-	if ( !pvt ) {
-		delete cache[ id ].data;
-
-		// Don't destroy the parent cache unless the internal data object
-		// had been the only thing left in it
-		if ( !isEmptyDataObject( cache[ id ] ) ) {
-			return;
-		}
-	}
-
-	// Destroy the cache
-	if ( isNode ) {
-		jQuery.cleanData( [ elem ], true );
-
-	// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
-	/* jshint eqeqeq: false */
-	} else if ( jQuery.support.deleteExpando || cache != cache.window ) {
-		/* jshint eqeqeq: true */
-		delete cache[ id ];
-
-	// When all else fails, null
-	} else {
-		cache[ id ] = null;
-	}
-}
-
-jQuery.extend({
-	cache: {},
-
-	// The following elements throw uncatchable exceptions if you
-	// attempt to add expando properties to them.
-	noData: {
-		"applet": true,
-		"embed": true,
-		// Ban all objects except for Flash (which handle expandos)
-		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
-	},
-
-	hasData: function( elem ) {
-		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
-		return !!elem && !isEmptyDataObject( elem );
-	},
-
-	data: function( elem, name, data ) {
-		return internalData( elem, name, data );
-	},
-
-	removeData: function( elem, name ) {
-		return internalRemoveData( elem, name );
-	},
-
-	// For internal use only.
-	_data: function( elem, name, data ) {
-		return internalData( elem, name, data, true );
-	},
-
-	_removeData: function( elem, name ) {
-		return internalRemoveData( elem, name, true );
-	},
-
-	// A method for determining if a DOM node can handle the data expando
-	acceptData: function( elem ) {
-		// Do not set data on non-element because it will not be cleared (#8335).
-		if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {
-			return false;
-		}
-
-		var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
-
-		// nodes accept data unless otherwise specified; rejection can be conditional
-		return !noData || noData !== true && elem.getAttribute("classid") === noData;
-	}
-});
-
-jQuery.fn.extend({
-	data: function( key, value ) {
-		var attrs, name,
-			data = null,
-			i = 0,
-			elem = this[0];
-
-		// Special expections of .data basically thwart jQuery.access,
-		// so implement the relevant behavior ourselves
-
-		// Gets all values
-		if ( key === undefined ) {
-			if ( this.length ) {
-				data = jQuery.data( elem );
-
-				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
-					attrs = elem.attributes;
-					for ( ; i < attrs.length; i++ ) {
-						name = attrs[i].name;
-
-						if ( name.indexOf("data-") === 0 ) {
-							name = jQuery.camelCase( name.slice(5) );
-
-							dataAttr( elem, name, data[ name ] );
-						}
-					}
-					jQuery._data( elem, "parsedAttrs", true );
-				}
-			}
-
-			return data;
-		}
-
-		// Sets multiple values
-		if ( typeof key === "object" ) {
-			return this.each(function() {
-				jQuery.data( this, key );
-			});
-		}
-
-		return arguments.length > 1 ?
-
-			// Sets one value
-			this.each(function() {
-				jQuery.data( this, key, value );
-			}) :
-
-			// Gets one value
-			// Try to fetch any internally stored data first
-			elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;
-	},
-
-	removeData: function( key ) {
-		return this.each(function() {
-			jQuery.removeData( this, key );
-		});
-	}
-});
-
-function dataAttr( elem, key, data ) {
-	// If nothing was found internally, try to fetch any
-	// data from the HTML5 data-* attribute
-	if ( data === undefined && elem.nodeType === 1 ) {
-
-		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
-
-		data = elem.getAttribute( name );
-
-		if ( typeof data === "string" ) {
-			try {
-				data = data === "true" ? true :
-					data === "false" ? false :
-					data === "null" ? null :
-					// Only convert to a number if it doesn't change the string
-					+data + "" === data ? +data :
-					rbrace.test( data ) ? jQuery.parseJSON( data ) :
-						data;
-			} catch( e ) {}
-
-			// Make sure we set the data so it isn't changed later
-			jQuery.data( elem, key, data );
-
-		} else {
-			data = undefined;
-		}
-	}
-
-	return data;
-}
-
-// checks a cache object for emptiness
-function isEmptyDataObject( obj ) {
-	var name;
-	for ( name in obj ) {
-
-		// if the public data object is empty, the private is still empty
-		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
-			continue;
-		}
-		if ( name !== "toJSON" ) {
-			return false;
-		}
-	}
-
-	return true;
-}
-jQuery.extend({
-	queue: function( elem, type, data ) {
-		var queue;
-
-		if ( elem ) {
-			type = ( type || "fx" ) + "queue";
-			queue = jQuery._data( elem, type );
-
-			// Speed up dequeue by getting out quickly if this is just a lookup
-			if ( data ) {
-				if ( !queue || jQuery.isArray(data) ) {
-					queue = jQuery._data( elem, type, jQuery.makeArray(data) );
-				} else {
-					queue.push( data );
-				}
-			}
-			return queue || [];
-		}
-	},
-
-	dequeue: function( elem, type ) {
-		type = type || "fx";
-
-		var queue = jQuery.queue( elem, type ),
-			startLength = queue.length,
-			fn = queue.shift(),
-			hooks = jQuery._queueHooks( elem, type ),
-			next = function() {
-				jQuery.dequeue( elem, type );
-			};
-
-		// If the fx queue is dequeued, always remove the progress sentinel
-		if ( fn === "inprogress" ) {
-			fn = queue.shift();
-			startLength--;
-		}
-
-		if ( fn ) {
-
-			// Add a progress sentinel to prevent the fx queue from being
-			// automatically dequeued
-			if ( type === "fx" ) {
-				queue.unshift( "inprogress" );
-			}
-
-			// clear up the last queue stop function
-			delete hooks.stop;
-			fn.call( elem, next, hooks );
-		}
-
-		if ( !startLength && hooks ) {
-			hooks.empty.fire();
-		}
-	},
-
-	// not intended for public consumption - generates a queueHooks object, or returns the current one
-	_queueHooks: function( elem, type ) {
-		var key = type + "queueHooks";
-		return jQuery._data( elem, key ) || jQuery._data( elem, key, {
-			empty: jQuery.Callbacks("once memory").add(function() {
-				jQuery._removeData( elem, type + "queue" );
-				jQuery._removeData( elem, key );
-			})
-		});
-	}
-});
-
-jQuery.fn.extend({
-	queue: function( type, data ) {
-		var setter = 2;
-
-		if ( typeof type !== "string" ) {
-			data = type;
-			type = "fx";
-			setter--;
-		}
-
-		if ( arguments.length < setter ) {
-			return jQuery.queue( this[0], type );
-		}
-
-		return data === undefined ?
-			this :
-			this.each(function() {
-				var queue = jQuery.queue( this, type, data );
-
-				// ensure a hooks for this queue
-				jQuery._queueHooks( this, type );
-
-				if ( type === "fx" && queue[0] !== "inprogress" ) {
-					jQuery.dequeue( this, type );
-				}
-			});
-	},
-	dequeue: function( type ) {
-		return this.each(function() {
-			jQuery.dequeue( this, type );
-		});
-	},
-	// Based off of the plugin by Clint Helfers, with permission.
-	// http://blindsignals.com/index.php/2009/07/jquery-delay/
-	delay: function( time, type ) {
-		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
-		type = type || "fx";
-
-		return this.queue( type, function( next, hooks ) {
-			var timeout = setTimeout( next, time );
-			hooks.stop = function() {
-				clearTimeout( timeout );
-			};
-		});
-	},
-	clearQueue: function( type ) {
-		return this.queue( type || "fx", [] );
-	},
-	// Get a promise resolved when queues of a certain type
-	// are emptied (fx is the type by default)
-	promise: function( type, obj ) {
-		var tmp,
-			count = 1,
-			defer = jQuery.Deferred(),
-			elements = this,
-			i = this.length,
-			resolve = function() {
-				if ( !( --count ) ) {
-					defer.resolveWith( elements, [ elements ] );
-				}
-			};
-
-		if ( typeof type !== "string" ) {
-			obj = type;
-			type = undefined;
-		}
-		type = type || "fx";
-
-		while( i-- ) {
-			tmp = jQuery._data( elements[ i ], type + "queueHooks" );
-			if ( tmp && tmp.empty ) {
-				count++;
-				tmp.empty.add( resolve );
-			}
-		}
-		resolve();
-		return defer.promise( obj );
-	}
-});
-var nodeHook, boolHook,
-	rclass = /[\t\r\n\f]/g,
-	rreturn = /\r/g,
-	rfocusable = /^(?:input|select|textarea|button|object)$/i,
-	rclickable = /^(?:a|area)$/i,
-	ruseDefault = /^(?:checked|selected)$/i,
-	getSetAttribute = jQuery.support.getSetAttribute,
-	getSetInput = jQuery.support.input;
-
-jQuery.fn.extend({
-	attr: function( name, value ) {
-		return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
-	},
-
-	removeAttr: function( name ) {
-		return this.each(function() {
-			jQuery.removeAttr( this, name );
-		});
-	},
-
-	prop: function( name, value ) {
-		return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
-	},
-
-	removeProp: function( name ) {
-		name = jQuery.propFix[ name ] || name;
-		return this.each(function() {
-			// try/catch handles cases where IE balks (such as removing a property on window)
-			try {
-				this[ name ] = undefined;
-				delete this[ name ];
-			} catch( e ) {}
-		});
-	},
-
-	addClass: function( value ) {
-		var classes, elem, cur, clazz, j,
-			i = 0,
-			len = this.length,
-			proceed = typeof value === "string" && value;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).addClass( value.call( this, j, this.className ) );
-			});
-		}
-
-		if ( proceed ) {
-			// The disjunction here is for better compressibility (see removeClass)
-			classes = ( value || "" ).match( core_rnotwhite ) || [];
-
-			for ( ; i < len; i++ ) {
-				elem = this[ i ];
-				cur = elem.nodeType === 1 && ( elem.className ?
-					( " " + elem.className + " " ).replace( rclass, " " ) :
-					" "
-				);
-
-				if ( cur ) {
-					j = 0;
-					while ( (clazz = classes[j++]) ) {
-						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
-							cur += clazz + " ";
-						}
-					}
-					elem.className = jQuery.trim( cur );
-
-				}
-			}
-		}
-
-		return this;
-	},
-
-	removeClass: function( value ) {
-		var classes, elem, cur, clazz, j,
-			i = 0,
-			len = this.length,
-			proceed = arguments.length === 0 || typeof value === "string" && value;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).removeClass( value.call( this, j, this.className ) );
-			});
-		}
-		if ( proceed ) {
-			classes = ( value || "" ).match( core_rnotwhite ) || [];
-
-			for ( ; i < len; i++ ) {
-				elem = this[ i ];
-				// This expression is here for better compressibility (see addClass)
-				cur = elem.nodeType === 1 && ( elem.className ?
-					( " " + elem.className + " " ).replace( rclass, " " ) :
-					""
-				);
-
-				if ( cur ) {
-					j = 0;
-					while ( (clazz = classes[j++]) ) {
-						// Remove *all* instances
-						while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
-							cur = cur.replace( " " + clazz + " ", " " );
-						}
-					}
-					elem.className = value ? jQuery.trim( cur ) : "";
-				}
-			}
-		}
-
-		return this;
-	},
-
-	toggleClass: function( value, stateVal ) {
-		var type = typeof value;
-
-		if ( typeof stateVal === "boolean" && type === "string" ) {
-			return stateVal ? this.addClass( value ) : this.removeClass( value );
-		}
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( i ) {
-				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
-			});
-		}
-
-		return this.each(function() {
-			if ( type === "string" ) {
-				// toggle individual class names
-				var className,
-					i = 0,
-					self = jQuery( this ),
-					classNames = value.match( core_rnotwhite ) || [];
-
-				while ( (className = classNames[ i++ ]) ) {
-					// check each className given, space separated list
-					if ( self.hasClass( className ) ) {
-						self.removeClass( className );
-					} else {
-						self.addClass( className );
-					}
-				}
-
-			// Toggle whole class name
-			} else if ( type === core_strundefined || type === "boolean" ) {
-				if ( this.className ) {
-					// store className if set
-					jQuery._data( this, "__className__", this.className );
-				}
-
-				// If the element has a class name or if we're passed "false",
-				// then remove the whole classname (if there was one, the above saved it).
-				// Otherwise bring back whatever was previously saved (if anything),
-				// falling back to the empty string if nothing was stored.
-				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
-			}
-		});
-	},
-
-	hasClass: function( selector ) {
-		var className = " " + selector + " ",
-			i = 0,
-			l = this.length;
-		for ( ; i < l; i++ ) {
-			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
-				return true;
-			}
-		}
-
-		return false;
-	},
-
-	val: function( value ) {
-		var ret, hooks, isFunction,
-			elem = this[0];
-
-		if ( !arguments.length ) {
-			if ( elem ) {
-				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
-
-				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
-					return ret;
-				}
-
-				ret = elem.value;
-
-				return typeof ret === "string" ?
-					// handle most common string cases
-					ret.replace(rreturn, "") :
-					// handle cases where value is null/undef or number
-					ret == null ? "" : ret;
-			}
-
-			return;
-		}
-
-		isFunction = jQuery.isFunction( value );
-
-		return this.each(function( i ) {
-			var val;
-
-			if ( this.nodeType !== 1 ) {
-				return;
-			}
-
-			if ( isFunction ) {
-				val = value.call( this, i, jQuery( this ).val() );
-			} else {
-				val = value;
-			}
-
-			// Treat null/undefined as ""; convert numbers to string
-			if ( val == null ) {
-				val = "";
-			} else if ( typeof val === "number" ) {
-				val += "";
-			} else if ( jQuery.isArray( val ) ) {
-				val = jQuery.map(val, function ( value ) {
-					return value == null ? "" : value + "";
-				});
-			}
-
-			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
-
-			// If set returns undefined, fall back to normal setting
-			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
-				this.value = val;
-			}
-		});
-	}
-});
-
-jQuery.extend({
-	valHooks: {
-		option: {
-			get: function( elem ) {
-				// Use proper attribute retrieval(#6932, #12072)
-				var val = jQuery.find.attr( elem, "value" );
-				return val != null ?
-					val :
-					elem.text;
-			}
-		},
-		select: {
-			get: function( elem ) {
-				var value, option,
-					options = elem.options,
-					index = elem.selectedIndex,
-					one = elem.type === "select-one" || index < 0,
-					values = one ? null : [],
-					max = one ? index + 1 : options.length,
-					i = index < 0 ?
-						max :
-						one ? index : 0;
-
-				// Loop through all the selected options
-				for ( ; i < max; i++ ) {
-					option = options[ i ];
-
-					// oldIE doesn't update selected after form reset (#2551)
-					if ( ( option.selected || i === index ) &&
-							// Don't return options that are disabled or in a disabled optgroup
-							( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
-							( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
-
-						// Get the specific value for the option
-						value = jQuery( option ).val();
-
-						// We don't need an array for one selects
-						if ( one ) {
-							return value;
-						}
-
-						// Multi-Selects return an array
-						values.push( value );
-					}
-				}
-
-				return values;
-			},
-
-			set: function( elem, value ) {
-				var optionSet, option,
-					options = elem.options,
-					values = jQuery.makeArray( value ),
-					i = options.length;
-
-				while ( i-- ) {
-					option = options[ i ];
-					if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) {
-						optionSet = true;
-					}
-				}
-
-				// force browsers to behave consistently when non-matching value is set
-				if ( !optionSet ) {
-					elem.selectedIndex = -1;
-				}
-				return values;
-			}
-		}
-	},
-
-	attr: function( elem, name, value ) {
-		var hooks, ret,
-			nType = elem.nodeType;
-
-		// don't get/set attributes on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return;
-		}
-
-		// Fallback to prop when attributes are not supported
-		if ( typeof elem.getAttribute === core_strundefined ) {
-			return jQuery.prop( elem, name, value );
-		}
-
-		// All attributes are lowercase
-		// Grab necessary hook if one is defined
-		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
-			name = name.toLowerCase();
-			hooks = jQuery.attrHooks[ name ] ||
-				( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
-		}
-
-		if ( value !== undefined ) {
-
-			if ( value === null ) {
-				jQuery.removeAttr( elem, name );
-
-			} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
-
-			} else {
-				elem.setAttribute( name, value + "" );
-				return value;
-			}
-
-		} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
-			return ret;
-
-		} else {
-			ret = jQuery.find.attr( elem, name );
-
-			// Non-existent attributes return null, we normalize to undefined
-			return ret == null ?
-				undefined :
-				ret;
-		}
-	},
-
-	removeAttr: function( elem, value ) {
-		var name, propName,
-			i = 0,
-			attrNames = value && value.match( core_rnotwhite );
-
-		if ( attrNames && elem.nodeType === 1 ) {
-			while ( (name = attrNames[i++]) ) {
-				propName = jQuery.propFix[ name ] || name;
-
-				// Boolean attributes get special treatment (#10870)
-				if ( jQuery.expr.match.bool.test( name ) ) {
-					// Set corresponding property to false
-					if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
-						elem[ propName ] = false;
-					// Support: IE<9
-					// Also clear defaultChecked/defaultSelected (if appropriate)
-					} else {
-						elem[ jQuery.camelCase( "default-" + name ) ] =
-							elem[ propName ] = false;
-					}
-
-				// See #9699 for explanation of this approach (setting first, then removal)
-				} else {
-					jQuery.attr( elem, name, "" );
-				}
-
-				elem.removeAttribute( getSetAttribute ? name : propName );
-			}
-		}
-	},
-
-	attrHooks: {
-		type: {
-			set: function( elem, value ) {
-				if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
-					// Setting the type on a radio button after the value resets the value in IE6-9
-					// Reset value to default in case type is set after value during creation
-					var val = elem.value;
-					elem.setAttribute( "type", value );
-					if ( val ) {
-						elem.value = val;
-					}
-					return value;
-				}
-			}
-		}
-	},
-
-	propFix: {
-		"for": "htmlFor",
-		"class": "className"
-	},
-
-	prop: function( elem, name, value ) {
-		var ret, hooks, notxml,
-			nType = elem.nodeType;
-
-		// don't get/set properties on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return;
-		}
-
-		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-		if ( notxml ) {
-			// Fix name and attach hooks
-			name = jQuery.propFix[ name ] || name;
-			hooks = jQuery.propHooks[ name ];
-		}
-
-		if ( value !== undefined ) {
-			return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
-				ret :
-				( elem[ name ] = value );
-
-		} else {
-			return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
-				ret :
-				elem[ name ];
-		}
-	},
-
-	propHooks: {
-		tabIndex: {
-			get: function( elem ) {
-				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				// Use proper attribute retrieval(#12072)
-				var tabindex = jQuery.find.attr( elem, "tabindex" );
-
-				return tabindex ?
-					parseInt( tabindex, 10 ) :
-					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
-						0 :
-						-1;
-			}
-		}
-	}
-});
-
-// Hooks for boolean attributes
-boolHook = {
-	set: function( elem, value, name ) {
-		if ( value === false ) {
-			// Remove boolean attributes when set to false
-			jQuery.removeAttr( elem, name );
-		} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
-			// IE<8 needs the *property* name
-			elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
-
-		// Use defaultChecked and defaultSelected for oldIE
-		} else {
-			elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
-		}
-
-		return name;
-	}
-};
-jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
-	var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr;
-
-	jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?
-		function( elem, name, isXML ) {
-			var fn = jQuery.expr.attrHandle[ name ],
-				ret = isXML ?
-					undefined :
-					/* jshint eqeqeq: false */
-					(jQuery.expr.attrHandle[ name ] = undefined) !=
-						getter( elem, name, isXML ) ?
-
-						name.toLowerCase() :
-						null;
-			jQuery.expr.attrHandle[ name ] = fn;
-			return ret;
-		} :
-		function( elem, name, isXML ) {
-			return isXML ?
-				undefined :
-				elem[ jQuery.camelCase( "default-" + name ) ] ?
-					name.toLowerCase() :
-					null;
-		};
-});
-
-// fix oldIE attroperties
-if ( !getSetInput || !getSetAttribute ) {
-	jQuery.attrHooks.value = {
-		set: function( elem, value, name ) {
-			if ( jQuery.nodeName( elem, "input" ) ) {
-				// Does not return so that setAttribute is also used
-				elem.defaultValue = value;
-			} else {
-				// Use nodeHook if defined (#1954); otherwise setAttribute is fine
-				return nodeHook && nodeHook.set( elem, value, name );
-			}
-		}
-	};
-}
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !getSetAttribute ) {
-
-	// Use this for any attribute in IE6/7
-	// This fixes almost every IE6/7 issue
-	nodeHook = {
-		set: function( elem, value, name ) {
-			// Set the existing or create a new attribute node
-			var ret = elem.getAttributeNode( name );
-			if ( !ret ) {
-				elem.setAttributeNode(
-					(ret = elem.ownerDocument.createAttribute( name ))
-				);
-			}
-
-			ret.value = value += "";
-
-			// Break association with cloned elements by also using setAttribute (#9646)
-			return name === "value" || value === elem.getAttribute( name ) ?
-				value :
-				undefined;
-		}
-	};
-	jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords =
-		// Some attributes are constructed with empty-string values when not defined
-		function( elem, name, isXML ) {
-			var ret;
-			return isXML ?
-				undefined :
-				(ret = elem.getAttributeNode( name )) && ret.value !== "" ?
-					ret.value :
-					null;
-		};
-	jQuery.valHooks.button = {
-		get: function( elem, name ) {
-			var ret = elem.getAttributeNode( name );
-			return ret && ret.specified ?
-				ret.value :
-				undefined;
-		},
-		set: nodeHook.set
-	};
-
-	// Set contenteditable to false on removals(#10429)
-	// Setting to empty string throws an error as an invalid value
-	jQuery.attrHooks.contenteditable = {
-		set: function( elem, value, name ) {
-			nodeHook.set( elem, value === "" ? false : value, name );
-		}
-	};
-
-	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
-	// This is for removals
-	jQuery.each([ "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = {
-			set: function( elem, value ) {
-				if ( value === "" ) {
-					elem.setAttribute( name, "auto" );
-					return value;
-				}
-			}
-		};
-	});
-}
-
-
-// Some attributes require a special call on IE
-// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
-if ( !jQuery.support.hrefNormalized ) {
-	// href/src property should get the full normalized URL (#10299/#12915)
-	jQuery.each([ "href", "src" ], function( i, name ) {
-		jQuery.propHooks[ name ] = {
-			get: function( elem ) {
-				return elem.getAttribute( name, 4 );
-			}
-		};
-	});
-}
-
-if ( !jQuery.support.style ) {
-	jQuery.attrHooks.style = {
-		get: function( elem ) {
-			// Return undefined in the case of empty string
-			// Note: IE uppercases css property names, but if we were to .toLowerCase()
-			// .cssText, that would destroy case senstitivity in URL's, like in "background"
-			return elem.style.cssText || undefined;
-		},
-		set: function( elem, value ) {
-			return ( elem.style.cssText = value + "" );
-		}
-	};
-}
-
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
-	jQuery.propHooks.selected = {
-		get: function( elem ) {
-			var parent = elem.parentNode;
-
-			if ( parent ) {
-				parent.selectedIndex;
-
-				// Make sure that it also works with optgroups, see #5701
-				if ( parent.parentNode ) {
-					parent.parentNode.selectedIndex;
-				}
-			}
-			return null;
-		}
-	};
-}
-
-jQuery.each([
-	"tabIndex",
-	"readOnly",
-	"maxLength",
-	"cellSpacing",
-	"cellPadding",
-	"rowSpan",
-	"colSpan",
-	"useMap",
-	"frameBorder",
-	"contentEditable"
-], function() {
-	jQuery.propFix[ this.toLowerCase() ] = this;
-});
-
-// IE6/7 call enctype encoding
-if ( !jQuery.support.enctype ) {
-	jQuery.propFix.enctype = "encoding";
-}
-
-// Radios and checkboxes getter/setter
-jQuery.each([ "radio", "checkbox" ], function() {
-	jQuery.valHooks[ this ] = {
-		set: function( elem, value ) {
-			if ( jQuery.isArray( value ) ) {
-				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
-			}
-		}
-	};
-	if ( !jQuery.support.checkOn ) {
-		jQuery.valHooks[ this ].get = function( elem ) {
-			// Support: Webkit
-			// "" is returned instead of "on" if a value isn't specified
-			return elem.getAttribute("value") === null ? "on" : elem.value;
-		};
-	}
-});
-var rformElems = /^(?:input|select|textarea)$/i,
-	rkeyEvent = /^key/,
-	rmouseEvent = /^(?:mouse|contextmenu)|click/,
-	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
-	rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
-
-function returnTrue() {
-	return true;
-}
-
-function returnFalse() {
-	return false;
-}
-
-function safeActiveElement() {
-	try {
-		return document.activeElement;
-	} catch ( err ) { }
-}
-
-/*
- * Helper functions for managing events -- not part of the public interface.
- * Props to Dean Edwards' addEvent library for many of the ideas.
- */
-jQuery.event = {
-
-	global: {},
-
-	add: function( elem, types, handler, data, selector ) {
-		var tmp, events, t, handleObjIn,
-			special, eventHandle, handleObj,
-			handlers, type, namespaces, origType,
-			elemData = jQuery._data( elem );
-
-		// Don't attach events to noData or text/comment nodes (but allow plain objects)
-		if ( !elemData ) {
-			return;
-		}
-
-		// Caller can pass in an object of custom data in lieu of the handler
-		if ( handler.handler ) {
-			handleObjIn = handler;
-			handler = handleObjIn.handler;
-			selector = handleObjIn.selector;
-		}
-
-		// Make sure that the handler has a unique ID, used to find/remove it later
-		if ( !handler.guid ) {
-			handler.guid = jQuery.guid++;
-		}
-
-		// Init the element's event structure and main handler, if this is the first
-		if ( !(events = elemData.events) ) {
-			events = elemData.events = {};
-		}
-		if ( !(eventHandle = elemData.handle) ) {
-			eventHandle = elemData.handle = function( e ) {
-				// Discard the second event of a jQuery.event.trigger() and
-				// when an event is called after a page has unloaded
-				return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?
-					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
-					undefined;
-			};
-			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
-			eventHandle.elem = elem;
-		}
-
-		// Handle multiple events separated by a space
-		types = ( types || "" ).match( core_rnotwhite ) || [""];
-		t = types.length;
-		while ( t-- ) {
-			tmp = rtypenamespace.exec( types[t] ) || [];
-			type = origType = tmp[1];
-			namespaces = ( tmp[2] || "" ).split( "." ).sort();
-
-			// There *must* be a type, no attaching namespace-only handlers
-			if ( !type ) {
-				continue;
-			}
-
-			// If event changes its type, use the special event handlers for the changed type
-			special = jQuery.event.special[ type ] || {};
-
-			// If selector defined, determine special event api type, otherwise given type
-			type = ( selector ? special.delegateType : special.bindType ) || type;
-
-			// Update special based on newly reset type
-			special = jQuery.event.special[ type ] || {};
-
-			// handleObj is passed to all event handlers
-			handleObj = jQuery.extend({
-				type: type,
-				origType: origType,
-				data: data,
-				handler: handler,
-				guid: handler.guid,
-				selector: selector,
-				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
-				namespace: namespaces.join(".")
-			}, handleObjIn );
-
-			// Init the event handler queue if we're the first
-			if ( !(handlers = events[ type ]) ) {
-				handlers = events[ type ] = [];
-				handlers.delegateCount = 0;
-
-				// Only use addEventListener/attachEvent if the special events handler returns false
-				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-					// Bind the global event handler to the element
-					if ( elem.addEventListener ) {
-						elem.addEventListener( type, eventHandle, false );
-
-					} else if ( elem.attachEvent ) {
-						elem.attachEvent( "on" + type, eventHandle );
-					}
-				}
-			}
-
-			if ( special.add ) {
-				special.add.call( elem, handleObj );
-
-				if ( !handleObj.handler.guid ) {
-					handleObj.handler.guid = handler.guid;
-				}
-			}
-
-			// Add to the element's handler list, delegates in front
-			if ( selector ) {
-				handlers.splice( handlers.delegateCount++, 0, handleObj );
-			} else {
-				handlers.push( handleObj );
-			}
-
-			// Keep track of which events have ever been used, for event optimization
-			jQuery.event.global[ type ] = true;
-		}
-
-		// Nullify elem to prevent memory leaks in IE
-		elem = null;
-	},
-
-	// Detach an event or set of events from an element
-	remove: function( elem, types, handler, selector, mappedTypes ) {
-		var j, handleObj, tmp,
-			origCount, t, events,
-			special, handlers, type,
-			namespaces, origType,
-			elemData = jQuery.hasData( elem ) && jQuery._data( elem );
-
-		if ( !elemData || !(events = elemData.events) ) {
-			return;
-		}
-
-		// Once for each type.namespace in types; type may be omitted
-		types = ( types || "" ).match( core_rnotwhite ) || [""];
-		t = types.length;
-		while ( t-- ) {
-			tmp = rtypenamespace.exec( types[t] ) || [];
-			type = origType = tmp[1];
-			namespaces = ( tmp[2] || "" ).split( "." ).sort();
-
-			// Unbind all events (on this namespace, if provided) for the element
-			if ( !type ) {
-				for ( type in events ) {
-					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
-				}
-				continue;
-			}
-
-			special = jQuery.event.special[ type ] || {};
-			type = ( selector ? special.delegateType : special.bindType ) || type;
-			handlers = events[ type ] || [];
-			tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
-
-			// Remove matching events
-			origCount = j = handlers.length;
-			while ( j-- ) {
-				handleObj = handlers[ j ];
-
-				if ( ( mappedTypes || origType === handleObj.origType ) &&
-					( !handler || handler.guid === handleObj.guid ) &&
-					( !tmp || tmp.test( handleObj.namespace ) ) &&
-					( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
-					handlers.splice( j, 1 );
-
-					if ( handleObj.selector ) {
-						handlers.delegateCount--;
-					}
-					if ( special.remove ) {
-						special.remove.call( elem, handleObj );
-					}
-				}
-			}
-
-			// Remove generic event handler if we removed something and no more handlers exist
-			// (avoids potential for endless recursion during removal of special event handlers)
-			if ( origCount && !handlers.length ) {
-				if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
-					jQuery.removeEvent( elem, type, elemData.handle );
-				}
-
-				delete events[ type ];
-			}
-		}
-
-		// Remove the expando if it's no longer used
-		if ( jQuery.isEmptyObject( events ) ) {
-			delete elemData.handle;
-
-			// removeData also checks for emptiness and clears the expando if empty
-			// so use it instead of delete
-			jQuery._removeData( elem, "events" );
-		}
-	},
-
-	trigger: function( event, data, elem, onlyHandlers ) {
-		var handle, ontype, cur,
-			bubbleType, special, tmp, i,
-			eventPath = [ elem || document ],
-			type = core_hasOwn.call( event, "type" ) ? event.type : event,
-			namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
-
-		cur = tmp = elem = elem || document;
-
-		// Don't do events on text and comment nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
-
-		// focus/blur morphs to focusin/out; ensure we're not firing them right now
-		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
-			return;
-		}
-
-		if ( type.indexOf(".") >= 0 ) {
-			// Namespaced trigger; create a regexp to match event type in handle()
-			namespaces = type.split(".");
-			type = namespaces.shift();
-			namespaces.sort();
-		}
-		ontype = type.indexOf(":") < 0 && "on" + type;
-
-		// Caller can pass in a jQuery.Event object, Object, or just an event type string
-		event = event[ jQuery.expando ] ?
-			event :
-			new jQuery.Event( type, typeof event === "object" && event );
-
-		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
-		event.isTrigger = onlyHandlers ? 2 : 3;
-		event.namespace = namespaces.join(".");
-		event.namespace_re = event.namespace ?
-			new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
-			null;
-
-		// Clean up the event in case it is being reused
-		event.result = undefined;
-		if ( !event.target ) {
-			event.target = elem;
-		}
-
-		// Clone any incoming data and prepend the event, creating the handler arg list
-		data = data == null ?
-			[ event ] :
-			jQuery.makeArray( data, [ event ] );
-
-		// Allow special events to draw outside the lines
-		special = jQuery.event.special[ type ] || {};
-		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
-			return;
-		}
-
-		// Determine event propagation path in advance, per W3C events spec (#9951)
-		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
-		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
-
-			bubbleType = special.delegateType || type;
-			if ( !rfocusMorph.test( bubbleType + type ) ) {
-				cur = cur.parentNode;
-			}
-			for ( ; cur; cur = cur.parentNode ) {
-				eventPath.push( cur );
-				tmp = cur;
-			}
-
-			// Only add window if we got to document (e.g., not plain obj or detached DOM)
-			if ( tmp === (elem.ownerDocument || document) ) {
-				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
-			}
-		}
-
-		// Fire handlers on the event path
-		i = 0;
-		while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
-
-			event.type = i > 1 ?
-				bubbleType :
-				special.bindType || type;
-
-			// jQuery handler
-			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
-			if ( handle ) {
-				handle.apply( cur, data );
-			}
-
-			// Native handler
-			handle = ontype && cur[ ontype ];
-			if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {
-				event.preventDefault();
-			}
-		}
-		event.type = type;
-
-		// If nobody prevented the default action, do it now
-		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
-
-			if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
-				jQuery.acceptData( elem ) ) {
-
-				// Call a native DOM method on the target with the same name name as the event.
-				// Can't use an .isFunction() check here because IE6/7 fails that test.
-				// Don't do default actions on window, that's where global variables be (#6170)
-				if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
-
-					// Don't re-trigger an onFOO event when we call its FOO() method
-					tmp = elem[ ontype ];
-
-					if ( tmp ) {
-						elem[ ontype ] = null;
-					}
-
-					// Prevent re-triggering of the same event, since we already bubbled it above
-					jQuery.event.triggered = type;
-					try {
-						elem[ type ]();
-					} catch ( e ) {
-						// IE<9 dies on focus/blur to hidden element (#1486,#12518)
-						// only reproducible on winXP IE8 native, not IE9 in IE8 mode
-					}
-					jQuery.event.triggered = undefined;
-
-					if ( tmp ) {
-						elem[ ontype ] = tmp;
-					}
-				}
-			}
-		}
-
-		return event.result;
-	},
-
-	dispatch: function( event ) {
-
-		// Make a writable jQuery.Event from the native event object
-		event = jQuery.event.fix( event );
-
-		var i, ret, handleObj, matched, j,
-			handlerQueue = [],
-			args = core_slice.call( arguments ),
-			handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
-			special = jQuery.event.special[ event.type ] || {};
-
-		// Use the fix-ed jQuery.Event rather than the (read-only) native event
-		args[0] = event;
-		event.delegateTarget = this;
-
-		// Call the preDispatch hook for the mapped type, and let it bail if desired
-		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
-			return;
-		}
-
-		// Determine handlers
-		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
-
-		// Run delegates first; they may want to stop propagation beneath us
-		i = 0;
-		while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
-			event.currentTarget = matched.elem;
-
-			j = 0;
-			while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
-
-				// Triggered event must either 1) have no namespace, or
-				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
-				if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
-
-					event.handleObj = handleObj;
-					event.data = handleObj.data;
-
-					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
-							.apply( matched.elem, args );
-
-					if ( ret !== undefined ) {
-						if ( (event.result = ret) === false ) {
-							event.preventDefault();
-							event.stopPropagation();
-						}
-					}
-				}
-			}
-		}
-
-		// Call the postDispatch hook for the mapped type
-		if ( special.postDispatch ) {
-			special.postDispatch.call( this, event );
-		}
-
-		return event.result;
-	},
-
-	handlers: function( event, handlers ) {
-		var sel, handleObj, matches, i,
-			handlerQueue = [],
-			delegateCount = handlers.delegateCount,
-			cur = event.target;
-
-		// Find delegate handlers
-		// Black-hole SVG <use> instance trees (#13180)
-		// Avoid non-left-click bubbling in Firefox (#3861)
-		if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
-
-			/* jshint eqeqeq: false */
-			for ( ; cur != this; cur = cur.parentNode || this ) {
-				/* jshint eqeqeq: true */
-
-				// Don't check non-elements (#13208)
-				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
-				if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) {
-					matches = [];
-					for ( i = 0; i < delegateCount; i++ ) {
-						handleObj = handlers[ i ];
-
-						// Don't conflict with Object.prototype properties (#13203)
-						sel = handleObj.selector + " ";
-
-						if ( matches[ sel ] === undefined ) {
-							matches[ sel ] = handleObj.needsContext ?
-								jQuery( sel, this ).index( cur ) >= 0 :
-								jQuery.find( sel, this, null, [ cur ] ).length;
-						}
-						if ( matches[ sel ] ) {
-							matches.push( handleObj );
-						}
-					}
-					if ( matches.length ) {
-						handlerQueue.push({ elem: cur, handlers: matches });
-					}
-				}
-			}
-		}
-
-		// Add the remaining (directly-bound) handlers
-		if ( delegateCount < handlers.length ) {
-			handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
-		}
-
-		return handlerQueue;
-	},
-
-	fix: function( event ) {
-		if ( event[ jQuery.expando ] ) {
-			return event;
-		}
-
-		// Create a writable copy of the event object and normalize some properties
-		var i, prop, copy,
-			type = event.type,
-			originalEvent = event,
-			fixHook = this.fixHooks[ type ];
-
-		if ( !fixHook ) {
-			this.fixHooks[ type ] = fixHook =
-				rmouseEvent.test( type ) ? this.mouseHooks :
-				rkeyEvent.test( type ) ? this.keyHooks :
-				{};
-		}
-		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
-
-		event = new jQuery.Event( originalEvent );
-
-		i = copy.length;
-		while ( i-- ) {
-			prop = copy[ i ];
-			event[ prop ] = originalEvent[ prop ];
-		}
-
-		// Support: IE<9
-		// Fix target property (#1925)
-		if ( !event.target ) {
-			event.target = originalEvent.srcElement || document;
-		}
-
-		// Support: Chrome 23+, Safari?
-		// Target should not be a text node (#504, #13143)
-		if ( event.target.nodeType === 3 ) {
-			event.target = event.target.parentNode;
-		}
-
-		// Support: IE<9
-		// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
-		event.metaKey = !!event.metaKey;
-
-		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
-	},
-
-	// Includes some event props shared by KeyEvent and MouseEvent
-	props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
-
-	fixHooks: {},
-
-	keyHooks: {
-		props: "char charCode key keyCode".split(" "),
-		filter: function( event, original ) {
-
-			// Add which for key events
-			if ( event.which == null ) {
-				event.which = original.charCode != null ? original.charCode : original.keyCode;
-			}
-
-			return event;
-		}
-	},
-
-	mouseHooks: {
-		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
-		filter: function( event, original ) {
-			var body, eventDoc, doc,
-				button = original.button,
-				fromElement = original.fromElement;
-
-			// Calculate pageX/Y if missing and clientX/Y available
-			if ( event.pageX == null && original.clientX != null ) {
-				eventDoc = event.target.ownerDocument || document;
-				doc = eventDoc.documentElement;
-				body = eventDoc.body;
-
-				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
-				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
-			}
-
-			// Add relatedTarget, if necessary
-			if ( !event.relatedTarget && fromElement ) {
-				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
-			}
-
-			// Add which for click: 1 === left; 2 === middle; 3 === right
-			// Note: button is not normalized, so don't use it
-			if ( !event.which && button !== undefined ) {
-				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
-			}
-
-			return event;
-		}
-	},
-
-	special: {
-		load: {
-			// Prevent triggered image.load events from bubbling to window.load
-			noBubble: true
-		},
-		focus: {
-			// Fire native event if possible so blur/focus sequence is correct
-			trigger: function() {
-				if ( this !== safeActiveElement() && this.focus ) {
-					try {
-						this.focus();
-						return false;
-					} catch ( e ) {
-						// Support: IE<9
-						// If we error on focus to hidden element (#1486, #12518),
-						// let .trigger() run the handlers
-					}
-				}
-			},
-			delegateType: "focusin"
-		},
-		blur: {
-			trigger: function() {
-				if ( this === safeActiveElement() && this.blur ) {
-					this.blur();
-					return false;
-				}
-			},
-			delegateType: "focusout"
-		},
-		click: {
-			// For checkbox, fire native event so checked state will be right
-			trigger: function() {
-				if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
-					this.click();
-					return false;
-				}
-			},
-
-			// For cross-browser consistency, don't fire native .click() on links
-			_default: function( event ) {
-				return jQuery.nodeName( event.target, "a" );
-			}
-		},
-
-		beforeunload: {
-			postDispatch: function( event ) {
-
-				// Even when returnValue equals to undefined Firefox will still show alert
-				if ( event.result !== undefined ) {
-					event.originalEvent.returnValue = event.result;
-				}
-			}
-		}
-	},
-
-	simulate: function( type, elem, event, bubble ) {
-		// Piggyback on a donor event to simulate a different one.
-		// Fake originalEvent to avoid donor's stopPropagation, but if the
-		// simulated event prevents default then we do the same on the donor.
-		var e = jQuery.extend(
-			new jQuery.Event(),
-			event,
-			{
-				type: type,
-				isSimulated: true,
-				originalEvent: {}
-			}
-		);
-		if ( bubble ) {
-			jQuery.event.trigger( e, null, elem );
-		} else {
-			jQuery.event.dispatch.call( elem, e );
-		}
-		if ( e.isDefaultPrevented() ) {
-			event.preventDefault();
-		}
-	}
-};
-
-jQuery.removeEvent = document.removeEventListener ?
-	function( elem, type, handle ) {
-		if ( elem.removeEventListener ) {
-			elem.removeEventListener( type, handle, false );
-		}
-	} :
-	function( elem, type, handle ) {
-		var name = "on" + type;
-
-		if ( elem.detachEvent ) {
-
-			// #8545, #7054, preventing memory leaks for custom events in IE6-8
-			// detachEvent needed property on element, by name of that event, to properly expose it to GC
-			if ( typeof elem[ name ] === core_strundefined ) {
-				elem[ name ] = null;
-			}
-
-			elem.detachEvent( name, handle );
-		}
-	};
-
-jQuery.Event = function( src, props ) {
-	// Allow instantiation without the 'new' keyword
-	if ( !(this instanceof jQuery.Event) ) {
-		return new jQuery.Event( src, props );
-	}
-
-	// Event object
-	if ( src && src.type ) {
-		this.originalEvent = src;
-		this.type = src.type;
-
-		// Events bubbling up the document may have been marked as prevented
-		// by a handler lower down the tree; reflect the correct value.
-		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
-			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
-
-	// Event type
-	} else {
-		this.type = src;
-	}
-
-	// Put explicitly provided properties onto the event object
-	if ( props ) {
-		jQuery.extend( this, props );
-	}
-
-	// Create a timestamp if incoming event doesn't have one
-	this.timeStamp = src && src.timeStamp || jQuery.now();
-
-	// Mark it as fixed
-	this[ jQuery.expando ] = true;
-};
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
-	isDefaultPrevented: returnFalse,
-	isPropagationStopped: returnFalse,
-	isImmediatePropagationStopped: returnFalse,
-
-	preventDefault: function() {
-		var e = this.originalEvent;
-
-		this.isDefaultPrevented = returnTrue;
-		if ( !e ) {
-			return;
-		}
-
-		// If preventDefault exists, run it on the original event
-		if ( e.preventDefault ) {
-			e.preventDefault();
-
-		// Support: IE
-		// Otherwise set the returnValue property of the original event to false
-		} else {
-			e.returnValue = false;
-		}
-	},
-	stopPropagation: function() {
-		var e = this.originalEvent;
-
-		this.isPropagationStopped = returnTrue;
-		if ( !e ) {
-			return;
-		}
-		// If stopPropagation exists, run it on the original event
-		if ( e.stopPropagation ) {
-			e.stopPropagation();
-		}
-
-		// Support: IE
-		// Set the cancelBubble property of the original event to true
-		e.cancelBubble = true;
-	},
-	stopImmediatePropagation: function() {
-		this.isImmediatePropagationStopped = returnTrue;
-		this.stopPropagation();
-	}
-};
-
-// Create mouseenter/leave events using mouseover/out and event-time checks
-jQuery.each({
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-}, function( orig, fix ) {
-	jQuery.event.special[ orig ] = {
-		delegateType: fix,
-		bindType: fix,
-
-		handle: function( event ) {
-			var ret,
-				target = this,
-				related = event.relatedTarget,
-				handleObj = event.handleObj;
-
-			// For mousenter/leave call the handler if related is outside the target.
-			// NB: No relatedTarget if the mouse left/entered the browser window
-			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
-				event.type = handleObj.origType;
-				ret = handleObj.handler.apply( this, arguments );
-				event.type = fix;
-			}
-			return ret;
-		}
-	};
-});
-
-// IE submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
-	jQuery.event.special.submit = {
-		setup: function() {
-			// Only need this for delegated form submit events
-			if ( jQuery.nodeName( this, "form" ) ) {
-				return false;
-			}
-
-			// Lazy-add a submit handler when a descendant form may potentially be submitted
-			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
-				// Node name check avoids a VML-related crash in IE (#9807)
-				var elem = e.target,
-					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
-				if ( form && !jQuery._data( form, "submitBubbles" ) ) {
-					jQuery.event.add( form, "submit._submit", function( event ) {
-						event._submit_bubble = true;
-					});
-					jQuery._data( form, "submitBubbles", true );
-				}
-			});
-			// return undefined since we don't need an event listener
-		},
-
-		postDispatch: function( event ) {
-			// If form was submitted by the user, bubble the event up the tree
-			if ( event._submit_bubble ) {
-				delete event._submit_bubble;
-				if ( this.parentNode && !event.isTrigger ) {
-					jQuery.event.simulate( "submit", this.parentNode, event, true );
-				}
-			}
-		},
-
-		teardown: function() {
-			// Only need this for delegated form submit events
-			if ( jQuery.nodeName( this, "form" ) ) {
-				return false;
-			}
-
-			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
-			jQuery.event.remove( this, "._submit" );
-		}
-	};
-}
-
-// IE change delegation and checkbox/radio fix
-if ( !jQuery.support.changeBubbles ) {
-
-	jQuery.event.special.change = {
-
-		setup: function() {
-
-			if ( rformElems.test( this.nodeName ) ) {
-				// IE doesn't fire change on a check/radio until blur; trigger it on click
-				// after a propertychange. Eat the blur-change in special.change.handle.
-				// This still fires onchange a second time for check/radio after blur.
-				if ( this.type === "checkbox" || this.type === "radio" ) {
-					jQuery.event.add( this, "propertychange._change", function( event ) {
-						if ( event.originalEvent.propertyName === "checked" ) {
-							this._just_changed = true;
-						}
-					});
-					jQuery.event.add( this, "click._change", function( event ) {
-						if ( this._just_changed && !event.isTrigger ) {
-							this._just_changed = false;
-						}
-						// Allow triggered, simulated change events (#11500)
-						jQuery.event.simulate( "change", this, event, true );
-					});
-				}
-				return false;
-			}
-			// Delegated event; lazy-add a change handler on descendant inputs
-			jQuery.event.add( this, "beforeactivate._change", function( e ) {
-				var elem = e.target;
-
-				if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) {
-					jQuery.event.add( elem, "change._change", function( event ) {
-						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
-							jQuery.event.simulate( "change", this.parentNode, event, true );
-						}
-					});
-					jQuery._data( elem, "changeBubbles", true );
-				}
-			});
-		},
-
-		handle: function( event ) {
-			var elem = event.target;
-
-			// Swallow native change events from checkbox/radio, we already triggered them above
-			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
-				return event.handleObj.handler.apply( this, arguments );
-			}
-		},
-
-		teardown: function() {
-			jQuery.event.remove( this, "._change" );
-
-			return !rformElems.test( this.nodeName );
-		}
-	};
-}
-
-// Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
-	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
-		// Attach a single capturing handler while someone wants focusin/focusout
-		var attaches = 0,
-			handler = function( event ) {
-				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
-			};
-
-		jQuery.event.special[ fix ] = {
-			setup: function() {
-				if ( attaches++ === 0 ) {
-					document.addEventListener( orig, handler, true );
-				}
-			},
-			teardown: function() {
-				if ( --attaches === 0 ) {
-					document.removeEventListener( orig, handler, true );
-				}
-			}
-		};
-	});
-}
-
-jQuery.fn.extend({
-
-	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
-		var type, origFn;
-
-		// Types can be a map of types/handlers
-		if ( typeof types === "object" ) {
-			// ( types-Object, selector, data )
-			if ( typeof selector !== "string" ) {
-				// ( types-Object, data )
-				data = data || selector;
-				selector = undefined;
-			}
-			for ( type in types ) {
-				this.on( type, selector, data, types[ type ], one );
-			}
-			return this;
-		}
-
-		if ( data == null && fn == null ) {
-			// ( types, fn )
-			fn = selector;
-			data = selector = undefined;
-		} else if ( fn == null ) {
-			if ( typeof selector === "string" ) {
-				// ( types, selector, fn )
-				fn = data;
-				data = undefined;
-			} else {
-				// ( types, data, fn )
-				fn = data;
-				data = selector;
-				selector = undefined;
-			}
-		}
-		if ( fn === false ) {
-			fn = returnFalse;
-		} else if ( !fn ) {
-			return this;
-		}
-
-		if ( one === 1 ) {
-			origFn = fn;
-			fn = function( event ) {
-				// Can use an empty set, since event contains the info
-				jQuery().off( event );
-				return origFn.apply( this, arguments );
-			};
-			// Use same guid so caller can remove using origFn
-			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
-		}
-		return this.each( function() {
-			jQuery.event.add( this, types, fn, data, selector );
-		});
-	},
-	one: function( types, selector, data, fn ) {
-		return this.on( types, selector, data, fn, 1 );
-	},
-	off: function( types, selector, fn ) {
-		var handleObj, type;
-		if ( types && types.preventDefault && types.handleObj ) {
-			// ( event )  dispatched jQuery.Event
-			handleObj = types.handleObj;
-			jQuery( types.delegateTarget ).off(
-				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
-				handleObj.selector,
-				handleObj.handler
-			);
-			return this;
-		}
-		if ( typeof types === "object" ) {
-			// ( types-object [, selector] )
-			for ( type in types ) {
-				this.off( type, selector, types[ type ] );
-			}
-			return this;
-		}
-		if ( selector === false || typeof selector === "function" ) {
-			// ( types [, fn] )
-			fn = selector;
-			selector = undefined;
-		}
-		if ( fn === false ) {
-			fn = returnFalse;
-		}
-		return this.each(function() {
-			jQuery.event.remove( this, types, fn, selector );
-		});
-	},
-
-	trigger: function( type, data ) {
-		return this.each(function() {
-			jQuery.event.trigger( type, data, this );
-		});
-	},
-	triggerHandler: function( type, data ) {
-		var elem = this[0];
-		if ( elem ) {
-			return jQuery.event.trigger( type, data, elem, true );
-		}
-	}
-});
-var isSimple = /^.[^:#\[\.,]*$/,
-	rparentsprev = /^(?:parents|prev(?:Until|All))/,
-	rneedsContext = jQuery.expr.match.needsContext,
-	// methods guaranteed to produce a unique set when starting from a unique set
-	guaranteedUnique = {
-		children: true,
-		contents: true,
-		next: true,
-		prev: true
-	};
-
-jQuery.fn.extend({
-	find: function( selector ) {
-		var i,
-			ret = [],
-			self = this,
-			len = self.length;
-
-		if ( typeof selector !== "string" ) {
-			return this.pushStack( jQuery( selector ).filter(function() {
-				for ( i = 0; i < len; i++ ) {
-					if ( jQuery.contains( self[ i ], this ) ) {
-						return true;
-					}
-				}
-			}) );
-		}
-
-		for ( i = 0; i < len; i++ ) {
-			jQuery.find( selector, self[ i ], ret );
-		}
-
-		// Needed because $( selector, context ) becomes $( context ).find( selector )
-		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
-		ret.selector = this.selector ? this.selector + " " + selector : selector;
-		return ret;
-	},
-
-	has: function( target ) {
-		var i,
-			targets = jQuery( target, this ),
-			len = targets.length;
-
-		return this.filter(function() {
-			for ( i = 0; i < len; i++ ) {
-				if ( jQuery.contains( this, targets[i] ) ) {
-					return true;
-				}
-			}
-		});
-	},
-
-	not: function( selector ) {
-		return this.pushStack( winnow(this, selector || [], true) );
-	},
-
-	filter: function( selector ) {
-		return this.pushStack( winnow(this, selector || [], false) );
-	},
-
-	is: function( selector ) {
-		return !!winnow(
-			this,
-
-			// If this is a positional/relative selector, check membership in the returned set
-			// so $("p:first").is("p:last") won't return true for a doc with two "p".
-			typeof selector === "string" && rneedsContext.test( selector ) ?
-				jQuery( selector ) :
-				selector || [],
-			false
-		).length;
-	},
-
-	closest: function( selectors, context ) {
-		var cur,
-			i = 0,
-			l = this.length,
-			ret = [],
-			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
-				jQuery( selectors, context || this.context ) :
-				0;
-
-		for ( ; i < l; i++ ) {
-			for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
-				// Always skip document fragments
-				if ( cur.nodeType < 11 && (pos ?
-					pos.index(cur) > -1 :
-
-					// Don't pass non-elements to Sizzle
-					cur.nodeType === 1 &&
-						jQuery.find.matchesSelector(cur, selectors)) ) {
-
-					cur = ret.push( cur );
-					break;
-				}
-			}
-		}
-
-		return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );
-	},
-
-	// Determine the position of an element within
-	// the matched set of elements
-	index: function( elem ) {
-
-		// No argument, return index in parent
-		if ( !elem ) {
-			return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;
-		}
-
-		// index in selector
-		if ( typeof elem === "string" ) {
-			return jQuery.inArray( this[0], jQuery( elem ) );
-		}
-
-		// Locate the position of the desired element
-		return jQuery.inArray(
-			// If it receives a jQuery object, the first element is used
-			elem.jquery ? elem[0] : elem, this );
-	},
-
-	add: function( selector, context ) {
-		var set = typeof selector === "string" ?
-				jQuery( selector, context ) :
-				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
-			all = jQuery.merge( this.get(), set );
-
-		return this.pushStack( jQuery.unique(all) );
-	},
-
-	addBack: function( selector ) {
-		return this.add( selector == null ?
-			this.prevObject : this.prevObject.filter(selector)
-		);
-	}
-});
-
-function sibling( cur, dir ) {
-	do {
-		cur = cur[ dir ];
-	} while ( cur && cur.nodeType !== 1 );
-
-	return cur;
-}
-
-jQuery.each({
-	parent: function( elem ) {
-		var parent = elem.parentNode;
-		return parent && parent.nodeType !== 11 ? parent : null;
-	},
-	parents: function( elem ) {
-		return jQuery.dir( elem, "parentNode" );
-	},
-	parentsUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "parentNode", until );
-	},
-	next: function( elem ) {
-		return sibling( elem, "nextSibling" );
-	},
-	prev: function( elem ) {
-		return sibling( elem, "previousSibling" );
-	},
-	nextAll: function( elem ) {
-		return jQuery.dir( elem, "nextSibling" );
-	},
-	prevAll: function( elem ) {
-		return jQuery.dir( elem, "previousSibling" );
-	},
-	nextUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "nextSibling", until );
-	},
-	prevUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "previousSibling", until );
-	},
-	siblings: function( elem ) {
-		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
-	},
-	children: function( elem ) {
-		return jQuery.sibling( elem.firstChild );
-	},
-	contents: function( elem ) {
-		return jQuery.nodeName( elem, "iframe" ) ?
-			elem.contentDocument || elem.contentWindow.document :
-			jQuery.merge( [], elem.childNodes );
-	}
-}, function( name, fn ) {
-	jQuery.fn[ name ] = function( until, selector ) {
-		var ret = jQuery.map( this, fn, until );
-
-		if ( name.slice( -5 ) !== "Until" ) {
-			selector = until;
-		}
-
-		if ( selector && typeof selector === "string" ) {
-			ret = jQuery.filter( selector, ret );
-		}
-
-		if ( this.length > 1 ) {
-			// Remove duplicates
-			if ( !guaranteedUnique[ name ] ) {
-				ret = jQuery.unique( ret );
-			}
-
-			// Reverse order for parents* and prev-derivatives
-			if ( rparentsprev.test( name ) ) {
-				ret = ret.reverse();
-			}
-		}
-
-		return this.pushStack( ret );
-	};
-});
-
-jQuery.extend({
-	filter: function( expr, elems, not ) {
-		var elem = elems[ 0 ];
-
-		if ( not ) {
-			expr = ":not(" + expr + ")";
-		}
-
-		return elems.length === 1 && elem.nodeType === 1 ?
-			jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
-			jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
-				return elem.nodeType === 1;
-			}));
-	},
-
-	dir: function( elem, dir, until ) {
-		var matched = [],
-			cur = elem[ dir ];
-
-		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
-			if ( cur.nodeType === 1 ) {
-				matched.push( cur );
-			}
-			cur = cur[dir];
-		}
-		return matched;
-	},
-
-	sibling: function( n, elem ) {
-		var r = [];
-
-		for ( ; n; n = n.nextSibling ) {
-			if ( n.nodeType === 1 && n !== elem ) {
-				r.push( n );
-			}
-		}
-
-		return r;
-	}
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, not ) {
-	if ( jQuery.isFunction( qualifier ) ) {
-		return jQuery.grep( elements, function( elem, i ) {
-			/* jshint -W018 */
-			return !!qualifier.call( elem, i, elem ) !== not;
-		});
-
-	}
-
-	if ( qualifier.nodeType ) {
-		return jQuery.grep( elements, function( elem ) {
-			return ( elem === qualifier ) !== not;
-		});
-
-	}
-
-	if ( typeof qualifier === "string" ) {
-		if ( isSimple.test( qualifier ) ) {
-			return jQuery.filter( qualifier, elements, not );
-		}
-
-		qualifier = jQuery.filter( qualifier, elements );
-	}
-
-	return jQuery.grep( elements, function( elem ) {
-		return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;
-	});
-}
-function createSafeFragment( document ) {
-	var list = nodeNames.split( "|" ),
-		safeFrag = document.createDocumentFragment();
-
-	if ( safeFrag.createElement ) {
-		while ( list.length ) {
-			safeFrag.createElement(
-				list.pop()
-			);
-		}
-	}
-	return safeFrag;
-}
-
-var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
-		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
-	rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
-	rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
-	rleadingWhitespace = /^\s+/,
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
-	rtagName = /<([\w:]+)/,
-	rtbody = /<tbody/i,
-	rhtml = /<|&#?\w+;/,
-	rnoInnerhtml = /<(?:script|style|link)/i,
-	manipulation_rcheckableType = /^(?:checkbox|radio)$/i,
-	// checked="checked" or checked
-	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	rscriptType = /^$|\/(?:java|ecma)script/i,
-	rscriptTypeMasked = /^true\/(.*)/,
-	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
-
-	// We have to close these tags to support XHTML (#13200)
-	wrapMap = {
-		option: [ 1, "<select multiple='multiple'>", "</select>" ],
-		legend: [ 1, "<fieldset>", "</fieldset>" ],
-		area: [ 1, "<map>", "</map>" ],
-		param: [ 1, "<object>", "</object>" ],
-		thead: [ 1, "<table>", "</table>" ],
-		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
-		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
-		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-
-		// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
-		// unless wrapped in a div with non-breaking characters in front of it.
-		_default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>"  ]
-	},
-	safeFragment = createSafeFragment( document ),
-	fragmentDiv = safeFragment.appendChild( document.createElement("div") );
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-jQuery.fn.extend({
-	text: function( value ) {
-		return jQuery.access( this, function( value ) {
-			return value === undefined ?
-				jQuery.text( this ) :
-				this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
-		}, null, value, arguments.length );
-	},
-
-	append: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
-				var target = manipulationTarget( this, elem );
-				target.appendChild( elem );
-			}
-		});
-	},
-
-	prepend: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
-				var target = manipulationTarget( this, elem );
-				target.insertBefore( elem, target.firstChild );
-			}
-		});
-	},
-
-	before: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.parentNode ) {
-				this.parentNode.insertBefore( elem, this );
-			}
-		});
-	},
-
-	after: function() {
-		return this.domManip( arguments, function( elem ) {
-			if ( this.parentNode ) {
-				this.parentNode.insertBefore( elem, this.nextSibling );
-			}
-		});
-	},
-
-	// keepData is for internal use only--do not document
-	remove: function( selector, keepData ) {
-		var elem,
-			elems = selector ? jQuery.filter( selector, this ) : this,
-			i = 0;
-
-		for ( ; (elem = elems[i]) != null; i++ ) {
-
-			if ( !keepData && elem.nodeType === 1 ) {
-				jQuery.cleanData( getAll( elem ) );
-			}
-
-			if ( elem.parentNode ) {
-				if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
-					setGlobalEval( getAll( elem, "script" ) );
-				}
-				elem.parentNode.removeChild( elem );
-			}
-		}
-
-		return this;
-	},
-
-	empty: function() {
-		var elem,
-			i = 0;
-
-		for ( ; (elem = this[i]) != null; i++ ) {
-			// Remove element nodes and prevent memory leaks
-			if ( elem.nodeType === 1 ) {
-				jQuery.cleanData( getAll( elem, false ) );
-			}
-
-			// Remove any remaining nodes
-			while ( elem.firstChild ) {
-				elem.removeChild( elem.firstChild );
-			}
-
-			// If this is a select, ensure that it displays empty (#12336)
-			// Support: IE<9
-			if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
-				elem.options.length = 0;
-			}
-		}
-
-		return this;
-	},
-
-	clone: function( dataAndEvents, deepDataAndEvents ) {
-		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
-		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
-		return this.map( function () {
-			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
-		});
-	},
-
-	html: function( value ) {
-		return jQuery.access( this, function( value ) {
-			var elem = this[0] || {},
-				i = 0,
-				l = this.length;
-
-			if ( value === undefined ) {
-				return elem.nodeType === 1 ?
-					elem.innerHTML.replace( rinlinejQuery, "" ) :
-					undefined;
-			}
-
-			// See if we can take a shortcut and just use innerHTML
-			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
-				( jQuery.support.htmlSerialize || !rnoshimcache.test( value )  ) &&
-				( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
-				!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
-
-				value = value.replace( rxhtmlTag, "<$1></$2>" );
-
-				try {
-					for (; i < l; i++ ) {
-						// Remove element nodes and prevent memory leaks
-						elem = this[i] || {};
-						if ( elem.nodeType === 1 ) {
-							jQuery.cleanData( getAll( elem, false ) );
-							elem.innerHTML = value;
-						}
-					}
-
-					elem = 0;
-
-				// If using innerHTML throws an exception, use the fallback method
-				} catch(e) {}
-			}
-
-			if ( elem ) {
-				this.empty().append( value );
-			}
-		}, null, value, arguments.length );
-	},
-
-	replaceWith: function() {
-		var
-			// Snapshot the DOM in case .domManip sweeps something relevant into its fragment
-			args = jQuery.map( this, function( elem ) {
-				return [ elem.nextSibling, elem.parentNode ];
-			}),
-			i = 0;
-
-		// Make the changes, replacing each context element with the new content
-		this.domManip( arguments, function( elem ) {
-			var next = args[ i++ ],
-				parent = args[ i++ ];
-
-			if ( parent ) {
-				// Don't use the snapshot next if it has moved (#13810)
-				if ( next && next.parentNode !== parent ) {
-					next = this.nextSibling;
-				}
-				jQuery( this ).remove();
-				parent.insertBefore( elem, next );
-			}
-		// Allow new content to include elements from the context set
-		}, true );
-
-		// Force removal if there was no new content (e.g., from empty arguments)
-		return i ? this : this.remove();
-	},
-
-	detach: function( selector ) {
-		return this.remove( selector, true );
-	},
-
-	domManip: function( args, callback, allowIntersection ) {
-
-		// Flatten any nested arrays
-		args = core_concat.apply( [], args );
-
-		var first, node, hasScripts,
-			scripts, doc, fragment,
-			i = 0,
-			l = this.length,
-			set = this,
-			iNoClone = l - 1,
-			value = args[0],
-			isFunction = jQuery.isFunction( value );
-
-		// We can't cloneNode fragments that contain checked, in WebKit
-		if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {
-			return this.each(function( index ) {
-				var self = set.eq( index );
-				if ( isFunction ) {
-					args[0] = value.call( this, index, self.html() );
-				}
-				self.domManip( args, callback, allowIntersection );
-			});
-		}
-
-		if ( l ) {
-			fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this );
-			first = fragment.firstChild;
-
-			if ( fragment.childNodes.length === 1 ) {
-				fragment = first;
-			}
-
-			if ( first ) {
-				scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
-				hasScripts = scripts.length;
-
-				// Use the original fragment for the last item instead of the first because it can end up
-				// being emptied incorrectly in certain situations (#8070).
-				for ( ; i < l; i++ ) {
-					node = fragment;
-
-					if ( i !== iNoClone ) {
-						node = jQuery.clone( node, true, true );
-
-						// Keep references to cloned scripts for later restoration
-						if ( hasScripts ) {
-							jQuery.merge( scripts, getAll( node, "script" ) );
-						}
-					}
-
-					callback.call( this[i], node, i );
-				}
-
-				if ( hasScripts ) {
-					doc = scripts[ scripts.length - 1 ].ownerDocument;
-
-					// Reenable scripts
-					jQuery.map( scripts, restoreScript );
-
-					// Evaluate executable scripts on first document insertion
-					for ( i = 0; i < hasScripts; i++ ) {
-						node = scripts[ i ];
-						if ( rscriptType.test( node.type || "" ) &&
-							!jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
-
-							if ( node.src ) {
-								// Hope ajax is available...
-								jQuery._evalUrl( node.src );
-							} else {
-								jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) );
-							}
-						}
-					}
-				}
-
-				// Fix #11809: Avoid leaking memory
-				fragment = first = null;
-			}
-		}
-
-		return this;
-	}
-});
-
-// Support: IE<8
-// Manipulating tables requires a tbody
-function manipulationTarget( elem, content ) {
-	return jQuery.nodeName( elem, "table" ) &&
-		jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ?
-
-		elem.getElementsByTagName("tbody")[0] ||
-			elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
-		elem;
-}
-
-// Replace/restore the type attribute of script elements for safe DOM manipulation
-function disableScript( elem ) {
-	elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type;
-	return elem;
-}
-function restoreScript( elem ) {
-	var match = rscriptTypeMasked.exec( elem.type );
-	if ( match ) {
-		elem.type = match[1];
-	} else {
-		elem.removeAttribute("type");
-	}
-	return elem;
-}
-
-// Mark scripts as having already been evaluated
-function setGlobalEval( elems, refElements ) {
-	var elem,
-		i = 0;
-	for ( ; (elem = elems[i]) != null; i++ ) {
-		jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) );
-	}
-}
-
-function cloneCopyEvent( src, dest ) {
-
-	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
-		return;
-	}
-
-	var type, i, l,
-		oldData = jQuery._data( src ),
-		curData = jQuery._data( dest, oldData ),
-		events = oldData.events;
-
-	if ( events ) {
-		delete curData.handle;
-		curData.events = {};
-
-		for ( type in events ) {
-			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
-				jQuery.event.add( dest, type, events[ type ][ i ] );
-			}
-		}
-	}
-
-	// make the cloned public data object a copy from the original
-	if ( curData.data ) {
-		curData.data = jQuery.extend( {}, curData.data );
-	}
-}
-
-function fixCloneNodeIssues( src, dest ) {
-	var nodeName, e, data;
-
-	// We do not need to do anything for non-Elements
-	if ( dest.nodeType !== 1 ) {
-		return;
-	}
-
-	nodeName = dest.nodeName.toLowerCase();
-
-	// IE6-8 copies events bound via attachEvent when using cloneNode.
-	if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {
-		data = jQuery._data( dest );
-
-		for ( e in data.events ) {
-			jQuery.removeEvent( dest, e, data.handle );
-		}
-
-		// Event data gets referenced instead of copied if the expando gets copied too
-		dest.removeAttribute( jQuery.expando );
-	}
-
-	// IE blanks contents when cloning scripts, and tries to evaluate newly-set text
-	if ( nodeName === "script" && dest.text !== src.text ) {
-		disableScript( dest ).text = src.text;
-		restoreScript( dest );
-
-	// IE6-10 improperly clones children of object elements using classid.
-	// IE10 throws NoModificationAllowedError if parent is null, #12132.
-	} else if ( nodeName === "object" ) {
-		if ( dest.parentNode ) {
-			dest.outerHTML = src.outerHTML;
-		}
-
-		// This path appears unavoidable for IE9. When cloning an object
-		// element in IE9, the outerHTML strategy above is not sufficient.
-		// If the src has innerHTML and the destination does not,
-		// copy the src.innerHTML into the dest.innerHTML. #10324
-		if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {
-			dest.innerHTML = src.innerHTML;
-		}
-
-	} else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) {
-		// IE6-8 fails to persist the checked state of a cloned checkbox
-		// or radio button. Worse, IE6-7 fail to give the cloned element
-		// a checked appearance if the defaultChecked value isn't also set
-
-		dest.defaultChecked = dest.checked = src.checked;
-
-		// IE6-7 get confused and end up setting the value of a cloned
-		// checkbox/radio button to an empty string instead of "on"
-		if ( dest.value !== src.value ) {
-			dest.value = src.value;
-		}
-
-	// IE6-8 fails to return the selected option to the default selected
-	// state when cloning options
-	} else if ( nodeName === "option" ) {
-		dest.defaultSelected = dest.selected = src.defaultSelected;
-
-	// IE6-8 fails to set the defaultValue to the correct value when
-	// cloning other types of input fields
-	} else if ( nodeName === "input" || nodeName === "textarea" ) {
-		dest.defaultValue = src.defaultValue;
-	}
-}
-
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function( name, original ) {
-	jQuery.fn[ name ] = function( selector ) {
-		var elems,
-			i = 0,
-			ret = [],
-			insert = jQuery( selector ),
-			last = insert.length - 1;
-
-		for ( ; i <= last; i++ ) {
-			elems = i === last ? this : this.clone(true);
-			jQuery( insert[i] )[ original ]( elems );
-
-			// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
-			core_push.apply( ret, elems.get() );
-		}
-
-		return this.pushStack( ret );
-	};
-});
-
-function getAll( context, tag ) {
-	var elems, elem,
-		i = 0,
-		found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) :
-			typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) :
-			undefined;
-
-	if ( !found ) {
-		for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {
-			if ( !tag || jQuery.nodeName( elem, tag ) ) {
-				found.push( elem );
-			} else {
-				jQuery.merge( found, getAll( elem, tag ) );
-			}
-		}
-	}
-
-	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
-		jQuery.merge( [ context ], found ) :
-		found;
-}
-
-// Used in buildFragment, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
-	if ( manipulation_rcheckableType.test( elem.type ) ) {
-		elem.defaultChecked = elem.checked;
-	}
-}
-
-jQuery.extend({
-	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
-		var destElements, node, clone, i, srcElements,
-			inPage = jQuery.contains( elem.ownerDocument, elem );
-
-		if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
-			clone = elem.cloneNode( true );
-
-		// IE<=8 does not properly clone detached, unknown element nodes
-		} else {
-			fragmentDiv.innerHTML = elem.outerHTML;
-			fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
-		}
-
-		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
-				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-
-			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
-			destElements = getAll( clone );
-			srcElements = getAll( elem );
-
-			// Fix all IE cloning issues
-			for ( i = 0; (node = srcElements[i]) != null; ++i ) {
-				// Ensure that the destination node is not null; Fixes #9587
-				if ( destElements[i] ) {
-					fixCloneNodeIssues( node, destElements[i] );
-				}
-			}
-		}
-
-		// Copy the events from the original to the clone
-		if ( dataAndEvents ) {
-			if ( deepDataAndEvents ) {
-				srcElements = srcElements || getAll( elem );
-				destElements = destElements || getAll( clone );
-
-				for ( i = 0; (node = srcElements[i]) != null; i++ ) {
-					cloneCopyEvent( node, destElements[i] );
-				}
-			} else {
-				cloneCopyEvent( elem, clone );
-			}
-		}
-
-		// Preserve script evaluation history
-		destElements = getAll( clone, "script" );
-		if ( destElements.length > 0 ) {
-			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
-		}
-
-		destElements = srcElements = node = null;
-
-		// Return the cloned set
-		return clone;
-	},
-
-	buildFragment: function( elems, context, scripts, selection ) {
-		var j, elem, contains,
-			tmp, tag, tbody, wrap,
-			l = elems.length,
-
-			// Ensure a safe fragment
-			safe = createSafeFragment( context ),
-
-			nodes = [],
-			i = 0;
-
-		for ( ; i < l; i++ ) {
-			elem = elems[ i ];
-
-			if ( elem || elem === 0 ) {
-
-				// Add nodes directly
-				if ( jQuery.type( elem ) === "object" ) {
-					jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
-
-				// Convert non-html into a text node
-				} else if ( !rhtml.test( elem ) ) {
-					nodes.push( context.createTextNode( elem ) );
-
-				// Convert html into DOM nodes
-				} else {
-					tmp = tmp || safe.appendChild( context.createElement("div") );
-
-					// Deserialize a standard representation
-					tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
-					wrap = wrapMap[ tag ] || wrapMap._default;
-
-					tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2];
-
-					// Descend through wrappers to the right content
-					j = wrap[0];
-					while ( j-- ) {
-						tmp = tmp.lastChild;
-					}
-
-					// Manually add leading whitespace removed by IE
-					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
-						nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );
-					}
-
-					// Remove IE's autoinserted <tbody> from table fragments
-					if ( !jQuery.support.tbody ) {
-
-						// String was a <table>, *may* have spurious <tbody>
-						elem = tag === "table" && !rtbody.test( elem ) ?
-							tmp.firstChild :
-
-							// String was a bare <thead> or <tfoot>
-							wrap[1] === "<table>" && !rtbody.test( elem ) ?
-								tmp :
-								0;
-
-						j = elem && elem.childNodes.length;
-						while ( j-- ) {
-							if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) {
-								elem.removeChild( tbody );
-							}
-						}
-					}
-
-					jQuery.merge( nodes, tmp.childNodes );
-
-					// Fix #12392 for WebKit and IE > 9
-					tmp.textContent = "";
-
-					// Fix #12392 for oldIE
-					while ( tmp.firstChild ) {
-						tmp.removeChild( tmp.firstChild );
-					}
-
-					// Remember the top-level container for proper cleanup
-					tmp = safe.lastChild;
-				}
-			}
-		}
-
-		// Fix #11356: Clear elements from fragment
-		if ( tmp ) {
-			safe.removeChild( tmp );
-		}
-
-		// Reset defaultChecked for any radios and checkboxes
-		// about to be appended to the DOM in IE 6/7 (#8060)
-		if ( !jQuery.support.appendChecked ) {
-			jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
-		}
-
-		i = 0;
-		while ( (elem = nodes[ i++ ]) ) {
-
-			// #4087 - If origin and destination elements are the same, and this is
-			// that element, do not do anything
-			if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
-				continue;
-			}
-
-			contains = jQuery.contains( elem.ownerDocument, elem );
-
-			// Append to fragment
-			tmp = getAll( safe.appendChild( elem ), "script" );
-
-			// Preserve script evaluation history
-			if ( contains ) {
-				setGlobalEval( tmp );
-			}
-
-			// Capture executables
-			if ( scripts ) {
-				j = 0;
-				while ( (elem = tmp[ j++ ]) ) {
-					if ( rscriptType.test( elem.type || "" ) ) {
-						scripts.push( elem );
-					}
-				}
-			}
-		}
-
-		tmp = null;
-
-		return safe;
-	},
-
-	cleanData: function( elems, /* internal */ acceptData ) {
-		var elem, type, id, data,
-			i = 0,
-			internalKey = jQuery.expando,
-			cache = jQuery.cache,
-			deleteExpando = jQuery.support.deleteExpando,
-			special = jQuery.event.special;
-
-		for ( ; (elem = elems[i]) != null; i++ ) {
-
-			if ( acceptData || jQuery.acceptData( elem ) ) {
-
-				id = elem[ internalKey ];
-				data = id && cache[ id ];
-
-				if ( data ) {
-					if ( data.events ) {
-						for ( type in data.events ) {
-							if ( special[ type ] ) {
-								jQuery.event.remove( elem, type );
-
-							// This is a shortcut to avoid jQuery.event.remove's overhead
-							} else {
-								jQuery.removeEvent( elem, type, data.handle );
-							}
-						}
-					}
-
-					// Remove cache only if it was not already removed by jQuery.event.remove
-					if ( cache[ id ] ) {
-
-						delete cache[ id ];
-
-						// IE does not allow us to delete expando properties from nodes,
-						// nor does it have a removeAttribute function on Document nodes;
-						// we must handle all of these cases
-						if ( deleteExpando ) {
-							delete elem[ internalKey ];
-
-						} else if ( typeof elem.removeAttribute !== core_strundefined ) {
-							elem.removeAttribute( internalKey );
-
-						} else {
-							elem[ internalKey ] = null;
-						}
-
-						core_deletedIds.push( id );
-					}
-				}
-			}
-		}
-	},
-
-	_evalUrl: function( url ) {
-		return jQuery.ajax({
-			url: url,
-			type: "GET",
-			dataType: "script",
-			async: false,
-			global: false,
-			"throws": true
-		});
-	}
-});
-jQuery.fn.extend({
-	wrapAll: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapAll( html.call(this, i) );
-			});
-		}
-
-		if ( this[0] ) {
-			// The elements to wrap the target around
-			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
-
-			if ( this[0].parentNode ) {
-				wrap.insertBefore( this[0] );
-			}
-
-			wrap.map(function() {
-				var elem = this;
-
-				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
-					elem = elem.firstChild;
-				}
-
-				return elem;
-			}).append( this );
-		}
-
-		return this;
-	},
-
-	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapInner( html.call(this, i) );
-			});
-		}
-
-		return this.each(function() {
-			var self = jQuery( this ),
-				contents = self.contents();
-
-			if ( contents.length ) {
-				contents.wrapAll( html );
-
-			} else {
-				self.append( html );
-			}
-		});
-	},
-
-	wrap: function( html ) {
-		var isFunction = jQuery.isFunction( html );
-
-		return this.each(function(i) {
-			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
-		});
-	},
-
-	unwrap: function() {
-		return this.parent().each(function() {
-			if ( !jQuery.nodeName( this, "body" ) ) {
-				jQuery( this ).replaceWith( this.childNodes );
-			}
-		}).end();
-	}
-});
-var iframe, getStyles, curCSS,
-	ralpha = /alpha\([^)]*\)/i,
-	ropacity = /opacity\s*=\s*([^)]*)/,
-	rposition = /^(top|right|bottom|left)$/,
-	// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
-	// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
-	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
-	rmargin = /^margin/,
-	rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
-	rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
-	rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ),
-	elemdisplay = { BODY: "block" },
-
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssNormalTransform = {
-		letterSpacing: 0,
-		fontWeight: 400
-	},
-
-	cssExpand = [ "Top", "Right", "Bottom", "Left" ],
-	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
-
-// return a css property mapped to a potentially vendor prefixed property
-function vendorPropName( style, name ) {
-
-	// shortcut for names that are not vendor prefixed
-	if ( name in style ) {
-		return name;
-	}
-
-	// check for vendor prefixed names
-	var capName = name.charAt(0).toUpperCase() + name.slice(1),
-		origName = name,
-		i = cssPrefixes.length;
-
-	while ( i-- ) {
-		name = cssPrefixes[ i ] + capName;
-		if ( name in style ) {
-			return name;
-		}
-	}
-
-	return origName;
-}
-
-function isHidden( elem, el ) {
-	// isHidden might be called from jQuery#filter function;
-	// in that case, element will be second argument
-	elem = el || elem;
-	return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
-}
-
-function showHide( elements, show ) {
-	var display, elem, hidden,
-		values = [],
-		index = 0,
-		length = elements.length;
-
-	for ( ; index < length; index++ ) {
-		elem = elements[ index ];
-		if ( !elem.style ) {
-			continue;
-		}
-
-		values[ index ] = jQuery._data( elem, "olddisplay" );
-		display = elem.style.display;
-		if ( show ) {
-			// Reset the inline display of this element to learn if it is
-			// being hidden by cascaded rules or not
-			if ( !values[ index ] && display === "none" ) {
-				elem.style.display = "";
-			}
-
-			// Set elements which have been overridden with display: none
-			// in a stylesheet to whatever the default browser style is
-			// for such an element
-			if ( elem.style.display === "" && isHidden( elem ) ) {
-				values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
-			}
-		} else {
-
-			if ( !values[ index ] ) {
-				hidden = isHidden( elem );
-
-				if ( display && display !== "none" || !hidden ) {
-					jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
-				}
-			}
-		}
-	}
-
-	// Set the display of most of the elements in a second loop
-	// to avoid the constant reflow
-	for ( index = 0; index < length; index++ ) {
-		elem = elements[ index ];
-		if ( !elem.style ) {
-			continue;
-		}
-		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
-			elem.style.display = show ? values[ index ] || "" : "none";
-		}
-	}
-
-	return elements;
-}
-
-jQuery.fn.extend({
-	css: function( name, value ) {
-		return jQuery.access( this, function( elem, name, value ) {
-			var len, styles,
-				map = {},
-				i = 0;
-
-			if ( jQuery.isArray( name ) ) {
-				styles = getStyles( elem );
-				len = name.length;
-
-				for ( ; i < len; i++ ) {
-					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
-				}
-
-				return map;
-			}
-
-			return value !== undefined ?
-				jQuery.style( elem, name, value ) :
-				jQuery.css( elem, name );
-		}, name, value, arguments.length > 1 );
-	},
-	show: function() {
-		return showHide( this, true );
-	},
-	hide: function() {
-		return showHide( this );
-	},
-	toggle: function( state ) {
-		if ( typeof state === "boolean" ) {
-			return state ? this.show() : this.hide();
-		}
-
-		return this.each(function() {
-			if ( isHidden( this ) ) {
-				jQuery( this ).show();
-			} else {
-				jQuery( this ).hide();
-			}
-		});
-	}
-});
-
-jQuery.extend({
-	// Add in style property hooks for overriding the default
-	// behavior of getting and setting a style property
-	cssHooks: {
-		opacity: {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// We should always get a number back from opacity
-					var ret = curCSS( elem, "opacity" );
-					return ret === "" ? "1" : ret;
-				}
-			}
-		}
-	},
-
-	// Don't automatically add "px" to these possibly-unitless properties
-	cssNumber: {
-		"columnCount": true,
-		"fillOpacity": true,
-		"fontWeight": true,
-		"lineHeight": true,
-		"opacity": true,
-		"order": true,
-		"orphans": true,
-		"widows": true,
-		"zIndex": true,
-		"zoom": true
-	},
-
-	// Add in properties whose names you wish to fix before
-	// setting or getting the value
-	cssProps: {
-		// normalize float css property
-		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
-	},
-
-	// Get and set the style property on a DOM Node
-	style: function( elem, name, value, extra ) {
-		// Don't set styles on text and comment nodes
-		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
-			return;
-		}
-
-		// Make sure that we're working with the right name
-		var ret, type, hooks,
-			origName = jQuery.camelCase( name ),
-			style = elem.style;
-
-		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
-
-		// gets hook for the prefixed version
-		// followed by the unprefixed version
-		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
-		// Check if we're setting a value
-		if ( value !== undefined ) {
-			type = typeof value;
-
-			// convert relative number strings (+= or -=) to relative numbers. #7345
-			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
-				value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
-				// Fixes bug #9237
-				type = "number";
-			}
-
-			// Make sure that NaN and null values aren't set. See: #7116
-			if ( value == null || type === "number" && isNaN( value ) ) {
-				return;
-			}
-
-			// If a number was passed in, add 'px' to the (except for certain CSS properties)
-			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
-				value += "px";
-			}
-
-			// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
-			// but it would mean to define eight (for every problematic property) identical functions
-			if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) {
-				style[ name ] = "inherit";
-			}
-
-			// If a hook was provided, use that value, otherwise just set the specified value
-			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
-
-				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
-				// Fixes bug #5509
-				try {
-					style[ name ] = value;
-				} catch(e) {}
-			}
-
-		} else {
-			// If a hook was provided get the non-computed value from there
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
-				return ret;
-			}
-
-			// Otherwise just get the value from the style object
-			return style[ name ];
-		}
-	},
-
-	css: function( elem, name, extra, styles ) {
-		var num, val, hooks,
-			origName = jQuery.camelCase( name );
-
-		// Make sure that we're working with the right name
-		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
-
-		// gets hook for the prefixed version
-		// followed by the unprefixed version
-		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
-
-		// If a hook was provided get the computed value from there
-		if ( hooks && "get" in hooks ) {
-			val = hooks.get( elem, true, extra );
-		}
-
-		// Otherwise, if a way to get the computed value exists, use that
-		if ( val === undefined ) {
-			val = curCSS( elem, name, styles );
-		}
-
-		//convert "normal" to computed value
-		if ( val === "normal" && name in cssNormalTransform ) {
-			val = cssNormalTransform[ name ];
-		}
-
-		// Return, converting to number if forced or a qualifier was provided and val looks numeric
-		if ( extra === "" || extra ) {
-			num = parseFloat( val );
-			return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
-		}
-		return val;
-	}
-});
-
-// NOTE: we've included the "window" in window.getComputedStyle
-// because jsdom on node.js will break without it.
-if ( window.getComputedStyle ) {
-	getStyles = function( elem ) {
-		return window.getComputedStyle( elem, null );
-	};
-
-	curCSS = function( elem, name, _computed ) {
-		var width, minWidth, maxWidth,
-			computed = _computed || getStyles( elem ),
-
-			// getPropertyValue is only needed for .css('filter') in IE9, see #12537
-			ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,
-			style = elem.style;
-
-		if ( computed ) {
-
-			if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
-				ret = jQuery.style( elem, name );
-			}
-
-			// A tribute to the "awesome hack by Dean Edwards"
-			// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
-			// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
-			// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
-			if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
-
-				// Remember the original values
-				width = style.width;
-				minWidth = style.minWidth;
-				maxWidth = style.maxWidth;
-
-				// Put in the new values to get a computed value out
-				style.minWidth = style.maxWidth = style.width = ret;
-				ret = computed.width;
-
-				// Revert the changed values
-				style.width = width;
-				style.minWidth = minWidth;
-				style.maxWidth = maxWidth;
-			}
-		}
-
-		return ret;
-	};
-} else if ( document.documentElement.currentStyle ) {
-	getStyles = function( elem ) {
-		return elem.currentStyle;
-	};
-
-	curCSS = function( elem, name, _computed ) {
-		var left, rs, rsLeft,
-			computed = _computed || getStyles( elem ),
-			ret = computed ? computed[ name ] : undefined,
-			style = elem.style;
-
-		// Avoid setting ret to empty string here
-		// so we don't default to auto
-		if ( ret == null && style && style[ name ] ) {
-			ret = style[ name ];
-		}
-
-		// From the awesome hack by Dean Edwards
-		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-		// If we're not dealing with a regular pixel number
-		// but a number that has a weird ending, we need to convert it to pixels
-		// but not position css attributes, as those are proportional to the parent element instead
-		// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
-		if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
-
-			// Remember the original values
-			left = style.left;
-			rs = elem.runtimeStyle;
-			rsLeft = rs && rs.left;
-
-			// Put in the new values to get a computed value out
-			if ( rsLeft ) {
-				rs.left = elem.currentStyle.left;
-			}
-			style.left = name === "fontSize" ? "1em" : ret;
-			ret = style.pixelLeft + "px";
-
-			// Revert the changed values
-			style.left = left;
-			if ( rsLeft ) {
-				rs.left = rsLeft;
-			}
-		}
-
-		return ret === "" ? "auto" : ret;
-	};
-}
-
-function setPositiveNumber( elem, value, subtract ) {
-	var matches = rnumsplit.exec( value );
-	return matches ?
-		// Guard against undefined "subtract", e.g., when used as in cssHooks
-		Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
-		value;
-}
-
-function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
-	var i = extra === ( isBorderBox ? "border" : "content" ) ?
-		// If we already have the right measurement, avoid augmentation
-		4 :
-		// Otherwise initialize for horizontal or vertical properties
-		name === "width" ? 1 : 0,
-
-		val = 0;
-
-	for ( ; i < 4; i += 2 ) {
-		// both box models exclude margin, so add it if we want it
-		if ( extra === "margin" ) {
-			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
-		}
-
-		if ( isBorderBox ) {
-			// border-box includes padding, so remove it if we want content
-			if ( extra === "content" ) {
-				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-			}
-
-			// at this point, extra isn't border nor margin, so remove border
-			if ( extra !== "margin" ) {
-				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
-			}
-		} else {
-			// at this point, extra isn't content, so add padding
-			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
-
-			// at this point, extra isn't content nor padding, so add border
-			if ( extra !== "padding" ) {
-				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
-			}
-		}
-	}
-
-	return val;
-}
-
-function getWidthOrHeight( elem, name, extra ) {
-
-	// Start with offset property, which is equivalent to the border-box value
-	var valueIsBorderBox = true,
-		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
-		styles = getStyles( elem ),
-		isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
-
-	// some non-html elements return undefined for offsetWidth, so check for null/undefined
-	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
-	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
-	if ( val <= 0 || val == null ) {
-		// Fall back to computed then uncomputed css if necessary
-		val = curCSS( elem, name, styles );
-		if ( val < 0 || val == null ) {
-			val = elem.style[ name ];
-		}
-
-		// Computed unit is not pixels. Stop here and return.
-		if ( rnumnonpx.test(val) ) {
-			return val;
-		}
-
-		// we need the check for style in case a browser which returns unreliable values
-		// for getComputedStyle silently falls back to the reliable elem.style
-		valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
-
-		// Normalize "", auto, and prepare for extra
-		val = parseFloat( val ) || 0;
-	}
-
-	// use the active box-sizing model to add/subtract irrelevant styles
-	return ( val +
-		augmentWidthOrHeight(
-			elem,
-			name,
-			extra || ( isBorderBox ? "border" : "content" ),
-			valueIsBorderBox,
-			styles
-		)
-	) + "px";
-}
-
-// Try to determine the default display value of an element
-function css_defaultDisplay( nodeName ) {
-	var doc = document,
-		display = elemdisplay[ nodeName ];
-
-	if ( !display ) {
-		display = actualDisplay( nodeName, doc );
-
-		// If the simple way fails, read from inside an iframe
-		if ( display === "none" || !display ) {
-			// Use the already-created iframe if possible
-			iframe = ( iframe ||
-				jQuery("<iframe frameborder='0' width='0' height='0'/>")
-				.css( "cssText", "display:block !important" )
-			).appendTo( doc.documentElement );
-
-			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
-			doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;
-			doc.write("<!doctype html><html><body>");
-			doc.close();
-
-			display = actualDisplay( nodeName, doc );
-			iframe.detach();
-		}
-
-		// Store the correct default display
-		elemdisplay[ nodeName ] = display;
-	}
-
-	return display;
-}
-
-// Called ONLY from within css_defaultDisplay
-function actualDisplay( name, doc ) {
-	var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
-		display = jQuery.css( elem[0], "display" );
-	elem.remove();
-	return display;
-}
-
-jQuery.each([ "height", "width" ], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
-		get: function( elem, computed, extra ) {
-			if ( computed ) {
-				// certain elements can have dimension info if we invisibly show them
-				// however, it must have a current display style that would benefit from this
-				return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
-					jQuery.swap( elem, cssShow, function() {
-						return getWidthOrHeight( elem, name, extra );
-					}) :
-					getWidthOrHeight( elem, name, extra );
-			}
-		},
-
-		set: function( elem, value, extra ) {
-			var styles = extra && getStyles( elem );
-			return setPositiveNumber( elem, value, extra ?
-				augmentWidthOrHeight(
-					elem,
-					name,
-					extra,
-					jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
-					styles
-				) : 0
-			);
-		}
-	};
-});
-
-if ( !jQuery.support.opacity ) {
-	jQuery.cssHooks.opacity = {
-		get: function( elem, computed ) {
-			// IE uses filters for opacity
-			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
-				( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
-				computed ? "1" : "";
-		},
-
-		set: function( elem, value ) {
-			var style = elem.style,
-				currentStyle = elem.currentStyle,
-				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
-				filter = currentStyle && currentStyle.filter || style.filter || "";
-
-			// IE has trouble with opacity if it does not have layout
-			// Force it by setting the zoom level
-			style.zoom = 1;
-
-			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
-			// if value === "", then remove inline opacity #12685
-			if ( ( value >= 1 || value === "" ) &&
-					jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
-					style.removeAttribute ) {
-
-				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
-				// if "filter:" is present at all, clearType is disabled, we want to avoid this
-				// style.removeAttribute is IE Only, but so apparently is this code path...
-				style.removeAttribute( "filter" );
-
-				// if there is no filter style applied in a css rule or unset inline opacity, we are done
-				if ( value === "" || currentStyle && !currentStyle.filter ) {
-					return;
-				}
-			}
-
-			// otherwise, set new filter values
-			style.filter = ralpha.test( filter ) ?
-				filter.replace( ralpha, opacity ) :
-				filter + " " + opacity;
-		}
-	};
-}
-
-// These hooks cannot be added until DOM ready because the support test
-// for it is not run until after DOM ready
-jQuery(function() {
-	if ( !jQuery.support.reliableMarginRight ) {
-		jQuery.cssHooks.marginRight = {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-					// Work around by temporarily setting element display to inline-block
-					return jQuery.swap( elem, { "display": "inline-block" },
-						curCSS, [ elem, "marginRight" ] );
-				}
-			}
-		};
-	}
-
-	// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
-	// getComputedStyle returns percent when specified for top/left/bottom/right
-	// rather than make the css module depend on the offset module, we just check for it here
-	if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
-		jQuery.each( [ "top", "left" ], function( i, prop ) {
-			jQuery.cssHooks[ prop ] = {
-				get: function( elem, computed ) {
-					if ( computed ) {
-						computed = curCSS( elem, prop );
-						// if curCSS returns percentage, fallback to offset
-						return rnumnonpx.test( computed ) ?
-							jQuery( elem ).position()[ prop ] + "px" :
-							computed;
-					}
-				}
-			};
-		});
-	}
-
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.hidden = function( elem ) {
-		// Support: Opera <= 12.12
-		// Opera reports offsetWidths and offsetHeights less than zero on some elements
-		return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||
-			(!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
-	};
-
-	jQuery.expr.filters.visible = function( elem ) {
-		return !jQuery.expr.filters.hidden( elem );
-	};
-}
-
-// These hooks are used by animate to expand properties
-jQuery.each({
-	margin: "",
-	padding: "",
-	border: "Width"
-}, function( prefix, suffix ) {
-	jQuery.cssHooks[ prefix + suffix ] = {
-		expand: function( value ) {
-			var i = 0,
-				expanded = {},
-
-				// assumes a single number if not a string
-				parts = typeof value === "string" ? value.split(" ") : [ value ];
-
-			for ( ; i < 4; i++ ) {
-				expanded[ prefix + cssExpand[ i ] + suffix ] =
-					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
-			}
-
-			return expanded;
-		}
-	};
-
-	if ( !rmargin.test( prefix ) ) {
-		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
-	}
-});
-var r20 = /%20/g,
-	rbracket = /\[\]$/,
-	rCRLF = /\r?\n/g,
-	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
-	rsubmittable = /^(?:input|select|textarea|keygen)/i;
-
-jQuery.fn.extend({
-	serialize: function() {
-		return jQuery.param( this.serializeArray() );
-	},
-	serializeArray: function() {
-		return this.map(function(){
-			// Can add propHook for "elements" to filter or add form elements
-			var elements = jQuery.prop( this, "elements" );
-			return elements ? jQuery.makeArray( elements ) : this;
-		})
-		.filter(function(){
-			var type = this.type;
-			// Use .is(":disabled") so that fieldset[disabled] works
-			return this.name && !jQuery( this ).is( ":disabled" ) &&
-				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
-				( this.checked || !manipulation_rcheckableType.test( type ) );
-		})
-		.map(function( i, elem ){
-			var val = jQuery( this ).val();
-
-			return val == null ?
-				null :
-				jQuery.isArray( val ) ?
-					jQuery.map( val, function( val ){
-						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-					}) :
-					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-		}).get();
-	}
-});
-
-//Serialize an array of form elements or a set of
-//key/values into a query string
-jQuery.param = function( a, traditional ) {
-	var prefix,
-		s = [],
-		add = function( key, value ) {
-			// If value is a function, invoke it and return its value
-			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
-			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
-		};
-
-	// Set traditional to true for jQuery <= 1.3.2 behavior.
-	if ( traditional === undefined ) {
-		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
-	}
-
-	// If an array was passed in, assume that it is an array of form elements.
-	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-		// Serialize the form elements
-		jQuery.each( a, function() {
-			add( this.name, this.value );
-		});
-
-	} else {
-		// If traditional, encode the "old" way (the way 1.3.2 or older
-		// did it), otherwise encode params recursively.
-		for ( prefix in a ) {
-			buildParams( prefix, a[ prefix ], traditional, add );
-		}
-	}
-
-	// Return the resulting serialization
-	return s.join( "&" ).replace( r20, "+" );
-};
-
-function buildParams( prefix, obj, traditional, add ) {
-	var name;
-
-	if ( jQuery.isArray( obj ) ) {
-		// Serialize array item.
-		jQuery.each( obj, function( i, v ) {
-			if ( traditional || rbracket.test( prefix ) ) {
-				// Treat each array item as a scalar.
-				add( prefix, v );
-
-			} else {
-				// Item is non-scalar (array or object), encode its numeric index.
-				buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
-			}
-		});
-
-	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
-		// Serialize object item.
-		for ( name in obj ) {
-			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
-		}
-
-	} else {
-		// Serialize scalar item.
-		add( prefix, obj );
-	}
-}
-jQuery.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 contextmenu").split(" "), function( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		return arguments.length > 0 ?
-			this.on( name, null, data, fn ) :
-			this.trigger( name );
-	};
-});
-
-jQuery.fn.extend({
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	},
-
-	bind: function( types, data, fn ) {
-		return this.on( types, null, data, fn );
-	},
-	unbind: function( types, fn ) {
-		return this.off( types, null, fn );
-	},
-
-	delegate: function( selector, types, data, fn ) {
-		return this.on( types, selector, data, fn );
-	},
-	undelegate: function( selector, types, fn ) {
-		// ( namespace ) or ( selector, types [, fn] )
-		return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
-	}
-});
-var
-	// Document location
-	ajaxLocParts,
-	ajaxLocation,
-	ajax_nonce = jQuery.now(),
-
-	ajax_rquery = /\?/,
-	rhash = /#.*$/,
-	rts = /([?&])_=[^&]*/,
-	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
-	// #7653, #8125, #8152: local protocol detection
-	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
-	rnoContent = /^(?:GET|HEAD)$/,
-	rprotocol = /^\/\//,
-	rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
-
-	// Keep a copy of the old load method
-	_load = jQuery.fn.load,
-
-	/* Prefilters
-	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
-	 * 2) These are called:
-	 *    - BEFORE asking for a transport
-	 *    - AFTER param serialization (s.data is a string if s.processData is true)
-	 * 3) key is the dataType
-	 * 4) the catchall symbol "*" can be used
-	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
-	 */
-	prefilters = {},
-
-	/* Transports bindings
-	 * 1) key is the dataType
-	 * 2) the catchall symbol "*" can be used
-	 * 3) selection will start with transport dataType and THEN go to "*" if needed
-	 */
-	transports = {},
-
-	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
-	allTypes = "*/".concat("*");
-
-// #8138, IE may throw an exception when accessing
-// a field from window.location if document.domain has been set
-try {
-	ajaxLocation = location.href;
-} catch( e ) {
-	// Use the href attribute of an A element
-	// since IE will modify it given document.location
-	ajaxLocation = document.createElement( "a" );
-	ajaxLocation.href = "";
-	ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
-	// dataTypeExpression is optional and defaults to "*"
-	return function( dataTypeExpression, func ) {
-
-		if ( typeof dataTypeExpression !== "string" ) {
-			func = dataTypeExpression;
-			dataTypeExpression = "*";
-		}
-
-		var dataType,
-			i = 0,
-			dataTypes = dataTypeExpression.toLowerCase().match( core_rnotwhite ) || [];
-
-		if ( jQuery.isFunction( func ) ) {
-			// For each dataType in the dataTypeExpression
-			while ( (dataType = dataTypes[i++]) ) {
-				// Prepend if requested
-				if ( dataType[0] === "+" ) {
-					dataType = dataType.slice( 1 ) || "*";
-					(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
-
-				// Otherwise append
-				} else {
-					(structure[ dataType ] = structure[ dataType ] || []).push( func );
-				}
-			}
-		}
-	};
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
-
-	var inspected = {},
-		seekingTransport = ( structure === transports );
-
-	function inspect( dataType ) {
-		var selected;
-		inspected[ dataType ] = true;
-		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
-			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
-			if( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
-				options.dataTypes.unshift( dataTypeOrTransport );
-				inspect( dataTypeOrTransport );
-				return false;
-			} else if ( seekingTransport ) {
-				return !( selected = dataTypeOrTransport );
-			}
-		});
-		return selected;
-	}
-
-	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
-}
-
-// A special extend for ajax options
-// that takes "flat" options (not to be deep extended)
-// Fixes #9887
-function ajaxExtend( target, src ) {
-	var deep, key,
-		flatOptions = jQuery.ajaxSettings.flatOptions || {};
-
-	for ( key in src ) {
-		if ( src[ key ] !== undefined ) {
-			( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
-		}
-	}
-	if ( deep ) {
-		jQuery.extend( true, target, deep );
-	}
-
-	return target;
-}
-
-jQuery.fn.load = function( url, params, callback ) {
-	if ( typeof url !== "string" && _load ) {
-		return _load.apply( this, arguments );
-	}
-
-	var selector, response, type,
-		self = this,
-		off = url.indexOf(" ");
-
-	if ( off >= 0 ) {
-		selector = url.slice( off, url.length );
-		url = url.slice( 0, off );
-	}
-
-	// If it's a function
-	if ( jQuery.isFunction( params ) ) {
-
-		// We assume that it's the callback
-		callback = params;
-		params = undefined;
-
-	// Otherwise, build a param string
-	} else if ( params && typeof params === "object" ) {
-		type = "POST";
-	}
-
-	// If we have elements to modify, make the request
-	if ( self.length > 0 ) {
-		jQuery.ajax({
-			url: url,
-
-			// if "type" variable is undefined, then "GET" method will be used
-			type: type,
-			dataType: "html",
-			data: params
-		}).done(function( responseText ) {
-
-			// Save response for use in complete callback
-			response = arguments;
-
-			self.html( selector ?
-
-				// If a selector was specified, locate the right elements in a dummy div
-				// Exclude scripts to avoid IE 'Permission Denied' errors
-				jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
-
-				// Otherwise use the full result
-				responseText );
-
-		}).complete( callback && function( jqXHR, status ) {
-			self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
-		});
-	}
-
-	return this;
-};
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){
-	jQuery.fn[ type ] = function( fn ){
-		return this.on( type, fn );
-	};
-});
-
-jQuery.extend({
-
-	// Counter for holding the number of active queries
-	active: 0,
-
-	// Last-Modified header cache for next request
-	lastModified: {},
-	etag: {},
-
-	ajaxSettings: {
-		url: ajaxLocation,
-		type: "GET",
-		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
-		global: true,
-		processData: true,
-		async: true,
-		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
-		/*
-		timeout: 0,
-		data: null,
-		dataType: null,
-		username: null,
-		password: null,
-		cache: null,
-		throws: false,
-		traditional: false,
-		headers: {},
-		*/
-
-		accepts: {
-			"*": allTypes,
-			text: "text/plain",
-			html: "text/html",
-			xml: "application/xml, text/xml",
-			json: "application/json, text/javascript"
-		},
-
-		contents: {
-			xml: /xml/,
-			html: /html/,
-			json: /json/
-		},
-
-		responseFields: {
-			xml: "responseXML",
-			text: "responseText",
-			json: "responseJSON"
-		},
-
-		// Data converters
-		// Keys separate source (or catchall "*") and destination types with a single space
-		converters: {
-
-			// Convert anything to text
-			"* text": String,
-
-			// Text to html (true = no transformation)
-			"text html": true,
-
-			// Evaluate text as a json expression
-			"text json": jQuery.parseJSON,
-
-			// Parse text as xml
-			"text xml": jQuery.parseXML
-		},
-
-		// For options that shouldn't be deep extended:
-		// you can add your own custom options here if
-		// and when you create one that shouldn't be
-		// deep extended (see ajaxExtend)
-		flatOptions: {
-			url: true,
-			context: true
-		}
-	},
-
-	// Creates a full fledged settings object into target
-	// with both ajaxSettings and settings fields.
-	// If target is omitted, writes into ajaxSettings.
-	ajaxSetup: function( target, settings ) {
-		return settings ?
-
-			// Building a settings object
-			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
-
-			// Extending ajaxSettings
-			ajaxExtend( jQuery.ajaxSettings, target );
-	},
-
-	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
-	ajaxTransport: addToPrefiltersOrTransports( transports ),
-
-	// Main method
-	ajax: function( url, options ) {
-
-		// If url is an object, simulate pre-1.5 signature
-		if ( typeof url === "object" ) {
-			options = url;
-			url = undefined;
-		}
-
-		// Force options to be an object
-		options = options || {};
-
-		var // Cross-domain detection vars
-			parts,
-			// Loop variable
-			i,
-			// URL without anti-cache param
-			cacheURL,
-			// Response headers as string
-			responseHeadersString,
-			// timeout handle
-			timeoutTimer,
-
-			// To know if global events are to be dispatched
-			fireGlobals,
-
-			transport,
-			// Response headers
-			responseHeaders,
-			// Create the final options object
-			s = jQuery.ajaxSetup( {}, options ),
-			// Callbacks context
-			callbackContext = s.context || s,
-			// Context for global events is callbackContext if it is a DOM node or jQuery collection
-			globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
-				jQuery( callbackContext ) :
-				jQuery.event,
-			// Deferreds
-			deferred = jQuery.Deferred(),
-			completeDeferred = jQuery.Callbacks("once memory"),
-			// Status-dependent callbacks
-			statusCode = s.statusCode || {},
-			// Headers (they are sent all at once)
-			requestHeaders = {},
-			requestHeadersNames = {},
-			// The jqXHR state
-			state = 0,
-			// Default abort message
-			strAbort = "canceled",
-			// Fake xhr
-			jqXHR = {
-				readyState: 0,
-
-				// Builds headers hashtable if needed
-				getResponseHeader: function( key ) {
-					var match;
-					if ( state === 2 ) {
-						if ( !responseHeaders ) {
-							responseHeaders = {};
-							while ( (match = rheaders.exec( responseHeadersString )) ) {
-								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
-							}
-						}
-						match = responseHeaders[ key.toLowerCase() ];
-					}
-					return match == null ? null : match;
-				},
-
-				// Raw string
-				getAllResponseHeaders: function() {
-					return state === 2 ? responseHeadersString : null;
-				},
-
-				// Caches the header
-				setRequestHeader: function( name, value ) {
-					var lname = name.toLowerCase();
-					if ( !state ) {
-						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
-						requestHeaders[ name ] = value;
-					}
-					return this;
-				},
-
-				// Overrides response content-type header
-				overrideMimeType: function( type ) {
-					if ( !state ) {
-						s.mimeType = type;
-					}
-					return this;
-				},
-
-				// Status-dependent callbacks
-				statusCode: function( map ) {
-					var code;
-					if ( map ) {
-						if ( state < 2 ) {
-							for ( code in map ) {
-								// Lazy-add the new callback in a way that preserves old ones
-								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
-							}
-						} else {
-							// Execute the appropriate callbacks
-							jqXHR.always( map[ jqXHR.status ] );
-						}
-					}
-					return this;
-				},
-
-				// Cancel the request
-				abort: function( statusText ) {
-					var finalText = statusText || strAbort;
-					if ( transport ) {
-						transport.abort( finalText );
-					}
-					done( 0, finalText );
-					return this;
-				}
-			};
-
-		// Attach deferreds
-		deferred.promise( jqXHR ).complete = completeDeferred.add;
-		jqXHR.success = jqXHR.done;
-		jqXHR.error = jqXHR.fail;
-
-		// Remove hash character (#7531: and string promotion)
-		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
-		// Handle falsy url in the settings object (#10093: consistency with old signature)
-		// We also use the url parameter if available
-		s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
-		// Alias method option to type as per ticket #12004
-		s.type = options.method || options.type || s.method || s.type;
-
-		// Extract dataTypes list
-		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( core_rnotwhite ) || [""];
-
-		// A cross-domain request is in order when we have a protocol:host:port mismatch
-		if ( s.crossDomain == null ) {
-			parts = rurl.exec( s.url.toLowerCase() );
-			s.crossDomain = !!( parts &&
-				( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
-					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
-						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
-			);
-		}
-
-		// Convert data if not already a string
-		if ( s.data && s.processData && typeof s.data !== "string" ) {
-			s.data = jQuery.param( s.data, s.traditional );
-		}
-
-		// Apply prefilters
-		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
-		// If request was aborted inside a prefilter, stop there
-		if ( state === 2 ) {
-			return jqXHR;
-		}
-
-		// We can fire global events as of now if asked to
-		fireGlobals = s.global;
-
-		// Watch for a new set of requests
-		if ( fireGlobals && jQuery.active++ === 0 ) {
-			jQuery.event.trigger("ajaxStart");
-		}
-
-		// Uppercase the type
-		s.type = s.type.toUpperCase();
-
-		// Determine if request has content
-		s.hasContent = !rnoContent.test( s.type );
-
-		// Save the URL in case we're toying with the If-Modified-Since
-		// and/or If-None-Match header later on
-		cacheURL = s.url;
-
-		// More options handling for requests with no content
-		if ( !s.hasContent ) {
-
-			// If data is available, append data to url
-			if ( s.data ) {
-				cacheURL = ( s.url += ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
-				// #9682: remove data so that it's not used in an eventual retry
-				delete s.data;
-			}
-
-			// Add anti-cache in url if needed
-			if ( s.cache === false ) {
-				s.url = rts.test( cacheURL ) ?
-
-					// If there is already a '_' parameter, set its value
-					cacheURL.replace( rts, "$1_=" + ajax_nonce++ ) :
-
-					// Otherwise add one to the end
-					cacheURL + ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ajax_nonce++;
-			}
-		}
-
-		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-		if ( s.ifModified ) {
-			if ( jQuery.lastModified[ cacheURL ] ) {
-				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
-			}
-			if ( jQuery.etag[ cacheURL ] ) {
-				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
-			}
-		}
-
-		// Set the correct header, if data is being sent
-		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
-			jqXHR.setRequestHeader( "Content-Type", s.contentType );
-		}
-
-		// Set the Accepts header for the server, depending on the dataType
-		jqXHR.setRequestHeader(
-			"Accept",
-			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
-				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
-				s.accepts[ "*" ]
-		);
-
-		// Check for headers option
-		for ( i in s.headers ) {
-			jqXHR.setRequestHeader( i, s.headers[ i ] );
-		}
-
-		// Allow custom headers/mimetypes and early abort
-		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-			// Abort if not done already and return
-			return jqXHR.abort();
-		}
-
-		// aborting is no longer a cancellation
-		strAbort = "abort";
-
-		// Install callbacks on deferreds
-		for ( i in { success: 1, error: 1, complete: 1 } ) {
-			jqXHR[ i ]( s[ i ] );
-		}
-
-		// Get transport
-		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
-		// If no transport, we auto-abort
-		if ( !transport ) {
-			done( -1, "No Transport" );
-		} else {
-			jqXHR.readyState = 1;
-
-			// Send global event
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
-			}
-			// Timeout
-			if ( s.async && s.timeout > 0 ) {
-				timeoutTimer = setTimeout(function() {
-					jqXHR.abort("timeout");
-				}, s.timeout );
-			}
-
-			try {
-				state = 1;
-				transport.send( requestHeaders, done );
-			} catch ( e ) {
-				// Propagate exception as error if not done
-				if ( state < 2 ) {
-					done( -1, e );
-				// Simply rethrow otherwise
-				} else {
-					throw e;
-				}
-			}
-		}
-
-		// Callback for when everything is done
-		function done( status, nativeStatusText, responses, headers ) {
-			var isSuccess, success, error, response, modified,
-				statusText = nativeStatusText;
-
-			// Called once
-			if ( state === 2 ) {
-				return;
-			}
-
-			// State is "done" now
-			state = 2;
-
-			// Clear timeout if it exists
-			if ( timeoutTimer ) {
-				clearTimeout( timeoutTimer );
-			}
-
-			// Dereference transport for early garbage collection
-			// (no matter how long the jqXHR object will be used)
-			transport = undefined;
-
-			// Cache response headers
-			responseHeadersString = headers || "";
-
-			// Set readyState
-			jqXHR.readyState = status > 0 ? 4 : 0;
-
-			// Determine if successful
-			isSuccess = status >= 200 && status < 300 || status === 304;
-
-			// Get response data
-			if ( responses ) {
-				response = ajaxHandleResponses( s, jqXHR, responses );
-			}
-
-			// Convert no matter what (that way responseXXX fields are always set)
-			response = ajaxConvert( s, response, jqXHR, isSuccess );
-
-			// If successful, handle type chaining
-			if ( isSuccess ) {
-
-				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-				if ( s.ifModified ) {
-					modified = jqXHR.getResponseHeader("Last-Modified");
-					if ( modified ) {
-						jQuery.lastModified[ cacheURL ] = modified;
-					}
-					modified = jqXHR.getResponseHeader("etag");
-					if ( modified ) {
-						jQuery.etag[ cacheURL ] = modified;
-					}
-				}
-
-				// if no content
-				if ( status === 204 || s.type === "HEAD" ) {
-					statusText = "nocontent";
-
-				// if not modified
-				} else if ( status === 304 ) {
-					statusText = "notmodified";
-
-				// If we have data, let's convert it
-				} else {
-					statusText = response.state;
-					success = response.data;
-					error = response.error;
-					isSuccess = !error;
-				}
-			} else {
-				// We extract error from statusText
-				// then normalize statusText and status for non-aborts
-				error = statusText;
-				if ( status || !statusText ) {
-					statusText = "error";
-					if ( status < 0 ) {
-						status = 0;
-					}
-				}
-			}
-
-			// Set data for the fake xhr object
-			jqXHR.status = status;
-			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
-
-			// Success/Error
-			if ( isSuccess ) {
-				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
-			} else {
-				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
-			}
-
-			// Status-dependent callbacks
-			jqXHR.statusCode( statusCode );
-			statusCode = undefined;
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
-					[ jqXHR, s, isSuccess ? success : error ] );
-			}
-
-			// Complete
-			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
-				// Handle the global AJAX counter
-				if ( !( --jQuery.active ) ) {
-					jQuery.event.trigger("ajaxStop");
-				}
-			}
-		}
-
-		return jqXHR;
-	},
-
-	getJSON: function( url, data, callback ) {
-		return jQuery.get( url, data, callback, "json" );
-	},
-
-	getScript: function( url, callback ) {
-		return jQuery.get( url, undefined, callback, "script" );
-	}
-});
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
-	jQuery[ method ] = function( url, data, callback, type ) {
-		// shift arguments if data argument was omitted
-		if ( jQuery.isFunction( data ) ) {
-			type = type || callback;
-			callback = data;
-			data = undefined;
-		}
-
-		return jQuery.ajax({
-			url: url,
-			type: method,
-			dataType: type,
-			data: data,
-			success: callback
-		});
-	};
-});
-
-/* Handles responses to an ajax request:
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-	var firstDataType, ct, finalDataType, type,
-		contents = s.contents,
-		dataTypes = s.dataTypes;
-
-	// Remove auto dataType and get content-type in the process
-	while( dataTypes[ 0 ] === "*" ) {
-		dataTypes.shift();
-		if ( ct === undefined ) {
-			ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
-		}
-	}
-
-	// Check if we're dealing with a known content-type
-	if ( ct ) {
-		for ( type in contents ) {
-			if ( contents[ type ] && contents[ type ].test( ct ) ) {
-				dataTypes.unshift( type );
-				break;
-			}
-		}
-	}
-
-	// Check to see if we have a response for the expected dataType
-	if ( dataTypes[ 0 ] in responses ) {
-		finalDataType = dataTypes[ 0 ];
-	} else {
-		// Try convertible dataTypes
-		for ( type in responses ) {
-			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
-				finalDataType = type;
-				break;
-			}
-			if ( !firstDataType ) {
-				firstDataType = type;
-			}
-		}
-		// Or just use first one
-		finalDataType = finalDataType || firstDataType;
-	}
-
-	// If we found a dataType
-	// We add the dataType to the list if needed
-	// and return the corresponding response
-	if ( finalDataType ) {
-		if ( finalDataType !== dataTypes[ 0 ] ) {
-			dataTypes.unshift( finalDataType );
-		}
-		return responses[ finalDataType ];
-	}
-}
-
-/* Chain conversions given the request and the original response
- * Also sets the responseXXX fields on the jqXHR instance
- */
-function ajaxConvert( s, response, jqXHR, isSuccess ) {
-	var conv2, current, conv, tmp, prev,
-		converters = {},
-		// Work with a copy of dataTypes in case we need to modify it for conversion
-		dataTypes = s.dataTypes.slice();
-
-	// Create converters map with lowercased keys
-	if ( dataTypes[ 1 ] ) {
-		for ( conv in s.converters ) {
-			converters[ conv.toLowerCase() ] = s.converters[ conv ];
-		}
-	}
-
-	current = dataTypes.shift();
-
-	// Convert to each sequential dataType
-	while ( current ) {
-
-		if ( s.responseFields[ current ] ) {
-			jqXHR[ s.responseFields[ current ] ] = response;
-		}
-
-		// Apply the dataFilter if provided
-		if ( !prev && isSuccess && s.dataFilter ) {
-			response = s.dataFilter( response, s.dataType );
-		}
-
-		prev = current;
-		current = dataTypes.shift();
-
-		if ( current ) {
-
-			// There's only work to do if current dataType is non-auto
-			if ( current === "*" ) {
-
-				current = prev;
-
-			// Convert response if prev dataType is non-auto and differs from current
-			} else if ( prev !== "*" && prev !== current ) {
-
-				// Seek a direct converter
-				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
-
-				// If none found, seek a pair
-				if ( !conv ) {
-					for ( conv2 in converters ) {
-
-						// If conv2 outputs current
-						tmp = conv2.split( " " );
-						if ( tmp[ 1 ] === current ) {
-
-							// If prev can be converted to accepted input
-							conv = converters[ prev + " " + tmp[ 0 ] ] ||
-								converters[ "* " + tmp[ 0 ] ];
-							if ( conv ) {
-								// Condense equivalence converters
-								if ( conv === true ) {
-									conv = converters[ conv2 ];
-
-								// Otherwise, insert the intermediate dataType
-								} else if ( converters[ conv2 ] !== true ) {
-									current = tmp[ 0 ];
-									dataTypes.unshift( tmp[ 1 ] );
-								}
-								break;
-							}
-						}
-					}
-				}
-
-				// Apply converter (if not an equivalence)
-				if ( conv !== true ) {
-
-					// Unless errors are allowed to bubble, catch and return them
-					if ( conv && s[ "throws" ] ) {
-						response = conv( response );
-					} else {
-						try {
-							response = conv( response );
-						} catch ( e ) {
-							return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
-						}
-					}
-				}
-			}
-		}
-	}
-
-	return { state: "success", data: response };
-}
-// Install script dataType
-jQuery.ajaxSetup({
-	accepts: {
-		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
-	},
-	contents: {
-		script: /(?:java|ecma)script/
-	},
-	converters: {
-		"text script": function( text ) {
-			jQuery.globalEval( text );
-			return text;
-		}
-	}
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
-	if ( s.cache === undefined ) {
-		s.cache = false;
-	}
-	if ( s.crossDomain ) {
-		s.type = "GET";
-		s.global = false;
-	}
-});
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
-	// This transport only deals with cross domain requests
-	if ( s.crossDomain ) {
-
-		var script,
-			head = document.head || jQuery("head")[0] || document.documentElement;
-
-		return {
-
-			send: function( _, callback ) {
-
-				script = document.createElement("script");
-
-				script.async = true;
-
-				if ( s.scriptCharset ) {
-					script.charset = s.scriptCharset;
-				}
-
-				script.src = s.url;
-
-				// Attach handlers for all browsers
-				script.onload = script.onreadystatechange = function( _, isAbort ) {
-
-					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
-						// Handle memory leak in IE
-						script.onload = script.onreadystatechange = null;
-
-						// Remove the script
-						if ( script.parentNode ) {
-							script.parentNode.removeChild( script );
-						}
-
-						// Dereference the script
-						script = null;
-
-						// Callback if not abort
-						if ( !isAbort ) {
-							callback( 200, "success" );
-						}
-					}
-				};
-
-				// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
-				// Use native DOM manipulation to avoid our domManip AJAX trickery
-				head.insertBefore( script, head.firstChild );
-			},
-
-			abort: function() {
-				if ( script ) {
-					script.onload( undefined, true );
-				}
-			}
-		};
-	}
-});
-var oldCallbacks = [],
-	rjsonp = /(=)\?(?=&|$)|\?\?/;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
-	jsonp: "callback",
-	jsonpCallback: function() {
-		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) );
-		this[ callback ] = true;
-		return callback;
-	}
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
-	var callbackName, overwritten, responseContainer,
-		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
-			"url" :
-			typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
-		);
-
-	// Handle iff the expected data type is "jsonp" or we have a parameter to set
-	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
-
-		// Get callback name, remembering preexisting value associated with it
-		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
-			s.jsonpCallback() :
-			s.jsonpCallback;
-
-		// Insert callback into url or form data
-		if ( jsonProp ) {
-			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
-		} else if ( s.jsonp !== false ) {
-			s.url += ( ajax_rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
-		}
-
-		// Use data converter to retrieve json after script execution
-		s.converters["script json"] = function() {
-			if ( !responseContainer ) {
-				jQuery.error( callbackName + " was not called" );
-			}
-			return responseContainer[ 0 ];
-		};
-
-		// force json dataType
-		s.dataTypes[ 0 ] = "json";
-
-		// Install callback
-		overwritten = window[ callbackName ];
-		window[ callbackName ] = function() {
-			responseContainer = arguments;
-		};
-
-		// Clean-up function (fires after converters)
-		jqXHR.always(function() {
-			// Restore preexisting value
-			window[ callbackName ] = overwritten;
-
-			// Save back as free
-			if ( s[ callbackName ] ) {
-				// make sure that re-using the options doesn't screw things around
-				s.jsonpCallback = originalSettings.jsonpCallback;
-
-				// save the callback name for future use
-				oldCallbacks.push( callbackName );
-			}
-
-			// Call if it was a function and we have a response
-			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
-				overwritten( responseContainer[ 0 ] );
-			}
-
-			responseContainer = overwritten = undefined;
-		});
-
-		// Delegate to script
-		return "script";
-	}
-});
-var xhrCallbacks, xhrSupported,
-	xhrId = 0,
-	// #5280: Internet Explorer will keep connections alive if we don't abort on unload
-	xhrOnUnloadAbort = window.ActiveXObject && function() {
-		// Abort all pending requests
-		var key;
-		for ( key in xhrCallbacks ) {
-			xhrCallbacks[ key ]( undefined, true );
-		}
-	};
-
-// Functions to create xhrs
-function createStandardXHR() {
-	try {
-		return new window.XMLHttpRequest();
-	} catch( e ) {}
-}
-
-function createActiveXHR() {
-	try {
-		return new window.ActiveXObject("Microsoft.XMLHTTP");
-	} catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
-	/* Microsoft failed to properly
-	 * implement the XMLHttpRequest in IE7 (can't request local files),
-	 * so we use the ActiveXObject when it is available
-	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
-	 * we need a fallback.
-	 */
-	function() {
-		return !this.isLocal && createStandardXHR() || createActiveXHR();
-	} :
-	// For all other browsers, use the standard XMLHttpRequest object
-	createStandardXHR;
-
-// Determine support properties
-xhrSupported = jQuery.ajaxSettings.xhr();
-jQuery.support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
-xhrSupported = jQuery.support.ajax = !!xhrSupported;
-
-// Create transport if the browser can provide an xhr
-if ( xhrSupported ) {
-
-	jQuery.ajaxTransport(function( s ) {
-		// Cross domain only allowed if supported through XMLHttpRequest
-		if ( !s.crossDomain || jQuery.support.cors ) {
-
-			var callback;
-
-			return {
-				send: function( headers, complete ) {
-
-					// Get a new xhr
-					var handle, i,
-						xhr = s.xhr();
-
-					// Open the socket
-					// Passing null username, generates a login popup on Opera (#2865)
-					if ( s.username ) {
-						xhr.open( s.type, s.url, s.async, s.username, s.password );
-					} else {
-						xhr.open( s.type, s.url, s.async );
-					}
-
-					// Apply custom fields if provided
-					if ( s.xhrFields ) {
-						for ( i in s.xhrFields ) {
-							xhr[ i ] = s.xhrFields[ i ];
-						}
-					}
-
-					// Override mime type if needed
-					if ( s.mimeType && xhr.overrideMimeType ) {
-						xhr.overrideMimeType( s.mimeType );
-					}
-
-					// X-Requested-With header
-					// For cross-domain requests, seeing as conditions for a preflight are
-					// akin to a jigsaw puzzle, we simply never set it to be sure.
-					// (it can always be set on a per-request basis or even using ajaxSetup)
-					// For same-domain requests, won't change header if already provided.
-					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
-						headers["X-Requested-With"] = "XMLHttpRequest";
-					}
-
-					// Need an extra try/catch for cross domain requests in Firefox 3
-					try {
-						for ( i in headers ) {
-							xhr.setRequestHeader( i, headers[ i ] );
-						}
-					} catch( err ) {}
-
-					// Do send the request
-					// This may raise an exception which is actually
-					// handled in jQuery.ajax (so no try/catch here)
-					xhr.send( ( s.hasContent && s.data ) || null );
-
-					// Listener
-					callback = function( _, isAbort ) {
-						var status, responseHeaders, statusText, responses;
-
-						// Firefox throws exceptions when accessing properties
-						// of an xhr when a network error occurred
-						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
-						try {
-
-							// Was never called and is aborted or complete
-							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
-								// Only called once
-								callback = undefined;
-
-								// Do not keep as active anymore
-								if ( handle ) {
-									xhr.onreadystatechange = jQuery.noop;
-									if ( xhrOnUnloadAbort ) {
-										delete xhrCallbacks[ handle ];
-									}
-								}
-
-								// If it's an abort
-								if ( isAbort ) {
-									// Abort it manually if needed
-									if ( xhr.readyState !== 4 ) {
-										xhr.abort();
-									}
-								} else {
-									responses = {};
-									status = xhr.status;
-									responseHeaders = xhr.getAllResponseHeaders();
-
-									// When requesting binary data, IE6-9 will throw an exception
-									// on any attempt to access responseText (#11426)
-									if ( typeof xhr.responseText === "string" ) {
-										responses.text = xhr.responseText;
-									}
-
-									// Firefox throws an exception when accessing
-									// statusText for faulty cross-domain requests
-									try {
-										statusText = xhr.statusText;
-									} catch( e ) {
-										// We normalize with Webkit giving an empty statusText
-										statusText = "";
-									}
-
-									// Filter status for non standard behaviors
-
-									// If the request is local and we have data: assume a success
-									// (success with no data won't get notified, that's the best we
-									// can do given current implementations)
-									if ( !status && s.isLocal && !s.crossDomain ) {
-										status = responses.text ? 200 : 404;
-									// IE - #1450: sometimes returns 1223 when it should be 204
-									} else if ( status === 1223 ) {
-										status = 204;
-									}
-								}
-							}
-						} catch( firefoxAccessException ) {
-							if ( !isAbort ) {
-								complete( -1, firefoxAccessException );
-							}
-						}
-
-						// Call complete if needed
-						if ( responses ) {
-							complete( status, statusText, responses, responseHeaders );
-						}
-					};
-
-					if ( !s.async ) {
-						// if we're in sync mode we fire the callback
-						callback();
-					} else if ( xhr.readyState === 4 ) {
-						// (IE6 & IE7) if it's in cache and has been
-						// retrieved directly we need to fire the callback
-						setTimeout( callback );
-					} else {
-						handle = ++xhrId;
-						if ( xhrOnUnloadAbort ) {
-							// Create the active xhrs callbacks list if needed
-							// and attach the unload handler
-							if ( !xhrCallbacks ) {
-								xhrCallbacks = {};
-								jQuery( window ).unload( xhrOnUnloadAbort );
-							}
-							// Add to list of active xhrs callbacks
-							xhrCallbacks[ handle ] = callback;
-						}
-						xhr.onreadystatechange = callback;
-					}
-				},
-
-				abort: function() {
-					if ( callback ) {
-						callback( undefined, true );
-					}
-				}
-			};
-		}
-	});
-}
-var fxNow, timerId,
-	rfxtypes = /^(?:toggle|show|hide)$/,
-	rfxnum = new RegExp( "^(?:([+-])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
-	rrun = /queueHooks$/,
-	animationPrefilters = [ defaultPrefilter ],
-	tweeners = {
-		"*": [function( prop, value ) {
-			var tween = this.createTween( prop, value ),
-				target = tween.cur(),
-				parts = rfxnum.exec( value ),
-				unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
-
-				// Starting value computation is required for potential unit mismatches
-				start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
-					rfxnum.exec( jQuery.css( tween.elem, prop ) ),
-				scale = 1,
-				maxIterations = 20;
-
-			if ( start && start[ 3 ] !== unit ) {
-				// Trust units reported by jQuery.css
-				unit = unit || start[ 3 ];
-
-				// Make sure we update the tween properties later on
-				parts = parts || [];
-
-				// Iteratively approximate from a nonzero starting point
-				start = +target || 1;
-
-				do {
-					// If previous iteration zeroed out, double until we get *something*
-					// Use a string for doubling factor so we don't accidentally see scale as unchanged below
-					scale = scale || ".5";
-
-					// Adjust and apply
-					start = start / scale;
-					jQuery.style( tween.elem, prop, start + unit );
-
-				// Update scale, tolerating zero or NaN from tween.cur()
-				// And breaking the loop if scale is unchanged or perfect, or if we've just had enough
-				} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
-			}
-
-			// Update tween properties
-			if ( parts ) {
-				start = tween.start = +start || +target || 0;
-				tween.unit = unit;
-				// If a +=/-= token was provided, we're doing a relative animation
-				tween.end = parts[ 1 ] ?
-					start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
-					+parts[ 2 ];
-			}
-
-			return tween;
-		}]
-	};
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
-	setTimeout(function() {
-		fxNow = undefined;
-	});
-	return ( fxNow = jQuery.now() );
-}
-
-function createTween( value, prop, animation ) {
-	var tween,
-		collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
-		index = 0,
-		length = collection.length;
-	for ( ; index < length; index++ ) {
-		if ( (tween = collection[ index ].call( animation, prop, value )) ) {
-
-			// we're done with this property
-			return tween;
-		}
-	}
-}
-
-function Animation( elem, properties, options ) {
-	var result,
-		stopped,
-		index = 0,
-		length = animationPrefilters.length,
-		deferred = jQuery.Deferred().always( function() {
-			// don't match elem in the :animated selector
-			delete tick.elem;
-		}),
-		tick = function() {
-			if ( stopped ) {
-				return false;
-			}
-			var currentTime = fxNow || createFxNow(),
-				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
-				// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
-				temp = remaining / animation.duration || 0,
-				percent = 1 - temp,
-				index = 0,
-				length = animation.tweens.length;
-
-			for ( ; index < length ; index++ ) {
-				animation.tweens[ index ].run( percent );
-			}
-
-			deferred.notifyWith( elem, [ animation, percent, remaining ]);
-
-			if ( percent < 1 && length ) {
-				return remaining;
-			} else {
-				deferred.resolveWith( elem, [ animation ] );
-				return false;
-			}
-		},
-		animation = deferred.promise({
-			elem: elem,
-			props: jQuery.extend( {}, properties ),
-			opts: jQuery.extend( true, { specialEasing: {} }, options ),
-			originalProperties: properties,
-			originalOptions: options,
-			startTime: fxNow || createFxNow(),
-			duration: options.duration,
-			tweens: [],
-			createTween: function( prop, end ) {
-				var tween = jQuery.Tween( elem, animation.opts, prop, end,
-						animation.opts.specialEasing[ prop ] || animation.opts.easing );
-				animation.tweens.push( tween );
-				return tween;
-			},
-			stop: function( gotoEnd ) {
-				var index = 0,
-					// if we are going to the end, we want to run all the tweens
-					// otherwise we skip this part
-					length = gotoEnd ? animation.tweens.length : 0;
-				if ( stopped ) {
-					return this;
-				}
-				stopped = true;
-				for ( ; index < length ; index++ ) {
-					animation.tweens[ index ].run( 1 );
-				}
-
-				// resolve when we played the last frame
-				// otherwise, reject
-				if ( gotoEnd ) {
-					deferred.resolveWith( elem, [ animation, gotoEnd ] );
-				} else {
-					deferred.rejectWith( elem, [ animation, gotoEnd ] );
-				}
-				return this;
-			}
-		}),
-		props = animation.props;
-
-	propFilter( props, animation.opts.specialEasing );
-
-	for ( ; index < length ; index++ ) {
-		result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
-		if ( result ) {
-			return result;
-		}
-	}
-
-	jQuery.map( props, createTween, animation );
-
-	if ( jQuery.isFunction( animation.opts.start ) ) {
-		animation.opts.start.call( elem, animation );
-	}
-
-	jQuery.fx.timer(
-		jQuery.extend( tick, {
-			elem: elem,
-			anim: animation,
-			queue: animation.opts.queue
-		})
-	);
-
-	// attach callbacks from options
-	return animation.progress( animation.opts.progress )
-		.done( animation.opts.done, animation.opts.complete )
-		.fail( animation.opts.fail )
-		.always( animation.opts.always );
-}
-
-function propFilter( props, specialEasing ) {
-	var index, name, easing, value, hooks;
-
-	// camelCase, specialEasing and expand cssHook pass
-	for ( index in props ) {
-		name = jQuery.camelCase( index );
-		easing = specialEasing[ name ];
-		value = props[ index ];
-		if ( jQuery.isArray( value ) ) {
-			easing = value[ 1 ];
-			value = props[ index ] = value[ 0 ];
-		}
-
-		if ( index !== name ) {
-			props[ name ] = value;
-			delete props[ index ];
-		}
-
-		hooks = jQuery.cssHooks[ name ];
-		if ( hooks && "expand" in hooks ) {
-			value = hooks.expand( value );
-			delete props[ name ];
-
-			// not quite $.extend, this wont overwrite keys already present.
-			// also - reusing 'index' from above because we have the correct "name"
-			for ( index in value ) {
-				if ( !( index in props ) ) {
-					props[ index ] = value[ index ];
-					specialEasing[ index ] = easing;
-				}
-			}
-		} else {
-			specialEasing[ name ] = easing;
-		}
-	}
-}
-
-jQuery.Animation = jQuery.extend( Animation, {
-
-	tweener: function( props, callback ) {
-		if ( jQuery.isFunction( props ) ) {
-			callback = props;
-			props = [ "*" ];
-		} else {
-			props = props.split(" ");
-		}
-
-		var prop,
-			index = 0,
-			length = props.length;
-
-		for ( ; index < length ; index++ ) {
-			prop = props[ index ];
-			tweeners[ prop ] = tweeners[ prop ] || [];
-			tweeners[ prop ].unshift( callback );
-		}
-	},
-
-	prefilter: function( callback, prepend ) {
-		if ( prepend ) {
-			animationPrefilters.unshift( callback );
-		} else {
-			animationPrefilters.push( callback );
-		}
-	}
-});
-
-function defaultPrefilter( elem, props, opts ) {
-	/* jshint validthis: true */
-	var prop, value, toggle, tween, hooks, oldfire,
-		anim = this,
-		orig = {},
-		style = elem.style,
-		hidden = elem.nodeType && isHidden( elem ),
-		dataShow = jQuery._data( elem, "fxshow" );
-
-	// handle queue: false promises
-	if ( !opts.queue ) {
-		hooks = jQuery._queueHooks( elem, "fx" );
-		if ( hooks.unqueued == null ) {
-			hooks.unqueued = 0;
-			oldfire = hooks.empty.fire;
-			hooks.empty.fire = function() {
-				if ( !hooks.unqueued ) {
-					oldfire();
-				}
-			};
-		}
-		hooks.unqueued++;
-
-		anim.always(function() {
-			// doing this makes sure that the complete handler will be called
-			// before this completes
-			anim.always(function() {
-				hooks.unqueued--;
-				if ( !jQuery.queue( elem, "fx" ).length ) {
-					hooks.empty.fire();
-				}
-			});
-		});
-	}
-
-	// height/width overflow pass
-	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
-		// Make sure that nothing sneaks out
-		// Record all 3 overflow attributes because IE does not
-		// change the overflow attribute when overflowX and
-		// overflowY are set to the same value
-		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
-
-		// Set display property to inline-block for height/width
-		// animations on inline elements that are having width/height animated
-		if ( jQuery.css( elem, "display" ) === "inline" &&
-				jQuery.css( elem, "float" ) === "none" ) {
-
-			// inline-level elements accept inline-block;
-			// block-level elements need to be inline with layout
-			if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
-				style.display = "inline-block";
-
-			} else {
-				style.zoom = 1;
-			}
-		}
-	}
-
-	if ( opts.overflow ) {
-		style.overflow = "hidden";
-		if ( !jQuery.support.shrinkWrapBlocks ) {
-			anim.always(function() {
-				style.overflow = opts.overflow[ 0 ];
-				style.overflowX = opts.overflow[ 1 ];
-				style.overflowY = opts.overflow[ 2 ];
-			});
-		}
-	}
-
-
-	// show/hide pass
-	for ( prop in props ) {
-		value = props[ prop ];
-		if ( rfxtypes.exec( value ) ) {
-			delete props[ prop ];
-			toggle = toggle || value === "toggle";
-			if ( value === ( hidden ? "hide" : "show" ) ) {
-				continue;
-			}
-			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
-		}
-	}
-
-	if ( !jQuery.isEmptyObject( orig ) ) {
-		if ( dataShow ) {
-			if ( "hidden" in dataShow ) {
-				hidden = dataShow.hidden;
-			}
-		} else {
-			dataShow = jQuery._data( elem, "fxshow", {} );
-		}
-
-		// store state if its toggle - enables .stop().toggle() to "reverse"
-		if ( toggle ) {
-			dataShow.hidden = !hidden;
-		}
-		if ( hidden ) {
-			jQuery( elem ).show();
-		} else {
-			anim.done(function() {
-				jQuery( elem ).hide();
-			});
-		}
-		anim.done(function() {
-			var prop;
-			jQuery._removeData( elem, "fxshow" );
-			for ( prop in orig ) {
-				jQuery.style( elem, prop, orig[ prop ] );
-			}
-		});
-		for ( prop in orig ) {
-			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
-
-			if ( !( prop in dataShow ) ) {
-				dataShow[ prop ] = tween.start;
-				if ( hidden ) {
-					tween.end = tween.start;
-					tween.start = prop === "width" || prop === "height" ? 1 : 0;
-				}
-			}
-		}
-	}
-}
-
-function Tween( elem, options, prop, end, easing ) {
-	return new Tween.prototype.init( elem, options, prop, end, easing );
-}
-jQuery.Tween = Tween;
-
-Tween.prototype = {
-	constructor: Tween,
-	init: function( elem, options, prop, end, easing, unit ) {
-		this.elem = elem;
-		this.prop = prop;
-		this.easing = easing || "swing";
-		this.options = options;
-		this.start = this.now = this.cur();
-		this.end = end;
-		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
-	},
-	cur: function() {
-		var hooks = Tween.propHooks[ this.prop ];
-
-		return hooks && hooks.get ?
-			hooks.get( this ) :
-			Tween.propHooks._default.get( this );
-	},
-	run: function( percent ) {
-		var eased,
-			hooks = Tween.propHooks[ this.prop ];
-
-		if ( this.options.duration ) {
-			this.pos = eased = jQuery.easing[ this.easing ](
-				percent, this.options.duration * percent, 0, 1, this.options.duration
-			);
-		} else {
-			this.pos = eased = percent;
-		}
-		this.now = ( this.end - this.start ) * eased + this.start;
-
-		if ( this.options.step ) {
-			this.options.step.call( this.elem, this.now, this );
-		}
-
-		if ( hooks && hooks.set ) {
-			hooks.set( this );
-		} else {
-			Tween.propHooks._default.set( this );
-		}
-		return this;
-	}
-};
-
-Tween.prototype.init.prototype = Tween.prototype;
-
-Tween.propHooks = {
-	_default: {
-		get: function( tween ) {
-			var result;
-
-			if ( tween.elem[ tween.prop ] != null &&
-				(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
-				return tween.elem[ tween.prop ];
-			}
-
-			// passing an empty string as a 3rd parameter to .css will automatically
-			// attempt a parseFloat and fallback to a string if the parse fails
-			// so, simple values such as "10px" are parsed to Float.
-			// complex values such as "rotate(1rad)" are returned as is.
-			result = jQuery.css( tween.elem, tween.prop, "" );
-			// Empty strings, null, undefined and "auto" are converted to 0.
-			return !result || result === "auto" ? 0 : result;
-		},
-		set: function( tween ) {
-			// use step hook for back compat - use cssHook if its there - use .style if its
-			// available and use plain properties where available
-			if ( jQuery.fx.step[ tween.prop ] ) {
-				jQuery.fx.step[ tween.prop ]( tween );
-			} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
-				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
-			} else {
-				tween.elem[ tween.prop ] = tween.now;
-			}
-		}
-	}
-};
-
-// Support: IE <=9
-// Panic based approach to setting things on disconnected nodes
-
-Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
-	set: function( tween ) {
-		if ( tween.elem.nodeType && tween.elem.parentNode ) {
-			tween.elem[ tween.prop ] = tween.now;
-		}
-	}
-};
-
-jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
-	var cssFn = jQuery.fn[ name ];
-	jQuery.fn[ name ] = function( speed, easing, callback ) {
-		return speed == null || typeof speed === "boolean" ?
-			cssFn.apply( this, arguments ) :
-			this.animate( genFx( name, true ), speed, easing, callback );
-	};
-});
-
-jQuery.fn.extend({
-	fadeTo: function( speed, to, easing, callback ) {
-
-		// show any hidden elements after setting opacity to 0
-		return this.filter( isHidden ).css( "opacity", 0 ).show()
-
-			// animate to the value specified
-			.end().animate({ opacity: to }, speed, easing, callback );
-	},
-	animate: function( prop, speed, easing, callback ) {
-		var empty = jQuery.isEmptyObject( prop ),
-			optall = jQuery.speed( speed, easing, callback ),
-			doAnimation = function() {
-				// Operate on a copy of prop so per-property easing won't be lost
-				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
-
-				// Empty animations, or finishing resolves immediately
-				if ( empty || jQuery._data( this, "finish" ) ) {
-					anim.stop( true );
-				}
-			};
-			doAnimation.finish = doAnimation;
-
-		return empty || optall.queue === false ?
-			this.each( doAnimation ) :
-			this.queue( optall.queue, doAnimation );
-	},
-	stop: function( type, clearQueue, gotoEnd ) {
-		var stopQueue = function( hooks ) {
-			var stop = hooks.stop;
-			delete hooks.stop;
-			stop( gotoEnd );
-		};
-
-		if ( typeof type !== "string" ) {
-			gotoEnd = clearQueue;
-			clearQueue = type;
-			type = undefined;
-		}
-		if ( clearQueue && type !== false ) {
-			this.queue( type || "fx", [] );
-		}
-
-		return this.each(function() {
-			var dequeue = true,
-				index = type != null && type + "queueHooks",
-				timers = jQuery.timers,
-				data = jQuery._data( this );
-
-			if ( index ) {
-				if ( data[ index ] && data[ index ].stop ) {
-					stopQueue( data[ index ] );
-				}
-			} else {
-				for ( index in data ) {
-					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
-						stopQueue( data[ index ] );
-					}
-				}
-			}
-
-			for ( index = timers.length; index--; ) {
-				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
-					timers[ index ].anim.stop( gotoEnd );
-					dequeue = false;
-					timers.splice( index, 1 );
-				}
-			}
-
-			// start the next in the queue if the last step wasn't forced
-			// timers currently will call their complete callbacks, which will dequeue
-			// but only if they were gotoEnd
-			if ( dequeue || !gotoEnd ) {
-				jQuery.dequeue( this, type );
-			}
-		});
-	},
-	finish: function( type ) {
-		if ( type !== false ) {
-			type = type || "fx";
-		}
-		return this.each(function() {
-			var index,
-				data = jQuery._data( this ),
-				queue = data[ type + "queue" ],
-				hooks = data[ type + "queueHooks" ],
-				timers = jQuery.timers,
-				length = queue ? queue.length : 0;
-
-			// enable finishing flag on private data
-			data.finish = true;
-
-			// empty the queue first
-			jQuery.queue( this, type, [] );
-
-			if ( hooks && hooks.stop ) {
-				hooks.stop.call( this, true );
-			}
-
-			// look for any active animations, and finish them
-			for ( index = timers.length; index--; ) {
-				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
-					timers[ index ].anim.stop( true );
-					timers.splice( index, 1 );
-				}
-			}
-
-			// look for any animations in the old queue and finish them
-			for ( index = 0; index < length; index++ ) {
-				if ( queue[ index ] && queue[ index ].finish ) {
-					queue[ index ].finish.call( this );
-				}
-			}
-
-			// turn off finishing flag
-			delete data.finish;
-		});
-	}
-});
-
-// Generate parameters to create a standard animation
-function genFx( type, includeWidth ) {
-	var which,
-		attrs = { height: type },
-		i = 0;
-
-	// if we include width, step value is 1 to do all cssExpand values,
-	// if we don't include width, step value is 2 to skip over Left and Right
-	includeWidth = includeWidth? 1 : 0;
-	for( ; i < 4 ; i += 2 - includeWidth ) {
-		which = cssExpand[ i ];
-		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
-	}
-
-	if ( includeWidth ) {
-		attrs.opacity = attrs.width = type;
-	}
-
-	return attrs;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
-	slideDown: genFx("show"),
-	slideUp: genFx("hide"),
-	slideToggle: genFx("toggle"),
-	fadeIn: { opacity: "show" },
-	fadeOut: { opacity: "hide" },
-	fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
-	jQuery.fn[ name ] = function( speed, easing, callback ) {
-		return this.animate( props, speed, easing, callback );
-	};
-});
-
-jQuery.speed = function( speed, easing, fn ) {
-	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
-		complete: fn || !fn && easing ||
-			jQuery.isFunction( speed ) && speed,
-		duration: speed,
-		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
-	};
-
-	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-		opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
-
-	// normalize opt.queue - true/undefined/null -> "fx"
-	if ( opt.queue == null || opt.queue === true ) {
-		opt.queue = "fx";
-	}
-
-	// Queueing
-	opt.old = opt.complete;
-
-	opt.complete = function() {
-		if ( jQuery.isFunction( opt.old ) ) {
-			opt.old.call( this );
-		}
-
-		if ( opt.queue ) {
-			jQuery.dequeue( this, opt.queue );
-		}
-	};
-
-	return opt;
-};
-
-jQuery.easing = {
-	linear: function( p ) {
-		return p;
-	},
-	swing: function( p ) {
-		return 0.5 - Math.cos( p*Math.PI ) / 2;
-	}
-};
-
-jQuery.timers = [];
-jQuery.fx = Tween.prototype.init;
-jQuery.fx.tick = function() {
-	var timer,
-		timers = jQuery.timers,
-		i = 0;
-
-	fxNow = jQuery.now();
-
-	for ( ; i < timers.length; i++ ) {
-		timer = timers[ i ];
-		// Checks the timer has not already been removed
-		if ( !timer() && timers[ i ] === timer ) {
-			timers.splice( i--, 1 );
-		}
-	}
-
-	if ( !timers.length ) {
-		jQuery.fx.stop();
-	}
-	fxNow = undefined;
-};
-
-jQuery.fx.timer = function( timer ) {
-	if ( timer() && jQuery.timers.push( timer ) ) {
-		jQuery.fx.start();
-	}
-};
-
-jQuery.fx.interval = 13;
-
-jQuery.fx.start = function() {
-	if ( !timerId ) {
-		timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
-	}
-};
-
-jQuery.fx.stop = function() {
-	clearInterval( timerId );
-	timerId = null;
-};
-
-jQuery.fx.speeds = {
-	slow: 600,
-	fast: 200,
-	// Default speed
-	_default: 400
-};
-
-// Back Compat <1.8 extension point
-jQuery.fx.step = {};
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.animated = function( elem ) {
-		return jQuery.grep(jQuery.timers, function( fn ) {
-			return elem === fn.elem;
-		}).length;
-	};
-}
-jQuery.fn.offset = function( options ) {
-	if ( arguments.length ) {
-		return options === undefined ?
-			this :
-			this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-	}
-
-	var docElem, win,
-		box = { top: 0, left: 0 },
-		elem = this[ 0 ],
-		doc = elem && elem.ownerDocument;
-
-	if ( !doc ) {
-		return;
-	}
-
-	docElem = doc.documentElement;
-
-	// Make sure it's not a disconnected DOM node
-	if ( !jQuery.contains( docElem, elem ) ) {
-		return box;
-	}
-
-	// If we don't have gBCR, just use 0,0 rather than error
-	// BlackBerry 5, iOS 3 (original iPhone)
-	if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
-		box = elem.getBoundingClientRect();
-	}
-	win = getWindow( doc );
-	return {
-		top: box.top  + ( win.pageYOffset || docElem.scrollTop )  - ( docElem.clientTop  || 0 ),
-		left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
-	};
-};
-
-jQuery.offset = {
-
-	setOffset: function( elem, options, i ) {
-		var position = jQuery.css( elem, "position" );
-
-		// set position first, in-case top/left are set even on static elem
-		if ( position === "static" ) {
-			elem.style.position = "relative";
-		}
-
-		var curElem = jQuery( elem ),
-			curOffset = curElem.offset(),
-			curCSSTop = jQuery.css( elem, "top" ),
-			curCSSLeft = jQuery.css( elem, "left" ),
-			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
-			props = {}, curPosition = {}, curTop, curLeft;
-
-		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
-		if ( calculatePosition ) {
-			curPosition = curElem.position();
-			curTop = curPosition.top;
-			curLeft = curPosition.left;
-		} else {
-			curTop = parseFloat( curCSSTop ) || 0;
-			curLeft = parseFloat( curCSSLeft ) || 0;
-		}
-
-		if ( jQuery.isFunction( options ) ) {
-			options = options.call( elem, i, curOffset );
-		}
-
-		if ( options.top != null ) {
-			props.top = ( options.top - curOffset.top ) + curTop;
-		}
-		if ( options.left != null ) {
-			props.left = ( options.left - curOffset.left ) + curLeft;
-		}
-
-		if ( "using" in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	}
-};
-
-
-jQuery.fn.extend({
-
-	position: function() {
-		if ( !this[ 0 ] ) {
-			return;
-		}
-
-		var offsetParent, offset,
-			parentOffset = { top: 0, left: 0 },
-			elem = this[ 0 ];
-
-		// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
-		if ( jQuery.css( elem, "position" ) === "fixed" ) {
-			// we assume that getBoundingClientRect is available when computed position is fixed
-			offset = elem.getBoundingClientRect();
-		} else {
-			// Get *real* offsetParent
-			offsetParent = this.offsetParent();
-
-			// Get correct offsets
-			offset = this.offset();
-			if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
-				parentOffset = offsetParent.offset();
-			}
-
-			// Add offsetParent borders
-			parentOffset.top  += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
-			parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
-		}
-
-		// Subtract parent offsets and element margins
-		// note: when an element has margin: auto the offsetLeft and marginLeft
-		// are the same in Safari causing offset.left to incorrectly be 0
-		return {
-			top:  offset.top  - parentOffset.top - jQuery.css( elem, "marginTop", true ),
-			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
-		};
-	},
-
-	offsetParent: function() {
-		return this.map(function() {
-			var offsetParent = this.offsetParent || docElem;
-			while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
-				offsetParent = offsetParent.offsetParent;
-			}
-			return offsetParent || docElem;
-		});
-	}
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
-	var top = /Y/.test( prop );
-
-	jQuery.fn[ method ] = function( val ) {
-		return jQuery.access( this, function( elem, method, val ) {
-			var win = getWindow( elem );
-
-			if ( val === undefined ) {
-				return win ? (prop in win) ? win[ prop ] :
-					win.document.documentElement[ method ] :
-					elem[ method ];
-			}
-
-			if ( win ) {
-				win.scrollTo(
-					!top ? val : jQuery( win ).scrollLeft(),
-					top ? val : jQuery( win ).scrollTop()
-				);
-
-			} else {
-				elem[ method ] = val;
-			}
-		}, method, val, arguments.length, null );
-	};
-});
-
-function getWindow( elem ) {
-	return jQuery.isWindow( elem ) ?
-		elem :
-		elem.nodeType === 9 ?
-			elem.defaultView || elem.parentWindow :
-			false;
-}
-// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
-jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
-	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
-		// margin is only for outerHeight, outerWidth
-		jQuery.fn[ funcName ] = function( margin, value ) {
-			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
-				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
-
-			return jQuery.access( this, function( elem, type, value ) {
-				var doc;
-
-				if ( jQuery.isWindow( elem ) ) {
-					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
-					// isn't a whole lot we can do. See pull request at this URL for discussion:
-					// https://github.com/jquery/jquery/pull/764
-					return elem.document.documentElement[ "client" + name ];
-				}
-
-				// Get document width or height
-				if ( elem.nodeType === 9 ) {
-					doc = elem.documentElement;
-
-					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
-					// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
-					return Math.max(
-						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
-						elem.body[ "offset" + name ], doc[ "offset" + name ],
-						doc[ "client" + name ]
-					);
-				}
-
-				return value === undefined ?
-					// Get width or height on the element, requesting but not forcing parseFloat
-					jQuery.css( elem, type, extra ) :
-
-					// Set width or height on the element
-					jQuery.style( elem, type, value, extra );
-			}, type, chainable ? margin : undefined, chainable, null );
-		};
-	});
-});
-// Limit scope pollution from any deprecated API
-// (function() {
-
-// The number of elements contained in the matched element set
-jQuery.fn.size = function() {
-	return this.length;
-};
-
-jQuery.fn.andSelf = jQuery.fn.addBack;
-
-// })();
-if ( typeof module === "object" && module && typeof module.exports === "object" ) {
-	// Expose jQuery as module.exports in loaders that implement the Node
-	// module pattern (including browserify). Do not create the global, since
-	// the user will be storing it themselves locally, and globals are frowned
-	// upon in the Node module world.
-	module.exports = jQuery;
-} else {
-	// Otherwise expose jQuery to the global object as usual
-	window.jQuery = window.$ = jQuery;
-
-	// Register as a named AMD module, since jQuery can be concatenated with other
-	// files that may use define, but not via a proper concatenation script that
-	// understands anonymous AMD modules. A named AMD is safest and most robust
-	// way to register. Lowercase jquery is used because AMD module names are
-	// derived from file names, and jQuery is normally delivered in a lowercase
-	// file name. Do this after creating the global so that if an AMD module wants
-	// to call noConflict to hide this version of jQuery, it will work.
-	if ( typeof define === "function" && define.amd ) {
-		define( "jquery", [], function () { return jQuery; } );
-	}
-}
-
-})( window );
diff --git a/pagure/static/jquery-1.10.2.min.js b/pagure/static/jquery-1.10.2.min.js
deleted file mode 100755
index 29b3a2c..0000000
--- a/pagure/static/jquery-1.10.2.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
-//@ sourceMappingURL=jquery.min.map
-*/
-(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
-}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
-u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.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 contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/pagure/static/jquery-ui-1.12.0.js b/pagure/static/jquery-ui-1.12.0.js
deleted file mode 100644
index 20142e4..0000000
--- a/pagure/static/jquery-ui-1.12.0.js
+++ /dev/null
@@ -1,18686 +0,0 @@
-/*! jQuery UI - v1.12.0 - 2016-07-08
-* http://jqueryui.com
-* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-(function( factory ) {
-	if ( typeof define === "function" && define.amd ) {
-
-		// AMD. Register as an anonymous module.
-		define([ "jquery" ], factory );
-	} else {
-
-		// Browser globals
-		factory( jQuery );
-	}
-}(function( $ ) {
-
-$.ui = $.ui || {};
-
-var version = $.ui.version = "1.12.0";
-
-
-/*!
- * jQuery UI Widget 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Widget
-//>>group: Core
-//>>description: Provides a factory for creating stateful widgets with a common API.
-//>>docs: http://api.jqueryui.com/jQuery.widget/
-//>>demos: http://jqueryui.com/widget/
-
-
-
-var widgetUuid = 0;
-var widgetSlice = Array.prototype.slice;
-
-$.cleanData = ( function( orig ) {
-	return function( elems ) {
-		var events, elem, i;
-		for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
-			try {
-
-				// Only trigger remove when necessary to save time
-				events = $._data( elem, "events" );
-				if ( events && events.remove ) {
-					$( elem ).triggerHandler( "remove" );
-				}
-
-			// Http://bugs.jquery.com/ticket/8235
-			} catch ( e ) {}
-		}
-		orig( elems );
-	};
-} )( $.cleanData );
-
-$.widget = function( name, base, prototype ) {
-	var existingConstructor, constructor, basePrototype;
-
-	// ProxiedPrototype allows the provided prototype to remain unmodified
-	// so that it can be used as a mixin for multiple widgets (#8876)
-	var proxiedPrototype = {};
-
-	var namespace = name.split( "." )[ 0 ];
-	name = name.split( "." )[ 1 ];
-	var fullName = namespace + "-" + name;
-
-	if ( !prototype ) {
-		prototype = base;
-		base = $.Widget;
-	}
-
-	if ( $.isArray( prototype ) ) {
-		prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
-	}
-
-	// Create selector for plugin
-	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
-		return !!$.data( elem, fullName );
-	};
-
-	$[ namespace ] = $[ namespace ] || {};
-	existingConstructor = $[ namespace ][ name ];
-	constructor = $[ namespace ][ name ] = function( options, element ) {
-
-		// Allow instantiation without "new" keyword
-		if ( !this._createWidget ) {
-			return new constructor( options, element );
-		}
-
-		// Allow instantiation without initializing for simple inheritance
-		// must use "new" keyword (the code above always passes args)
-		if ( arguments.length ) {
-			this._createWidget( options, element );
-		}
-	};
-
-	// Extend with the existing constructor to carry over any static properties
-	$.extend( constructor, existingConstructor, {
-		version: prototype.version,
-
-		// Copy the object used to create the prototype in case we need to
-		// redefine the widget later
-		_proto: $.extend( {}, prototype ),
-
-		// Track widgets that inherit from this widget in case this widget is
-		// redefined after a widget inherits from it
-		_childConstructors: []
-	} );
-
-	basePrototype = new base();
-
-	// We need to make the options hash a property directly on the new instance
-	// otherwise we'll modify the options hash on the prototype that we're
-	// inheriting from
-	basePrototype.options = $.widget.extend( {}, basePrototype.options );
-	$.each( prototype, function( prop, value ) {
-		if ( !$.isFunction( value ) ) {
-			proxiedPrototype[ prop ] = value;
-			return;
-		}
-		proxiedPrototype[ prop ] = ( function() {
-			function _super() {
-				return base.prototype[ prop ].apply( this, arguments );
-			}
-
-			function _superApply( args ) {
-				return base.prototype[ prop ].apply( this, args );
-			}
-
-			return function() {
-				var __super = this._super;
-				var __superApply = this._superApply;
-				var returnValue;
-
-				this._super = _super;
-				this._superApply = _superApply;
-
-				returnValue = value.apply( this, arguments );
-
-				this._super = __super;
-				this._superApply = __superApply;
-
-				return returnValue;
-			};
-		} )();
-	} );
-	constructor.prototype = $.widget.extend( basePrototype, {
-
-		// TODO: remove support for widgetEventPrefix
-		// always use the name + a colon as the prefix, e.g., draggable:start
-		// don't prefix for widgets that aren't DOM-based
-		widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
-	}, proxiedPrototype, {
-		constructor: constructor,
-		namespace: namespace,
-		widgetName: name,
-		widgetFullName: fullName
-	} );
-
-	// If this widget is being redefined then we need to find all widgets that
-	// are inheriting from it and redefine all of them so that they inherit from
-	// the new version of this widget. We're essentially trying to replace one
-	// level in the prototype chain.
-	if ( existingConstructor ) {
-		$.each( existingConstructor._childConstructors, function( i, child ) {
-			var childPrototype = child.prototype;
-
-			// Redefine the child widget using the same prototype that was
-			// originally used, but inherit from the new version of the base
-			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
-				child._proto );
-		} );
-
-		// Remove the list of existing child constructors from the old constructor
-		// so the old child constructors can be garbage collected
-		delete existingConstructor._childConstructors;
-	} else {
-		base._childConstructors.push( constructor );
-	}
-
-	$.widget.bridge( name, constructor );
-
-	return constructor;
-};
-
-$.widget.extend = function( target ) {
-	var input = widgetSlice.call( arguments, 1 );
-	var inputIndex = 0;
-	var inputLength = input.length;
-	var key;
-	var value;
-
-	for ( ; inputIndex < inputLength; inputIndex++ ) {
-		for ( key in input[ inputIndex ] ) {
-			value = input[ inputIndex ][ key ];
-			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
-
-				// Clone objects
-				if ( $.isPlainObject( value ) ) {
-					target[ key ] = $.isPlainObject( target[ key ] ) ?
-						$.widget.extend( {}, target[ key ], value ) :
-
-						// Don't extend strings, arrays, etc. with objects
-						$.widget.extend( {}, value );
-
-				// Copy everything else by reference
-				} else {
-					target[ key ] = value;
-				}
-			}
-		}
-	}
-	return target;
-};
-
-$.widget.bridge = function( name, object ) {
-	var fullName = object.prototype.widgetFullName || name;
-	$.fn[ name ] = function( options ) {
-		var isMethodCall = typeof options === "string";
-		var args = widgetSlice.call( arguments, 1 );
-		var returnValue = this;
-
-		if ( isMethodCall ) {
-			this.each( function() {
-				var methodValue;
-				var instance = $.data( this, fullName );
-
-				if ( options === "instance" ) {
-					returnValue = instance;
-					return false;
-				}
-
-				if ( !instance ) {
-					return $.error( "cannot call methods on " + name +
-						" prior to initialization; " +
-						"attempted to call method '" + options + "'" );
-				}
-
-				if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
-					return $.error( "no such method '" + options + "' for " + name +
-						" widget instance" );
-				}
-
-				methodValue = instance[ options ].apply( instance, args );
-
-				if ( methodValue !== instance && methodValue !== undefined ) {
-					returnValue = methodValue && methodValue.jquery ?
-						returnValue.pushStack( methodValue.get() ) :
-						methodValue;
-					return false;
-				}
-			} );
-		} else {
-
-			// Allow multiple hashes to be passed on init
-			if ( args.length ) {
-				options = $.widget.extend.apply( null, [ options ].concat( args ) );
-			}
-
-			this.each( function() {
-				var instance = $.data( this, fullName );
-				if ( instance ) {
-					instance.option( options || {} );
-					if ( instance._init ) {
-						instance._init();
-					}
-				} else {
-					$.data( this, fullName, new object( options, this ) );
-				}
-			} );
-		}
-
-		return returnValue;
-	};
-};
-
-$.Widget = function( /* options, element */ ) {};
-$.Widget._childConstructors = [];
-
-$.Widget.prototype = {
-	widgetName: "widget",
-	widgetEventPrefix: "",
-	defaultElement: "<div>",
-
-	options: {
-		classes: {},
-		disabled: false,
-
-		// Callbacks
-		create: null
-	},
-
-	_createWidget: function( options, element ) {
-		element = $( element || this.defaultElement || this )[ 0 ];
-		this.element = $( element );
-		this.uuid = widgetUuid++;
-		this.eventNamespace = "." + this.widgetName + this.uuid;
-
-		this.bindings = $();
-		this.hoverable = $();
-		this.focusable = $();
-		this.classesElementLookup = {};
-
-		if ( element !== this ) {
-			$.data( element, this.widgetFullName, this );
-			this._on( true, this.element, {
-				remove: function( event ) {
-					if ( event.target === element ) {
-						this.destroy();
-					}
-				}
-			} );
-			this.document = $( element.style ?
-
-				// Element within the document
-				element.ownerDocument :
-
-				// Element is window or document
-				element.document || element );
-			this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
-		}
-
-		this.options = $.widget.extend( {},
-			this.options,
-			this._getCreateOptions(),
-			options );
-
-		this._create();
-
-		if ( this.options.disabled ) {
-			this._setOptionDisabled( this.options.disabled );
-		}
-
-		this._trigger( "create", null, this._getCreateEventData() );
-		this._init();
-	},
-
-	_getCreateOptions: function() {
-		return {};
-	},
-
-	_getCreateEventData: $.noop,
-
-	_create: $.noop,
-
-	_init: $.noop,
-
-	destroy: function() {
-		var that = this;
-
-		this._destroy();
-		$.each( this.classesElementLookup, function( key, value ) {
-			that._removeClass( value, key );
-		} );
-
-		// We can probably remove the unbind calls in 2.0
-		// all event bindings should go through this._on()
-		this.element
-			.off( this.eventNamespace )
-			.removeData( this.widgetFullName );
-		this.widget()
-			.off( this.eventNamespace )
-			.removeAttr( "aria-disabled" );
-
-		// Clean up events and states
-		this.bindings.off( this.eventNamespace );
-	},
-
-	_destroy: $.noop,
-
-	widget: function() {
-		return this.element;
-	},
-
-	option: function( key, value ) {
-		var options = key;
-		var parts;
-		var curOption;
-		var i;
-
-		if ( arguments.length === 0 ) {
-
-			// Don't return a reference to the internal hash
-			return $.widget.extend( {}, this.options );
-		}
-
-		if ( typeof key === "string" ) {
-
-			// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
-			options = {};
-			parts = key.split( "." );
-			key = parts.shift();
-			if ( parts.length ) {
-				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
-				for ( i = 0; i < parts.length - 1; i++ ) {
-					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
-					curOption = curOption[ parts[ i ] ];
-				}
-				key = parts.pop();
-				if ( arguments.length === 1 ) {
-					return curOption[ key ] === undefined ? null : curOption[ key ];
-				}
-				curOption[ key ] = value;
-			} else {
-				if ( arguments.length === 1 ) {
-					return this.options[ key ] === undefined ? null : this.options[ key ];
-				}
-				options[ key ] = value;
-			}
-		}
-
-		this._setOptions( options );
-
-		return this;
-	},
-
-	_setOptions: function( options ) {
-		var key;
-
-		for ( key in options ) {
-			this._setOption( key, options[ key ] );
-		}
-
-		return this;
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "classes" ) {
-			this._setOptionClasses( value );
-		}
-
-		this.options[ key ] = value;
-
-		if ( key === "disabled" ) {
-			this._setOptionDisabled( value );
-		}
-
-		return this;
-	},
-
-	_setOptionClasses: function( value ) {
-		var classKey, elements, currentElements;
-
-		for ( classKey in value ) {
-			currentElements = this.classesElementLookup[ classKey ];
-			if ( value[ classKey ] === this.options.classes[ classKey ] ||
-					!currentElements ||
-					!currentElements.length ) {
-				continue;
-			}
-
-			// We are doing this to create a new jQuery object because the _removeClass() call
-			// on the next line is going to destroy the reference to the current elements being
-			// tracked. We need to save a copy of this collection so that we can add the new classes
-			// below.
-			elements = $( currentElements.get() );
-			this._removeClass( currentElements, classKey );
-
-			// We don't use _addClass() here, because that uses this.options.classes
-			// for generating the string of classes. We want to use the value passed in from
-			// _setOption(), this is the new value of the classes option which was passed to
-			// _setOption(). We pass this value directly to _classes().
-			elements.addClass( this._classes( {
-				element: elements,
-				keys: classKey,
-				classes: value,
-				add: true
-			} ) );
-		}
-	},
-
-	_setOptionDisabled: function( value ) {
-		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
-
-		// If the widget is becoming disabled, then nothing is interactive
-		if ( value ) {
-			this._removeClass( this.hoverable, null, "ui-state-hover" );
-			this._removeClass( this.focusable, null, "ui-state-focus" );
-		}
-	},
-
-	enable: function() {
-		return this._setOptions( { disabled: false } );
-	},
-
-	disable: function() {
-		return this._setOptions( { disabled: true } );
-	},
-
-	_classes: function( options ) {
-		var full = [];
-		var that = this;
-
-		options = $.extend( {
-			element: this.element,
-			classes: this.options.classes || {}
-		}, options );
-
-		function processClassString( classes, checkOption ) {
-			var current, i;
-			for ( i = 0; i < classes.length; i++ ) {
-				current = that.classesElementLookup[ classes[ i ] ] || $();
-				if ( options.add ) {
-					current = $( $.unique( current.get().concat( options.element.get() ) ) );
-				} else {
-					current = $( current.not( options.element ).get() );
-				}
-				that.classesElementLookup[ classes[ i ] ] = current;
-				full.push( classes[ i ] );
-				if ( checkOption && options.classes[ classes[ i ] ] ) {
-					full.push( options.classes[ classes[ i ] ] );
-				}
-			}
-		}
-
-		if ( options.keys ) {
-			processClassString( options.keys.match( /\S+/g ) || [], true );
-		}
-		if ( options.extra ) {
-			processClassString( options.extra.match( /\S+/g ) || [] );
-		}
-
-		return full.join( " " );
-	},
-
-	_removeClass: function( element, keys, extra ) {
-		return this._toggleClass( element, keys, extra, false );
-	},
-
-	_addClass: function( element, keys, extra ) {
-		return this._toggleClass( element, keys, extra, true );
-	},
-
-	_toggleClass: function( element, keys, extra, add ) {
-		add = ( typeof add === "boolean" ) ? add : extra;
-		var shift = ( typeof element === "string" || element === null ),
-			options = {
-				extra: shift ? keys : extra,
-				keys: shift ? element : keys,
-				element: shift ? this.element : element,
-				add: add
-			};
-		options.element.toggleClass( this._classes( options ), add );
-		return this;
-	},
-
-	_on: function( suppressDisabledCheck, element, handlers ) {
-		var delegateElement;
-		var instance = this;
-
-		// No suppressDisabledCheck flag, shuffle arguments
-		if ( typeof suppressDisabledCheck !== "boolean" ) {
-			handlers = element;
-			element = suppressDisabledCheck;
-			suppressDisabledCheck = false;
-		}
-
-		// No element argument, shuffle and use this.element
-		if ( !handlers ) {
-			handlers = element;
-			element = this.element;
-			delegateElement = this.widget();
-		} else {
-			element = delegateElement = $( element );
-			this.bindings = this.bindings.add( element );
-		}
-
-		$.each( handlers, function( event, handler ) {
-			function handlerProxy() {
-
-				// Allow widgets to customize the disabled handling
-				// - disabled as an array instead of boolean
-				// - disabled class as method for disabling individual parts
-				if ( !suppressDisabledCheck &&
-						( instance.options.disabled === true ||
-						$( this ).hasClass( "ui-state-disabled" ) ) ) {
-					return;
-				}
-				return ( typeof handler === "string" ? instance[ handler ] : handler )
-					.apply( instance, arguments );
-			}
-
-			// Copy the guid so direct unbinding works
-			if ( typeof handler !== "string" ) {
-				handlerProxy.guid = handler.guid =
-					handler.guid || handlerProxy.guid || $.guid++;
-			}
-
-			var match = event.match( /^([\w:-]*)\s*(.*)$/ );
-			var eventName = match[ 1 ] + instance.eventNamespace;
-			var selector = match[ 2 ];
-
-			if ( selector ) {
-				delegateElement.on( eventName, selector, handlerProxy );
-			} else {
-				element.on( eventName, handlerProxy );
-			}
-		} );
-	},
-
-	_off: function( element, eventName ) {
-		eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
-			this.eventNamespace;
-		element.off( eventName ).off( eventName );
-
-		// Clear the stack to avoid memory leaks (#10056)
-		this.bindings = $( this.bindings.not( element ).get() );
-		this.focusable = $( this.focusable.not( element ).get() );
-		this.hoverable = $( this.hoverable.not( element ).get() );
-	},
-
-	_delay: function( handler, delay ) {
-		function handlerProxy() {
-			return ( typeof handler === "string" ? instance[ handler ] : handler )
-				.apply( instance, arguments );
-		}
-		var instance = this;
-		return setTimeout( handlerProxy, delay || 0 );
-	},
-
-	_hoverable: function( element ) {
-		this.hoverable = this.hoverable.add( element );
-		this._on( element, {
-			mouseenter: function( event ) {
-				this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
-			},
-			mouseleave: function( event ) {
-				this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
-			}
-		} );
-	},
-
-	_focusable: function( element ) {
-		this.focusable = this.focusable.add( element );
-		this._on( element, {
-			focusin: function( event ) {
-				this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
-			},
-			focusout: function( event ) {
-				this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
-			}
-		} );
-	},
-
-	_trigger: function( type, event, data ) {
-		var prop, orig;
-		var callback = this.options[ type ];
-
-		data = data || {};
-		event = $.Event( event );
-		event.type = ( type === this.widgetEventPrefix ?
-			type :
-			this.widgetEventPrefix + type ).toLowerCase();
-
-		// The original event may come from any element
-		// so we need to reset the target on the new event
-		event.target = this.element[ 0 ];
-
-		// Copy original event properties over to the new event
-		orig = event.originalEvent;
-		if ( orig ) {
-			for ( prop in orig ) {
-				if ( !( prop in event ) ) {
-					event[ prop ] = orig[ prop ];
-				}
-			}
-		}
-
-		this.element.trigger( event, data );
-		return !( $.isFunction( callback ) &&
-			callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
-			event.isDefaultPrevented() );
-	}
-};
-
-$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
-	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
-		if ( typeof options === "string" ) {
-			options = { effect: options };
-		}
-
-		var hasOptions;
-		var effectName = !options ?
-			method :
-			options === true || typeof options === "number" ?
-				defaultEffect :
-				options.effect || defaultEffect;
-
-		options = options || {};
-		if ( typeof options === "number" ) {
-			options = { duration: options };
-		}
-
-		hasOptions = !$.isEmptyObject( options );
-		options.complete = callback;
-
-		if ( options.delay ) {
-			element.delay( options.delay );
-		}
-
-		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
-			element[ method ]( options );
-		} else if ( effectName !== method && element[ effectName ] ) {
-			element[ effectName ]( options.duration, options.easing, callback );
-		} else {
-			element.queue( function( next ) {
-				$( this )[ method ]();
-				if ( callback ) {
-					callback.call( element[ 0 ] );
-				}
-				next();
-			} );
-		}
-	};
-} );
-
-var widget = $.widget;
-
-
-/*!
- * jQuery UI Position 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * http://api.jqueryui.com/position/
- */
-
-//>>label: Position
-//>>group: Core
-//>>description: Positions elements relative to other elements.
-//>>docs: http://api.jqueryui.com/position/
-//>>demos: http://jqueryui.com/position/
-
-
-( function() {
-var cachedScrollbarWidth, supportsOffsetFractions,
-	max = Math.max,
-	abs = Math.abs,
-	round = Math.round,
-	rhorizontal = /left|center|right/,
-	rvertical = /top|center|bottom/,
-	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
-	rposition = /^\w+/,
-	rpercent = /%$/,
-	_position = $.fn.position;
-
-// Support: IE <=9 only
-supportsOffsetFractions = function() {
-	var element = $( "<div>" )
-			.css( "position", "absolute" )
-			.appendTo( "body" )
-			.offset( {
-				top: 1.5,
-				left: 1.5
-			} ),
-		support = element.offset().top === 1.5;
-
-	element.remove();
-
-	supportsOffsetFractions = function() {
-		return support;
-	};
-
-	return support;
-};
-
-function getOffsets( offsets, width, height ) {
-	return [
-		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
-		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
-	];
-}
-
-function parseCss( element, property ) {
-	return parseInt( $.css( element, property ), 10 ) || 0;
-}
-
-function getDimensions( elem ) {
-	var raw = elem[ 0 ];
-	if ( raw.nodeType === 9 ) {
-		return {
-			width: elem.width(),
-			height: elem.height(),
-			offset: { top: 0, left: 0 }
-		};
-	}
-	if ( $.isWindow( raw ) ) {
-		return {
-			width: elem.width(),
-			height: elem.height(),
-			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
-		};
-	}
-	if ( raw.preventDefault ) {
-		return {
-			width: 0,
-			height: 0,
-			offset: { top: raw.pageY, left: raw.pageX }
-		};
-	}
-	return {
-		width: elem.outerWidth(),
-		height: elem.outerHeight(),
-		offset: elem.offset()
-	};
-}
-
-$.position = {
-	scrollbarWidth: function() {
-		if ( cachedScrollbarWidth !== undefined ) {
-			return cachedScrollbarWidth;
-		}
-		var w1, w2,
-			div = $( "<div " +
-				"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" +
-				"<div style='height:100px;width:auto;'></div></div>" ),
-			innerDiv = div.children()[ 0 ];
-
-		$( "body" ).append( div );
-		w1 = innerDiv.offsetWidth;
-		div.css( "overflow", "scroll" );
-
-		w2 = innerDiv.offsetWidth;
-
-		if ( w1 === w2 ) {
-			w2 = div[ 0 ].clientWidth;
-		}
-
-		div.remove();
-
-		return ( cachedScrollbarWidth = w1 - w2 );
-	},
-	getScrollInfo: function( within ) {
-		var overflowX = within.isWindow || within.isDocument ? "" :
-				within.element.css( "overflow-x" ),
-			overflowY = within.isWindow || within.isDocument ? "" :
-				within.element.css( "overflow-y" ),
-			hasOverflowX = overflowX === "scroll" ||
-				( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ),
-			hasOverflowY = overflowY === "scroll" ||
-				( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight );
-		return {
-			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
-			height: hasOverflowX ? $.position.scrollbarWidth() : 0
-		};
-	},
-	getWithinInfo: function( element ) {
-		var withinElement = $( element || window ),
-			isWindow = $.isWindow( withinElement[ 0 ] ),
-			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,
-			hasOffset = !isWindow && !isDocument;
-		return {
-			element: withinElement,
-			isWindow: isWindow,
-			isDocument: isDocument,
-			offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },
-			scrollLeft: withinElement.scrollLeft(),
-			scrollTop: withinElement.scrollTop(),
-			width: withinElement.outerWidth(),
-			height: withinElement.outerHeight()
-		};
-	}
-};
-
-$.fn.position = function( options ) {
-	if ( !options || !options.of ) {
-		return _position.apply( this, arguments );
-	}
-
-	// Make a copy, we don't want to modify arguments
-	options = $.extend( {}, options );
-
-	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
-		target = $( options.of ),
-		within = $.position.getWithinInfo( options.within ),
-		scrollInfo = $.position.getScrollInfo( within ),
-		collision = ( options.collision || "flip" ).split( " " ),
-		offsets = {};
-
-	dimensions = getDimensions( target );
-	if ( target[ 0 ].preventDefault ) {
-
-		// Force left top to allow flipping
-		options.at = "left top";
-	}
-	targetWidth = dimensions.width;
-	targetHeight = dimensions.height;
-	targetOffset = dimensions.offset;
-
-	// Clone to reuse original targetOffset later
-	basePosition = $.extend( {}, targetOffset );
-
-	// Force my and at to have valid horizontal and vertical positions
-	// if a value is missing or invalid, it will be converted to center
-	$.each( [ "my", "at" ], function() {
-		var pos = ( options[ this ] || "" ).split( " " ),
-			horizontalOffset,
-			verticalOffset;
-
-		if ( pos.length === 1 ) {
-			pos = rhorizontal.test( pos[ 0 ] ) ?
-				pos.concat( [ "center" ] ) :
-				rvertical.test( pos[ 0 ] ) ?
-					[ "center" ].concat( pos ) :
-					[ "center", "center" ];
-		}
-		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
-		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
-
-		// Calculate offsets
-		horizontalOffset = roffset.exec( pos[ 0 ] );
-		verticalOffset = roffset.exec( pos[ 1 ] );
-		offsets[ this ] = [
-			horizontalOffset ? horizontalOffset[ 0 ] : 0,
-			verticalOffset ? verticalOffset[ 0 ] : 0
-		];
-
-		// Reduce to just the positions without the offsets
-		options[ this ] = [
-			rposition.exec( pos[ 0 ] )[ 0 ],
-			rposition.exec( pos[ 1 ] )[ 0 ]
-		];
-	} );
-
-	// Normalize collision option
-	if ( collision.length === 1 ) {
-		collision[ 1 ] = collision[ 0 ];
-	}
-
-	if ( options.at[ 0 ] === "right" ) {
-		basePosition.left += targetWidth;
-	} else if ( options.at[ 0 ] === "center" ) {
-		basePosition.left += targetWidth / 2;
-	}
-
-	if ( options.at[ 1 ] === "bottom" ) {
-		basePosition.top += targetHeight;
-	} else if ( options.at[ 1 ] === "center" ) {
-		basePosition.top += targetHeight / 2;
-	}
-
-	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
-	basePosition.left += atOffset[ 0 ];
-	basePosition.top += atOffset[ 1 ];
-
-	return this.each( function() {
-		var collisionPosition, using,
-			elem = $( this ),
-			elemWidth = elem.outerWidth(),
-			elemHeight = elem.outerHeight(),
-			marginLeft = parseCss( this, "marginLeft" ),
-			marginTop = parseCss( this, "marginTop" ),
-			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) +
-				scrollInfo.width,
-			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) +
-				scrollInfo.height,
-			position = $.extend( {}, basePosition ),
-			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
-
-		if ( options.my[ 0 ] === "right" ) {
-			position.left -= elemWidth;
-		} else if ( options.my[ 0 ] === "center" ) {
-			position.left -= elemWidth / 2;
-		}
-
-		if ( options.my[ 1 ] === "bottom" ) {
-			position.top -= elemHeight;
-		} else if ( options.my[ 1 ] === "center" ) {
-			position.top -= elemHeight / 2;
-		}
-
-		position.left += myOffset[ 0 ];
-		position.top += myOffset[ 1 ];
-
-		// If the browser doesn't support fractions, then round for consistent results
-		if ( !supportsOffsetFractions() ) {
-			position.left = round( position.left );
-			position.top = round( position.top );
-		}
-
-		collisionPosition = {
-			marginLeft: marginLeft,
-			marginTop: marginTop
-		};
-
-		$.each( [ "left", "top" ], function( i, dir ) {
-			if ( $.ui.position[ collision[ i ] ] ) {
-				$.ui.position[ collision[ i ] ][ dir ]( position, {
-					targetWidth: targetWidth,
-					targetHeight: targetHeight,
-					elemWidth: elemWidth,
-					elemHeight: elemHeight,
-					collisionPosition: collisionPosition,
-					collisionWidth: collisionWidth,
-					collisionHeight: collisionHeight,
-					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
-					my: options.my,
-					at: options.at,
-					within: within,
-					elem: elem
-				} );
-			}
-		} );
-
-		if ( options.using ) {
-
-			// Adds feedback as second argument to using callback, if present
-			using = function( props ) {
-				var left = targetOffset.left - position.left,
-					right = left + targetWidth - elemWidth,
-					top = targetOffset.top - position.top,
-					bottom = top + targetHeight - elemHeight,
-					feedback = {
-						target: {
-							element: target,
-							left: targetOffset.left,
-							top: targetOffset.top,
-							width: targetWidth,
-							height: targetHeight
-						},
-						element: {
-							element: elem,
-							left: position.left,
-							top: position.top,
-							width: elemWidth,
-							height: elemHeight
-						},
-						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
-						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
-					};
-				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
-					feedback.horizontal = "center";
-				}
-				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
-					feedback.vertical = "middle";
-				}
-				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
-					feedback.important = "horizontal";
-				} else {
-					feedback.important = "vertical";
-				}
-				options.using.call( this, props, feedback );
-			};
-		}
-
-		elem.offset( $.extend( position, { using: using } ) );
-	} );
-};
-
-$.ui.position = {
-	fit: {
-		left: function( position, data ) {
-			var within = data.within,
-				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
-				outerWidth = within.width,
-				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
-				overLeft = withinOffset - collisionPosLeft,
-				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
-				newOverRight;
-
-			// Element is wider than within
-			if ( data.collisionWidth > outerWidth ) {
-
-				// Element is initially over the left side of within
-				if ( overLeft > 0 && overRight <= 0 ) {
-					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth -
-						withinOffset;
-					position.left += overLeft - newOverRight;
-
-				// Element is initially over right side of within
-				} else if ( overRight > 0 && overLeft <= 0 ) {
-					position.left = withinOffset;
-
-				// Element is initially over both left and right sides of within
-				} else {
-					if ( overLeft > overRight ) {
-						position.left = withinOffset + outerWidth - data.collisionWidth;
-					} else {
-						position.left = withinOffset;
-					}
-				}
-
-			// Too far left -> align with left edge
-			} else if ( overLeft > 0 ) {
-				position.left += overLeft;
-
-			// Too far right -> align with right edge
-			} else if ( overRight > 0 ) {
-				position.left -= overRight;
-
-			// Adjust based on position and margin
-			} else {
-				position.left = max( position.left - collisionPosLeft, position.left );
-			}
-		},
-		top: function( position, data ) {
-			var within = data.within,
-				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
-				outerHeight = data.within.height,
-				collisionPosTop = position.top - data.collisionPosition.marginTop,
-				overTop = withinOffset - collisionPosTop,
-				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
-				newOverBottom;
-
-			// Element is taller than within
-			if ( data.collisionHeight > outerHeight ) {
-
-				// Element is initially over the top of within
-				if ( overTop > 0 && overBottom <= 0 ) {
-					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
-						withinOffset;
-					position.top += overTop - newOverBottom;
-
-				// Element is initially over bottom of within
-				} else if ( overBottom > 0 && overTop <= 0 ) {
-					position.top = withinOffset;
-
-				// Element is initially over both top and bottom of within
-				} else {
-					if ( overTop > overBottom ) {
-						position.top = withinOffset + outerHeight - data.collisionHeight;
-					} else {
-						position.top = withinOffset;
-					}
-				}
-
-			// Too far up -> align with top
-			} else if ( overTop > 0 ) {
-				position.top += overTop;
-
-			// Too far down -> align with bottom edge
-			} else if ( overBottom > 0 ) {
-				position.top -= overBottom;
-
-			// Adjust based on position and margin
-			} else {
-				position.top = max( position.top - collisionPosTop, position.top );
-			}
-		}
-	},
-	flip: {
-		left: function( position, data ) {
-			var within = data.within,
-				withinOffset = within.offset.left + within.scrollLeft,
-				outerWidth = within.width,
-				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
-				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
-				overLeft = collisionPosLeft - offsetLeft,
-				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
-				myOffset = data.my[ 0 ] === "left" ?
-					-data.elemWidth :
-					data.my[ 0 ] === "right" ?
-						data.elemWidth :
-						0,
-				atOffset = data.at[ 0 ] === "left" ?
-					data.targetWidth :
-					data.at[ 0 ] === "right" ?
-						-data.targetWidth :
-						0,
-				offset = -2 * data.offset[ 0 ],
-				newOverRight,
-				newOverLeft;
-
-			if ( overLeft < 0 ) {
-				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -
-					outerWidth - withinOffset;
-				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
-					position.left += myOffset + atOffset + offset;
-				}
-			} else if ( overRight > 0 ) {
-				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +
-					atOffset + offset - offsetLeft;
-				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
-					position.left += myOffset + atOffset + offset;
-				}
-			}
-		},
-		top: function( position, data ) {
-			var within = data.within,
-				withinOffset = within.offset.top + within.scrollTop,
-				outerHeight = within.height,
-				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
-				collisionPosTop = position.top - data.collisionPosition.marginTop,
-				overTop = collisionPosTop - offsetTop,
-				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
-				top = data.my[ 1 ] === "top",
-				myOffset = top ?
-					-data.elemHeight :
-					data.my[ 1 ] === "bottom" ?
-						data.elemHeight :
-						0,
-				atOffset = data.at[ 1 ] === "top" ?
-					data.targetHeight :
-					data.at[ 1 ] === "bottom" ?
-						-data.targetHeight :
-						0,
-				offset = -2 * data.offset[ 1 ],
-				newOverTop,
-				newOverBottom;
-			if ( overTop < 0 ) {
-				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -
-					outerHeight - withinOffset;
-				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
-					position.top += myOffset + atOffset + offset;
-				}
-			} else if ( overBottom > 0 ) {
-				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +
-					offset - offsetTop;
-				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
-					position.top += myOffset + atOffset + offset;
-				}
-			}
-		}
-	},
-	flipfit: {
-		left: function() {
-			$.ui.position.flip.left.apply( this, arguments );
-			$.ui.position.fit.left.apply( this, arguments );
-		},
-		top: function() {
-			$.ui.position.flip.top.apply( this, arguments );
-			$.ui.position.fit.top.apply( this, arguments );
-		}
-	}
-};
-
-} )();
-
-var position = $.ui.position;
-
-
-/*!
- * jQuery UI :data 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: :data Selector
-//>>group: Core
-//>>description: Selects elements which have data stored under the specified key.
-//>>docs: http://api.jqueryui.com/data-selector/
-
-
-var data = $.extend( $.expr[ ":" ], {
-	data: $.expr.createPseudo ?
-		$.expr.createPseudo( function( dataName ) {
-			return function( elem ) {
-				return !!$.data( elem, dataName );
-			};
-		} ) :
-
-		// Support: jQuery <1.8
-		function( elem, i, match ) {
-			return !!$.data( elem, match[ 3 ] );
-		}
-} );
-
-/*!
- * jQuery UI Disable Selection 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: disableSelection
-//>>group: Core
-//>>description: Disable selection of text content within the set of matched elements.
-//>>docs: http://api.jqueryui.com/disableSelection/
-
-// This file is deprecated
-
-
-var disableSelection = $.fn.extend( {
-	disableSelection: ( function() {
-		var eventType = "onselectstart" in document.createElement( "div" ) ?
-			"selectstart" :
-			"mousedown";
-
-		return function() {
-			return this.on( eventType + ".ui-disableSelection", function( event ) {
-				event.preventDefault();
-			} );
-		};
-	} )(),
-
-	enableSelection: function() {
-		return this.off( ".ui-disableSelection" );
-	}
-} );
-
-
-/*!
- * jQuery UI Effects 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Effects Core
-//>>group: Effects
-// jscs:disable maximumLineLength
-//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.
-// jscs:enable maximumLineLength
-//>>docs: http://api.jqueryui.com/category/effects-core/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var dataSpace = "ui-effects-",
-	dataSpaceStyle = "ui-effects-style",
-	dataSpaceAnimated = "ui-effects-animated",
-
-	// Create a local jQuery because jQuery Color relies on it and the
-	// global may not exist with AMD and a custom build (#10199)
-	jQuery = $;
-
-$.effects = {
-	effect: {}
-};
-
-/*!
- * jQuery Color Animations v2.1.2
- * https://github.com/jquery/jquery-color
- *
- * Copyright 2014 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- * Date: Wed Jan 16 08:47:09 2013 -0600
- */
-( function( jQuery, undefined ) {
-
-	var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " +
-		"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
-
-	// Plusequals test for += 100 -= 100
-	rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
-
-	// A set of RE's that can match strings and generate color tuples.
-	stringParsers = [ {
-			re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
-			parse: function( execResult ) {
-				return [
-					execResult[ 1 ],
-					execResult[ 2 ],
-					execResult[ 3 ],
-					execResult[ 4 ]
-				];
-			}
-		}, {
-			re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
-			parse: function( execResult ) {
-				return [
-					execResult[ 1 ] * 2.55,
-					execResult[ 2 ] * 2.55,
-					execResult[ 3 ] * 2.55,
-					execResult[ 4 ]
-				];
-			}
-		}, {
-
-			// This regex ignores A-F because it's compared against an already lowercased string
-			re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
-			parse: function( execResult ) {
-				return [
-					parseInt( execResult[ 1 ], 16 ),
-					parseInt( execResult[ 2 ], 16 ),
-					parseInt( execResult[ 3 ], 16 )
-				];
-			}
-		}, {
-
-			// This regex ignores A-F because it's compared against an already lowercased string
-			re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
-			parse: function( execResult ) {
-				return [
-					parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
-					parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
-					parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
-				];
-			}
-		}, {
-			re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
-			space: "hsla",
-			parse: function( execResult ) {
-				return [
-					execResult[ 1 ],
-					execResult[ 2 ] / 100,
-					execResult[ 3 ] / 100,
-					execResult[ 4 ]
-				];
-			}
-		} ],
-
-	// JQuery.Color( )
-	color = jQuery.Color = function( color, green, blue, alpha ) {
-		return new jQuery.Color.fn.parse( color, green, blue, alpha );
-	},
-	spaces = {
-		rgba: {
-			props: {
-				red: {
-					idx: 0,
-					type: "byte"
-				},
-				green: {
-					idx: 1,
-					type: "byte"
-				},
-				blue: {
-					idx: 2,
-					type: "byte"
-				}
-			}
-		},
-
-		hsla: {
-			props: {
-				hue: {
-					idx: 0,
-					type: "degrees"
-				},
-				saturation: {
-					idx: 1,
-					type: "percent"
-				},
-				lightness: {
-					idx: 2,
-					type: "percent"
-				}
-			}
-		}
-	},
-	propTypes = {
-		"byte": {
-			floor: true,
-			max: 255
-		},
-		"percent": {
-			max: 1
-		},
-		"degrees": {
-			mod: 360,
-			floor: true
-		}
-	},
-	support = color.support = {},
-
-	// Element for support tests
-	supportElem = jQuery( "<p>" )[ 0 ],
-
-	// Colors = jQuery.Color.names
-	colors,
-
-	// Local aliases of functions called often
-	each = jQuery.each;
-
-// Determine rgba support immediately
-supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
-support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
-
-// Define cache name and alpha properties
-// for rgba and hsla spaces
-each( spaces, function( spaceName, space ) {
-	space.cache = "_" + spaceName;
-	space.props.alpha = {
-		idx: 3,
-		type: "percent",
-		def: 1
-	};
-} );
-
-function clamp( value, prop, allowEmpty ) {
-	var type = propTypes[ prop.type ] || {};
-
-	if ( value == null ) {
-		return ( allowEmpty || !prop.def ) ? null : prop.def;
-	}
-
-	// ~~ is an short way of doing floor for positive numbers
-	value = type.floor ? ~~value : parseFloat( value );
-
-	// IE will pass in empty strings as value for alpha,
-	// which will hit this case
-	if ( isNaN( value ) ) {
-		return prop.def;
-	}
-
-	if ( type.mod ) {
-
-		// We add mod before modding to make sure that negatives values
-		// get converted properly: -10 -> 350
-		return ( value + type.mod ) % type.mod;
-	}
-
-	// For now all property types without mod have min and max
-	return 0 > value ? 0 : type.max < value ? type.max : value;
-}
-
-function stringParse( string ) {
-	var inst = color(),
-		rgba = inst._rgba = [];
-
-	string = string.toLowerCase();
-
-	each( stringParsers, function( i, parser ) {
-		var parsed,
-			match = parser.re.exec( string ),
-			values = match && parser.parse( match ),
-			spaceName = parser.space || "rgba";
-
-		if ( values ) {
-			parsed = inst[ spaceName ]( values );
-
-			// If this was an rgba parse the assignment might happen twice
-			// oh well....
-			inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];
-			rgba = inst._rgba = parsed._rgba;
-
-			// Exit each( stringParsers ) here because we matched
-			return false;
-		}
-	} );
-
-	// Found a stringParser that handled it
-	if ( rgba.length ) {
-
-		// If this came from a parsed string, force "transparent" when alpha is 0
-		// chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
-		if ( rgba.join() === "0,0,0,0" ) {
-			jQuery.extend( rgba, colors.transparent );
-		}
-		return inst;
-	}
-
-	// Named colors
-	return colors[ string ];
-}
-
-color.fn = jQuery.extend( color.prototype, {
-	parse: function( red, green, blue, alpha ) {
-		if ( red === undefined ) {
-			this._rgba = [ null, null, null, null ];
-			return this;
-		}
-		if ( red.jquery || red.nodeType ) {
-			red = jQuery( red ).css( green );
-			green = undefined;
-		}
-
-		var inst = this,
-			type = jQuery.type( red ),
-			rgba = this._rgba = [];
-
-		// More than 1 argument specified - assume ( red, green, blue, alpha )
-		if ( green !== undefined ) {
-			red = [ red, green, blue, alpha ];
-			type = "array";
-		}
-
-		if ( type === "string" ) {
-			return this.parse( stringParse( red ) || colors._default );
-		}
-
-		if ( type === "array" ) {
-			each( spaces.rgba.props, function( key, prop ) {
-				rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
-			} );
-			return this;
-		}
-
-		if ( type === "object" ) {
-			if ( red instanceof color ) {
-				each( spaces, function( spaceName, space ) {
-					if ( red[ space.cache ] ) {
-						inst[ space.cache ] = red[ space.cache ].slice();
-					}
-				} );
-			} else {
-				each( spaces, function( spaceName, space ) {
-					var cache = space.cache;
-					each( space.props, function( key, prop ) {
-
-						// If the cache doesn't exist, and we know how to convert
-						if ( !inst[ cache ] && space.to ) {
-
-							// If the value was null, we don't need to copy it
-							// if the key was alpha, we don't need to copy it either
-							if ( key === "alpha" || red[ key ] == null ) {
-								return;
-							}
-							inst[ cache ] = space.to( inst._rgba );
-						}
-
-						// This is the only case where we allow nulls for ALL properties.
-						// call clamp with alwaysAllowEmpty
-						inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
-					} );
-
-					// Everything defined but alpha?
-					if ( inst[ cache ] &&
-							jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
-
-						// Use the default of 1
-						inst[ cache ][ 3 ] = 1;
-						if ( space.from ) {
-							inst._rgba = space.from( inst[ cache ] );
-						}
-					}
-				} );
-			}
-			return this;
-		}
-	},
-	is: function( compare ) {
-		var is = color( compare ),
-			same = true,
-			inst = this;
-
-		each( spaces, function( _, space ) {
-			var localCache,
-				isCache = is[ space.cache ];
-			if ( isCache ) {
-				localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];
-				each( space.props, function( _, prop ) {
-					if ( isCache[ prop.idx ] != null ) {
-						same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
-						return same;
-					}
-				} );
-			}
-			return same;
-		} );
-		return same;
-	},
-	_space: function() {
-		var used = [],
-			inst = this;
-		each( spaces, function( spaceName, space ) {
-			if ( inst[ space.cache ] ) {
-				used.push( spaceName );
-			}
-		} );
-		return used.pop();
-	},
-	transition: function( other, distance ) {
-		var end = color( other ),
-			spaceName = end._space(),
-			space = spaces[ spaceName ],
-			startColor = this.alpha() === 0 ? color( "transparent" ) : this,
-			start = startColor[ space.cache ] || space.to( startColor._rgba ),
-			result = start.slice();
-
-		end = end[ space.cache ];
-		each( space.props, function( key, prop ) {
-			var index = prop.idx,
-				startValue = start[ index ],
-				endValue = end[ index ],
-				type = propTypes[ prop.type ] || {};
-
-			// If null, don't override start value
-			if ( endValue === null ) {
-				return;
-			}
-
-			// If null - use end
-			if ( startValue === null ) {
-				result[ index ] = endValue;
-			} else {
-				if ( type.mod ) {
-					if ( endValue - startValue > type.mod / 2 ) {
-						startValue += type.mod;
-					} else if ( startValue - endValue > type.mod / 2 ) {
-						startValue -= type.mod;
-					}
-				}
-				result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
-			}
-		} );
-		return this[ spaceName ]( result );
-	},
-	blend: function( opaque ) {
-
-		// If we are already opaque - return ourself
-		if ( this._rgba[ 3 ] === 1 ) {
-			return this;
-		}
-
-		var rgb = this._rgba.slice(),
-			a = rgb.pop(),
-			blend = color( opaque )._rgba;
-
-		return color( jQuery.map( rgb, function( v, i ) {
-			return ( 1 - a ) * blend[ i ] + a * v;
-		} ) );
-	},
-	toRgbaString: function() {
-		var prefix = "rgba(",
-			rgba = jQuery.map( this._rgba, function( v, i ) {
-				return v == null ? ( i > 2 ? 1 : 0 ) : v;
-			} );
-
-		if ( rgba[ 3 ] === 1 ) {
-			rgba.pop();
-			prefix = "rgb(";
-		}
-
-		return prefix + rgba.join() + ")";
-	},
-	toHslaString: function() {
-		var prefix = "hsla(",
-			hsla = jQuery.map( this.hsla(), function( v, i ) {
-				if ( v == null ) {
-					v = i > 2 ? 1 : 0;
-				}
-
-				// Catch 1 and 2
-				if ( i && i < 3 ) {
-					v = Math.round( v * 100 ) + "%";
-				}
-				return v;
-			} );
-
-		if ( hsla[ 3 ] === 1 ) {
-			hsla.pop();
-			prefix = "hsl(";
-		}
-		return prefix + hsla.join() + ")";
-	},
-	toHexString: function( includeAlpha ) {
-		var rgba = this._rgba.slice(),
-			alpha = rgba.pop();
-
-		if ( includeAlpha ) {
-			rgba.push( ~~( alpha * 255 ) );
-		}
-
-		return "#" + jQuery.map( rgba, function( v ) {
-
-			// Default to 0 when nulls exist
-			v = ( v || 0 ).toString( 16 );
-			return v.length === 1 ? "0" + v : v;
-		} ).join( "" );
-	},
-	toString: function() {
-		return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
-	}
-} );
-color.fn.parse.prototype = color.fn;
-
-// Hsla conversions adapted from:
-// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
-
-function hue2rgb( p, q, h ) {
-	h = ( h + 1 ) % 1;
-	if ( h * 6 < 1 ) {
-		return p + ( q - p ) * h * 6;
-	}
-	if ( h * 2 < 1 ) {
-		return q;
-	}
-	if ( h * 3 < 2 ) {
-		return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;
-	}
-	return p;
-}
-
-spaces.hsla.to = function( rgba ) {
-	if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
-		return [ null, null, null, rgba[ 3 ] ];
-	}
-	var r = rgba[ 0 ] / 255,
-		g = rgba[ 1 ] / 255,
-		b = rgba[ 2 ] / 255,
-		a = rgba[ 3 ],
-		max = Math.max( r, g, b ),
-		min = Math.min( r, g, b ),
-		diff = max - min,
-		add = max + min,
-		l = add * 0.5,
-		h, s;
-
-	if ( min === max ) {
-		h = 0;
-	} else if ( r === max ) {
-		h = ( 60 * ( g - b ) / diff ) + 360;
-	} else if ( g === max ) {
-		h = ( 60 * ( b - r ) / diff ) + 120;
-	} else {
-		h = ( 60 * ( r - g ) / diff ) + 240;
-	}
-
-	// Chroma (diff) == 0 means greyscale which, by definition, saturation = 0%
-	// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)
-	if ( diff === 0 ) {
-		s = 0;
-	} else if ( l <= 0.5 ) {
-		s = diff / add;
-	} else {
-		s = diff / ( 2 - add );
-	}
-	return [ Math.round( h ) % 360, s, l, a == null ? 1 : a ];
-};
-
-spaces.hsla.from = function( hsla ) {
-	if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
-		return [ null, null, null, hsla[ 3 ] ];
-	}
-	var h = hsla[ 0 ] / 360,
-		s = hsla[ 1 ],
-		l = hsla[ 2 ],
-		a = hsla[ 3 ],
-		q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
-		p = 2 * l - q;
-
-	return [
-		Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
-		Math.round( hue2rgb( p, q, h ) * 255 ),
-		Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
-		a
-	];
-};
-
-each( spaces, function( spaceName, space ) {
-	var props = space.props,
-		cache = space.cache,
-		to = space.to,
-		from = space.from;
-
-	// Makes rgba() and hsla()
-	color.fn[ spaceName ] = function( value ) {
-
-		// Generate a cache for this space if it doesn't exist
-		if ( to && !this[ cache ] ) {
-			this[ cache ] = to( this._rgba );
-		}
-		if ( value === undefined ) {
-			return this[ cache ].slice();
-		}
-
-		var ret,
-			type = jQuery.type( value ),
-			arr = ( type === "array" || type === "object" ) ? value : arguments,
-			local = this[ cache ].slice();
-
-		each( props, function( key, prop ) {
-			var val = arr[ type === "object" ? key : prop.idx ];
-			if ( val == null ) {
-				val = local[ prop.idx ];
-			}
-			local[ prop.idx ] = clamp( val, prop );
-		} );
-
-		if ( from ) {
-			ret = color( from( local ) );
-			ret[ cache ] = local;
-			return ret;
-		} else {
-			return color( local );
-		}
-	};
-
-	// Makes red() green() blue() alpha() hue() saturation() lightness()
-	each( props, function( key, prop ) {
-
-		// Alpha is included in more than one space
-		if ( color.fn[ key ] ) {
-			return;
-		}
-		color.fn[ key ] = function( value ) {
-			var vtype = jQuery.type( value ),
-				fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),
-				local = this[ fn ](),
-				cur = local[ prop.idx ],
-				match;
-
-			if ( vtype === "undefined" ) {
-				return cur;
-			}
-
-			if ( vtype === "function" ) {
-				value = value.call( this, cur );
-				vtype = jQuery.type( value );
-			}
-			if ( value == null && prop.empty ) {
-				return this;
-			}
-			if ( vtype === "string" ) {
-				match = rplusequals.exec( value );
-				if ( match ) {
-					value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
-				}
-			}
-			local[ prop.idx ] = value;
-			return this[ fn ]( local );
-		};
-	} );
-} );
-
-// Add cssHook and .fx.step function for each named hook.
-// accept a space separated string of properties
-color.hook = function( hook ) {
-	var hooks = hook.split( " " );
-	each( hooks, function( i, hook ) {
-		jQuery.cssHooks[ hook ] = {
-			set: function( elem, value ) {
-				var parsed, curElem,
-					backgroundColor = "";
-
-				if ( value !== "transparent" && ( jQuery.type( value ) !== "string" ||
-						( parsed = stringParse( value ) ) ) ) {
-					value = color( parsed || value );
-					if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
-						curElem = hook === "backgroundColor" ? elem.parentNode : elem;
-						while (
-							( backgroundColor === "" || backgroundColor === "transparent" ) &&
-							curElem && curElem.style
-						) {
-							try {
-								backgroundColor = jQuery.css( curElem, "backgroundColor" );
-								curElem = curElem.parentNode;
-							} catch ( e ) {
-							}
-						}
-
-						value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
-							backgroundColor :
-							"_default" );
-					}
-
-					value = value.toRgbaString();
-				}
-				try {
-					elem.style[ hook ] = value;
-				} catch ( e ) {
-
-					// Wrapped to prevent IE from throwing errors on "invalid" values like
-					// 'auto' or 'inherit'
-				}
-			}
-		};
-		jQuery.fx.step[ hook ] = function( fx ) {
-			if ( !fx.colorInit ) {
-				fx.start = color( fx.elem, hook );
-				fx.end = color( fx.end );
-				fx.colorInit = true;
-			}
-			jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
-		};
-	} );
-
-};
-
-color.hook( stepHooks );
-
-jQuery.cssHooks.borderColor = {
-	expand: function( value ) {
-		var expanded = {};
-
-		each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) {
-			expanded[ "border" + part + "Color" ] = value;
-		} );
-		return expanded;
-	}
-};
-
-// Basic color names only.
-// Usage of any of the other color names requires adding yourself or including
-// jquery.color.svg-names.js.
-colors = jQuery.Color.names = {
-
-	// 4.1. Basic color keywords
-	aqua: "#00ffff",
-	black: "#000000",
-	blue: "#0000ff",
-	fuchsia: "#ff00ff",
-	gray: "#808080",
-	green: "#008000",
-	lime: "#00ff00",
-	maroon: "#800000",
-	navy: "#000080",
-	olive: "#808000",
-	purple: "#800080",
-	red: "#ff0000",
-	silver: "#c0c0c0",
-	teal: "#008080",
-	white: "#ffffff",
-	yellow: "#ffff00",
-
-	// 4.2.3. "transparent" color keyword
-	transparent: [ null, null, null, 0 ],
-
-	_default: "#ffffff"
-};
-
-} )( jQuery );
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-( function() {
-
-var classAnimationActions = [ "add", "remove", "toggle" ],
-	shorthandStyles = {
-		border: 1,
-		borderBottom: 1,
-		borderColor: 1,
-		borderLeft: 1,
-		borderRight: 1,
-		borderTop: 1,
-		borderWidth: 1,
-		margin: 1,
-		padding: 1
-	};
-
-$.each(
-	[ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ],
-	function( _, prop ) {
-		$.fx.step[ prop ] = function( fx ) {
-			if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
-				jQuery.style( fx.elem, prop, fx.end );
-				fx.setAttr = true;
-			}
-		};
-	}
-);
-
-function getElementStyles( elem ) {
-	var key, len,
-		style = elem.ownerDocument.defaultView ?
-			elem.ownerDocument.defaultView.getComputedStyle( elem, null ) :
-			elem.currentStyle,
-		styles = {};
-
-	if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
-		len = style.length;
-		while ( len-- ) {
-			key = style[ len ];
-			if ( typeof style[ key ] === "string" ) {
-				styles[ $.camelCase( key ) ] = style[ key ];
-			}
-		}
-
-	// Support: Opera, IE <9
-	} else {
-		for ( key in style ) {
-			if ( typeof style[ key ] === "string" ) {
-				styles[ key ] = style[ key ];
-			}
-		}
-	}
-
-	return styles;
-}
-
-function styleDifference( oldStyle, newStyle ) {
-	var diff = {},
-		name, value;
-
-	for ( name in newStyle ) {
-		value = newStyle[ name ];
-		if ( oldStyle[ name ] !== value ) {
-			if ( !shorthandStyles[ name ] ) {
-				if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
-					diff[ name ] = value;
-				}
-			}
-		}
-	}
-
-	return diff;
-}
-
-// Support: jQuery <1.8
-if ( !$.fn.addBack ) {
-	$.fn.addBack = function( selector ) {
-		return this.add( selector == null ?
-			this.prevObject : this.prevObject.filter( selector )
-		);
-	};
-}
-
-$.effects.animateClass = function( value, duration, easing, callback ) {
-	var o = $.speed( duration, easing, callback );
-
-	return this.queue( function() {
-		var animated = $( this ),
-			baseClass = animated.attr( "class" ) || "",
-			applyClassChange,
-			allAnimations = o.children ? animated.find( "*" ).addBack() : animated;
-
-		// Map the animated objects to store the original styles.
-		allAnimations = allAnimations.map( function() {
-			var el = $( this );
-			return {
-				el: el,
-				start: getElementStyles( this )
-			};
-		} );
-
-		// Apply class change
-		applyClassChange = function() {
-			$.each( classAnimationActions, function( i, action ) {
-				if ( value[ action ] ) {
-					animated[ action + "Class" ]( value[ action ] );
-				}
-			} );
-		};
-		applyClassChange();
-
-		// Map all animated objects again - calculate new styles and diff
-		allAnimations = allAnimations.map( function() {
-			this.end = getElementStyles( this.el[ 0 ] );
-			this.diff = styleDifference( this.start, this.end );
-			return this;
-		} );
-
-		// Apply original class
-		animated.attr( "class", baseClass );
-
-		// Map all animated objects again - this time collecting a promise
-		allAnimations = allAnimations.map( function() {
-			var styleInfo = this,
-				dfd = $.Deferred(),
-				opts = $.extend( {}, o, {
-					queue: false,
-					complete: function() {
-						dfd.resolve( styleInfo );
-					}
-				} );
-
-			this.el.animate( this.diff, opts );
-			return dfd.promise();
-		} );
-
-		// Once all animations have completed:
-		$.when.apply( $, allAnimations.get() ).done( function() {
-
-			// Set the final class
-			applyClassChange();
-
-			// For each animated element,
-			// clear all css properties that were animated
-			$.each( arguments, function() {
-				var el = this.el;
-				$.each( this.diff, function( key ) {
-					el.css( key, "" );
-				} );
-			} );
-
-			// This is guarnteed to be there if you use jQuery.speed()
-			// it also handles dequeuing the next anim...
-			o.complete.call( animated[ 0 ] );
-		} );
-	} );
-};
-
-$.fn.extend( {
-	addClass: ( function( orig ) {
-		return function( classNames, speed, easing, callback ) {
-			return speed ?
-				$.effects.animateClass.call( this,
-					{ add: classNames }, speed, easing, callback ) :
-				orig.apply( this, arguments );
-		};
-	} )( $.fn.addClass ),
-
-	removeClass: ( function( orig ) {
-		return function( classNames, speed, easing, callback ) {
-			return arguments.length > 1 ?
-				$.effects.animateClass.call( this,
-					{ remove: classNames }, speed, easing, callback ) :
-				orig.apply( this, arguments );
-		};
-	} )( $.fn.removeClass ),
-
-	toggleClass: ( function( orig ) {
-		return function( classNames, force, speed, easing, callback ) {
-			if ( typeof force === "boolean" || force === undefined ) {
-				if ( !speed ) {
-
-					// Without speed parameter
-					return orig.apply( this, arguments );
-				} else {
-					return $.effects.animateClass.call( this,
-						( force ? { add: classNames } : { remove: classNames } ),
-						speed, easing, callback );
-				}
-			} else {
-
-				// Without force parameter
-				return $.effects.animateClass.call( this,
-					{ toggle: classNames }, force, speed, easing );
-			}
-		};
-	} )( $.fn.toggleClass ),
-
-	switchClass: function( remove, add, speed, easing, callback ) {
-		return $.effects.animateClass.call( this, {
-			add: add,
-			remove: remove
-		}, speed, easing, callback );
-	}
-} );
-
-} )();
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-( function() {
-
-if ( $.expr && $.expr.filters && $.expr.filters.animated ) {
-	$.expr.filters.animated = ( function( orig ) {
-		return function( elem ) {
-			return !!$( elem ).data( dataSpaceAnimated ) || orig( elem );
-		};
-	} )( $.expr.filters.animated );
-}
-
-if ( $.uiBackCompat !== false ) {
-	$.extend( $.effects, {
-
-		// Saves a set of properties in a data storage
-		save: function( element, set ) {
-			var i = 0, length = set.length;
-			for ( ; i < length; i++ ) {
-				if ( set[ i ] !== null ) {
-					element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
-				}
-			}
-		},
-
-		// Restores a set of previously saved properties from a data storage
-		restore: function( element, set ) {
-			var val, i = 0, length = set.length;
-			for ( ; i < length; i++ ) {
-				if ( set[ i ] !== null ) {
-					val = element.data( dataSpace + set[ i ] );
-					element.css( set[ i ], val );
-				}
-			}
-		},
-
-		setMode: function( el, mode ) {
-			if ( mode === "toggle" ) {
-				mode = el.is( ":hidden" ) ? "show" : "hide";
-			}
-			return mode;
-		},
-
-		// Wraps the element around a wrapper that copies position properties
-		createWrapper: function( element ) {
-
-			// If the element is already wrapped, return it
-			if ( element.parent().is( ".ui-effects-wrapper" ) ) {
-				return element.parent();
-			}
-
-			// Wrap the element
-			var props = {
-					width: element.outerWidth( true ),
-					height: element.outerHeight( true ),
-					"float": element.css( "float" )
-				},
-				wrapper = $( "<div></div>" )
-					.addClass( "ui-effects-wrapper" )
-					.css( {
-						fontSize: "100%",
-						background: "transparent",
-						border: "none",
-						margin: 0,
-						padding: 0
-					} ),
-
-				// Store the size in case width/height are defined in % - Fixes #5245
-				size = {
-					width: element.width(),
-					height: element.height()
-				},
-				active = document.activeElement;
-
-			// Support: Firefox
-			// Firefox incorrectly exposes anonymous content
-			// https://bugzilla.mozilla.org/show_bug.cgi?id=561664
-			try {
-				active.id;
-			} catch ( e ) {
-				active = document.body;
-			}
-
-			element.wrap( wrapper );
-
-			// Fixes #7595 - Elements lose focus when wrapped.
-			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
-				$( active ).trigger( "focus" );
-			}
-
-			// Hotfix for jQuery 1.4 since some change in wrap() seems to actually
-			// lose the reference to the wrapped element
-			wrapper = element.parent();
-
-			// Transfer positioning properties to the wrapper
-			if ( element.css( "position" ) === "static" ) {
-				wrapper.css( { position: "relative" } );
-				element.css( { position: "relative" } );
-			} else {
-				$.extend( props, {
-					position: element.css( "position" ),
-					zIndex: element.css( "z-index" )
-				} );
-				$.each( [ "top", "left", "bottom", "right" ], function( i, pos ) {
-					props[ pos ] = element.css( pos );
-					if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
-						props[ pos ] = "auto";
-					}
-				} );
-				element.css( {
-					position: "relative",
-					top: 0,
-					left: 0,
-					right: "auto",
-					bottom: "auto"
-				} );
-			}
-			element.css( size );
-
-			return wrapper.css( props ).show();
-		},
-
-		removeWrapper: function( element ) {
-			var active = document.activeElement;
-
-			if ( element.parent().is( ".ui-effects-wrapper" ) ) {
-				element.parent().replaceWith( element );
-
-				// Fixes #7595 - Elements lose focus when wrapped.
-				if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
-					$( active ).trigger( "focus" );
-				}
-			}
-
-			return element;
-		}
-	} );
-}
-
-$.extend( $.effects, {
-	version: "1.12.0",
-
-	define: function( name, mode, effect ) {
-		if ( !effect ) {
-			effect = mode;
-			mode = "effect";
-		}
-
-		$.effects.effect[ name ] = effect;
-		$.effects.effect[ name ].mode = mode;
-
-		return effect;
-	},
-
-	scaledDimensions: function( element, percent, direction ) {
-		if ( percent === 0 ) {
-			return {
-				height: 0,
-				width: 0,
-				outerHeight: 0,
-				outerWidth: 0
-			};
-		}
-
-		var x = direction !== "horizontal" ? ( ( percent || 100 ) / 100 ) : 1,
-			y = direction !== "vertical" ? ( ( percent || 100 ) / 100 ) : 1;
-
-		return {
-			height: element.height() * y,
-			width: element.width() * x,
-			outerHeight: element.outerHeight() * y,
-			outerWidth: element.outerWidth() * x
-		};
-
-	},
-
-	clipToBox: function( animation ) {
-		return {
-			width: animation.clip.right - animation.clip.left,
-			height: animation.clip.bottom - animation.clip.top,
-			left: animation.clip.left,
-			top: animation.clip.top
-		};
-	},
-
-	// Injects recently queued functions to be first in line (after "inprogress")
-	unshift: function( element, queueLength, count ) {
-		var queue = element.queue();
-
-		if ( queueLength > 1 ) {
-			queue.splice.apply( queue,
-				[ 1, 0 ].concat( queue.splice( queueLength, count ) ) );
-		}
-		element.dequeue();
-	},
-
-	saveStyle: function( element ) {
-		element.data( dataSpaceStyle, element[ 0 ].style.cssText );
-	},
-
-	restoreStyle: function( element ) {
-		element[ 0 ].style.cssText = element.data( dataSpaceStyle ) || "";
-		element.removeData( dataSpaceStyle );
-	},
-
-	mode: function( element, mode ) {
-		var hidden = element.is( ":hidden" );
-
-		if ( mode === "toggle" ) {
-			mode = hidden ? "show" : "hide";
-		}
-		if ( hidden ? mode === "hide" : mode === "show" ) {
-			mode = "none";
-		}
-		return mode;
-	},
-
-	// Translates a [top,left] array into a baseline value
-	getBaseline: function( origin, original ) {
-		var y, x;
-
-		switch ( origin[ 0 ] ) {
-		case "top":
-			y = 0;
-			break;
-		case "middle":
-			y = 0.5;
-			break;
-		case "bottom":
-			y = 1;
-			break;
-		default:
-			y = origin[ 0 ] / original.height;
-		}
-
-		switch ( origin[ 1 ] ) {
-		case "left":
-			x = 0;
-			break;
-		case "center":
-			x = 0.5;
-			break;
-		case "right":
-			x = 1;
-			break;
-		default:
-			x = origin[ 1 ] / original.width;
-		}
-
-		return {
-			x: x,
-			y: y
-		};
-	},
-
-	// Creates a placeholder element so that the original element can be made absolute
-	createPlaceholder: function( element ) {
-		var placeholder,
-			cssPosition = element.css( "position" ),
-			position = element.position();
-
-		// Lock in margins first to account for form elements, which
-		// will change margin if you explicitly set height
-		// see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380
-		// Support: Safari
-		element.css( {
-			marginTop: element.css( "marginTop" ),
-			marginBottom: element.css( "marginBottom" ),
-			marginLeft: element.css( "marginLeft" ),
-			marginRight: element.css( "marginRight" )
-		} )
-		.outerWidth( element.outerWidth() )
-		.outerHeight( element.outerHeight() );
-
-		if ( /^(static|relative)/.test( cssPosition ) ) {
-			cssPosition = "absolute";
-
-			placeholder = $( "<" + element[ 0 ].nodeName + ">" ).insertAfter( element ).css( {
-
-				// Convert inline to inline block to account for inline elements
-				// that turn to inline block based on content (like img)
-				display: /^(inline|ruby)/.test( element.css( "display" ) ) ?
-					"inline-block" :
-					"block",
-				visibility: "hidden",
-
-				// Margins need to be set to account for margin collapse
-				marginTop: element.css( "marginTop" ),
-				marginBottom: element.css( "marginBottom" ),
-				marginLeft: element.css( "marginLeft" ),
-				marginRight: element.css( "marginRight" ),
-				"float": element.css( "float" )
-			} )
-			.outerWidth( element.outerWidth() )
-			.outerHeight( element.outerHeight() )
-			.addClass( "ui-effects-placeholder" );
-
-			element.data( dataSpace + "placeholder", placeholder );
-		}
-
-		element.css( {
-			position: cssPosition,
-			left: position.left,
-			top: position.top
-		} );
-
-		return placeholder;
-	},
-
-	removePlaceholder: function( element ) {
-		var dataKey = dataSpace + "placeholder",
-				placeholder = element.data( dataKey );
-
-		if ( placeholder ) {
-			placeholder.remove();
-			element.removeData( dataKey );
-		}
-	},
-
-	// Removes a placeholder if it exists and restores
-	// properties that were modified during placeholder creation
-	cleanUp: function( element ) {
-		$.effects.restoreStyle( element );
-		$.effects.removePlaceholder( element );
-	},
-
-	setTransition: function( element, list, factor, value ) {
-		value = value || {};
-		$.each( list, function( i, x ) {
-			var unit = element.cssUnit( x );
-			if ( unit[ 0 ] > 0 ) {
-				value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
-			}
-		} );
-		return value;
-	}
-} );
-
-// Return an effect options object for the given parameters:
-function _normalizeArguments( effect, options, speed, callback ) {
-
-	// Allow passing all options as the first parameter
-	if ( $.isPlainObject( effect ) ) {
-		options = effect;
-		effect = effect.effect;
-	}
-
-	// Convert to an object
-	effect = { effect: effect };
-
-	// Catch (effect, null, ...)
-	if ( options == null ) {
-		options = {};
-	}
-
-	// Catch (effect, callback)
-	if ( $.isFunction( options ) ) {
-		callback = options;
-		speed = null;
-		options = {};
-	}
-
-	// Catch (effect, speed, ?)
-	if ( typeof options === "number" || $.fx.speeds[ options ] ) {
-		callback = speed;
-		speed = options;
-		options = {};
-	}
-
-	// Catch (effect, options, callback)
-	if ( $.isFunction( speed ) ) {
-		callback = speed;
-		speed = null;
-	}
-
-	// Add options to effect
-	if ( options ) {
-		$.extend( effect, options );
-	}
-
-	speed = speed || options.duration;
-	effect.duration = $.fx.off ? 0 :
-		typeof speed === "number" ? speed :
-		speed in $.fx.speeds ? $.fx.speeds[ speed ] :
-		$.fx.speeds._default;
-
-	effect.complete = callback || options.complete;
-
-	return effect;
-}
-
-function standardAnimationOption( option ) {
-
-	// Valid standard speeds (nothing, number, named speed)
-	if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) {
-		return true;
-	}
-
-	// Invalid strings - treat as "normal" speed
-	if ( typeof option === "string" && !$.effects.effect[ option ] ) {
-		return true;
-	}
-
-	// Complete callback
-	if ( $.isFunction( option ) ) {
-		return true;
-	}
-
-	// Options hash (but not naming an effect)
-	if ( typeof option === "object" && !option.effect ) {
-		return true;
-	}
-
-	// Didn't match any standard API
-	return false;
-}
-
-$.fn.extend( {
-	effect: function( /* effect, options, speed, callback */ ) {
-		var args = _normalizeArguments.apply( this, arguments ),
-			effectMethod = $.effects.effect[ args.effect ],
-			defaultMode = effectMethod.mode,
-			queue = args.queue,
-			queueName = queue || "fx",
-			complete = args.complete,
-			mode = args.mode,
-			modes = [],
-			prefilter = function( next ) {
-				var el = $( this ),
-					normalizedMode = $.effects.mode( el, mode ) || defaultMode;
-
-				// Sentinel for duck-punching the :animated psuedo-selector
-				el.data( dataSpaceAnimated, true );
-
-				// Save effect mode for later use,
-				// we can't just call $.effects.mode again later,
-				// as the .show() below destroys the initial state
-				modes.push( normalizedMode );
-
-				// See $.uiBackCompat inside of run() for removal of defaultMode in 1.13
-				if ( defaultMode && ( normalizedMode === "show" ||
-						( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) {
-					el.show();
-				}
-
-				if ( !defaultMode || normalizedMode !== "none" ) {
-					$.effects.saveStyle( el );
-				}
-
-				if ( $.isFunction( next ) ) {
-					next();
-				}
-			};
-
-		if ( $.fx.off || !effectMethod ) {
-
-			// Delegate to the original method (e.g., .show()) if possible
-			if ( mode ) {
-				return this[ mode ]( args.duration, complete );
-			} else {
-				return this.each( function() {
-					if ( complete ) {
-						complete.call( this );
-					}
-				} );
-			}
-		}
-
-		function run( next ) {
-			var elem = $( this );
-
-			function cleanup() {
-				elem.removeData( dataSpaceAnimated );
-
-				$.effects.cleanUp( elem );
-
-				if ( args.mode === "hide" ) {
-					elem.hide();
-				}
-
-				done();
-			}
-
-			function done() {
-				if ( $.isFunction( complete ) ) {
-					complete.call( elem[ 0 ] );
-				}
-
-				if ( $.isFunction( next ) ) {
-					next();
-				}
-			}
-
-			// Override mode option on a per element basis,
-			// as toggle can be either show or hide depending on element state
-			args.mode = modes.shift();
-
-			if ( $.uiBackCompat !== false && !defaultMode ) {
-				if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
-
-					// Call the core method to track "olddisplay" properly
-					elem[ mode ]();
-					done();
-				} else {
-					effectMethod.call( elem[ 0 ], args, done );
-				}
-			} else {
-				if ( args.mode === "none" ) {
-
-					// Call the core method to track "olddisplay" properly
-					elem[ mode ]();
-					done();
-				} else {
-					effectMethod.call( elem[ 0 ], args, cleanup );
-				}
-			}
-		}
-
-		// Run prefilter on all elements first to ensure that
-		// any showing or hiding happens before placeholder creation,
-		// which ensures that any layout changes are correctly captured.
-		return queue === false ?
-			this.each( prefilter ).each( run ) :
-			this.queue( queueName, prefilter ).queue( queueName, run );
-	},
-
-	show: ( function( orig ) {
-		return function( option ) {
-			if ( standardAnimationOption( option ) ) {
-				return orig.apply( this, arguments );
-			} else {
-				var args = _normalizeArguments.apply( this, arguments );
-				args.mode = "show";
-				return this.effect.call( this, args );
-			}
-		};
-	} )( $.fn.show ),
-
-	hide: ( function( orig ) {
-		return function( option ) {
-			if ( standardAnimationOption( option ) ) {
-				return orig.apply( this, arguments );
-			} else {
-				var args = _normalizeArguments.apply( this, arguments );
-				args.mode = "hide";
-				return this.effect.call( this, args );
-			}
-		};
-	} )( $.fn.hide ),
-
-	toggle: ( function( orig ) {
-		return function( option ) {
-			if ( standardAnimationOption( option ) || typeof option === "boolean" ) {
-				return orig.apply( this, arguments );
-			} else {
-				var args = _normalizeArguments.apply( this, arguments );
-				args.mode = "toggle";
-				return this.effect.call( this, args );
-			}
-		};
-	} )( $.fn.toggle ),
-
-	cssUnit: function( key ) {
-		var style = this.css( key ),
-			val = [];
-
-		$.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
-			if ( style.indexOf( unit ) > 0 ) {
-				val = [ parseFloat( style ), unit ];
-			}
-		} );
-		return val;
-	},
-
-	cssClip: function( clipObj ) {
-		if ( clipObj ) {
-			return this.css( "clip", "rect(" + clipObj.top + "px " + clipObj.right + "px " +
-				clipObj.bottom + "px " + clipObj.left + "px)" );
-		}
-		return parseClip( this.css( "clip" ), this );
-	},
-
-	transfer: function( options, done ) {
-		var element = $( this ),
-			target = $( options.to ),
-			targetFixed = target.css( "position" ) === "fixed",
-			body = $( "body" ),
-			fixTop = targetFixed ? body.scrollTop() : 0,
-			fixLeft = targetFixed ? body.scrollLeft() : 0,
-			endPosition = target.offset(),
-			animation = {
-				top: endPosition.top - fixTop,
-				left: endPosition.left - fixLeft,
-				height: target.innerHeight(),
-				width: target.innerWidth()
-			},
-			startPosition = element.offset(),
-			transfer = $( "<div class='ui-effects-transfer'></div>" )
-				.appendTo( "body" )
-				.addClass( options.className )
-				.css( {
-					top: startPosition.top - fixTop,
-					left: startPosition.left - fixLeft,
-					height: element.innerHeight(),
-					width: element.innerWidth(),
-					position: targetFixed ? "fixed" : "absolute"
-				} )
-				.animate( animation, options.duration, options.easing, function() {
-					transfer.remove();
-					if ( $.isFunction( done ) ) {
-						done();
-					}
-				} );
-	}
-} );
-
-function parseClip( str, element ) {
-		var outerWidth = element.outerWidth(),
-			outerHeight = element.outerHeight(),
-			clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,
-			values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ];
-
-		return {
-			top: parseFloat( values[ 1 ] ) || 0,
-			right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ),
-			bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ),
-			left: parseFloat( values[ 4 ] ) || 0
-		};
-}
-
-$.fx.step.clip = function( fx ) {
-	if ( !fx.clipInit ) {
-		fx.start = $( fx.elem ).cssClip();
-		if ( typeof fx.end === "string" ) {
-			fx.end = parseClip( fx.end, fx.elem );
-		}
-		fx.clipInit = true;
-	}
-
-	$( fx.elem ).cssClip( {
-		top: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top,
-		right: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right,
-		bottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom,
-		left: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left
-	} );
-};
-
-} )();
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-( function() {
-
-// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
-
-var baseEasings = {};
-
-$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) {
-	baseEasings[ name ] = function( p ) {
-		return Math.pow( p, i + 2 );
-	};
-} );
-
-$.extend( baseEasings, {
-	Sine: function( p ) {
-		return 1 - Math.cos( p * Math.PI / 2 );
-	},
-	Circ: function( p ) {
-		return 1 - Math.sqrt( 1 - p * p );
-	},
-	Elastic: function( p ) {
-		return p === 0 || p === 1 ? p :
-			-Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 );
-	},
-	Back: function( p ) {
-		return p * p * ( 3 * p - 2 );
-	},
-	Bounce: function( p ) {
-		var pow2,
-			bounce = 4;
-
-		while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}
-		return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
-	}
-} );
-
-$.each( baseEasings, function( name, easeIn ) {
-	$.easing[ "easeIn" + name ] = easeIn;
-	$.easing[ "easeOut" + name ] = function( p ) {
-		return 1 - easeIn( 1 - p );
-	};
-	$.easing[ "easeInOut" + name ] = function( p ) {
-		return p < 0.5 ?
-			easeIn( p * 2 ) / 2 :
-			1 - easeIn( p * -2 + 2 ) / 2;
-	};
-} );
-
-} )();
-
-var effect = $.effects;
-
-
-/*!
- * jQuery UI Effects Blind 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Blind Effect
-//>>group: Effects
-//>>description: Blinds the element.
-//>>docs: http://api.jqueryui.com/blind-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, done ) {
-	var map = {
-			up: [ "bottom", "top" ],
-			vertical: [ "bottom", "top" ],
-			down: [ "top", "bottom" ],
-			left: [ "right", "left" ],
-			horizontal: [ "right", "left" ],
-			right: [ "left", "right" ]
-		},
-		element = $( this ),
-		direction = options.direction || "up",
-		start = element.cssClip(),
-		animate = { clip: $.extend( {}, start ) },
-		placeholder = $.effects.createPlaceholder( element );
-
-	animate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ];
-
-	if ( options.mode === "show" ) {
-		element.cssClip( animate.clip );
-		if ( placeholder ) {
-			placeholder.css( $.effects.clipToBox( animate ) );
-		}
-
-		animate.clip = start;
-	}
-
-	if ( placeholder ) {
-		placeholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing );
-	}
-
-	element.animate( animate, {
-		queue: false,
-		duration: options.duration,
-		easing: options.easing,
-		complete: done
-	} );
-} );
-
-
-/*!
- * jQuery UI Effects Bounce 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Bounce Effect
-//>>group: Effects
-//>>description: Bounces an element horizontally or vertically n times.
-//>>docs: http://api.jqueryui.com/bounce-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) {
-	var upAnim, downAnim, refValue,
-		element = $( this ),
-
-		// Defaults:
-		mode = options.mode,
-		hide = mode === "hide",
-		show = mode === "show",
-		direction = options.direction || "up",
-		distance = options.distance,
-		times = options.times || 5,
-
-		// Number of internal animations
-		anims = times * 2 + ( show || hide ? 1 : 0 ),
-		speed = options.duration / anims,
-		easing = options.easing,
-
-		// Utility:
-		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
-		motion = ( direction === "up" || direction === "left" ),
-		i = 0,
-
-		queuelen = element.queue().length;
-
-	$.effects.createPlaceholder( element );
-
-	refValue = element.css( ref );
-
-	// Default distance for the BIGGEST bounce is the outer Distance / 3
-	if ( !distance ) {
-		distance = element[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3;
-	}
-
-	if ( show ) {
-		downAnim = { opacity: 1 };
-		downAnim[ ref ] = refValue;
-
-		// If we are showing, force opacity 0 and set the initial position
-		// then do the "first" animation
-		element
-			.css( "opacity", 0 )
-			.css( ref, motion ? -distance * 2 : distance * 2 )
-			.animate( downAnim, speed, easing );
-	}
-
-	// Start at the smallest distance if we are hiding
-	if ( hide ) {
-		distance = distance / Math.pow( 2, times - 1 );
-	}
-
-	downAnim = {};
-	downAnim[ ref ] = refValue;
-
-	// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here
-	for ( ; i < times; i++ ) {
-		upAnim = {};
-		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
-
-		element
-			.animate( upAnim, speed, easing )
-			.animate( downAnim, speed, easing );
-
-		distance = hide ? distance * 2 : distance / 2;
-	}
-
-	// Last Bounce when Hiding
-	if ( hide ) {
-		upAnim = { opacity: 0 };
-		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
-
-		element.animate( upAnim, speed, easing );
-	}
-
-	element.queue( done );
-
-	$.effects.unshift( element, queuelen, anims + 1 );
-} );
-
-
-/*!
- * jQuery UI Effects Clip 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Clip Effect
-//>>group: Effects
-//>>description: Clips the element on and off like an old TV.
-//>>docs: http://api.jqueryui.com/clip-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectClip = $.effects.define( "clip", "hide", function( options, done ) {
-	var start,
-		animate = {},
-		element = $( this ),
-		direction = options.direction || "vertical",
-		both = direction === "both",
-		horizontal = both || direction === "horizontal",
-		vertical = both || direction === "vertical";
-
-	start = element.cssClip();
-	animate.clip = {
-		top: vertical ? ( start.bottom - start.top ) / 2 : start.top,
-		right: horizontal ? ( start.right - start.left ) / 2 : start.right,
-		bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom,
-		left: horizontal ? ( start.right - start.left ) / 2 : start.left
-	};
-
-	$.effects.createPlaceholder( element );
-
-	if ( options.mode === "show" ) {
-		element.cssClip( animate.clip );
-		animate.clip = start;
-	}
-
-	element.animate( animate, {
-		queue: false,
-		duration: options.duration,
-		easing: options.easing,
-		complete: done
-	} );
-
-} );
-
-
-/*!
- * jQuery UI Effects Drop 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Drop Effect
-//>>group: Effects
-//>>description: Moves an element in one direction and hides it at the same time.
-//>>docs: http://api.jqueryui.com/drop-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, done ) {
-
-	var distance,
-		element = $( this ),
-		mode = options.mode,
-		show = mode === "show",
-		direction = options.direction || "left",
-		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
-		motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=",
-		oppositeMotion = ( motion === "+=" ) ? "-=" : "+=",
-		animation = {
-			opacity: 0
-		};
-
-	$.effects.createPlaceholder( element );
-
-	distance = options.distance ||
-		element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2;
-
-	animation[ ref ] = motion + distance;
-
-	if ( show ) {
-		element.css( animation );
-
-		animation[ ref ] = oppositeMotion + distance;
-		animation.opacity = 1;
-	}
-
-	// Animate
-	element.animate( animation, {
-		queue: false,
-		duration: options.duration,
-		easing: options.easing,
-		complete: done
-	} );
-} );
-
-
-/*!
- * jQuery UI Effects Explode 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Explode Effect
-//>>group: Effects
-// jscs:disable maximumLineLength
-//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.
-// jscs:enable maximumLineLength
-//>>docs: http://api.jqueryui.com/explode-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) {
-
-	var i, j, left, top, mx, my,
-		rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3,
-		cells = rows,
-		element = $( this ),
-		mode = options.mode,
-		show = mode === "show",
-
-		// Show and then visibility:hidden the element before calculating offset
-		offset = element.show().css( "visibility", "hidden" ).offset(),
-
-		// Width and height of a piece
-		width = Math.ceil( element.outerWidth() / cells ),
-		height = Math.ceil( element.outerHeight() / rows ),
-		pieces = [];
-
-	// Children animate complete:
-	function childComplete() {
-		pieces.push( this );
-		if ( pieces.length === rows * cells ) {
-			animComplete();
-		}
-	}
-
-	// Clone the element for each row and cell.
-	for ( i = 0; i < rows; i++ ) { // ===>
-		top = offset.top + i * height;
-		my = i - ( rows - 1 ) / 2;
-
-		for ( j = 0; j < cells; j++ ) { // |||
-			left = offset.left + j * width;
-			mx = j - ( cells - 1 ) / 2;
-
-			// Create a clone of the now hidden main element that will be absolute positioned
-			// within a wrapper div off the -left and -top equal to size of our pieces
-			element
-				.clone()
-				.appendTo( "body" )
-				.wrap( "<div></div>" )
-				.css( {
-					position: "absolute",
-					visibility: "visible",
-					left: -j * width,
-					top: -i * height
-				} )
-
-				// Select the wrapper - make it overflow: hidden and absolute positioned based on
-				// where the original was located +left and +top equal to the size of pieces
-				.parent()
-					.addClass( "ui-effects-explode" )
-					.css( {
-						position: "absolute",
-						overflow: "hidden",
-						width: width,
-						height: height,
-						left: left + ( show ? mx * width : 0 ),
-						top: top + ( show ? my * height : 0 ),
-						opacity: show ? 0 : 1
-					} )
-					.animate( {
-						left: left + ( show ? 0 : mx * width ),
-						top: top + ( show ? 0 : my * height ),
-						opacity: show ? 1 : 0
-					}, options.duration || 500, options.easing, childComplete );
-		}
-	}
-
-	function animComplete() {
-		element.css( {
-			visibility: "visible"
-		} );
-		$( pieces ).remove();
-		done();
-	}
-} );
-
-
-/*!
- * jQuery UI Effects Fade 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Fade Effect
-//>>group: Effects
-//>>description: Fades the element.
-//>>docs: http://api.jqueryui.com/fade-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, done ) {
-	var show = options.mode === "show";
-
-	$( this )
-		.css( "opacity", show ? 0 : 1 )
-		.animate( {
-			opacity: show ? 1 : 0
-		}, {
-			queue: false,
-			duration: options.duration,
-			easing: options.easing,
-			complete: done
-		} );
-} );
-
-
-/*!
- * jQuery UI Effects Fold 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Fold Effect
-//>>group: Effects
-//>>description: Folds an element first horizontally and then vertically.
-//>>docs: http://api.jqueryui.com/fold-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectFold = $.effects.define( "fold", "hide", function( options, done ) {
-
-	// Create element
-	var element = $( this ),
-		mode = options.mode,
-		show = mode === "show",
-		hide = mode === "hide",
-		size = options.size || 15,
-		percent = /([0-9]+)%/.exec( size ),
-		horizFirst = !!options.horizFirst,
-		ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ],
-		duration = options.duration / 2,
-
-		placeholder = $.effects.createPlaceholder( element ),
-
-		start = element.cssClip(),
-		animation1 = { clip: $.extend( {}, start ) },
-		animation2 = { clip: $.extend( {}, start ) },
-
-		distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ],
-
-		queuelen = element.queue().length;
-
-	if ( percent ) {
-		size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];
-	}
-	animation1.clip[ ref[ 0 ] ] = size;
-	animation2.clip[ ref[ 0 ] ] = size;
-	animation2.clip[ ref[ 1 ] ] = 0;
-
-	if ( show ) {
-		element.cssClip( animation2.clip );
-		if ( placeholder ) {
-			placeholder.css( $.effects.clipToBox( animation2 ) );
-		}
-
-		animation2.clip = start;
-	}
-
-	// Animate
-	element
-		.queue( function( next ) {
-			if ( placeholder ) {
-				placeholder
-					.animate( $.effects.clipToBox( animation1 ), duration, options.easing )
-					.animate( $.effects.clipToBox( animation2 ), duration, options.easing );
-			}
-
-			next();
-		} )
-		.animate( animation1, duration, options.easing )
-		.animate( animation2, duration, options.easing )
-		.queue( done );
-
-	$.effects.unshift( element, queuelen, 4 );
-} );
-
-
-/*!
- * jQuery UI Effects Highlight 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Highlight Effect
-//>>group: Effects
-//>>description: Highlights the background of an element in a defined color for a custom duration.
-//>>docs: http://api.jqueryui.com/highlight-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectHighlight = $.effects.define( "highlight", "show", function( options, done ) {
-	var element = $( this ),
-		animation = {
-			backgroundColor: element.css( "backgroundColor" )
-		};
-
-	if ( options.mode === "hide" ) {
-		animation.opacity = 0;
-	}
-
-	$.effects.saveStyle( element );
-
-	element
-		.css( {
-			backgroundImage: "none",
-			backgroundColor: options.color || "#ffff99"
-		} )
-		.animate( animation, {
-			queue: false,
-			duration: options.duration,
-			easing: options.easing,
-			complete: done
-		} );
-} );
-
-
-/*!
- * jQuery UI Effects Size 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Size Effect
-//>>group: Effects
-//>>description: Resize an element to a specified width and height.
-//>>docs: http://api.jqueryui.com/size-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectSize = $.effects.define( "size", function( options, done ) {
-
-	// Create element
-	var baseline, factor, temp,
-		element = $( this ),
-
-		// Copy for children
-		cProps = [ "fontSize" ],
-		vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ],
-		hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ],
-
-		// Set options
-		mode = options.mode,
-		restore = mode !== "effect",
-		scale = options.scale || "both",
-		origin = options.origin || [ "middle", "center" ],
-		position = element.css( "position" ),
-		pos = element.position(),
-		original = $.effects.scaledDimensions( element ),
-		from = options.from || original,
-		to = options.to || $.effects.scaledDimensions( element, 0 );
-
-	$.effects.createPlaceholder( element );
-
-	if ( mode === "show" ) {
-		temp = from;
-		from = to;
-		to = temp;
-	}
-
-	// Set scaling factor
-	factor = {
-		from: {
-			y: from.height / original.height,
-			x: from.width / original.width
-		},
-		to: {
-			y: to.height / original.height,
-			x: to.width / original.width
-		}
-	};
-
-	// Scale the css box
-	if ( scale === "box" || scale === "both" ) {
-
-		// Vertical props scaling
-		if ( factor.from.y !== factor.to.y ) {
-			from = $.effects.setTransition( element, vProps, factor.from.y, from );
-			to = $.effects.setTransition( element, vProps, factor.to.y, to );
-		}
-
-		// Horizontal props scaling
-		if ( factor.from.x !== factor.to.x ) {
-			from = $.effects.setTransition( element, hProps, factor.from.x, from );
-			to = $.effects.setTransition( element, hProps, factor.to.x, to );
-		}
-	}
-
-	// Scale the content
-	if ( scale === "content" || scale === "both" ) {
-
-		// Vertical props scaling
-		if ( factor.from.y !== factor.to.y ) {
-			from = $.effects.setTransition( element, cProps, factor.from.y, from );
-			to = $.effects.setTransition( element, cProps, factor.to.y, to );
-		}
-	}
-
-	// Adjust the position properties based on the provided origin points
-	if ( origin ) {
-		baseline = $.effects.getBaseline( origin, original );
-		from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top;
-		from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left;
-		to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top;
-		to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left;
-	}
-	element.css( from );
-
-	// Animate the children if desired
-	if ( scale === "content" || scale === "both" ) {
-
-		vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps );
-		hProps = hProps.concat( [ "marginLeft", "marginRight" ] );
-
-		// Only animate children with width attributes specified
-		// TODO: is this right? should we include anything with css width specified as well
-		element.find( "*[width]" ).each( function() {
-			var child = $( this ),
-				childOriginal = $.effects.scaledDimensions( child ),
-				childFrom = {
-					height: childOriginal.height * factor.from.y,
-					width: childOriginal.width * factor.from.x,
-					outerHeight: childOriginal.outerHeight * factor.from.y,
-					outerWidth: childOriginal.outerWidth * factor.from.x
-				},
-				childTo = {
-					height: childOriginal.height * factor.to.y,
-					width: childOriginal.width * factor.to.x,
-					outerHeight: childOriginal.height * factor.to.y,
-					outerWidth: childOriginal.width * factor.to.x
-				};
-
-			// Vertical props scaling
-			if ( factor.from.y !== factor.to.y ) {
-				childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom );
-				childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo );
-			}
-
-			// Horizontal props scaling
-			if ( factor.from.x !== factor.to.x ) {
-				childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom );
-				childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo );
-			}
-
-			if ( restore ) {
-				$.effects.saveStyle( child );
-			}
-
-			// Animate children
-			child.css( childFrom );
-			child.animate( childTo, options.duration, options.easing, function() {
-
-				// Restore children
-				if ( restore ) {
-					$.effects.restoreStyle( child );
-				}
-			} );
-		} );
-	}
-
-	// Animate
-	element.animate( to, {
-		queue: false,
-		duration: options.duration,
-		easing: options.easing,
-		complete: function() {
-
-			var offset = element.offset();
-
-			if ( to.opacity === 0 ) {
-				element.css( "opacity", from.opacity );
-			}
-
-			if ( !restore ) {
-				element
-					.css( "position", position === "static" ? "relative" : position )
-					.offset( offset );
-
-				// Need to save style here so that automatic style restoration
-				// doesn't restore to the original styles from before the animation.
-				$.effects.saveStyle( element );
-			}
-
-			done();
-		}
-	} );
-
-} );
-
-
-/*!
- * jQuery UI Effects Scale 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Scale Effect
-//>>group: Effects
-//>>description: Grows or shrinks an element and its content.
-//>>docs: http://api.jqueryui.com/scale-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectScale = $.effects.define( "scale", function( options, done ) {
-
-	// Create element
-	var el = $( this ),
-		mode = options.mode,
-		percent = parseInt( options.percent, 10 ) ||
-			( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== "effect" ? 0 : 100 ) ),
-
-		newOptions = $.extend( true, {
-			from: $.effects.scaledDimensions( el ),
-			to: $.effects.scaledDimensions( el, percent, options.direction || "both" ),
-			origin: options.origin || [ "middle", "center" ]
-		}, options );
-
-	// Fade option to support puff
-	if ( options.fade ) {
-		newOptions.from.opacity = 1;
-		newOptions.to.opacity = 0;
-	}
-
-	$.effects.effect.size.call( this, newOptions, done );
-} );
-
-
-/*!
- * jQuery UI Effects Puff 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Puff Effect
-//>>group: Effects
-//>>description: Creates a puff effect by scaling the element up and hiding it at the same time.
-//>>docs: http://api.jqueryui.com/puff-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, done ) {
-	var newOptions = $.extend( true, {}, options, {
-		fade: true,
-		percent: parseInt( options.percent, 10 ) || 150
-	} );
-
-	$.effects.effect.scale.call( this, newOptions, done );
-} );
-
-
-/*!
- * jQuery UI Effects Pulsate 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Pulsate Effect
-//>>group: Effects
-//>>description: Pulsates an element n times by changing the opacity to zero and back.
-//>>docs: http://api.jqueryui.com/pulsate-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( options, done ) {
-	var element = $( this ),
-		mode = options.mode,
-		show = mode === "show",
-		hide = mode === "hide",
-		showhide = show || hide,
-
-		// Showing or hiding leaves off the "last" animation
-		anims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
-		duration = options.duration / anims,
-		animateTo = 0,
-		i = 1,
-		queuelen = element.queue().length;
-
-	if ( show || !element.is( ":visible" ) ) {
-		element.css( "opacity", 0 ).show();
-		animateTo = 1;
-	}
-
-	// Anims - 1 opacity "toggles"
-	for ( ; i < anims; i++ ) {
-		element.animate( { opacity: animateTo }, duration, options.easing );
-		animateTo = 1 - animateTo;
-	}
-
-	element.animate( { opacity: animateTo }, duration, options.easing );
-
-	element.queue( done );
-
-	$.effects.unshift( element, queuelen, anims + 1 );
-} );
-
-
-/*!
- * jQuery UI Effects Shake 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Shake Effect
-//>>group: Effects
-//>>description: Shakes an element horizontally or vertically n times.
-//>>docs: http://api.jqueryui.com/shake-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectShake = $.effects.define( "shake", function( options, done ) {
-
-	var i = 1,
-		element = $( this ),
-		direction = options.direction || "left",
-		distance = options.distance || 20,
-		times = options.times || 3,
-		anims = times * 2 + 1,
-		speed = Math.round( options.duration / anims ),
-		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
-		positiveMotion = ( direction === "up" || direction === "left" ),
-		animation = {},
-		animation1 = {},
-		animation2 = {},
-
-		queuelen = element.queue().length;
-
-	$.effects.createPlaceholder( element );
-
-	// Animation
-	animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance;
-	animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2;
-	animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2;
-
-	// Animate
-	element.animate( animation, speed, options.easing );
-
-	// Shakes
-	for ( ; i < times; i++ ) {
-		element
-			.animate( animation1, speed, options.easing )
-			.animate( animation2, speed, options.easing );
-	}
-
-	element
-		.animate( animation1, speed, options.easing )
-		.animate( animation, speed / 2, options.easing )
-		.queue( done );
-
-	$.effects.unshift( element, queuelen, anims + 1 );
-} );
-
-
-/*!
- * jQuery UI Effects Slide 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Slide Effect
-//>>group: Effects
-//>>description: Slides an element in and out of the viewport.
-//>>docs: http://api.jqueryui.com/slide-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effectsEffectSlide = $.effects.define( "slide", "show", function( options, done ) {
-	var startClip, startRef,
-		element = $( this ),
-		map = {
-			up: [ "bottom", "top" ],
-			down: [ "top", "bottom" ],
-			left: [ "right", "left" ],
-			right: [ "left", "right" ]
-		},
-		mode = options.mode,
-		direction = options.direction || "left",
-		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
-		positiveMotion = ( direction === "up" || direction === "left" ),
-		distance = options.distance ||
-			element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ),
-		animation = {};
-
-	$.effects.createPlaceholder( element );
-
-	startClip = element.cssClip();
-	startRef = element.position()[ ref ];
-
-	// Define hide animation
-	animation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef;
-	animation.clip = element.cssClip();
-	animation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ];
-
-	// Reverse the animation if we're showing
-	if ( mode === "show" ) {
-		element.cssClip( animation.clip );
-		element.css( ref, animation[ ref ] );
-		animation.clip = startClip;
-		animation[ ref ] = startRef;
-	}
-
-	// Actually animate
-	element.animate( animation, {
-		queue: false,
-		duration: options.duration,
-		easing: options.easing,
-		complete: done
-	} );
-} );
-
-
-/*!
- * jQuery UI Effects Transfer 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Transfer Effect
-//>>group: Effects
-//>>description: Displays a transfer effect from one element to another.
-//>>docs: http://api.jqueryui.com/transfer-effect/
-//>>demos: http://jqueryui.com/effect/
-
-
-
-var effect;
-if ( $.uiBackCompat !== false ) {
-	effect = $.effects.define( "transfer", function( options, done ) {
-		$( this ).transfer( options, done );
-	} );
-}
-var effectsEffectTransfer = effect;
-
-
-/*!
- * jQuery UI Focusable 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: :focusable Selector
-//>>group: Core
-//>>description: Selects elements which can be focused.
-//>>docs: http://api.jqueryui.com/focusable-selector/
-
-
-
-// Selectors
-$.ui.focusable = function( element, hasTabindex ) {
-	var map, mapName, img, focusableIfVisible, fieldset,
-		nodeName = element.nodeName.toLowerCase();
-
-	if ( "area" === nodeName ) {
-		map = element.parentNode;
-		mapName = map.name;
-		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
-			return false;
-		}
-		img = $( "img[usemap='#" + mapName + "']" );
-		return img.length > 0 && img.is( ":visible" );
-	}
-
-	if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {
-		focusableIfVisible = !element.disabled;
-
-		if ( focusableIfVisible ) {
-
-			// Form controls within a disabled fieldset are disabled.
-			// However, controls within the fieldset's legend do not get disabled.
-			// Since controls generally aren't placed inside legends, we skip
-			// this portion of the check.
-			fieldset = $( element ).closest( "fieldset" )[ 0 ];
-			if ( fieldset ) {
-				focusableIfVisible = !fieldset.disabled;
-			}
-		}
-	} else if ( "a" === nodeName ) {
-		focusableIfVisible = element.href || hasTabindex;
-	} else {
-		focusableIfVisible = hasTabindex;
-	}
-
-	return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) );
-};
-
-// Support: IE 8 only
-// IE 8 doesn't resolve inherit to visible/hidden for computed values
-function visible( element ) {
-	var visibility = element.css( "visibility" );
-	while ( visibility === "inherit" ) {
-		element = element.parent();
-		visibility = element.css( "visibility" );
-	}
-	return visibility !== "hidden";
-}
-
-$.extend( $.expr[ ":" ], {
-	focusable: function( element ) {
-		return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
-	}
-} );
-
-var focusable = $.ui.focusable;
-
-
-
-
-// Support: IE8 Only
-// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
-// with a string, so we need to find the proper form.
-var form = $.fn.form = function() {
-	return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
-};
-
-
-/*!
- * jQuery UI Form Reset Mixin 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Form Reset Mixin
-//>>group: Core
-//>>description: Refresh input widgets when their form is reset
-//>>docs: http://api.jqueryui.com/form-reset-mixin/
-
-
-
-var formResetMixin = $.ui.formResetMixin = {
-	_formResetHandler: function() {
-		var form = $( this );
-
-		// Wait for the form reset to actually happen before refreshing
-		setTimeout( function() {
-			var instances = form.data( "ui-form-reset-instances" );
-			$.each( instances, function() {
-				this.refresh();
-			} );
-		} );
-	},
-
-	_bindFormResetHandler: function() {
-		this.form = this.element.form();
-		if ( !this.form.length ) {
-			return;
-		}
-
-		var instances = this.form.data( "ui-form-reset-instances" ) || [];
-		if ( !instances.length ) {
-
-			// We don't use _on() here because we use a single event handler per form
-			this.form.on( "reset.ui-form-reset", this._formResetHandler );
-		}
-		instances.push( this );
-		this.form.data( "ui-form-reset-instances", instances );
-	},
-
-	_unbindFormResetHandler: function() {
-		if ( !this.form.length ) {
-			return;
-		}
-
-		var instances = this.form.data( "ui-form-reset-instances" );
-		instances.splice( $.inArray( this, instances ), 1 );
-		if ( instances.length ) {
-			this.form.data( "ui-form-reset-instances", instances );
-		} else {
-			this.form
-				.removeData( "ui-form-reset-instances" )
-				.off( "reset.ui-form-reset" );
-		}
-	}
-};
-
-
-/*!
- * jQuery UI Support for jQuery core 1.7.x 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- *
- */
-
-//>>label: jQuery 1.7 Support
-//>>group: Core
-//>>description: Support version 1.7.x of jQuery core
-
-
-
-// Support: jQuery 1.7 only
-// Not a great way to check versions, but since we only support 1.7+ and only
-// need to detect <1.8, this is a simple check that should suffice. Checking
-// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0
-// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting
-// 1.7 anymore). See #11197 for why we're not using feature detection.
-if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) {
-
-	// Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight()
-	// Unlike jQuery Core 1.8+, these only support numeric values to set the
-	// dimensions in pixels
-	$.each( [ "Width", "Height" ], function( i, name ) {
-		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
-			type = name.toLowerCase(),
-			orig = {
-				innerWidth: $.fn.innerWidth,
-				innerHeight: $.fn.innerHeight,
-				outerWidth: $.fn.outerWidth,
-				outerHeight: $.fn.outerHeight
-			};
-
-		function reduce( elem, size, border, margin ) {
-			$.each( side, function() {
-				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
-				if ( border ) {
-					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
-				}
-				if ( margin ) {
-					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
-				}
-			} );
-			return size;
-		}
-
-		$.fn[ "inner" + name ] = function( size ) {
-			if ( size === undefined ) {
-				return orig[ "inner" + name ].call( this );
-			}
-
-			return this.each( function() {
-				$( this ).css( type, reduce( this, size ) + "px" );
-			} );
-		};
-
-		$.fn[ "outer" + name ] = function( size, margin ) {
-			if ( typeof size !== "number" ) {
-				return orig[ "outer" + name ].call( this, size );
-			}
-
-			return this.each( function() {
-				$( this ).css( type, reduce( this, size, true, margin ) + "px" );
-			} );
-		};
-	} );
-
-	$.fn.addBack = function( selector ) {
-		return this.add( selector == null ?
-			this.prevObject : this.prevObject.filter( selector )
-		);
-	};
-}
-
-;
-/*!
- * jQuery UI Keycode 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Keycode
-//>>group: Core
-//>>description: Provide keycodes as keynames
-//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/
-
-
-var keycode = $.ui.keyCode = {
-	BACKSPACE: 8,
-	COMMA: 188,
-	DELETE: 46,
-	DOWN: 40,
-	END: 35,
-	ENTER: 13,
-	ESCAPE: 27,
-	HOME: 36,
-	LEFT: 37,
-	PAGE_DOWN: 34,
-	PAGE_UP: 33,
-	PERIOD: 190,
-	RIGHT: 39,
-	SPACE: 32,
-	TAB: 9,
-	UP: 38
-};
-
-
-
-
-// Internal use only
-var escapeSelector = $.ui.escapeSelector = ( function() {
-	var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;
-	return function( selector ) {
-		return selector.replace( selectorEscape, "\\$1" );
-	};
-} )();
-
-
-/*!
- * jQuery UI Labels 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: labels
-//>>group: Core
-//>>description: Find all the labels associated with a given input
-//>>docs: http://api.jqueryui.com/labels/
-
-
-
-var labels = $.fn.labels = function() {
-	var ancestor, selector, id, labels, ancestors;
-
-	// Check control.labels first
-	if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
-		return this.pushStack( this[ 0 ].labels );
-	}
-
-	// Support: IE <= 11, FF <= 37, Android <= 2.3 only
-	// Above browsers do not support control.labels. Everything below is to support them
-	// as well as document fragments. control.labels does not work on document fragments
-	labels = this.eq( 0 ).parents( "label" );
-
-	// Look for the label based on the id
-	id = this.attr( "id" );
-	if ( id ) {
-
-		// We don't search against the document in case the element
-		// is disconnected from the DOM
-		ancestor = this.eq( 0 ).parents().last();
-
-		// Get a full set of top level ancestors
-		ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
-
-		// Create a selector for the label based on the id
-		selector = "label[for='" + $.ui.escapeSelector( id ) + "']";
-
-		labels = labels.add( ancestors.find( selector ).addBack( selector ) );
-
-	}
-
-	// Return whatever we have found for labels
-	return this.pushStack( labels );
-};
-
-
-/*!
- * jQuery UI Scroll Parent 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: scrollParent
-//>>group: Core
-//>>description: Get the closest ancestor element that is scrollable.
-//>>docs: http://api.jqueryui.com/scrollParent/
-
-
-
-var scrollParent = $.fn.scrollParent = function( includeHidden ) {
-	var position = this.css( "position" ),
-		excludeStaticParent = position === "absolute",
-		overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
-		scrollParent = this.parents().filter( function() {
-			var parent = $( this );
-			if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
-				return false;
-			}
-			return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) +
-				parent.css( "overflow-x" ) );
-		} ).eq( 0 );
-
-	return position === "fixed" || !scrollParent.length ?
-		$( this[ 0 ].ownerDocument || document ) :
-		scrollParent;
-};
-
-
-/*!
- * jQuery UI Tabbable 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: :tabbable Selector
-//>>group: Core
-//>>description: Selects elements which can be tabbed to.
-//>>docs: http://api.jqueryui.com/tabbable-selector/
-
-
-
-var tabbable = $.extend( $.expr[ ":" ], {
-	tabbable: function( element ) {
-		var tabIndex = $.attr( element, "tabindex" ),
-			hasTabindex = tabIndex != null;
-		return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );
-	}
-} );
-
-
-/*!
- * jQuery UI Unique ID 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: uniqueId
-//>>group: Core
-//>>description: Functions to generate and remove uniqueId's
-//>>docs: http://api.jqueryui.com/uniqueId/
-
-
-
-var uniqueId = $.fn.extend( {
-	uniqueId: ( function() {
-		var uuid = 0;
-
-		return function() {
-			return this.each( function() {
-				if ( !this.id ) {
-					this.id = "ui-id-" + ( ++uuid );
-				}
-			} );
-		};
-	} )(),
-
-	removeUniqueId: function() {
-		return this.each( function() {
-			if ( /^ui-id-\d+$/.test( this.id ) ) {
-				$( this ).removeAttr( "id" );
-			}
-		} );
-	}
-} );
-
-
-/*!
- * jQuery UI Accordion 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Accordion
-//>>group: Widgets
-// jscs:disable maximumLineLength
-//>>description: Displays collapsible content panels for presenting information in a limited amount of space.
-// jscs:enable maximumLineLength
-//>>docs: http://api.jqueryui.com/accordion/
-//>>demos: http://jqueryui.com/accordion/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/accordion.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-var widgetsAccordion = $.widget( "ui.accordion", {
-	version: "1.12.0",
-	options: {
-		active: 0,
-		animate: {},
-		classes: {
-			"ui-accordion-header": "ui-corner-top",
-			"ui-accordion-header-collapsed": "ui-corner-all",
-			"ui-accordion-content": "ui-corner-bottom"
-		},
-		collapsible: false,
-		event: "click",
-		header: "> li > :first-child, > :not(li):even",
-		heightStyle: "auto",
-		icons: {
-			activeHeader: "ui-icon-triangle-1-s",
-			header: "ui-icon-triangle-1-e"
-		},
-
-		// Callbacks
-		activate: null,
-		beforeActivate: null
-	},
-
-	hideProps: {
-		borderTopWidth: "hide",
-		borderBottomWidth: "hide",
-		paddingTop: "hide",
-		paddingBottom: "hide",
-		height: "hide"
-	},
-
-	showProps: {
-		borderTopWidth: "show",
-		borderBottomWidth: "show",
-		paddingTop: "show",
-		paddingBottom: "show",
-		height: "show"
-	},
-
-	_create: function() {
-		var options = this.options;
-
-		this.prevShow = this.prevHide = $();
-		this._addClass( "ui-accordion", "ui-widget ui-helper-reset" );
-		this.element.attr( "role", "tablist" );
-
-		// Don't allow collapsible: false and active: false / null
-		if ( !options.collapsible && ( options.active === false || options.active == null ) ) {
-			options.active = 0;
-		}
-
-		this._processPanels();
-
-		// handle negative values
-		if ( options.active < 0 ) {
-			options.active += this.headers.length;
-		}
-		this._refresh();
-	},
-
-	_getCreateEventData: function() {
-		return {
-			header: this.active,
-			panel: !this.active.length ? $() : this.active.next()
-		};
-	},
-
-	_createIcons: function() {
-		var icon, children,
-			icons = this.options.icons;
-
-		if ( icons ) {
-			icon = $( "<span>" );
-			this._addClass( icon, "ui-accordion-header-icon", "ui-icon " + icons.header );
-			icon.prependTo( this.headers );
-			children = this.active.children( ".ui-accordion-header-icon" );
-			this._removeClass( children, icons.header )
-				._addClass( children, null, icons.activeHeader )
-				._addClass( this.headers, "ui-accordion-icons" );
-		}
-	},
-
-	_destroyIcons: function() {
-		this._removeClass( this.headers, "ui-accordion-icons" );
-		this.headers.children( ".ui-accordion-header-icon" ).remove();
-	},
-
-	_destroy: function() {
-		var contents;
-
-		// Clean up main element
-		this.element.removeAttr( "role" );
-
-		// Clean up headers
-		this.headers
-			.removeAttr( "role aria-expanded aria-selected aria-controls tabIndex" )
-			.removeUniqueId();
-
-		this._destroyIcons();
-
-		// Clean up content panels
-		contents = this.headers.next()
-			.css( "display", "" )
-			.removeAttr( "role aria-hidden aria-labelledby" )
-			.removeUniqueId();
-
-		if ( this.options.heightStyle !== "content" ) {
-			contents.css( "height", "" );
-		}
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "active" ) {
-
-			// _activate() will handle invalid values and update this.options
-			this._activate( value );
-			return;
-		}
-
-		if ( key === "event" ) {
-			if ( this.options.event ) {
-				this._off( this.headers, this.options.event );
-			}
-			this._setupEvents( value );
-		}
-
-		this._super( key, value );
-
-		// Setting collapsible: false while collapsed; open first panel
-		if ( key === "collapsible" && !value && this.options.active === false ) {
-			this._activate( 0 );
-		}
-
-		if ( key === "icons" ) {
-			this._destroyIcons();
-			if ( value ) {
-				this._createIcons();
-			}
-		}
-	},
-
-	_setOptionDisabled: function( value ) {
-		this._super( value );
-
-		this.element.attr( "aria-disabled", value );
-
-		// Support: IE8 Only
-		// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE
-		// so we need to add the disabled class to the headers and panels
-		this._toggleClass( null, "ui-state-disabled", !!value );
-		this._toggleClass( this.headers.add( this.headers.next() ), null, "ui-state-disabled",
-			!!value );
-	},
-
-	_keydown: function( event ) {
-		if ( event.altKey || event.ctrlKey ) {
-			return;
-		}
-
-		var keyCode = $.ui.keyCode,
-			length = this.headers.length,
-			currentIndex = this.headers.index( event.target ),
-			toFocus = false;
-
-		switch ( event.keyCode ) {
-		case keyCode.RIGHT:
-		case keyCode.DOWN:
-			toFocus = this.headers[ ( currentIndex + 1 ) % length ];
-			break;
-		case keyCode.LEFT:
-		case keyCode.UP:
-			toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
-			break;
-		case keyCode.SPACE:
-		case keyCode.ENTER:
-			this._eventHandler( event );
-			break;
-		case keyCode.HOME:
-			toFocus = this.headers[ 0 ];
-			break;
-		case keyCode.END:
-			toFocus = this.headers[ length - 1 ];
-			break;
-		}
-
-		if ( toFocus ) {
-			$( event.target ).attr( "tabIndex", -1 );
-			$( toFocus ).attr( "tabIndex", 0 );
-			$( toFocus ).trigger( "focus" );
-			event.preventDefault();
-		}
-	},
-
-	_panelKeyDown: function( event ) {
-		if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
-			$( event.currentTarget ).prev().trigger( "focus" );
-		}
-	},
-
-	refresh: function() {
-		var options = this.options;
-		this._processPanels();
-
-		// Was collapsed or no panel
-		if ( ( options.active === false && options.collapsible === true ) ||
-				!this.headers.length ) {
-			options.active = false;
-			this.active = $();
-
-		// active false only when collapsible is true
-		} else if ( options.active === false ) {
-			this._activate( 0 );
-
-		// was active, but active panel is gone
-		} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
-
-			// all remaining panel are disabled
-			if ( this.headers.length === this.headers.find( ".ui-state-disabled" ).length ) {
-				options.active = false;
-				this.active = $();
-
-			// activate previous panel
-			} else {
-				this._activate( Math.max( 0, options.active - 1 ) );
-			}
-
-		// was active, active panel still exists
-		} else {
-
-			// make sure active index is correct
-			options.active = this.headers.index( this.active );
-		}
-
-		this._destroyIcons();
-
-		this._refresh();
-	},
-
-	_processPanels: function() {
-		var prevHeaders = this.headers,
-			prevPanels = this.panels;
-
-		this.headers = this.element.find( this.options.header );
-		this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed",
-			"ui-state-default" );
-
-		this.panels = this.headers.next().filter( ":not(.ui-accordion-content-active)" ).hide();
-		this._addClass( this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content" );
-
-		// Avoid memory leaks (#10056)
-		if ( prevPanels ) {
-			this._off( prevHeaders.not( this.headers ) );
-			this._off( prevPanels.not( this.panels ) );
-		}
-	},
-
-	_refresh: function() {
-		var maxHeight,
-			options = this.options,
-			heightStyle = options.heightStyle,
-			parent = this.element.parent();
-
-		this.active = this._findActive( options.active );
-		this._addClass( this.active, "ui-accordion-header-active", "ui-state-active" )
-			._removeClass( this.active, "ui-accordion-header-collapsed" );
-		this._addClass( this.active.next(), "ui-accordion-content-active" );
-		this.active.next().show();
-
-		this.headers
-			.attr( "role", "tab" )
-			.each( function() {
-				var header = $( this ),
-					headerId = header.uniqueId().attr( "id" ),
-					panel = header.next(),
-					panelId = panel.uniqueId().attr( "id" );
-				header.attr( "aria-controls", panelId );
-				panel.attr( "aria-labelledby", headerId );
-			} )
-			.next()
-				.attr( "role", "tabpanel" );
-
-		this.headers
-			.not( this.active )
-				.attr( {
-					"aria-selected": "false",
-					"aria-expanded": "false",
-					tabIndex: -1
-				} )
-				.next()
-					.attr( {
-						"aria-hidden": "true"
-					} )
-					.hide();
-
-		// Make sure at least one header is in the tab order
-		if ( !this.active.length ) {
-			this.headers.eq( 0 ).attr( "tabIndex", 0 );
-		} else {
-			this.active.attr( {
-				"aria-selected": "true",
-				"aria-expanded": "true",
-				tabIndex: 0
-			} )
-				.next()
-					.attr( {
-						"aria-hidden": "false"
-					} );
-		}
-
-		this._createIcons();
-
-		this._setupEvents( options.event );
-
-		if ( heightStyle === "fill" ) {
-			maxHeight = parent.height();
-			this.element.siblings( ":visible" ).each( function() {
-				var elem = $( this ),
-					position = elem.css( "position" );
-
-				if ( position === "absolute" || position === "fixed" ) {
-					return;
-				}
-				maxHeight -= elem.outerHeight( true );
-			} );
-
-			this.headers.each( function() {
-				maxHeight -= $( this ).outerHeight( true );
-			} );
-
-			this.headers.next()
-				.each( function() {
-					$( this ).height( Math.max( 0, maxHeight -
-						$( this ).innerHeight() + $( this ).height() ) );
-				} )
-				.css( "overflow", "auto" );
-		} else if ( heightStyle === "auto" ) {
-			maxHeight = 0;
-			this.headers.next()
-				.each( function() {
-					var isVisible = $( this ).is( ":visible" );
-					if ( !isVisible ) {
-						$( this ).show();
-					}
-					maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
-					if ( !isVisible ) {
-						$( this ).hide();
-					}
-				} )
-				.height( maxHeight );
-		}
-	},
-
-	_activate: function( index ) {
-		var active = this._findActive( index )[ 0 ];
-
-		// Trying to activate the already active panel
-		if ( active === this.active[ 0 ] ) {
-			return;
-		}
-
-		// Trying to collapse, simulate a click on the currently active header
-		active = active || this.active[ 0 ];
-
-		this._eventHandler( {
-			target: active,
-			currentTarget: active,
-			preventDefault: $.noop
-		} );
-	},
-
-	_findActive: function( selector ) {
-		return typeof selector === "number" ? this.headers.eq( selector ) : $();
-	},
-
-	_setupEvents: function( event ) {
-		var events = {
-			keydown: "_keydown"
-		};
-		if ( event ) {
-			$.each( event.split( " " ), function( index, eventName ) {
-				events[ eventName ] = "_eventHandler";
-			} );
-		}
-
-		this._off( this.headers.add( this.headers.next() ) );
-		this._on( this.headers, events );
-		this._on( this.headers.next(), { keydown: "_panelKeyDown" } );
-		this._hoverable( this.headers );
-		this._focusable( this.headers );
-	},
-
-	_eventHandler: function( event ) {
-		var activeChildren, clickedChildren,
-			options = this.options,
-			active = this.active,
-			clicked = $( event.currentTarget ),
-			clickedIsActive = clicked[ 0 ] === active[ 0 ],
-			collapsing = clickedIsActive && options.collapsible,
-			toShow = collapsing ? $() : clicked.next(),
-			toHide = active.next(),
-			eventData = {
-				oldHeader: active,
-				oldPanel: toHide,
-				newHeader: collapsing ? $() : clicked,
-				newPanel: toShow
-			};
-
-		event.preventDefault();
-
-		if (
-
-				// click on active header, but not collapsible
-				( clickedIsActive && !options.collapsible ) ||
-
-				// allow canceling activation
-				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
-			return;
-		}
-
-		options.active = collapsing ? false : this.headers.index( clicked );
-
-		// When the call to ._toggle() comes after the class changes
-		// it causes a very odd bug in IE 8 (see #6720)
-		this.active = clickedIsActive ? $() : clicked;
-		this._toggle( eventData );
-
-		// Switch classes
-		// corner classes on the previously active header stay after the animation
-		this._removeClass( active, "ui-accordion-header-active", "ui-state-active" );
-		if ( options.icons ) {
-			activeChildren = active.children( ".ui-accordion-header-icon" );
-			this._removeClass( activeChildren, null, options.icons.activeHeader )
-				._addClass( activeChildren, null, options.icons.header );
-		}
-
-		if ( !clickedIsActive ) {
-			this._removeClass( clicked, "ui-accordion-header-collapsed" )
-				._addClass( clicked, "ui-accordion-header-active", "ui-state-active" );
-			if ( options.icons ) {
-				clickedChildren = clicked.children( ".ui-accordion-header-icon" );
-				this._removeClass( clickedChildren, null, options.icons.header )
-					._addClass( clickedChildren, null, options.icons.activeHeader );
-			}
-
-			this._addClass( clicked.next(), "ui-accordion-content-active" );
-		}
-	},
-
-	_toggle: function( data ) {
-		var toShow = data.newPanel,
-			toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
-
-		// Handle activating a panel during the animation for another activation
-		this.prevShow.add( this.prevHide ).stop( true, true );
-		this.prevShow = toShow;
-		this.prevHide = toHide;
-
-		if ( this.options.animate ) {
-			this._animate( toShow, toHide, data );
-		} else {
-			toHide.hide();
-			toShow.show();
-			this._toggleComplete( data );
-		}
-
-		toHide.attr( {
-			"aria-hidden": "true"
-		} );
-		toHide.prev().attr( {
-			"aria-selected": "false",
-			"aria-expanded": "false"
-		} );
-
-		// if we're switching panels, remove the old header from the tab order
-		// if we're opening from collapsed state, remove the previous header from the tab order
-		// if we're collapsing, then keep the collapsing header in the tab order
-		if ( toShow.length && toHide.length ) {
-			toHide.prev().attr( {
-				"tabIndex": -1,
-				"aria-expanded": "false"
-			} );
-		} else if ( toShow.length ) {
-			this.headers.filter( function() {
-				return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0;
-			} )
-				.attr( "tabIndex", -1 );
-		}
-
-		toShow
-			.attr( "aria-hidden", "false" )
-			.prev()
-				.attr( {
-					"aria-selected": "true",
-					"aria-expanded": "true",
-					tabIndex: 0
-				} );
-	},
-
-	_animate: function( toShow, toHide, data ) {
-		var total, easing, duration,
-			that = this,
-			adjust = 0,
-			boxSizing = toShow.css( "box-sizing" ),
-			down = toShow.length &&
-				( !toHide.length || ( toShow.index() < toHide.index() ) ),
-			animate = this.options.animate || {},
-			options = down && animate.down || animate,
-			complete = function() {
-				that._toggleComplete( data );
-			};
-
-		if ( typeof options === "number" ) {
-			duration = options;
-		}
-		if ( typeof options === "string" ) {
-			easing = options;
-		}
-
-		// fall back from options to animation in case of partial down settings
-		easing = easing || options.easing || animate.easing;
-		duration = duration || options.duration || animate.duration;
-
-		if ( !toHide.length ) {
-			return toShow.animate( this.showProps, duration, easing, complete );
-		}
-		if ( !toShow.length ) {
-			return toHide.animate( this.hideProps, duration, easing, complete );
-		}
-
-		total = toShow.show().outerHeight();
-		toHide.animate( this.hideProps, {
-			duration: duration,
-			easing: easing,
-			step: function( now, fx ) {
-				fx.now = Math.round( now );
-			}
-		} );
-		toShow
-			.hide()
-			.animate( this.showProps, {
-				duration: duration,
-				easing: easing,
-				complete: complete,
-				step: function( now, fx ) {
-					fx.now = Math.round( now );
-					if ( fx.prop !== "height" ) {
-						if ( boxSizing === "content-box" ) {
-							adjust += fx.now;
-						}
-					} else if ( that.options.heightStyle !== "content" ) {
-						fx.now = Math.round( total - toHide.outerHeight() - adjust );
-						adjust = 0;
-					}
-				}
-			} );
-	},
-
-	_toggleComplete: function( data ) {
-		var toHide = data.oldPanel,
-			prev = toHide.prev();
-
-		this._removeClass( toHide, "ui-accordion-content-active" );
-		this._removeClass( prev, "ui-accordion-header-active" )
-			._addClass( prev, "ui-accordion-header-collapsed" );
-
-		// Work around for rendering bug in IE (#5421)
-		if ( toHide.length ) {
-			toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;
-		}
-		this._trigger( "activate", null, data );
-	}
-} );
-
-
-
-var safeActiveElement = $.ui.safeActiveElement = function( document ) {
-	var activeElement;
-
-	// Support: IE 9 only
-	// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
-	try {
-		activeElement = document.activeElement;
-	} catch ( error ) {
-		activeElement = document.body;
-	}
-
-	// Support: IE 9 - 11 only
-	// IE may return null instead of an element
-	// Interestingly, this only seems to occur when NOT in an iframe
-	if ( !activeElement ) {
-		activeElement = document.body;
-	}
-
-	// Support: IE 11 only
-	// IE11 returns a seemingly empty object in some cases when accessing
-	// document.activeElement from an <iframe>
-	if ( !activeElement.nodeName ) {
-		activeElement = document.body;
-	}
-
-	return activeElement;
-};
-
-
-/*!
- * jQuery UI Menu 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Menu
-//>>group: Widgets
-//>>description: Creates nestable menus.
-//>>docs: http://api.jqueryui.com/menu/
-//>>demos: http://jqueryui.com/menu/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/menu.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-var widgetsMenu = $.widget( "ui.menu", {
-	version: "1.12.0",
-	defaultElement: "<ul>",
-	delay: 300,
-	options: {
-		icons: {
-			submenu: "ui-icon-caret-1-e"
-		},
-		items: "> *",
-		menus: "ul",
-		position: {
-			my: "left top",
-			at: "right top"
-		},
-		role: "menu",
-
-		// Callbacks
-		blur: null,
-		focus: null,
-		select: null
-	},
-
-	_create: function() {
-		this.activeMenu = this.element;
-
-		// Flag used to prevent firing of the click handler
-		// as the event bubbles up through nested menus
-		this.mouseHandled = false;
-		this.element
-			.uniqueId()
-			.attr( {
-				role: this.options.role,
-				tabIndex: 0
-			} );
-
-		this._addClass( "ui-menu", "ui-widget ui-widget-content" );
-		this._on( {
-
-			// Prevent focus from sticking to links inside menu after clicking
-			// them (focus should always stay on UL during navigation).
-			"mousedown .ui-menu-item": function( event ) {
-				event.preventDefault();
-			},
-			"click .ui-menu-item": function( event ) {
-				var target = $( event.target );
-				var active = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
-				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
-					this.select( event );
-
-					// Only set the mouseHandled flag if the event will bubble, see #9469.
-					if ( !event.isPropagationStopped() ) {
-						this.mouseHandled = true;
-					}
-
-					// Open submenu on click
-					if ( target.has( ".ui-menu" ).length ) {
-						this.expand( event );
-					} else if ( !this.element.is( ":focus" ) &&
-							active.closest( ".ui-menu" ).length ) {
-
-						// Redirect focus to the menu
-						this.element.trigger( "focus", [ true ] );
-
-						// If the active item is on the top level, let it stay active.
-						// Otherwise, blur the active item since it is no longer visible.
-						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
-							clearTimeout( this.timer );
-						}
-					}
-				}
-			},
-			"mouseenter .ui-menu-item": function( event ) {
-
-				// Ignore mouse events while typeahead is active, see #10458.
-				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
-				// is over an item in the menu
-				if ( this.previousFilter ) {
-					return;
-				}
-
-				var actualTarget = $( event.target ).closest( ".ui-menu-item" ),
-					target = $( event.currentTarget );
-
-				// Ignore bubbled events on parent items, see #11641
-				if ( actualTarget[ 0 ] !== target[ 0 ] ) {
-					return;
-				}
-
-				// Remove ui-state-active class from siblings of the newly focused menu item
-				// to avoid a jump caused by adjacent elements both having a class with a border
-				this._removeClass( target.siblings().children( ".ui-state-active" ),
-					null, "ui-state-active" );
-				this.focus( event, target );
-			},
-			mouseleave: "collapseAll",
-			"mouseleave .ui-menu": "collapseAll",
-			focus: function( event, keepActiveItem ) {
-
-				// If there's already an active item, keep it active
-				// If not, activate the first item
-				var item = this.active || this.element.find( this.options.items ).eq( 0 );
-
-				if ( !keepActiveItem ) {
-					this.focus( event, item );
-				}
-			},
-			blur: function( event ) {
-				this._delay( function() {
-					var notContained = !$.contains(
-						this.element[ 0 ],
-						$.ui.safeActiveElement( this.document[ 0 ] )
-					);
-					if ( notContained ) {
-						this.collapseAll( event );
-					}
-				} );
-			},
-			keydown: "_keydown"
-		} );
-
-		this.refresh();
-
-		// Clicks outside of a menu collapse any open menus
-		this._on( this.document, {
-			click: function( event ) {
-				if ( this._closeOnDocumentClick( event ) ) {
-					this.collapseAll( event );
-				}
-
-				// Reset the mouseHandled flag
-				this.mouseHandled = false;
-			}
-		} );
-	},
-
-	_destroy: function() {
-		var items = this.element.find( ".ui-menu-item" )
-				.removeAttr( "role aria-disabled" ),
-			submenus = items.children( ".ui-menu-item-wrapper" )
-				.removeUniqueId()
-				.removeAttr( "tabIndex role aria-haspopup" );
-
-		// Destroy (sub)menus
-		this.element
-			.removeAttr( "aria-activedescendant" )
-			.find( ".ui-menu" ).addBack()
-				.removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " +
-					"tabIndex" )
-				.removeUniqueId()
-				.show();
-
-		submenus.children().each( function() {
-			var elem = $( this );
-			if ( elem.data( "ui-menu-submenu-caret" ) ) {
-				elem.remove();
-			}
-		} );
-	},
-
-	_keydown: function( event ) {
-		var match, prev, character, skip,
-			preventDefault = true;
-
-		switch ( event.keyCode ) {
-		case $.ui.keyCode.PAGE_UP:
-			this.previousPage( event );
-			break;
-		case $.ui.keyCode.PAGE_DOWN:
-			this.nextPage( event );
-			break;
-		case $.ui.keyCode.HOME:
-			this._move( "first", "first", event );
-			break;
-		case $.ui.keyCode.END:
-			this._move( "last", "last", event );
-			break;
-		case $.ui.keyCode.UP:
-			this.previous( event );
-			break;
-		case $.ui.keyCode.DOWN:
-			this.next( event );
-			break;
-		case $.ui.keyCode.LEFT:
-			this.collapse( event );
-			break;
-		case $.ui.keyCode.RIGHT:
-			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
-				this.expand( event );
-			}
-			break;
-		case $.ui.keyCode.ENTER:
-		case $.ui.keyCode.SPACE:
-			this._activate( event );
-			break;
-		case $.ui.keyCode.ESCAPE:
-			this.collapse( event );
-			break;
-		default:
-			preventDefault = false;
-			prev = this.previousFilter || "";
-			character = String.fromCharCode( event.keyCode );
-			skip = false;
-
-			clearTimeout( this.filterTimer );
-
-			if ( character === prev ) {
-				skip = true;
-			} else {
-				character = prev + character;
-			}
-
-			match = this._filterMenuItems( character );
-			match = skip && match.index( this.active.next() ) !== -1 ?
-				this.active.nextAll( ".ui-menu-item" ) :
-				match;
-
-			// If no matches on the current filter, reset to the last character pressed
-			// to move down the menu to the first item that starts with that character
-			if ( !match.length ) {
-				character = String.fromCharCode( event.keyCode );
-				match = this._filterMenuItems( character );
-			}
-
-			if ( match.length ) {
-				this.focus( event, match );
-				this.previousFilter = character;
-				this.filterTimer = this._delay( function() {
-					delete this.previousFilter;
-				}, 1000 );
-			} else {
-				delete this.previousFilter;
-			}
-		}
-
-		if ( preventDefault ) {
-			event.preventDefault();
-		}
-	},
-
-	_activate: function( event ) {
-		if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
-			if ( this.active.children( "[aria-haspopup='true']" ).length ) {
-				this.expand( event );
-			} else {
-				this.select( event );
-			}
-		}
-	},
-
-	refresh: function() {
-		var menus, items, newSubmenus, newItems, newWrappers,
-			that = this,
-			icon = this.options.icons.submenu,
-			submenus = this.element.find( this.options.menus );
-
-		this._toggleClass( "ui-menu-icons", null, !!this.element.find( ".ui-icon" ).length );
-
-		// Initialize nested menus
-		newSubmenus = submenus.filter( ":not(.ui-menu)" )
-			.hide()
-			.attr( {
-				role: this.options.role,
-				"aria-hidden": "true",
-				"aria-expanded": "false"
-			} )
-			.each( function() {
-				var menu = $( this ),
-					item = menu.prev(),
-					submenuCaret = $( "<span>" ).data( "ui-menu-submenu-caret", true );
-
-				that._addClass( submenuCaret, "ui-menu-icon", "ui-icon " + icon );
-				item
-					.attr( "aria-haspopup", "true" )
-					.prepend( submenuCaret );
-				menu.attr( "aria-labelledby", item.attr( "id" ) );
-			} );
-
-		this._addClass( newSubmenus, "ui-menu", "ui-widget ui-widget-content ui-front" );
-
-		menus = submenus.add( this.element );
-		items = menus.find( this.options.items );
-
-		// Initialize menu-items containing spaces and/or dashes only as dividers
-		items.not( ".ui-menu-item" ).each( function() {
-			var item = $( this );
-			if ( that._isDivider( item ) ) {
-				that._addClass( item, "ui-menu-divider", "ui-widget-content" );
-			}
-		} );
-
-		// Don't refresh list items that are already adapted
-		newItems = items.not( ".ui-menu-item, .ui-menu-divider" );
-		newWrappers = newItems.children()
-			.not( ".ui-menu" )
-				.uniqueId()
-				.attr( {
-					tabIndex: -1,
-					role: this._itemRole()
-				} );
-		this._addClass( newItems, "ui-menu-item" )
-			._addClass( newWrappers, "ui-menu-item-wrapper" );
-
-		// Add aria-disabled attribute to any disabled menu item
-		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
-
-		// If the active item has been removed, blur the menu
-		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
-			this.blur();
-		}
-	},
-
-	_itemRole: function() {
-		return {
-			menu: "menuitem",
-			listbox: "option"
-		}[ this.options.role ];
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "icons" ) {
-			var icons = this.element.find( ".ui-menu-icon" );
-			this._removeClass( icons, null, this.options.icons.submenu )
-				._addClass( icons, null, value.submenu );
-		}
-		this._super( key, value );
-	},
-
-	_setOptionDisabled: function( value ) {
-		this._super( value );
-
-		this.element.attr( "aria-disabled", String( value ) );
-		this._toggleClass( null, "ui-state-disabled", !!value );
-	},
-
-	focus: function( event, item ) {
-		var nested, focused, activeParent;
-		this.blur( event, event && event.type === "focus" );
-
-		this._scrollIntoView( item );
-
-		this.active = item.first();
-
-		focused = this.active.children( ".ui-menu-item-wrapper" );
-		this._addClass( focused, null, "ui-state-active" );
-
-		// Only update aria-activedescendant if there's a role
-		// otherwise we assume focus is managed elsewhere
-		if ( this.options.role ) {
-			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
-		}
-
-		// Highlight active parent menu item, if any
-		activeParent = this.active
-			.parent()
-				.closest( ".ui-menu-item" )
-					.children( ".ui-menu-item-wrapper" );
-		this._addClass( activeParent, null, "ui-state-active" );
-
-		if ( event && event.type === "keydown" ) {
-			this._close();
-		} else {
-			this.timer = this._delay( function() {
-				this._close();
-			}, this.delay );
-		}
-
-		nested = item.children( ".ui-menu" );
-		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
-			this._startOpening( nested );
-		}
-		this.activeMenu = item.parent();
-
-		this._trigger( "focus", event, { item: item } );
-	},
-
-	_scrollIntoView: function( item ) {
-		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
-		if ( this._hasScroll() ) {
-			borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
-			paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
-			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
-			scroll = this.activeMenu.scrollTop();
-			elementHeight = this.activeMenu.height();
-			itemHeight = item.outerHeight();
-
-			if ( offset < 0 ) {
-				this.activeMenu.scrollTop( scroll + offset );
-			} else if ( offset + itemHeight > elementHeight ) {
-				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
-			}
-		}
-	},
-
-	blur: function( event, fromFocus ) {
-		if ( !fromFocus ) {
-			clearTimeout( this.timer );
-		}
-
-		if ( !this.active ) {
-			return;
-		}
-
-		this._removeClass( this.active.children( ".ui-menu-item-wrapper" ),
-			null, "ui-state-active" );
-
-		this._trigger( "blur", event, { item: this.active } );
-		this.active = null;
-	},
-
-	_startOpening: function( submenu ) {
-		clearTimeout( this.timer );
-
-		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
-		// shift in the submenu position when mousing over the caret icon
-		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
-			return;
-		}
-
-		this.timer = this._delay( function() {
-			this._close();
-			this._open( submenu );
-		}, this.delay );
-	},
-
-	_open: function( submenu ) {
-		var position = $.extend( {
-			of: this.active
-		}, this.options.position );
-
-		clearTimeout( this.timer );
-		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
-			.hide()
-			.attr( "aria-hidden", "true" );
-
-		submenu
-			.show()
-			.removeAttr( "aria-hidden" )
-			.attr( "aria-expanded", "true" )
-			.position( position );
-	},
-
-	collapseAll: function( event, all ) {
-		clearTimeout( this.timer );
-		this.timer = this._delay( function() {
-
-			// If we were passed an event, look for the submenu that contains the event
-			var currentMenu = all ? this.element :
-				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
-
-			// If we found no valid submenu ancestor, use the main menu to close all
-			// sub menus anyway
-			if ( !currentMenu.length ) {
-				currentMenu = this.element;
-			}
-
-			this._close( currentMenu );
-
-			this.blur( event );
-
-			// Work around active item staying active after menu is blurred
-			this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" );
-
-			this.activeMenu = currentMenu;
-		}, this.delay );
-	},
-
-	// With no arguments, closes the currently active menu - if nothing is active
-	// it closes all menus.  If passed an argument, it will search for menus BELOW
-	_close: function( startMenu ) {
-		if ( !startMenu ) {
-			startMenu = this.active ? this.active.parent() : this.element;
-		}
-
-		startMenu.find( ".ui-menu" )
-			.hide()
-			.attr( "aria-hidden", "true" )
-			.attr( "aria-expanded", "false" );
-	},
-
-	_closeOnDocumentClick: function( event ) {
-		return !$( event.target ).closest( ".ui-menu" ).length;
-	},
-
-	_isDivider: function( item ) {
-
-		// Match hyphen, em dash, en dash
-		return !/[^\-\u2014\u2013\s]/.test( item.text() );
-	},
-
-	collapse: function( event ) {
-		var newItem = this.active &&
-			this.active.parent().closest( ".ui-menu-item", this.element );
-		if ( newItem && newItem.length ) {
-			this._close();
-			this.focus( event, newItem );
-		}
-	},
-
-	expand: function( event ) {
-		var newItem = this.active &&
-			this.active
-				.children( ".ui-menu " )
-					.find( this.options.items )
-						.first();
-
-		if ( newItem && newItem.length ) {
-			this._open( newItem.parent() );
-
-			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
-			this._delay( function() {
-				this.focus( event, newItem );
-			} );
-		}
-	},
-
-	next: function( event ) {
-		this._move( "next", "first", event );
-	},
-
-	previous: function( event ) {
-		this._move( "prev", "last", event );
-	},
-
-	isFirstItem: function() {
-		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
-	},
-
-	isLastItem: function() {
-		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
-	},
-
-	_move: function( direction, filter, event ) {
-		var next;
-		if ( this.active ) {
-			if ( direction === "first" || direction === "last" ) {
-				next = this.active
-					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
-					.eq( -1 );
-			} else {
-				next = this.active
-					[ direction + "All" ]( ".ui-menu-item" )
-					.eq( 0 );
-			}
-		}
-		if ( !next || !next.length || !this.active ) {
-			next = this.activeMenu.find( this.options.items )[ filter ]();
-		}
-
-		this.focus( event, next );
-	},
-
-	nextPage: function( event ) {
-		var item, base, height;
-
-		if ( !this.active ) {
-			this.next( event );
-			return;
-		}
-		if ( this.isLastItem() ) {
-			return;
-		}
-		if ( this._hasScroll() ) {
-			base = this.active.offset().top;
-			height = this.element.height();
-			this.active.nextAll( ".ui-menu-item" ).each( function() {
-				item = $( this );
-				return item.offset().top - base - height < 0;
-			} );
-
-			this.focus( event, item );
-		} else {
-			this.focus( event, this.activeMenu.find( this.options.items )
-				[ !this.active ? "first" : "last" ]() );
-		}
-	},
-
-	previousPage: function( event ) {
-		var item, base, height;
-		if ( !this.active ) {
-			this.next( event );
-			return;
-		}
-		if ( this.isFirstItem() ) {
-			return;
-		}
-		if ( this._hasScroll() ) {
-			base = this.active.offset().top;
-			height = this.element.height();
-			this.active.prevAll( ".ui-menu-item" ).each( function() {
-				item = $( this );
-				return item.offset().top - base + height > 0;
-			} );
-
-			this.focus( event, item );
-		} else {
-			this.focus( event, this.activeMenu.find( this.options.items ).first() );
-		}
-	},
-
-	_hasScroll: function() {
-		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
-	},
-
-	select: function( event ) {
-
-		// TODO: It should never be possible to not have an active item at this
-		// point, but the tests don't trigger mouseenter before click.
-		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
-		var ui = { item: this.active };
-		if ( !this.active.has( ".ui-menu" ).length ) {
-			this.collapseAll( event, true );
-		}
-		this._trigger( "select", event, ui );
-	},
-
-	_filterMenuItems: function( character ) {
-		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
-			regex = new RegExp( "^" + escapedCharacter, "i" );
-
-		return this.activeMenu
-			.find( this.options.items )
-
-				// Only match on items, not dividers or other content (#10571)
-				.filter( ".ui-menu-item" )
-					.filter( function() {
-						return regex.test(
-							$.trim( $( this ).children( ".ui-menu-item-wrapper" ).text() ) );
-					} );
-	}
-} );
-
-
-/*!
- * jQuery UI Autocomplete 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Autocomplete
-//>>group: Widgets
-//>>description: Lists suggested words as the user is typing.
-//>>docs: http://api.jqueryui.com/autocomplete/
-//>>demos: http://jqueryui.com/autocomplete/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/autocomplete.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.widget( "ui.autocomplete", {
-	version: "1.12.0",
-	defaultElement: "<input>",
-	options: {
-		appendTo: null,
-		autoFocus: false,
-		delay: 300,
-		minLength: 1,
-		position: {
-			my: "left top",
-			at: "left bottom",
-			collision: "none"
-		},
-		source: null,
-
-		// Callbacks
-		change: null,
-		close: null,
-		focus: null,
-		open: null,
-		response: null,
-		search: null,
-		select: null
-	},
-
-	requestIndex: 0,
-	pending: 0,
-
-	_create: function() {
-
-		// Some browsers only repeat keydown events, not keypress events,
-		// so we use the suppressKeyPress flag to determine if we've already
-		// handled the keydown event. #7269
-		// Unfortunately the code for & in keypress is the same as the up arrow,
-		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
-		// events when we know the keydown event was used to modify the
-		// search term. #7799
-		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
-			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
-			isTextarea = nodeName === "textarea",
-			isInput = nodeName === "input";
-
-		// Textareas are always multi-line
-		// Inputs are always single-line, even if inside a contentEditable element
-		// IE also treats inputs as contentEditable
-		// All other element types are determined by whether or not they're contentEditable
-		this.isMultiLine = isTextarea || !isInput && this._isContentEditable( this.element );
-
-		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
-		this.isNewMenu = true;
-
-		this._addClass( "ui-autocomplete-input" );
-		this.element.attr( "autocomplete", "off" );
-
-		this._on( this.element, {
-			keydown: function( event ) {
-				if ( this.element.prop( "readOnly" ) ) {
-					suppressKeyPress = true;
-					suppressInput = true;
-					suppressKeyPressRepeat = true;
-					return;
-				}
-
-				suppressKeyPress = false;
-				suppressInput = false;
-				suppressKeyPressRepeat = false;
-				var keyCode = $.ui.keyCode;
-				switch ( event.keyCode ) {
-				case keyCode.PAGE_UP:
-					suppressKeyPress = true;
-					this._move( "previousPage", event );
-					break;
-				case keyCode.PAGE_DOWN:
-					suppressKeyPress = true;
-					this._move( "nextPage", event );
-					break;
-				case keyCode.UP:
-					suppressKeyPress = true;
-					this._keyEvent( "previous", event );
-					break;
-				case keyCode.DOWN:
-					suppressKeyPress = true;
-					this._keyEvent( "next", event );
-					break;
-				case keyCode.ENTER:
-
-					// when menu is open and has focus
-					if ( this.menu.active ) {
-
-						// #6055 - Opera still allows the keypress to occur
-						// which causes forms to submit
-						suppressKeyPress = true;
-						event.preventDefault();
-						this.menu.select( event );
-					}
-					break;
-				case keyCode.TAB:
-					if ( this.menu.active ) {
-						this.menu.select( event );
-					}
-					break;
-				case keyCode.ESCAPE:
-					if ( this.menu.element.is( ":visible" ) ) {
-						if ( !this.isMultiLine ) {
-							this._value( this.term );
-						}
-						this.close( event );
-
-						// Different browsers have different default behavior for escape
-						// Single press can mean undo or clear
-						// Double press in IE means clear the whole form
-						event.preventDefault();
-					}
-					break;
-				default:
-					suppressKeyPressRepeat = true;
-
-					// search timeout should be triggered before the input value is changed
-					this._searchTimeout( event );
-					break;
-				}
-			},
-			keypress: function( event ) {
-				if ( suppressKeyPress ) {
-					suppressKeyPress = false;
-					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
-						event.preventDefault();
-					}
-					return;
-				}
-				if ( suppressKeyPressRepeat ) {
-					return;
-				}
-
-				// Replicate some key handlers to allow them to repeat in Firefox and Opera
-				var keyCode = $.ui.keyCode;
-				switch ( event.keyCode ) {
-				case keyCode.PAGE_UP:
-					this._move( "previousPage", event );
-					break;
-				case keyCode.PAGE_DOWN:
-					this._move( "nextPage", event );
-					break;
-				case keyCode.UP:
-					this._keyEvent( "previous", event );
-					break;
-				case keyCode.DOWN:
-					this._keyEvent( "next", event );
-					break;
-				}
-			},
-			input: function( event ) {
-				if ( suppressInput ) {
-					suppressInput = false;
-					event.preventDefault();
-					return;
-				}
-				this._searchTimeout( event );
-			},
-			focus: function() {
-				this.selectedItem = null;
-				this.previous = this._value();
-			},
-			blur: function( event ) {
-				if ( this.cancelBlur ) {
-					delete this.cancelBlur;
-					return;
-				}
-
-				clearTimeout( this.searching );
-				this.close( event );
-				this._change( event );
-			}
-		} );
-
-		this._initSource();
-		this.menu = $( "<ul>" )
-			.appendTo( this._appendTo() )
-			.menu( {
-
-				// disable ARIA support, the live region takes care of that
-				role: null
-			} )
-			.hide()
-			.menu( "instance" );
-
-		this._addClass( this.menu.element, "ui-autocomplete", "ui-front" );
-		this._on( this.menu.element, {
-			mousedown: function( event ) {
-
-				// prevent moving focus out of the text field
-				event.preventDefault();
-
-				// IE doesn't prevent moving focus even with event.preventDefault()
-				// so we set a flag to know when we should ignore the blur event
-				this.cancelBlur = true;
-				this._delay( function() {
-					delete this.cancelBlur;
-
-					// Support: IE 8 only
-					// Right clicking a menu item or selecting text from the menu items will
-					// result in focus moving out of the input. However, we've already received
-					// and ignored the blur event because of the cancelBlur flag set above. So
-					// we restore focus to ensure that the menu closes properly based on the user's
-					// next actions.
-					if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
-						this.element.trigger( "focus" );
-					}
-				} );
-			},
-			menufocus: function( event, ui ) {
-				var label, item;
-
-				// support: Firefox
-				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
-				if ( this.isNewMenu ) {
-					this.isNewMenu = false;
-					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
-						this.menu.blur();
-
-						this.document.one( "mousemove", function() {
-							$( event.target ).trigger( event.originalEvent );
-						} );
-
-						return;
-					}
-				}
-
-				item = ui.item.data( "ui-autocomplete-item" );
-				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
-
-					// use value to match what will end up in the input, if it was a key event
-					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
-						this._value( item.value );
-					}
-				}
-
-				// Announce the value in the liveRegion
-				label = ui.item.attr( "aria-label" ) || item.value;
-				if ( label && $.trim( label ).length ) {
-					this.liveRegion.children().hide();
-					$( "<div>" ).text( label ).appendTo( this.liveRegion );
-				}
-			},
-			menuselect: function( event, ui ) {
-				var item = ui.item.data( "ui-autocomplete-item" ),
-					previous = this.previous;
-
-				// Only trigger when focus was lost (click on menu)
-				if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
-					this.element.trigger( "focus" );
-					this.previous = previous;
-
-					// #6109 - IE triggers two focus events and the second
-					// is asynchronous, so we need to reset the previous
-					// term synchronously and asynchronously :-(
-					this._delay( function() {
-						this.previous = previous;
-						this.selectedItem = item;
-					} );
-				}
-
-				if ( false !== this._trigger( "select", event, { item: item } ) ) {
-					this._value( item.value );
-				}
-
-				// reset the term after the select event
-				// this allows custom select handling to work properly
-				this.term = this._value();
-
-				this.close( event );
-				this.selectedItem = item;
-			}
-		} );
-
-		this.liveRegion = $( "<div>", {
-			role: "status",
-			"aria-live": "assertive",
-			"aria-relevant": "additions"
-		} )
-			.appendTo( this.document[ 0 ].body );
-
-		this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
-
-		// Turning off autocomplete prevents the browser from remembering the
-		// value when navigating through history, so we re-enable autocomplete
-		// if the page is unloaded before the widget is destroyed. #7790
-		this._on( this.window, {
-			beforeunload: function() {
-				this.element.removeAttr( "autocomplete" );
-			}
-		} );
-	},
-
-	_destroy: function() {
-		clearTimeout( this.searching );
-		this.element.removeAttr( "autocomplete" );
-		this.menu.element.remove();
-		this.liveRegion.remove();
-	},
-
-	_setOption: function( key, value ) {
-		this._super( key, value );
-		if ( key === "source" ) {
-			this._initSource();
-		}
-		if ( key === "appendTo" ) {
-			this.menu.element.appendTo( this._appendTo() );
-		}
-		if ( key === "disabled" && value && this.xhr ) {
-			this.xhr.abort();
-		}
-	},
-
-	_isEventTargetInWidget: function( event ) {
-		var menuElement = this.menu.element[ 0 ];
-
-		return event.target === this.element[ 0 ] ||
-			event.target === menuElement ||
-			$.contains( menuElement, event.target );
-	},
-
-	_closeOnClickOutside: function( event ) {
-		if ( !this._isEventTargetInWidget( event ) ) {
-			this.close();
-		}
-	},
-
-	_appendTo: function() {
-		var element = this.options.appendTo;
-
-		if ( element ) {
-			element = element.jquery || element.nodeType ?
-				$( element ) :
-				this.document.find( element ).eq( 0 );
-		}
-
-		if ( !element || !element[ 0 ] ) {
-			element = this.element.closest( ".ui-front, dialog" );
-		}
-
-		if ( !element.length ) {
-			element = this.document[ 0 ].body;
-		}
-
-		return element;
-	},
-
-	_initSource: function() {
-		var array, url,
-			that = this;
-		if ( $.isArray( this.options.source ) ) {
-			array = this.options.source;
-			this.source = function( request, response ) {
-				response( $.ui.autocomplete.filter( array, request.term ) );
-			};
-		} else if ( typeof this.options.source === "string" ) {
-			url = this.options.source;
-			this.source = function( request, response ) {
-				if ( that.xhr ) {
-					that.xhr.abort();
-				}
-				that.xhr = $.ajax( {
-					url: url,
-					data: request,
-					dataType: "json",
-					success: function( data ) {
-						response( data );
-					},
-					error: function() {
-						response( [] );
-					}
-				} );
-			};
-		} else {
-			this.source = this.options.source;
-		}
-	},
-
-	_searchTimeout: function( event ) {
-		clearTimeout( this.searching );
-		this.searching = this._delay( function() {
-
-			// Search if the value has changed, or if the user retypes the same value (see #7434)
-			var equalValues = this.term === this._value(),
-				menuVisible = this.menu.element.is( ":visible" ),
-				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
-
-			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
-				this.selectedItem = null;
-				this.search( null, event );
-			}
-		}, this.options.delay );
-	},
-
-	search: function( value, event ) {
-		value = value != null ? value : this._value();
-
-		// Always save the actual value, not the one passed as an argument
-		this.term = this._value();
-
-		if ( value.length < this.options.minLength ) {
-			return this.close( event );
-		}
-
-		if ( this._trigger( "search", event ) === false ) {
-			return;
-		}
-
-		return this._search( value );
-	},
-
-	_search: function( value ) {
-		this.pending++;
-		this._addClass( "ui-autocomplete-loading" );
-		this.cancelSearch = false;
-
-		this.source( { term: value }, this._response() );
-	},
-
-	_response: function() {
-		var index = ++this.requestIndex;
-
-		return $.proxy( function( content ) {
-			if ( index === this.requestIndex ) {
-				this.__response( content );
-			}
-
-			this.pending--;
-			if ( !this.pending ) {
-				this._removeClass( "ui-autocomplete-loading" );
-			}
-		}, this );
-	},
-
-	__response: function( content ) {
-		if ( content ) {
-			content = this._normalize( content );
-		}
-		this._trigger( "response", null, { content: content } );
-		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
-			this._suggest( content );
-			this._trigger( "open" );
-		} else {
-
-			// use ._close() instead of .close() so we don't cancel future searches
-			this._close();
-		}
-	},
-
-	close: function( event ) {
-		this.cancelSearch = true;
-		this._close( event );
-	},
-
-	_close: function( event ) {
-
-		// Remove the handler that closes the menu on outside clicks
-		this._off( this.document, "mousedown" );
-
-		if ( this.menu.element.is( ":visible" ) ) {
-			this.menu.element.hide();
-			this.menu.blur();
-			this.isNewMenu = true;
-			this._trigger( "close", event );
-		}
-	},
-
-	_change: function( event ) {
-		if ( this.previous !== this._value() ) {
-			this._trigger( "change", event, { item: this.selectedItem } );
-		}
-	},
-
-	_normalize: function( items ) {
-
-		// assume all items have the right format when the first item is complete
-		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
-			return items;
-		}
-		return $.map( items, function( item ) {
-			if ( typeof item === "string" ) {
-				return {
-					label: item,
-					value: item
-				};
-			}
-			return $.extend( {}, item, {
-				label: item.label || item.value,
-				value: item.value || item.label
-			} );
-		} );
-	},
-
-	_suggest: function( items ) {
-		var ul = this.menu.element.empty();
-		this._renderMenu( ul, items );
-		this.isNewMenu = true;
-		this.menu.refresh();
-
-		// Size and position menu
-		ul.show();
-		this._resizeMenu();
-		ul.position( $.extend( {
-			of: this.element
-		}, this.options.position ) );
-
-		if ( this.options.autoFocus ) {
-			this.menu.next();
-		}
-
-		// Listen for interactions outside of the widget (#6642)
-		this._on( this.document, {
-			mousedown: "_closeOnClickOutside"
-		} );
-	},
-
-	_resizeMenu: function() {
-		var ul = this.menu.element;
-		ul.outerWidth( Math.max(
-
-			// Firefox wraps long text (possibly a rounding bug)
-			// so we add 1px to avoid the wrapping (#7513)
-			ul.width( "" ).outerWidth() + 1,
-			this.element.outerWidth()
-		) );
-	},
-
-	_renderMenu: function( ul, items ) {
-		var that = this;
-		$.each( items, function( index, item ) {
-			that._renderItemData( ul, item );
-		} );
-	},
-
-	_renderItemData: function( ul, item ) {
-		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
-	},
-
-	_renderItem: function( ul, item ) {
-		return $( "<li>" )
-			.append( $( "<div>" ).text( item.label ) )
-			.appendTo( ul );
-	},
-
-	_move: function( direction, event ) {
-		if ( !this.menu.element.is( ":visible" ) ) {
-			this.search( null, event );
-			return;
-		}
-		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
-				this.menu.isLastItem() && /^next/.test( direction ) ) {
-
-			if ( !this.isMultiLine ) {
-				this._value( this.term );
-			}
-
-			this.menu.blur();
-			return;
-		}
-		this.menu[ direction ]( event );
-	},
-
-	widget: function() {
-		return this.menu.element;
-	},
-
-	_value: function() {
-		return this.valueMethod.apply( this.element, arguments );
-	},
-
-	_keyEvent: function( keyEvent, event ) {
-		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
-			this._move( keyEvent, event );
-
-			// Prevents moving cursor to beginning/end of the text field in some browsers
-			event.preventDefault();
-		}
-	},
-
-	// Support: Chrome <=50
-	// We should be able to just use this.element.prop( "isContentEditable" )
-	// but hidden elements always report false in Chrome.
-	// https://code.google.com/p/chromium/issues/detail?id=313082
-	_isContentEditable: function( element ) {
-		if ( !element.length ) {
-			return false;
-		}
-
-		var editable = element.prop( "contentEditable" );
-
-		if ( editable === "inherit" ) {
-		  return this._isContentEditable( element.parent() );
-		}
-
-		return editable === "true";
-	}
-} );
-
-$.extend( $.ui.autocomplete, {
-	escapeRegex: function( value ) {
-		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
-	},
-	filter: function( array, term ) {
-		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
-		return $.grep( array, function( value ) {
-			return matcher.test( value.label || value.value || value );
-		} );
-	}
-} );
-
-// Live region extension, adding a `messages` option
-// NOTE: This is an experimental API. We are still investigating
-// a full solution for string manipulation and internationalization.
-$.widget( "ui.autocomplete", $.ui.autocomplete, {
-	options: {
-		messages: {
-			noResults: "No search results.",
-			results: function( amount ) {
-				return amount + ( amount > 1 ? " results are" : " result is" ) +
-					" available, use up and down arrow keys to navigate.";
-			}
-		}
-	},
-
-	__response: function( content ) {
-		var message;
-		this._superApply( arguments );
-		if ( this.options.disabled || this.cancelSearch ) {
-			return;
-		}
-		if ( content && content.length ) {
-			message = this.options.messages.results( content.length );
-		} else {
-			message = this.options.messages.noResults;
-		}
-		this.liveRegion.children().hide();
-		$( "<div>" ).text( message ).appendTo( this.liveRegion );
-	}
-} );
-
-var widgetsAutocomplete = $.ui.autocomplete;
-
-
-/*!
- * jQuery UI Controlgroup 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Controlgroup
-//>>group: Widgets
-//>>description: Visually groups form control widgets
-//>>docs: http://api.jqueryui.com/controlgroup/
-//>>demos: http://jqueryui.com/controlgroup/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/controlgroup.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-var controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g;
-
-var widgetsControlgroup = $.widget( "ui.controlgroup", {
-	version: "1.12.0",
-	defaultElement: "<div>",
-	options: {
-		direction: "horizontal",
-		disabled: null,
-		onlyVisible: true,
-		items: {
-			"button": "input[type=button], input[type=submit], input[type=reset], button, a",
-			"controlgroupLabel": ".ui-controlgroup-label",
-			"checkboxradio": "input[type='checkbox'], input[type='radio']",
-			"selectmenu": "select",
-			"spinner": ".ui-spinner-input"
-		}
-	},
-
-	_create: function() {
-		this._enhance();
-	},
-
-	// To support the enhanced option in jQuery Mobile, we isolate DOM manipulation
-	_enhance: function() {
-		this.element.attr( "role", "toolbar" );
-		this.refresh();
-	},
-
-	_destroy: function() {
-		this._callChildMethod( "destroy" );
-		this.childWidgets.removeData( "ui-controlgroup-data" );
-		this.element.removeAttr( "role" );
-		if ( this.options.items.controlgroupLabel ) {
-			this.element
-				.find( this.options.items.controlgroupLabel )
-				.find( ".ui-controlgroup-label-contents" )
-				.contents().unwrap();
-		}
-	},
-
-	_initWidgets: function() {
-		var that = this,
-			childWidgets = [];
-
-		// First we iterate over each of the items options
-		$.each( this.options.items, function( widget, selector ) {
-			var labels;
-			var options = {};
-
-			// Make sure the widget has a selector set
-			if ( !selector ) {
-				return;
-			}
-
-			if ( widget === "controlgroupLabel" ) {
-				labels = that.element.find( selector );
-				labels.each( function() {
-					var element = $( this );
-
-					if ( element.children( ".ui-controlgroup-label-contents" ).length ) {
-						return;
-					}
-					element.contents()
-						.wrapAll( "<span class='ui-controlgroup-label-contents'></span>" );
-				} );
-				that._addClass( labels, null, "ui-widget ui-widget-content ui-state-default" );
-				childWidgets = childWidgets.concat( labels.get() );
-				return;
-			}
-
-			// Make sure the widget actually exists
-			if ( !$.fn[ widget ] ) {
-				return;
-			}
-
-			// We assume everything is in the middle to start because we can't determine
-			// first / last elements until all enhancments are done.
-			if ( that[ "_" + widget + "Options" ] ) {
-				options = that[ "_" + widget + "Options" ]( "middle" );
-			}
-
-			// Find instances of this widget inside controlgroup and init them
-			that.element
-				.find( selector )
-				.each( function() {
-					var element = $( this );
-					var instance = element[ widget ]( "instance" );
-
-					// We need to clone the default options for this type of widget to avoid
-					// polluting the variable options which has a wider scope than a single widget.
-					var instanceOptions = $.widget.extend( {}, options );
-
-					// If the button is the child of a spinner ignore it
-					// TODO: Find a more generic solution
-					if ( widget === "button" && element.parent( ".ui-spinner" ).length ) {
-						return;
-					}
-
-					// Create the widget if it doesn't exist
-					if ( !instance ) {
-						instance = element[ widget ]()[ widget ]( "instance" );
-					}
-					if ( instance ) {
-						instanceOptions.classes =
-							that._resolveClassesValues( instanceOptions.classes, instance );
-					}
-					element[ widget ]( instanceOptions );
-
-					// Store an instance of the controlgroup to be able to reference
-					// from the outermost element for changing options and refresh
-					var widgetElement = element[ widget ]( "widget" );
-					$.data( widgetElement[ 0 ], "ui-controlgroup-data",
-						instance ? instance : element[ widget ]( "instance" ) );
-
-					childWidgets.push( widgetElement[ 0 ] );
-				} );
-		} );
-
-		this.childWidgets = $( $.unique( childWidgets ) );
-		this._addClass( this.childWidgets, "ui-controlgroup-item" );
-	},
-
-	_callChildMethod: function( method ) {
-		this.childWidgets.each( function() {
-			var element = $( this ),
-				data = element.data( "ui-controlgroup-data" );
-			if ( data && data[ method ] ) {
-				data[ method ]();
-			}
-		} );
-	},
-
-	_updateCornerClass: function( element, position ) {
-		var remove = "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all";
-		var add = this._buildSimpleOptions( position, "label" ).classes.label;
-
-		this._removeClass( element, null, remove );
-		this._addClass( element, null, add );
-	},
-
-	_buildSimpleOptions: function( position, key ) {
-		var direction = this.options.direction === "vertical";
-		var result = {
-			classes: {}
-		};
-		result.classes[ key ] = {
-			"middle": "",
-			"first": "ui-corner-" + ( direction ? "top" : "left" ),
-			"last": "ui-corner-" + ( direction ? "bottom" : "right" ),
-			"only": "ui-corner-all"
-		}[ position ];
-
-		return result;
-	},
-
-	_spinnerOptions: function( position ) {
-		var options = this._buildSimpleOptions( position, "ui-spinner" );
-
-		options.classes[ "ui-spinner-up" ] = "";
-		options.classes[ "ui-spinner-down" ] = "";
-
-		return options;
-	},
-
-	_buttonOptions: function( position ) {
-		return this._buildSimpleOptions( position, "ui-button" );
-	},
-
-	_checkboxradioOptions: function( position ) {
-		return this._buildSimpleOptions( position, "ui-checkboxradio-label" );
-	},
-
-	_selectmenuOptions: function( position ) {
-		var direction = this.options.direction === "vertical";
-		return {
-			width: direction ? "auto" : false,
-			classes: {
-				middle: {
-					"ui-selectmenu-button-open": "",
-					"ui-selectmenu-button-closed": ""
-				},
-				first: {
-					"ui-selectmenu-button-open": "ui-corner-" + ( direction ? "top" : "tl" ),
-					"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "top" : "left" )
-				},
-				last: {
-					"ui-selectmenu-button-open": direction ? "" : "ui-corner-tr",
-					"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "bottom" : "right" )
-				},
-				only: {
-					"ui-selectmenu-button-open": "ui-corner-top",
-					"ui-selectmenu-button-closed": "ui-corner-all"
-				}
-
-			}[ position ]
-		};
-	},
-
-	_resolveClassesValues: function( classes, instance ) {
-		var result = {};
-		$.each( classes, function( key ) {
-			var current = instance.options.classes[ key ] || "";
-			current = current.replace( controlgroupCornerRegex, "" ).trim();
-			result[ key ] = ( current + " " + classes[ key ] ).replace( /\s+/g, " " );
-		} );
-		return result;
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "direction" ) {
-			this._removeClass( "ui-controlgroup-" + this.options.direction );
-		}
-
-		this._super( key, value );
-		if ( key === "disabled" ) {
-			this._callChildMethod( value ? "disable" : "enable" );
-			return;
-		}
-
-		this.refresh();
-	},
-
-	refresh: function() {
-		var children,
-			that = this;
-
-		this._addClass( "ui-controlgroup ui-controlgroup-" + this.options.direction );
-
-		if ( this.options.direction === "horizontal" ) {
-			this._addClass( null, "ui-helper-clearfix" );
-		}
-		this._initWidgets();
-
-		children = this.childWidgets;
-
-		// We filter here because we need to track all childWidgets not just the visible ones
-		if ( this.options.onlyVisible ) {
-			children = children.filter( ":visible" );
-		}
-
-		if ( children.length ) {
-
-			// We do this last because we need to make sure all enhancment is done
-			// before determining first and last
-			$.each( [ "first", "last" ], function( index, value ) {
-				var instance = children[ value ]().data( "ui-controlgroup-data" );
-
-				if ( instance && that[ "_" + instance.widgetName + "Options" ] ) {
-					var options = that[ "_" + instance.widgetName + "Options" ](
-						children.length === 1 ? "only" : value
-					);
-					options.classes = that._resolveClassesValues( options.classes, instance );
-					instance.element[ instance.widgetName ]( options );
-				} else {
-					that._updateCornerClass( children[ value ](), value );
-				}
-			} );
-
-			// Finally call the refresh method on each of the child widgets.
-			this._callChildMethod( "refresh" );
-		}
-	}
-} );
-
-/*!
- * jQuery UI Checkboxradio 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Checkboxradio
-//>>group: Widgets
-//>>description: Enhances a form with multiple themeable checkboxes or radio buttons.
-//>>docs: http://api.jqueryui.com/checkboxradio/
-//>>demos: http://jqueryui.com/checkboxradio/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/button.css
-//>>css.structure: ../../themes/base/checkboxradio.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.widget( "ui.checkboxradio", [ $.ui.formResetMixin, {
-	version: "1.12.0",
-	options: {
-		disabled: null,
-		label: null,
-		icon: true,
-		classes: {
-			"ui-checkboxradio-label": "ui-corner-all",
-			"ui-checkboxradio-icon": "ui-corner-all"
-		}
-	},
-
-	_getCreateOptions: function() {
-		var disabled, labels;
-		var that = this;
-		var options = this._super() || {};
-
-		// We read the type here, because it makes more sense to throw a element type error first,
-		// rather then the error for lack of a label. Often if its the wrong type, it
-		// won't have a label (e.g. calling on a div, btn, etc)
-		this._readType();
-
-		labels = this.element.labels();
-
-		// If there are multiple labels, use the last one
-		this.label = $( labels[ labels.length - 1 ] );
-		if ( !this.label.length ) {
-			$.error( "No label found for checkboxradio widget" );
-		}
-
-		this.originalLabel = "";
-
-		// We need to get the label text but this may also need to make sure it does not contain the
-		// input itself.
-		this.label.contents().not( this.element ).each( function() {
-
-			// The label contents could be text, html, or a mix. We concat each element to get a
-			// string representation of the label, without the input as part of it.
-			that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;
-		} );
-
-		// Set the label option if we found label text
-		if ( this.originalLabel ) {
-			options.label = this.originalLabel;
-		}
-
-		disabled = this.element[ 0 ].disabled;
-		if ( disabled != null ) {
-			options.disabled = disabled;
-		}
-		return options;
-	},
-
-	_create: function() {
-		var checked = this.element[ 0 ].checked;
-
-		this._bindFormResetHandler();
-
-		if ( this.options.disabled == null ) {
-			this.options.disabled = this.element[ 0 ].disabled;
-		}
-
-		this._setOption( "disabled", this.options.disabled );
-		this._addClass( "ui-checkboxradio", "ui-helper-hidden-accessible" );
-		this._addClass( this.label, "ui-checkboxradio-label", "ui-button ui-widget" );
-
-		if ( this.type === "radio" ) {
-			this._addClass( this.label, "ui-checkboxradio-radio-label" );
-		}
-
-		if ( this.options.label && this.options.label !== this.originalLabel ) {
-			this._updateLabel();
-		} else if ( this.originalLabel ) {
-			this.options.label = this.originalLabel;
-		}
-
-		this._enhance();
-
-		if ( checked ) {
-			this._addClass( this.label, "ui-checkboxradio-checked", "ui-state-active" );
-			if ( this.icon ) {
-				this._addClass( this.icon, null, "ui-state-hover" );
-			}
-		}
-
-		this._on( {
-			change: "_toggleClasses",
-			focus: function() {
-				this._addClass( this.label, null, "ui-state-focus ui-visual-focus" );
-			},
-			blur: function() {
-				this._removeClass( this.label, null, "ui-state-focus ui-visual-focus" );
-			}
-		} );
-	},
-
-	_readType: function() {
-		var nodeName = this.element[ 0 ].nodeName.toLowerCase();
-		this.type = this.element[ 0 ].type;
-		if ( nodeName !== "input" || !/radio|checkbox/.test( this.type ) ) {
-			$.error( "Can't create checkboxradio on element.nodeName=" + nodeName +
-				" and element.type=" + this.type );
-		}
-	},
-
-	// Support jQuery Mobile enhanced option
-	_enhance: function() {
-		this._updateIcon( this.element[ 0 ].checked );
-	},
-
-	widget: function() {
-		return this.label;
-	},
-
-	_getRadioGroup: function() {
-		var group;
-		var name = this.element[ 0 ].name;
-		var nameSelector = "input[name='" + $.ui.escapeSelector( name ) + "']";
-
-		if ( !name ) {
-			return $( [] );
-		}
-
-		if ( this.form.length ) {
-			group = $( this.form[ 0 ].elements ).filter( nameSelector );
-		} else {
-
-			// Not inside a form, check all inputs that also are not inside a form
-			group = $( nameSelector ).filter( function() {
-				return $( this ).form().length === 0;
-			} );
-		}
-
-		return group.not( this.element );
-	},
-
-	_toggleClasses: function() {
-		var checked = this.element[ 0 ].checked;
-		this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
-
-		if ( this.options.icon && this.type === "checkbox" ) {
-			this._toggleClass( this.icon, null, "ui-icon-check ui-state-checked", checked )
-				._toggleClass( this.icon, null, "ui-icon-blank", !checked );
-		}
-
-		if ( this.type === "radio" ) {
-			this._getRadioGroup()
-				.each( function() {
-					var instance = $( this ).checkboxradio( "instance" );
-
-					if ( instance ) {
-						instance._removeClass( instance.label,
-							"ui-checkboxradio-checked", "ui-state-active" );
-					}
-				} );
-		}
-	},
-
-	_destroy: function() {
-		this._unbindFormResetHandler();
-
-		if ( this.icon ) {
-			this.icon.remove();
-			this.iconSpace.remove();
-		}
-	},
-
-	_setOption: function( key, value ) {
-
-		// We don't allow the value to be set to nothing
-		if ( key === "label" && !value ) {
-			return;
-		}
-
-		this._super( key, value );
-
-		if ( key === "disabled" ) {
-			this._toggleClass( this.label, null, "ui-state-disabled", value );
-			this.element[ 0 ].disabled = value;
-
-			// Don't refresh when setting disabled
-			return;
-		}
-		this.refresh();
-	},
-
-	_updateIcon: function( checked ) {
-		var toAdd = "ui-icon ui-icon-background ";
-
-		if ( this.options.icon ) {
-			if ( !this.icon ) {
-				this.icon = $( "<span>" );
-				this.iconSpace = $( "<span> </span>" );
-				this._addClass( this.iconSpace, "ui-checkboxradio-icon-space" );
-			}
-
-			if ( this.type === "checkbox" ) {
-				toAdd += checked ? "ui-icon-check ui-state-checked" : "ui-icon-blank";
-				this._removeClass( this.icon, null, checked ? "ui-icon-blank" : "ui-icon-check" );
-			} else {
-				toAdd += "ui-icon-blank";
-			}
-			this._addClass( this.icon, "ui-checkboxradio-icon", toAdd );
-			if ( !checked ) {
-				this._removeClass( this.icon, null, "ui-icon-check ui-state-checked" );
-			}
-			this.icon.prependTo( this.label ).after( this.iconSpace );
-		} else if ( this.icon !== undefined ) {
-			this.icon.remove();
-			this.iconSpace.remove();
-			delete this.icon;
-		}
-	},
-
-	_updateLabel: function() {
-
-		// Remove the contents of the label ( minus the icon, icon space, and input )
-		this.label.contents().not( this.element.add( this.icon ).add( this.iconSpace ) ).remove();
-		this.label.append( this.options.label );
-	},
-
-	refresh: function() {
-		var checked = this.element[ 0 ].checked,
-			isDisabled = this.element[ 0 ].disabled;
-
-		this._updateIcon( checked );
-		this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
-		if ( this.options.label !== null ) {
-			this._updateLabel();
-		}
-
-		if ( isDisabled !== this.options.disabled ) {
-			this._setOptions( { "disabled": isDisabled } );
-		}
-	}
-
-} ] );
-
-var widgetsCheckboxradio = $.ui.checkboxradio;
-
-
-/*!
- * jQuery UI Button 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Button
-//>>group: Widgets
-//>>description: Enhances a form with themeable buttons.
-//>>docs: http://api.jqueryui.com/button/
-//>>demos: http://jqueryui.com/button/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/button.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.widget( "ui.button", {
-	version: "1.12.0",
-	defaultElement: "<button>",
-	options: {
-		classes: {
-			"ui-button": "ui-corner-all"
-		},
-		disabled: null,
-		icon: null,
-		iconPosition: "beginning",
-		label: null,
-		showLabel: true
-	},
-
-	_getCreateOptions: function() {
-		var disabled,
-
-			// This is to support cases like in jQuery Mobile where the base widget does have
-			// an implementation of _getCreateOptions
-			options = this._super() || {};
-
-		this.isInput = this.element.is( "input" );
-
-		disabled = this.element[ 0 ].disabled;
-		if ( disabled != null ) {
-			options.disabled = disabled;
-		}
-
-		this.originalLabel = this.isInput ? this.element.val() : this.element.html();
-		if ( this.originalLabel ) {
-			options.label = this.originalLabel;
-		}
-
-		return options;
-	},
-
-	_create: function() {
-		if ( !this.option.showLabel & !this.options.icon ) {
-			this.options.showLabel = true;
-		}
-
-		// We have to check the option again here even though we did in _getCreateOptions,
-		// because null may have been passed on init which would override what was set in
-		// _getCreateOptions
-		if ( this.options.disabled == null ) {
-			this.options.disabled = this.element[ 0 ].disabled || false;
-		}
-
-		this.hasTitle = !!this.element.attr( "title" );
-
-		// Check to see if the label needs to be set or if its already correct
-		if ( this.options.label && this.options.label !== this.originalLabel ) {
-			if ( this.isInput ) {
-				this.element.val( this.options.label );
-			} else {
-				this.element.html( this.options.label );
-			}
-		}
-		this._addClass( "ui-button", "ui-widget" );
-		this._setOption( "disabled", this.options.disabled );
-		this._enhance();
-
-		if ( this.element.is( "a" ) ) {
-			this._on( {
-				"keyup": function( event ) {
-					if ( event.keyCode === $.ui.keyCode.SPACE ) {
-						event.preventDefault();
-
-						// Support: PhantomJS <= 1.9, IE 8 Only
-						// If a native click is available use it so we actually cause navigation
-						// otherwise just trigger a click event
-						if ( this.element[ 0 ].click ) {
-							this.element[ 0 ].click();
-						} else {
-							this.element.trigger( "click" );
-						}
-					}
-				}
-			} );
-		}
-	},
-
-	_enhance: function() {
-		if ( !this.element.is( "button" ) ) {
-			this.element.attr( "role", "button" );
-		}
-
-		if ( this.options.icon ) {
-			this._updateIcon( "icon", this.options.icon );
-			this._updateTooltip();
-		}
-	},
-
-	_updateTooltip: function() {
-		this.title = this.element.attr( "title" );
-
-		if ( !this.options.showLabel && !this.title ) {
-			this.element.attr( "title", this.options.label );
-		}
-	},
-
-	_updateIcon: function( option, value ) {
-		var icon = option !== "iconPosition",
-			position = icon ? this.options.iconPosition : value,
-			displayBlock = position === "top" || position === "bottom";
-
-		// Create icon
-		if ( !this.icon ) {
-			this.icon = $( "<span>" );
-
-			this._addClass( this.icon, "ui-button-icon", "ui-icon" );
-
-			if ( !this.options.showLabel ) {
-				this._addClass( "ui-button-icon-only" );
-			}
-		} else if ( icon ) {
-
-			// If we are updating the icon remove the old icon class
-			this._removeClass( this.icon, null, this.options.icon );
-		}
-
-		// If we are updating the icon add the new icon class
-		if ( icon ) {
-			this._addClass( this.icon, null, value );
-		}
-
-		this._attachIcon( position );
-
-		// If the icon is on top or bottom we need to add the ui-widget-icon-block class and remove
-		// the iconSpace if there is one.
-		if ( displayBlock ) {
-			this._addClass( this.icon, null, "ui-widget-icon-block" );
-			if ( this.iconSpace ) {
-				this.iconSpace.remove();
-			}
-		} else {
-
-			// Position is beginning or end so remove the ui-widget-icon-block class and add the
-			// space if it does not exist
-			if ( !this.iconSpace ) {
-				this.iconSpace = $( "<span> </span>" );
-				this._addClass( this.iconSpace, "ui-button-icon-space" );
-			}
-			this._removeClass( this.icon, null, "ui-wiget-icon-block" );
-			this._attachIconSpace( position );
-		}
-	},
-
-	_destroy: function() {
-		this.element.removeAttr( "role" );
-
-		if ( this.icon ) {
-			this.icon.remove();
-		}
-		if ( this.iconSpace ) {
-			this.iconSpace.remove();
-		}
-		if ( !this.hasTitle ) {
-			this.element.removeAttr( "title" );
-		}
-	},
-
-	_attachIconSpace: function( iconPosition ) {
-		this.icon[ /^(?:end|bottom)/.test( iconPosition ) ? "before" : "after" ]( this.iconSpace );
-	},
-
-	_attachIcon: function( iconPosition ) {
-		this.element[ /^(?:end|bottom)/.test( iconPosition ) ? "append" : "prepend" ]( this.icon );
-	},
-
-	_setOptions: function( options ) {
-		var newShowLabel = options.showLabel === undefined ?
-				this.options.showLabel :
-				options.showLabel,
-			newIcon = options.icon === undefined ? this.options.icon : options.icon;
-
-		if ( !newShowLabel && !newIcon ) {
-			options.showLabel = true;
-		}
-		this._super( options );
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "icon" ) {
-			if ( value ) {
-				this._updateIcon( key, value );
-			} else if ( this.icon ) {
-				this.icon.remove();
-				if ( this.iconSpace ) {
-					this.iconSpace.remove();
-				}
-			}
-		}
-
-		if ( key === "iconPosition" ) {
-			this._updateIcon( key, value );
-		}
-
-		// Make sure we can't end up with a button that has neither text nor icon
-		if ( key === "showLabel" ) {
-				this._toggleClass( "ui-button-icon-only", null, !value );
-				this._updateTooltip();
-		}
-
-		if ( key === "label" ) {
-			if ( this.isInput ) {
-				this.element.val( value );
-			} else {
-
-				// If there is an icon, append it, else nothing then append the value
-				// this avoids removal of the icon when setting label text
-				this.element.html( value );
-				if ( this.icon ) {
-					this._attachIcon( this.options.iconPosition );
-					this._attachIconSpace( this.options.iconPosition );
-				}
-			}
-		}
-
-		this._super( key, value );
-
-		if ( key === "disabled" ) {
-			this._toggleClass( null, "ui-state-disabled", value );
-			this.element[ 0 ].disabled = value;
-			if ( value ) {
-				this.element.blur();
-			}
-		}
-	},
-
-	refresh: function() {
-
-		// Make sure to only check disabled if its an element that supports this otherwise
-		// check for the disabled class to determine state
-		var isDisabled = this.element.is( "input, button" ) ?
-			this.element[ 0 ].disabled : this.element.hasClass( "ui-button-disabled" );
-
-		if ( isDisabled !== this.options.disabled ) {
-			this._setOptions( { disabled: isDisabled } );
-		}
-
-		this._updateTooltip();
-	}
-} );
-
-// DEPRECATED
-if ( $.uiBackCompat !== false ) {
-
-	// Text and Icons options
-	$.widget( "ui.button", $.ui.button, {
-		options: {
-			text: true,
-			icons: {
-				primary: null,
-				secondary: null
-			}
-		},
-
-		_create: function() {
-			if ( this.options.showLabel && !this.options.text ) {
-				this.options.showLabel = this.options.text;
-			}
-			if ( !this.options.showLabel && this.options.text ) {
-				this.options.text = this.options.showLabel;
-			}
-			if ( !this.options.icon && ( this.options.icons.primary ||
-					this.options.icons.secondary ) ) {
-				if ( this.options.icons.primary ) {
-					this.options.icon = this.options.icons.primary;
-				} else {
-					this.options.icon = this.options.icons.secondary;
-					this.options.iconPosition = "end";
-				}
-			} else if ( this.options.icon ) {
-				this.options.icons.primary = this.options.icon;
-			}
-			this._super();
-		},
-
-		_setOption: function( key, value ) {
-			if ( key === "text" ) {
-				this._super( "showLabel", value );
-				return;
-			}
-			if ( key === "showLabel" ) {
-				this.options.text = value;
-			}
-			if ( key === "icon" ) {
-				this.options.icons.primary = value;
-			}
-			if ( key === "icons" ) {
-				if ( value.primary ) {
-					this._super( "icon", value.primary );
-					this._super( "iconPosition", "beginning" );
-				} else if ( value.secondary ) {
-					this._super( "icon", value.secondary );
-					this._super( "iconPosition", "end" );
-				}
-			}
-			this._superApply( arguments );
-		}
-	} );
-
-	$.fn.button = ( function( orig ) {
-		return function() {
-			if ( !this.length || ( this.length && this[ 0 ].tagName !== "INPUT" ) ||
-					( this.length && this[ 0 ].tagName === "INPUT" && (
-						this.attr( "type" ) !== "checkbox" && this.attr( "type" ) !== "radio"
-					) ) ) {
-				return orig.apply( this, arguments );
-			}
-			if ( !$.ui.checkboxradio ) {
-				$.error( "Checkboxradio widget missing" );
-			}
-			if ( arguments.length === 0 ) {
-				return this.checkboxradio( {
-					"icon": false
-				} );
-			}
-			return this.checkboxradio.apply( this, arguments );
-		};
-	} )( $.fn.button );
-
-	$.fn.buttonset = function() {
-		if ( !$.ui.controlgroup ) {
-			$.error( "Controlgroup widget missing" );
-		}
-		if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" && arguments[ 2 ] ) {
-			return this.controlgroup.apply( this,
-				[ arguments[ 0 ], "items.button", arguments[ 2 ] ] );
-		}
-		if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" ) {
-			return this.controlgroup.apply( this, [ arguments[ 0 ], "items.button" ] );
-		}
-		if ( typeof arguments[ 0 ] === "object" && arguments[ 0 ].items ) {
-			arguments[ 0 ].items = {
-				button: arguments[ 0 ].items
-			};
-		}
-		return this.controlgroup.apply( this, arguments );
-	};
-}
-
-var widgetsButton = $.ui.button;
-
-
-// jscs:disable maximumLineLength
-/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */
-/*!
- * jQuery UI Datepicker 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Datepicker
-//>>group: Widgets
-//>>description: Displays a calendar from an input or inline for selecting dates.
-//>>docs: http://api.jqueryui.com/datepicker/
-//>>demos: http://jqueryui.com/datepicker/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/datepicker.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.extend( $.ui, { datepicker: { version: "1.12.0" } } );
-
-var datepicker_instActive;
-
-function datepicker_getZindex( elem ) {
-	var position, value;
-	while ( elem.length && elem[ 0 ] !== document ) {
-
-		// Ignore z-index if position is set to a value where z-index is ignored by the browser
-		// This makes behavior of this function consistent across browsers
-		// WebKit always returns auto if the element is positioned
-		position = elem.css( "position" );
-		if ( position === "absolute" || position === "relative" || position === "fixed" ) {
-
-			// IE returns 0 when zIndex is not specified
-			// other browsers return a string
-			// we ignore the case of nested elements with an explicit value of 0
-			// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
-			value = parseInt( elem.css( "zIndex" ), 10 );
-			if ( !isNaN( value ) && value !== 0 ) {
-				return value;
-			}
-		}
-		elem = elem.parent();
-	}
-
-	return 0;
-}
-/* Date picker manager.
-   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
-   Settings for (groups of) date pickers are maintained in an instance object,
-   allowing multiple different settings on the same page. */
-
-function Datepicker() {
-	this._curInst = null; // The current instance in use
-	this._keyEvent = false; // If the last event was a key event
-	this._disabledInputs = []; // List of date picker inputs that have been disabled
-	this._datepickerShowing = false; // True if the popup picker is showing , false if not
-	this._inDialog = false; // True if showing within a "dialog", false if not
-	this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division
-	this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class
-	this._appendClass = "ui-datepicker-append"; // The name of the append marker class
-	this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class
-	this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class
-	this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class
-	this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class
-	this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class
-	this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class
-	this.regional = []; // Available regional settings, indexed by language code
-	this.regional[ "" ] = { // Default regional settings
-		closeText: "Done", // Display text for close link
-		prevText: "Prev", // Display text for previous month link
-		nextText: "Next", // Display text for next month link
-		currentText: "Today", // Display text for current month link
-		monthNames: [ "January","February","March","April","May","June",
-			"July","August","September","October","November","December" ], // Names of months for drop-down and formatting
-		monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], // For formatting
-		dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], // For formatting
-		dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], // For formatting
-		dayNamesMin: [ "Su","Mo","Tu","We","Th","Fr","Sa" ], // Column headings for days starting at Sunday
-		weekHeader: "Wk", // Column header for week of the year
-		dateFormat: "mm/dd/yy", // See format options on parseDate
-		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
-		isRTL: false, // True if right-to-left language, false if left-to-right
-		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
-		yearSuffix: "" // Additional text to append to the year in the month headers
-	};
-	this._defaults = { // Global defaults for all the date picker instances
-		showOn: "focus", // "focus" for popup on focus,
-			// "button" for trigger button, or "both" for either
-		showAnim: "fadeIn", // Name of jQuery animation for popup
-		showOptions: {}, // Options for enhanced animations
-		defaultDate: null, // Used when field is blank: actual date,
-			// +/-number for offset from today, null for today
-		appendText: "", // Display text following the input box, e.g. showing the format
-		buttonText: "...", // Text for trigger button
-		buttonImage: "", // URL for trigger button image
-		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
-		hideIfNoPrevNext: false, // True to hide next/previous month links
-			// if not applicable, false to just disable them
-		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
-		gotoCurrent: false, // True if today link goes back to current selection instead
-		changeMonth: false, // True if month can be selected directly, false if only prev/next
-		changeYear: false, // True if year can be selected directly, false if only prev/next
-		yearRange: "c-10:c+10", // Range of years to display in drop-down,
-			// either relative to today's year (-nn:+nn), relative to currently displayed year
-			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
-		showOtherMonths: false, // True to show dates in other months, false to leave blank
-		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
-		showWeek: false, // True to show week of the year, false to not show it
-		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
-			// takes a Date and returns the number of the week for it
-		shortYearCutoff: "+10", // Short year values < this are in the current century,
-			// > this are in the previous century,
-			// string value starting with "+" for current year + value
-		minDate: null, // The earliest selectable date, or null for no limit
-		maxDate: null, // The latest selectable date, or null for no limit
-		duration: "fast", // Duration of display/closure
-		beforeShowDay: null, // Function that takes a date and returns an array with
-			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
-			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
-		beforeShow: null, // Function that takes an input field and
-			// returns a set of custom settings for the date picker
-		onSelect: null, // Define a callback function when a date is selected
-		onChangeMonthYear: null, // Define a callback function when the month or year is changed
-		onClose: null, // Define a callback function when the datepicker is closed
-		numberOfMonths: 1, // Number of months to show at a time
-		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
-		stepMonths: 1, // Number of months to step back/forward
-		stepBigMonths: 12, // Number of months to step back/forward for the big links
-		altField: "", // Selector for an alternate field to store selected dates into
-		altFormat: "", // The date format to use for the alternate field
-		constrainInput: true, // The input is constrained by the current date format
-		showButtonPanel: false, // True to show button panel, false to not show it
-		autoSize: false, // True to size the input for the date format, false to leave as is
-		disabled: false // The initial disabled state
-	};
-	$.extend( this._defaults, this.regional[ "" ] );
-	this.regional.en = $.extend( true, {}, this.regional[ "" ] );
-	this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en );
-	this.dpDiv = datepicker_bindHover( $( "<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) );
-}
-
-$.extend( Datepicker.prototype, {
-	/* Class name added to elements to indicate already configured with a date picker. */
-	markerClassName: "hasDatepicker",
-
-	//Keep track of the maximum number of rows displayed (see #7043)
-	maxRows: 4,
-
-	// TODO rename to "widget" when switching to widget factory
-	_widgetDatepicker: function() {
-		return this.dpDiv;
-	},
-
-	/* Override the default settings for all instances of the date picker.
-	 * @param  settings  object - the new settings to use as defaults (anonymous object)
-	 * @return the manager object
-	 */
-	setDefaults: function( settings ) {
-		datepicker_extendRemove( this._defaults, settings || {} );
-		return this;
-	},
-
-	/* Attach the date picker to a jQuery selection.
-	 * @param  target	element - the target input field or division or span
-	 * @param  settings  object - the new settings to use for this date picker instance (anonymous)
-	 */
-	_attachDatepicker: function( target, settings ) {
-		var nodeName, inline, inst;
-		nodeName = target.nodeName.toLowerCase();
-		inline = ( nodeName === "div" || nodeName === "span" );
-		if ( !target.id ) {
-			this.uuid += 1;
-			target.id = "dp" + this.uuid;
-		}
-		inst = this._newInst( $( target ), inline );
-		inst.settings = $.extend( {}, settings || {} );
-		if ( nodeName === "input" ) {
-			this._connectDatepicker( target, inst );
-		} else if ( inline ) {
-			this._inlineDatepicker( target, inst );
-		}
-	},
-
-	/* Create a new instance object. */
-	_newInst: function( target, inline ) {
-		var id = target[ 0 ].id.replace( /([^A-Za-z0-9_\-])/g, "\\\\$1" ); // escape jQuery meta chars
-		return { id: id, input: target, // associated target
-			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
-			drawMonth: 0, drawYear: 0, // month being drawn
-			inline: inline, // is datepicker inline or not
-			dpDiv: ( !inline ? this.dpDiv : // presentation div
-			datepicker_bindHover( $( "<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) ) ) };
-	},
-
-	/* Attach the date picker to an input field. */
-	_connectDatepicker: function( target, inst ) {
-		var input = $( target );
-		inst.append = $( [] );
-		inst.trigger = $( [] );
-		if ( input.hasClass( this.markerClassName ) ) {
-			return;
-		}
-		this._attachments( input, inst );
-		input.addClass( this.markerClassName ).on( "keydown", this._doKeyDown ).
-			on( "keypress", this._doKeyPress ).on( "keyup", this._doKeyUp );
-		this._autoSize( inst );
-		$.data( target, "datepicker", inst );
-
-		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
-		if ( inst.settings.disabled ) {
-			this._disableDatepicker( target );
-		}
-	},
-
-	/* Make attachments based on settings. */
-	_attachments: function( input, inst ) {
-		var showOn, buttonText, buttonImage,
-			appendText = this._get( inst, "appendText" ),
-			isRTL = this._get( inst, "isRTL" );
-
-		if ( inst.append ) {
-			inst.append.remove();
-		}
-		if ( appendText ) {
-			inst.append = $( "<span class='" + this._appendClass + "'>" + appendText + "</span>" );
-			input[ isRTL ? "before" : "after" ]( inst.append );
-		}
-
-		input.off( "focus", this._showDatepicker );
-
-		if ( inst.trigger ) {
-			inst.trigger.remove();
-		}
-
-		showOn = this._get( inst, "showOn" );
-		if ( showOn === "focus" || showOn === "both" ) { // pop-up date picker when in the marked field
-			input.on( "focus", this._showDatepicker );
-		}
-		if ( showOn === "button" || showOn === "both" ) { // pop-up date picker when button clicked
-			buttonText = this._get( inst, "buttonText" );
-			buttonImage = this._get( inst, "buttonImage" );
-			inst.trigger = $( this._get( inst, "buttonImageOnly" ) ?
-				$( "<img/>" ).addClass( this._triggerClass ).
-					attr( { src: buttonImage, alt: buttonText, title: buttonText } ) :
-				$( "<button type='button'></button>" ).addClass( this._triggerClass ).
-					html( !buttonImage ? buttonText : $( "<img/>" ).attr(
-					{ src:buttonImage, alt:buttonText, title:buttonText } ) ) );
-			input[ isRTL ? "before" : "after" ]( inst.trigger );
-			inst.trigger.on( "click", function() {
-				if ( $.datepicker._datepickerShowing && $.datepicker._lastInput === input[ 0 ] ) {
-					$.datepicker._hideDatepicker();
-				} else if ( $.datepicker._datepickerShowing && $.datepicker._lastInput !== input[ 0 ] ) {
-					$.datepicker._hideDatepicker();
-					$.datepicker._showDatepicker( input[ 0 ] );
-				} else {
-					$.datepicker._showDatepicker( input[ 0 ] );
-				}
-				return false;
-			} );
-		}
-	},
-
-	/* Apply the maximum length for the date format. */
-	_autoSize: function( inst ) {
-		if ( this._get( inst, "autoSize" ) && !inst.inline ) {
-			var findMax, max, maxI, i,
-				date = new Date( 2009, 12 - 1, 20 ), // Ensure double digits
-				dateFormat = this._get( inst, "dateFormat" );
-
-			if ( dateFormat.match( /[DM]/ ) ) {
-				findMax = function( names ) {
-					max = 0;
-					maxI = 0;
-					for ( i = 0; i < names.length; i++ ) {
-						if ( names[ i ].length > max ) {
-							max = names[ i ].length;
-							maxI = i;
-						}
-					}
-					return maxI;
-				};
-				date.setMonth( findMax( this._get( inst, ( dateFormat.match( /MM/ ) ?
-					"monthNames" : "monthNamesShort" ) ) ) );
-				date.setDate( findMax( this._get( inst, ( dateFormat.match( /DD/ ) ?
-					"dayNames" : "dayNamesShort" ) ) ) + 20 - date.getDay() );
-			}
-			inst.input.attr( "size", this._formatDate( inst, date ).length );
-		}
-	},
-
-	/* Attach an inline date picker to a div. */
-	_inlineDatepicker: function( target, inst ) {
-		var divSpan = $( target );
-		if ( divSpan.hasClass( this.markerClassName ) ) {
-			return;
-		}
-		divSpan.addClass( this.markerClassName ).append( inst.dpDiv );
-		$.data( target, "datepicker", inst );
-		this._setDate( inst, this._getDefaultDate( inst ), true );
-		this._updateDatepicker( inst );
-		this._updateAlternate( inst );
-
-		//If disabled option is true, disable the datepicker before showing it (see ticket #5665)
-		if ( inst.settings.disabled ) {
-			this._disableDatepicker( target );
-		}
-
-		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
-		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
-		inst.dpDiv.css( "display", "block" );
-	},
-
-	/* Pop-up the date picker in a "dialog" box.
-	 * @param  input element - ignored
-	 * @param  date	string or Date - the initial date to display
-	 * @param  onSelect  function - the function to call when a date is selected
-	 * @param  settings  object - update the dialog date picker instance's settings (anonymous object)
-	 * @param  pos int[2] - coordinates for the dialog's position within the screen or
-	 *					event - with x/y coordinates or
-	 *					leave empty for default (screen centre)
-	 * @return the manager object
-	 */
-	_dialogDatepicker: function( input, date, onSelect, settings, pos ) {
-		var id, browserWidth, browserHeight, scrollX, scrollY,
-			inst = this._dialogInst; // internal instance
-
-		if ( !inst ) {
-			this.uuid += 1;
-			id = "dp" + this.uuid;
-			this._dialogInput = $( "<input type='text' id='" + id +
-				"' style='position: absolute; top: -100px; width: 0px;'/>" );
-			this._dialogInput.on( "keydown", this._doKeyDown );
-			$( "body" ).append( this._dialogInput );
-			inst = this._dialogInst = this._newInst( this._dialogInput, false );
-			inst.settings = {};
-			$.data( this._dialogInput[ 0 ], "datepicker", inst );
-		}
-		datepicker_extendRemove( inst.settings, settings || {} );
-		date = ( date && date.constructor === Date ? this._formatDate( inst, date ) : date );
-		this._dialogInput.val( date );
-
-		this._pos = ( pos ? ( pos.length ? pos : [ pos.pageX, pos.pageY ] ) : null );
-		if ( !this._pos ) {
-			browserWidth = document.documentElement.clientWidth;
-			browserHeight = document.documentElement.clientHeight;
-			scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
-			scrollY = document.documentElement.scrollTop || document.body.scrollTop;
-			this._pos = // should use actual width/height below
-				[ ( browserWidth / 2 ) - 100 + scrollX, ( browserHeight / 2 ) - 150 + scrollY ];
-		}
-
-		// Move input on screen for focus, but hidden behind dialog
-		this._dialogInput.css( "left", ( this._pos[ 0 ] + 20 ) + "px" ).css( "top", this._pos[ 1 ] + "px" );
-		inst.settings.onSelect = onSelect;
-		this._inDialog = true;
-		this.dpDiv.addClass( this._dialogClass );
-		this._showDatepicker( this._dialogInput[ 0 ] );
-		if ( $.blockUI ) {
-			$.blockUI( this.dpDiv );
-		}
-		$.data( this._dialogInput[ 0 ], "datepicker", inst );
-		return this;
-	},
-
-	/* Detach a datepicker from its control.
-	 * @param  target	element - the target input field or division or span
-	 */
-	_destroyDatepicker: function( target ) {
-		var nodeName,
-			$target = $( target ),
-			inst = $.data( target, "datepicker" );
-
-		if ( !$target.hasClass( this.markerClassName ) ) {
-			return;
-		}
-
-		nodeName = target.nodeName.toLowerCase();
-		$.removeData( target, "datepicker" );
-		if ( nodeName === "input" ) {
-			inst.append.remove();
-			inst.trigger.remove();
-			$target.removeClass( this.markerClassName ).
-				off( "focus", this._showDatepicker ).
-				off( "keydown", this._doKeyDown ).
-				off( "keypress", this._doKeyPress ).
-				off( "keyup", this._doKeyUp );
-		} else if ( nodeName === "div" || nodeName === "span" ) {
-			$target.removeClass( this.markerClassName ).empty();
-		}
-
-		if ( datepicker_instActive === inst ) {
-			datepicker_instActive = null;
-		}
-	},
-
-	/* Enable the date picker to a jQuery selection.
-	 * @param  target	element - the target input field or division or span
-	 */
-	_enableDatepicker: function( target ) {
-		var nodeName, inline,
-			$target = $( target ),
-			inst = $.data( target, "datepicker" );
-
-		if ( !$target.hasClass( this.markerClassName ) ) {
-			return;
-		}
-
-		nodeName = target.nodeName.toLowerCase();
-		if ( nodeName === "input" ) {
-			target.disabled = false;
-			inst.trigger.filter( "button" ).
-				each( function() { this.disabled = false; } ).end().
-				filter( "img" ).css( { opacity: "1.0", cursor: "" } );
-		} else if ( nodeName === "div" || nodeName === "span" ) {
-			inline = $target.children( "." + this._inlineClass );
-			inline.children().removeClass( "ui-state-disabled" );
-			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
-				prop( "disabled", false );
-		}
-		this._disabledInputs = $.map( this._disabledInputs,
-			function( value ) { return ( value === target ? null : value ); } ); // delete entry
-	},
-
-	/* Disable the date picker to a jQuery selection.
-	 * @param  target	element - the target input field or division or span
-	 */
-	_disableDatepicker: function( target ) {
-		var nodeName, inline,
-			$target = $( target ),
-			inst = $.data( target, "datepicker" );
-
-		if ( !$target.hasClass( this.markerClassName ) ) {
-			return;
-		}
-
-		nodeName = target.nodeName.toLowerCase();
-		if ( nodeName === "input" ) {
-			target.disabled = true;
-			inst.trigger.filter( "button" ).
-				each( function() { this.disabled = true; } ).end().
-				filter( "img" ).css( { opacity: "0.5", cursor: "default" } );
-		} else if ( nodeName === "div" || nodeName === "span" ) {
-			inline = $target.children( "." + this._inlineClass );
-			inline.children().addClass( "ui-state-disabled" );
-			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
-				prop( "disabled", true );
-		}
-		this._disabledInputs = $.map( this._disabledInputs,
-			function( value ) { return ( value === target ? null : value ); } ); // delete entry
-		this._disabledInputs[ this._disabledInputs.length ] = target;
-	},
-
-	/* Is the first field in a jQuery collection disabled as a datepicker?
-	 * @param  target	element - the target input field or division or span
-	 * @return boolean - true if disabled, false if enabled
-	 */
-	_isDisabledDatepicker: function( target ) {
-		if ( !target ) {
-			return false;
-		}
-		for ( var i = 0; i < this._disabledInputs.length; i++ ) {
-			if ( this._disabledInputs[ i ] === target ) {
-				return true;
-			}
-		}
-		return false;
-	},
-
-	/* Retrieve the instance data for the target control.
-	 * @param  target  element - the target input field or division or span
-	 * @return  object - the associated instance data
-	 * @throws  error if a jQuery problem getting data
-	 */
-	_getInst: function( target ) {
-		try {
-			return $.data( target, "datepicker" );
-		}
-		catch ( err ) {
-			throw "Missing instance data for this datepicker";
-		}
-	},
-
-	/* Update or retrieve the settings for a date picker attached to an input field or division.
-	 * @param  target  element - the target input field or division or span
-	 * @param  name	object - the new settings to update or
-	 *				string - the name of the setting to change or retrieve,
-	 *				when retrieving also "all" for all instance settings or
-	 *				"defaults" for all global defaults
-	 * @param  value   any - the new value for the setting
-	 *				(omit if above is an object or to retrieve a value)
-	 */
-	_optionDatepicker: function( target, name, value ) {
-		var settings, date, minDate, maxDate,
-			inst = this._getInst( target );
-
-		if ( arguments.length === 2 && typeof name === "string" ) {
-			return ( name === "defaults" ? $.extend( {}, $.datepicker._defaults ) :
-				( inst ? ( name === "all" ? $.extend( {}, inst.settings ) :
-				this._get( inst, name ) ) : null ) );
-		}
-
-		settings = name || {};
-		if ( typeof name === "string" ) {
-			settings = {};
-			settings[ name ] = value;
-		}
-
-		if ( inst ) {
-			if ( this._curInst === inst ) {
-				this._hideDatepicker();
-			}
-
-			date = this._getDateDatepicker( target, true );
-			minDate = this._getMinMaxDate( inst, "min" );
-			maxDate = this._getMinMaxDate( inst, "max" );
-			datepicker_extendRemove( inst.settings, settings );
-
-			// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
-			if ( minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined ) {
-				inst.settings.minDate = this._formatDate( inst, minDate );
-			}
-			if ( maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined ) {
-				inst.settings.maxDate = this._formatDate( inst, maxDate );
-			}
-			if ( "disabled" in settings ) {
-				if ( settings.disabled ) {
-					this._disableDatepicker( target );
-				} else {
-					this._enableDatepicker( target );
-				}
-			}
-			this._attachments( $( target ), inst );
-			this._autoSize( inst );
-			this._setDate( inst, date );
-			this._updateAlternate( inst );
-			this._updateDatepicker( inst );
-		}
-	},
-
-	// Change method deprecated
-	_changeDatepicker: function( target, name, value ) {
-		this._optionDatepicker( target, name, value );
-	},
-
-	/* Redraw the date picker attached to an input field or division.
-	 * @param  target  element - the target input field or division or span
-	 */
-	_refreshDatepicker: function( target ) {
-		var inst = this._getInst( target );
-		if ( inst ) {
-			this._updateDatepicker( inst );
-		}
-	},
-
-	/* Set the dates for a jQuery selection.
-	 * @param  target element - the target input field or division or span
-	 * @param  date	Date - the new date
-	 */
-	_setDateDatepicker: function( target, date ) {
-		var inst = this._getInst( target );
-		if ( inst ) {
-			this._setDate( inst, date );
-			this._updateDatepicker( inst );
-			this._updateAlternate( inst );
-		}
-	},
-
-	/* Get the date(s) for the first entry in a jQuery selection.
-	 * @param  target element - the target input field or division or span
-	 * @param  noDefault boolean - true if no default date is to be used
-	 * @return Date - the current date
-	 */
-	_getDateDatepicker: function( target, noDefault ) {
-		var inst = this._getInst( target );
-		if ( inst && !inst.inline ) {
-			this._setDateFromField( inst, noDefault );
-		}
-		return ( inst ? this._getDate( inst ) : null );
-	},
-
-	/* Handle keystrokes. */
-	_doKeyDown: function( event ) {
-		var onSelect, dateStr, sel,
-			inst = $.datepicker._getInst( event.target ),
-			handled = true,
-			isRTL = inst.dpDiv.is( ".ui-datepicker-rtl" );
-
-		inst._keyEvent = true;
-		if ( $.datepicker._datepickerShowing ) {
-			switch ( event.keyCode ) {
-				case 9: $.datepicker._hideDatepicker();
-						handled = false;
-						break; // hide on tab out
-				case 13: sel = $( "td." + $.datepicker._dayOverClass + ":not(." +
-									$.datepicker._currentClass + ")", inst.dpDiv );
-						if ( sel[ 0 ] ) {
-							$.datepicker._selectDay( event.target, inst.selectedMonth, inst.selectedYear, sel[ 0 ] );
-						}
-
-						onSelect = $.datepicker._get( inst, "onSelect" );
-						if ( onSelect ) {
-							dateStr = $.datepicker._formatDate( inst );
-
-							// Trigger custom callback
-							onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );
-						} else {
-							$.datepicker._hideDatepicker();
-						}
-
-						return false; // don't submit the form
-				case 27: $.datepicker._hideDatepicker();
-						break; // hide on escape
-				case 33: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
-							-$.datepicker._get( inst, "stepBigMonths" ) :
-							-$.datepicker._get( inst, "stepMonths" ) ), "M" );
-						break; // previous month/year on page up/+ ctrl
-				case 34: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
-							+$.datepicker._get( inst, "stepBigMonths" ) :
-							+$.datepicker._get( inst, "stepMonths" ) ), "M" );
-						break; // next month/year on page down/+ ctrl
-				case 35: if ( event.ctrlKey || event.metaKey ) {
-							$.datepicker._clearDate( event.target );
-						}
-						handled = event.ctrlKey || event.metaKey;
-						break; // clear on ctrl or command +end
-				case 36: if ( event.ctrlKey || event.metaKey ) {
-							$.datepicker._gotoToday( event.target );
-						}
-						handled = event.ctrlKey || event.metaKey;
-						break; // current on ctrl or command +home
-				case 37: if ( event.ctrlKey || event.metaKey ) {
-							$.datepicker._adjustDate( event.target, ( isRTL ? +1 : -1 ), "D" );
-						}
-						handled = event.ctrlKey || event.metaKey;
-
-						// -1 day on ctrl or command +left
-						if ( event.originalEvent.altKey ) {
-							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
-								-$.datepicker._get( inst, "stepBigMonths" ) :
-								-$.datepicker._get( inst, "stepMonths" ) ), "M" );
-						}
-
-						// next month/year on alt +left on Mac
-						break;
-				case 38: if ( event.ctrlKey || event.metaKey ) {
-							$.datepicker._adjustDate( event.target, -7, "D" );
-						}
-						handled = event.ctrlKey || event.metaKey;
-						break; // -1 week on ctrl or command +up
-				case 39: if ( event.ctrlKey || event.metaKey ) {
-							$.datepicker._adjustDate( event.target, ( isRTL ? -1 : +1 ), "D" );
-						}
-						handled = event.ctrlKey || event.metaKey;
-
-						// +1 day on ctrl or command +right
-						if ( event.originalEvent.altKey ) {
-							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
-								+$.datepicker._get( inst, "stepBigMonths" ) :
-								+$.datepicker._get( inst, "stepMonths" ) ), "M" );
-						}
-
-						// next month/year on alt +right
-						break;
-				case 40: if ( event.ctrlKey || event.metaKey ) {
-							$.datepicker._adjustDate( event.target, +7, "D" );
-						}
-						handled = event.ctrlKey || event.metaKey;
-						break; // +1 week on ctrl or command +down
-				default: handled = false;
-			}
-		} else if ( event.keyCode === 36 && event.ctrlKey ) { // display the date picker on ctrl+home
-			$.datepicker._showDatepicker( this );
-		} else {
-			handled = false;
-		}
-
-		if ( handled ) {
-			event.preventDefault();
-			event.stopPropagation();
-		}
-	},
-
-	/* Filter entered characters - based on date format. */
-	_doKeyPress: function( event ) {
-		var chars, chr,
-			inst = $.datepicker._getInst( event.target );
-
-		if ( $.datepicker._get( inst, "constrainInput" ) ) {
-			chars = $.datepicker._possibleChars( $.datepicker._get( inst, "dateFormat" ) );
-			chr = String.fromCharCode( event.charCode == null ? event.keyCode : event.charCode );
-			return event.ctrlKey || event.metaKey || ( chr < " " || !chars || chars.indexOf( chr ) > -1 );
-		}
-	},
-
-	/* Synchronise manual entry and field/alternate field. */
-	_doKeyUp: function( event ) {
-		var date,
-			inst = $.datepicker._getInst( event.target );
-
-		if ( inst.input.val() !== inst.lastVal ) {
-			try {
-				date = $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
-					( inst.input ? inst.input.val() : null ),
-					$.datepicker._getFormatConfig( inst ) );
-
-				if ( date ) { // only if valid
-					$.datepicker._setDateFromField( inst );
-					$.datepicker._updateAlternate( inst );
-					$.datepicker._updateDatepicker( inst );
-				}
-			}
-			catch ( err ) {
-			}
-		}
-		return true;
-	},
-
-	/* Pop-up the date picker for a given input field.
-	 * If false returned from beforeShow event handler do not show.
-	 * @param  input  element - the input field attached to the date picker or
-	 *					event - if triggered by focus
-	 */
-	_showDatepicker: function( input ) {
-		input = input.target || input;
-		if ( input.nodeName.toLowerCase() !== "input" ) { // find from button/image trigger
-			input = $( "input", input.parentNode )[ 0 ];
-		}
-
-		if ( $.datepicker._isDisabledDatepicker( input ) || $.datepicker._lastInput === input ) { // already here
-			return;
-		}
-
-		var inst, beforeShow, beforeShowSettings, isFixed,
-			offset, showAnim, duration;
-
-		inst = $.datepicker._getInst( input );
-		if ( $.datepicker._curInst && $.datepicker._curInst !== inst ) {
-			$.datepicker._curInst.dpDiv.stop( true, true );
-			if ( inst && $.datepicker._datepickerShowing ) {
-				$.datepicker._hideDatepicker( $.datepicker._curInst.input[ 0 ] );
-			}
-		}
-
-		beforeShow = $.datepicker._get( inst, "beforeShow" );
-		beforeShowSettings = beforeShow ? beforeShow.apply( input, [ input, inst ] ) : {};
-		if ( beforeShowSettings === false ) {
-			return;
-		}
-		datepicker_extendRemove( inst.settings, beforeShowSettings );
-
-		inst.lastVal = null;
-		$.datepicker._lastInput = input;
-		$.datepicker._setDateFromField( inst );
-
-		if ( $.datepicker._inDialog ) { // hide cursor
-			input.value = "";
-		}
-		if ( !$.datepicker._pos ) { // position below input
-			$.datepicker._pos = $.datepicker._findPos( input );
-			$.datepicker._pos[ 1 ] += input.offsetHeight; // add the height
-		}
-
-		isFixed = false;
-		$( input ).parents().each( function() {
-			isFixed |= $( this ).css( "position" ) === "fixed";
-			return !isFixed;
-		} );
-
-		offset = { left: $.datepicker._pos[ 0 ], top: $.datepicker._pos[ 1 ] };
-		$.datepicker._pos = null;
-
-		//to avoid flashes on Firefox
-		inst.dpDiv.empty();
-
-		// determine sizing offscreen
-		inst.dpDiv.css( { position: "absolute", display: "block", top: "-1000px" } );
-		$.datepicker._updateDatepicker( inst );
-
-		// fix width for dynamic number of date pickers
-		// and adjust position before showing
-		offset = $.datepicker._checkOffset( inst, offset, isFixed );
-		inst.dpDiv.css( { position: ( $.datepicker._inDialog && $.blockUI ?
-			"static" : ( isFixed ? "fixed" : "absolute" ) ), display: "none",
-			left: offset.left + "px", top: offset.top + "px" } );
-
-		if ( !inst.inline ) {
-			showAnim = $.datepicker._get( inst, "showAnim" );
-			duration = $.datepicker._get( inst, "duration" );
-			inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 );
-			$.datepicker._datepickerShowing = true;
-
-			if ( $.effects && $.effects.effect[ showAnim ] ) {
-				inst.dpDiv.show( showAnim, $.datepicker._get( inst, "showOptions" ), duration );
-			} else {
-				inst.dpDiv[ showAnim || "show" ]( showAnim ? duration : null );
-			}
-
-			if ( $.datepicker._shouldFocusInput( inst ) ) {
-				inst.input.trigger( "focus" );
-			}
-
-			$.datepicker._curInst = inst;
-		}
-	},
-
-	/* Generate the date picker content. */
-	_updateDatepicker: function( inst ) {
-		this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
-		datepicker_instActive = inst; // for delegate hover events
-		inst.dpDiv.empty().append( this._generateHTML( inst ) );
-		this._attachHandlers( inst );
-
-		var origyearshtml,
-			numMonths = this._getNumberOfMonths( inst ),
-			cols = numMonths[ 1 ],
-			width = 17,
-			activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" );
-
-		if ( activeCell.length > 0 ) {
-			datepicker_handleMouseover.apply( activeCell.get( 0 ) );
-		}
-
-		inst.dpDiv.removeClass( "ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4" ).width( "" );
-		if ( cols > 1 ) {
-			inst.dpDiv.addClass( "ui-datepicker-multi-" + cols ).css( "width", ( width * cols ) + "em" );
-		}
-		inst.dpDiv[ ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ? "add" : "remove" ) +
-			"Class" ]( "ui-datepicker-multi" );
-		inst.dpDiv[ ( this._get( inst, "isRTL" ) ? "add" : "remove" ) +
-			"Class" ]( "ui-datepicker-rtl" );
-
-		if ( inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {
-			inst.input.trigger( "focus" );
-		}
-
-		// Deffered render of the years select (to avoid flashes on Firefox)
-		if ( inst.yearshtml ) {
-			origyearshtml = inst.yearshtml;
-			setTimeout( function() {
-
-				//assure that inst.yearshtml didn't change.
-				if ( origyearshtml === inst.yearshtml && inst.yearshtml ) {
-					inst.dpDiv.find( "select.ui-datepicker-year:first" ).replaceWith( inst.yearshtml );
-				}
-				origyearshtml = inst.yearshtml = null;
-			}, 0 );
-		}
-	},
-
-	// #6694 - don't focus the input if it's already focused
-	// this breaks the change event in IE
-	// Support: IE and jQuery <1.9
-	_shouldFocusInput: function( inst ) {
-		return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
-	},
-
-	/* Check positioning to remain on screen. */
-	_checkOffset: function( inst, offset, isFixed ) {
-		var dpWidth = inst.dpDiv.outerWidth(),
-			dpHeight = inst.dpDiv.outerHeight(),
-			inputWidth = inst.input ? inst.input.outerWidth() : 0,
-			inputHeight = inst.input ? inst.input.outerHeight() : 0,
-			viewWidth = document.documentElement.clientWidth + ( isFixed ? 0 : $( document ).scrollLeft() ),
-			viewHeight = document.documentElement.clientHeight + ( isFixed ? 0 : $( document ).scrollTop() );
-
-		offset.left -= ( this._get( inst, "isRTL" ) ? ( dpWidth - inputWidth ) : 0 );
-		offset.left -= ( isFixed && offset.left === inst.input.offset().left ) ? $( document ).scrollLeft() : 0;
-		offset.top -= ( isFixed && offset.top === ( inst.input.offset().top + inputHeight ) ) ? $( document ).scrollTop() : 0;
-
-		// Now check if datepicker is showing outside window viewport - move to a better place if so.
-		offset.left -= Math.min( offset.left, ( offset.left + dpWidth > viewWidth && viewWidth > dpWidth ) ?
-			Math.abs( offset.left + dpWidth - viewWidth ) : 0 );
-		offset.top -= Math.min( offset.top, ( offset.top + dpHeight > viewHeight && viewHeight > dpHeight ) ?
-			Math.abs( dpHeight + inputHeight ) : 0 );
-
-		return offset;
-	},
-
-	/* Find an object's position on the screen. */
-	_findPos: function( obj ) {
-		var position,
-			inst = this._getInst( obj ),
-			isRTL = this._get( inst, "isRTL" );
-
-		while ( obj && ( obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden( obj ) ) ) {
-			obj = obj[ isRTL ? "previousSibling" : "nextSibling" ];
-		}
-
-		position = $( obj ).offset();
-		return [ position.left, position.top ];
-	},
-
-	/* Hide the date picker from view.
-	 * @param  input  element - the input field attached to the date picker
-	 */
-	_hideDatepicker: function( input ) {
-		var showAnim, duration, postProcess, onClose,
-			inst = this._curInst;
-
-		if ( !inst || ( input && inst !== $.data( input, "datepicker" ) ) ) {
-			return;
-		}
-
-		if ( this._datepickerShowing ) {
-			showAnim = this._get( inst, "showAnim" );
-			duration = this._get( inst, "duration" );
-			postProcess = function() {
-				$.datepicker._tidyDialog( inst );
-			};
-
-			// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
-			if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
-				inst.dpDiv.hide( showAnim, $.datepicker._get( inst, "showOptions" ), duration, postProcess );
-			} else {
-				inst.dpDiv[ ( showAnim === "slideDown" ? "slideUp" :
-					( showAnim === "fadeIn" ? "fadeOut" : "hide" ) ) ]( ( showAnim ? duration : null ), postProcess );
-			}
-
-			if ( !showAnim ) {
-				postProcess();
-			}
-			this._datepickerShowing = false;
-
-			onClose = this._get( inst, "onClose" );
-			if ( onClose ) {
-				onClose.apply( ( inst.input ? inst.input[ 0 ] : null ), [ ( inst.input ? inst.input.val() : "" ), inst ] );
-			}
-
-			this._lastInput = null;
-			if ( this._inDialog ) {
-				this._dialogInput.css( { position: "absolute", left: "0", top: "-100px" } );
-				if ( $.blockUI ) {
-					$.unblockUI();
-					$( "body" ).append( this.dpDiv );
-				}
-			}
-			this._inDialog = false;
-		}
-	},
-
-	/* Tidy up after a dialog display. */
-	_tidyDialog: function( inst ) {
-		inst.dpDiv.removeClass( this._dialogClass ).off( ".ui-datepicker-calendar" );
-	},
-
-	/* Close date picker if clicked elsewhere. */
-	_checkExternalClick: function( event ) {
-		if ( !$.datepicker._curInst ) {
-			return;
-		}
-
-		var $target = $( event.target ),
-			inst = $.datepicker._getInst( $target[ 0 ] );
-
-		if ( ( ( $target[ 0 ].id !== $.datepicker._mainDivId &&
-				$target.parents( "#" + $.datepicker._mainDivId ).length === 0 &&
-				!$target.hasClass( $.datepicker.markerClassName ) &&
-				!$target.closest( "." + $.datepicker._triggerClass ).length &&
-				$.datepicker._datepickerShowing && !( $.datepicker._inDialog && $.blockUI ) ) ) ||
-			( $target.hasClass( $.datepicker.markerClassName ) && $.datepicker._curInst !== inst ) ) {
-				$.datepicker._hideDatepicker();
-		}
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustDate: function( id, offset, period ) {
-		var target = $( id ),
-			inst = this._getInst( target[ 0 ] );
-
-		if ( this._isDisabledDatepicker( target[ 0 ] ) ) {
-			return;
-		}
-		this._adjustInstDate( inst, offset +
-			( period === "M" ? this._get( inst, "showCurrentAtPos" ) : 0 ), // undo positioning
-			period );
-		this._updateDatepicker( inst );
-	},
-
-	/* Action for current link. */
-	_gotoToday: function( id ) {
-		var date,
-			target = $( id ),
-			inst = this._getInst( target[ 0 ] );
-
-		if ( this._get( inst, "gotoCurrent" ) && inst.currentDay ) {
-			inst.selectedDay = inst.currentDay;
-			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
-			inst.drawYear = inst.selectedYear = inst.currentYear;
-		} else {
-			date = new Date();
-			inst.selectedDay = date.getDate();
-			inst.drawMonth = inst.selectedMonth = date.getMonth();
-			inst.drawYear = inst.selectedYear = date.getFullYear();
-		}
-		this._notifyChange( inst );
-		this._adjustDate( target );
-	},
-
-	/* Action for selecting a new month/year. */
-	_selectMonthYear: function( id, select, period ) {
-		var target = $( id ),
-			inst = this._getInst( target[ 0 ] );
-
-		inst[ "selected" + ( period === "M" ? "Month" : "Year" ) ] =
-		inst[ "draw" + ( period === "M" ? "Month" : "Year" ) ] =
-			parseInt( select.options[ select.selectedIndex ].value, 10 );
-
-		this._notifyChange( inst );
-		this._adjustDate( target );
-	},
-
-	/* Action for selecting a day. */
-	_selectDay: function( id, month, year, td ) {
-		var inst,
-			target = $( id );
-
-		if ( $( td ).hasClass( this._unselectableClass ) || this._isDisabledDatepicker( target[ 0 ] ) ) {
-			return;
-		}
-
-		inst = this._getInst( target[ 0 ] );
-		inst.selectedDay = inst.currentDay = $( "a", td ).html();
-		inst.selectedMonth = inst.currentMonth = month;
-		inst.selectedYear = inst.currentYear = year;
-		this._selectDate( id, this._formatDate( inst,
-			inst.currentDay, inst.currentMonth, inst.currentYear ) );
-	},
-
-	/* Erase the input field and hide the date picker. */
-	_clearDate: function( id ) {
-		var target = $( id );
-		this._selectDate( target, "" );
-	},
-
-	/* Update the input field with the selected date. */
-	_selectDate: function( id, dateStr ) {
-		var onSelect,
-			target = $( id ),
-			inst = this._getInst( target[ 0 ] );
-
-		dateStr = ( dateStr != null ? dateStr : this._formatDate( inst ) );
-		if ( inst.input ) {
-			inst.input.val( dateStr );
-		}
-		this._updateAlternate( inst );
-
-		onSelect = this._get( inst, "onSelect" );
-		if ( onSelect ) {
-			onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );  // trigger custom callback
-		} else if ( inst.input ) {
-			inst.input.trigger( "change" ); // fire the change event
-		}
-
-		if ( inst.inline ) {
-			this._updateDatepicker( inst );
-		} else {
-			this._hideDatepicker();
-			this._lastInput = inst.input[ 0 ];
-			if ( typeof( inst.input[ 0 ] ) !== "object" ) {
-				inst.input.trigger( "focus" ); // restore focus
-			}
-			this._lastInput = null;
-		}
-	},
-
-	/* Update any alternate field to synchronise with the main field. */
-	_updateAlternate: function( inst ) {
-		var altFormat, date, dateStr,
-			altField = this._get( inst, "altField" );
-
-		if ( altField ) { // update alternate field too
-			altFormat = this._get( inst, "altFormat" ) || this._get( inst, "dateFormat" );
-			date = this._getDate( inst );
-			dateStr = this.formatDate( altFormat, date, this._getFormatConfig( inst ) );
-			$( altField ).val( dateStr );
-		}
-	},
-
-	/* Set as beforeShowDay function to prevent selection of weekends.
-	 * @param  date  Date - the date to customise
-	 * @return [boolean, string] - is this date selectable?, what is its CSS class?
-	 */
-	noWeekends: function( date ) {
-		var day = date.getDay();
-		return [ ( day > 0 && day < 6 ), "" ];
-	},
-
-	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
-	 * @param  date  Date - the date to get the week for
-	 * @return  number - the number of the week within the year that contains this date
-	 */
-	iso8601Week: function( date ) {
-		var time,
-			checkDate = new Date( date.getTime() );
-
-		// Find Thursday of this week starting on Monday
-		checkDate.setDate( checkDate.getDate() + 4 - ( checkDate.getDay() || 7 ) );
-
-		time = checkDate.getTime();
-		checkDate.setMonth( 0 ); // Compare with Jan 1
-		checkDate.setDate( 1 );
-		return Math.floor( Math.round( ( time - checkDate ) / 86400000 ) / 7 ) + 1;
-	},
-
-	/* Parse a string value into a date object.
-	 * See formatDate below for the possible formats.
-	 *
-	 * @param  format string - the expected format of the date
-	 * @param  value string - the date in the above format
-	 * @param  settings Object - attributes include:
-	 *					shortYearCutoff  number - the cutoff year for determining the century (optional)
-	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
-	 *					dayNames		string[7] - names of the days from Sunday (optional)
-	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
-	 *					monthNames		string[12] - names of the months (optional)
-	 * @return  Date - the extracted date value or null if value is blank
-	 */
-	parseDate: function( format, value, settings ) {
-		if ( format == null || value == null ) {
-			throw "Invalid arguments";
-		}
-
-		value = ( typeof value === "object" ? value.toString() : value + "" );
-		if ( value === "" ) {
-			return null;
-		}
-
-		var iFormat, dim, extra,
-			iValue = 0,
-			shortYearCutoffTemp = ( settings ? settings.shortYearCutoff : null ) || this._defaults.shortYearCutoff,
-			shortYearCutoff = ( typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp :
-				new Date().getFullYear() % 100 + parseInt( shortYearCutoffTemp, 10 ) ),
-			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
-			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
-			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
-			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
-			year = -1,
-			month = -1,
-			day = -1,
-			doy = -1,
-			literal = false,
-			date,
-
-			// Check whether a format character is doubled
-			lookAhead = function( match ) {
-				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
-				if ( matches ) {
-					iFormat++;
-				}
-				return matches;
-			},
-
-			// Extract a number from the string value
-			getNumber = function( match ) {
-				var isDoubled = lookAhead( match ),
-					size = ( match === "@" ? 14 : ( match === "!" ? 20 :
-					( match === "y" && isDoubled ? 4 : ( match === "o" ? 3 : 2 ) ) ) ),
-					minSize = ( match === "y" ? size : 1 ),
-					digits = new RegExp( "^\\d{" + minSize + "," + size + "}" ),
-					num = value.substring( iValue ).match( digits );
-				if ( !num ) {
-					throw "Missing number at position " + iValue;
-				}
-				iValue += num[ 0 ].length;
-				return parseInt( num[ 0 ], 10 );
-			},
-
-			// Extract a name from the string value and convert to an index
-			getName = function( match, shortNames, longNames ) {
-				var index = -1,
-					names = $.map( lookAhead( match ) ? longNames : shortNames, function( v, k ) {
-						return [ [ k, v ] ];
-					} ).sort( function( a, b ) {
-						return -( a[ 1 ].length - b[ 1 ].length );
-					} );
-
-				$.each( names, function( i, pair ) {
-					var name = pair[ 1 ];
-					if ( value.substr( iValue, name.length ).toLowerCase() === name.toLowerCase() ) {
-						index = pair[ 0 ];
-						iValue += name.length;
-						return false;
-					}
-				} );
-				if ( index !== -1 ) {
-					return index + 1;
-				} else {
-					throw "Unknown name at position " + iValue;
-				}
-			},
-
-			// Confirm that a literal character matches the string value
-			checkLiteral = function() {
-				if ( value.charAt( iValue ) !== format.charAt( iFormat ) ) {
-					throw "Unexpected literal at position " + iValue;
-				}
-				iValue++;
-			};
-
-		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
-			if ( literal ) {
-				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
-					literal = false;
-				} else {
-					checkLiteral();
-				}
-			} else {
-				switch ( format.charAt( iFormat ) ) {
-					case "d":
-						day = getNumber( "d" );
-						break;
-					case "D":
-						getName( "D", dayNamesShort, dayNames );
-						break;
-					case "o":
-						doy = getNumber( "o" );
-						break;
-					case "m":
-						month = getNumber( "m" );
-						break;
-					case "M":
-						month = getName( "M", monthNamesShort, monthNames );
-						break;
-					case "y":
-						year = getNumber( "y" );
-						break;
-					case "@":
-						date = new Date( getNumber( "@" ) );
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case "!":
-						date = new Date( ( getNumber( "!" ) - this._ticksTo1970 ) / 10000 );
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case "'":
-						if ( lookAhead( "'" ) ) {
-							checkLiteral();
-						} else {
-							literal = true;
-						}
-						break;
-					default:
-						checkLiteral();
-				}
-			}
-		}
-
-		if ( iValue < value.length ) {
-			extra = value.substr( iValue );
-			if ( !/^\s+/.test( extra ) ) {
-				throw "Extra/unparsed characters found in date: " + extra;
-			}
-		}
-
-		if ( year === -1 ) {
-			year = new Date().getFullYear();
-		} else if ( year < 100 ) {
-			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
-				( year <= shortYearCutoff ? 0 : -100 );
-		}
-
-		if ( doy > -1 ) {
-			month = 1;
-			day = doy;
-			do {
-				dim = this._getDaysInMonth( year, month - 1 );
-				if ( day <= dim ) {
-					break;
-				}
-				month++;
-				day -= dim;
-			} while ( true );
-		}
-
-		date = this._daylightSavingAdjust( new Date( year, month - 1, day ) );
-		if ( date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day ) {
-			throw "Invalid date"; // E.g. 31/02/00
-		}
-		return date;
-	},
-
-	/* Standard date formats. */
-	ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
-	COOKIE: "D, dd M yy",
-	ISO_8601: "yy-mm-dd",
-	RFC_822: "D, d M y",
-	RFC_850: "DD, dd-M-y",
-	RFC_1036: "D, d M y",
-	RFC_1123: "D, d M yy",
-	RFC_2822: "D, d M yy",
-	RSS: "D, d M y", // RFC 822
-	TICKS: "!",
-	TIMESTAMP: "@",
-	W3C: "yy-mm-dd", // ISO 8601
-
-	_ticksTo1970: ( ( ( 1970 - 1 ) * 365 + Math.floor( 1970 / 4 ) - Math.floor( 1970 / 100 ) +
-		Math.floor( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ),
-
-	/* Format a date object into a string value.
-	 * The format can be combinations of the following:
-	 * d  - day of month (no leading zero)
-	 * dd - day of month (two digit)
-	 * o  - day of year (no leading zeros)
-	 * oo - day of year (three digit)
-	 * D  - day name short
-	 * DD - day name long
-	 * m  - month of year (no leading zero)
-	 * mm - month of year (two digit)
-	 * M  - month name short
-	 * MM - month name long
-	 * y  - year (two digit)
-	 * yy - year (four digit)
-	 * @ - Unix timestamp (ms since 01/01/1970)
-	 * ! - Windows ticks (100ns since 01/01/0001)
-	 * "..." - literal text
-	 * '' - single quote
-	 *
-	 * @param  format string - the desired format of the date
-	 * @param  date Date - the date value to format
-	 * @param  settings Object - attributes include:
-	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
-	 *					dayNames		string[7] - names of the days from Sunday (optional)
-	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
-	 *					monthNames		string[12] - names of the months (optional)
-	 * @return  string - the date in the above format
-	 */
-	formatDate: function( format, date, settings ) {
-		if ( !date ) {
-			return "";
-		}
-
-		var iFormat,
-			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
-			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
-			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
-			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
-
-			// Check whether a format character is doubled
-			lookAhead = function( match ) {
-				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
-				if ( matches ) {
-					iFormat++;
-				}
-				return matches;
-			},
-
-			// Format a number, with leading zero if necessary
-			formatNumber = function( match, value, len ) {
-				var num = "" + value;
-				if ( lookAhead( match ) ) {
-					while ( num.length < len ) {
-						num = "0" + num;
-					}
-				}
-				return num;
-			},
-
-			// Format a name, short or long as requested
-			formatName = function( match, value, shortNames, longNames ) {
-				return ( lookAhead( match ) ? longNames[ value ] : shortNames[ value ] );
-			},
-			output = "",
-			literal = false;
-
-		if ( date ) {
-			for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
-				if ( literal ) {
-					if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
-						literal = false;
-					} else {
-						output += format.charAt( iFormat );
-					}
-				} else {
-					switch ( format.charAt( iFormat ) ) {
-						case "d":
-							output += formatNumber( "d", date.getDate(), 2 );
-							break;
-						case "D":
-							output += formatName( "D", date.getDay(), dayNamesShort, dayNames );
-							break;
-						case "o":
-							output += formatNumber( "o",
-								Math.round( ( new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime() - new Date( date.getFullYear(), 0, 0 ).getTime() ) / 86400000 ), 3 );
-							break;
-						case "m":
-							output += formatNumber( "m", date.getMonth() + 1, 2 );
-							break;
-						case "M":
-							output += formatName( "M", date.getMonth(), monthNamesShort, monthNames );
-							break;
-						case "y":
-							output += ( lookAhead( "y" ) ? date.getFullYear() :
-								( date.getFullYear() % 100 < 10 ? "0" : "" ) + date.getFullYear() % 100 );
-							break;
-						case "@":
-							output += date.getTime();
-							break;
-						case "!":
-							output += date.getTime() * 10000 + this._ticksTo1970;
-							break;
-						case "'":
-							if ( lookAhead( "'" ) ) {
-								output += "'";
-							} else {
-								literal = true;
-							}
-							break;
-						default:
-							output += format.charAt( iFormat );
-					}
-				}
-			}
-		}
-		return output;
-	},
-
-	/* Extract all possible characters from the date format. */
-	_possibleChars: function( format ) {
-		var iFormat,
-			chars = "",
-			literal = false,
-
-			// Check whether a format character is doubled
-			lookAhead = function( match ) {
-				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
-				if ( matches ) {
-					iFormat++;
-				}
-				return matches;
-			};
-
-		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
-			if ( literal ) {
-				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
-					literal = false;
-				} else {
-					chars += format.charAt( iFormat );
-				}
-			} else {
-				switch ( format.charAt( iFormat ) ) {
-					case "d": case "m": case "y": case "@":
-						chars += "0123456789";
-						break;
-					case "D": case "M":
-						return null; // Accept anything
-					case "'":
-						if ( lookAhead( "'" ) ) {
-							chars += "'";
-						} else {
-							literal = true;
-						}
-						break;
-					default:
-						chars += format.charAt( iFormat );
-				}
-			}
-		}
-		return chars;
-	},
-
-	/* Get a setting value, defaulting if necessary. */
-	_get: function( inst, name ) {
-		return inst.settings[ name ] !== undefined ?
-			inst.settings[ name ] : this._defaults[ name ];
-	},
-
-	/* Parse existing date and initialise date picker. */
-	_setDateFromField: function( inst, noDefault ) {
-		if ( inst.input.val() === inst.lastVal ) {
-			return;
-		}
-
-		var dateFormat = this._get( inst, "dateFormat" ),
-			dates = inst.lastVal = inst.input ? inst.input.val() : null,
-			defaultDate = this._getDefaultDate( inst ),
-			date = defaultDate,
-			settings = this._getFormatConfig( inst );
-
-		try {
-			date = this.parseDate( dateFormat, dates, settings ) || defaultDate;
-		} catch ( event ) {
-			dates = ( noDefault ? "" : dates );
-		}
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		inst.currentDay = ( dates ? date.getDate() : 0 );
-		inst.currentMonth = ( dates ? date.getMonth() : 0 );
-		inst.currentYear = ( dates ? date.getFullYear() : 0 );
-		this._adjustInstDate( inst );
-	},
-
-	/* Retrieve the default date shown on opening. */
-	_getDefaultDate: function( inst ) {
-		return this._restrictMinMax( inst,
-			this._determineDate( inst, this._get( inst, "defaultDate" ), new Date() ) );
-	},
-
-	/* A date may be specified as an exact value or a relative one. */
-	_determineDate: function( inst, date, defaultDate ) {
-		var offsetNumeric = function( offset ) {
-				var date = new Date();
-				date.setDate( date.getDate() + offset );
-				return date;
-			},
-			offsetString = function( offset ) {
-				try {
-					return $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
-						offset, $.datepicker._getFormatConfig( inst ) );
-				}
-				catch ( e ) {
-
-					// Ignore
-				}
-
-				var date = ( offset.toLowerCase().match( /^c/ ) ?
-					$.datepicker._getDate( inst ) : null ) || new Date(),
-					year = date.getFullYear(),
-					month = date.getMonth(),
-					day = date.getDate(),
-					pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
-					matches = pattern.exec( offset );
-
-				while ( matches ) {
-					switch ( matches[ 2 ] || "d" ) {
-						case "d" : case "D" :
-							day += parseInt( matches[ 1 ], 10 ); break;
-						case "w" : case "W" :
-							day += parseInt( matches[ 1 ], 10 ) * 7; break;
-						case "m" : case "M" :
-							month += parseInt( matches[ 1 ], 10 );
-							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
-							break;
-						case "y": case "Y" :
-							year += parseInt( matches[ 1 ], 10 );
-							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
-							break;
-					}
-					matches = pattern.exec( offset );
-				}
-				return new Date( year, month, day );
-			},
-			newDate = ( date == null || date === "" ? defaultDate : ( typeof date === "string" ? offsetString( date ) :
-				( typeof date === "number" ? ( isNaN( date ) ? defaultDate : offsetNumeric( date ) ) : new Date( date.getTime() ) ) ) );
-
-		newDate = ( newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate );
-		if ( newDate ) {
-			newDate.setHours( 0 );
-			newDate.setMinutes( 0 );
-			newDate.setSeconds( 0 );
-			newDate.setMilliseconds( 0 );
-		}
-		return this._daylightSavingAdjust( newDate );
-	},
-
-	/* Handle switch to/from daylight saving.
-	 * Hours may be non-zero on daylight saving cut-over:
-	 * > 12 when midnight changeover, but then cannot generate
-	 * midnight datetime, so jump to 1AM, otherwise reset.
-	 * @param  date  (Date) the date to check
-	 * @return  (Date) the corrected date
-	 */
-	_daylightSavingAdjust: function( date ) {
-		if ( !date ) {
-			return null;
-		}
-		date.setHours( date.getHours() > 12 ? date.getHours() + 2 : 0 );
-		return date;
-	},
-
-	/* Set the date(s) directly. */
-	_setDate: function( inst, date, noChange ) {
-		var clear = !date,
-			origMonth = inst.selectedMonth,
-			origYear = inst.selectedYear,
-			newDate = this._restrictMinMax( inst, this._determineDate( inst, date, new Date() ) );
-
-		inst.selectedDay = inst.currentDay = newDate.getDate();
-		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
-		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
-		if ( ( origMonth !== inst.selectedMonth || origYear !== inst.selectedYear ) && !noChange ) {
-			this._notifyChange( inst );
-		}
-		this._adjustInstDate( inst );
-		if ( inst.input ) {
-			inst.input.val( clear ? "" : this._formatDate( inst ) );
-		}
-	},
-
-	/* Retrieve the date(s) directly. */
-	_getDate: function( inst ) {
-		var startDate = ( !inst.currentYear || ( inst.input && inst.input.val() === "" ) ? null :
-			this._daylightSavingAdjust( new Date(
-			inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
-			return startDate;
-	},
-
-	/* Attach the onxxx handlers.  These are declared statically so
-	 * they work with static code transformers like Caja.
-	 */
-	_attachHandlers: function( inst ) {
-		var stepMonths = this._get( inst, "stepMonths" ),
-			id = "#" + inst.id.replace( /\\\\/g, "\\" );
-		inst.dpDiv.find( "[data-handler]" ).map( function() {
-			var handler = {
-				prev: function() {
-					$.datepicker._adjustDate( id, -stepMonths, "M" );
-				},
-				next: function() {
-					$.datepicker._adjustDate( id, +stepMonths, "M" );
-				},
-				hide: function() {
-					$.datepicker._hideDatepicker();
-				},
-				today: function() {
-					$.datepicker._gotoToday( id );
-				},
-				selectDay: function() {
-					$.datepicker._selectDay( id, +this.getAttribute( "data-month" ), +this.getAttribute( "data-year" ), this );
-					return false;
-				},
-				selectMonth: function() {
-					$.datepicker._selectMonthYear( id, this, "M" );
-					return false;
-				},
-				selectYear: function() {
-					$.datepicker._selectMonthYear( id, this, "Y" );
-					return false;
-				}
-			};
-			$( this ).on( this.getAttribute( "data-event" ), handler[ this.getAttribute( "data-handler" ) ] );
-		} );
-	},
-
-	/* Generate the HTML for the current state of the date picker. */
-	_generateHTML: function( inst ) {
-		var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
-			controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
-			monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
-			selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,
-			cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,
-			printDate, dRow, tbody, daySettings, otherMonth, unselectable,
-			tempDate = new Date(),
-			today = this._daylightSavingAdjust(
-				new Date( tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() ) ), // clear time
-			isRTL = this._get( inst, "isRTL" ),
-			showButtonPanel = this._get( inst, "showButtonPanel" ),
-			hideIfNoPrevNext = this._get( inst, "hideIfNoPrevNext" ),
-			navigationAsDateFormat = this._get( inst, "navigationAsDateFormat" ),
-			numMonths = this._getNumberOfMonths( inst ),
-			showCurrentAtPos = this._get( inst, "showCurrentAtPos" ),
-			stepMonths = this._get( inst, "stepMonths" ),
-			isMultiMonth = ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ),
-			currentDate = this._daylightSavingAdjust( ( !inst.currentDay ? new Date( 9999, 9, 9 ) :
-				new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ),
-			minDate = this._getMinMaxDate( inst, "min" ),
-			maxDate = this._getMinMaxDate( inst, "max" ),
-			drawMonth = inst.drawMonth - showCurrentAtPos,
-			drawYear = inst.drawYear;
-
-		if ( drawMonth < 0 ) {
-			drawMonth += 12;
-			drawYear--;
-		}
-		if ( maxDate ) {
-			maxDraw = this._daylightSavingAdjust( new Date( maxDate.getFullYear(),
-				maxDate.getMonth() - ( numMonths[ 0 ] * numMonths[ 1 ] ) + 1, maxDate.getDate() ) );
-			maxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw );
-			while ( this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 ) ) > maxDraw ) {
-				drawMonth--;
-				if ( drawMonth < 0 ) {
-					drawMonth = 11;
-					drawYear--;
-				}
-			}
-		}
-		inst.drawMonth = drawMonth;
-		inst.drawYear = drawYear;
-
-		prevText = this._get( inst, "prevText" );
-		prevText = ( !navigationAsDateFormat ? prevText : this.formatDate( prevText,
-			this._daylightSavingAdjust( new Date( drawYear, drawMonth - stepMonths, 1 ) ),
-			this._getFormatConfig( inst ) ) );
-
-		prev = ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ?
-			"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
-			" title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" :
-			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" ) );
-
-		nextText = this._get( inst, "nextText" );
-		nextText = ( !navigationAsDateFormat ? nextText : this.formatDate( nextText,
-			this._daylightSavingAdjust( new Date( drawYear, drawMonth + stepMonths, 1 ) ),
-			this._getFormatConfig( inst ) ) );
-
-		next = ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ?
-			"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
-			" title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" :
-			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" ) );
-
-		currentText = this._get( inst, "currentText" );
-		gotoDate = ( this._get( inst, "gotoCurrent" ) && inst.currentDay ? currentDate : today );
-		currentText = ( !navigationAsDateFormat ? currentText :
-			this.formatDate( currentText, gotoDate, this._getFormatConfig( inst ) ) );
-
-		controls = ( !inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
-			this._get( inst, "closeText" ) + "</button>" : "" );
-
-		buttonPanel = ( showButtonPanel ) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + ( isRTL ? controls : "" ) +
-			( this._isInRange( inst, gotoDate ) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
-			">" + currentText + "</button>" : "" ) + ( isRTL ? "" : controls ) + "</div>" : "";
-
-		firstDay = parseInt( this._get( inst, "firstDay" ), 10 );
-		firstDay = ( isNaN( firstDay ) ? 0 : firstDay );
-
-		showWeek = this._get( inst, "showWeek" );
-		dayNames = this._get( inst, "dayNames" );
-		dayNamesMin = this._get( inst, "dayNamesMin" );
-		monthNames = this._get( inst, "monthNames" );
-		monthNamesShort = this._get( inst, "monthNamesShort" );
-		beforeShowDay = this._get( inst, "beforeShowDay" );
-		showOtherMonths = this._get( inst, "showOtherMonths" );
-		selectOtherMonths = this._get( inst, "selectOtherMonths" );
-		defaultDate = this._getDefaultDate( inst );
-		html = "";
-
-		for ( row = 0; row < numMonths[ 0 ]; row++ ) {
-			group = "";
-			this.maxRows = 4;
-			for ( col = 0; col < numMonths[ 1 ]; col++ ) {
-				selectedDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, inst.selectedDay ) );
-				cornerClass = " ui-corner-all";
-				calender = "";
-				if ( isMultiMonth ) {
-					calender += "<div class='ui-datepicker-group";
-					if ( numMonths[ 1 ] > 1 ) {
-						switch ( col ) {
-							case 0: calender += " ui-datepicker-group-first";
-								cornerClass = " ui-corner-" + ( isRTL ? "right" : "left" ); break;
-							case numMonths[ 1 ] - 1: calender += " ui-datepicker-group-last";
-								cornerClass = " ui-corner-" + ( isRTL ? "left" : "right" ); break;
-							default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break;
-						}
-					}
-					calender += "'>";
-				}
-				calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
-					( /all|left/.test( cornerClass ) && row === 0 ? ( isRTL ? next : prev ) : "" ) +
-					( /all|right/.test( cornerClass ) && row === 0 ? ( isRTL ? prev : next ) : "" ) +
-					this._generateMonthYearHeader( inst, drawMonth, drawYear, minDate, maxDate,
-					row > 0 || col > 0, monthNames, monthNamesShort ) + // draw month headers
-					"</div><table class='ui-datepicker-calendar'><thead>" +
-					"<tr>";
-				thead = ( showWeek ? "<th class='ui-datepicker-week-col'>" + this._get( inst, "weekHeader" ) + "</th>" : "" );
-				for ( dow = 0; dow < 7; dow++ ) { // days of the week
-					day = ( dow + firstDay ) % 7;
-					thead += "<th scope='col'" + ( ( dow + firstDay + 6 ) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "" ) + ">" +
-						"<span title='" + dayNames[ day ] + "'>" + dayNamesMin[ day ] + "</span></th>";
-				}
-				calender += thead + "</tr></thead><tbody>";
-				daysInMonth = this._getDaysInMonth( drawYear, drawMonth );
-				if ( drawYear === inst.selectedYear && drawMonth === inst.selectedMonth ) {
-					inst.selectedDay = Math.min( inst.selectedDay, daysInMonth );
-				}
-				leadDays = ( this._getFirstDayOfMonth( drawYear, drawMonth ) - firstDay + 7 ) % 7;
-				curRows = Math.ceil( ( leadDays + daysInMonth ) / 7 ); // calculate the number of rows to generate
-				numRows = ( isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows ); //If multiple months, use the higher number of rows (see #7043)
-				this.maxRows = numRows;
-				printDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 - leadDays ) );
-				for ( dRow = 0; dRow < numRows; dRow++ ) { // create date picker rows
-					calender += "<tr>";
-					tbody = ( !showWeek ? "" : "<td class='ui-datepicker-week-col'>" +
-						this._get( inst, "calculateWeek" )( printDate ) + "</td>" );
-					for ( dow = 0; dow < 7; dow++ ) { // create date picker days
-						daySettings = ( beforeShowDay ?
-							beforeShowDay.apply( ( inst.input ? inst.input[ 0 ] : null ), [ printDate ] ) : [ true, "" ] );
-						otherMonth = ( printDate.getMonth() !== drawMonth );
-						unselectable = ( otherMonth && !selectOtherMonths ) || !daySettings[ 0 ] ||
-							( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate );
-						tbody += "<td class='" +
-							( ( dow + firstDay + 6 ) % 7 >= 5 ? " ui-datepicker-week-end" : "" ) + // highlight weekends
-							( otherMonth ? " ui-datepicker-other-month" : "" ) + // highlight days from other months
-							( ( printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent ) || // user pressed key
-							( defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime() ) ?
-
-							// or defaultDate is current printedDate and defaultDate is selectedDate
-							" " + this._dayOverClass : "" ) + // highlight selected day
-							( unselectable ? " " + this._unselectableClass + " ui-state-disabled" : "" ) +  // highlight unselectable days
-							( otherMonth && !showOtherMonths ? "" : " " + daySettings[ 1 ] + // highlight custom dates
-							( printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "" ) + // highlight selected day
-							( printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "" ) ) + "'" + // highlight today (if different)
-							( ( !otherMonth || showOtherMonths ) && daySettings[ 2 ] ? " title='" + daySettings[ 2 ].replace( /'/g, "&#39;" ) + "'" : "" ) + // cell title
-							( unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'" ) + ">" + // actions
-							( otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months
-							( unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" +
-							( printDate.getTime() === today.getTime() ? " ui-state-highlight" : "" ) +
-							( printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "" ) + // highlight selected day
-							( otherMonth ? " ui-priority-secondary" : "" ) + // distinguish dates from other months
-							"' href='#'>" + printDate.getDate() + "</a>" ) ) + "</td>"; // display selectable date
-						printDate.setDate( printDate.getDate() + 1 );
-						printDate = this._daylightSavingAdjust( printDate );
-					}
-					calender += tbody + "</tr>";
-				}
-				drawMonth++;
-				if ( drawMonth > 11 ) {
-					drawMonth = 0;
-					drawYear++;
-				}
-				calender += "</tbody></table>" + ( isMultiMonth ? "</div>" +
-							( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? "<div class='ui-datepicker-row-break'></div>" : "" ) : "" );
-				group += calender;
-			}
-			html += group;
-		}
-		html += buttonPanel;
-		inst._keyEvent = false;
-		return html;
-	},
-
-	/* Generate the month and year header. */
-	_generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate,
-			secondary, monthNames, monthNamesShort ) {
-
-		var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,
-			changeMonth = this._get( inst, "changeMonth" ),
-			changeYear = this._get( inst, "changeYear" ),
-			showMonthAfterYear = this._get( inst, "showMonthAfterYear" ),
-			html = "<div class='ui-datepicker-title'>",
-			monthHtml = "";
-
-		// Month selection
-		if ( secondary || !changeMonth ) {
-			monthHtml += "<span class='ui-datepicker-month'>" + monthNames[ drawMonth ] + "</span>";
-		} else {
-			inMinYear = ( minDate && minDate.getFullYear() === drawYear );
-			inMaxYear = ( maxDate && maxDate.getFullYear() === drawYear );
-			monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
-			for ( month = 0; month < 12; month++ ) {
-				if ( ( !inMinYear || month >= minDate.getMonth() ) && ( !inMaxYear || month <= maxDate.getMonth() ) ) {
-					monthHtml += "<option value='" + month + "'" +
-						( month === drawMonth ? " selected='selected'" : "" ) +
-						">" + monthNamesShort[ month ] + "</option>";
-				}
-			}
-			monthHtml += "</select>";
-		}
-
-		if ( !showMonthAfterYear ) {
-			html += monthHtml + ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" );
-		}
-
-		// Year selection
-		if ( !inst.yearshtml ) {
-			inst.yearshtml = "";
-			if ( secondary || !changeYear ) {
-				html += "<span class='ui-datepicker-year'>" + drawYear + "</span>";
-			} else {
-
-				// determine range of years to display
-				years = this._get( inst, "yearRange" ).split( ":" );
-				thisYear = new Date().getFullYear();
-				determineYear = function( value ) {
-					var year = ( value.match( /c[+\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) :
-						( value.match( /[+\-].*/ ) ? thisYear + parseInt( value, 10 ) :
-						parseInt( value, 10 ) ) );
-					return ( isNaN( year ) ? thisYear : year );
-				};
-				year = determineYear( years[ 0 ] );
-				endYear = Math.max( year, determineYear( years[ 1 ] || "" ) );
-				year = ( minDate ? Math.max( year, minDate.getFullYear() ) : year );
-				endYear = ( maxDate ? Math.min( endYear, maxDate.getFullYear() ) : endYear );
-				inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
-				for ( ; year <= endYear; year++ ) {
-					inst.yearshtml += "<option value='" + year + "'" +
-						( year === drawYear ? " selected='selected'" : "" ) +
-						">" + year + "</option>";
-				}
-				inst.yearshtml += "</select>";
-
-				html += inst.yearshtml;
-				inst.yearshtml = null;
-			}
-		}
-
-		html += this._get( inst, "yearSuffix" );
-		if ( showMonthAfterYear ) {
-			html += ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" ) + monthHtml;
-		}
-		html += "</div>"; // Close datepicker_header
-		return html;
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustInstDate: function( inst, offset, period ) {
-		var year = inst.selectedYear + ( period === "Y" ? offset : 0 ),
-			month = inst.selectedMonth + ( period === "M" ? offset : 0 ),
-			day = Math.min( inst.selectedDay, this._getDaysInMonth( year, month ) ) + ( period === "D" ? offset : 0 ),
-			date = this._restrictMinMax( inst, this._daylightSavingAdjust( new Date( year, month, day ) ) );
-
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		if ( period === "M" || period === "Y" ) {
-			this._notifyChange( inst );
-		}
-	},
-
-	/* Ensure a date is within any min/max bounds. */
-	_restrictMinMax: function( inst, date ) {
-		var minDate = this._getMinMaxDate( inst, "min" ),
-			maxDate = this._getMinMaxDate( inst, "max" ),
-			newDate = ( minDate && date < minDate ? minDate : date );
-		return ( maxDate && newDate > maxDate ? maxDate : newDate );
-	},
-
-	/* Notify change of month/year. */
-	_notifyChange: function( inst ) {
-		var onChange = this._get( inst, "onChangeMonthYear" );
-		if ( onChange ) {
-			onChange.apply( ( inst.input ? inst.input[ 0 ] : null ),
-				[ inst.selectedYear, inst.selectedMonth + 1, inst ] );
-		}
-	},
-
-	/* Determine the number of months to show. */
-	_getNumberOfMonths: function( inst ) {
-		var numMonths = this._get( inst, "numberOfMonths" );
-		return ( numMonths == null ? [ 1, 1 ] : ( typeof numMonths === "number" ? [ 1, numMonths ] : numMonths ) );
-	},
-
-	/* Determine the current maximum date - ensure no time components are set. */
-	_getMinMaxDate: function( inst, minMax ) {
-		return this._determineDate( inst, this._get( inst, minMax + "Date" ), null );
-	},
-
-	/* Find the number of days in a given month. */
-	_getDaysInMonth: function( year, month ) {
-		return 32 - this._daylightSavingAdjust( new Date( year, month, 32 ) ).getDate();
-	},
-
-	/* Find the day of the week of the first of a month. */
-	_getFirstDayOfMonth: function( year, month ) {
-		return new Date( year, month, 1 ).getDay();
-	},
-
-	/* Determines if we should allow a "next/prev" month display change. */
-	_canAdjustMonth: function( inst, offset, curYear, curMonth ) {
-		var numMonths = this._getNumberOfMonths( inst ),
-			date = this._daylightSavingAdjust( new Date( curYear,
-			curMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) );
-
-		if ( offset < 0 ) {
-			date.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) );
-		}
-		return this._isInRange( inst, date );
-	},
-
-	/* Is the given date in the accepted range? */
-	_isInRange: function( inst, date ) {
-		var yearSplit, currentYear,
-			minDate = this._getMinMaxDate( inst, "min" ),
-			maxDate = this._getMinMaxDate( inst, "max" ),
-			minYear = null,
-			maxYear = null,
-			years = this._get( inst, "yearRange" );
-			if ( years ) {
-				yearSplit = years.split( ":" );
-				currentYear = new Date().getFullYear();
-				minYear = parseInt( yearSplit[ 0 ], 10 );
-				maxYear = parseInt( yearSplit[ 1 ], 10 );
-				if ( yearSplit[ 0 ].match( /[+\-].*/ ) ) {
-					minYear += currentYear;
-				}
-				if ( yearSplit[ 1 ].match( /[+\-].*/ ) ) {
-					maxYear += currentYear;
-				}
-			}
-
-		return ( ( !minDate || date.getTime() >= minDate.getTime() ) &&
-			( !maxDate || date.getTime() <= maxDate.getTime() ) &&
-			( !minYear || date.getFullYear() >= minYear ) &&
-			( !maxYear || date.getFullYear() <= maxYear ) );
-	},
-
-	/* Provide the configuration settings for formatting/parsing. */
-	_getFormatConfig: function( inst ) {
-		var shortYearCutoff = this._get( inst, "shortYearCutoff" );
-		shortYearCutoff = ( typeof shortYearCutoff !== "string" ? shortYearCutoff :
-			new Date().getFullYear() % 100 + parseInt( shortYearCutoff, 10 ) );
-		return { shortYearCutoff: shortYearCutoff,
-			dayNamesShort: this._get( inst, "dayNamesShort" ), dayNames: this._get( inst, "dayNames" ),
-			monthNamesShort: this._get( inst, "monthNamesShort" ), monthNames: this._get( inst, "monthNames" ) };
-	},
-
-	/* Format the given date for display. */
-	_formatDate: function( inst, day, month, year ) {
-		if ( !day ) {
-			inst.currentDay = inst.selectedDay;
-			inst.currentMonth = inst.selectedMonth;
-			inst.currentYear = inst.selectedYear;
-		}
-		var date = ( day ? ( typeof day === "object" ? day :
-			this._daylightSavingAdjust( new Date( year, month, day ) ) ) :
-			this._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
-		return this.formatDate( this._get( inst, "dateFormat" ), date, this._getFormatConfig( inst ) );
-	}
-} );
-
-/*
- * Bind hover events for datepicker elements.
- * Done via delegate so the binding only occurs once in the lifetime of the parent div.
- * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
- */
-function datepicker_bindHover( dpDiv ) {
-	var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
-	return dpDiv.on( "mouseout", selector, function() {
-			$( this ).removeClass( "ui-state-hover" );
-			if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
-				$( this ).removeClass( "ui-datepicker-prev-hover" );
-			}
-			if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
-				$( this ).removeClass( "ui-datepicker-next-hover" );
-			}
-		} )
-		.on( "mouseover", selector, datepicker_handleMouseover );
-}
-
-function datepicker_handleMouseover() {
-	if ( !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? datepicker_instActive.dpDiv.parent()[ 0 ] : datepicker_instActive.input[ 0 ] ) ) {
-		$( this ).parents( ".ui-datepicker-calendar" ).find( "a" ).removeClass( "ui-state-hover" );
-		$( this ).addClass( "ui-state-hover" );
-		if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
-			$( this ).addClass( "ui-datepicker-prev-hover" );
-		}
-		if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
-			$( this ).addClass( "ui-datepicker-next-hover" );
-		}
-	}
-}
-
-/* jQuery extend now ignores nulls! */
-function datepicker_extendRemove( target, props ) {
-	$.extend( target, props );
-	for ( var name in props ) {
-		if ( props[ name ] == null ) {
-			target[ name ] = props[ name ];
-		}
-	}
-	return target;
-}
-
-/* Invoke the datepicker functionality.
-   @param  options  string - a command, optionally followed by additional parameters or
-					Object - settings for attaching new datepicker functionality
-   @return  jQuery object */
-$.fn.datepicker = function( options ) {
-
-	/* Verify an empty collection wasn't passed - Fixes #6976 */
-	if ( !this.length ) {
-		return this;
-	}
-
-	/* Initialise the date picker. */
-	if ( !$.datepicker.initialized ) {
-		$( document ).on( "mousedown", $.datepicker._checkExternalClick );
-		$.datepicker.initialized = true;
-	}
-
-	/* Append datepicker main container to body if not exist. */
-	if ( $( "#" + $.datepicker._mainDivId ).length === 0 ) {
-		$( "body" ).append( $.datepicker.dpDiv );
-	}
-
-	var otherArgs = Array.prototype.slice.call( arguments, 1 );
-	if ( typeof options === "string" && ( options === "isDisabled" || options === "getDate" || options === "widget" ) ) {
-		return $.datepicker[ "_" + options + "Datepicker" ].
-			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
-	}
-	if ( options === "option" && arguments.length === 2 && typeof arguments[ 1 ] === "string" ) {
-		return $.datepicker[ "_" + options + "Datepicker" ].
-			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
-	}
-	return this.each( function() {
-		typeof options === "string" ?
-			$.datepicker[ "_" + options + "Datepicker" ].
-				apply( $.datepicker, [ this ].concat( otherArgs ) ) :
-			$.datepicker._attachDatepicker( this, options );
-	} );
-};
-
-$.datepicker = new Datepicker(); // singleton instance
-$.datepicker.initialized = false;
-$.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.12.0";
-
-var widgetsDatepicker = $.datepicker;
-
-
-
-
-// This file is deprecated
-var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
-
-/*!
- * jQuery UI Mouse 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Mouse
-//>>group: Widgets
-//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.
-//>>docs: http://api.jqueryui.com/mouse/
-
-
-
-var mouseHandled = false;
-$( document ).on( "mouseup", function() {
-	mouseHandled = false;
-} );
-
-var widgetsMouse = $.widget( "ui.mouse", {
-	version: "1.12.0",
-	options: {
-		cancel: "input, textarea, button, select, option",
-		distance: 1,
-		delay: 0
-	},
-	_mouseInit: function() {
-		var that = this;
-
-		this.element
-			.on( "mousedown." + this.widgetName, function( event ) {
-				return that._mouseDown( event );
-			} )
-			.on( "click." + this.widgetName, function( event ) {
-				if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) {
-					$.removeData( event.target, that.widgetName + ".preventClickEvent" );
-					event.stopImmediatePropagation();
-					return false;
-				}
-			} );
-
-		this.started = false;
-	},
-
-	// TODO: make sure destroying one instance of mouse doesn't mess with
-	// other instances of mouse
-	_mouseDestroy: function() {
-		this.element.off( "." + this.widgetName );
-		if ( this._mouseMoveDelegate ) {
-			this.document
-				.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
-				.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
-		}
-	},
-
-	_mouseDown: function( event ) {
-
-		// don't let more than one widget handle mouseStart
-		if ( mouseHandled ) {
-			return;
-		}
-
-		this._mouseMoved = false;
-
-		// We may have missed mouseup (out of window)
-		( this._mouseStarted && this._mouseUp( event ) );
-
-		this._mouseDownEvent = event;
-
-		var that = this,
-			btnIsLeft = ( event.which === 1 ),
-
-			// event.target.nodeName works around a bug in IE 8 with
-			// disabled inputs (#7620)
-			elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ?
-				$( event.target ).closest( this.options.cancel ).length : false );
-		if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {
-			return true;
-		}
-
-		this.mouseDelayMet = !this.options.delay;
-		if ( !this.mouseDelayMet ) {
-			this._mouseDelayTimer = setTimeout( function() {
-				that.mouseDelayMet = true;
-			}, this.options.delay );
-		}
-
-		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
-			this._mouseStarted = ( this._mouseStart( event ) !== false );
-			if ( !this._mouseStarted ) {
-				event.preventDefault();
-				return true;
-			}
-		}
-
-		// Click event may never have fired (Gecko & Opera)
-		if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) {
-			$.removeData( event.target, this.widgetName + ".preventClickEvent" );
-		}
-
-		// These delegates are required to keep context
-		this._mouseMoveDelegate = function( event ) {
-			return that._mouseMove( event );
-		};
-		this._mouseUpDelegate = function( event ) {
-			return that._mouseUp( event );
-		};
-
-		this.document
-			.on( "mousemove." + this.widgetName, this._mouseMoveDelegate )
-			.on( "mouseup." + this.widgetName, this._mouseUpDelegate );
-
-		event.preventDefault();
-
-		mouseHandled = true;
-		return true;
-	},
-
-	_mouseMove: function( event ) {
-
-		// Only check for mouseups outside the document if you've moved inside the document
-		// at least once. This prevents the firing of mouseup in the case of IE<9, which will
-		// fire a mousemove event if content is placed under the cursor. See #7778
-		// Support: IE <9
-		if ( this._mouseMoved ) {
-
-			// IE mouseup check - mouseup happened when mouse was out of window
-			if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&
-					!event.button ) {
-				return this._mouseUp( event );
-
-			// Iframe mouseup check - mouseup occurred in another document
-			} else if ( !event.which ) {
-
-				// Support: Safari <=8 - 9
-				// Safari sets which to 0 if you press any of the following keys
-				// during a drag (#14461)
-				if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
-						event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
-					this.ignoreMissingWhich = true;
-				} else if ( !this.ignoreMissingWhich ) {
-					return this._mouseUp( event );
-				}
-			}
-		}
-
-		if ( event.which || event.button ) {
-			this._mouseMoved = true;
-		}
-
-		if ( this._mouseStarted ) {
-			this._mouseDrag( event );
-			return event.preventDefault();
-		}
-
-		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
-			this._mouseStarted =
-				( this._mouseStart( this._mouseDownEvent, event ) !== false );
-			( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) );
-		}
-
-		return !this._mouseStarted;
-	},
-
-	_mouseUp: function( event ) {
-		this.document
-			.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
-			.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
-
-		if ( this._mouseStarted ) {
-			this._mouseStarted = false;
-
-			if ( event.target === this._mouseDownEvent.target ) {
-				$.data( event.target, this.widgetName + ".preventClickEvent", true );
-			}
-
-			this._mouseStop( event );
-		}
-
-		if ( this._mouseDelayTimer ) {
-			clearTimeout( this._mouseDelayTimer );
-			delete this._mouseDelayTimer;
-		}
-
-		this.ignoreMissingWhich = false;
-		mouseHandled = false;
-		event.preventDefault();
-	},
-
-	_mouseDistanceMet: function( event ) {
-		return ( Math.max(
-				Math.abs( this._mouseDownEvent.pageX - event.pageX ),
-				Math.abs( this._mouseDownEvent.pageY - event.pageY )
-			) >= this.options.distance
-		);
-	},
-
-	_mouseDelayMet: function( /* event */ ) {
-		return this.mouseDelayMet;
-	},
-
-	// These are placeholder methods, to be overriden by extending plugin
-	_mouseStart: function( /* event */ ) {},
-	_mouseDrag: function( /* event */ ) {},
-	_mouseStop: function( /* event */ ) {},
-	_mouseCapture: function( /* event */ ) { return true; }
-} );
-
-
-
-
-// $.ui.plugin is deprecated. Use $.widget() extensions instead.
-var plugin = $.ui.plugin = {
-	add: function( module, option, set ) {
-		var i,
-			proto = $.ui[ module ].prototype;
-		for ( i in set ) {
-			proto.plugins[ i ] = proto.plugins[ i ] || [];
-			proto.plugins[ i ].push( [ option, set[ i ] ] );
-		}
-	},
-	call: function( instance, name, args, allowDisconnected ) {
-		var i,
-			set = instance.plugins[ name ];
-
-		if ( !set ) {
-			return;
-		}
-
-		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode ||
-				instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
-			return;
-		}
-
-		for ( i = 0; i < set.length; i++ ) {
-			if ( instance.options[ set[ i ][ 0 ] ] ) {
-				set[ i ][ 1 ].apply( instance.element, args );
-			}
-		}
-	}
-};
-
-
-
-var safeBlur = $.ui.safeBlur = function( element ) {
-
-	// Support: IE9 - 10 only
-	// If the <body> is blurred, IE will switch windows, see #9420
-	if ( element && element.nodeName.toLowerCase() !== "body" ) {
-		$( element ).trigger( "blur" );
-	}
-};
-
-
-/*!
- * jQuery UI Draggable 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Draggable
-//>>group: Interactions
-//>>description: Enables dragging functionality for any element.
-//>>docs: http://api.jqueryui.com/draggable/
-//>>demos: http://jqueryui.com/draggable/
-//>>css.structure: ../../themes/base/draggable.css
-
-
-
-$.widget( "ui.draggable", $.ui.mouse, {
-	version: "1.12.0",
-	widgetEventPrefix: "drag",
-	options: {
-		addClasses: true,
-		appendTo: "parent",
-		axis: false,
-		connectToSortable: false,
-		containment: false,
-		cursor: "auto",
-		cursorAt: false,
-		grid: false,
-		handle: false,
-		helper: "original",
-		iframeFix: false,
-		opacity: false,
-		refreshPositions: false,
-		revert: false,
-		revertDuration: 500,
-		scope: "default",
-		scroll: true,
-		scrollSensitivity: 20,
-		scrollSpeed: 20,
-		snap: false,
-		snapMode: "both",
-		snapTolerance: 20,
-		stack: false,
-		zIndex: false,
-
-		// Callbacks
-		drag: null,
-		start: null,
-		stop: null
-	},
-	_create: function() {
-
-		if ( this.options.helper === "original" ) {
-			this._setPositionRelative();
-		}
-		if ( this.options.addClasses ) {
-			this._addClass( "ui-draggable" );
-		}
-		this._setHandleClassName();
-
-		this._mouseInit();
-	},
-
-	_setOption: function( key, value ) {
-		this._super( key, value );
-		if ( key === "handle" ) {
-			this._removeHandleClassName();
-			this._setHandleClassName();
-		}
-	},
-
-	_destroy: function() {
-		if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
-			this.destroyOnClear = true;
-			return;
-		}
-		this._removeHandleClassName();
-		this._mouseDestroy();
-	},
-
-	_mouseCapture: function( event ) {
-		var o = this.options;
-
-		this._blurActiveElement( event );
-
-		// Among others, prevent a drag on a resizable-handle
-		if ( this.helper || o.disabled ||
-				$( event.target ).closest( ".ui-resizable-handle" ).length > 0 ) {
-			return false;
-		}
-
-		//Quit if we're not on a valid handle
-		this.handle = this._getHandle( event );
-		if ( !this.handle ) {
-			return false;
-		}
-
-		this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix );
-
-		return true;
-
-	},
-
-	_blockFrames: function( selector ) {
-		this.iframeBlocks = this.document.find( selector ).map( function() {
-			var iframe = $( this );
-
-			return $( "<div>" )
-				.css( "position", "absolute" )
-				.appendTo( iframe.parent() )
-				.outerWidth( iframe.outerWidth() )
-				.outerHeight( iframe.outerHeight() )
-				.offset( iframe.offset() )[ 0 ];
-		} );
-	},
-
-	_unblockFrames: function() {
-		if ( this.iframeBlocks ) {
-			this.iframeBlocks.remove();
-			delete this.iframeBlocks;
-		}
-	},
-
-	_blurActiveElement: function( event ) {
-		var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
-			target = $( event.target );
-
-		// Only blur if the event occurred on an element that is:
-		// 1) within the draggable handle
-		// 2) but not within the currently focused element
-		// See #10527, #12472
-		if ( this._getHandle( event ) && target.closest( activeElement ).length ) {
-			return;
-		}
-
-		// Blur any element that currently has focus, see #4261
-		$.ui.safeBlur( activeElement );
-	},
-
-	_mouseStart: function( event ) {
-
-		var o = this.options;
-
-		//Create and append the visible helper
-		this.helper = this._createHelper( event );
-
-		this._addClass( this.helper, "ui-draggable-dragging" );
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		//If ddmanager is used for droppables, set the global draggable
-		if ( $.ui.ddmanager ) {
-			$.ui.ddmanager.current = this;
-		}
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Store the helper's css position
-		this.cssPosition = this.helper.css( "position" );
-		this.scrollParent = this.helper.scrollParent( true );
-		this.offsetParent = this.helper.offsetParent();
-		this.hasFixedAncestor = this.helper.parents().filter( function() {
-				return $( this ).css( "position" ) === "fixed";
-			} ).length > 0;
-
-		//The element's absolute position on the page minus margins
-		this.positionAbs = this.element.offset();
-		this._refreshOffsets( event );
-
-		//Generate the original position
-		this.originalPosition = this.position = this._generatePosition( event, false );
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
-		( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );
-
-		//Set a containment if given in the options
-		this._setContainment();
-
-		//Trigger event + callbacks
-		if ( this._trigger( "start", event ) === false ) {
-			this._clear();
-			return false;
-		}
-
-		//Recache the helper size
-		this._cacheHelperProportions();
-
-		//Prepare the droppable offsets
-		if ( $.ui.ddmanager && !o.dropBehaviour ) {
-			$.ui.ddmanager.prepareOffsets( this, event );
-		}
-
-		// Execute the drag once - this causes the helper not to be visible before getting its
-		// correct position
-		this._mouseDrag( event, true );
-
-		// If the ddmanager is used for droppables, inform the manager that dragging has started
-		// (see #5003)
-		if ( $.ui.ddmanager ) {
-			$.ui.ddmanager.dragStart( this, event );
-		}
-
-		return true;
-	},
-
-	_refreshOffsets: function( event ) {
-		this.offset = {
-			top: this.positionAbs.top - this.margins.top,
-			left: this.positionAbs.left - this.margins.left,
-			scroll: false,
-			parent: this._getParentOffset(),
-			relative: this._getRelativeOffset()
-		};
-
-		this.offset.click = {
-			left: event.pageX - this.offset.left,
-			top: event.pageY - this.offset.top
-		};
-	},
-
-	_mouseDrag: function( event, noPropagation ) {
-
-		// reset any necessary cached properties (see #5009)
-		if ( this.hasFixedAncestor ) {
-			this.offset.parent = this._getParentOffset();
-		}
-
-		//Compute the helpers position
-		this.position = this._generatePosition( event, true );
-		this.positionAbs = this._convertPositionTo( "absolute" );
-
-		//Call plugins and callbacks and use the resulting position if something is returned
-		if ( !noPropagation ) {
-			var ui = this._uiHash();
-			if ( this._trigger( "drag", event, ui ) === false ) {
-				this._mouseUp( new $.Event( "mouseup", event ) );
-				return false;
-			}
-			this.position = ui.position;
-		}
-
-		this.helper[ 0 ].style.left = this.position.left + "px";
-		this.helper[ 0 ].style.top = this.position.top + "px";
-
-		if ( $.ui.ddmanager ) {
-			$.ui.ddmanager.drag( this, event );
-		}
-
-		return false;
-	},
-
-	_mouseStop: function( event ) {
-
-		//If we are using droppables, inform the manager about the drop
-		var that = this,
-			dropped = false;
-		if ( $.ui.ddmanager && !this.options.dropBehaviour ) {
-			dropped = $.ui.ddmanager.drop( this, event );
-		}
-
-		//if a drop comes from outside (a sortable)
-		if ( this.dropped ) {
-			dropped = this.dropped;
-			this.dropped = false;
-		}
-
-		if ( ( this.options.revert === "invalid" && !dropped ) ||
-				( this.options.revert === "valid" && dropped ) ||
-				this.options.revert === true || ( $.isFunction( this.options.revert ) &&
-				this.options.revert.call( this.element, dropped ) )
-		) {
-			$( this.helper ).animate(
-				this.originalPosition,
-				parseInt( this.options.revertDuration, 10 ),
-				function() {
-					if ( that._trigger( "stop", event ) !== false ) {
-						that._clear();
-					}
-				}
-			);
-		} else {
-			if ( this._trigger( "stop", event ) !== false ) {
-				this._clear();
-			}
-		}
-
-		return false;
-	},
-
-	_mouseUp: function( event ) {
-		this._unblockFrames();
-
-		// If the ddmanager is used for droppables, inform the manager that dragging has stopped
-		// (see #5003)
-		if ( $.ui.ddmanager ) {
-			$.ui.ddmanager.dragStop( this, event );
-		}
-
-		// Only need to focus if the event occurred on the draggable itself, see #10527
-		if ( this.handleElement.is( event.target ) ) {
-
-			// The interaction is over; whether or not the click resulted in a drag,
-			// focus the element
-			this.element.trigger( "focus" );
-		}
-
-		return $.ui.mouse.prototype._mouseUp.call( this, event );
-	},
-
-	cancel: function() {
-
-		if ( this.helper.is( ".ui-draggable-dragging" ) ) {
-			this._mouseUp( new $.Event( "mouseup", { target: this.element[ 0 ] } ) );
-		} else {
-			this._clear();
-		}
-
-		return this;
-
-	},
-
-	_getHandle: function( event ) {
-		return this.options.handle ?
-			!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
-			true;
-	},
-
-	_setHandleClassName: function() {
-		this.handleElement = this.options.handle ?
-			this.element.find( this.options.handle ) : this.element;
-		this._addClass( this.handleElement, "ui-draggable-handle" );
-	},
-
-	_removeHandleClassName: function() {
-		this._removeClass( this.handleElement, "ui-draggable-handle" );
-	},
-
-	_createHelper: function( event ) {
-
-		var o = this.options,
-			helperIsFunction = $.isFunction( o.helper ),
-			helper = helperIsFunction ?
-				$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :
-				( o.helper === "clone" ?
-					this.element.clone().removeAttr( "id" ) :
-					this.element );
-
-		if ( !helper.parents( "body" ).length ) {
-			helper.appendTo( ( o.appendTo === "parent" ?
-				this.element[ 0 ].parentNode :
-				o.appendTo ) );
-		}
-
-		// Http://bugs.jqueryui.com/ticket/9446
-		// a helper function can return the original element
-		// which wouldn't have been set to relative in _create
-		if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {
-			this._setPositionRelative();
-		}
-
-		if ( helper[ 0 ] !== this.element[ 0 ] &&
-				!( /(fixed|absolute)/ ).test( helper.css( "position" ) ) ) {
-			helper.css( "position", "absolute" );
-		}
-
-		return helper;
-
-	},
-
-	_setPositionRelative: function() {
-		if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) {
-			this.element[ 0 ].style.position = "relative";
-		}
-	},
-
-	_adjustOffsetFromHelper: function( obj ) {
-		if ( typeof obj === "string" ) {
-			obj = obj.split( " " );
-		}
-		if ( $.isArray( obj ) ) {
-			obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };
-		}
-		if ( "left" in obj ) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ( "right" in obj ) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ( "top" in obj ) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ( "bottom" in obj ) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_isRootNode: function( element ) {
-		return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
-	},
-
-	_getParentOffset: function() {
-
-		//Get the offsetParent and cache its position
-		var po = this.offsetParent.offset(),
-			document = this.document[ 0 ];
-
-		// This is a special case where we need to modify a offset calculated on start, since the
-		// following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the
-		// next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't
-		// the document, which means that the scroll is included in the initial calculation of the
-		// offset of the parent, and never recalculated upon drag
-		if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== document &&
-				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
-			po = { top: 0, left: 0 };
-		}
-
-		return {
-			top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ),
-			left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 )
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-		if ( this.cssPosition !== "relative" ) {
-			return { top: 0, left: 0 };
-		}
-
-		var p = this.element.position(),
-			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
-
-		return {
-			top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) +
-				( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
-			left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) +
-				( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
-		};
-
-	},
-
-	_cacheMargins: function() {
-		this.margins = {
-			left: ( parseInt( this.element.css( "marginLeft" ), 10 ) || 0 ),
-			top: ( parseInt( this.element.css( "marginTop" ), 10 ) || 0 ),
-			right: ( parseInt( this.element.css( "marginRight" ), 10 ) || 0 ),
-			bottom: ( parseInt( this.element.css( "marginBottom" ), 10 ) || 0 )
-		};
-	},
-
-	_cacheHelperProportions: function() {
-		this.helperProportions = {
-			width: this.helper.outerWidth(),
-			height: this.helper.outerHeight()
-		};
-	},
-
-	_setContainment: function() {
-
-		var isUserScrollable, c, ce,
-			o = this.options,
-			document = this.document[ 0 ];
-
-		this.relativeContainer = null;
-
-		if ( !o.containment ) {
-			this.containment = null;
-			return;
-		}
-
-		if ( o.containment === "window" ) {
-			this.containment = [
-				$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
-				$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,
-				$( window ).scrollLeft() + $( window ).width() -
-					this.helperProportions.width - this.margins.left,
-				$( window ).scrollTop() +
-					( $( window ).height() || document.body.parentNode.scrollHeight ) -
-					this.helperProportions.height - this.margins.top
-			];
-			return;
-		}
-
-		if ( o.containment === "document" ) {
-			this.containment = [
-				0,
-				0,
-				$( document ).width() - this.helperProportions.width - this.margins.left,
-				( $( document ).height() || document.body.parentNode.scrollHeight ) -
-					this.helperProportions.height - this.margins.top
-			];
-			return;
-		}
-
-		if ( o.containment.constructor === Array ) {
-			this.containment = o.containment;
-			return;
-		}
-
-		if ( o.containment === "parent" ) {
-			o.containment = this.helper[ 0 ].parentNode;
-		}
-
-		c = $( o.containment );
-		ce = c[ 0 ];
-
-		if ( !ce ) {
-			return;
-		}
-
-		isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) );
-
-		this.containment = [
-			( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) +
-				( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
-			( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) +
-				( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
-			( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
-				( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) -
-				( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) -
-				this.helperProportions.width -
-				this.margins.left -
-				this.margins.right,
-			( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
-				( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) -
-				( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) -
-				this.helperProportions.height -
-				this.margins.top -
-				this.margins.bottom
-		];
-		this.relativeContainer = c;
-	},
-
-	_convertPositionTo: function( d, pos ) {
-
-		if ( !pos ) {
-			pos = this.position;
-		}
-
-		var mod = d === "absolute" ? 1 : -1,
-			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
-
-		return {
-			top: (
-
-				// The absolute mouse position
-				pos.top	+
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.top * mod +
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.top * mod -
-				( ( this.cssPosition === "fixed" ?
-					-this.offset.scroll.top :
-					( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod )
-			),
-			left: (
-
-				// The absolute mouse position
-				pos.left +
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.left * mod +
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.left * mod	-
-				( ( this.cssPosition === "fixed" ?
-					-this.offset.scroll.left :
-					( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod )
-			)
-		};
-
-	},
-
-	_generatePosition: function( event, constrainPosition ) {
-
-		var containment, co, top, left,
-			o = this.options,
-			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
-			pageX = event.pageX,
-			pageY = event.pageY;
-
-		// Cache the scroll
-		if ( !scrollIsRootNode || !this.offset.scroll ) {
-			this.offset.scroll = {
-				top: this.scrollParent.scrollTop(),
-				left: this.scrollParent.scrollLeft()
-			};
-		}
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		// If we are not dragging yet, we won't check for options
-		if ( constrainPosition ) {
-			if ( this.containment ) {
-				if ( this.relativeContainer ) {
-					co = this.relativeContainer.offset();
-					containment = [
-						this.containment[ 0 ] + co.left,
-						this.containment[ 1 ] + co.top,
-						this.containment[ 2 ] + co.left,
-						this.containment[ 3 ] + co.top
-					];
-				} else {
-					containment = this.containment;
-				}
-
-				if ( event.pageX - this.offset.click.left < containment[ 0 ] ) {
-					pageX = containment[ 0 ] + this.offset.click.left;
-				}
-				if ( event.pageY - this.offset.click.top < containment[ 1 ] ) {
-					pageY = containment[ 1 ] + this.offset.click.top;
-				}
-				if ( event.pageX - this.offset.click.left > containment[ 2 ] ) {
-					pageX = containment[ 2 ] + this.offset.click.left;
-				}
-				if ( event.pageY - this.offset.click.top > containment[ 3 ] ) {
-					pageY = containment[ 3 ] + this.offset.click.top;
-				}
-			}
-
-			if ( o.grid ) {
-
-				//Check for grid elements set to 0 to prevent divide by 0 error causing invalid
-				// argument errors in IE (see ticket #6950)
-				top = o.grid[ 1 ] ? this.originalPageY + Math.round( ( pageY -
-					this.originalPageY ) / o.grid[ 1 ] ) * o.grid[ 1 ] : this.originalPageY;
-				pageY = containment ? ( ( top - this.offset.click.top >= containment[ 1 ] ||
-					top - this.offset.click.top > containment[ 3 ] ) ?
-						top :
-						( ( top - this.offset.click.top >= containment[ 1 ] ) ?
-							top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top;
-
-				left = o.grid[ 0 ] ? this.originalPageX +
-					Math.round( ( pageX - this.originalPageX ) / o.grid[ 0 ] ) * o.grid[ 0 ] :
-					this.originalPageX;
-				pageX = containment ? ( ( left - this.offset.click.left >= containment[ 0 ] ||
-					left - this.offset.click.left > containment[ 2 ] ) ?
-						left :
-						( ( left - this.offset.click.left >= containment[ 0 ] ) ?
-							left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left;
-			}
-
-			if ( o.axis === "y" ) {
-				pageX = this.originalPageX;
-			}
-
-			if ( o.axis === "x" ) {
-				pageY = this.originalPageY;
-			}
-		}
-
-		return {
-			top: (
-
-				// The absolute mouse position
-				pageY -
-
-				// Click offset (relative to the element)
-				this.offset.click.top -
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.top -
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.top +
-				( this.cssPosition === "fixed" ?
-					-this.offset.scroll.top :
-					( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
-			),
-			left: (
-
-				// The absolute mouse position
-				pageX -
-
-				// Click offset (relative to the element)
-				this.offset.click.left -
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.left -
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.left +
-				( this.cssPosition === "fixed" ?
-					-this.offset.scroll.left :
-					( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
-			)
-		};
-
-	},
-
-	_clear: function() {
-		this._removeClass( this.helper, "ui-draggable-dragging" );
-		if ( this.helper[ 0 ] !== this.element[ 0 ] && !this.cancelHelperRemoval ) {
-			this.helper.remove();
-		}
-		this.helper = null;
-		this.cancelHelperRemoval = false;
-		if ( this.destroyOnClear ) {
-			this.destroy();
-		}
-	},
-
-	// From now on bulk stuff - mainly helpers
-
-	_trigger: function( type, event, ui ) {
-		ui = ui || this._uiHash();
-		$.ui.plugin.call( this, type, [ event, ui, this ], true );
-
-		// Absolute position and offset (see #6884 ) have to be recalculated after plugins
-		if ( /^(drag|start|stop)/.test( type ) ) {
-			this.positionAbs = this._convertPositionTo( "absolute" );
-			ui.offset = this.positionAbs;
-		}
-		return $.Widget.prototype._trigger.call( this, type, event, ui );
-	},
-
-	plugins: {},
-
-	_uiHash: function() {
-		return {
-			helper: this.helper,
-			position: this.position,
-			originalPosition: this.originalPosition,
-			offset: this.positionAbs
-		};
-	}
-
-} );
-
-$.ui.plugin.add( "draggable", "connectToSortable", {
-	start: function( event, ui, draggable ) {
-		var uiSortable = $.extend( {}, ui, {
-			item: draggable.element
-		} );
-
-		draggable.sortables = [];
-		$( draggable.options.connectToSortable ).each( function() {
-			var sortable = $( this ).sortable( "instance" );
-
-			if ( sortable && !sortable.options.disabled ) {
-				draggable.sortables.push( sortable );
-
-				// RefreshPositions is called at drag start to refresh the containerCache
-				// which is used in drag. This ensures it's initialized and synchronized
-				// with any changes that might have happened on the page since initialization.
-				sortable.refreshPositions();
-				sortable._trigger( "activate", event, uiSortable );
-			}
-		} );
-	},
-	stop: function( event, ui, draggable ) {
-		var uiSortable = $.extend( {}, ui, {
-			item: draggable.element
-		} );
-
-		draggable.cancelHelperRemoval = false;
-
-		$.each( draggable.sortables, function() {
-			var sortable = this;
-
-			if ( sortable.isOver ) {
-				sortable.isOver = 0;
-
-				// Allow this sortable to handle removing the helper
-				draggable.cancelHelperRemoval = true;
-				sortable.cancelHelperRemoval = false;
-
-				// Use _storedCSS To restore properties in the sortable,
-				// as this also handles revert (#9675) since the draggable
-				// may have modified them in unexpected ways (#8809)
-				sortable._storedCSS = {
-					position: sortable.placeholder.css( "position" ),
-					top: sortable.placeholder.css( "top" ),
-					left: sortable.placeholder.css( "left" )
-				};
-
-				sortable._mouseStop( event );
-
-				// Once drag has ended, the sortable should return to using
-				// its original helper, not the shared helper from draggable
-				sortable.options.helper = sortable.options._helper;
-			} else {
-
-				// Prevent this Sortable from removing the helper.
-				// However, don't set the draggable to remove the helper
-				// either as another connected Sortable may yet handle the removal.
-				sortable.cancelHelperRemoval = true;
-
-				sortable._trigger( "deactivate", event, uiSortable );
-			}
-		} );
-	},
-	drag: function( event, ui, draggable ) {
-		$.each( draggable.sortables, function() {
-			var innermostIntersecting = false,
-				sortable = this;
-
-			// Copy over variables that sortable's _intersectsWith uses
-			sortable.positionAbs = draggable.positionAbs;
-			sortable.helperProportions = draggable.helperProportions;
-			sortable.offset.click = draggable.offset.click;
-
-			if ( sortable._intersectsWith( sortable.containerCache ) ) {
-				innermostIntersecting = true;
-
-				$.each( draggable.sortables, function() {
-
-					// Copy over variables that sortable's _intersectsWith uses
-					this.positionAbs = draggable.positionAbs;
-					this.helperProportions = draggable.helperProportions;
-					this.offset.click = draggable.offset.click;
-
-					if ( this !== sortable &&
-							this._intersectsWith( this.containerCache ) &&
-							$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {
-						innermostIntersecting = false;
-					}
-
-					return innermostIntersecting;
-				} );
-			}
-
-			if ( innermostIntersecting ) {
-
-				// If it intersects, we use a little isOver variable and set it once,
-				// so that the move-in stuff gets fired only once.
-				if ( !sortable.isOver ) {
-					sortable.isOver = 1;
-
-					// Store draggable's parent in case we need to reappend to it later.
-					draggable._parent = ui.helper.parent();
-
-					sortable.currentItem = ui.helper
-						.appendTo( sortable.element )
-						.data( "ui-sortable-item", true );
-
-					// Store helper option to later restore it
-					sortable.options._helper = sortable.options.helper;
-
-					sortable.options.helper = function() {
-						return ui.helper[ 0 ];
-					};
-
-					// Fire the start events of the sortable with our passed browser event,
-					// and our own helper (so it doesn't create a new one)
-					event.target = sortable.currentItem[ 0 ];
-					sortable._mouseCapture( event, true );
-					sortable._mouseStart( event, true, true );
-
-					// Because the browser event is way off the new appended portlet,
-					// modify necessary variables to reflect the changes
-					sortable.offset.click.top = draggable.offset.click.top;
-					sortable.offset.click.left = draggable.offset.click.left;
-					sortable.offset.parent.left -= draggable.offset.parent.left -
-						sortable.offset.parent.left;
-					sortable.offset.parent.top -= draggable.offset.parent.top -
-						sortable.offset.parent.top;
-
-					draggable._trigger( "toSortable", event );
-
-					// Inform draggable that the helper is in a valid drop zone,
-					// used solely in the revert option to handle "valid/invalid".
-					draggable.dropped = sortable.element;
-
-					// Need to refreshPositions of all sortables in the case that
-					// adding to one sortable changes the location of the other sortables (#9675)
-					$.each( draggable.sortables, function() {
-						this.refreshPositions();
-					} );
-
-					// Hack so receive/update callbacks work (mostly)
-					draggable.currentItem = draggable.element;
-					sortable.fromOutside = draggable;
-				}
-
-				if ( sortable.currentItem ) {
-					sortable._mouseDrag( event );
-
-					// Copy the sortable's position because the draggable's can potentially reflect
-					// a relative position, while sortable is always absolute, which the dragged
-					// element has now become. (#8809)
-					ui.position = sortable.position;
-				}
-			} else {
-
-				// If it doesn't intersect with the sortable, and it intersected before,
-				// we fake the drag stop of the sortable, but make sure it doesn't remove
-				// the helper by using cancelHelperRemoval.
-				if ( sortable.isOver ) {
-
-					sortable.isOver = 0;
-					sortable.cancelHelperRemoval = true;
-
-					// Calling sortable's mouseStop would trigger a revert,
-					// so revert must be temporarily false until after mouseStop is called.
-					sortable.options._revert = sortable.options.revert;
-					sortable.options.revert = false;
-
-					sortable._trigger( "out", event, sortable._uiHash( sortable ) );
-					sortable._mouseStop( event, true );
-
-					// Restore sortable behaviors that were modfied
-					// when the draggable entered the sortable area (#9481)
-					sortable.options.revert = sortable.options._revert;
-					sortable.options.helper = sortable.options._helper;
-
-					if ( sortable.placeholder ) {
-						sortable.placeholder.remove();
-					}
-
-					// Restore and recalculate the draggable's offset considering the sortable
-					// may have modified them in unexpected ways. (#8809, #10669)
-					ui.helper.appendTo( draggable._parent );
-					draggable._refreshOffsets( event );
-					ui.position = draggable._generatePosition( event, true );
-
-					draggable._trigger( "fromSortable", event );
-
-					// Inform draggable that the helper is no longer in a valid drop zone
-					draggable.dropped = false;
-
-					// Need to refreshPositions of all sortables just in case removing
-					// from one sortable changes the location of other sortables (#9675)
-					$.each( draggable.sortables, function() {
-						this.refreshPositions();
-					} );
-				}
-			}
-		} );
-	}
-} );
-
-$.ui.plugin.add( "draggable", "cursor", {
-	start: function( event, ui, instance ) {
-		var t = $( "body" ),
-			o = instance.options;
-
-		if ( t.css( "cursor" ) ) {
-			o._cursor = t.css( "cursor" );
-		}
-		t.css( "cursor", o.cursor );
-	},
-	stop: function( event, ui, instance ) {
-		var o = instance.options;
-		if ( o._cursor ) {
-			$( "body" ).css( "cursor", o._cursor );
-		}
-	}
-} );
-
-$.ui.plugin.add( "draggable", "opacity", {
-	start: function( event, ui, instance ) {
-		var t = $( ui.helper ),
-			o = instance.options;
-		if ( t.css( "opacity" ) ) {
-			o._opacity = t.css( "opacity" );
-		}
-		t.css( "opacity", o.opacity );
-	},
-	stop: function( event, ui, instance ) {
-		var o = instance.options;
-		if ( o._opacity ) {
-			$( ui.helper ).css( "opacity", o._opacity );
-		}
-	}
-} );
-
-$.ui.plugin.add( "draggable", "scroll", {
-	start: function( event, ui, i ) {
-		if ( !i.scrollParentNotHidden ) {
-			i.scrollParentNotHidden = i.helper.scrollParent( false );
-		}
-
-		if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] &&
-				i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) {
-			i.overflowOffset = i.scrollParentNotHidden.offset();
-		}
-	},
-	drag: function( event, ui, i  ) {
-
-		var o = i.options,
-			scrolled = false,
-			scrollParent = i.scrollParentNotHidden[ 0 ],
-			document = i.document[ 0 ];
-
-		if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) {
-			if ( !o.axis || o.axis !== "x" ) {
-				if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY <
-						o.scrollSensitivity ) {
-					scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;
-				} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {
-					scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;
-				}
-			}
-
-			if ( !o.axis || o.axis !== "y" ) {
-				if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX <
-						o.scrollSensitivity ) {
-					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;
-				} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {
-					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;
-				}
-			}
-
-		} else {
-
-			if ( !o.axis || o.axis !== "x" ) {
-				if ( event.pageY - $( document ).scrollTop() < o.scrollSensitivity ) {
-					scrolled = $( document ).scrollTop( $( document ).scrollTop() - o.scrollSpeed );
-				} else if ( $( window ).height() - ( event.pageY - $( document ).scrollTop() ) <
-						o.scrollSensitivity ) {
-					scrolled = $( document ).scrollTop( $( document ).scrollTop() + o.scrollSpeed );
-				}
-			}
-
-			if ( !o.axis || o.axis !== "y" ) {
-				if ( event.pageX - $( document ).scrollLeft() < o.scrollSensitivity ) {
-					scrolled = $( document ).scrollLeft(
-						$( document ).scrollLeft() - o.scrollSpeed
-					);
-				} else if ( $( window ).width() - ( event.pageX - $( document ).scrollLeft() ) <
-						o.scrollSensitivity ) {
-					scrolled = $( document ).scrollLeft(
-						$( document ).scrollLeft() + o.scrollSpeed
-					);
-				}
-			}
-
-		}
-
-		if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {
-			$.ui.ddmanager.prepareOffsets( i, event );
-		}
-
-	}
-} );
-
-$.ui.plugin.add( "draggable", "snap", {
-	start: function( event, ui, i ) {
-
-		var o = i.options;
-
-		i.snapElements = [];
-
-		$( o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap )
-			.each( function() {
-				var $t = $( this ),
-					$o = $t.offset();
-				if ( this !== i.element[ 0 ] ) {
-					i.snapElements.push( {
-						item: this,
-						width: $t.outerWidth(), height: $t.outerHeight(),
-						top: $o.top, left: $o.left
-					} );
-				}
-			} );
-
-	},
-	drag: function( event, ui, inst ) {
-
-		var ts, bs, ls, rs, l, r, t, b, i, first,
-			o = inst.options,
-			d = o.snapTolerance,
-			x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
-			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
-
-		for ( i = inst.snapElements.length - 1; i >= 0; i-- ) {
-
-			l = inst.snapElements[ i ].left - inst.margins.left;
-			r = l + inst.snapElements[ i ].width;
-			t = inst.snapElements[ i ].top - inst.margins.top;
-			b = t + inst.snapElements[ i ].height;
-
-			if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d ||
-					!$.contains( inst.snapElements[ i ].item.ownerDocument,
-					inst.snapElements[ i ].item ) ) {
-				if ( inst.snapElements[ i ].snapping ) {
-					( inst.options.snap.release &&
-						inst.options.snap.release.call(
-							inst.element,
-							event,
-							$.extend( inst._uiHash(), { snapItem: inst.snapElements[ i ].item } )
-						) );
-				}
-				inst.snapElements[ i ].snapping = false;
-				continue;
-			}
-
-			if ( o.snapMode !== "inner" ) {
-				ts = Math.abs( t - y2 ) <= d;
-				bs = Math.abs( b - y1 ) <= d;
-				ls = Math.abs( l - x2 ) <= d;
-				rs = Math.abs( r - x1 ) <= d;
-				if ( ts ) {
-					ui.position.top = inst._convertPositionTo( "relative", {
-						top: t - inst.helperProportions.height,
-						left: 0
-					} ).top;
-				}
-				if ( bs ) {
-					ui.position.top = inst._convertPositionTo( "relative", {
-						top: b,
-						left: 0
-					} ).top;
-				}
-				if ( ls ) {
-					ui.position.left = inst._convertPositionTo( "relative", {
-						top: 0,
-						left: l - inst.helperProportions.width
-					} ).left;
-				}
-				if ( rs ) {
-					ui.position.left = inst._convertPositionTo( "relative", {
-						top: 0,
-						left: r
-					} ).left;
-				}
-			}
-
-			first = ( ts || bs || ls || rs );
-
-			if ( o.snapMode !== "outer" ) {
-				ts = Math.abs( t - y1 ) <= d;
-				bs = Math.abs( b - y2 ) <= d;
-				ls = Math.abs( l - x1 ) <= d;
-				rs = Math.abs( r - x2 ) <= d;
-				if ( ts ) {
-					ui.position.top = inst._convertPositionTo( "relative", {
-						top: t,
-						left: 0
-					} ).top;
-				}
-				if ( bs ) {
-					ui.position.top = inst._convertPositionTo( "relative", {
-						top: b - inst.helperProportions.height,
-						left: 0
-					} ).top;
-				}
-				if ( ls ) {
-					ui.position.left = inst._convertPositionTo( "relative", {
-						top: 0,
-						left: l
-					} ).left;
-				}
-				if ( rs ) {
-					ui.position.left = inst._convertPositionTo( "relative", {
-						top: 0,
-						left: r - inst.helperProportions.width
-					} ).left;
-				}
-			}
-
-			if ( !inst.snapElements[ i ].snapping && ( ts || bs || ls || rs || first ) ) {
-				( inst.options.snap.snap &&
-					inst.options.snap.snap.call(
-						inst.element,
-						event,
-						$.extend( inst._uiHash(), {
-							snapItem: inst.snapElements[ i ].item
-						} ) ) );
-			}
-			inst.snapElements[ i ].snapping = ( ts || bs || ls || rs || first );
-
-		}
-
-	}
-} );
-
-$.ui.plugin.add( "draggable", "stack", {
-	start: function( event, ui, instance ) {
-		var min,
-			o = instance.options,
-			group = $.makeArray( $( o.stack ) ).sort( function( a, b ) {
-				return ( parseInt( $( a ).css( "zIndex" ), 10 ) || 0 ) -
-					( parseInt( $( b ).css( "zIndex" ), 10 ) || 0 );
-			} );
-
-		if ( !group.length ) { return; }
-
-		min = parseInt( $( group[ 0 ] ).css( "zIndex" ), 10 ) || 0;
-		$( group ).each( function( i ) {
-			$( this ).css( "zIndex", min + i );
-		} );
-		this.css( "zIndex", ( min + group.length ) );
-	}
-} );
-
-$.ui.plugin.add( "draggable", "zIndex", {
-	start: function( event, ui, instance ) {
-		var t = $( ui.helper ),
-			o = instance.options;
-
-		if ( t.css( "zIndex" ) ) {
-			o._zIndex = t.css( "zIndex" );
-		}
-		t.css( "zIndex", o.zIndex );
-	},
-	stop: function( event, ui, instance ) {
-		var o = instance.options;
-
-		if ( o._zIndex ) {
-			$( ui.helper ).css( "zIndex", o._zIndex );
-		}
-	}
-} );
-
-var widgetsDraggable = $.ui.draggable;
-
-
-/*!
- * jQuery UI Resizable 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Resizable
-//>>group: Interactions
-//>>description: Enables resize functionality for any element.
-//>>docs: http://api.jqueryui.com/resizable/
-//>>demos: http://jqueryui.com/resizable/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/resizable.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.widget( "ui.resizable", $.ui.mouse, {
-	version: "1.12.0",
-	widgetEventPrefix: "resize",
-	options: {
-		alsoResize: false,
-		animate: false,
-		animateDuration: "slow",
-		animateEasing: "swing",
-		aspectRatio: false,
-		autoHide: false,
-		classes: {
-			"ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
-		},
-		containment: false,
-		ghost: false,
-		grid: false,
-		handles: "e,s,se",
-		helper: false,
-		maxHeight: null,
-		maxWidth: null,
-		minHeight: 10,
-		minWidth: 10,
-
-		// See #7960
-		zIndex: 90,
-
-		// Callbacks
-		resize: null,
-		start: null,
-		stop: null
-	},
-
-	_num: function( value ) {
-		return parseFloat( value ) || 0;
-	},
-
-	_isNumber: function( value ) {
-		return !isNaN( parseFloat( value ) );
-	},
-
-	_hasScroll: function( el, a ) {
-
-		if ( $( el ).css( "overflow" ) === "hidden" ) {
-			return false;
-		}
-
-		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
-			has = false;
-
-		if ( el[ scroll ] > 0 ) {
-			return true;
-		}
-
-		// TODO: determine which cases actually cause this to happen
-		// if the element doesn't have the scroll set, see if it's possible to
-		// set the scroll
-		el[ scroll ] = 1;
-		has = ( el[ scroll ] > 0 );
-		el[ scroll ] = 0;
-		return has;
-	},
-
-	_create: function() {
-
-		var margins,
-			o = this.options,
-			that = this;
-		this._addClass( "ui-resizable" );
-
-		$.extend( this, {
-			_aspectRatio: !!( o.aspectRatio ),
-			aspectRatio: o.aspectRatio,
-			originalElement: this.element,
-			_proportionallyResizeElements: [],
-			_helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
-		} );
-
-		// Wrap the element if it cannot hold child nodes
-		if ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) {
-
-			this.element.wrap(
-				$( "<div class='ui-wrapper' style='overflow: hidden;'></div>" ).css( {
-					position: this.element.css( "position" ),
-					width: this.element.outerWidth(),
-					height: this.element.outerHeight(),
-					top: this.element.css( "top" ),
-					left: this.element.css( "left" )
-				} )
-			);
-
-			this.element = this.element.parent().data(
-				"ui-resizable", this.element.resizable( "instance" )
-			);
-
-			this.elementIsWrapper = true;
-
-			margins = {
-				marginTop: this.originalElement.css( "marginTop" ),
-				marginRight: this.originalElement.css( "marginRight" ),
-				marginBottom: this.originalElement.css( "marginBottom" ),
-				marginLeft: this.originalElement.css( "marginLeft" )
-			};
-
-			this.element.css( margins );
-			this.originalElement.css( "margin", 0 );
-
-			// support: Safari
-			// Prevent Safari textarea resize
-			this.originalResizeStyle = this.originalElement.css( "resize" );
-			this.originalElement.css( "resize", "none" );
-
-			this._proportionallyResizeElements.push( this.originalElement.css( {
-				position: "static",
-				zoom: 1,
-				display: "block"
-			} ) );
-
-			// Support: IE9
-			// avoid IE jump (hard set the margin)
-			this.originalElement.css( margins );
-
-			this._proportionallyResize();
-		}
-
-		this._setupHandles();
-
-		if ( o.autoHide ) {
-			$( this.element )
-				.on( "mouseenter", function() {
-					if ( o.disabled ) {
-						return;
-					}
-					that._removeClass( "ui-resizable-autohide" );
-					that._handles.show();
-				} )
-				.on( "mouseleave", function() {
-					if ( o.disabled ) {
-						return;
-					}
-					if ( !that.resizing ) {
-						that._addClass( "ui-resizable-autohide" );
-						that._handles.hide();
-					}
-				} );
-		}
-
-		this._mouseInit();
-	},
-
-	_destroy: function() {
-
-		this._mouseDestroy();
-
-		var wrapper,
-			_destroy = function( exp ) {
-				$( exp )
-					.removeData( "resizable" )
-					.removeData( "ui-resizable" )
-					.off( ".resizable" )
-					.find( ".ui-resizable-handle" )
-						.remove();
-			};
-
-		// TODO: Unwrap at same DOM position
-		if ( this.elementIsWrapper ) {
-			_destroy( this.element );
-			wrapper = this.element;
-			this.originalElement.css( {
-				position: wrapper.css( "position" ),
-				width: wrapper.outerWidth(),
-				height: wrapper.outerHeight(),
-				top: wrapper.css( "top" ),
-				left: wrapper.css( "left" )
-			} ).insertAfter( wrapper );
-			wrapper.remove();
-		}
-
-		this.originalElement.css( "resize", this.originalResizeStyle );
-		_destroy( this.originalElement );
-
-		return this;
-	},
-
-	_setOption: function( key, value ) {
-		this._super( key, value );
-
-		switch ( key ) {
-		case "handles":
-			this._removeHandles();
-			this._setupHandles();
-			break;
-		default:
-			break;
-		}
-	},
-
-	_setupHandles: function() {
-		var o = this.options, handle, i, n, hname, axis, that = this;
-		this.handles = o.handles ||
-			( !$( ".ui-resizable-handle", this.element ).length ?
-				"e,s,se" : {
-					n: ".ui-resizable-n",
-					e: ".ui-resizable-e",
-					s: ".ui-resizable-s",
-					w: ".ui-resizable-w",
-					se: ".ui-resizable-se",
-					sw: ".ui-resizable-sw",
-					ne: ".ui-resizable-ne",
-					nw: ".ui-resizable-nw"
-				} );
-
-		this._handles = $();
-		if ( this.handles.constructor === String ) {
-
-			if ( this.handles === "all" ) {
-				this.handles = "n,e,s,w,se,sw,ne,nw";
-			}
-
-			n = this.handles.split( "," );
-			this.handles = {};
-
-			for ( i = 0; i < n.length; i++ ) {
-
-				handle = $.trim( n[ i ] );
-				hname = "ui-resizable-" + handle;
-				axis = $( "<div>" );
-				this._addClass( axis, "ui-resizable-handle " + hname );
-
-				axis.css( { zIndex: o.zIndex } );
-
-				this.handles[ handle ] = ".ui-resizable-" + handle;
-				this.element.append( axis );
-			}
-
-		}
-
-		this._renderAxis = function( target ) {
-
-			var i, axis, padPos, padWrapper;
-
-			target = target || this.element;
-
-			for ( i in this.handles ) {
-
-				if ( this.handles[ i ].constructor === String ) {
-					this.handles[ i ] = this.element.children( this.handles[ i ] ).first().show();
-				} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
-					this.handles[ i ] = $( this.handles[ i ] );
-					this._on( this.handles[ i ], { "mousedown": that._mouseDown } );
-				}
-
-				if ( this.elementIsWrapper &&
-						this.originalElement[ 0 ]
-							.nodeName
-							.match( /^(textarea|input|select|button)$/i ) ) {
-					axis = $( this.handles[ i ], this.element );
-
-					padWrapper = /sw|ne|nw|se|n|s/.test( i ) ?
-						axis.outerHeight() :
-						axis.outerWidth();
-
-					padPos = [ "padding",
-						/ne|nw|n/.test( i ) ? "Top" :
-						/se|sw|s/.test( i ) ? "Bottom" :
-						/^e$/.test( i ) ? "Right" : "Left" ].join( "" );
-
-					target.css( padPos, padWrapper );
-
-					this._proportionallyResize();
-				}
-
-				this._handles = this._handles.add( this.handles[ i ] );
-			}
-		};
-
-		// TODO: make renderAxis a prototype function
-		this._renderAxis( this.element );
-
-		this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
-		this._handles.disableSelection();
-
-		this._handles.on( "mouseover", function() {
-			if ( !that.resizing ) {
-				if ( this.className ) {
-					axis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i );
-				}
-				that.axis = axis && axis[ 1 ] ? axis[ 1 ] : "se";
-			}
-		} );
-
-		if ( o.autoHide ) {
-			this._handles.hide();
-			this._addClass( "ui-resizable-autohide" );
-		}
-	},
-
-	_removeHandles: function() {
-		this._handles.remove();
-	},
-
-	_mouseCapture: function( event ) {
-		var i, handle,
-			capture = false;
-
-		for ( i in this.handles ) {
-			handle = $( this.handles[ i ] )[ 0 ];
-			if ( handle === event.target || $.contains( handle, event.target ) ) {
-				capture = true;
-			}
-		}
-
-		return !this.options.disabled && capture;
-	},
-
-	_mouseStart: function( event ) {
-
-		var curleft, curtop, cursor,
-			o = this.options,
-			el = this.element;
-
-		this.resizing = true;
-
-		this._renderProxy();
-
-		curleft = this._num( this.helper.css( "left" ) );
-		curtop = this._num( this.helper.css( "top" ) );
-
-		if ( o.containment ) {
-			curleft += $( o.containment ).scrollLeft() || 0;
-			curtop += $( o.containment ).scrollTop() || 0;
-		}
-
-		this.offset = this.helper.offset();
-		this.position = { left: curleft, top: curtop };
-
-		this.size = this._helper ? {
-				width: this.helper.width(),
-				height: this.helper.height()
-			} : {
-				width: el.width(),
-				height: el.height()
-			};
-
-		this.originalSize = this._helper ? {
-				width: el.outerWidth(),
-				height: el.outerHeight()
-			} : {
-				width: el.width(),
-				height: el.height()
-			};
-
-		this.sizeDiff = {
-			width: el.outerWidth() - el.width(),
-			height: el.outerHeight() - el.height()
-		};
-
-		this.originalPosition = { left: curleft, top: curtop };
-		this.originalMousePosition = { left: event.pageX, top: event.pageY };
-
-		this.aspectRatio = ( typeof o.aspectRatio === "number" ) ?
-			o.aspectRatio :
-			( ( this.originalSize.width / this.originalSize.height ) || 1 );
-
-		cursor = $( ".ui-resizable-" + this.axis ).css( "cursor" );
-		$( "body" ).css( "cursor", cursor === "auto" ? this.axis + "-resize" : cursor );
-
-		this._addClass( "ui-resizable-resizing" );
-		this._propagate( "start", event );
-		return true;
-	},
-
-	_mouseDrag: function( event ) {
-
-		var data, props,
-			smp = this.originalMousePosition,
-			a = this.axis,
-			dx = ( event.pageX - smp.left ) || 0,
-			dy = ( event.pageY - smp.top ) || 0,
-			trigger = this._change[ a ];
-
-		this._updatePrevProperties();
-
-		if ( !trigger ) {
-			return false;
-		}
-
-		data = trigger.apply( this, [ event, dx, dy ] );
-
-		this._updateVirtualBoundaries( event.shiftKey );
-		if ( this._aspectRatio || event.shiftKey ) {
-			data = this._updateRatio( data, event );
-		}
-
-		data = this._respectSize( data, event );
-
-		this._updateCache( data );
-
-		this._propagate( "resize", event );
-
-		props = this._applyChanges();
-
-		if ( !this._helper && this._proportionallyResizeElements.length ) {
-			this._proportionallyResize();
-		}
-
-		if ( !$.isEmptyObject( props ) ) {
-			this._updatePrevProperties();
-			this._trigger( "resize", event, this.ui() );
-			this._applyChanges();
-		}
-
-		return false;
-	},
-
-	_mouseStop: function( event ) {
-
-		this.resizing = false;
-		var pr, ista, soffseth, soffsetw, s, left, top,
-			o = this.options, that = this;
-
-		if ( this._helper ) {
-
-			pr = this._proportionallyResizeElements;
-			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName );
-			soffseth = ista && this._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height;
-			soffsetw = ista ? 0 : that.sizeDiff.width;
-
-			s = {
-				width: ( that.helper.width()  - soffsetw ),
-				height: ( that.helper.height() - soffseth )
-			};
-			left = ( parseFloat( that.element.css( "left" ) ) +
-				( that.position.left - that.originalPosition.left ) ) || null;
-			top = ( parseFloat( that.element.css( "top" ) ) +
-				( that.position.top - that.originalPosition.top ) ) || null;
-
-			if ( !o.animate ) {
-				this.element.css( $.extend( s, { top: top, left: left } ) );
-			}
-
-			that.helper.height( that.size.height );
-			that.helper.width( that.size.width );
-
-			if ( this._helper && !o.animate ) {
-				this._proportionallyResize();
-			}
-		}
-
-		$( "body" ).css( "cursor", "auto" );
-
-		this._removeClass( "ui-resizable-resizing" );
-
-		this._propagate( "stop", event );
-
-		if ( this._helper ) {
-			this.helper.remove();
-		}
-
-		return false;
-
-	},
-
-	_updatePrevProperties: function() {
-		this.prevPosition = {
-			top: this.position.top,
-			left: this.position.left
-		};
-		this.prevSize = {
-			width: this.size.width,
-			height: this.size.height
-		};
-	},
-
-	_applyChanges: function() {
-		var props = {};
-
-		if ( this.position.top !== this.prevPosition.top ) {
-			props.top = this.position.top + "px";
-		}
-		if ( this.position.left !== this.prevPosition.left ) {
-			props.left = this.position.left + "px";
-		}
-		if ( this.size.width !== this.prevSize.width ) {
-			props.width = this.size.width + "px";
-		}
-		if ( this.size.height !== this.prevSize.height ) {
-			props.height = this.size.height + "px";
-		}
-
-		this.helper.css( props );
-
-		return props;
-	},
-
-	_updateVirtualBoundaries: function( forceAspectRatio ) {
-		var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
-			o = this.options;
-
-		b = {
-			minWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0,
-			maxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity,
-			minHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0,
-			maxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity
-		};
-
-		if ( this._aspectRatio || forceAspectRatio ) {
-			pMinWidth = b.minHeight * this.aspectRatio;
-			pMinHeight = b.minWidth / this.aspectRatio;
-			pMaxWidth = b.maxHeight * this.aspectRatio;
-			pMaxHeight = b.maxWidth / this.aspectRatio;
-
-			if ( pMinWidth > b.minWidth ) {
-				b.minWidth = pMinWidth;
-			}
-			if ( pMinHeight > b.minHeight ) {
-				b.minHeight = pMinHeight;
-			}
-			if ( pMaxWidth < b.maxWidth ) {
-				b.maxWidth = pMaxWidth;
-			}
-			if ( pMaxHeight < b.maxHeight ) {
-				b.maxHeight = pMaxHeight;
-			}
-		}
-		this._vBoundaries = b;
-	},
-
-	_updateCache: function( data ) {
-		this.offset = this.helper.offset();
-		if ( this._isNumber( data.left ) ) {
-			this.position.left = data.left;
-		}
-		if ( this._isNumber( data.top ) ) {
-			this.position.top = data.top;
-		}
-		if ( this._isNumber( data.height ) ) {
-			this.size.height = data.height;
-		}
-		if ( this._isNumber( data.width ) ) {
-			this.size.width = data.width;
-		}
-	},
-
-	_updateRatio: function( data ) {
-
-		var cpos = this.position,
-			csize = this.size,
-			a = this.axis;
-
-		if ( this._isNumber( data.height ) ) {
-			data.width = ( data.height * this.aspectRatio );
-		} else if ( this._isNumber( data.width ) ) {
-			data.height = ( data.width / this.aspectRatio );
-		}
-
-		if ( a === "sw" ) {
-			data.left = cpos.left + ( csize.width - data.width );
-			data.top = null;
-		}
-		if ( a === "nw" ) {
-			data.top = cpos.top + ( csize.height - data.height );
-			data.left = cpos.left + ( csize.width - data.width );
-		}
-
-		return data;
-	},
-
-	_respectSize: function( data ) {
-
-		var o = this._vBoundaries,
-			a = this.axis,
-			ismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ),
-			ismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ),
-			isminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ),
-			isminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ),
-			dw = this.originalPosition.left + this.originalSize.width,
-			dh = this.originalPosition.top + this.originalSize.height,
-			cw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a );
-		if ( isminw ) {
-			data.width = o.minWidth;
-		}
-		if ( isminh ) {
-			data.height = o.minHeight;
-		}
-		if ( ismaxw ) {
-			data.width = o.maxWidth;
-		}
-		if ( ismaxh ) {
-			data.height = o.maxHeight;
-		}
-
-		if ( isminw && cw ) {
-			data.left = dw - o.minWidth;
-		}
-		if ( ismaxw && cw ) {
-			data.left = dw - o.maxWidth;
-		}
-		if ( isminh && ch ) {
-			data.top = dh - o.minHeight;
-		}
-		if ( ismaxh && ch ) {
-			data.top = dh - o.maxHeight;
-		}
-
-		// Fixing jump error on top/left - bug #2330
-		if ( !data.width && !data.height && !data.left && data.top ) {
-			data.top = null;
-		} else if ( !data.width && !data.height && !data.top && data.left ) {
-			data.left = null;
-		}
-
-		return data;
-	},
-
-	_getPaddingPlusBorderDimensions: function( element ) {
-		var i = 0,
-			widths = [],
-			borders = [
-				element.css( "borderTopWidth" ),
-				element.css( "borderRightWidth" ),
-				element.css( "borderBottomWidth" ),
-				element.css( "borderLeftWidth" )
-			],
-			paddings = [
-				element.css( "paddingTop" ),
-				element.css( "paddingRight" ),
-				element.css( "paddingBottom" ),
-				element.css( "paddingLeft" )
-			];
-
-		for ( ; i < 4; i++ ) {
-			widths[ i ] = ( parseFloat( borders[ i ] ) || 0 );
-			widths[ i ] += ( parseFloat( paddings[ i ] ) || 0 );
-		}
-
-		return {
-			height: widths[ 0 ] + widths[ 2 ],
-			width: widths[ 1 ] + widths[ 3 ]
-		};
-	},
-
-	_proportionallyResize: function() {
-
-		if ( !this._proportionallyResizeElements.length ) {
-			return;
-		}
-
-		var prel,
-			i = 0,
-			element = this.helper || this.element;
-
-		for ( ; i < this._proportionallyResizeElements.length; i++ ) {
-
-			prel = this._proportionallyResizeElements[ i ];
-
-			// TODO: Seems like a bug to cache this.outerDimensions
-			// considering that we are in a loop.
-			if ( !this.outerDimensions ) {
-				this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
-			}
-
-			prel.css( {
-				height: ( element.height() - this.outerDimensions.height ) || 0,
-				width: ( element.width() - this.outerDimensions.width ) || 0
-			} );
-
-		}
-
-	},
-
-	_renderProxy: function() {
-
-		var el = this.element, o = this.options;
-		this.elementOffset = el.offset();
-
-		if ( this._helper ) {
-
-			this.helper = this.helper || $( "<div style='overflow:hidden;'></div>" );
-
-			this._addClass( this.helper, this._helper );
-			this.helper.css( {
-				width: this.element.outerWidth(),
-				height: this.element.outerHeight(),
-				position: "absolute",
-				left: this.elementOffset.left + "px",
-				top: this.elementOffset.top + "px",
-				zIndex: ++o.zIndex //TODO: Don't modify option
-			} );
-
-			this.helper
-				.appendTo( "body" )
-				.disableSelection();
-
-		} else {
-			this.helper = this.element;
-		}
-
-	},
-
-	_change: {
-		e: function( event, dx ) {
-			return { width: this.originalSize.width + dx };
-		},
-		w: function( event, dx ) {
-			var cs = this.originalSize, sp = this.originalPosition;
-			return { left: sp.left + dx, width: cs.width - dx };
-		},
-		n: function( event, dx, dy ) {
-			var cs = this.originalSize, sp = this.originalPosition;
-			return { top: sp.top + dy, height: cs.height - dy };
-		},
-		s: function( event, dx, dy ) {
-			return { height: this.originalSize.height + dy };
-		},
-		se: function( event, dx, dy ) {
-			return $.extend( this._change.s.apply( this, arguments ),
-				this._change.e.apply( this, [ event, dx, dy ] ) );
-		},
-		sw: function( event, dx, dy ) {
-			return $.extend( this._change.s.apply( this, arguments ),
-				this._change.w.apply( this, [ event, dx, dy ] ) );
-		},
-		ne: function( event, dx, dy ) {
-			return $.extend( this._change.n.apply( this, arguments ),
-				this._change.e.apply( this, [ event, dx, dy ] ) );
-		},
-		nw: function( event, dx, dy ) {
-			return $.extend( this._change.n.apply( this, arguments ),
-				this._change.w.apply( this, [ event, dx, dy ] ) );
-		}
-	},
-
-	_propagate: function( n, event ) {
-		$.ui.plugin.call( this, n, [ event, this.ui() ] );
-		( n !== "resize" && this._trigger( n, event, this.ui() ) );
-	},
-
-	plugins: {},
-
-	ui: function() {
-		return {
-			originalElement: this.originalElement,
-			element: this.element,
-			helper: this.helper,
-			position: this.position,
-			size: this.size,
-			originalSize: this.originalSize,
-			originalPosition: this.originalPosition
-		};
-	}
-
-} );
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add( "resizable", "animate", {
-
-	stop: function( event ) {
-		var that = $( this ).resizable( "instance" ),
-			o = that.options,
-			pr = that._proportionallyResizeElements,
-			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ),
-			soffseth = ista && that._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height,
-			soffsetw = ista ? 0 : that.sizeDiff.width,
-			style = {
-				width: ( that.size.width - soffsetw ),
-				height: ( that.size.height - soffseth )
-			},
-			left = ( parseFloat( that.element.css( "left" ) ) +
-				( that.position.left - that.originalPosition.left ) ) || null,
-			top = ( parseFloat( that.element.css( "top" ) ) +
-				( that.position.top - that.originalPosition.top ) ) || null;
-
-		that.element.animate(
-			$.extend( style, top && left ? { top: top, left: left } : {} ), {
-				duration: o.animateDuration,
-				easing: o.animateEasing,
-				step: function() {
-
-					var data = {
-						width: parseFloat( that.element.css( "width" ) ),
-						height: parseFloat( that.element.css( "height" ) ),
-						top: parseFloat( that.element.css( "top" ) ),
-						left: parseFloat( that.element.css( "left" ) )
-					};
-
-					if ( pr && pr.length ) {
-						$( pr[ 0 ] ).css( { width: data.width, height: data.height } );
-					}
-
-					// Propagating resize, and updating values for each animation step
-					that._updateCache( data );
-					that._propagate( "resize", event );
-
-				}
-			}
-		);
-	}
-
-} );
-
-$.ui.plugin.add( "resizable", "containment", {
-
-	start: function() {
-		var element, p, co, ch, cw, width, height,
-			that = $( this ).resizable( "instance" ),
-			o = that.options,
-			el = that.element,
-			oc = o.containment,
-			ce = ( oc instanceof $ ) ?
-				oc.get( 0 ) :
-				( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
-
-		if ( !ce ) {
-			return;
-		}
-
-		that.containerElement = $( ce );
-
-		if ( /document/.test( oc ) || oc === document ) {
-			that.containerOffset = {
-				left: 0,
-				top: 0
-			};
-			that.containerPosition = {
-				left: 0,
-				top: 0
-			};
-
-			that.parentData = {
-				element: $( document ),
-				left: 0,
-				top: 0,
-				width: $( document ).width(),
-				height: $( document ).height() || document.body.parentNode.scrollHeight
-			};
-		} else {
-			element = $( ce );
-			p = [];
-			$( [ "Top", "Right", "Left", "Bottom" ] ).each( function( i, name ) {
-				p[ i ] = that._num( element.css( "padding" + name ) );
-			} );
-
-			that.containerOffset = element.offset();
-			that.containerPosition = element.position();
-			that.containerSize = {
-				height: ( element.innerHeight() - p[ 3 ] ),
-				width: ( element.innerWidth() - p[ 1 ] )
-			};
-
-			co = that.containerOffset;
-			ch = that.containerSize.height;
-			cw = that.containerSize.width;
-			width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
-			height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
-
-			that.parentData = {
-				element: ce,
-				left: co.left,
-				top: co.top,
-				width: width,
-				height: height
-			};
-		}
-	},
-
-	resize: function( event ) {
-		var woset, hoset, isParent, isOffsetRelative,
-			that = $( this ).resizable( "instance" ),
-			o = that.options,
-			co = that.containerOffset,
-			cp = that.position,
-			pRatio = that._aspectRatio || event.shiftKey,
-			cop = {
-				top: 0,
-				left: 0
-			},
-			ce = that.containerElement,
-			continueResize = true;
-
-		if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
-			cop = co;
-		}
-
-		if ( cp.left < ( that._helper ? co.left : 0 ) ) {
-			that.size.width = that.size.width +
-				( that._helper ?
-					( that.position.left - co.left ) :
-					( that.position.left - cop.left ) );
-
-			if ( pRatio ) {
-				that.size.height = that.size.width / that.aspectRatio;
-				continueResize = false;
-			}
-			that.position.left = o.helper ? co.left : 0;
-		}
-
-		if ( cp.top < ( that._helper ? co.top : 0 ) ) {
-			that.size.height = that.size.height +
-				( that._helper ?
-					( that.position.top - co.top ) :
-					that.position.top );
-
-			if ( pRatio ) {
-				that.size.width = that.size.height * that.aspectRatio;
-				continueResize = false;
-			}
-			that.position.top = that._helper ? co.top : 0;
-		}
-
-		isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
-		isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
-
-		if ( isParent && isOffsetRelative ) {
-			that.offset.left = that.parentData.left + that.position.left;
-			that.offset.top = that.parentData.top + that.position.top;
-		} else {
-			that.offset.left = that.element.offset().left;
-			that.offset.top = that.element.offset().top;
-		}
-
-		woset = Math.abs( that.sizeDiff.width +
-			( that._helper ?
-				that.offset.left - cop.left :
-				( that.offset.left - co.left ) ) );
-
-		hoset = Math.abs( that.sizeDiff.height +
-			( that._helper ?
-				that.offset.top - cop.top :
-				( that.offset.top - co.top ) ) );
-
-		if ( woset + that.size.width >= that.parentData.width ) {
-			that.size.width = that.parentData.width - woset;
-			if ( pRatio ) {
-				that.size.height = that.size.width / that.aspectRatio;
-				continueResize = false;
-			}
-		}
-
-		if ( hoset + that.size.height >= that.parentData.height ) {
-			that.size.height = that.parentData.height - hoset;
-			if ( pRatio ) {
-				that.size.width = that.size.height * that.aspectRatio;
-				continueResize = false;
-			}
-		}
-
-		if ( !continueResize ) {
-			that.position.left = that.prevPosition.left;
-			that.position.top = that.prevPosition.top;
-			that.size.width = that.prevSize.width;
-			that.size.height = that.prevSize.height;
-		}
-	},
-
-	stop: function() {
-		var that = $( this ).resizable( "instance" ),
-			o = that.options,
-			co = that.containerOffset,
-			cop = that.containerPosition,
-			ce = that.containerElement,
-			helper = $( that.helper ),
-			ho = helper.offset(),
-			w = helper.outerWidth() - that.sizeDiff.width,
-			h = helper.outerHeight() - that.sizeDiff.height;
-
-		if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
-			$( this ).css( {
-				left: ho.left - cop.left - co.left,
-				width: w,
-				height: h
-			} );
-		}
-
-		if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
-			$( this ).css( {
-				left: ho.left - cop.left - co.left,
-				width: w,
-				height: h
-			} );
-		}
-	}
-} );
-
-$.ui.plugin.add( "resizable", "alsoResize", {
-
-	start: function() {
-		var that = $( this ).resizable( "instance" ),
-			o = that.options;
-
-		$( o.alsoResize ).each( function() {
-			var el = $( this );
-			el.data( "ui-resizable-alsoresize", {
-				width: parseFloat( el.width() ), height: parseFloat( el.height() ),
-				left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) )
-			} );
-		} );
-	},
-
-	resize: function( event, ui ) {
-		var that = $( this ).resizable( "instance" ),
-			o = that.options,
-			os = that.originalSize,
-			op = that.originalPosition,
-			delta = {
-				height: ( that.size.height - os.height ) || 0,
-				width: ( that.size.width - os.width ) || 0,
-				top: ( that.position.top - op.top ) || 0,
-				left: ( that.position.left - op.left ) || 0
-			};
-
-			$( o.alsoResize ).each( function() {
-				var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {},
-					css = el.parents( ui.originalElement[ 0 ] ).length ?
-							[ "width", "height" ] :
-							[ "width", "height", "top", "left" ];
-
-				$.each( css, function( i, prop ) {
-					var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 );
-					if ( sum && sum >= 0 ) {
-						style[ prop ] = sum || null;
-					}
-				} );
-
-				el.css( style );
-			} );
-	},
-
-	stop: function() {
-		$( this ).removeData( "ui-resizable-alsoresize" );
-	}
-} );
-
-$.ui.plugin.add( "resizable", "ghost", {
-
-	start: function() {
-
-		var that = $( this ).resizable( "instance" ), cs = that.size;
-
-		that.ghost = that.originalElement.clone();
-		that.ghost.css( {
-			opacity: 0.25,
-			display: "block",
-			position: "relative",
-			height: cs.height,
-			width: cs.width,
-			margin: 0,
-			left: 0,
-			top: 0
-		} );
-
-		that._addClass( that.ghost, "ui-resizable-ghost" );
-
-		// DEPRECATED
-		// TODO: remove after 1.12
-		if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) {
-
-			// Ghost option
-			that.ghost.addClass( this.options.ghost );
-		}
-
-		that.ghost.appendTo( that.helper );
-
-	},
-
-	resize: function() {
-		var that = $( this ).resizable( "instance" );
-		if ( that.ghost ) {
-			that.ghost.css( {
-				position: "relative",
-				height: that.size.height,
-				width: that.size.width
-			} );
-		}
-	},
-
-	stop: function() {
-		var that = $( this ).resizable( "instance" );
-		if ( that.ghost && that.helper ) {
-			that.helper.get( 0 ).removeChild( that.ghost.get( 0 ) );
-		}
-	}
-
-} );
-
-$.ui.plugin.add( "resizable", "grid", {
-
-	resize: function() {
-		var outerDimensions,
-			that = $( this ).resizable( "instance" ),
-			o = that.options,
-			cs = that.size,
-			os = that.originalSize,
-			op = that.originalPosition,
-			a = that.axis,
-			grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
-			gridX = ( grid[ 0 ] || 1 ),
-			gridY = ( grid[ 1 ] || 1 ),
-			ox = Math.round( ( cs.width - os.width ) / gridX ) * gridX,
-			oy = Math.round( ( cs.height - os.height ) / gridY ) * gridY,
-			newWidth = os.width + ox,
-			newHeight = os.height + oy,
-			isMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ),
-			isMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ),
-			isMinWidth = o.minWidth && ( o.minWidth > newWidth ),
-			isMinHeight = o.minHeight && ( o.minHeight > newHeight );
-
-		o.grid = grid;
-
-		if ( isMinWidth ) {
-			newWidth += gridX;
-		}
-		if ( isMinHeight ) {
-			newHeight += gridY;
-		}
-		if ( isMaxWidth ) {
-			newWidth -= gridX;
-		}
-		if ( isMaxHeight ) {
-			newHeight -= gridY;
-		}
-
-		if ( /^(se|s|e)$/.test( a ) ) {
-			that.size.width = newWidth;
-			that.size.height = newHeight;
-		} else if ( /^(ne)$/.test( a ) ) {
-			that.size.width = newWidth;
-			that.size.height = newHeight;
-			that.position.top = op.top - oy;
-		} else if ( /^(sw)$/.test( a ) ) {
-			that.size.width = newWidth;
-			that.size.height = newHeight;
-			that.position.left = op.left - ox;
-		} else {
-			if ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) {
-				outerDimensions = that._getPaddingPlusBorderDimensions( this );
-			}
-
-			if ( newHeight - gridY > 0 ) {
-				that.size.height = newHeight;
-				that.position.top = op.top - oy;
-			} else {
-				newHeight = gridY - outerDimensions.height;
-				that.size.height = newHeight;
-				that.position.top = op.top + os.height - newHeight;
-			}
-			if ( newWidth - gridX > 0 ) {
-				that.size.width = newWidth;
-				that.position.left = op.left - ox;
-			} else {
-				newWidth = gridX - outerDimensions.width;
-				that.size.width = newWidth;
-				that.position.left = op.left + os.width - newWidth;
-			}
-		}
-	}
-
-} );
-
-var widgetsResizable = $.ui.resizable;
-
-
-/*!
- * jQuery UI Dialog 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Dialog
-//>>group: Widgets
-//>>description: Displays customizable dialog windows.
-//>>docs: http://api.jqueryui.com/dialog/
-//>>demos: http://jqueryui.com/dialog/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/dialog.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.widget( "ui.dialog", {
-	version: "1.12.0",
-	options: {
-		appendTo: "body",
-		autoOpen: true,
-		buttons: [],
-		classes: {
-			"ui-dialog": "ui-corner-all",
-			"ui-dialog-titlebar": "ui-corner-all"
-		},
-		closeOnEscape: true,
-		closeText: "Close",
-		draggable: true,
-		hide: null,
-		height: "auto",
-		maxHeight: null,
-		maxWidth: null,
-		minHeight: 150,
-		minWidth: 150,
-		modal: false,
-		position: {
-			my: "center",
-			at: "center",
-			of: window,
-			collision: "fit",
-
-			// Ensure the titlebar is always visible
-			using: function( pos ) {
-				var topOffset = $( this ).css( pos ).offset().top;
-				if ( topOffset < 0 ) {
-					$( this ).css( "top", pos.top - topOffset );
-				}
-			}
-		},
-		resizable: true,
-		show: null,
-		title: null,
-		width: 300,
-
-		// Callbacks
-		beforeClose: null,
-		close: null,
-		drag: null,
-		dragStart: null,
-		dragStop: null,
-		focus: null,
-		open: null,
-		resize: null,
-		resizeStart: null,
-		resizeStop: null
-	},
-
-	sizeRelatedOptions: {
-		buttons: true,
-		height: true,
-		maxHeight: true,
-		maxWidth: true,
-		minHeight: true,
-		minWidth: true,
-		width: true
-	},
-
-	resizableRelatedOptions: {
-		maxHeight: true,
-		maxWidth: true,
-		minHeight: true,
-		minWidth: true
-	},
-
-	_create: function() {
-		this.originalCss = {
-			display: this.element[ 0 ].style.display,
-			width: this.element[ 0 ].style.width,
-			minHeight: this.element[ 0 ].style.minHeight,
-			maxHeight: this.element[ 0 ].style.maxHeight,
-			height: this.element[ 0 ].style.height
-		};
-		this.originalPosition = {
-			parent: this.element.parent(),
-			index: this.element.parent().children().index( this.element )
-		};
-		this.originalTitle = this.element.attr( "title" );
-		if ( this.options.title == null && this.originalTitle != null ) {
-			this.options.title = this.originalTitle;
-		}
-
-		// Dialogs can't be disabled
-		if ( this.options.disabled ) {
-			this.options.disabled = false;
-		}
-
-		this._createWrapper();
-
-		this.element
-			.show()
-			.removeAttr( "title" )
-			.appendTo( this.uiDialog );
-
-		this._addClass( "ui-dialog-content", "ui-widget-content" );
-
-		this._createTitlebar();
-		this._createButtonPane();
-
-		if ( this.options.draggable && $.fn.draggable ) {
-			this._makeDraggable();
-		}
-		if ( this.options.resizable && $.fn.resizable ) {
-			this._makeResizable();
-		}
-
-		this._isOpen = false;
-
-		this._trackFocus();
-	},
-
-	_init: function() {
-		if ( this.options.autoOpen ) {
-			this.open();
-		}
-	},
-
-	_appendTo: function() {
-		var element = this.options.appendTo;
-		if ( element && ( element.jquery || element.nodeType ) ) {
-			return $( element );
-		}
-		return this.document.find( element || "body" ).eq( 0 );
-	},
-
-	_destroy: function() {
-		var next,
-			originalPosition = this.originalPosition;
-
-		this._untrackInstance();
-		this._destroyOverlay();
-
-		this.element
-			.removeUniqueId()
-			.css( this.originalCss )
-
-			// Without detaching first, the following becomes really slow
-			.detach();
-
-		this.uiDialog.remove();
-
-		if ( this.originalTitle ) {
-			this.element.attr( "title", this.originalTitle );
-		}
-
-		next = originalPosition.parent.children().eq( originalPosition.index );
-
-		// Don't try to place the dialog next to itself (#8613)
-		if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
-			next.before( this.element );
-		} else {
-			originalPosition.parent.append( this.element );
-		}
-	},
-
-	widget: function() {
-		return this.uiDialog;
-	},
-
-	disable: $.noop,
-	enable: $.noop,
-
-	close: function( event ) {
-		var that = this;
-
-		if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
-			return;
-		}
-
-		this._isOpen = false;
-		this._focusedElement = null;
-		this._destroyOverlay();
-		this._untrackInstance();
-
-		if ( !this.opener.filter( ":focusable" ).trigger( "focus" ).length ) {
-
-			// Hiding a focused element doesn't trigger blur in WebKit
-			// so in case we have nothing to focus on, explicitly blur the active element
-			// https://bugs.webkit.org/show_bug.cgi?id=47182
-			$.ui.safeBlur( $.ui.safeActiveElement( this.document[ 0 ] ) );
-		}
-
-		this._hide( this.uiDialog, this.options.hide, function() {
-			that._trigger( "close", event );
-		} );
-	},
-
-	isOpen: function() {
-		return this._isOpen;
-	},
-
-	moveToTop: function() {
-		this._moveToTop();
-	},
-
-	_moveToTop: function( event, silent ) {
-		var moved = false,
-			zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map( function() {
-				return +$( this ).css( "z-index" );
-			} ).get(),
-			zIndexMax = Math.max.apply( null, zIndices );
-
-		if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
-			this.uiDialog.css( "z-index", zIndexMax + 1 );
-			moved = true;
-		}
-
-		if ( moved && !silent ) {
-			this._trigger( "focus", event );
-		}
-		return moved;
-	},
-
-	open: function() {
-		var that = this;
-		if ( this._isOpen ) {
-			if ( this._moveToTop() ) {
-				this._focusTabbable();
-			}
-			return;
-		}
-
-		this._isOpen = true;
-		this.opener = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
-
-		this._size();
-		this._position();
-		this._createOverlay();
-		this._moveToTop( null, true );
-
-		// Ensure the overlay is moved to the top with the dialog, but only when
-		// opening. The overlay shouldn't move after the dialog is open so that
-		// modeless dialogs opened after the modal dialog stack properly.
-		if ( this.overlay ) {
-			this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
-		}
-
-		this._show( this.uiDialog, this.options.show, function() {
-			that._focusTabbable();
-			that._trigger( "focus" );
-		} );
-
-		// Track the dialog immediately upon openening in case a focus event
-		// somehow occurs outside of the dialog before an element inside the
-		// dialog is focused (#10152)
-		this._makeFocusTarget();
-
-		this._trigger( "open" );
-	},
-
-	_focusTabbable: function() {
-
-		// Set focus to the first match:
-		// 1. An element that was focused previously
-		// 2. First element inside the dialog matching [autofocus]
-		// 3. Tabbable element inside the content element
-		// 4. Tabbable element inside the buttonpane
-		// 5. The close button
-		// 6. The dialog itself
-		var hasFocus = this._focusedElement;
-		if ( !hasFocus ) {
-			hasFocus = this.element.find( "[autofocus]" );
-		}
-		if ( !hasFocus.length ) {
-			hasFocus = this.element.find( ":tabbable" );
-		}
-		if ( !hasFocus.length ) {
-			hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
-		}
-		if ( !hasFocus.length ) {
-			hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
-		}
-		if ( !hasFocus.length ) {
-			hasFocus = this.uiDialog;
-		}
-		hasFocus.eq( 0 ).trigger( "focus" );
-	},
-
-	_keepFocus: function( event ) {
-		function checkFocus() {
-			var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
-				isActive = this.uiDialog[ 0 ] === activeElement ||
-					$.contains( this.uiDialog[ 0 ], activeElement );
-			if ( !isActive ) {
-				this._focusTabbable();
-			}
-		}
-		event.preventDefault();
-		checkFocus.call( this );
-
-		// support: IE
-		// IE <= 8 doesn't prevent moving focus even with event.preventDefault()
-		// so we check again later
-		this._delay( checkFocus );
-	},
-
-	_createWrapper: function() {
-		this.uiDialog = $( "<div>" )
-			.hide()
-			.attr( {
-
-				// Setting tabIndex makes the div focusable
-				tabIndex: -1,
-				role: "dialog"
-			} )
-			.appendTo( this._appendTo() );
-
-		this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
-		this._on( this.uiDialog, {
-			keydown: function( event ) {
-				if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
-						event.keyCode === $.ui.keyCode.ESCAPE ) {
-					event.preventDefault();
-					this.close( event );
-					return;
-				}
-
-				// Prevent tabbing out of dialogs
-				if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
-					return;
-				}
-				var tabbables = this.uiDialog.find( ":tabbable" ),
-					first = tabbables.filter( ":first" ),
-					last = tabbables.filter( ":last" );
-
-				if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&
-						!event.shiftKey ) {
-					this._delay( function() {
-						first.trigger( "focus" );
-					} );
-					event.preventDefault();
-				} else if ( ( event.target === first[ 0 ] ||
-						event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {
-					this._delay( function() {
-						last.trigger( "focus" );
-					} );
-					event.preventDefault();
-				}
-			},
-			mousedown: function( event ) {
-				if ( this._moveToTop( event ) ) {
-					this._focusTabbable();
-				}
-			}
-		} );
-
-		// We assume that any existing aria-describedby attribute means
-		// that the dialog content is marked up properly
-		// otherwise we brute force the content as the description
-		if ( !this.element.find( "[aria-describedby]" ).length ) {
-			this.uiDialog.attr( {
-				"aria-describedby": this.element.uniqueId().attr( "id" )
-			} );
-		}
-	},
-
-	_createTitlebar: function() {
-		var uiDialogTitle;
-
-		this.uiDialogTitlebar = $( "<div>" );
-		this._addClass( this.uiDialogTitlebar,
-			"ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
-		this._on( this.uiDialogTitlebar, {
-			mousedown: function( event ) {
-
-				// Don't prevent click on close button (#8838)
-				// Focusing a dialog that is partially scrolled out of view
-				// causes the browser to scroll it into view, preventing the click event
-				if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
-
-					// Dialog isn't getting focus when dragging (#8063)
-					this.uiDialog.trigger( "focus" );
-				}
-			}
-		} );
-
-		// Support: IE
-		// Use type="button" to prevent enter keypresses in textboxes from closing the
-		// dialog in IE (#9312)
-		this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
-			.button( {
-				label: $( "<a>" ).text( this.options.closeText ).html(),
-				icon: "ui-icon-closethick",
-				showLabel: false
-			} )
-			.appendTo( this.uiDialogTitlebar );
-
-		this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
-		this._on( this.uiDialogTitlebarClose, {
-			click: function( event ) {
-				event.preventDefault();
-				this.close( event );
-			}
-		} );
-
-		uiDialogTitle = $( "<span>" ).uniqueId().prependTo( this.uiDialogTitlebar );
-		this._addClass( uiDialogTitle, "ui-dialog-title" );
-		this._title( uiDialogTitle );
-
-		this.uiDialogTitlebar.prependTo( this.uiDialog );
-
-		this.uiDialog.attr( {
-			"aria-labelledby": uiDialogTitle.attr( "id" )
-		} );
-	},
-
-	_title: function( title ) {
-		if ( this.options.title ) {
-			title.text( this.options.title );
-		} else {
-			title.html( "&#160;" );
-		}
-	},
-
-	_createButtonPane: function() {
-		this.uiDialogButtonPane = $( "<div>" );
-		this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
-			"ui-widget-content ui-helper-clearfix" );
-
-		this.uiButtonSet = $( "<div>" )
-			.appendTo( this.uiDialogButtonPane );
-		this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
-
-		this._createButtons();
-	},
-
-	_createButtons: function() {
-		var that = this,
-			buttons = this.options.buttons;
-
-		// If we already have a button pane, remove it
-		this.uiDialogButtonPane.remove();
-		this.uiButtonSet.empty();
-
-		if ( $.isEmptyObject( buttons ) || ( $.isArray( buttons ) && !buttons.length ) ) {
-			this._removeClass( this.uiDialog, "ui-dialog-buttons" );
-			return;
-		}
-
-		$.each( buttons, function( name, props ) {
-			var click, buttonOptions;
-			props = $.isFunction( props ) ?
-				{ click: props, text: name } :
-				props;
-
-			// Default to a non-submitting button
-			props = $.extend( { type: "button" }, props );
-
-			// Change the context for the click callback to be the main element
-			click = props.click;
-			buttonOptions = {
-				icon: props.icon,
-				iconPosition: props.iconPosition,
-				showLabel: props.showLabel
-			};
-
-			delete props.click;
-			delete props.icon;
-			delete props.iconPosition;
-			delete props.showLabel;
-
-			$( "<button></button>", props )
-				.button( buttonOptions )
-				.appendTo( that.uiButtonSet )
-				.on( "click", function() {
-					click.apply( that.element[ 0 ], arguments );
-				} );
-		} );
-		this._addClass( this.uiDialog, "ui-dialog-buttons" );
-		this.uiDialogButtonPane.appendTo( this.uiDialog );
-	},
-
-	_makeDraggable: function() {
-		var that = this,
-			options = this.options;
-
-		function filteredUi( ui ) {
-			return {
-				position: ui.position,
-				offset: ui.offset
-			};
-		}
-
-		this.uiDialog.draggable( {
-			cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
-			handle: ".ui-dialog-titlebar",
-			containment: "document",
-			start: function( event, ui ) {
-				that._addClass( $( this ), "ui-dialog-dragging" );
-				that._blockFrames();
-				that._trigger( "dragStart", event, filteredUi( ui ) );
-			},
-			drag: function( event, ui ) {
-				that._trigger( "drag", event, filteredUi( ui ) );
-			},
-			stop: function( event, ui ) {
-				var left = ui.offset.left - that.document.scrollLeft(),
-					top = ui.offset.top - that.document.scrollTop();
-
-				options.position = {
-					my: "left top",
-					at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
-						"top" + ( top >= 0 ? "+" : "" ) + top,
-					of: that.window
-				};
-				that._removeClass( $( this ), "ui-dialog-dragging" );
-				that._unblockFrames();
-				that._trigger( "dragStop", event, filteredUi( ui ) );
-			}
-		} );
-	},
-
-	_makeResizable: function() {
-		var that = this,
-			options = this.options,
-			handles = options.resizable,
-
-			// .ui-resizable has position: relative defined in the stylesheet
-			// but dialogs have to use absolute or fixed positioning
-			position = this.uiDialog.css( "position" ),
-			resizeHandles = typeof handles === "string" ?
-				handles :
-				"n,e,s,w,se,sw,ne,nw";
-
-		function filteredUi( ui ) {
-			return {
-				originalPosition: ui.originalPosition,
-				originalSize: ui.originalSize,
-				position: ui.position,
-				size: ui.size
-			};
-		}
-
-		this.uiDialog.resizable( {
-			cancel: ".ui-dialog-content",
-			containment: "document",
-			alsoResize: this.element,
-			maxWidth: options.maxWidth,
-			maxHeight: options.maxHeight,
-			minWidth: options.minWidth,
-			minHeight: this._minHeight(),
-			handles: resizeHandles,
-			start: function( event, ui ) {
-				that._addClass( $( this ), "ui-dialog-resizing" );
-				that._blockFrames();
-				that._trigger( "resizeStart", event, filteredUi( ui ) );
-			},
-			resize: function( event, ui ) {
-				that._trigger( "resize", event, filteredUi( ui ) );
-			},
-			stop: function( event, ui ) {
-				var offset = that.uiDialog.offset(),
-					left = offset.left - that.document.scrollLeft(),
-					top = offset.top - that.document.scrollTop();
-
-				options.height = that.uiDialog.height();
-				options.width = that.uiDialog.width();
-				options.position = {
-					my: "left top",
-					at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
-						"top" + ( top >= 0 ? "+" : "" ) + top,
-					of: that.window
-				};
-				that._removeClass( $( this ), "ui-dialog-resizing" );
-				that._unblockFrames();
-				that._trigger( "resizeStop", event, filteredUi( ui ) );
-			}
-		} )
-			.css( "position", position );
-	},
-
-	_trackFocus: function() {
-		this._on( this.widget(), {
-			focusin: function( event ) {
-				this._makeFocusTarget();
-				this._focusedElement = $( event.target );
-			}
-		} );
-	},
-
-	_makeFocusTarget: function() {
-		this._untrackInstance();
-		this._trackingInstances().unshift( this );
-	},
-
-	_untrackInstance: function() {
-		var instances = this._trackingInstances(),
-			exists = $.inArray( this, instances );
-		if ( exists !== -1 ) {
-			instances.splice( exists, 1 );
-		}
-	},
-
-	_trackingInstances: function() {
-		var instances = this.document.data( "ui-dialog-instances" );
-		if ( !instances ) {
-			instances = [];
-			this.document.data( "ui-dialog-instances", instances );
-		}
-		return instances;
-	},
-
-	_minHeight: function() {
-		var options = this.options;
-
-		return options.height === "auto" ?
-			options.minHeight :
-			Math.min( options.minHeight, options.height );
-	},
-
-	_position: function() {
-
-		// Need to show the dialog to get the actual offset in the position plugin
-		var isVisible = this.uiDialog.is( ":visible" );
-		if ( !isVisible ) {
-			this.uiDialog.show();
-		}
-		this.uiDialog.position( this.options.position );
-		if ( !isVisible ) {
-			this.uiDialog.hide();
-		}
-	},
-
-	_setOptions: function( options ) {
-		var that = this,
-			resize = false,
-			resizableOptions = {};
-
-		$.each( options, function( key, value ) {
-			that._setOption( key, value );
-
-			if ( key in that.sizeRelatedOptions ) {
-				resize = true;
-			}
-			if ( key in that.resizableRelatedOptions ) {
-				resizableOptions[ key ] = value;
-			}
-		} );
-
-		if ( resize ) {
-			this._size();
-			this._position();
-		}
-		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
-			this.uiDialog.resizable( "option", resizableOptions );
-		}
-	},
-
-	_setOption: function( key, value ) {
-		var isDraggable, isResizable,
-			uiDialog = this.uiDialog;
-
-		if ( key === "disabled" ) {
-			return;
-		}
-
-		this._super( key, value );
-
-		if ( key === "appendTo" ) {
-			this.uiDialog.appendTo( this._appendTo() );
-		}
-
-		if ( key === "buttons" ) {
-			this._createButtons();
-		}
-
-		if ( key === "closeText" ) {
-			this.uiDialogTitlebarClose.button( {
-
-				// Ensure that we always pass a string
-				label: $( "<a>" ).text( "" + this.options.closeText ).html()
-			} );
-		}
-
-		if ( key === "draggable" ) {
-			isDraggable = uiDialog.is( ":data(ui-draggable)" );
-			if ( isDraggable && !value ) {
-				uiDialog.draggable( "destroy" );
-			}
-
-			if ( !isDraggable && value ) {
-				this._makeDraggable();
-			}
-		}
-
-		if ( key === "position" ) {
-			this._position();
-		}
-
-		if ( key === "resizable" ) {
-
-			// currently resizable, becoming non-resizable
-			isResizable = uiDialog.is( ":data(ui-resizable)" );
-			if ( isResizable && !value ) {
-				uiDialog.resizable( "destroy" );
-			}
-
-			// Currently resizable, changing handles
-			if ( isResizable && typeof value === "string" ) {
-				uiDialog.resizable( "option", "handles", value );
-			}
-
-			// Currently non-resizable, becoming resizable
-			if ( !isResizable && value !== false ) {
-				this._makeResizable();
-			}
-		}
-
-		if ( key === "title" ) {
-			this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
-		}
-	},
-
-	_size: function() {
-
-		// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
-		// divs will both have width and height set, so we need to reset them
-		var nonContentHeight, minContentHeight, maxContentHeight,
-			options = this.options;
-
-		// Reset content sizing
-		this.element.show().css( {
-			width: "auto",
-			minHeight: 0,
-			maxHeight: "none",
-			height: 0
-		} );
-
-		if ( options.minWidth > options.width ) {
-			options.width = options.minWidth;
-		}
-
-		// Reset wrapper sizing
-		// determine the height of all the non-content elements
-		nonContentHeight = this.uiDialog.css( {
-			height: "auto",
-			width: options.width
-		} )
-			.outerHeight();
-		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
-		maxContentHeight = typeof options.maxHeight === "number" ?
-			Math.max( 0, options.maxHeight - nonContentHeight ) :
-			"none";
-
-		if ( options.height === "auto" ) {
-			this.element.css( {
-				minHeight: minContentHeight,
-				maxHeight: maxContentHeight,
-				height: "auto"
-			} );
-		} else {
-			this.element.height( Math.max( 0, options.height - nonContentHeight ) );
-		}
-
-		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
-			this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
-		}
-	},
-
-	_blockFrames: function() {
-		this.iframeBlocks = this.document.find( "iframe" ).map( function() {
-			var iframe = $( this );
-
-			return $( "<div>" )
-				.css( {
-					position: "absolute",
-					width: iframe.outerWidth(),
-					height: iframe.outerHeight()
-				} )
-				.appendTo( iframe.parent() )
-				.offset( iframe.offset() )[ 0 ];
-		} );
-	},
-
-	_unblockFrames: function() {
-		if ( this.iframeBlocks ) {
-			this.iframeBlocks.remove();
-			delete this.iframeBlocks;
-		}
-	},
-
-	_allowInteraction: function( event ) {
-		if ( $( event.target ).closest( ".ui-dialog" ).length ) {
-			return true;
-		}
-
-		// TODO: Remove hack when datepicker implements
-		// the .ui-front logic (#8989)
-		return !!$( event.target ).closest( ".ui-datepicker" ).length;
-	},
-
-	_createOverlay: function() {
-		if ( !this.options.modal ) {
-			return;
-		}
-
-		// We use a delay in case the overlay is created from an
-		// event that we're going to be cancelling (#2804)
-		var isOpening = true;
-		this._delay( function() {
-			isOpening = false;
-		} );
-
-		if ( !this.document.data( "ui-dialog-overlays" ) ) {
-
-			// Prevent use of anchors and inputs
-			// Using _on() for an event handler shared across many instances is
-			// safe because the dialogs stack and must be closed in reverse order
-			this._on( this.document, {
-				focusin: function( event ) {
-					if ( isOpening ) {
-						return;
-					}
-
-					if ( !this._allowInteraction( event ) ) {
-						event.preventDefault();
-						this._trackingInstances()[ 0 ]._focusTabbable();
-					}
-				}
-			} );
-		}
-
-		this.overlay = $( "<div>" )
-			.appendTo( this._appendTo() );
-
-		this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
-		this._on( this.overlay, {
-			mousedown: "_keepFocus"
-		} );
-		this.document.data( "ui-dialog-overlays",
-			( this.document.data( "ui-dialog-overlays" ) || 0 ) + 1 );
-	},
-
-	_destroyOverlay: function() {
-		if ( !this.options.modal ) {
-			return;
-		}
-
-		if ( this.overlay ) {
-			var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
-
-			if ( !overlays ) {
-				this._off( this.document, "focusin" );
-				this.document.removeData( "ui-dialog-overlays" );
-			} else {
-				this.document.data( "ui-dialog-overlays", overlays );
-			}
-
-			this.overlay.remove();
-			this.overlay = null;
-		}
-	}
-} );
-
-// DEPRECATED
-// TODO: switch return back to widget declaration at top of file when this is removed
-if ( $.uiBackCompat !== false ) {
-
-	// Backcompat for dialogClass option
-	$.widget( "ui.dialog", $.ui.dialog, {
-		options: {
-			dialogClass: ""
-		},
-		_createWrapper: function() {
-			this._super();
-			this.uiDialog.addClass( this.options.dialogClass );
-		},
-		_setOption: function( key, value ) {
-			if ( key === "dialogClass" ) {
-				this.uiDialog
-					.removeClass( this.options.dialogClass )
-					.addClass( value );
-			}
-			this._superApply( arguments );
-		}
-	} );
-}
-
-var widgetsDialog = $.ui.dialog;
-
-
-/*!
- * jQuery UI Droppable 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Droppable
-//>>group: Interactions
-//>>description: Enables drop targets for draggable elements.
-//>>docs: http://api.jqueryui.com/droppable/
-//>>demos: http://jqueryui.com/droppable/
-
-
-
-$.widget( "ui.droppable", {
-	version: "1.12.0",
-	widgetEventPrefix: "drop",
-	options: {
-		accept: "*",
-		addClasses: true,
-		greedy: false,
-		scope: "default",
-		tolerance: "intersect",
-
-		// Callbacks
-		activate: null,
-		deactivate: null,
-		drop: null,
-		out: null,
-		over: null
-	},
-	_create: function() {
-
-		var proportions,
-			o = this.options,
-			accept = o.accept;
-
-		this.isover = false;
-		this.isout = true;
-
-		this.accept = $.isFunction( accept ) ? accept : function( d ) {
-			return d.is( accept );
-		};
-
-		this.proportions = function( /* valueToWrite */ ) {
-			if ( arguments.length ) {
-
-				// Store the droppable's proportions
-				proportions = arguments[ 0 ];
-			} else {
-
-				// Retrieve or derive the droppable's proportions
-				return proportions ?
-					proportions :
-					proportions = {
-						width: this.element[ 0 ].offsetWidth,
-						height: this.element[ 0 ].offsetHeight
-					};
-			}
-		};
-
-		this._addToManager( o.scope );
-
-		o.addClasses && this._addClass( "ui-droppable" );
-
-	},
-
-	_addToManager: function( scope ) {
-
-		// Add the reference and positions to the manager
-		$.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];
-		$.ui.ddmanager.droppables[ scope ].push( this );
-	},
-
-	_splice: function( drop ) {
-		var i = 0;
-		for ( ; i < drop.length; i++ ) {
-			if ( drop[ i ] === this ) {
-				drop.splice( i, 1 );
-			}
-		}
-	},
-
-	_destroy: function() {
-		var drop = $.ui.ddmanager.droppables[ this.options.scope ];
-
-		this._splice( drop );
-	},
-
-	_setOption: function( key, value ) {
-
-		if ( key === "accept" ) {
-			this.accept = $.isFunction( value ) ? value : function( d ) {
-				return d.is( value );
-			};
-		} else if ( key === "scope" ) {
-			var drop = $.ui.ddmanager.droppables[ this.options.scope ];
-
-			this._splice( drop );
-			this._addToManager( value );
-		}
-
-		this._super( key, value );
-	},
-
-	_activate: function( event ) {
-		var draggable = $.ui.ddmanager.current;
-
-		this._addActiveClass();
-		if ( draggable ) {
-			this._trigger( "activate", event, this.ui( draggable ) );
-		}
-	},
-
-	_deactivate: function( event ) {
-		var draggable = $.ui.ddmanager.current;
-
-		this._removeActiveClass();
-		if ( draggable ) {
-			this._trigger( "deactivate", event, this.ui( draggable ) );
-		}
-	},
-
-	_over: function( event ) {
-
-		var draggable = $.ui.ddmanager.current;
-
-		// Bail if draggable and droppable are same element
-		if ( !draggable || ( draggable.currentItem ||
-				draggable.element )[ 0 ] === this.element[ 0 ] ) {
-			return;
-		}
-
-		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||
-				draggable.element ) ) ) {
-			this._addHoverClass();
-			this._trigger( "over", event, this.ui( draggable ) );
-		}
-
-	},
-
-	_out: function( event ) {
-
-		var draggable = $.ui.ddmanager.current;
-
-		// Bail if draggable and droppable are same element
-		if ( !draggable || ( draggable.currentItem ||
-				draggable.element )[ 0 ] === this.element[ 0 ] ) {
-			return;
-		}
-
-		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||
-				draggable.element ) ) ) {
-			this._removeHoverClass();
-			this._trigger( "out", event, this.ui( draggable ) );
-		}
-
-	},
-
-	_drop: function( event, custom ) {
-
-		var draggable = custom || $.ui.ddmanager.current,
-			childrenIntersection = false;
-
-		// Bail if draggable and droppable are same element
-		if ( !draggable || ( draggable.currentItem ||
-				draggable.element )[ 0 ] === this.element[ 0 ] ) {
-			return false;
-		}
-
-		this.element
-			.find( ":data(ui-droppable)" )
-			.not( ".ui-draggable-dragging" )
-			.each( function() {
-				var inst = $( this ).droppable( "instance" );
-				if (
-					inst.options.greedy &&
-					!inst.options.disabled &&
-					inst.options.scope === draggable.options.scope &&
-					inst.accept.call(
-						inst.element[ 0 ], ( draggable.currentItem || draggable.element )
-					) &&
-					intersect(
-						draggable,
-						$.extend( inst, { offset: inst.element.offset() } ),
-						inst.options.tolerance, event
-					)
-				) {
-					childrenIntersection = true;
-					return false; }
-			} );
-		if ( childrenIntersection ) {
-			return false;
-		}
-
-		if ( this.accept.call( this.element[ 0 ],
-				( draggable.currentItem || draggable.element ) ) ) {
-			this._removeActiveClass();
-			this._removeHoverClass();
-
-			this._trigger( "drop", event, this.ui( draggable ) );
-			return this.element;
-		}
-
-		return false;
-
-	},
-
-	ui: function( c ) {
-		return {
-			draggable: ( c.currentItem || c.element ),
-			helper: c.helper,
-			position: c.position,
-			offset: c.positionAbs
-		};
-	},
-
-	// Extension points just to make backcompat sane and avoid duplicating logic
-	// TODO: Remove in 1.13 along with call to it below
-	_addHoverClass: function() {
-		this._addClass( "ui-droppable-hover" );
-	},
-
-	_removeHoverClass: function() {
-		this._removeClass( "ui-droppable-hover" );
-	},
-
-	_addActiveClass: function() {
-		this._addClass( "ui-droppable-active" );
-	},
-
-	_removeActiveClass: function() {
-		this._removeClass( "ui-droppable-active" );
-	}
-} );
-
-var intersect = $.ui.intersect = ( function() {
-	function isOverAxis( x, reference, size ) {
-		return ( x >= reference ) && ( x < ( reference + size ) );
-	}
-
-	return function( draggable, droppable, toleranceMode, event ) {
-
-		if ( !droppable.offset ) {
-			return false;
-		}
-
-		var x1 = ( draggable.positionAbs ||
-				draggable.position.absolute ).left + draggable.margins.left,
-			y1 = ( draggable.positionAbs ||
-				draggable.position.absolute ).top + draggable.margins.top,
-			x2 = x1 + draggable.helperProportions.width,
-			y2 = y1 + draggable.helperProportions.height,
-			l = droppable.offset.left,
-			t = droppable.offset.top,
-			r = l + droppable.proportions().width,
-			b = t + droppable.proportions().height;
-
-		switch ( toleranceMode ) {
-		case "fit":
-			return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b );
-		case "intersect":
-			return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half
-				x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half
-				t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half
-				y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half
-		case "pointer":
-			return isOverAxis( event.pageY, t, droppable.proportions().height ) &&
-				isOverAxis( event.pageX, l, droppable.proportions().width );
-		case "touch":
-			return (
-				( y1 >= t && y1 <= b ) || // Top edge touching
-				( y2 >= t && y2 <= b ) || // Bottom edge touching
-				( y1 < t && y2 > b ) // Surrounded vertically
-			) && (
-				( x1 >= l && x1 <= r ) || // Left edge touching
-				( x2 >= l && x2 <= r ) || // Right edge touching
-				( x1 < l && x2 > r ) // Surrounded horizontally
-			);
-		default:
-			return false;
-		}
-	};
-} )();
-
-/*
-	This manager tracks offsets of draggables and droppables
-*/
-$.ui.ddmanager = {
-	current: null,
-	droppables: { "default": [] },
-	prepareOffsets: function( t, event ) {
-
-		var i, j,
-			m = $.ui.ddmanager.droppables[ t.options.scope ] || [],
-			type = event ? event.type : null, // workaround for #2317
-			list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack();
-
-		droppablesLoop: for ( i = 0; i < m.length; i++ ) {
-
-			// No disabled and non-accepted
-			if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ],
-					( t.currentItem || t.element ) ) ) ) {
-				continue;
-			}
-
-			// Filter out elements in the current dragged item
-			for ( j = 0; j < list.length; j++ ) {
-				if ( list[ j ] === m[ i ].element[ 0 ] ) {
-					m[ i ].proportions().height = 0;
-					continue droppablesLoop;
-				}
-			}
-
-			m[ i ].visible = m[ i ].element.css( "display" ) !== "none";
-			if ( !m[ i ].visible ) {
-				continue;
-			}
-
-			// Activate the droppable if used directly from draggables
-			if ( type === "mousedown" ) {
-				m[ i ]._activate.call( m[ i ], event );
-			}
-
-			m[ i ].offset = m[ i ].element.offset();
-			m[ i ].proportions( {
-				width: m[ i ].element[ 0 ].offsetWidth,
-				height: m[ i ].element[ 0 ].offsetHeight
-			} );
-
-		}
-
-	},
-	drop: function( draggable, event ) {
-
-		var dropped = false;
-
-		// Create a copy of the droppables in case the list changes during the drop (#9116)
-		$.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() {
-
-			if ( !this.options ) {
-				return;
-			}
-			if ( !this.options.disabled && this.visible &&
-					intersect( draggable, this, this.options.tolerance, event ) ) {
-				dropped = this._drop.call( this, event ) || dropped;
-			}
-
-			if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ],
-					( draggable.currentItem || draggable.element ) ) ) {
-				this.isout = true;
-				this.isover = false;
-				this._deactivate.call( this, event );
-			}
-
-		} );
-		return dropped;
-
-	},
-	dragStart: function( draggable, event ) {
-
-		// Listen for scrolling so that if the dragging causes scrolling the position of the
-		// droppables can be recalculated (see #5003)
-		draggable.element.parentsUntil( "body" ).on( "scroll.droppable", function() {
-			if ( !draggable.options.refreshPositions ) {
-				$.ui.ddmanager.prepareOffsets( draggable, event );
-			}
-		} );
-	},
-	drag: function( draggable, event ) {
-
-		// If you have a highly dynamic page, you might try this option. It renders positions
-		// every time you move the mouse.
-		if ( draggable.options.refreshPositions ) {
-			$.ui.ddmanager.prepareOffsets( draggable, event );
-		}
-
-		// Run through all droppables and check their positions based on specific tolerance options
-		$.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() {
-
-			if ( this.options.disabled || this.greedyChild || !this.visible ) {
-				return;
-			}
-
-			var parentInstance, scope, parent,
-				intersects = intersect( draggable, this, this.options.tolerance, event ),
-				c = !intersects && this.isover ?
-					"isout" :
-					( intersects && !this.isover ? "isover" : null );
-			if ( !c ) {
-				return;
-			}
-
-			if ( this.options.greedy ) {
-
-				// find droppable parents with same scope
-				scope = this.options.scope;
-				parent = this.element.parents( ":data(ui-droppable)" ).filter( function() {
-					return $( this ).droppable( "instance" ).options.scope === scope;
-				} );
-
-				if ( parent.length ) {
-					parentInstance = $( parent[ 0 ] ).droppable( "instance" );
-					parentInstance.greedyChild = ( c === "isover" );
-				}
-			}
-
-			// We just moved into a greedy child
-			if ( parentInstance && c === "isover" ) {
-				parentInstance.isover = false;
-				parentInstance.isout = true;
-				parentInstance._out.call( parentInstance, event );
-			}
-
-			this[ c ] = true;
-			this[ c === "isout" ? "isover" : "isout" ] = false;
-			this[ c === "isover" ? "_over" : "_out" ].call( this, event );
-
-			// We just moved out of a greedy child
-			if ( parentInstance && c === "isout" ) {
-				parentInstance.isout = false;
-				parentInstance.isover = true;
-				parentInstance._over.call( parentInstance, event );
-			}
-		} );
-
-	},
-	dragStop: function( draggable, event ) {
-		draggable.element.parentsUntil( "body" ).off( "scroll.droppable" );
-
-		// Call prepareOffsets one final time since IE does not fire return scroll events when
-		// overflow was caused by drag (see #5003)
-		if ( !draggable.options.refreshPositions ) {
-			$.ui.ddmanager.prepareOffsets( draggable, event );
-		}
-	}
-};
-
-// DEPRECATED
-// TODO: switch return back to widget declaration at top of file when this is removed
-if ( $.uiBackCompat !== false ) {
-
-	// Backcompat for activeClass and hoverClass options
-	$.widget( "ui.droppable", $.ui.droppable, {
-		options: {
-			hoverClass: false,
-			activeClass: false
-		},
-		_addActiveClass: function() {
-			this._super();
-			if ( this.options.activeClass ) {
-				this.element.addClass( this.options.activeClass );
-			}
-		},
-		_removeActiveClass: function() {
-			this._super();
-			if ( this.options.activeClass ) {
-				this.element.removeClass( this.options.activeClass );
-			}
-		},
-		_addHoverClass: function() {
-			this._super();
-			if ( this.options.hoverClass ) {
-				this.element.addClass( this.options.hoverClass );
-			}
-		},
-		_removeHoverClass: function() {
-			this._super();
-			if ( this.options.hoverClass ) {
-				this.element.removeClass( this.options.hoverClass );
-			}
-		}
-	} );
-}
-
-var widgetsDroppable = $.ui.droppable;
-
-
-/*!
- * jQuery UI Progressbar 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Progressbar
-//>>group: Widgets
-// jscs:disable maximumLineLength
-//>>description: Displays a status indicator for loading state, standard percentage, and other progress indicators.
-// jscs:enable maximumLineLength
-//>>docs: http://api.jqueryui.com/progressbar/
-//>>demos: http://jqueryui.com/progressbar/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/progressbar.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-var widgetsProgressbar = $.widget( "ui.progressbar", {
-	version: "1.12.0",
-	options: {
-		classes: {
-			"ui-progressbar": "ui-corner-all",
-			"ui-progressbar-value": "ui-corner-left",
-			"ui-progressbar-complete": "ui-corner-right"
-		},
-		max: 100,
-		value: 0,
-
-		change: null,
-		complete: null
-	},
-
-	min: 0,
-
-	_create: function() {
-
-		// Constrain initial value
-		this.oldValue = this.options.value = this._constrainedValue();
-
-		this.element.attr( {
-
-			// Only set static values; aria-valuenow and aria-valuemax are
-			// set inside _refreshValue()
-			role: "progressbar",
-			"aria-valuemin": this.min
-		} );
-		this._addClass( "ui-progressbar", "ui-widget ui-widget-content" );
-
-		this.valueDiv = $( "<div>" ).appendTo( this.element );
-		this._addClass( this.valueDiv, "ui-progressbar-value", "ui-widget-header" );
-		this._refreshValue();
-	},
-
-	_destroy: function() {
-		this.element.removeAttr( "role aria-valuemin aria-valuemax aria-valuenow" );
-
-		this.valueDiv.remove();
-	},
-
-	value: function( newValue ) {
-		if ( newValue === undefined ) {
-			return this.options.value;
-		}
-
-		this.options.value = this._constrainedValue( newValue );
-		this._refreshValue();
-	},
-
-	_constrainedValue: function( newValue ) {
-		if ( newValue === undefined ) {
-			newValue = this.options.value;
-		}
-
-		this.indeterminate = newValue === false;
-
-		// Sanitize value
-		if ( typeof newValue !== "number" ) {
-			newValue = 0;
-		}
-
-		return this.indeterminate ? false :
-			Math.min( this.options.max, Math.max( this.min, newValue ) );
-	},
-
-	_setOptions: function( options ) {
-
-		// Ensure "value" option is set after other values (like max)
-		var value = options.value;
-		delete options.value;
-
-		this._super( options );
-
-		this.options.value = this._constrainedValue( value );
-		this._refreshValue();
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "max" ) {
-
-			// Don't allow a max less than min
-			value = Math.max( this.min, value );
-		}
-		this._super( key, value );
-	},
-
-	_setOptionDisabled: function( value ) {
-		this._super( value );
-
-		this.element.attr( "aria-disabled", value );
-		this._toggleClass( null, "ui-state-disabled", !!value );
-	},
-
-	_percentage: function() {
-		return this.indeterminate ?
-			100 :
-			100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
-	},
-
-	_refreshValue: function() {
-		var value = this.options.value,
-			percentage = this._percentage();
-
-		this.valueDiv
-			.toggle( this.indeterminate || value > this.min )
-			.width( percentage.toFixed( 0 ) + "%" );
-
-		this
-			._toggleClass( this.valueDiv, "ui-progressbar-complete", null,
-				value === this.options.max )
-			._toggleClass( "ui-progressbar-indeterminate", null, this.indeterminate );
-
-		if ( this.indeterminate ) {
-			this.element.removeAttr( "aria-valuenow" );
-			if ( !this.overlayDiv ) {
-				this.overlayDiv = $( "<div>" ).appendTo( this.valueDiv );
-				this._addClass( this.overlayDiv, "ui-progressbar-overlay" );
-			}
-		} else {
-			this.element.attr( {
-				"aria-valuemax": this.options.max,
-				"aria-valuenow": value
-			} );
-			if ( this.overlayDiv ) {
-				this.overlayDiv.remove();
-				this.overlayDiv = null;
-			}
-		}
-
-		if ( this.oldValue !== value ) {
-			this.oldValue = value;
-			this._trigger( "change" );
-		}
-		if ( value === this.options.max ) {
-			this._trigger( "complete" );
-		}
-	}
-} );
-
-
-/*!
- * jQuery UI Selectable 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Selectable
-//>>group: Interactions
-//>>description: Allows groups of elements to be selected with the mouse.
-//>>docs: http://api.jqueryui.com/selectable/
-//>>demos: http://jqueryui.com/selectable/
-//>>css.structure: ../../themes/base/selectable.css
-
-
-
-var widgetsSelectable = $.widget( "ui.selectable", $.ui.mouse, {
-	version: "1.12.0",
-	options: {
-		appendTo: "body",
-		autoRefresh: true,
-		distance: 0,
-		filter: "*",
-		tolerance: "touch",
-
-		// Callbacks
-		selected: null,
-		selecting: null,
-		start: null,
-		stop: null,
-		unselected: null,
-		unselecting: null
-	},
-	_create: function() {
-		var that = this;
-
-		this._addClass( "ui-selectable" );
-
-		this.dragged = false;
-
-		// Cache selectee children based on filter
-		this.refresh = function() {
-			that.elementPos = $( that.element[ 0 ] ).offset();
-			that.selectees = $( that.options.filter, that.element[ 0 ] );
-			that._addClass( that.selectees, "ui-selectee" );
-			that.selectees.each( function() {
-				var $this = $( this ),
-					selecteeOffset = $this.offset(),
-					pos = {
-						left: selecteeOffset.left - that.elementPos.left,
-						top: selecteeOffset.top - that.elementPos.top
-					};
-				$.data( this, "selectable-item", {
-					element: this,
-					$element: $this,
-					left: pos.left,
-					top: pos.top,
-					right: pos.left + $this.outerWidth(),
-					bottom: pos.top + $this.outerHeight(),
-					startselected: false,
-					selected: $this.hasClass( "ui-selected" ),
-					selecting: $this.hasClass( "ui-selecting" ),
-					unselecting: $this.hasClass( "ui-unselecting" )
-				} );
-			} );
-		};
-		this.refresh();
-
-		this._mouseInit();
-
-		this.helper = $( "<div>" );
-		this._addClass( this.helper, "ui-selectable-helper" );
-	},
-
-	_destroy: function() {
-		this.selectees.removeData( "selectable-item" );
-		this._mouseDestroy();
-	},
-
-	_mouseStart: function( event ) {
-		var that = this,
-			options = this.options;
-
-		this.opos = [ event.pageX, event.pageY ];
-		this.elementPos = $( this.element[ 0 ] ).offset();
-
-		if ( this.options.disabled ) {
-			return;
-		}
-
-		this.selectees = $( options.filter, this.element[ 0 ] );
-
-		this._trigger( "start", event );
-
-		$( options.appendTo ).append( this.helper );
-
-		// position helper (lasso)
-		this.helper.css( {
-			"left": event.pageX,
-			"top": event.pageY,
-			"width": 0,
-			"height": 0
-		} );
-
-		if ( options.autoRefresh ) {
-			this.refresh();
-		}
-
-		this.selectees.filter( ".ui-selected" ).each( function() {
-			var selectee = $.data( this, "selectable-item" );
-			selectee.startselected = true;
-			if ( !event.metaKey && !event.ctrlKey ) {
-				that._removeClass( selectee.$element, "ui-selected" );
-				selectee.selected = false;
-				that._addClass( selectee.$element, "ui-unselecting" );
-				selectee.unselecting = true;
-
-				// selectable UNSELECTING callback
-				that._trigger( "unselecting", event, {
-					unselecting: selectee.element
-				} );
-			}
-		} );
-
-		$( event.target ).parents().addBack().each( function() {
-			var doSelect,
-				selectee = $.data( this, "selectable-item" );
-			if ( selectee ) {
-				doSelect = ( !event.metaKey && !event.ctrlKey ) ||
-					!selectee.$element.hasClass( "ui-selected" );
-				that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected" )
-					._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting" );
-				selectee.unselecting = !doSelect;
-				selectee.selecting = doSelect;
-				selectee.selected = doSelect;
-
-				// selectable (UN)SELECTING callback
-				if ( doSelect ) {
-					that._trigger( "selecting", event, {
-						selecting: selectee.element
-					} );
-				} else {
-					that._trigger( "unselecting", event, {
-						unselecting: selectee.element
-					} );
-				}
-				return false;
-			}
-		} );
-
-	},
-
-	_mouseDrag: function( event ) {
-
-		this.dragged = true;
-
-		if ( this.options.disabled ) {
-			return;
-		}
-
-		var tmp,
-			that = this,
-			options = this.options,
-			x1 = this.opos[ 0 ],
-			y1 = this.opos[ 1 ],
-			x2 = event.pageX,
-			y2 = event.pageY;
-
-		if ( x1 > x2 ) { tmp = x2; x2 = x1; x1 = tmp; }
-		if ( y1 > y2 ) { tmp = y2; y2 = y1; y1 = tmp; }
-		this.helper.css( { left: x1, top: y1, width: x2 - x1, height: y2 - y1 } );
-
-		this.selectees.each( function() {
-			var selectee = $.data( this, "selectable-item" ),
-				hit = false,
-				offset = {};
-
-			//prevent helper from being selected if appendTo: selectable
-			if ( !selectee || selectee.element === that.element[ 0 ] ) {
-				return;
-			}
-
-			offset.left   = selectee.left   + that.elementPos.left;
-			offset.right  = selectee.right  + that.elementPos.left;
-			offset.top    = selectee.top    + that.elementPos.top;
-			offset.bottom = selectee.bottom + that.elementPos.top;
-
-			if ( options.tolerance === "touch" ) {
-				hit = ( !( offset.left > x2 || offset.right < x1 || offset.top > y2 ||
-                    offset.bottom < y1 ) );
-			} else if ( options.tolerance === "fit" ) {
-				hit = ( offset.left > x1 && offset.right < x2 && offset.top > y1 &&
-                    offset.bottom < y2 );
-			}
-
-			if ( hit ) {
-
-				// SELECT
-				if ( selectee.selected ) {
-					that._removeClass( selectee.$element, "ui-selected" );
-					selectee.selected = false;
-				}
-				if ( selectee.unselecting ) {
-					that._removeClass( selectee.$element, "ui-unselecting" );
-					selectee.unselecting = false;
-				}
-				if ( !selectee.selecting ) {
-					that._addClass( selectee.$element, "ui-selecting" );
-					selectee.selecting = true;
-
-					// selectable SELECTING callback
-					that._trigger( "selecting", event, {
-						selecting: selectee.element
-					} );
-				}
-			} else {
-
-				// UNSELECT
-				if ( selectee.selecting ) {
-					if ( ( event.metaKey || event.ctrlKey ) && selectee.startselected ) {
-						that._removeClass( selectee.$element, "ui-selecting" );
-						selectee.selecting = false;
-						that._addClass( selectee.$element, "ui-selected" );
-						selectee.selected = true;
-					} else {
-						that._removeClass( selectee.$element, "ui-selecting" );
-						selectee.selecting = false;
-						if ( selectee.startselected ) {
-							that._addClass( selectee.$element, "ui-unselecting" );
-							selectee.unselecting = true;
-						}
-
-						// selectable UNSELECTING callback
-						that._trigger( "unselecting", event, {
-							unselecting: selectee.element
-						} );
-					}
-				}
-				if ( selectee.selected ) {
-					if ( !event.metaKey && !event.ctrlKey && !selectee.startselected ) {
-						that._removeClass( selectee.$element, "ui-selected" );
-						selectee.selected = false;
-
-						that._addClass( selectee.$element, "ui-unselecting" );
-						selectee.unselecting = true;
-
-						// selectable UNSELECTING callback
-						that._trigger( "unselecting", event, {
-							unselecting: selectee.element
-						} );
-					}
-				}
-			}
-		} );
-
-		return false;
-	},
-
-	_mouseStop: function( event ) {
-		var that = this;
-
-		this.dragged = false;
-
-		$( ".ui-unselecting", this.element[ 0 ] ).each( function() {
-			var selectee = $.data( this, "selectable-item" );
-			that._removeClass( selectee.$element, "ui-unselecting" );
-			selectee.unselecting = false;
-			selectee.startselected = false;
-			that._trigger( "unselected", event, {
-				unselected: selectee.element
-			} );
-		} );
-		$( ".ui-selecting", this.element[ 0 ] ).each( function() {
-			var selectee = $.data( this, "selectable-item" );
-			that._removeClass( selectee.$element, "ui-selecting" )
-				._addClass( selectee.$element, "ui-selected" );
-			selectee.selecting = false;
-			selectee.selected = true;
-			selectee.startselected = true;
-			that._trigger( "selected", event, {
-				selected: selectee.element
-			} );
-		} );
-		this._trigger( "stop", event );
-
-		this.helper.remove();
-
-		return false;
-	}
-
-} );
-
-
-/*!
- * jQuery UI Selectmenu 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Selectmenu
-//>>group: Widgets
-// jscs:disable maximumLineLength
-//>>description: Duplicates and extends the functionality of a native HTML select element, allowing it to be customizable in behavior and appearance far beyond the limitations of a native select.
-// jscs:enable maximumLineLength
-//>>docs: http://api.jqueryui.com/selectmenu/
-//>>demos: http://jqueryui.com/selectmenu/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/selectmenu.css, ../../themes/base/button.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-var widgetsSelectmenu = $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
-	version: "1.12.0",
-	defaultElement: "<select>",
-	options: {
-		appendTo: null,
-		classes: {
-			"ui-selectmenu-button-open": "ui-corner-top",
-			"ui-selectmenu-button-closed": "ui-corner-all"
-		},
-		disabled: null,
-		icons: {
-			button: "ui-icon-triangle-1-s"
-		},
-		position: {
-			my: "left top",
-			at: "left bottom",
-			collision: "none"
-		},
-		width: false,
-
-		// Callbacks
-		change: null,
-		close: null,
-		focus: null,
-		open: null,
-		select: null
-	},
-
-	_create: function() {
-		var selectmenuId = this.element.uniqueId().attr( "id" );
-		this.ids = {
-			element: selectmenuId,
-			button: selectmenuId + "-button",
-			menu: selectmenuId + "-menu"
-		};
-
-		this._drawButton();
-		this._drawMenu();
-		this._bindFormResetHandler();
-
-		this._rendered = false;
-		this.menuItems = $();
-	},
-
-	_drawButton: function() {
-		var icon,
-			that = this,
-			item = this._parseOption(
-				this.element.find( "option:selected" ),
-				this.element[ 0 ].selectedIndex
-			);
-
-		// Associate existing label with the new button
-		this.labels = this.element.labels().attr( "for", this.ids.button );
-		this._on( this.labels, {
-			click: function( event ) {
-				this.button.focus();
-				event.preventDefault();
-			}
-		} );
-
-		// Hide original select element
-		this.element.hide();
-
-		// Create button
-		this.button = $( "<span>", {
-			tabindex: this.options.disabled ? -1 : 0,
-			id: this.ids.button,
-			role: "combobox",
-			"aria-expanded": "false",
-			"aria-autocomplete": "list",
-			"aria-owns": this.ids.menu,
-			"aria-haspopup": "true",
-			title: this.element.attr( "title" )
-		} )
-			.insertAfter( this.element );
-
-		this._addClass( this.button, "ui-selectmenu-button ui-selectmenu-button-closed",
-			"ui-button ui-widget" );
-
-		icon = $( "<span>" ).appendTo( this.button );
-		this._addClass( icon, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button );
-		this.buttonItem = this._renderButtonItem( item )
-			.appendTo( this.button );
-
-		if ( this.options.width !== false ) {
-			this._resizeButton();
-		}
-
-		this._on( this.button, this._buttonEvents );
-		this.button.one( "focusin", function() {
-
-			// Delay rendering the menu items until the button receives focus.
-			// The menu may have already been rendered via a programmatic open.
-			if ( !that._rendered ) {
-				that._refreshMenu();
-			}
-		} );
-	},
-
-	_drawMenu: function() {
-		var that = this;
-
-		// Create menu
-		this.menu = $( "<ul>", {
-			"aria-hidden": "true",
-			"aria-labelledby": this.ids.button,
-			id: this.ids.menu
-		} );
-
-		// Wrap menu
-		this.menuWrap = $( "<div>" ).append( this.menu );
-		this._addClass( this.menuWrap, "ui-selectmenu-menu", "ui-front" );
-		this.menuWrap.appendTo( this._appendTo() );
-
-		// Initialize menu widget
-		this.menuInstance = this.menu
-			.menu( {
-				classes: {
-					"ui-menu": "ui-corner-bottom"
-				},
-				role: "listbox",
-				select: function( event, ui ) {
-					event.preventDefault();
-
-					// Support: IE8
-					// If the item was selected via a click, the text selection
-					// will be destroyed in IE
-					that._setSelection();
-
-					that._select( ui.item.data( "ui-selectmenu-item" ), event );
-				},
-				focus: function( event, ui ) {
-					var item = ui.item.data( "ui-selectmenu-item" );
-
-					// Prevent inital focus from firing and check if its a newly focused item
-					if ( that.focusIndex != null && item.index !== that.focusIndex ) {
-						that._trigger( "focus", event, { item: item } );
-						if ( !that.isOpen ) {
-							that._select( item, event );
-						}
-					}
-					that.focusIndex = item.index;
-
-					that.button.attr( "aria-activedescendant",
-						that.menuItems.eq( item.index ).attr( "id" ) );
-				}
-			} )
-			.menu( "instance" );
-
-		// Don't close the menu on mouseleave
-		this.menuInstance._off( this.menu, "mouseleave" );
-
-		// Cancel the menu's collapseAll on document click
-		this.menuInstance._closeOnDocumentClick = function() {
-			return false;
-		};
-
-		// Selects often contain empty items, but never contain dividers
-		this.menuInstance._isDivider = function() {
-			return false;
-		};
-	},
-
-	refresh: function() {
-		this._refreshMenu();
-		this.buttonItem.replaceWith(
-			this.buttonItem = this._renderButtonItem(
-
-				// Fall back to an empty object in case there are no options
-				this._getSelectedItem().data( "ui-selectmenu-item" ) || {}
-			)
-		);
-		if ( this.options.width === null ) {
-			this._resizeButton();
-		}
-	},
-
-	_refreshMenu: function() {
-		var item,
-			options = this.element.find( "option" );
-
-		this.menu.empty();
-
-		this._parseOptions( options );
-		this._renderMenu( this.menu, this.items );
-
-		this.menuInstance.refresh();
-		this.menuItems = this.menu.find( "li" )
-			.not( ".ui-selectmenu-optgroup" )
-				.find( ".ui-menu-item-wrapper" );
-
-		this._rendered = true;
-
-		if ( !options.length ) {
-			return;
-		}
-
-		item = this._getSelectedItem();
-
-		// Update the menu to have the correct item focused
-		this.menuInstance.focus( null, item );
-		this._setAria( item.data( "ui-selectmenu-item" ) );
-
-		// Set disabled state
-		this._setOption( "disabled", this.element.prop( "disabled" ) );
-	},
-
-	open: function( event ) {
-		if ( this.options.disabled ) {
-			return;
-		}
-
-		// If this is the first time the menu is being opened, render the items
-		if ( !this._rendered ) {
-			this._refreshMenu();
-		} else {
-
-			// Menu clears focus on close, reset focus to selected item
-			this._removeClass( this.menu.find( ".ui-state-active" ), null, "ui-state-active" );
-			this.menuInstance.focus( null, this._getSelectedItem() );
-		}
-
-		// If there are no options, don't open the menu
-		if ( !this.menuItems.length ) {
-			return;
-		}
-
-		this.isOpen = true;
-		this._toggleAttr();
-		this._resizeMenu();
-		this._position();
-
-		this._on( this.document, this._documentClick );
-
-		this._trigger( "open", event );
-	},
-
-	_position: function() {
-		this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );
-	},
-
-	close: function( event ) {
-		if ( !this.isOpen ) {
-			return;
-		}
-
-		this.isOpen = false;
-		this._toggleAttr();
-
-		this.range = null;
-		this._off( this.document );
-
-		this._trigger( "close", event );
-	},
-
-	widget: function() {
-		return this.button;
-	},
-
-	menuWidget: function() {
-		return this.menu;
-	},
-
-	_renderButtonItem: function( item ) {
-		var buttonItem = $( "<span>" );
-
-		this._setText( buttonItem, item.label );
-		this._addClass( buttonItem, "ui-selectmenu-text" );
-
-		return buttonItem;
-	},
-
-	_renderMenu: function( ul, items ) {
-		var that = this,
-			currentOptgroup = "";
-
-		$.each( items, function( index, item ) {
-			var li;
-
-			if ( item.optgroup !== currentOptgroup ) {
-				li = $( "<li>", {
-					text: item.optgroup
-				} );
-				that._addClass( li, "ui-selectmenu-optgroup", "ui-menu-divider" +
-					( item.element.parent( "optgroup" ).prop( "disabled" ) ?
-						" ui-state-disabled" :
-						"" ) );
-
-				li.appendTo( ul );
-
-				currentOptgroup = item.optgroup;
-			}
-
-			that._renderItemData( ul, item );
-		} );
-	},
-
-	_renderItemData: function( ul, item ) {
-		return this._renderItem( ul, item ).data( "ui-selectmenu-item", item );
-	},
-
-	_renderItem: function( ul, item ) {
-		var li = $( "<li>" ),
-			wrapper = $( "<div>", {
-				title: item.element.attr( "title" )
-			} );
-
-		if ( item.disabled ) {
-			this._addClass( li, null, "ui-state-disabled" );
-		}
-		this._setText( wrapper, item.label );
-
-		return li.append( wrapper ).appendTo( ul );
-	},
-
-	_setText: function( element, value ) {
-		if ( value ) {
-			element.text( value );
-		} else {
-			element.html( "&#160;" );
-		}
-	},
-
-	_move: function( direction, event ) {
-		var item, next,
-			filter = ".ui-menu-item";
-
-		if ( this.isOpen ) {
-			item = this.menuItems.eq( this.focusIndex ).parent( "li" );
-		} else {
-			item = this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
-			filter += ":not(.ui-state-disabled)";
-		}
-
-		if ( direction === "first" || direction === "last" ) {
-			next = item[ direction === "first" ? "prevAll" : "nextAll" ]( filter ).eq( -1 );
-		} else {
-			next = item[ direction + "All" ]( filter ).eq( 0 );
-		}
-
-		if ( next.length ) {
-			this.menuInstance.focus( event, next );
-		}
-	},
-
-	_getSelectedItem: function() {
-		return this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
-	},
-
-	_toggle: function( event ) {
-		this[ this.isOpen ? "close" : "open" ]( event );
-	},
-
-	_setSelection: function() {
-		var selection;
-
-		if ( !this.range ) {
-			return;
-		}
-
-		if ( window.getSelection ) {
-			selection = window.getSelection();
-			selection.removeAllRanges();
-			selection.addRange( this.range );
-
-		// Support: IE8
-		} else {
-			this.range.select();
-		}
-
-		// Support: IE
-		// Setting the text selection kills the button focus in IE, but
-		// restoring the focus doesn't kill the selection.
-		this.button.focus();
-	},
-
-	_documentClick: {
-		mousedown: function( event ) {
-			if ( !this.isOpen ) {
-				return;
-			}
-
-			if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" +
-					$.ui.escapeSelector( this.ids.button ) ).length ) {
-				this.close( event );
-			}
-		}
-	},
-
-	_buttonEvents: {
-
-		// Prevent text selection from being reset when interacting with the selectmenu (#10144)
-		mousedown: function() {
-			var selection;
-
-			if ( window.getSelection ) {
-				selection = window.getSelection();
-				if ( selection.rangeCount ) {
-					this.range = selection.getRangeAt( 0 );
-				}
-
-			// Support: IE8
-			} else {
-				this.range = document.selection.createRange();
-			}
-		},
-
-		click: function( event ) {
-			this._setSelection();
-			this._toggle( event );
-		},
-
-		keydown: function( event ) {
-			var preventDefault = true;
-			switch ( event.keyCode ) {
-			case $.ui.keyCode.TAB:
-			case $.ui.keyCode.ESCAPE:
-				this.close( event );
-				preventDefault = false;
-				break;
-			case $.ui.keyCode.ENTER:
-				if ( this.isOpen ) {
-					this._selectFocusedItem( event );
-				}
-				break;
-			case $.ui.keyCode.UP:
-				if ( event.altKey ) {
-					this._toggle( event );
-				} else {
-					this._move( "prev", event );
-				}
-				break;
-			case $.ui.keyCode.DOWN:
-				if ( event.altKey ) {
-					this._toggle( event );
-				} else {
-					this._move( "next", event );
-				}
-				break;
-			case $.ui.keyCode.SPACE:
-				if ( this.isOpen ) {
-					this._selectFocusedItem( event );
-				} else {
-					this._toggle( event );
-				}
-				break;
-			case $.ui.keyCode.LEFT:
-				this._move( "prev", event );
-				break;
-			case $.ui.keyCode.RIGHT:
-				this._move( "next", event );
-				break;
-			case $.ui.keyCode.HOME:
-			case $.ui.keyCode.PAGE_UP:
-				this._move( "first", event );
-				break;
-			case $.ui.keyCode.END:
-			case $.ui.keyCode.PAGE_DOWN:
-				this._move( "last", event );
-				break;
-			default:
-				this.menu.trigger( event );
-				preventDefault = false;
-			}
-
-			if ( preventDefault ) {
-				event.preventDefault();
-			}
-		}
-	},
-
-	_selectFocusedItem: function( event ) {
-		var item = this.menuItems.eq( this.focusIndex ).parent( "li" );
-		if ( !item.hasClass( "ui-state-disabled" ) ) {
-			this._select( item.data( "ui-selectmenu-item" ), event );
-		}
-	},
-
-	_select: function( item, event ) {
-		var oldIndex = this.element[ 0 ].selectedIndex;
-
-		// Change native select element
-		this.element[ 0 ].selectedIndex = item.index;
-		this.buttonItem.replaceWith( this.buttonItem = this._renderButtonItem( item ) );
-		this._setAria( item );
-		this._trigger( "select", event, { item: item } );
-
-		if ( item.index !== oldIndex ) {
-			this._trigger( "change", event, { item: item } );
-		}
-
-		this.close( event );
-	},
-
-	_setAria: function( item ) {
-		var id = this.menuItems.eq( item.index ).attr( "id" );
-
-		this.button.attr( {
-			"aria-labelledby": id,
-			"aria-activedescendant": id
-		} );
-		this.menu.attr( "aria-activedescendant", id );
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "icons" ) {
-			var icon = this.button.find( "span.ui-icon" );
-			this._removeClass( icon, null, this.options.icons.button )
-				._addClass( icon, null, value.button );
-		}
-
-		this._super( key, value );
-
-		if ( key === "appendTo" ) {
-			this.menuWrap.appendTo( this._appendTo() );
-		}
-
-		if ( key === "width" ) {
-			this._resizeButton();
-		}
-	},
-
-	_setOptionDisabled: function( value ) {
-		this._super( value );
-
-		this.menuInstance.option( "disabled", value );
-		this.button.attr( "aria-disabled", value );
-		this._toggleClass( this.button, null, "ui-state-disabled", value );
-
-		this.element.prop( "disabled", value );
-		if ( value ) {
-			this.button.attr( "tabindex", -1 );
-			this.close();
-		} else {
-			this.button.attr( "tabindex", 0 );
-		}
-	},
-
-	_appendTo: function() {
-		var element = this.options.appendTo;
-
-		if ( element ) {
-			element = element.jquery || element.nodeType ?
-				$( element ) :
-				this.document.find( element ).eq( 0 );
-		}
-
-		if ( !element || !element[ 0 ] ) {
-			element = this.element.closest( ".ui-front, dialog" );
-		}
-
-		if ( !element.length ) {
-			element = this.document[ 0 ].body;
-		}
-
-		return element;
-	},
-
-	_toggleAttr: function() {
-		this.button.attr( "aria-expanded", this.isOpen );
-
-		// We can't use two _toggleClass() calls here, because we need to make sure
-		// we always remove classes first and add them second, otherwise if both classes have the
-		// same theme class, it will be removed after we add it.
-		this._removeClass( this.button, "ui-selectmenu-button-" +
-			( this.isOpen ? "closed" : "open" ) )
-			._addClass( this.button, "ui-selectmenu-button-" +
-				( this.isOpen ? "open" : "closed" ) )
-			._toggleClass( this.menuWrap, "ui-selectmenu-open", null, this.isOpen );
-
-		this.menu.attr( "aria-hidden", !this.isOpen );
-	},
-
-	_resizeButton: function() {
-		var width = this.options.width;
-
-		// For `width: false`, just remove inline style and stop
-		if ( width === false ) {
-			this.button.css( "width", "" );
-			return;
-		}
-
-		// For `width: null`, match the width of the original element
-		if ( width === null ) {
-			width = this.element.show().outerWidth();
-			this.element.hide();
-		}
-
-		this.button.outerWidth( width );
-	},
-
-	_resizeMenu: function() {
-		this.menu.outerWidth( Math.max(
-			this.button.outerWidth(),
-
-			// Support: IE10
-			// IE10 wraps long text (possibly a rounding bug)
-			// so we add 1px to avoid the wrapping
-			this.menu.width( "" ).outerWidth() + 1
-		) );
-	},
-
-	_getCreateOptions: function() {
-		var options = this._super();
-
-		options.disabled = this.element.prop( "disabled" );
-
-		return options;
-	},
-
-	_parseOptions: function( options ) {
-		var that = this,
-			data = [];
-		options.each( function( index, item ) {
-			data.push( that._parseOption( $( item ), index ) );
-		} );
-		this.items = data;
-	},
-
-	_parseOption: function( option, index ) {
-		var optgroup = option.parent( "optgroup" );
-
-		return {
-			element: option,
-			index: index,
-			value: option.val(),
-			label: option.text(),
-			optgroup: optgroup.attr( "label" ) || "",
-			disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" )
-		};
-	},
-
-	_destroy: function() {
-		this._unbindFormResetHandler();
-		this.menuWrap.remove();
-		this.button.remove();
-		this.element.show();
-		this.element.removeUniqueId();
-		this.labels.attr( "for", this.ids.element );
-	}
-} ] );
-
-
-/*!
- * jQuery UI Slider 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Slider
-//>>group: Widgets
-//>>description: Displays a flexible slider with ranges and accessibility via keyboard.
-//>>docs: http://api.jqueryui.com/slider/
-//>>demos: http://jqueryui.com/slider/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/slider.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-var widgetsSlider = $.widget( "ui.slider", $.ui.mouse, {
-	version: "1.12.0",
-	widgetEventPrefix: "slide",
-
-	options: {
-		animate: false,
-		classes: {
-			"ui-slider": "ui-corner-all",
-			"ui-slider-handle": "ui-corner-all",
-
-			// Note: ui-widget-header isn't the most fittingly semantic framework class for this
-			// element, but worked best visually with a variety of themes
-			"ui-slider-range": "ui-corner-all ui-widget-header"
-		},
-		distance: 0,
-		max: 100,
-		min: 0,
-		orientation: "horizontal",
-		range: false,
-		step: 1,
-		value: 0,
-		values: null,
-
-		// Callbacks
-		change: null,
-		slide: null,
-		start: null,
-		stop: null
-	},
-
-	// Number of pages in a slider
-	// (how many times can you page up/down to go through the whole range)
-	numPages: 5,
-
-	_create: function() {
-		this._keySliding = false;
-		this._mouseSliding = false;
-		this._animateOff = true;
-		this._handleIndex = null;
-		this._detectOrientation();
-		this._mouseInit();
-		this._calculateNewMax();
-
-		this._addClass( "ui-slider ui-slider-" + this.orientation,
-			"ui-widget ui-widget-content" );
-
-		this._refresh();
-
-		this._animateOff = false;
-	},
-
-	_refresh: function() {
-		this._createRange();
-		this._createHandles();
-		this._setupEvents();
-		this._refreshValue();
-	},
-
-	_createHandles: function() {
-		var i, handleCount,
-			options = this.options,
-			existingHandles = this.element.find( ".ui-slider-handle" ),
-			handle = "<span tabindex='0'></span>",
-			handles = [];
-
-		handleCount = ( options.values && options.values.length ) || 1;
-
-		if ( existingHandles.length > handleCount ) {
-			existingHandles.slice( handleCount ).remove();
-			existingHandles = existingHandles.slice( 0, handleCount );
-		}
-
-		for ( i = existingHandles.length; i < handleCount; i++ ) {
-			handles.push( handle );
-		}
-
-		this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) );
-
-		this._addClass( this.handles, "ui-slider-handle", "ui-state-default" );
-
-		this.handle = this.handles.eq( 0 );
-
-		this.handles.each( function( i ) {
-			$( this ).data( "ui-slider-handle-index", i );
-		} );
-	},
-
-	_createRange: function() {
-		var options = this.options;
-
-		if ( options.range ) {
-			if ( options.range === true ) {
-				if ( !options.values ) {
-					options.values = [ this._valueMin(), this._valueMin() ];
-				} else if ( options.values.length && options.values.length !== 2 ) {
-					options.values = [ options.values[ 0 ], options.values[ 0 ] ];
-				} else if ( $.isArray( options.values ) ) {
-					options.values = options.values.slice( 0 );
-				}
-			}
-
-			if ( !this.range || !this.range.length ) {
-				this.range = $( "<div>" )
-					.appendTo( this.element );
-
-				this._addClass( this.range, "ui-slider-range" );
-			} else {
-				this._removeClass( this.range, "ui-slider-range-min ui-slider-range-max" );
-
-				// Handle range switching from true to min/max
-				this.range.css( {
-					"left": "",
-					"bottom": ""
-				} );
-			}
-			if ( options.range === "min" || options.range === "max" ) {
-				this._addClass( this.range, "ui-slider-range-" + options.range );
-			}
-		} else {
-			if ( this.range ) {
-				this.range.remove();
-			}
-			this.range = null;
-		}
-	},
-
-	_setupEvents: function() {
-		this._off( this.handles );
-		this._on( this.handles, this._handleEvents );
-		this._hoverable( this.handles );
-		this._focusable( this.handles );
-	},
-
-	_destroy: function() {
-		this.handles.remove();
-		if ( this.range ) {
-			this.range.remove();
-		}
-
-		this._mouseDestroy();
-	},
-
-	_mouseCapture: function( event ) {
-		var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
-			that = this,
-			o = this.options;
-
-		if ( o.disabled ) {
-			return false;
-		}
-
-		this.elementSize = {
-			width: this.element.outerWidth(),
-			height: this.element.outerHeight()
-		};
-		this.elementOffset = this.element.offset();
-
-		position = { x: event.pageX, y: event.pageY };
-		normValue = this._normValueFromMouse( position );
-		distance = this._valueMax() - this._valueMin() + 1;
-		this.handles.each( function( i ) {
-			var thisDistance = Math.abs( normValue - that.values( i ) );
-			if ( ( distance > thisDistance ) ||
-				( distance === thisDistance &&
-					( i === that._lastChangedValue || that.values( i ) === o.min ) ) ) {
-				distance = thisDistance;
-				closestHandle = $( this );
-				index = i;
-			}
-		} );
-
-		allowed = this._start( event, index );
-		if ( allowed === false ) {
-			return false;
-		}
-		this._mouseSliding = true;
-
-		this._handleIndex = index;
-
-		this._addClass( closestHandle, null, "ui-state-active" );
-		closestHandle.trigger( "focus" );
-
-		offset = closestHandle.offset();
-		mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
-		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
-			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
-			top: event.pageY - offset.top -
-				( closestHandle.height() / 2 ) -
-				( parseInt( closestHandle.css( "borderTopWidth" ), 10 ) || 0 ) -
-				( parseInt( closestHandle.css( "borderBottomWidth" ), 10 ) || 0 ) +
-				( parseInt( closestHandle.css( "marginTop" ), 10 ) || 0 )
-		};
-
-		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
-			this._slide( event, index, normValue );
-		}
-		this._animateOff = true;
-		return true;
-	},
-
-	_mouseStart: function() {
-		return true;
-	},
-
-	_mouseDrag: function( event ) {
-		var position = { x: event.pageX, y: event.pageY },
-			normValue = this._normValueFromMouse( position );
-
-		this._slide( event, this._handleIndex, normValue );
-
-		return false;
-	},
-
-	_mouseStop: function( event ) {
-		this._removeClass( this.handles, null, "ui-state-active" );
-		this._mouseSliding = false;
-
-		this._stop( event, this._handleIndex );
-		this._change( event, this._handleIndex );
-
-		this._handleIndex = null;
-		this._clickOffset = null;
-		this._animateOff = false;
-
-		return false;
-	},
-
-	_detectOrientation: function() {
-		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
-	},
-
-	_normValueFromMouse: function( position ) {
-		var pixelTotal,
-			pixelMouse,
-			percentMouse,
-			valueTotal,
-			valueMouse;
-
-		if ( this.orientation === "horizontal" ) {
-			pixelTotal = this.elementSize.width;
-			pixelMouse = position.x - this.elementOffset.left -
-				( this._clickOffset ? this._clickOffset.left : 0 );
-		} else {
-			pixelTotal = this.elementSize.height;
-			pixelMouse = position.y - this.elementOffset.top -
-				( this._clickOffset ? this._clickOffset.top : 0 );
-		}
-
-		percentMouse = ( pixelMouse / pixelTotal );
-		if ( percentMouse > 1 ) {
-			percentMouse = 1;
-		}
-		if ( percentMouse < 0 ) {
-			percentMouse = 0;
-		}
-		if ( this.orientation === "vertical" ) {
-			percentMouse = 1 - percentMouse;
-		}
-
-		valueTotal = this._valueMax() - this._valueMin();
-		valueMouse = this._valueMin() + percentMouse * valueTotal;
-
-		return this._trimAlignValue( valueMouse );
-	},
-
-	_uiHash: function( index, value, values ) {
-		var uiHash = {
-			handle: this.handles[ index ],
-			handleIndex: index,
-			value: value !== undefined ? value : this.value()
-		};
-
-		if ( this._hasMultipleValues() ) {
-			uiHash.value = value !== undefined ? value : this.values( index );
-			uiHash.values = values || this.values();
-		}
-
-		return uiHash;
-	},
-
-	_hasMultipleValues: function() {
-		return this.options.values && this.options.values.length;
-	},
-
-	_start: function( event, index ) {
-		return this._trigger( "start", event, this._uiHash( index ) );
-	},
-
-	_slide: function( event, index, newVal ) {
-		var allowed, otherVal,
-			currentValue = this.value(),
-			newValues = this.values();
-
-		if ( this._hasMultipleValues() ) {
-			otherVal = this.values( index ? 0 : 1 );
-			currentValue = this.values( index );
-
-			if ( this.options.values.length === 2 && this.options.range === true ) {
-				newVal =  index === 0 ? Math.min( otherVal, newVal ) : Math.max( otherVal, newVal );
-			}
-
-			newValues[ index ] = newVal;
-		}
-
-		if ( newVal === currentValue ) {
-			return;
-		}
-
-		allowed = this._trigger( "slide", event, this._uiHash( index, newVal, newValues ) );
-
-		// A slide can be canceled by returning false from the slide callback
-		if ( allowed === false ) {
-			return;
-		}
-
-		if ( this._hasMultipleValues() ) {
-			this.values( index, newVal );
-		} else {
-			this.value( newVal );
-		}
-	},
-
-	_stop: function( event, index ) {
-		this._trigger( "stop", event, this._uiHash( index ) );
-	},
-
-	_change: function( event, index ) {
-		if ( !this._keySliding && !this._mouseSliding ) {
-
-			//store the last changed value index for reference when handles overlap
-			this._lastChangedValue = index;
-			this._trigger( "change", event, this._uiHash( index ) );
-		}
-	},
-
-	value: function( newValue ) {
-		if ( arguments.length ) {
-			this.options.value = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, 0 );
-			return;
-		}
-
-		return this._value();
-	},
-
-	values: function( index, newValue ) {
-		var vals,
-			newValues,
-			i;
-
-		if ( arguments.length > 1 ) {
-			this.options.values[ index ] = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, index );
-			return;
-		}
-
-		if ( arguments.length ) {
-			if ( $.isArray( arguments[ 0 ] ) ) {
-				vals = this.options.values;
-				newValues = arguments[ 0 ];
-				for ( i = 0; i < vals.length; i += 1 ) {
-					vals[ i ] = this._trimAlignValue( newValues[ i ] );
-					this._change( null, i );
-				}
-				this._refreshValue();
-			} else {
-				if ( this._hasMultipleValues() ) {
-					return this._values( index );
-				} else {
-					return this.value();
-				}
-			}
-		} else {
-			return this._values();
-		}
-	},
-
-	_setOption: function( key, value ) {
-		var i,
-			valsLength = 0;
-
-		if ( key === "range" && this.options.range === true ) {
-			if ( value === "min" ) {
-				this.options.value = this._values( 0 );
-				this.options.values = null;
-			} else if ( value === "max" ) {
-				this.options.value = this._values( this.options.values.length - 1 );
-				this.options.values = null;
-			}
-		}
-
-		if ( $.isArray( this.options.values ) ) {
-			valsLength = this.options.values.length;
-		}
-
-		this._super( key, value );
-
-		switch ( key ) {
-			case "orientation":
-				this._detectOrientation();
-				this._removeClass( "ui-slider-horizontal ui-slider-vertical" )
-					._addClass( "ui-slider-" + this.orientation );
-				this._refreshValue();
-				if ( this.options.range ) {
-					this._refreshRange( value );
-				}
-
-				// Reset positioning from previous orientation
-				this.handles.css( value === "horizontal" ? "bottom" : "left", "" );
-				break;
-			case "value":
-				this._animateOff = true;
-				this._refreshValue();
-				this._change( null, 0 );
-				this._animateOff = false;
-				break;
-			case "values":
-				this._animateOff = true;
-				this._refreshValue();
-
-				// Start from the last handle to prevent unreachable handles (#9046)
-				for ( i = valsLength - 1; i >= 0; i-- ) {
-					this._change( null, i );
-				}
-				this._animateOff = false;
-				break;
-			case "step":
-			case "min":
-			case "max":
-				this._animateOff = true;
-				this._calculateNewMax();
-				this._refreshValue();
-				this._animateOff = false;
-				break;
-			case "range":
-				this._animateOff = true;
-				this._refresh();
-				this._animateOff = false;
-				break;
-		}
-	},
-
-	_setOptionDisabled: function( value ) {
-		this._super( value );
-
-		this._toggleClass( null, "ui-state-disabled", !!value );
-	},
-
-	//internal value getter
-	// _value() returns value trimmed by min and max, aligned by step
-	_value: function() {
-		var val = this.options.value;
-		val = this._trimAlignValue( val );
-
-		return val;
-	},
-
-	//internal values getter
-	// _values() returns array of values trimmed by min and max, aligned by step
-	// _values( index ) returns single value trimmed by min and max, aligned by step
-	_values: function( index ) {
-		var val,
-			vals,
-			i;
-
-		if ( arguments.length ) {
-			val = this.options.values[ index ];
-			val = this._trimAlignValue( val );
-
-			return val;
-		} else if ( this._hasMultipleValues() ) {
-
-			// .slice() creates a copy of the array
-			// this copy gets trimmed by min and max and then returned
-			vals = this.options.values.slice();
-			for ( i = 0; i < vals.length; i += 1 ) {
-				vals[ i ] = this._trimAlignValue( vals[ i ] );
-			}
-
-			return vals;
-		} else {
-			return [];
-		}
-	},
-
-	// Returns the step-aligned value that val is closest to, between (inclusive) min and max
-	_trimAlignValue: function( val ) {
-		if ( val <= this._valueMin() ) {
-			return this._valueMin();
-		}
-		if ( val >= this._valueMax() ) {
-			return this._valueMax();
-		}
-		var step = ( this.options.step > 0 ) ? this.options.step : 1,
-			valModStep = ( val - this._valueMin() ) % step,
-			alignValue = val - valModStep;
-
-		if ( Math.abs( valModStep ) * 2 >= step ) {
-			alignValue += ( valModStep > 0 ) ? step : ( -step );
-		}
-
-		// Since JavaScript has problems with large floats, round
-		// the final value to 5 digits after the decimal point (see #4124)
-		return parseFloat( alignValue.toFixed( 5 ) );
-	},
-
-	_calculateNewMax: function() {
-		var max = this.options.max,
-			min = this._valueMin(),
-			step = this.options.step,
-			aboveMin = Math.round( ( max - min ) / step ) * step;
-		max = aboveMin + min;
-		if ( max > this.options.max ) {
-
-			//If max is not divisible by step, rounding off may increase its value
-			max -= step;
-		}
-		this.max = parseFloat( max.toFixed( this._precision() ) );
-	},
-
-	_precision: function() {
-		var precision = this._precisionOf( this.options.step );
-		if ( this.options.min !== null ) {
-			precision = Math.max( precision, this._precisionOf( this.options.min ) );
-		}
-		return precision;
-	},
-
-	_precisionOf: function( num ) {
-		var str = num.toString(),
-			decimal = str.indexOf( "." );
-		return decimal === -1 ? 0 : str.length - decimal - 1;
-	},
-
-	_valueMin: function() {
-		return this.options.min;
-	},
-
-	_valueMax: function() {
-		return this.max;
-	},
-
-	_refreshRange: function( orientation ) {
-		if ( orientation === "vertical" ) {
-			this.range.css( { "width": "", "left": "" } );
-		}
-		if ( orientation === "horizontal" ) {
-			this.range.css( { "height": "", "bottom": "" } );
-		}
-	},
-
-	_refreshValue: function() {
-		var lastValPercent, valPercent, value, valueMin, valueMax,
-			oRange = this.options.range,
-			o = this.options,
-			that = this,
-			animate = ( !this._animateOff ) ? o.animate : false,
-			_set = {};
-
-		if ( this._hasMultipleValues() ) {
-			this.handles.each( function( i ) {
-				valPercent = ( that.values( i ) - that._valueMin() ) / ( that._valueMax() -
-					that._valueMin() ) * 100;
-				_set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
-				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
-				if ( that.options.range === true ) {
-					if ( that.orientation === "horizontal" ) {
-						if ( i === 0 ) {
-							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
-								left: valPercent + "%"
-							}, o.animate );
-						}
-						if ( i === 1 ) {
-							that.range[ animate ? "animate" : "css" ]( {
-								width: ( valPercent - lastValPercent ) + "%"
-							}, {
-								queue: false,
-								duration: o.animate
-							} );
-						}
-					} else {
-						if ( i === 0 ) {
-							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
-								bottom: ( valPercent ) + "%"
-							}, o.animate );
-						}
-						if ( i === 1 ) {
-							that.range[ animate ? "animate" : "css" ]( {
-								height: ( valPercent - lastValPercent ) + "%"
-							}, {
-								queue: false,
-								duration: o.animate
-							} );
-						}
-					}
-				}
-				lastValPercent = valPercent;
-			} );
-		} else {
-			value = this.value();
-			valueMin = this._valueMin();
-			valueMax = this._valueMax();
-			valPercent = ( valueMax !== valueMin ) ?
-					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
-					0;
-			_set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
-			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
-
-			if ( oRange === "min" && this.orientation === "horizontal" ) {
-				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
-					width: valPercent + "%"
-				}, o.animate );
-			}
-			if ( oRange === "max" && this.orientation === "horizontal" ) {
-				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
-					width: ( 100 - valPercent ) + "%"
-				}, o.animate );
-			}
-			if ( oRange === "min" && this.orientation === "vertical" ) {
-				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
-					height: valPercent + "%"
-				}, o.animate );
-			}
-			if ( oRange === "max" && this.orientation === "vertical" ) {
-				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
-					height: ( 100 - valPercent ) + "%"
-				}, o.animate );
-			}
-		}
-	},
-
-	_handleEvents: {
-		keydown: function( event ) {
-			var allowed, curVal, newVal, step,
-				index = $( event.target ).data( "ui-slider-handle-index" );
-
-			switch ( event.keyCode ) {
-				case $.ui.keyCode.HOME:
-				case $.ui.keyCode.END:
-				case $.ui.keyCode.PAGE_UP:
-				case $.ui.keyCode.PAGE_DOWN:
-				case $.ui.keyCode.UP:
-				case $.ui.keyCode.RIGHT:
-				case $.ui.keyCode.DOWN:
-				case $.ui.keyCode.LEFT:
-					event.preventDefault();
-					if ( !this._keySliding ) {
-						this._keySliding = true;
-						this._addClass( $( event.target ), null, "ui-state-active" );
-						allowed = this._start( event, index );
-						if ( allowed === false ) {
-							return;
-						}
-					}
-					break;
-			}
-
-			step = this.options.step;
-			if ( this._hasMultipleValues() ) {
-				curVal = newVal = this.values( index );
-			} else {
-				curVal = newVal = this.value();
-			}
-
-			switch ( event.keyCode ) {
-				case $.ui.keyCode.HOME:
-					newVal = this._valueMin();
-					break;
-				case $.ui.keyCode.END:
-					newVal = this._valueMax();
-					break;
-				case $.ui.keyCode.PAGE_UP:
-					newVal = this._trimAlignValue(
-						curVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages )
-					);
-					break;
-				case $.ui.keyCode.PAGE_DOWN:
-					newVal = this._trimAlignValue(
-						curVal - ( ( this._valueMax() - this._valueMin() ) / this.numPages ) );
-					break;
-				case $.ui.keyCode.UP:
-				case $.ui.keyCode.RIGHT:
-					if ( curVal === this._valueMax() ) {
-						return;
-					}
-					newVal = this._trimAlignValue( curVal + step );
-					break;
-				case $.ui.keyCode.DOWN:
-				case $.ui.keyCode.LEFT:
-					if ( curVal === this._valueMin() ) {
-						return;
-					}
-					newVal = this._trimAlignValue( curVal - step );
-					break;
-			}
-
-			this._slide( event, index, newVal );
-		},
-		keyup: function( event ) {
-			var index = $( event.target ).data( "ui-slider-handle-index" );
-
-			if ( this._keySliding ) {
-				this._keySliding = false;
-				this._stop( event, index );
-				this._change( event, index );
-				this._removeClass( $( event.target ), null, "ui-state-active" );
-			}
-		}
-	}
-} );
-
-
-/*!
- * jQuery UI Sortable 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Sortable
-//>>group: Interactions
-//>>description: Enables items in a list to be sorted using the mouse.
-//>>docs: http://api.jqueryui.com/sortable/
-//>>demos: http://jqueryui.com/sortable/
-//>>css.structure: ../../themes/base/sortable.css
-
-
-
-var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
-	version: "1.12.0",
-	widgetEventPrefix: "sort",
-	ready: false,
-	options: {
-		appendTo: "parent",
-		axis: false,
-		connectWith: false,
-		containment: false,
-		cursor: "auto",
-		cursorAt: false,
-		dropOnEmpty: true,
-		forcePlaceholderSize: false,
-		forceHelperSize: false,
-		grid: false,
-		handle: false,
-		helper: "original",
-		items: "> *",
-		opacity: false,
-		placeholder: false,
-		revert: false,
-		scroll: true,
-		scrollSensitivity: 20,
-		scrollSpeed: 20,
-		scope: "default",
-		tolerance: "intersect",
-		zIndex: 1000,
-
-		// Callbacks
-		activate: null,
-		beforeStop: null,
-		change: null,
-		deactivate: null,
-		out: null,
-		over: null,
-		receive: null,
-		remove: null,
-		sort: null,
-		start: null,
-		stop: null,
-		update: null
-	},
-
-	_isOverAxis: function( x, reference, size ) {
-		return ( x >= reference ) && ( x < ( reference + size ) );
-	},
-
-	_isFloating: function( item ) {
-		return ( /left|right/ ).test( item.css( "float" ) ) ||
-			( /inline|table-cell/ ).test( item.css( "display" ) );
-	},
-
-	_create: function() {
-		this.containerCache = {};
-		this._addClass( "ui-sortable" );
-
-		//Get the items
-		this.refresh();
-
-		//Let's determine the parent's offset
-		this.offset = this.element.offset();
-
-		//Initialize mouse events for interaction
-		this._mouseInit();
-
-		this._setHandleClassName();
-
-		//We're ready to go
-		this.ready = true;
-
-	},
-
-	_setOption: function( key, value ) {
-		this._super( key, value );
-
-		if ( key === "handle" ) {
-			this._setHandleClassName();
-		}
-	},
-
-	_setHandleClassName: function() {
-		var that = this;
-		this._removeClass( this.element.find( ".ui-sortable-handle" ), "ui-sortable-handle" );
-		$.each( this.items, function() {
-			that._addClass(
-				this.instance.options.handle ?
-					this.item.find( this.instance.options.handle ) :
-					this.item,
-				"ui-sortable-handle"
-			);
-		} );
-	},
-
-	_destroy: function() {
-		this._mouseDestroy();
-
-		for ( var i = this.items.length - 1; i >= 0; i-- ) {
-			this.items[ i ].item.removeData( this.widgetName + "-item" );
-		}
-
-		return this;
-	},
-
-	_mouseCapture: function( event, overrideHandle ) {
-		var currentItem = null,
-			validHandle = false,
-			that = this;
-
-		if ( this.reverting ) {
-			return false;
-		}
-
-		if ( this.options.disabled || this.options.type === "static" ) {
-			return false;
-		}
-
-		//We have to refresh the items data once first
-		this._refreshItems( event );
-
-		//Find out if the clicked node (or one of its parents) is a actual item in this.items
-		$( event.target ).parents().each( function() {
-			if ( $.data( this, that.widgetName + "-item" ) === that ) {
-				currentItem = $( this );
-				return false;
-			}
-		} );
-		if ( $.data( event.target, that.widgetName + "-item" ) === that ) {
-			currentItem = $( event.target );
-		}
-
-		if ( !currentItem ) {
-			return false;
-		}
-		if ( this.options.handle && !overrideHandle ) {
-			$( this.options.handle, currentItem ).find( "*" ).addBack().each( function() {
-				if ( this === event.target ) {
-					validHandle = true;
-				}
-			} );
-			if ( !validHandle ) {
-				return false;
-			}
-		}
-
-		this.currentItem = currentItem;
-		this._removeCurrentsFromItems();
-		return true;
-
-	},
-
-	_mouseStart: function( event, overrideHandle, noActivation ) {
-
-		var i, body,
-			o = this.options;
-
-		this.currentContainer = this;
-
-		//We only need to call refreshPositions, because the refreshItems call has been moved to
-		// mouseCapture
-		this.refreshPositions();
-
-		//Create and append the visible helper
-		this.helper = this._createHelper( event );
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Get the next scrolling parent
-		this.scrollParent = this.helper.scrollParent();
-
-		//The element's absolute position on the page minus margins
-		this.offset = this.currentItem.offset();
-		this.offset = {
-			top: this.offset.top - this.margins.top,
-			left: this.offset.left - this.margins.left
-		};
-
-		$.extend( this.offset, {
-			click: { //Where the click happened, relative to the element
-				left: event.pageX - this.offset.left,
-				top: event.pageY - this.offset.top
-			},
-			parent: this._getParentOffset(),
-
-			// This is a relative to absolute position minus the actual position calculation -
-			// only used for relative positioned helper
-			relative: this._getRelativeOffset()
-		} );
-
-		// Only after we got the offset, we can change the helper's position to absolute
-		// TODO: Still need to figure out a way to make relative sorting possible
-		this.helper.css( "position", "absolute" );
-		this.cssPosition = this.helper.css( "position" );
-
-		//Generate the original position
-		this.originalPosition = this._generatePosition( event );
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
-		( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );
-
-		//Cache the former DOM position
-		this.domPosition = {
-			prev: this.currentItem.prev()[ 0 ],
-			parent: this.currentItem.parent()[ 0 ]
-		};
-
-		// If the helper is not the original, hide the original so it's not playing any role during
-		// the drag, won't cause anything bad this way
-		if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
-			this.currentItem.hide();
-		}
-
-		//Create the placeholder
-		this._createPlaceholder();
-
-		//Set a containment if given in the options
-		if ( o.containment ) {
-			this._setContainment();
-		}
-
-		if ( o.cursor && o.cursor !== "auto" ) { // cursor option
-			body = this.document.find( "body" );
-
-			// Support: IE
-			this.storedCursor = body.css( "cursor" );
-			body.css( "cursor", o.cursor );
-
-			this.storedStylesheet =
-				$( "<style>*{ cursor: " + o.cursor + " !important; }</style>" ).appendTo( body );
-		}
-
-		if ( o.opacity ) { // opacity option
-			if ( this.helper.css( "opacity" ) ) {
-				this._storedOpacity = this.helper.css( "opacity" );
-			}
-			this.helper.css( "opacity", o.opacity );
-		}
-
-		if ( o.zIndex ) { // zIndex option
-			if ( this.helper.css( "zIndex" ) ) {
-				this._storedZIndex = this.helper.css( "zIndex" );
-			}
-			this.helper.css( "zIndex", o.zIndex );
-		}
-
-		//Prepare scrolling
-		if ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
-				this.scrollParent[ 0 ].tagName !== "HTML" ) {
-			this.overflowOffset = this.scrollParent.offset();
-		}
-
-		//Call callbacks
-		this._trigger( "start", event, this._uiHash() );
-
-		//Recache the helper size
-		if ( !this._preserveHelperProportions ) {
-			this._cacheHelperProportions();
-		}
-
-		//Post "activate" events to possible containers
-		if ( !noActivation ) {
-			for ( i = this.containers.length - 1; i >= 0; i-- ) {
-				this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) );
-			}
-		}
-
-		//Prepare possible droppables
-		if ( $.ui.ddmanager ) {
-			$.ui.ddmanager.current = this;
-		}
-
-		if ( $.ui.ddmanager && !o.dropBehaviour ) {
-			$.ui.ddmanager.prepareOffsets( this, event );
-		}
-
-		this.dragging = true;
-
-		this._addClass( this.helper, "ui-sortable-helper" );
-
-		// Execute the drag once - this causes the helper not to be visiblebefore getting its
-		// correct position
-		this._mouseDrag( event );
-		return true;
-
-	},
-
-	_mouseDrag: function( event ) {
-		var i, item, itemElement, intersection,
-			o = this.options,
-			scrolled = false;
-
-		//Compute the helpers position
-		this.position = this._generatePosition( event );
-		this.positionAbs = this._convertPositionTo( "absolute" );
-
-		if ( !this.lastPositionAbs ) {
-			this.lastPositionAbs = this.positionAbs;
-		}
-
-		//Do scrolling
-		if ( this.options.scroll ) {
-			if ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
-					this.scrollParent[ 0 ].tagName !== "HTML" ) {
-
-				if ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) -
-						event.pageY < o.scrollSensitivity ) {
-					this.scrollParent[ 0 ].scrollTop =
-						scrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed;
-				} else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) {
-					this.scrollParent[ 0 ].scrollTop =
-						scrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed;
-				}
-
-				if ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) -
-						event.pageX < o.scrollSensitivity ) {
-					this.scrollParent[ 0 ].scrollLeft = scrolled =
-						this.scrollParent[ 0 ].scrollLeft + o.scrollSpeed;
-				} else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) {
-					this.scrollParent[ 0 ].scrollLeft = scrolled =
-						this.scrollParent[ 0 ].scrollLeft - o.scrollSpeed;
-				}
-
-			} else {
-
-				if ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) {
-					scrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed );
-				} else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) <
-						o.scrollSensitivity ) {
-					scrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed );
-				}
-
-				if ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) {
-					scrolled = this.document.scrollLeft(
-						this.document.scrollLeft() - o.scrollSpeed
-					);
-				} else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) <
-						o.scrollSensitivity ) {
-					scrolled = this.document.scrollLeft(
-						this.document.scrollLeft() + o.scrollSpeed
-					);
-				}
-
-			}
-
-			if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {
-				$.ui.ddmanager.prepareOffsets( this, event );
-			}
-		}
-
-		//Regenerate the absolute position used for position checks
-		this.positionAbs = this._convertPositionTo( "absolute" );
-
-		//Set the helper position
-		if ( !this.options.axis || this.options.axis !== "y" ) {
-			this.helper[ 0 ].style.left = this.position.left + "px";
-		}
-		if ( !this.options.axis || this.options.axis !== "x" ) {
-			this.helper[ 0 ].style.top = this.position.top + "px";
-		}
-
-		//Rearrange
-		for ( i = this.items.length - 1; i >= 0; i-- ) {
-
-			//Cache variables and intersection, continue if no intersection
-			item = this.items[ i ];
-			itemElement = item.item[ 0 ];
-			intersection = this._intersectsWithPointer( item );
-			if ( !intersection ) {
-				continue;
-			}
-
-			// Only put the placeholder inside the current Container, skip all
-			// items from other containers. This works because when moving
-			// an item from one container to another the
-			// currentContainer is switched before the placeholder is moved.
-			//
-			// Without this, moving items in "sub-sortables" can cause
-			// the placeholder to jitter between the outer and inner container.
-			if ( item.instance !== this.currentContainer ) {
-				continue;
-			}
-
-			// Cannot intersect with itself
-			// no useless actions that have been done before
-			// no action if the item moved is the parent of the item checked
-			if ( itemElement !== this.currentItem[ 0 ] &&
-				this.placeholder[ intersection === 1 ? "next" : "prev" ]()[ 0 ] !== itemElement &&
-				!$.contains( this.placeholder[ 0 ], itemElement ) &&
-				( this.options.type === "semi-dynamic" ?
-					!$.contains( this.element[ 0 ], itemElement ) :
-					true
-				)
-			) {
-
-				this.direction = intersection === 1 ? "down" : "up";
-
-				if ( this.options.tolerance === "pointer" || this._intersectsWithSides( item ) ) {
-					this._rearrange( event, item );
-				} else {
-					break;
-				}
-
-				this._trigger( "change", event, this._uiHash() );
-				break;
-			}
-		}
-
-		//Post events to containers
-		this._contactContainers( event );
-
-		//Interconnect with droppables
-		if ( $.ui.ddmanager ) {
-			$.ui.ddmanager.drag( this, event );
-		}
-
-		//Call callbacks
-		this._trigger( "sort", event, this._uiHash() );
-
-		this.lastPositionAbs = this.positionAbs;
-		return false;
-
-	},
-
-	_mouseStop: function( event, noPropagation ) {
-
-		if ( !event ) {
-			return;
-		}
-
-		//If we are using droppables, inform the manager about the drop
-		if ( $.ui.ddmanager && !this.options.dropBehaviour ) {
-			$.ui.ddmanager.drop( this, event );
-		}
-
-		if ( this.options.revert ) {
-			var that = this,
-				cur = this.placeholder.offset(),
-				axis = this.options.axis,
-				animation = {};
-
-			if ( !axis || axis === "x" ) {
-				animation.left = cur.left - this.offset.parent.left - this.margins.left +
-					( this.offsetParent[ 0 ] === this.document[ 0 ].body ?
-						0 :
-						this.offsetParent[ 0 ].scrollLeft
-					);
-			}
-			if ( !axis || axis === "y" ) {
-				animation.top = cur.top - this.offset.parent.top - this.margins.top +
-					( this.offsetParent[ 0 ] === this.document[ 0 ].body ?
-						0 :
-						this.offsetParent[ 0 ].scrollTop
-					);
-			}
-			this.reverting = true;
-			$( this.helper ).animate(
-				animation,
-				parseInt( this.options.revert, 10 ) || 500,
-				function() {
-					that._clear( event );
-				}
-			);
-		} else {
-			this._clear( event, noPropagation );
-		}
-
-		return false;
-
-	},
-
-	cancel: function() {
-
-		if ( this.dragging ) {
-
-			this._mouseUp( { target: null } );
-
-			if ( this.options.helper === "original" ) {
-				this.currentItem.css( this._storedCSS );
-				this._removeClass( this.currentItem, "ui-sortable-helper" );
-			} else {
-				this.currentItem.show();
-			}
-
-			//Post deactivating events to containers
-			for ( var i = this.containers.length - 1; i >= 0; i-- ) {
-				this.containers[ i ]._trigger( "deactivate", null, this._uiHash( this ) );
-				if ( this.containers[ i ].containerCache.over ) {
-					this.containers[ i ]._trigger( "out", null, this._uiHash( this ) );
-					this.containers[ i ].containerCache.over = 0;
-				}
-			}
-
-		}
-
-		if ( this.placeholder ) {
-
-			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,
-			// it unbinds ALL events from the original node!
-			if ( this.placeholder[ 0 ].parentNode ) {
-				this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );
-			}
-			if ( this.options.helper !== "original" && this.helper &&
-					this.helper[ 0 ].parentNode ) {
-				this.helper.remove();
-			}
-
-			$.extend( this, {
-				helper: null,
-				dragging: false,
-				reverting: false,
-				_noFinalSort: null
-			} );
-
-			if ( this.domPosition.prev ) {
-				$( this.domPosition.prev ).after( this.currentItem );
-			} else {
-				$( this.domPosition.parent ).prepend( this.currentItem );
-			}
-		}
-
-		return this;
-
-	},
-
-	serialize: function( o ) {
-
-		var items = this._getItemsAsjQuery( o && o.connected ),
-			str = [];
-		o = o || {};
-
-		$( items ).each( function() {
-			var res = ( $( o.item || this ).attr( o.attribute || "id" ) || "" )
-				.match( o.expression || ( /(.+)[\-=_](.+)/ ) );
-			if ( res ) {
-				str.push(
-					( o.key || res[ 1 ] + "[]" ) +
-					"=" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) );
-			}
-		} );
-
-		if ( !str.length && o.key ) {
-			str.push( o.key + "=" );
-		}
-
-		return str.join( "&" );
-
-	},
-
-	toArray: function( o ) {
-
-		var items = this._getItemsAsjQuery( o && o.connected ),
-			ret = [];
-
-		o = o || {};
-
-		items.each( function() {
-			ret.push( $( o.item || this ).attr( o.attribute || "id" ) || "" );
-		} );
-		return ret;
-
-	},
-
-	/* Be careful with the following core functions */
-	_intersectsWith: function( item ) {
-
-		var x1 = this.positionAbs.left,
-			x2 = x1 + this.helperProportions.width,
-			y1 = this.positionAbs.top,
-			y2 = y1 + this.helperProportions.height,
-			l = item.left,
-			r = l + item.width,
-			t = item.top,
-			b = t + item.height,
-			dyClick = this.offset.click.top,
-			dxClick = this.offset.click.left,
-			isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t &&
-				( y1 + dyClick ) < b ),
-			isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l &&
-				( x1 + dxClick ) < r ),
-			isOverElement = isOverElementHeight && isOverElementWidth;
-
-		if ( this.options.tolerance === "pointer" ||
-			this.options.forcePointerForContainers ||
-			( this.options.tolerance !== "pointer" &&
-				this.helperProportions[ this.floating ? "width" : "height" ] >
-				item[ this.floating ? "width" : "height" ] )
-		) {
-			return isOverElement;
-		} else {
-
-			return ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half
-				x2 - ( this.helperProportions.width / 2 ) < r && // Left Half
-				t < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half
-				y2 - ( this.helperProportions.height / 2 ) < b ); // Top Half
-
-		}
-	},
-
-	_intersectsWithPointer: function( item ) {
-		var verticalDirection, horizontalDirection,
-			isOverElementHeight = ( this.options.axis === "x" ) ||
-				this._isOverAxis(
-					this.positionAbs.top + this.offset.click.top, item.top, item.height ),
-			isOverElementWidth = ( this.options.axis === "y" ) ||
-				this._isOverAxis(
-					this.positionAbs.left + this.offset.click.left, item.left, item.width ),
-			isOverElement = isOverElementHeight && isOverElementWidth;
-
-		if ( !isOverElement ) {
-			return false;
-		}
-
-		verticalDirection = this._getDragVerticalDirection();
-		horizontalDirection = this._getDragHorizontalDirection();
-
-		return this.floating ?
-			( ( horizontalDirection === "right" || verticalDirection === "down" ) ? 2 : 1 )
-			: ( verticalDirection && ( verticalDirection === "down" ? 2 : 1 ) );
-
-	},
-
-	_intersectsWithSides: function( item ) {
-
-		var isOverBottomHalf = this._isOverAxis( this.positionAbs.top +
-				this.offset.click.top, item.top + ( item.height / 2 ), item.height ),
-			isOverRightHalf = this._isOverAxis( this.positionAbs.left +
-				this.offset.click.left, item.left + ( item.width / 2 ), item.width ),
-			verticalDirection = this._getDragVerticalDirection(),
-			horizontalDirection = this._getDragHorizontalDirection();
-
-		if ( this.floating && horizontalDirection ) {
-			return ( ( horizontalDirection === "right" && isOverRightHalf ) ||
-				( horizontalDirection === "left" && !isOverRightHalf ) );
-		} else {
-			return verticalDirection && ( ( verticalDirection === "down" && isOverBottomHalf ) ||
-				( verticalDirection === "up" && !isOverBottomHalf ) );
-		}
-
-	},
-
-	_getDragVerticalDirection: function() {
-		var delta = this.positionAbs.top - this.lastPositionAbs.top;
-		return delta !== 0 && ( delta > 0 ? "down" : "up" );
-	},
-
-	_getDragHorizontalDirection: function() {
-		var delta = this.positionAbs.left - this.lastPositionAbs.left;
-		return delta !== 0 && ( delta > 0 ? "right" : "left" );
-	},
-
-	refresh: function( event ) {
-		this._refreshItems( event );
-		this._setHandleClassName();
-		this.refreshPositions();
-		return this;
-	},
-
-	_connectWith: function() {
-		var options = this.options;
-		return options.connectWith.constructor === String ?
-			[ options.connectWith ] :
-			options.connectWith;
-	},
-
-	_getItemsAsjQuery: function( connected ) {
-
-		var i, j, cur, inst,
-			items = [],
-			queries = [],
-			connectWith = this._connectWith();
-
-		if ( connectWith && connected ) {
-			for ( i = connectWith.length - 1; i >= 0; i-- ) {
-				cur = $( connectWith[ i ], this.document[ 0 ] );
-				for ( j = cur.length - 1; j >= 0; j-- ) {
-					inst = $.data( cur[ j ], this.widgetFullName );
-					if ( inst && inst !== this && !inst.options.disabled ) {
-						queries.push( [ $.isFunction( inst.options.items ) ?
-							inst.options.items.call( inst.element ) :
-							$( inst.options.items, inst.element )
-								.not( ".ui-sortable-helper" )
-								.not( ".ui-sortable-placeholder" ), inst ] );
-					}
-				}
-			}
-		}
-
-		queries.push( [ $.isFunction( this.options.items ) ?
-			this.options.items
-				.call( this.element, null, { options: this.options, item: this.currentItem } ) :
-			$( this.options.items, this.element )
-				.not( ".ui-sortable-helper" )
-				.not( ".ui-sortable-placeholder" ), this ] );
-
-		function addItems() {
-			items.push( this );
-		}
-		for ( i = queries.length - 1; i >= 0; i-- ) {
-			queries[ i ][ 0 ].each( addItems );
-		}
-
-		return $( items );
-
-	},
-
-	_removeCurrentsFromItems: function() {
-
-		var list = this.currentItem.find( ":data(" + this.widgetName + "-item)" );
-
-		this.items = $.grep( this.items, function( item ) {
-			for ( var j = 0; j < list.length; j++ ) {
-				if ( list[ j ] === item.item[ 0 ] ) {
-					return false;
-				}
-			}
-			return true;
-		} );
-
-	},
-
-	_refreshItems: function( event ) {
-
-		this.items = [];
-		this.containers = [ this ];
-
-		var i, j, cur, inst, targetData, _queries, item, queriesLength,
-			items = this.items,
-			queries = [ [ $.isFunction( this.options.items ) ?
-				this.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) :
-				$( this.options.items, this.element ), this ] ],
-			connectWith = this._connectWith();
-
-		//Shouldn't be run the first time through due to massive slow-down
-		if ( connectWith && this.ready ) {
-			for ( i = connectWith.length - 1; i >= 0; i-- ) {
-				cur = $( connectWith[ i ], this.document[ 0 ] );
-				for ( j = cur.length - 1; j >= 0; j-- ) {
-					inst = $.data( cur[ j ], this.widgetFullName );
-					if ( inst && inst !== this && !inst.options.disabled ) {
-						queries.push( [ $.isFunction( inst.options.items ) ?
-							inst.options.items
-								.call( inst.element[ 0 ], event, { item: this.currentItem } ) :
-							$( inst.options.items, inst.element ), inst ] );
-						this.containers.push( inst );
-					}
-				}
-			}
-		}
-
-		for ( i = queries.length - 1; i >= 0; i-- ) {
-			targetData = queries[ i ][ 1 ];
-			_queries = queries[ i ][ 0 ];
-
-			for ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) {
-				item = $( _queries[ j ] );
-
-				// Data for target checking (mouse manager)
-				item.data( this.widgetName + "-item", targetData );
-
-				items.push( {
-					item: item,
-					instance: targetData,
-					width: 0, height: 0,
-					left: 0, top: 0
-				} );
-			}
-		}
-
-	},
-
-	refreshPositions: function( fast ) {
-
-		// Determine whether items are being displayed horizontally
-		this.floating = this.items.length ?
-			this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) :
-			false;
-
-		//This has to be redone because due to the item being moved out/into the offsetParent,
-		// the offsetParent's position will change
-		if ( this.offsetParent && this.helper ) {
-			this.offset.parent = this._getParentOffset();
-		}
-
-		var i, item, t, p;
-
-		for ( i = this.items.length - 1; i >= 0; i-- ) {
-			item = this.items[ i ];
-
-			//We ignore calculating positions of all connected containers when we're not over them
-			if ( item.instance !== this.currentContainer && this.currentContainer &&
-					item.item[ 0 ] !== this.currentItem[ 0 ] ) {
-				continue;
-			}
-
-			t = this.options.toleranceElement ?
-				$( this.options.toleranceElement, item.item ) :
-				item.item;
-
-			if ( !fast ) {
-				item.width = t.outerWidth();
-				item.height = t.outerHeight();
-			}
-
-			p = t.offset();
-			item.left = p.left;
-			item.top = p.top;
-		}
-
-		if ( this.options.custom && this.options.custom.refreshContainers ) {
-			this.options.custom.refreshContainers.call( this );
-		} else {
-			for ( i = this.containers.length - 1; i >= 0; i-- ) {
-				p = this.containers[ i ].element.offset();
-				this.containers[ i ].containerCache.left = p.left;
-				this.containers[ i ].containerCache.top = p.top;
-				this.containers[ i ].containerCache.width =
-					this.containers[ i ].element.outerWidth();
-				this.containers[ i ].containerCache.height =
-					this.containers[ i ].element.outerHeight();
-			}
-		}
-
-		return this;
-	},
-
-	_createPlaceholder: function( that ) {
-		that = that || this;
-		var className,
-			o = that.options;
-
-		if ( !o.placeholder || o.placeholder.constructor === String ) {
-			className = o.placeholder;
-			o.placeholder = {
-				element: function() {
-
-					var nodeName = that.currentItem[ 0 ].nodeName.toLowerCase(),
-						element = $( "<" + nodeName + ">", that.document[ 0 ] );
-
-						that._addClass( element, "ui-sortable-placeholder",
-								className || that.currentItem[ 0 ].className )
-							._removeClass( element, "ui-sortable-helper" );
-
-					if ( nodeName === "tbody" ) {
-						that._createTrPlaceholder(
-							that.currentItem.find( "tr" ).eq( 0 ),
-							$( "<tr>", that.document[ 0 ] ).appendTo( element )
-						);
-					} else if ( nodeName === "tr" ) {
-						that._createTrPlaceholder( that.currentItem, element );
-					} else if ( nodeName === "img" ) {
-						element.attr( "src", that.currentItem.attr( "src" ) );
-					}
-
-					if ( !className ) {
-						element.css( "visibility", "hidden" );
-					}
-
-					return element;
-				},
-				update: function( container, p ) {
-
-					// 1. If a className is set as 'placeholder option, we don't force sizes -
-					// the class is responsible for that
-					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a
-					// class name is specified
-					if ( className && !o.forcePlaceholderSize ) {
-						return;
-					}
-
-					//If the element doesn't have a actual height by itself (without styles coming
-					// from a stylesheet), it receives the inline height from the dragged item
-					if ( !p.height() ) {
-						p.height(
-							that.currentItem.innerHeight() -
-							parseInt( that.currentItem.css( "paddingTop" ) || 0, 10 ) -
-							parseInt( that.currentItem.css( "paddingBottom" ) || 0, 10 ) );
-					}
-					if ( !p.width() ) {
-						p.width(
-							that.currentItem.innerWidth() -
-							parseInt( that.currentItem.css( "paddingLeft" ) || 0, 10 ) -
-							parseInt( that.currentItem.css( "paddingRight" ) || 0, 10 ) );
-					}
-				}
-			};
-		}
-
-		//Create the placeholder
-		that.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) );
-
-		//Append it after the actual current item
-		that.currentItem.after( that.placeholder );
-
-		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
-		o.placeholder.update( that, that.placeholder );
-
-	},
-
-	_createTrPlaceholder: function( sourceTr, targetTr ) {
-		var that = this;
-
-		sourceTr.children().each( function() {
-			$( "<td>&#160;</td>", that.document[ 0 ] )
-				.attr( "colspan", $( this ).attr( "colspan" ) || 1 )
-				.appendTo( targetTr );
-		} );
-	},
-
-	_contactContainers: function( event ) {
-		var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom,
-			floating, axis,
-			innermostContainer = null,
-			innermostIndex = null;
-
-		// Get innermost container that intersects with item
-		for ( i = this.containers.length - 1; i >= 0; i-- ) {
-
-			// Never consider a container that's located within the item itself
-			if ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) {
-				continue;
-			}
-
-			if ( this._intersectsWith( this.containers[ i ].containerCache ) ) {
-
-				// If we've already found a container and it's more "inner" than this, then continue
-				if ( innermostContainer &&
-						$.contains(
-							this.containers[ i ].element[ 0 ],
-							innermostContainer.element[ 0 ] ) ) {
-					continue;
-				}
-
-				innermostContainer = this.containers[ i ];
-				innermostIndex = i;
-
-			} else {
-
-				// container doesn't intersect. trigger "out" event if necessary
-				if ( this.containers[ i ].containerCache.over ) {
-					this.containers[ i ]._trigger( "out", event, this._uiHash( this ) );
-					this.containers[ i ].containerCache.over = 0;
-				}
-			}
-
-		}
-
-		// If no intersecting containers found, return
-		if ( !innermostContainer ) {
-			return;
-		}
-
-		// Move the item into the container if it's not there already
-		if ( this.containers.length === 1 ) {
-			if ( !this.containers[ innermostIndex ].containerCache.over ) {
-				this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) );
-				this.containers[ innermostIndex ].containerCache.over = 1;
-			}
-		} else {
-
-			// When entering a new container, we will find the item with the least distance and
-			// append our item near it
-			dist = 10000;
-			itemWithLeastDistance = null;
-			floating = innermostContainer.floating || this._isFloating( this.currentItem );
-			posProperty = floating ? "left" : "top";
-			sizeProperty = floating ? "width" : "height";
-			axis = floating ? "pageX" : "pageY";
-
-			for ( j = this.items.length - 1; j >= 0; j-- ) {
-				if ( !$.contains(
-						this.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] )
-				) {
-					continue;
-				}
-				if ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) {
-					continue;
-				}
-
-				cur = this.items[ j ].item.offset()[ posProperty ];
-				nearBottom = false;
-				if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {
-					nearBottom = true;
-				}
-
-				if ( Math.abs( event[ axis ] - cur ) < dist ) {
-					dist = Math.abs( event[ axis ] - cur );
-					itemWithLeastDistance = this.items[ j ];
-					this.direction = nearBottom ? "up" : "down";
-				}
-			}
-
-			//Check if dropOnEmpty is enabled
-			if ( !itemWithLeastDistance && !this.options.dropOnEmpty ) {
-				return;
-			}
-
-			if ( this.currentContainer === this.containers[ innermostIndex ] ) {
-				if ( !this.currentContainer.containerCache.over ) {
-					this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() );
-					this.currentContainer.containerCache.over = 1;
-				}
-				return;
-			}
-
-			itemWithLeastDistance ?
-				this._rearrange( event, itemWithLeastDistance, null, true ) :
-				this._rearrange( event, null, this.containers[ innermostIndex ].element, true );
-			this._trigger( "change", event, this._uiHash() );
-			this.containers[ innermostIndex ]._trigger( "change", event, this._uiHash( this ) );
-			this.currentContainer = this.containers[ innermostIndex ];
-
-			//Update the placeholder
-			this.options.placeholder.update( this.currentContainer, this.placeholder );
-
-			this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) );
-			this.containers[ innermostIndex ].containerCache.over = 1;
-		}
-
-	},
-
-	_createHelper: function( event ) {
-
-		var o = this.options,
-			helper = $.isFunction( o.helper ) ?
-				$( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) :
-				( o.helper === "clone" ? this.currentItem.clone() : this.currentItem );
-
-		//Add the helper to the DOM if that didn't happen already
-		if ( !helper.parents( "body" ).length ) {
-			$( o.appendTo !== "parent" ?
-				o.appendTo :
-				this.currentItem[ 0 ].parentNode )[ 0 ].appendChild( helper[ 0 ] );
-		}
-
-		if ( helper[ 0 ] === this.currentItem[ 0 ] ) {
-			this._storedCSS = {
-				width: this.currentItem[ 0 ].style.width,
-				height: this.currentItem[ 0 ].style.height,
-				position: this.currentItem.css( "position" ),
-				top: this.currentItem.css( "top" ),
-				left: this.currentItem.css( "left" )
-			};
-		}
-
-		if ( !helper[ 0 ].style.width || o.forceHelperSize ) {
-			helper.width( this.currentItem.width() );
-		}
-		if ( !helper[ 0 ].style.height || o.forceHelperSize ) {
-			helper.height( this.currentItem.height() );
-		}
-
-		return helper;
-
-	},
-
-	_adjustOffsetFromHelper: function( obj ) {
-		if ( typeof obj === "string" ) {
-			obj = obj.split( " " );
-		}
-		if ( $.isArray( obj ) ) {
-			obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };
-		}
-		if ( "left" in obj ) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ( "right" in obj ) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ( "top" in obj ) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ( "bottom" in obj ) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_getParentOffset: function() {
-
-		//Get the offsetParent and cache its position
-		this.offsetParent = this.helper.offsetParent();
-		var po = this.offsetParent.offset();
-
-		// This is a special case where we need to modify a offset calculated on start, since the
-		// following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the
-		// next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't
-		// the document, which means that the scroll is included in the initial calculation of the
-		// offset of the parent, and never recalculated upon drag
-		if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== this.document[ 0 ] &&
-				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		// This needs to be actually done for all browsers, since pageX/pageY includes this
-		// information with an ugly IE fix
-		if ( this.offsetParent[ 0 ] === this.document[ 0 ].body ||
-				( this.offsetParent[ 0 ].tagName &&
-				this.offsetParent[ 0 ].tagName.toLowerCase() === "html" && $.ui.ie ) ) {
-			po = { top: 0, left: 0 };
-		}
-
-		return {
-			top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ),
-			left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 )
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-
-		if ( this.cssPosition === "relative" ) {
-			var p = this.currentItem.position();
-			return {
-				top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) +
-					this.scrollParent.scrollTop(),
-				left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) +
-					this.scrollParent.scrollLeft()
-			};
-		} else {
-			return { top: 0, left: 0 };
-		}
-
-	},
-
-	_cacheMargins: function() {
-		this.margins = {
-			left: ( parseInt( this.currentItem.css( "marginLeft" ), 10 ) || 0 ),
-			top: ( parseInt( this.currentItem.css( "marginTop" ), 10 ) || 0 )
-		};
-	},
-
-	_cacheHelperProportions: function() {
-		this.helperProportions = {
-			width: this.helper.outerWidth(),
-			height: this.helper.outerHeight()
-		};
-	},
-
-	_setContainment: function() {
-
-		var ce, co, over,
-			o = this.options;
-		if ( o.containment === "parent" ) {
-			o.containment = this.helper[ 0 ].parentNode;
-		}
-		if ( o.containment === "document" || o.containment === "window" ) {
-			this.containment = [
-				0 - this.offset.relative.left - this.offset.parent.left,
-				0 - this.offset.relative.top - this.offset.parent.top,
-				o.containment === "document" ?
-					this.document.width() :
-					this.window.width() - this.helperProportions.width - this.margins.left,
-				( o.containment === "document" ?
-					( this.document.height() || document.body.parentNode.scrollHeight ) :
-					this.window.height() || this.document[ 0 ].body.parentNode.scrollHeight
-				) - this.helperProportions.height - this.margins.top
-			];
-		}
-
-		if ( !( /^(document|window|parent)$/ ).test( o.containment ) ) {
-			ce = $( o.containment )[ 0 ];
-			co = $( o.containment ).offset();
-			over = ( $( ce ).css( "overflow" ) !== "hidden" );
-
-			this.containment = [
-				co.left + ( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) +
-					( parseInt( $( ce ).css( "paddingLeft" ), 10 ) || 0 ) - this.margins.left,
-				co.top + ( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) +
-					( parseInt( $( ce ).css( "paddingTop" ), 10 ) || 0 ) - this.margins.top,
-				co.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
-					( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) -
-					( parseInt( $( ce ).css( "paddingRight" ), 10 ) || 0 ) -
-					this.helperProportions.width - this.margins.left,
-				co.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
-					( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) -
-					( parseInt( $( ce ).css( "paddingBottom" ), 10 ) || 0 ) -
-					this.helperProportions.height - this.margins.top
-			];
-		}
-
-	},
-
-	_convertPositionTo: function( d, pos ) {
-
-		if ( !pos ) {
-			pos = this.position;
-		}
-		var mod = d === "absolute" ? 1 : -1,
-			scroll = this.cssPosition === "absolute" &&
-				!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
-				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?
-					this.offsetParent :
-					this.scrollParent,
-			scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );
-
-		return {
-			top: (
-
-				// The absolute mouse position
-				pos.top	+
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.top * mod +
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.top * mod -
-				( ( this.cssPosition === "fixed" ?
-					-this.scrollParent.scrollTop() :
-					( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod )
-			),
-			left: (
-
-				// The absolute mouse position
-				pos.left +
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.left * mod +
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.left * mod	-
-				( ( this.cssPosition === "fixed" ?
-					-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 :
-					scroll.scrollLeft() ) * mod )
-			)
-		};
-
-	},
-
-	_generatePosition: function( event ) {
-
-		var top, left,
-			o = this.options,
-			pageX = event.pageX,
-			pageY = event.pageY,
-			scroll = this.cssPosition === "absolute" &&
-				!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
-				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?
-					this.offsetParent :
-					this.scrollParent,
-				scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );
-
-		// This is another very weird special case that only happens for relative elements:
-		// 1. If the css position is relative
-		// 2. and the scroll parent is the document or similar to the offset parent
-		// we have to refresh the relative offset during the scroll so there are no jumps
-		if ( this.cssPosition === "relative" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
-				this.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) {
-			this.offset.relative = this._getRelativeOffset();
-		}
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		if ( this.originalPosition ) { //If we are not dragging yet, we won't check for options
-
-			if ( this.containment ) {
-				if ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) {
-					pageX = this.containment[ 0 ] + this.offset.click.left;
-				}
-				if ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) {
-					pageY = this.containment[ 1 ] + this.offset.click.top;
-				}
-				if ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) {
-					pageX = this.containment[ 2 ] + this.offset.click.left;
-				}
-				if ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) {
-					pageY = this.containment[ 3 ] + this.offset.click.top;
-				}
-			}
-
-			if ( o.grid ) {
-				top = this.originalPageY + Math.round( ( pageY - this.originalPageY ) /
-					o.grid[ 1 ] ) * o.grid[ 1 ];
-				pageY = this.containment ?
-					( ( top - this.offset.click.top >= this.containment[ 1 ] &&
-						top - this.offset.click.top <= this.containment[ 3 ] ) ?
-							top :
-							( ( top - this.offset.click.top >= this.containment[ 1 ] ) ?
-								top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) :
-								top;
-
-				left = this.originalPageX + Math.round( ( pageX - this.originalPageX ) /
-					o.grid[ 0 ] ) * o.grid[ 0 ];
-				pageX = this.containment ?
-					( ( left - this.offset.click.left >= this.containment[ 0 ] &&
-						left - this.offset.click.left <= this.containment[ 2 ] ) ?
-							left :
-							( ( left - this.offset.click.left >= this.containment[ 0 ] ) ?
-								left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) :
-								left;
-			}
-
-		}
-
-		return {
-			top: (
-
-				// The absolute mouse position
-				pageY -
-
-				// Click offset (relative to the element)
-				this.offset.click.top -
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.top -
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.top +
-				( ( this.cssPosition === "fixed" ?
-					-this.scrollParent.scrollTop() :
-					( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) )
-			),
-			left: (
-
-				// The absolute mouse position
-				pageX -
-
-				// Click offset (relative to the element)
-				this.offset.click.left -
-
-				// Only for relative positioned nodes: Relative offset from element to offset parent
-				this.offset.relative.left -
-
-				// The offsetParent's offset without borders (offset + border)
-				this.offset.parent.left +
-				( ( this.cssPosition === "fixed" ?
-					-this.scrollParent.scrollLeft() :
-					scrollIsRootNode ? 0 : scroll.scrollLeft() ) )
-			)
-		};
-
-	},
-
-	_rearrange: function( event, i, a, hardRefresh ) {
-
-		a ? a[ 0 ].appendChild( this.placeholder[ 0 ] ) :
-			i.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ],
-				( this.direction === "down" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) );
-
-		//Various things done here to improve the performance:
-		// 1. we create a setTimeout, that calls refreshPositions
-		// 2. on the instance, we have a counter variable, that get's higher after every append
-		// 3. on the local scope, we copy the counter variable, and check in the timeout,
-		// if it's still the same
-		// 4. this lets only the last addition to the timeout stack through
-		this.counter = this.counter ? ++this.counter : 1;
-		var counter = this.counter;
-
-		this._delay( function() {
-			if ( counter === this.counter ) {
-
-				//Precompute after each DOM insertion, NOT on mousemove
-				this.refreshPositions( !hardRefresh );
-			}
-		} );
-
-	},
-
-	_clear: function( event, noPropagation ) {
-
-		this.reverting = false;
-
-		// We delay all events that have to be triggered to after the point where the placeholder
-		// has been removed and everything else normalized again
-		var i,
-			delayedTriggers = [];
-
-		// We first have to update the dom position of the actual currentItem
-		// Note: don't do it if the current item is already removed (by a user), or it gets
-		// reappended (see #4088)
-		if ( !this._noFinalSort && this.currentItem.parent().length ) {
-			this.placeholder.before( this.currentItem );
-		}
-		this._noFinalSort = null;
-
-		if ( this.helper[ 0 ] === this.currentItem[ 0 ] ) {
-			for ( i in this._storedCSS ) {
-				if ( this._storedCSS[ i ] === "auto" || this._storedCSS[ i ] === "static" ) {
-					this._storedCSS[ i ] = "";
-				}
-			}
-			this.currentItem.css( this._storedCSS );
-			this._removeClass( this.currentItem, "ui-sortable-helper" );
-		} else {
-			this.currentItem.show();
-		}
-
-		if ( this.fromOutside && !noPropagation ) {
-			delayedTriggers.push( function( event ) {
-				this._trigger( "receive", event, this._uiHash( this.fromOutside ) );
-			} );
-		}
-		if ( ( this.fromOutside ||
-				this.domPosition.prev !==
-				this.currentItem.prev().not( ".ui-sortable-helper" )[ 0 ] ||
-				this.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {
-
-			// Trigger update callback if the DOM position has changed
-			delayedTriggers.push( function( event ) {
-				this._trigger( "update", event, this._uiHash() );
-			} );
-		}
-
-		// Check if the items Container has Changed and trigger appropriate
-		// events.
-		if ( this !== this.currentContainer ) {
-			if ( !noPropagation ) {
-				delayedTriggers.push( function( event ) {
-					this._trigger( "remove", event, this._uiHash() );
-				} );
-				delayedTriggers.push( ( function( c ) {
-					return function( event ) {
-						c._trigger( "receive", event, this._uiHash( this ) );
-					};
-				} ).call( this, this.currentContainer ) );
-				delayedTriggers.push( ( function( c ) {
-					return function( event ) {
-						c._trigger( "update", event, this._uiHash( this ) );
-					};
-				} ).call( this, this.currentContainer ) );
-			}
-		}
-
-		//Post events to containers
-		function delayEvent( type, instance, container ) {
-			return function( event ) {
-				container._trigger( type, event, instance._uiHash( instance ) );
-			};
-		}
-		for ( i = this.containers.length - 1; i >= 0; i-- ) {
-			if ( !noPropagation ) {
-				delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) );
-			}
-			if ( this.containers[ i ].containerCache.over ) {
-				delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) );
-				this.containers[ i ].containerCache.over = 0;
-			}
-		}
-
-		//Do what was originally in plugins
-		if ( this.storedCursor ) {
-			this.document.find( "body" ).css( "cursor", this.storedCursor );
-			this.storedStylesheet.remove();
-		}
-		if ( this._storedOpacity ) {
-			this.helper.css( "opacity", this._storedOpacity );
-		}
-		if ( this._storedZIndex ) {
-			this.helper.css( "zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex );
-		}
-
-		this.dragging = false;
-
-		if ( !noPropagation ) {
-			this._trigger( "beforeStop", event, this._uiHash() );
-		}
-
-		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,
-		// it unbinds ALL events from the original node!
-		this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );
-
-		if ( !this.cancelHelperRemoval ) {
-			if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
-				this.helper.remove();
-			}
-			this.helper = null;
-		}
-
-		if ( !noPropagation ) {
-			for ( i = 0; i < delayedTriggers.length; i++ ) {
-
-				// Trigger all delayed events
-				delayedTriggers[ i ].call( this, event );
-			}
-			this._trigger( "stop", event, this._uiHash() );
-		}
-
-		this.fromOutside = false;
-		return !this.cancelHelperRemoval;
-
-	},
-
-	_trigger: function() {
-		if ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {
-			this.cancel();
-		}
-	},
-
-	_uiHash: function( _inst ) {
-		var inst = _inst || this;
-		return {
-			helper: inst.helper,
-			placeholder: inst.placeholder || $( [] ),
-			position: inst.position,
-			originalPosition: inst.originalPosition,
-			offset: inst.positionAbs,
-			item: inst.currentItem,
-			sender: _inst ? _inst.element : null
-		};
-	}
-
-} );
-
-
-/*!
- * jQuery UI Spinner 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Spinner
-//>>group: Widgets
-//>>description: Displays buttons to easily input numbers via the keyboard or mouse.
-//>>docs: http://api.jqueryui.com/spinner/
-//>>demos: http://jqueryui.com/spinner/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/spinner.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-function spinnerModifer( fn ) {
-	return function() {
-		var previous = this.element.val();
-		fn.apply( this, arguments );
-		this._refresh();
-		if ( previous !== this.element.val() ) {
-			this._trigger( "change" );
-		}
-	};
-}
-
-$.widget( "ui.spinner", {
-	version: "1.12.0",
-	defaultElement: "<input>",
-	widgetEventPrefix: "spin",
-	options: {
-		classes: {
-			"ui-spinner": "ui-corner-all",
-			"ui-spinner-down": "ui-corner-br",
-			"ui-spinner-up": "ui-corner-tr"
-		},
-		culture: null,
-		icons: {
-			down: "ui-icon-triangle-1-s",
-			up: "ui-icon-triangle-1-n"
-		},
-		incremental: true,
-		max: null,
-		min: null,
-		numberFormat: null,
-		page: 10,
-		step: 1,
-
-		change: null,
-		spin: null,
-		start: null,
-		stop: null
-	},
-
-	_create: function() {
-
-		// handle string values that need to be parsed
-		this._setOption( "max", this.options.max );
-		this._setOption( "min", this.options.min );
-		this._setOption( "step", this.options.step );
-
-		// Only format if there is a value, prevents the field from being marked
-		// as invalid in Firefox, see #9573.
-		if ( this.value() !== "" ) {
-
-			// Format the value, but don't constrain.
-			this._value( this.element.val(), true );
-		}
-
-		this._draw();
-		this._on( this._events );
-		this._refresh();
-
-		// Turning off autocomplete prevents the browser from remembering the
-		// value when navigating through history, so we re-enable autocomplete
-		// if the page is unloaded before the widget is destroyed. #7790
-		this._on( this.window, {
-			beforeunload: function() {
-				this.element.removeAttr( "autocomplete" );
-			}
-		} );
-	},
-
-	_getCreateOptions: function() {
-		var options = this._super();
-		var element = this.element;
-
-		$.each( [ "min", "max", "step" ], function( i, option ) {
-			var value = element.attr( option );
-			if ( value != null && value.length ) {
-				options[ option ] = value;
-			}
-		} );
-
-		return options;
-	},
-
-	_events: {
-		keydown: function( event ) {
-			if ( this._start( event ) && this._keydown( event ) ) {
-				event.preventDefault();
-			}
-		},
-		keyup: "_stop",
-		focus: function() {
-			this.previous = this.element.val();
-		},
-		blur: function( event ) {
-			if ( this.cancelBlur ) {
-				delete this.cancelBlur;
-				return;
-			}
-
-			this._stop();
-			this._refresh();
-			if ( this.previous !== this.element.val() ) {
-				this._trigger( "change", event );
-			}
-		},
-		mousewheel: function( event, delta ) {
-			if ( !delta ) {
-				return;
-			}
-			if ( !this.spinning && !this._start( event ) ) {
-				return false;
-			}
-
-			this._spin( ( delta > 0 ? 1 : -1 ) * this.options.step, event );
-			clearTimeout( this.mousewheelTimer );
-			this.mousewheelTimer = this._delay( function() {
-				if ( this.spinning ) {
-					this._stop( event );
-				}
-			}, 100 );
-			event.preventDefault();
-		},
-		"mousedown .ui-spinner-button": function( event ) {
-			var previous;
-
-			// We never want the buttons to have focus; whenever the user is
-			// interacting with the spinner, the focus should be on the input.
-			// If the input is focused then this.previous is properly set from
-			// when the input first received focus. If the input is not focused
-			// then we need to set this.previous based on the value before spinning.
-			previous = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] ) ?
-				this.previous : this.element.val();
-			function checkFocus() {
-				var isActive = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] );
-				if ( !isActive ) {
-					this.element.trigger( "focus" );
-					this.previous = previous;
-
-					// support: IE
-					// IE sets focus asynchronously, so we need to check if focus
-					// moved off of the input because the user clicked on the button.
-					this._delay( function() {
-						this.previous = previous;
-					} );
-				}
-			}
-
-			// Ensure focus is on (or stays on) the text field
-			event.preventDefault();
-			checkFocus.call( this );
-
-			// Support: IE
-			// IE doesn't prevent moving focus even with event.preventDefault()
-			// so we set a flag to know when we should ignore the blur event
-			// and check (again) if focus moved off of the input.
-			this.cancelBlur = true;
-			this._delay( function() {
-				delete this.cancelBlur;
-				checkFocus.call( this );
-			} );
-
-			if ( this._start( event ) === false ) {
-				return;
-			}
-
-			this._repeat( null, $( event.currentTarget )
-				.hasClass( "ui-spinner-up" ) ? 1 : -1, event );
-		},
-		"mouseup .ui-spinner-button": "_stop",
-		"mouseenter .ui-spinner-button": function( event ) {
-
-			// button will add ui-state-active if mouse was down while mouseleave and kept down
-			if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) {
-				return;
-			}
-
-			if ( this._start( event ) === false ) {
-				return false;
-			}
-			this._repeat( null, $( event.currentTarget )
-				.hasClass( "ui-spinner-up" ) ? 1 : -1, event );
-		},
-
-		// TODO: do we really want to consider this a stop?
-		// shouldn't we just stop the repeater and wait until mouseup before
-		// we trigger the stop event?
-		"mouseleave .ui-spinner-button": "_stop"
-	},
-
-	// Support mobile enhanced option and make backcompat more sane
-	_enhance: function() {
-		this.uiSpinner = this.element
-			.attr( "autocomplete", "off" )
-			.wrap( "<span>" )
-			.parent()
-
-				// Add buttons
-				.append(
-					"<a></a><a></a>"
-				);
-	},
-
-	_draw: function() {
-		this._enhance();
-
-		this._addClass( this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content" );
-		this._addClass( "ui-spinner-input" );
-
-		this.element.attr( "role", "spinbutton" );
-
-		// Button bindings
-		this.buttons = this.uiSpinner.children( "a" )
-			.attr( "tabIndex", -1 )
-			.attr( "aria-hidden", true )
-			.button( {
-				classes: {
-					"ui-button": ""
-				}
-			} );
-
-		// TODO: Right now button does not support classes this is already updated in button PR
-		this._removeClass( this.buttons, "ui-corner-all" );
-
-		this._addClass( this.buttons.first(), "ui-spinner-button ui-spinner-up" );
-		this._addClass( this.buttons.last(), "ui-spinner-button ui-spinner-down" );
-		this.buttons.first().button( {
-			"icon": this.options.icons.up,
-			"showLabel": false
-		} );
-		this.buttons.last().button( {
-			"icon": this.options.icons.down,
-			"showLabel": false
-		} );
-
-		// IE 6 doesn't understand height: 50% for the buttons
-		// unless the wrapper has an explicit height
-		if ( this.buttons.height() > Math.ceil( this.uiSpinner.height() * 0.5 ) &&
-				this.uiSpinner.height() > 0 ) {
-			this.uiSpinner.height( this.uiSpinner.height() );
-		}
-	},
-
-	_keydown: function( event ) {
-		var options = this.options,
-			keyCode = $.ui.keyCode;
-
-		switch ( event.keyCode ) {
-		case keyCode.UP:
-			this._repeat( null, 1, event );
-			return true;
-		case keyCode.DOWN:
-			this._repeat( null, -1, event );
-			return true;
-		case keyCode.PAGE_UP:
-			this._repeat( null, options.page, event );
-			return true;
-		case keyCode.PAGE_DOWN:
-			this._repeat( null, -options.page, event );
-			return true;
-		}
-
-		return false;
-	},
-
-	_start: function( event ) {
-		if ( !this.spinning && this._trigger( "start", event ) === false ) {
-			return false;
-		}
-
-		if ( !this.counter ) {
-			this.counter = 1;
-		}
-		this.spinning = true;
-		return true;
-	},
-
-	_repeat: function( i, steps, event ) {
-		i = i || 500;
-
-		clearTimeout( this.timer );
-		this.timer = this._delay( function() {
-			this._repeat( 40, steps, event );
-		}, i );
-
-		this._spin( steps * this.options.step, event );
-	},
-
-	_spin: function( step, event ) {
-		var value = this.value() || 0;
-
-		if ( !this.counter ) {
-			this.counter = 1;
-		}
-
-		value = this._adjustValue( value + step * this._increment( this.counter ) );
-
-		if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false ) {
-			this._value( value );
-			this.counter++;
-		}
-	},
-
-	_increment: function( i ) {
-		var incremental = this.options.incremental;
-
-		if ( incremental ) {
-			return $.isFunction( incremental ) ?
-				incremental( i ) :
-				Math.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 );
-		}
-
-		return 1;
-	},
-
-	_precision: function() {
-		var precision = this._precisionOf( this.options.step );
-		if ( this.options.min !== null ) {
-			precision = Math.max( precision, this._precisionOf( this.options.min ) );
-		}
-		return precision;
-	},
-
-	_precisionOf: function( num ) {
-		var str = num.toString(),
-			decimal = str.indexOf( "." );
-		return decimal === -1 ? 0 : str.length - decimal - 1;
-	},
-
-	_adjustValue: function( value ) {
-		var base, aboveMin,
-			options = this.options;
-
-		// Make sure we're at a valid step
-		// - find out where we are relative to the base (min or 0)
-		base = options.min !== null ? options.min : 0;
-		aboveMin = value - base;
-
-		// - round to the nearest step
-		aboveMin = Math.round( aboveMin / options.step ) * options.step;
-
-		// - rounding is based on 0, so adjust back to our base
-		value = base + aboveMin;
-
-		// Fix precision from bad JS floating point math
-		value = parseFloat( value.toFixed( this._precision() ) );
-
-		// Clamp the value
-		if ( options.max !== null && value > options.max ) {
-			return options.max;
-		}
-		if ( options.min !== null && value < options.min ) {
-			return options.min;
-		}
-
-		return value;
-	},
-
-	_stop: function( event ) {
-		if ( !this.spinning ) {
-			return;
-		}
-
-		clearTimeout( this.timer );
-		clearTimeout( this.mousewheelTimer );
-		this.counter = 0;
-		this.spinning = false;
-		this._trigger( "stop", event );
-	},
-
-	_setOption: function( key, value ) {
-		var prevValue, first, last;
-
-		if ( key === "culture" || key === "numberFormat" ) {
-			prevValue = this._parse( this.element.val() );
-			this.options[ key ] = value;
-			this.element.val( this._format( prevValue ) );
-			return;
-		}
-
-		if ( key === "max" || key === "min" || key === "step" ) {
-			if ( typeof value === "string" ) {
-				value = this._parse( value );
-			}
-		}
-		if ( key === "icons" ) {
-			first = this.buttons.first().find( ".ui-icon" );
-			this._removeClass( first, null, this.options.icons.up );
-			this._addClass( first, null, value.up );
-			last = this.buttons.last().find( ".ui-icon" );
-			this._removeClass( last, null, this.options.icons.down );
-			this._addClass( last, null, value.down );
-		}
-
-		this._super( key, value );
-	},
-
-	_setOptionDisabled: function( value ) {
-		this._super( value );
-
-		this._toggleClass( this.uiSpinner, null, "ui-state-disabled", !!value );
-		this.element.prop( "disabled", !!value );
-		this.buttons.button( value ? "disable" : "enable" );
-	},
-
-	_setOptions: spinnerModifer( function( options ) {
-		this._super( options );
-	} ),
-
-	_parse: function( val ) {
-		if ( typeof val === "string" && val !== "" ) {
-			val = window.Globalize && this.options.numberFormat ?
-				Globalize.parseFloat( val, 10, this.options.culture ) : +val;
-		}
-		return val === "" || isNaN( val ) ? null : val;
-	},
-
-	_format: function( value ) {
-		if ( value === "" ) {
-			return "";
-		}
-		return window.Globalize && this.options.numberFormat ?
-			Globalize.format( value, this.options.numberFormat, this.options.culture ) :
-			value;
-	},
-
-	_refresh: function() {
-		this.element.attr( {
-			"aria-valuemin": this.options.min,
-			"aria-valuemax": this.options.max,
-
-			// TODO: what should we do with values that can't be parsed?
-			"aria-valuenow": this._parse( this.element.val() )
-		} );
-	},
-
-	isValid: function() {
-		var value = this.value();
-
-		// Null is invalid
-		if ( value === null ) {
-			return false;
-		}
-
-		// If value gets adjusted, it's invalid
-		return value === this._adjustValue( value );
-	},
-
-	// Update the value without triggering change
-	_value: function( value, allowAny ) {
-		var parsed;
-		if ( value !== "" ) {
-			parsed = this._parse( value );
-			if ( parsed !== null ) {
-				if ( !allowAny ) {
-					parsed = this._adjustValue( parsed );
-				}
-				value = this._format( parsed );
-			}
-		}
-		this.element.val( value );
-		this._refresh();
-	},
-
-	_destroy: function() {
-		this.element
-			.prop( "disabled", false )
-			.removeAttr( "autocomplete role aria-valuemin aria-valuemax aria-valuenow" );
-
-		this.uiSpinner.replaceWith( this.element );
-	},
-
-	stepUp: spinnerModifer( function( steps ) {
-		this._stepUp( steps );
-	} ),
-	_stepUp: function( steps ) {
-		if ( this._start() ) {
-			this._spin( ( steps || 1 ) * this.options.step );
-			this._stop();
-		}
-	},
-
-	stepDown: spinnerModifer( function( steps ) {
-		this._stepDown( steps );
-	} ),
-	_stepDown: function( steps ) {
-		if ( this._start() ) {
-			this._spin( ( steps || 1 ) * -this.options.step );
-			this._stop();
-		}
-	},
-
-	pageUp: spinnerModifer( function( pages ) {
-		this._stepUp( ( pages || 1 ) * this.options.page );
-	} ),
-
-	pageDown: spinnerModifer( function( pages ) {
-		this._stepDown( ( pages || 1 ) * this.options.page );
-	} ),
-
-	value: function( newVal ) {
-		if ( !arguments.length ) {
-			return this._parse( this.element.val() );
-		}
-		spinnerModifer( this._value ).call( this, newVal );
-	},
-
-	widget: function() {
-		return this.uiSpinner;
-	}
-} );
-
-// DEPRECATED
-// TODO: switch return back to widget declaration at top of file when this is removed
-if ( $.uiBackCompat !== false ) {
-
-	// Backcompat for spinner html extension points
-	$.widget( "ui.spinner", $.ui.spinner, {
-		_enhance: function() {
-			this.uiSpinner = this.element
-				.attr( "autocomplete", "off" )
-				.wrap( this._uiSpinnerHtml() )
-				.parent()
-
-					// Add buttons
-					.append( this._buttonHtml() );
-		},
-		_uiSpinnerHtml: function() {
-			return "<span>";
-		},
-
-		_buttonHtml: function() {
-			return "<a></a><a></a>";
-		}
-	} );
-}
-
-var widgetsSpinner = $.ui.spinner;
-
-
-/*!
- * jQuery UI Tabs 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Tabs
-//>>group: Widgets
-//>>description: Transforms a set of container elements into a tab structure.
-//>>docs: http://api.jqueryui.com/tabs/
-//>>demos: http://jqueryui.com/tabs/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/tabs.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.widget( "ui.tabs", {
-	version: "1.12.0",
-	delay: 300,
-	options: {
-		active: null,
-		classes: {
-			"ui-tabs": "ui-corner-all",
-			"ui-tabs-nav": "ui-corner-all",
-			"ui-tabs-panel": "ui-corner-bottom",
-			"ui-tabs-tab": "ui-corner-top"
-		},
-		collapsible: false,
-		event: "click",
-		heightStyle: "content",
-		hide: null,
-		show: null,
-
-		// Callbacks
-		activate: null,
-		beforeActivate: null,
-		beforeLoad: null,
-		load: null
-	},
-
-	_isLocal: ( function() {
-		var rhash = /#.*$/;
-
-		return function( anchor ) {
-			var anchorUrl, locationUrl;
-
-			anchorUrl = anchor.href.replace( rhash, "" );
-			locationUrl = location.href.replace( rhash, "" );
-
-			// Decoding may throw an error if the URL isn't UTF-8 (#9518)
-			try {
-				anchorUrl = decodeURIComponent( anchorUrl );
-			} catch ( error ) {}
-			try {
-				locationUrl = decodeURIComponent( locationUrl );
-			} catch ( error ) {}
-
-			return anchor.hash.length > 1 && anchorUrl === locationUrl;
-		};
-	} )(),
-
-	_create: function() {
-		var that = this,
-			options = this.options;
-
-		this.running = false;
-
-		this._addClass( "ui-tabs", "ui-widget ui-widget-content" );
-		this._toggleClass( "ui-tabs-collapsible", null, options.collapsible );
-
-		this._processTabs();
-		options.active = this._initialActive();
-
-		// Take disabling tabs via class attribute from HTML
-		// into account and update option properly.
-		if ( $.isArray( options.disabled ) ) {
-			options.disabled = $.unique( options.disabled.concat(
-				$.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
-					return that.tabs.index( li );
-				} )
-			) ).sort();
-		}
-
-		// Check for length avoids error when initializing empty list
-		if ( this.options.active !== false && this.anchors.length ) {
-			this.active = this._findActive( options.active );
-		} else {
-			this.active = $();
-		}
-
-		this._refresh();
-
-		if ( this.active.length ) {
-			this.load( options.active );
-		}
-	},
-
-	_initialActive: function() {
-		var active = this.options.active,
-			collapsible = this.options.collapsible,
-			locationHash = location.hash.substring( 1 );
-
-		if ( active === null ) {
-
-			// check the fragment identifier in the URL
-			if ( locationHash ) {
-				this.tabs.each( function( i, tab ) {
-					if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
-						active = i;
-						return false;
-					}
-				} );
-			}
-
-			// Check for a tab marked active via a class
-			if ( active === null ) {
-				active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
-			}
-
-			// No active tab, set to false
-			if ( active === null || active === -1 ) {
-				active = this.tabs.length ? 0 : false;
-			}
-		}
-
-		// Handle numbers: negative, out of range
-		if ( active !== false ) {
-			active = this.tabs.index( this.tabs.eq( active ) );
-			if ( active === -1 ) {
-				active = collapsible ? false : 0;
-			}
-		}
-
-		// Don't allow collapsible: false and active: false
-		if ( !collapsible && active === false && this.anchors.length ) {
-			active = 0;
-		}
-
-		return active;
-	},
-
-	_getCreateEventData: function() {
-		return {
-			tab: this.active,
-			panel: !this.active.length ? $() : this._getPanelForTab( this.active )
-		};
-	},
-
-	_tabKeydown: function( event ) {
-		var focusedTab = $( $.ui.safeActiveElement( this.document[ 0 ] ) ).closest( "li" ),
-			selectedIndex = this.tabs.index( focusedTab ),
-			goingForward = true;
-
-		if ( this._handlePageNav( event ) ) {
-			return;
-		}
-
-		switch ( event.keyCode ) {
-		case $.ui.keyCode.RIGHT:
-		case $.ui.keyCode.DOWN:
-			selectedIndex++;
-			break;
-		case $.ui.keyCode.UP:
-		case $.ui.keyCode.LEFT:
-			goingForward = false;
-			selectedIndex--;
-			break;
-		case $.ui.keyCode.END:
-			selectedIndex = this.anchors.length - 1;
-			break;
-		case $.ui.keyCode.HOME:
-			selectedIndex = 0;
-			break;
-		case $.ui.keyCode.SPACE:
-
-			// Activate only, no collapsing
-			event.preventDefault();
-			clearTimeout( this.activating );
-			this._activate( selectedIndex );
-			return;
-		case $.ui.keyCode.ENTER:
-
-			// Toggle (cancel delayed activation, allow collapsing)
-			event.preventDefault();
-			clearTimeout( this.activating );
-
-			// Determine if we should collapse or activate
-			this._activate( selectedIndex === this.options.active ? false : selectedIndex );
-			return;
-		default:
-			return;
-		}
-
-		// Focus the appropriate tab, based on which key was pressed
-		event.preventDefault();
-		clearTimeout( this.activating );
-		selectedIndex = this._focusNextTab( selectedIndex, goingForward );
-
-		// Navigating with control/command key will prevent automatic activation
-		if ( !event.ctrlKey && !event.metaKey ) {
-
-			// Update aria-selected immediately so that AT think the tab is already selected.
-			// Otherwise AT may confuse the user by stating that they need to activate the tab,
-			// but the tab will already be activated by the time the announcement finishes.
-			focusedTab.attr( "aria-selected", "false" );
-			this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );
-
-			this.activating = this._delay( function() {
-				this.option( "active", selectedIndex );
-			}, this.delay );
-		}
-	},
-
-	_panelKeydown: function( event ) {
-		if ( this._handlePageNav( event ) ) {
-			return;
-		}
-
-		// Ctrl+up moves focus to the current tab
-		if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
-			event.preventDefault();
-			this.active.trigger( "focus" );
-		}
-	},
-
-	// Alt+page up/down moves focus to the previous/next tab (and activates)
-	_handlePageNav: function( event ) {
-		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
-			this._activate( this._focusNextTab( this.options.active - 1, false ) );
-			return true;
-		}
-		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
-			this._activate( this._focusNextTab( this.options.active + 1, true ) );
-			return true;
-		}
-	},
-
-	_findNextTab: function( index, goingForward ) {
-		var lastTabIndex = this.tabs.length - 1;
-
-		function constrain() {
-			if ( index > lastTabIndex ) {
-				index = 0;
-			}
-			if ( index < 0 ) {
-				index = lastTabIndex;
-			}
-			return index;
-		}
-
-		while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
-			index = goingForward ? index + 1 : index - 1;
-		}
-
-		return index;
-	},
-
-	_focusNextTab: function( index, goingForward ) {
-		index = this._findNextTab( index, goingForward );
-		this.tabs.eq( index ).trigger( "focus" );
-		return index;
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "active" ) {
-
-			// _activate() will handle invalid values and update this.options
-			this._activate( value );
-			return;
-		}
-
-		this._super( key, value );
-
-		if ( key === "collapsible" ) {
-			this._toggleClass( "ui-tabs-collapsible", null, value );
-
-			// Setting collapsible: false while collapsed; open first panel
-			if ( !value && this.options.active === false ) {
-				this._activate( 0 );
-			}
-		}
-
-		if ( key === "event" ) {
-			this._setupEvents( value );
-		}
-
-		if ( key === "heightStyle" ) {
-			this._setupHeightStyle( value );
-		}
-	},
-
-	_sanitizeSelector: function( hash ) {
-		return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
-	},
-
-	refresh: function() {
-		var options = this.options,
-			lis = this.tablist.children( ":has(a[href])" );
-
-		// Get disabled tabs from class attribute from HTML
-		// this will get converted to a boolean if needed in _refresh()
-		options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
-			return lis.index( tab );
-		} );
-
-		this._processTabs();
-
-		// Was collapsed or no tabs
-		if ( options.active === false || !this.anchors.length ) {
-			options.active = false;
-			this.active = $();
-
-		// was active, but active tab is gone
-		} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {
-
-			// all remaining tabs are disabled
-			if ( this.tabs.length === options.disabled.length ) {
-				options.active = false;
-				this.active = $();
-
-			// activate previous tab
-			} else {
-				this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
-			}
-
-		// was active, active tab still exists
-		} else {
-
-			// make sure active index is correct
-			options.active = this.tabs.index( this.active );
-		}
-
-		this._refresh();
-	},
-
-	_refresh: function() {
-		this._setOptionDisabled( this.options.disabled );
-		this._setupEvents( this.options.event );
-		this._setupHeightStyle( this.options.heightStyle );
-
-		this.tabs.not( this.active ).attr( {
-			"aria-selected": "false",
-			"aria-expanded": "false",
-			tabIndex: -1
-		} );
-		this.panels.not( this._getPanelForTab( this.active ) )
-			.hide()
-			.attr( {
-				"aria-hidden": "true"
-			} );
-
-		// Make sure one tab is in the tab order
-		if ( !this.active.length ) {
-			this.tabs.eq( 0 ).attr( "tabIndex", 0 );
-		} else {
-			this.active
-				.attr( {
-					"aria-selected": "true",
-					"aria-expanded": "true",
-					tabIndex: 0
-				} );
-			this._addClass( this.active, "ui-tabs-active", "ui-state-active" );
-			this._getPanelForTab( this.active )
-				.show()
-				.attr( {
-					"aria-hidden": "false"
-				} );
-		}
-	},
-
-	_processTabs: function() {
-		var that = this,
-			prevTabs = this.tabs,
-			prevAnchors = this.anchors,
-			prevPanels = this.panels;
-
-		this.tablist = this._getList().attr( "role", "tablist" );
-		this._addClass( this.tablist, "ui-tabs-nav",
-			"ui-helper-reset ui-helper-clearfix ui-widget-header" );
-
-		// Prevent users from focusing disabled tabs via click
-		this.tablist
-			.on( "mousedown" + this.eventNamespace, "> li", function( event ) {
-				if ( $( this ).is( ".ui-state-disabled" ) ) {
-					event.preventDefault();
-				}
-			} )
-
-			// Support: IE <9
-			// Preventing the default action in mousedown doesn't prevent IE
-			// from focusing the element, so if the anchor gets focused, blur.
-			// We don't have to worry about focusing the previously focused
-			// element since clicking on a non-focusable element should focus
-			// the body anyway.
-			.on( "focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
-				if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
-					this.blur();
-				}
-			} );
-
-		this.tabs = this.tablist.find( "> li:has(a[href])" )
-			.attr( {
-				role: "tab",
-				tabIndex: -1
-			} );
-		this._addClass( this.tabs, "ui-tabs-tab", "ui-state-default" );
-
-		this.anchors = this.tabs.map( function() {
-			return $( "a", this )[ 0 ];
-		} )
-			.attr( {
-				role: "presentation",
-				tabIndex: -1
-			} );
-		this._addClass( this.anchors, "ui-tabs-anchor" );
-
-		this.panels = $();
-
-		this.anchors.each( function( i, anchor ) {
-			var selector, panel, panelId,
-				anchorId = $( anchor ).uniqueId().attr( "id" ),
-				tab = $( anchor ).closest( "li" ),
-				originalAriaControls = tab.attr( "aria-controls" );
-
-			// Inline tab
-			if ( that._isLocal( anchor ) ) {
-				selector = anchor.hash;
-				panelId = selector.substring( 1 );
-				panel = that.element.find( that._sanitizeSelector( selector ) );
-
-			// remote tab
-			} else {
-
-				// If the tab doesn't already have aria-controls,
-				// generate an id by using a throw-away element
-				panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id;
-				selector = "#" + panelId;
-				panel = that.element.find( selector );
-				if ( !panel.length ) {
-					panel = that._createPanel( panelId );
-					panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
-				}
-				panel.attr( "aria-live", "polite" );
-			}
-
-			if ( panel.length ) {
-				that.panels = that.panels.add( panel );
-			}
-			if ( originalAriaControls ) {
-				tab.data( "ui-tabs-aria-controls", originalAriaControls );
-			}
-			tab.attr( {
-				"aria-controls": panelId,
-				"aria-labelledby": anchorId
-			} );
-			panel.attr( "aria-labelledby", anchorId );
-		} );
-
-		this.panels.attr( "role", "tabpanel" );
-		this._addClass( this.panels, "ui-tabs-panel", "ui-widget-content" );
-
-		// Avoid memory leaks (#10056)
-		if ( prevTabs ) {
-			this._off( prevTabs.not( this.tabs ) );
-			this._off( prevAnchors.not( this.anchors ) );
-			this._off( prevPanels.not( this.panels ) );
-		}
-	},
-
-	// Allow overriding how to find the list for rare usage scenarios (#7715)
-	_getList: function() {
-		return this.tablist || this.element.find( "ol, ul" ).eq( 0 );
-	},
-
-	_createPanel: function( id ) {
-		return $( "<div>" )
-			.attr( "id", id )
-			.data( "ui-tabs-destroy", true );
-	},
-
-	_setOptionDisabled: function( disabled ) {
-		var currentItem, li, i;
-
-		if ( $.isArray( disabled ) ) {
-			if ( !disabled.length ) {
-				disabled = false;
-			} else if ( disabled.length === this.anchors.length ) {
-				disabled = true;
-			}
-		}
-
-		// Disable tabs
-		for ( i = 0; ( li = this.tabs[ i ] ); i++ ) {
-			currentItem = $( li );
-			if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
-				currentItem.attr( "aria-disabled", "true" );
-				this._addClass( currentItem, null, "ui-state-disabled" );
-			} else {
-				currentItem.removeAttr( "aria-disabled" );
-				this._removeClass( currentItem, null, "ui-state-disabled" );
-			}
-		}
-
-		this.options.disabled = disabled;
-
-		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null,
-			disabled === true );
-	},
-
-	_setupEvents: function( event ) {
-		var events = {};
-		if ( event ) {
-			$.each( event.split( " " ), function( index, eventName ) {
-				events[ eventName ] = "_eventHandler";
-			} );
-		}
-
-		this._off( this.anchors.add( this.tabs ).add( this.panels ) );
-
-		// Always prevent the default action, even when disabled
-		this._on( true, this.anchors, {
-			click: function( event ) {
-				event.preventDefault();
-			}
-		} );
-		this._on( this.anchors, events );
-		this._on( this.tabs, { keydown: "_tabKeydown" } );
-		this._on( this.panels, { keydown: "_panelKeydown" } );
-
-		this._focusable( this.tabs );
-		this._hoverable( this.tabs );
-	},
-
-	_setupHeightStyle: function( heightStyle ) {
-		var maxHeight,
-			parent = this.element.parent();
-
-		if ( heightStyle === "fill" ) {
-			maxHeight = parent.height();
-			maxHeight -= this.element.outerHeight() - this.element.height();
-
-			this.element.siblings( ":visible" ).each( function() {
-				var elem = $( this ),
-					position = elem.css( "position" );
-
-				if ( position === "absolute" || position === "fixed" ) {
-					return;
-				}
-				maxHeight -= elem.outerHeight( true );
-			} );
-
-			this.element.children().not( this.panels ).each( function() {
-				maxHeight -= $( this ).outerHeight( true );
-			} );
-
-			this.panels.each( function() {
-				$( this ).height( Math.max( 0, maxHeight -
-					$( this ).innerHeight() + $( this ).height() ) );
-			} )
-				.css( "overflow", "auto" );
-		} else if ( heightStyle === "auto" ) {
-			maxHeight = 0;
-			this.panels.each( function() {
-				maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
-			} ).height( maxHeight );
-		}
-	},
-
-	_eventHandler: function( event ) {
-		var options = this.options,
-			active = this.active,
-			anchor = $( event.currentTarget ),
-			tab = anchor.closest( "li" ),
-			clickedIsActive = tab[ 0 ] === active[ 0 ],
-			collapsing = clickedIsActive && options.collapsible,
-			toShow = collapsing ? $() : this._getPanelForTab( tab ),
-			toHide = !active.length ? $() : this._getPanelForTab( active ),
-			eventData = {
-				oldTab: active,
-				oldPanel: toHide,
-				newTab: collapsing ? $() : tab,
-				newPanel: toShow
-			};
-
-		event.preventDefault();
-
-		if ( tab.hasClass( "ui-state-disabled" ) ||
-
-				// tab is already loading
-				tab.hasClass( "ui-tabs-loading" ) ||
-
-				// can't switch durning an animation
-				this.running ||
-
-				// click on active header, but not collapsible
-				( clickedIsActive && !options.collapsible ) ||
-
-				// allow canceling activation
-				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
-			return;
-		}
-
-		options.active = collapsing ? false : this.tabs.index( tab );
-
-		this.active = clickedIsActive ? $() : tab;
-		if ( this.xhr ) {
-			this.xhr.abort();
-		}
-
-		if ( !toHide.length && !toShow.length ) {
-			$.error( "jQuery UI Tabs: Mismatching fragment identifier." );
-		}
-
-		if ( toShow.length ) {
-			this.load( this.tabs.index( tab ), event );
-		}
-		this._toggle( event, eventData );
-	},
-
-	// Handles show/hide for selecting tabs
-	_toggle: function( event, eventData ) {
-		var that = this,
-			toShow = eventData.newPanel,
-			toHide = eventData.oldPanel;
-
-		this.running = true;
-
-		function complete() {
-			that.running = false;
-			that._trigger( "activate", event, eventData );
-		}
-
-		function show() {
-			that._addClass( eventData.newTab.closest( "li" ), "ui-tabs-active", "ui-state-active" );
-
-			if ( toShow.length && that.options.show ) {
-				that._show( toShow, that.options.show, complete );
-			} else {
-				toShow.show();
-				complete();
-			}
-		}
-
-		// Start out by hiding, then showing, then completing
-		if ( toHide.length && this.options.hide ) {
-			this._hide( toHide, this.options.hide, function() {
-				that._removeClass( eventData.oldTab.closest( "li" ),
-					"ui-tabs-active", "ui-state-active" );
-				show();
-			} );
-		} else {
-			this._removeClass( eventData.oldTab.closest( "li" ),
-				"ui-tabs-active", "ui-state-active" );
-			toHide.hide();
-			show();
-		}
-
-		toHide.attr( "aria-hidden", "true" );
-		eventData.oldTab.attr( {
-			"aria-selected": "false",
-			"aria-expanded": "false"
-		} );
-
-		// If we're switching tabs, remove the old tab from the tab order.
-		// If we're opening from collapsed state, remove the previous tab from the tab order.
-		// If we're collapsing, then keep the collapsing tab in the tab order.
-		if ( toShow.length && toHide.length ) {
-			eventData.oldTab.attr( "tabIndex", -1 );
-		} else if ( toShow.length ) {
-			this.tabs.filter( function() {
-				return $( this ).attr( "tabIndex" ) === 0;
-			} )
-				.attr( "tabIndex", -1 );
-		}
-
-		toShow.attr( "aria-hidden", "false" );
-		eventData.newTab.attr( {
-			"aria-selected": "true",
-			"aria-expanded": "true",
-			tabIndex: 0
-		} );
-	},
-
-	_activate: function( index ) {
-		var anchor,
-			active = this._findActive( index );
-
-		// Trying to activate the already active panel
-		if ( active[ 0 ] === this.active[ 0 ] ) {
-			return;
-		}
-
-		// Trying to collapse, simulate a click on the current active header
-		if ( !active.length ) {
-			active = this.active;
-		}
-
-		anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
-		this._eventHandler( {
-			target: anchor,
-			currentTarget: anchor,
-			preventDefault: $.noop
-		} );
-	},
-
-	_findActive: function( index ) {
-		return index === false ? $() : this.tabs.eq( index );
-	},
-
-	_getIndex: function( index ) {
-
-		// meta-function to give users option to provide a href string instead of a numerical index.
-		if ( typeof index === "string" ) {
-			index = this.anchors.index( this.anchors.filter( "[href$='" +
-				$.ui.escapeSelector( index ) + "']" ) );
-		}
-
-		return index;
-	},
-
-	_destroy: function() {
-		if ( this.xhr ) {
-			this.xhr.abort();
-		}
-
-		this.tablist
-			.removeAttr( "role" )
-			.off( this.eventNamespace );
-
-		this.anchors
-			.removeAttr( "role tabIndex" )
-			.removeUniqueId();
-
-		this.tabs.add( this.panels ).each( function() {
-			if ( $.data( this, "ui-tabs-destroy" ) ) {
-				$( this ).remove();
-			} else {
-				$( this ).removeAttr( "role tabIndex " +
-					"aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded" );
-			}
-		} );
-
-		this.tabs.each( function() {
-			var li = $( this ),
-				prev = li.data( "ui-tabs-aria-controls" );
-			if ( prev ) {
-				li
-					.attr( "aria-controls", prev )
-					.removeData( "ui-tabs-aria-controls" );
-			} else {
-				li.removeAttr( "aria-controls" );
-			}
-		} );
-
-		this.panels.show();
-
-		if ( this.options.heightStyle !== "content" ) {
-			this.panels.css( "height", "" );
-		}
-	},
-
-	enable: function( index ) {
-		var disabled = this.options.disabled;
-		if ( disabled === false ) {
-			return;
-		}
-
-		if ( index === undefined ) {
-			disabled = false;
-		} else {
-			index = this._getIndex( index );
-			if ( $.isArray( disabled ) ) {
-				disabled = $.map( disabled, function( num ) {
-					return num !== index ? num : null;
-				} );
-			} else {
-				disabled = $.map( this.tabs, function( li, num ) {
-					return num !== index ? num : null;
-				} );
-			}
-		}
-		this._setOptionDisabled( disabled );
-	},
-
-	disable: function( index ) {
-		var disabled = this.options.disabled;
-		if ( disabled === true ) {
-			return;
-		}
-
-		if ( index === undefined ) {
-			disabled = true;
-		} else {
-			index = this._getIndex( index );
-			if ( $.inArray( index, disabled ) !== -1 ) {
-				return;
-			}
-			if ( $.isArray( disabled ) ) {
-				disabled = $.merge( [ index ], disabled ).sort();
-			} else {
-				disabled = [ index ];
-			}
-		}
-		this._setOptionDisabled( disabled );
-	},
-
-	load: function( index, event ) {
-		index = this._getIndex( index );
-		var that = this,
-			tab = this.tabs.eq( index ),
-			anchor = tab.find( ".ui-tabs-anchor" ),
-			panel = this._getPanelForTab( tab ),
-			eventData = {
-				tab: tab,
-				panel: panel
-			},
-			complete = function( jqXHR, status ) {
-				if ( status === "abort" ) {
-					that.panels.stop( false, true );
-				}
-
-				that._removeClass( tab, "ui-tabs-loading" );
-				panel.removeAttr( "aria-busy" );
-
-				if ( jqXHR === that.xhr ) {
-					delete that.xhr;
-				}
-			};
-
-		// Not remote
-		if ( this._isLocal( anchor[ 0 ] ) ) {
-			return;
-		}
-
-		this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
-
-		// Support: jQuery <1.8
-		// jQuery <1.8 returns false if the request is canceled in beforeSend,
-		// but as of 1.8, $.ajax() always returns a jqXHR object.
-		if ( this.xhr && this.xhr.statusText !== "canceled" ) {
-			this._addClass( tab, "ui-tabs-loading" );
-			panel.attr( "aria-busy", "true" );
-
-			this.xhr
-				.done( function( response, status, jqXHR ) {
-
-					// support: jQuery <1.8
-					// http://bugs.jquery.com/ticket/11778
-					setTimeout( function() {
-						panel.html( response );
-						that._trigger( "load", event, eventData );
-
-						complete( jqXHR, status );
-					}, 1 );
-				} )
-				.fail( function( jqXHR, status ) {
-
-					// support: jQuery <1.8
-					// http://bugs.jquery.com/ticket/11778
-					setTimeout( function() {
-						complete( jqXHR, status );
-					}, 1 );
-				} );
-		}
-	},
-
-	_ajaxSettings: function( anchor, event, eventData ) {
-		var that = this;
-		return {
-			url: anchor.attr( "href" ),
-			beforeSend: function( jqXHR, settings ) {
-				return that._trigger( "beforeLoad", event,
-					$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
-			}
-		};
-	},
-
-	_getPanelForTab: function( tab ) {
-		var id = $( tab ).attr( "aria-controls" );
-		return this.element.find( this._sanitizeSelector( "#" + id ) );
-	}
-} );
-
-// DEPRECATED
-// TODO: Switch return back to widget declaration at top of file when this is removed
-if ( $.uiBackCompat !== false ) {
-
-	// Backcompat for ui-tab class (now ui-tabs-tab)
-	$.widget( "ui.tabs", $.ui.tabs, {
-		_processTabs: function() {
-			this._superApply( arguments );
-			this._addClass( this.tabs, "ui-tab" );
-		}
-	} );
-}
-
-var widgetsTabs = $.ui.tabs;
-
-
-/*!
- * jQuery UI Tooltip 1.12.0
- * http://jqueryui.com
- *
- * Copyright jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-//>>label: Tooltip
-//>>group: Widgets
-//>>description: Shows additional information for any element on hover or focus.
-//>>docs: http://api.jqueryui.com/tooltip/
-//>>demos: http://jqueryui.com/tooltip/
-//>>css.structure: ../../themes/base/core.css
-//>>css.structure: ../../themes/base/tooltip.css
-//>>css.theme: ../../themes/base/theme.css
-
-
-
-$.widget( "ui.tooltip", {
-	version: "1.12.0",
-	options: {
-		classes: {
-			"ui-tooltip": "ui-corner-all ui-widget-shadow"
-		},
-		content: function() {
-
-			// support: IE<9, Opera in jQuery <1.7
-			// .text() can't accept undefined, so coerce to a string
-			var title = $( this ).attr( "title" ) || "";
-
-			// Escape title, since we're going from an attribute to raw HTML
-			return $( "<a>" ).text( title ).html();
-		},
-		hide: true,
-
-		// Disabled elements have inconsistent behavior across browsers (#8661)
-		items: "[title]:not([disabled])",
-		position: {
-			my: "left top+15",
-			at: "left bottom",
-			collision: "flipfit flip"
-		},
-		show: true,
-		track: false,
-
-		// Callbacks
-		close: null,
-		open: null
-	},
-
-	_addDescribedBy: function( elem, id ) {
-		var describedby = ( elem.attr( "aria-describedby" ) || "" ).split( /\s+/ );
-		describedby.push( id );
-		elem
-			.data( "ui-tooltip-id", id )
-			.attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
-	},
-
-	_removeDescribedBy: function( elem ) {
-		var id = elem.data( "ui-tooltip-id" ),
-			describedby = ( elem.attr( "aria-describedby" ) || "" ).split( /\s+/ ),
-			index = $.inArray( id, describedby );
-
-		if ( index !== -1 ) {
-			describedby.splice( index, 1 );
-		}
-
-		elem.removeData( "ui-tooltip-id" );
-		describedby = $.trim( describedby.join( " " ) );
-		if ( describedby ) {
-			elem.attr( "aria-describedby", describedby );
-		} else {
-			elem.removeAttr( "aria-describedby" );
-		}
-	},
-
-	_create: function() {
-		this._on( {
-			mouseover: "open",
-			focusin: "open"
-		} );
-
-		// IDs of generated tooltips, needed for destroy
-		this.tooltips = {};
-
-		// IDs of parent tooltips where we removed the title attribute
-		this.parents = {};
-
-		// Append the aria-live region so tooltips announce correctly
-		this.liveRegion = $( "<div>" )
-			.attr( {
-				role: "log",
-				"aria-live": "assertive",
-				"aria-relevant": "additions"
-			} )
-			.appendTo( this.document[ 0 ].body );
-		this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
-
-		this.disabledTitles = $( [] );
-	},
-
-	_setOption: function( key, value ) {
-		var that = this;
-
-		this._super( key, value );
-
-		if ( key === "content" ) {
-			$.each( this.tooltips, function( id, tooltipData ) {
-				that._updateContent( tooltipData.element );
-			} );
-		}
-	},
-
-	_setOptionDisabled: function( value ) {
-		this[ value ? "_disable" : "_enable" ]();
-	},
-
-	_disable: function() {
-		var that = this;
-
-		// Close open tooltips
-		$.each( this.tooltips, function( id, tooltipData ) {
-			var event = $.Event( "blur" );
-			event.target = event.currentTarget = tooltipData.element[ 0 ];
-			that.close( event, true );
-		} );
-
-		// Remove title attributes to prevent native tooltips
-		this.disabledTitles = this.disabledTitles.add(
-			this.element.find( this.options.items ).addBack()
-				.filter( function() {
-					var element = $( this );
-					if ( element.is( "[title]" ) ) {
-						return element
-							.data( "ui-tooltip-title", element.attr( "title" ) )
-							.removeAttr( "title" );
-					}
-				} )
-		);
-	},
-
-	_enable: function() {
-
-		// restore title attributes
-		this.disabledTitles.each( function() {
-			var element = $( this );
-			if ( element.data( "ui-tooltip-title" ) ) {
-				element.attr( "title", element.data( "ui-tooltip-title" ) );
-			}
-		} );
-		this.disabledTitles = $( [] );
-	},
-
-	open: function( event ) {
-		var that = this,
-			target = $( event ? event.target : this.element )
-
-				// we need closest here due to mouseover bubbling,
-				// but always pointing at the same event target
-				.closest( this.options.items );
-
-		// No element to show a tooltip for or the tooltip is already open
-		if ( !target.length || target.data( "ui-tooltip-id" ) ) {
-			return;
-		}
-
-		if ( target.attr( "title" ) ) {
-			target.data( "ui-tooltip-title", target.attr( "title" ) );
-		}
-
-		target.data( "ui-tooltip-open", true );
-
-		// Kill parent tooltips, custom or native, for hover
-		if ( event && event.type === "mouseover" ) {
-			target.parents().each( function() {
-				var parent = $( this ),
-					blurEvent;
-				if ( parent.data( "ui-tooltip-open" ) ) {
-					blurEvent = $.Event( "blur" );
-					blurEvent.target = blurEvent.currentTarget = this;
-					that.close( blurEvent, true );
-				}
-				if ( parent.attr( "title" ) ) {
-					parent.uniqueId();
-					that.parents[ this.id ] = {
-						element: this,
-						title: parent.attr( "title" )
-					};
-					parent.attr( "title", "" );
-				}
-			} );
-		}
-
-		this._registerCloseHandlers( event, target );
-		this._updateContent( target, event );
-	},
-
-	_updateContent: function( target, event ) {
-		var content,
-			contentOption = this.options.content,
-			that = this,
-			eventType = event ? event.type : null;
-
-		if ( typeof contentOption === "string" || contentOption.nodeType ||
-				contentOption.jquery ) {
-			return this._open( event, target, contentOption );
-		}
-
-		content = contentOption.call( target[ 0 ], function( response ) {
-
-			// IE may instantly serve a cached response for ajax requests
-			// delay this call to _open so the other call to _open runs first
-			that._delay( function() {
-
-				// Ignore async response if tooltip was closed already
-				if ( !target.data( "ui-tooltip-open" ) ) {
-					return;
-				}
-
-				// JQuery creates a special event for focusin when it doesn't
-				// exist natively. To improve performance, the native event
-				// object is reused and the type is changed. Therefore, we can't
-				// rely on the type being correct after the event finished
-				// bubbling, so we set it back to the previous value. (#8740)
-				if ( event ) {
-					event.type = eventType;
-				}
-				this._open( event, target, response );
-			} );
-		} );
-		if ( content ) {
-			this._open( event, target, content );
-		}
-	},
-
-	_open: function( event, target, content ) {
-		var tooltipData, tooltip, delayedShow, a11yContent,
-			positionOption = $.extend( {}, this.options.position );
-
-		if ( !content ) {
-			return;
-		}
-
-		// Content can be updated multiple times. If the tooltip already
-		// exists, then just update the content and bail.
-		tooltipData = this._find( target );
-		if ( tooltipData ) {
-			tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content );
-			return;
-		}
-
-		// If we have a title, clear it to prevent the native tooltip
-		// we have to check first to avoid defining a title if none exists
-		// (we don't want to cause an element to start matching [title])
-		//
-		// We use removeAttr only for key events, to allow IE to export the correct
-		// accessible attributes. For mouse events, set to empty string to avoid
-		// native tooltip showing up (happens only when removing inside mouseover).
-		if ( target.is( "[title]" ) ) {
-			if ( event && event.type === "mouseover" ) {
-				target.attr( "title", "" );
-			} else {
-				target.removeAttr( "title" );
-			}
-		}
-
-		tooltipData = this._tooltip( target );
-		tooltip = tooltipData.tooltip;
-		this._addDescribedBy( target, tooltip.attr( "id" ) );
-		tooltip.find( ".ui-tooltip-content" ).html( content );
-
-		// Support: Voiceover on OS X, JAWS on IE <= 9
-		// JAWS announces deletions even when aria-relevant="additions"
-		// Voiceover will sometimes re-read the entire log region's contents from the beginning
-		this.liveRegion.children().hide();
-		a11yContent = $( "<div>" ).html( tooltip.find( ".ui-tooltip-content" ).html() );
-		a11yContent.removeAttr( "name" ).find( "[name]" ).removeAttr( "name" );
-		a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" );
-		a11yContent.appendTo( this.liveRegion );
-
-		function position( event ) {
-			positionOption.of = event;
-			if ( tooltip.is( ":hidden" ) ) {
-				return;
-			}
-			tooltip.position( positionOption );
-		}
-		if ( this.options.track && event && /^mouse/.test( event.type ) ) {
-			this._on( this.document, {
-				mousemove: position
-			} );
-
-			// trigger once to override element-relative positioning
-			position( event );
-		} else {
-			tooltip.position( $.extend( {
-				of: target
-			}, this.options.position ) );
-		}
-
-		tooltip.hide();
-
-		this._show( tooltip, this.options.show );
-
-		// Handle tracking tooltips that are shown with a delay (#8644). As soon
-		// as the tooltip is visible, position the tooltip using the most recent
-		// event.
-		// Adds the check to add the timers only when both delay and track options are set (#14682)
-		if ( this.options.track && this.options.show && this.options.show.delay ) {
-			delayedShow = this.delayedShow = setInterval( function() {
-				if ( tooltip.is( ":visible" ) ) {
-					position( positionOption.of );
-					clearInterval( delayedShow );
-				}
-			}, $.fx.interval );
-		}
-
-		this._trigger( "open", event, { tooltip: tooltip } );
-	},
-
-	_registerCloseHandlers: function( event, target ) {
-		var events = {
-			keyup: function( event ) {
-				if ( event.keyCode === $.ui.keyCode.ESCAPE ) {
-					var fakeEvent = $.Event( event );
-					fakeEvent.currentTarget = target[ 0 ];
-					this.close( fakeEvent, true );
-				}
-			}
-		};
-
-		// Only bind remove handler for delegated targets. Non-delegated
-		// tooltips will handle this in destroy.
-		if ( target[ 0 ] !== this.element[ 0 ] ) {
-			events.remove = function() {
-				this._removeTooltip( this._find( target ).tooltip );
-			};
-		}
-
-		if ( !event || event.type === "mouseover" ) {
-			events.mouseleave = "close";
-		}
-		if ( !event || event.type === "focusin" ) {
-			events.focusout = "close";
-		}
-		this._on( true, target, events );
-	},
-
-	close: function( event ) {
-		var tooltip,
-			that = this,
-			target = $( event ? event.currentTarget : this.element ),
-			tooltipData = this._find( target );
-
-		// The tooltip may already be closed
-		if ( !tooltipData ) {
-
-			// We set ui-tooltip-open immediately upon open (in open()), but only set the
-			// additional data once there's actually content to show (in _open()). So even if the
-			// tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in
-			// the period between open() and _open().
-			target.removeData( "ui-tooltip-open" );
-			return;
-		}
-
-		tooltip = tooltipData.tooltip;
-
-		// Disabling closes the tooltip, so we need to track when we're closing
-		// to avoid an infinite loop in case the tooltip becomes disabled on close
-		if ( tooltipData.closing ) {
-			return;
-		}
-
-		// Clear the interval for delayed tracking tooltips
-		clearInterval( this.delayedShow );
-
-		// Only set title if we had one before (see comment in _open())
-		// If the title attribute has changed since open(), don't restore
-		if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) {
-			target.attr( "title", target.data( "ui-tooltip-title" ) );
-		}
-
-		this._removeDescribedBy( target );
-
-		tooltipData.hiding = true;
-		tooltip.stop( true );
-		this._hide( tooltip, this.options.hide, function() {
-			that._removeTooltip( $( this ) );
-		} );
-
-		target.removeData( "ui-tooltip-open" );
-		this._off( target, "mouseleave focusout keyup" );
-
-		// Remove 'remove' binding only on delegated targets
-		if ( target[ 0 ] !== this.element[ 0 ] ) {
-			this._off( target, "remove" );
-		}
-		this._off( this.document, "mousemove" );
-
-		if ( event && event.type === "mouseleave" ) {
-			$.each( this.parents, function( id, parent ) {
-				$( parent.element ).attr( "title", parent.title );
-				delete that.parents[ id ];
-			} );
-		}
-
-		tooltipData.closing = true;
-		this._trigger( "close", event, { tooltip: tooltip } );
-		if ( !tooltipData.hiding ) {
-			tooltipData.closing = false;
-		}
-	},
-
-	_tooltip: function( element ) {
-		var tooltip = $( "<div>" ).attr( "role", "tooltip" ),
-			content = $( "<div>" ).appendTo( tooltip ),
-			id = tooltip.uniqueId().attr( "id" );
-
-		this._addClass( content, "ui-tooltip-content" );
-		this._addClass( tooltip, "ui-tooltip", "ui-widget ui-widget-content" );
-
-		tooltip.appendTo( this._appendTo( element ) );
-
-		return this.tooltips[ id ] = {
-			element: element,
-			tooltip: tooltip
-		};
-	},
-
-	_find: function( target ) {
-		var id = target.data( "ui-tooltip-id" );
-		return id ? this.tooltips[ id ] : null;
-	},
-
-	_removeTooltip: function( tooltip ) {
-		tooltip.remove();
-		delete this.tooltips[ tooltip.attr( "id" ) ];
-	},
-
-	_appendTo: function( target ) {
-		var element = target.closest( ".ui-front, dialog" );
-
-		if ( !element.length ) {
-			element = this.document[ 0 ].body;
-		}
-
-		return element;
-	},
-
-	_destroy: function() {
-		var that = this;
-
-		// Close open tooltips
-		$.each( this.tooltips, function( id, tooltipData ) {
-
-			// Delegate to close method to handle common cleanup
-			var event = $.Event( "blur" ),
-				element = tooltipData.element;
-			event.target = event.currentTarget = element[ 0 ];
-			that.close( event, true );
-
-			// Remove immediately; destroying an open tooltip doesn't use the
-			// hide animation
-			$( "#" + id ).remove();
-
-			// Restore the title
-			if ( element.data( "ui-tooltip-title" ) ) {
-
-				// If the title attribute has changed since open(), don't restore
-				if ( !element.attr( "title" ) ) {
-					element.attr( "title", element.data( "ui-tooltip-title" ) );
-				}
-				element.removeData( "ui-tooltip-title" );
-			}
-		} );
-		this.liveRegion.remove();
-	}
-} );
-
-// DEPRECATED
-// TODO: Switch return back to widget declaration at top of file when this is removed
-if ( $.uiBackCompat !== false ) {
-
-	// Backcompat for tooltipClass option
-	$.widget( "ui.tooltip", $.ui.tooltip, {
-		options: {
-			tooltipClass: null
-		},
-		_tooltip: function() {
-			var tooltipData = this._superApply( arguments );
-			if ( this.options.tooltipClass ) {
-				tooltipData.tooltip.addClass( this.options.tooltipClass );
-			}
-			return tooltipData;
-		}
-	} );
-}
-
-var widgetsTooltip = $.ui.tooltip;
-
-
-
-
-}));
\ No newline at end of file
diff --git a/pagure/static/jquery-ui-1.12.0.min.js b/pagure/static/jquery-ui-1.12.0.min.js
deleted file mode 100644
index 32d6b54..0000000
--- a/pagure/static/jquery-ui-1.12.0.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*! jQuery UI - v1.12.0 - 2016-07-08
-* http://jqueryui.com
-* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
-* Copyright jQuery Foundation and other contributors; Licensed MIT */
-
-(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.0";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o,a=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,c=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;o=function(){var e=t("<div>").css("position","absolute").appendTo("body").offset({top:1.5,left:1.5}),i=1.5===e.offset().top;return e.remove(),o=function(){return i},i},t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=t.extend({},n);var p,g,m,_,v,b,y=t(n.of),w=t.position.getWithinInfo(n.within),k=t.position.getScrollInfo(w),x=(n.collision||"flip").split(" "),C={};return b=s(y),y[0].preventDefault&&(n.at="left top"),g=b.width,m=b.height,_=b.offset,v=t.extend({},_),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):c.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=c.test(i[1])?i[1]:"center",t=u.exec(i[0]),e=u.exec(i[1]),C[this]=[t?t[0]:0,e?e[0]:0],n[this]=[d.exec(i[0])[0],d.exec(i[1])[0]]}),1===x.length&&(x[1]=x[0]),"right"===n.at[0]?v.left+=g:"center"===n.at[0]&&(v.left+=g/2),"bottom"===n.at[1]?v.top+=m:"center"===n.at[1]&&(v.top+=m/2),p=e(C.at,g,m),v.left+=p[0],v.top+=p[1],this.each(function(){var s,l,c=t(this),u=c.outerWidth(),d=c.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=u+f+i(this,"marginRight")+k.width,I=d+b+i(this,"marginBottom")+k.height,T=t.extend({},v),P=e(C.my,c.outerWidth(),c.outerHeight());"right"===n.my[0]?T.left-=u:"center"===n.my[0]&&(T.left-=u/2),"bottom"===n.my[1]?T.top-=d:"center"===n.my[1]&&(T.top-=d/2),T.left+=P[0],T.top+=P[1],o()||(T.left=h(T.left),T.top=h(T.top)),s={marginLeft:f,marginTop:b},t.each(["left","top"],function(e,i){t.ui.position[x[e]]&&t.ui.position[x[e]][i](T,{targetWidth:g,targetHeight:m,elemWidth:u,elemHeight:d,collisionPosition:s,collisionWidth:D,collisionHeight:I,offset:[p[0]+P[0],p[1]+P[1]],my:n.my,at:n.at,within:w,elem:c})}),n.using&&(l=function(t){var e=_.left-T.left,i=e+g-u,s=_.top-T.top,o=s+m-d,h={target:{element:y,left:_.left,top:_.top,width:g,height:m},element:{element:c,left:T.left,top:T.top,width:u,height:d},horizontal:0>i?"left":e>0?"right":"center",vertical:0>o?"top":s>0?"bottom":"middle"};u>g&&g>r(e+i)&&(h.horizontal="center"),d>m&&m>r(s+o)&&(h.vertical="middle"),h.important=a(r(e),r(i))>a(r(s),r(o))?"horizontal":"vertical",n.using.call(this,t,h)}),c.offset(t.extend(T,{using:l}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,o=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-o-n;e.collisionWidth>o?h>0&&0>=l?(i=t.left+h+e.collisionWidth-o-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+o-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=a(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,o=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-o-n;e.collisionHeight>o?h>0&&0>=l?(i=t.top+h+e.collisionHeight-o-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+o-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=a(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,a=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-a-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-a-o,(0>i||r(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>r(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,a=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-a-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-a-o,(0>s||r(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>r(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.0",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);
-var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.0",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.0",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",n=String.fromCharCode(e.keyCode),o=!1,clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.0",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;
-e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.0",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(e["_"+s+"Options"]&&(a=e["_"+s+"Options"]("middle")),e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(t){var n=i.options.classes[t]||"";n=n.replace(g,"").trim(),s[t]=(n+" "+e[t]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.0",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){this.label.contents().not(this.element.add(this.icon).add(this.iconSpace)).remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.0",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.0"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s))
-}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,R,L=new Date,B=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),X=this._get(t,"stepMonths"),$=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-X,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+X,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",$){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=$?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,R=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(R?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"&#39;")+"'")+(R?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?"&#xa0;":R?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+($?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":"&#xa0;")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.0",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.0",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this._blurActiveElement(e),this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);this._getHandle(e)&&s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}
-},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.0",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog
-},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.0",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.0",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.0",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.0",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1
-},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td>&#160;</td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)
-})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.0",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.0",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href"),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.0",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip});
\ No newline at end of file
diff --git a/pagure/static/jquery-ui.js b/pagure/static/jquery-ui.js
deleted file mode 120000
index 53a1626..0000000
--- a/pagure/static/jquery-ui.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery-ui-1.12.0.js
\ No newline at end of file
diff --git a/pagure/static/jquery-ui.min.js b/pagure/static/jquery-ui.min.js
deleted file mode 120000
index 3658d31..0000000
--- a/pagure/static/jquery-ui.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery-ui-1.12.0.min.js
\ No newline at end of file
diff --git a/pagure/static/jquery.dotdotdot-1.8.3.js b/pagure/static/jquery.dotdotdot-1.8.3.js
deleted file mode 100644
index 972282a..0000000
--- a/pagure/static/jquery.dotdotdot-1.8.3.js
+++ /dev/null
@@ -1,759 +0,0 @@
-/*
- *	jQuery dotdotdot 1.8.3
- *
- *	Copyright (c) Fred Heusschen
- *	www.frebsite.nl
- *
- *	Plugin website:
- *	dotdotdot.frebsite.nl
- *
- *	Licensed under the MIT license.
- *	http://en.wikipedia.org/wiki/MIT_License
- */
-
-(function( $, undef )
-{
-	if ( $.fn.dotdotdot )
-	{
-		return;
-	}
-
-	$.fn.dotdotdot = function( o )
-	{
-		if ( this.length == 0 )
-		{
-			$.fn.dotdotdot.debug( 'No element found for "' + this.selector + '".' );
-			return this;
-		}
-		if ( this.length > 1 )
-		{
-			return this.each(
-				function()
-				{
-					$(this).dotdotdot( o );
-				}
-			);
-		}
-
-
-		var $dot = this;
-		var orgContent	= $dot.contents();
-
-		if ( $dot.data( 'dotdotdot' ) )
-		{
-			$dot.trigger( 'destroy.dot' );
-		}
-
-		$dot.data( 'dotdotdot-style', $dot.attr( 'style' ) || '' );
-		$dot.css( 'word-wrap', 'break-word' );
-		if ($dot.css( 'white-space' ) === 'nowrap')
-		{
-			$dot.css( 'white-space', 'normal' );
-		}
-
-		$dot.bind_events = function()
-		{
-			$dot.bind(
-				'update.dot',
-				function( e, c )
-				{
-					$dot.removeClass("is-truncated");
-					e.preventDefault();
-					e.stopPropagation();
-
-					switch( typeof opts.height )
-					{
-						case 'number':
-							opts.maxHeight = opts.height;
-							break;
-
-						case 'function':
-							opts.maxHeight = opts.height.call( $dot[ 0 ] );
-							break;
-
-						default:
-							opts.maxHeight = getTrueInnerHeight( $dot );
-							break;
-					}
-
-					opts.maxHeight += opts.tolerance;
-
-					if ( typeof c != 'undefined' )
-					{
-						if ( typeof c == 'string' || ('nodeType' in c && c.nodeType === 1) )
-						{
-					 		c = $('<div />').append( c ).contents();
-						}
-						if ( c instanceof $ )
-						{
-							orgContent = c;
-						}
-					}
-
-					$inr = $dot.wrapInner( '<div class="dotdotdot" />' ).children();
-					$inr.contents()
-						.detach()
-						.end()
-						.append( orgContent.clone( true ) )
-						.find( 'br' )
-						.replaceWith( '  <br />  ' )
-						.end()
-						.css({
-							'height'	: 'auto',
-							'width'		: 'auto',
-							'border'	: 'none',
-							'padding'	: 0,
-							'margin'	: 0
-						});
-
-					var after = false,
-						trunc = false;
-
-					if ( conf.afterElement )
-					{
-						after = conf.afterElement.clone( true );
-					    after.show();
-						conf.afterElement.detach();
-					}
-
-					if ( test( $inr, opts ) )
-					{
-						if ( opts.wrap == 'children' )
-						{
-							trunc = children( $inr, opts, after );
-						}
-						else
-						{
-							trunc = ellipsis( $inr, $dot, $inr, opts, after );
-						}
-					}
-					$inr.replaceWith( $inr.contents() );
-					$inr = null;
-
-					if ( $.isFunction( opts.callback ) )
-					{
-						opts.callback.call( $dot[ 0 ], trunc, orgContent );
-					}
-
-					conf.isTruncated = trunc;
-					return trunc;
-				}
-
-			).bind(
-				'isTruncated.dot',
-				function( e, fn )
-				{
-					e.preventDefault();
-					e.stopPropagation();
-
-					if ( typeof fn == 'function' )
-					{
-						fn.call( $dot[ 0 ], conf.isTruncated );
-					}
-					return conf.isTruncated;
-				}
-
-			).bind(
-				'originalContent.dot',
-				function( e, fn )
-				{
-					e.preventDefault();
-					e.stopPropagation();
-
-					if ( typeof fn == 'function' )
-					{
-						fn.call( $dot[ 0 ], orgContent );
-					}
-					return orgContent;
-				}
-
-			).bind(
-				'destroy.dot',
-				function( e )
-				{
-					e.preventDefault();
-					e.stopPropagation();
-
-					$dot.unwatch()
-						.unbind_events()
-						.contents()
-						.detach()
-						.end()
-						.append( orgContent )
-						.attr( 'style', $dot.data( 'dotdotdot-style' ) || '' )
-						.removeClass( 'is-truncated' )
-						.data( 'dotdotdot', false );
-				}
-			);
-			return $dot;
-		};	//	/bind_events
-
-		$dot.unbind_events = function()
-		{
-			$dot.unbind('.dot');
-			return $dot;
-		};	//	/unbind_events
-
-		$dot.watch = function()
-		{
-			$dot.unwatch();
-			if ( opts.watch == 'window' )
-			{
-				var $window = $(window),
-					_wWidth = $window.width(),
-					_wHeight = $window.height();
-
-				$window.bind(
-					'resize.dot' + conf.dotId,
-					function()
-					{
-						if ( _wWidth != $window.width() || _wHeight != $window.height() || !opts.windowResizeFix )
-						{
-							_wWidth = $window.width();
-							_wHeight = $window.height();
-
-							if ( watchInt )
-							{
-								clearInterval( watchInt );
-							}
-							watchInt = setTimeout(
-								function()
-								{
-									$dot.trigger( 'update.dot' );
-								}, 100
-							);
-						}
-					}
-				);
-			}
-			else
-			{
-				watchOrg = getSizes( $dot );
-				watchInt = setInterval(
-					function()
-					{
-						if ( $dot.is( ':visible' ) )
-						{
-							var watchNew = getSizes( $dot );
-							if ( watchOrg.width  != watchNew.width ||
-								 watchOrg.height != watchNew.height )
-							{
-								$dot.trigger( 'update.dot' );
-								watchOrg = watchNew;
-							}
-						}
-					}, 500
-				);
-			}
-			return $dot;
-		};
-		$dot.unwatch = function()
-		{
-			$(window).unbind( 'resize.dot' + conf.dotId );
-			if ( watchInt )
-			{
-				clearInterval( watchInt );
-			}
-			return $dot;
-		};
-
-		var	opts 		= $.extend( true, {}, $.fn.dotdotdot.defaults, o ),
-			conf		= {},
-			watchOrg	= {},
-			watchInt	= null,
-			$inr		= null;
-
-
-		if ( !( opts.lastCharacter.remove instanceof Array ) )
-		{
-			opts.lastCharacter.remove = $.fn.dotdotdot.defaultArrays.lastCharacter.remove;
-		}
-		if ( !( opts.lastCharacter.noEllipsis instanceof Array ) )
-		{
-			opts.lastCharacter.noEllipsis = $.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis;
-		}
-
-
-		conf.afterElement	= getElement( opts.after, $dot );
-		conf.isTruncated	= false;
-		conf.dotId			= dotId++;
-
-
-		$dot.data( 'dotdotdot', true )
-			.bind_events()
-			.trigger( 'update.dot' );
-
-		if ( opts.watch )
-		{
-			$dot.watch();
-		}
-
-		return $dot;
-	};
-
-
-	//	public
-	$.fn.dotdotdot.defaults = {
-		'ellipsis'			: '... ',
-		'wrap'				: 'word',
-		'fallbackToLetter'	: true,
-		'lastCharacter'		: {},
-		'tolerance'			: 0,
-		'callback'			: null,
-		'after'				: null,
-		'height'			: null,
-		'watch'				: false,
-		'windowResizeFix'	: true
-	};
-	$.fn.dotdotdot.defaultArrays = {
-		'lastCharacter'		: {
-			'remove'			: [ ' ', '\u3000', ',', ';', '.', '!', '?' ],
-			'noEllipsis'		: []
-		}
-	};
-	$.fn.dotdotdot.debug = function( msg ) {};
-
-
-	//	private
-	var dotId = 1;
-
-	function children( $elem, o, after )
-	{
-		var $elements 	= $elem.children(),
-			isTruncated	= false;
-
-		$elem.empty();
-
-		for ( var a = 0, l = $elements.length; a < l; a++ )
-		{
-			var $e = $elements.eq( a );
-			$elem.append( $e );
-			if ( after )
-			{
-				$elem.append( after );
-			}
-			if ( test( $elem, o ) )
-			{
-				$e.remove();
-				isTruncated = true;
-				break;
-			}
-			else
-			{
-				if ( after )
-				{
-					after.detach();
-				}
-			}
-		}
-		return isTruncated;
-	}
-	function ellipsis( $elem, $d, $i, o, after )
-	{
-		var isTruncated	= false;
-
-		//	Don't put the ellipsis directly inside these elements
-		var notx = 'a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style';
-
-		//	Don't remove these elements even if they are after the ellipsis
-		var noty = 'script, .dotdotdot-keep';
-
-		$elem
-			.contents()
-			.detach()
-			.each(
-				function()
-				{
-
-					var e	= this,
-						$e	= $(e);
-
-					if ( typeof e == 'undefined' )
-					{
-						return true;
-					}
-					else if ( $e.is( noty ) )
-					{
-						$elem.append( $e );
-					}
-					else if ( isTruncated )
-					{
-						return true;
-					}
-					else
-					{
-						$elem.append( $e );
-						if ( after && !$e.is( o.after ) && !$e.find( o.after ).length  )
-						{
-							$elem[ $elem.is( notx ) ? 'after' : 'append' ]( after );
-						}
-						if ( test( $i, o ) )
-						{
-							if ( e.nodeType == 3 ) // node is TEXT
-							{
-								isTruncated = ellipsisElement( $e, $d, $i, o, after );
-							}
-							else
-							{
-								isTruncated = ellipsis( $e, $d, $i, o, after );
-							}
-						}
-
-						if ( !isTruncated )
-						{
-							if ( after )
-							{
-								after.detach();
-							}
-						}
-					}
-				}
-			);
-		$d.addClass("is-truncated");
-		return isTruncated;
-	}
-	function ellipsisElement( $e, $d, $i, o, after )
-	{
-		var e = $e[ 0 ];
-
-		if ( !e )
-		{
-			return false;
-		}
-
-		var txt			= getTextContent( e ),
-			space		= ( txt.indexOf(' ') !== -1 ) ? ' ' : '\u3000',
-			separator	= ( o.wrap == 'letter' ) ? '' : space,
-			textArr		= txt.split( separator ),
-			position 	= -1,
-			midPos		= -1,
-			startPos	= 0,
-			endPos		= textArr.length - 1;
-
-
-		//	Only one word
-		if ( o.fallbackToLetter && startPos == 0 && endPos == 0 )
-		{
-			separator	= '';
-			textArr		= txt.split( separator );
-			endPos		= textArr.length - 1;
-		}
-
-		while ( startPos <= endPos && !( startPos == 0 && endPos == 0 ) )
-		{
-			var m = Math.floor( ( startPos + endPos ) / 2 );
-			if ( m == midPos )
-			{
-				break;
-			}
-			midPos = m;
-
-			setTextContent( e, textArr.slice( 0, midPos + 1 ).join( separator ) + o.ellipsis );
-			$i.children()
-				.each(
-					function()
-					{
-						$(this).toggle().toggle();
-					}
-				);
-
-			if ( !test( $i, o ) )
-			{
-				position = midPos;
-				startPos = midPos;
-			}
-			else
-			{
-				endPos = midPos;
-
-				//	Fallback to letter
-				if (o.fallbackToLetter && startPos == 0 && endPos == 0 )
-				{
-					separator	= '';
-					textArr		= textArr[ 0 ].split( separator );
-					position	= -1;
-					midPos		= -1;
-					startPos	= 0;
-					endPos		= textArr.length - 1;
-				}
-			}
-		}
-
-		if ( position != -1 && !( textArr.length == 1 && textArr[ 0 ].length == 0 ) )
-		{
-			txt = addEllipsis( textArr.slice( 0, position + 1 ).join( separator ), o );
-			setTextContent( e, txt );
-		}
-		else
-		{
-			var $w = $e.parent();
-			$e.detach();
-
-			var afterLength = ( after && after.closest($w).length ) ? after.length : 0;
-
-			if ( $w.contents().length > afterLength )
-			{
-				e = findLastTextNode( $w.contents().eq( -1 - afterLength ), $d );
-			}
-			else
-			{
-				e = findLastTextNode( $w, $d, true );
-				if ( !afterLength )
-				{
-					$w.detach();
-				}
-			}
-			if ( e )
-			{
-				txt = addEllipsis( getTextContent( e ), o );
-				setTextContent( e, txt );
-				if ( afterLength && after )
-				{
-					var $parent = after.parent();
-
-					$(e).parent().append( after );
-
-					if ( !$.trim( $parent.html() ) )
-					{
-						$parent.remove();
-					}
-				}
-			}
-		}
-
-		return true;
-	}
-	function test( $i, o )
-	{
-		return $i.innerHeight() > o.maxHeight;
-	}
-	function addEllipsis( txt, o )
-	{
-		while( $.inArray( txt.slice( -1 ), o.lastCharacter.remove ) > -1 )
-		{
-			txt = txt.slice( 0, -1 );
-		}
-		if ( $.inArray( txt.slice( -1 ), o.lastCharacter.noEllipsis ) < 0 )
-		{
-			txt += o.ellipsis;
-		}
-		return txt;
-	}
-	function getSizes( $d )
-	{
-		return {
-			'width'	: $d.innerWidth(),
-			'height': $d.innerHeight()
-		};
-	}
-	function setTextContent( e, content )
-	{
-		if ( e.innerText )
-		{
-			e.innerText = content;
-		}
-		else if ( e.nodeValue )
-		{
-			e.nodeValue = content;
-		}
-		else if (e.textContent)
-		{
-			e.textContent = content;
-		}
-
-	}
-	function getTextContent( e )
-	{
-		if ( e.innerText )
-		{
-			return e.innerText;
-		}
-		else if ( e.nodeValue )
-		{
-			return e.nodeValue;
-		}
-		else if ( e.textContent )
-		{
-			return e.textContent;
-		}
-		else
-		{
-			return "";
-		}
-	}
-	function getPrevNode( n )
-	{
-		do
-		{
-			n = n.previousSibling;
-		}
-		while ( n && n.nodeType !== 1 && n.nodeType !== 3 );
-
-		return n;
-	}
-	function findLastTextNode( $el, $top, excludeCurrent )
-	{
-		var e = $el && $el[ 0 ], p;
-		if ( e )
-		{
-			if ( !excludeCurrent )
-			{
-				if ( e.nodeType === 3 )
-				{
-					return e;
-				}
-				if ( $.trim( $el.text() ) )
-				{
-					return findLastTextNode( $el.contents().last(), $top );
-				}
-			}
-			p = getPrevNode( e );
-			while ( !p )
-			{
-				$el = $el.parent();
-				if ( $el.is( $top ) || !$el.length )
-				{
-					return false;
-				}
-				p = getPrevNode( $el[0] );
-			}
-			if ( p )
-			{
-				return findLastTextNode( $(p), $top );
-			}
-		}
-		return false;
-	}
-	function getElement( e, $i )
-	{
-		if ( !e )
-		{
-			return false;
-		}
-		if ( typeof e === 'string' )
-		{
-			e = $(e, $i);
-			return ( e.length )
-				? e
-				: false;
-		}
-		return !e.jquery
-			? false
-			: e;
-	}
-	function getTrueInnerHeight( $el )
-	{
-		var h = $el.innerHeight(),
-			a = [ 'paddingTop', 'paddingBottom' ];
-
-		for ( var z = 0, l = a.length; z < l; z++ )
-		{
-			var m = parseInt( $el.css( a[ z ] ), 10 );
-			if ( isNaN( m ) )
-			{
-				m = 0;
-			}
-			h -= m;
-		}
-		return h;
-	}
-
-
-	//	override jQuery.html
-	var _orgHtml = $.fn.html;
-	$.fn.html = function( str )
-	{
-		if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) )
-		{
-			return this.trigger( 'update', [ str ] );
-		}
-		return _orgHtml.apply( this, arguments );
-	};
-
-
-	//	override jQuery.text
-	var _orgText = $.fn.text;
-	$.fn.text = function( str )
-	{
-		if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) )
-		{
-			str = $( '<div />' ).text( str ).html();
-			return this.trigger( 'update', [ str ] );
-		}
-		return _orgText.apply( this, arguments );
-	};
-
-
-})( jQuery );
-
-/*
-
-## Automatic parsing for CSS classes
-Contributed by [Ramil Valitov](https://github.com/rvalitov)
-
-### The idea
-You can add one or several CSS classes to HTML elements to automatically invoke "jQuery.dotdotdot functionality" and some extra features. It allows to use jQuery.dotdotdot only by adding appropriate CSS classes without JS programming.
-
-### Available classes and their description
-* dot-ellipsis - automatically invoke jQuery.dotdotdot to this element. This class must be included if you plan to use other classes below.
-* dot-resize-update - automatically update if window resize event occurs. It's equivalent to option `watch:'window'`.
-* dot-timer-update - automatically update if window resize event occurs. It's equivalent to option `watch:true`.
-* dot-load-update - automatically update after the window has beem completely rendered. Can be useful if your content is generated dynamically using using JS and, hence, jQuery.dotdotdot can't correctly detect the height of the element before it's rendered completely.
-* dot-height-XXX - available height of content area in pixels, where XXX is a number, e.g. can be `dot-height-35` if you want to set maximum height for 35 pixels. It's equivalent to option `height:'XXX'`.
-
-### Usage examples
-*Adding jQuery.dotdotdot to element*
-    
-	<div class="dot-ellipsis">
-	<p>Lorem Ipsum is simply dummy text.</p>
-	</div>
-	
-*Adding jQuery.dotdotdot to element with update on window resize*
-    
-	<div class="dot-ellipsis dot-resize-update">
-	<p>Lorem Ipsum is simply dummy text.</p>
-	</div>
-	
-*Adding jQuery.dotdotdot to element with predefined height of 50px*
-    
-	<div class="dot-ellipsis dot-height-50">
-	<p>Lorem Ipsum is simply dummy text.</p>
-	</div>
-	
-*/
-
-jQuery(document).ready(function($) {
-	//We only invoke jQuery.dotdotdot on elements that have dot-ellipsis class
-	$(".dot-ellipsis").each(function(){
-		//Checking if update on window resize required
-		var watch_window=$(this).hasClass("dot-resize-update");
-		
-		//Checking if update on timer required
-		var watch_timer=$(this).hasClass("dot-timer-update");
-		
-		//Checking if height set
-		var height=0;		
-		var classList = $(this).attr('class').split(/\s+/);
-		$.each(classList, function(index, item) {
-			var matchResult = item.match(/^dot-height-(\d+)$/);
-			if(matchResult !== null)
-				height = Number(matchResult[1]);
-		});
-		
-		//Invoking jQuery.dotdotdot
-		var x = new Object();
-		if (watch_timer)
-			x.watch=true;
-		if (watch_window)
-			x.watch='window';
-		if (height>0)
-			x.height=height;
-		$(this).dotdotdot(x);
-	});
-		
-});
-
-//Updating elements (if any) on window.load event
-jQuery(window).on('load', function(){
-	jQuery(".dot-ellipsis.dot-load-update").trigger("update.dot");
-});
diff --git a/pagure/static/jquery.dotdotdot-1.8.3.min.js b/pagure/static/jquery.dotdotdot-1.8.3.min.js
deleted file mode 100644
index 690d3a4..0000000
--- a/pagure/static/jquery.dotdotdot-1.8.3.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- *	jQuery dotdotdot 1.8.3
- *
- *	Copyright (c) Fred Heusschen
- *	www.frebsite.nl
- *
- *	Plugin website:
- *	dotdotdot.frebsite.nl
- *
- *	Licensed under the MIT license.
- *	http://en.wikipedia.org/wiki/MIT_License
- */
-!function(t,e){function n(t,e,n){var r=t.children(),o=!1;t.empty();for(var i=0,d=r.length;d>i;i++){var l=r.eq(i);if(t.append(l),n&&t.append(n),a(t,e)){l.remove(),o=!0;break}n&&n.detach()}return o}function r(e,n,i,d,l){var s=!1,c="a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style",u="script, .dotdotdot-keep";return e.contents().detach().each(function(){var h=this,f=t(h);if("undefined"==typeof h)return!0;if(f.is(u))e.append(f);else{if(s)return!0;e.append(f),!l||f.is(d.after)||f.find(d.after).length||e[e.is(c)?"after":"append"](l),a(i,d)&&(s=3==h.nodeType?o(f,n,i,d,l):r(f,n,i,d,l)),s||l&&l.detach()}}),n.addClass("is-truncated"),s}function o(e,n,r,o,d){var c=e[0];if(!c)return!1;var h=s(c),f=-1!==h.indexOf(" ")?" ":"　",p="letter"==o.wrap?"":f,g=h.split(p),v=-1,w=-1,b=0,m=g.length-1;for(o.fallbackToLetter&&0==b&&0==m&&(p="",g=h.split(p),m=g.length-1);m>=b&&(0!=b||0!=m);){var y=Math.floor((b+m)/2);if(y==w)break;w=y,l(c,g.slice(0,w+1).join(p)+o.ellipsis),r.children().each(function(){t(this).toggle().toggle()}),a(r,o)?(m=w,o.fallbackToLetter&&0==b&&0==m&&(p="",g=g[0].split(p),v=-1,w=-1,b=0,m=g.length-1)):(v=w,b=w)}if(-1==v||1==g.length&&0==g[0].length){var x=e.parent();e.detach();var C=d&&d.closest(x).length?d.length:0;if(x.contents().length>C?c=u(x.contents().eq(-1-C),n):(c=u(x,n,!0),C||x.detach()),c&&(h=i(s(c),o),l(c,h),C&&d)){var T=d.parent();t(c).parent().append(d),t.trim(T.html())||T.remove()}}else h=i(g.slice(0,v+1).join(p),o),l(c,h);return!0}function a(t,e){return t.innerHeight()>e.maxHeight}function i(e,n){for(;t.inArray(e.slice(-1),n.lastCharacter.remove)>-1;)e=e.slice(0,-1);return t.inArray(e.slice(-1),n.lastCharacter.noEllipsis)<0&&(e+=n.ellipsis),e}function d(t){return{width:t.innerWidth(),height:t.innerHeight()}}function l(t,e){t.innerText?t.innerText=e:t.nodeValue?t.nodeValue=e:t.textContent&&(t.textContent=e)}function s(t){return t.innerText?t.innerText:t.nodeValue?t.nodeValue:t.textContent?t.textContent:""}function c(t){do t=t.previousSibling;while(t&&1!==t.nodeType&&3!==t.nodeType);return t}function u(e,n,r){var o,a=e&&e[0];if(a){if(!r){if(3===a.nodeType)return a;if(t.trim(e.text()))return u(e.contents().last(),n)}for(o=c(a);!o;){if(e=e.parent(),e.is(n)||!e.length)return!1;o=c(e[0])}if(o)return u(t(o),n)}return!1}function h(e,n){return e?"string"==typeof e?(e=t(e,n),e.length?e:!1):e.jquery?e:!1:!1}function f(t){for(var e=t.innerHeight(),n=["paddingTop","paddingBottom"],r=0,o=n.length;o>r;r++){var a=parseInt(t.css(n[r]),10);isNaN(a)&&(a=0),e-=a}return e}if(!t.fn.dotdotdot){t.fn.dotdotdot=function(e){if(0==this.length)return t.fn.dotdotdot.debug('No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){t(this).dotdotdot(e)});var o=this,i=o.contents();o.data("dotdotdot")&&o.trigger("destroy.dot"),o.data("dotdotdot-style",o.attr("style")||""),o.css("word-wrap","break-word"),"nowrap"===o.css("white-space")&&o.css("white-space","normal"),o.bind_events=function(){return o.bind("update.dot",function(e,d){switch(o.removeClass("is-truncated"),e.preventDefault(),e.stopPropagation(),typeof l.height){case"number":l.maxHeight=l.height;break;case"function":l.maxHeight=l.height.call(o[0]);break;default:l.maxHeight=f(o)}l.maxHeight+=l.tolerance,"undefined"!=typeof d&&(("string"==typeof d||"nodeType"in d&&1===d.nodeType)&&(d=t("<div />").append(d).contents()),d instanceof t&&(i=d)),g=o.wrapInner('<div class="dotdotdot" />').children(),g.contents().detach().end().append(i.clone(!0)).find("br").replaceWith("  <br />  ").end().css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var c=!1,u=!1;return s.afterElement&&(c=s.afterElement.clone(!0),c.show(),s.afterElement.detach()),a(g,l)&&(u="children"==l.wrap?n(g,l,c):r(g,o,g,l,c)),g.replaceWith(g.contents()),g=null,t.isFunction(l.callback)&&l.callback.call(o[0],u,i),s.isTruncated=u,u}).bind("isTruncated.dot",function(t,e){return t.preventDefault(),t.stopPropagation(),"function"==typeof e&&e.call(o[0],s.isTruncated),s.isTruncated}).bind("originalContent.dot",function(t,e){return t.preventDefault(),t.stopPropagation(),"function"==typeof e&&e.call(o[0],i),i}).bind("destroy.dot",function(t){t.preventDefault(),t.stopPropagation(),o.unwatch().unbind_events().contents().detach().end().append(i).attr("style",o.data("dotdotdot-style")||"").removeClass("is-truncated").data("dotdotdot",!1)}),o},o.unbind_events=function(){return o.unbind(".dot"),o},o.watch=function(){if(o.unwatch(),"window"==l.watch){var e=t(window),n=e.width(),r=e.height();e.bind("resize.dot"+s.dotId,function(){n==e.width()&&r==e.height()&&l.windowResizeFix||(n=e.width(),r=e.height(),u&&clearInterval(u),u=setTimeout(function(){o.trigger("update.dot")},100))})}else c=d(o),u=setInterval(function(){if(o.is(":visible")){var t=d(o);c.width==t.width&&c.height==t.height||(o.trigger("update.dot"),c=t)}},500);return o},o.unwatch=function(){return t(window).unbind("resize.dot"+s.dotId),u&&clearInterval(u),o};var l=t.extend(!0,{},t.fn.dotdotdot.defaults,e),s={},c={},u=null,g=null;return l.lastCharacter.remove instanceof Array||(l.lastCharacter.remove=t.fn.dotdotdot.defaultArrays.lastCharacter.remove),l.lastCharacter.noEllipsis instanceof Array||(l.lastCharacter.noEllipsis=t.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis),s.afterElement=h(l.after,o),s.isTruncated=!1,s.dotId=p++,o.data("dotdotdot",!0).bind_events().trigger("update.dot"),l.watch&&o.watch(),o},t.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",fallbackToLetter:!0,lastCharacter:{},tolerance:0,callback:null,after:null,height:null,watch:!1,windowResizeFix:!0},t.fn.dotdotdot.defaultArrays={lastCharacter:{remove:[" ","　",",",";",".","!","?"],noEllipsis:[]}},t.fn.dotdotdot.debug=function(t){};var p=1,g=t.fn.html;t.fn.html=function(n){return n!=e&&!t.isFunction(n)&&this.data("dotdotdot")?this.trigger("update",[n]):g.apply(this,arguments)};var v=t.fn.text;t.fn.text=function(n){return n!=e&&!t.isFunction(n)&&this.data("dotdotdot")?(n=t("<div />").text(n).html(),this.trigger("update",[n])):v.apply(this,arguments)}}}(jQuery),jQuery(document).ready(function(t){t(".dot-ellipsis").each(function(){var e=t(this).hasClass("dot-resize-update"),n=t(this).hasClass("dot-timer-update"),r=0,o=t(this).attr("class").split(/\s+/);t.each(o,function(t,e){var n=e.match(/^dot-height-(\d+)$/);null!==n&&(r=Number(n[1]))});var a=new Object;n&&(a.watch=!0),e&&(a.watch="window"),r>0&&(a.height=r),t(this).dotdotdot(a)})}),jQuery(window).on("load",function(){jQuery(".dot-ellipsis.dot-load-update").trigger("update.dot")});
\ No newline at end of file
diff --git a/pagure/static/jquery.dotdotdot.js b/pagure/static/jquery.dotdotdot.js
deleted file mode 120000
index 99664e0..0000000
--- a/pagure/static/jquery.dotdotdot.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.dotdotdot-1.8.3.js
\ No newline at end of file
diff --git a/pagure/static/jquery.dotdotdot.min.js b/pagure/static/jquery.dotdotdot.min.js
deleted file mode 120000
index 3a56209..0000000
--- a/pagure/static/jquery.dotdotdot.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery.dotdotdot-1.8.3.min.js
\ No newline at end of file
diff --git a/pagure/static/jquery.js b/pagure/static/jquery.js
deleted file mode 120000
index 99ed19d..0000000
--- a/pagure/static/jquery.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery-1.10.2.js
\ No newline at end of file
diff --git a/pagure/static/jquery.min.js b/pagure/static/jquery.min.js
deleted file mode 120000
index 64ef93e..0000000
--- a/pagure/static/jquery.min.js
+++ /dev/null
@@ -1 +0,0 @@
-jquery-1.10.2.min.js
\ No newline at end of file
diff --git a/pagure/static/open-iconic/css/open-iconic-1.1.1.css b/pagure/static/open-iconic/css/open-iconic-1.1.1.css
deleted file mode 100644
index 301a138..0000000
--- a/pagure/static/open-iconic/css/open-iconic-1.1.1.css
+++ /dev/null
@@ -1,511 +0,0 @@
-
-@font-face {
-  font-family: 'Icons';
-  src: url('../fonts/open-iconic.eot');
-  src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-.oi[data-glyph].oi-text-replace {
-  font-size: 0;
-  line-height: 0;
-}
-
-.oi[data-glyph].oi-text-replace:before {
-  width: 1em;
-  text-align: center;
-}
-
-.oi[data-glyph]:before {
-  font-family: 'Icons';
-  display: inline-block;
-  speak: none;
-  line-height: 1;
-  vertical-align: baseline;
-  font-weight: normal;
-  font-style: normal;
-  -webkit-font-smoothing: antialiased;
-  -moz-osx-font-smoothing: grayscale;
-}
-
-.oi[data-glyph]:empty:before {
-  width: 1em;
-  text-align: center;
-  box-sizing: content-box;
-}
-
-.oi[data-glyph].oi-align-left:before {
-  text-align: left;
-}
-
-.oi[data-glyph].oi-align-right:before {
-  text-align: right;
-}
-
-.oi[data-glyph].oi-align-center:before {
-  text-align: center;
-}
-
-.oi[data-glyph].oi-flip-horizontal:before {
-  -webkit-transform: scale(-1, 1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, 1);
-}
-.oi[data-glyph].oi-flip-vertical:before {
-  -webkit-transform: scale(1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(1, -1);
-}
-.oi[data-glyph].oi-flip-horizontal-vertical:before {
-  -webkit-transform: scale(-1, -1);
-  -ms-transform: scale(-1, 1);
-  transform: scale(-1, -1);
-}
-
-
-.oi[data-glyph=account-login]:before { content:'\e000'; }
-
-.oi[data-glyph=account-logout]:before { content:'\e001'; }
-
-.oi[data-glyph=action-redo]:before { content:'\e002'; }
-
-.oi[data-glyph=action-undo]:before { content:'\e003'; }
-
-.oi[data-glyph=align-center]:before { content:'\e004'; }
-
-.oi[data-glyph=align-left]:before { content:'\e005'; }
-
-.oi[data-glyph=align-right]:before { content:'\e006'; }
-
-.oi[data-glyph=aperture]:before { content:'\e007'; }
-
-.oi[data-glyph=arrow-bottom]:before { content:'\e008'; }
-
-.oi[data-glyph=arrow-circle-bottom]:before { content:'\e009'; }
-
-.oi[data-glyph=arrow-circle-left]:before { content:'\e00a'; }
-
-.oi[data-glyph=arrow-circle-right]:before { content:'\e00b'; }
-
-.oi[data-glyph=arrow-circle-top]:before { content:'\e00c'; }
-
-.oi[data-glyph=arrow-left]:before { content:'\e00d'; }
-
-.oi[data-glyph=arrow-right]:before { content:'\e00e'; }
-
-.oi[data-glyph=arrow-thick-bottom]:before { content:'\e00f'; }
-
-.oi[data-glyph=arrow-thick-left]:before { content:'\e010'; }
-
-.oi[data-glyph=arrow-thick-right]:before { content:'\e011'; }
-
-.oi[data-glyph=arrow-thick-top]:before { content:'\e012'; }
-
-.oi[data-glyph=arrow-top]:before { content:'\e013'; }
-
-.oi[data-glyph=audio-spectrum]:before { content:'\e014'; }
-
-.oi[data-glyph=audio]:before { content:'\e015'; }
-
-.oi[data-glyph=badge]:before { content:'\e016'; }
-
-.oi[data-glyph=ban]:before { content:'\e017'; }
-
-.oi[data-glyph=bar-chart]:before { content:'\e018'; }
-
-.oi[data-glyph=basket]:before { content:'\e019'; }
-
-.oi[data-glyph=battery-empty]:before { content:'\e01a'; }
-
-.oi[data-glyph=battery-full]:before { content:'\e01b'; }
-
-.oi[data-glyph=beaker]:before { content:'\e01c'; }
-
-.oi[data-glyph=bell]:before { content:'\e01d'; }
-
-.oi[data-glyph=bluetooth]:before { content:'\e01e'; }
-
-.oi[data-glyph=bold]:before { content:'\e01f'; }
-
-.oi[data-glyph=bolt]:before { content:'\e020'; }
-
-.oi[data-glyph=book]:before { content:'\e021'; }
-
-.oi[data-glyph=bookmark]:before { content:'\e022'; }
-
-.oi[data-glyph=box]:before { content:'\e023'; }
-
-.oi[data-glyph=briefcase]:before { content:'\e024'; }
-
-.oi[data-glyph=british-pound]:before { content:'\e025'; }
-
-.oi[data-glyph=browser]:before { content:'\e026'; }
-
-.oi[data-glyph=brush]:before { content:'\e027'; }
-
-.oi[data-glyph=bug]:before { content:'\e028'; }
-
-.oi[data-glyph=bullhorn]:before { content:'\e029'; }
-
-.oi[data-glyph=calculator]:before { content:'\e02a'; }
-
-.oi[data-glyph=calendar]:before { content:'\e02b'; }
-
-.oi[data-glyph=camera-slr]:before { content:'\e02c'; }
-
-.oi[data-glyph=caret-bottom]:before { content:'\e02d'; }
-
-.oi[data-glyph=caret-left]:before { content:'\e02e'; }
-
-.oi[data-glyph=caret-right]:before { content:'\e02f'; }
-
-.oi[data-glyph=caret-top]:before { content:'\e030'; }
-
-.oi[data-glyph=cart]:before { content:'\e031'; }
-
-.oi[data-glyph=chat]:before { content:'\e032'; }
-
-.oi[data-glyph=check]:before { content:'\e033'; }
-
-.oi[data-glyph=chevron-bottom]:before { content:'\e034'; }
-
-.oi[data-glyph=chevron-left]:before { content:'\e035'; }
-
-.oi[data-glyph=chevron-right]:before { content:'\e036'; }
-
-.oi[data-glyph=chevron-top]:before { content:'\e037'; }
-
-.oi[data-glyph=circle-check]:before { content:'\e038'; }
-
-.oi[data-glyph=circle-x]:before { content:'\e039'; }
-
-.oi[data-glyph=clipboard]:before { content:'\e03a'; }
-
-.oi[data-glyph=clock]:before { content:'\e03b'; }
-
-.oi[data-glyph=cloud-download]:before { content:'\e03c'; }
-
-.oi[data-glyph=cloud-upload]:before { content:'\e03d'; }
-
-.oi[data-glyph=cloud]:before { content:'\e03e'; }
-
-.oi[data-glyph=cloudy]:before { content:'\e03f'; }
-
-.oi[data-glyph=code]:before { content:'\e040'; }
-
-.oi[data-glyph=cog]:before { content:'\e041'; }
-
-.oi[data-glyph=collapse-down]:before { content:'\e042'; }
-
-.oi[data-glyph=collapse-left]:before { content:'\e043'; }
-
-.oi[data-glyph=collapse-right]:before { content:'\e044'; }
-
-.oi[data-glyph=collapse-up]:before { content:'\e045'; }
-
-.oi[data-glyph=command]:before { content:'\e046'; }
-
-.oi[data-glyph=comment-square]:before { content:'\e047'; }
-
-.oi[data-glyph=compass]:before { content:'\e048'; }
-
-.oi[data-glyph=contrast]:before { content:'\e049'; }
-
-.oi[data-glyph=copywriting]:before { content:'\e04a'; }
-
-.oi[data-glyph=credit-card]:before { content:'\e04b'; }
-
-.oi[data-glyph=crop]:before { content:'\e04c'; }
-
-.oi[data-glyph=dashboard]:before { content:'\e04d'; }
-
-.oi[data-glyph=data-transfer-download]:before { content:'\e04e'; }
-
-.oi[data-glyph=data-transfer-upload]:before { content:'\e04f'; }
-
-.oi[data-glyph=delete]:before { content:'\e050'; }
-
-.oi[data-glyph=dial]:before { content:'\e051'; }
-
-.oi[data-glyph=document]:before { content:'\e052'; }
-
-.oi[data-glyph=dollar]:before { content:'\e053'; }
-
-.oi[data-glyph=double-quote-sans-left]:before { content:'\e054'; }
-
-.oi[data-glyph=double-quote-sans-right]:before { content:'\e055'; }
-
-.oi[data-glyph=double-quote-serif-left]:before { content:'\e056'; }
-
-.oi[data-glyph=double-quote-serif-right]:before { content:'\e057'; }
-
-.oi[data-glyph=droplet]:before { content:'\e058'; }
-
-.oi[data-glyph=eject]:before { content:'\e059'; }
-
-.oi[data-glyph=elevator]:before { content:'\e05a'; }
-
-.oi[data-glyph=ellipses]:before { content:'\e05b'; }
-
-.oi[data-glyph=envelope-closed]:before { content:'\e05c'; }
-
-.oi[data-glyph=envelope-open]:before { content:'\e05d'; }
-
-.oi[data-glyph=euro]:before { content:'\e05e'; }
-
-.oi[data-glyph=excerpt]:before { content:'\e05f'; }
-
-.oi[data-glyph=expand-down]:before { content:'\e060'; }
-
-.oi[data-glyph=expand-left]:before { content:'\e061'; }
-
-.oi[data-glyph=expand-right]:before { content:'\e062'; }
-
-.oi[data-glyph=expand-up]:before { content:'\e063'; }
-
-.oi[data-glyph=external-link]:before { content:'\e064'; }
-
-.oi[data-glyph=eye]:before { content:'\e065'; }
-
-.oi[data-glyph=eyedropper]:before { content:'\e066'; }
-
-.oi[data-glyph=file]:before { content:'\e067'; }
-
-.oi[data-glyph=fire]:before { content:'\e068'; }
-
-.oi[data-glyph=flag]:before { content:'\e069'; }
-
-.oi[data-glyph=flash]:before { content:'\e06a'; }
-
-.oi[data-glyph=folder]:before { content:'\e06b'; }
-
-.oi[data-glyph=fork]:before { content:'\e06c'; }
-
-.oi[data-glyph=fullscreen-enter]:before { content:'\e06d'; }
-
-.oi[data-glyph=fullscreen-exit]:before { content:'\e06e'; }
-
-.oi[data-glyph=globe]:before { content:'\e06f'; }
-
-.oi[data-glyph=graph]:before { content:'\e070'; }
-
-.oi[data-glyph=grid-four-up]:before { content:'\e071'; }
-
-.oi[data-glyph=grid-three-up]:before { content:'\e072'; }
-
-.oi[data-glyph=grid-two-up]:before { content:'\e073'; }
-
-.oi[data-glyph=hard-drive]:before { content:'\e074'; }
-
-.oi[data-glyph=header]:before { content:'\e075'; }
-
-.oi[data-glyph=headphones]:before { content:'\e076'; }
-
-.oi[data-glyph=heart]:before { content:'\e077'; }
-
-.oi[data-glyph=home]:before { content:'\e078'; }
-
-.oi[data-glyph=image]:before { content:'\e079'; }
-
-.oi[data-glyph=inbox]:before { content:'\e07a'; }
-
-.oi[data-glyph=infinity]:before { content:'\e07b'; }
-
-.oi[data-glyph=info]:before { content:'\e07c'; }
-
-.oi[data-glyph=italic]:before { content:'\e07d'; }
-
-.oi[data-glyph=justify-center]:before { content:'\e07e'; }
-
-.oi[data-glyph=justify-left]:before { content:'\e07f'; }
-
-.oi[data-glyph=justify-right]:before { content:'\e080'; }
-
-.oi[data-glyph=key]:before { content:'\e081'; }
-
-.oi[data-glyph=laptop]:before { content:'\e082'; }
-
-.oi[data-glyph=layers]:before { content:'\e083'; }
-
-.oi[data-glyph=lightbulb]:before { content:'\e084'; }
-
-.oi[data-glyph=link-broken]:before { content:'\e085'; }
-
-.oi[data-glyph=link-intact]:before { content:'\e086'; }
-
-.oi[data-glyph=list-rich]:before { content:'\e087'; }
-
-.oi[data-glyph=list]:before { content:'\e088'; }
-
-.oi[data-glyph=location]:before { content:'\e089'; }
-
-.oi[data-glyph=lock-locked]:before { content:'\e08a'; }
-
-.oi[data-glyph=lock-unlocked]:before { content:'\e08b'; }
-
-.oi[data-glyph=loop-circular]:before { content:'\e08c'; }
-
-.oi[data-glyph=loop-square]:before { content:'\e08d'; }
-
-.oi[data-glyph=loop]:before { content:'\e08e'; }
-
-.oi[data-glyph=magnifying-glass]:before { content:'\e08f'; }
-
-.oi[data-glyph=map-marker]:before { content:'\e090'; }
-
-.oi[data-glyph=map]:before { content:'\e091'; }
-
-.oi[data-glyph=media-pause]:before { content:'\e092'; }
-
-.oi[data-glyph=media-play]:before { content:'\e093'; }
-
-.oi[data-glyph=media-record]:before { content:'\e094'; }
-
-.oi[data-glyph=media-skip-backward]:before { content:'\e095'; }
-
-.oi[data-glyph=media-skip-forward]:before { content:'\e096'; }
-
-.oi[data-glyph=media-step-backward]:before { content:'\e097'; }
-
-.oi[data-glyph=media-step-forward]:before { content:'\e098'; }
-
-.oi[data-glyph=media-stop]:before { content:'\e099'; }
-
-.oi[data-glyph=medical-cross]:before { content:'\e09a'; }
-
-.oi[data-glyph=menu]:before { content:'\e09b'; }
-
-.oi[data-glyph=microphone]:before { content:'\e09c'; }
-
-.oi[data-glyph=minus]:before { content:'\e09d'; }
-
-.oi[data-glyph=monitor]:before { content:'\e09e'; }
-
-.oi[data-glyph=moon]:before { content:'\e09f'; }
-
-.oi[data-glyph=move]:before { content:'\e0a0'; }
-
-.oi[data-glyph=musical-note]:before { content:'\e0a1'; }
-
-.oi[data-glyph=paperclip]:before { content:'\e0a2'; }
-
-.oi[data-glyph=pencil]:before { content:'\e0a3'; }
-
-.oi[data-glyph=people]:before { content:'\e0a4'; }
-
-.oi[data-glyph=person]:before { content:'\e0a5'; }
-
-.oi[data-glyph=phone]:before { content:'\e0a6'; }
-
-.oi[data-glyph=pie-chart]:before { content:'\e0a7'; }
-
-.oi[data-glyph=pin]:before { content:'\e0a8'; }
-
-.oi[data-glyph=play-circle]:before { content:'\e0a9'; }
-
-.oi[data-glyph=plus]:before { content:'\e0aa'; }
-
-.oi[data-glyph=power-standby]:before { content:'\e0ab'; }
-
-.oi[data-glyph=print]:before { content:'\e0ac'; }
-
-.oi[data-glyph=project]:before { content:'\e0ad'; }
-
-.oi[data-glyph=pulse]:before { content:'\e0ae'; }
-
-.oi[data-glyph=puzzle-piece]:before { content:'\e0af'; }
-
-.oi[data-glyph=question-mark]:before { content:'\e0b0'; }
-
-.oi[data-glyph=rain]:before { content:'\e0b1'; }
-
-.oi[data-glyph=random]:before { content:'\e0b2'; }
-
-.oi[data-glyph=reload]:before { content:'\e0b3'; }
-
-.oi[data-glyph=resize-both]:before { content:'\e0b4'; }
-
-.oi[data-glyph=resize-height]:before { content:'\e0b5'; }
-
-.oi[data-glyph=resize-width]:before { content:'\e0b6'; }
-
-.oi[data-glyph=rss-alt]:before { content:'\e0b7'; }
-
-.oi[data-glyph=rss]:before { content:'\e0b8'; }
-
-.oi[data-glyph=script]:before { content:'\e0b9'; }
-
-.oi[data-glyph=share-boxed]:before { content:'\e0ba'; }
-
-.oi[data-glyph=share]:before { content:'\e0bb'; }
-
-.oi[data-glyph=shield]:before { content:'\e0bc'; }
-
-.oi[data-glyph=signal]:before { content:'\e0bd'; }
-
-.oi[data-glyph=signpost]:before { content:'\e0be'; }
-
-.oi[data-glyph=sort-ascending]:before { content:'\e0bf'; }
-
-.oi[data-glyph=sort-descending]:before { content:'\e0c0'; }
-
-.oi[data-glyph=spreadsheet]:before { content:'\e0c1'; }
-
-.oi[data-glyph=star]:before { content:'\e0c2'; }
-
-.oi[data-glyph=sun]:before { content:'\e0c3'; }
-
-.oi[data-glyph=tablet]:before { content:'\e0c4'; }
-
-.oi[data-glyph=tag]:before { content:'\e0c5'; }
-
-.oi[data-glyph=tags]:before { content:'\e0c6'; }
-
-.oi[data-glyph=target]:before { content:'\e0c7'; }
-
-.oi[data-glyph=task]:before { content:'\e0c8'; }
-
-.oi[data-glyph=terminal]:before { content:'\e0c9'; }
-
-.oi[data-glyph=text]:before { content:'\e0ca'; }
-
-.oi[data-glyph=thumb-down]:before { content:'\e0cb'; }
-
-.oi[data-glyph=thumb-up]:before { content:'\e0cc'; }
-
-.oi[data-glyph=timer]:before { content:'\e0cd'; }
-
-.oi[data-glyph=transfer]:before { content:'\e0ce'; }
-
-.oi[data-glyph=trash]:before { content:'\e0cf'; }
-
-.oi[data-glyph=underline]:before { content:'\e0d0'; }
-
-.oi[data-glyph=vertical-align-bottom]:before { content:'\e0d1'; }
-
-.oi[data-glyph=vertical-align-center]:before { content:'\e0d2'; }
-
-.oi[data-glyph=vertical-align-top]:before { content:'\e0d3'; }
-
-.oi[data-glyph=video]:before { content:'\e0d4'; }
-
-.oi[data-glyph=volume-high]:before { content:'\e0d5'; }
-
-.oi[data-glyph=volume-low]:before { content:'\e0d6'; }
-
-.oi[data-glyph=volume-off]:before { content:'\e0d7'; }
-
-.oi[data-glyph=warning]:before { content:'\e0d8'; }
-
-.oi[data-glyph=wifi]:before { content:'\e0d9'; }
-
-.oi[data-glyph=wrench]:before { content:'\e0da'; }
-
-.oi[data-glyph=x]:before { content:'\e0db'; }
-
-.oi[data-glyph=yen]:before { content:'\e0dc'; }
-
-.oi[data-glyph=zoom-in]:before { content:'\e0dd'; }
-
-.oi[data-glyph=zoom-out]:before { content:'\e0de'; }
diff --git a/pagure/static/open-iconic/css/open-iconic-1.1.1.min.css b/pagure/static/open-iconic/css/open-iconic-1.1.1.min.css
deleted file mode 100644
index 1f6afb8..0000000
--- a/pagure/static/open-iconic/css/open-iconic-1.1.1.min.css
+++ /dev/null
@@ -1 +0,0 @@
-@font-face{font-family:Icons;src:url(../fonts/open-iconic.eot);src:url(../fonts/open-iconic.eot?#iconic-sm) format('embedded-opentype'),url(../fonts/open-iconic.woff) format('woff'),url(../fonts/open-iconic.ttf) format('truetype'),url(../fonts/open-iconic.otf) format('opentype'),url(../fonts/open-iconic.svg#iconic-sm) format('svg');font-weight:400;font-style:normal}.oi[data-glyph].oi-text-replace{font-size:0;line-height:0}.oi[data-glyph].oi-text-replace:before{width:1em;text-align:center}.oi[data-glyph]:before{font-family:Icons;display:inline-block;speak:none;line-height:1;vertical-align:baseline;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.oi[data-glyph]:empty:before{width:1em;text-align:center;box-sizing:content-box}.oi[data-glyph].oi-align-left:before{text-align:left}.oi[data-glyph].oi-align-right:before{text-align:right}.oi[data-glyph].oi-align-center:before{text-align:center}.oi[data-glyph].oi-flip-horizontal:before{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.oi[data-glyph].oi-flip-vertical:before{-webkit-transform:scale(1,-1);-ms-transform:scale(-1,1);transform:scale(1,-1)}.oi[data-glyph].oi-flip-horizontal-vertical:before{-webkit-transform:scale(-1,-1);-ms-transform:scale(-1,1);transform:scale(-1,-1)}.oi[data-glyph=account-login]:before{content:'\e000'}.oi[data-glyph=account-logout]:before{content:'\e001'}.oi[data-glyph=action-redo]:before{content:'\e002'}.oi[data-glyph=action-undo]:before{content:'\e003'}.oi[data-glyph=align-center]:before{content:'\e004'}.oi[data-glyph=align-left]:before{content:'\e005'}.oi[data-glyph=align-right]:before{content:'\e006'}.oi[data-glyph=aperture]:before{content:'\e007'}.oi[data-glyph=arrow-bottom]:before{content:'\e008'}.oi[data-glyph=arrow-circle-bottom]:before{content:'\e009'}.oi[data-glyph=arrow-circle-left]:before{content:'\e00a'}.oi[data-glyph=arrow-circle-right]:before{content:'\e00b'}.oi[data-glyph=arrow-circle-top]:before{content:'\e00c'}.oi[data-glyph=arrow-left]:before{content:'\e00d'}.oi[data-glyph=arrow-right]:before{content:'\e00e'}.oi[data-glyph=arrow-thick-bottom]:before{content:'\e00f'}.oi[data-glyph=arrow-thick-left]:before{content:'\e010'}.oi[data-glyph=arrow-thick-right]:before{content:'\e011'}.oi[data-glyph=arrow-thick-top]:before{content:'\e012'}.oi[data-glyph=arrow-top]:before{content:'\e013'}.oi[data-glyph=audio-spectrum]:before{content:'\e014'}.oi[data-glyph=audio]:before{content:'\e015'}.oi[data-glyph=badge]:before{content:'\e016'}.oi[data-glyph=ban]:before{content:'\e017'}.oi[data-glyph=bar-chart]:before{content:'\e018'}.oi[data-glyph=basket]:before{content:'\e019'}.oi[data-glyph=battery-empty]:before{content:'\e01a'}.oi[data-glyph=battery-full]:before{content:'\e01b'}.oi[data-glyph=beaker]:before{content:'\e01c'}.oi[data-glyph=bell]:before{content:'\e01d'}.oi[data-glyph=bluetooth]:before{content:'\e01e'}.oi[data-glyph=bold]:before{content:'\e01f'}.oi[data-glyph=bolt]:before{content:'\e020'}.oi[data-glyph=book]:before{content:'\e021'}.oi[data-glyph=bookmark]:before{content:'\e022'}.oi[data-glyph=box]:before{content:'\e023'}.oi[data-glyph=briefcase]:before{content:'\e024'}.oi[data-glyph=british-pound]:before{content:'\e025'}.oi[data-glyph=browser]:before{content:'\e026'}.oi[data-glyph=brush]:before{content:'\e027'}.oi[data-glyph=bug]:before{content:'\e028'}.oi[data-glyph=bullhorn]:before{content:'\e029'}.oi[data-glyph=calculator]:before{content:'\e02a'}.oi[data-glyph=calendar]:before{content:'\e02b'}.oi[data-glyph=camera-slr]:before{content:'\e02c'}.oi[data-glyph=caret-bottom]:before{content:'\e02d'}.oi[data-glyph=caret-left]:before{content:'\e02e'}.oi[data-glyph=caret-right]:before{content:'\e02f'}.oi[data-glyph=caret-top]:before{content:'\e030'}.oi[data-glyph=cart]:before{content:'\e031'}.oi[data-glyph=chat]:before{content:'\e032'}.oi[data-glyph=check]:before{content:'\e033'}.oi[data-glyph=chevron-bottom]:before{content:'\e034'}.oi[data-glyph=chevron-left]:before{content:'\e035'}.oi[data-glyph=chevron-right]:before{content:'\e036'}.oi[data-glyph=chevron-top]:before{content:'\e037'}.oi[data-glyph=circle-check]:before{content:'\e038'}.oi[data-glyph=circle-x]:before{content:'\e039'}.oi[data-glyph=clipboard]:before{content:'\e03a'}.oi[data-glyph=clock]:before{content:'\e03b'}.oi[data-glyph=cloud-download]:before{content:'\e03c'}.oi[data-glyph=cloud-upload]:before{content:'\e03d'}.oi[data-glyph=cloud]:before{content:'\e03e'}.oi[data-glyph=cloudy]:before{content:'\e03f'}.oi[data-glyph=code]:before{content:'\e040'}.oi[data-glyph=cog]:before{content:'\e041'}.oi[data-glyph=collapse-down]:before{content:'\e042'}.oi[data-glyph=collapse-left]:before{content:'\e043'}.oi[data-glyph=collapse-right]:before{content:'\e044'}.oi[data-glyph=collapse-up]:before{content:'\e045'}.oi[data-glyph=command]:before{content:'\e046'}.oi[data-glyph=comment-square]:before{content:'\e047'}.oi[data-glyph=compass]:before{content:'\e048'}.oi[data-glyph=contrast]:before{content:'\e049'}.oi[data-glyph=copywriting]:before{content:'\e04a'}.oi[data-glyph=credit-card]:before{content:'\e04b'}.oi[data-glyph=crop]:before{content:'\e04c'}.oi[data-glyph=dashboard]:before{content:'\e04d'}.oi[data-glyph=data-transfer-download]:before{content:'\e04e'}.oi[data-glyph=data-transfer-upload]:before{content:'\e04f'}.oi[data-glyph=delete]:before{content:'\e050'}.oi[data-glyph=dial]:before{content:'\e051'}.oi[data-glyph=document]:before{content:'\e052'}.oi[data-glyph=dollar]:before{content:'\e053'}.oi[data-glyph=double-quote-sans-left]:before{content:'\e054'}.oi[data-glyph=double-quote-sans-right]:before{content:'\e055'}.oi[data-glyph=double-quote-serif-left]:before{content:'\e056'}.oi[data-glyph=double-quote-serif-right]:before{content:'\e057'}.oi[data-glyph=droplet]:before{content:'\e058'}.oi[data-glyph=eject]:before{content:'\e059'}.oi[data-glyph=elevator]:before{content:'\e05a'}.oi[data-glyph=ellipses]:before{content:'\e05b'}.oi[data-glyph=envelope-closed]:before{content:'\e05c'}.oi[data-glyph=envelope-open]:before{content:'\e05d'}.oi[data-glyph=euro]:before{content:'\e05e'}.oi[data-glyph=excerpt]:before{content:'\e05f'}.oi[data-glyph=expand-down]:before{content:'\e060'}.oi[data-glyph=expand-left]:before{content:'\e061'}.oi[data-glyph=expand-right]:before{content:'\e062'}.oi[data-glyph=expand-up]:before{content:'\e063'}.oi[data-glyph=external-link]:before{content:'\e064'}.oi[data-glyph=eye]:before{content:'\e065'}.oi[data-glyph=eyedropper]:before{content:'\e066'}.oi[data-glyph=file]:before{content:'\e067'}.oi[data-glyph=fire]:before{content:'\e068'}.oi[data-glyph=flag]:before{content:'\e069'}.oi[data-glyph=flash]:before{content:'\e06a'}.oi[data-glyph=folder]:before{content:'\e06b'}.oi[data-glyph=fork]:before{content:'\e06c'}.oi[data-glyph=fullscreen-enter]:before{content:'\e06d'}.oi[data-glyph=fullscreen-exit]:before{content:'\e06e'}.oi[data-glyph=globe]:before{content:'\e06f'}.oi[data-glyph=graph]:before{content:'\e070'}.oi[data-glyph=grid-four-up]:before{content:'\e071'}.oi[data-glyph=grid-three-up]:before{content:'\e072'}.oi[data-glyph=grid-two-up]:before{content:'\e073'}.oi[data-glyph=hard-drive]:before{content:'\e074'}.oi[data-glyph=header]:before{content:'\e075'}.oi[data-glyph=headphones]:before{content:'\e076'}.oi[data-glyph=heart]:before{content:'\e077'}.oi[data-glyph=home]:before{content:'\e078'}.oi[data-glyph=image]:before{content:'\e079'}.oi[data-glyph=inbox]:before{content:'\e07a'}.oi[data-glyph=infinity]:before{content:'\e07b'}.oi[data-glyph=info]:before{content:'\e07c'}.oi[data-glyph=italic]:before{content:'\e07d'}.oi[data-glyph=justify-center]:before{content:'\e07e'}.oi[data-glyph=justify-left]:before{content:'\e07f'}.oi[data-glyph=justify-right]:before{content:'\e080'}.oi[data-glyph=key]:before{content:'\e081'}.oi[data-glyph=laptop]:before{content:'\e082'}.oi[data-glyph=layers]:before{content:'\e083'}.oi[data-glyph=lightbulb]:before{content:'\e084'}.oi[data-glyph=link-broken]:before{content:'\e085'}.oi[data-glyph=link-intact]:before{content:'\e086'}.oi[data-glyph=list-rich]:before{content:'\e087'}.oi[data-glyph=list]:before{content:'\e088'}.oi[data-glyph=location]:before{content:'\e089'}.oi[data-glyph=lock-locked]:before{content:'\e08a'}.oi[data-glyph=lock-unlocked]:before{content:'\e08b'}.oi[data-glyph=loop-circular]:before{content:'\e08c'}.oi[data-glyph=loop-square]:before{content:'\e08d'}.oi[data-glyph=loop]:before{content:'\e08e'}.oi[data-glyph=magnifying-glass]:before{content:'\e08f'}.oi[data-glyph=map-marker]:before{content:'\e090'}.oi[data-glyph=map]:before{content:'\e091'}.oi[data-glyph=media-pause]:before{content:'\e092'}.oi[data-glyph=media-play]:before{content:'\e093'}.oi[data-glyph=media-record]:before{content:'\e094'}.oi[data-glyph=media-skip-backward]:before{content:'\e095'}.oi[data-glyph=media-skip-forward]:before{content:'\e096'}.oi[data-glyph=media-step-backward]:before{content:'\e097'}.oi[data-glyph=media-step-forward]:before{content:'\e098'}.oi[data-glyph=media-stop]:before{content:'\e099'}.oi[data-glyph=medical-cross]:before{content:'\e09a'}.oi[data-glyph=menu]:before{content:'\e09b'}.oi[data-glyph=microphone]:before{content:'\e09c'}.oi[data-glyph=minus]:before{content:'\e09d'}.oi[data-glyph=monitor]:before{content:'\e09e'}.oi[data-glyph=moon]:before{content:'\e09f'}.oi[data-glyph=move]:before{content:'\e0a0'}.oi[data-glyph=musical-note]:before{content:'\e0a1'}.oi[data-glyph=paperclip]:before{content:'\e0a2'}.oi[data-glyph=pencil]:before{content:'\e0a3'}.oi[data-glyph=people]:before{content:'\e0a4'}.oi[data-glyph=person]:before{content:'\e0a5'}.oi[data-glyph=phone]:before{content:'\e0a6'}.oi[data-glyph=pie-chart]:before{content:'\e0a7'}.oi[data-glyph=pin]:before{content:'\e0a8'}.oi[data-glyph=play-circle]:before{content:'\e0a9'}.oi[data-glyph=plus]:before{content:'\e0aa'}.oi[data-glyph=power-standby]:before{content:'\e0ab'}.oi[data-glyph=print]:before{content:'\e0ac'}.oi[data-glyph=project]:before{content:'\e0ad'}.oi[data-glyph=pulse]:before{content:'\e0ae'}.oi[data-glyph=puzzle-piece]:before{content:'\e0af'}.oi[data-glyph=question-mark]:before{content:'\e0b0'}.oi[data-glyph=rain]:before{content:'\e0b1'}.oi[data-glyph=random]:before{content:'\e0b2'}.oi[data-glyph=reload]:before{content:'\e0b3'}.oi[data-glyph=resize-both]:before{content:'\e0b4'}.oi[data-glyph=resize-height]:before{content:'\e0b5'}.oi[data-glyph=resize-width]:before{content:'\e0b6'}.oi[data-glyph=rss-alt]:before{content:'\e0b7'}.oi[data-glyph=rss]:before{content:'\e0b8'}.oi[data-glyph=script]:before{content:'\e0b9'}.oi[data-glyph=share-boxed]:before{content:'\e0ba'}.oi[data-glyph=share]:before{content:'\e0bb'}.oi[data-glyph=shield]:before{content:'\e0bc'}.oi[data-glyph=signal]:before{content:'\e0bd'}.oi[data-glyph=signpost]:before{content:'\e0be'}.oi[data-glyph=sort-ascending]:before{content:'\e0bf'}.oi[data-glyph=sort-descending]:before{content:'\e0c0'}.oi[data-glyph=spreadsheet]:before{content:'\e0c1'}.oi[data-glyph=star]:before{content:'\e0c2'}.oi[data-glyph=sun]:before{content:'\e0c3'}.oi[data-glyph=tablet]:before{content:'\e0c4'}.oi[data-glyph=tag]:before{content:'\e0c5'}.oi[data-glyph=tags]:before{content:'\e0c6'}.oi[data-glyph=target]:before{content:'\e0c7'}.oi[data-glyph=task]:before{content:'\e0c8'}.oi[data-glyph=terminal]:before{content:'\e0c9'}.oi[data-glyph=text]:before{content:'\e0ca'}.oi[data-glyph=thumb-down]:before{content:'\e0cb'}.oi[data-glyph=thumb-up]:before{content:'\e0cc'}.oi[data-glyph=timer]:before{content:'\e0cd'}.oi[data-glyph=transfer]:before{content:'\e0ce'}.oi[data-glyph=trash]:before{content:'\e0cf'}.oi[data-glyph=underline]:before{content:'\e0d0'}.oi[data-glyph=vertical-align-bottom]:before{content:'\e0d1'}.oi[data-glyph=vertical-align-center]:before{content:'\e0d2'}.oi[data-glyph=vertical-align-top]:before{content:'\e0d3'}.oi[data-glyph=video]:before{content:'\e0d4'}.oi[data-glyph=volume-high]:before{content:'\e0d5'}.oi[data-glyph=volume-low]:before{content:'\e0d6'}.oi[data-glyph=volume-off]:before{content:'\e0d7'}.oi[data-glyph=warning]:before{content:'\e0d8'}.oi[data-glyph=wifi]:before{content:'\e0d9'}.oi[data-glyph=wrench]:before{content:'\e0da'}.oi[data-glyph=x]:before{content:'\e0db'}.oi[data-glyph=yen]:before{content:'\e0dc'}.oi[data-glyph=zoom-in]:before{content:'\e0dd'}.oi[data-glyph=zoom-out]:before{content:'\e0de'}
\ No newline at end of file
diff --git a/pagure/static/open-iconic/css/open-iconic.css b/pagure/static/open-iconic/css/open-iconic.css
deleted file mode 120000
index 547a306..0000000
--- a/pagure/static/open-iconic/css/open-iconic.css
+++ /dev/null
@@ -1 +0,0 @@
-open-iconic-1.1.1.css
\ No newline at end of file
diff --git a/pagure/static/open-iconic/css/open-iconic.min.css b/pagure/static/open-iconic/css/open-iconic.min.css
deleted file mode 120000
index 7382a37..0000000
--- a/pagure/static/open-iconic/css/open-iconic.min.css
+++ /dev/null
@@ -1 +0,0 @@
-open-iconic-1.1.1.min.css
\ No newline at end of file
diff --git a/pagure/static/open-iconic/fonts/open-iconic.eot b/pagure/static/open-iconic/fonts/open-iconic.eot
deleted file mode 100644
index f98177d..0000000
Binary files a/pagure/static/open-iconic/fonts/open-iconic.eot and /dev/null differ
diff --git a/pagure/static/open-iconic/fonts/open-iconic.otf b/pagure/static/open-iconic/fonts/open-iconic.otf
deleted file mode 100644
index f6bd684..0000000
Binary files a/pagure/static/open-iconic/fonts/open-iconic.otf and /dev/null differ
diff --git a/pagure/static/open-iconic/fonts/open-iconic.svg b/pagure/static/open-iconic/fonts/open-iconic.svg
deleted file mode 100644
index 559edd9..0000000
--- a/pagure/static/open-iconic/fonts/open-iconic.svg
+++ /dev/null
@@ -1,543 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<!--
-2014-7-1: Created.
--->
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata>
-Created by FontForge 20120731 at Tue Jul  1 20:39:22 2014
- By P.J. Onori
-Created by P.J. Onori with FontForge 2.0 (http://fontforge.sf.net)
-</metadata>
-<defs>
-<font id="open-iconic" horiz-adv-x="800" >
-  <font-face
-    font-family="Icons"
-    font-weight="400"
-    font-stretch="normal"
-    units-per-em="800"
-    panose-1="2 0 5 3 0 0 0 0 0 0"
-    ascent="800"
-    descent="0"
-    bbox="-0.5 -101 802 800.126"
-    underline-thickness="50"
-    underline-position="-100"
-    unicode-range="U+E000-E0DE"
-  />
-    <missing-glyph />
-    <glyph glyph-name="" unicode="&#xe000;"
-d="M300 700h500v-700h-500v100h400v500h-400v100zM400 500l200 -150l-200 -150v100h-400v100h400v100z" />
-    <glyph glyph-name="1" unicode="&#xe001;"
-d="M300 700h500v-700h-500v100h400v500h-400v100zM200 500v-100h400v-100h-400v-100l-200 150z" />
-    <glyph glyph-name="2" unicode="&#xe002;"
-d="M350 700c193 0 350 -157 350 -350v-50h100l-200 -200l-200 200h100v50c0 138 -112 250 -250 250s-250 -112 -250 -250c0 193 157 350 350 350z" />
-    <glyph glyph-name="3" unicode="&#xe003;"
-d="M450 700c193 0 350 -157 350 -350c0 138 -112 250 -250 250s-250 -112 -250 -250v-50h100l-200 -200l-200 200h100v50c0 193 157 350 350 350z" />
-    <glyph glyph-name="4" unicode="&#xe004;"
-d="M0 700h800v-100h-800v100zM100 500h600v-100h-600v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
-    <glyph glyph-name="5" unicode="&#xe005;"
-d="M0 700h800v-100h-800v100zM0 500h600v-100h-600v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
-    <glyph glyph-name="6" unicode="&#xe006;"
-d="M0 700h800v-100h-800v100zM200 500h600v-100h-600v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
-    <glyph glyph-name="7" unicode="&#xe007;"
-d="M400 700c75 0 146 -23 206 -59l-75 -225l-322 234c57 31 122 50 191 50zM125 588l191 -138l-310 -222c-4 24 -6 47 -6 72c0 114 49 215 125 288zM688 575c69 -72 112 -168 112 -275c0 -35 -8 -68 -16 -100h-218zM216 253l112 -347c-128 23 -232 109 -287 222zM372 100
-h372c-64 -109 -177 -185 -310 -197z" />
-    <glyph glyph-name="8" unicode="&#xe008;" horiz-adv-x="600"
-d="M200 800h100v-500h200l-247 -300l-253 300h200v500z" />
-    <glyph glyph-name="9" unicode="&#xe009;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 700v-300h-200l300 -300l300 300h-200v300h-200z" />
-    <glyph glyph-name="a" unicode="&#xe00a;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300l300 -300v200h300v200h-300v200z" />
-    <glyph glyph-name="b" unicode="&#xe00b;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700v-200h-300v-200h300v-200l300 300z" />
-    <glyph glyph-name="c" unicode="&#xe00c;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300h200v-300h200v300h200z" />
-    <glyph glyph-name="d" unicode="&#xe00d;"
-d="M300 600v-200h500v-100h-500v-200l-300 247z" />
-    <glyph glyph-name="e" unicode="&#xe00e;"
-d="M500 600l300 -247l-300 -253v200h-500v100h500v200z" />
-    <glyph glyph-name="f" unicode="&#xe00f;" horiz-adv-x="600"
-d="M200 800h200v-500h200l-297 -300l-303 300h200v500z" />
-    <glyph glyph-name="10" unicode="&#xe010;"
-d="M300 700v-200h500v-200h-500v-200l-300 297z" />
-    <glyph glyph-name="11" unicode="&#xe011;"
-d="M500 700l300 -297l-300 -303v200h-500v200h500v200z" />
-    <glyph glyph-name="12" unicode="&#xe012;" horiz-adv-x="600"
-d="M297 800l303 -300h-200v-500h-200v500h-200z" />
-    <glyph glyph-name="13" unicode="&#xe013;" horiz-adv-x="600"
-d="M247 800l253 -300h-200v-500h-100v500h-200z" />
-    <glyph glyph-name="14" unicode="&#xe014;"
-d="M400 800h100v-800h-100v800zM200 700h100v-600h-100v600zM600 600h100v-400h-100v400zM0 500h100v-200h-100v200z" />
-    <glyph glyph-name="15" unicode="&#xe015;"
-d="M116 600l72 -72c-54 -54 -88 -126 -88 -209s34 -159 88 -213l-72 -72c-72 72 -116 175 -116 285s44 209 116 281zM684 600c72 -72 116 -171 116 -281s-44 -213 -116 -285l-72 72c54 54 88 130 88 213s-34 155 -88 209zM259 460l69 -72c-18 -18 -28 -41 -28 -69
-s10 -54 28 -72l-69 -72c-36 36 -59 89 -59 144s23 105 59 141zM541 459c36 -36 59 -85 59 -140s-23 -108 -59 -144l-69 72c18 18 28 44 28 72s-10 51 -28 69z" />
-    <glyph glyph-name="16" unicode="&#xe016;" horiz-adv-x="400"
-d="M200 800c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM100 319c31 -11 65 -19 100 -19s68 8 100 19v-319l-100 100l-100 -100v319z" />
-    <glyph glyph-name="17" unicode="&#xe017;"
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300c0 -66 21 -126 56 -175l419 419c-49 35 -109 56 -175 56zM644 575l-419 -419c49 -35 109 -56 175 -56c166 0 300 134 300 300
-c0 66 -21 126 -56 175z" />
-    <glyph glyph-name="18" unicode="&#xe018;"
-d="M0 700h100v-600h700v-100h-800v700zM500 700h200v-500h-200v500zM200 500h200v-300h-200v300z" />
-    <glyph glyph-name="19" unicode="&#xe019;"
-d="M397 800c13 1 23 -4 34 -13c2 -2 214 -254 241 -287h128v-100h-100v-366c0 -18 -16 -34 -34 -34h-532c-18 0 -34 16 -34 34v366h-100v100h128l234 281c9 11 22 18 35 19zM400 672l-144 -172h288zM250 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50
-v100c0 28 -22 50 -50 50zM550 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50v100c0 28 -22 50 -50 50z" />
-    <glyph glyph-name="1a" unicode="&#xe01a;"
-d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9zM100 600v-400h500v400h-500z" />
-    <glyph glyph-name="1b" unicode="&#xe01b;"
-d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9z" />
-    <glyph glyph-name="1c" unicode="&#xe01c;"
-d="M92 650c0 23 19 50 45 50h3h5h5h500c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-141c9 -17 120 -231 166 -309c16 -26 34 -61 34 -106c0 -39 -15 -77 -41 -103h-3c-26 -25 -62 -41 -100 -41h-512c-39 0 -77 15 -103 41s-41 64 -41 103c0 46 18 80 34 106
-c46 78 157 292 166 309v141h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51zM500 600h-200v-162l-6 -10s-63 -123 -119 -228h450c-56 105 -119 228 -119 228l-6 10v162z" />
-    <glyph glyph-name="1d" unicode="&#xe01d;"
-d="M400 800c110 0 200 -90 200 -200c0 -104 52 -198 134 -266c41 -34 66 -82 66 -134h-800c0 52 25 100 66 134c82 68 134 162 134 266c0 110 90 200 200 200zM300 100h200c0 -55 -45 -100 -100 -100s-100 45 -100 100z" />
-    <glyph glyph-name="1e" unicode="&#xe01e;" horiz-adv-x="600"
-d="M150 800h50l350 -250l-225 -147l225 -153l-350 -250h-50v250l-75 -75l-75 75l150 150l-150 150l75 75l75 -75v250zM250 650v-200l150 100zM250 350v-200l150 100z" />
-    <glyph glyph-name="1f" unicode="&#xe01f;"
-d="M0 800h500c110 0 200 -90 200 -200c0 -47 -17 -91 -44 -125c85 -40 144 -125 144 -225c0 -138 -112 -250 -250 -250h-550v100c55 0 100 45 100 100v400c0 55 -45 100 -100 100v100zM300 700v-200h100c55 0 100 45 100 100s-45 100 -100 100h-100zM300 400v-300h150
-c83 0 150 67 150 150s-67 150 -150 150h-150z" />
-    <glyph glyph-name="20" unicode="&#xe020;" horiz-adv-x="600"
-d="M300 800v-300h200l-300 -500v300h-200z" />
-    <glyph glyph-name="21" unicode="&#xe021;"
-d="M100 800h300v-300l100 100l100 -100v300h50c28 0 50 -22 50 -50v-550h-550c-28 0 -50 -22 -50 -50s22 -50 50 -50h550v-100h-550c-83 0 -150 67 -150 150v550l3 19c8 39 39 70 78 78z" />
-    <glyph glyph-name="22" unicode="&#xe022;" horiz-adv-x="400"
-d="M0 800h400v-800l-200 200l-200 -200v800z" />
-    <glyph glyph-name="23" unicode="&#xe023;"
-d="M0 800h800v-100h-800v100zM0 600h300v-103h203v103h297v-591c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v591z" />
-    <glyph glyph-name="24" unicode="&#xe024;"
-d="M300 800h200c55 0 100 -45 100 -100v-100h191c6 0 9 -3 9 -9v-241c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v241c0 6 3 9 9 9h191v100c0 55 45 100 100 100zM300 700v-100h200v100h-200zM0 209c16 -6 32 -9 50 -9h700c18 0 34 3 50 9v-200c0 -6 -3 -9 -9 -9h-782
-c-6 0 -9 3 -9 9v200z" />
-    <glyph glyph-name="25" unicode="&#xe025;" horiz-adv-x="600"
-d="M300 800c58 0 110 -16 147 -53s53 -89 53 -147h-100c0 39 -11 61 -25 75s-36 25 -75 25c-35 0 -55 -10 -72 -31s-28 -55 -28 -94c0 -51 20 -107 28 -175h172v-100h-178c-14 -60 -49 -127 -113 -200h491v-100h-600v122l16 12c69 69 95 121 106 166h-122v100h125
-c-8 50 -25 106 -25 175c0 58 16 114 50 156c34 43 88 69 150 69z" />
-    <glyph glyph-name="26" unicode="&#xe026;"
-d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-700c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v700v2c0 20 15 42 34 48zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50zM350 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h300c28 0 50 22 50 50
-s-22 50 -50 50h-300zM100 400v-400h600v400h-600z" />
-    <glyph glyph-name="27" unicode="&#xe027;"
-d="M744 797l6 -3l44 -44c4 -4 3 -8 0 -12l-266 -375l-15 -13l-25 -12c-23 72 -78 127 -150 150l12 25l13 15l375 266zM266 400c74 0 134 -60 134 -134c0 -147 -119 -266 -266 -266c-48 0 -95 12 -134 34c80 46 134 133 134 232c0 74 58 134 132 134z" />
-    <glyph glyph-name="28" unicode="&#xe028;"
-d="M9 451c0 23 19 50 46 50c8 0 19 -3 26 -7l131 -66l29 22c-79 81 -1 250 118 250s197 -167 119 -250l28 -22l131 66c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-115 -56c9 -16 19 -33 25 -50h68c28 0 50 -22 50 -50s-22 -50 -50 -50h-50
-c0 -23 -2 -45 -6 -66l78 -40c21 -5 37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11l-65 35c-24 -46 -62 -86 -103 -110c-35 19 -60 45 -60 72v135v4v5v6v5v5v87c0 28 -22 50 -50 50c-24 0 -45 -17 -50 -40c1 -3 1 -8 1 -11s0 -8 -1 -11v-82v-4v-5v-144
-c0 -28 -24 -53 -59 -72c-41 25 -79 64 -103 110l-66 -35c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49l78 40c-4 21 -6 43 -6 66h-50h-5c-28 0 -50 22 -50 50c0 26 22 50 50 50h5h69c6 17 16 34 25 50l-116 56c-16 7 -28 27 -28 45z" />
-    <glyph glyph-name="29" unicode="&#xe029;"
-d="M600 700h91c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-91v600zM210 503l290 147v-500l-250 125v-3c-15 0 -25 -8 -28 -22l75 -178c11 -25 0 -58 -25 -69s-58 0 -69 25l-103 272h-91c-6 0 -9 3 -9 9v182c0 6 3 9 9 9h182z" />
-    <glyph glyph-name="2a" unicode="&#xe02a;"
-d="M9 800h682c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM100 700v-200h500v200h-500zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-300h100v300h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
-    <glyph glyph-name="2b" unicode="&#xe02b;"
-d="M0 800h700v-200h-700v200zM0 500h700v-491c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v491zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
-    <glyph glyph-name="2c" unicode="&#xe02c;"
-d="M409 800h182c6 0 10 -4 12 -9l94 -182c2 -5 6 -9 12 -9h82c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v441c0 83 67 150 150 150h141c6 0 10 4 12 9l94 182c2 5 6 9 12 9zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z
-M500 500c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM500 400c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="2d" unicode="&#xe02d;"
-d="M0 600h800l-400 -400z" />
-    <glyph glyph-name="2e" unicode="&#xe02e;" horiz-adv-x="400"
-d="M400 800v-800l-400 400z" />
-    <glyph glyph-name="2f" unicode="&#xe02f;" horiz-adv-x="400"
-d="M0 800l400 -400l-400 -400v800z" />
-    <glyph glyph-name="30" unicode="&#xe030;"
-d="M400 600l400 -400h-800z" />
-    <glyph glyph-name="31" unicode="&#xe031;"
-d="M0 550c0 23 20 50 46 50h3h5h4h200c17 0 37 -13 44 -28l38 -72h444c14 0 19 -12 15 -25l-81 -250c-4 -13 -21 -25 -35 -25h-350c-14 0 -30 12 -34 25c-27 83 -54 167 -81 250l-10 25h-150c-2 0 -5 -1 -7 -1c-28 0 -51 23 -51 51zM358 100c28 0 50 -22 50 -50
-s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM658 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="32" unicode="&#xe032;"
-d="M0 700h500v-100h-300v-300h-100l-100 -100v500zM300 500h500v-500l-100 100h-400v400z" />
-    <glyph glyph-name="33" unicode="&#xe033;"
-d="M641 700l143 -141l-493 -493c-71 76 -146 148 -219 222l-72 71l141 141c50 -51 101 -101 153 -150c116 117 234 231 347 350z" />
-    <glyph glyph-name="34" unicode="&#xe034;"
-d="M150 600l250 -250l250 250l150 -150l-400 -400l-400 400z" />
-    <glyph glyph-name="35" unicode="&#xe035;" horiz-adv-x="600"
-d="M400 800l150 -150l-250 -250l250 -250l-150 -150l-400 400z" />
-    <glyph glyph-name="36" unicode="&#xe036;" horiz-adv-x="600"
-d="M150 800l400 -400l-400 -400l-150 150l250 250l-250 250z" />
-    <glyph glyph-name="37" unicode="&#xe037;"
-d="M400 600l400 -400l-150 -150l-250 250l-250 -250l-150 150z" />
-    <glyph glyph-name="38" unicode="&#xe038;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM600 622l-250 -250l-100 100l-72 -72l172 -172l322 322z" />
-    <glyph glyph-name="39" unicode="&#xe039;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM250 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
-    <glyph glyph-name="3a" unicode="&#xe03a;"
-d="M350 800c28 0 50 -22 50 -50v-50h75c14 0 25 -11 25 -25v-75h-300v75c0 14 11 25 25 25h75v50c0 28 22 50 50 50zM25 700h75v-200h500v200h75c14 0 25 -11 25 -25v-650c0 -14 -11 -25 -25 -25h-650c-14 0 -25 11 -25 25v650c0 14 11 25 25 25z" />
-    <glyph glyph-name="3b" unicode="&#xe03b;"
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM350 600h100v-181c23 -24 47 -47 72 -69l-72 -72c-27 30 -55 59 -84 88l-16 12
-v222z" />
-    <glyph glyph-name="3c" unicode="&#xe03c;"
-d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-191v50c0 83 -67 150 -150 150s-150 -67 -150 -150v-50h-272c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM434 400h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1
-v-150h150l-200 -200l-200 200h150v150v2c0 20 15 42 34 48z" />
-    <glyph glyph-name="3d" unicode="&#xe03d;"
-d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-141l-200 200l-200 -200h-222c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM450 350l250 -250h-200v-50c0 -28 -22 -50 -50 -50s-50 22 -50 50v50h-200z" />
-    <glyph glyph-name="3e" unicode="&#xe03e;"
-d="M450 700c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200s90 200 200 200c23 114 129 200 250 200z" />
-    <glyph glyph-name="3f" unicode="&#xe03f;"
-d="M250 800c82 0 154 -40 200 -100c-143 0 -270 -85 -325 -209c-36 -10 -70 -25 -100 -47c-16 33 -25 67 -25 106c0 138 112 250 250 250zM450 600c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200
-s90 200 200 200c23 114 129 200 250 200z" />
-    <glyph glyph-name="40" unicode="&#xe040;"
-d="M500 700h100l-300 -600h-100zM100 600h100l-100 -200l100 -200h-100l-100 200zM600 600h100l100 -200l-100 -200h-100l100 200z" />
-    <glyph glyph-name="41" unicode="&#xe041;"
-d="M350 800h100l50 -119l28 -12l119 50l72 -72l-50 -119l12 -28l119 -50v-100l-119 -50l-12 -28l50 -119l-72 -72l-119 50l-28 -12l-50 -119h-100l-50 119l-28 12l-119 -50l-72 72l50 119l-12 28l-119 50v100l119 50l12 28l-50 119l72 72l119 -50l28 12zM400 550
-c-83 0 -150 -67 -150 -150s67 -150 150 -150s150 67 150 150s-67 150 -150 150z" />
-    <glyph glyph-name="42" unicode="&#xe042;"
-d="M0 800h800v-200h-800v200zM200 500h400l-200 -200zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="43" unicode="&#xe043;"
-d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM500 600v-400l-200 200z" />
-    <glyph glyph-name="44" unicode="&#xe044;"
-d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM300 600l200 -200l-200 -200v400z" />
-    <glyph glyph-name="45" unicode="&#xe045;"
-d="M0 800h800v-100h-800v100zM400 500l200 -200h-400zM0 200h800v-200h-800v200z" />
-    <glyph glyph-name="46" unicode="&#xe046;"
-d="M150 700c83 0 150 -67 150 -150v-50h100v50c0 83 67 150 150 150s150 -67 150 -150s-67 -150 -150 -150h-50v-100h50c83 0 150 -67 150 -150s-67 -150 -150 -150s-150 67 -150 150v50h-100v-50c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150h50v100h-50
-c-83 0 -150 67 -150 150s67 150 150 150zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h50v50c0 28 -22 50 -50 50zM550 600c-28 0 -50 -22 -50 -50v-50h50c28 0 50 22 50 50s-22 50 -50 50zM300 400v-100h100v100h-100zM150 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
-s50 22 50 50v50h-50zM500 200v-50c0 -28 22 -50 50 -50s50 22 50 50s-22 50 -50 50h-50z" />
-    <glyph glyph-name="47" unicode="&#xe047;"
-d="M0 791c0 5 4 9 9 9h782c6 0 9 -4 9 -10v-790l-200 200h-591c-6 0 -9 3 -9 9v582z" />
-    <glyph glyph-name="48" unicode="&#xe048;"
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM600 600l-100 -300l-300 -100l100 300zM400 450c-28 0 -50 -22 -50 -50
-s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="49" unicode="&#xe049;"
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700v-600c166 0 300 134 300 300s-134 300 -300 300z" />
-    <glyph glyph-name="4a" unicode="&#xe04a;"
-d="M0 800h800v-100h-800v100zM0 600h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100zM750 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="4b" unicode="&#xe04b;"
-d="M25 700h750c14 0 25 -11 25 -25v-75h-800v75c0 14 11 25 25 25zM0 500h800v-375c0 -14 -11 -25 -25 -25h-750c-14 0 -25 11 -25 25v375zM100 300v-100h100v100h-100zM300 300v-100h100v100h-100z" />
-    <glyph glyph-name="4c" unicode="&#xe04c;"
-d="M100 800h100v-100h450l100 100l50 -50l-100 -100v-450h100v-100h-100v-100h-100v100h-500v500h-100v100h100v100zM200 600v-350l350 350h-350zM600 550l-350 -350h350v350z" />
-    <glyph glyph-name="4d" unicode="&#xe04d;"
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z
-M200 452c0 20 15 42 34 48h3h3h8c12 0 28 -7 36 -16l91 -90l25 6c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100l6 25l-90 91c-9 8 -16 24 -16 36zM550 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="4e" unicode="&#xe04e;"
-d="M300 800h200v-300h200l-300 -300l-300 300h200v300zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="4f" unicode="&#xe04f;"
-d="M0 800h800v-100h-800v100zM400 600l300 -300h-200v-300h-200v300h-200z" />
-    <glyph glyph-name="50" unicode="&#xe050;"
-d="M200 700h600v-600h-600l-200 300zM350 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
-    <glyph glyph-name="51" unicode="&#xe051;"
-d="M400 700c220 0 400 -180 400 -400h-100c0 166 -134 300 -300 300s-300 -134 -300 -300h-100c0 220 180 400 400 400zM341 491l59 -88l59 88c81 -25 141 -101 141 -191c0 -110 -90 -200 -200 -200s-200 90 -200 200c0 90 60 166 141 191z" />
-    <glyph glyph-name="52" unicode="&#xe052;"
-d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300zM100 600v-100h100v100h-100zM100 400v-100h100v100h-100zM100 200v-100h400v100h-400z" />
-    <glyph glyph-name="53" unicode="&#xe053;" horiz-adv-x="600"
-d="M200 700h100v-100h75c30 0 58 -6 81 -22s44 -44 44 -78v-100h-100v94c-4 3 -13 6 -25 6h-250c-14 0 -25 -11 -25 -25v-50c0 -15 20 -40 34 -44l257 -65c66 -16 109 -73 109 -141v-50c0 -68 -57 -125 -125 -125h-75v-100h-100v100h-75c-30 0 -58 6 -81 22s-44 44 -44 78
-v100h100v-94c4 -3 13 -6 25 -6h250c14 0 25 11 25 25v50c0 15 -20 40 -34 44l-257 65c-66 16 -109 73 -109 141v50c0 68 57 125 125 125h75v100z" />
-    <glyph glyph-name="54" unicode="&#xe054;"
-d="M0 700h300v-300l-300 -300v600zM500 700h300v-300l-300 -300v600z" />
-    <glyph glyph-name="55" unicode="&#xe055;"
-d="M300 700v-600h-300v300zM800 700v-600h-300v300z" />
-    <glyph glyph-name="56" unicode="&#xe056;"
-d="M300 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300zM800 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300z" />
-    <glyph glyph-name="57" unicode="&#xe057;"
-d="M0 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300zM500 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300z" />
-    <glyph glyph-name="58" unicode="&#xe058;" horiz-adv-x="600"
-d="M300 800l34 -34c11 -11 266 -270 266 -488c0 -165 -135 -300 -300 -300s-300 135 -300 300c0 218 255 477 266 488zM150 328c-28 0 -50 -22 -50 -50c0 -110 90 -200 200 -200c28 0 50 22 50 50s-22 50 -50 50c-55 0 -100 45 -100 100c0 28 -22 50 -50 50z" />
-    <glyph glyph-name="59" unicode="&#xe059;"
-d="M400 800l400 -500h-800zM0 200h800v-200h-800v200z" />
-    <glyph glyph-name="5a" unicode="&#xe05a;" horiz-adv-x="600"
-d="M300 800l300 -300h-600zM0 300h600l-300 -300z" />
-    <glyph glyph-name="5b" unicode="&#xe05b;"
-d="M0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200z" />
-    <glyph glyph-name="5c" unicode="&#xe05c;"
-d="M0 700h800v-100l-400 -200l-400 200v100zM0 500l400 -200l400 200v-400h-800v400z" />
-    <glyph glyph-name="5d" unicode="&#xe05d;"
-d="M400 800l400 -200v-600h-800v600zM400 688l-300 -150v-188l300 -150l300 150v188zM200 500h400v-100l-200 -100l-200 100v100z" />
-    <glyph glyph-name="5e" unicode="&#xe05e;"
-d="M600 700c69 0 134 -19 191 -50l-16 -106c-49 35 -109 56 -175 56c-131 0 -240 -84 -281 -200h331l-16 -100h-334c0 -36 8 -68 19 -100h297l-16 -100h-222c55 -61 133 -100 222 -100c78 0 147 30 200 78v-122c-59 -35 -127 -56 -200 -56c-147 0 -274 82 -344 200h-256
-l19 100h197c-8 32 -16 66 -16 100h-200l25 100h191c45 172 198 300 384 300z" />
-    <glyph glyph-name="5f" unicode="&#xe05f;"
-d="M0 700h700v-100h-700v100zM0 500h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100z" />
-    <glyph glyph-name="60" unicode="&#xe060;"
-d="M0 800h800v-100h-800v100zM200 600h400l-200 -200zM0 200h800v-200h-800v200z" />
-    <glyph glyph-name="61" unicode="&#xe061;"
-d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM200 600l200 -200l-200 -200v400z" />
-    <glyph glyph-name="62" unicode="&#xe062;"
-d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM600 600v-400l-200 200z" />
-    <glyph glyph-name="63" unicode="&#xe063;"
-d="M0 800h800v-200h-800v200zM400 400l200 -200h-400zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="64" unicode="&#xe064;"
-d="M0 800h200v-100h-100v-600h600v100h100v-200h-800v800zM400 800h400v-400l-150 150l-250 -250l-100 100l250 250z" />
-    <glyph glyph-name="65" unicode="&#xe065;"
-d="M403 700c247 0 397 -300 397 -300s-150 -300 -397 -300c-253 0 -403 300 -403 300s150 300 403 300zM400 600c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM400 500c10 0 19 -3 28 -6c-16 -8 -28 -24 -28 -44c0 -28 22 -50 50 -50
-c20 0 36 12 44 28c3 -9 6 -18 6 -28c0 -55 -45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="66" unicode="&#xe066;" horiz-adv-x="900"
-d="M331 700h3h3c3 1 7 1 10 1c12 0 29 -8 37 -17l94 -93l66 65c57 57 155 57 212 0c58 -58 58 -154 0 -212l-65 -66l93 -94c10 -8 18 -25 18 -38c0 -28 -22 -50 -50 -50c-13 0 -32 9 -40 20l-62 65l-381 -381h-269v272l375 381l-63 63c-9 8 -16 24 -16 36c0 20 16 42 35 48z
-M447 481l-313 -315l128 -132l316 316z" />
-    <glyph glyph-name="67" unicode="&#xe067;"
-d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300z" />
-    <glyph glyph-name="68" unicode="&#xe068;"
-d="M200 800c0 0 200 -100 200 -300s-298 -302 -200 -500c0 0 -200 100 -200 300s300 300 200 500zM500 500c0 0 200 -100 200 -300c0 -150 -60 -200 -100 -200h-300c0 200 300 300 200 500z" />
-    <glyph glyph-name="69" unicode="&#xe069;"
-d="M0 800h100v-800h-100v800zM200 800h300v-100h300l-200 -203l200 -197h-400v100h-200v400z" />
-    <glyph glyph-name="6a" unicode="&#xe06a;" horiz-adv-x="400"
-d="M150 800h150l-100 -200h200l-150 -300h150l-300 -300l-100 300h134l66 200h-200z" />
-    <glyph glyph-name="6b" unicode="&#xe06b;"
-d="M0 800h300v-100h500v-100h-800v200zM0 500h800v-450c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v450z" />
-    <glyph glyph-name="6c" unicode="&#xe06c;"
-d="M150 800c83 0 150 -67 150 -150c0 -66 -41 -121 -100 -141v-118c15 5 33 9 50 9h200c28 0 50 22 50 50v59c-59 20 -100 75 -100 141c0 83 67 150 150 150s150 -67 150 -150c0 -66 -41 -121 -100 -141v-59c0 -82 -68 -150 -150 -150h-200c-14 0 -25 -7 -34 -16
-c50 -24 84 -74 84 -134c0 -83 -67 -150 -150 -150s-150 67 -150 150c0 66 41 121 100 141v218c-59 20 -100 75 -100 141c0 83 67 150 150 150z" />
-    <glyph glyph-name="6d" unicode="&#xe06d;"
-d="M0 800h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400zM500 400l150 -150l150 150v-400h-400l150 150l-150 150z" />
-    <glyph glyph-name="6e" unicode="&#xe06e;"
-d="M100 800l150 -150l150 150v-400h-400l150 150l-150 150zM400 400h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400z" />
-    <glyph glyph-name="6f" unicode="&#xe06f;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700c-56 0 -108 -17 -153 -44l22 -19c33 -18 13 -48 -13 -59c-30 -13 -77 10 -65 -41c13 -55 -27 -3 -47 -15c-42 -26 49 -152 31 -156l-59 34c-8 0 -13 -5 -16 -10
-c1 -30 10 -57 19 -84c28 -11 77 -2 100 -25c47 -28 97 -115 75 -159c34 -13 68 -22 106 -22c101 0 193 48 247 125c3 24 -8 44 -50 44c-69 0 -156 13 -153 97c2 46 101 108 66 143c-30 30 12 39 12 66c0 37 -65 32 -69 50s20 36 41 56c-30 10 -60 19 -94 19zM631 591
-c-38 -11 -94 -35 -87 -53c6 -15 52 -1 65 -13c11 -10 16 -59 44 -31l22 22v3c-11 26 -26 50 -44 72z" />
-    <glyph glyph-name="70" unicode="&#xe070;"
-d="M703 800l97 -100l-400 -400l-100 100l-200 -203l-100 100l300 303l100 -100zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="71" unicode="&#xe071;"
-d="M0 700h100v-100h-100v100zM200 700h100v-100h-100v100zM400 700h100v-100h-100v100zM600 700h100v-100h-100v100zM0 500h100v-100h-100v100zM200 500h100v-100h-100v100zM400 500h100v-100h-100v100zM600 500h100v-100h-100v100zM0 300h100v-100h-100v100zM200 300h100
-v-100h-100v100zM400 300h100v-100h-100v100zM600 300h100v-100h-100v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100zM600 100h100v-100h-100v100z" />
-    <glyph glyph-name="72" unicode="&#xe072;"
-d="M0 800h200v-200h-200v200zM300 800h200v-200h-200v200zM600 800h200v-200h-200v200zM0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200zM0 200h200v-200h-200v200zM300 200h200v-200h-200v200zM600 200h200v-200h-200v200z" />
-    <glyph glyph-name="73" unicode="&#xe073;"
-d="M0 800h300v-300h-300v300zM500 800h300v-300h-300v300zM0 300h300v-300h-300v300zM500 300h300v-300h-300v300z" />
-    <glyph glyph-name="74" unicode="&#xe074;"
-d="M19 800h662c11 0 19 -8 19 -19v-331c0 -28 -22 -50 -50 -50h-600c-28 0 -50 22 -50 50v331c0 11 8 19 19 19zM0 309c16 -6 32 -9 50 -9h600c18 0 34 3 50 9v-290c0 -11 -8 -19 -19 -19h-662c-11 0 -19 8 -19 19v290zM550 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
-s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="75" unicode="&#xe075;"
-d="M0 700h300v-100h-50c-28 0 -50 -22 -50 -50v-150h300v150c0 28 -22 50 -50 50h-50v100h300v-100h-50c-28 0 -50 -22 -50 -50v-400c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50v150h-300v-150c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50
-v400c0 28 -22 50 -50 50h-50v100z" />
-    <glyph glyph-name="76" unicode="&#xe076;"
-d="M400 700c165 0 300 -135 300 -300v-100h50c28 0 50 -22 50 -50v-200c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v350c0 111 -89 200 -200 200s-200 -89 -200 -200v-350c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v200c0 28 22 50 50 50h50v100
-c0 165 135 300 300 300z" />
-    <glyph glyph-name="77" unicode="&#xe077;"
-d="M0 500c0 109 91 200 200 200s200 -91 200 -200c0 109 91 200 200 200s200 -91 200 -200c0 -55 -23 -105 -59 -141l-341 -340l-341 340c-36 36 -59 86 -59 141z" />
-    <glyph glyph-name="78" unicode="&#xe078;"
-d="M400 700l400 -300l-100 3v-403h-200v200h-200v-200h-200v400h-100z" />
-    <glyph glyph-name="79" unicode="&#xe079;"
-d="M0 800h800v-800h-800v800zM100 700v-300l100 100l400 -400h100v100l-200 200l100 100l100 -100v300h-600z" />
-    <glyph glyph-name="7a" unicode="&#xe07a;"
-d="M19 800h762c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-762c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 600v-300h100l100 -100h200l100 100h100v300h-600z" />
-    <glyph glyph-name="7b" unicode="&#xe07b;"
-d="M200 600c80 0 142 -56 200 -122c58 66 119 122 200 122c131 0 200 -101 200 -200s-69 -200 -200 -200c-81 0 -142 56 -200 122c-58 -66 -121 -122 -200 -122c-131 0 -200 101 -200 200s69 200 200 200zM200 500c-74 0 -100 -54 -100 -100s26 -100 100 -100
-c42 0 88 47 134 100c-46 53 -92 100 -134 100zM600 500c-43 0 -88 -47 -134 -100c46 -53 91 -100 134 -100c74 0 100 54 100 100s-26 100 -100 100z" />
-    <glyph glyph-name="7c" unicode="&#xe07c;" horiz-adv-x="400"
-d="M300 800c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100zM150 550c83 0 150 -69 150 -150c0 -66 -100 -214 -100 -250c0 -28 22 -50 50 -50s50 22 50 50h100c0 -83 -67 -150 -150 -150s-150 64 -150 150s100 222 100 250s-22 50 -50 50
-s-50 -22 -50 -50h-100c0 83 67 150 150 150z" />
-    <glyph glyph-name="7d" unicode="&#xe07d;"
-d="M200 800h500v-100h-122c-77 -197 -156 -392 -234 -588l-6 -12h162v-100h-500v100h122c77 197 156 392 234 588l7 12h-163v100z" />
-    <glyph glyph-name="7e" unicode="&#xe07e;"
-d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
-    <glyph glyph-name="7f" unicode="&#xe07f;"
-d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
-    <glyph glyph-name="80" unicode="&#xe080;"
-d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
-    <glyph glyph-name="81" unicode="&#xe081;"
-d="M550 800c138 0 250 -112 250 -250s-112 -250 -250 -250c-16 0 -32 0 -47 3l-3 -3v-100h-200v-200h-300v200l303 303c-3 15 -3 31 -3 47c0 138 112 250 250 250zM600 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
-    <glyph glyph-name="82" unicode="&#xe082;"
-d="M134 600h3h4h4h5h500c28 0 50 -22 50 -50v-350h100v-150c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v150h100v350v2c0 20 15 42 34 48zM200 500v-300h100v-100h200v100h100v300h-400z" />
-    <glyph glyph-name="83" unicode="&#xe083;"
-d="M0 800h400v-400h-400v400zM500 600h100v-400h-400v100h300v300zM700 400h100v-400h-400v100h300v300z" />
-    <glyph glyph-name="84" unicode="&#xe084;" horiz-adv-x="600"
-d="M337 694c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-300 -150c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49zM437 544c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-400 -200c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50
-c0 21 16 44 37 49zM437 344c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-106 -56c24 -4 43 -26 43 -50c0 -28 -23 -51 -51 -51c-2 0 -6 1 -8 1h-200c-26 1 -48 24 -48 50c0 16 12 36 26 44zM151 -50c0 23 20 50 46 50h3h4h5h100c28 0 50 -22 50 -50
-s-22 -50 -50 -50h-100c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
-    <glyph glyph-name="85" unicode="&#xe085;"
-d="M199 800h100v-200h-200v100h100v100zM586 797h1c18 1 38 1 56 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0l-44 -44
-c-8 -13 -27 -24 -42 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l43 44c32 33 72 53 128 56zM208 490c4 5 14 16 22 16h3c2 0 6 1 8 1c28 0 50 -22 50 -50c0 -11 -6 -27 -14 -35l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0l44 44c8 13 27 24 42 24
-c28 0 50 -22 50 -50c0 -15 -11 -35 -24 -43l-43 -44c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281zM499 200h200v-100h-100v-100h-100v200z" />
-    <glyph glyph-name="86" unicode="&#xe086;"
-d="M586 797c18 1 39 1 57 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-62 -62 -132 -81 -182 -78s-69 17 -84 25s-26 27 -26 44c0 28 22 51 50 51c8 0 19 -3 26 -7c0 0 15 -11 41 -13s62 3 106 47l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0
-c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43c32 33 72 53 128 56zM386 566c50 -2 64 -17 85 -22s37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11c0 0 -19 9 -47 10s-63 -4 -103 -44l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0
-c8 13 27 24 42 24c28 0 50 -22 50 -50c0 -15 -10 -35 -23 -43c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281l150 150c60 60 128 78 178 76z" />
-    <glyph glyph-name="87" unicode="&#xe087;"
-d="M0 700h300v-300h-300v300zM400 700h400v-100h-400v100zM400 500h300v-100h-300v100zM0 300h300v-300h-300v300zM400 300h400v-100h-400v100zM400 100h300v-100h-300v100z" />
-    <glyph glyph-name="88" unicode="&#xe088;"
-d="M50 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 700h600v-100h-600v100zM50 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 500h600v-100h-600v100zM50 300c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
-s22 50 50 50zM200 300h600v-100h-600v100zM50 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 100h600v-100h-600v100z" />
-    <glyph glyph-name="89" unicode="&#xe089;"
-d="M800 800l-400 -800l-100 300l-300 100z" />
-    <glyph glyph-name="8a" unicode="&#xe08a;" horiz-adv-x="600"
-d="M300 700c110 0 200 -90 200 -200v-100h100v-400h-600v400h100v100c0 110 90 200 200 200zM300 600c-56 0 -100 -44 -100 -100v-100h200v100c0 56 -44 100 -100 100z" />
-    <glyph glyph-name="8b" unicode="&#xe08b;" horiz-adv-x="600"
-d="M300 800c110 0 200 -90 200 -200v-200h100v-400h-600v400h400v200c0 56 -44 100 -100 100s-100 -44 -100 -100h-100c0 110 90 200 200 200z" />
-    <glyph glyph-name="8c" unicode="&#xe08c;"
-d="M400 700v-100c-111 0 -200 -89 -200 -200h100l-150 -200l-150 200h100c0 165 135 300 300 300zM650 600l150 -200h-100c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-100z" />
-    <glyph glyph-name="8d" unicode="&#xe08d;"
-d="M100 800h600v-300h100l-150 -250l-150 250h100v200h-400v-100h-100v200zM150 550l150 -250h-100v-200h400v100h100v-200h-600v300h-100z" />
-    <glyph glyph-name="8e" unicode="&#xe08e;"
-d="M600 700l200 -150l-200 -150v100h-500v-100h-100v100c0 55 45 100 100 100h500v100zM200 300v-100h500v100h100v-100c0 -55 -45 -100 -100 -100h-500v-100l-200 150z" />
-    <glyph glyph-name="8f" unicode="&#xe08f;" horiz-adv-x="900"
-d="M350 800c193 0 350 -157 350 -350c0 -60 -17 -117 -44 -166c5 -3 12 -8 16 -12l100 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 100c-4 3 -9 9 -12 13c-49 -26 -107 -41 -166 -41c-193 0 -350 157 -350 350s157 350 350 350zM350 200
-c142 0 250 108 250 250c0 139 -111 250 -250 250s-250 -111 -250 -250s111 -250 250 -250z" />
-    <glyph glyph-name="90" unicode="&#xe090;" horiz-adv-x="600"
-d="M300 800c166 0 300 -134 300 -300c0 -200 -300 -500 -300 -500s-300 300 -300 500c0 166 134 300 300 300zM300 700c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200z" />
-    <glyph glyph-name="91" unicode="&#xe091;" horiz-adv-x="900"
-d="M0 800h800v-541c1 -3 1 -8 1 -11s0 -7 -1 -10v-238h-800v800zM495 250c0 26 22 50 50 50h5h150v400h-600v-600h600v100h-150h-5c-28 0 -50 22 -50 50zM350 600c83 0 150 -67 150 -150c0 -100 -150 -250 -150 -250s-150 150 -150 250c0 83 67 150 150 150zM350 500
-c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="92" unicode="&#xe092;" horiz-adv-x="600"
-d="M0 700h200v-600h-200v600zM400 700h200v-600h-200v600z" />
-    <glyph glyph-name="93" unicode="&#xe093;" horiz-adv-x="600"
-d="M0 700l600 -300l-600 -300v600z" />
-    <glyph glyph-name="94" unicode="&#xe094;" horiz-adv-x="600"
-d="M300 700c166 0 300 -134 300 -300s-134 -300 -300 -300s-300 134 -300 300s134 300 300 300z" />
-    <glyph glyph-name="95" unicode="&#xe095;"
-d="M400 700v-600l-400 300zM400 400l400 300v-600z" />
-    <glyph glyph-name="96" unicode="&#xe096;"
-d="M0 700l400 -300l-400 -300v600zM400 100v600l400 -300z" />
-    <glyph glyph-name="97" unicode="&#xe097;"
-d="M0 700h200v-600h-200v600zM200 400l500 300v-600z" />
-    <glyph glyph-name="98" unicode="&#xe098;"
-d="M0 700l500 -300l-500 -300v600zM500 100v600h200v-600h-200z" />
-    <glyph glyph-name="99" unicode="&#xe099;" horiz-adv-x="600"
-d="M0 700h600v-600h-600v600z" />
-    <glyph glyph-name="9a" unicode="&#xe09a;"
-d="M200 800h400v-200h200v-400h-200v-200h-400v200h-200v400h200v200z" />
-    <glyph glyph-name="9b" unicode="&#xe09b;"
-d="M0 700h800v-100h-800v100zM0 403h800v-100h-800v100zM0 103h800v-100h-800v100z" />
-    <glyph glyph-name="9c" unicode="&#xe09c;" horiz-adv-x="600"
-d="M278 700c7 2 13 4 22 4c55 0 100 -45 100 -100v-4v-200c0 -55 -45 -100 -100 -100s-100 45 -100 100v200v2c0 44 35 88 78 98zM34 500h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-50c0 -111 89 -200 200 -200s200 89 200 200v50c0 28 22 50 50 50s50 -22 50 -50v-50
-c0 -148 -109 -270 -250 -294v-106h50c55 0 100 -45 100 -100h-400c0 55 45 100 100 100h50v106c-141 24 -250 146 -250 294v50v2c0 20 15 42 34 48z" />
-    <glyph glyph-name="9d" unicode="&#xe09d;"
-d="M0 500h800v-200h-800v200z" />
-    <glyph glyph-name="9e" unicode="&#xe09e;"
-d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-500c0 -28 -22 -50 -50 -50h-250v-100h100c55 0 100 -45 100 -100h-600c0 55 45 100 100 100h100v100h-250c-28 0 -50 22 -50 50v500v2c0 20 15 42 34 48zM100 600v-400h600v400h-600z" />
-    <glyph glyph-name="9f" unicode="&#xe09f;"
-d="M272 700c-14 -40 -22 -83 -22 -128c0 -221 179 -400 400 -400c45 0 88 8 128 22c-53 -158 -202 -272 -378 -272c-221 0 -400 179 -400 400c0 176 114 325 272 378z" />
-    <glyph glyph-name="a0" unicode="&#xe0a0;"
-d="M350 700l150 -150h-100v-150h150v100l150 -150l-150 -150v100h-150v-150h100l-150 -150l-150 150h100v150h-150v-100l-150 150l150 150v-100h150v150h-100z" />
-    <glyph glyph-name="a1" unicode="&#xe0a1;"
-d="M800 800v-550c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v206c-201 -6 -327 -27 -400 -50v-397c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v409s100 100 600 100z" />
-    <glyph glyph-name="a2" unicode="&#xe0a2;" horiz-adv-x="700"
-d="M499 700c51 0 102 -20 141 -59c78 -78 78 -203 0 -281l-250 -244c-48 -48 -127 -48 -175 0s-48 127 0 175l96 97l69 -69l-90 -94l-7 -3c-10 -10 -10 -28 0 -38s28 -10 38 0l250 247c37 40 39 102 0 141s-104 40 -144 0l-278 -275c-66 -69 -68 -179 0 -247
-c69 -69 181 -69 250 0l9 12l116 113l69 -69l-125 -125c-107 -107 -281 -107 -388 0s-107 281 0 388l278 272c39 39 90 59 141 59z" />
-    <glyph glyph-name="a3" unicode="&#xe0a3;"
-d="M600 800l200 -200l-100 -100l-200 200zM400 600l200 -200l-400 -400h-200v200z" />
-    <glyph glyph-name="a4" unicode="&#xe0a4;"
-d="M550 800c83 0 150 -90 150 -200s-67 -200 -150 -200c-22 0 -40 8 -59 19c6 26 9 52 9 81c0 84 -27 158 -72 212c27 52 71 88 122 88zM250 700c83 0 150 -90 150 -200s-67 -200 -150 -200s-150 90 -150 200s67 200 150 200zM725 384c44 -22 75 -66 75 -118v-166h-200v66
-c0 50 -17 96 -44 134c66 2 126 33 169 84zM75 284c45 -53 106 -84 175 -84s130 31 175 84c44 -22 75 -66 75 -118v-166h-500v166c0 52 31 96 75 118z" />
-    <glyph glyph-name="a5" unicode="&#xe0a5;"
-d="M400 800c110 0 200 -112 200 -250s-90 -250 -200 -250s-200 112 -200 250s90 250 200 250zM191 300c54 -61 128 -100 209 -100s155 39 209 100c106 -5 191 -92 191 -200v-100h-800v100c0 108 85 195 191 200z" />
-    <glyph glyph-name="a6" unicode="&#xe0a6;" horiz-adv-x="600"
-d="M19 800h462c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-462c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 700v-500h300v500h-300zM250 150c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="a7" unicode="&#xe0a7;"
-d="M350 800c17 0 34 -1 50 -3v-397l-297 297c63 64 150 103 247 103zM500 694c169 -25 300 -168 300 -344c0 -193 -157 -350 -350 -350c-85 0 -161 31 -222 81l272 272v341zM91 562l237 -234l-212 -212c-70 55 -116 138 -116 234c0 84 35 158 91 212z" />
-    <glyph glyph-name="a8" unicode="&#xe0a8;"
-d="M92 650c0 23 20 50 46 50h3h4h5h400c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-200h100c55 0 100 -45 100 -100h-300v-300l-56 -100l-44 100v300h-300c0 55 45 100 100 100h100v200h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
-    <glyph glyph-name="a9" unicode="&#xe0a9;"
-d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 600v-400l300 200z" />
-    <glyph glyph-name="aa" unicode="&#xe0aa;"
-d="M300 800h200v-300h300v-200h-300v-300h-200v300h-300v200h300v300z" />
-    <glyph glyph-name="ab" unicode="&#xe0ab;"
-d="M300 800h100v-400h-100v400zM172 656l62 -78l-40 -31c-58 -46 -94 -117 -94 -197c0 -139 111 -250 250 -250s250 111 250 250c0 80 -39 151 -97 197l-37 31l62 78l38 -31c82 -64 134 -164 134 -275c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 111 53 211 134 275z
-" />
-    <glyph glyph-name="ac" unicode="&#xe0ac;"
-d="M200 800h400v-200h-400v200zM9 500h782c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-91v200h-600v-200h-91c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM200 300h400v-300h-400v300z" />
-    <glyph glyph-name="ad" unicode="&#xe0ad;"
-d="M0 700h100v-700h-100v700zM700 700h100v-700h-100v700zM200 600h200v-100h-200v100zM300 400h200v-100h-200v100zM400 200h200v-100h-200v100z" />
-    <glyph glyph-name="ae" unicode="&#xe0ae;"
-d="M325 700c42 -141 87 -280 131 -419c29 74 59 148 88 222c30 -57 58 -114 87 -172h169v-100h-231l-13 28c-37 -92 -74 -184 -112 -275c-38 129 -79 257 -119 385c-42 -133 -83 -267 -125 -400c-28 88 -56 175 -84 262h-116v100h188l9 -34l3 -6c42 137 83 273 125 409z" />
-    <glyph glyph-name="af" unicode="&#xe0af;"
-d="M200 600c0 57 43 100 100 100s100 -43 100 -100c0 -28 -18 -48 -28 -72c-3 -6 -3 -16 -3 -28h231v-231c12 0 22 0 28 3c24 10 44 28 72 28c57 0 100 -43 100 -100s-43 -100 -100 -100c-28 0 -48 18 -72 28c-6 3 -16 3 -28 3v-231h-231c0 12 0 22 3 28c10 24 28 44 28 72
-c0 57 -43 100 -100 100s-100 -43 -100 -100c0 -28 18 -48 28 -72c3 -6 3 -16 3 -28h-231v600h231c0 12 0 22 -3 28c-10 24 -28 44 -28 72z" />
-    <glyph glyph-name="b0" unicode="&#xe0b0;" horiz-adv-x="500"
-d="M247 700c84 0 148 -20 191 -59s59 -93 59 -141c0 -117 -69 -181 -119 -225s-81 -67 -81 -150v-25h-100v25c0 117 65 181 115 225s85 67 85 150c0 25 -8 48 -28 66s-56 34 -122 34s-97 -18 -116 -37s-27 -43 -31 -69l-100 12c5 38 19 88 59 128s103 66 188 66zM197 0h100
-v-100h-100v100z" />
-    <glyph glyph-name="b1" unicode="&#xe0b1;"
-d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -69 -48 -127 -112 -144c-22 55 -75 94 -138 94c-20 0 -39 -5 -56 -12c-17 64 -75 112 -144 112s-127 -48 -144 -112c-17 7 -36 12 -56 12c-37 0 -71 -12 -97 -34c-33 36 -53 82 -53 134
-c0 110 90 200 200 200c23 114 129 200 250 200zM334 300h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-200c0 -28 -22 -50 -50 -50s-50 22 -50 50v200v2c0 20 15 42 34 48zM134 200h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2
-c0 20 15 42 34 48zM534 200h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2c0 20 15 42 34 48z" />
-    <glyph glyph-name="b2" unicode="&#xe0b2;"
-d="M600 800l200 -150l-200 -150v100h-50l-153 -191l175 -206l6 -3h22v100l200 -150l-200 -150v100h-25c-35 0 -56 12 -78 38l-166 190l-153 -190c-22 -27 -43 -38 -78 -38h-100v100h100l166 206l-163 191l-3 3h-100v100h100c34 0 56 -12 78 -38l153 -178l141 178
-c22 27 43 38 78 38h50v100z" />
-    <glyph glyph-name="b3" unicode="&#xe0b3;"
-d="M400 800c110 0 209 -47 281 -119l119 119v-300h-300l109 109c-54 55 -126 91 -209 91c-166 0 -300 -134 -300 -300s134 -300 300 -300c83 0 158 34 212 88l72 -72c-72 -72 -174 -116 -284 -116c-220 0 -400 180 -400 400s180 400 400 400z" />
-    <glyph glyph-name="b4" unicode="&#xe0b4;"
-d="M400 800h400v-400l-166 166l-400 -400l166 -166h-400v400l166 -166l400 400z" />
-    <glyph glyph-name="b5" unicode="&#xe0b5;" horiz-adv-x="600"
-d="M250 800l250 -300h-200v-200h200l-250 -300l-250 300h200v200h-200z" />
-    <glyph glyph-name="b6" unicode="&#xe0b6;"
-d="M300 600v-200h200v200l300 -250l-300 -250v200h-200v-200l-300 250z" />
-    <glyph glyph-name="b7" unicode="&#xe0b7;"
-d="M0 800c441 0 800 -359 800 -800h-200c0 333 -267 600 -600 600v200zM0 500c275 0 500 -225 500 -500h-200c0 167 -133 300 -300 300v200zM0 200c110 0 200 -90 200 -200h-200v200z" />
-    <glyph glyph-name="b8" unicode="&#xe0b8;"
-d="M100 800c386 0 700 -314 700 -700h-100c0 332 -268 600 -600 600v100zM100 600c276 0 500 -224 500 -500h-100c0 222 -178 400 -400 400v100zM100 400c165 0 300 -135 300 -300h-100c0 111 -89 200 -200 200v100zM100 200c55 0 100 -45 100 -100s-45 -100 -100 -100
-s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="b9" unicode="&#xe0b9;"
-d="M300 800h400c55 0 100 -45 100 -100v-200h-400v150c0 28 -22 50 -50 50s-50 -22 -50 -50v-250h400v-300c0 -55 -45 -100 -100 -100h-500c-55 0 -100 45 -100 100v200h100v-150c0 -28 22 -50 50 -50s50 22 50 50v550c0 55 45 100 100 100z" />
-    <glyph glyph-name="ba" unicode="&#xe0ba;"
-d="M75 700h225v-100h-200v-500h400v100h100v-125c0 -41 -34 -75 -75 -75h-450c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM600 700l200 -200l-200 -200v100h-200c-94 0 -173 -65 -194 -153c23 199 189 353 394 353v100z" />
-    <glyph glyph-name="bb" unicode="&#xe0bb;"
-d="M500 700l300 -284l-300 -316v200h-100c-200 0 -348 -102 -400 -300c0 295 100 500 500 500v200z" />
-    <glyph glyph-name="bc" unicode="&#xe0bc;"
-d="M381 791l19 9l19 -9c127 -53 253 -108 381 -160v-31c0 -166 -67 -313 -147 -419c-40 -53 -83 -97 -125 -128s-82 -53 -128 -53s-86 22 -128 53s-85 75 -125 128c-80 107 -147 253 -147 419v31c128 52 254 107 381 160zM400 100v591l-294 -122c8 -126 58 -243 122 -328
-c35 -46 73 -86 106 -110s62 -31 66 -31z" />
-    <glyph glyph-name="bd" unicode="&#xe0bd;"
-d="M600 800h100v-800h-100v800zM400 700h100v-700h-100v700zM200 500h100v-500h-100v500zM0 300h100v-300h-100v300z" />
-    <glyph glyph-name="be" unicode="&#xe0be;"
-d="M300 800h100v-200h200l100 -100l-100 -100h-200v-400h-100v500h-200l-100 100l100 100h200v100z" />
-    <glyph glyph-name="bf" unicode="&#xe0bf;"
-d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h200v-100h-200v100zM400 600h300v-100h-300v100zM400 400h400v-100h-400v100z" />
-    <glyph glyph-name="c0" unicode="&#xe0c0;"
-d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h400v-100h-400v100zM400 600h300v-100h-300v100zM400 400h200v-100h-200v100z" />
-    <glyph glyph-name="c1" unicode="&#xe0c1;"
-d="M75 700h650c41 0 75 -34 75 -75v-550c0 -41 -34 -75 -75 -75h-650c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM100 600v-100h100v100h-100zM300 600v-100h400v100h-400zM100 400v-100h100v100h-100zM300 400v-100h400v100h-400zM100 200v-100h100v100h-100zM300 200
-v-100h400v100h-400z" />
-    <glyph glyph-name="c2" unicode="&#xe0c2;"
-d="M400 800l100 -300h300l-250 -200l100 -300l-250 200l-250 -200l100 300l-250 200h300z" />
-    <glyph glyph-name="c3" unicode="&#xe0c3;"
-d="M400 800c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM650 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 600c110 0 200 -90 200 -200
-s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM50 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM750 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
-s22 50 50 50zM650 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
-    <glyph glyph-name="c4" unicode="&#xe0c4;"
-d="M34 800h632c18 0 34 -16 34 -34v-732c0 -18 -16 -34 -34 -34h-632c-18 0 -34 16 -34 34v732c0 18 16 34 34 34zM100 700v-500h500v500h-500zM350 150c-38 0 -63 -42 -44 -75s69 -33 88 0s-6 75 -44 75z" />
-    <glyph glyph-name="c5" unicode="&#xe0c5;"
-d="M0 800h300l500 -500l-300 -300l-500 500v300zM200 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
-    <glyph glyph-name="c6" unicode="&#xe0c6;"
-d="M0 600h200l300 -300l-200 -200l-300 300v200zM340 600h160l300 -300l-200 -200l-78 78l119 122zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="c7" unicode="&#xe0c7;"
-d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200
-s90 200 200 200zM400 500c-56 0 -100 -44 -100 -100s44 -100 100 -100s100 44 100 100s-44 100 -100 100z" />
-    <glyph glyph-name="c8" unicode="&#xe0c8;"
-d="M0 700h559l-100 -100h-359v-500h500v159l100 100v-359h-700v700zM700 700l100 -100l-400 -400l-200 200l100 100l100 -100z" />
-    <glyph glyph-name="c9" unicode="&#xe0c9;"
-d="M9 800h782c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM150 722l-72 -72l100 -100l-100 -100l72 -72l172 172zM400 500v-100h300v100h-300z" />
-    <glyph glyph-name="ca" unicode="&#xe0ca;"
-d="M0 800h800v-200h-50c0 55 -45 100 -100 100h-150v-550c0 -28 22 -50 50 -50h50v-100h-400v100h50c28 0 50 22 50 50v550h-150c-55 0 -100 -45 -100 -100h-50v200z" />
-    <glyph glyph-name="cb" unicode="&#xe0cb;"
-d="M0 700h100v-400h-100v400zM200 700h350c21 0 39 -13 47 -31c0 0 103 -291 103 -319s-22 -50 -50 -50h-150c-28 0 -50 -25 -50 -50s39 -158 47 -184s-5 -55 -31 -63s-52 5 -66 31s-109 219 -128 238s-44 28 -72 28v400z" />
-    <glyph glyph-name="cc" unicode="&#xe0cc;"
-d="M400 666c10 19 28 32 47 34l19 -3c26 -8 39 -37 31 -63s-47 -159 -47 -184s22 -50 50 -50h150c28 0 50 -22 50 -50s-103 -319 -103 -319c-8 -18 -26 -31 -47 -31h-350v400c28 0 53 9 72 28s114 212 128 238zM0 400h100v-400h-100v400z" />
-    <glyph glyph-name="cd" unicode="&#xe0cd;"
-d="M200 700h300v-100h-100v-6c25 -4 50 -8 72 -16l-34 -94c-28 11 -58 16 -88 16c-139 0 -250 -111 -250 -250s111 -250 250 -250s250 111 250 250c0 31 -5 60 -16 88l91 37c14 -38 25 -81 25 -125c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 176 130 323 300 347v3
-h-100v100zM700 584c0 0 -296 -348 -316 -368s-48 -20 -68 0s-20 48 0 68s384 300 384 300z" />
-    <glyph glyph-name="ce" unicode="&#xe0ce;"
-d="M600 700l200 -150l-200 -150v100h-600v100h600v100zM200 300v-100h600v-100h-600v-100l-200 150z" />
-    <glyph glyph-name="cf" unicode="&#xe0cf;"
-d="M300 800h100c55 0 100 -45 100 -100h100c55 0 100 -45 100 -100h-700c0 55 45 100 100 100h100c0 55 45 100 100 100zM100 500h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-481c0 -11 -8 -19 -19 -19h-462
-c-11 0 -19 8 -19 19v481z" />
-    <glyph glyph-name="d0" unicode="&#xe0d0;"
-d="M100 800h200v-400c0 -55 45 -100 100 -100s100 45 100 100v400h100v-400c0 -110 -90 -200 -200 -200h-50c-138 0 -250 90 -250 200v400zM0 100h700v-100h-700v100z" />
-    <glyph glyph-name="d1" unicode="&#xe0d1;"
-d="M9 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM609 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282
-c0 6 3 9 9 9zM0 100h800v-100h-800v100z" />
-    <glyph glyph-name="d2" unicode="&#xe0d2;"
-d="M10 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 4 9 10 9zM610 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 5 9 10 9zM310 600h181c6 0 9 -3 9 -9v-91h-200v91c0 6 4 9 10 9zM0 400h800v-100h-800v100zM0 200h200v-191c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v191zM300 200
-h200v-91c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v91zM600 200h200v-191c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v191z" />
-    <glyph glyph-name="d3" unicode="&#xe0d3;"
-d="M0 700h800v-100h-800v100zM9 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM609 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182
-c-6 0 -9 3 -9 9v482c0 6 3 9 9 9z" />
-    <glyph glyph-name="d4" unicode="&#xe0d4;"
-d="M50 600h500c28 0 50 -22 50 -50v-150l100 100h100v-300h-100l-100 100v-150c0 -28 -22 -50 -50 -50h-500c-28 0 -50 22 -50 50v400c0 28 22 50 50 50z" />
-    <glyph glyph-name="d5" unicode="&#xe0d5;"
-d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 600v100c26 0 52 -4 75 -10c130 -33 225 -150 225 -290s-95 -258 -225 -291h-3c-23 -6 -47 -9 -72 -9v100c17 0 34 2 50 6c86 22 150 100 150 194s-64 172 -150 194c-16 4 -33 6 -50 6zM500 500l25 -3
-c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
-    <glyph glyph-name="d6" unicode="&#xe0d6;" horiz-adv-x="600"
-d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 500l25 -3c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
-    <glyph glyph-name="d7" unicode="&#xe0d7;" horiz-adv-x="400"
-d="M334 800h66v-800h-66l-134 200h-200v400h200z" />
-    <glyph glyph-name="d8" unicode="&#xe0d8;"
-d="M309 800h82c6 0 10 -4 12 -9l294 -682l3 -19v-81c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v81l3 19l294 682c2 5 6 9 12 9zM300 500v-200h100v200h-100zM300 200v-100h100v100h-100z" />
-    <glyph glyph-name="d9" unicode="&#xe0d9;"
-d="M375 800c138 0 269 -39 378 -109l-53 -82c-93 60 -205 91 -325 91c-119 0 -229 -32 -322 -91l-53 82c109 70 237 109 375 109zM375 500c78 0 154 -23 216 -62l-53 -85c-46 30 -104 47 -163 47c-60 0 -112 -17 -159 -47l-54 85c62 40 134 62 213 62zM375 200
-c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
-    <glyph glyph-name="da" unicode="&#xe0da;" horiz-adv-x="900"
-d="M551 800c16 0 32 0 47 -3l-97 -97v-200h200l97 97c3 -15 3 -31 3 -47c0 -138 -112 -250 -250 -250c-32 0 -62 8 -90 19l-288 -291c-20 -20 -46 -28 -72 -28s-52 8 -72 28c-39 39 -39 105 0 144l291 287c-11 28 -19 59 -19 91c0 138 112 250 250 250zM101 150
-c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
-    <glyph glyph-name="db" unicode="&#xe0db;"
-d="M141 700c84 -84 169 -167 253 -250c82 83 167 165 247 250l143 -141l-253 -253c84 -82 167 -166 253 -247l-143 -143c-81 86 -165 169 -247 253l-253 -253l-141 143c85 80 167 164 250 247c-83 84 -166 169 -250 253z" />
-    <glyph glyph-name="dc" unicode="&#xe0dc;"
-d="M0 800h100l231 -300h38l231 300h100l-225 -300h225v-100h-300v-100h300v-100h-300v-200h-100v200h-300v100h300v100h-300v100h225z" />
-    <glyph glyph-name="dd" unicode="&#xe0dd;" horiz-adv-x="900"
-d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
-c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM300 600h100v-100h100v-100h-100v-100h-100v100h-100v100h100v100z" />
-    <glyph glyph-name="de" unicode="&#xe0de;" horiz-adv-x="900"
-d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
-c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM200 500h300v-100h-300v100z" />
-  </font>
-</defs></svg>
diff --git a/pagure/static/open-iconic/fonts/open-iconic.ttf b/pagure/static/open-iconic/fonts/open-iconic.ttf
deleted file mode 100644
index fab6048..0000000
Binary files a/pagure/static/open-iconic/fonts/open-iconic.ttf and /dev/null differ
diff --git a/pagure/static/open-iconic/fonts/open-iconic.woff b/pagure/static/open-iconic/fonts/open-iconic.woff
deleted file mode 100644
index f930998..0000000
Binary files a/pagure/static/open-iconic/fonts/open-iconic.woff and /dev/null differ
diff --git a/pagure/static/selectize-0.12.3.js b/pagure/static/selectize-0.12.3.js
deleted file mode 100644
index e07d88f..0000000
--- a/pagure/static/selectize-0.12.3.js
+++ /dev/null
@@ -1,3829 +0,0 @@
-/**
- * sifter.js
- * Copyright (c) 2013 Brian Reavis & contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
- * file except in compliance with the License. You may obtain a copy of the License at:
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
- * ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- *
- * @author Brian Reavis <brian@thirdroute.com>
- */
-
-(function(root, factory) {
-	if (typeof define === 'function' && define.amd) {
-		define('sifter', factory);
-	} else if (typeof exports === 'object') {
-		module.exports = factory();
-	} else {
-		root.Sifter = factory();
-	}
-}(this, function() {
-
-	/**
-	 * Textually searches arrays and hashes of objects
-	 * by property (or multiple properties). Designed
-	 * specifically for autocomplete.
-	 *
-	 * @constructor
-	 * @param {array|object} items
-	 * @param {object} items
-	 */
-	var Sifter = function(items, settings) {
-		this.items = items;
-		this.settings = settings || {diacritics: true};
-	};
-
-	/**
-	 * Splits a search string into an array of individual
-	 * regexps to be used to match results.
-	 *
-	 * @param {string} query
-	 * @returns {array}
-	 */
-	Sifter.prototype.tokenize = function(query) {
-		query = trim(String(query || '').toLowerCase());
-		if (!query || !query.length) return [];
-
-		var i, n, regex, letter;
-		var tokens = [];
-		var words = query.split(/ +/);
-
-		for (i = 0, n = words.length; i < n; i++) {
-			regex = escape_regex(words[i]);
-			if (this.settings.diacritics) {
-				for (letter in DIACRITICS) {
-					if (DIACRITICS.hasOwnProperty(letter)) {
-						regex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]);
-					}
-				}
-			}
-			tokens.push({
-				string : words[i],
-				regex  : new RegExp(regex, 'i')
-			});
-		}
-
-		return tokens;
-	};
-
-	/**
-	 * Iterates over arrays and hashes.
-	 *
-	 * ```
-	 * this.iterator(this.items, function(item, id) {
-	 *    // invoked for each item
-	 * });
-	 * ```
-	 *
-	 * @param {array|object} object
-	 */
-	Sifter.prototype.iterator = function(object, callback) {
-		var iterator;
-		if (is_array(object)) {
-			iterator = Array.prototype.forEach || function(callback) {
-				for (var i = 0, n = this.length; i < n; i++) {
-					callback(this[i], i, this);
-				}
-			};
-		} else {
-			iterator = function(callback) {
-				for (var key in this) {
-					if (this.hasOwnProperty(key)) {
-						callback(this[key], key, this);
-					}
-				}
-			};
-		}
-
-		iterator.apply(object, [callback]);
-	};
-
-	/**
-	 * Returns a function to be used to score individual results.
-	 *
-	 * Good matches will have a higher score than poor matches.
-	 * If an item is not a match, 0 will be returned by the function.
-	 *
-	 * @param {object|string} search
-	 * @param {object} options (optional)
-	 * @returns {function}
-	 */
-	Sifter.prototype.getScoreFunction = function(search, options) {
-		var self, fields, tokens, token_count, nesting;
-
-		self        = this;
-		search      = self.prepareSearch(search, options);
-		tokens      = search.tokens;
-		fields      = search.options.fields;
-		token_count = tokens.length;
-		nesting     = search.options.nesting;
-
-		/**
-		 * Calculates how close of a match the
-		 * given value is against a search token.
-		 *
-		 * @param {mixed} value
-		 * @param {object} token
-		 * @return {number}
-		 */
-		var scoreValue = function(value, token) {
-			var score, pos;
-
-			if (!value) return 0;
-			value = String(value || '');
-			pos = value.search(token.regex);
-			if (pos === -1) return 0;
-			score = token.string.length / value.length;
-			if (pos === 0) score += 0.5;
-			return score;
-		};
-
-		/**
-		 * Calculates the score of an object
-		 * against the search query.
-		 *
-		 * @param {object} token
-		 * @param {object} data
-		 * @return {number}
-		 */
-		var scoreObject = (function() {
-			var field_count = fields.length;
-			if (!field_count) {
-				return function() { return 0; };
-			}
-			if (field_count === 1) {
-				return function(token, data) {
-					return scoreValue(getattr(data, fields[0], nesting), token);
-				};
-			}
-			return function(token, data) {
-				for (var i = 0, sum = 0; i < field_count; i++) {
-					sum += scoreValue(getattr(data, fields[i], nesting), token);
-				}
-				return sum / field_count;
-			};
-		})();
-
-		if (!token_count) {
-			return function() { return 0; };
-		}
-		if (token_count === 1) {
-			return function(data) {
-				return scoreObject(tokens[0], data);
-			};
-		}
-
-		if (search.options.conjunction === 'and') {
-			return function(data) {
-				var score;
-				for (var i = 0, sum = 0; i < token_count; i++) {
-					score = scoreObject(tokens[i], data);
-					if (score <= 0) return 0;
-					sum += score;
-				}
-				return sum / token_count;
-			};
-		} else {
-			return function(data) {
-				for (var i = 0, sum = 0; i < token_count; i++) {
-					sum += scoreObject(tokens[i], data);
-				}
-				return sum / token_count;
-			};
-		}
-	};
-
-	/**
-	 * Returns a function that can be used to compare two
-	 * results, for sorting purposes. If no sorting should
-	 * be performed, `null` will be returned.
-	 *
-	 * @param {string|object} search
-	 * @param {object} options
-	 * @return function(a,b)
-	 */
-	Sifter.prototype.getSortFunction = function(search, options) {
-		var i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort;
-
-		self   = this;
-		search = self.prepareSearch(search, options);
-		sort   = (!search.query && options.sort_empty) || options.sort;
-
-		/**
-		 * Fetches the specified sort field value
-		 * from a search result item.
-		 *
-		 * @param  {string} name
-		 * @param  {object} result
-		 * @return {mixed}
-		 */
-		get_field = function(name, result) {
-			if (name === '$score') return result.score;
-			return getattr(self.items[result.id], name, options.nesting);
-		};
-
-		// parse options
-		fields = [];
-		if (sort) {
-			for (i = 0, n = sort.length; i < n; i++) {
-				if (search.query || sort[i].field !== '$score') {
-					fields.push(sort[i]);
-				}
-			}
-		}
-
-		// the "$score" field is implied to be the primary
-		// sort field, unless it's manually specified
-		if (search.query) {
-			implicit_score = true;
-			for (i = 0, n = fields.length; i < n; i++) {
-				if (fields[i].field === '$score') {
-					implicit_score = false;
-					break;
-				}
-			}
-			if (implicit_score) {
-				fields.unshift({field: '$score', direction: 'desc'});
-			}
-		} else {
-			for (i = 0, n = fields.length; i < n; i++) {
-				if (fields[i].field === '$score') {
-					fields.splice(i, 1);
-					break;
-				}
-			}
-		}
-
-		multipliers = [];
-		for (i = 0, n = fields.length; i < n; i++) {
-			multipliers.push(fields[i].direction === 'desc' ? -1 : 1);
-		}
-
-		// build function
-		fields_count = fields.length;
-		if (!fields_count) {
-			return null;
-		} else if (fields_count === 1) {
-			field = fields[0].field;
-			multiplier = multipliers[0];
-			return function(a, b) {
-				return multiplier * cmp(
-					get_field(field, a),
-					get_field(field, b)
-				);
-			};
-		} else {
-			return function(a, b) {
-				var i, result, a_value, b_value, field;
-				for (i = 0; i < fields_count; i++) {
-					field = fields[i].field;
-					result = multipliers[i] * cmp(
-						get_field(field, a),
-						get_field(field, b)
-					);
-					if (result) return result;
-				}
-				return 0;
-			};
-		}
-	};
-
-	/**
-	 * Parses a search query and returns an object
-	 * with tokens and fields ready to be populated
-	 * with results.
-	 *
-	 * @param {string} query
-	 * @param {object} options
-	 * @returns {object}
-	 */
-	Sifter.prototype.prepareSearch = function(query, options) {
-		if (typeof query === 'object') return query;
-
-		options = extend({}, options);
-
-		var option_fields     = options.fields;
-		var option_sort       = options.sort;
-		var option_sort_empty = options.sort_empty;
-
-		if (option_fields && !is_array(option_fields)) options.fields = [option_fields];
-		if (option_sort && !is_array(option_sort)) options.sort = [option_sort];
-		if (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty];
-
-		return {
-			options : options,
-			query   : String(query || '').toLowerCase(),
-			tokens  : this.tokenize(query),
-			total   : 0,
-			items   : []
-		};
-	};
-
-	/**
-	 * Searches through all items and returns a sorted array of matches.
-	 *
-	 * The `options` parameter can contain:
-	 *
-	 *   - fields {string|array}
-	 *   - sort {array}
-	 *   - score {function}
-	 *   - filter {bool}
-	 *   - limit {integer}
-	 *
-	 * Returns an object containing:
-	 *
-	 *   - options {object}
-	 *   - query {string}
-	 *   - tokens {array}
-	 *   - total {int}
-	 *   - items {array}
-	 *
-	 * @param {string} query
-	 * @param {object} options
-	 * @returns {object}
-	 */
-	Sifter.prototype.search = function(query, options) {
-		var self = this, value, score, search, calculateScore;
-		var fn_sort;
-		var fn_score;
-
-		search  = this.prepareSearch(query, options);
-		options = search.options;
-		query   = search.query;
-
-		// generate result scoring function
-		fn_score = options.score || self.getScoreFunction(search);
-
-		// perform search and sort
-		if (query.length) {
-			self.iterator(self.items, function(item, id) {
-				score = fn_score(item);
-				if (options.filter === false || score > 0) {
-					search.items.push({'score': score, 'id': id});
-				}
-			});
-		} else {
-			self.iterator(self.items, function(item, id) {
-				search.items.push({'score': 1, 'id': id});
-			});
-		}
-
-		fn_sort = self.getSortFunction(search, options);
-		if (fn_sort) search.items.sort(fn_sort);
-
-		// apply limits
-		search.total = search.items.length;
-		if (typeof options.limit === 'number') {
-			search.items = search.items.slice(0, options.limit);
-		}
-
-		return search;
-	};
-
-	// utilities
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-	var cmp = function(a, b) {
-		if (typeof a === 'number' && typeof b === 'number') {
-			return a > b ? 1 : (a < b ? -1 : 0);
-		}
-		a = asciifold(String(a || ''));
-		b = asciifold(String(b || ''));
-		if (a > b) return 1;
-		if (b > a) return -1;
-		return 0;
-	};
-
-	var extend = function(a, b) {
-		var i, n, k, object;
-		for (i = 1, n = arguments.length; i < n; i++) {
-			object = arguments[i];
-			if (!object) continue;
-			for (k in object) {
-				if (object.hasOwnProperty(k)) {
-					a[k] = object[k];
-				}
-			}
-		}
-		return a;
-	};
-
-	/**
-	 * A property getter resolving dot-notation
-	 * @param  {Object}  obj     The root object to fetch property on
-	 * @param  {String}  name    The optionally dotted property name to fetch
-	 * @param  {Boolean} nesting Handle nesting or not
-	 * @return {Object}          The resolved property value
-	 */
-	var getattr = function(obj, name, nesting) {
-	    if (!obj || !name) return;
-	    if (!nesting) return obj[name];
-	    var names = name.split(".");
-	    while(names.length && (obj = obj[names.shift()]));
-	    return obj;
-	};
-
-	var trim = function(str) {
-		return (str + '').replace(/^\s+|\s+$|/g, '');
-	};
-
-	var escape_regex = function(str) {
-		return (str + '').replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
-	};
-
-	var is_array = Array.isArray || (typeof $ !== 'undefined' && $.isArray) || function(object) {
-		return Object.prototype.toString.call(object) === '[object Array]';
-	};
-
-	var DIACRITICS = {
-		'a': '[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]',
-		'b': '[b␢βΒB฿𐌁ᛒ]',
-		'c': '[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄＣｃ]',
-		'd': '[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅＤｄð]',
-		'e': '[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇＥｅɘǝƏƐε]',
-		'f': '[fƑƒḞḟ]',
-		'g': '[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]',
-		'h': '[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]',
-		'i': '[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪＩｉ]',
-		'j': '[jȷĴĵɈɉʝɟʲ]',
-		'k': '[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]',
-		'l': '[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟＬｌ]',
-		'n': '[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴＮｎŊŋ]',
-		'o': '[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]',
-		'p': '[pṔṕṖṗⱣᵽƤƥᵱ]',
-		'q': '[qꝖꝗʠɊɋꝘꝙq̃]',
-		'r': '[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]',
-		's': '[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]',
-		't': '[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]',
-		'u': '[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]',
-		'v': '[vṼṽṾṿƲʋꝞꝟⱱʋ]',
-		'w': '[wẂẃẀẁŴŵẄẅẆẇẈẉ]',
-		'x': '[xẌẍẊẋχ]',
-		'y': '[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]',
-		'z': '[zŹźẐẑŽžŻżẒẓẔẕƵƶ]'
-	};
-
-	var asciifold = (function() {
-		var i, n, k, chunk;
-		var foreignletters = '';
-		var lookup = {};
-		for (k in DIACRITICS) {
-			if (DIACRITICS.hasOwnProperty(k)) {
-				chunk = DIACRITICS[k].substring(2, DIACRITICS[k].length - 1);
-				foreignletters += chunk;
-				for (i = 0, n = chunk.length; i < n; i++) {
-					lookup[chunk.charAt(i)] = k;
-				}
-			}
-		}
-		var regexp = new RegExp('[' +  foreignletters + ']', 'g');
-		return function(str) {
-			return str.replace(regexp, function(foreignletter) {
-				return lookup[foreignletter];
-			}).toLowerCase();
-		};
-	})();
-
-
-	// export
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-	return Sifter;
-}));
-
-
-
-/**
- * microplugin.js
- * Copyright (c) 2013 Brian Reavis & contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
- * file except in compliance with the License. You may obtain a copy of the License at:
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
- * ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- *
- * @author Brian Reavis <brian@thirdroute.com>
- */
-
-(function(root, factory) {
-	if (typeof define === 'function' && define.amd) {
-		define('microplugin', factory);
-	} else if (typeof exports === 'object') {
-		module.exports = factory();
-	} else {
-		root.MicroPlugin = factory();
-	}
-}(this, function() {
-	var MicroPlugin = {};
-
-	MicroPlugin.mixin = function(Interface) {
-		Interface.plugins = {};
-
-		/**
-		 * Initializes the listed plugins (with options).
-		 * Acceptable formats:
-		 *
-		 * List (without options):
-		 *   ['a', 'b', 'c']
-		 *
-		 * List (with options):
-		 *   [{'name': 'a', options: {}}, {'name': 'b', options: {}}]
-		 *
-		 * Hash (with options):
-		 *   {'a': { ... }, 'b': { ... }, 'c': { ... }}
-		 *
-		 * @param {mixed} plugins
-		 */
-		Interface.prototype.initializePlugins = function(plugins) {
-			var i, n, key;
-			var self  = this;
-			var queue = [];
-
-			self.plugins = {
-				names     : [],
-				settings  : {},
-				requested : {},
-				loaded    : {}
-			};
-
-			if (utils.isArray(plugins)) {
-				for (i = 0, n = plugins.length; i < n; i++) {
-					if (typeof plugins[i] === 'string') {
-						queue.push(plugins[i]);
-					} else {
-						self.plugins.settings[plugins[i].name] = plugins[i].options;
-						queue.push(plugins[i].name);
-					}
-				}
-			} else if (plugins) {
-				for (key in plugins) {
-					if (plugins.hasOwnProperty(key)) {
-						self.plugins.settings[key] = plugins[key];
-						queue.push(key);
-					}
-				}
-			}
-
-			while (queue.length) {
-				self.require(queue.shift());
-			}
-		};
-
-		Interface.prototype.loadPlugin = function(name) {
-			var self    = this;
-			var plugins = self.plugins;
-			var plugin  = Interface.plugins[name];
-
-			if (!Interface.plugins.hasOwnProperty(name)) {
-				throw new Error('Unable to find "' +  name + '" plugin');
-			}
-
-			plugins.requested[name] = true;
-			plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);
-			plugins.names.push(name);
-		};
-
-		/**
-		 * Initializes a plugin.
-		 *
-		 * @param {string} name
-		 */
-		Interface.prototype.require = function(name) {
-			var self = this;
-			var plugins = self.plugins;
-
-			if (!self.plugins.loaded.hasOwnProperty(name)) {
-				if (plugins.requested[name]) {
-					throw new Error('Plugin has circular dependency ("' + name + '")');
-				}
-				self.loadPlugin(name);
-			}
-
-			return plugins.loaded[name];
-		};
-
-		/**
-		 * Registers a plugin.
-		 *
-		 * @param {string} name
-		 * @param {function} fn
-		 */
-		Interface.define = function(name, fn) {
-			Interface.plugins[name] = {
-				'name' : name,
-				'fn'   : fn
-			};
-		};
-	};
-
-	var utils = {
-		isArray: Array.isArray || function(vArg) {
-			return Object.prototype.toString.call(vArg) === '[object Array]';
-		}
-	};
-
-	return MicroPlugin;
-}));
-
-/**
- * selectize.js (v0.12.3)
- * Copyright (c) 2013–2015 Brian Reavis & contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
- * file except in compliance with the License. You may obtain a copy of the License at:
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
- * ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- *
- * @author Brian Reavis <brian@thirdroute.com>
- */
-
-/*jshint curly:false */
-/*jshint browser:true */
-
-(function(root, factory) {
-	if (typeof define === 'function' && define.amd) {
-		define('selectize', ['jquery','sifter','microplugin'], factory);
-	} else if (typeof exports === 'object') {
-		module.exports = factory(require('jquery'), require('sifter'), require('microplugin'));
-	} else {
-		root.Selectize = factory(root.jQuery, root.Sifter, root.MicroPlugin);
-	}
-}(this, function($, Sifter, MicroPlugin) {
-	'use strict';
-
-	var highlight = function($element, pattern) {
-		if (typeof pattern === 'string' && !pattern.length) return;
-		var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern;
-	
-		var highlight = function(node) {
-			var skip = 0;
-			if (node.nodeType === 3) {
-				var pos = node.data.search(regex);
-				if (pos >= 0 && node.data.length > 0) {
-					var match = node.data.match(regex);
-					var spannode = document.createElement('span');
-					spannode.className = 'highlight';
-					var middlebit = node.splitText(pos);
-					var endbit = middlebit.splitText(match[0].length);
-					var middleclone = middlebit.cloneNode(true);
-					spannode.appendChild(middleclone);
-					middlebit.parentNode.replaceChild(spannode, middlebit);
-					skip = 1;
-				}
-			} else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
-				for (var i = 0; i < node.childNodes.length; ++i) {
-					i += highlight(node.childNodes[i]);
-				}
-			}
-			return skip;
-		};
-	
-		return $element.each(function() {
-			highlight(this);
-		});
-	};
-	
-	/**
-	 * removeHighlight fn copied from highlight v5 and
-	 * edited to remove with() and pass js strict mode
-	 */
-	jQuery.fn.removeHighlight = function() {
-		return this.find("span.highlight").each(function() {
-			this.parentNode.firstChild.nodeName;
-			var parent = this.parentNode;
-			parent.replaceChild(this.firstChild, this);
-			parent.normalize();
-		}).end();
-	};
-	
-	
-	var MicroEvent = function() {};
-	MicroEvent.prototype = {
-		on: function(event, fct){
-			this._events = this._events || {};
-			this._events[event] = this._events[event] || [];
-			this._events[event].push(fct);
-		},
-		off: function(event, fct){
-			var n = arguments.length;
-			if (n === 0) return delete this._events;
-			if (n === 1) return delete this._events[event];
-	
-			this._events = this._events || {};
-			if (event in this._events === false) return;
-			this._events[event].splice(this._events[event].indexOf(fct), 1);
-		},
-		trigger: function(event /* , args... */){
-			this._events = this._events || {};
-			if (event in this._events === false) return;
-			for (var i = 0; i < this._events[event].length; i++){
-				this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));
-			}
-		}
-	};
-	
-	/**
-	 * Mixin will delegate all MicroEvent.js function in the destination object.
-	 *
-	 * - MicroEvent.mixin(Foobar) will make Foobar able to use MicroEvent
-	 *
-	 * @param {object} the object which will support MicroEvent
-	 */
-	MicroEvent.mixin = function(destObject){
-		var props = ['on', 'off', 'trigger'];
-		for (var i = 0; i < props.length; i++){
-			destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];
-		}
-	};
-	
-	var IS_MAC        = /Mac/.test(navigator.userAgent);
-	
-	var KEY_A         = 65;
-	var KEY_COMMA     = 188;
-	var KEY_RETURN    = 13;
-	var KEY_ESC       = 27;
-	var KEY_LEFT      = 37;
-	var KEY_UP        = 38;
-	var KEY_P         = 80;
-	var KEY_RIGHT     = 39;
-	var KEY_DOWN      = 40;
-	var KEY_N         = 78;
-	var KEY_BACKSPACE = 8;
-	var KEY_DELETE    = 46;
-	var KEY_SHIFT     = 16;
-	var KEY_CMD       = IS_MAC ? 91 : 17;
-	var KEY_CTRL      = IS_MAC ? 18 : 17;
-	var KEY_TAB       = 9;
-	
-	var TAG_SELECT    = 1;
-	var TAG_INPUT     = 2;
-	
-	// for now, android support in general is too spotty to support validity
-	var SUPPORTS_VALIDITY_API = !/android/i.test(window.navigator.userAgent) && !!document.createElement('input').validity;
-	
-	
-	var isset = function(object) {
-		return typeof object !== 'undefined';
-	};
-	
-	/**
-	 * Converts a scalar to its best string representation
-	 * for hash keys and HTML attribute values.
-	 *
-	 * Transformations:
-	 *   'str'     -> 'str'
-	 *   null      -> ''
-	 *   undefined -> ''
-	 *   true      -> '1'
-	 *   false     -> '0'
-	 *   0         -> '0'
-	 *   1         -> '1'
-	 *
-	 * @param {string} value
-	 * @returns {string|null}
-	 */
-	var hash_key = function(value) {
-		if (typeof value === 'undefined' || value === null) return null;
-		if (typeof value === 'boolean') return value ? '1' : '0';
-		return value + '';
-	};
-	
-	/**
-	 * Escapes a string for use within HTML.
-	 *
-	 * @param {string} str
-	 * @returns {string}
-	 */
-	var escape_html = function(str) {
-		return (str + '')
-			.replace(/&/g, '&amp;')
-			.replace(/</g, '&lt;')
-			.replace(/>/g, '&gt;')
-			.replace(/"/g, '&quot;');
-	};
-	
-	/**
-	 * Escapes "$" characters in replacement strings.
-	 *
-	 * @param {string} str
-	 * @returns {string}
-	 */
-	var escape_replace = function(str) {
-		return (str + '').replace(/\$/g, '$$$$');
-	};
-	
-	var hook = {};
-	
-	/**
-	 * Wraps `method` on `self` so that `fn`
-	 * is invoked before the original method.
-	 *
-	 * @param {object} self
-	 * @param {string} method
-	 * @param {function} fn
-	 */
-	hook.before = function(self, method, fn) {
-		var original = self[method];
-		self[method] = function() {
-			fn.apply(self, arguments);
-			return original.apply(self, arguments);
-		};
-	};
-	
-	/**
-	 * Wraps `method` on `self` so that `fn`
-	 * is invoked after the original method.
-	 *
-	 * @param {object} self
-	 * @param {string} method
-	 * @param {function} fn
-	 */
-	hook.after = function(self, method, fn) {
-		var original = self[method];
-		self[method] = function() {
-			var result = original.apply(self, arguments);
-			fn.apply(self, arguments);
-			return result;
-		};
-	};
-	
-	/**
-	 * Wraps `fn` so that it can only be invoked once.
-	 *
-	 * @param {function} fn
-	 * @returns {function}
-	 */
-	var once = function(fn) {
-		var called = false;
-		return function() {
-			if (called) return;
-			called = true;
-			fn.apply(this, arguments);
-		};
-	};
-	
-	/**
-	 * Wraps `fn` so that it can only be called once
-	 * every `delay` milliseconds (invoked on the falling edge).
-	 *
-	 * @param {function} fn
-	 * @param {int} delay
-	 * @returns {function}
-	 */
-	var debounce = function(fn, delay) {
-		var timeout;
-		return function() {
-			var self = this;
-			var args = arguments;
-			window.clearTimeout(timeout);
-			timeout = window.setTimeout(function() {
-				fn.apply(self, args);
-			}, delay);
-		};
-	};
-	
-	/**
-	 * Debounce all fired events types listed in `types`
-	 * while executing the provided `fn`.
-	 *
-	 * @param {object} self
-	 * @param {array} types
-	 * @param {function} fn
-	 */
-	var debounce_events = function(self, types, fn) {
-		var type;
-		var trigger = self.trigger;
-		var event_args = {};
-	
-		// override trigger method
-		self.trigger = function() {
-			var type = arguments[0];
-			if (types.indexOf(type) !== -1) {
-				event_args[type] = arguments;
-			} else {
-				return trigger.apply(self, arguments);
-			}
-		};
-	
-		// invoke provided function
-		fn.apply(self, []);
-		self.trigger = trigger;
-	
-		// trigger queued events
-		for (type in event_args) {
-			if (event_args.hasOwnProperty(type)) {
-				trigger.apply(self, event_args[type]);
-			}
-		}
-	};
-	
-	/**
-	 * A workaround for http://bugs.jquery.com/ticket/6696
-	 *
-	 * @param {object} $parent - Parent element to listen on.
-	 * @param {string} event - Event name.
-	 * @param {string} selector - Descendant selector to filter by.
-	 * @param {function} fn - Event handler.
-	 */
-	var watchChildEvent = function($parent, event, selector, fn) {
-		$parent.on(event, selector, function(e) {
-			var child = e.target;
-			while (child && child.parentNode !== $parent[0]) {
-				child = child.parentNode;
-			}
-			e.currentTarget = child;
-			return fn.apply(this, [e]);
-		});
-	};
-	
-	/**
-	 * Determines the current selection within a text input control.
-	 * Returns an object containing:
-	 *   - start
-	 *   - length
-	 *
-	 * @param {object} input
-	 * @returns {object}
-	 */
-	var getSelection = function(input) {
-		var result = {};
-		if ('selectionStart' in input) {
-			result.start = input.selectionStart;
-			result.length = input.selectionEnd - result.start;
-		} else if (document.selection) {
-			input.focus();
-			var sel = document.selection.createRange();
-			var selLen = document.selection.createRange().text.length;
-			sel.moveStart('character', -input.value.length);
-			result.start = sel.text.length - selLen;
-			result.length = selLen;
-		}
-		return result;
-	};
-	
-	/**
-	 * Copies CSS properties from one element to another.
-	 *
-	 * @param {object} $from
-	 * @param {object} $to
-	 * @param {array} properties
-	 */
-	var transferStyles = function($from, $to, properties) {
-		var i, n, styles = {};
-		if (properties) {
-			for (i = 0, n = properties.length; i < n; i++) {
-				styles[properties[i]] = $from.css(properties[i]);
-			}
-		} else {
-			styles = $from.css();
-		}
-		$to.css(styles);
-	};
-	
-	/**
-	 * Measures the width of a string within a
-	 * parent element (in pixels).
-	 *
-	 * @param {string} str
-	 * @param {object} $parent
-	 * @returns {int}
-	 */
-	var measureString = function(str, $parent) {
-		if (!str) {
-			return 0;
-		}
-	
-		var $test = $('<test>').css({
-			position: 'absolute',
-			top: -99999,
-			left: -99999,
-			width: 'auto',
-			padding: 0,
-			whiteSpace: 'pre'
-		}).text(str).appendTo('body');
-	
-		transferStyles($parent, $test, [
-			'letterSpacing',
-			'fontSize',
-			'fontFamily',
-			'fontWeight',
-			'textTransform'
-		]);
-	
-		var width = $test.width();
-		$test.remove();
-	
-		return width;
-	};
-	
-	/**
-	 * Sets up an input to grow horizontally as the user
-	 * types. If the value is changed manually, you can
-	 * trigger the "update" handler to resize:
-	 *
-	 * $input.trigger('update');
-	 *
-	 * @param {object} $input
-	 */
-	var autoGrow = function($input) {
-		var currentWidth = null;
-	
-		var update = function(e, options) {
-			var value, keyCode, printable, placeholder, width;
-			var shift, character, selection;
-			e = e || window.event || {};
-			options = options || {};
-	
-			if (e.metaKey || e.altKey) return;
-			if (!options.force && $input.data('grow') === false) return;
-	
-			value = $input.val();
-			if (e.type && e.type.toLowerCase() === 'keydown') {
-				keyCode = e.keyCode;
-				printable = (
-					(keyCode >= 97 && keyCode <= 122) || // a-z
-					(keyCode >= 65 && keyCode <= 90)  || // A-Z
-					(keyCode >= 48 && keyCode <= 57)  || // 0-9
-					keyCode === 32 // space
-				);
-	
-				if (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) {
-					selection = getSelection($input[0]);
-					if (selection.length) {
-						value = value.substring(0, selection.start) + value.substring(selection.start + selection.length);
-					} else if (keyCode === KEY_BACKSPACE && selection.start) {
-						value = value.substring(0, selection.start - 1) + value.substring(selection.start + 1);
-					} else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') {
-						value = value.substring(0, selection.start) + value.substring(selection.start + 1);
-					}
-				} else if (printable) {
-					shift = e.shiftKey;
-					character = String.fromCharCode(e.keyCode);
-					if (shift) character = character.toUpperCase();
-					else character = character.toLowerCase();
-					value += character;
-				}
-			}
-	
-			placeholder = $input.attr('placeholder');
-			if (!value && placeholder) {
-				value = placeholder;
-			}
-	
-			width = measureString(value, $input) + 4;
-			if (width !== currentWidth) {
-				currentWidth = width;
-				$input.width(width);
-				$input.triggerHandler('resize');
-			}
-		};
-	
-		$input.on('keydown keyup update blur', update);
-		update();
-	};
-	
-	var domToString = function(d) {
-		var tmp = document.createElement('div');
-	
-		tmp.appendChild(d.cloneNode(true));
-	
-		return tmp.innerHTML;
-	};
-	
-	var logError = function(message, options){
-		if(!options) options = {};
-		var component = "Selectize";
-	
-		console.error(component + ": " + message)
-	
-		if(options.explanation){
-			// console.group is undefined in <IE11
-			if(console.group) console.group();
-			console.error(options.explanation);
-			if(console.group) console.groupEnd();
-		}
-	}
-	
-	
-	var Selectize = function($input, settings) {
-		var key, i, n, dir, input, self = this;
-		input = $input[0];
-		input.selectize = self;
-	
-		// detect rtl environment
-		var computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);
-		dir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;
-		dir = dir || $input.parents('[dir]:first').attr('dir') || '';
-	
-		// setup default state
-		$.extend(self, {
-			order            : 0,
-			settings         : settings,
-			$input           : $input,
-			tabIndex         : $input.attr('tabindex') || '',
-			tagType          : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT,
-			rtl              : /rtl/i.test(dir),
-	
-			eventNS          : '.selectize' + (++Selectize.count),
-			highlightedValue : null,
-			isOpen           : false,
-			isDisabled       : false,
-			isRequired       : $input.is('[required]'),
-			isInvalid        : false,
-			isLocked         : false,
-			isFocused        : false,
-			isInputHidden    : false,
-			isSetup          : false,
-			isShiftDown      : false,
-			isCmdDown        : false,
-			isCtrlDown       : false,
-			ignoreFocus      : false,
-			ignoreBlur       : false,
-			ignoreHover      : false,
-			hasOptions       : false,
-			currentResults   : null,
-			lastValue        : '',
-			caretPos         : 0,
-			loading          : 0,
-			loadedSearches   : {},
-	
-			$activeOption    : null,
-			$activeItems     : [],
-	
-			optgroups        : {},
-			options          : {},
-			userOptions      : {},
-			items            : [],
-			renderCache      : {},
-			onSearchChange   : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)
-		});
-	
-		// search system
-		self.sifter = new Sifter(this.options, {diacritics: settings.diacritics});
-	
-		// build options table
-		if (self.settings.options) {
-			for (i = 0, n = self.settings.options.length; i < n; i++) {
-				self.registerOption(self.settings.options[i]);
-			}
-			delete self.settings.options;
-		}
-	
-		// build optgroup table
-		if (self.settings.optgroups) {
-			for (i = 0, n = self.settings.optgroups.length; i < n; i++) {
-				self.registerOptionGroup(self.settings.optgroups[i]);
-			}
-			delete self.settings.optgroups;
-		}
-	
-		// option-dependent defaults
-		self.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');
-		if (typeof self.settings.hideSelected !== 'boolean') {
-			self.settings.hideSelected = self.settings.mode === 'multi';
-		}
-	
-		self.initializePlugins(self.settings.plugins);
-		self.setupCallbacks();
-		self.setupTemplates();
-		self.setup();
-	};
-	
-	// mixins
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-	
-	MicroEvent.mixin(Selectize);
-	
-	if(typeof MicroPlugin !== "undefined"){
-		MicroPlugin.mixin(Selectize);
-	}else{
-		logError("Dependency MicroPlugin is missing",
-			{explanation:
-				"Make sure you either: (1) are using the \"standalone\" "+
-				"version of Selectize, or (2) require MicroPlugin before you "+
-				"load Selectize."}
-		);
-	}
-	
-	
-	// methods
-	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-	
-	$.extend(Selectize.prototype, {
-	
-		/**
-		 * Creates all elements and sets up event bindings.
-		 */
-		setup: function() {
-			var self      = this;
-			var settings  = self.settings;
-			var eventNS   = self.eventNS;
-			var $window   = $(window);
-			var $document = $(document);
-			var $input    = self.$input;
-	
-			var $wrapper;
-			var $control;
-			var $control_input;
-			var $dropdown;
-			var $dropdown_content;
-			var $dropdown_parent;
-			var inputMode;
-			var timeout_blur;
-			var timeout_focus;
-			var classes;
-			var classes_plugins;
-			var inputId;
-	
-			inputMode         = self.settings.mode;
-			classes           = $input.attr('class') || '';
-	
-			$wrapper          = $('<div>').addClass(settings.wrapperClass).addClass(classes).addClass(inputMode);
-			$control          = $('<div>').addClass(settings.inputClass).addClass('items').appendTo($wrapper);
-			$control_input    = $('<input type="text" autocomplete="off" />').appendTo($control).attr('tabindex', $input.is(':disabled') ? '-1' : self.tabIndex);
-			$dropdown_parent  = $(settings.dropdownParent || $wrapper);
-			$dropdown         = $('<div>').addClass(settings.dropdownClass).addClass(inputMode).hide().appendTo($dropdown_parent);
-			$dropdown_content = $('<div>').addClass(settings.dropdownContentClass).appendTo($dropdown);
-	
-			if(inputId = $input.attr('id')) {
-				$control_input.attr('id', inputId + '-selectized');
-				$("label[for='"+inputId+"']").attr('for', inputId + '-selectized');
-			}
-	
-			if(self.settings.copyClassesToDropdown) {
-				$dropdown.addClass(classes);
-			}
-	
-			$wrapper.css({
-				width: $input[0].style.width
-			});
-	
-			if (self.plugins.names.length) {
-				classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');
-				$wrapper.addClass(classes_plugins);
-				$dropdown.addClass(classes_plugins);
-			}
-	
-			if ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) {
-				$input.attr('multiple', 'multiple');
-			}
-	
-			if (self.settings.placeholder) {
-				$control_input.attr('placeholder', settings.placeholder);
-			}
-	
-			// if splitOn was not passed in, construct it from the delimiter to allow pasting universally
-			if (!self.settings.splitOn && self.settings.delimiter) {
-				var delimiterEscaped = self.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
-				self.settings.splitOn = new RegExp('\\s*' + delimiterEscaped + '+\\s*');
-			}
-	
-			if ($input.attr('autocorrect')) {
-				$control_input.attr('autocorrect', $input.attr('autocorrect'));
-			}
-	
-			if ($input.attr('autocapitalize')) {
-				$control_input.attr('autocapitalize', $input.attr('autocapitalize'));
-			}
-	
-			self.$wrapper          = $wrapper;
-			self.$control          = $control;
-			self.$control_input    = $control_input;
-			self.$dropdown         = $dropdown;
-			self.$dropdown_content = $dropdown_content;
-	
-			$dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); });
-			$dropdown.on('mousedown click', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); });
-			watchChildEvent($control, 'mousedown', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); });
-			autoGrow($control_input);
-	
-			$control.on({
-				mousedown : function() { return self.onMouseDown.apply(self, arguments); },
-				click     : function() { return self.onClick.apply(self, arguments); }
-			});
-	
-			$control_input.on({
-				mousedown : function(e) { e.stopPropagation(); },
-				keydown   : function() { return self.onKeyDown.apply(self, arguments); },
-				keyup     : function() { return self.onKeyUp.apply(self, arguments); },
-				keypress  : function() { return self.onKeyPress.apply(self, arguments); },
-				resize    : function() { self.positionDropdown.apply(self, []); },
-				blur      : function() { return self.onBlur.apply(self, arguments); },
-				focus     : function() { self.ignoreBlur = false; return self.onFocus.apply(self, arguments); },
-				paste     : function() { return self.onPaste.apply(self, arguments); }
-			});
-	
-			$document.on('keydown' + eventNS, function(e) {
-				self.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey'];
-				self.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey'];
-				self.isShiftDown = e.shiftKey;
-			});
-	
-			$document.on('keyup' + eventNS, function(e) {
-				if (e.keyCode === KEY_CTRL) self.isCtrlDown = false;
-				if (e.keyCode === KEY_SHIFT) self.isShiftDown = false;
-				if (e.keyCode === KEY_CMD) self.isCmdDown = false;
-			});
-	
-			$document.on('mousedown' + eventNS, function(e) {
-				if (self.isFocused) {
-					// prevent events on the dropdown scrollbar from causing the control to blur
-					if (e.target === self.$dropdown[0] || e.target.parentNode === self.$dropdown[0]) {
-						return false;
-					}
-					// blur on click outside
-					if (!self.$control.has(e.target).length && e.target !== self.$control[0]) {
-						self.blur(e.target);
-					}
-				}
-			});
-	
-			$window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() {
-				if (self.isOpen) {
-					self.positionDropdown.apply(self, arguments);
-				}
-			});
-			$window.on('mousemove' + eventNS, function() {
-				self.ignoreHover = false;
-			});
-	
-			// store original children and tab index so that they can be
-			// restored when the destroy() method is called.
-			this.revertSettings = {
-				$children : $input.children().detach(),
-				tabindex  : $input.attr('tabindex')
-			};
-	
-			$input.attr('tabindex', -1).hide().after(self.$wrapper);
-	
-			if ($.isArray(settings.items)) {
-				self.setValue(settings.items);
-				delete settings.items;
-			}
-	
-			// feature detect for the validation API
-			if (SUPPORTS_VALIDITY_API) {
-				$input.on('invalid' + eventNS, function(e) {
-					e.preventDefault();
-					self.isInvalid = true;
-					self.refreshState();
-				});
-			}
-	
-			self.updateOriginalInput();
-			self.refreshItems();
-			self.refreshState();
-			self.updatePlaceholder();
-			self.isSetup = true;
-	
-			if ($input.is(':disabled')) {
-				self.disable();
-			}
-	
-			self.on('change', this.onChange);
-	
-			$input.data('selectize', self);
-			$input.addClass('selectized');
-			self.trigger('initialize');
-	
-			// preload options
-			if (settings.preload === true) {
-				self.onSearchChange('');
-			}
-	
-		},
-	
-		/**
-		 * Sets up default rendering functions.
-		 */
-		setupTemplates: function() {
-			var self = this;
-			var field_label = self.settings.labelField;
-			var field_optgroup = self.settings.optgroupLabelField;
-	
-			var templates = {
-				'optgroup': function(data) {
-					return '<div class="optgroup">' + data.html + '</div>';
-				},
-				'optgroup_header': function(data, escape) {
-					return '<div class="optgroup-header">' + escape(data[field_optgroup]) + '</div>';
-				},
-				'option': function(data, escape) {
-					return '<div class="option">' + escape(data[field_label]) + '</div>';
-				},
-				'item': function(data, escape) {
-					return '<div class="item">' + escape(data[field_label]) + '</div>';
-				},
-				'option_create': function(data, escape) {
-					return '<div class="create">Add <strong>' + escape(data.input) + '</strong>&hellip;</div>';
-				}
-			};
-	
-			self.settings.render = $.extend({}, templates, self.settings.render);
-		},
-	
-		/**
-		 * Maps fired events to callbacks provided
-		 * in the settings used when creating the control.
-		 */
-		setupCallbacks: function() {
-			var key, fn, callbacks = {
-				'initialize'      : 'onInitialize',
-				'change'          : 'onChange',
-				'item_add'        : 'onItemAdd',
-				'item_remove'     : 'onItemRemove',
-				'clear'           : 'onClear',
-				'option_add'      : 'onOptionAdd',
-				'option_remove'   : 'onOptionRemove',
-				'option_clear'    : 'onOptionClear',
-				'optgroup_add'    : 'onOptionGroupAdd',
-				'optgroup_remove' : 'onOptionGroupRemove',
-				'optgroup_clear'  : 'onOptionGroupClear',
-				'dropdown_open'   : 'onDropdownOpen',
-				'dropdown_close'  : 'onDropdownClose',
-				'type'            : 'onType',
-				'load'            : 'onLoad',
-				'focus'           : 'onFocus',
-				'blur'            : 'onBlur'
-			};
-	
-			for (key in callbacks) {
-				if (callbacks.hasOwnProperty(key)) {
-					fn = this.settings[callbacks[key]];
-					if (fn) this.on(key, fn);
-				}
-			}
-		},
-	
-		/**
-		 * Triggered when the main control element
-		 * has a click event.
-		 *
-		 * @param {object} e
-		 * @return {boolean}
-		 */
-		onClick: function(e) {
-			var self = this;
-	
-			// necessary for mobile webkit devices (manual focus triggering
-			// is ignored unless invoked within a click event)
-			if (!self.isFocused) {
-				self.focus();
-				e.preventDefault();
-			}
-		},
-	
-		/**
-		 * Triggered when the main control element
-		 * has a mouse down event.
-		 *
-		 * @param {object} e
-		 * @return {boolean}
-		 */
-		onMouseDown: function(e) {
-			var self = this;
-			var defaultPrevented = e.isDefaultPrevented();
-			var $target = $(e.target);
-	
-			if (self.isFocused) {
-				// retain focus by preventing native handling. if the
-				// event target is the input it should not be modified.
-				// otherwise, text selection within the input won't work.
-				if (e.target !== self.$control_input[0]) {
-					if (self.settings.mode === 'single') {
-						// toggle dropdown
-						self.isOpen ? self.close() : self.open();
-					} else if (!defaultPrevented) {
-						self.setActiveItem(null);
-					}
-					return false;
-				}
-			} else {
-				// give control focus
-				if (!defaultPrevented) {
-					window.setTimeout(function() {
-						self.focus();
-					}, 0);
-				}
-			}
-		},
-	
-		/**
-		 * Triggered when the value of the control has been changed.
-		 * This should propagate the event to the original DOM
-		 * input / select element.
-		 */
-		onChange: function() {
-			this.$input.trigger('change');
-		},
-	
-		/**
-		 * Triggered on <input> paste.
-		 *
-		 * @param {object} e
-		 * @returns {boolean}
-		 */
-		onPaste: function(e) {
-			var self = this;
-	
-			if (self.isFull() || self.isInputHidden || self.isLocked) {
-				e.preventDefault();
-				return;
-			}
-	
-			// If a regex or string is included, this will split the pasted
-			// input and create Items for each separate value
-			if (self.settings.splitOn) {
-	
-				// Wait for pasted text to be recognized in value
-				setTimeout(function() {
-					var pastedText = self.$control_input.val();
-					if(!pastedText.match(self.settings.splitOn)){ return }
-	
-					var splitInput = $.trim(pastedText).split(self.settings.splitOn);
-					for (var i = 0, n = splitInput.length; i < n; i++) {
-						self.createItem(splitInput[i]);
-					}
-				}, 0);
-			}
-		},
-	
-		/**
-		 * Triggered on <input> keypress.
-		 *
-		 * @param {object} e
-		 * @returns {boolean}
-		 */
-		onKeyPress: function(e) {
-			if (this.isLocked) return e && e.preventDefault();
-			var character = String.fromCharCode(e.keyCode || e.which);
-			if (this.settings.create && this.settings.mode === 'multi' && character === this.settings.delimiter) {
-				this.createItem();
-				e.preventDefault();
-				return false;
-			}
-		},
-	
-		/**
-		 * Triggered on <input> keydown.
-		 *
-		 * @param {object} e
-		 * @returns {boolean}
-		 */
-		onKeyDown: function(e) {
-			var isInput = e.target === this.$control_input[0];
-			var self = this;
-	
-			if (self.isLocked) {
-				if (e.keyCode !== KEY_TAB) {
-					e.preventDefault();
-				}
-				return;
-			}
-	
-			switch (e.keyCode) {
-				case KEY_A:
-					if (self.isCmdDown) {
-						self.selectAll();
-						return;
-					}
-					break;
-				case KEY_ESC:
-					if (self.isOpen) {
-						e.preventDefault();
-						e.stopPropagation();
-						self.close();
-					}
-					return;
-				case KEY_N:
-					if (!e.ctrlKey || e.altKey) break;
-				case KEY_DOWN:
-					if (!self.isOpen && self.hasOptions) {
-						self.open();
-					} else if (self.$activeOption) {
-						self.ignoreHover = true;
-						var $next = self.getAdjacentOption(self.$activeOption, 1);
-						if ($next.length) self.setActiveOption($next, true, true);
-					}
-					e.preventDefault();
-					return;
-				case KEY_P:
-					if (!e.ctrlKey || e.altKey) break;
-				case KEY_UP:
-					if (self.$activeOption) {
-						self.ignoreHover = true;
-						var $prev = self.getAdjacentOption(self.$activeOption, -1);
-						if ($prev.length) self.setActiveOption($prev, true, true);
-					}
-					e.preventDefault();
-					return;
-				case KEY_RETURN:
-					if (self.isOpen && self.$activeOption) {
-						self.onOptionSelect({currentTarget: self.$activeOption});
-						e.preventDefault();
-					}
-					return;
-				case KEY_LEFT:
-					self.advanceSelection(-1, e);
-					return;
-				case KEY_RIGHT:
-					self.advanceSelection(1, e);
-					return;
-				case KEY_TAB:
-					if (self.settings.selectOnTab && self.isOpen && self.$activeOption) {
-						self.onOptionSelect({currentTarget: self.$activeOption});
-	
-						// Default behaviour is to jump to the next field, we only want this
-						// if the current field doesn't accept any more entries
-						if (!self.isFull()) {
-							e.preventDefault();
-						}
-					}
-					if (self.settings.create && self.createItem()) {
-						e.preventDefault();
-					}
-					return;
-				case KEY_BACKSPACE:
-				case KEY_DELETE:
-					self.deleteSelection(e);
-					return;
-			}
-	
-			if ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) {
-				e.preventDefault();
-				return;
-			}
-		},
-	
-		/**
-		 * Triggered on <input> keyup.
-		 *
-		 * @param {object} e
-		 * @returns {boolean}
-		 */
-		onKeyUp: function(e) {
-			var self = this;
-	
-			if (self.isLocked) return e && e.preventDefault();
-			var value = self.$control_input.val() || '';
-			if (self.lastValue !== value) {
-				self.lastValue = value;
-				self.onSearchChange(value);
-				self.refreshOptions();
-				self.trigger('type', value);
-			}
-		},
-	
-		/**
-		 * Invokes the user-provide option provider / loader.
-		 *
-		 * Note: this function is debounced in the Selectize
-		 * constructor (by `settings.loadThrottle` milliseconds)
-		 *
-		 * @param {string} value
-		 */
-		onSearchChange: function(value) {
-			var self = this;
-			var fn = self.settings.load;
-			if (!fn) return;
-			if (self.loadedSearches.hasOwnProperty(value)) return;
-			self.loadedSearches[value] = true;
-			self.load(function(callback) {
-				fn.apply(self, [value, callback]);
-			});
-		},
-	
-		/**
-		 * Triggered on <input> focus.
-		 *
-		 * @param {object} e (optional)
-		 * @returns {boolean}
-		 */
-		onFocus: function(e) {
-			var self = this;
-			var wasFocused = self.isFocused;
-	
-			if (self.isDisabled) {
-				self.blur();
-				e && e.preventDefault();
-				return false;
-			}
-	
-			if (self.ignoreFocus) return;
-			self.isFocused = true;
-			if (self.settings.preload === 'focus') self.onSearchChange('');
-	
-			if (!wasFocused) self.trigger('focus');
-	
-			if (!self.$activeItems.length) {
-				self.showInput();
-				self.setActiveItem(null);
-				self.refreshOptions(!!self.settings.openOnFocus);
-			}
-	
-			self.refreshState();
-		},
-	
-		/**
-		 * Triggered on <input> blur.
-		 *
-		 * @param {object} e
-		 * @param {Element} dest
-		 */
-		onBlur: function(e, dest) {
-			var self = this;
-			if (!self.isFocused) return;
-			self.isFocused = false;
-	
-			if (self.ignoreFocus) {
-				return;
-			} else if (!self.ignoreBlur && document.activeElement === self.$dropdown_content[0]) {
-				// necessary to prevent IE closing the dropdown when the scrollbar is clicked
-				self.ignoreBlur = true;
-				self.onFocus(e);
-				return;
-			}
-	
-			var deactivate = function() {
-				self.close();
-				self.setTextboxValue('');
-				self.setActiveItem(null);
-				self.setActiveOption(null);
-				self.setCaret(self.items.length);
-				self.refreshState();
-	
-				// IE11 bug: element still marked as active
-				dest && dest.focus();
-	
-				self.ignoreFocus = false;
-				self.trigger('blur');
-			};
-	
-			self.ignoreFocus = true;
-			if (self.settings.create && self.settings.createOnBlur) {
-				self.createItem(null, false, deactivate);
-			} else {
-				deactivate();
-			}
-		},
-	
-		/**
-		 * Triggered when the user rolls over
-		 * an option in the autocomplete dropdown menu.
-		 *
-		 * @param {object} e
-		 * @returns {boolean}
-		 */
-		onOptionHover: function(e) {
-			if (this.ignoreHover) return;
-			this.setActiveOption(e.currentTarget, false);
-		},
-	
-		/**
-		 * Triggered when the user clicks on an option
-		 * in the autocomplete dropdown menu.
-		 *
-		 * @param {object} e
-		 * @returns {boolean}
-		 */
-		onOptionSelect: function(e) {
-			var value, $target, $option, self = this;
-	
-			if (e.preventDefault) {
-				e.preventDefault();
-				e.stopPropagation();
-			}
-	
-			$target = $(e.currentTarget);
-			if ($target.hasClass('create')) {
-				self.createItem(null, function() {
-					if (self.settings.closeAfterSelect) {
-						self.close();
-					}
-				});
-			} else {
-				value = $target.attr('data-value');
-				if (typeof value !== 'undefined') {
-					self.lastQuery = null;
-					self.setTextboxValue('');
-					self.addItem(value);
-					if (self.settings.closeAfterSelect) {
-						self.close();
-					} else if (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) {
-						self.setActiveOption(self.getOption(value));
-					}
-				}
-			}
-		},
-	
-		/**
-		 * Triggered when the user clicks on an item
-		 * that has been selected.
-		 *
-		 * @param {object} e
-		 * @returns {boolean}
-		 */
-		onItemSelect: function(e) {
-			var self = this;
-	
-			if (self.isLocked) return;
-			if (self.settings.mode === 'multi') {
-				e.preventDefault();
-				self.setActiveItem(e.currentTarget, e);
-			}
-		},
-	
-		/**
-		 * Invokes the provided method that provides
-		 * results to a callback---which are then added
-		 * as options to the control.
-		 *
-		 * @param {function} fn
-		 */
-		load: function(fn) {
-			var self = this;
-			var $wrapper = self.$wrapper.addClass(self.settings.loadingClass);
-	
-			self.loading++;
-			fn.apply(self, [function(results) {
-				self.loading = Math.max(self.loading - 1, 0);
-				if (results && results.length) {
-					self.addOption(results);
-					self.refreshOptions(self.isFocused && !self.isInputHidden);
-				}
-				if (!self.loading) {
-					$wrapper.removeClass(self.settings.loadingClass);
-				}
-				self.trigger('load', results);
-			}]);
-		},
-	
-		/**
-		 * Sets the input field of the control to the specified value.
-		 *
-		 * @param {string} value
-		 */
-		setTextboxValue: function(value) {
-			var $input = this.$control_input;
-			var changed = $input.val() !== value;
-			if (changed) {
-				$input.val(value).triggerHandler('update');
-				this.lastValue = value;
-			}
-		},
-	
-		/**
-		 * Returns the value of the control. If multiple items
-		 * can be selected (e.g. <select multiple>), this returns
-		 * an array. If only one item can be selected, this
-		 * returns a string.
-		 *
-		 * @returns {mixed}
-		 */
-		getValue: function() {
-			if (this.tagType === TAG_SELECT && this.$input.attr('multiple')) {
-				return this.items;
-			} else {
-				return this.items.join(this.settings.delimiter);
-			}
-		},
-	
-		/**
-		 * Resets the selected items to the given value.
-		 *
-		 * @param {mixed} value
-		 */
-		setValue: function(value, silent) {
-			var events = silent ? [] : ['change'];
-	
-			debounce_events(this, events, function() {
-				this.clear(silent);
-				this.addItems(value, silent);
-			});
-		},
-	
-		/**
-		 * Sets the selected item.
-		 *
-		 * @param {object} $item
-		 * @param {object} e (optional)
-		 */
-		setActiveItem: function($item, e) {
-			var self = this;
-			var eventName;
-			var i, idx, begin, end, item, swap;
-			var $last;
-	
-			if (self.settings.mode === 'single') return;
-			$item = $($item);
-	
-			// clear the active selection
-			if (!$item.length) {
-				$(self.$activeItems).removeClass('active');
-				self.$activeItems = [];
-				if (self.isFocused) {
-					self.showInput();
-				}
-				return;
-			}
-	
-			// modify selection
-			eventName = e && e.type.toLowerCase();
-	
-			if (eventName === 'mousedown' && self.isShiftDown && self.$activeItems.length) {
-				$last = self.$control.children('.active:last');
-				begin = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$last[0]]);
-				end   = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$item[0]]);
-				if (begin > end) {
-					swap  = begin;
-					begin = end;
-					end   = swap;
-				}
-				for (i = begin; i <= end; i++) {
-					item = self.$control[0].childNodes[i];
-					if (self.$activeItems.indexOf(item) === -1) {
-						$(item).addClass('active');
-						self.$activeItems.push(item);
-					}
-				}
-				e.preventDefault();
-			} else if ((eventName === 'mousedown' && self.isCtrlDown) || (eventName === 'keydown' && this.isShiftDown)) {
-				if ($item.hasClass('active')) {
-					idx = self.$activeItems.indexOf($item[0]);
-					self.$activeItems.splice(idx, 1);
-					$item.removeClass('active');
-				} else {
-					self.$activeItems.push($item.addClass('active')[0]);
-				}
-			} else {
-				$(self.$activeItems).removeClass('active');
-				self.$activeItems = [$item.addClass('active')[0]];
-			}
-	
-			// ensure control has focus
-			self.hideInput();
-			if (!this.isFocused) {
-				self.focus();
-			}
-		},
-	
-		/**
-		 * Sets the selected item in the dropdown menu
-		 * of available options.
-		 *
-		 * @param {object} $object
-		 * @param {boolean} scroll
-		 * @param {boolean} animate
-		 */
-		setActiveOption: function($option, scroll, animate) {
-			var height_menu, height_item, y;
-			var scroll_top, scroll_bottom;
-			var self = this;
-	
-			if (self.$activeOption) self.$activeOption.removeClass('active');
-			self.$activeOption = null;
-	
-			$option = $($option);
-			if (!$option.length) return;
-	
-			self.$activeOption = $option.addClass('active');
-	
-			if (scroll || !isset(scroll)) {
-	
-				height_menu   = self.$dropdown_content.height();
-				height_item   = self.$activeOption.outerHeight(true);
-				scroll        = self.$dropdown_content.scrollTop() || 0;
-				y             = self.$activeOption.offset().top - self.$dropdown_content.offset().top + scroll;
-				scroll_top    = y;
-				scroll_bottom = y - height_menu + height_item;
-	
-				if (y + height_item > height_menu + scroll) {
-					self.$dropdown_content.stop().animate({scrollTop: scroll_bottom}, animate ? self.settings.scrollDuration : 0);
-				} else if (y < scroll) {
-					self.$dropdown_content.stop().animate({scrollTop: scroll_top}, animate ? self.settings.scrollDuration : 0);
-				}
-	
-			}
-		},
-	
-		/**
-		 * Selects all items (CTRL + A).
-		 */
-		selectAll: function() {
-			var self = this;
-			if (self.settings.mode === 'single') return;
-	
-			self.$activeItems = Array.prototype.slice.apply(self.$control.children(':not(input)').addClass('active'));
-			if (self.$activeItems.length) {
-				self.hideInput();
-				self.close();
-			}
-			self.focus();
-		},
-	
-		/**
-		 * Hides the input element out of view, while
-		 * retaining its focus.
-		 */
-		hideInput: function() {
-			var self = this;
-	
-			self.setTextboxValue('');
-			self.$control_input.css({opacity: 0, position: 'absolute', left: self.rtl ? 10000 : -10000});
-			self.isInputHidden = true;
-		},
-	
-		/**
-		 * Restores input visibility.
-		 */
-		showInput: function() {
-			this.$control_input.css({opacity: 1, position: 'relative', left: 0});
-			this.isInputHidden = false;
-		},
-	
-		/**
-		 * Gives the control focus.
-		 */
-		focus: function() {
-			var self = this;
-			if (self.isDisabled) return;
-	
-			self.ignoreFocus = true;
-			self.$control_input[0].focus();
-			window.setTimeout(function() {
-				self.ignoreFocus = false;
-				self.onFocus();
-			}, 0);
-		},
-	
-		/**
-		 * Forces the control out of focus.
-		 *
-		 * @param {Element} dest
-		 */
-		blur: function(dest) {
-			this.$control_input[0].blur();
-			this.onBlur(null, dest);
-		},
-	
-		/**
-		 * Returns a function that scores an object
-		 * to show how good of a match it is to the
-		 * provided query.
-		 *
-		 * @param {string} query
-		 * @param {object} options
-		 * @return {function}
-		 */
-		getScoreFunction: function(query) {
-			return this.sifter.getScoreFunction(query, this.getSearchOptions());
-		},
-	
-		/**
-		 * Returns search options for sifter (the system
-		 * for scoring and sorting results).
-		 *
-		 * @see https://github.com/brianreavis/sifter.js
-		 * @return {object}
-		 */
-		getSearchOptions: function() {
-			var settings = this.settings;
-			var sort = settings.sortField;
-			if (typeof sort === 'string') {
-				sort = [{field: sort}];
-			}
-	
-			return {
-				fields      : settings.searchField,
-				conjunction : settings.searchConjunction,
-				sort        : sort
-			};
-		},
-	
-		/**
-		 * Searches through available options and returns
-		 * a sorted array of matches.
-		 *
-		 * Returns an object containing:
-		 *
-		 *   - query {string}
-		 *   - tokens {array}
-		 *   - total {int}
-		 *   - items {array}
-		 *
-		 * @param {string} query
-		 * @returns {object}
-		 */
-		search: function(query) {
-			var i, value, score, result, calculateScore;
-			var self     = this;
-			var settings = self.settings;
-			var options  = this.getSearchOptions();
-	
-			// validate user-provided result scoring function
-			if (settings.score) {
-				calculateScore = self.settings.score.apply(this, [query]);
-				if (typeof calculateScore !== 'function') {
-					throw new Error('Selectize "score" setting must be a function that returns a function');
-				}
-			}
-	
-			// perform search
-			if (query !== self.lastQuery) {
-				self.lastQuery = query;
-				result = self.sifter.search(query, $.extend(options, {score: calculateScore}));
-				self.currentResults = result;
-			} else {
-				result = $.extend(true, {}, self.currentResults);
-			}
-	
-			// filter out selected items
-			if (settings.hideSelected) {
-				for (i = result.items.length - 1; i >= 0; i--) {
-					if (self.items.indexOf(hash_key(result.items[i].id)) !== -1) {
-						result.items.splice(i, 1);
-					}
-				}
-			}
-	
-			return result;
-		},
-	
-		/**
-		 * Refreshes the list of available options shown
-		 * in the autocomplete dropdown menu.
-		 *
-		 * @param {boolean} triggerDropdown
-		 */
-		refreshOptions: function(triggerDropdown) {
-			var i, j, k, n, groups, groups_order, option, option_html, optgroup, optgroups, html, html_children, has_create_option;
-			var $active, $active_before, $create;
-	
-			if (typeof triggerDropdown === 'undefined') {
-				triggerDropdown = true;
-			}
-	
-			var self              = this;
-			var query             = $.trim(self.$control_input.val());
-			var results           = self.search(query);
-			var $dropdown_content = self.$dropdown_content;
-			var active_before     = self.$activeOption && hash_key(self.$activeOption.attr('data-value'));
-	
-			// build markup
-			n = results.items.length;
-			if (typeof self.settings.maxOptions === 'number') {
-				n = Math.min(n, self.settings.maxOptions);
-			}
-	
-			// render and group available options individually
-			groups = {};
-			groups_order = [];
-	
-			for (i = 0; i < n; i++) {
-				option      = self.options[results.items[i].id];
-				option_html = self.render('option', option);
-				optgroup    = option[self.settings.optgroupField] || '';
-				optgroups   = $.isArray(optgroup) ? optgroup : [optgroup];
-	
-				for (j = 0, k = optgroups && optgroups.length; j < k; j++) {
-					optgroup = optgroups[j];
-					if (!self.optgroups.hasOwnProperty(optgroup)) {
-						optgroup = '';
-					}
-					if (!groups.hasOwnProperty(optgroup)) {
-						groups[optgroup] = document.createDocumentFragment();
-						groups_order.push(optgroup);
-					}
-					groups[optgroup].appendChild(option_html);
-				}
-			}
-	
-			// sort optgroups
-			if (this.settings.lockOptgroupOrder) {
-				groups_order.sort(function(a, b) {
-					var a_order = self.optgroups[a].$order || 0;
-					var b_order = self.optgroups[b].$order || 0;
-					return a_order - b_order;
-				});
-			}
-	
-			// render optgroup headers & join groups
-			html = document.createDocumentFragment();
-			for (i = 0, n = groups_order.length; i < n; i++) {
-				optgroup = groups_order[i];
-				if (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].childNodes.length) {
-					// render the optgroup header and options within it,
-					// then pass it to the wrapper template
-					html_children = document.createDocumentFragment();
-					html_children.appendChild(self.render('optgroup_header', self.optgroups[optgroup]));
-					html_children.appendChild(groups[optgroup]);
-	
-					html.appendChild(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {
-						html: domToString(html_children),
-						dom:  html_children
-					})));
-				} else {
-					html.appendChild(groups[optgroup]);
-				}
-			}
-	
-			$dropdown_content.html(html);
-	
-			// highlight matching terms inline
-			if (self.settings.highlight && results.query.length && results.tokens.length) {
-				$dropdown_content.removeHighlight();
-				for (i = 0, n = results.tokens.length; i < n; i++) {
-					highlight($dropdown_content, results.tokens[i].regex);
-				}
-			}
-	
-			// add "selected" class to selected options
-			if (!self.settings.hideSelected) {
-				for (i = 0, n = self.items.length; i < n; i++) {
-					self.getOption(self.items[i]).addClass('selected');
-				}
-			}
-	
-			// add create option
-			has_create_option = self.canCreate(query);
-			if (has_create_option) {
-				$dropdown_content.prepend(self.render('option_create', {input: query}));
-				$create = $($dropdown_content[0].childNodes[0]);
-			}
-	
-			// activate
-			self.hasOptions = results.items.length > 0 || has_create_option;
-			if (self.hasOptions) {
-				if (results.items.length > 0) {
-					$active_before = active_before && self.getOption(active_before);
-					if ($active_before && $active_before.length) {
-						$active = $active_before;
-					} else if (self.settings.mode === 'single' && self.items.length) {
-						$active = self.getOption(self.items[0]);
-					}
-					if (!$active || !$active.length) {
-						if ($create && !self.settings.addPrecedence) {
-							$active = self.getAdjacentOption($create, 1);
-						} else {
-							$active = $dropdown_content.find('[data-selectable]:first');
-						}
-					}
-				} else {
-					$active = $create;
-				}
-				self.setActiveOption($active);
-				if (triggerDropdown && !self.isOpen) { self.open(); }
-			} else {
-				self.setActiveOption(null);
-				if (triggerDropdown && self.isOpen) { self.close(); }
-			}
-		},
-	
-		/**
-		 * Adds an available option. If it already exists,
-		 * nothing will happen. Note: this does not refresh
-		 * the options list dropdown (use `refreshOptions`
-		 * for that).
-		 *
-		 * Usage:
-		 *
-		 *   this.addOption(data)
-		 *
-		 * @param {object|array} data
-		 */
-		addOption: function(data) {
-			var i, n, value, self = this;
-	
-			if ($.isArray(data)) {
-				for (i = 0, n = data.length; i < n; i++) {
-					self.addOption(data[i]);
-				}
-				return;
-			}
-	
-			if (value = self.registerOption(data)) {
-				self.userOptions[value] = true;
-				self.lastQuery = null;
-				self.trigger('option_add', value, data);
-			}
-		},
-	
-		/**
-		 * Registers an option to the pool of options.
-		 *
-		 * @param {object} data
-		 * @return {boolean|string}
-		 */
-		registerOption: function(data) {
-			var key = hash_key(data[this.settings.valueField]);
-			if (typeof key === 'undefined' || key === null || this.options.hasOwnProperty(key)) return false;
-			data.$order = data.$order || ++this.order;
-			this.options[key] = data;
-			return key;
-		},
-	
-		/**
-		 * Registers an option group to the pool of option groups.
-		 *
-		 * @param {object} data
-		 * @return {boolean|string}
-		 */
-		registerOptionGroup: function(data) {
-			var key = hash_key(data[this.settings.optgroupValueField]);
-			if (!key) return false;
-	
-			data.$order = data.$order || ++this.order;
-			this.optgroups[key] = data;
-			return key;
-		},
-	
-		/**
-		 * Registers a new optgroup for options
-		 * to be bucketed into.
-		 *
-		 * @param {string} id
-		 * @param {object} data
-		 */
-		addOptionGroup: function(id, data) {
-			data[this.settings.optgroupValueField] = id;
-			if (id = this.registerOptionGroup(data)) {
-				this.trigger('optgroup_add', id, data);
-			}
-		},
-	
-		/**
-		 * Removes an existing option group.
-		 *
-		 * @param {string} id
-		 */
-		removeOptionGroup: function(id) {
-			if (this.optgroups.hasOwnProperty(id)) {
-				delete this.optgroups[id];
-				this.renderCache = {};
-				this.trigger('optgroup_remove', id);
-			}
-		},
-	
-		/**
-		 * Clears all existing option groups.
-		 */
-		clearOptionGroups: function() {
-			this.optgroups = {};
-			this.renderCache = {};
-			this.trigger('optgroup_clear');
-		},
-	
-		/**
-		 * Updates an option available for selection. If
-		 * it is visible in the selected items or options
-		 * dropdown, it will be re-rendered automatically.
-		 *
-		 * @param {string} value
-		 * @param {object} data
-		 */
-		updateOption: function(value, data) {
-			var self = this;
-			var $item, $item_new;
-			var value_new, index_item, cache_items, cache_options, order_old;
-	
-			value     = hash_key(value);
-			value_new = hash_key(data[self.settings.valueField]);
-	
-			// sanity checks
-			if (value === null) return;
-			if (!self.options.hasOwnProperty(value)) return;
-			if (typeof value_new !== 'string') throw new Error('Value must be set in option data');
-	
-			order_old = self.options[value].$order;
-	
-			// update references
-			if (value_new !== value) {
-				delete self.options[value];
-				index_item = self.items.indexOf(value);
-				if (index_item !== -1) {
-					self.items.splice(index_item, 1, value_new);
-				}
-			}
-			data.$order = data.$order || order_old;
-			self.options[value_new] = data;
-	
-			// invalidate render cache
-			cache_items = self.renderCache['item'];
-			cache_options = self.renderCache['option'];
-	
-			if (cache_items) {
-				delete cache_items[value];
-				delete cache_items[value_new];
-			}
-			if (cache_options) {
-				delete cache_options[value];
-				delete cache_options[value_new];
-			}
-	
-			// update the item if it's selected
-			if (self.items.indexOf(value_new) !== -1) {
-				$item = self.getItem(value);
-				$item_new = $(self.render('item', data));
-				if ($item.hasClass('active')) $item_new.addClass('active');
-				$item.replaceWith($item_new);
-			}
-	
-			// invalidate last query because we might have updated the sortField
-			self.lastQuery = null;
-	
-			// update dropdown contents
-			if (self.isOpen) {
-				self.refreshOptions(false);
-			}
-		},
-	
-		/**
-		 * Removes a single option.
-		 *
-		 * @param {string} value
-		 * @param {boolean} silent
-		 */
-		removeOption: function(value, silent) {
-			var self = this;
-			value = hash_key(value);
-	
-			var cache_items = self.renderCache['item'];
-			var cache_options = self.renderCache['option'];
-			if (cache_items) delete cache_items[value];
-			if (cache_options) delete cache_options[value];
-	
-			delete self.userOptions[value];
-			delete self.options[value];
-			self.lastQuery = null;
-			self.trigger('option_remove', value);
-			self.removeItem(value, silent);
-		},
-	
-		/**
-		 * Clears all options.
-		 */
-		clearOptions: function() {
-			var self = this;
-	
-			self.loadedSearches = {};
-			self.userOptions = {};
-			self.renderCache = {};
-			self.options = self.sifter.items = {};
-			self.lastQuery = null;
-			self.trigger('option_clear');
-			self.clear();
-		},
-	
-		/**
-		 * Returns the jQuery element of the option
-		 * matching the given value.
-		 *
-		 * @param {string} value
-		 * @returns {object}
-		 */
-		getOption: function(value) {
-			return this.getElementWithValue(value, this.$dropdown_content.find('[data-selectable]'));
-		},
-	
-		/**
-		 * Returns the jQuery element of the next or
-		 * previous selectable option.
-		 *
-		 * @param {object} $option
-		 * @param {int} direction  can be 1 for next or -1 for previous
-		 * @return {object}
-		 */
-		getAdjacentOption: function($option, direction) {
-			var $options = this.$dropdown.find('[data-selectable]');
-			var index    = $options.index($option) + direction;
-	
-			return index >= 0 && index < $options.length ? $options.eq(index) : $();
-		},
-	
-		/**
-		 * Finds the first element with a "data-value" attribute
-		 * that matches the given value.
-		 *
-		 * @param {mixed} value
-		 * @param {object} $els
-		 * @return {object}
-		 */
-		getElementWithValue: function(value, $els) {
-			value = hash_key(value);
-	
-			if (typeof value !== 'undefined' && value !== null) {
-				for (var i = 0, n = $els.length; i < n; i++) {
-					if ($els[i].getAttribute('data-value') === value) {
-						return $($els[i]);
-					}
-				}
-			}
-	
-			return $();
-		},
-	
-		/**
-		 * Returns the jQuery element of the item
-		 * matching the given value.
-		 *
-		 * @param {string} value
-		 * @returns {object}
-		 */
-		getItem: function(value) {
-			return this.getElementWithValue(value, this.$control.children());
-		},
-	
-		/**
-		 * "Selects" multiple items at once. Adds them to the list
-		 * at the current caret position.
-		 *
-		 * @param {string} value
-		 * @param {boolean} silent
-		 */
-		addItems: function(values, silent) {
-			var items = $.isArray(values) ? values : [values];
-			for (var i = 0, n = items.length; i < n; i++) {
-				this.isPending = (i < n - 1);
-				this.addItem(items[i], silent);
-			}
-		},
-	
-		/**
-		 * "Selects" an item. Adds it to the list
-		 * at the current caret position.
-		 *
-		 * @param {string} value
-		 * @param {boolean} silent
-		 */
-		addItem: function(value, silent) {
-			var events = silent ? [] : ['change'];
-	
-			debounce_events(this, events, function() {
-				var $item, $option, $options;
-				var self = this;
-				var inputMode = self.settings.mode;
-				var i, active, value_next, wasFull;
-				value = hash_key(value);
-	
-				if (self.items.indexOf(value) !== -1) {
-					if (inputMode === 'single') self.close();
-					return;
-				}
-	
-				if (!self.options.hasOwnProperty(value)) return;
-				if (inputMode === 'single') self.clear(silent);
-				if (inputMode === 'multi' && self.isFull()) return;
-	
-				$item = $(self.render('item', self.options[value]));
-				wasFull = self.isFull();
-				self.items.splice(self.caretPos, 0, value);
-				self.insertAtCaret($item);
-				if (!self.isPending || (!wasFull && self.isFull())) {
-					self.refreshState();
-				}
-	
-				if (self.isSetup) {
-					$options = self.$dropdown_content.find('[data-selectable]');
-	
-					// update menu / remove the option (if this is not one item being added as part of series)
-					if (!self.isPending) {
-						$option = self.getOption(value);
-						value_next = self.getAdjacentOption($option, 1).attr('data-value');
-						self.refreshOptions(self.isFocused && inputMode !== 'single');
-						if (value_next) {
-							self.setActiveOption(self.getOption(value_next));
-						}
-					}
-	
-					// hide the menu if the maximum number of items have been selected or no options are left
-					if (!$options.length || self.isFull()) {
-						self.close();
-					} else {
-						self.positionDropdown();
-					}
-	
-					self.updatePlaceholder();
-					self.trigger('item_add', value, $item);
-					self.updateOriginalInput({silent: silent});
-				}
-			});
-		},
-	
-		/**
-		 * Removes the selected item matching
-		 * the provided value.
-		 *
-		 * @param {string} value
-		 */
-		removeItem: function(value, silent) {
-			var self = this;
-			var $item, i, idx;
-	
-			$item = (value instanceof $) ? value : self.getItem(value);
-			value = hash_key($item.attr('data-value'));
-			i = self.items.indexOf(value);
-	
-			if (i !== -1) {
-				$item.remove();
-				if ($item.hasClass('active')) {
-					idx = self.$activeItems.indexOf($item[0]);
-					self.$activeItems.splice(idx, 1);
-				}
-	
-				self.items.splice(i, 1);
-				self.lastQuery = null;
-				if (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {
-					self.removeOption(value, silent);
-				}
-	
-				if (i < self.caretPos) {
-					self.setCaret(self.caretPos - 1);
-				}
-	
-				self.refreshState();
-				self.updatePlaceholder();
-				self.updateOriginalInput({silent: silent});
-				self.positionDropdown();
-				self.trigger('item_remove', value, $item);
-			}
-		},
-	
-		/**
-		 * Invokes the `create` method provided in the
-		 * selectize options that should provide the data
-		 * for the new item, given the user input.
-		 *
-		 * Once this completes, it will be added
-		 * to the item list.
-		 *
-		 * @param {string} value
-		 * @param {boolean} [triggerDropdown]
-		 * @param {function} [callback]
-		 * @return {boolean}
-		 */
-		createItem: function(input, triggerDropdown) {
-			var self  = this;
-			var caret = self.caretPos;
-			input = input || $.trim(self.$control_input.val() || '');
-	
-			var callback = arguments[arguments.length - 1];
-			if (typeof callback !== 'function') callback = function() {};
-	
-			if (typeof triggerDropdown !== 'boolean') {
-				triggerDropdown = true;
-			}
-	
-			if (!self.canCreate(input)) {
-				callback();
-				return false;
-			}
-	
-			self.lock();
-	
-			var setup = (typeof self.settings.create === 'function') ? this.settings.create : function(input) {
-				var data = {};
-				data[self.settings.labelField] = input;
-				data[self.settings.valueField] = input;
-				return data;
-			};
-	
-			var create = once(function(data) {
-				self.unlock();
-	
-				if (!data || typeof data !== 'object') return callback();
-				var value = hash_key(data[self.settings.valueField]);
-				if (typeof value !== 'string') return callback();
-	
-				self.setTextboxValue('');
-				self.addOption(data);
-				self.setCaret(caret);
-				self.addItem(value);
-				self.refreshOptions(triggerDropdown && self.settings.mode !== 'single');
-				callback(data);
-			});
-	
-			var output = setup.apply(this, [input, create]);
-			if (typeof output !== 'undefined') {
-				create(output);
-			}
-	
-			return true;
-		},
-	
-		/**
-		 * Re-renders the selected item lists.
-		 */
-		refreshItems: function() {
-			this.lastQuery = null;
-	
-			if (this.isSetup) {
-				this.addItem(this.items);
-			}
-	
-			this.refreshState();
-			this.updateOriginalInput();
-		},
-	
-		/**
-		 * Updates all state-dependent attributes
-		 * and CSS classes.
-		 */
-		refreshState: function() {
-			this.refreshValidityState();
-			this.refreshClasses();
-		},
-	
-		/**
-		 * Update the `required` attribute of both input and control input.
-		 *
-		 * The `required` property needs to be activated on the control input
-		 * for the error to be displayed at the right place. `required` also
-		 * needs to be temporarily deactivated on the input since the input is
-		 * hidden and can't show errors.
-		 */
-		refreshValidityState: function() {
-			if (!this.isRequired) return false;
-	
-			var invalid = !this.items.length;
-	
-			this.isInvalid = invalid;
-			this.$control_input.prop('required', invalid);
-			this.$input.prop('required', !invalid);
-		},
-	
-		/**
-		 * Updates all state-dependent CSS classes.
-		 */
-		refreshClasses: function() {
-			var self     = this;
-			var isFull   = self.isFull();
-			var isLocked = self.isLocked;
-	
-			self.$wrapper
-				.toggleClass('rtl', self.rtl);
-	
-			self.$control
-				.toggleClass('focus', self.isFocused)
-				.toggleClass('disabled', self.isDisabled)
-				.toggleClass('required', self.isRequired)
-				.toggleClass('invalid', self.isInvalid)
-				.toggleClass('locked', isLocked)
-				.toggleClass('full', isFull).toggleClass('not-full', !isFull)
-				.toggleClass('input-active', self.isFocused && !self.isInputHidden)
-				.toggleClass('dropdown-active', self.isOpen)
-				.toggleClass('has-options', !$.isEmptyObject(self.options))
-				.toggleClass('has-items', self.items.length > 0);
-	
-			self.$control_input.data('grow', !isFull && !isLocked);
-		},
-	
-		/**
-		 * Determines whether or not more items can be added
-		 * to the control without exceeding the user-defined maximum.
-		 *
-		 * @returns {boolean}
-		 */
-		isFull: function() {
-			return this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;
-		},
-	
-		/**
-		 * Refreshes the original <select> or <input>
-		 * element to reflect the current state.
-		 */
-		updateOriginalInput: function(opts) {
-			var i, n, options, label, self = this;
-			opts = opts || {};
-	
-			if (self.tagType === TAG_SELECT) {
-				options = [];
-				for (i = 0, n = self.items.length; i < n; i++) {
-					label = self.options[self.items[i]][self.settings.labelField] || '';
-					options.push('<option value="' + escape_html(self.items[i]) + '" selected="selected">' + escape_html(label) + '</option>');
-				}
-				if (!options.length && !this.$input.attr('multiple')) {
-					options.push('<option value="" selected="selected"></option>');
-				}
-				self.$input.html(options.join(''));
-			} else {
-				self.$input.val(self.getValue());
-				self.$input.attr('value',self.$input.val());
-			}
-	
-			if (self.isSetup) {
-				if (!opts.silent) {
-					self.trigger('change', self.$input.val());
-				}
-			}
-		},
-	
-		/**
-		 * Shows/hide the input placeholder depending
-		 * on if there items in the list already.
-		 */
-		updatePlaceholder: function() {
-			if (!this.settings.placeholder) return;
-			var $input = this.$control_input;
-	
-			if (this.items.length) {
-				$input.removeAttr('placeholder');
-			} else {
-				$input.attr('placeholder', this.settings.placeholder);
-			}
-			$input.triggerHandler('update', {force: true});
-		},
-	
-		/**
-		 * Shows the autocomplete dropdown containing
-		 * the available options.
-		 */
-		open: function() {
-			var self = this;
-	
-			if (self.isLocked || self.isOpen || (self.settings.mode === 'multi' && self.isFull())) return;
-			self.focus();
-			self.isOpen = true;
-			self.refreshState();
-			self.$dropdown.css({visibility: 'hidden', display: 'block'});
-			self.positionDropdown();
-			self.$dropdown.css({visibility: 'visible'});
-			self.trigger('dropdown_open', self.$dropdown);
-		},
-	
-		/**
-		 * Closes the autocomplete dropdown menu.
-		 */
-		close: function() {
-			var self = this;
-			var trigger = self.isOpen;
-	
-			if (self.settings.mode === 'single' && self.items.length) {
-				self.hideInput();
-				self.$control_input.blur(); // close keyboard on iOS
-			}
-	
-			self.isOpen = false;
-			self.$dropdown.hide();
-			self.setActiveOption(null);
-			self.refreshState();
-	
-			if (trigger) self.trigger('dropdown_close', self.$dropdown);
-		},
-	
-		/**
-		 * Calculates and applies the appropriate
-		 * position of the dropdown.
-		 */
-		positionDropdown: function() {
-			var $control = this.$control;
-			var offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();
-			offset.top += $control.outerHeight(true);
-	
-			this.$dropdown.css({
-				width : $control.outerWidth(),
-				top   : offset.top,
-				left  : offset.left
-			});
-		},
-	
-		/**
-		 * Resets / clears all selected items
-		 * from the control.
-		 *
-		 * @param {boolean} silent
-		 */
-		clear: function(silent) {
-			var self = this;
-	
-			if (!self.items.length) return;
-			self.$control.children(':not(input)').remove();
-			self.items = [];
-			self.lastQuery = null;
-			self.setCaret(0);
-			self.setActiveItem(null);
-			self.updatePlaceholder();
-			self.updateOriginalInput({silent: silent});
-			self.refreshState();
-			self.showInput();
-			self.trigger('clear');
-		},
-	
-		/**
-		 * A helper method for inserting an element
-		 * at the current caret position.
-		 *
-		 * @param {object} $el
-		 */
-		insertAtCaret: function($el) {
-			var caret = Math.min(this.caretPos, this.items.length);
-			if (caret === 0) {
-				this.$control.prepend($el);
-			} else {
-				$(this.$control[0].childNodes[caret]).before($el);
-			}
-			this.setCaret(caret + 1);
-		},
-	
-		/**
-		 * Removes the current selected item(s).
-		 *
-		 * @param {object} e (optional)
-		 * @returns {boolean}
-		 */
-		deleteSelection: function(e) {
-			var i, n, direction, selection, values, caret, option_select, $option_select, $tail;
-			var self = this;
-	
-			direction = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1;
-			selection = getSelection(self.$control_input[0]);
-	
-			if (self.$activeOption && !self.settings.hideSelected) {
-				option_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value');
-			}
-	
-			// determine items that will be removed
-			values = [];
-	
-			if (self.$activeItems.length) {
-				$tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first'));
-				caret = self.$control.children(':not(input)').index($tail);
-				if (direction > 0) { caret++; }
-	
-				for (i = 0, n = self.$activeItems.length; i < n; i++) {
-					values.push($(self.$activeItems[i]).attr('data-value'));
-				}
-				if (e) {
-					e.preventDefault();
-					e.stopPropagation();
-				}
-			} else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {
-				if (direction < 0 && selection.start === 0 && selection.length === 0) {
-					values.push(self.items[self.caretPos - 1]);
-				} else if (direction > 0 && selection.start === self.$control_input.val().length) {
-					values.push(self.items[self.caretPos]);
-				}
-			}
-	
-			// allow the callback to abort
-			if (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) {
-				return false;
-			}
-	
-			// perform removal
-			if (typeof caret !== 'undefined') {
-				self.setCaret(caret);
-			}
-			while (values.length) {
-				self.removeItem(values.pop());
-			}
-	
-			self.showInput();
-			self.positionDropdown();
-			self.refreshOptions(true);
-	
-			// select previous option
-			if (option_select) {
-				$option_select = self.getOption(option_select);
-				if ($option_select.length) {
-					self.setActiveOption($option_select);
-				}
-			}
-	
-			return true;
-		},
-	
-		/**
-		 * Selects the previous / next item (depending
-		 * on the `direction` argument).
-		 *
-		 * > 0 - right
-		 * < 0 - left
-		 *
-		 * @param {int} direction
-		 * @param {object} e (optional)
-		 */
-		advanceSelection: function(direction, e) {
-			var tail, selection, idx, valueLength, cursorAtEdge, $tail;
-			var self = this;
-	
-			if (direction === 0) return;
-			if (self.rtl) direction *= -1;
-	
-			tail = direction > 0 ? 'last' : 'first';
-			selection = getSelection(self.$control_input[0]);
-	
-			if (self.isFocused && !self.isInputHidden) {
-				valueLength = self.$control_input.val().length;
-				cursorAtEdge = direction < 0
-					? selection.start === 0 && selection.length === 0
-					: selection.start === valueLength;
-	
-				if (cursorAtEdge && !valueLength) {
-					self.advanceCaret(direction, e);
-				}
-			} else {
-				$tail = self.$control.children('.active:' + tail);
-				if ($tail.length) {
-					idx = self.$control.children(':not(input)').index($tail);
-					self.setActiveItem(null);
-					self.setCaret(direction > 0 ? idx + 1 : idx);
-				}
-			}
-		},
-	
-		/**
-		 * Moves the caret left / right.
-		 *
-		 * @param {int} direction
-		 * @param {object} e (optional)
-		 */
-		advanceCaret: function(direction, e) {
-			var self = this, fn, $adj;
-	
-			if (direction === 0) return;
-	
-			fn = direction > 0 ? 'next' : 'prev';
-			if (self.isShiftDown) {
-				$adj = self.$control_input[fn]();
-				if ($adj.length) {
-					self.hideInput();
-					self.setActiveItem($adj);
-					e && e.preventDefault();
-				}
-			} else {
-				self.setCaret(self.caretPos + direction);
-			}
-		},
-	
-		/**
-		 * Moves the caret to the specified index.
-		 *
-		 * @param {int} i
-		 */
-		setCaret: function(i) {
-			var self = this;
-	
-			if (self.settings.mode === 'single') {
-				i = self.items.length;
-			} else {
-				i = Math.max(0, Math.min(self.items.length, i));
-			}
-	
-			if(!self.isPending) {
-				// the input must be moved by leaving it in place and moving the
-				// siblings, due to the fact that focus cannot be restored once lost
-				// on mobile webkit devices
-				var j, n, fn, $children, $child;
-				$children = self.$control.children(':not(input)');
-				for (j = 0, n = $children.length; j < n; j++) {
-					$child = $($children[j]).detach();
-					if (j <  i) {
-						self.$control_input.before($child);
-					} else {
-						self.$control.append($child);
-					}
-				}
-			}
-	
-			self.caretPos = i;
-		},
-	
-		/**
-		 * Disables user input on the control. Used while
-		 * items are being asynchronously created.
-		 */
-		lock: function() {
-			this.close();
-			this.isLocked = true;
-			this.refreshState();
-		},
-	
-		/**
-		 * Re-enables user input on the control.
-		 */
-		unlock: function() {
-			this.isLocked = false;
-			this.refreshState();
-		},
-	
-		/**
-		 * Disables user input on the control completely.
-		 * While disabled, it cannot receive focus.
-		 */
-		disable: function() {
-			var self = this;
-			self.$input.prop('disabled', true);
-			self.$control_input.prop('disabled', true).prop('tabindex', -1);
-			self.isDisabled = true;
-			self.lock();
-		},
-	
-		/**
-		 * Enables the control so that it can respond
-		 * to focus and user input.
-		 */
-		enable: function() {
-			var self = this;
-			self.$input.prop('disabled', false);
-			self.$control_input.prop('disabled', false).prop('tabindex', self.tabIndex);
-			self.isDisabled = false;
-			self.unlock();
-		},
-	
-		/**
-		 * Completely destroys the control and
-		 * unbinds all event listeners so that it can
-		 * be garbage collected.
-		 */
-		destroy: function() {
-			var self = this;
-			var eventNS = self.eventNS;
-			var revertSettings = self.revertSettings;
-	
-			self.trigger('destroy');
-			self.off();
-			self.$wrapper.remove();
-			self.$dropdown.remove();
-	
-			self.$input
-				.html('')
-				.append(revertSettings.$children)
-				.removeAttr('tabindex')
-				.removeClass('selectized')
-				.attr({tabindex: revertSettings.tabindex})
-				.show();
-	
-			self.$control_input.removeData('grow');
-			self.$input.removeData('selectize');
-	
-			$(window).off(eventNS);
-			$(document).off(eventNS);
-			$(document.body).off(eventNS);
-	
-			delete self.$input[0].selectize;
-		},
-	
-		/**
-		 * A helper method for rendering "item" and
-		 * "option" templates, given the data.
-		 *
-		 * @param {string} templateName
-		 * @param {object} data
-		 * @returns {string}
-		 */
-		render: function(templateName, data) {
-			var value, id, label;
-			var html = '';
-			var cache = false;
-			var self = this;
-			var regex_tag = /^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?)/i;
-	
-			if (templateName === 'option' || templateName === 'item') {
-				value = hash_key(data[self.settings.valueField]);
-				cache = !!value;
-			}
-	
-			// pull markup from cache if it exists
-			if (cache) {
-				if (!isset(self.renderCache[templateName])) {
-					self.renderCache[templateName] = {};
-				}
-				if (self.renderCache[templateName].hasOwnProperty(value)) {
-					return self.renderCache[templateName][value];
-				}
-			}
-	
-			// render markup
-			html = $(self.settings.render[templateName].apply(this, [data, escape_html]));
-	
-			// add mandatory attributes
-			if (templateName === 'option' || templateName === 'option_create') {
-				html.attr('data-selectable', '');
-			}
-			else if (templateName === 'optgroup') {
-				id = data[self.settings.optgroupValueField] || '';
-				html.attr('data-group', id);
-			}
-			if (templateName === 'option' || templateName === 'item') {
-				html.attr('data-value', value || '');
-			}
-	
-			// update cache
-			if (cache) {
-				self.renderCache[templateName][value] = html[0];
-			}
-	
-			return html[0];
-		},
-	
-		/**
-		 * Clears the render cache for a template. If
-		 * no template is given, clears all render
-		 * caches.
-		 *
-		 * @param {string} templateName
-		 */
-		clearCache: function(templateName) {
-			var self = this;
-			if (typeof templateName === 'undefined') {
-				self.renderCache = {};
-			} else {
-				delete self.renderCache[templateName];
-			}
-		},
-	
-		/**
-		 * Determines whether or not to display the
-		 * create item prompt, given a user input.
-		 *
-		 * @param {string} input
-		 * @return {boolean}
-		 */
-		canCreate: function(input) {
-			var self = this;
-			if (!self.settings.create) return false;
-			var filter = self.settings.createFilter;
-			return input.length
-				&& (typeof filter !== 'function' || filter.apply(self, [input]))
-				&& (typeof filter !== 'string' || new RegExp(filter).test(input))
-				&& (!(filter instanceof RegExp) || filter.test(input));
-		}
-	
-	});
-	
-	
-	Selectize.count = 0;
-	Selectize.defaults = {
-		options: [],
-		optgroups: [],
-	
-		plugins: [],
-		delimiter: ',',
-		splitOn: null, // regexp or string for splitting up values from a paste command
-		persist: true,
-		diacritics: true,
-		create: false,
-		createOnBlur: false,
-		createFilter: null,
-		highlight: true,
-		openOnFocus: true,
-		maxOptions: 1000,
-		maxItems: null,
-		hideSelected: null,
-		addPrecedence: false,
-		selectOnTab: false,
-		preload: false,
-		allowEmptyOption: false,
-		closeAfterSelect: false,
-	
-		scrollDuration: 60,
-		loadThrottle: 300,
-		loadingClass: 'loading',
-	
-		dataAttr: 'data-data',
-		optgroupField: 'optgroup',
-		valueField: 'value',
-		labelField: 'text',
-		optgroupLabelField: 'label',
-		optgroupValueField: 'value',
-		lockOptgroupOrder: false,
-	
-		sortField: '$order',
-		searchField: ['text'],
-		searchConjunction: 'and',
-	
-		mode: null,
-		wrapperClass: 'selectize-control',
-		inputClass: 'selectize-input',
-		dropdownClass: 'selectize-dropdown',
-		dropdownContentClass: 'selectize-dropdown-content',
-	
-		dropdownParent: null,
-	
-		copyClassesToDropdown: true,
-	
-		/*
-		load                 : null, // function(query, callback) { ... }
-		score                : null, // function(search) { ... }
-		onInitialize         : null, // function() { ... }
-		onChange             : null, // function(value) { ... }
-		onItemAdd            : null, // function(value, $item) { ... }
-		onItemRemove         : null, // function(value) { ... }
-		onClear              : null, // function() { ... }
-		onOptionAdd          : null, // function(value, data) { ... }
-		onOptionRemove       : null, // function(value) { ... }
-		onOptionClear        : null, // function() { ... }
-		onOptionGroupAdd     : null, // function(id, data) { ... }
-		onOptionGroupRemove  : null, // function(id) { ... }
-		onOptionGroupClear   : null, // function() { ... }
-		onDropdownOpen       : null, // function($dropdown) { ... }
-		onDropdownClose      : null, // function($dropdown) { ... }
-		onType               : null, // function(str) { ... }
-		onDelete             : null, // function(values) { ... }
-		*/
-	
-		render: {
-			/*
-			item: null,
-			optgroup: null,
-			optgroup_header: null,
-			option: null,
-			option_create: null
-			*/
-		}
-	};
-	
-	
-	$.fn.selectize = function(settings_user) {
-		var defaults             = $.fn.selectize.defaults;
-		var settings             = $.extend({}, defaults, settings_user);
-		var attr_data            = settings.dataAttr;
-		var field_label          = settings.labelField;
-		var field_value          = settings.valueField;
-		var field_optgroup       = settings.optgroupField;
-		var field_optgroup_label = settings.optgroupLabelField;
-		var field_optgroup_value = settings.optgroupValueField;
-	
-		/**
-		 * Initializes selectize from a <input type="text"> element.
-		 *
-		 * @param {object} $input
-		 * @param {object} settings_element
-		 */
-		var init_textbox = function($input, settings_element) {
-			var i, n, values, option;
-	
-			var data_raw = $input.attr(attr_data);
-	
-			if (!data_raw) {
-				var value = $.trim($input.val() || '');
-				if (!settings.allowEmptyOption && !value.length) return;
-				values = value.split(settings.delimiter);
-				for (i = 0, n = values.length; i < n; i++) {
-					option = {};
-					option[field_label] = values[i];
-					option[field_value] = values[i];
-					settings_element.options.push(option);
-				}
-				settings_element.items = values;
-			} else {
-				settings_element.options = JSON.parse(data_raw);
-				for (i = 0, n = settings_element.options.length; i < n; i++) {
-					settings_element.items.push(settings_element.options[i][field_value]);
-				}
-			}
-		};
-	
-		/**
-		 * Initializes selectize from a <select> element.
-		 *
-		 * @param {object} $input
-		 * @param {object} settings_element
-		 */
-		var init_select = function($input, settings_element) {
-			var i, n, tagName, $children, order = 0;
-			var options = settings_element.options;
-			var optionsMap = {};
-	
-			var readData = function($el) {
-				var data = attr_data && $el.attr(attr_data);
-				if (typeof data === 'string' && data.length) {
-					return JSON.parse(data);
-				}
-				return null;
-			};
-	
-			var addOption = function($option, group) {
-				$option = $($option);
-	
-				var value = hash_key($option.val());
-				if (!value && !settings.allowEmptyOption) return;
-	
-				// if the option already exists, it's probably been
-				// duplicated in another optgroup. in this case, push
-				// the current group to the "optgroup" property on the
-				// existing option so that it's rendered in both places.
-				if (optionsMap.hasOwnProperty(value)) {
-					if (group) {
-						var arr = optionsMap[value][field_optgroup];
-						if (!arr) {
-							optionsMap[value][field_optgroup] = group;
-						} else if (!$.isArray(arr)) {
-							optionsMap[value][field_optgroup] = [arr, group];
-						} else {
-							arr.push(group);
-						}
-					}
-					return;
-				}
-	
-				var option             = readData($option) || {};
-				option[field_label]    = option[field_label] || $option.text();
-				option[field_value]    = option[field_value] || value;
-				option[field_optgroup] = option[field_optgroup] || group;
-	
-				optionsMap[value] = option;
-				options.push(option);
-	
-				if ($option.is(':selected')) {
-					settings_element.items.push(value);
-				}
-			};
-	
-			var addGroup = function($optgroup) {
-				var i, n, id, optgroup, $options;
-	
-				$optgroup = $($optgroup);
-				id = $optgroup.attr('label');
-	
-				if (id) {
-					optgroup = readData($optgroup) || {};
-					optgroup[field_optgroup_label] = id;
-					optgroup[field_optgroup_value] = id;
-					settings_element.optgroups.push(optgroup);
-				}
-	
-				$options = $('option', $optgroup);
-				for (i = 0, n = $options.length; i < n; i++) {
-					addOption($options[i], id);
-				}
-			};
-	
-			settings_element.maxItems = $input.attr('multiple') ? null : 1;
-	
-			$children = $input.children();
-			for (i = 0, n = $children.length; i < n; i++) {
-				tagName = $children[i].tagName.toLowerCase();
-				if (tagName === 'optgroup') {
-					addGroup($children[i]);
-				} else if (tagName === 'option') {
-					addOption($children[i]);
-				}
-			}
-		};
-	
-		return this.each(function() {
-			if (this.selectize) return;
-	
-			var instance;
-			var $input = $(this);
-			var tag_name = this.tagName.toLowerCase();
-			var placeholder = $input.attr('placeholder') || $input.attr('data-placeholder');
-			if (!placeholder && !settings.allowEmptyOption) {
-				placeholder = $input.children('option[value=""]').text();
-			}
-	
-			var settings_element = {
-				'placeholder' : placeholder,
-				'options'     : [],
-				'optgroups'   : [],
-				'items'       : []
-			};
-	
-			if (tag_name === 'select') {
-				init_select($input, settings_element);
-			} else {
-				init_textbox($input, settings_element);
-			}
-	
-			instance = new Selectize($input, $.extend(true, {}, defaults, settings_element, settings_user));
-		});
-	};
-	
-	$.fn.selectize.defaults = Selectize.defaults;
-	$.fn.selectize.support = {
-		validity: SUPPORTS_VALIDITY_API
-	};
-	
-	
-	Selectize.define('drag_drop', function(options) {
-		if (!$.fn.sortable) throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');
-		if (this.settings.mode !== 'multi') return;
-		var self = this;
-	
-		self.lock = (function() {
-			var original = self.lock;
-			return function() {
-				var sortable = self.$control.data('sortable');
-				if (sortable) sortable.disable();
-				return original.apply(self, arguments);
-			};
-		})();
-	
-		self.unlock = (function() {
-			var original = self.unlock;
-			return function() {
-				var sortable = self.$control.data('sortable');
-				if (sortable) sortable.enable();
-				return original.apply(self, arguments);
-			};
-		})();
-	
-		self.setup = (function() {
-			var original = self.setup;
-			return function() {
-				original.apply(this, arguments);
-	
-				var $control = self.$control.sortable({
-					items: '[data-value]',
-					forcePlaceholderSize: true,
-					disabled: self.isLocked,
-					start: function(e, ui) {
-						ui.placeholder.css('width', ui.helper.css('width'));
-						$control.css({overflow: 'visible'});
-					},
-					stop: function() {
-						$control.css({overflow: 'hidden'});
-						var active = self.$activeItems ? self.$activeItems.slice() : null;
-						var values = [];
-						$control.children('[data-value]').each(function() {
-							values.push($(this).attr('data-value'));
-						});
-						self.setValue(values);
-						self.setActiveItem(active);
-					}
-				});
-			};
-		})();
-	
-	});
-	
-	Selectize.define('dropdown_header', function(options) {
-		var self = this;
-	
-		options = $.extend({
-			title         : 'Untitled',
-			headerClass   : 'selectize-dropdown-header',
-			titleRowClass : 'selectize-dropdown-header-title',
-			labelClass    : 'selectize-dropdown-header-label',
-			closeClass    : 'selectize-dropdown-header-close',
-	
-			html: function(data) {
-				return (
-					'<div class="' + data.headerClass + '">' +
-						'<div class="' + data.titleRowClass + '">' +
-							'<span class="' + data.labelClass + '">' + data.title + '</span>' +
-							'<a href="javascript:void(0)" class="' + data.closeClass + '">&times;</a>' +
-						'</div>' +
-					'</div>'
-				);
-			}
-		}, options);
-	
-		self.setup = (function() {
-			var original = self.setup;
-			return function() {
-				original.apply(self, arguments);
-				self.$dropdown_header = $(options.html(options));
-				self.$dropdown.prepend(self.$dropdown_header);
-			};
-		})();
-	
-	});
-	
-	Selectize.define('optgroup_columns', function(options) {
-		var self = this;
-	
-		options = $.extend({
-			equalizeWidth  : true,
-			equalizeHeight : true
-		}, options);
-	
-		this.getAdjacentOption = function($option, direction) {
-			var $options = $option.closest('[data-group]').find('[data-selectable]');
-			var index    = $options.index($option) + direction;
-	
-			return index >= 0 && index < $options.length ? $options.eq(index) : $();
-		};
-	
-		this.onKeyDown = (function() {
-			var original = self.onKeyDown;
-			return function(e) {
-				var index, $option, $options, $optgroup;
-	
-				if (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) {
-					self.ignoreHover = true;
-					$optgroup = this.$activeOption.closest('[data-group]');
-					index = $optgroup.find('[data-selectable]').index(this.$activeOption);
-	
-					if(e.keyCode === KEY_LEFT) {
-						$optgroup = $optgroup.prev('[data-group]');
-					} else {
-						$optgroup = $optgroup.next('[data-group]');
-					}
-	
-					$options = $optgroup.find('[data-selectable]');
-					$option  = $options.eq(Math.min($options.length - 1, index));
-					if ($option.length) {
-						this.setActiveOption($option);
-					}
-					return;
-				}
-	
-				return original.apply(this, arguments);
-			};
-		})();
-	
-		var getScrollbarWidth = function() {
-			var div;
-			var width = getScrollbarWidth.width;
-			var doc = document;
-	
-			if (typeof width === 'undefined') {
-				div = doc.createElement('div');
-				div.innerHTML = '<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>';
-				div = div.firstChild;
-				doc.body.appendChild(div);
-				width = getScrollbarWidth.width = div.offsetWidth - div.clientWidth;
-				doc.body.removeChild(div);
-			}
-			return width;
-		};
-	
-		var equalizeSizes = function() {
-			var i, n, height_max, width, width_last, width_parent, $optgroups;
-	
-			$optgroups = $('[data-group]', self.$dropdown_content);
-			n = $optgroups.length;
-			if (!n || !self.$dropdown_content.width()) return;
-	
-			if (options.equalizeHeight) {
-				height_max = 0;
-				for (i = 0; i < n; i++) {
-					height_max = Math.max(height_max, $optgroups.eq(i).height());
-				}
-				$optgroups.css({height: height_max});
-			}
-	
-			if (options.equalizeWidth) {
-				width_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth();
-				width = Math.round(width_parent / n);
-				$optgroups.css({width: width});
-				if (n > 1) {
-					width_last = width_parent - width * (n - 1);
-					$optgroups.eq(n - 1).css({width: width_last});
-				}
-			}
-		};
-	
-		if (options.equalizeHeight || options.equalizeWidth) {
-			hook.after(this, 'positionDropdown', equalizeSizes);
-			hook.after(this, 'refreshOptions', equalizeSizes);
-		}
-	
-	
-	});
-	
-	Selectize.define('remove_button', function(options) {
-		options = $.extend({
-				label     : '&times;',
-				title     : 'Remove',
-				className : 'remove',
-				append    : true
-			}, options);
-	
-			var singleClose = function(thisRef, options) {
-	
-				options.className = 'remove-single';
-	
-				var self = thisRef;
-				var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
-	
-				/**
-				 * Appends an element as a child (with raw HTML).
-				 *
-				 * @param {string} html_container
-				 * @param {string} html_element
-				 * @return {string}
-				 */
-				var append = function(html_container, html_element) {
-					return html_container + html_element;
-				};
-	
-				thisRef.setup = (function() {
-					var original = self.setup;
-					return function() {
-						// override the item rendering method to add the button to each
-						if (options.append) {
-							var id = $(self.$input.context).attr('id');
-							var selectizer = $('#'+id);
-	
-							var render_item = self.settings.render.item;
-							self.settings.render.item = function(data) {
-								return append(render_item.apply(thisRef, arguments), html);
-							};
-						}
-	
-						original.apply(thisRef, arguments);
-	
-						// add event listener
-						thisRef.$control.on('click', '.' + options.className, function(e) {
-							e.preventDefault();
-							if (self.isLocked) return;
-	
-							self.clear();
-						});
-	
-					};
-				})();
-			};
-	
-			var multiClose = function(thisRef, options) {
-	
-				var self = thisRef;
-				var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
-	
-				/**
-				 * Appends an element as a child (with raw HTML).
-				 *
-				 * @param {string} html_container
-				 * @param {string} html_element
-				 * @return {string}
-				 */
-				var append = function(html_container, html_element) {
-					var pos = html_container.search(/(<\/[^>]+>\s*)$/);
-					return html_container.substring(0, pos) + html_element + html_container.substring(pos);
-				};
-	
-				thisRef.setup = (function() {
-					var original = self.setup;
-					return function() {
-						// override the item rendering method to add the button to each
-						if (options.append) {
-							var render_item = self.settings.render.item;
-							self.settings.render.item = function(data) {
-								return append(render_item.apply(thisRef, arguments), html);
-							};
-						}
-	
-						original.apply(thisRef, arguments);
-	
-						// add event listener
-						thisRef.$control.on('click', '.' + options.className, function(e) {
-							e.preventDefault();
-							if (self.isLocked) return;
-	
-							var $item = $(e.currentTarget).parent();
-							self.setActiveItem($item);
-							if (self.deleteSelection()) {
-								self.setCaret(self.items.length);
-							}
-						});
-	
-					};
-				})();
-			};
-	
-			if (this.settings.mode === 'single') {
-				singleClose(this, options);
-				return;
-			} else {
-				multiClose(this, options);
-			}
-	});
-	
-	
-	Selectize.define('restore_on_backspace', function(options) {
-		var self = this;
-	
-		options.text = options.text || function(option) {
-			return option[this.settings.labelField];
-		};
-	
-		this.onKeyDown = (function() {
-			var original = self.onKeyDown;
-			return function(e) {
-				var index, option;
-				if (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {
-					index = this.caretPos - 1;
-					if (index >= 0 && index < this.items.length) {
-						option = this.options[this.items[index]];
-						if (this.deleteSelection(e)) {
-							this.setTextboxValue(options.text.apply(this, [option]));
-							this.refreshOptions(true);
-						}
-						e.preventDefault();
-						return;
-					}
-				}
-				return original.apply(this, arguments);
-			};
-		})();
-	});
-	
-
-	return Selectize;
-}));
\ No newline at end of file
diff --git a/pagure/static/selectize-0.12.3.min.js b/pagure/static/selectize-0.12.3.min.js
deleted file mode 100644
index 34abddd..0000000
--- a/pagure/static/selectize-0.12.3.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! selectize.js - v0.12.3 | https://github.com/selectize/selectize.js | Apache License (v2) */
-!function(a,b){"function"==typeof define&&define.amd?define("sifter",b):"object"==typeof exports?module.exports=b():a.Sifter=b()}(this,function(){var a=function(a,b){this.items=a,this.settings=b||{diacritics:!0}};a.prototype.tokenize=function(a){if(a=e(String(a||"").toLowerCase()),!a||!a.length)return[];var b,c,d,g,i=[],j=a.split(/ +/);for(b=0,c=j.length;b<c;b++){if(d=f(j[b]),this.settings.diacritics)for(g in h)h.hasOwnProperty(g)&&(d=d.replace(new RegExp(g,"g"),h[g]));i.push({string:j[b],regex:new RegExp(d,"i")})}return i},a.prototype.iterator=function(a,b){var c;c=g(a)?Array.prototype.forEach||function(a){for(var b=0,c=this.length;b<c;b++)a(this[b],b,this)}:function(a){for(var b in this)this.hasOwnProperty(b)&&a(this[b],b,this)},c.apply(a,[b])},a.prototype.getScoreFunction=function(a,b){var c,e,f,g,h;c=this,a=c.prepareSearch(a,b),f=a.tokens,e=a.options.fields,g=f.length,h=a.options.nesting;var i=function(a,b){var c,d;return a?(a=String(a||""),d=a.search(b.regex),d===-1?0:(c=b.string.length/a.length,0===d&&(c+=.5),c)):0},j=function(){var a=e.length;return a?1===a?function(a,b){return i(d(b,e[0],h),a)}:function(b,c){for(var f=0,g=0;f<a;f++)g+=i(d(c,e[f],h),b);return g/a}:function(){return 0}}();return g?1===g?function(a){return j(f[0],a)}:"and"===a.options.conjunction?function(a){for(var b,c=0,d=0;c<g;c++){if(b=j(f[c],a),b<=0)return 0;d+=b}return d/g}:function(a){for(var b=0,c=0;b<g;b++)c+=j(f[b],a);return c/g}:function(){return 0}},a.prototype.getSortFunction=function(a,c){var e,f,g,h,i,j,k,l,m,n,o;if(g=this,a=g.prepareSearch(a,c),o=!a.query&&c.sort_empty||c.sort,m=function(a,b){return"$score"===a?b.score:d(g.items[b.id],a,c.nesting)},i=[],o)for(e=0,f=o.length;e<f;e++)(a.query||"$score"!==o[e].field)&&i.push(o[e]);if(a.query){for(n=!0,e=0,f=i.length;e<f;e++)if("$score"===i[e].field){n=!1;break}n&&i.unshift({field:"$score",direction:"desc"})}else for(e=0,f=i.length;e<f;e++)if("$score"===i[e].field){i.splice(e,1);break}for(l=[],e=0,f=i.length;e<f;e++)l.push("desc"===i[e].direction?-1:1);return j=i.length,j?1===j?(h=i[0].field,k=l[0],function(a,c){return k*b(m(h,a),m(h,c))}):function(a,c){var d,e,f;for(d=0;d<j;d++)if(f=i[d].field,e=l[d]*b(m(f,a),m(f,c)))return e;return 0}:null},a.prototype.prepareSearch=function(a,b){if("object"==typeof a)return a;b=c({},b);var d=b.fields,e=b.sort,f=b.sort_empty;return d&&!g(d)&&(b.fields=[d]),e&&!g(e)&&(b.sort=[e]),f&&!g(f)&&(b.sort_empty=[f]),{options:b,query:String(a||"").toLowerCase(),tokens:this.tokenize(a),total:0,items:[]}},a.prototype.search=function(a,b){var c,d,e,f,g=this;return d=this.prepareSearch(a,b),b=d.options,a=d.query,f=b.score||g.getScoreFunction(d),a.length?g.iterator(g.items,function(a,e){c=f(a),(b.filter===!1||c>0)&&d.items.push({score:c,id:e})}):g.iterator(g.items,function(a,b){d.items.push({score:1,id:b})}),e=g.getSortFunction(d,b),e&&d.items.sort(e),d.total=d.items.length,"number"==typeof b.limit&&(d.items=d.items.slice(0,b.limit)),d};var b=function(a,b){return"number"==typeof a&&"number"==typeof b?a>b?1:a<b?-1:0:(a=i(String(a||"")),b=i(String(b||"")),a>b?1:b>a?-1:0)},c=function(a,b){var c,d,e,f;for(c=1,d=arguments.length;c<d;c++)if(f=arguments[c])for(e in f)f.hasOwnProperty(e)&&(a[e]=f[e]);return a},d=function(a,b,c){if(a&&b){if(!c)return a[b];for(var d=b.split(".");d.length&&(a=a[d.shift()]););return a}},e=function(a){return(a+"").replace(/^\s+|\s+$|/g,"")},f=function(a){return(a+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},g=Array.isArray||"undefined"!=typeof $&&$.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},h={a:"[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]",b:"[b␢βΒB฿𐌁ᛒ]",c:"[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄＣｃ]",d:"[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅＤｄð]",e:"[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇＥｅɘǝƏƐε]",f:"[fƑƒḞḟ]",g:"[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]",h:"[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]",i:"[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪＩｉ]",j:"[jȷĴĵɈɉʝɟʲ]",k:"[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]",l:"[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟＬｌ]",n:"[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴＮｎŊŋ]",o:"[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]",p:"[pṔṕṖṗⱣᵽƤƥᵱ]",q:"[qꝖꝗʠɊɋꝘꝙq̃]",r:"[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]",s:"[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]",t:"[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]",u:"[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]",v:"[vṼṽṾṿƲʋꝞꝟⱱʋ]",w:"[wẂẃẀẁŴŵẄẅẆẇẈẉ]",x:"[xẌẍẊẋχ]",y:"[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]",z:"[zŹźẐẑŽžŻżẒẓẔẕƵƶ]"},i=function(){var a,b,c,d,e="",f={};for(c in h)if(h.hasOwnProperty(c))for(d=h[c].substring(2,h[c].length-1),e+=d,a=0,b=d.length;a<b;a++)f[d.charAt(a)]=c;var g=new RegExp("["+e+"]","g");return function(a){return a.replace(g,function(a){return f[a]}).toLowerCase()}}();return a}),function(a,b){"function"==typeof define&&define.amd?define("microplugin",b):"object"==typeof exports?module.exports=b():a.MicroPlugin=b()}(this,function(){var a={};a.mixin=function(a){a.plugins={},a.prototype.initializePlugins=function(a){var c,d,e,f=this,g=[];if(f.plugins={names:[],settings:{},requested:{},loaded:{}},b.isArray(a))for(c=0,d=a.length;c<d;c++)"string"==typeof a[c]?g.push(a[c]):(f.plugins.settings[a[c].name]=a[c].options,g.push(a[c].name));else if(a)for(e in a)a.hasOwnProperty(e)&&(f.plugins.settings[e]=a[e],g.push(e));for(;g.length;)f.require(g.shift())},a.prototype.loadPlugin=function(b){var c=this,d=c.plugins,e=a.plugins[b];if(!a.plugins.hasOwnProperty(b))throw new Error('Unable to find "'+b+'" plugin');d.requested[b]=!0,d.loaded[b]=e.fn.apply(c,[c.plugins.settings[b]||{}]),d.names.push(b)},a.prototype.require=function(a){var b=this,c=b.plugins;if(!b.plugins.loaded.hasOwnProperty(a)){if(c.requested[a])throw new Error('Plugin has circular dependency ("'+a+'")');b.loadPlugin(a)}return c.loaded[a]},a.define=function(b,c){a.plugins[b]={name:b,fn:c}}};var b={isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}};return a}),function(a,b){"function"==typeof define&&define.amd?define("selectize",["jquery","sifter","microplugin"],b):"object"==typeof exports?module.exports=b(require("jquery"),require("sifter"),require("microplugin")):a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}(this,function(a,b,c){"use strict";var d=function(a,b){if("string"!=typeof b||b.length){var c="string"==typeof b?new RegExp(b,"i"):b,d=function(a){var b=0;if(3===a.nodeType){var e=a.data.search(c);if(e>=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement("span");g.className="highlight";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName))for(var j=0;j<a.childNodes.length;++j)j+=d(a.childNodes[j]);return b};return a.each(function(){d(this)})}};jQuery.fn.removeHighlight=function(){return this.find("span.highlight").each(function(){this.parentNode.firstChild.nodeName;var a=this.parentNode;a.replaceChild(this.firstChild,this),a.normalize()}).end()};var e=function(){};e.prototype={on:function(a,b){this._events=this._events||{},this._events[a]=this._events[a]||[],this._events[a].push(b)},off:function(a,b){var c=arguments.length;return 0===c?delete this._events:1===c?delete this._events[a]:(this._events=this._events||{},void(a in this._events!=!1&&this._events[a].splice(this._events[a].indexOf(b),1)))},trigger:function(a){if(this._events=this._events||{},a in this._events!=!1)for(var b=0;b<this._events[a].length;b++)this._events[a][b].apply(this,Array.prototype.slice.call(arguments,1))}},e.mixin=function(a){for(var b=["on","off","trigger"],c=0;c<b.length;c++)a.prototype[b[c]]=e.prototype[b[c]]};var f=/Mac/.test(navigator.userAgent),g=65,h=13,i=27,j=37,k=38,l=80,m=39,n=40,o=78,p=8,q=46,r=16,s=f?91:17,t=f?18:17,u=9,v=1,w=2,x=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("input").validity,y=function(a){return"undefined"!=typeof a},z=function(a){return"undefined"==typeof a||null===a?null:"boolean"==typeof a?a?"1":"0":a+""},A=function(a){return(a+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},B={};B.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},B.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var C=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},D=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},E=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];return b.indexOf(c)===-1?e.apply(a,arguments):void(f[c]=arguments)},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},F=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},G=function(a){var b={};if("selectionStart"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart("character",-a.value.length),b.start=c.text.length-d,b.length=d}return b},H=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;d<e;d++)f[c[d]]=a.css(c[d]);else f=a.css();b.css(f)},I=function(b,c){if(!b)return 0;var d=a("<test>").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).text(b).appendTo("body");H(c,d,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]);var e=d.width();return d.remove(),e},J=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||a.data("grow")!==!1)&&(e=a.val(),c.type&&"keydown"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=97&&f<=122||f>=65&&f<=90||f>=48&&f<=57||32===f,f===q||f===p?(l=G(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):f===p&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):f===q&&"undefined"!=typeof l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr("placeholder"),!e&&h&&(e=h),i=I(e,a)+4,i!==b&&(b=i,a.width(i),a.triggerHandler("resize")))};a.on("keydown keyup update blur",c),c()},K=function(a){var b=document.createElement("div");return b.appendChild(a.cloneNode(!0)),b.innerHTML},L=function(a,b){b||(b={});var c="Selectize";console.error(c+": "+a),b.explanation&&(console.group&&console.group(),console.error(b.explanation),console.group&&console.groupEnd())},M=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue("direction"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents("[dir]:first").attr("dir")||"",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr("tabindex")||"",tagType:"select"===h.tagName.toLowerCase()?v:w,rtl:/rtl/i.test(g),eventNS:".selectize"+ ++M.count,highlightedValue:null,isOpen:!1,isDisabled:!1,isRequired:c.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:D(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;e<f;e++)i.registerOption(i.settings.options[e]);delete i.settings.options}if(i.settings.optgroups){for(e=0,f=i.settings.optgroups.length;e<f;e++)i.registerOptionGroup(i.settings.optgroups[e]);delete i.settings.optgroups}i.settings.mode=i.settings.mode||(1===i.settings.maxItems?"single":"multi"),"boolean"!=typeof i.settings.hideSelected&&(i.settings.hideSelected="multi"===i.settings.mode),i.initializePlugins(i.settings.plugins),i.setupCallbacks(),i.setupTemplates(),i.setup()};return e.mixin(M),"undefined"!=typeof c?c.mixin(M):L("Dependency MicroPlugin is missing",{explanation:'Make sure you either: (1) are using the "standalone" version of Selectize, or (2) require MicroPlugin before you load Selectize.'}),a.extend(M.prototype,{setup:function(){var b,c,d,e,g,h,i,j,k,l,m=this,n=m.settings,o=m.eventNS,p=a(window),q=a(document),u=m.$input;if(i=m.settings.mode,j=u.attr("class")||"",b=a("<div>").addClass(n.wrapperClass).addClass(j).addClass(i),c=a("<div>").addClass(n.inputClass).addClass("items").appendTo(b),d=a('<input type="text" autocomplete="off" />').appendTo(c).attr("tabindex",u.is(":disabled")?"-1":m.tabIndex),h=a(n.dropdownParent||b),e=a("<div>").addClass(n.dropdownClass).addClass(i).hide().appendTo(h),g=a("<div>").addClass(n.dropdownContentClass).appendTo(e),(l=u.attr("id"))&&(d.attr("id",l+"-selectized"),a("label[for='"+l+"']").attr("for",l+"-selectized")),m.settings.copyClassesToDropdown&&e.addClass(j),b.css({width:u[0].style.width}),m.plugins.names.length&&(k="plugin-"+m.plugins.names.join(" plugin-"),b.addClass(k),e.addClass(k)),(null===n.maxItems||n.maxItems>1)&&m.tagType===v&&u.attr("multiple","multiple"),m.settings.placeholder&&d.attr("placeholder",n.placeholder),!m.settings.splitOn&&m.settings.delimiter){var w=m.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");m.settings.splitOn=new RegExp("\\s*"+w+"+\\s*")}u.attr("autocorrect")&&d.attr("autocorrect",u.attr("autocorrect")),u.attr("autocapitalize")&&d.attr("autocapitalize",u.attr("autocapitalize")),m.$wrapper=b,m.$control=c,m.$control_input=d,m.$dropdown=e,m.$dropdown_content=g,e.on("mouseenter","[data-selectable]",function(){return m.onOptionHover.apply(m,arguments)}),e.on("mousedown click","[data-selectable]",function(){return m.onOptionSelect.apply(m,arguments)}),F(c,"mousedown","*:not(input)",function(){return m.onItemSelect.apply(m,arguments)}),J(d),c.on({mousedown:function(){return m.onMouseDown.apply(m,arguments)},click:function(){return m.onClick.apply(m,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return m.onKeyDown.apply(m,arguments)},keyup:function(){return m.onKeyUp.apply(m,arguments)},keypress:function(){return m.onKeyPress.apply(m,arguments)},resize:function(){m.positionDropdown.apply(m,[])},blur:function(){return m.onBlur.apply(m,arguments)},focus:function(){return m.ignoreBlur=!1,m.onFocus.apply(m,arguments)},paste:function(){return m.onPaste.apply(m,arguments)}}),q.on("keydown"+o,function(a){m.isCmdDown=a[f?"metaKey":"ctrlKey"],m.isCtrlDown=a[f?"altKey":"ctrlKey"],m.isShiftDown=a.shiftKey}),q.on("keyup"+o,function(a){a.keyCode===t&&(m.isCtrlDown=!1),a.keyCode===r&&(m.isShiftDown=!1),a.keyCode===s&&(m.isCmdDown=!1)}),q.on("mousedown"+o,function(a){if(m.isFocused){if(a.target===m.$dropdown[0]||a.target.parentNode===m.$dropdown[0])return!1;m.$control.has(a.target).length||a.target===m.$control[0]||m.blur(a.target)}}),p.on(["scroll"+o,"resize"+o].join(" "),function(){m.isOpen&&m.positionDropdown.apply(m,arguments)}),p.on("mousemove"+o,function(){m.ignoreHover=!1}),this.revertSettings={$children:u.children().detach(),tabindex:u.attr("tabindex")},u.attr("tabindex",-1).hide().after(m.$wrapper),a.isArray(n.items)&&(m.setValue(n.items),delete n.items),x&&u.on("invalid"+o,function(a){a.preventDefault(),m.isInvalid=!0,m.refreshState()}),m.updateOriginalInput(),m.refreshItems(),m.refreshState(),m.updatePlaceholder(),m.isSetup=!0,u.is(":disabled")&&m.disable(),m.on("change",this.onChange),u.data("selectize",m),u.addClass("selectized"),m.trigger("initialize"),n.preload===!0&&m.onSearchChange("")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'<div class="optgroup">'+a.html+"</div>"},optgroup_header:function(a,b){return'<div class="optgroup-header">'+b(a[d])+"</div>"},option:function(a,b){return'<div class="option">'+b(a[c])+"</div>"},item:function(a,b){return'<div class="item">'+b(a[c])+"</div>"},option_create:function(a,b){return'<div class="create">Add <strong>'+b(a.input)+"</strong>&hellip;</div>"}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]],b&&this.on(a,b))},onClick:function(a){var b=this;b.isFocused||(b.focus(),a.preventDefault())},onMouseDown:function(b){var c=this,d=b.isDefaultPrevented();a(b.target);if(c.isFocused){if(b.target!==c.$control_input[0])return"single"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(b){var c=this;return c.isFull()||c.isInputHidden||c.isLocked?void b.preventDefault():void(c.settings.splitOn&&setTimeout(function(){var b=c.$control_input.val();if(b.match(c.settings.splitOn))for(var d=a.trim(b).split(c.settings.splitOn),e=0,f=d.length;e<f;e++)c.createItem(d[e])},0))},onKeyPress:function(a){if(this.isLocked)return a&&a.preventDefault();var b=String.fromCharCode(a.keyCode||a.which);return this.settings.create&&"multi"===this.settings.mode&&b===this.settings.delimiter?(this.createItem(),a.preventDefault(),!1):void 0},onKeyDown:function(a){var b=(a.target===this.$control_input[0],this);if(b.isLocked)return void(a.keyCode!==u&&a.preventDefault());switch(a.keyCode){case g:if(b.isCmdDown)return void b.selectAll();break;case i:return void(b.isOpen&&(a.preventDefault(),a.stopPropagation(),b.close()));case o:if(!a.ctrlKey||a.altKey)break;case n:if(!b.isOpen&&b.hasOptions)b.open();else if(b.$activeOption){b.ignoreHover=!0;var c=b.getAdjacentOption(b.$activeOption,1);c.length&&b.setActiveOption(c,!0,!0)}return void a.preventDefault();case l:if(!a.ctrlKey||a.altKey)break;case k:if(b.$activeOption){b.ignoreHover=!0;var d=b.getAdjacentOption(b.$activeOption,-1);d.length&&b.setActiveOption(d,!0,!0)}return void a.preventDefault();case h:return void(b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),a.preventDefault()));case j:return void b.advanceSelection(-1,a);case m:return void b.advanceSelection(1,a);case u:return b.settings.selectOnTab&&b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),b.isFull()||a.preventDefault()),void(b.settings.create&&b.createItem()&&a.preventDefault());case p:case q:return void b.deleteSelection(a)}return!b.isFull()&&!b.isInputHidden||(f?a.metaKey:a.ctrlKey)?void 0:void a.preventDefault()},onKeyUp:function(a){var b=this;if(b.isLocked)return a&&a.preventDefault();var c=b.$control_input.val()||"";b.lastValue!==c&&(b.lastValue=c,b.onSearchChange(c),b.refreshOptions(),b.trigger("type",c))},onSearchChange:function(a){var b=this,c=b.settings.load;c&&(b.loadedSearches.hasOwnProperty(a)||(b.loadedSearches[a]=!0,b.load(function(d){c.apply(b,[a,d])})))},onFocus:function(a){var b=this,c=b.isFocused;return b.isDisabled?(b.blur(),a&&a.preventDefault(),!1):void(b.ignoreFocus||(b.isFocused=!0,"focus"===b.settings.preload&&b.onSearchChange(""),c||b.trigger("focus"),b.$activeItems.length||(b.showInput(),b.setActiveItem(null),b.refreshOptions(!!b.settings.openOnFocus)),b.refreshState()))},onBlur:function(a,b){var c=this;if(c.isFocused&&(c.isFocused=!1,!c.ignoreFocus)){if(!c.ignoreBlur&&document.activeElement===c.$dropdown_content[0])return c.ignoreBlur=!0,void c.onFocus(a);var d=function(){c.close(),c.setTextboxValue(""),c.setActiveItem(null),c.setActiveOption(null),c.setCaret(c.items.length),c.refreshState(),b&&b.focus(),c.ignoreFocus=!1,c.trigger("blur")};c.ignoreFocus=!0,c.settings.create&&c.settings.createOnBlur?c.createItem(null,!1,d):d()}},onOptionHover:function(a){this.ignoreHover||this.setActiveOption(a.currentTarget,!1)},onOptionSelect:function(b){var c,d,e=this;b.preventDefault&&(b.preventDefault(),b.stopPropagation()),d=a(b.currentTarget),d.hasClass("create")?e.createItem(null,function(){e.settings.closeAfterSelect&&e.close()}):(c=d.attr("data-value"),"undefined"!=typeof c&&(e.lastQuery=null,e.setTextboxValue(""),e.addItem(c),e.settings.closeAfterSelect?e.close():!e.settings.hideSelected&&b.type&&/mouse/.test(b.type)&&e.setActiveOption(e.getOption(c))))},onItemSelect:function(a){var b=this;b.isLocked||"multi"===b.settings.mode&&(a.preventDefault(),b.setActiveItem(a.currentTarget,a))},load:function(a){var b=this,c=b.$wrapper.addClass(b.settings.loadingClass);b.loading++,a.apply(b,[function(a){b.loading=Math.max(b.loading-1,0),a&&a.length&&(b.addOption(a),b.refreshOptions(b.isFocused&&!b.isInputHidden)),b.loading||c.removeClass(b.settings.loadingClass),b.trigger("load",a)}])},setTextboxValue:function(a){var b=this.$control_input,c=b.val()!==a;c&&(b.val(a).triggerHandler("update"),this.lastValue=a)},getValue:function(){return this.tagType===v&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(a,b){var c=b?[]:["change"];E(this,c,function(){this.clear(b),this.addItems(a,b)})},setActiveItem:function(b,c){var d,e,f,g,h,i,j,k,l=this;if("single"!==l.settings.mode){if(b=a(b),!b.length)return a(l.$activeItems).removeClass("active"),l.$activeItems=[],void(l.isFocused&&l.showInput());if(d=c&&c.type.toLowerCase(),"mousedown"===d&&l.isShiftDown&&l.$activeItems.length){for(k=l.$control.children(".active:last"),g=Array.prototype.indexOf.apply(l.$control[0].childNodes,[k[0]]),h=Array.prototype.indexOf.apply(l.$control[0].childNodes,[b[0]]),g>h&&(j=g,g=h,h=j),e=g;e<=h;e++)i=l.$control[0].childNodes[e],l.$activeItems.indexOf(i)===-1&&(a(i).addClass("active"),l.$activeItems.push(i));c.preventDefault()}else"mousedown"===d&&l.isCtrlDown||"keydown"===d&&this.isShiftDown?b.hasClass("active")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass("active")):l.$activeItems.push(b.addClass("active")[0]):(a(l.$activeItems).removeClass("active"),l.$activeItems=[b.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,j=this;j.$activeOption&&j.$activeOption.removeClass("active"),j.$activeOption=null,b=a(b),b.length&&(j.$activeOption=b.addClass("active"),!c&&y(c)||(e=j.$dropdown_content.height(),f=j.$activeOption.outerHeight(!0),c=j.$dropdown_content.scrollTop()||0,g=j.$activeOption.offset().top-j.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?j.$dropdown_content.stop().animate({scrollTop:i},d?j.settings.scrollDuration:0):g<c&&j.$dropdown_content.stop().animate({scrollTop:h},d?j.settings.scrollDuration:0)))},selectAll:function(){var a=this;"single"!==a.settings.mode&&(a.$activeItems=Array.prototype.slice.apply(a.$control.children(":not(input)").addClass("active")),a.$activeItems.length&&(a.hideInput(),a.close()),a.focus())},hideInput:function(){var a=this;a.setTextboxValue(""),a.$control_input.css({opacity:0,position:"absolute",left:a.rtl?1e4:-1e4}),a.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var a=this;a.isDisabled||(a.ignoreFocus=!0,a.$control_input[0].focus(),window.setTimeout(function(){a.ignoreFocus=!1,a.onFocus()},0))},blur:function(a){this.$control_input[0].blur(),this.onBlur(null,a)},getScoreFunction:function(a){return this.sifter.getScoreFunction(a,this.getSearchOptions())},getSearchOptions:function(){var a=this.settings,b=a.sortField;return"string"==typeof b&&(b=[{field:b}]),{fields:a.searchField,conjunction:a.searchConjunction,sort:b}},search:function(b){var c,d,e,f=this,g=f.settings,h=this.getSearchOptions();if(g.score&&(e=f.settings.score.apply(this,[b]),"function"!=typeof e))throw new Error('Selectize "score" setting must be a function that returns a function');if(b!==f.lastQuery?(f.lastQuery=b,d=f.sifter.search(b,a.extend(h,{score:e})),f.currentResults=d):d=a.extend(!0,{},f.currentResults),g.hideSelected)for(c=d.items.length-1;c>=0;c--)f.items.indexOf(z(d.items[c].id))!==-1&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;"undefined"==typeof b&&(b=!0);var t=this,u=a.trim(t.$control_input.val()),v=t.search(u),w=t.$dropdown_content,x=t.$activeOption&&z(t.$activeOption.attr("data-value"));for(g=v.items.length,"number"==typeof t.settings.maxOptions&&(g=Math.min(g,t.settings.maxOptions)),h={},i=[],c=0;c<g;c++)for(j=t.options[v.items[c].id],k=t.render("option",j),l=j[t.settings.optgroupField]||"",m=a.isArray(l)?l:[l],e=0,f=m&&m.length;e<f;e++)l=m[e],t.optgroups.hasOwnProperty(l)||(l=""),h.hasOwnProperty(l)||(h[l]=document.createDocumentFragment(),i.push(l)),h[l].appendChild(k);for(this.settings.lockOptgroupOrder&&i.sort(function(a,b){var c=t.optgroups[a].$order||0,d=t.optgroups[b].$order||0;return c-d}),n=document.createDocumentFragment(),c=0,g=i.length;c<g;c++)l=i[c],t.optgroups.hasOwnProperty(l)&&h[l].childNodes.length?(o=document.createDocumentFragment(),o.appendChild(t.render("optgroup_header",t.optgroups[l])),o.appendChild(h[l]),n.appendChild(t.render("optgroup",a.extend({},t.optgroups[l],{html:K(o),dom:o})))):n.appendChild(h[l]);if(w.html(n),t.settings.highlight&&v.query.length&&v.tokens.length)for(w.removeHighlight(),c=0,g=v.tokens.length;c<g;c++)d(w,v.tokens[c].regex);if(!t.settings.hideSelected)for(c=0,g=t.items.length;c<g;c++)t.getOption(t.items[c]).addClass("selected");p=t.canCreate(u),p&&(w.prepend(t.render("option_create",{input:u})),s=a(w[0].childNodes[0])),t.hasOptions=v.items.length>0||p,t.hasOptions?(v.items.length>0?(r=x&&t.getOption(x),r&&r.length?q=r:"single"===t.settings.mode&&t.items.length&&(q=t.getOption(t.items[0])),q&&q.length||(q=s&&!t.settings.addPrecedence?t.getAdjacentOption(s,1):w.find("[data-selectable]:first"))):q=s,t.setActiveOption(q),b&&!t.isOpen&&t.open()):(t.setActiveOption(null),b&&t.isOpen&&t.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;c<d;c++)f.addOption(b[c]);else(e=f.registerOption(b))&&(f.userOptions[e]=!0,f.lastQuery=null,f.trigger("option_add",e,b))},registerOption:function(a){var b=z(a[this.settings.valueField]);return"undefined"!=typeof b&&null!==b&&!this.options.hasOwnProperty(b)&&(a.$order=a.$order||++this.order,this.options[b]=a,b)},registerOptionGroup:function(a){var b=z(a[this.settings.optgroupValueField]);return!!b&&(a.$order=a.$order||++this.order,this.optgroups[b]=a,b)},addOptionGroup:function(a,b){b[this.settings.optgroupValueField]=a,(a=this.registerOptionGroup(b))&&this.trigger("optgroup_add",a,b)},removeOptionGroup:function(a){this.optgroups.hasOwnProperty(a)&&(delete this.optgroups[a],this.renderCache={},this.trigger("optgroup_remove",a))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function(b,c){var d,e,f,g,h,i,j,k=this;if(b=z(b),f=z(c[k.settings.valueField]),null!==b&&k.options.hasOwnProperty(b)){if("string"!=typeof f)throw new Error("Value must be set in option data");j=k.options[b].$order,f!==b&&(delete k.options[b],g=k.items.indexOf(b),g!==-1&&k.items.splice(g,1,f)),c.$order=c.$order||j,k.options[f]=c,h=k.renderCache.item,i=k.renderCache.option,h&&(delete h[b],delete h[f]),i&&(delete i[b],delete i[f]),k.items.indexOf(f)!==-1&&(d=k.getItem(b),e=a(k.render("item",c)),d.hasClass("active")&&e.addClass("active"),d.replaceWith(e)),k.lastQuery=null,k.isOpen&&k.refreshOptions(!1)}},removeOption:function(a,b){var c=this;a=z(a);var d=c.renderCache.item,e=c.renderCache.option;d&&delete d[a],e&&delete e[a],delete c.userOptions[a],delete c.options[a],c.lastQuery=null,c.trigger("option_remove",a),c.removeItem(a,b)},clearOptions:function(){var a=this;a.loadedSearches={},a.userOptions={},a.renderCache={},a.options=a.sifter.items={},a.lastQuery=null,a.trigger("option_clear"),a.clear()},getOption:function(a){return this.getElementWithValue(a,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(b,c){var d=this.$dropdown.find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},getElementWithValue:function(b,c){if(b=z(b),"undefined"!=typeof b&&null!==b)for(var d=0,e=c.length;d<e;d++)if(c[d].getAttribute("data-value")===b)return a(c[d]);return a()},getItem:function(a){return this.getElementWithValue(a,this.$control.children())},addItems:function(b,c){for(var d=a.isArray(b)?b:[b],e=0,f=d.length;e<f;e++)this.isPending=e<f-1,this.addItem(d[e],c)},addItem:function(b,c){var d=c?[]:["change"];E(this,d,function(){var d,e,f,g,h,i=this,j=i.settings.mode;return b=z(b),i.items.indexOf(b)!==-1?void("single"===j&&i.close()):void(i.options.hasOwnProperty(b)&&("single"===j&&i.clear(c),"multi"===j&&i.isFull()||(d=a(i.render("item",i.options[b])),h=i.isFull(),i.items.splice(i.caretPos,0,b),i.insertAtCaret(d),(!i.isPending||!h&&i.isFull())&&i.refreshState(),i.isSetup&&(f=i.$dropdown_content.find("[data-selectable]"),i.isPending||(e=i.getOption(b),g=i.getAdjacentOption(e,1).attr("data-value"),i.refreshOptions(i.isFocused&&"single"!==j),g&&i.setActiveOption(i.getOption(g))),!f.length||i.isFull()?i.close():i.positionDropdown(),i.updatePlaceholder(),i.trigger("item_add",b,d),i.updateOriginalInput({silent:c})))))})},removeItem:function(b,c){var d,e,f,g=this;d=b instanceof a?b:g.getItem(b),b=z(d.attr("data-value")),e=g.items.indexOf(b),e!==-1&&(d.remove(),d.hasClass("active")&&(f=g.$activeItems.indexOf(d[0]),g.$activeItems.splice(f,1)),g.items.splice(e,1),g.lastQuery=null,!g.settings.persist&&g.userOptions.hasOwnProperty(b)&&g.removeOption(b,c),e<g.caretPos&&g.setCaret(g.caretPos-1),g.refreshState(),g.updatePlaceholder(),g.updateOriginalInput({silent:c}),g.positionDropdown(),g.trigger("item_remove",b,d))},createItem:function(b,c){var d=this,e=d.caretPos;b=b||a.trim(d.$control_input.val()||"");var f=arguments[arguments.length-1];if("function"!=typeof f&&(f=function(){}),"boolean"!=typeof c&&(c=!0),!d.canCreate(b))return f(),!1;d.lock();var g="function"==typeof d.settings.create?this.settings.create:function(a){var b={};return b[d.settings.labelField]=a,b[d.settings.valueField]=a,b},h=C(function(a){if(d.unlock(),!a||"object"!=typeof a)return f();var b=z(a[d.settings.valueField]);return"string"!=typeof b?f():(d.setTextboxValue(""),d.addOption(a),d.setCaret(e),d.addItem(b),d.refreshOptions(c&&"single"!==d.settings.mode),void f(a))}),i=g.apply(this,[b,h]);return"undefined"!=typeof i&&h(i),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){this.refreshValidityState(),this.refreshClasses()},refreshValidityState:function(){if(!this.isRequired)return!1;var a=!this.items.length;this.isInvalid=a,this.$control_input.prop("required",a),this.$input.prop("required",!a)},refreshClasses:function(){var b=this,c=b.isFull(),d=b.isLocked;b.$wrapper.toggleClass("rtl",b.rtl),b.$control.toggleClass("focus",b.isFocused).toggleClass("disabled",b.isDisabled).toggleClass("required",b.isRequired).toggleClass("invalid",b.isInvalid).toggleClass("locked",d).toggleClass("full",c).toggleClass("not-full",!c).toggleClass("input-active",b.isFocused&&!b.isInputHidden).toggleClass("dropdown-active",b.isOpen).toggleClass("has-options",!a.isEmptyObject(b.options)).toggleClass("has-items",b.items.length>0),b.$control_input.data("grow",!c&&!d)},isFull:function(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},f.tagType===v){for(d=[],b=0,c=f.items.length;b<c;b++)e=f.options[f.items[b]][f.settings.labelField]||"",d.push('<option value="'+A(f.items[b])+'" selected="selected">'+A(e)+"</option>");d.length||this.$input.attr("multiple")||d.push('<option value="" selected="selected"></option>'),
-f.$input.html(d.join(""))}else f.$input.val(f.getValue()),f.$input.attr("value",f.$input.val());f.isSetup&&(a.silent||f.trigger("change",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr("placeholder"):a.attr("placeholder",this.settings.placeholder),a.triggerHandler("update",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||"multi"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:"hidden",display:"block"}),a.positionDropdown(),a.$dropdown.css({visibility:"visible"}),a.trigger("dropdown_open",a.$dropdown))},close:function(){var a=this,b=a.isOpen;"single"===a.settings.mode&&a.items.length&&(a.hideInput(),a.$control_input.blur()),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger("dropdown_close",a.$dropdown)},positionDropdown:function(){var a=this.$control,b="body"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a.outerWidth(),top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(":not(input)").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger("clear"))},insertAtCaret:function(b){var c=Math.min(this.caretPos,this.items.length);0===c?this.$control.prepend(b):a(this.$control[0].childNodes[c]).before(b),this.setCaret(c+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&b.keyCode===p?-1:1,f=G(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr("data-value")),g=[],l.$activeItems.length){for(k=l.$control.children(".active:"+(e>0?"last":"first")),h=l.$control.children(":not(input)").index(k),e>0&&h++,c=0,d=l.$activeItems.length;c<d;c++)g.push(a(l.$activeItems[c]).attr("data-value"));b&&(b.preventDefault(),b.stopPropagation())}else(l.isFocused||"single"===l.settings.mode)&&l.items.length&&(e<0&&0===f.start&&0===f.length?g.push(l.items[l.caretPos-1]):e>0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||"function"==typeof l.settings.onDelete&&l.settings.onDelete.apply(l,[g])===!1)return!1;for("undefined"!=typeof h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h,i=this;0!==a&&(i.rtl&&(a*=-1),c=a>0?"last":"first",d=G(i.$control_input[0]),i.isFocused&&!i.isInputHidden?(f=i.$control_input.val().length,g=a<0?0===d.start&&0===d.length:d.start===f,g&&!f&&i.advanceCaret(a,b)):(h=i.$control.children(".active:"+c),h.length&&(e=i.$control.children(":not(input)").index(h),i.setActiveItem(null),i.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?"next":"prev",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b="single"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(":not(input)"),d=0,e=f.length;d<e;d++)g=a(f[d]).detach(),d<b?c.$control_input.before(g):c.$control.append(g)}c.caretPos=b},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){var a=this;a.$input.prop("disabled",!0),a.$control_input.prop("disabled",!0).prop("tabindex",-1),a.isDisabled=!0,a.lock()},enable:function(){var a=this;a.$input.prop("disabled",!1),a.$control_input.prop("disabled",!1).prop("tabindex",a.tabIndex),a.isDisabled=!1,a.unlock()},destroy:function(){var b=this,c=b.eventNS,d=b.revertSettings;b.trigger("destroy"),b.off(),b.$wrapper.remove(),b.$dropdown.remove(),b.$input.html("").append(d.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:d.tabindex}).show(),b.$control_input.removeData("grow"),b.$input.removeData("selectize"),a(window).off(c),a(document).off(c),a(document.body).off(c),delete b.$input[0].selectize},render:function(b,c){var d,e,f="",g=!1,h=this;return"option"!==b&&"item"!==b||(d=z(c[h.settings.valueField]),g=!!d),g&&(y(h.renderCache[b])||(h.renderCache[b]={}),h.renderCache[b].hasOwnProperty(d))?h.renderCache[b][d]:(f=a(h.settings.render[b].apply(this,[c,A])),"option"===b||"option_create"===b?f.attr("data-selectable",""):"optgroup"===b&&(e=c[h.settings.optgroupValueField]||"",f.attr("data-group",e)),"option"!==b&&"item"!==b||f.attr("data-value",d||""),g&&(h.renderCache[b][d]=f[0]),f[0])},clearCache:function(a){var b=this;"undefined"==typeof a?b.renderCache={}:delete b.renderCache[a]},canCreate:function(a){var b=this;if(!b.settings.create)return!1;var c=b.settings.createFilter;return a.length&&("function"!=typeof c||c.apply(b,[a]))&&("string"!=typeof c||new RegExp(c).test(a))&&(!(c instanceof RegExp)||c.test(a))}}),M.count=0,M.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},a.fn.selectize=function(b){var c=a.fn.selectize.defaults,d=a.extend({},c,b),e=d.dataAttr,f=d.labelField,g=d.valueField,h=d.optgroupField,i=d.optgroupLabelField,j=d.optgroupValueField,k=function(b,c){var h,i,j,k,l=b.attr(e);if(l)for(c.options=JSON.parse(l),h=0,i=c.options.length;h<i;h++)c.items.push(c.options[h][g]);else{var m=a.trim(b.val()||"");if(!d.allowEmptyOption&&!m.length)return;for(j=m.split(d.delimiter),h=0,i=j.length;h<i;h++)k={},k[f]=j[h],k[g]=j[h],c.options.push(k);c.items=j}},l=function(b,c){var k,l,m,n,o=c.options,p={},q=function(a){var b=e&&a.attr(e);return"string"==typeof b&&b.length?JSON.parse(b):null},r=function(b,e){b=a(b);var i=z(b.val());if(i||d.allowEmptyOption)if(p.hasOwnProperty(i)){if(e){var j=p[i][h];j?a.isArray(j)?j.push(e):p[i][h]=[j,e]:p[i][h]=e}}else{var k=q(b)||{};k[f]=k[f]||b.text(),k[g]=k[g]||i,k[h]=k[h]||e,p[i]=k,o.push(k),b.is(":selected")&&c.items.push(i)}},s=function(b){var d,e,f,g,h;for(b=a(b),f=b.attr("label"),f&&(g=q(b)||{},g[i]=f,g[j]=f,c.optgroups.push(g)),h=a("option",b),d=0,e=h.length;d<e;d++)r(h[d],f)};for(c.maxItems=b.attr("multiple")?null:1,n=b.children(),k=0,l=n.length;k<l;k++)m=n[k].tagName.toLowerCase(),"optgroup"===m?s(n[k]):"option"===m&&r(n[k])};return this.each(function(){if(!this.selectize){var e,f=a(this),g=this.tagName.toLowerCase(),h=f.attr("placeholder")||f.attr("data-placeholder");h||d.allowEmptyOption||(h=f.children('option[value=""]').text());var i={placeholder:h,options:[],optgroups:[],items:[]};"select"===g?l(f,i):k(f,i),e=new M(f,a.extend(!0,{},c,i,b))}})},a.fn.selectize.defaults=M.defaults,a.fn.selectize.support={validity:x},M.define("drag_drop",function(b){if(!a.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');if("multi"===this.settings.mode){var c=this;c.lock=function(){var a=c.lock;return function(){var b=c.$control.data("sortable");return b&&b.disable(),a.apply(c,arguments)}}(),c.unlock=function(){var a=c.unlock;return function(){var b=c.$control.data("sortable");return b&&b.enable(),a.apply(c,arguments)}}(),c.setup=function(){var b=c.setup;return function(){b.apply(this,arguments);var d=c.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:c.isLocked,start:function(a,b){b.placeholder.css("width",b.helper.css("width")),d.css({overflow:"visible"})},stop:function(){d.css({overflow:"hidden"});var b=c.$activeItems?c.$activeItems.slice():null,e=[];d.children("[data-value]").each(function(){e.push(a(this).attr("data-value"))}),c.setValue(e),c.setActiveItem(b)}})}}()}}),M.define("dropdown_header",function(b){var c=this;b=a.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(a){return'<div class="'+a.headerClass+'"><div class="'+a.titleRowClass+'"><span class="'+a.labelClass+'">'+a.title+'</span><a href="javascript:void(0)" class="'+a.closeClass+'">&times;</a></div></div>'}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),M.define("optgroup_columns",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest("[data-group]").find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},this.onKeyDown=function(){var a=c.onKeyDown;return function(b){var d,e,f,g;return!this.isOpen||b.keyCode!==j&&b.keyCode!==m?a.apply(this,arguments):(c.ignoreHover=!0,g=this.$activeOption.closest("[data-group]"),d=g.find("[data-selectable]").index(this.$activeOption),g=b.keyCode===j?g.prev("[data-group]"):g.next("[data-group]"),f=g.find("[data-selectable]"),e=f.eq(Math.min(f.length-1,d)),void(e.length&&this.setActiveOption(e)))}}();var d=function(){var a,b=d.width,c=document;return"undefined"==typeof b&&(a=c.createElement("div"),a.innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a("[data-group]",c.$dropdown_content),f=k.length,f&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;e<f;e++)g=Math.max(g,k.eq(e).height());k.css({height:g})}b.equalizeWidth&&(j=c.$dropdown_content.innerWidth()-d(),h=Math.round(j/f),k.css({width:h}),f>1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(B.after(this,"positionDropdown",e),B.after(this,"refreshOptions",e))}),M.define("remove_button",function(b){b=a.extend({label:"&times;",title:"Remove",className:"remove",append:!0},b);var c=function(b,c){c.className="remove-single";var d=b,e='<a href="javascript:void(0)" class="'+c.className+'" tabindex="-1" title="'+A(c.title)+'">'+c.label+"</a>",f=function(a,b){return a+b};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=a(d.$input.context).attr("id"),i=(a("#"+h),d.settings.render.item);d.settings.render.item=function(a){return f(i.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(a){a.preventDefault(),d.isLocked||d.clear()})}}()},d=function(b,c){var d=b,e='<a href="javascript:void(0)" class="'+c.className+'" tabindex="-1" title="'+A(c.title)+'">'+c.label+"</a>",f=function(a,b){var c=a.search(/(<\/[^>]+>\s*)$/);return a.substring(0,c)+b+a.substring(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=d.settings.render.item;d.settings.render.item=function(a){return f(h.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(b){if(b.preventDefault(),!d.isLocked){var c=a(b.currentTarget).parent();d.setActiveItem(c),d.deleteSelection()&&d.setCaret(d.items.length)}})}}()};return"single"===this.settings.mode?void c(this,b):void d(this,b)}),M.define("restore_on_backspace",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return b.keyCode===p&&""===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1,d>=0&&d<this.items.length)?(e=this.options[this.items[d]],this.deleteSelection(b)&&(this.setTextboxValue(a.text.apply(this,[e])),this.refreshOptions(!0)),void b.preventDefault()):c.apply(this,arguments)}}()}),M});
\ No newline at end of file
diff --git a/pagure/static/selectize.bootstrap3-0.12.3.css b/pagure/static/selectize.bootstrap3-0.12.3.css
deleted file mode 100644
index 30d0ae4..0000000
--- a/pagure/static/selectize.bootstrap3-0.12.3.css
+++ /dev/null
@@ -1,407 +0,0 @@
-/**
- * selectize.bootstrap3.css (v0.12.3) - Bootstrap 3 Theme
- * Copyright (c) 2013–2015 Brian Reavis & contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
- * file except in compliance with the License. You may obtain a copy of the License at:
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
- * ANY KIND, either express or implied. See the License for the specific language
- * governing permissions and limitations under the License.
- *
- * @author Brian Reavis <brian@thirdroute.com>
- */
-.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {
-  visibility: visible !important;
-  background: #f2f2f2 !important;
-  background: rgba(0, 0, 0, 0.06) !important;
-  border: 0 none !important;
-  -webkit-box-shadow: inset 0 0 12px 4px #ffffff;
-  box-shadow: inset 0 0 12px 4px #ffffff;
-}
-.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {
-  content: '!';
-  visibility: hidden;
-}
-.selectize-control.plugin-drag_drop .ui-sortable-helper {
-  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
-}
-.selectize-dropdown-header {
-  position: relative;
-  padding: 3px 12px;
-  border-bottom: 1px solid #d0d0d0;
-  background: #f8f8f8;
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.selectize-dropdown-header-close {
-  position: absolute;
-  right: 12px;
-  top: 50%;
-  color: #333333;
-  opacity: 0.4;
-  margin-top: -12px;
-  line-height: 20px;
-  font-size: 20px !important;
-}
-.selectize-dropdown-header-close:hover {
-  color: #000000;
-}
-.selectize-dropdown.plugin-optgroup_columns .optgroup {
-  border-right: 1px solid #f2f2f2;
-  border-top: 0 none;
-  float: left;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {
-  border-right: 0 none;
-}
-.selectize-dropdown.plugin-optgroup_columns .optgroup:before {
-  display: none;
-}
-.selectize-dropdown.plugin-optgroup_columns .optgroup-header {
-  border-top: 0 none;
-}
-.selectize-control.plugin-remove_button [data-value] {
-  position: relative;
-  padding-right: 24px !important;
-}
-.selectize-control.plugin-remove_button [data-value] .remove {
-  z-index: 1;
-  /* fixes ie bug (see #392) */
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  width: 17px;
-  text-align: center;
-  font-weight: bold;
-  font-size: 12px;
-  color: inherit;
-  text-decoration: none;
-  vertical-align: middle;
-  display: inline-block;
-  padding: 1px 0 0 0;
-  border-left: 1px solid rgba(0, 0, 0, 0);
-  -webkit-border-radius: 0 2px 2px 0;
-  -moz-border-radius: 0 2px 2px 0;
-  border-radius: 0 2px 2px 0;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-.selectize-control.plugin-remove_button [data-value] .remove:hover {
-  background: rgba(0, 0, 0, 0.05);
-}
-.selectize-control.plugin-remove_button [data-value].active .remove {
-  border-left-color: rgba(0, 0, 0, 0);
-}
-.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {
-  background: none;
-}
-.selectize-control.plugin-remove_button .disabled [data-value] .remove {
-  border-left-color: rgba(77, 77, 77, 0);
-}
-.selectize-control.plugin-remove_button .remove-single {
-  position: absolute;
-  right: 28px;
-  top: 6px;
-  font-size: 23px;
-}
-.selectize-control {
-  position: relative;
-}
-.selectize-dropdown,
-.selectize-input,
-.selectize-input input {
-  color: #333333;
-  font-family: inherit;
-  font-size: inherit;
-  line-height: 20px;
-  -webkit-font-smoothing: inherit;
-}
-.selectize-input,
-.selectize-control.single .selectize-input.input-active {
-  background: #ffffff;
-  cursor: text;
-  display: inline-block;
-}
-.selectize-input {
-  border: 1px solid #cccccc;
-  padding: 6px 12px;
-  display: inline-block;
-  width: 100%;
-  overflow: hidden;
-  position: relative;
-  z-index: 1;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.selectize-control.multi .selectize-input.has-items {
-  padding: 5px 12px 2px;
-}
-.selectize-input.full {
-  background-color: #ffffff;
-}
-.selectize-input.disabled,
-.selectize-input.disabled * {
-  cursor: default !important;
-}
-.selectize-input.focus {
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
-}
-.selectize-input.dropdown-active {
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.selectize-input > * {
-  vertical-align: baseline;
-  display: -moz-inline-stack;
-  display: inline-block;
-  zoom: 1;
-  *display: inline;
-}
-.selectize-control.multi .selectize-input > div {
-  cursor: pointer;
-  margin: 0 3px 3px 0;
-  padding: 1px 3px;
-  background: #efefef;
-  color: #333333;
-  border: 0 solid rgba(0, 0, 0, 0);
-}
-.selectize-control.multi .selectize-input > div.active {
-  background: #428bca;
-  color: #ffffff;
-  border: 0 solid rgba(0, 0, 0, 0);
-}
-.selectize-control.multi .selectize-input.disabled > div,
-.selectize-control.multi .selectize-input.disabled > div.active {
-  color: #808080;
-  background: #ffffff;
-  border: 0 solid rgba(77, 77, 77, 0);
-}
-.selectize-input > input {
-  display: inline-block !important;
-  padding: 0 !important;
-  min-height: 0 !important;
-  max-height: none !important;
-  max-width: 100% !important;
-  margin: 0 !important;
-  text-indent: 0 !important;
-  border: 0 none !important;
-  background: none !important;
-  line-height: inherit !important;
-  -webkit-user-select: auto !important;
-  -webkit-box-shadow: none !important;
-  box-shadow: none !important;
-}
-.selectize-input > input::-ms-clear {
-  display: none;
-}
-.selectize-input > input:focus {
-  outline: none !important;
-}
-.selectize-input::after {
-  content: ' ';
-  display: block;
-  clear: left;
-}
-.selectize-input.dropdown-active::before {
-  content: ' ';
-  display: block;
-  position: absolute;
-  background: #ffffff;
-  height: 1px;
-  bottom: 0;
-  left: 0;
-  right: 0;
-}
-.selectize-dropdown {
-  position: absolute;
-  z-index: 10;
-  border: 1px solid #d0d0d0;
-  background: #ffffff;
-  margin: -1px 0 0 0;
-  border-top: 0 none;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
-  -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
-}
-.selectize-dropdown [data-selectable] {
-  cursor: pointer;
-  overflow: hidden;
-}
-.selectize-dropdown [data-selectable] .highlight {
-  background: rgba(255, 237, 40, 0.4);
-  -webkit-border-radius: 1px;
-  -moz-border-radius: 1px;
-  border-radius: 1px;
-}
-.selectize-dropdown [data-selectable],
-.selectize-dropdown .optgroup-header {
-  padding: 3px 12px;
-}
-.selectize-dropdown .optgroup:first-child .optgroup-header {
-  border-top: 0 none;
-}
-.selectize-dropdown .optgroup-header {
-  color: #777777;
-  background: #ffffff;
-  cursor: default;
-}
-.selectize-dropdown .active {
-  background-color: #f5f5f5;
-  color: #262626;
-}
-.selectize-dropdown .active.create {
-  color: #262626;
-}
-.selectize-dropdown .create {
-  color: rgba(51, 51, 51, 0.5);
-}
-.selectize-dropdown-content {
-  overflow-y: auto;
-  overflow-x: hidden;
-  max-height: 200px;
-}
-.selectize-control.single .selectize-input,
-.selectize-control.single .selectize-input input {
-  cursor: pointer;
-}
-.selectize-control.single .selectize-input.input-active,
-.selectize-control.single .selectize-input.input-active input {
-  cursor: text;
-}
-.selectize-control.single .selectize-input:after {
-  content: ' ';
-  display: block;
-  position: absolute;
-  top: 50%;
-  right: 17px;
-  margin-top: -3px;
-  width: 0;
-  height: 0;
-  border-style: solid;
-  border-width: 5px 5px 0 5px;
-  border-color: #333333 transparent transparent transparent;
-}
-.selectize-control.single .selectize-input.dropdown-active:after {
-  margin-top: -4px;
-  border-width: 0 5px 5px 5px;
-  border-color: transparent transparent #333333 transparent;
-}
-.selectize-control.rtl.single .selectize-input:after {
-  left: 17px;
-  right: auto;
-}
-.selectize-control.rtl .selectize-input > input {
-  margin: 0 4px 0 -2px !important;
-}
-.selectize-control .selectize-input.disabled {
-  opacity: 0.5;
-  background-color: #ffffff;
-}
-.selectize-dropdown,
-.selectize-dropdown.form-control {
-  height: auto;
-  padding: 0;
-  margin: 2px 0 0 0;
-  z-index: 1000;
-  background: #ffffff;
-  border: 1px solid #cccccc;
-  border: 1px solid rgba(0, 0, 0, 0.15);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
-}
-.selectize-dropdown .optgroup-header {
-  font-size: 12px;
-  line-height: 1.42857143;
-}
-.selectize-dropdown .optgroup:first-child:before {
-  display: none;
-}
-.selectize-dropdown .optgroup:before {
-  content: ' ';
-  display: block;
-  height: 1px;
-  margin: 9px 0;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  margin-left: -12px;
-  margin-right: -12px;
-}
-.selectize-dropdown-content {
-  padding: 5px 0;
-}
-.selectize-dropdown-header {
-  padding: 6px 12px;
-}
-.selectize-input {
-  min-height: 34px;
-}
-.selectize-input.dropdown-active {
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.selectize-input.dropdown-active::before {
-  display: none;
-}
-.selectize-input.focus {
-  border-color: #66afe9;
-  outline: 0;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
-}
-.has-error .selectize-input {
-  border-color: #a94442;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-.has-error .selectize-input:focus {
-  border-color: #843534;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
-}
-.selectize-control.multi .selectize-input.has-items {
-  padding-left: 9px;
-  padding-right: 9px;
-}
-.selectize-control.multi .selectize-input > div {
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.form-control.selectize-control {
-  padding: 0;
-  height: auto;
-  border: none;
-  background: none;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
diff --git a/pagure/static/selectize.bootstrap3.css b/pagure/static/selectize.bootstrap3.css
deleted file mode 120000
index ce39ccb..0000000
--- a/pagure/static/selectize.bootstrap3.css
+++ /dev/null
@@ -1 +0,0 @@
-selectize.bootstrap3-0.12.3.css
\ No newline at end of file
diff --git a/pagure/static/selectize.js b/pagure/static/selectize.js
deleted file mode 120000
index adf078f..0000000
--- a/pagure/static/selectize.js
+++ /dev/null
@@ -1 +0,0 @@
-selectize-0.12.3.js
\ No newline at end of file
diff --git a/pagure/static/selectize.min.js b/pagure/static/selectize.min.js
deleted file mode 120000
index dd41f29..0000000
--- a/pagure/static/selectize.min.js
+++ /dev/null
@@ -1 +0,0 @@
-selectize-0.12.3.min.js
\ No newline at end of file
diff --git a/pagure/static/stupidtable-1.0.1.js b/pagure/static/stupidtable-1.0.1.js
deleted file mode 100644
index 851ba4c..0000000
--- a/pagure/static/stupidtable-1.0.1.js
+++ /dev/null
@@ -1,135 +0,0 @@
-// Stupid jQuery table plugin.
-
-(function($) {
-  $.fn.stupidtable = function(sortFns) {
-    return this.each(function() {
-      var $table = $(this);
-      sortFns = sortFns || {};
-      sortFns = $.extend({}, $.fn.stupidtable.default_sort_fns, sortFns);
-      $table.data('sortFns', sortFns);
-
-      $table.on("click.stupidtable", "thead th", function() {
-          $(this).stupidsort();
-      });
-    });
-  };
-
-
-  // Expects $("#mytable").stupidtable() to have already been called.
-  // Call on a table header.
-  $.fn.stupidsort = function(force_direction){
-    var $this_th = $(this);
-    var th_index = 0; // we'll increment this soon
-    var dir = $.fn.stupidtable.dir;
-    var $table = $this_th.closest("table");
-    var datatype = $this_th.data("sort") || null;
-
-    // No datatype? Nothing to do.
-    if (datatype === null) {
-      return;
-    }
-
-    // Account for colspans
-    $this_th.parents("tr").find("th").slice(0, $(this).index()).each(function() {
-      var cols = $(this).attr("colspan") || 1;
-      th_index += parseInt(cols,10);
-    });
-
-    var sort_dir;
-    if(arguments.length == 1){
-        sort_dir = force_direction;
-    }
-    else{
-        sort_dir = force_direction || $this_th.data("sort-default") || dir.ASC;
-        if ($this_th.data("sort-dir"))
-           sort_dir = $this_th.data("sort-dir") === dir.ASC ? dir.DESC : dir.ASC;
-    }
-
-
-    $table.trigger("beforetablesort", {column: th_index, direction: sort_dir});
-
-    // More reliable method of forcing a redraw
-    $table.css("display");
-
-    // Run sorting asynchronously on a timout to force browser redraw after
-    // `beforetablesort` callback. Also avoids locking up the browser too much.
-    setTimeout(function() {
-      // Gather the elements for this column
-      var column = [];
-      var sortFns = $table.data('sortFns');
-      var sortMethod = sortFns[datatype];
-      var trs = $table.children("tbody").children("tr");
-
-      // Extract the data for the column that needs to be sorted and pair it up
-      // with the TR itself into a tuple. This way sorting the values will
-      // incidentally sort the trs.
-      trs.each(function(index,tr) {
-        var $e = $(tr).children().eq(th_index);
-        var sort_val = $e.data("sort-value");
-
-        // Store and read from the .data cache for display text only sorts
-        // instead of looking through the DOM every time
-        if(typeof(sort_val) === "undefined"){
-          var txt = $e.text();
-          $e.data('sort-value', txt);
-          sort_val = txt;
-        }
-        column.push([sort_val, tr]);
-      });
-
-      // Sort by the data-order-by value
-      column.sort(function(a, b) { return sortMethod(a[0], b[0]); });
-      if (sort_dir != dir.ASC)
-        column.reverse();
-
-      // Replace the content of tbody with the sorted rows. Strangely
-      // enough, .append accomplishes this for us.
-      trs = $.map(column, function(kv) { return kv[1]; });
-      $table.children("tbody").append(trs);
-
-      // Reset siblings
-      $table.find("th").data("sort-dir", null).removeClass("sorting-desc sorting-asc");
-      $this_th.data("sort-dir", sort_dir).addClass("sorting-"+sort_dir);
-
-      $table.trigger("aftertablesort", {column: th_index, direction: sort_dir});
-      $table.css("display");
-    }, 10);
-
-    return $this_th;
-  };
-
-  // Call on a sortable td to update its value in the sort. This should be the
-  // only mechanism used to update a cell's sort value. If your display value is
-  // different from your sort value, use jQuery's .text() or .html() to update
-  // the td contents, Assumes stupidtable has already been called for the table.
-  $.fn.updateSortVal = function(new_sort_val){
-  var $this_td = $(this);
-    if($this_td.is('[data-sort-value]')){
-      // For visual consistency with the .data cache
-      $this_td.attr('data-sort-value', new_sort_val);
-    }
-    $this_td.data("sort-value", new_sort_val);
-    return $this_td;
-  };
-
-  // ------------------------------------------------------------------
-  // Default settings
-  // ------------------------------------------------------------------
-  $.fn.stupidtable.dir = {ASC: "asc", DESC: "desc"};
-  $.fn.stupidtable.default_sort_fns = {
-    "int": function(a, b) {
-      return parseInt(a, 10) - parseInt(b, 10);
-    },
-    "float": function(a, b) {
-      return parseFloat(a) - parseFloat(b);
-    },
-    "string": function(a, b) {
-      return a.localeCompare(b);
-    },
-    "string-ins": function(a, b) {
-      a = a.toLocaleLowerCase();
-      b = b.toLocaleLowerCase();
-      return a.localeCompare(b);
-    }
-  };
-})(jQuery);
diff --git a/pagure/static/stupidtable-1.0.1.min.js b/pagure/static/stupidtable-1.0.1.min.js
deleted file mode 100644
index bc7bfd3..0000000
--- a/pagure/static/stupidtable-1.0.1.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-(function(c){c.fn.stupidtable=function(b){return this.each(function(){var a=c(this);b=b||{};b=c.extend({},c.fn.stupidtable.default_sort_fns,b);a.data("sortFns",b);a.on("click.stupidtable","thead th",function(){c(this).stupidsort()})})};c.fn.stupidsort=function(b){var a=c(this),g=0,f=c.fn.stupidtable.dir,e=a.closest("table"),k=a.data("sort")||null;if(null!==k){a.parents("tr").find("th").slice(0,c(this).index()).each(function(){var a=c(this).attr("colspan")||1;g+=parseInt(a,10)});var d;1==arguments.length?
-d=b:(d=b||a.data("sort-default")||f.ASC,a.data("sort-dir")&&(d=a.data("sort-dir")===f.ASC?f.DESC:f.ASC));e.trigger("beforetablesort",{column:g,direction:d});e.css("display");setTimeout(function(){var b=[],l=e.data("sortFns")[k],h=e.children("tbody").children("tr");h.each(function(a,e){var d=c(e).children().eq(g),f=d.data("sort-value");"undefined"===typeof f&&(f=d.text(),d.data("sort-value",f));b.push([f,e])});b.sort(function(a,b){return l(a[0],b[0])});d!=f.ASC&&b.reverse();h=c.map(b,function(a){return a[1]});
-e.children("tbody").append(h);e.find("th").data("sort-dir",null).removeClass("sorting-desc sorting-asc");a.data("sort-dir",d).addClass("sorting-"+d);e.trigger("aftertablesort",{column:g,direction:d});e.css("display")},10);return a}};c.fn.updateSortVal=function(b){var a=c(this);a.is("[data-sort-value]")&&a.attr("data-sort-value",b);a.data("sort-value",b);return a};c.fn.stupidtable.dir={ASC:"asc",DESC:"desc"};c.fn.stupidtable.default_sort_fns={"int":function(b,a){return parseInt(b,10)-parseInt(a,10)},
-"float":function(b,a){return parseFloat(b)-parseFloat(a)},string:function(b,a){return b.localeCompare(a)},"string-ins":function(b,a){b=b.toLocaleLowerCase();a=a.toLocaleLowerCase();return b.localeCompare(a)}}})(jQuery);
diff --git a/pagure/static/stupidtable.js b/pagure/static/stupidtable.js
deleted file mode 120000
index eb10d05..0000000
--- a/pagure/static/stupidtable.js
+++ /dev/null
@@ -1 +0,0 @@
-stupidtable-1.0.1.js
\ No newline at end of file
diff --git a/pagure/static/stupidtable.min.js b/pagure/static/stupidtable.min.js
deleted file mode 120000
index 8a5a092..0000000
--- a/pagure/static/stupidtable.min.js
+++ /dev/null
@@ -1 +0,0 @@
-stupidtable-1.0.1.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.css b/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.css
new file mode 100644
index 0000000..83e43fb
--- /dev/null
+++ b/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.css
@@ -0,0 +1,145 @@
+/* Cal-HeatMap CSS */
+
+.cal-heatmap-container {
+	display: block;
+}
+
+.graph
+{
+	font-family: "Lucida Grande", Lucida, Verdana, sans-serif;
+}
+
+.graph-label
+{
+	fill: #999;
+	font-size: 10px
+}
+
+.graph, .graph-legend rect {
+	shape-rendering: crispedges
+}
+
+.graph-rect
+{
+	fill: #ededed
+}
+
+.graph-subdomain-group rect:hover
+{
+	stroke: #000;
+	stroke-width: 1px
+}
+
+.subdomain-text {
+	font-size: 8px;
+	fill: #999;
+	pointer-events: none
+}
+
+.hover_cursor:hover {
+	cursor: pointer
+}
+
+.qi {
+	background-color: #999;
+	fill: #999
+}
+
+/*
+Remove comment to apply this style to date with value equal to 0
+.q0
+{
+	background-color: #fff;
+	fill: #fff;
+	stroke: #ededed
+}
+*/
+
+.q1
+{
+	background-color: #dae289;
+	fill: #dae289
+}
+
+.q2
+{
+	background-color: #cedb9c;
+	fill: #9cc069
+}
+
+.q3
+{
+	background-color: #b5cf6b;
+	fill: #669d45
+}
+
+.q4
+{
+	background-color: #637939;
+	fill: #637939
+}
+
+.q5
+{
+	background-color: #3b6427;
+	fill: #3b6427
+}
+
+rect.highlight
+{
+	stroke:#444;
+	stroke-width:1
+}
+
+text.highlight
+{
+	fill: #444
+}
+
+rect.now
+{
+	stroke: red
+}
+
+text.now
+{
+	fill: red;
+	font-weight: 800
+}
+
+.domain-background {
+	fill: none;
+	shape-rendering: crispedges
+}
+
+.ch-tooltip {
+	padding: 10px;
+	background: #222;
+	color: #bbb;
+	font-size: 12px;
+	line-height: 1.4;
+	width: 140px;
+	position: absolute;
+	z-index: 99999;
+	text-align: center;
+	border-radius: 2px;
+	box-shadow: 2px 2px 2px rgba(0,0,0,0.2);
+	display: none;
+	box-sizing: border-box;
+}
+
+.ch-tooltip::after{
+	position: absolute;
+	width: 0;
+	height: 0;
+	border-color: transparent;
+	border-style: solid;
+	content: "";
+	padding: 0;
+	display: "block";
+	bottom: -6px;
+	left: 50%;
+	margin-left: -6px;
+    border-width: 6px 6px 0;
+    border-top-color: #222;
+}
diff --git a/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.js b/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.js
new file mode 100644
index 0000000..9cd7626
--- /dev/null
+++ b/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.js
@@ -0,0 +1,3348 @@
+/*! cal-heatmap v3.3.10 (Tue Dec 03 2013 19:30:01)
+ *  ---------------------------------------------
+ *  Cal-Heatmap is a javascript module to create calendar heatmap to visualize time series data
+ *  https://github.com/kamisama/cal-heatmap
+ *  Licensed under the MIT license
+ *  Copyright 2013 Wan Qi Chen
+ */
+
+var CalHeatMap = function() {
+	"use strict";
+
+	var self = this;
+
+	this.allowedDataType = ["json", "csv", "tsv", "txt"];
+
+	// Default settings
+	this.options = {
+		// selector string of the container to append the graph to
+		// Accept any string value accepted by document.querySelector or CSS3
+		// or an Element object
+		itemSelector: "#cal-heatmap",
+
+		// Whether to paint the calendar on init()
+		// Used by testsuite to reduce testing time
+		paintOnLoad: true,
+
+		// ================================================
+		// DOMAIN
+		// ================================================
+
+		// Number of domain to display on the graph
+		range: 12,
+
+		// Size of each cell, in pixel
+		cellSize: 10,
+
+		// Padding between each cell, in pixel
+		cellPadding: 2,
+
+		// For rounded subdomain rectangles, in pixels
+		cellRadius: 0,
+
+		domainGutter: 2,
+
+		domainMargin: [0, 0, 0, 0],
+
+		domain: "hour",
+
+		subDomain: "min",
+
+		// Number of columns to split the subDomains to
+		// If not null, will takes precedence over rowLimit
+		colLimit: null,
+
+		// Number of rows to split the subDomains to
+		// Will be ignored if colLimit is not null
+		rowLimit: null,
+
+		// First day of the week is Monday
+		// 0 to start the week on Sunday
+		weekStartOnMonday: true,
+
+		// Start date of the graph
+		// @default now
+		start: new Date(),
+
+		minDate: null,
+
+		maxDate: null,
+
+		// URL, where to fetch the original datas
+		data: "",
+
+		dataType: this.allowedDataType[0],
+
+		// Whether to consider missing date:value from the datasource
+		// as equal to 0, or just leave them as missing
+		considerMissingDataAsZero: false,
+
+		// Load remote data on calendar creation
+		// When false, the calendar will be left empty
+		loadOnInit: true,
+
+		// Calendar orientation
+		// false: display domains side by side
+		// true : display domains one under the other
+		verticalOrientation: false,
+
+		// Domain dynamic width/height
+		// The width on a domain depends on the number of
+		domainDynamicDimension: true,
+
+		// Domain Label properties
+		label: {
+			// valid: top, right, bottom, left
+			position: "bottom",
+
+			// Valid: left, center, right
+			// Also valid are the direct svg values: start, middle, end
+			align: "center",
+
+			// By default, there is no margin/padding around the label
+			offset: {
+				x: 0,
+				y: 0
+			},
+
+			rotate: null,
+
+			// Used only on vertical orientation
+			width: 100,
+
+			// Used only on horizontal orientation
+			height: null
+		},
+
+		// ================================================
+		// LEGEND
+		// ================================================
+
+		// Threshold for the legend
+		legend: [10, 20, 30, 40],
+
+		// Whether to display the legend
+		displayLegend: true,
+
+		legendCellSize: 10,
+
+		legendCellPadding: 2,
+
+		legendMargin: [0, 0, 0, 0],
+
+		// Legend vertical position
+		// top: place legend above calendar
+		// bottom: place legend below the calendar
+		legendVerticalPosition: "bottom",
+
+		// Legend horizontal position
+		// accepted values: left, center, right
+		legendHorizontalPosition: "left",
+
+		// Legend rotation
+		// accepted values: horizontal, vertical
+		legendOrientation: "horizontal",
+
+		// Objects holding all the heatmap different colors
+		// null to disable, and use the default css styles
+		//
+		// Examples:
+		// legendColors: {
+		//		min: "green",
+		//		max: "red",
+		//		empty: "#ffffff",
+		//		base: "grey",
+		//		overflow: "red"
+		// }
+		legendColors: null,
+
+		// ================================================
+		// HIGHLIGHT
+		// ================================================
+
+		// List of dates to highlight
+		// Valid values:
+		// - []: don't highlight anything
+		// - "now": highlight the current date
+		// - an array of Date objects: highlight the specified dates
+		highlight: [],
+
+		// ================================================
+		// TEXT FORMATTING / i18n
+		// ================================================
+
+		// Name of the items to represent in the calendar
+		itemName: ["item", "items"],
+
+		// Formatting of the domain label
+		// @default: null, will use the formatting according to domain type
+		// Accept a string used as specifier by d3.time.format()
+		// or a function
+		//
+		// Refer to https://github.com/mbostock/d3/wiki/Time-Formatting
+		// for accepted date formatting used by d3.time.format()
+		domainLabelFormat: null,
+
+		// Formatting of the title displayed when hovering a subDomain cell
+		subDomainTitleFormat: {
+			empty: "{date}",
+			filled: "{count} {name} {connector} {date}"
+		},
+
+		// Formatting of the {date} used in subDomainTitleFormat
+		// @default: null, will use the formatting according to subDomain type
+		// Accept a string used as specifier by d3.time.format()
+		// or a function
+		//
+		// Refer to https://github.com/mbostock/d3/wiki/Time-Formatting
+		// for accepted date formatting used by d3.time.format()
+		subDomainDateFormat: null,
+
+		// Formatting of the text inside each subDomain cell
+		// @default: null, no text
+		// Accept a string used as specifier by d3.time.format()
+		// or a function
+		//
+		// Refer to https://github.com/mbostock/d3/wiki/Time-Formatting
+		// for accepted date formatting used by d3.time.format()
+		subDomainTextFormat: null,
+
+		// Formatting of the title displayed when hovering a legend cell
+		legendTitleFormat: {
+			lower: "less than {min} {name}",
+			inner: "between {down} and {up} {name}",
+			upper: "more than {max} {name}"
+		},
+
+		// Animation duration, in ms
+		animationDuration: 500,
+
+		nextSelector: false,
+
+		previousSelector: false,
+
+		itemNamespace: "cal-heatmap",
+
+		tooltip: false,
+
+		// ================================================
+		// EVENTS CALLBACK
+		// ================================================
+
+		// Callback when clicking on a time block
+		onClick: null,
+
+		// Callback after painting the empty calendar
+		// Can be used to trigger an API call, once the calendar is ready to be filled
+		afterLoad: null,
+
+		// Callback after loading the next domain in the calendar
+		afterLoadNextDomain: null,
+
+		// Callback after loading the previous domain in the calendar
+		afterLoadPreviousDomain: null,
+
+		// Callback after finishing all actions on the calendar
+		onComplete: null,
+
+		// Callback after fetching the datas, but before applying them to the calendar
+		// Used mainly to convert the datas if they're not formatted like expected
+		// Takes the fetched "data" object as argument, must return a json object
+		// formatted like {timestamp:count, timestamp2:count2},
+		afterLoadData: function(data) { return data; },
+
+		// Callback triggered after calling next().
+		// The `status` argument is equal to true if there is no
+		// more next domain to load
+		//
+		// This callback is also executed once, after calling previous(),
+		// only when the max domain is reached
+		onMaxDomainReached: null,
+
+		// Callback triggered after calling previous().
+		// The `status` argument is equal to true if there is no
+		// more previous domain to load
+		//
+		// This callback is also executed once, after calling next(),
+		// only when the min domain is reached
+		onMinDomainReached: null
+	};
+
+	this._domainType = {
+		"min": {
+			name: "minute",
+			level: 10,
+			maxItemNumber: 60,
+			defaultRowNumber: 10,
+			defaultColumnNumber: 6,
+			row: function(d) { return self.getSubDomainRowNumber(d); },
+			column: function(d) { return self.getSubDomainColumnNumber(d); },
+			position: {
+				x: function(d) { return Math.floor(d.getMinutes() / self._domainType.min.row(d)); },
+				y: function(d) { return d.getMinutes() % self._domainType.min.row(d); }
+			},
+			format: {
+				date: "%H:%M, %A %B %-e, %Y",
+				legend: "",
+				connector: "at"
+			},
+			extractUnit: function(d) {
+				return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()).getTime();
+			}
+		},
+		"hour": {
+			name: "hour",
+			level: 20,
+			maxItemNumber: function(d) {
+				switch(self.options.domain) {
+				case "day":
+					return 24;
+				case "week":
+					return 24 * 7;
+				case "month":
+					return 24 * (self.options.domainDynamicDimension ? self.getDayCountInMonth(d): 31);
+				}
+			},
+			defaultRowNumber: 6,
+			defaultColumnNumber: function(d) {
+				switch(self.options.domain) {
+				case "day":
+					return 4;
+				case "week":
+					return 28;
+				case "month":
+					return self.options.domainDynamicDimension ? self.getDayCountInMonth(d): 31;
+				}
+			},
+			row: function(d) { return self.getSubDomainRowNumber(d); },
+			column: function(d) { return self.getSubDomainColumnNumber(d); },
+			position: {
+				x: function(d) {
+					if (self.options.domain === "month") {
+						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
+							return Math.floor((d.getHours() + (d.getDate()-1)*24) / self._domainType.hour.row(d));
+						}
+						return Math.floor(d.getHours() / self._domainType.hour.row(d)) + (d.getDate()-1)*4;
+					} else if (self.options.domain === "week") {
+						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
+							return Math.floor((d.getHours() + self.getWeekDay(d)*24) / self._domainType.hour.row(d));
+						}
+						return Math.floor(d.getHours() / self._domainType.hour.row(d)) + self.getWeekDay(d)*4;
+					}
+					return Math.floor(d.getHours() / self._domainType.hour.row(d));
+				},
+				y: function(d) {
+					var p = d.getHours();
+					if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
+						switch(self.options.domain) {
+						case "month":
+							p += (d.getDate()-1) * 24;
+							break;
+						case "week":
+							p += self.getWeekDay(d) * 24;
+							break;
+						}
+					}
+					return Math.floor(p % self._domainType.hour.row(d));
+				}
+			},
+			format: {
+				date: "%Hh, %A %B %-e, %Y",
+				legend: "%H:00",
+				connector: "at"
+			},
+			extractUnit: function(d) {
+				return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours()).getTime();
+			}
+		},
+		"day": {
+			name: "day",
+			level: 30,
+			maxItemNumber: function(d) {
+				switch(self.options.domain) {
+				case "week":
+					return 7;
+				case "month":
+					return self.options.domainDynamicDimension ? self.getDayCountInMonth(d) : 31;
+				case "year":
+					return self.options.domainDynamicDimension ? self.getDayCountInYear(d) : 366;
+				}
+			},
+			defaultColumnNumber: function(d) {
+				d = new Date(d);
+				switch(self.options.domain) {
+				case "week":
+					return 1;
+				case "month":
+					return (self.options.domainDynamicDimension && !self.options.verticalOrientation) ? (self.getWeekNumber(new Date(d.getFullYear(), d.getMonth()+1, 0)) - self.getWeekNumber(d) + 1): 6;
+				case "year":
+					return (self.options.domainDynamicDimension ? (self.getWeekNumber(new Date(d.getFullYear(), 11, 31)) - self.getWeekNumber(new Date(d.getFullYear(), 0)) + 1): 54);
+				}
+			},
+			defaultRowNumber: 7,
+			row: function(d) { return self.getSubDomainRowNumber(d); },
+			column: function(d) { return self.getSubDomainColumnNumber(d); },
+			position: {
+				x: function(d) {
+					switch(self.options.domain) {
+					case "week":
+						return Math.floor(self.getWeekDay(d) / self._domainType.day.row(d));
+					case "month":
+						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
+							return Math.floor((d.getDate() - 1)/ self._domainType.day.row(d));
+						}
+						return self.getWeekNumber(d) - self.getWeekNumber(new Date(d.getFullYear(), d.getMonth()));
+					case "year":
+						if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
+							return Math.floor((self.getDayOfYear(d) - 1) / self._domainType.day.row(d));
+						}
+						return self.getWeekNumber(d);
+					}
+				},
+				y: function(d) {
+					var p = self.getWeekDay(d);
+					if (self.options.colLimit > 0 || self.options.rowLimit > 0) {
+						switch(self.options.domain) {
+						case "year":
+							p = self.getDayOfYear(d) - 1;
+							break;
+						case "week":
+							p = self.getWeekDay(d);
+							break;
+						case "month":
+							p = d.getDate() - 1;
+							break;
+						}
+					}
+					return Math.floor(p % self._domainType.day.row(d));
+				}
+			},
+			format: {
+				date: "%A %B %-e, %Y",
+				legend: "%e %b",
+				connector: "on"
+			},
+			extractUnit: function(d) {
+				return new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();
+			}
+		},
+		"week": {
+			name: "week",
+			level: 40,
+			maxItemNumber: 54,
+			defaultColumnNumber: function(d) {
+				d = new Date(d);
+				switch(self.options.domain) {
+				case "year":
+					return self._domainType.week.maxItemNumber;
+				case "month":
+					return self.getWeekNumber(new Date(d.getFullYear(), d.getMonth()+1, 0)) - self.getWeekNumber(d);
+				}
+			},
+			defaultRowNumber: 1,
+			row: function(d) { return self.getSubDomainRowNumber(d); },
+			column: function(d) { return self.getSubDomainColumnNumber(d); },
+			position: {
+				x: function(d) {
+					switch(self.options.domain) {
+					case "year":
+						return Math.floor(self.getWeekNumber(d) / self._domainType.week.row(d));
+					case "month":
+						return Math.floor(self.getMonthWeekNumber(d) / self._domainType.week.row(d));
+					}
+				},
+				y: function(d) {
+					return self.getWeekNumber(d) % self._domainType.week.row(d);
+				}
+			},
+			format: {
+				date: "%B Week #%W",
+				legend: "%B Week #%W",
+				connector: "on"
+			},
+			extractUnit: function(d) {
+				var dt = new Date(d.getFullYear(), d.getMonth(), d.getDate());
+				// According to ISO-8601, week number computation are based on week starting on Monday
+				var weekDay = dt.getDay()-1;
+				if (weekDay < 0) {
+					weekDay = 6;
+				}
+				dt.setDate(dt.getDate() - weekDay);
+				return dt.getTime();
+			}
+		},
+		"month": {
+			name: "month",
+			level: 50,
+			maxItemNumber: 12,
+			defaultColumnNumber: 12,
+			defaultRowNumber: 1,
+			row: function() { return self.getSubDomainRowNumber(); },
+			column: function() { return self.getSubDomainColumnNumber(); },
+			position: {
+				x: function(d) { return Math.floor(d.getMonth() / self._domainType.month.row(d)); },
+				y: function(d) { return d.getMonth() % self._domainType.month.row(d); }
+			},
+			format: {
+				date: "%B %Y",
+				legend: "%B",
+				connector: "on"
+			},
+			extractUnit: function(d) {
+				return new Date(d.getFullYear(), d.getMonth()).getTime();
+			}
+		},
+		"year": {
+			name: "year",
+			level: 60,
+			row: function() { return self.options.rowLimit || 1; },
+			column: function() { return self.options.colLimit || 1; },
+			position: {
+				x: function() { return 1; },
+				y: function() { return 1; }
+			},
+			format: {
+				date: "%Y",
+				legend: "%Y",
+				connector: "on"
+			},
+			extractUnit: function(d) {
+				return new Date(d.getFullYear()).getTime();
+			}
+		}
+	};
+
+	for (var type in this._domainType) {
+		if (this._domainType.hasOwnProperty(type)) {
+			var d = this._domainType[type];
+			this._domainType["x_" + type] = {
+				name: "x_" + type,
+				level: d.type,
+				maxItemNumber: d.maxItemNumber,
+				defaultRowNumber: d.defaultRowNumber,
+				defaultColumnNumber: d.defaultColumnNumber,
+				row: d.column,
+				column: d.row,
+				position: {
+					x: d.position.y,
+					y: d.position.x,
+				},
+				format: d.format,
+				extractUnit: d.extractUnit
+			};
+		}
+	}
+
+	// Record the address of the last inserted domain when browsing
+	this.lastInsertedSvg = null;
+
+	this._completed = false;
+
+	// Record all the valid domains
+	// Each domain value is a timestamp in milliseconds
+	this._domains = d3.map();
+
+	this.graphDim = {
+		width: 0,
+		height: 0
+	};
+
+	this.legendDim = {
+		width: 0,
+		height: 0
+	};
+
+	this.NAVIGATE_LEFT = 1;
+	this.NAVIGATE_RIGHT = 2;
+
+	// Various update mode when using the update() API
+	this.RESET_ALL_ON_UPDATE = 0;
+	this.RESET_SINGLE_ON_UPDATE = 1;
+	this.APPEND_ON_UPDATE = 2;
+
+	this.DEFAULT_LEGEND_MARGIN = 10;
+
+	this.root = null;
+	this.tooltip = null;
+
+	this._maxDomainReached = false;
+	this._minDomainReached = false;
+
+	this.domainPosition = new DomainPosition();
+	this.Legend = null;
+	this.legendScale = null;
+
+	// List of domains that are skipped because of DST
+	// All times belonging to these domains should be re-assigned to the previous domain
+	this.DSTDomain = [];
+
+	/**
+	 * Display the graph for the first time
+	 * @return bool True if the calendar is created
+	 */
+	this._init = function() {
+
+		self.getDomain(self.options.start).map(function(d) { return d.getTime(); }).map(function(d) {
+			self._domains.set(d, self.getSubDomain(d).map(function(d) { return {t: self._domainType[self.options.subDomain].extractUnit(d), v: null}; }));
+		});
+
+		self.root = d3.select(self.options.itemSelector).append("svg").attr("class", "cal-heatmap-container");
+
+		self.tooltip = d3.select(self.options.itemSelector)
+			.attr("style", function() {
+				var current = d3.select(self.options.itemSelector).attr("style");
+				return (current !== null ? current : "") + "position:relative;";
+			})
+			.append("div")
+			.attr("class", "ch-tooltip")
+		;
+
+		self.root.attr("x", 0).attr("y", 0).append("svg").attr("class", "graph");
+
+		self.Legend = new Legend(self);
+
+		if (self.options.paintOnLoad) {
+			_initCalendar();
+		}
+
+		return true;
+	};
+
+	function _initCalendar() {
+		self.verticalDomainLabel = (self.options.label.position === "top" || self.options.label.position === "bottom");
+
+		self.domainVerticalLabelHeight = self.options.label.height === null ? Math.max(25, self.options.cellSize*2): self.options.label.height;
+		self.domainHorizontalLabelWidth = 0;
+
+		if (self.options.domainLabelFormat === "" && self.options.label.height === null) {
+			self.domainVerticalLabelHeight = 0;
+		}
+
+		if (!self.verticalDomainLabel) {
+			self.domainVerticalLabelHeight = 0;
+			self.domainHorizontalLabelWidth = self.options.label.width;
+		}
+
+		self.paint();
+
+		// =========================================================================//
+		// ATTACHING DOMAIN NAVIGATION EVENT										//
+		// =========================================================================//
+		if (self.options.nextSelector !== false) {
+			d3.select(self.options.nextSelector).on("click." + self.options.itemNamespace, function() {
+				d3.event.preventDefault();
+				return self.loadNextDomain(1);
+			});
+		}
+
+		if (self.options.previousSelector !== false) {
+			d3.select(self.options.previousSelector).on("click." + self.options.itemNamespace, function() {
+				d3.event.preventDefault();
+				return self.loadPreviousDomain(1);
+			});
+		}
+
+		self.Legend.redraw(self.graphDim.width - self.options.domainGutter - self.options.cellPadding);
+		self.afterLoad();
+
+		var domains = self.getDomainKeys();
+
+		// Fill the graph with some datas
+		if (self.options.loadOnInit) {
+			self.getDatas(
+				self.options.data,
+				new Date(domains[0]),
+				self.getSubDomain(domains[domains.length-1]).pop(),
+				function() {
+					self.fill();
+					self.onComplete();
+				}
+			);
+		} else {
+			self.onComplete();
+		}
+
+		self.checkIfMinDomainIsReached(domains[0]);
+		self.checkIfMaxDomainIsReached(self.getNextDomain().getTime());
+	}
+
+	// Return the width of the domain block, without the domain gutter
+	// @param int d Domain start timestamp
+	function w(d, outer) {
+		var width = self.options.cellSize*self._domainType[self.options.subDomain].column(d) + self.options.cellPadding*self._domainType[self.options.subDomain].column(d);
+		if (arguments.length === 2 && outer === true) {
+			return width += self.domainHorizontalLabelWidth + self.options.domainGutter + self.options.domainMargin[1] + self.options.domainMargin[3];
+		}
+		return width;
+	}
+
+	// Return the height of the domain block, without the domain gutter
+	function h(d, outer) {
+		var height = self.options.cellSize*self._domainType[self.options.subDomain].row(d) + self.options.cellPadding*self._domainType[self.options.subDomain].row(d);
+		if (arguments.length === 2 && outer === true) {
+			height += self.options.domainGutter + self.domainVerticalLabelHeight + self.options.domainMargin[0] + self.options.domainMargin[2];
+		}
+		return height;
+	}
+
+	/**
+	 *
+	 *
+	 * @param int navigationDir
+	 */
+	this.paint = function(navigationDir) {
+
+		var options = self.options;
+
+		if (arguments.length === 0) {
+			navigationDir = false;
+		}
+
+		// Painting all the domains
+		var domainSvg = self.root.select(".graph")
+			.selectAll(".graph-domain")
+			.data(
+				function() {
+					var data = self.getDomainKeys();
+					return navigationDir === self.NAVIGATE_LEFT ? data.reverse(): data;
+				},
+				function(d) { return d; }
+			)
+		;
+
+		var enteringDomainDim = 0;
+		var exitingDomainDim = 0;
+
+		// =========================================================================//
+		// PAINTING DOMAIN															//
+		// =========================================================================//
+
+		var svg = domainSvg
+			.enter()
+			.append("svg")
+			.attr("width", function(d) {
+				return w(d, true);
+			})
+			.attr("height", function(d) {
+				return h(d, true);
+			})
+			.attr("x", function(d) {
+				if (options.verticalOrientation) {
+					self.graphDim.width = Math.max(self.graphDim.width, w(d, true));
+					return 0;
+				} else {
+					return getDomainPosition(d, self.graphDim, "width", w(d, true));
+				}
+			})
+			.attr("y", function(d) {
+				if (options.verticalOrientation) {
+					return getDomainPosition(d, self.graphDim, "height", h(d, true));
+				} else {
+					self.graphDim.height = Math.max(self.graphDim.height, h(d, true));
+					return 0;
+				}
+			})
+			.attr("class", function(d) {
+				var classname = "graph-domain";
+				var date = new Date(d);
+				switch(options.domain) {
+				case "hour":
+					classname += " h_" + date.getHours();
+					/* falls through */
+				case "day":
+					classname += " d_" + date.getDate() + " dy_" + date.getDay();
+					/* falls through */
+				case "week":
+					classname += " w_" + self.getWeekNumber(date);
+					/* falls through */
+				case "month":
+					classname += " m_" + (date.getMonth() + 1);
+					/* falls through */
+				case "year":
+					classname += " y_" + date.getFullYear();
+				}
+				return classname;
+			})
+		;
+
+		self.lastInsertedSvg = svg;
+
+		function getDomainPosition(domainIndex, graphDim, axis, domainDim) {
+			var tmp = 0;
+			switch(navigationDir) {
+			case false:
+				tmp = graphDim[axis];
+
+				graphDim[axis] += domainDim;
+				self.domainPosition.setPosition(domainIndex, tmp);
+				return tmp;
+
+			case self.NAVIGATE_RIGHT:
+				self.domainPosition.setPosition(domainIndex, graphDim[axis]);
+
+				enteringDomainDim = domainDim;
+				exitingDomainDim = self.domainPosition.getPositionFromIndex(1);
+
+				self.domainPosition.shiftRightBy(exitingDomainDim);
+				return graphDim[axis];
+
+			case self.NAVIGATE_LEFT:
+				tmp = -domainDim;
+
+				enteringDomainDim = -tmp;
+				exitingDomainDim = graphDim[axis] - self.domainPosition.getLast();
+
+				self.domainPosition.setPosition(domainIndex, tmp);
+				self.domainPosition.shiftLeftBy(enteringDomainDim);
+				return tmp;
+			}
+		}
+
+		svg.append("rect")
+			.attr("width", function(d) { return w(d, true) - options.domainGutter - options.cellPadding; })
+			.attr("height", function(d) { return h(d, true) - options.domainGutter - options.cellPadding; })
+			.attr("class", "domain-background")
+		;
+
+		// =========================================================================//
+		// PAINTING SUBDOMAINS														//
+		// =========================================================================//
+		var subDomainSvgGroup = svg.append("svg")
+			.attr("x", function() {
+				if (options.label.position === "left") {
+					return self.domainHorizontalLabelWidth + options.domainMargin[3];
+				} else {
+					return options.domainMargin[3];
+				}
+			})
+			.attr("y", function() {
+				if (options.label.position === "top") {
+					return self.domainVerticalLabelHeight + options.domainMargin[0];
+				} else {
+					return options.domainMargin[0];
+				}
+			})
+			.attr("class", "graph-subdomain-group")
+		;
+
+		var rect = subDomainSvgGroup
+			.selectAll("g")
+			.data(function(d) { return self._domains.get(d); })
+			.enter()
+			.append("g")
+		;
+
+		rect
+			.append("rect")
+			.attr("class", function(d) {
+				return "graph-rect" + self.getHighlightClassName(d.t) + (options.onClick !== null ? " hover_cursor": "");
+			})
+			.attr("width", options.cellSize)
+			.attr("height", options.cellSize)
+			.attr("x", function(d) { return self.positionSubDomainX(d.t); })
+			.attr("y", function(d) { return self.positionSubDomainY(d.t); })
+			.on("click", function(d) {
+				if (options.onClick !== null) {
+					return self.onClick(new Date(d.t), d.v);
+				}
+			})
+			.call(function(selection) {
+				if (options.cellRadius > 0) {
+					selection
+						.attr("rx", options.cellRadius)
+						.attr("ry", options.cellRadius)
+					;
+				}
+
+				if (self.legendScale !== null && options.legendColors !== null && options.legendColors.hasOwnProperty("base")) {
+					selection.attr("fill", options.legendColors.base);
+				}
+
+				if (options.tooltip) {
+					selection.on("mouseover", function(d) {
+						var domainNode = this.parentNode.parentNode.parentNode;
+
+						self.tooltip
+						.html(self.getSubDomainTitle(d))
+						.attr("style", "display: block;")
+						;
+
+						self.tooltip.attr("style",
+							"display: block; " +
+							"left: " + (self.positionSubDomainX(d.t) - self.tooltip[0][0].offsetWidth/2 + options.cellSize/2 + parseInt(domainNode.getAttribute("x"), 10)) + "px; " +
+							"top: " + (self.positionSubDomainY(d.t) - self.tooltip[0][0].offsetHeight - options.cellSize/2 + parseInt(domainNode.getAttribute("y"), 10)) + "px;")
+						;
+					});
+
+					selection.on("mouseout", function() {
+						self.tooltip
+						.attr("style", "display:none")
+						.html("");
+					});
+				}
+			})
+		;
+
+		// Appending a title to each subdomain
+		if (!options.tooltip) {
+			rect.append("title").text(function(d){ return self.formatDate(new Date(d.t), options.subDomainDateFormat); });
+		}
+
+		// =========================================================================//
+		// PAINTING LABEL															//
+		// =========================================================================//
+		if (options.domainLabelFormat !== "") {
+			svg.append("text")
+				.attr("class", "graph-label")
+				.attr("y", function(d) {
+					var y = options.domainMargin[0];
+					switch(options.label.position) {
+					case "top":
+						y += self.domainVerticalLabelHeight/2;
+						break;
+					case "bottom":
+						y += h(d) + self.domainVerticalLabelHeight/2;
+					}
+
+					return y + options.label.offset.y *
+					(
+						((options.label.rotate === "right" && options.label.position === "right") ||
+						(options.label.rotate === "left" && options.label.position === "left")) ?
+						-1: 1
+					);
+				})
+				.attr("x", function(d){
+					var x = options.domainMargin[3];
+					switch(options.label.position) {
+					case "right":
+						x += w(d);
+						break;
+					case "bottom":
+					case "top":
+						x += w(d)/2;
+					}
+
+					if (options.label.align === "right") {
+						return x + self.domainHorizontalLabelWidth - options.label.offset.x *
+						(options.label.rotate === "right" ? -1: 1);
+					}
+					return x + options.label.offset.x;
+
+				})
+				.attr("text-anchor", function() {
+					switch(options.label.align) {
+					case "start":
+					case "left":
+						return "start";
+					case "end":
+					case "right":
+						return "end";
+					default:
+						return "middle";
+					}
+				})
+				.attr("dominant-baseline", function() { return self.verticalDomainLabel ? "middle": "top"; })
+				.text(function(d) { return self.formatDate(new Date(d), options.domainLabelFormat); })
+				.call(domainRotate)
+			;
+		}
+
+		function domainRotate(selection) {
+			switch (options.label.rotate) {
+			case "right":
+				selection
+				.attr("transform", function(d) {
+					var s = "rotate(90), ";
+					switch(options.label.position) {
+					case "right":
+						s += "translate(-" + w(d) + " , -" + w(d) + ")";
+						break;
+					case "left":
+						s += "translate(0, -" + self.domainHorizontalLabelWidth + ")";
+						break;
+					}
+
+					return s;
+				});
+				break;
+			case "left":
+				selection
+				.attr("transform", function(d) {
+					var s = "rotate(270), ";
+					switch(options.label.position) {
+					case "right":
+						s += "translate(-" + (w(d) + self.domainHorizontalLabelWidth) + " , " + w(d) + ")";
+						break;
+					case "left":
+						s += "translate(-" + (self.domainHorizontalLabelWidth) + " , " + self.domainHorizontalLabelWidth + ")";
+						break;
+					}
+
+					return s;
+				});
+				break;
+			}
+		}
+
+		// =========================================================================//
+		// PAINTING DOMAIN SUBDOMAIN CONTENT										//
+		// =========================================================================//
+		if (options.subDomainTextFormat !== null) {
+			rect
+				.append("text")
+				.attr("class", function(d) { return "subdomain-text" + self.getHighlightClassName(d.t); })
+				.attr("x", function(d) { return self.positionSubDomainX(d.t) + options.cellSize/2; })
+				.attr("y", function(d) { return self.positionSubDomainY(d.t) + options.cellSize/2; })
+				.attr("text-anchor", "middle")
+				.attr("dominant-baseline", "central")
+				.text(function(d){ return self.formatDate(new Date(d.t), options.subDomainTextFormat); })
+			;
+		}
+
+		// =========================================================================//
+		// ANIMATION																//
+		// =========================================================================//
+
+		if (navigationDir !== false) {
+			domainSvg.transition().duration(options.animationDuration)
+				.attr("x", function(d){
+					return options.verticalOrientation ? 0: self.domainPosition.getPosition(d);
+				})
+				.attr("y", function(d){
+					return options.verticalOrientation? self.domainPosition.getPosition(d): 0;
+				})
+			;
+		}
+
+		var tempWidth = self.graphDim.width;
+		var tempHeight = self.graphDim.height;
+
+		if (options.verticalOrientation) {
+			self.graphDim.height += enteringDomainDim - exitingDomainDim;
+		} else {
+			self.graphDim.width += enteringDomainDim - exitingDomainDim;
+		}
+
+		// At the time of exit, domainsWidth and domainsHeight already automatically shifted
+		domainSvg.exit().transition().duration(options.animationDuration)
+			.attr("x", function(d){
+				if (options.verticalOrientation) {
+					return 0;
+				} else {
+					switch(navigationDir) {
+					case self.NAVIGATE_LEFT:
+						return Math.min(self.graphDim.width, tempWidth);
+					case self.NAVIGATE_RIGHT:
+						return -w(d, true);
+					}
+				}
+			})
+			.attr("y", function(d){
+				if (options.verticalOrientation) {
+					switch(navigationDir) {
+					case self.NAVIGATE_LEFT:
+						return Math.min(self.graphDim.height, tempHeight);
+					case self.NAVIGATE_RIGHT:
+						return -h(d, true);
+					}
+				} else {
+					return 0;
+				}
+			})
+			.remove()
+		;
+
+		// Resize the root container
+		self.resize();
+	};
+};
+
+CalHeatMap.prototype = {
+
+	/**
+	 * Validate and merge user settings with default settings
+	 *
+	 * @param  {object} settings User settings
+	 * @return {bool} False if settings contains error
+	 */
+	/* jshint maxstatements:false */
+	init: function(settings) {
+		"use strict";
+
+		var parent = this;
+
+		var options = parent.options = mergeRecursive(parent.options, settings);
+
+		// Fatal errors
+		// Stop script execution on error
+		validateDomainType();
+		validateSelector(options.itemSelector, false, "itemSelector");
+
+		if (parent.allowedDataType.indexOf(options.dataType) === -1) {
+			throw new Error("The data type '" + options.dataType + "' is not valid data type");
+		}
+
+		if (d3.select(options.itemSelector)[0][0] === null) {
+			throw new Error("The node '" + options.itemSelector + "' specified in itemSelector does not exists");
+		}
+
+		try {
+			validateSelector(options.nextSelector, true, "nextSelector");
+			validateSelector(options.previousSelector, true, "previousSelector");
+		} catch(error) {
+			console.log(error.message);
+			return false;
+		}
+
+		// If other settings contains error, will fallback to default
+
+		if (!settings.hasOwnProperty("subDomain")) {
+			this.options.subDomain = getOptimalSubDomain(settings.domain);
+		}
+
+		if (typeof options.itemNamespace !== "string" || options.itemNamespace === "") {
+			console.log("itemNamespace can not be empty, falling back to cal-heatmap");
+			options.itemNamespace = "cal-heatmap";
+		}
+
+		// Don't touch these settings
+		var s = ["data", "onComplete", "onClick", "afterLoad", "afterLoadData", "afterLoadPreviousDomain", "afterLoadNextDomain"];
+
+		for (var k in s) {
+			if (settings.hasOwnProperty(s[k])) {
+				options[s[k]] = settings[s[k]];
+			}
+		}
+
+		options.subDomainDateFormat = (typeof options.subDomainDateFormat === "string" || typeof options.subDomainDateFormat === "function" ? options.subDomainDateFormat : this._domainType[options.subDomain].format.date);
+		options.domainLabelFormat = (typeof options.domainLabelFormat === "string" || typeof options.domainLabelFormat === "function" ? options.domainLabelFormat : this._domainType[options.domain].format.legend);
+		options.subDomainTextFormat = ((typeof options.subDomainTextFormat === "string" && options.subDomainTextFormat !== "") || typeof options.subDomainTextFormat === "function" ? options.subDomainTextFormat : null);
+		options.domainMargin = expandMarginSetting(options.domainMargin);
+		options.legendMargin = expandMarginSetting(options.legendMargin);
+		options.highlight = parent.expandDateSetting(options.highlight);
+		options.itemName = expandItemName(options.itemName);
+		options.colLimit = parseColLimit(options.colLimit);
+		options.rowLimit = parseRowLimit(options.rowLimit);
+		if (!settings.hasOwnProperty("legendMargin")) {
+			autoAddLegendMargin();
+		}
+		autoAlignLabel();
+
+		/**
+		 * Validate that a queryString is valid
+		 *
+		 * @param  {Element|string|bool} selector   The queryString to test
+		 * @param  {bool}	canBeFalse	Whether false is an accepted and valid value
+		 * @param  {string} name		Name of the tested selector
+		 * @throws {Error}				If the selector is not valid
+		 * @return {bool}				True if the selector is a valid queryString
+		 */
+		function validateSelector(selector, canBeFalse, name) {
+			if (((canBeFalse && selector === false) || selector instanceof Element || typeof selector === "string") && selector !== "") {
+				return true;
+			}
+			throw new Error("The " + name + " is not valid");
+		}
+
+		/**
+		 * Return the optimal subDomain for the specified domain
+		 *
+		 * @param  {string} domain a domain name
+		 * @return {string}        the subDomain name
+		 */
+		function getOptimalSubDomain(domain) {
+			switch(domain) {
+			case "year":
+				return "month";
+			case "month":
+				return "day";
+			case "week":
+				return "day";
+			case "day":
+				return "hour";
+			default:
+				return "min";
+			}
+		}
+
+		/**
+		 * Ensure that the domain and subdomain are valid
+		 *
+		 * @throw {Error} when domain or subdomain are not valid
+		 * @return {bool} True if domain and subdomain are valid and compatible
+		 */
+		function validateDomainType() {
+			if (!parent._domainType.hasOwnProperty(options.domain) || options.domain === "min" || options.domain.substring(0, 2) === "x_") {
+				throw new Error("The domain '" + options.domain + "' is not valid");
+			}
+
+			if (!parent._domainType.hasOwnProperty(options.subDomain) || options.subDomain === "year") {
+				throw new Error("The subDomain '" + options.subDomain + "' is not valid");
+			}
+
+			if (parent._domainType[options.domain].level <= parent._domainType[options.subDomain].level) {
+				throw new Error("'" + options.subDomain + "' is not a valid subDomain to '" + options.domain +  "'");
+			}
+
+			return true;
+		}
+
+		/**
+		 * Fine-tune the label alignement depending on its position
+		 *
+		 * @return void
+		 */
+		function autoAlignLabel() {
+			// Auto-align label, depending on it's position
+			if (!settings.hasOwnProperty("label") || (settings.hasOwnProperty("label") && !settings.label.hasOwnProperty("align"))) {
+				switch(options.label.position) {
+				case "left":
+					options.label.align = "right";
+					break;
+				case "right":
+					options.label.align = "left";
+					break;
+				default:
+					options.label.align = "center";
+				}
+
+				if (options.label.rotate === "left") {
+					options.label.align = "right";
+				} else if (options.label.rotate === "right") {
+					options.label.align = "left";
+				}
+			}
+
+			if (!settings.hasOwnProperty("label") || (settings.hasOwnProperty("label") && !settings.label.hasOwnProperty("offset"))) {
+				if (options.label.position === "left" || options.label.position === "right") {
+					options.label.offset = {
+						x: 10,
+						y: 15
+					};
+				}
+			}
+		}
+
+		/**
+		 * If not specified, add some margin around the legend depending on its position
+		 *
+		 * @return void
+		 */
+		function autoAddLegendMargin() {
+			switch(options.legendVerticalPosition) {
+			case "top":
+				options.legendMargin[2] = parent.DEFAULT_LEGEND_MARGIN;
+				break;
+			case "bottom":
+				options.legendMargin[0] = parent.DEFAULT_LEGEND_MARGIN;
+				break;
+			case "middle":
+			case "center":
+				options.legendMargin[options.legendHorizontalPosition === "right" ? 3 : 1] = parent.DEFAULT_LEGEND_MARGIN;
+			}
+		}
+
+		/**
+		 * Expand a number of an array of numbers to an usable 4 values array
+		 *
+		 * @param  {integer|array} value
+		 * @return {array}        array
+		 */
+		function expandMarginSetting(value) {
+			if (typeof value === "number") {
+				value = [value];
+			}
+
+			if (!Array.isArray(value)) {
+				console.log("Margin only takes an integer or an array of integers");
+				value = [0];
+			}
+
+			switch(value.length) {
+			case 1:
+				return [value[0], value[0], value[0], value[0]];
+			case 2:
+				return [value[0], value[1], value[0], value[1]];
+			case 3:
+				return [value[0], value[1], value[2], value[1]];
+			case 4:
+				return value;
+			default:
+				return value.slice(0, 4);
+			}
+		}
+
+		/**
+		 * Convert a string to an array like [singular-form, plural-form]
+		 *
+		 * @param  {string|array} value Date to convert
+		 * @return {array}       An array like [singular-form, plural-form]
+		 */
+		function expandItemName(value) {
+			if (typeof value === "string") {
+				return [value, value + (value !== "" ? "s" : "")];
+			}
+
+			if (Array.isArray(value)) {
+				if (value.length === 1) {
+					return [value[0], value[0] + "s"];
+				} else if (value.length > 2) {
+					return value.slice(0, 2);
+				}
+
+				return value;
+			}
+
+			return ["item", "items"];
+		}
+
+		function parseColLimit(value) {
+			return value > 0 ? value : null;
+		}
+
+		function parseRowLimit(value) {
+			if (value > 0 && options.colLimit > 0) {
+				console.log("colLimit and rowLimit are mutually exclusive, rowLimit will be ignored");
+				return null;
+			}
+			return value > 0 ? value : null;
+		}
+
+		return this._init();
+
+	},
+
+	/**
+	 * Convert a keyword or an array of keyword/date to an array of date objects
+	 *
+	 * @param  {string|array|Date} value Data to convert
+	 * @return {array}       An array of Dates
+	 */
+	expandDateSetting: function(value) {
+		"use strict";
+
+		if (!Array.isArray(value)) {
+			value = [value];
+		}
+
+		return value.map(function(data) {
+			if (data === "now") {
+				return new Date();
+			}
+			if (data instanceof Date) {
+				return data;
+			}
+			return false;
+		}).filter(function(d) { return d !== false; });
+	},
+
+	/**
+	 * Fill the calendar by coloring the cells
+	 *
+	 * @param array svg An array of html node to apply the transformation to (optional)
+	 *                  It's used to limit the painting to only a subset of the calendar
+	 * @return void
+	 */
+	fill: function(svg) {
+		"use strict";
+
+		var parent = this;
+		var options = parent.options;
+
+		if (arguments.length === 0) {
+			svg = parent.root.selectAll(".graph-domain");
+		}
+
+		var rect = svg
+			.selectAll("svg").selectAll("g")
+			.data(function(d) { return parent._domains.get(d); })
+		;
+
+		/**
+		 * Colorize the cell via a style attribute if enabled
+		 */
+		function addStyle(element) {
+			if (parent.legendScale === null) {
+				return false;
+			}
+
+			element.attr("fill", function(d) {
+				if (d.v === 0 && options.legendColors !== null && options.legendColors.hasOwnProperty("empty")) {
+					return options.legendColors.empty;
+				}
+
+				if (d.v < 0 && options.legend[0] > 0 && options.legendColors !== null && options.legendColors.hasOwnProperty("overflow")) {
+					return options.legendColors.overflow;
+				}
+
+				return parent.legendScale(Math.min(d.v, options.legend[options.legend.length-1]));
+			});
+		}
+
+		rect.transition().duration(options.animationDuration).select("rect")
+			.attr("class", function(d) {
+
+				var htmlClass = parent.getHighlightClassName(d.t);
+
+				if (parent.legendScale === null) {
+					htmlClass += " graph-rect";
+				}
+
+				if (d.v !== null) {
+					htmlClass += " " + parent.Legend.getClass(d.v, (parent.legendScale === null));
+				} else if (options.considerMissingDataAsZero) {
+					htmlClass += " " + parent.Legend.getClass(0, (parent.legendScale === null));
+				}
+
+				if (options.onClick !== null) {
+					htmlClass += " hover_cursor";
+				}
+
+				return htmlClass;
+			})
+			.call(addStyle)
+		;
+
+		rect.transition().duration(options.animationDuration).select("title")
+			.text(function(d) { return parent.getSubDomainTitle(d); })
+		;
+	},
+
+	// =========================================================================//
+	// EVENTS CALLBACK															//
+	// =========================================================================//
+
+	/**
+	 * Helper method for triggering event callback
+	 *
+	 * @param  string	eventName       Name of the event to trigger
+	 * @param  array	successArgs     List of argument to pass to the callback
+	 * @param  boolean  skip			Whether to skip the event triggering
+	 * @return mixed	True when the triggering was skipped, false on error, else the callback function
+	 */
+	triggerEvent: function(eventName, successArgs, skip) {
+		"use strict";
+
+		if ((arguments.length === 3 && skip) || this.options[eventName] === null) {
+			return true;
+		}
+
+		if (typeof this.options[eventName] === "function") {
+			if (typeof successArgs === "function") {
+				successArgs = successArgs();
+			}
+			return this.options[eventName].apply(this, successArgs);
+		} else {
+			console.log("Provided callback for " + eventName + " is not a function.");
+			return false;
+		}
+	},
+
+	/**
+	 * Event triggered on a mouse click on a subDomain cell
+	 *
+	 * @param  Date		d		Date of the subdomain block
+	 * @param  int		itemNb	Number of items in that date
+	 */
+	onClick: function(d, itemNb) {
+		"use strict";
+
+		return this.triggerEvent("onClick", [d, itemNb]);
+	},
+
+	/**
+	 * Event triggered after drawing the calendar, byt before filling it with data
+	 */
+	afterLoad: function() {
+		"use strict";
+
+		return this.triggerEvent("afterLoad");
+	},
+
+	/**
+	 * Event triggered after completing drawing and filling the calendar
+	 */
+	onComplete: function() {
+		"use strict";
+
+		var response = this.triggerEvent("onComplete", [], this._completed);
+		this._completed = true;
+		return response;
+	},
+
+	/**
+	 * Event triggered after shifting the calendar one domain back
+	 *
+	 * @param  Date		start	Domain start date
+	 * @param  Date		end		Domain end date
+	 */
+	afterLoadPreviousDomain: function(start) {
+		"use strict";
+
+		var parent = this;
+		return this.triggerEvent("afterLoadPreviousDomain", function() {
+			var subDomain = parent.getSubDomain(start);
+			return [subDomain.shift(), subDomain.pop()];
+		});
+	},
+
+	/**
+	 * Event triggered after shifting the calendar one domain above
+	 *
+	 * @param  Date		start	Domain start date
+	 * @param  Date		end		Domain end date
+	 */
+	afterLoadNextDomain: function(start) {
+		"use strict";
+
+		var parent = this;
+		return this.triggerEvent("afterLoadNextDomain", function() {
+			var subDomain = parent.getSubDomain(start);
+			return [subDomain.shift(), subDomain.pop()];
+		});
+	},
+
+	/**
+	 * Event triggered after loading the leftmost domain allowed by minDate
+	 *
+	 * @param  boolean  reached True if the leftmost domain was reached
+	 */
+	onMinDomainReached: function(reached) {
+		"use strict";
+
+		this._minDomainReached = reached;
+		return this.triggerEvent("onMinDomainReached", [reached]);
+	},
+
+	/**
+	 * Event triggered after loading the rightmost domain allowed by maxDate
+	 *
+	 * @param  boolean  reached True if the rightmost domain was reached
+	 */
+	onMaxDomainReached: function(reached) {
+		"use strict";
+
+		this._maxDomainReached = reached;
+		return this.triggerEvent("onMaxDomainReached", [reached]);
+	},
+
+	checkIfMinDomainIsReached: function(date, upperBound) {
+		"use strict";
+
+		if (this.minDomainIsReached(date)) {
+			this.onMinDomainReached(true);
+		}
+
+		if (arguments.length === 2) {
+			if (this._maxDomainReached && !this.maxDomainIsReached(upperBound)) {
+				this.onMaxDomainReached(false);
+			}
+		}
+	},
+
+	checkIfMaxDomainIsReached: function(date, lowerBound) {
+		"use strict";
+
+		if (this.maxDomainIsReached(date)) {
+			this.onMaxDomainReached(true);
+		}
+
+		if (arguments.length === 2) {
+			if (this._minDomainReached && !this.minDomainIsReached(lowerBound)) {
+				this.onMinDomainReached(false);
+			}
+		}
+	},
+
+	// =========================================================================//
+	// FORMATTER																//
+	// =========================================================================//
+
+	formatNumber: d3.format(",g"),
+
+	formatDate: function(d, format) {
+		"use strict";
+
+		if (arguments.length < 2) {
+			format = "title";
+		}
+
+		if (typeof format === "function") {
+			return format(d);
+		} else {
+			var f = d3.time.format(format);
+			return f(d);
+		}
+	},
+
+	getSubDomainTitle: function(d) {
+		"use strict";
+
+		if (d.v === null && !this.options.considerMissingDataAsZero) {
+			return (this.options.subDomainTitleFormat.empty).format({
+				date: this.formatDate(new Date(d.t), this.options.subDomainDateFormat)
+			});
+		} else {
+			var value = d.v;
+			// Consider null as 0
+			if (value === null && this.options.considerMissingDataAsZero) {
+				value = 0;
+			}
+
+			return (this.options.subDomainTitleFormat.filled).format({
+				count: this.formatNumber(value),
+				name: this.options.itemName[(value !== 1 ? 1: 0)],
+				connector: this._domainType[this.options.subDomain].format.connector,
+				date: this.formatDate(new Date(d.t), this.options.subDomainDateFormat)
+			});
+		}
+	},
+
+	// =========================================================================//
+	// DOMAIN NAVIGATION														//
+	// =========================================================================//
+
+	/**
+	 * Shift the calendar one domain forward
+	 *
+	 * The new domain is loaded only if it's not beyond maxDate
+	 *
+	 * @param int n Number of domains to load
+	 * @return bool True if the next domain was loaded, else false
+	 */
+	loadNextDomain: function(n) {
+		"use strict";
+
+		if (this._maxDomainReached || n === 0) {
+			return false;
+		}
+
+		var bound = this.loadNewDomains(this.NAVIGATE_RIGHT, this.getDomain(this.getNextDomain(), n));
+
+		this.afterLoadNextDomain(bound.end);
+		this.checkIfMaxDomainIsReached(this.getNextDomain().getTime(), bound.start);
+
+		return true;
+	},
+
+	/**
+	 * Shift the calendar one domain backward
+	 *
+	 * The previous domain is loaded only if it's not beyond the minDate
+	 *
+	 * @param int n Number of domains to load
+	 * @return bool True if the previous domain was loaded, else false
+	 */
+	loadPreviousDomain: function(n) {
+		"use strict";
+
+		if (this._minDomainReached || n === 0) {
+			return false;
+		}
+
+		var bound = this.loadNewDomains(this.NAVIGATE_LEFT, this.getDomain(this.getDomainKeys()[0], -n).reverse());
+
+		this.afterLoadPreviousDomain(bound.start);
+		this.checkIfMinDomainIsReached(bound.start, bound.end);
+
+		return true;
+	},
+
+	loadNewDomains: function(direction, newDomains) {
+		"use strict";
+
+		var parent = this;
+		var backward = direction === this.NAVIGATE_LEFT;
+		var i = -1;
+		var total = newDomains.length;
+		var domains = this.getDomainKeys();
+
+		function buildSubDomain(d) {
+			return {t: parent._domainType[parent.options.subDomain].extractUnit(d), v: null};
+		}
+
+		// Remove out of bound domains from list of new domains to prepend
+		while (++i < total) {
+			if (backward && this.minDomainIsReached(newDomains[i])) {
+				newDomains = newDomains.slice(0, i+1);
+				break;
+			}
+			if (!backward && this.maxDomainIsReached(newDomains[i])) {
+				newDomains = newDomains.slice(0, i);
+				break;
+			}
+		}
+
+		newDomains = newDomains.slice(-this.options.range);
+
+		for (i = 0, total = newDomains.length; i < total; i++) {
+			this._domains.set(
+				newDomains[i].getTime(),
+				this.getSubDomain(newDomains[i]).map(buildSubDomain)
+			);
+
+			this._domains.remove(backward ? domains.pop() : domains.shift());
+		}
+
+		domains = this.getDomainKeys();
+
+		if (backward) {
+			newDomains = newDomains.reverse();
+		}
+
+		this.paint(direction);
+
+		this.getDatas(
+			this.options.data,
+			newDomains[0],
+			this.getSubDomain(newDomains[newDomains.length-1]).pop(),
+			function() {
+				parent.fill(parent.lastInsertedSvg);
+			}
+		);
+
+		return {
+			start: newDomains[backward ? 0 : 1],
+			end: domains[domains.length-1]
+		};
+	},
+
+	/**
+	 * Return whether a date is inside the scope determined by maxDate
+	 *
+	 * @param int datetimestamp The timestamp in ms to test
+	 * @return bool True if the specified date correspond to the calendar upper bound
+	 */
+	maxDomainIsReached: function(datetimestamp) {
+		"use strict";
+
+		return (this.options.maxDate !== null && (this.options.maxDate.getTime() < datetimestamp));
+	},
+
+	/**
+	 * Return whether a date is inside the scope determined by minDate
+	 *
+	 * @param int datetimestamp The timestamp in ms to test
+	 * @return bool True if the specified date correspond to the calendar lower bound
+	 */
+	minDomainIsReached: function (datetimestamp) {
+		"use strict";
+
+		return (this.options.minDate !== null && (this.options.minDate.getTime() >= datetimestamp));
+	},
+
+	/**
+	 * Return the list of the calendar's domain timestamp
+	 *
+	 * @return Array a sorted array of timestamp
+	 */
+	getDomainKeys: function() {
+		"use strict";
+
+		return this._domains.keys()
+			.map(function(d) { return parseInt(d, 10); })
+			.sort(function(a,b) { return a-b; });
+	},
+
+	// =========================================================================//
+	// POSITIONNING																//
+	// =========================================================================//
+
+	positionSubDomainX: function(d) {
+		"use strict";
+
+		var index = this._domainType[this.options.subDomain].position.x(new Date(d));
+		return index * this.options.cellSize + index * this.options.cellPadding;
+	},
+
+	positionSubDomainY: function(d) {
+		"use strict";
+
+		var index = this._domainType[this.options.subDomain].position.y(new Date(d));
+		return index * this.options.cellSize + index * this.options.cellPadding;
+	},
+
+	getSubDomainColumnNumber: function(d) {
+		"use strict";
+
+		if (this.options.rowLimit > 0) {
+			var i = this._domainType[this.options.subDomain].maxItemNumber;
+			if (typeof i === "function") {
+				i = i(d);
+			}
+			return Math.ceil(i / this.options.rowLimit);
+		}
+
+		var j = this._domainType[this.options.subDomain].defaultColumnNumber;
+		if (typeof j === "function") {
+			j = j(d);
+
+		}
+		return this.options.colLimit || j;
+	},
+
+	getSubDomainRowNumber: function(d) {
+		"use strict";
+
+		if (this.options.colLimit > 0) {
+			var i = this._domainType[this.options.subDomain].maxItemNumber;
+			if (typeof i === "function") {
+				i = i(d);
+			}
+			return Math.ceil(i / this.options.colLimit);
+		}
+
+		var j = this._domainType[this.options.subDomain].defaultRowNumber;
+		if (typeof j === "function") {
+			j = j(d);
+
+		}
+		return this.options.rowLimit || j;
+	},
+
+	/**
+	 * Return a classname if the specified date should be highlighted
+	 *
+	 * @param  timestamp date Date of the current subDomain
+	 * @return String the highlight class
+	 */
+	getHighlightClassName: function(d) {
+		"use strict";
+
+		d = new Date(d);
+
+		if (this.options.highlight.length > 0) {
+			for (var i in this.options.highlight) {
+				if (this.options.highlight[i] instanceof Date && this.dateIsEqual(this.options.highlight[i], d)) {
+					return " highlight" + (this.isNow(this.options.highlight[i]) ? " now": "");
+				}
+			}
+		}
+		return "";
+	},
+
+	/**
+	 * Return whether the specified date is now,
+	 * according to the type of subdomain
+	 *
+	 * @param  Date d The date to compare
+	 * @return bool True if the date correspond to a subdomain cell
+	 */
+	isNow: function(d) {
+		"use strict";
+
+		return this.dateIsEqual(d, new Date());
+	},
+
+	/**
+	 * Return whether 2 dates are equals
+	 * This function is subdomain-aware,
+	 * and dates comparison are dependent of the subdomain
+	 *
+	 * @param  Date dateA First date to compare
+	 * @param  Date dateB Secon date to compare
+	 * @return bool true if the 2 dates are equals
+	 */
+	/* jshint maxcomplexity: false */
+	dateIsEqual: function(dateA, dateB) {
+		"use strict";
+
+		switch(this.options.subDomain) {
+		case "x_min":
+		case "min":
+			return dateA.getFullYear() === dateB.getFullYear() &&
+				dateA.getMonth() === dateB.getMonth() &&
+				dateA.getDate() === dateB.getDate() &&
+				dateA.getHours() === dateB.getHours() &&
+				dateA.getMinutes() === dateB.getMinutes();
+		case "x_hour":
+		case "hour":
+			return dateA.getFullYear() === dateB.getFullYear() &&
+				dateA.getMonth() === dateB.getMonth() &&
+				dateA.getDate() === dateB.getDate() &&
+				dateA.getHours() === dateB.getHours();
+		case "x_day":
+		case "day":
+			return dateA.getFullYear() === dateB.getFullYear() &&
+				dateA.getMonth() === dateB.getMonth() &&
+				dateA.getDate() === dateB.getDate();
+		case "x_week":
+		case "week":
+		case "x_month":
+		case "month":
+			return dateA.getFullYear() === dateB.getFullYear() &&
+				dateA.getMonth() === dateB.getMonth();
+		default:
+			return false;
+		}
+	},
+
+	// =========================================================================//
+	// DATE COMPUTATION															//
+	// =========================================================================//
+
+	/**
+	 * Return the day of the year for the date
+	 * @param	Date
+	 * @return  int Day of the year [1,366]
+	 */
+	getDayOfYear: d3.time.format("%j"),
+
+	/**
+	 * Return the week number of the year
+	 * Monday as the first day of the week
+	 * @return int	Week number [0-53]
+	 */
+	getWeekNumber: function(d) {
+		"use strict";
+
+		var f = this.options.weekStartOnMonday === true ? d3.time.format("%W"): d3.time.format("%U");
+		return f(d);
+	},
+
+	/**
+	 * Return the week number, relative to its month
+	 *
+	 * @param  int|Date d Date or timestamp in milliseconds
+	 * @return int Week number, relative to the month [0-5]
+	 */
+	getMonthWeekNumber: function (d) {
+		"use strict";
+
+		if (typeof d === "number") {
+			d = new Date(d);
+		}
+
+		var monthFirstWeekNumber = this.getWeekNumber(new Date(d.getFullYear(), d.getMonth()));
+		return this.getWeekNumber(d) - monthFirstWeekNumber - 1;
+	},
+
+	/**
+	 * Return the number of weeks in the dates' year
+	 *
+	 * @param  int|Date d Date or timestamp in milliseconds
+	 * @return int Number of weeks in the date's year
+	 */
+	getWeekNumberInYear: function(d) {
+		"use strict";
+
+		if (typeof d === "number") {
+			d = new Date(d);
+		}
+	},
+
+	/**
+	 * Return the number of days in the date's month
+	 *
+	 * @param  int|Date d Date or timestamp in milliseconds
+	 * @return int Number of days in the date's month
+	 */
+	getDayCountInMonth: function(d) {
+		"use strict";
+
+		return this.getEndOfMonth(d).getDate();
+	},
+
+	/**
+	 * Return the number of days in the date's year
+	 *
+	 * @param  int|Date d Date or timestamp in milliseconds
+	 * @return int Number of days in the date's year
+	 */
+	getDayCountInYear: function(d) {
+		"use strict";
+
+		if (typeof d === "number") {
+			d = new Date(d);
+		}
+		return (new Date(d.getFullYear(), 1, 29).getMonth() === 1) ? 366 : 365;
+	},
+
+	/**
+	 * Get the weekday from a date
+	 *
+	 * Return the week day number (0-6) of a date,
+	 * depending on whether the week start on monday or sunday
+	 *
+	 * @param  Date d
+	 * @return int The week day number (0-6)
+	 */
+	getWeekDay: function(d) {
+		"use strict";
+
+		if (this.options.weekStartOnMonday === false) {
+			return d.getDay();
+		}
+		return d.getDay() === 0 ? 6 : (d.getDay()-1);
+	},
+
+	/**
+	 * Get the last day of the month
+	 * @param  Date|int	d	Date or timestamp in milliseconds
+	 * @return Date			Last day of the month
+	 */
+	getEndOfMonth: function(d) {
+		"use strict";
+
+		if (typeof d === "number") {
+			d = new Date(d);
+		}
+		return new Date(d.getFullYear(), d.getMonth()+1, 0);
+	},
+
+	/**
+	 *
+	 * @param  Date date
+	 * @param  int count
+	 * @param  string step
+	 * @return Date
+	 */
+	jumpDate: function(date, count, step) {
+		"use strict";
+
+		var d = new Date(date);
+		switch(step) {
+		case "hour":
+			d.setHours(d.getHours() + count);
+			break;
+		case "day":
+			d.setHours(d.getHours() + count * 24);
+			break;
+		case "week":
+			d.setHours(d.getHours() + count * 24 * 7);
+			break;
+		case "month":
+			d.setMonth(d.getMonth() + count);
+			break;
+		case "year":
+			d.setFullYear(d.getFullYear() + count);
+		}
+
+		return new Date(d);
+	},
+
+	// =========================================================================//
+	// DOMAIN COMPUTATION														//
+	// =========================================================================//
+
+	/**
+	 * Return all the minutes between 2 dates
+	 *
+	 * @param  Date	d	date	A date
+	 * @param  int|date	range	Number of minutes in the range, or a stop date
+	 * @return array	An array of minutes
+	 */
+	getMinuteDomain: function (d, range) {
+		"use strict";
+
+		var start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours());
+		var stop = null;
+		if (range instanceof Date) {
+			stop = new Date(range.getFullYear(), range.getMonth(), range.getDate(), range.getHours());
+		} else {
+			stop = new Date(+start + range * 1000 * 60);
+		}
+		return d3.time.minutes(Math.min(start, stop), Math.max(start, stop));
+	},
+
+	/**
+	 * Return all the hours between 2 dates
+	 *
+	 * @param  Date	d	A date
+	 * @param  int|date	range	Number of hours in the range, or a stop date
+	 * @return array	An array of hours
+	 */
+	getHourDomain: function (d, range) {
+		"use strict";
+
+		var start = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours());
+		var stop = null;
+		if (range instanceof Date) {
+			stop = new Date(range.getFullYear(), range.getMonth(), range.getDate(), range.getHours());
+		} else {
+			stop = new Date(start);
+			stop.setHours(stop.getHours() + range);
+		}
+
+		var domains = d3.time.hours(Math.min(start, stop), Math.max(start, stop));
+
+		// Passing from DST to standard time
+		// If there are 25 hours, let's compress the duplicate hours
+		var i = 0;
+		var total = domains.length;
+		for(i = 0; i < total; i++) {
+			if (i > 0 && (domains[i].getHours() === domains[i-1].getHours())) {
+				this.DSTDomain.push(domains[i].getTime());
+				domains.splice(i, 1);
+				break;
+			}
+		}
+
+		// d3.time.hours is returning more hours than needed when changing
+		// from DST to standard time, because there is really 2 hours between
+		// 1am and 2am!
+		if (typeof range === "number" && domains.length > Math.abs(range)) {
+			domains.splice(domains.length-1, 1);
+		}
+
+		return domains;
+	},
+
+	/**
+	 * Return all the days between 2 dates
+	 *
+	 * @param  Date		d		A date
+	 * @param  int|date	range	Number of days in the range, or a stop date
+	 * @return array	An array of weeks
+	 */
+	getDayDomain: function (d, range) {
+		"use strict";
+
+		var start = new Date(d.getFullYear(), d.getMonth(), d.getDate());
+		var stop = null;
+		if (range instanceof Date) {
+			stop = new Date(range.getFullYear(), range.getMonth(), range.getDate());
+		} else {
+			stop = new Date(start);
+			stop = new Date(stop.setDate(stop.getDate() + parseInt(range, 10)));
+		}
+
+		return d3.time.days(Math.min(start, stop), Math.max(start, stop));
+	},
+
+	/**
+	 * Return all the weeks between 2 dates
+	 *
+	 * @param  Date	d	A date
+	 * @param  int|date	range	Number of minutes in the range, or a stop date
+	 * @return array	An array of weeks
+	 */
+	getWeekDomain: function (d, range) {
+		"use strict";
+
+		var weekStart;
+
+		if (this.options.weekStartOnMonday === false) {
+			weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate() - d.getDay());
+		} else {
+			if (d.getDay() === 1) {
+				weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate());
+			} else if (d.getDay() === 0) {
+				weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate());
+				weekStart.setDate(weekStart.getDate() - 6);
+			} else {
+				weekStart = new Date(d.getFullYear(), d.getMonth(), d.getDate()-d.getDay()+1);
+			}
+		}
+
+		var endDate = new Date(weekStart);
+
+		var stop = range;
+		if (typeof range !== "object") {
+			stop = new Date(endDate.setDate(endDate.getDate() + range * 7));
+		}
+
+		return (this.options.weekStartOnMonday === true) ?
+			d3.time.mondays(Math.min(weekStart, stop), Math.max(weekStart, stop)):
+			d3.time.sundays(Math.min(weekStart, stop), Math.max(weekStart, stop))
+		;
+	},
+
+	/**
+	 * Return all the months between 2 dates
+	 *
+	 * @param  Date		d		A date
+	 * @param  int|date	range	Number of months in the range, or a stop date
+	 * @return array	An array of months
+	 */
+	getMonthDomain: function (d, range) {
+		"use strict";
+
+		var start = new Date(d.getFullYear(), d.getMonth());
+		var stop = null;
+		if (range instanceof Date) {
+			stop = new Date(range.getFullYear(), range.getMonth());
+		} else {
+			stop = new Date(start);
+			stop = stop.setMonth(stop.getMonth()+range);
+		}
+
+		return d3.time.months(Math.min(start, stop), Math.max(start, stop));
+	},
+
+	/**
+	 * Return all the years between 2 dates
+	 *
+	 * @param  Date	d	date	A date
+	 * @param  int|date	range	Number of minutes in the range, or a stop date
+	 * @return array	An array of hours
+	 */
+	getYearDomain: function(d, range){
+		"use strict";
+
+		var start = new Date(d.getFullYear(), 0);
+		var stop = null;
+		if (range instanceof Date) {
+			stop = new Date(range.getFullYear(), 0);
+		} else {
+			stop = new Date(d.getFullYear()+range, 0);
+		}
+
+		return d3.time.years(Math.min(start, stop), Math.max(start, stop));
+	},
+
+	/**
+	 * Get an array of domain start dates
+	 *
+	 * @param  int|Date date A random date included in the wanted domain
+	 * @param  int|Date range Number of dates to get, or a stop date
+	 * @return Array of dates
+	 */
+	getDomain: function(date, range) {
+		"use strict";
+
+		if (typeof date === "number") {
+			date = new Date(date);
+		}
+
+		if (arguments.length < 2) {
+			range = this.options.range;
+		}
+
+		switch(this.options.domain) {
+		case "hour" :
+			var domains = this.getHourDomain(date, range);
+
+			// Case where an hour is missing, when passing from standard time to DST
+			// Missing hour is perfectly acceptabl in subDomain, but not in domains
+			if (typeof range === "number" && domains.length < range) {
+				if (range > 0) {
+					domains.push(this.getHourDomain(domains[domains.length-1], 2)[1]);
+				} else {
+					domains.shift(this.getHourDomain(domains[0], -2)[0]);
+				}
+			}
+			return domains;
+		case "day"  :
+			return this.getDayDomain(date, range);
+		case "week" :
+			return this.getWeekDomain(date, range);
+		case "month":
+			return this.getMonthDomain(date, range);
+		case "year" :
+			return this.getYearDomain(date, range);
+		}
+	},
+
+	/* jshint maxcomplexity: false */
+	getSubDomain: function(date) {
+		"use strict";
+
+		if (typeof date === "number") {
+			date = new Date(date);
+		}
+
+		var parent = this;
+
+		/**
+		 * @return int
+		 */
+		var computeDaySubDomainSize = function(date, domain) {
+			switch(domain) {
+			case "year":
+				return parent.getDayCountInYear(date);
+			case "month":
+				return parent.getDayCountInMonth(date);
+			case "week":
+				return 7;
+			}
+		};
+
+		/**
+		 * @return int
+		 */
+		var computeMinSubDomainSize = function(date, domain) {
+			switch (domain) {
+			case "hour":
+				return 60;
+			case "day":
+				return 60 * 24;
+			case "week":
+				return 60 * 24 * 7;
+			}
+		};
+
+		/**
+		 * @return int
+		 */
+		var computeHourSubDomainSize = function(date, domain) {
+			switch(domain) {
+			case "day":
+				return 24;
+			case "week":
+				return 168;
+			case "month":
+				return parent.getDayCountInMonth(date) * 24;
+			}
+		};
+
+		/**
+		 * @return int
+		 */
+		var computeWeekSubDomainSize = function(date, domain) {
+			if (domain === "month") {
+				var endOfMonth = new Date(date.getFullYear(), date.getMonth()+1, 0);
+				var endWeekNb = parent.getWeekNumber(endOfMonth);
+				var startWeekNb = parent.getWeekNumber(new Date(date.getFullYear(), date.getMonth()));
+
+				if (startWeekNb > endWeekNb) {
+					startWeekNb = 0;
+					endWeekNb++;
+				}
+
+				return endWeekNb - startWeekNb + 1;
+			} else if (domain === "year") {
+				return parent.getWeekNumber(new Date(date.getFullYear(), 11, 31));
+			}
+		};
+
+		switch(this.options.subDomain) {
+		case "x_min":
+		case "min"  :
+			return this.getMinuteDomain(date, computeMinSubDomainSize(date, this.options.domain));
+		case "x_hour":
+		case "hour" :
+			return this.getHourDomain(date, computeHourSubDomainSize(date, this.options.domain));
+		case "x_day":
+		case "day"  :
+			return this.getDayDomain(date, computeDaySubDomainSize(date, this.options.domain));
+		case "x_week":
+		case "week" :
+			return this.getWeekDomain(date, computeWeekSubDomainSize(date, this.options.domain));
+		case "x_month":
+		case "month":
+			return this.getMonthDomain(date, 12);
+		}
+	},
+
+	/**
+	 * Get the n-th next domain after the calendar newest (rightmost) domain
+	 * @param  int n
+	 * @return Date The start date of the wanted domain
+	 */
+	getNextDomain: function(n) {
+		"use strict";
+
+		if (arguments.length === 0) {
+			n = 1;
+		}
+		return this.getDomain(this.jumpDate(this.getDomainKeys().pop(), n, this.options.domain), 1)[0];
+	},
+
+	/**
+	 * Get the n-th domain before the calendar oldest (leftmost) domain
+	 * @param  int n
+	 * @return Date The start date of the wanted domain
+	 */
+	getPreviousDomain: function(n) {
+		"use strict";
+
+		if (arguments.length === 0) {
+			n = 1;
+		}
+		return this.getDomain(this.jumpDate(this.getDomainKeys().shift(), -n, this.options.domain), 1)[0];
+	},
+
+
+	// =========================================================================//
+	// DATAS																	//
+	// =========================================================================//
+
+	/**
+	 * Fetch and interpret data from the datasource
+	 *
+	 * @param string|object source
+	 * @param Date startDate
+	 * @param Date endDate
+	 * @param function callback
+	 * @param function|boolean afterLoad function used to convert the data into a json object. Use true to use the afterLoad callback
+	 * @param updateMode
+	 *
+	 * @return mixed
+	 * - True if there are no data to load
+	 * - False if data are loaded asynchronously
+	 */
+	getDatas: function(source, startDate, endDate, callback, afterLoad, updateMode) {
+		"use strict";
+
+		var self = this;
+		if (arguments.length < 5) {
+			afterLoad = true;
+		}
+		if (arguments.length < 6) {
+			updateMode = this.APPEND_ON_UPDATE;
+		}
+		var _callback = function(data) {
+			if (afterLoad !== false) {
+				if (typeof afterLoad === "function") {
+					data = afterLoad(data);
+				} else if (typeof (self.options.afterLoadData) === "function") {
+					data = self.options.afterLoadData(data);
+				} else {
+					console.log("Provided callback for afterLoadData is not a function.");
+				}
+			} else if (self.options.dataType === "csv" || self.options.dataType === "tsv") {
+				data = this.interpretCSV(data);
+			}
+			self.parseDatas(data, updateMode, startDate, endDate);
+			if (typeof callback === "function") {
+				callback();
+			}
+		};
+
+		switch(typeof source) {
+		case "string":
+			if (source === "") {
+				_callback({});
+				return true;
+			} else {
+				switch(this.options.dataType) {
+				case "json":
+					d3.json(this.parseURI(source, startDate, endDate), _callback);
+					break;
+				case "csv":
+					d3.csv(this.parseURI(source, startDate, endDate), _callback);
+					break;
+				case "tsv":
+					d3.tsv(this.parseURI(source, startDate, endDate), _callback);
+					break;
+				case "txt":
+					d3.text(this.parseURI(source, startDate, endDate), "text/plain", _callback);
+					break;
+				}
+			}
+			return false;
+		case "object":
+			if (source === Object(source)) {
+				_callback(source);
+				return false;
+			}
+			/* falls through */
+		default:
+			_callback({});
+			return true;
+		}
+	},
+
+	/**
+	 * Populate the calendar internal data
+	 *
+	 * @param object data
+	 * @param constant updateMode
+	 * @param Date startDate
+	 * @param Date endDate
+	 *
+	 * @return void
+	 */
+	parseDatas: function(data, updateMode, startDate, endDate) {
+		"use strict";
+
+		if (updateMode === this.RESET_ALL_ON_UPDATE) {
+			this._domains.forEach(function(key, value) {
+				value.forEach(function(element, index, array) {
+					array[index].v = null;
+				});
+			});
+		}
+
+		var temp = {};
+
+		var extractTime = function(d) { return d.t; };
+
+		/*jshint forin:false */
+		for (var d in data) {
+			var date = new Date(d*1000);
+			var domainUnit = this.getDomain(date)[0].getTime();
+
+			// The current data belongs to a domain that was compressed
+			// Compress the data for the two duplicate hours into the same hour
+			if (this.DSTDomain.indexOf(domainUnit) >= 0) {
+
+				// Re-assign all data to the first or the second duplicate hours
+				// depending on which is visible
+				if (this._domains.has(domainUnit - 3600 * 1000)) {
+					domainUnit -= 3600 * 1000;
+				}
+			}
+
+			// Skip if data is not relevant to current domain
+			if (isNaN(d) || !data.hasOwnProperty(d) || !this._domains.has(domainUnit) || !(domainUnit >= +startDate && domainUnit < +endDate)) {
+				continue;
+			}
+
+			var subDomainsData = this._domains.get(domainUnit);
+
+			if (!temp.hasOwnProperty(domainUnit)) {
+				temp[domainUnit] = subDomainsData.map(extractTime);
+			}
+
+			var index = temp[domainUnit].indexOf(this._domainType[this.options.subDomain].extractUnit(date));
+
+			if (updateMode === this.RESET_SINGLE_ON_UPDATE) {
+				subDomainsData[index].v = data[d];
+			} else {
+				if (!isNaN(subDomainsData[index].v)) {
+					subDomainsData[index].v += data[d];
+				} else {
+					subDomainsData[index].v = data[d];
+				}
+			}
+		}
+	},
+
+	parseURI: function(str, startDate, endDate) {
+		"use strict";
+
+		// Use a timestamp in seconds
+		str = str.replace(/\{\{t:start\}\}/g, startDate.getTime()/1000);
+		str = str.replace(/\{\{t:end\}\}/g, endDate.getTime()/1000);
+
+		// Use a string date, following the ISO-8601
+		str = str.replace(/\{\{d:start\}\}/g, startDate.toISOString());
+		str = str.replace(/\{\{d:end\}\}/g, endDate.toISOString());
+
+		return str;
+	},
+
+	interpretCSV: function(data) {
+		"use strict";
+
+		var d = {};
+		var keys = Object.keys(data[0]);
+		var i, total;
+		for (i = 0, total = data.length; i < total; i++) {
+			d[data[i][keys[0]]] = +data[i][keys[1]];
+		}
+		return d;
+	},
+
+	/**
+	 * Handle the calendar layout and dimension
+	 *
+	 * Expand and shrink the container depending on its children dimension
+	 * Also rearrange the children position depending on their dimension,
+	 * and the legend position
+	 *
+	 * @return void
+	 */
+	resize: function() {
+		"use strict";
+
+		var parent = this;
+		var options = parent.options;
+		var legendWidth = options.displayLegend ? (parent.Legend.getDim("width") + options.legendMargin[1] + options.legendMargin[3]) : 0;
+		var legendHeight = options.displayLegend ? (parent.Legend.getDim("height") + options.legendMargin[0] + options.legendMargin[2]) : 0;
+
+		var graphWidth = parent.graphDim.width - options.domainGutter - options.cellPadding;
+		var graphHeight = parent.graphDim.height - options.domainGutter - options.cellPadding;
+
+		this.root.transition().duration(options.animationDuration)
+			.attr("width", function() {
+				if (options.legendVerticalPosition === "middle" || options.legendVerticalPosition === "center") {
+					return graphWidth + legendWidth;
+				}
+				return Math.max(graphWidth, legendWidth);
+			})
+			.attr("height", function() {
+				if (options.legendVerticalPosition === "middle" || options.legendVerticalPosition === "center") {
+					return Math.max(graphHeight, legendHeight);
+				}
+				return graphHeight + legendHeight;
+			})
+		;
+
+		this.root.select(".graph").transition().duration(options.animationDuration)
+			.attr("y", function() {
+				if (options.legendVerticalPosition === "top") {
+					return legendHeight;
+				}
+				return 0;
+			})
+			.attr("x", function() {
+				if (
+					(options.legendVerticalPosition === "middle" || options.legendVerticalPosition === "center") &&
+					options.legendHorizontalPosition === "left") {
+					return legendWidth;
+				}
+				return 0;
+
+			})
+		;
+	},
+
+	// =========================================================================//
+	// PUBLIC API																//
+	// =========================================================================//
+
+	/**
+	 * Shift the calendar forward
+	 */
+	next: function(n) {
+		"use strict";
+
+		if (arguments.length === 0) {
+			n = 1;
+		}
+		return this.loadNextDomain(n);
+	},
+
+	/**
+	 * Shift the calendar backward
+	 */
+	previous: function(n) {
+		"use strict";
+
+		if (arguments.length === 0) {
+			n = 1;
+		}
+		return this.loadPreviousDomain(n);
+	},
+
+	/**
+	 * Jump directly to a specific date
+	 *
+	 * JumpTo will scroll the calendar until the wanted domain with the specified
+	 * date is visible. Unless you set reset to true, the wanted domain
+	 * will not necessarily be the first (leftmost) domain of the calendar.
+	 *
+	 * @param Date date Jump to the domain containing that date
+	 * @param bool reset Whether the wanted domain should be the first domain of the calendar
+	 * @param bool True of the calendar was scrolled
+	 */
+	jumpTo: function(date, reset) {
+		"use strict";
+
+		if (arguments.length < 2) {
+			reset = false;
+		}
+		var domains = this.getDomainKeys();
+		var firstDomain = domains[0];
+		var lastDomain = domains[domains.length-1];
+
+		if (date < firstDomain) {
+			return this.loadPreviousDomain(this.getDomain(firstDomain, date).length);
+		} else {
+			if (reset) {
+				return this.loadNextDomain(this.getDomain(firstDomain, date).length);
+			}
+
+			if (date > lastDomain) {
+				return this.loadNextDomain(this.getDomain(lastDomain, date).length);
+			}
+		}
+
+		return false;
+	},
+
+	/**
+	 * Navigate back to the start date
+	 *
+	 * @since  3.3.8
+	 * @return void
+	 */
+	rewind: function() {
+		"use strict";
+
+		this.jumpTo(this.options.start, true);
+	},
+
+	/**
+	 * Update the calendar with new data
+	 *
+	 * @param  object|string		dataSource		The calendar's datasource, same type as this.options.data
+	 * @param  boolean|function		afterLoad		Whether to execute afterLoad() on the data. Pass directly a function
+	 * if you don't want to use the afterLoad() callback
+	 */
+	update: function(dataSource, afterLoad, updateMode) {
+		"use strict";
+
+		if (arguments.length < 2) {
+			afterLoad = true;
+		}
+		if (arguments.length < 3) {
+			updateMode = this.RESET_ALL_ON_UPDATE;
+		}
+
+		var domains = this.getDomainKeys();
+		var self = this;
+		this.getDatas(
+			dataSource,
+			new Date(domains[0]),
+			this.getSubDomain(domains[domains.length-1]).pop(),
+			function() {
+				self.fill();
+			},
+			afterLoad,
+			updateMode
+		);
+	},
+
+	/**
+	 * Set the legend
+	 *
+	 * @param array legend an array of integer, representing the different threshold value
+	 * @param array colorRange an array of 2 hex colors, for the minimum and maximum colors
+	 */
+	setLegend: function() {
+		"use strict";
+
+		var oldLegend = this.options.legend.slice(0);
+		if (arguments.length >= 1 && Array.isArray(arguments[0])) {
+			this.options.legend = arguments[0];
+		}
+		if (arguments.length >= 2) {
+			if (Array.isArray(arguments[1]) && arguments[1].length >= 2) {
+				this.options.legendColors = [arguments[1][0], arguments[1][1]];
+			} else {
+				this.options.legendColors = arguments[1];
+			}
+		}
+
+		if ((arguments.length > 0 && !arrayEquals(oldLegend, this.options.legend)) || arguments.length >= 2) {
+			this.Legend.buildColors();
+			this.fill();
+		}
+
+		this.Legend.redraw(this.graphDim.width - this.options.domainGutter - this.options.cellPadding);
+	},
+
+	/**
+	 * Remove the legend
+	 *
+	 * @return bool False if there is no legend to remove
+	 */
+	removeLegend: function() {
+		"use strict";
+
+		if (!this.options.displayLegend) {
+			return false;
+		}
+		this.options.displayLegend = false;
+		this.Legend.remove();
+		return true;
+	},
+
+	/**
+	 * Display the legend
+	 *
+	 * @return bool False if the legend was already displayed
+	 */
+	showLegend: function() {
+		"use strict";
+
+		if (this.options.displayLegend) {
+			return false;
+		}
+		this.options.displayLegend = true;
+		this.Legend.redraw(this.graphDim.width - this.options.domainGutter - this.options.cellPadding);
+		return true;
+	},
+
+	/**
+	 * Highlight dates
+	 *
+	 * Add a highlight class to a set of dates
+	 *
+	 * @since  3.3.5
+	 * @param  array Array of dates to highlight
+	 * @return bool True if dates were highlighted
+	 */
+	highlight: function(args) {
+		"use strict";
+
+		if ((this.options.highlight = this.expandDateSetting(args)).length > 0) {
+			this.fill();
+			return true;
+		}
+		return false;
+	},
+
+	/**
+	 * Destroy the calendar
+	 *
+	 * Usage: cal = cal.destroy();
+	 *
+	 * @since  3.3.6
+	 * @param function A callback function to trigger after destroying the calendar
+	 * @return null
+	 */
+	destroy: function(callback) {
+		"use strict";
+
+		this.root.transition().duration(this.options.animationDuration)
+			.attr("width", 0)
+			.attr("height", 0)
+			.remove()
+			.each("end", function() {
+				if (typeof callback === "function") {
+					callback();
+				} else if (arguments.length > 0) {
+					console.log("Provided callback for destroy() is not a function.");
+				}
+			})
+		;
+
+		return null;
+	},
+
+	getSVG: function() {
+		"use strict";
+
+		var styles = {
+			".cal-heatmap-container": {},
+			".graph": {},
+			".graph-rect": {},
+			"rect.highlight": {},
+			"rect.now": {},
+			"text.highlight": {},
+			"text.now": {},
+			".domain-background": {},
+			".graph-label": {},
+			".subdomain-text": {},
+			".q0": {},
+			".qi": {}
+		};
+
+		for (var j = 1, total = this.options.legend.length+1; j <= total; j++) {
+			styles[".q" + j] = {};
+		}
+
+		var root = this.root;
+
+		var whitelistStyles = [
+			// SVG specific properties
+			"stroke", "stroke-width", "stroke-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-miterlimit",
+			"fill", "fill-opacity", "fill-rule",
+			"marker", "marker-start", "marker-mid", "marker-end",
+			"alignement-baseline", "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal", "glyph-orientation-vertical", "kerning", "text-anchor",
+			"shape-rendering",
+
+			// Text Specific properties
+			"text-transform", "font-family", "font", "font-size", "font-weight"
+		];
+
+		var filterStyles = function(attribute, property, value) {
+			if (whitelistStyles.indexOf(property) !== -1) {
+				styles[attribute][property] = value;
+			}
+		};
+
+		var getElement = function(e) {
+			return root.select(e)[0][0];
+		};
+
+		/* jshint forin:false */
+		for (var element in styles) {
+			if (!styles.hasOwnProperty(element)) {
+				continue;
+			}
+
+			var dom = getElement(element);
+
+			if (dom === null) {
+				continue;
+			}
+
+			// The DOM Level 2 CSS way
+			/* jshint maxdepth: false */
+			if ("getComputedStyle" in window) {
+				var cs = getComputedStyle(dom, null);
+				if (cs.length !== 0) {
+					for (var i = 0; i < cs.length; i++) {
+						filterStyles(element, cs.item(i), cs.getPropertyValue(cs.item(i)));
+					}
+
+				// Opera workaround. Opera doesn"t support `item`/`length`
+				// on CSSStyleDeclaration.
+				} else {
+					for (var k in cs) {
+						if (cs.hasOwnProperty(k)) {
+							filterStyles(element, k, cs[k]);
+						}
+					}
+				}
+
+			// The IE way
+			} else if ("currentStyle" in dom) {
+				var css = dom.currentStyle;
+				for (var p in css) {
+					filterStyles(element, p, css[p]);
+				}
+			}
+		}
+
+		var string = "<svg xmlns=\"http://www.w3.org/2000/svg\" "+
+		"xmlns:xlink=\"http://www.w3.org/1999/xlink\"><style type=\"text/css\"><![CDATA[ ";
+
+		for (var style in styles) {
+			string += style + " {\n";
+			for (var l in styles[style]) {
+				string += "\t" + l + ":" + styles[style][l] + ";\n";
+			}
+			string += "}\n";
+		}
+
+		string += "]]></style>";
+		string += new XMLSerializer().serializeToString(this.root[0][0]);
+		string += "</svg>";
+
+		return string;
+	}
+};
+
+// =========================================================================//
+// DOMAIN POSITION COMPUTATION												//
+// =========================================================================//
+
+/**
+ * Compute the position of a domain, relative to the calendar
+ */
+var DomainPosition = function() {
+	"use strict";
+
+	this.positions = d3.map();
+};
+
+DomainPosition.prototype.getPosition = function(d) {
+	"use strict";
+
+	return this.positions.get(d);
+};
+
+DomainPosition.prototype.getPositionFromIndex = function(i) {
+	"use strict";
+
+	var domains = this.getKeys();
+	return this.positions.get(domains[i]);
+};
+
+DomainPosition.prototype.getLast = function() {
+	"use strict";
+
+	var domains = this.getKeys();
+	return this.positions.get(domains[domains.length-1]);
+};
+
+DomainPosition.prototype.setPosition = function(d, dim) {
+	"use strict";
+
+	this.positions.set(d, dim);
+};
+
+DomainPosition.prototype.shiftRightBy = function(exitingDomainDim) {
+	"use strict";
+
+	this.positions.forEach(function(key, value) {
+		this.set(key, value - exitingDomainDim);
+	});
+
+	var domains = this.getKeys();
+	this.positions.remove(domains[0]);
+};
+
+DomainPosition.prototype.shiftLeftBy = function(enteringDomainDim) {
+	"use strict";
+
+	this.positions.forEach(function(key, value) {
+		this.set(key, value + enteringDomainDim);
+	});
+
+	var domains = this.getKeys();
+	this.positions.remove(domains[domains.length-1]);
+};
+
+DomainPosition.prototype.getKeys = function() {
+	"use strict";
+
+	return this.positions.keys().sort(function(a, b) {
+		return parseInt(a, 10) - parseInt(b, 10);
+	});
+};
+
+// =========================================================================//
+// LEGEND																	//
+// =========================================================================//
+
+var Legend = function(calendar) {
+	"use strict";
+
+	this.calendar = calendar;
+	this.computeDim();
+
+	if (calendar.options.legendColors !== null) {
+		this.buildColors();
+	}
+};
+
+Legend.prototype.computeDim = function() {
+	"use strict";
+
+	var options = this.calendar.options; // Shorter accessor for variable name mangling when minifying
+	this.dim = {
+		width:
+			options.legendCellSize * (options.legend.length+1) +
+			options.legendCellPadding * (options.legend.length),
+		height:
+			options.legendCellSize
+	};
+};
+
+Legend.prototype.remove = function() {
+	"use strict";
+
+	this.calendar.root.select(".graph-legend").remove();
+	this.calendar.resize();
+};
+
+Legend.prototype.redraw = function(width) {
+	"use strict";
+
+	if (!this.calendar.options.displayLegend) {
+		return false;
+	}
+
+	var parent = this;
+	var calendar = this.calendar;
+	var legend = calendar.root;
+	var legendItem;
+	var options = calendar.options; // Shorter accessor for variable name mangling when minifying
+
+	this.computeDim();
+
+	var _legend = options.legend.slice(0);
+	_legend.push(_legend[_legend.length-1]+1);
+
+	var legendElement = calendar.root.select(".graph-legend");
+	if (legendElement[0][0] !== null) {
+		legend = legendElement;
+		legendItem = legend
+			.select("g")
+			.selectAll("rect").data(_legend)
+		;
+	} else {
+		// Creating the new legend DOM if it doesn't already exist
+		legend = options.legendVerticalPosition === "top" ? legend.insert("svg", ".graph") : legend.append("svg");
+
+		legend
+			.attr("x", getLegendXPosition())
+			.attr("y", getLegendYPosition())
+		;
+
+		legendItem = legend
+			.attr("class", "graph-legend")
+			.attr("height", parent.getDim("height"))
+			.attr("width", parent.getDim("width"))
+			.append("g")
+			.selectAll().data(_legend)
+		;
+	}
+
+	legendItem
+		.enter()
+		.append("rect")
+		.call(legendCellLayout)
+		.attr("class", function(d){ return calendar.Legend.getClass(d, (calendar.legendScale === null)); })
+		.attr("fill-opacity", 0)
+		.call(function(selection) {
+			if (calendar.legendScale !== null && options.legendColors !== null && options.legendColors.hasOwnProperty("base")) {
+				selection.attr("fill", options.legendColors.base);
+			}
+		})
+		.append("title")
+	;
+
+	legendItem.exit().transition().duration(options.animationDuration)
+	.attr("fill-opacity", 0)
+	.remove();
+
+	legendItem.transition().delay(function(d, i) { return options.animationDuration * i/10; })
+		.call(legendCellLayout)
+		.attr("fill-opacity", 1)
+		.call(function(element) {
+			element.attr("fill", function(d, i) {
+				if (calendar.legendScale === null) {
+					return "";
+				}
+
+				if (i === 0) {
+					return calendar.legendScale(d - 1);
+				}
+				return calendar.legendScale(options.legend[i-1]);
+			});
+
+			element.attr("class", function(d) { return calendar.Legend.getClass(d, (calendar.legendScale === null)); });
+		})
+	;
+
+	function legendCellLayout(selection) {
+		selection
+			.attr("width", options.legendCellSize)
+			.attr("height", options.legendCellSize)
+			.attr("x", function(d, i) {
+				return i * (options.legendCellSize + options.legendCellPadding);
+			})
+		;
+	}
+
+	legendItem.select("title").text(function(d, i) {
+		if (i === 0) {
+			return (options.legendTitleFormat.lower).format({
+				min: options.legend[i],
+				name: options.itemName[1]
+			});
+		} else if (i === _legend.length-1) {
+			return (options.legendTitleFormat.upper).format({
+				max: options.legend[i-1],
+				name: options.itemName[1]
+			});
+		} else {
+			return (options.legendTitleFormat.inner).format({
+				down: options.legend[i-1],
+				up: options.legend[i],
+				name: options.itemName[1]
+			});
+		}
+	})
+	;
+
+	legend.transition().duration(options.animationDuration)
+		.attr("x", getLegendXPosition())
+		.attr("y", getLegendYPosition())
+		.attr("width", parent.getDim("width"))
+		.attr("height", parent.getDim("height"))
+	;
+
+	legend.select("g").transition().duration(options.animationDuration)
+		.attr("transform", function() {
+			if (options.legendOrientation === "vertical")	{
+				return "rotate(90 " + options.legendCellSize/2 + " " + options.legendCellSize/2 + ")";
+			}
+			return "";
+		})
+	;
+
+	function getLegendXPosition() {
+		switch(options.legendHorizontalPosition) {
+		case "right":
+			if (options.legendVerticalPosition === "center" || options.legendVerticalPosition === "middle") {
+				return width + options.legendMargin[3];
+			}
+			return width - parent.getDim("width") - options.legendMargin[1];
+		case "middle":
+		case "center":
+			return Math.round(width/2 - parent.getDim("width")/2);
+		default:
+			return options.legendMargin[3];
+		}
+	}
+
+	function getLegendYPosition() {
+		if (options.legendVerticalPosition === "bottom") {
+			return calendar.graphDim.height + options.legendMargin[0] - options.domainGutter - options.cellPadding;
+		}
+		return options.legendMargin[0];
+	}
+
+	calendar.resize();
+};
+
+/**
+ * Return the dimension of the legend
+ *
+ * Takes into account rotation
+ *
+ * @param  string axis Width or height
+ * @return int height or width in pixels
+ */
+Legend.prototype.getDim = function(axis) {
+	"use strict";
+
+	var isHorizontal = (this.calendar.options.legendOrientation === "horizontal");
+
+	switch(axis) {
+	case "width":
+		return this.dim[isHorizontal ? "width": "height"];
+	case "height":
+		return this.dim[isHorizontal ? "height": "width"];
+	}
+};
+
+Legend.prototype.buildColors = function() {
+	"use strict";
+
+	var options = this.calendar.options; // Shorter accessor for variable name mangling when minifying
+
+	if (options.legendColors === null) {
+		this.calendar.legendScale = null;
+		return false;
+	}
+
+	var _colorRange = [];
+
+	if (Array.isArray(options.legendColors)) {
+		_colorRange = options.legendColors;
+	} else if (options.legendColors.hasOwnProperty("min") && options.legendColors.hasOwnProperty("max")) {
+		_colorRange = [options.legendColors.min, options.legendColors.max];
+	} else {
+		options.legendColors = null;
+		return false;
+	}
+
+	var _legend = options.legend.slice(0);
+
+	if (_legend[0] > 0) {
+		_legend.unshift(0);
+	} else if (_legend[0] < 0) {
+		// Let's guess the leftmost value, it we have to add one
+		_legend.unshift(_legend[0] - (_legend[_legend.length-1] - _legend[0])/_legend.length);
+	}
+
+	var colorScale = d3.scale.linear()
+		.range(_colorRange)
+		.interpolate(d3.interpolateHcl)
+		.domain([d3.min(_legend), d3.max(_legend)])
+	;
+
+	var legendColors = _legend.map(function(element) { return colorScale(element); });
+	this.calendar.legendScale = d3.scale.threshold().domain(options.legend).range(legendColors);
+
+	return true;
+};
+
+/**
+ * Return the classname on the legend for the specified value
+ *
+ * @param integer n Value associated to a date
+ * @param bool withCssClass Whether to display the css class used to style the cell.
+ *                          Disabling will allow styling directly via html fill attribute
+ *
+ * @return string Classname according to the legend
+ */
+Legend.prototype.getClass = function(n, withCssClass) {
+	"use strict";
+
+	if (n === null || isNaN(n)) {
+		return "";
+	}
+
+	var index = [this.calendar.options.legend.length + 1];
+
+	for (var i = 0, total = this.calendar.options.legend.length-1; i <= total; i++) {
+
+		if (this.calendar.options.legend[0] > 0 && n < 0) {
+			index = ["1", "i"];
+			break;
+		}
+
+		if (n <= this.calendar.options.legend[i]) {
+			index = [i+1];
+			break;
+		}
+	}
+
+	if (n === 0) {
+		index.push(0);
+	}
+
+	index.unshift("");
+	return (index.join(" r") + (withCssClass ? index.join(" q"): "")).trim();
+};
+
+/**
+ * Sprintf like function
+ * @source http://stackoverflow.com/a/4795914/805649
+ * @return String
+ */
+String.prototype.format = function () {
+	"use strict";
+
+	var formatted = this;
+	for (var prop in arguments[0]) {
+		if (arguments[0].hasOwnProperty(prop)) {
+			var regexp = new RegExp("\\{" + prop + "\\}", "gi");
+			formatted = formatted.replace(regexp, arguments[0][prop]);
+		}
+	}
+	return formatted;
+};
+
+/**
+ * #source http://stackoverflow.com/a/383245/805649
+ */
+function mergeRecursive(obj1, obj2) {
+	"use strict";
+
+	/*jshint forin:false */
+	for (var p in obj2) {
+		try {
+			// Property in destination object set; update its value.
+			if (obj2[p].constructor === Object) {
+				obj1[p] = mergeRecursive(obj1[p], obj2[p]);
+			} else {
+				obj1[p] = obj2[p];
+			}
+		} catch(e) {
+			// Property in destination object not set; create it and set its value.
+			obj1[p] = obj2[p];
+		}
+	}
+
+	return obj1;
+}
+
+/**
+ * Check if 2 arrays are equals
+ *
+ * @link http://stackoverflow.com/a/14853974/805649
+ * @param  array array the array to compare to
+ * @return bool true of the 2 arrays are equals
+ */
+function arrayEquals(arrayA, arrayB) {
+	"use strict";
+
+    // if the other array is a falsy value, return
+    if (!arrayB || !arrayA) {
+        return false;
+    }
+
+    // compare lengths - can save a lot of time
+    if (arrayA.length !== arrayB.length) {
+        return false;
+    }
+
+    for (var i = 0; i < arrayA.length; i++) {
+        // Check if we have nested arrays
+        if (arrayA[i] instanceof Array && arrayB[i] instanceof Array) {
+            // recurse into the nested arrays
+            if (!arrayEquals(arrayA[i], arrayB[i])) {
+                return false;
+            }
+        }
+        else if (arrayA[i] !== arrayB[i]) {
+            // Warning - two different object instances will never be equal: {x:20} != {x:20}
+            return false;
+        }
+    }
+    return true;
+}
+
+/**
+ * AMD Loader
+ */
+if (typeof define === "function" && define.amd) {
+	define(["d3"], function() {
+		"use strict";
+
+		return CalHeatMap;
+	});
+}
diff --git a/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.min.js b/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.min.js
new file mode 100644
index 0000000..1828163
--- /dev/null
+++ b/pagure/static/vendor/cal-heatmap/cal-heatmap.3.3.10.min.js
@@ -0,0 +1,10 @@
+/*! cal-heatmap v3.3.10 (Tue Dec 03 2013 19:30:23)
+ *  ---------------------------------------------
+ *  Cal-Heatmap is a javascript module to create calendar heatmap to visualize time series data
+ *  https://github.com/kamisama/cal-heatmap
+ *  Licensed under the MIT license
+ *  Copyright 2013 Wan Qi Chen
+ */
+function mergeRecursive(t,e){"use strict";for(var n in e)try{t[n]=e[n].constructor===Object?mergeRecursive(t[n],e[n]):e[n]}catch(i){t[n]=e[n]}return t}function arrayEquals(t,e){"use strict";if(!e||!t)return!1;if(t.length!==e.length)return!1;for(var n=0;t.length>n;n++)if(t[n]instanceof Array&&e[n]instanceof Array){if(!arrayEquals(t[n],e[n]))return!1}else if(t[n]!==e[n])return!1;return!0}var CalHeatMap=function(){"use strict";function t(){i.verticalDomainLabel="top"===i.options.label.position||"bottom"===i.options.label.position,i.domainVerticalLabelHeight=null===i.options.label.height?Math.max(25,2*i.options.cellSize):i.options.label.height,i.domainHorizontalLabelWidth=0,""===i.options.domainLabelFormat&&null===i.options.label.height&&(i.domainVerticalLabelHeight=0),i.verticalDomainLabel||(i.domainVerticalLabelHeight=0,i.domainHorizontalLabelWidth=i.options.label.width),i.paint(),i.options.nextSelector!==!1&&d3.select(i.options.nextSelector).on("click."+i.options.itemNamespace,function(){return d3.event.preventDefault(),i.loadNextDomain(1)}),i.options.previousSelector!==!1&&d3.select(i.options.previousSelector).on("click."+i.options.itemNamespace,function(){return d3.event.preventDefault(),i.loadPreviousDomain(1)}),i.Legend.redraw(i.graphDim.width-i.options.domainGutter-i.options.cellPadding),i.afterLoad();var t=i.getDomainKeys();i.options.loadOnInit?i.getDatas(i.options.data,new Date(t[0]),i.getSubDomain(t[t.length-1]).pop(),function(){i.fill(),i.onComplete()}):i.onComplete(),i.checkIfMinDomainIsReached(t[0]),i.checkIfMaxDomainIsReached(i.getNextDomain().getTime())}function e(t,e){var n=i.options.cellSize*i._domainType[i.options.subDomain].column(t)+i.options.cellPadding*i._domainType[i.options.subDomain].column(t);return 2===arguments.length&&e===!0?n+=i.domainHorizontalLabelWidth+i.options.domainGutter+i.options.domainMargin[1]+i.options.domainMargin[3]:n}function n(t,e){var n=i.options.cellSize*i._domainType[i.options.subDomain].row(t)+i.options.cellPadding*i._domainType[i.options.subDomain].row(t);return 2===arguments.length&&e===!0&&(n+=i.options.domainGutter+i.domainVerticalLabelHeight+i.options.domainMargin[0]+i.options.domainMargin[2]),n}var i=this;this.allowedDataType=["json","csv","tsv","txt"],this.options={itemSelector:"#cal-heatmap",paintOnLoad:!0,range:12,cellSize:10,cellPadding:2,cellRadius:0,domainGutter:2,domainMargin:[0,0,0,0],domain:"hour",subDomain:"min",colLimit:null,rowLimit:null,weekStartOnMonday:!0,start:new Date,minDate:null,maxDate:null,data:"",dataType:this.allowedDataType[0],considerMissingDataAsZero:!1,loadOnInit:!0,verticalOrientation:!1,domainDynamicDimension:!0,label:{position:"bottom",align:"center",offset:{x:0,y:0},rotate:null,width:100,height:null},legend:[10,20,30,40],displayLegend:!0,legendCellSize:10,legendCellPadding:2,legendMargin:[0,0,0,0],legendVerticalPosition:"bottom",legendHorizontalPosition:"left",legendOrientation:"horizontal",legendColors:null,highlight:[],itemName:["item","items"],domainLabelFormat:null,subDomainTitleFormat:{empty:"{date}",filled:"{count} {name} {connector} {date}"},subDomainDateFormat:null,subDomainTextFormat:null,legendTitleFormat:{lower:"less than {min} {name}",inner:"between {down} and {up} {name}",upper:"more than {max} {name}"},animationDuration:500,nextSelector:!1,previousSelector:!1,itemNamespace:"cal-heatmap",tooltip:!1,onClick:null,afterLoad:null,afterLoadNextDomain:null,afterLoadPreviousDomain:null,onComplete:null,afterLoadData:function(t){return t},onMaxDomainReached:null,onMinDomainReached:null},this._domainType={min:{name:"minute",level:10,maxItemNumber:60,defaultRowNumber:10,defaultColumnNumber:6,row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){return Math.floor(t.getMinutes()/i._domainType.min.row(t))},y:function(t){return t.getMinutes()%i._domainType.min.row(t)}},format:{date:"%H:%M, %A %B %-e, %Y",legend:"",connector:"at"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes()).getTime()}},hour:{name:"hour",level:20,maxItemNumber:function(t){switch(i.options.domain){case"day":return 24;case"week":return 168;case"month":return 24*(i.options.domainDynamicDimension?i.getDayCountInMonth(t):31)}},defaultRowNumber:6,defaultColumnNumber:function(t){switch(i.options.domain){case"day":return 4;case"week":return 28;case"month":return i.options.domainDynamicDimension?i.getDayCountInMonth(t):31}},row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){return"month"===i.options.domain?i.options.colLimit>0||i.options.rowLimit>0?Math.floor((t.getHours()+24*(t.getDate()-1))/i._domainType.hour.row(t)):Math.floor(t.getHours()/i._domainType.hour.row(t))+4*(t.getDate()-1):"week"===i.options.domain?i.options.colLimit>0||i.options.rowLimit>0?Math.floor((t.getHours()+24*i.getWeekDay(t))/i._domainType.hour.row(t)):Math.floor(t.getHours()/i._domainType.hour.row(t))+4*i.getWeekDay(t):Math.floor(t.getHours()/i._domainType.hour.row(t))},y:function(t){var e=t.getHours();if(i.options.colLimit>0||i.options.rowLimit>0)switch(i.options.domain){case"month":e+=24*(t.getDate()-1);break;case"week":e+=24*i.getWeekDay(t)}return Math.floor(e%i._domainType.hour.row(t))}},format:{date:"%Hh, %A %B %-e, %Y",legend:"%H:00",connector:"at"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours()).getTime()}},day:{name:"day",level:30,maxItemNumber:function(t){switch(i.options.domain){case"week":return 7;case"month":return i.options.domainDynamicDimension?i.getDayCountInMonth(t):31;case"year":return i.options.domainDynamicDimension?i.getDayCountInYear(t):366}},defaultColumnNumber:function(t){switch(t=new Date(t),i.options.domain){case"week":return 1;case"month":return i.options.domainDynamicDimension&&!i.options.verticalOrientation?i.getWeekNumber(new Date(t.getFullYear(),t.getMonth()+1,0))-i.getWeekNumber(t)+1:6;case"year":return i.options.domainDynamicDimension?i.getWeekNumber(new Date(t.getFullYear(),11,31))-i.getWeekNumber(new Date(t.getFullYear(),0))+1:54}},defaultRowNumber:7,row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){switch(i.options.domain){case"week":return Math.floor(i.getWeekDay(t)/i._domainType.day.row(t));case"month":return i.options.colLimit>0||i.options.rowLimit>0?Math.floor((t.getDate()-1)/i._domainType.day.row(t)):i.getWeekNumber(t)-i.getWeekNumber(new Date(t.getFullYear(),t.getMonth()));case"year":return i.options.colLimit>0||i.options.rowLimit>0?Math.floor((i.getDayOfYear(t)-1)/i._domainType.day.row(t)):i.getWeekNumber(t)}},y:function(t){var e=i.getWeekDay(t);if(i.options.colLimit>0||i.options.rowLimit>0)switch(i.options.domain){case"year":e=i.getDayOfYear(t)-1;break;case"week":e=i.getWeekDay(t);break;case"month":e=t.getDate()-1}return Math.floor(e%i._domainType.day.row(t))}},format:{date:"%A %B %-e, %Y",legend:"%e %b",connector:"on"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()}},week:{name:"week",level:40,maxItemNumber:54,defaultColumnNumber:function(t){switch(t=new Date(t),i.options.domain){case"year":return i._domainType.week.maxItemNumber;case"month":return i.getWeekNumber(new Date(t.getFullYear(),t.getMonth()+1,0))-i.getWeekNumber(t)}},defaultRowNumber:1,row:function(t){return i.getSubDomainRowNumber(t)},column:function(t){return i.getSubDomainColumnNumber(t)},position:{x:function(t){switch(i.options.domain){case"year":return Math.floor(i.getWeekNumber(t)/i._domainType.week.row(t));case"month":return Math.floor(i.getMonthWeekNumber(t)/i._domainType.week.row(t))}},y:function(t){return i.getWeekNumber(t)%i._domainType.week.row(t)}},format:{date:"%B Week #%W",legend:"%B Week #%W",connector:"on"},extractUnit:function(t){var e=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n=e.getDay()-1;return 0>n&&(n=6),e.setDate(e.getDate()-n),e.getTime()}},month:{name:"month",level:50,maxItemNumber:12,defaultColumnNumber:12,defaultRowNumber:1,row:function(){return i.getSubDomainRowNumber()},column:function(){return i.getSubDomainColumnNumber()},position:{x:function(t){return Math.floor(t.getMonth()/i._domainType.month.row(t))},y:function(t){return t.getMonth()%i._domainType.month.row(t)}},format:{date:"%B %Y",legend:"%B",connector:"on"},extractUnit:function(t){return new Date(t.getFullYear(),t.getMonth()).getTime()}},year:{name:"year",level:60,row:function(){return i.options.rowLimit||1},column:function(){return i.options.colLimit||1},position:{x:function(){return 1},y:function(){return 1}},format:{date:"%Y",legend:"%Y",connector:"on"},extractUnit:function(t){return new Date(t.getFullYear()).getTime()}}};for(var o in this._domainType)if(this._domainType.hasOwnProperty(o)){var a=this._domainType[o];this._domainType["x_"+o]={name:"x_"+o,level:a.type,maxItemNumber:a.maxItemNumber,defaultRowNumber:a.defaultRowNumber,defaultColumnNumber:a.defaultColumnNumber,row:a.column,column:a.row,position:{x:a.position.y,y:a.position.x},format:a.format,extractUnit:a.extractUnit}}this.lastInsertedSvg=null,this._completed=!1,this._domains=d3.map(),this.graphDim={width:0,height:0},this.legendDim={width:0,height:0},this.NAVIGATE_LEFT=1,this.NAVIGATE_RIGHT=2,this.RESET_ALL_ON_UPDATE=0,this.RESET_SINGLE_ON_UPDATE=1,this.APPEND_ON_UPDATE=2,this.DEFAULT_LEGEND_MARGIN=10,this.root=null,this.tooltip=null,this._maxDomainReached=!1,this._minDomainReached=!1,this.domainPosition=new DomainPosition,this.Legend=null,this.legendScale=null,this.DSTDomain=[],this._init=function(){return i.getDomain(i.options.start).map(function(t){return t.getTime()}).map(function(t){i._domains.set(t,i.getSubDomain(t).map(function(t){return{t:i._domainType[i.options.subDomain].extractUnit(t),v:null}}))}),i.root=d3.select(i.options.itemSelector).append("svg").attr("class","cal-heatmap-container"),i.tooltip=d3.select(i.options.itemSelector).attr("style",function(){var t=d3.select(i.options.itemSelector).attr("style");return(null!==t?t:"")+"position:relative;"}).append("div").attr("class","ch-tooltip"),i.root.attr("x",0).attr("y",0).append("svg").attr("class","graph"),i.Legend=new Legend(i),i.options.paintOnLoad&&t(),!0},this.paint=function(t){function o(e,n,o,a){var r=0;switch(t){case!1:return r=n[o],n[o]+=a,i.domainPosition.setPosition(e,r),r;case i.NAVIGATE_RIGHT:return i.domainPosition.setPosition(e,n[o]),l=a,u=i.domainPosition.getPositionFromIndex(1),i.domainPosition.shiftRightBy(u),n[o];case i.NAVIGATE_LEFT:return r=-a,l=-r,u=n[o]-i.domainPosition.getLast(),i.domainPosition.setPosition(e,r),i.domainPosition.shiftLeftBy(l),r}}function a(t){switch(r.label.rotate){case"right":t.attr("transform",function(t){var n="rotate(90), ";switch(r.label.position){case"right":n+="translate(-"+e(t)+" , -"+e(t)+")";break;case"left":n+="translate(0, -"+i.domainHorizontalLabelWidth+")"}return n});break;case"left":t.attr("transform",function(t){var n="rotate(270), ";switch(r.label.position){case"right":n+="translate(-"+(e(t)+i.domainHorizontalLabelWidth)+" , "+e(t)+")";break;case"left":n+="translate(-"+i.domainHorizontalLabelWidth+" , "+i.domainHorizontalLabelWidth+")"}return n})}}var r=i.options;0===arguments.length&&(t=!1);var s=i.root.select(".graph").selectAll(".graph-domain").data(function(){var e=i.getDomainKeys();return t===i.NAVIGATE_LEFT?e.reverse():e},function(t){return t}),l=0,u=0,m=s.enter().append("svg").attr("width",function(t){return e(t,!0)}).attr("height",function(t){return n(t,!0)}).attr("x",function(t){return r.verticalOrientation?(i.graphDim.width=Math.max(i.graphDim.width,e(t,!0)),0):o(t,i.graphDim,"width",e(t,!0))}).attr("y",function(t){return r.verticalOrientation?o(t,i.graphDim,"height",n(t,!0)):(i.graphDim.height=Math.max(i.graphDim.height,n(t,!0)),0)}).attr("class",function(t){var e="graph-domain",n=new Date(t);switch(r.domain){case"hour":e+=" h_"+n.getHours();case"day":e+=" d_"+n.getDate()+" dy_"+n.getDay();case"week":e+=" w_"+i.getWeekNumber(n);case"month":e+=" m_"+(n.getMonth()+1);case"year":e+=" y_"+n.getFullYear()}return e});i.lastInsertedSvg=m,m.append("rect").attr("width",function(t){return e(t,!0)-r.domainGutter-r.cellPadding}).attr("height",function(t){return n(t,!0)-r.domainGutter-r.cellPadding}).attr("class","domain-background");var c=m.append("svg").attr("x",function(){return"left"===r.label.position?i.domainHorizontalLabelWidth+r.domainMargin[3]:r.domainMargin[3]}).attr("y",function(){return"top"===r.label.position?i.domainVerticalLabelHeight+r.domainMargin[0]:r.domainMargin[0]}).attr("class","graph-subdomain-group"),h=c.selectAll("g").data(function(t){return i._domains.get(t)}).enter().append("g");h.append("rect").attr("class",function(t){return"graph-rect"+i.getHighlightClassName(t.t)+(null!==r.onClick?" hover_cursor":"")}).attr("width",r.cellSize).attr("height",r.cellSize).attr("x",function(t){return i.positionSubDomainX(t.t)}).attr("y",function(t){return i.positionSubDomainY(t.t)}).on("click",function(t){return null!==r.onClick?i.onClick(new Date(t.t),t.v):void 0}).call(function(t){r.cellRadius>0&&t.attr("rx",r.cellRadius).attr("ry",r.cellRadius),null!==i.legendScale&&null!==r.legendColors&&r.legendColors.hasOwnProperty("base")&&t.attr("fill",r.legendColors.base),r.tooltip&&(t.on("mouseover",function(t){var e=this.parentNode.parentNode.parentNode;i.tooltip.html(i.getSubDomainTitle(t)).attr("style","display: block;"),i.tooltip.attr("style","display: block; left: "+(i.positionSubDomainX(t.t)-i.tooltip[0][0].offsetWidth/2+r.cellSize/2+parseInt(e.getAttribute("x"),10))+"px; "+"top: "+(i.positionSubDomainY(t.t)-i.tooltip[0][0].offsetHeight-r.cellSize/2+parseInt(e.getAttribute("y"),10))+"px;")}),t.on("mouseout",function(){i.tooltip.attr("style","display:none").html("")}))}),r.tooltip||h.append("title").text(function(t){return i.formatDate(new Date(t.t),r.subDomainDateFormat)}),""!==r.domainLabelFormat&&m.append("text").attr("class","graph-label").attr("y",function(t){var e=r.domainMargin[0];switch(r.label.position){case"top":e+=i.domainVerticalLabelHeight/2;break;case"bottom":e+=n(t)+i.domainVerticalLabelHeight/2}return e+r.label.offset.y*("right"===r.label.rotate&&"right"===r.label.position||"left"===r.label.rotate&&"left"===r.label.position?-1:1)}).attr("x",function(t){var n=r.domainMargin[3];switch(r.label.position){case"right":n+=e(t);break;case"bottom":case"top":n+=e(t)/2}return"right"===r.label.align?n+i.domainHorizontalLabelWidth-r.label.offset.x*("right"===r.label.rotate?-1:1):n+r.label.offset.x}).attr("text-anchor",function(){switch(r.label.align){case"start":case"left":return"start";case"end":case"right":return"end";default:return"middle"}}).attr("dominant-baseline",function(){return i.verticalDomainLabel?"middle":"top"}).text(function(t){return i.formatDate(new Date(t),r.domainLabelFormat)}).call(a),null!==r.subDomainTextFormat&&h.append("text").attr("class",function(t){return"subdomain-text"+i.getHighlightClassName(t.t)}).attr("x",function(t){return i.positionSubDomainX(t.t)+r.cellSize/2}).attr("y",function(t){return i.positionSubDomainY(t.t)+r.cellSize/2}).attr("text-anchor","middle").attr("dominant-baseline","central").text(function(t){return i.formatDate(new Date(t.t),r.subDomainTextFormat)}),t!==!1&&s.transition().duration(r.animationDuration).attr("x",function(t){return r.verticalOrientation?0:i.domainPosition.getPosition(t)}).attr("y",function(t){return r.verticalOrientation?i.domainPosition.getPosition(t):0});var g=i.graphDim.width,d=i.graphDim.height;r.verticalOrientation?i.graphDim.height+=l-u:i.graphDim.width+=l-u,s.exit().transition().duration(r.animationDuration).attr("x",function(n){if(r.verticalOrientation)return 0;switch(t){case i.NAVIGATE_LEFT:return Math.min(i.graphDim.width,g);case i.NAVIGATE_RIGHT:return-e(n,!0)}}).attr("y",function(e){if(!r.verticalOrientation)return 0;switch(t){case i.NAVIGATE_LEFT:return Math.min(i.graphDim.height,d);case i.NAVIGATE_RIGHT:return-n(e,!0)}}).remove(),i.resize()}};CalHeatMap.prototype={init:function(t){"use strict";function e(t,e,n){if((e&&t===!1||t instanceof Element||"string"==typeof t)&&""!==t)return!0;throw Error("The "+n+" is not valid")}function n(t){switch(t){case"year":return"month";case"month":return"day";case"week":return"day";case"day":return"hour";default:return"min"}}function i(){if(!m._domainType.hasOwnProperty(c.domain)||"min"===c.domain||"x_"===c.domain.substring(0,2))throw Error("The domain '"+c.domain+"' is not valid");if(!m._domainType.hasOwnProperty(c.subDomain)||"year"===c.subDomain)throw Error("The subDomain '"+c.subDomain+"' is not valid");if(m._domainType[c.domain].level<=m._domainType[c.subDomain].level)throw Error("'"+c.subDomain+"' is not a valid subDomain to '"+c.domain+"'");return!0}function o(){if(!t.hasOwnProperty("label")||t.hasOwnProperty("label")&&!t.label.hasOwnProperty("align")){switch(c.label.position){case"left":c.label.align="right";break;case"right":c.label.align="left";break;default:c.label.align="center"}"left"===c.label.rotate?c.label.align="right":"right"===c.label.rotate&&(c.label.align="left")}(!t.hasOwnProperty("label")||t.hasOwnProperty("label")&&!t.label.hasOwnProperty("offset"))&&("left"===c.label.position||"right"===c.label.position)&&(c.label.offset={x:10,y:15})}function a(){switch(c.legendVerticalPosition){case"top":c.legendMargin[2]=m.DEFAULT_LEGEND_MARGIN;break;case"bottom":c.legendMargin[0]=m.DEFAULT_LEGEND_MARGIN;break;case"middle":case"center":c.legendMargin["right"===c.legendHorizontalPosition?3:1]=m.DEFAULT_LEGEND_MARGIN}}function r(t){switch("number"==typeof t&&(t=[t]),Array.isArray(t)||(console.log("Margin only takes an integer or an array of integers"),t=[0]),t.length){case 1:return[t[0],t[0],t[0],t[0]];case 2:return[t[0],t[1],t[0],t[1]];case 3:return[t[0],t[1],t[2],t[1]];case 4:return t;default:return t.slice(0,4)}}function s(t){return"string"==typeof t?[t,t+(""!==t?"s":"")]:Array.isArray(t)?1===t.length?[t[0],t[0]+"s"]:t.length>2?t.slice(0,2):t:["item","items"]}function l(t){return t>0?t:null}function u(t){return t>0&&c.colLimit>0?(console.log("colLimit and rowLimit are mutually exclusive, rowLimit will be ignored"),null):t>0?t:null}var m=this,c=m.options=mergeRecursive(m.options,t);if(i(),e(c.itemSelector,!1,"itemSelector"),-1===m.allowedDataType.indexOf(c.dataType))throw Error("The data type '"+c.dataType+"' is not valid data type");if(null===d3.select(c.itemSelector)[0][0])throw Error("The node '"+c.itemSelector+"' specified in itemSelector does not exists");try{e(c.nextSelector,!0,"nextSelector"),e(c.previousSelector,!0,"previousSelector")}catch(h){return console.log(h.message),!1}t.hasOwnProperty("subDomain")||(this.options.subDomain=n(t.domain)),("string"!=typeof c.itemNamespace||""===c.itemNamespace)&&(console.log("itemNamespace can not be empty, falling back to cal-heatmap"),c.itemNamespace="cal-heatmap");var g=["data","onComplete","onClick","afterLoad","afterLoadData","afterLoadPreviousDomain","afterLoadNextDomain"];for(var d in g)t.hasOwnProperty(g[d])&&(c[g[d]]=t[g[d]]);return c.subDomainDateFormat="string"==typeof c.subDomainDateFormat||"function"==typeof c.subDomainDateFormat?c.subDomainDateFormat:this._domainType[c.subDomain].format.date,c.domainLabelFormat="string"==typeof c.domainLabelFormat||"function"==typeof c.domainLabelFormat?c.domainLabelFormat:this._domainType[c.domain].format.legend,c.subDomainTextFormat="string"==typeof c.subDomainTextFormat&&""!==c.subDomainTextFormat||"function"==typeof c.subDomainTextFormat?c.subDomainTextFormat:null,c.domainMargin=r(c.domainMargin),c.legendMargin=r(c.legendMargin),c.highlight=m.expandDateSetting(c.highlight),c.itemName=s(c.itemName),c.colLimit=l(c.colLimit),c.rowLimit=u(c.rowLimit),t.hasOwnProperty("legendMargin")||a(),o(),this._init()},expandDateSetting:function(t){"use strict";return Array.isArray(t)||(t=[t]),t.map(function(t){return"now"===t?new Date:t instanceof Date?t:!1}).filter(function(t){return t!==!1})},fill:function(t){"use strict";function e(t){return null===n.legendScale?!1:(t.attr("fill",function(t){return 0===t.v&&null!==i.legendColors&&i.legendColors.hasOwnProperty("empty")?i.legendColors.empty:0>t.v&&i.legend[0]>0&&null!==i.legendColors&&i.legendColors.hasOwnProperty("overflow")?i.legendColors.overflow:n.legendScale(Math.min(t.v,i.legend[i.legend.length-1]))}),void 0)}var n=this,i=n.options;0===arguments.length&&(t=n.root.selectAll(".graph-domain"));var o=t.selectAll("svg").selectAll("g").data(function(t){return n._domains.get(t)});o.transition().duration(i.animationDuration).select("rect").attr("class",function(t){var e=n.getHighlightClassName(t.t);return null===n.legendScale&&(e+=" graph-rect"),null!==t.v?e+=" "+n.Legend.getClass(t.v,null===n.legendScale):i.considerMissingDataAsZero&&(e+=" "+n.Legend.getClass(0,null===n.legendScale)),null!==i.onClick&&(e+=" hover_cursor"),e}).call(e),o.transition().duration(i.animationDuration).select("title").text(function(t){return n.getSubDomainTitle(t)})},triggerEvent:function(t,e,n){"use strict";return 3===arguments.length&&n||null===this.options[t]?!0:"function"==typeof this.options[t]?("function"==typeof e&&(e=e()),this.options[t].apply(this,e)):(console.log("Provided callback for "+t+" is not a function."),!1)},onClick:function(t,e){"use strict";return this.triggerEvent("onClick",[t,e])},afterLoad:function(){"use strict";return this.triggerEvent("afterLoad")},onComplete:function(){"use strict";var t=this.triggerEvent("onComplete",[],this._completed);return this._completed=!0,t},afterLoadPreviousDomain:function(t){"use strict";var e=this;return this.triggerEvent("afterLoadPreviousDomain",function(){var n=e.getSubDomain(t);return[n.shift(),n.pop()]})},afterLoadNextDomain:function(t){"use strict";var e=this;return this.triggerEvent("afterLoadNextDomain",function(){var n=e.getSubDomain(t);return[n.shift(),n.pop()]})},onMinDomainReached:function(t){"use strict";return this._minDomainReached=t,this.triggerEvent("onMinDomainReached",[t])},onMaxDomainReached:function(t){"use strict";return this._maxDomainReached=t,this.triggerEvent("onMaxDomainReached",[t])},checkIfMinDomainIsReached:function(t,e){"use strict";this.minDomainIsReached(t)&&this.onMinDomainReached(!0),2===arguments.length&&this._maxDomainReached&&!this.maxDomainIsReached(e)&&this.onMaxDomainReached(!1)},checkIfMaxDomainIsReached:function(t,e){"use strict";this.maxDomainIsReached(t)&&this.onMaxDomainReached(!0),2===arguments.length&&this._minDomainReached&&!this.minDomainIsReached(e)&&this.onMinDomainReached(!1)},formatNumber:d3.format(",g"),formatDate:function(t,e){"use strict";if(2>arguments.length&&(e="title"),"function"==typeof e)return e(t);var n=d3.time.format(e);return n(t)},getSubDomainTitle:function(t){"use strict";if(null!==t.v||this.options.considerMissingDataAsZero){var e=t.v;return null===e&&this.options.considerMissingDataAsZero&&(e=0),this.options.subDomainTitleFormat.filled.format({count:this.formatNumber(e),name:this.options.itemName[1!==e?1:0],connector:this._domainType[this.options.subDomain].format.connector,date:this.formatDate(new Date(t.t),this.options.subDomainDateFormat)})}return this.options.subDomainTitleFormat.empty.format({date:this.formatDate(new Date(t.t),this.options.subDomainDateFormat)})},loadNextDomain:function(t){"use strict";if(this._maxDomainReached||0===t)return!1;var e=this.loadNewDomains(this.NAVIGATE_RIGHT,this.getDomain(this.getNextDomain(),t));return this.afterLoadNextDomain(e.end),this.checkIfMaxDomainIsReached(this.getNextDomain().getTime(),e.start),!0},loadPreviousDomain:function(t){"use strict";if(this._minDomainReached||0===t)return!1;var e=this.loadNewDomains(this.NAVIGATE_LEFT,this.getDomain(this.getDomainKeys()[0],-t).reverse());return this.afterLoadPreviousDomain(e.start),this.checkIfMinDomainIsReached(e.start,e.end),!0},loadNewDomains:function(t,e){"use strict";function n(t){return{t:i._domainType[i.options.subDomain].extractUnit(t),v:null}}for(var i=this,o=t===this.NAVIGATE_LEFT,a=-1,r=e.length,s=this.getDomainKeys();r>++a;){if(o&&this.minDomainIsReached(e[a])){e=e.slice(0,a+1);break}if(!o&&this.maxDomainIsReached(e[a])){e=e.slice(0,a);break}}for(e=e.slice(-this.options.range),a=0,r=e.length;r>a;a++)this._domains.set(e[a].getTime(),this.getSubDomain(e[a]).map(n)),this._domains.remove(o?s.pop():s.shift());return s=this.getDomainKeys(),o&&(e=e.reverse()),this.paint(t),this.getDatas(this.options.data,e[0],this.getSubDomain(e[e.length-1]).pop(),function(){i.fill(i.lastInsertedSvg)}),{start:e[o?0:1],end:s[s.length-1]}},maxDomainIsReached:function(t){"use strict";return null!==this.options.maxDate&&t>this.options.maxDate.getTime()},minDomainIsReached:function(t){"use strict";return null!==this.options.minDate&&this.options.minDate.getTime()>=t},getDomainKeys:function(){"use strict";return this._domains.keys().map(function(t){return parseInt(t,10)}).sort(function(t,e){return t-e})},positionSubDomainX:function(t){"use strict";var e=this._domainType[this.options.subDomain].position.x(new Date(t));return e*this.options.cellSize+e*this.options.cellPadding},positionSubDomainY:function(t){"use strict";var e=this._domainType[this.options.subDomain].position.y(new Date(t));return e*this.options.cellSize+e*this.options.cellPadding},getSubDomainColumnNumber:function(t){"use strict";if(this.options.rowLimit>0){var e=this._domainType[this.options.subDomain].maxItemNumber;return"function"==typeof e&&(e=e(t)),Math.ceil(e/this.options.rowLimit)}var n=this._domainType[this.options.subDomain].defaultColumnNumber;return"function"==typeof n&&(n=n(t)),this.options.colLimit||n},getSubDomainRowNumber:function(t){"use strict";if(this.options.colLimit>0){var e=this._domainType[this.options.subDomain].maxItemNumber;return"function"==typeof e&&(e=e(t)),Math.ceil(e/this.options.colLimit)}var n=this._domainType[this.options.subDomain].defaultRowNumber;return"function"==typeof n&&(n=n(t)),this.options.rowLimit||n},getHighlightClassName:function(t){"use strict";if(t=new Date(t),this.options.highlight.length>0)for(var e in this.options.highlight)if(this.options.highlight[e]instanceof Date&&this.dateIsEqual(this.options.highlight[e],t))return" highlight"+(this.isNow(this.options.highlight[e])?" now":"");return""},isNow:function(t){"use strict";return this.dateIsEqual(t,new Date)},dateIsEqual:function(t,e){"use strict";switch(this.options.subDomain){case"x_min":case"min":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()&&t.getHours()===e.getHours()&&t.getMinutes()===e.getMinutes();case"x_hour":case"hour":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()&&t.getHours()===e.getHours();case"x_day":case"day":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate();case"x_week":case"week":case"x_month":case"month":return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth();default:return!1}},getDayOfYear:d3.time.format("%j"),getWeekNumber:function(t){"use strict";var e=this.options.weekStartOnMonday===!0?d3.time.format("%W"):d3.time.format("%U");return e(t)},getMonthWeekNumber:function(t){"use strict";"number"==typeof t&&(t=new Date(t));var e=this.getWeekNumber(new Date(t.getFullYear(),t.getMonth()));return this.getWeekNumber(t)-e-1},getWeekNumberInYear:function(t){"use strict";"number"==typeof t&&(t=new Date(t))},getDayCountInMonth:function(t){"use strict";return this.getEndOfMonth(t).getDate()},getDayCountInYear:function(t){"use strict";return"number"==typeof t&&(t=new Date(t)),1===new Date(t.getFullYear(),1,29).getMonth()?366:365},getWeekDay:function(t){"use strict";return this.options.weekStartOnMonday===!1?t.getDay():0===t.getDay()?6:t.getDay()-1},getEndOfMonth:function(t){"use strict";return"number"==typeof t&&(t=new Date(t)),new Date(t.getFullYear(),t.getMonth()+1,0)},jumpDate:function(t,e,n){"use strict";var i=new Date(t);switch(n){case"hour":i.setHours(i.getHours()+e);break;case"day":i.setHours(i.getHours()+24*e);break;case"week":i.setHours(i.getHours()+7*24*e);break;case"month":i.setMonth(i.getMonth()+e);break;case"year":i.setFullYear(i.getFullYear()+e)}return new Date(i)},getMinuteDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours()),i=null;return i=e instanceof Date?new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()):new Date(+n+60*1e3*e),d3.time.minutes(Math.min(n,i),Math.max(n,i))},getHourDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours()),i=null;e instanceof Date?i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours()):(i=new Date(n),i.setHours(i.getHours()+e));var o=d3.time.hours(Math.min(n,i),Math.max(n,i)),a=0,r=o.length;for(a=0;r>a;a++)if(a>0&&o[a].getHours()===o[a-1].getHours()){this.DSTDomain.push(o[a].getTime()),o.splice(a,1);break}return"number"==typeof e&&o.length>Math.abs(e)&&o.splice(o.length-1,1),o},getDayDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),i=null;return e instanceof Date?i=new Date(e.getFullYear(),e.getMonth(),e.getDate()):(i=new Date(n),i=new Date(i.setDate(i.getDate()+parseInt(e,10)))),d3.time.days(Math.min(n,i),Math.max(n,i))},getWeekDomain:function(t,e){"use strict";var n;this.options.weekStartOnMonday===!1?n=new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()):1===t.getDay()?n=new Date(t.getFullYear(),t.getMonth(),t.getDate()):0===t.getDay()?(n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n.setDate(n.getDate()-6)):n=new Date(t.getFullYear(),t.getMonth(),t.getDate()-t.getDay()+1);var i=new Date(n),o=e;return"object"!=typeof e&&(o=new Date(i.setDate(i.getDate()+7*e))),this.options.weekStartOnMonday===!0?d3.time.mondays(Math.min(n,o),Math.max(n,o)):d3.time.sundays(Math.min(n,o),Math.max(n,o))},getMonthDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),t.getMonth()),i=null;return e instanceof Date?i=new Date(e.getFullYear(),e.getMonth()):(i=new Date(n),i=i.setMonth(i.getMonth()+e)),d3.time.months(Math.min(n,i),Math.max(n,i))},getYearDomain:function(t,e){"use strict";var n=new Date(t.getFullYear(),0),i=null;return i=e instanceof Date?new Date(e.getFullYear(),0):new Date(t.getFullYear()+e,0),d3.time.years(Math.min(n,i),Math.max(n,i))},getDomain:function(t,e){"use strict";switch("number"==typeof t&&(t=new Date(t)),2>arguments.length&&(e=this.options.range),this.options.domain){case"hour":var n=this.getHourDomain(t,e);return"number"==typeof e&&e>n.length&&(e>0?n.push(this.getHourDomain(n[n.length-1],2)[1]):n.shift(this.getHourDomain(n[0],-2)[0])),n;case"day":return this.getDayDomain(t,e);case"week":return this.getWeekDomain(t,e);case"month":return this.getMonthDomain(t,e);case"year":return this.getYearDomain(t,e)}},getSubDomain:function(t){"use strict";"number"==typeof t&&(t=new Date(t));var e=this,n=function(t,n){switch(n){case"year":return e.getDayCountInYear(t);case"month":return e.getDayCountInMonth(t);case"week":return 7}},i=function(t,e){switch(e){case"hour":return 60;case"day":return 1440;case"week":return 10080}},o=function(t,n){switch(n){case"day":return 24;case"week":return 168;case"month":return 24*e.getDayCountInMonth(t)}},a=function(t,n){if("month"===n){var i=new Date(t.getFullYear(),t.getMonth()+1,0),o=e.getWeekNumber(i),a=e.getWeekNumber(new Date(t.getFullYear(),t.getMonth()));return a>o&&(a=0,o++),o-a+1}return"year"===n?e.getWeekNumber(new Date(t.getFullYear(),11,31)):void 0};switch(this.options.subDomain){case"x_min":case"min":return this.getMinuteDomain(t,i(t,this.options.domain));case"x_hour":case"hour":return this.getHourDomain(t,o(t,this.options.domain));case"x_day":case"day":return this.getDayDomain(t,n(t,this.options.domain));case"x_week":case"week":return this.getWeekDomain(t,a(t,this.options.domain));case"x_month":case"month":return this.getMonthDomain(t,12)}},getNextDomain:function(t){"use strict";return 0===arguments.length&&(t=1),this.getDomain(this.jumpDate(this.getDomainKeys().pop(),t,this.options.domain),1)[0]
+},getPreviousDomain:function(t){"use strict";return 0===arguments.length&&(t=1),this.getDomain(this.jumpDate(this.getDomainKeys().shift(),-t,this.options.domain),1)[0]},getDatas:function(t,e,n,i,o,a){"use strict";var r=this;5>arguments.length&&(o=!0),6>arguments.length&&(a=this.APPEND_ON_UPDATE);var s=function(t){o!==!1?"function"==typeof o?t=o(t):"function"==typeof r.options.afterLoadData?t=r.options.afterLoadData(t):console.log("Provided callback for afterLoadData is not a function."):("csv"===r.options.dataType||"tsv"===r.options.dataType)&&(t=this.interpretCSV(t)),r.parseDatas(t,a,e,n),"function"==typeof i&&i()};switch(typeof t){case"string":if(""===t)return s({}),!0;switch(this.options.dataType){case"json":d3.json(this.parseURI(t,e,n),s);break;case"csv":d3.csv(this.parseURI(t,e,n),s);break;case"tsv":d3.tsv(this.parseURI(t,e,n),s);break;case"txt":d3.text(this.parseURI(t,e,n),"text/plain",s)}return!1;case"object":if(t===Object(t))return s(t),!1;default:return s({}),!0}},parseDatas:function(t,e,n,i){"use strict";e===this.RESET_ALL_ON_UPDATE&&this._domains.forEach(function(t,e){e.forEach(function(t,e,n){n[e].v=null})});var o={},a=function(t){return t.t};for(var r in t){var s=new Date(1e3*r),l=this.getDomain(s)[0].getTime();if(this.DSTDomain.indexOf(l)>=0&&this._domains.has(l-36e5)&&(l-=36e5),!isNaN(r)&&t.hasOwnProperty(r)&&this._domains.has(l)&&l>=+n&&+i>l){var u=this._domains.get(l);o.hasOwnProperty(l)||(o[l]=u.map(a));var m=o[l].indexOf(this._domainType[this.options.subDomain].extractUnit(s));e===this.RESET_SINGLE_ON_UPDATE?u[m].v=t[r]:isNaN(u[m].v)?u[m].v=t[r]:u[m].v+=t[r]}}},parseURI:function(t,e,n){"use strict";return t=t.replace(/\{\{t:start\}\}/g,e.getTime()/1e3),t=t.replace(/\{\{t:end\}\}/g,n.getTime()/1e3),t=t.replace(/\{\{d:start\}\}/g,e.toISOString()),t=t.replace(/\{\{d:end\}\}/g,n.toISOString())},interpretCSV:function(t){"use strict";var e,n,i={},o=Object.keys(t[0]);for(e=0,n=t.length;n>e;e++)i[t[e][o[0]]]=+t[e][o[1]];return i},resize:function(){"use strict";var t=this,e=t.options,n=e.displayLegend?t.Legend.getDim("width")+e.legendMargin[1]+e.legendMargin[3]:0,i=e.displayLegend?t.Legend.getDim("height")+e.legendMargin[0]+e.legendMargin[2]:0,o=t.graphDim.width-e.domainGutter-e.cellPadding,a=t.graphDim.height-e.domainGutter-e.cellPadding;this.root.transition().duration(e.animationDuration).attr("width",function(){return"middle"===e.legendVerticalPosition||"center"===e.legendVerticalPosition?o+n:Math.max(o,n)}).attr("height",function(){return"middle"===e.legendVerticalPosition||"center"===e.legendVerticalPosition?Math.max(a,i):a+i}),this.root.select(".graph").transition().duration(e.animationDuration).attr("y",function(){return"top"===e.legendVerticalPosition?i:0}).attr("x",function(){return"middle"!==e.legendVerticalPosition&&"center"!==e.legendVerticalPosition||"left"!==e.legendHorizontalPosition?0:n})},next:function(t){"use strict";return 0===arguments.length&&(t=1),this.loadNextDomain(t)},previous:function(t){"use strict";return 0===arguments.length&&(t=1),this.loadPreviousDomain(t)},jumpTo:function(t,e){"use strict";2>arguments.length&&(e=!1);var n=this.getDomainKeys(),i=n[0],o=n[n.length-1];return i>t?this.loadPreviousDomain(this.getDomain(i,t).length):e?this.loadNextDomain(this.getDomain(i,t).length):t>o?this.loadNextDomain(this.getDomain(o,t).length):!1},rewind:function(){"use strict";this.jumpTo(this.options.start,!0)},update:function(t,e,n){"use strict";2>arguments.length&&(e=!0),3>arguments.length&&(n=this.RESET_ALL_ON_UPDATE);var i=this.getDomainKeys(),o=this;this.getDatas(t,new Date(i[0]),this.getSubDomain(i[i.length-1]).pop(),function(){o.fill()},e,n)},setLegend:function(){"use strict";var t=this.options.legend.slice(0);arguments.length>=1&&Array.isArray(arguments[0])&&(this.options.legend=arguments[0]),arguments.length>=2&&(this.options.legendColors=Array.isArray(arguments[1])&&arguments[1].length>=2?[arguments[1][0],arguments[1][1]]:arguments[1]),(arguments.length>0&&!arrayEquals(t,this.options.legend)||arguments.length>=2)&&(this.Legend.buildColors(),this.fill()),this.Legend.redraw(this.graphDim.width-this.options.domainGutter-this.options.cellPadding)},removeLegend:function(){"use strict";return this.options.displayLegend?(this.options.displayLegend=!1,this.Legend.remove(),!0):!1},showLegend:function(){"use strict";return this.options.displayLegend?!1:(this.options.displayLegend=!0,this.Legend.redraw(this.graphDim.width-this.options.domainGutter-this.options.cellPadding),!0)},highlight:function(t){"use strict";return(this.options.highlight=this.expandDateSetting(t)).length>0?(this.fill(),!0):!1},destroy:function(t){"use strict";return this.root.transition().duration(this.options.animationDuration).attr("width",0).attr("height",0).remove().each("end",function(){"function"==typeof t?t():arguments.length>0&&console.log("Provided callback for destroy() is not a function.")}),null},getSVG:function(){"use strict";for(var t={".cal-heatmap-container":{},".graph":{},".graph-rect":{},"rect.highlight":{},"rect.now":{},"text.highlight":{},"text.now":{},".domain-background":{},".graph-label":{},".subdomain-text":{},".q0":{},".qi":{}},e=1,n=this.options.legend.length+1;n>=e;e++)t[".q"+e]={};var i=this.root,o=["stroke","stroke-width","stroke-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-miterlimit","fill","fill-opacity","fill-rule","marker","marker-start","marker-mid","marker-end","alignement-baseline","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","kerning","text-anchor","shape-rendering","text-transform","font-family","font","font-size","font-weight"],a=function(e,n,i){-1!==o.indexOf(n)&&(t[e][n]=i)},r=function(t){return i.select(t)[0][0]};for(var s in t)if(t.hasOwnProperty(s)){var l=r(s);if(null!==l)if("getComputedStyle"in window){var u=getComputedStyle(l,null);if(0!==u.length)for(var m=0;u.length>m;m++)a(s,u.item(m),u.getPropertyValue(u.item(m)));else for(var c in u)u.hasOwnProperty(c)&&a(s,c,u[c])}else if("currentStyle"in l){var h=l.currentStyle;for(var g in h)a(s,g,h[g])}}var d='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css"><![CDATA[ ';for(var p in t){d+=p+" {\n";for(var f in t[p])d+="	"+f+":"+t[p][f]+";\n";d+="}\n"}return d+="]]></style>",d+=(new XMLSerializer).serializeToString(this.root[0][0]),d+="</svg>"}};var DomainPosition=function(){"use strict";this.positions=d3.map()};DomainPosition.prototype.getPosition=function(t){"use strict";return this.positions.get(t)},DomainPosition.prototype.getPositionFromIndex=function(t){"use strict";var e=this.getKeys();return this.positions.get(e[t])},DomainPosition.prototype.getLast=function(){"use strict";var t=this.getKeys();return this.positions.get(t[t.length-1])},DomainPosition.prototype.setPosition=function(t,e){"use strict";this.positions.set(t,e)},DomainPosition.prototype.shiftRightBy=function(t){"use strict";this.positions.forEach(function(e,n){this.set(e,n-t)});var e=this.getKeys();this.positions.remove(e[0])},DomainPosition.prototype.shiftLeftBy=function(t){"use strict";this.positions.forEach(function(e,n){this.set(e,n+t)});var e=this.getKeys();this.positions.remove(e[e.length-1])},DomainPosition.prototype.getKeys=function(){"use strict";return this.positions.keys().sort(function(t,e){return parseInt(t,10)-parseInt(e,10)})};var Legend=function(t){"use strict";this.calendar=t,this.computeDim(),null!==t.options.legendColors&&this.buildColors()};Legend.prototype.computeDim=function(){"use strict";var t=this.calendar.options;this.dim={width:t.legendCellSize*(t.legend.length+1)+t.legendCellPadding*t.legend.length,height:t.legendCellSize}},Legend.prototype.remove=function(){"use strict";this.calendar.root.select(".graph-legend").remove(),this.calendar.resize()},Legend.prototype.redraw=function(t){"use strict";function e(t){t.attr("width",l.legendCellSize).attr("height",l.legendCellSize).attr("x",function(t,e){return e*(l.legendCellSize+l.legendCellPadding)})}function n(){switch(l.legendHorizontalPosition){case"right":return"center"===l.legendVerticalPosition||"middle"===l.legendVerticalPosition?t+l.legendMargin[3]:t-a.getDim("width")-l.legendMargin[1];case"middle":case"center":return Math.round(t/2-a.getDim("width")/2);default:return l.legendMargin[3]}}function i(){return"bottom"===l.legendVerticalPosition?r.graphDim.height+l.legendMargin[0]-l.domainGutter-l.cellPadding:l.legendMargin[0]}if(!this.calendar.options.displayLegend)return!1;var o,a=this,r=this.calendar,s=r.root,l=r.options;this.computeDim();var u=l.legend.slice(0);u.push(u[u.length-1]+1);var m=r.root.select(".graph-legend");null!==m[0][0]?(s=m,o=s.select("g").selectAll("rect").data(u)):(s="top"===l.legendVerticalPosition?s.insert("svg",".graph"):s.append("svg"),s.attr("x",n()).attr("y",i()),o=s.attr("class","graph-legend").attr("height",a.getDim("height")).attr("width",a.getDim("width")).append("g").selectAll().data(u)),o.enter().append("rect").call(e).attr("class",function(t){return r.Legend.getClass(t,null===r.legendScale)}).attr("fill-opacity",0).call(function(t){null!==r.legendScale&&null!==l.legendColors&&l.legendColors.hasOwnProperty("base")&&t.attr("fill",l.legendColors.base)}).append("title"),o.exit().transition().duration(l.animationDuration).attr("fill-opacity",0).remove(),o.transition().delay(function(t,e){return l.animationDuration*e/10}).call(e).attr("fill-opacity",1).call(function(t){t.attr("fill",function(t,e){return null===r.legendScale?"":0===e?r.legendScale(t-1):r.legendScale(l.legend[e-1])}),t.attr("class",function(t){return r.Legend.getClass(t,null===r.legendScale)})}),o.select("title").text(function(t,e){return 0===e?l.legendTitleFormat.lower.format({min:l.legend[e],name:l.itemName[1]}):e===u.length-1?l.legendTitleFormat.upper.format({max:l.legend[e-1],name:l.itemName[1]}):l.legendTitleFormat.inner.format({down:l.legend[e-1],up:l.legend[e],name:l.itemName[1]})}),s.transition().duration(l.animationDuration).attr("x",n()).attr("y",i()).attr("width",a.getDim("width")).attr("height",a.getDim("height")),s.select("g").transition().duration(l.animationDuration).attr("transform",function(){return"vertical"===l.legendOrientation?"rotate(90 "+l.legendCellSize/2+" "+l.legendCellSize/2+")":""}),r.resize()},Legend.prototype.getDim=function(t){"use strict";var e="horizontal"===this.calendar.options.legendOrientation;switch(t){case"width":return this.dim[e?"width":"height"];case"height":return this.dim[e?"height":"width"]}},Legend.prototype.buildColors=function(){"use strict";var t=this.calendar.options;if(null===t.legendColors)return this.calendar.legendScale=null,!1;var e=[];if(Array.isArray(t.legendColors))e=t.legendColors;else{if(!t.legendColors.hasOwnProperty("min")||!t.legendColors.hasOwnProperty("max"))return t.legendColors=null,!1;e=[t.legendColors.min,t.legendColors.max]}var n=t.legend.slice(0);n[0]>0?n.unshift(0):0>n[0]&&n.unshift(n[0]-(n[n.length-1]-n[0])/n.length);var i=d3.scale.linear().range(e).interpolate(d3.interpolateHcl).domain([d3.min(n),d3.max(n)]),o=n.map(function(t){return i(t)});return this.calendar.legendScale=d3.scale.threshold().domain(t.legend).range(o),!0},Legend.prototype.getClass=function(t,e){"use strict";if(null===t||isNaN(t))return"";for(var n=[this.calendar.options.legend.length+1],i=0,o=this.calendar.options.legend.length-1;o>=i;i++){if(this.calendar.options.legend[0]>0&&0>t){n=["1","i"];break}if(this.calendar.options.legend[i]>=t){n=[i+1];break}}return 0===t&&n.push(0),n.unshift(""),(n.join(" r")+(e?n.join(" q"):"")).trim()},String.prototype.format=function(){"use strict";var t=this;for(var e in arguments[0])if(arguments[0].hasOwnProperty(e)){var n=RegExp("\\{"+e+"\\}","gi");t=t.replace(n,arguments[0][e])}return t},"function"==typeof define&&define.amd&&define(["d3"],function(){"use strict";return CalHeatMap});
+//@ sourceMappingURL=cal-heatmap.source-map.js
\ No newline at end of file
diff --git a/pagure/static/vendor/codemirror/codemirror-5.18.2.css b/pagure/static/vendor/codemirror/codemirror-5.18.2.css
new file mode 100644
index 0000000..18b0bf7
--- /dev/null
+++ b/pagure/static/vendor/codemirror/codemirror-5.18.2.css
@@ -0,0 +1,347 @@
+/* BASICS */
+
+.CodeMirror {
+  /* Set height, width, borders, and global font properties here */
+  font-family: monospace;
+  height: 300px;
+  color: black;
+}
+
+/* PADDING */
+
+.CodeMirror-lines {
+  padding: 4px 0; /* Vertical padding around content */
+}
+.CodeMirror pre {
+  padding: 0 4px; /* Horizontal padding of content */
+}
+
+.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+  background-color: white; /* The little square between H and V scrollbars */
+}
+
+/* GUTTER */
+
+.CodeMirror-gutters {
+  border-right: 1px solid #ddd;
+  background-color: #f7f7f7;
+  white-space: nowrap;
+}
+.CodeMirror-linenumbers {}
+.CodeMirror-linenumber {
+  padding: 0 3px 0 5px;
+  min-width: 20px;
+  text-align: right;
+  color: #999;
+  white-space: nowrap;
+}
+
+.CodeMirror-guttermarker { color: black; }
+.CodeMirror-guttermarker-subtle { color: #999; }
+
+/* CURSOR */
+
+.CodeMirror-cursor {
+  border-left: 1px solid black;
+  border-right: none;
+  width: 0;
+}
+/* Shown when moving in bi-directional text */
+.CodeMirror div.CodeMirror-secondarycursor {
+  border-left: 1px solid silver;
+}
+.cm-fat-cursor .CodeMirror-cursor {
+  width: auto;
+  border: 0 !important;
+  background: #7e7;
+}
+.cm-fat-cursor div.CodeMirror-cursors {
+  z-index: 1;
+}
+
+.cm-animate-fat-cursor {
+  width: auto;
+  border: 0;
+  -webkit-animation: blink 1.06s steps(1) infinite;
+  -moz-animation: blink 1.06s steps(1) infinite;
+  animation: blink 1.06s steps(1) infinite;
+  background-color: #7e7;
+}
+@-moz-keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+@-webkit-keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+@keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+
+/* Can style cursor different in overwrite (non-insert) mode */
+.CodeMirror-overwrite .CodeMirror-cursor {}
+
+.cm-tab { display: inline-block; text-decoration: inherit; }
+
+.CodeMirror-rulers {
+  position: absolute;
+  left: 0; right: 0; top: -50px; bottom: -20px;
+  overflow: hidden;
+}
+.CodeMirror-ruler {
+  border-left: 1px solid #ccc;
+  top: 0; bottom: 0;
+  position: absolute;
+}
+
+/* DEFAULT THEME */
+
+.cm-s-default .cm-header {color: blue;}
+.cm-s-default .cm-quote {color: #090;}
+.cm-negative {color: #d44;}
+.cm-positive {color: #292;}
+.cm-header, .cm-strong {font-weight: bold;}
+.cm-em {font-style: italic;}
+.cm-link {text-decoration: underline;}
+.cm-strikethrough {text-decoration: line-through;}
+
+.cm-s-default .cm-keyword {color: #708;}
+.cm-s-default .cm-atom {color: #219;}
+.cm-s-default .cm-number {color: #164;}
+.cm-s-default .cm-def {color: #00f;}
+.cm-s-default .cm-variable,
+.cm-s-default .cm-punctuation,
+.cm-s-default .cm-property,
+.cm-s-default .cm-operator {}
+.cm-s-default .cm-variable-2 {color: #05a;}
+.cm-s-default .cm-variable-3 {color: #085;}
+.cm-s-default .cm-comment {color: #a50;}
+.cm-s-default .cm-string {color: #a11;}
+.cm-s-default .cm-string-2 {color: #f50;}
+.cm-s-default .cm-meta {color: #555;}
+.cm-s-default .cm-qualifier {color: #555;}
+.cm-s-default .cm-builtin {color: #30a;}
+.cm-s-default .cm-bracket {color: #997;}
+.cm-s-default .cm-tag {color: #170;}
+.cm-s-default .cm-attribute {color: #00c;}
+.cm-s-default .cm-hr {color: #999;}
+.cm-s-default .cm-link {color: #00c;}
+
+.cm-s-default .cm-error {color: #f00;}
+.cm-invalidchar {color: #f00;}
+
+.CodeMirror-composing { border-bottom: 2px solid; }
+
+/* Default styles for common addons */
+
+div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
+div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
+.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
+.CodeMirror-activeline-background {background: #e8f2ff;}
+
+/* STOP */
+
+/* The rest of this file contains styles related to the mechanics of
+   the editor. You probably shouldn't touch them. */
+
+.CodeMirror {
+  position: relative;
+  overflow: hidden;
+  background: white;
+}
+
+.CodeMirror-scroll {
+  overflow: scroll !important; /* Things will break if this is overridden */
+  /* 30px is the magic margin used to hide the element's real scrollbars */
+  /* See overflow: hidden in .CodeMirror */
+  margin-bottom: -30px; margin-right: -30px;
+  padding-bottom: 30px;
+  height: 100%;
+  outline: none; /* Prevent dragging from highlighting the element */
+  position: relative;
+}
+.CodeMirror-sizer {
+  position: relative;
+  border-right: 30px solid transparent;
+}
+
+/* The fake, visible scrollbars. Used to force redraw during scrolling
+   before actual scrolling happens, thus preventing shaking and
+   flickering artifacts. */
+.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+  position: absolute;
+  z-index: 6;
+  display: none;
+}
+.CodeMirror-vscrollbar {
+  right: 0; top: 0;
+  overflow-x: hidden;
+  overflow-y: scroll;
+}
+.CodeMirror-hscrollbar {
+  bottom: 0; left: 0;
+  overflow-y: hidden;
+  overflow-x: scroll;
+}
+.CodeMirror-scrollbar-filler {
+  right: 0; bottom: 0;
+}
+.CodeMirror-gutter-filler {
+  left: 0; bottom: 0;
+}
+
+.CodeMirror-gutters {
+  position: absolute; left: 0; top: 0;
+  min-height: 100%;
+  z-index: 3;
+}
+.CodeMirror-gutter {
+  white-space: normal;
+  height: 100%;
+  display: inline-block;
+  vertical-align: top;
+  margin-bottom: -30px;
+  /* Hack to make IE7 behave */
+  *zoom:1;
+  *display:inline;
+}
+.CodeMirror-gutter-wrapper {
+  position: absolute;
+  z-index: 4;
+  background: none !important;
+  border: none !important;
+}
+.CodeMirror-gutter-background {
+  position: absolute;
+  top: 0; bottom: 0;
+  z-index: 4;
+}
+.CodeMirror-gutter-elt {
+  position: absolute;
+  cursor: default;
+  z-index: 4;
+}
+.CodeMirror-gutter-wrapper {
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  user-select: none;
+}
+
+.CodeMirror-lines {
+  cursor: text;
+  min-height: 1px; /* prevents collapsing before first draw */
+}
+.CodeMirror pre {
+  /* Reset some styles that the rest of the page might have set */
+  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
+  border-width: 0;
+  background: transparent;
+  font-family: inherit;
+  font-size: inherit;
+  margin: 0;
+  white-space: pre;
+  word-wrap: normal;
+  line-height: inherit;
+  color: inherit;
+  z-index: 2;
+  position: relative;
+  overflow: visible;
+  -webkit-tap-highlight-color: transparent;
+  -webkit-font-variant-ligatures: none;
+  font-variant-ligatures: none;
+}
+.CodeMirror-wrap pre {
+  word-wrap: break-word;
+  white-space: pre-wrap;
+  word-break: normal;
+}
+
+.CodeMirror-linebackground {
+  position: absolute;
+  left: 0; right: 0; top: 0; bottom: 0;
+  z-index: 0;
+}
+
+.CodeMirror-linewidget {
+  position: relative;
+  z-index: 2;
+  overflow: auto;
+}
+
+.CodeMirror-widget {}
+
+.CodeMirror-code {
+  outline: none;
+}
+
+/* Force content-box sizing for the elements where we expect it */
+.CodeMirror-scroll,
+.CodeMirror-sizer,
+.CodeMirror-gutter,
+.CodeMirror-gutters,
+.CodeMirror-linenumber {
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+}
+
+.CodeMirror-measure {
+  position: absolute;
+  width: 100%;
+  height: 0;
+  overflow: hidden;
+  visibility: hidden;
+}
+
+.CodeMirror-cursor {
+  position: absolute;
+  pointer-events: none;
+}
+.CodeMirror-measure pre { position: static; }
+
+div.CodeMirror-cursors {
+  visibility: hidden;
+  position: relative;
+  z-index: 3;
+}
+div.CodeMirror-dragcursors {
+  visibility: visible;
+}
+
+.CodeMirror-focused div.CodeMirror-cursors {
+  visibility: visible;
+}
+
+.CodeMirror-selected { background: #d9d9d9; }
+.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
+.CodeMirror-crosshair { cursor: crosshair; }
+.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
+.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
+
+.cm-searching {
+  background: #ffa;
+  background: rgba(255, 255, 0, .4);
+}
+
+/* IE7 hack to prevent it from returning funny offsetTops on the spans */
+.CodeMirror span { *vertical-align: text-bottom; }
+
+/* Used to force a border model for a node */
+.cm-force-border { padding-right: .1px; }
+
+@media print {
+  /* Hide the cursor when printing */
+  .CodeMirror div.CodeMirror-cursors {
+    visibility: hidden;
+  }
+}
+
+/* See issue #2901 */
+.cm-tab-wrap-hack:after { content: ''; }
+
+/* Help users use markselection to safely style text background */
+span.CodeMirror-selectedtext { background: none; }
diff --git a/pagure/static/vendor/codemirror/codemirror-5.18.2.js b/pagure/static/vendor/codemirror/codemirror-5.18.2.js
new file mode 100644
index 0000000..1071bb9
--- /dev/null
+++ b/pagure/static/vendor/codemirror/codemirror-5.18.2.js
@@ -0,0 +1,8961 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: http://codemirror.net/LICENSE
+
+// This is CodeMirror (http://codemirror.net), a code editor
+// implemented in JavaScript on top of the browser's DOM.
+//
+// You can find some technical background for some of the code below
+// at http://marijnhaverbeke.nl/blog/#cm-internals .
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    module.exports = mod();
+  else if (typeof define == "function" && define.amd) // AMD
+    return define([], mod);
+  else // Plain browser env
+    (this || window).CodeMirror = mod();
+})(function() {
+  "use strict";
+
+  // BROWSER SNIFFING
+
+  // Kludges for bugs and behavior differences that can't be feature
+  // detected are enabled based on userAgent etc sniffing.
+  var userAgent = navigator.userAgent;
+  var platform = navigator.platform;
+
+  var gecko = /gecko\/\d/i.test(userAgent);
+  var ie_upto10 = /MSIE \d/.test(userAgent);
+  var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent);
+  var ie = ie_upto10 || ie_11up;
+  var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : ie_11up[1]);
+  var webkit = /WebKit\//.test(userAgent);
+  var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent);
+  var chrome = /Chrome\//.test(userAgent);
+  var presto = /Opera\//.test(userAgent);
+  var safari = /Apple Computer/.test(navigator.vendor);
+  var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent);
+  var phantom = /PhantomJS/.test(userAgent);
+
+  var ios = /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent);
+  // This is woefully incomplete. Suggestions for alternative methods welcome.
+  var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
+  var mac = ios || /Mac/.test(platform);
+  var chromeOS = /\bCrOS\b/.test(userAgent);
+  var windows = /win/i.test(platform);
+
+  var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
+  if (presto_version) presto_version = Number(presto_version[1]);
+  if (presto_version && presto_version >= 15) { presto = false; webkit = true; }
+  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X
+  var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));
+  var captureRightClick = gecko || (ie && ie_version >= 9);
+
+  // Optimize some code when these features are not used.
+  var sawReadOnlySpans = false, sawCollapsedSpans = false;
+
+  // EDITOR CONSTRUCTOR
+
+  // A CodeMirror instance represents an editor. This is the object
+  // that user code is usually dealing with.
+
+  function CodeMirror(place, options) {
+    if (!(this instanceof CodeMirror)) return new CodeMirror(place, options);
+
+    this.options = options = options ? copyObj(options) : {};
+    // Determine effective options based on given values and defaults.
+    copyObj(defaults, options, false);
+    setGuttersForLineNumbers(options);
+
+    var doc = options.value;
+    if (typeof doc == "string") doc = new Doc(doc, options.mode, null, options.lineSeparator);
+    this.doc = doc;
+
+    var input = new CodeMirror.inputStyles[options.inputStyle](this);
+    var display = this.display = new Display(place, doc, input);
+    display.wrapper.CodeMirror = this;
+    updateGutters(this);
+    themeChanged(this);
+    if (options.lineWrapping)
+      this.display.wrapper.className += " CodeMirror-wrap";
+    if (options.autofocus && !mobile) display.input.focus();
+    initScrollbars(this);
+
+    this.state = {
+      keyMaps: [],  // stores maps added by addKeyMap
+      overlays: [], // highlighting overlays, as added by addOverlay
+      modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info
+      overwrite: false,
+      delayingBlurEvent: false,
+      focused: false,
+      suppressEdits: false, // used to disable editing during key handlers when in readOnly mode
+      pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll
+      selectingText: false,
+      draggingText: false,
+      highlight: new Delayed(), // stores highlight worker timeout
+      keySeq: null,  // Unfinished key sequence
+      specialChars: null
+    };
+
+    var cm = this;
+
+    // Override magic textarea content restore that IE sometimes does
+    // on our hidden textarea on reload
+    if (ie && ie_version < 11) setTimeout(function() { cm.display.input.reset(true); }, 20);
+
+    registerEventHandlers(this);
+    ensureGlobalHandlers();
+
+    startOperation(this);
+    this.curOp.forceUpdate = true;
+    attachDoc(this, doc);
+
+    if ((options.autofocus && !mobile) || cm.hasFocus())
+      setTimeout(bind(onFocus, this), 20);
+    else
+      onBlur(this);
+
+    for (var opt in optionHandlers) if (optionHandlers.hasOwnProperty(opt))
+      optionHandlers[opt](this, options[opt], Init);
+    maybeUpdateLineNumberWidth(this);
+    if (options.finishInit) options.finishInit(this);
+    for (var i = 0; i < initHooks.length; ++i) initHooks[i](this);
+    endOperation(this);
+    // Suppress optimizelegibility in Webkit, since it breaks text
+    // measuring on line wrapping boundaries.
+    if (webkit && options.lineWrapping &&
+        getComputedStyle(display.lineDiv).textRendering == "optimizelegibility")
+      display.lineDiv.style.textRendering = "auto";
+  }
+
+  // DISPLAY CONSTRUCTOR
+
+  // The display handles the DOM integration, both for input reading
+  // and content drawing. It holds references to DOM nodes and
+  // display-related state.
+
+  function Display(place, doc, input) {
+    var d = this;
+    this.input = input;
+
+    // Covers bottom-right square when both scrollbars are present.
+    d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler");
+    d.scrollbarFiller.setAttribute("cm-not-content", "true");
+    // Covers bottom of gutter when coverGutterNextToScrollbar is on
+    // and h scrollbar is present.
+    d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler");
+    d.gutterFiller.setAttribute("cm-not-content", "true");
+    // Will contain the actual code, positioned to cover the viewport.
+    d.lineDiv = elt("div", null, "CodeMirror-code");
+    // Elements are added to these to represent selection and cursors.
+    d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1");
+    d.cursorDiv = elt("div", null, "CodeMirror-cursors");
+    // A visibility: hidden element used to find the size of things.
+    d.measure = elt("div", null, "CodeMirror-measure");
+    // When lines outside of the viewport are measured, they are drawn in this.
+    d.lineMeasure = elt("div", null, "CodeMirror-measure");
+    // Wraps everything that needs to exist inside the vertically-padded coordinate system
+    d.lineSpace = elt("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],
+                      null, "position: relative; outline: none");
+    // Moved around its parent to cover visible view.
+    d.mover = elt("div", [elt("div", [d.lineSpace], "CodeMirror-lines")], null, "position: relative");
+    // Set to the height of the document, allowing scrolling.
+    d.sizer = elt("div", [d.mover], "CodeMirror-sizer");
+    d.sizerWidth = null;
+    // Behavior of elts with overflow: auto and padding is
+    // inconsistent across browsers. This is used to ensure the
+    // scrollable area is big enough.
+    d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;");
+    // Will contain the gutters, if any.
+    d.gutters = elt("div", null, "CodeMirror-gutters");
+    d.lineGutter = null;
+    // Actual scrollable element.
+    d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll");
+    d.scroller.setAttribute("tabIndex", "-1");
+    // The element in which the editor lives.
+    d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror");
+
+    // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)
+    if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }
+    if (!webkit && !(gecko && mobile)) d.scroller.draggable = true;
+
+    if (place) {
+      if (place.appendChild) place.appendChild(d.wrapper);
+      else place(d.wrapper);
+    }
+
+    // Current rendered range (may be bigger than the view window).
+    d.viewFrom = d.viewTo = doc.first;
+    d.reportedViewFrom = d.reportedViewTo = doc.first;
+    // Information about the rendered lines.
+    d.view = [];
+    d.renderedView = null;
+    // Holds info about a single rendered line when it was rendered
+    // for measurement, while not in view.
+    d.externalMeasured = null;
+    // Empty space (in pixels) above the view
+    d.viewOffset = 0;
+    d.lastWrapHeight = d.lastWrapWidth = 0;
+    d.updateLineNumbers = null;
+
+    d.nativeBarWidth = d.barHeight = d.barWidth = 0;
+    d.scrollbarsClipped = false;
+
+    // Used to only resize the line number gutter when necessary (when
+    // the amount of lines crosses a boundary that makes its width change)
+    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;
+    // Set to true when a non-horizontal-scrolling line widget is
+    // added. As an optimization, line widget aligning is skipped when
+    // this is false.
+    d.alignWidgets = false;
+
+    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
+
+    // Tracks the maximum line length so that the horizontal scrollbar
+    // can be kept static when scrolling.
+    d.maxLine = null;
+    d.maxLineLength = 0;
+    d.maxLineChanged = false;
+
+    // Used for measuring wheel scrolling granularity
+    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;
+
+    // True when shift is held down.
+    d.shift = false;
+
+    // Used to track whether anything happened since the context menu
+    // was opened.
+    d.selForContextMenu = null;
+
+    d.activeTouch = null;
+
+    input.init(d);
+  }
+
+  // STATE UPDATES
+
+  // Used to get the editor into a consistent state again when options change.
+
+  function loadMode(cm) {
+    cm.doc.mode = CodeMirror.getMode(cm.options, cm.doc.modeOption);
+    resetModeState(cm);
+  }
+
+  function resetModeState(cm) {
+    cm.doc.iter(function(line) {
+      if (line.stateAfter) line.stateAfter = null;
+      if (line.styles) line.styles = null;
+    });
+    cm.doc.frontier = cm.doc.first;
+    startWorker(cm, 100);
+    cm.state.modeGen++;
+    if (cm.curOp) regChange(cm);
+  }
+
+  function wrappingChanged(cm) {
+    if (cm.options.lineWrapping) {
+      addClass(cm.display.wrapper, "CodeMirror-wrap");
+      cm.display.sizer.style.minWidth = "";
+      cm.display.sizerWidth = null;
+    } else {
+      rmClass(cm.display.wrapper, "CodeMirror-wrap");
+      findMaxLine(cm);
+    }
+    estimateLineHeights(cm);
+    regChange(cm);
+    clearCaches(cm);
+    setTimeout(function(){updateScrollbars(cm);}, 100);
+  }
+
+  // Returns a function that estimates the height of a line, to use as
+  // first approximation until the line becomes visible (and is thus
+  // properly measurable).
+  function estimateHeight(cm) {
+    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;
+    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);
+    return function(line) {
+      if (lineIsHidden(cm.doc, line)) return 0;
+
+      var widgetsHeight = 0;
+      if (line.widgets) for (var i = 0; i < line.widgets.length; i++) {
+        if (line.widgets[i].height) widgetsHeight += line.widgets[i].height;
+      }
+
+      if (wrapping)
+        return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th;
+      else
+        return widgetsHeight + th;
+    };
+  }
+
+  function estimateLineHeights(cm) {
+    var doc = cm.doc, est = estimateHeight(cm);
+    doc.iter(function(line) {
+      var estHeight = est(line);
+      if (estHeight != line.height) updateLineHeight(line, estHeight);
+    });
+  }
+
+  function themeChanged(cm) {
+    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") +
+      cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-");
+    clearCaches(cm);
+  }
+
+  function guttersChanged(cm) {
+    updateGutters(cm);
+    regChange(cm);
+    setTimeout(function(){alignHorizontally(cm);}, 20);
+  }
+
+  // Rebuild the gutter elements, ensure the margin to the left of the
+  // code matches their width.
+  function updateGutters(cm) {
+    var gutters = cm.display.gutters, specs = cm.options.gutters;
+    removeChildren(gutters);
+    for (var i = 0; i < specs.length; ++i) {
+      var gutterClass = specs[i];
+      var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass));
+      if (gutterClass == "CodeMirror-linenumbers") {
+        cm.display.lineGutter = gElt;
+        gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
+      }
+    }
+    gutters.style.display = i ? "" : "none";
+    updateGutterSpace(cm);
+  }
+
+  function updateGutterSpace(cm) {
+    var width = cm.display.gutters.offsetWidth;
+    cm.display.sizer.style.marginLeft = width + "px";
+  }
+
+  // Compute the character length of a line, taking into account
+  // collapsed ranges (see markText) that might hide parts, and join
+  // other lines onto it.
+  function lineLength(line) {
+    if (line.height == 0) return 0;
+    var len = line.text.length, merged, cur = line;
+    while (merged = collapsedSpanAtStart(cur)) {
+      var found = merged.find(0, true);
+      cur = found.from.line;
+      len += found.from.ch - found.to.ch;
+    }
+    cur = line;
+    while (merged = collapsedSpanAtEnd(cur)) {
+      var found = merged.find(0, true);
+      len -= cur.text.length - found.from.ch;
+      cur = found.to.line;
+      len += cur.text.length - found.to.ch;
+    }
+    return len;
+  }
+
+  // Find the longest line in the document.
+  function findMaxLine(cm) {
+    var d = cm.display, doc = cm.doc;
+    d.maxLine = getLine(doc, doc.first);
+    d.maxLineLength = lineLength(d.maxLine);
+    d.maxLineChanged = true;
+    doc.iter(function(line) {
+      var len = lineLength(line);
+      if (len > d.maxLineLength) {
+        d.maxLineLength = len;
+        d.maxLine = line;
+      }
+    });
+  }
+
+  // Make sure the gutters options contains the element
+  // "CodeMirror-linenumbers" when the lineNumbers option is true.
+  function setGuttersForLineNumbers(options) {
+    var found = indexOf(options.gutters, "CodeMirror-linenumbers");
+    if (found == -1 && options.lineNumbers) {
+      options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
+    } else if (found > -1 && !options.lineNumbers) {
+      options.gutters = options.gutters.slice(0);
+      options.gutters.splice(found, 1);
+    }
+  }
+
+  // SCROLLBARS
+
+  // Prepare DOM reads needed to update the scrollbars. Done in one
+  // shot to minimize update/measure roundtrips.
+  function measureForScrollbars(cm) {
+    var d = cm.display, gutterW = d.gutters.offsetWidth;
+    var docH = Math.round(cm.doc.height + paddingVert(cm.display));
+    return {
+      clientHeight: d.scroller.clientHeight,
+      viewHeight: d.wrapper.clientHeight,
+      scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,
+      viewWidth: d.wrapper.clientWidth,
+      barLeft: cm.options.fixedGutter ? gutterW : 0,
+      docHeight: docH,
+      scrollHeight: docH + scrollGap(cm) + d.barHeight,
+      nativeBarWidth: d.nativeBarWidth,
+      gutterWidth: gutterW
+    };
+  }
+
+  function NativeScrollbars(place, scroll, cm) {
+    this.cm = cm;
+    var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
+    var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
+    place(vert); place(horiz);
+
+    on(vert, "scroll", function() {
+      if (vert.clientHeight) scroll(vert.scrollTop, "vertical");
+    });
+    on(horiz, "scroll", function() {
+      if (horiz.clientWidth) scroll(horiz.scrollLeft, "horizontal");
+    });
+
+    this.checkedZeroWidth = false;
+    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
+    if (ie && ie_version < 8) this.horiz.style.minHeight = this.vert.style.minWidth = "18px";
+  }
+
+  NativeScrollbars.prototype = copyObj({
+    update: function(measure) {
+      var needsH = measure.scrollWidth > measure.clientWidth + 1;
+      var needsV = measure.scrollHeight > measure.clientHeight + 1;
+      var sWidth = measure.nativeBarWidth;
+
+      if (needsV) {
+        this.vert.style.display = "block";
+        this.vert.style.bottom = needsH ? sWidth + "px" : "0";
+        var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);
+        // A bug in IE8 can cause this value to be negative, so guard it.
+        this.vert.firstChild.style.height =
+          Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px";
+      } else {
+        this.vert.style.display = "";
+        this.vert.firstChild.style.height = "0";
+      }
+
+      if (needsH) {
+        this.horiz.style.display = "block";
+        this.horiz.style.right = needsV ? sWidth + "px" : "0";
+        this.horiz.style.left = measure.barLeft + "px";
+        var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);
+        this.horiz.firstChild.style.width =
+          (measure.scrollWidth - measure.clientWidth + totalWidth) + "px";
+      } else {
+        this.horiz.style.display = "";
+        this.horiz.firstChild.style.width = "0";
+      }
+
+      if (!this.checkedZeroWidth && measure.clientHeight > 0) {
+        if (sWidth == 0) this.zeroWidthHack();
+        this.checkedZeroWidth = true;
+      }
+
+      return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0};
+    },
+    setScrollLeft: function(pos) {
+      if (this.horiz.scrollLeft != pos) this.horiz.scrollLeft = pos;
+      if (this.disableHoriz) this.enableZeroWidthBar(this.horiz, this.disableHoriz);
+    },
+    setScrollTop: function(pos) {
+      if (this.vert.scrollTop != pos) this.vert.scrollTop = pos;
+      if (this.disableVert) this.enableZeroWidthBar(this.vert, this.disableVert);
+    },
+    zeroWidthHack: function() {
+      var w = mac && !mac_geMountainLion ? "12px" : "18px";
+      this.horiz.style.height = this.vert.style.width = w;
+      this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none";
+      this.disableHoriz = new Delayed;
+      this.disableVert = new Delayed;
+    },
+    enableZeroWidthBar: function(bar, delay) {
+      bar.style.pointerEvents = "auto";
+      function maybeDisable() {
+        // To find out whether the scrollbar is still visible, we
+        // check whether the element under the pixel in the bottom
+        // left corner of the scrollbar box is the scrollbar box
+        // itself (when the bar is still visible) or its filler child
+        // (when the bar is hidden). If it is still visible, we keep
+        // it enabled, if it's hidden, we disable pointer events.
+        var box = bar.getBoundingClientRect();
+        var elt = document.elementFromPoint(box.left + 1, box.bottom - 1);
+        if (elt != bar) bar.style.pointerEvents = "none";
+        else delay.set(1000, maybeDisable);
+      }
+      delay.set(1000, maybeDisable);
+    },
+    clear: function() {
+      var parent = this.horiz.parentNode;
+      parent.removeChild(this.horiz);
+      parent.removeChild(this.vert);
+    }
+  }, NativeScrollbars.prototype);
+
+  function NullScrollbars() {}
+
+  NullScrollbars.prototype = copyObj({
+    update: function() { return {bottom: 0, right: 0}; },
+    setScrollLeft: function() {},
+    setScrollTop: function() {},
+    clear: function() {}
+  }, NullScrollbars.prototype);
+
+  CodeMirror.scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars};
+
+  function initScrollbars(cm) {
+    if (cm.display.scrollbars) {
+      cm.display.scrollbars.clear();
+      if (cm.display.scrollbars.addClass)
+        rmClass(cm.display.wrapper, cm.display.scrollbars.addClass);
+    }
+
+    cm.display.scrollbars = new CodeMirror.scrollbarModel[cm.options.scrollbarStyle](function(node) {
+      cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);
+      // Prevent clicks in the scrollbars from killing focus
+      on(node, "mousedown", function() {
+        if (cm.state.focused) setTimeout(function() { cm.display.input.focus(); }, 0);
+      });
+      node.setAttribute("cm-not-content", "true");
+    }, function(pos, axis) {
+      if (axis == "horizontal") setScrollLeft(cm, pos);
+      else setScrollTop(cm, pos);
+    }, cm);
+    if (cm.display.scrollbars.addClass)
+      addClass(cm.display.wrapper, cm.display.scrollbars.addClass);
+  }
+
+  function updateScrollbars(cm, measure) {
+    if (!measure) measure = measureForScrollbars(cm);
+    var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;
+    updateScrollbarsInner(cm, measure);
+    for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {
+      if (startWidth != cm.display.barWidth && cm.options.lineWrapping)
+        updateHeightsInViewport(cm);
+      updateScrollbarsInner(cm, measureForScrollbars(cm));
+      startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;
+    }
+  }
+
+  // Re-synchronize the fake scrollbars with the actual size of the
+  // content.
+  function updateScrollbarsInner(cm, measure) {
+    var d = cm.display;
+    var sizes = d.scrollbars.update(measure);
+
+    d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px";
+    d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px";
+    d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"
+
+    if (sizes.right && sizes.bottom) {
+      d.scrollbarFiller.style.display = "block";
+      d.scrollbarFiller.style.height = sizes.bottom + "px";
+      d.scrollbarFiller.style.width = sizes.right + "px";
+    } else d.scrollbarFiller.style.display = "";
+    if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {
+      d.gutterFiller.style.display = "block";
+      d.gutterFiller.style.height = sizes.bottom + "px";
+      d.gutterFiller.style.width = measure.gutterWidth + "px";
+    } else d.gutterFiller.style.display = "";
+  }
+
+  // Compute the lines that are visible in a given viewport (defaults
+  // the the current scroll position). viewport may contain top,
+  // height, and ensure (see op.scrollToPos) properties.
+  function visibleLines(display, doc, viewport) {
+    var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;
+    top = Math.floor(top - paddingTop(display));
+    var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;
+
+    var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);
+    // Ensure is a {from: {line, ch}, to: {line, ch}} object, and
+    // forces those lines into the viewport (if possible).
+    if (viewport && viewport.ensure) {
+      var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;
+      if (ensureFrom < from) {
+        from = ensureFrom;
+        to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);
+      } else if (Math.min(ensureTo, doc.lastLine()) >= to) {
+        from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);
+        to = ensureTo;
+      }
+    }
+    return {from: from, to: Math.max(to, from + 1)};
+  }
+
+  // LINE NUMBERS
+
+  // Re-align line numbers and gutter marks to compensate for
+  // horizontal scrolling.
+  function alignHorizontally(cm) {
+    var display = cm.display, view = display.view;
+    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) return;
+    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
+    var gutterW = display.gutters.offsetWidth, left = comp + "px";
+    for (var i = 0; i < view.length; i++) if (!view[i].hidden) {
+      if (cm.options.fixedGutter) {
+        if (view[i].gutter)
+          view[i].gutter.style.left = left;
+        if (view[i].gutterBackground)
+          view[i].gutterBackground.style.left = left;
+      }
+      var align = view[i].alignable;
+      if (align) for (var j = 0; j < align.length; j++)
+        align[j].style.left = left;
+    }
+    if (cm.options.fixedGutter)
+      display.gutters.style.left = (comp + gutterW) + "px";
+  }
+
+  // Used to ensure that the line number gutter is still the right
+  // size for the current document size. Returns true when an update
+  // is needed.
+  function maybeUpdateLineNumberWidth(cm) {
+    if (!cm.options.lineNumbers) return false;
+    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
+    if (last.length != display.lineNumChars) {
+      var test = display.measure.appendChild(elt("div", [elt("div", last)],
+                                                 "CodeMirror-linenumber CodeMirror-gutter-elt"));
+      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
+      display.lineGutter.style.width = "";
+      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
+      display.lineNumWidth = display.lineNumInnerWidth + padding;
+      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
+      display.lineGutter.style.width = display.lineNumWidth + "px";
+      updateGutterSpace(cm);
+      return true;
+    }
+    return false;
+  }
+
+  function lineNumberFor(options, i) {
+    return String(options.lineNumberFormatter(i + options.firstLineNumber));
+  }
+
+  // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,
+  // but using getBoundingClientRect to get a sub-pixel-accurate
+  // result.
+  function compensateForHScroll(display) {
+    return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left;
+  }
+
+  // DISPLAY DRAWING
+
+  function DisplayUpdate(cm, viewport, force) {
+    var display = cm.display;
+
+    this.viewport = viewport;
+    // Store some values that we'll need later (but don't want to force a relayout for)
+    this.visible = visibleLines(display, cm.doc, viewport);
+    this.editorIsHidden = !display.wrapper.offsetWidth;
+    this.wrapperHeight = display.wrapper.clientHeight;
+    this.wrapperWidth = display.wrapper.clientWidth;
+    this.oldDisplayWidth = displayWidth(cm);
+    this.force = force;
+    this.dims = getDimensions(cm);
+    this.events = [];
+  }
+
+  DisplayUpdate.prototype.signal = function(emitter, type) {
+    if (hasHandler(emitter, type))
+      this.events.push(arguments);
+  };
+  DisplayUpdate.prototype.finish = function() {
+    for (var i = 0; i < this.events.length; i++)
+      signal.apply(null, this.events[i]);
+  };
+
+  function maybeClipScrollbars(cm) {
+    var display = cm.display;
+    if (!display.scrollbarsClipped && display.scroller.offsetWidth) {
+      display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;
+      display.heightForcer.style.height = scrollGap(cm) + "px";
+      display.sizer.style.marginBottom = -display.nativeBarWidth + "px";
+      display.sizer.style.borderRightWidth = scrollGap(cm) + "px";
+      display.scrollbarsClipped = true;
+    }
+  }
+
+  // Does the actual updating of the line display. Bails out
+  // (returning false) when there is nothing to be done and forced is
+  // false.
+  function updateDisplayIfNeeded(cm, update) {
+    var display = cm.display, doc = cm.doc;
+
+    if (update.editorIsHidden) {
+      resetView(cm);
+      return false;
+    }
+
+    // Bail out if the visible area is already rendered and nothing changed.
+    if (!update.force &&
+        update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&
+        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&
+        display.renderedView == display.view && countDirtyView(cm) == 0)
+      return false;
+
+    if (maybeUpdateLineNumberWidth(cm)) {
+      resetView(cm);
+      update.dims = getDimensions(cm);
+    }
+
+    // Compute a suitable new viewport (from & to)
+    var end = doc.first + doc.size;
+    var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);
+    var to = Math.min(end, update.visible.to + cm.options.viewportMargin);
+    if (display.viewFrom < from && from - display.viewFrom < 20) from = Math.max(doc.first, display.viewFrom);
+    if (display.viewTo > to && display.viewTo - to < 20) to = Math.min(end, display.viewTo);
+    if (sawCollapsedSpans) {
+      from = visualLineNo(cm.doc, from);
+      to = visualLineEndNo(cm.doc, to);
+    }
+
+    var different = from != display.viewFrom || to != display.viewTo ||
+      display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;
+    adjustView(cm, from, to);
+
+    display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));
+    // Position the mover div to align with the current scroll position
+    cm.display.mover.style.top = display.viewOffset + "px";
+
+    var toUpdate = countDirtyView(cm);
+    if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&
+        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))
+      return false;
+
+    // For big changes, we hide the enclosing element during the
+    // update, since that speeds up the operations on most browsers.
+    var focused = activeElt();
+    if (toUpdate > 4) display.lineDiv.style.display = "none";
+    patchDisplay(cm, display.updateLineNumbers, update.dims);
+    if (toUpdate > 4) display.lineDiv.style.display = "";
+    display.renderedView = display.view;
+    // There might have been a widget with a focused element that got
+    // hidden or updated, if so re-focus it.
+    if (focused && activeElt() != focused && focused.offsetHeight) focused.focus();
+
+    // Prevent selection and cursors from interfering with the scroll
+    // width and height.
+    removeChildren(display.cursorDiv);
+    removeChildren(display.selectionDiv);
+    display.gutters.style.height = display.sizer.style.minHeight = 0;
+
+    if (different) {
+      display.lastWrapHeight = update.wrapperHeight;
+      display.lastWrapWidth = update.wrapperWidth;
+      startWorker(cm, 400);
+    }
+
+    display.updateLineNumbers = null;
+
+    return true;
+  }
+
+  function postUpdateDisplay(cm, update) {
+    var viewport = update.viewport;
+
+    for (var first = true;; first = false) {
+      if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
+        // Clip forced viewport to actual scrollable area.
+        if (viewport && viewport.top != null)
+          viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)};
+        // Updated line heights might result in the drawn area not
+        // actually covering the viewport. Keep looping until it does.
+        update.visible = visibleLines(cm.display, cm.doc, viewport);
+        if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)
+          break;
+      }
+      if (!updateDisplayIfNeeded(cm, update)) break;
+      updateHeightsInViewport(cm);
+      var barMeasure = measureForScrollbars(cm);
+      updateSelection(cm);
+      updateScrollbars(cm, barMeasure);
+      setDocumentHeight(cm, barMeasure);
+    }
+
+    update.signal(cm, "update", cm);
+    if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {
+      update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo);
+      cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;
+    }
+  }
+
+  function updateDisplaySimple(cm, viewport) {
+    var update = new DisplayUpdate(cm, viewport);
+    if (updateDisplayIfNeeded(cm, update)) {
+      updateHeightsInViewport(cm);
+      postUpdateDisplay(cm, update);
+      var barMeasure = measureForScrollbars(cm);
+      updateSelection(cm);
+      updateScrollbars(cm, barMeasure);
+      setDocumentHeight(cm, barMeasure);
+      update.finish();
+    }
+  }
+
+  function setDocumentHeight(cm, measure) {
+    cm.display.sizer.style.minHeight = measure.docHeight + "px";
+    cm.display.heightForcer.style.top = measure.docHeight + "px";
+    cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px";
+  }
+
+  // Read the actual heights of the rendered lines, and update their
+  // stored heights to match.
+  function updateHeightsInViewport(cm) {
+    var display = cm.display;
+    var prevBottom = display.lineDiv.offsetTop;
+    for (var i = 0; i < display.view.length; i++) {
+      var cur = display.view[i], height;
+      if (cur.hidden) continue;
+      if (ie && ie_version < 8) {
+        var bot = cur.node.offsetTop + cur.node.offsetHeight;
+        height = bot - prevBottom;
+        prevBottom = bot;
+      } else {
+        var box = cur.node.getBoundingClientRect();
+        height = box.bottom - box.top;
+      }
+      var diff = cur.line.height - height;
+      if (height < 2) height = textHeight(display);
+      if (diff > .001 || diff < -.001) {
+        updateLineHeight(cur.line, height);
+        updateWidgetHeight(cur.line);
+        if (cur.rest) for (var j = 0; j < cur.rest.length; j++)
+          updateWidgetHeight(cur.rest[j]);
+      }
+    }
+  }
+
+  // Read and store the height of line widgets associated with the
+  // given line.
+  function updateWidgetHeight(line) {
+    if (line.widgets) for (var i = 0; i < line.widgets.length; ++i)
+      line.widgets[i].height = line.widgets[i].node.parentNode.offsetHeight;
+  }
+
+  // Do a bulk-read of the DOM positions and sizes needed to draw the
+  // view, so that we don't interleave reading and writing to the DOM.
+  function getDimensions(cm) {
+    var d = cm.display, left = {}, width = {};
+    var gutterLeft = d.gutters.clientLeft;
+    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {
+      left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;
+      width[cm.options.gutters[i]] = n.clientWidth;
+    }
+    return {fixedPos: compensateForHScroll(d),
+            gutterTotalWidth: d.gutters.offsetWidth,
+            gutterLeft: left,
+            gutterWidth: width,
+            wrapperWidth: d.wrapper.clientWidth};
+  }
+
+  // Sync the actual display DOM structure with display.view, removing
+  // nodes for lines that are no longer in view, and creating the ones
+  // that are not there yet, and updating the ones that are out of
+  // date.
+  function patchDisplay(cm, updateNumbersFrom, dims) {
+    var display = cm.display, lineNumbers = cm.options.lineNumbers;
+    var container = display.lineDiv, cur = container.firstChild;
+
+    function rm(node) {
+      var next = node.nextSibling;
+      // Works around a throw-scroll bug in OS X Webkit
+      if (webkit && mac && cm.display.currentWheelTarget == node)
+        node.style.display = "none";
+      else
+        node.parentNode.removeChild(node);
+      return next;
+    }
+
+    var view = display.view, lineN = display.viewFrom;
+    // Loop over the elements in the view, syncing cur (the DOM nodes
+    // in display.lineDiv) with the view as we go.
+    for (var i = 0; i < view.length; i++) {
+      var lineView = view[i];
+      if (lineView.hidden) {
+      } else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet
+        var node = buildLineElement(cm, lineView, lineN, dims);
+        container.insertBefore(node, cur);
+      } else { // Already drawn
+        while (cur != lineView.node) cur = rm(cur);
+        var updateNumber = lineNumbers && updateNumbersFrom != null &&
+          updateNumbersFrom <= lineN && lineView.lineNumber;
+        if (lineView.changes) {
+          if (indexOf(lineView.changes, "gutter") > -1) updateNumber = false;
+          updateLineForChanges(cm, lineView, lineN, dims);
+        }
+        if (updateNumber) {
+          removeChildren(lineView.lineNumber);
+          lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));
+        }
+        cur = lineView.node.nextSibling;
+      }
+      lineN += lineView.size;
+    }
+    while (cur) cur = rm(cur);
+  }
+
+  // When an aspect of a line changes, a string is added to
+  // lineView.changes. This updates the relevant part of the line's
+  // DOM structure.
+  function updateLineForChanges(cm, lineView, lineN, dims) {
+    for (var j = 0; j < lineView.changes.length; j++) {
+      var type = lineView.changes[j];
+      if (type == "text") updateLineText(cm, lineView);
+      else if (type == "gutter") updateLineGutter(cm, lineView, lineN, dims);
+      else if (type == "class") updateLineClasses(lineView);
+      else if (type == "widget") updateLineWidgets(cm, lineView, dims);
+    }
+    lineView.changes = null;
+  }
+
+  // Lines with gutter elements, widgets or a background class need to
+  // be wrapped, and have the extra elements added to the wrapper div
+  function ensureLineWrapped(lineView) {
+    if (lineView.node == lineView.text) {
+      lineView.node = elt("div", null, null, "position: relative");
+      if (lineView.text.parentNode)
+        lineView.text.parentNode.replaceChild(lineView.node, lineView.text);
+      lineView.node.appendChild(lineView.text);
+      if (ie && ie_version < 8) lineView.node.style.zIndex = 2;
+    }
+    return lineView.node;
+  }
+
+  function updateLineBackground(lineView) {
+    var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass;
+    if (cls) cls += " CodeMirror-linebackground";
+    if (lineView.background) {
+      if (cls) lineView.background.className = cls;
+      else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }
+    } else if (cls) {
+      var wrap = ensureLineWrapped(lineView);
+      lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild);
+    }
+  }
+
+  // Wrapper around buildLineContent which will reuse the structure
+  // in display.externalMeasured when possible.
+  function getLineContent(cm, lineView) {
+    var ext = cm.display.externalMeasured;
+    if (ext && ext.line == lineView.line) {
+      cm.display.externalMeasured = null;
+      lineView.measure = ext.measure;
+      return ext.built;
+    }
+    return buildLineContent(cm, lineView);
+  }
+
+  // Redraw the line's text. Interacts with the background and text
+  // classes because the mode may output tokens that influence these
+  // classes.
+  function updateLineText(cm, lineView) {
+    var cls = lineView.text.className;
+    var built = getLineContent(cm, lineView);
+    if (lineView.text == lineView.node) lineView.node = built.pre;
+    lineView.text.parentNode.replaceChild(built.pre, lineView.text);
+    lineView.text = built.pre;
+    if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {
+      lineView.bgClass = built.bgClass;
+      lineView.textClass = built.textClass;
+      updateLineClasses(lineView);
+    } else if (cls) {
+      lineView.text.className = cls;
+    }
+  }
+
+  function updateLineClasses(lineView) {
+    updateLineBackground(lineView);
+    if (lineView.line.wrapClass)
+      ensureLineWrapped(lineView).className = lineView.line.wrapClass;
+    else if (lineView.node != lineView.text)
+      lineView.node.className = "";
+    var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass;
+    lineView.text.className = textClass || "";
+  }
+
+  function updateLineGutter(cm, lineView, lineN, dims) {
+    if (lineView.gutter) {
+      lineView.node.removeChild(lineView.gutter);
+      lineView.gutter = null;
+    }
+    if (lineView.gutterBackground) {
+      lineView.node.removeChild(lineView.gutterBackground);
+      lineView.gutterBackground = null;
+    }
+    if (lineView.line.gutterClass) {
+      var wrap = ensureLineWrapped(lineView);
+      lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass,
+                                      "left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) +
+                                      "px; width: " + dims.gutterTotalWidth + "px");
+      wrap.insertBefore(lineView.gutterBackground, lineView.text);
+    }
+    var markers = lineView.line.gutterMarkers;
+    if (cm.options.lineNumbers || markers) {
+      var wrap = ensureLineWrapped(lineView);
+      var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", "left: " +
+                                             (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px");
+      cm.display.input.setUneditable(gutterWrap);
+      wrap.insertBefore(gutterWrap, lineView.text);
+      if (lineView.line.gutterClass)
+        gutterWrap.className += " " + lineView.line.gutterClass;
+      if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"]))
+        lineView.lineNumber = gutterWrap.appendChild(
+          elt("div", lineNumberFor(cm.options, lineN),
+              "CodeMirror-linenumber CodeMirror-gutter-elt",
+              "left: " + dims.gutterLeft["CodeMirror-linenumbers"] + "px; width: "
+              + cm.display.lineNumInnerWidth + "px"));
+      if (markers) for (var k = 0; k < cm.options.gutters.length; ++k) {
+        var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];
+        if (found)
+          gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", "left: " +
+                                     dims.gutterLeft[id] + "px; width: " + dims.gutterWidth[id] + "px"));
+      }
+    }
+  }
+
+  function updateLineWidgets(cm, lineView, dims) {
+    if (lineView.alignable) lineView.alignable = null;
+    for (var node = lineView.node.firstChild, next; node; node = next) {
+      var next = node.nextSibling;
+      if (node.className == "CodeMirror-linewidget")
+        lineView.node.removeChild(node);
+    }
+    insertLineWidgets(cm, lineView, dims);
+  }
+
+  // Build a line's DOM representation from scratch
+  function buildLineElement(cm, lineView, lineN, dims) {
+    var built = getLineContent(cm, lineView);
+    lineView.text = lineView.node = built.pre;
+    if (built.bgClass) lineView.bgClass = built.bgClass;
+    if (built.textClass) lineView.textClass = built.textClass;
+
+    updateLineClasses(lineView);
+    updateLineGutter(cm, lineView, lineN, dims);
+    insertLineWidgets(cm, lineView, dims);
+    return lineView.node;
+  }
+
+  // A lineView may contain multiple logical lines (when merged by
+  // collapsed spans). The widgets for all of them need to be drawn.
+  function insertLineWidgets(cm, lineView, dims) {
+    insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);
+    if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
+      insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false);
+  }
+
+  function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
+    if (!line.widgets) return;
+    var wrap = ensureLineWrapped(lineView);
+    for (var i = 0, ws = line.widgets; i < ws.length; ++i) {
+      var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget");
+      if (!widget.handleMouseEvents) node.setAttribute("cm-ignore-events", "true");
+      positionLineWidget(widget, node, lineView, dims);
+      cm.display.input.setUneditable(node);
+      if (allowAbove && widget.above)
+        wrap.insertBefore(node, lineView.gutter || lineView.text);
+      else
+        wrap.appendChild(node);
+      signalLater(widget, "redraw");
+    }
+  }
+
+  function positionLineWidget(widget, node, lineView, dims) {
+    if (widget.noHScroll) {
+      (lineView.alignable || (lineView.alignable = [])).push(node);
+      var width = dims.wrapperWidth;
+      node.style.left = dims.fixedPos + "px";
+      if (!widget.coverGutter) {
+        width -= dims.gutterTotalWidth;
+        node.style.paddingLeft = dims.gutterTotalWidth + "px";
+      }
+      node.style.width = width + "px";
+    }
+    if (widget.coverGutter) {
+      node.style.zIndex = 5;
+      node.style.position = "relative";
+      if (!widget.noHScroll) node.style.marginLeft = -dims.gutterTotalWidth + "px";
+    }
+  }
+
+  // POSITION OBJECT
+
+  // A Pos instance represents a position within the text.
+  var Pos = CodeMirror.Pos = function(line, ch) {
+    if (!(this instanceof Pos)) return new Pos(line, ch);
+    this.line = line; this.ch = ch;
+  };
+
+  // Compare two positions, return 0 if they are the same, a negative
+  // number when a is less, and a positive number otherwise.
+  var cmp = CodeMirror.cmpPos = function(a, b) { return a.line - b.line || a.ch - b.ch; };
+
+  function copyPos(x) {return Pos(x.line, x.ch);}
+  function maxPos(a, b) { return cmp(a, b) < 0 ? b : a; }
+  function minPos(a, b) { return cmp(a, b) < 0 ? a : b; }
+
+  // INPUT HANDLING
+
+  function ensureFocus(cm) {
+    if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
+  }
+
+  // This will be set to a {lineWise: bool, text: [string]} object, so
+  // that, when pasting, we know what kind of selections the copied
+  // text was made out of.
+  var lastCopied = null;
+
+  function applyTextInput(cm, inserted, deleted, sel, origin) {
+    var doc = cm.doc;
+    cm.display.shift = false;
+    if (!sel) sel = doc.sel;
+
+    var paste = cm.state.pasteIncoming || origin == "paste";
+    var textLines = doc.splitLines(inserted), multiPaste = null
+    // When pasing N lines into N selections, insert one line per selection
+    if (paste && sel.ranges.length > 1) {
+      if (lastCopied && lastCopied.text.join("\n") == inserted) {
+        if (sel.ranges.length % lastCopied.text.length == 0) {
+          multiPaste = [];
+          for (var i = 0; i < lastCopied.text.length; i++)
+            multiPaste.push(doc.splitLines(lastCopied.text[i]));
+        }
+      } else if (textLines.length == sel.ranges.length) {
+        multiPaste = map(textLines, function(l) { return [l]; });
+      }
+    }
+
+    // Normal behavior is to insert the new text into every selection
+    for (var i = sel.ranges.length - 1; i >= 0; i--) {
+      var range = sel.ranges[i];
+      var from = range.from(), to = range.to();
+      if (range.empty()) {
+        if (deleted && deleted > 0) // Handle deletion
+          from = Pos(from.line, from.ch - deleted);
+        else if (cm.state.overwrite && !paste) // Handle overwrite
+          to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));
+        else if (lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted)
+          from = to = Pos(from.line, 0)
+      }
+      var updateInput = cm.curOp.updateInput;
+      var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,
+                         origin: origin || (paste ? "paste" : cm.state.cutIncoming ? "cut" : "+input")};
+      makeChange(cm.doc, changeEvent);
+      signalLater(cm, "inputRead", cm, changeEvent);
+    }
+    if (inserted && !paste)
+      triggerElectric(cm, inserted);
+
+    ensureCursorVisible(cm);
+    cm.curOp.updateInput = updateInput;
+    cm.curOp.typing = true;
+    cm.state.pasteIncoming = cm.state.cutIncoming = false;
+  }
+
+  function handlePaste(e, cm) {
+    var pasted = e.clipboardData && e.clipboardData.getData("Text");
+    if (pasted) {
+      e.preventDefault();
+      if (!cm.isReadOnly() && !cm.options.disableInput)
+        runInOp(cm, function() { applyTextInput(cm, pasted, 0, null, "paste"); });
+      return true;
+    }
+  }
+
+  function triggerElectric(cm, inserted) {
+    // When an 'electric' character is inserted, immediately trigger a reindent
+    if (!cm.options.electricChars || !cm.options.smartIndent) return;
+    var sel = cm.doc.sel;
+
+    for (var i = sel.ranges.length - 1; i >= 0; i--) {
+      var range = sel.ranges[i];
+      if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) continue;
+      var mode = cm.getModeAt(range.head);
+      var indented = false;
+      if (mode.electricChars) {
+        for (var j = 0; j < mode.electricChars.length; j++)
+          if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
+            indented = indentLine(cm, range.head.line, "smart");
+            break;
+          }
+      } else if (mode.electricInput) {
+        if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch)))
+          indented = indentLine(cm, range.head.line, "smart");
+      }
+      if (indented) signalLater(cm, "electricInput", cm, range.head.line);
+    }
+  }
+
+  function copyableRanges(cm) {
+    var text = [], ranges = [];
+    for (var i = 0; i < cm.doc.sel.ranges.length; i++) {
+      var line = cm.doc.sel.ranges[i].head.line;
+      var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};
+      ranges.push(lineRange);
+      text.push(cm.getRange(lineRange.anchor, lineRange.head));
+    }
+    return {text: text, ranges: ranges};
+  }
+
+  function disableBrowserMagic(field, spellcheck) {
+    field.setAttribute("autocorrect", "off");
+    field.setAttribute("autocapitalize", "off");
+    field.setAttribute("spellcheck", !!spellcheck);
+  }
+
+  // TEXTAREA INPUT STYLE
+
+  function TextareaInput(cm) {
+    this.cm = cm;
+    // See input.poll and input.reset
+    this.prevInput = "";
+
+    // Flag that indicates whether we expect input to appear real soon
+    // now (after some event like 'keypress' or 'input') and are
+    // polling intensively.
+    this.pollingFast = false;
+    // Self-resetting timeout for the poller
+    this.polling = new Delayed();
+    // Tracks when input.reset has punted to just putting a short
+    // string into the textarea instead of the full selection.
+    this.inaccurateSelection = false;
+    // Used to work around IE issue with selection being forgotten when focus moves away from textarea
+    this.hasSelection = false;
+    this.composing = null;
+  };
+
+  function hiddenTextarea() {
+    var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none");
+    var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
+    // The textarea is kept positioned near the cursor to prevent the
+    // fact that it'll be scrolled into view on input from scrolling
+    // our fake cursor out of view. On webkit, when wrap=off, paste is
+    // very slow. So make the area wide instead.
+    if (webkit) te.style.width = "1000px";
+    else te.setAttribute("wrap", "off");
+    // If border: 0; -- iOS fails to open keyboard (issue #1287)
+    if (ios) te.style.border = "1px solid black";
+    disableBrowserMagic(te);
+    return div;
+  }
+
+  TextareaInput.prototype = copyObj({
+    init: function(display) {
+      var input = this, cm = this.cm;
+
+      // Wraps and hides input textarea
+      var div = this.wrapper = hiddenTextarea();
+      // The semihidden textarea that is focused when the editor is
+      // focused, and receives input.
+      var te = this.textarea = div.firstChild;
+      display.wrapper.insertBefore(div, display.wrapper.firstChild);
+
+      // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
+      if (ios) te.style.width = "0px";
+
+      on(te, "input", function() {
+        if (ie && ie_version >= 9 && input.hasSelection) input.hasSelection = null;
+        input.poll();
+      });
+
+      on(te, "paste", function(e) {
+        if (signalDOMEvent(cm, e) || handlePaste(e, cm)) return
+
+        cm.state.pasteIncoming = true;
+        input.fastPoll();
+      });
+
+      function prepareCopyCut(e) {
+        if (signalDOMEvent(cm, e)) return
+        if (cm.somethingSelected()) {
+          lastCopied = {lineWise: false, text: cm.getSelections()};
+          if (input.inaccurateSelection) {
+            input.prevInput = "";
+            input.inaccurateSelection = false;
+            te.value = lastCopied.text.join("\n");
+            selectInput(te);
+          }
+        } else if (!cm.options.lineWiseCopyCut) {
+          return;
+        } else {
+          var ranges = copyableRanges(cm);
+          lastCopied = {lineWise: true, text: ranges.text};
+          if (e.type == "cut") {
+            cm.setSelections(ranges.ranges, null, sel_dontScroll);
+          } else {
+            input.prevInput = "";
+            te.value = ranges.text.join("\n");
+            selectInput(te);
+          }
+        }
+        if (e.type == "cut") cm.state.cutIncoming = true;
+      }
+      on(te, "cut", prepareCopyCut);
+      on(te, "copy", prepareCopyCut);
+
+      on(display.scroller, "paste", function(e) {
+        if (eventInWidget(display, e) || signalDOMEvent(cm, e)) return;
+        cm.state.pasteIncoming = true;
+        input.focus();
+      });
+
+      // Prevent normal selection in the editor (we handle our own)
+      on(display.lineSpace, "selectstart", function(e) {
+        if (!eventInWidget(display, e)) e_preventDefault(e);
+      });
+
+      on(te, "compositionstart", function() {
+        var start = cm.getCursor("from");
+        if (input.composing) input.composing.range.clear()
+        input.composing = {
+          start: start,
+          range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"})
+        };
+      });
+      on(te, "compositionend", function() {
+        if (input.composing) {
+          input.poll();
+          input.composing.range.clear();
+          input.composing = null;
+        }
+      });
+    },
+
+    prepareSelection: function() {
+      // Redraw the selection and/or cursor
+      var cm = this.cm, display = cm.display, doc = cm.doc;
+      var result = prepareSelection(cm);
+
+      // Move the hidden textarea near the cursor to prevent scrolling artifacts
+      if (cm.options.moveInputWithCursor) {
+        var headPos = cursorCoords(cm, doc.sel.primary().head, "div");
+        var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();
+        result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
+                                            headPos.top + lineOff.top - wrapOff.top));
+        result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
+                                             headPos.left + lineOff.left - wrapOff.left));
+      }
+
+      return result;
+    },
+
+    showSelection: function(drawn) {
+      var cm = this.cm, display = cm.display;
+      removeChildrenAndAdd(display.cursorDiv, drawn.cursors);
+      removeChildrenAndAdd(display.selectionDiv, drawn.selection);
+      if (drawn.teTop != null) {
+        this.wrapper.style.top = drawn.teTop + "px";
+        this.wrapper.style.left = drawn.teLeft + "px";
+      }
+    },
+
+    // Reset the input to correspond to the selection (or to be empty,
+    // when not typing and nothing is selected)
+    reset: function(typing) {
+      if (this.contextMenuPending) return;
+      var minimal, selected, cm = this.cm, doc = cm.doc;
+      if (cm.somethingSelected()) {
+        this.prevInput = "";
+        var range = doc.sel.primary();
+        minimal = hasCopyEvent &&
+          (range.to().line - range.from().line > 100 || (selected = cm.getSelection()).length > 1000);
+        var content = minimal ? "-" : selected || cm.getSelection();
+        this.textarea.value = content;
+        if (cm.state.focused) selectInput(this.textarea);
+        if (ie && ie_version >= 9) this.hasSelection = content;
+      } else if (!typing) {
+        this.prevInput = this.textarea.value = "";
+        if (ie && ie_version >= 9) this.hasSelection = null;
+      }
+      this.inaccurateSelection = minimal;
+    },
+
+    getField: function() { return this.textarea; },
+
+    supportsTouch: function() { return false; },
+
+    focus: function() {
+      if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) {
+        try { this.textarea.focus(); }
+        catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM
+      }
+    },
+
+    blur: function() { this.textarea.blur(); },
+
+    resetPosition: function() {
+      this.wrapper.style.top = this.wrapper.style.left = 0;
+    },
+
+    receivedFocus: function() { this.slowPoll(); },
+
+    // Poll for input changes, using the normal rate of polling. This
+    // runs as long as the editor is focused.
+    slowPoll: function() {
+      var input = this;
+      if (input.pollingFast) return;
+      input.polling.set(this.cm.options.pollInterval, function() {
+        input.poll();
+        if (input.cm.state.focused) input.slowPoll();
+      });
+    },
+
+    // When an event has just come in that is likely to add or change
+    // something in the input textarea, we poll faster, to ensure that
+    // the change appears on the screen quickly.
+    fastPoll: function() {
+      var missed = false, input = this;
+      input.pollingFast = true;
+      function p() {
+        var changed = input.poll();
+        if (!changed && !missed) {missed = true; input.polling.set(60, p);}
+        else {input.pollingFast = false; input.slowPoll();}
+      }
+      input.polling.set(20, p);
+    },
+
+    // Read input from the textarea, and update the document to match.
+    // When something is selected, it is present in the textarea, and
+    // selected (unless it is huge, in which case a placeholder is
+    // used). When nothing is selected, the cursor sits after previously
+    // seen text (can be empty), which is stored in prevInput (we must
+    // not reset the textarea when typing, because that breaks IME).
+    poll: function() {
+      var cm = this.cm, input = this.textarea, prevInput = this.prevInput;
+      // Since this is called a *lot*, try to bail out as cheaply as
+      // possible when it is clear that nothing happened. hasSelection
+      // will be the case when there is a lot of text in the textarea,
+      // in which case reading its value would be expensive.
+      if (this.contextMenuPending || !cm.state.focused ||
+          (hasSelection(input) && !prevInput && !this.composing) ||
+          cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)
+        return false;
+
+      var text = input.value;
+      // If nothing changed, bail.
+      if (text == prevInput && !cm.somethingSelected()) return false;
+      // Work around nonsensical selection resetting in IE9/10, and
+      // inexplicable appearance of private area unicode characters on
+      // some key combos in Mac (#2689).
+      if (ie && ie_version >= 9 && this.hasSelection === text ||
+          mac && /[\uf700-\uf7ff]/.test(text)) {
+        cm.display.input.reset();
+        return false;
+      }
+
+      if (cm.doc.sel == cm.display.selForContextMenu) {
+        var first = text.charCodeAt(0);
+        if (first == 0x200b && !prevInput) prevInput = "\u200b";
+        if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo"); }
+      }
+      // Find the part of the input that is actually new
+      var same = 0, l = Math.min(prevInput.length, text.length);
+      while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) ++same;
+
+      var self = this;
+      runInOp(cm, function() {
+        applyTextInput(cm, text.slice(same), prevInput.length - same,
+                       null, self.composing ? "*compose" : null);
+
+        // Don't leave long text in the textarea, since it makes further polling slow
+        if (text.length > 1000 || text.indexOf("\n") > -1) input.value = self.prevInput = "";
+        else self.prevInput = text;
+
+        if (self.composing) {
+          self.composing.range.clear();
+          self.composing.range = cm.markText(self.composing.start, cm.getCursor("to"),
+                                             {className: "CodeMirror-composing"});
+        }
+      });
+      return true;
+    },
+
+    ensurePolled: function() {
+      if (this.pollingFast && this.poll()) this.pollingFast = false;
+    },
+
+    onKeyPress: function() {
+      if (ie && ie_version >= 9) this.hasSelection = null;
+      this.fastPoll();
+    },
+
+    onContextMenu: function(e) {
+      var input = this, cm = input.cm, display = cm.display, te = input.textarea;
+      var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
+      if (!pos || presto) return; // Opera is difficult.
+
+      // Reset the current text selection only if the click is done outside of the selection
+      // and 'resetSelectionOnContextMenu' option is true.
+      var reset = cm.options.resetSelectionOnContextMenu;
+      if (reset && cm.doc.sel.contains(pos) == -1)
+        operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll);
+
+      var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;
+      input.wrapper.style.cssText = "position: absolute"
+      var wrapperBox = input.wrapper.getBoundingClientRect()
+      te.style.cssText = "position: absolute; width: 30px; height: 30px; top: " + (e.clientY - wrapperBox.top - 5) +
+        "px; left: " + (e.clientX - wrapperBox.left - 5) + "px; z-index: 1000; background: " +
+        (ie ? "rgba(255, 255, 255, .05)" : "transparent") +
+        "; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
+      if (webkit) var oldScrollY = window.scrollY; // Work around Chrome issue (#2712)
+      display.input.focus();
+      if (webkit) window.scrollTo(null, oldScrollY);
+      display.input.reset();
+      // Adds "Select all" to context menu in FF
+      if (!cm.somethingSelected()) te.value = input.prevInput = " ";
+      input.contextMenuPending = true;
+      display.selForContextMenu = cm.doc.sel;
+      clearTimeout(display.detectingSelectAll);
+
+      // Select-all will be greyed out if there's nothing to select, so
+      // this adds a zero-width space so that we can later check whether
+      // it got selected.
+      function prepareSelectAllHack() {
+        if (te.selectionStart != null) {
+          var selected = cm.somethingSelected();
+          var extval = "\u200b" + (selected ? te.value : "");
+          te.value = "\u21da"; // Used to catch context-menu undo
+          te.value = extval;
+          input.prevInput = selected ? "" : "\u200b";
+          te.selectionStart = 1; te.selectionEnd = extval.length;
+          // Re-set this, in case some other handler touched the
+          // selection in the meantime.
+          display.selForContextMenu = cm.doc.sel;
+        }
+      }
+      function rehide() {
+        input.contextMenuPending = false;
+        input.wrapper.style.cssText = oldWrapperCSS
+        te.style.cssText = oldCSS;
+        if (ie && ie_version < 9) display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos);
+
+        // Try to detect the user choosing select-all
+        if (te.selectionStart != null) {
+          if (!ie || (ie && ie_version < 9)) prepareSelectAllHack();
+          var i = 0, poll = function() {
+            if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&
+                te.selectionEnd > 0 && input.prevInput == "\u200b")
+              operation(cm, commands.selectAll)(cm);
+            else if (i++ < 10) display.detectingSelectAll = setTimeout(poll, 500);
+            else display.input.reset();
+          };
+          display.detectingSelectAll = setTimeout(poll, 200);
+        }
+      }
+
+      if (ie && ie_version >= 9) prepareSelectAllHack();
+      if (captureRightClick) {
+        e_stop(e);
+        var mouseup = function() {
+          off(window, "mouseup", mouseup);
+          setTimeout(rehide, 20);
+        };
+        on(window, "mouseup", mouseup);
+      } else {
+        setTimeout(rehide, 50);
+      }
+    },
+
+    readOnlyChanged: function(val) {
+      if (!val) this.reset();
+    },
+
+    setUneditable: nothing,
+
+    needsContentAttribute: false
+  }, TextareaInput.prototype);
+
+  // CONTENTEDITABLE INPUT STYLE
+
+  function ContentEditableInput(cm) {
+    this.cm = cm;
+    this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;
+    this.polling = new Delayed();
+    this.gracePeriod = false;
+  }
+
+  ContentEditableInput.prototype = copyObj({
+    init: function(display) {
+      var input = this, cm = input.cm;
+      var div = input.div = display.lineDiv;
+      disableBrowserMagic(div, cm.options.spellcheck);
+
+      on(div, "paste", function(e) {
+        if (signalDOMEvent(cm, e) || handlePaste(e, cm)) return
+        // IE doesn't fire input events, so we schedule a read for the pasted content in this way
+        if (ie_version <= 11) setTimeout(operation(cm, function() {
+          if (!input.pollContent()) regChange(cm);
+        }), 20)
+      })
+
+      on(div, "compositionstart", function(e) {
+        var data = e.data;
+        input.composing = {sel: cm.doc.sel, data: data, startData: data};
+        if (!data) return;
+        var prim = cm.doc.sel.primary();
+        var line = cm.getLine(prim.head.line);
+        var found = line.indexOf(data, Math.max(0, prim.head.ch - data.length));
+        if (found > -1 && found <= prim.head.ch)
+          input.composing.sel = simpleSelection(Pos(prim.head.line, found),
+                                                Pos(prim.head.line, found + data.length));
+      });
+      on(div, "compositionupdate", function(e) {
+        input.composing.data = e.data;
+      });
+      on(div, "compositionend", function(e) {
+        var ours = input.composing;
+        if (!ours) return;
+        if (e.data != ours.startData && !/\u200b/.test(e.data))
+          ours.data = e.data;
+        // Need a small delay to prevent other code (input event,
+        // selection polling) from doing damage when fired right after
+        // compositionend.
+        setTimeout(function() {
+          if (!ours.handled)
+            input.applyComposition(ours);
+          if (input.composing == ours)
+            input.composing = null;
+        }, 50);
+      });
+
+      on(div, "touchstart", function() {
+        input.forceCompositionEnd();
+      });
+
+      on(div, "input", function() {
+        if (input.composing) return;
+        if (cm.isReadOnly() || !input.pollContent())
+          runInOp(input.cm, function() {regChange(cm);});
+      });
+
+      function onCopyCut(e) {
+        if (signalDOMEvent(cm, e)) return
+        if (cm.somethingSelected()) {
+          lastCopied = {lineWise: false, text: cm.getSelections()};
+          if (e.type == "cut") cm.replaceSelection("", null, "cut");
+        } else if (!cm.options.lineWiseCopyCut) {
+          return;
+        } else {
+          var ranges = copyableRanges(cm);
+          lastCopied = {lineWise: true, text: ranges.text};
+          if (e.type == "cut") {
+            cm.operation(function() {
+              cm.setSelections(ranges.ranges, 0, sel_dontScroll);
+              cm.replaceSelection("", null, "cut");
+            });
+          }
+        }
+        if (e.clipboardData) {
+          e.clipboardData.clearData();
+          var content = lastCopied.text.join("\n")
+          // iOS exposes the clipboard API, but seems to discard content inserted into it
+          e.clipboardData.setData("Text", content);
+          if (e.clipboardData.getData("Text") == content) {
+            e.preventDefault();
+            return
+          }
+        }
+        // Old-fashioned briefly-focus-a-textarea hack
+        var kludge = hiddenTextarea(), te = kludge.firstChild;
+        cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
+        te.value = lastCopied.text.join("\n");
+        var hadFocus = document.activeElement;
+        selectInput(te);
+        setTimeout(function() {
+          cm.display.lineSpace.removeChild(kludge);
+          hadFocus.focus();
+          if (hadFocus == div) input.showPrimarySelection()
+        }, 50);
+      }
+      on(div, "copy", onCopyCut);
+      on(div, "cut", onCopyCut);
+    },
+
+    prepareSelection: function() {
+      var result = prepareSelection(this.cm, false);
+      result.focus = this.cm.state.focused;
+      return result;
+    },
+
+    showSelection: function(info, takeFocus) {
+      if (!info || !this.cm.display.view.length) return;
+      if (info.focus || takeFocus) this.showPrimarySelection();
+      this.showMultipleSelections(info);
+    },
+
+    showPrimarySelection: function() {
+      var sel = window.getSelection(), prim = this.cm.doc.sel.primary();
+      var curAnchor = domToPos(this.cm, sel.anchorNode, sel.anchorOffset);
+      var curFocus = domToPos(this.cm, sel.focusNode, sel.focusOffset);
+      if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
+          cmp(minPos(curAnchor, curFocus), prim.from()) == 0 &&
+          cmp(maxPos(curAnchor, curFocus), prim.to()) == 0)
+        return;
+
+      var start = posToDOM(this.cm, prim.from());
+      var end = posToDOM(this.cm, prim.to());
+      if (!start && !end) return;
+
+      var view = this.cm.display.view;
+      var old = sel.rangeCount && sel.getRangeAt(0);
+      if (!start) {
+        start = {node: view[0].measure.map[2], offset: 0};
+      } else if (!end) { // FIXME dangerously hacky
+        var measure = view[view.length - 1].measure;
+        var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
+        end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]};
+      }
+
+      try { var rng = range(start.node, start.offset, end.offset, end.node); }
+      catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
+      if (rng) {
+        if (!gecko && this.cm.state.focused) {
+          sel.collapse(start.node, start.offset);
+          if (!rng.collapsed) sel.addRange(rng);
+        } else {
+          sel.removeAllRanges();
+          sel.addRange(rng);
+        }
+        if (old && sel.anchorNode == null) sel.addRange(old);
+        else if (gecko) this.startGracePeriod();
+      }
+      this.rememberSelection();
+    },
+
+    startGracePeriod: function() {
+      var input = this;
+      clearTimeout(this.gracePeriod);
+      this.gracePeriod = setTimeout(function() {
+        input.gracePeriod = false;
+        if (input.selectionChanged())
+          input.cm.operation(function() { input.cm.curOp.selectionChanged = true; });
+      }, 20);
+    },
+
+    showMultipleSelections: function(info) {
+      removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);
+      removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);
+    },
+
+    rememberSelection: function() {
+      var sel = window.getSelection();
+      this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
+      this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
+    },
+
+    selectionInEditor: function() {
+      var sel = window.getSelection();
+      if (!sel.rangeCount) return false;
+      var node = sel.getRangeAt(0).commonAncestorContainer;
+      return contains(this.div, node);
+    },
+
+    focus: function() {
+      if (this.cm.options.readOnly != "nocursor") this.div.focus();
+    },
+    blur: function() { this.div.blur(); },
+    getField: function() { return this.div; },
+
+    supportsTouch: function() { return true; },
+
+    receivedFocus: function() {
+      var input = this;
+      if (this.selectionInEditor())
+        this.pollSelection();
+      else
+        runInOp(this.cm, function() { input.cm.curOp.selectionChanged = true; });
+
+      function poll() {
+        if (input.cm.state.focused) {
+          input.pollSelection();
+          input.polling.set(input.cm.options.pollInterval, poll);
+        }
+      }
+      this.polling.set(this.cm.options.pollInterval, poll);
+    },
+
+    selectionChanged: function() {
+      var sel = window.getSelection();
+      return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
+        sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset;
+    },
+
+    pollSelection: function() {
+      if (!this.composing && !this.gracePeriod && this.selectionChanged()) {
+        var sel = window.getSelection(), cm = this.cm;
+        this.rememberSelection();
+        var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
+        var head = domToPos(cm, sel.focusNode, sel.focusOffset);
+        if (anchor && head) runInOp(cm, function() {
+          setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);
+          if (anchor.bad || head.bad) cm.curOp.selectionChanged = true;
+        });
+      }
+    },
+
+    pollContent: function() {
+      var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();
+      var from = sel.from(), to = sel.to();
+      if (from.line < display.viewFrom || to.line > display.viewTo - 1) return false;
+
+      var fromIndex;
+      if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {
+        var fromLine = lineNo(display.view[0].line);
+        var fromNode = display.view[0].node;
+      } else {
+        var fromLine = lineNo(display.view[fromIndex].line);
+        var fromNode = display.view[fromIndex - 1].node.nextSibling;
+      }
+      var toIndex = findViewIndex(cm, to.line);
+      if (toIndex == display.view.length - 1) {
+        var toLine = display.viewTo - 1;
+        var toNode = display.lineDiv.lastChild;
+      } else {
+        var toLine = lineNo(display.view[toIndex + 1].line) - 1;
+        var toNode = display.view[toIndex + 1].node.previousSibling;
+      }
+
+      var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));
+      var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));
+      while (newText.length > 1 && oldText.length > 1) {
+        if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }
+        else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }
+        else break;
+      }
+
+      var cutFront = 0, cutEnd = 0;
+      var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);
+      while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))
+        ++cutFront;
+      var newBot = lst(newText), oldBot = lst(oldText);
+      var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),
+                               oldBot.length - (oldText.length == 1 ? cutFront : 0));
+      while (cutEnd < maxCutEnd &&
+             newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))
+        ++cutEnd;
+
+      newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd);
+      newText[0] = newText[0].slice(cutFront);
+
+      var chFrom = Pos(fromLine, cutFront);
+      var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);
+      if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {
+        replaceRange(cm.doc, newText, chFrom, chTo, "+input");
+        return true;
+      }
+    },
+
+    ensurePolled: function() {
+      this.forceCompositionEnd();
+    },
+    reset: function() {
+      this.forceCompositionEnd();
+    },
+    forceCompositionEnd: function() {
+      if (!this.composing || this.composing.handled) return;
+      this.applyComposition(this.composing);
+      this.composing.handled = true;
+      this.div.blur();
+      this.div.focus();
+    },
+    applyComposition: function(composing) {
+      if (this.cm.isReadOnly())
+        operation(this.cm, regChange)(this.cm)
+      else if (composing.data && composing.data != composing.startData)
+        operation(this.cm, applyTextInput)(this.cm, composing.data, 0, composing.sel);
+    },
+
+    setUneditable: function(node) {
+      node.contentEditable = "false"
+    },
+
+    onKeyPress: function(e) {
+      e.preventDefault();
+      if (!this.cm.isReadOnly())
+        operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0);
+    },
+
+    readOnlyChanged: function(val) {
+      this.div.contentEditable = String(val != "nocursor")
+    },
+
+    onContextMenu: nothing,
+    resetPosition: nothing,
+
+    needsContentAttribute: true
+  }, ContentEditableInput.prototype);
+
+  function posToDOM(cm, pos) {
+    var view = findViewForLine(cm, pos.line);
+    if (!view || view.hidden) return null;
+    var line = getLine(cm.doc, pos.line);
+    var info = mapFromLineView(view, line, pos.line);
+
+    var order = getOrder(line), side = "left";
+    if (order) {
+      var partPos = getBidiPartAt(order, pos.ch);
+      side = partPos % 2 ? "right" : "left";
+    }
+    var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);
+    result.offset = result.collapse == "right" ? result.end : result.start;
+    return result;
+  }
+
+  function badPos(pos, bad) { if (bad) pos.bad = true; return pos; }
+
+  function domToPos(cm, node, offset) {
+    var lineNode;
+    if (node == cm.display.lineDiv) {
+      lineNode = cm.display.lineDiv.childNodes[offset];
+      if (!lineNode) return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true);
+      node = null; offset = 0;
+    } else {
+      for (lineNode = node;; lineNode = lineNode.parentNode) {
+        if (!lineNode || lineNode == cm.display.lineDiv) return null;
+        if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) break;
+      }
+    }
+    for (var i = 0; i < cm.display.view.length; i++) {
+      var lineView = cm.display.view[i];
+      if (lineView.node == lineNode)
+        return locateNodeInLineView(lineView, node, offset);
+    }
+  }
+
+  function locateNodeInLineView(lineView, node, offset) {
+    var wrapper = lineView.text.firstChild, bad = false;
+    if (!node || !contains(wrapper, node)) return badPos(Pos(lineNo(lineView.line), 0), true);
+    if (node == wrapper) {
+      bad = true;
+      node = wrapper.childNodes[offset];
+      offset = 0;
+      if (!node) {
+        var line = lineView.rest ? lst(lineView.rest) : lineView.line;
+        return badPos(Pos(lineNo(line), line.text.length), bad);
+      }
+    }
+
+    var textNode = node.nodeType == 3 ? node : null, topNode = node;
+    if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {
+      textNode = node.firstChild;
+      if (offset) offset = textNode.nodeValue.length;
+    }
+    while (topNode.parentNode != wrapper) topNode = topNode.parentNode;
+    var measure = lineView.measure, maps = measure.maps;
+
+    function find(textNode, topNode, offset) {
+      for (var i = -1; i < (maps ? maps.length : 0); i++) {
+        var map = i < 0 ? measure.map : maps[i];
+        for (var j = 0; j < map.length; j += 3) {
+          var curNode = map[j + 2];
+          if (curNode == textNode || curNode == topNode) {
+            var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);
+            var ch = map[j] + offset;
+            if (offset < 0 || curNode != textNode) ch = map[j + (offset ? 1 : 0)];
+            return Pos(line, ch);
+          }
+        }
+      }
+    }
+    var found = find(textNode, topNode, offset);
+    if (found) return badPos(found, bad);
+
+    // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems
+    for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {
+      found = find(after, after.firstChild, 0);
+      if (found)
+        return badPos(Pos(found.line, found.ch - dist), bad);
+      else
+        dist += after.textContent.length;
+    }
+    for (var before = topNode.previousSibling, dist = offset; before; before = before.previousSibling) {
+      found = find(before, before.firstChild, -1);
+      if (found)
+        return badPos(Pos(found.line, found.ch + dist), bad);
+      else
+        dist += before.textContent.length;
+    }
+  }
+
+  function domTextBetween(cm, from, to, fromLine, toLine) {
+    var text = "", closing = false, lineSep = cm.doc.lineSeparator();
+    function recognizeMarker(id) { return function(marker) { return marker.id == id; }; }
+    function walk(node) {
+      if (node.nodeType == 1) {
+        var cmText = node.getAttribute("cm-text");
+        if (cmText != null) {
+          if (cmText == "") cmText = node.textContent.replace(/\u200b/g, "");
+          text += cmText;
+          return;
+        }
+        var markerID = node.getAttribute("cm-marker"), range;
+        if (markerID) {
+          var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
+          if (found.length && (range = found[0].find()))
+            text += getBetween(cm.doc, range.from, range.to).join(lineSep);
+          return;
+        }
+        if (node.getAttribute("contenteditable") == "false") return;
+        for (var i = 0; i < node.childNodes.length; i++)
+          walk(node.childNodes[i]);
+        if (/^(pre|div|p)$/i.test(node.nodeName))
+          closing = true;
+      } else if (node.nodeType == 3) {
+        var val = node.nodeValue;
+        if (!val) return;
+        if (closing) {
+          text += lineSep;
+          closing = false;
+        }
+        text += val;
+      }
+    }
+    for (;;) {
+      walk(from);
+      if (from == to) break;
+      from = from.nextSibling;
+    }
+    return text;
+  }
+
+  CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput};
+
+  // SELECTION / CURSOR
+
+  // Selection objects are immutable. A new one is created every time
+  // the selection changes. A selection is one or more non-overlapping
+  // (and non-touching) ranges, sorted, and an integer that indicates
+  // which one is the primary selection (the one that's scrolled into
+  // view, that getCursor returns, etc).
+  function Selection(ranges, primIndex) {
+    this.ranges = ranges;
+    this.primIndex = primIndex;
+  }
+
+  Selection.prototype = {
+    primary: function() { return this.ranges[this.primIndex]; },
+    equals: function(other) {
+      if (other == this) return true;
+      if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) return false;
+      for (var i = 0; i < this.ranges.length; i++) {
+        var here = this.ranges[i], there = other.ranges[i];
+        if (cmp(here.anchor, there.anchor) != 0 || cmp(here.head, there.head) != 0) return false;
+      }
+      return true;
+    },
+    deepCopy: function() {
+      for (var out = [], i = 0; i < this.ranges.length; i++)
+        out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head));
+      return new Selection(out, this.primIndex);
+    },
+    somethingSelected: function() {
+      for (var i = 0; i < this.ranges.length; i++)
+        if (!this.ranges[i].empty()) return true;
+      return false;
+    },
+    contains: function(pos, end) {
+      if (!end) end = pos;
+      for (var i = 0; i < this.ranges.length; i++) {
+        var range = this.ranges[i];
+        if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)
+          return i;
+      }
+      return -1;
+    }
+  };
+
+  function Range(anchor, head) {
+    this.anchor = anchor; this.head = head;
+  }
+
+  Range.prototype = {
+    from: function() { return minPos(this.anchor, this.head); },
+    to: function() { return maxPos(this.anchor, this.head); },
+    empty: function() {
+      return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch;
+    }
+  };
+
+  // Take an unsorted, potentially overlapping set of ranges, and
+  // build a selection out of it. 'Consumes' ranges array (modifying
+  // it).
+  function normalizeSelection(ranges, primIndex) {
+    var prim = ranges[primIndex];
+    ranges.sort(function(a, b) { return cmp(a.from(), b.from()); });
+    primIndex = indexOf(ranges, prim);
+    for (var i = 1; i < ranges.length; i++) {
+      var cur = ranges[i], prev = ranges[i - 1];
+      if (cmp(prev.to(), cur.from()) >= 0) {
+        var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());
+        var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;
+        if (i <= primIndex) --primIndex;
+        ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));
+      }
+    }
+    return new Selection(ranges, primIndex);
+  }
+
+  function simpleSelection(anchor, head) {
+    return new Selection([new Range(anchor, head || anchor)], 0);
+  }
+
+  // Most of the external API clips given positions to make sure they
+  // actually exist within the document.
+  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1));}
+  function clipPos(doc, pos) {
+    if (pos.line < doc.first) return Pos(doc.first, 0);
+    var last = doc.first + doc.size - 1;
+    if (pos.line > last) return Pos(last, getLine(doc, last).text.length);
+    return clipToLen(pos, getLine(doc, pos.line).text.length);
+  }
+  function clipToLen(pos, linelen) {
+    var ch = pos.ch;
+    if (ch == null || ch > linelen) return Pos(pos.line, linelen);
+    else if (ch < 0) return Pos(pos.line, 0);
+    else return pos;
+  }
+  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size;}
+  function clipPosArray(doc, array) {
+    for (var out = [], i = 0; i < array.length; i++) out[i] = clipPos(doc, array[i]);
+    return out;
+  }
+
+  // SELECTION UPDATES
+
+  // The 'scroll' parameter given to many of these indicated whether
+  // the new cursor position should be scrolled into view after
+  // modifying the selection.
+
+  // If shift is held or the extend flag is set, extends a range to
+  // include a given position (and optionally a second position).
+  // Otherwise, simply returns the range between the given positions.
+  // Used for cursor motion and such.
+  function extendRange(doc, range, head, other) {
+    if (doc.cm && doc.cm.display.shift || doc.extend) {
+      var anchor = range.anchor;
+      if (other) {
+        var posBefore = cmp(head, anchor) < 0;
+        if (posBefore != (cmp(other, anchor) < 0)) {
+          anchor = head;
+          head = other;
+        } else if (posBefore != (cmp(head, other) < 0)) {
+          head = other;
+        }
+      }
+      return new Range(anchor, head);
+    } else {
+      return new Range(other || head, head);
+    }
+  }
+
+  // Extend the primary selection range, discard the rest.
+  function extendSelection(doc, head, other, options) {
+    setSelection(doc, new Selection([extendRange(doc, doc.sel.primary(), head, other)], 0), options);
+  }
+
+  // Extend all selections (pos is an array of selections with length
+  // equal the number of selections)
+  function extendSelections(doc, heads, options) {
+    for (var out = [], i = 0; i < doc.sel.ranges.length; i++)
+      out[i] = extendRange(doc, doc.sel.ranges[i], heads[i], null);
+    var newSel = normalizeSelection(out, doc.sel.primIndex);
+    setSelection(doc, newSel, options);
+  }
+
+  // Updates a single range in the selection.
+  function replaceOneSelection(doc, i, range, options) {
+    var ranges = doc.sel.ranges.slice(0);
+    ranges[i] = range;
+    setSelection(doc, normalizeSelection(ranges, doc.sel.primIndex), options);
+  }
+
+  // Reset the selection to a single range.
+  function setSimpleSelection(doc, anchor, head, options) {
+    setSelection(doc, simpleSelection(anchor, head), options);
+  }
+
+  // Give beforeSelectionChange handlers a change to influence a
+  // selection update.
+  function filterSelectionChange(doc, sel, options) {
+    var obj = {
+      ranges: sel.ranges,
+      update: function(ranges) {
+        this.ranges = [];
+        for (var i = 0; i < ranges.length; i++)
+          this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),
+                                     clipPos(doc, ranges[i].head));
+      },
+      origin: options && options.origin
+    };
+    signal(doc, "beforeSelectionChange", doc, obj);
+    if (doc.cm) signal(doc.cm, "beforeSelectionChange", doc.cm, obj);
+    if (obj.ranges != sel.ranges) return normalizeSelection(obj.ranges, obj.ranges.length - 1);
+    else return sel;
+  }
+
+  function setSelectionReplaceHistory(doc, sel, options) {
+    var done = doc.history.done, last = lst(done);
+    if (last && last.ranges) {
+      done[done.length - 1] = sel;
+      setSelectionNoUndo(doc, sel, options);
+    } else {
+      setSelection(doc, sel, options);
+    }
+  }
+
+  // Set a new selection.
+  function setSelection(doc, sel, options) {
+    setSelectionNoUndo(doc, sel, options);
+    addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);
+  }
+
+  function setSelectionNoUndo(doc, sel, options) {
+    if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange"))
+      sel = filterSelectionChange(doc, sel, options);
+
+    var bias = options && options.bias ||
+      (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);
+    setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));
+
+    if (!(options && options.scroll === false) && doc.cm)
+      ensureCursorVisible(doc.cm);
+  }
+
+  function setSelectionInner(doc, sel) {
+    if (sel.equals(doc.sel)) return;
+
+    doc.sel = sel;
+
+    if (doc.cm) {
+      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;
+      signalCursorActivity(doc.cm);
+    }
+    signalLater(doc, "cursorActivity", doc);
+  }
+
+  // Verify that the selection does not partially select any atomic
+  // marked ranges.
+  function reCheckSelection(doc) {
+    setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false), sel_dontScroll);
+  }
+
+  // Return a selection that does not partially select any atomic
+  // ranges.
+  function skipAtomicInSelection(doc, sel, bias, mayClear) {
+    var out;
+    for (var i = 0; i < sel.ranges.length; i++) {
+      var range = sel.ranges[i];
+      var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];
+      var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);
+      var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);
+      if (out || newAnchor != range.anchor || newHead != range.head) {
+        if (!out) out = sel.ranges.slice(0, i);
+        out[i] = new Range(newAnchor, newHead);
+      }
+    }
+    return out ? normalizeSelection(out, sel.primIndex) : sel;
+  }
+
+  function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {
+    var line = getLine(doc, pos.line);
+    if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
+      var sp = line.markedSpans[i], m = sp.marker;
+      if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&
+          (sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) {
+        if (mayClear) {
+          signal(m, "beforeCursorEnter");
+          if (m.explicitlyCleared) {
+            if (!line.markedSpans) break;
+            else {--i; continue;}
+          }
+        }
+        if (!m.atomic) continue;
+
+        if (oldPos) {
+          var near = m.find(dir < 0 ? 1 : -1), diff;
+          if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft)
+            near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null);
+          if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))
+            return skipAtomicInner(doc, near, pos, dir, mayClear);
+        }
+
+        var far = m.find(dir < 0 ? -1 : 1);
+        if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight)
+          far = movePos(doc, far, dir, far.line == pos.line ? line : null);
+        return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null;
+      }
+    }
+    return pos;
+  }
+
+  // Ensure a given position is not inside an atomic range.
+  function skipAtomic(doc, pos, oldPos, bias, mayClear) {
+    var dir = bias || 1;
+    var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||
+        (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||
+        skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||
+        (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));
+    if (!found) {
+      doc.cantEdit = true;
+      return Pos(doc.first, 0);
+    }
+    return found;
+  }
+
+  function movePos(doc, pos, dir, line) {
+    if (dir < 0 && pos.ch == 0) {
+      if (pos.line > doc.first) return clipPos(doc, Pos(pos.line - 1));
+      else return null;
+    } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {
+      if (pos.line < doc.first + doc.size - 1) return Pos(pos.line + 1, 0);
+      else return null;
+    } else {
+      return new Pos(pos.line, pos.ch + dir);
+    }
+  }
+
+  // SELECTION DRAWING
+
+  function updateSelection(cm) {
+    cm.display.input.showSelection(cm.display.input.prepareSelection());
+  }
+
+  function prepareSelection(cm, primary) {
+    var doc = cm.doc, result = {};
+    var curFragment = result.cursors = document.createDocumentFragment();
+    var selFragment = result.selection = document.createDocumentFragment();
+
+    for (var i = 0; i < doc.sel.ranges.length; i++) {
+      if (primary === false && i == doc.sel.primIndex) continue;
+      var range = doc.sel.ranges[i];
+      if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) continue;
+      var collapsed = range.empty();
+      if (collapsed || cm.options.showCursorWhenSelecting)
+        drawSelectionCursor(cm, range.head, curFragment);
+      if (!collapsed)
+        drawSelectionRange(cm, range, selFragment);
+    }
+    return result;
+  }
+
+  // Draws a cursor for the given range
+  function drawSelectionCursor(cm, head, output) {
+    var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine);
+
+    var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor"));
+    cursor.style.left = pos.left + "px";
+    cursor.style.top = pos.top + "px";
+    cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px";
+
+    if (pos.other) {
+      // Secondary cursor, shown when on a 'jump' in bi-directional text
+      var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"));
+      otherCursor.style.display = "";
+      otherCursor.style.left = pos.other.left + "px";
+      otherCursor.style.top = pos.other.top + "px";
+      otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px";
+    }
+  }
+
+  // Draws the given range as a highlighted selection
+  function drawSelectionRange(cm, range, output) {
+    var display = cm.display, doc = cm.doc;
+    var fragment = document.createDocumentFragment();
+    var padding = paddingH(cm.display), leftSide = padding.left;
+    var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
+
+    function add(left, top, width, bottom) {
+      if (top < 0) top = 0;
+      top = Math.round(top);
+      bottom = Math.round(bottom);
+      fragment.appendChild(elt("div", null, "CodeMirror-selected", "position: absolute; left: " + left +
+                               "px; top: " + top + "px; width: " + (width == null ? rightSide - left : width) +
+                               "px; height: " + (bottom - top) + "px"));
+    }
+
+    function drawForLine(line, fromArg, toArg) {
+      var lineObj = getLine(doc, line);
+      var lineLen = lineObj.text.length;
+      var start, end;
+      function coords(ch, bias) {
+        return charCoords(cm, Pos(line, ch), "div", lineObj, bias);
+      }
+
+      iterateBidiSections(getOrder(lineObj), fromArg || 0, toArg == null ? lineLen : toArg, function(from, to, dir) {
+        var leftPos = coords(from, "left"), rightPos, left, right;
+        if (from == to) {
+          rightPos = leftPos;
+          left = right = leftPos.left;
+        } else {
+          rightPos = coords(to - 1, "right");
+          if (dir == "rtl") { var tmp = leftPos; leftPos = rightPos; rightPos = tmp; }
+          left = leftPos.left;
+          right = rightPos.right;
+        }
+        if (fromArg == null && from == 0) left = leftSide;
+        if (rightPos.top - leftPos.top > 3) { // Different lines, draw top part
+          add(left, leftPos.top, null, leftPos.bottom);
+          left = leftSide;
+          if (leftPos.bottom < rightPos.top) add(left, leftPos.bottom, null, rightPos.top);
+        }
+        if (toArg == null && to == lineLen) right = rightSide;
+        if (!start || leftPos.top < start.top || leftPos.top == start.top && leftPos.left < start.left)
+          start = leftPos;
+        if (!end || rightPos.bottom > end.bottom || rightPos.bottom == end.bottom && rightPos.right > end.right)
+          end = rightPos;
+        if (left < leftSide + 1) left = leftSide;
+        add(left, rightPos.top, right - left, rightPos.bottom);
+      });
+      return {start: start, end: end};
+    }
+
+    var sFrom = range.from(), sTo = range.to();
+    if (sFrom.line == sTo.line) {
+      drawForLine(sFrom.line, sFrom.ch, sTo.ch);
+    } else {
+      var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);
+      var singleVLine = visualLine(fromLine) == visualLine(toLine);
+      var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;
+      var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;
+      if (singleVLine) {
+        if (leftEnd.top < rightStart.top - 2) {
+          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);
+          add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);
+        } else {
+          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);
+        }
+      }
+      if (leftEnd.bottom < rightStart.top)
+        add(leftSide, leftEnd.bottom, null, rightStart.top);
+    }
+
+    output.appendChild(fragment);
+  }
+
+  // Cursor-blinking
+  function restartBlink(cm) {
+    if (!cm.state.focused) return;
+    var display = cm.display;
+    clearInterval(display.blinker);
+    var on = true;
+    display.cursorDiv.style.visibility = "";
+    if (cm.options.cursorBlinkRate > 0)
+      display.blinker = setInterval(function() {
+        display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden";
+      }, cm.options.cursorBlinkRate);
+    else if (cm.options.cursorBlinkRate < 0)
+      display.cursorDiv.style.visibility = "hidden";
+  }
+
+  // HIGHLIGHT WORKER
+
+  function startWorker(cm, time) {
+    if (cm.doc.mode.startState && cm.doc.frontier < cm.display.viewTo)
+      cm.state.highlight.set(time, bind(highlightWorker, cm));
+  }
+
+  function highlightWorker(cm) {
+    var doc = cm.doc;
+    if (doc.frontier < doc.first) doc.frontier = doc.first;
+    if (doc.frontier >= cm.display.viewTo) return;
+    var end = +new Date + cm.options.workTime;
+    var state = copyState(doc.mode, getStateBefore(cm, doc.frontier));
+    var changedLines = [];
+
+    doc.iter(doc.frontier, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function(line) {
+      if (doc.frontier >= cm.display.viewFrom) { // Visible
+        var oldStyles = line.styles, tooLong = line.text.length > cm.options.maxHighlightLength;
+        var highlighted = highlightLine(cm, line, tooLong ? copyState(doc.mode, state) : state, true);
+        line.styles = highlighted.styles;
+        var oldCls = line.styleClasses, newCls = highlighted.classes;
+        if (newCls) line.styleClasses = newCls;
+        else if (oldCls) line.styleClasses = null;
+        var ischange = !oldStyles || oldStyles.length != line.styles.length ||
+          oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
+        for (var i = 0; !ischange && i < oldStyles.length; ++i) ischange = oldStyles[i] != line.styles[i];
+        if (ischange) changedLines.push(doc.frontier);
+        line.stateAfter = tooLong ? state : copyState(doc.mode, state);
+      } else {
+        if (line.text.length <= cm.options.maxHighlightLength)
+          processLine(cm, line.text, state);
+        line.stateAfter = doc.frontier % 5 == 0 ? copyState(doc.mode, state) : null;
+      }
+      ++doc.frontier;
+      if (+new Date > end) {
+        startWorker(cm, cm.options.workDelay);
+        return true;
+      }
+    });
+    if (changedLines.length) runInOp(cm, function() {
+      for (var i = 0; i < changedLines.length; i++)
+        regLineChange(cm, changedLines[i], "text");
+    });
+  }
+
+  // Finds the line to start with when starting a parse. Tries to
+  // find a line with a stateAfter, so that it can start with a
+  // valid state. If that fails, it returns the line with the
+  // smallest indentation, which tends to need the least context to
+  // parse correctly.
+  function findStartLine(cm, n, precise) {
+    var minindent, minline, doc = cm.doc;
+    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
+    for (var search = n; search > lim; --search) {
+      if (search <= doc.first) return doc.first;
+      var line = getLine(doc, search - 1);
+      if (line.stateAfter && (!precise || search <= doc.frontier)) return search;
+      var indented = countColumn(line.text, null, cm.options.tabSize);
+      if (minline == null || minindent > indented) {
+        minline = search - 1;
+        minindent = indented;
+      }
+    }
+    return minline;
+  }
+
+  function getStateBefore(cm, n, precise) {
+    var doc = cm.doc, display = cm.display;
+    if (!doc.mode.startState) return true;
+    var pos = findStartLine(cm, n, precise), state = pos > doc.first && getLine(doc, pos-1).stateAfter;
+    if (!state) state = startState(doc.mode);
+    else state = copyState(doc.mode, state);
+    doc.iter(pos, n, function(line) {
+      processLine(cm, line.text, state);
+      var save = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo;
+      line.stateAfter = save ? copyState(doc.mode, state) : null;
+      ++pos;
+    });
+    if (precise) doc.frontier = pos;
+    return state;
+  }
+
+  // POSITION MEASUREMENT
+
+  function paddingTop(display) {return display.lineSpace.offsetTop;}
+  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight;}
+  function paddingH(display) {
+    if (display.cachedPaddingH) return display.cachedPaddingH;
+    var e = removeChildrenAndAdd(display.measure, elt("pre", "x"));
+    var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;
+    var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};
+    if (!isNaN(data.left) && !isNaN(data.right)) display.cachedPaddingH = data;
+    return data;
+  }
+
+  function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth; }
+  function displayWidth(cm) {
+    return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth;
+  }
+  function displayHeight(cm) {
+    return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight;
+  }
+
+  // Ensure the lineView.wrapping.heights array is populated. This is
+  // an array of bottom offsets for the lines that make up a drawn
+  // line. When lineWrapping is on, there might be more than one
+  // height.
+  function ensureLineHeights(cm, lineView, rect) {
+    var wrapping = cm.options.lineWrapping;
+    var curWidth = wrapping && displayWidth(cm);
+    if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {
+      var heights = lineView.measure.heights = [];
+      if (wrapping) {
+        lineView.measure.width = curWidth;
+        var rects = lineView.text.firstChild.getClientRects();
+        for (var i = 0; i < rects.length - 1; i++) {
+          var cur = rects[i], next = rects[i + 1];
+          if (Math.abs(cur.bottom - next.bottom) > 2)
+            heights.push((cur.bottom + next.top) / 2 - rect.top);
+        }
+      }
+      heights.push(rect.bottom - rect.top);
+    }
+  }
+
+  // Find a line map (mapping character offsets to text nodes) and a
+  // measurement cache for the given line number. (A line view might
+  // contain multiple lines when collapsed ranges are present.)
+  function mapFromLineView(lineView, line, lineN) {
+    if (lineView.line == line)
+      return {map: lineView.measure.map, cache: lineView.measure.cache};
+    for (var i = 0; i < lineView.rest.length; i++)
+      if (lineView.rest[i] == line)
+        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]};
+    for (var i = 0; i < lineView.rest.length; i++)
+      if (lineNo(lineView.rest[i]) > lineN)
+        return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i], before: true};
+  }
+
+  // Render a line into the hidden node display.externalMeasured. Used
+  // when measurement is needed for a line that's not in the viewport.
+  function updateExternalMeasurement(cm, line) {
+    line = visualLine(line);
+    var lineN = lineNo(line);
+    var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);
+    view.lineN = lineN;
+    var built = view.built = buildLineContent(cm, view);
+    view.text = built.pre;
+    removeChildrenAndAdd(cm.display.lineMeasure, built.pre);
+    return view;
+  }
+
+  // Get a {top, bottom, left, right} box (in line-local coordinates)
+  // for a given character.
+  function measureChar(cm, line, ch, bias) {
+    return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias);
+  }
+
+  // Find a line view that corresponds to the given line number.
+  function findViewForLine(cm, lineN) {
+    if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)
+      return cm.display.view[findViewIndex(cm, lineN)];
+    var ext = cm.display.externalMeasured;
+    if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)
+      return ext;
+  }
+
+  // Measurement can be split in two steps, the set-up work that
+  // applies to the whole line, and the measurement of the actual
+  // character. Functions like coordsChar, that need to do a lot of
+  // measurements in a row, can thus ensure that the set-up work is
+  // only done once.
+  function prepareMeasureForLine(cm, line) {
+    var lineN = lineNo(line);
+    var view = findViewForLine(cm, lineN);
+    if (view && !view.text) {
+      view = null;
+    } else if (view && view.changes) {
+      updateLineForChanges(cm, view, lineN, getDimensions(cm));
+      cm.curOp.forceUpdate = true;
+    }
+    if (!view)
+      view = updateExternalMeasurement(cm, line);
+
+    var info = mapFromLineView(view, line, lineN);
+    return {
+      line: line, view: view, rect: null,
+      map: info.map, cache: info.cache, before: info.before,
+      hasHeights: false
+    };
+  }
+
+  // Given a prepared measurement object, measures the position of an
+  // actual character (or fetches it from the cache).
+  function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
+    if (prepared.before) ch = -1;
+    var key = ch + (bias || ""), found;
+    if (prepared.cache.hasOwnProperty(key)) {
+      found = prepared.cache[key];
+    } else {
+      if (!prepared.rect)
+        prepared.rect = prepared.view.text.getBoundingClientRect();
+      if (!prepared.hasHeights) {
+        ensureLineHeights(cm, prepared.view, prepared.rect);
+        prepared.hasHeights = true;
+      }
+      found = measureCharInner(cm, prepared, ch, bias);
+      if (!found.bogus) prepared.cache[key] = found;
+    }
+    return {left: found.left, right: found.right,
+            top: varHeight ? found.rtop : found.top,
+            bottom: varHeight ? found.rbottom : found.bottom};
+  }
+
+  var nullRect = {left: 0, right: 0, top: 0, bottom: 0};
+
+  function nodeAndOffsetInLineMap(map, ch, bias) {
+    var node, start, end, collapse;
+    // First, search the line map for the text node corresponding to,
+    // or closest to, the target character.
+    for (var i = 0; i < map.length; i += 3) {
+      var mStart = map[i], mEnd = map[i + 1];
+      if (ch < mStart) {
+        start = 0; end = 1;
+        collapse = "left";
+      } else if (ch < mEnd) {
+        start = ch - mStart;
+        end = start + 1;
+      } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) {
+        end = mEnd - mStart;
+        start = end - 1;
+        if (ch >= mEnd) collapse = "right";
+      }
+      if (start != null) {
+        node = map[i + 2];
+        if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right"))
+          collapse = bias;
+        if (bias == "left" && start == 0)
+          while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) {
+            node = map[(i -= 3) + 2];
+            collapse = "left";
+          }
+        if (bias == "right" && start == mEnd - mStart)
+          while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) {
+            node = map[(i += 3) + 2];
+            collapse = "right";
+          }
+        break;
+      }
+    }
+    return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd};
+  }
+
+  function getUsefulRect(rects, bias) {
+    var rect = nullRect
+    if (bias == "left") for (var i = 0; i < rects.length; i++) {
+      if ((rect = rects[i]).left != rect.right) break
+    } else for (var i = rects.length - 1; i >= 0; i--) {
+      if ((rect = rects[i]).left != rect.right) break
+    }
+    return rect
+  }
+
+  function measureCharInner(cm, prepared, ch, bias) {
+    var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);
+    var node = place.node, start = place.start, end = place.end, collapse = place.collapse;
+
+    var rect;
+    if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.
+      for (var i = 0; i < 4; i++) { // Retry a maximum of 4 times when nonsense rectangles are returned
+        while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) --start;
+        while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) ++end;
+        if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)
+          rect = node.parentNode.getBoundingClientRect();
+        else
+          rect = getUsefulRect(range(node, start, end).getClientRects(), bias)
+        if (rect.left || rect.right || start == 0) break;
+        end = start;
+        start = start - 1;
+        collapse = "right";
+      }
+      if (ie && ie_version < 11) rect = maybeUpdateRectForZooming(cm.display.measure, rect);
+    } else { // If it is a widget, simply get the box for the whole widget.
+      if (start > 0) collapse = bias = "right";
+      var rects;
+      if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)
+        rect = rects[bias == "right" ? rects.length - 1 : 0];
+      else
+        rect = node.getBoundingClientRect();
+    }
+    if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {
+      var rSpan = node.parentNode.getClientRects()[0];
+      if (rSpan)
+        rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom};
+      else
+        rect = nullRect;
+    }
+
+    var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;
+    var mid = (rtop + rbot) / 2;
+    var heights = prepared.view.measure.heights;
+    for (var i = 0; i < heights.length - 1; i++)
+      if (mid < heights[i]) break;
+    var top = i ? heights[i - 1] : 0, bot = heights[i];
+    var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left,
+                  right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left,
+                  top: top, bottom: bot};
+    if (!rect.left && !rect.right) result.bogus = true;
+    if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }
+
+    return result;
+  }
+
+  // Work around problem with bounding client rects on ranges being
+  // returned incorrectly when zoomed on IE10 and below.
+  function maybeUpdateRectForZooming(measure, rect) {
+    if (!window.screen || screen.logicalXDPI == null ||
+        screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))
+      return rect;
+    var scaleX = screen.logicalXDPI / screen.deviceXDPI;
+    var scaleY = screen.logicalYDPI / screen.deviceYDPI;
+    return {left: rect.left * scaleX, right: rect.right * scaleX,
+            top: rect.top * scaleY, bottom: rect.bottom * scaleY};
+  }
+
+  function clearLineMeasurementCacheFor(lineView) {
+    if (lineView.measure) {
+      lineView.measure.cache = {};
+      lineView.measure.heights = null;
+      if (lineView.rest) for (var i = 0; i < lineView.rest.length; i++)
+        lineView.measure.caches[i] = {};
+    }
+  }
+
+  function clearLineMeasurementCache(cm) {
+    cm.display.externalMeasure = null;
+    removeChildren(cm.display.lineMeasure);
+    for (var i = 0; i < cm.display.view.length; i++)
+      clearLineMeasurementCacheFor(cm.display.view[i]);
+  }
+
+  function clearCaches(cm) {
+    clearLineMeasurementCache(cm);
+    cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;
+    if (!cm.options.lineWrapping) cm.display.maxLineChanged = true;
+    cm.display.lineNumChars = null;
+  }
+
+  function pageScrollX() { return window.pageXOffset || (document.documentElement || document.body).scrollLeft; }
+  function pageScrollY() { return window.pageYOffset || (document.documentElement || document.body).scrollTop; }
+
+  // Converts a {top, bottom, left, right} box from line-local
+  // coordinates into another coordinate system. Context may be one of
+  // "line", "div" (display.lineDiv), "local"/null (editor), "window",
+  // or "page".
+  function intoCoordSystem(cm, lineObj, rect, context) {
+    if (lineObj.widgets) for (var i = 0; i < lineObj.widgets.length; ++i) if (lineObj.widgets[i].above) {
+      var size = widgetHeight(lineObj.widgets[i]);
+      rect.top += size; rect.bottom += size;
+    }
+    if (context == "line") return rect;
+    if (!context) context = "local";
+    var yOff = heightAtLine(lineObj);
+    if (context == "local") yOff += paddingTop(cm.display);
+    else yOff -= cm.display.viewOffset;
+    if (context == "page" || context == "window") {
+      var lOff = cm.display.lineSpace.getBoundingClientRect();
+      yOff += lOff.top + (context == "window" ? 0 : pageScrollY());
+      var xOff = lOff.left + (context == "window" ? 0 : pageScrollX());
+      rect.left += xOff; rect.right += xOff;
+    }
+    rect.top += yOff; rect.bottom += yOff;
+    return rect;
+  }
+
+  // Coverts a box from "div" coords to another coordinate system.
+  // Context may be "window", "page", "div", or "local"/null.
+  function fromCoordSystem(cm, coords, context) {
+    if (context == "div") return coords;
+    var left = coords.left, top = coords.top;
+    // First move into "page" coordinate system
+    if (context == "page") {
+      left -= pageScrollX();
+      top -= pageScrollY();
+    } else if (context == "local" || !context) {
+      var localBox = cm.display.sizer.getBoundingClientRect();
+      left += localBox.left;
+      top += localBox.top;
+    }
+
+    var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();
+    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top};
+  }
+
+  function charCoords(cm, pos, context, lineObj, bias) {
+    if (!lineObj) lineObj = getLine(cm.doc, pos.line);
+    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context);
+  }
+
+  // Returns a box for a given cursor position, which may have an
+  // 'other' property containing the position of the secondary cursor
+  // on a bidi boundary.
+  function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
+    lineObj = lineObj || getLine(cm.doc, pos.line);
+    if (!preparedMeasure) preparedMeasure = prepareMeasureForLine(cm, lineObj);
+    function get(ch, right) {
+      var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight);
+      if (right) m.left = m.right; else m.right = m.left;
+      return intoCoordSystem(cm, lineObj, m, context);
+    }
+    function getBidi(ch, partPos) {
+      var part = order[partPos], right = part.level % 2;
+      if (ch == bidiLeft(part) && partPos && part.level < order[partPos - 1].level) {
+        part = order[--partPos];
+        ch = bidiRight(part) - (part.level % 2 ? 0 : 1);
+        right = true;
+      } else if (ch == bidiRight(part) && partPos < order.length - 1 && part.level < order[partPos + 1].level) {
+        part = order[++partPos];
+        ch = bidiLeft(part) - part.level % 2;
+        right = false;
+      }
+      if (right && ch == part.to && ch > part.from) return get(ch - 1);
+      return get(ch, right);
+    }
+    var order = getOrder(lineObj), ch = pos.ch;
+    if (!order) return get(ch);
+    var partPos = getBidiPartAt(order, ch);
+    var val = getBidi(ch, partPos);
+    if (bidiOther != null) val.other = getBidi(ch, bidiOther);
+    return val;
+  }
+
+  // Used to cheaply estimate the coordinates for a position. Used for
+  // intermediate scroll updates.
+  function estimateCoords(cm, pos) {
+    var left = 0, pos = clipPos(cm.doc, pos);
+    if (!cm.options.lineWrapping) left = charWidth(cm.display) * pos.ch;
+    var lineObj = getLine(cm.doc, pos.line);
+    var top = heightAtLine(lineObj) + paddingTop(cm.display);
+    return {left: left, right: left, top: top, bottom: top + lineObj.height};
+  }
+
+  // Positions returned by coordsChar contain some extra information.
+  // xRel is the relative x position of the input coordinates compared
+  // to the found position (so xRel > 0 means the coordinates are to
+  // the right of the character position, for example). When outside
+  // is true, that means the coordinates lie outside the line's
+  // vertical range.
+  function PosWithInfo(line, ch, outside, xRel) {
+    var pos = Pos(line, ch);
+    pos.xRel = xRel;
+    if (outside) pos.outside = true;
+    return pos;
+  }
+
+  // Compute the character position closest to the given coordinates.
+  // Input must be lineSpace-local ("div" coordinate system).
+  function coordsChar(cm, x, y) {
+    var doc = cm.doc;
+    y += cm.display.viewOffset;
+    if (y < 0) return PosWithInfo(doc.first, 0, true, -1);
+    var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
+    if (lineN > last)
+      return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, true, 1);
+    if (x < 0) x = 0;
+
+    var lineObj = getLine(doc, lineN);
+    for (;;) {
+      var found = coordsCharInner(cm, lineObj, lineN, x, y);
+      var merged = collapsedSpanAtEnd(lineObj);
+      var mergedPos = merged && merged.find(0, true);
+      if (merged && (found.ch > mergedPos.from.ch || found.ch == mergedPos.from.ch && found.xRel > 0))
+        lineN = lineNo(lineObj = mergedPos.to.line);
+      else
+        return found;
+    }
+  }
+
+  function coordsCharInner(cm, lineObj, lineNo, x, y) {
+    var innerOff = y - heightAtLine(lineObj);
+    var wrongLine = false, adjust = 2 * cm.display.wrapper.clientWidth;
+    var preparedMeasure = prepareMeasureForLine(cm, lineObj);
+
+    function getX(ch) {
+      var sp = cursorCoords(cm, Pos(lineNo, ch), "line", lineObj, preparedMeasure);
+      wrongLine = true;
+      if (innerOff > sp.bottom) return sp.left - adjust;
+      else if (innerOff < sp.top) return sp.left + adjust;
+      else wrongLine = false;
+      return sp.left;
+    }
+
+    var bidi = getOrder(lineObj), dist = lineObj.text.length;
+    var from = lineLeft(lineObj), to = lineRight(lineObj);
+    var fromX = getX(from), fromOutside = wrongLine, toX = getX(to), toOutside = wrongLine;
+
+    if (x > toX) return PosWithInfo(lineNo, to, toOutside, 1);
+    // Do a binary search between these bounds.
+    for (;;) {
+      if (bidi ? to == from || to == moveVisually(lineObj, from, 1) : to - from <= 1) {
+        var ch = x < fromX || x - fromX <= toX - x ? from : to;
+        var outside = ch == from ? fromOutside : toOutside
+        var xDiff = x - (ch == from ? fromX : toX);
+        // This is a kludge to handle the case where the coordinates
+        // are after a line-wrapped line. We should replace it with a
+        // more general handling of cursor positions around line
+        // breaks. (Issue #4078)
+        if (toOutside && !bidi && !/\s/.test(lineObj.text.charAt(ch)) && xDiff > 0 &&
+            ch < lineObj.text.length && preparedMeasure.view.measure.heights.length > 1) {
+          var charSize = measureCharPrepared(cm, preparedMeasure, ch, "right");
+          if (innerOff <= charSize.bottom && innerOff >= charSize.top && Math.abs(x - charSize.right) < xDiff) {
+            outside = false
+            ch++
+            xDiff = x - charSize.right
+          }
+        }
+        while (isExtendingChar(lineObj.text.charAt(ch))) ++ch;
+        var pos = PosWithInfo(lineNo, ch, outside, xDiff < -1 ? -1 : xDiff > 1 ? 1 : 0);
+        return pos;
+      }
+      var step = Math.ceil(dist / 2), middle = from + step;
+      if (bidi) {
+        middle = from;
+        for (var i = 0; i < step; ++i) middle = moveVisually(lineObj, middle, 1);
+      }
+      var middleX = getX(middle);
+      if (middleX > x) {to = middle; toX = middleX; if (toOutside = wrongLine) toX += 1000; dist = step;}
+      else {from = middle; fromX = middleX; fromOutside = wrongLine; dist -= step;}
+    }
+  }
+
+  var measureText;
+  // Compute the default text height.
+  function textHeight(display) {
+    if (display.cachedTextHeight != null) return display.cachedTextHeight;
+    if (measureText == null) {
+      measureText = elt("pre");
+      // Measure a bunch of lines, for browsers that compute
+      // fractional heights.
+      for (var i = 0; i < 49; ++i) {
+        measureText.appendChild(document.createTextNode("x"));
+        measureText.appendChild(elt("br"));
+      }
+      measureText.appendChild(document.createTextNode("x"));
+    }
+    removeChildrenAndAdd(display.measure, measureText);
+    var height = measureText.offsetHeight / 50;
+    if (height > 3) display.cachedTextHeight = height;
+    removeChildren(display.measure);
+    return height || 1;
+  }
+
+  // Compute the default character width.
+  function charWidth(display) {
+    if (display.cachedCharWidth != null) return display.cachedCharWidth;
+    var anchor = elt("span", "xxxxxxxxxx");
+    var pre = elt("pre", [anchor]);
+    removeChildrenAndAdd(display.measure, pre);
+    var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;
+    if (width > 2) display.cachedCharWidth = width;
+    return width || 10;
+  }
+
+  // OPERATIONS
+
+  // Operations are used to wrap a series of changes to the editor
+  // state in such a way that each change won't have to update the
+  // cursor and display (which would be awkward, slow, and
+  // error-prone). Instead, display updates are batched and then all
+  // combined and executed at once.
+
+  var operationGroup = null;
+
+  var nextOpId = 0;
+  // Start a new operation.
+  function startOperation(cm) {
+    cm.curOp = {
+      cm: cm,
+      viewChanged: false,      // Flag that indicates that lines might need to be redrawn
+      startHeight: cm.doc.height, // Used to detect need to update scrollbar
+      forceUpdate: false,      // Used to force a redraw
+      updateInput: null,       // Whether to reset the input textarea
+      typing: false,           // Whether this reset should be careful to leave existing text (for compositing)
+      changeObjs: null,        // Accumulated changes, for firing change events
+      cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on
+      cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already
+      selectionChanged: false, // Whether the selection needs to be redrawn
+      updateMaxLine: false,    // Set when the widest line needs to be determined anew
+      scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet
+      scrollToPos: null,       // Used to scroll to a specific position
+      focus: false,
+      id: ++nextOpId           // Unique ID
+    };
+    if (operationGroup) {
+      operationGroup.ops.push(cm.curOp);
+    } else {
+      cm.curOp.ownsGroup = operationGroup = {
+        ops: [cm.curOp],
+        delayedCallbacks: []
+      };
+    }
+  }
+
+  function fireCallbacksForOps(group) {
+    // Calls delayed callbacks and cursorActivity handlers until no
+    // new ones appear
+    var callbacks = group.delayedCallbacks, i = 0;
+    do {
+      for (; i < callbacks.length; i++)
+        callbacks[i].call(null);
+      for (var j = 0; j < group.ops.length; j++) {
+        var op = group.ops[j];
+        if (op.cursorActivityHandlers)
+          while (op.cursorActivityCalled < op.cursorActivityHandlers.length)
+            op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm);
+      }
+    } while (i < callbacks.length);
+  }
+
+  // Finish an operation, updating the display and signalling delayed events
+  function endOperation(cm) {
+    var op = cm.curOp, group = op.ownsGroup;
+    if (!group) return;
+
+    try { fireCallbacksForOps(group); }
+    finally {
+      operationGroup = null;
+      for (var i = 0; i < group.ops.length; i++)
+        group.ops[i].cm.curOp = null;
+      endOperations(group);
+    }
+  }
+
+  // The DOM updates done when an operation finishes are batched so
+  // that the minimum number of relayouts are required.
+  function endOperations(group) {
+    var ops = group.ops;
+    for (var i = 0; i < ops.length; i++) // Read DOM
+      endOperation_R1(ops[i]);
+    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
+      endOperation_W1(ops[i]);
+    for (var i = 0; i < ops.length; i++) // Read DOM
+      endOperation_R2(ops[i]);
+    for (var i = 0; i < ops.length; i++) // Write DOM (maybe)
+      endOperation_W2(ops[i]);
+    for (var i = 0; i < ops.length; i++) // Read DOM
+      endOperation_finish(ops[i]);
+  }
+
+  function endOperation_R1(op) {
+    var cm = op.cm, display = cm.display;
+    maybeClipScrollbars(cm);
+    if (op.updateMaxLine) findMaxLine(cm);
+
+    op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||
+      op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||
+                         op.scrollToPos.to.line >= display.viewTo) ||
+      display.maxLineChanged && cm.options.lineWrapping;
+    op.update = op.mustUpdate &&
+      new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);
+  }
+
+  function endOperation_W1(op) {
+    op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);
+  }
+
+  function endOperation_R2(op) {
+    var cm = op.cm, display = cm.display;
+    if (op.updatedDisplay) updateHeightsInViewport(cm);
+
+    op.barMeasure = measureForScrollbars(cm);
+
+    // If the max line changed since it was last measured, measure it,
+    // and ensure the document's width matches it.
+    // updateDisplay_W2 will use these properties to do the actual resizing
+    if (display.maxLineChanged && !cm.options.lineWrapping) {
+      op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;
+      cm.display.sizerWidth = op.adjustWidthTo;
+      op.barMeasure.scrollWidth =
+        Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);
+      op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));
+    }
+
+    if (op.updatedDisplay || op.selectionChanged)
+      op.preparedSelection = display.input.prepareSelection(op.focus);
+  }
+
+  function endOperation_W2(op) {
+    var cm = op.cm;
+
+    if (op.adjustWidthTo != null) {
+      cm.display.sizer.style.minWidth = op.adjustWidthTo + "px";
+      if (op.maxScrollLeft < cm.doc.scrollLeft)
+        setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true);
+      cm.display.maxLineChanged = false;
+    }
+
+    var takeFocus = op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus())
+    if (op.preparedSelection)
+      cm.display.input.showSelection(op.preparedSelection, takeFocus);
+    if (op.updatedDisplay || op.startHeight != cm.doc.height)
+      updateScrollbars(cm, op.barMeasure);
+    if (op.updatedDisplay)
+      setDocumentHeight(cm, op.barMeasure);
+
+    if (op.selectionChanged) restartBlink(cm);
+
+    if (cm.state.focused && op.updateInput)
+      cm.display.input.reset(op.typing);
+    if (takeFocus) ensureFocus(op.cm);
+  }
+
+  function endOperation_finish(op) {
+    var cm = op.cm, display = cm.display, doc = cm.doc;
+
+    if (op.updatedDisplay) postUpdateDisplay(cm, op.update);
+
+    // Abort mouse wheel delta measurement, when scrolling explicitly
+    if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))
+      display.wheelStartX = display.wheelStartY = null;
+
+    // Propagate the scroll position to the actual DOM scroller
+    if (op.scrollTop != null && (display.scroller.scrollTop != op.scrollTop || op.forceScroll)) {
+      doc.scrollTop = Math.max(0, Math.min(display.scroller.scrollHeight - display.scroller.clientHeight, op.scrollTop));
+      display.scrollbars.setScrollTop(doc.scrollTop);
+      display.scroller.scrollTop = doc.scrollTop;
+    }
+    if (op.scrollLeft != null && (display.scroller.scrollLeft != op.scrollLeft || op.forceScroll)) {
+      doc.scrollLeft = Math.max(0, Math.min(display.scroller.scrollWidth - display.scroller.clientWidth, op.scrollLeft));
+      display.scrollbars.setScrollLeft(doc.scrollLeft);
+      display.scroller.scrollLeft = doc.scrollLeft;
+      alignHorizontally(cm);
+    }
+    // If we need to scroll a specific position into view, do so.
+    if (op.scrollToPos) {
+      var coords = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
+                                     clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);
+      if (op.scrollToPos.isCursor && cm.state.focused) maybeScrollWindow(cm, coords);
+    }
+
+    // Fire events for markers that are hidden/unidden by editing or
+    // undoing
+    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;
+    if (hidden) for (var i = 0; i < hidden.length; ++i)
+      if (!hidden[i].lines.length) signal(hidden[i], "hide");
+    if (unhidden) for (var i = 0; i < unhidden.length; ++i)
+      if (unhidden[i].lines.length) signal(unhidden[i], "unhide");
+
+    if (display.wrapper.offsetHeight)
+      doc.scrollTop = cm.display.scroller.scrollTop;
+
+    // Fire change events, and delayed event handlers
+    if (op.changeObjs)
+      signal(cm, "changes", cm, op.changeObjs);
+    if (op.update)
+      op.update.finish();
+  }
+
+  // Run the given function in an operation
+  function runInOp(cm, f) {
+    if (cm.curOp) return f();
+    startOperation(cm);
+    try { return f(); }
+    finally { endOperation(cm); }
+  }
+  // Wraps a function in an operation. Returns the wrapped function.
+  function operation(cm, f) {
+    return function() {
+      if (cm.curOp) return f.apply(cm, arguments);
+      startOperation(cm);
+      try { return f.apply(cm, arguments); }
+      finally { endOperation(cm); }
+    };
+  }
+  // Used to add methods to editor and doc instances, wrapping them in
+  // operations.
+  function methodOp(f) {
+    return function() {
+      if (this.curOp) return f.apply(this, arguments);
+      startOperation(this);
+      try { return f.apply(this, arguments); }
+      finally { endOperation(this); }
+    };
+  }
+  function docMethodOp(f) {
+    return function() {
+      var cm = this.cm;
+      if (!cm || cm.curOp) return f.apply(this, arguments);
+      startOperation(cm);
+      try { return f.apply(this, arguments); }
+      finally { endOperation(cm); }
+    };
+  }
+
+  // VIEW TRACKING
+
+  // These objects are used to represent the visible (currently drawn)
+  // part of the document. A LineView may correspond to multiple
+  // logical lines, if those are connected by collapsed ranges.
+  function LineView(doc, line, lineN) {
+    // The starting line
+    this.line = line;
+    // Continuing lines, if any
+    this.rest = visualLineContinued(line);
+    // Number of logical lines in this visual line
+    this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;
+    this.node = this.text = null;
+    this.hidden = lineIsHidden(doc, line);
+  }
+
+  // Create a range of LineView objects for the given lines.
+  function buildViewArray(cm, from, to) {
+    var array = [], nextPos;
+    for (var pos = from; pos < to; pos = nextPos) {
+      var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);
+      nextPos = pos + view.size;
+      array.push(view);
+    }
+    return array;
+  }
+
+  // Updates the display.view data structure for a given change to the
+  // document. From and to are in pre-change coordinates. Lendiff is
+  // the amount of lines added or subtracted by the change. This is
+  // used for changes that span multiple lines, or change the way
+  // lines are divided into visual lines. regLineChange (below)
+  // registers single-line changes.
+  function regChange(cm, from, to, lendiff) {
+    if (from == null) from = cm.doc.first;
+    if (to == null) to = cm.doc.first + cm.doc.size;
+    if (!lendiff) lendiff = 0;
+
+    var display = cm.display;
+    if (lendiff && to < display.viewTo &&
+        (display.updateLineNumbers == null || display.updateLineNumbers > from))
+      display.updateLineNumbers = from;
+
+    cm.curOp.viewChanged = true;
+
+    if (from >= display.viewTo) { // Change after
+      if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)
+        resetView(cm);
+    } else if (to <= display.viewFrom) { // Change before
+      if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {
+        resetView(cm);
+      } else {
+        display.viewFrom += lendiff;
+        display.viewTo += lendiff;
+      }
+    } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap
+      resetView(cm);
+    } else if (from <= display.viewFrom) { // Top overlap
+      var cut = viewCuttingPoint(cm, to, to + lendiff, 1);
+      if (cut) {
+        display.view = display.view.slice(cut.index);
+        display.viewFrom = cut.lineN;
+        display.viewTo += lendiff;
+      } else {
+        resetView(cm);
+      }
+    } else if (to >= display.viewTo) { // Bottom overlap
+      var cut = viewCuttingPoint(cm, from, from, -1);
+      if (cut) {
+        display.view = display.view.slice(0, cut.index);
+        display.viewTo = cut.lineN;
+      } else {
+        resetView(cm);
+      }
+    } else { // Gap in the middle
+      var cutTop = viewCuttingPoint(cm, from, from, -1);
+      var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);
+      if (cutTop && cutBot) {
+        display.view = display.view.slice(0, cutTop.index)
+          .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))
+          .concat(display.view.slice(cutBot.index));
+        display.viewTo += lendiff;
+      } else {
+        resetView(cm);
+      }
+    }
+
+    var ext = display.externalMeasured;
+    if (ext) {
+      if (to < ext.lineN)
+        ext.lineN += lendiff;
+      else if (from < ext.lineN + ext.size)
+        display.externalMeasured = null;
+    }
+  }
+
+  // Register a change to a single line. Type must be one of "text",
+  // "gutter", "class", "widget"
+  function regLineChange(cm, line, type) {
+    cm.curOp.viewChanged = true;
+    var display = cm.display, ext = cm.display.externalMeasured;
+    if (ext && line >= ext.lineN && line < ext.lineN + ext.size)
+      display.externalMeasured = null;
+
+    if (line < display.viewFrom || line >= display.viewTo) return;
+    var lineView = display.view[findViewIndex(cm, line)];
+    if (lineView.node == null) return;
+    var arr = lineView.changes || (lineView.changes = []);
+    if (indexOf(arr, type) == -1) arr.push(type);
+  }
+
+  // Clear the view.
+  function resetView(cm) {
+    cm.display.viewFrom = cm.display.viewTo = cm.doc.first;
+    cm.display.view = [];
+    cm.display.viewOffset = 0;
+  }
+
+  // Find the view element corresponding to a given line. Return null
+  // when the line isn't visible.
+  function findViewIndex(cm, n) {
+    if (n >= cm.display.viewTo) return null;
+    n -= cm.display.viewFrom;
+    if (n < 0) return null;
+    var view = cm.display.view;
+    for (var i = 0; i < view.length; i++) {
+      n -= view[i].size;
+      if (n < 0) return i;
+    }
+  }
+
+  function viewCuttingPoint(cm, oldN, newN, dir) {
+    var index = findViewIndex(cm, oldN), diff, view = cm.display.view;
+    if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)
+      return {index: index, lineN: newN};
+    for (var i = 0, n = cm.display.viewFrom; i < index; i++)
+      n += view[i].size;
+    if (n != oldN) {
+      if (dir > 0) {
+        if (index == view.length - 1) return null;
+        diff = (n + view[index].size) - oldN;
+        index++;
+      } else {
+        diff = n - oldN;
+      }
+      oldN += diff; newN += diff;
+    }
+    while (visualLineNo(cm.doc, newN) != newN) {
+      if (index == (dir < 0 ? 0 : view.length - 1)) return null;
+      newN += dir * view[index - (dir < 0 ? 1 : 0)].size;
+      index += dir;
+    }
+    return {index: index, lineN: newN};
+  }
+
+  // Force the view to cover a given range, adding empty view element
+  // or clipping off existing ones as needed.
+  function adjustView(cm, from, to) {
+    var display = cm.display, view = display.view;
+    if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {
+      display.view = buildViewArray(cm, from, to);
+      display.viewFrom = from;
+    } else {
+      if (display.viewFrom > from)
+        display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view);
+      else if (display.viewFrom < from)
+        display.view = display.view.slice(findViewIndex(cm, from));
+      display.viewFrom = from;
+      if (display.viewTo < to)
+        display.view = display.view.concat(buildViewArray(cm, display.viewTo, to));
+      else if (display.viewTo > to)
+        display.view = display.view.slice(0, findViewIndex(cm, to));
+    }
+    display.viewTo = to;
+  }
+
+  // Count the number of lines in the view whose DOM representation is
+  // out of date (or nonexistent).
+  function countDirtyView(cm) {
+    var view = cm.display.view, dirty = 0;
+    for (var i = 0; i < view.length; i++) {
+      var lineView = view[i];
+      if (!lineView.hidden && (!lineView.node || lineView.changes)) ++dirty;
+    }
+    return dirty;
+  }
+
+  // EVENT HANDLERS
+
+  // Attach the necessary event handlers when initializing the editor
+  function registerEventHandlers(cm) {
+    var d = cm.display;
+    on(d.scroller, "mousedown", operation(cm, onMouseDown));
+    // Older IE's will not fire a second mousedown for a double click
+    if (ie && ie_version < 11)
+      on(d.scroller, "dblclick", operation(cm, function(e) {
+        if (signalDOMEvent(cm, e)) return;
+        var pos = posFromMouse(cm, e);
+        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) return;
+        e_preventDefault(e);
+        var word = cm.findWordAt(pos);
+        extendSelection(cm.doc, word.anchor, word.head);
+      }));
+    else
+      on(d.scroller, "dblclick", function(e) { signalDOMEvent(cm, e) || e_preventDefault(e); });
+    // Some browsers fire contextmenu *after* opening the menu, at
+    // which point we can't mess with it anymore. Context menu is
+    // handled in onMouseDown for these browsers.
+    if (!captureRightClick) on(d.scroller, "contextmenu", function(e) {onContextMenu(cm, e);});
+
+    // Used to suppress mouse event handling when a touch happens
+    var touchFinished, prevTouch = {end: 0};
+    function finishTouch() {
+      if (d.activeTouch) {
+        touchFinished = setTimeout(function() {d.activeTouch = null;}, 1000);
+        prevTouch = d.activeTouch;
+        prevTouch.end = +new Date;
+      }
+    };
+    function isMouseLikeTouchEvent(e) {
+      if (e.touches.length != 1) return false;
+      var touch = e.touches[0];
+      return touch.radiusX <= 1 && touch.radiusY <= 1;
+    }
+    function farAway(touch, other) {
+      if (other.left == null) return true;
+      var dx = other.left - touch.left, dy = other.top - touch.top;
+      return dx * dx + dy * dy > 20 * 20;
+    }
+    on(d.scroller, "touchstart", function(e) {
+      if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e)) {
+        clearTimeout(touchFinished);
+        var now = +new Date;
+        d.activeTouch = {start: now, moved: false,
+                         prev: now - prevTouch.end <= 300 ? prevTouch : null};
+        if (e.touches.length == 1) {
+          d.activeTouch.left = e.touches[0].pageX;
+          d.activeTouch.top = e.touches[0].pageY;
+        }
+      }
+    });
+    on(d.scroller, "touchmove", function() {
+      if (d.activeTouch) d.activeTouch.moved = true;
+    });
+    on(d.scroller, "touchend", function(e) {
+      var touch = d.activeTouch;
+      if (touch && !eventInWidget(d, e) && touch.left != null &&
+          !touch.moved && new Date - touch.start < 300) {
+        var pos = cm.coordsChar(d.activeTouch, "page"), range;
+        if (!touch.prev || farAway(touch, touch.prev)) // Single tap
+          range = new Range(pos, pos);
+        else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap
+          range = cm.findWordAt(pos);
+        else // Triple tap
+          range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0)));
+        cm.setSelection(range.anchor, range.head);
+        cm.focus();
+        e_preventDefault(e);
+      }
+      finishTouch();
+    });
+    on(d.scroller, "touchcancel", finishTouch);
+
+    // Sync scrolling between fake scrollbars and real scrollable
+    // area, ensure viewport is updated when scrolling.
+    on(d.scroller, "scroll", function() {
+      if (d.scroller.clientHeight) {
+        setScrollTop(cm, d.scroller.scrollTop);
+        setScrollLeft(cm, d.scroller.scrollLeft, true);
+        signal(cm, "scroll", cm);
+      }
+    });
+
+    // Listen to wheel events in order to try and update the viewport on time.
+    on(d.scroller, "mousewheel", function(e){onScrollWheel(cm, e);});
+    on(d.scroller, "DOMMouseScroll", function(e){onScrollWheel(cm, e);});
+
+    // Prevent wrapper from ever scrolling
+    on(d.wrapper, "scroll", function() { d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });
+
+    d.dragFunctions = {
+      enter: function(e) {if (!signalDOMEvent(cm, e)) e_stop(e);},
+      over: function(e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
+      start: function(e){onDragStart(cm, e);},
+      drop: operation(cm, onDrop),
+      leave: function(e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}
+    };
+
+    var inp = d.input.getField();
+    on(inp, "keyup", function(e) { onKeyUp.call(cm, e); });
+    on(inp, "keydown", operation(cm, onKeyDown));
+    on(inp, "keypress", operation(cm, onKeyPress));
+    on(inp, "focus", bind(onFocus, cm));
+    on(inp, "blur", bind(onBlur, cm));
+  }
+
+  function dragDropChanged(cm, value, old) {
+    var wasOn = old && old != CodeMirror.Init;
+    if (!value != !wasOn) {
+      var funcs = cm.display.dragFunctions;
+      var toggle = value ? on : off;
+      toggle(cm.display.scroller, "dragstart", funcs.start);
+      toggle(cm.display.scroller, "dragenter", funcs.enter);
+      toggle(cm.display.scroller, "dragover", funcs.over);
+      toggle(cm.display.scroller, "dragleave", funcs.leave);
+      toggle(cm.display.scroller, "drop", funcs.drop);
+    }
+  }
+
+  // Called when the window resizes
+  function onResize(cm) {
+    var d = cm.display;
+    if (d.lastWrapHeight == d.wrapper.clientHeight && d.lastWrapWidth == d.wrapper.clientWidth)
+      return;
+    // Might be a text scaling operation, clear size caches.
+    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
+    d.scrollbarsClipped = false;
+    cm.setSize();
+  }
+
+  // MOUSE EVENTS
+
+  // Return true when the given mouse event happened in a widget
+  function eventInWidget(display, e) {
+    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {
+      if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") ||
+          (n.parentNode == display.sizer && n != display.mover))
+        return true;
+    }
+  }
+
+  // Given a mouse event, find the corresponding position. If liberal
+  // is false, it checks whether a gutter or scrollbar was clicked,
+  // and returns null if it was. forRect is used by rectangular
+  // selections, and tries to estimate a character position even for
+  // coordinates beyond the right of the text.
+  function posFromMouse(cm, e, liberal, forRect) {
+    var display = cm.display;
+    if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") return null;
+
+    var x, y, space = display.lineSpace.getBoundingClientRect();
+    // Fails unpredictably on IE[67] when mouse is dragged around quickly.
+    try { x = e.clientX - space.left; y = e.clientY - space.top; }
+    catch (e) { return null; }
+    var coords = coordsChar(cm, x, y), line;
+    if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {
+      var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;
+      coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));
+    }
+    return coords;
+  }
+
+  // A mouse down can be a single click, double click, triple click,
+  // start of selection drag, start of text drag, new cursor
+  // (ctrl-click), rectangle drag (alt-drag), or xwin
+  // middle-click-paste. Or it might be a click on something we should
+  // not interfere with, such as a scrollbar or widget.
+  function onMouseDown(e) {
+    var cm = this, display = cm.display;
+    if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) return;
+    display.shift = e.shiftKey;
+
+    if (eventInWidget(display, e)) {
+      if (!webkit) {
+        // Briefly turn off draggability, to allow widgets to do
+        // normal dragging things.
+        display.scroller.draggable = false;
+        setTimeout(function(){display.scroller.draggable = true;}, 100);
+      }
+      return;
+    }
+    if (clickInGutter(cm, e)) return;
+    var start = posFromMouse(cm, e);
+    window.focus();
+
+    switch (e_button(e)) {
+    case 1:
+      // #3261: make sure, that we're not starting a second selection
+      if (cm.state.selectingText)
+        cm.state.selectingText(e);
+      else if (start)
+        leftButtonDown(cm, e, start);
+      else if (e_target(e) == display.scroller)
+        e_preventDefault(e);
+      break;
+    case 2:
+      if (webkit) cm.state.lastMiddleDown = +new Date;
+      if (start) extendSelection(cm.doc, start);
+      setTimeout(function() {display.input.focus();}, 20);
+      e_preventDefault(e);
+      break;
+    case 3:
+      if (captureRightClick) onContextMenu(cm, e);
+      else delayBlurEvent(cm);
+      break;
+    }
+  }
+
+  var lastClick, lastDoubleClick;
+  function leftButtonDown(cm, e, start) {
+    if (ie) setTimeout(bind(ensureFocus, cm), 0);
+    else cm.curOp.focus = activeElt();
+
+    var now = +new Date, type;
+    if (lastDoubleClick && lastDoubleClick.time > now - 400 && cmp(lastDoubleClick.pos, start) == 0) {
+      type = "triple";
+    } else if (lastClick && lastClick.time > now - 400 && cmp(lastClick.pos, start) == 0) {
+      type = "double";
+      lastDoubleClick = {time: now, pos: start};
+    } else {
+      type = "single";
+      lastClick = {time: now, pos: start};
+    }
+
+    var sel = cm.doc.sel, modifier = mac ? e.metaKey : e.ctrlKey, contained;
+    if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
+        type == "single" && (contained = sel.contains(start)) > -1 &&
+        (cmp((contained = sel.ranges[contained]).from(), start) < 0 || start.xRel > 0) &&
+        (cmp(contained.to(), start) > 0 || start.xRel < 0))
+      leftButtonStartDrag(cm, e, start, modifier);
+    else
+      leftButtonSelect(cm, e, start, type, modifier);
+  }
+
+  // Start a text drag. When it ends, see if any dragging actually
+  // happen, and treat as a click if it didn't.
+  function leftButtonStartDrag(cm, e, start, modifier) {
+    var display = cm.display, startTime = +new Date;
+    var dragEnd = operation(cm, function(e2) {
+      if (webkit) display.scroller.draggable = false;
+      cm.state.draggingText = false;
+      off(document, "mouseup", dragEnd);
+      off(display.scroller, "drop", dragEnd);
+      if (Math.abs(e.clientX - e2.clientX) + Math.abs(e.clientY - e2.clientY) < 10) {
+        e_preventDefault(e2);
+        if (!modifier && +new Date - 200 < startTime)
+          extendSelection(cm.doc, start);
+        // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
+        if (webkit || ie && ie_version == 9)
+          setTimeout(function() {document.body.focus(); display.input.focus();}, 20);
+        else
+          display.input.focus();
+      }
+    });
+    // Let the drag handler handle this.
+    if (webkit) display.scroller.draggable = true;
+    cm.state.draggingText = dragEnd;
+    dragEnd.copy = mac ? e.altKey : e.ctrlKey
+    // IE's approach to draggable
+    if (display.scroller.dragDrop) display.scroller.dragDrop();
+    on(document, "mouseup", dragEnd);
+    on(display.scroller, "drop", dragEnd);
+  }
+
+  // Normal selection, as opposed to text dragging.
+  function leftButtonSelect(cm, e, start, type, addNew) {
+    var display = cm.display, doc = cm.doc;
+    e_preventDefault(e);
+
+    var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
+    if (addNew && !e.shiftKey) {
+      ourIndex = doc.sel.contains(start);
+      if (ourIndex > -1)
+        ourRange = ranges[ourIndex];
+      else
+        ourRange = new Range(start, start);
+    } else {
+      ourRange = doc.sel.primary();
+      ourIndex = doc.sel.primIndex;
+    }
+
+    if (chromeOS ? e.shiftKey && e.metaKey : e.altKey) {
+      type = "rect";
+      if (!addNew) ourRange = new Range(start, start);
+      start = posFromMouse(cm, e, true, true);
+      ourIndex = -1;
+    } else if (type == "double") {
+      var word = cm.findWordAt(start);
+      if (cm.display.shift || doc.extend)
+        ourRange = extendRange(doc, ourRange, word.anchor, word.head);
+      else
+        ourRange = word;
+    } else if (type == "triple") {
+      var line = new Range(Pos(start.line, 0), clipPos(doc, Pos(start.line + 1, 0)));
+      if (cm.display.shift || doc.extend)
+        ourRange = extendRange(doc, ourRange, line.anchor, line.head);
+      else
+        ourRange = line;
+    } else {
+      ourRange = extendRange(doc, ourRange, start);
+    }
+
+    if (!addNew) {
+      ourIndex = 0;
+      setSelection(doc, new Selection([ourRange], 0), sel_mouse);
+      startSel = doc.sel;
+    } else if (ourIndex == -1) {
+      ourIndex = ranges.length;
+      setSelection(doc, normalizeSelection(ranges.concat([ourRange]), ourIndex),
+                   {scroll: false, origin: "*mouse"});
+    } else if (ranges.length > 1 && ranges[ourIndex].empty() && type == "single" && !e.shiftKey) {
+      setSelection(doc, normalizeSelection(ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
+                   {scroll: false, origin: "*mouse"});
+      startSel = doc.sel;
+    } else {
+      replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);
+    }
+
+    var lastPos = start;
+    function extendTo(pos) {
+      if (cmp(lastPos, pos) == 0) return;
+      lastPos = pos;
+
+      if (type == "rect") {
+        var ranges = [], tabSize = cm.options.tabSize;
+        var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
+        var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
+        var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);
+        for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));
+             line <= end; line++) {
+          var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);
+          if (left == right)
+            ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos)));
+          else if (text.length > leftPos)
+            ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize))));
+        }
+        if (!ranges.length) ranges.push(new Range(start, start));
+        setSelection(doc, normalizeSelection(startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),
+                     {origin: "*mouse", scroll: false});
+        cm.scrollIntoView(pos);
+      } else {
+        var oldRange = ourRange;
+        var anchor = oldRange.anchor, head = pos;
+        if (type != "single") {
+          if (type == "double")
+            var range = cm.findWordAt(pos);
+          else
+            var range = new Range(Pos(pos.line, 0), clipPos(doc, Pos(pos.line + 1, 0)));
+          if (cmp(range.anchor, anchor) > 0) {
+            head = range.head;
+            anchor = minPos(oldRange.from(), range.anchor);
+          } else {
+            head = range.anchor;
+            anchor = maxPos(oldRange.to(), range.head);
+          }
+        }
+        var ranges = startSel.ranges.slice(0);
+        ranges[ourIndex] = new Range(clipPos(doc, anchor), head);
+        setSelection(doc, normalizeSelection(ranges, ourIndex), sel_mouse);
+      }
+    }
+
+    var editorSize = display.wrapper.getBoundingClientRect();
+    // Used to ensure timeout re-tries don't fire when another extend
+    // happened in the meantime (clearTimeout isn't reliable -- at
+    // least on Chrome, the timeouts still happen even when cleared,
+    // if the clear happens after their scheduled firing time).
+    var counter = 0;
+
+    function extend(e) {
+      var curCount = ++counter;
+      var cur = posFromMouse(cm, e, true, type == "rect");
+      if (!cur) return;
+      if (cmp(cur, lastPos) != 0) {
+        cm.curOp.focus = activeElt();
+        extendTo(cur);
+        var visible = visibleLines(display, doc);
+        if (cur.line >= visible.to || cur.line < visible.from)
+          setTimeout(operation(cm, function(){if (counter == curCount) extend(e);}), 150);
+      } else {
+        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;
+        if (outside) setTimeout(operation(cm, function() {
+          if (counter != curCount) return;
+          display.scroller.scrollTop += outside;
+          extend(e);
+        }), 50);
+      }
+    }
+
+    function done(e) {
+      cm.state.selectingText = false;
+      counter = Infinity;
+      e_preventDefault(e);
+      display.input.focus();
+      off(document, "mousemove", move);
+      off(document, "mouseup", up);
+      doc.history.lastSelOrigin = null;
+    }
+
+    var move = operation(cm, function(e) {
+      if (!e_button(e)) done(e);
+      else extend(e);
+    });
+    var up = operation(cm, done);
+    cm.state.selectingText = up;
+    on(document, "mousemove", move);
+    on(document, "mouseup", up);
+  }
+
+  // Determines whether an event happened in the gutter, and fires the
+  // handlers for the corresponding event.
+  function gutterEvent(cm, e, type, prevent) {
+    try { var mX = e.clientX, mY = e.clientY; }
+    catch(e) { return false; }
+    if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) return false;
+    if (prevent) e_preventDefault(e);
+
+    var display = cm.display;
+    var lineBox = display.lineDiv.getBoundingClientRect();
+
+    if (mY > lineBox.bottom || !hasHandler(cm, type)) return e_defaultPrevented(e);
+    mY -= lineBox.top - display.viewOffset;
+
+    for (var i = 0; i < cm.options.gutters.length; ++i) {
+      var g = display.gutters.childNodes[i];
+      if (g && g.getBoundingClientRect().right >= mX) {
+        var line = lineAtHeight(cm.doc, mY);
+        var gutter = cm.options.gutters[i];
+        signal(cm, type, cm, line, gutter, e);
+        return e_defaultPrevented(e);
+      }
+    }
+  }
+
+  function clickInGutter(cm, e) {
+    return gutterEvent(cm, e, "gutterClick", true);
+  }
+
+  // Kludge to work around strange IE behavior where it'll sometimes
+  // re-fire a series of drag-related events right after the drop (#1551)
+  var lastDrop = 0;
+
+  function onDrop(e) {
+    var cm = this;
+    clearDragCursor(cm);
+    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))
+      return;
+    e_preventDefault(e);
+    if (ie) lastDrop = +new Date;
+    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;
+    if (!pos || cm.isReadOnly()) return;
+    // Might be a file drop, in which case we simply extract the text
+    // and insert it.
+    if (files && files.length && window.FileReader && window.File) {
+      var n = files.length, text = Array(n), read = 0;
+      var loadFile = function(file, i) {
+        if (cm.options.allowDropFileTypes &&
+            indexOf(cm.options.allowDropFileTypes, file.type) == -1)
+          return;
+
+        var reader = new FileReader;
+        reader.onload = operation(cm, function() {
+          var content = reader.result;
+          if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) content = "";
+          text[i] = content;
+          if (++read == n) {
+            pos = clipPos(cm.doc, pos);
+            var change = {from: pos, to: pos,
+                          text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())),
+                          origin: "paste"};
+            makeChange(cm.doc, change);
+            setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));
+          }
+        });
+        reader.readAsText(file);
+      };
+      for (var i = 0; i < n; ++i) loadFile(files[i], i);
+    } else { // Normal drop
+      // Don't do a replace if the drop happened inside of the selected text.
+      if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {
+        cm.state.draggingText(e);
+        // Ensure the editor is re-focused
+        setTimeout(function() {cm.display.input.focus();}, 20);
+        return;
+      }
+      try {
+        var text = e.dataTransfer.getData("Text");
+        if (text) {
+          if (cm.state.draggingText && !cm.state.draggingText.copy)
+            var selected = cm.listSelections();
+          setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));
+          if (selected) for (var i = 0; i < selected.length; ++i)
+            replaceRange(cm.doc, "", selected[i].anchor, selected[i].head, "drag");
+          cm.replaceSelection(text, "around", "paste");
+          cm.display.input.focus();
+        }
+      }
+      catch(e){}
+    }
+  }
+
+  function onDragStart(cm, e) {
+    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return; }
+    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;
+
+    e.dataTransfer.setData("Text", cm.getSelection());
+    e.dataTransfer.effectAllowed = "copyMove"
+
+    // Use dummy image instead of default browsers image.
+    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
+    if (e.dataTransfer.setDragImage && !safari) {
+      var img = elt("img", null, null, "position: fixed; left: 0; top: 0;");
+      img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
+      if (presto) {
+        img.width = img.height = 1;
+        cm.display.wrapper.appendChild(img);
+        // Force a relayout, or Opera won't use our image for some obscure reason
+        img._top = img.offsetTop;
+      }
+      e.dataTransfer.setDragImage(img, 0, 0);
+      if (presto) img.parentNode.removeChild(img);
+    }
+  }
+
+  function onDragOver(cm, e) {
+    var pos = posFromMouse(cm, e);
+    if (!pos) return;
+    var frag = document.createDocumentFragment();
+    drawSelectionCursor(cm, pos, frag);
+    if (!cm.display.dragCursor) {
+      cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors");
+      cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);
+    }
+    removeChildrenAndAdd(cm.display.dragCursor, frag);
+  }
+
+  function clearDragCursor(cm) {
+    if (cm.display.dragCursor) {
+      cm.display.lineSpace.removeChild(cm.display.dragCursor);
+      cm.display.dragCursor = null;
+    }
+  }
+
+  // SCROLL EVENTS
+
+  // Sync the scrollable area and scrollbars, ensure the viewport
+  // covers the visible area.
+  function setScrollTop(cm, val) {
+    if (Math.abs(cm.doc.scrollTop - val) < 2) return;
+    cm.doc.scrollTop = val;
+    if (!gecko) updateDisplaySimple(cm, {top: val});
+    if (cm.display.scroller.scrollTop != val) cm.display.scroller.scrollTop = val;
+    cm.display.scrollbars.setScrollTop(val);
+    if (gecko) updateDisplaySimple(cm);
+    startWorker(cm, 100);
+  }
+  // Sync scroller and scrollbar, ensure the gutter elements are
+  // aligned.
+  function setScrollLeft(cm, val, isScroller) {
+    if (isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) return;
+    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
+    cm.doc.scrollLeft = val;
+    alignHorizontally(cm);
+    if (cm.display.scroller.scrollLeft != val) cm.display.scroller.scrollLeft = val;
+    cm.display.scrollbars.setScrollLeft(val);
+  }
+
+  // Since the delta values reported on mouse wheel events are
+  // unstandardized between browsers and even browser versions, and
+  // generally horribly unpredictable, this code starts by measuring
+  // the scroll effect that the first few mouse wheel events have,
+  // and, from that, detects the way it can convert deltas to pixel
+  // offsets afterwards.
+  //
+  // The reason we want to know the amount a wheel event will scroll
+  // is that it gives us a chance to update the display before the
+  // actual scrolling happens, reducing flickering.
+
+  var wheelSamples = 0, wheelPixelsPerUnit = null;
+  // Fill in a browser-detected starting value on browsers where we
+  // know one. These don't have to be accurate -- the result of them
+  // being wrong would just be a slight flicker on the first wheel
+  // scroll (if it is large enough).
+  if (ie) wheelPixelsPerUnit = -.53;
+  else if (gecko) wheelPixelsPerUnit = 15;
+  else if (chrome) wheelPixelsPerUnit = -.7;
+  else if (safari) wheelPixelsPerUnit = -1/3;
+
+  var wheelEventDelta = function(e) {
+    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
+    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) dx = e.detail;
+    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) dy = e.detail;
+    else if (dy == null) dy = e.wheelDelta;
+    return {x: dx, y: dy};
+  };
+  CodeMirror.wheelEventPixels = function(e) {
+    var delta = wheelEventDelta(e);
+    delta.x *= wheelPixelsPerUnit;
+    delta.y *= wheelPixelsPerUnit;
+    return delta;
+  };
+
+  function onScrollWheel(cm, e) {
+    var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
+
+    var display = cm.display, scroll = display.scroller;
+    // Quit if there's nothing to scroll here
+    var canScrollX = scroll.scrollWidth > scroll.clientWidth;
+    var canScrollY = scroll.scrollHeight > scroll.clientHeight;
+    if (!(dx && canScrollX || dy && canScrollY)) return;
+
+    // Webkit browsers on OS X abort momentum scrolls when the target
+    // of the scroll event is removed from the scrollable element.
+    // This hack (see related code in patchDisplay) makes sure the
+    // element is kept around.
+    if (dy && mac && webkit) {
+      outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
+        for (var i = 0; i < view.length; i++) {
+          if (view[i].node == cur) {
+            cm.display.currentWheelTarget = cur;
+            break outer;
+          }
+        }
+      }
+    }
+
+    // On some browsers, horizontal scrolling will cause redraws to
+    // happen before the gutter has been realigned, causing it to
+    // wriggle around in a most unseemly way. When we have an
+    // estimated pixels/delta value, we just handle horizontal
+    // scrolling entirely here. It'll be slightly off from native, but
+    // better than glitching out.
+    if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
+      if (dy && canScrollY)
+        setScrollTop(cm, Math.max(0, Math.min(scroll.scrollTop + dy * wheelPixelsPerUnit, scroll.scrollHeight - scroll.clientHeight)));
+      setScrollLeft(cm, Math.max(0, Math.min(scroll.scrollLeft + dx * wheelPixelsPerUnit, scroll.scrollWidth - scroll.clientWidth)));
+      // Only prevent default scrolling if vertical scrolling is
+      // actually possible. Otherwise, it causes vertical scroll
+      // jitter on OSX trackpads when deltaX is small and deltaY
+      // is large (issue #3579)
+      if (!dy || (dy && canScrollY))
+        e_preventDefault(e);
+      display.wheelStartX = null; // Abort measurement, if in progress
+      return;
+    }
+
+    // 'Project' the visible viewport to cover the area that is being
+    // scrolled into view (if we know enough to estimate it).
+    if (dy && wheelPixelsPerUnit != null) {
+      var pixels = dy * wheelPixelsPerUnit;
+      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
+      if (pixels < 0) top = Math.max(0, top + pixels - 50);
+      else bot = Math.min(cm.doc.height, bot + pixels + 50);
+      updateDisplaySimple(cm, {top: top, bottom: bot});
+    }
+
+    if (wheelSamples < 20) {
+      if (display.wheelStartX == null) {
+        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
+        display.wheelDX = dx; display.wheelDY = dy;
+        setTimeout(function() {
+          if (display.wheelStartX == null) return;
+          var movedX = scroll.scrollLeft - display.wheelStartX;
+          var movedY = scroll.scrollTop - display.wheelStartY;
+          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
+            (movedX && display.wheelDX && movedX / display.wheelDX);
+          display.wheelStartX = display.wheelStartY = null;
+          if (!sample) return;
+          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
+          ++wheelSamples;
+        }, 200);
+      } else {
+        display.wheelDX += dx; display.wheelDY += dy;
+      }
+    }
+  }
+
+  // KEY EVENTS
+
+  // Run a handler that was bound to a key.
+  function doHandleBinding(cm, bound, dropShift) {
+    if (typeof bound == "string") {
+      bound = commands[bound];
+      if (!bound) return false;
+    }
+    // Ensure previous input has been read, so that the handler sees a
+    // consistent view of the document
+    cm.display.input.ensurePolled();
+    var prevShift = cm.display.shift, done = false;
+    try {
+      if (cm.isReadOnly()) cm.state.suppressEdits = true;
+      if (dropShift) cm.display.shift = false;
+      done = bound(cm) != Pass;
+    } finally {
+      cm.display.shift = prevShift;
+      cm.state.suppressEdits = false;
+    }
+    return done;
+  }
+
+  function lookupKeyForEditor(cm, name, handle) {
+    for (var i = 0; i < cm.state.keyMaps.length; i++) {
+      var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);
+      if (result) return result;
+    }
+    return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))
+      || lookupKey(name, cm.options.keyMap, handle, cm);
+  }
+
+  var stopSeq = new Delayed;
+  function dispatchKey(cm, name, e, handle) {
+    var seq = cm.state.keySeq;
+    if (seq) {
+      if (isModifierKey(name)) return "handled";
+      stopSeq.set(50, function() {
+        if (cm.state.keySeq == seq) {
+          cm.state.keySeq = null;
+          cm.display.input.reset();
+        }
+      });
+      name = seq + " " + name;
+    }
+    var result = lookupKeyForEditor(cm, name, handle);
+
+    if (result == "multi")
+      cm.state.keySeq = name;
+    if (result == "handled")
+      signalLater(cm, "keyHandled", cm, name, e);
+
+    if (result == "handled" || result == "multi") {
+      e_preventDefault(e);
+      restartBlink(cm);
+    }
+
+    if (seq && !result && /\'$/.test(name)) {
+      e_preventDefault(e);
+      return true;
+    }
+    return !!result;
+  }
+
+  // Handle a key from the keydown event.
+  function handleKeyBinding(cm, e) {
+    var name = keyName(e, true);
+    if (!name) return false;
+
+    if (e.shiftKey && !cm.state.keySeq) {
+      // First try to resolve full name (including 'Shift-'). Failing
+      // that, see if there is a cursor-motion command (starting with
+      // 'go') bound to the keyname without 'Shift-'.
+      return dispatchKey(cm, "Shift-" + name, e, function(b) {return doHandleBinding(cm, b, true);})
+          || dispatchKey(cm, name, e, function(b) {
+               if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion)
+                 return doHandleBinding(cm, b);
+             });
+    } else {
+      return dispatchKey(cm, name, e, function(b) { return doHandleBinding(cm, b); });
+    }
+  }
+
+  // Handle a key from the keypress event
+  function handleCharBinding(cm, e, ch) {
+    return dispatchKey(cm, "'" + ch + "'", e,
+                       function(b) { return doHandleBinding(cm, b, true); });
+  }
+
+  var lastStoppedKey = null;
+  function onKeyDown(e) {
+    var cm = this;
+    cm.curOp.focus = activeElt();
+    if (signalDOMEvent(cm, e)) return;
+    // IE does strange things with escape.
+    if (ie && ie_version < 11 && e.keyCode == 27) e.returnValue = false;
+    var code = e.keyCode;
+    cm.display.shift = code == 16 || e.shiftKey;
+    var handled = handleKeyBinding(cm, e);
+    if (presto) {
+      lastStoppedKey = handled ? code : null;
+      // Opera has no cut event... we try to at least catch the key combo
+      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))
+        cm.replaceSelection("", null, "cut");
+    }
+
+    // Turn mouse into crosshair when Alt is held on Mac.
+    if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className))
+      showCrossHair(cm);
+  }
+
+  function showCrossHair(cm) {
+    var lineDiv = cm.display.lineDiv;
+    addClass(lineDiv, "CodeMirror-crosshair");
+
+    function up(e) {
+      if (e.keyCode == 18 || !e.altKey) {
+        rmClass(lineDiv, "CodeMirror-crosshair");
+        off(document, "keyup", up);
+        off(document, "mouseover", up);
+      }
+    }
+    on(document, "keyup", up);
+    on(document, "mouseover", up);
+  }
+
+  function onKeyUp(e) {
+    if (e.keyCode == 16) this.doc.sel.shift = false;
+    signalDOMEvent(this, e);
+  }
+
+  function onKeyPress(e) {
+    var cm = this;
+    if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) return;
+    var keyCode = e.keyCode, charCode = e.charCode;
+    if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return;}
+    if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) return;
+    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
+    if (handleCharBinding(cm, e, ch)) return;
+    cm.display.input.onKeyPress(e);
+  }
+
+  // FOCUS/BLUR EVENTS
+
+  function delayBlurEvent(cm) {
+    cm.state.delayingBlurEvent = true;
+    setTimeout(function() {
+      if (cm.state.delayingBlurEvent) {
+        cm.state.delayingBlurEvent = false;
+        onBlur(cm);
+      }
+    }, 100);
+  }
+
+  function onFocus(cm) {
+    if (cm.state.delayingBlurEvent) cm.state.delayingBlurEvent = false;
+
+    if (cm.options.readOnly == "nocursor") return;
+    if (!cm.state.focused) {
+      signal(cm, "focus", cm);
+      cm.state.focused = true;
+      addClass(cm.display.wrapper, "CodeMirror-focused");
+      // This test prevents this from firing when a context
+      // menu is closed (since the input reset would kill the
+      // select-all detection hack)
+      if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
+        cm.display.input.reset();
+        if (webkit) setTimeout(function() { cm.display.input.reset(true); }, 20); // Issue #1730
+      }
+      cm.display.input.receivedFocus();
+    }
+    restartBlink(cm);
+  }
+  function onBlur(cm) {
+    if (cm.state.delayingBlurEvent) return;
+
+    if (cm.state.focused) {
+      signal(cm, "blur", cm);
+      cm.state.focused = false;
+      rmClass(cm.display.wrapper, "CodeMirror-focused");
+    }
+    clearInterval(cm.display.blinker);
+    setTimeout(function() {if (!cm.state.focused) cm.display.shift = false;}, 150);
+  }
+
+  // CONTEXT MENU HANDLING
+
+  // To make the context menu work, we need to briefly unhide the
+  // textarea (making it as unobtrusive as possible) to let the
+  // right-click take effect on it.
+  function onContextMenu(cm, e) {
+    if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) return;
+    if (signalDOMEvent(cm, e, "contextmenu")) return;
+    cm.display.input.onContextMenu(e);
+  }
+
+  function contextMenuInGutter(cm, e) {
+    if (!hasHandler(cm, "gutterContextMenu")) return false;
+    return gutterEvent(cm, e, "gutterContextMenu", false);
+  }
+
+  // UPDATING
+
+  // Compute the position of the end of a change (its 'to' property
+  // refers to the pre-change end).
+  var changeEnd = CodeMirror.changeEnd = function(change) {
+    if (!change.text) return change.to;
+    return Pos(change.from.line + change.text.length - 1,
+               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0));
+  };
+
+  // Adjust a position to refer to the post-change position of the
+  // same text, or the end of the change if the change covers it.
+  function adjustForChange(pos, change) {
+    if (cmp(pos, change.from) < 0) return pos;
+    if (cmp(pos, change.to) <= 0) return changeEnd(change);
+
+    var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;
+    if (pos.line == change.to.line) ch += changeEnd(change).ch - change.to.ch;
+    return Pos(line, ch);
+  }
+
+  function computeSelAfterChange(doc, change) {
+    var out = [];
+    for (var i = 0; i < doc.sel.ranges.length; i++) {
+      var range = doc.sel.ranges[i];
+      out.push(new Range(adjustForChange(range.anchor, change),
+                         adjustForChange(range.head, change)));
+    }
+    return normalizeSelection(out, doc.sel.primIndex);
+  }
+
+  function offsetPos(pos, old, nw) {
+    if (pos.line == old.line)
+      return Pos(nw.line, pos.ch - old.ch + nw.ch);
+    else
+      return Pos(nw.line + (pos.line - old.line), pos.ch);
+  }
+
+  // Used by replaceSelections to allow moving the selection to the
+  // start or around the replaced test. Hint may be "start" or "around".
+  function computeReplacedSel(doc, changes, hint) {
+    var out = [];
+    var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;
+    for (var i = 0; i < changes.length; i++) {
+      var change = changes[i];
+      var from = offsetPos(change.from, oldPrev, newPrev);
+      var to = offsetPos(changeEnd(change), oldPrev, newPrev);
+      oldPrev = change.to;
+      newPrev = to;
+      if (hint == "around") {
+        var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;
+        out[i] = new Range(inv ? to : from, inv ? from : to);
+      } else {
+        out[i] = new Range(from, from);
+      }
+    }
+    return new Selection(out, doc.sel.primIndex);
+  }
+
+  // Allow "beforeChange" event handlers to influence a change
+  function filterChange(doc, change, update) {
+    var obj = {
+      canceled: false,
+      from: change.from,
+      to: change.to,
+      text: change.text,
+      origin: change.origin,
+      cancel: function() { this.canceled = true; }
+    };
+    if (update) obj.update = function(from, to, text, origin) {
+      if (from) this.from = clipPos(doc, from);
+      if (to) this.to = clipPos(doc, to);
+      if (text) this.text = text;
+      if (origin !== undefined) this.origin = origin;
+    };
+    signal(doc, "beforeChange", doc, obj);
+    if (doc.cm) signal(doc.cm, "beforeChange", doc.cm, obj);
+
+    if (obj.canceled) return null;
+    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin};
+  }
+
+  // Apply a change to a document, and add it to the document's
+  // history, and propagating it to all linked documents.
+  function makeChange(doc, change, ignoreReadOnly) {
+    if (doc.cm) {
+      if (!doc.cm.curOp) return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly);
+      if (doc.cm.state.suppressEdits) return;
+    }
+
+    if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) {
+      change = filterChange(doc, change, true);
+      if (!change) return;
+    }
+
+    // Possibly split or suppress the update based on the presence
+    // of read-only spans in its range.
+    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
+    if (split) {
+      for (var i = split.length - 1; i >= 0; --i)
+        makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text});
+    } else {
+      makeChangeInner(doc, change);
+    }
+  }
+
+  function makeChangeInner(doc, change) {
+    if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) return;
+    var selAfter = computeSelAfterChange(doc, change);
+    addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);
+
+    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));
+    var rebased = [];
+
+    linkedDocs(doc, function(doc, sharedHist) {
+      if (!sharedHist && indexOf(rebased, doc.history) == -1) {
+        rebaseHist(doc.history, change);
+        rebased.push(doc.history);
+      }
+      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));
+    });
+  }
+
+  // Revert a change stored in a document's history.
+  function makeChangeFromHistory(doc, type, allowSelectionOnly) {
+    if (doc.cm && doc.cm.state.suppressEdits && !allowSelectionOnly) return;
+
+    var hist = doc.history, event, selAfter = doc.sel;
+    var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
+
+    // Verify that there is a useable event (so that ctrl-z won't
+    // needlessly clear selection events)
+    for (var i = 0; i < source.length; i++) {
+      event = source[i];
+      if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)
+        break;
+    }
+    if (i == source.length) return;
+    hist.lastOrigin = hist.lastSelOrigin = null;
+
+    for (;;) {
+      event = source.pop();
+      if (event.ranges) {
+        pushSelectionToHistory(event, dest);
+        if (allowSelectionOnly && !event.equals(doc.sel)) {
+          setSelection(doc, event, {clearRedo: false});
+          return;
+        }
+        selAfter = event;
+      }
+      else break;
+    }
+
+    // Build up a reverse change object to add to the opposite history
+    // stack (redo when undoing, and vice versa).
+    var antiChanges = [];
+    pushSelectionToHistory(selAfter, dest);
+    dest.push({changes: antiChanges, generation: hist.generation});
+    hist.generation = event.generation || ++hist.maxGeneration;
+
+    var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange");
+
+    for (var i = event.changes.length - 1; i >= 0; --i) {
+      var change = event.changes[i];
+      change.origin = type;
+      if (filter && !filterChange(doc, change, false)) {
+        source.length = 0;
+        return;
+      }
+
+      antiChanges.push(historyChangeFromChange(doc, change));
+
+      var after = i ? computeSelAfterChange(doc, change) : lst(source);
+      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));
+      if (!i && doc.cm) doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)});
+      var rebased = [];
+
+      // Propagate to the linked documents
+      linkedDocs(doc, function(doc, sharedHist) {
+        if (!sharedHist && indexOf(rebased, doc.history) == -1) {
+          rebaseHist(doc.history, change);
+          rebased.push(doc.history);
+        }
+        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));
+      });
+    }
+  }
+
+  // Sub-views need their line numbers shifted when text is added
+  // above or below them in the parent document.
+  function shiftDoc(doc, distance) {
+    if (distance == 0) return;
+    doc.first += distance;
+    doc.sel = new Selection(map(doc.sel.ranges, function(range) {
+      return new Range(Pos(range.anchor.line + distance, range.anchor.ch),
+                       Pos(range.head.line + distance, range.head.ch));
+    }), doc.sel.primIndex);
+    if (doc.cm) {
+      regChange(doc.cm, doc.first, doc.first - distance, distance);
+      for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)
+        regLineChange(doc.cm, l, "gutter");
+    }
+  }
+
+  // More lower-level change function, handling only a single document
+  // (not linked ones).
+  function makeChangeSingleDoc(doc, change, selAfter, spans) {
+    if (doc.cm && !doc.cm.curOp)
+      return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans);
+
+    if (change.to.line < doc.first) {
+      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
+      return;
+    }
+    if (change.from.line > doc.lastLine()) return;
+
+    // Clip the change to the size of this doc
+    if (change.from.line < doc.first) {
+      var shift = change.text.length - 1 - (doc.first - change.from.line);
+      shiftDoc(doc, shift);
+      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
+                text: [lst(change.text)], origin: change.origin};
+    }
+    var last = doc.lastLine();
+    if (change.to.line > last) {
+      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
+                text: [change.text[0]], origin: change.origin};
+    }
+
+    change.removed = getBetween(doc, change.from, change.to);
+
+    if (!selAfter) selAfter = computeSelAfterChange(doc, change);
+    if (doc.cm) makeChangeSingleDocInEditor(doc.cm, change, spans);
+    else updateDoc(doc, change, spans);
+    setSelectionNoUndo(doc, selAfter, sel_dontScroll);
+  }
+
+  // Handle the interaction of a change to a document with the editor
+  // that this document is part of.
+  function makeChangeSingleDocInEditor(cm, change, spans) {
+    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;
+
+    var recomputeMaxLength = false, checkWidthStart = from.line;
+    if (!cm.options.lineWrapping) {
+      checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));
+      doc.iter(checkWidthStart, to.line + 1, function(line) {
+        if (line == display.maxLine) {
+          recomputeMaxLength = true;
+          return true;
+        }
+      });
+    }
+
+    if (doc.sel.contains(change.from, change.to) > -1)
+      signalCursorActivity(cm);
+
+    updateDoc(doc, change, spans, estimateHeight(cm));
+
+    if (!cm.options.lineWrapping) {
+      doc.iter(checkWidthStart, from.line + change.text.length, function(line) {
+        var len = lineLength(line);
+        if (len > display.maxLineLength) {
+          display.maxLine = line;
+          display.maxLineLength = len;
+          display.maxLineChanged = true;
+          recomputeMaxLength = false;
+        }
+      });
+      if (recomputeMaxLength) cm.curOp.updateMaxLine = true;
+    }
+
+    // Adjust frontier, schedule worker
+    doc.frontier = Math.min(doc.frontier, from.line);
+    startWorker(cm, 400);
+
+    var lendiff = change.text.length - (to.line - from.line) - 1;
+    // Remember that these lines changed, for updating the display
+    if (change.full)
+      regChange(cm);
+    else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))
+      regLineChange(cm, from.line, "text");
+    else
+      regChange(cm, from.line, to.line + 1, lendiff);
+
+    var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change");
+    if (changeHandler || changesHandler) {
+      var obj = {
+        from: from, to: to,
+        text: change.text,
+        removed: change.removed,
+        origin: change.origin
+      };
+      if (changeHandler) signalLater(cm, "change", cm, obj);
+      if (changesHandler) (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj);
+    }
+    cm.display.selForContextMenu = null;
+  }
+
+  function replaceRange(doc, code, from, to, origin) {
+    if (!to) to = from;
+    if (cmp(to, from) < 0) { var tmp = to; to = from; from = tmp; }
+    if (typeof code == "string") code = doc.splitLines(code);
+    makeChange(doc, {from: from, to: to, text: code, origin: origin});
+  }
+
+  // SCROLLING THINGS INTO VIEW
+
+  // If an editor sits on the top or bottom of the window, partially
+  // scrolled out of view, this ensures that the cursor is visible.
+  function maybeScrollWindow(cm, coords) {
+    if (signalDOMEvent(cm, "scrollCursorIntoView")) return;
+
+    var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
+    if (coords.top + box.top < 0) doScroll = true;
+    else if (coords.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) doScroll = false;
+    if (doScroll != null && !phantom) {
+      var scrollNode = elt("div", "\u200b", null, "position: absolute; top: " +
+                           (coords.top - display.viewOffset - paddingTop(cm.display)) + "px; height: " +
+                           (coords.bottom - coords.top + scrollGap(cm) + display.barHeight) + "px; left: " +
+                           coords.left + "px; width: 2px;");
+      cm.display.lineSpace.appendChild(scrollNode);
+      scrollNode.scrollIntoView(doScroll);
+      cm.display.lineSpace.removeChild(scrollNode);
+    }
+  }
+
+  // Scroll a given position into view (immediately), verifying that
+  // it actually became visible (as line heights are accurately
+  // measured, the position of something may 'drift' during drawing).
+  function scrollPosIntoView(cm, pos, end, margin) {
+    if (margin == null) margin = 0;
+    for (var limit = 0; limit < 5; limit++) {
+      var changed = false, coords = cursorCoords(cm, pos);
+      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
+      var scrollPos = calculateScrollPos(cm, Math.min(coords.left, endCoords.left),
+                                         Math.min(coords.top, endCoords.top) - margin,
+                                         Math.max(coords.left, endCoords.left),
+                                         Math.max(coords.bottom, endCoords.bottom) + margin);
+      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
+      if (scrollPos.scrollTop != null) {
+        setScrollTop(cm, scrollPos.scrollTop);
+        if (Math.abs(cm.doc.scrollTop - startTop) > 1) changed = true;
+      }
+      if (scrollPos.scrollLeft != null) {
+        setScrollLeft(cm, scrollPos.scrollLeft);
+        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) changed = true;
+      }
+      if (!changed) break;
+    }
+    return coords;
+  }
+
+  // Scroll a given set of coordinates into view (immediately).
+  function scrollIntoView(cm, x1, y1, x2, y2) {
+    var scrollPos = calculateScrollPos(cm, x1, y1, x2, y2);
+    if (scrollPos.scrollTop != null) setScrollTop(cm, scrollPos.scrollTop);
+    if (scrollPos.scrollLeft != null) setScrollLeft(cm, scrollPos.scrollLeft);
+  }
+
+  // Calculate a new scroll position needed to scroll the given
+  // rectangle into view. Returns an object with scrollTop and
+  // scrollLeft properties. When these are undefined, the
+  // vertical/horizontal position does not need to be adjusted.
+  function calculateScrollPos(cm, x1, y1, x2, y2) {
+    var display = cm.display, snapMargin = textHeight(cm.display);
+    if (y1 < 0) y1 = 0;
+    var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
+    var screen = displayHeight(cm), result = {};
+    if (y2 - y1 > screen) y2 = y1 + screen;
+    var docBottom = cm.doc.height + paddingVert(display);
+    var atTop = y1 < snapMargin, atBottom = y2 > docBottom - snapMargin;
+    if (y1 < screentop) {
+      result.scrollTop = atTop ? 0 : y1;
+    } else if (y2 > screentop + screen) {
+      var newTop = Math.min(y1, (atBottom ? docBottom : y2) - screen);
+      if (newTop != screentop) result.scrollTop = newTop;
+    }
+
+    var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
+    var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
+    var tooWide = x2 - x1 > screenw;
+    if (tooWide) x2 = x1 + screenw;
+    if (x1 < 10)
+      result.scrollLeft = 0;
+    else if (x1 < screenleft)
+      result.scrollLeft = Math.max(0, x1 - (tooWide ? 0 : 10));
+    else if (x2 > screenw + screenleft - 3)
+      result.scrollLeft = x2 + (tooWide ? 0 : 10) - screenw;
+    return result;
+  }
+
+  // Store a relative adjustment to the scroll position in the current
+  // operation (to be applied when the operation finishes).
+  function addToScrollPos(cm, left, top) {
+    if (left != null || top != null) resolveScrollToPos(cm);
+    if (left != null)
+      cm.curOp.scrollLeft = (cm.curOp.scrollLeft == null ? cm.doc.scrollLeft : cm.curOp.scrollLeft) + left;
+    if (top != null)
+      cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
+  }
+
+  // Make sure that at the end of the operation the current cursor is
+  // shown.
+  function ensureCursorVisible(cm) {
+    resolveScrollToPos(cm);
+    var cur = cm.getCursor(), from = cur, to = cur;
+    if (!cm.options.lineWrapping) {
+      from = cur.ch ? Pos(cur.line, cur.ch - 1) : cur;
+      to = Pos(cur.line, cur.ch + 1);
+    }
+    cm.curOp.scrollToPos = {from: from, to: to, margin: cm.options.cursorScrollMargin, isCursor: true};
+  }
+
+  // When an operation has its scrollToPos property set, and another
+  // scroll action is applied before the end of the operation, this
+  // 'simulates' scrolling that position into view in a cheap way, so
+  // that the effect of intermediate scroll commands is not ignored.
+  function resolveScrollToPos(cm) {
+    var range = cm.curOp.scrollToPos;
+    if (range) {
+      cm.curOp.scrollToPos = null;
+      var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to);
+      var sPos = calculateScrollPos(cm, Math.min(from.left, to.left),
+                                    Math.min(from.top, to.top) - range.margin,
+                                    Math.max(from.right, to.right),
+                                    Math.max(from.bottom, to.bottom) + range.margin);
+      cm.scrollTo(sPos.scrollLeft, sPos.scrollTop);
+    }
+  }
+
+  // API UTILITIES
+
+  // Indent the given line. The how parameter can be "smart",
+  // "add"/null, "subtract", or "prev". When aggressive is false
+  // (typically set to true for forced single-line indents), empty
+  // lines are not indented, and places where the mode returns Pass
+  // are left alone.
+  function indentLine(cm, n, how, aggressive) {
+    var doc = cm.doc, state;
+    if (how == null) how = "add";
+    if (how == "smart") {
+      // Fall back to "prev" when the mode doesn't have an indentation
+      // method.
+      if (!doc.mode.indent) how = "prev";
+      else state = getStateBefore(cm, n);
+    }
+
+    var tabSize = cm.options.tabSize;
+    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);
+    if (line.stateAfter) line.stateAfter = null;
+    var curSpaceString = line.text.match(/^\s*/)[0], indentation;
+    if (!aggressive && !/\S/.test(line.text)) {
+      indentation = 0;
+      how = "not";
+    } else if (how == "smart") {
+      indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);
+      if (indentation == Pass || indentation > 150) {
+        if (!aggressive) return;
+        how = "prev";
+      }
+    }
+    if (how == "prev") {
+      if (n > doc.first) indentation = countColumn(getLine(doc, n-1).text, null, tabSize);
+      else indentation = 0;
+    } else if (how == "add") {
+      indentation = curSpace + cm.options.indentUnit;
+    } else if (how == "subtract") {
+      indentation = curSpace - cm.options.indentUnit;
+    } else if (typeof how == "number") {
+      indentation = curSpace + how;
+    }
+    indentation = Math.max(0, indentation);
+
+    var indentString = "", pos = 0;
+    if (cm.options.indentWithTabs)
+      for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";}
+    if (pos < indentation) indentString += spaceStr(indentation - pos);
+
+    if (indentString != curSpaceString) {
+      replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input");
+      line.stateAfter = null;
+      return true;
+    } else {
+      // Ensure that, if the cursor was in the whitespace at the start
+      // of the line, it is moved to the end of that space.
+      for (var i = 0; i < doc.sel.ranges.length; i++) {
+        var range = doc.sel.ranges[i];
+        if (range.head.line == n && range.head.ch < curSpaceString.length) {
+          var pos = Pos(n, curSpaceString.length);
+          replaceOneSelection(doc, i, new Range(pos, pos));
+          break;
+        }
+      }
+    }
+  }
+
+  // Utility for applying a change to a line by handle or number,
+  // returning the number and optionally registering the line as
+  // changed.
+  function changeLine(doc, handle, changeType, op) {
+    var no = handle, line = handle;
+    if (typeof handle == "number") line = getLine(doc, clipLine(doc, handle));
+    else no = lineNo(handle);
+    if (no == null) return null;
+    if (op(line, no) && doc.cm) regLineChange(doc.cm, no, changeType);
+    return line;
+  }
+
+  // Helper for deleting text near the selection(s), used to implement
+  // backspace, delete, and similar functionality.
+  function deleteNearSelection(cm, compute) {
+    var ranges = cm.doc.sel.ranges, kill = [];
+    // Build up a set of ranges to kill first, merging overlapping
+    // ranges.
+    for (var i = 0; i < ranges.length; i++) {
+      var toKill = compute(ranges[i]);
+      while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {
+        var replaced = kill.pop();
+        if (cmp(replaced.from, toKill.from) < 0) {
+          toKill.from = replaced.from;
+          break;
+        }
+      }
+      kill.push(toKill);
+    }
+    // Next, remove those actual ranges.
+    runInOp(cm, function() {
+      for (var i = kill.length - 1; i >= 0; i--)
+        replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete");
+      ensureCursorVisible(cm);
+    });
+  }
+
+  // Used for horizontal relative motion. Dir is -1 or 1 (left or
+  // right), unit can be "char", "column" (like char, but doesn't
+  // cross line boundaries), "word" (across next word), or "group" (to
+  // the start of next group of word or non-word-non-whitespace
+  // chars). The visually param controls whether, in right-to-left
+  // text, direction 1 means to move towards the next index in the
+  // string, or towards the character to the right of the current
+  // position. The resulting position will have a hitSide=true
+  // property if it reached the end of the document.
+  function findPosH(doc, pos, dir, unit, visually) {
+    var line = pos.line, ch = pos.ch, origDir = dir;
+    var lineObj = getLine(doc, line);
+    function findNextLine() {
+      var l = line + dir;
+      if (l < doc.first || l >= doc.first + doc.size) return false
+      line = l;
+      return lineObj = getLine(doc, l);
+    }
+    function moveOnce(boundToLine) {
+      var next = (visually ? moveVisually : moveLogically)(lineObj, ch, dir, true);
+      if (next == null) {
+        if (!boundToLine && findNextLine()) {
+          if (visually) ch = (dir < 0 ? lineRight : lineLeft)(lineObj);
+          else ch = dir < 0 ? lineObj.text.length : 0;
+        } else return false
+      } else ch = next;
+      return true;
+    }
+
+    if (unit == "char") {
+      moveOnce()
+    } else if (unit == "column") {
+      moveOnce(true)
+    } else if (unit == "word" || unit == "group") {
+      var sawType = null, group = unit == "group";
+      var helper = doc.cm && doc.cm.getHelper(pos, "wordChars");
+      for (var first = true;; first = false) {
+        if (dir < 0 && !moveOnce(!first)) break;
+        var cur = lineObj.text.charAt(ch) || "\n";
+        var type = isWordChar(cur, helper) ? "w"
+          : group && cur == "\n" ? "n"
+          : !group || /\s/.test(cur) ? null
+          : "p";
+        if (group && !first && !type) type = "s";
+        if (sawType && sawType != type) {
+          if (dir < 0) {dir = 1; moveOnce();}
+          break;
+        }
+
+        if (type) sawType = type;
+        if (dir > 0 && !moveOnce(!first)) break;
+      }
+    }
+    var result = skipAtomic(doc, Pos(line, ch), pos, origDir, true);
+    if (!cmp(pos, result)) result.hitSide = true;
+    return result;
+  }
+
+  // For relative vertical movement. Dir may be -1 or 1. Unit can be
+  // "page" or "line". The resulting position will have a hitSide=true
+  // property if it reached the end of the document.
+  function findPosV(cm, pos, dir, unit) {
+    var doc = cm.doc, x = pos.left, y;
+    if (unit == "page") {
+      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);
+      y = pos.top + dir * (pageSize - (dir < 0 ? 1.5 : .5) * textHeight(cm.display));
+    } else if (unit == "line") {
+      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;
+    }
+    for (;;) {
+      var target = coordsChar(cm, x, y);
+      if (!target.outside) break;
+      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break; }
+      y += dir * 5;
+    }
+    return target;
+  }
+
+  // EDITOR METHODS
+
+  // The publicly visible API. Note that methodOp(f) means
+  // 'wrap f in an operation, performed on its `this` parameter'.
+
+  // This is not the complete set of editor methods. Most of the
+  // methods defined on the Doc type are also injected into
+  // CodeMirror.prototype, for backwards compatibility and
+  // convenience.
+
+  CodeMirror.prototype = {
+    constructor: CodeMirror,
+    focus: function(){window.focus(); this.display.input.focus();},
+
+    setOption: function(option, value) {
+      var options = this.options, old = options[option];
+      if (options[option] == value && option != "mode") return;
+      options[option] = value;
+      if (optionHandlers.hasOwnProperty(option))
+        operation(this, optionHandlers[option])(this, value, old);
+    },
+
+    getOption: function(option) {return this.options[option];},
+    getDoc: function() {return this.doc;},
+
+    addKeyMap: function(map, bottom) {
+      this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map));
+    },
+    removeKeyMap: function(map) {
+      var maps = this.state.keyMaps;
+      for (var i = 0; i < maps.length; ++i)
+        if (maps[i] == map || maps[i].name == map) {
+          maps.splice(i, 1);
+          return true;
+        }
+    },
+
+    addOverlay: methodOp(function(spec, options) {
+      var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);
+      if (mode.startState) throw new Error("Overlays may not be stateful.");
+      insertSorted(this.state.overlays,
+                   {mode: mode, modeSpec: spec, opaque: options && options.opaque,
+                    priority: (options && options.priority) || 0},
+                   function(overlay) { return overlay.priority })
+      this.state.modeGen++;
+      regChange(this);
+    }),
+    removeOverlay: methodOp(function(spec) {
+      var overlays = this.state.overlays;
+      for (var i = 0; i < overlays.length; ++i) {
+        var cur = overlays[i].modeSpec;
+        if (cur == spec || typeof spec == "string" && cur.name == spec) {
+          overlays.splice(i, 1);
+          this.state.modeGen++;
+          regChange(this);
+          return;
+        }
+      }
+    }),
+
+    indentLine: methodOp(function(n, dir, aggressive) {
+      if (typeof dir != "string" && typeof dir != "number") {
+        if (dir == null) dir = this.options.smartIndent ? "smart" : "prev";
+        else dir = dir ? "add" : "subtract";
+      }
+      if (isLine(this.doc, n)) indentLine(this, n, dir, aggressive);
+    }),
+    indentSelection: methodOp(function(how) {
+      var ranges = this.doc.sel.ranges, end = -1;
+      for (var i = 0; i < ranges.length; i++) {
+        var range = ranges[i];
+        if (!range.empty()) {
+          var from = range.from(), to = range.to();
+          var start = Math.max(end, from.line);
+          end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;
+          for (var j = start; j < end; ++j)
+            indentLine(this, j, how);
+          var newRanges = this.doc.sel.ranges;
+          if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)
+            replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll);
+        } else if (range.head.line > end) {
+          indentLine(this, range.head.line, how, true);
+          end = range.head.line;
+          if (i == this.doc.sel.primIndex) ensureCursorVisible(this);
+        }
+      }
+    }),
+
+    // Fetch the parser token for a given character. Useful for hacks
+    // that want to inspect the mode state (say, for completion).
+    getTokenAt: function(pos, precise) {
+      return takeToken(this, pos, precise);
+    },
+
+    getLineTokens: function(line, precise) {
+      return takeToken(this, Pos(line), precise, true);
+    },
+
+    getTokenTypeAt: function(pos) {
+      pos = clipPos(this.doc, pos);
+      var styles = getLineStyles(this, getLine(this.doc, pos.line));
+      var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;
+      var type;
+      if (ch == 0) type = styles[2];
+      else for (;;) {
+        var mid = (before + after) >> 1;
+        if ((mid ? styles[mid * 2 - 1] : 0) >= ch) after = mid;
+        else if (styles[mid * 2 + 1] < ch) before = mid + 1;
+        else { type = styles[mid * 2 + 2]; break; }
+      }
+      var cut = type ? type.indexOf("cm-overlay ") : -1;
+      return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1);
+    },
+
+    getModeAt: function(pos) {
+      var mode = this.doc.mode;
+      if (!mode.innerMode) return mode;
+      return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode;
+    },
+
+    getHelper: function(pos, type) {
+      return this.getHelpers(pos, type)[0];
+    },
+
+    getHelpers: function(pos, type) {
+      var found = [];
+      if (!helpers.hasOwnProperty(type)) return found;
+      var help = helpers[type], mode = this.getModeAt(pos);
+      if (typeof mode[type] == "string") {
+        if (help[mode[type]]) found.push(help[mode[type]]);
+      } else if (mode[type]) {
+        for (var i = 0; i < mode[type].length; i++) {
+          var val = help[mode[type][i]];
+          if (val) found.push(val);
+        }
+      } else if (mode.helperType && help[mode.helperType]) {
+        found.push(help[mode.helperType]);
+      } else if (help[mode.name]) {
+        found.push(help[mode.name]);
+      }
+      for (var i = 0; i < help._global.length; i++) {
+        var cur = help._global[i];
+        if (cur.pred(mode, this) && indexOf(found, cur.val) == -1)
+          found.push(cur.val);
+      }
+      return found;
+    },
+
+    getStateAfter: function(line, precise) {
+      var doc = this.doc;
+      line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
+      return getStateBefore(this, line + 1, precise);
+    },
+
+    cursorCoords: function(start, mode) {
+      var pos, range = this.doc.sel.primary();
+      if (start == null) pos = range.head;
+      else if (typeof start == "object") pos = clipPos(this.doc, start);
+      else pos = start ? range.from() : range.to();
+      return cursorCoords(this, pos, mode || "page");
+    },
+
+    charCoords: function(pos, mode) {
+      return charCoords(this, clipPos(this.doc, pos), mode || "page");
+    },
+
+    coordsChar: function(coords, mode) {
+      coords = fromCoordSystem(this, coords, mode || "page");
+      return coordsChar(this, coords.left, coords.top);
+    },
+
+    lineAtHeight: function(height, mode) {
+      height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top;
+      return lineAtHeight(this.doc, height + this.display.viewOffset);
+    },
+    heightAtLine: function(line, mode) {
+      var end = false, lineObj;
+      if (typeof line == "number") {
+        var last = this.doc.first + this.doc.size - 1;
+        if (line < this.doc.first) line = this.doc.first;
+        else if (line > last) { line = last; end = true; }
+        lineObj = getLine(this.doc, line);
+      } else {
+        lineObj = line;
+      }
+      return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page").top +
+        (end ? this.doc.height - heightAtLine(lineObj) : 0);
+    },
+
+    defaultTextHeight: function() { return textHeight(this.display); },
+    defaultCharWidth: function() { return charWidth(this.display); },
+
+    setGutterMarker: methodOp(function(line, gutterID, value) {
+      return changeLine(this.doc, line, "gutter", function(line) {
+        var markers = line.gutterMarkers || (line.gutterMarkers = {});
+        markers[gutterID] = value;
+        if (!value && isEmpty(markers)) line.gutterMarkers = null;
+        return true;
+      });
+    }),
+
+    clearGutter: methodOp(function(gutterID) {
+      var cm = this, doc = cm.doc, i = doc.first;
+      doc.iter(function(line) {
+        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
+          line.gutterMarkers[gutterID] = null;
+          regLineChange(cm, i, "gutter");
+          if (isEmpty(line.gutterMarkers)) line.gutterMarkers = null;
+        }
+        ++i;
+      });
+    }),
+
+    lineInfo: function(line) {
+      if (typeof line == "number") {
+        if (!isLine(this.doc, line)) return null;
+        var n = line;
+        line = getLine(this.doc, line);
+        if (!line) return null;
+      } else {
+        var n = lineNo(line);
+        if (n == null) return null;
+      }
+      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,
+              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,
+              widgets: line.widgets};
+    },
+
+    getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo};},
+
+    addWidget: function(pos, node, scroll, vert, horiz) {
+      var display = this.display;
+      pos = cursorCoords(this, clipPos(this.doc, pos));
+      var top = pos.bottom, left = pos.left;
+      node.style.position = "absolute";
+      node.setAttribute("cm-ignore-events", "true");
+      this.display.input.setUneditable(node);
+      display.sizer.appendChild(node);
+      if (vert == "over") {
+        top = pos.top;
+      } else if (vert == "above" || vert == "near") {
+        var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),
+        hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);
+        // Default to positioning above (if specified and possible); otherwise default to positioning below
+        if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)
+          top = pos.top - node.offsetHeight;
+        else if (pos.bottom + node.offsetHeight <= vspace)
+          top = pos.bottom;
+        if (left + node.offsetWidth > hspace)
+          left = hspace - node.offsetWidth;
+      }
+      node.style.top = top + "px";
+      node.style.left = node.style.right = "";
+      if (horiz == "right") {
+        left = display.sizer.clientWidth - node.offsetWidth;
+        node.style.right = "0px";
+      } else {
+        if (horiz == "left") left = 0;
+        else if (horiz == "middle") left = (display.sizer.clientWidth - node.offsetWidth) / 2;
+        node.style.left = left + "px";
+      }
+      if (scroll)
+        scrollIntoView(this, left, top, left + node.offsetWidth, top + node.offsetHeight);
+    },
+
+    triggerOnKeyDown: methodOp(onKeyDown),
+    triggerOnKeyPress: methodOp(onKeyPress),
+    triggerOnKeyUp: onKeyUp,
+
+    execCommand: function(cmd) {
+      if (commands.hasOwnProperty(cmd))
+        return commands[cmd].call(null, this);
+    },
+
+    triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),
+
+    findPosH: function(from, amount, unit, visually) {
+      var dir = 1;
+      if (amount < 0) { dir = -1; amount = -amount; }
+      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
+        cur = findPosH(this.doc, cur, dir, unit, visually);
+        if (cur.hitSide) break;
+      }
+      return cur;
+    },
+
+    moveH: methodOp(function(dir, unit) {
+      var cm = this;
+      cm.extendSelectionsBy(function(range) {
+        if (cm.display.shift || cm.doc.extend || range.empty())
+          return findPosH(cm.doc, range.head, dir, unit, cm.options.rtlMoveVisually);
+        else
+          return dir < 0 ? range.from() : range.to();
+      }, sel_move);
+    }),
+
+    deleteH: methodOp(function(dir, unit) {
+      var sel = this.doc.sel, doc = this.doc;
+      if (sel.somethingSelected())
+        doc.replaceSelection("", null, "+delete");
+      else
+        deleteNearSelection(this, function(range) {
+          var other = findPosH(doc, range.head, dir, unit, false);
+          return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other};
+        });
+    }),
+
+    findPosV: function(from, amount, unit, goalColumn) {
+      var dir = 1, x = goalColumn;
+      if (amount < 0) { dir = -1; amount = -amount; }
+      for (var i = 0, cur = clipPos(this.doc, from); i < amount; ++i) {
+        var coords = cursorCoords(this, cur, "div");
+        if (x == null) x = coords.left;
+        else coords.left = x;
+        cur = findPosV(this, coords, dir, unit);
+        if (cur.hitSide) break;
+      }
+      return cur;
+    },
+
+    moveV: methodOp(function(dir, unit) {
+      var cm = this, doc = this.doc, goals = [];
+      var collapse = !cm.display.shift && !doc.extend && doc.sel.somethingSelected();
+      doc.extendSelectionsBy(function(range) {
+        if (collapse)
+          return dir < 0 ? range.from() : range.to();
+        var headPos = cursorCoords(cm, range.head, "div");
+        if (range.goalColumn != null) headPos.left = range.goalColumn;
+        goals.push(headPos.left);
+        var pos = findPosV(cm, headPos, dir, unit);
+        if (unit == "page" && range == doc.sel.primary())
+          addToScrollPos(cm, null, charCoords(cm, pos, "div").top - headPos.top);
+        return pos;
+      }, sel_move);
+      if (goals.length) for (var i = 0; i < doc.sel.ranges.length; i++)
+        doc.sel.ranges[i].goalColumn = goals[i];
+    }),
+
+    // Find the word at the given position (as returned by coordsChar).
+    findWordAt: function(pos) {
+      var doc = this.doc, line = getLine(doc, pos.line).text;
+      var start = pos.ch, end = pos.ch;
+      if (line) {
+        var helper = this.getHelper(pos, "wordChars");
+        if ((pos.xRel < 0 || end == line.length) && start) --start; else ++end;
+        var startChar = line.charAt(start);
+        var check = isWordChar(startChar, helper)
+          ? function(ch) { return isWordChar(ch, helper); }
+          : /\s/.test(startChar) ? function(ch) {return /\s/.test(ch);}
+          : function(ch) {return !/\s/.test(ch) && !isWordChar(ch);};
+        while (start > 0 && check(line.charAt(start - 1))) --start;
+        while (end < line.length && check(line.charAt(end))) ++end;
+      }
+      return new Range(Pos(pos.line, start), Pos(pos.line, end));
+    },
+
+    toggleOverwrite: function(value) {
+      if (value != null && value == this.state.overwrite) return;
+      if (this.state.overwrite = !this.state.overwrite)
+        addClass(this.display.cursorDiv, "CodeMirror-overwrite");
+      else
+        rmClass(this.display.cursorDiv, "CodeMirror-overwrite");
+
+      signal(this, "overwriteToggle", this, this.state.overwrite);
+    },
+    hasFocus: function() { return this.display.input.getField() == activeElt(); },
+    isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit); },
+
+    scrollTo: methodOp(function(x, y) {
+      if (x != null || y != null) resolveScrollToPos(this);
+      if (x != null) this.curOp.scrollLeft = x;
+      if (y != null) this.curOp.scrollTop = y;
+    }),
+    getScrollInfo: function() {
+      var scroller = this.display.scroller;
+      return {left: scroller.scrollLeft, top: scroller.scrollTop,
+              height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,
+              width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,
+              clientHeight: displayHeight(this), clientWidth: displayWidth(this)};
+    },
+
+    scrollIntoView: methodOp(function(range, margin) {
+      if (range == null) {
+        range = {from: this.doc.sel.primary().head, to: null};
+        if (margin == null) margin = this.options.cursorScrollMargin;
+      } else if (typeof range == "number") {
+        range = {from: Pos(range, 0), to: null};
+      } else if (range.from == null) {
+        range = {from: range, to: null};
+      }
+      if (!range.to) range.to = range.from;
+      range.margin = margin || 0;
+
+      if (range.from.line != null) {
+        resolveScrollToPos(this);
+        this.curOp.scrollToPos = range;
+      } else {
+        var sPos = calculateScrollPos(this, Math.min(range.from.left, range.to.left),
+                                      Math.min(range.from.top, range.to.top) - range.margin,
+                                      Math.max(range.from.right, range.to.right),
+                                      Math.max(range.from.bottom, range.to.bottom) + range.margin);
+        this.scrollTo(sPos.scrollLeft, sPos.scrollTop);
+      }
+    }),
+
+    setSize: methodOp(function(width, height) {
+      var cm = this;
+      function interpret(val) {
+        return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val;
+      }
+      if (width != null) cm.display.wrapper.style.width = interpret(width);
+      if (height != null) cm.display.wrapper.style.height = interpret(height);
+      if (cm.options.lineWrapping) clearLineMeasurementCache(this);
+      var lineNo = cm.display.viewFrom;
+      cm.doc.iter(lineNo, cm.display.viewTo, function(line) {
+        if (line.widgets) for (var i = 0; i < line.widgets.length; i++)
+          if (line.widgets[i].noHScroll) { regLineChange(cm, lineNo, "widget"); break; }
+        ++lineNo;
+      });
+      cm.curOp.forceUpdate = true;
+      signal(cm, "refresh", this);
+    }),
+
+    operation: function(f){return runInOp(this, f);},
+
+    refresh: methodOp(function() {
+      var oldHeight = this.display.cachedTextHeight;
+      regChange(this);
+      this.curOp.forceUpdate = true;
+      clearCaches(this);
+      this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop);
+      updateGutterSpace(this);
+      if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
+        estimateLineHeights(this);
+      signal(this, "refresh", this);
+    }),
+
+    swapDoc: methodOp(function(doc) {
+      var old = this.doc;
+      old.cm = null;
+      attachDoc(this, doc);
+      clearCaches(this);
+      this.display.input.reset();
+      this.scrollTo(doc.scrollLeft, doc.scrollTop);
+      this.curOp.forceScroll = true;
+      signalLater(this, "swapDoc", this, old);
+      return old;
+    }),
+
+    getInputField: function(){return this.display.input.getField();},
+    getWrapperElement: function(){return this.display.wrapper;},
+    getScrollerElement: function(){return this.display.scroller;},
+    getGutterElement: function(){return this.display.gutters;}
+  };
+  eventMixin(CodeMirror);
+
+  // OPTION DEFAULTS
+
+  // The default configuration options.
+  var defaults = CodeMirror.defaults = {};
+  // Functions to run when options are changed.
+  var optionHandlers = CodeMirror.optionHandlers = {};
+
+  function option(name, deflt, handle, notOnInit) {
+    CodeMirror.defaults[name] = deflt;
+    if (handle) optionHandlers[name] =
+      notOnInit ? function(cm, val, old) {if (old != Init) handle(cm, val, old);} : handle;
+  }
+
+  // Passed to option handlers when there is no old value.
+  var Init = CodeMirror.Init = {toString: function(){return "CodeMirror.Init";}};
+
+  // These two are, on init, called from the constructor because they
+  // have to be initialized before the editor can start at all.
+  option("value", "", function(cm, val) {
+    cm.setValue(val);
+  }, true);
+  option("mode", null, function(cm, val) {
+    cm.doc.modeOption = val;
+    loadMode(cm);
+  }, true);
+
+  option("indentUnit", 2, loadMode, true);
+  option("indentWithTabs", false);
+  option("smartIndent", true);
+  option("tabSize", 4, function(cm) {
+    resetModeState(cm);
+    clearCaches(cm);
+    regChange(cm);
+  }, true);
+  option("lineSeparator", null, function(cm, val) {
+    cm.doc.lineSep = val;
+    if (!val) return;
+    var newBreaks = [], lineNo = cm.doc.first;
+    cm.doc.iter(function(line) {
+      for (var pos = 0;;) {
+        var found = line.text.indexOf(val, pos);
+        if (found == -1) break;
+        pos = found + val.length;
+        newBreaks.push(Pos(lineNo, found));
+      }
+      lineNo++;
+    });
+    for (var i = newBreaks.length - 1; i >= 0; i--)
+      replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length))
+  });
+  option("specialChars", /[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val, old) {
+    cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
+    if (old != CodeMirror.Init) cm.refresh();
+  });
+  option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function(cm) {cm.refresh();}, true);
+  option("electricChars", true);
+  option("inputStyle", mobile ? "contenteditable" : "textarea", function() {
+    throw new Error("inputStyle can not (yet) be changed in a running editor"); // FIXME
+  }, true);
+  option("spellcheck", false, function(cm, val) {
+    cm.getInputField().spellcheck = val
+  }, true);
+  option("rtlMoveVisually", !windows);
+  option("wholeLineUpdateBefore", true);
+
+  option("theme", "default", function(cm) {
+    themeChanged(cm);
+    guttersChanged(cm);
+  }, true);
+  option("keyMap", "default", function(cm, val, old) {
+    var next = getKeyMap(val);
+    var prev = old != CodeMirror.Init && getKeyMap(old);
+    if (prev && prev.detach) prev.detach(cm, next);
+    if (next.attach) next.attach(cm, prev || null);
+  });
+  option("extraKeys", null);
+
+  option("lineWrapping", false, wrappingChanged, true);
+  option("gutters", [], function(cm) {
+    setGuttersForLineNumbers(cm.options);
+    guttersChanged(cm);
+  }, true);
+  option("fixedGutter", true, function(cm, val) {
+    cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0";
+    cm.refresh();
+  }, true);
+  option("coverGutterNextToScrollbar", false, function(cm) {updateScrollbars(cm);}, true);
+  option("scrollbarStyle", "native", function(cm) {
+    initScrollbars(cm);
+    updateScrollbars(cm);
+    cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);
+    cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);
+  }, true);
+  option("lineNumbers", false, function(cm) {
+    setGuttersForLineNumbers(cm.options);
+    guttersChanged(cm);
+  }, true);
+  option("firstLineNumber", 1, guttersChanged, true);
+  option("lineNumberFormatter", function(integer) {return integer;}, guttersChanged, true);
+  option("showCursorWhenSelecting", false, updateSelection, true);
+
+  option("resetSelectionOnContextMenu", true);
+  option("lineWiseCopyCut", true);
+
+  option("readOnly", false, function(cm, val) {
+    if (val == "nocursor") {
+      onBlur(cm);
+      cm.display.input.blur();
+      cm.display.disabled = true;
+    } else {
+      cm.display.disabled = false;
+    }
+    cm.display.input.readOnlyChanged(val)
+  });
+  option("disableInput", false, function(cm, val) {if (!val) cm.display.input.reset();}, true);
+  option("dragDrop", true, dragDropChanged);
+  option("allowDropFileTypes", null);
+
+  option("cursorBlinkRate", 530);
+  option("cursorScrollMargin", 0);
+  option("cursorHeight", 1, updateSelection, true);
+  option("singleCursorHeightPerLine", true, updateSelection, true);
+  option("workTime", 100);
+  option("workDelay", 100);
+  option("flattenSpans", true, resetModeState, true);
+  option("addModeClass", false, resetModeState, true);
+  option("pollInterval", 100);
+  option("undoDepth", 200, function(cm, val){cm.doc.history.undoDepth = val;});
+  option("historyEventDelay", 1250);
+  option("viewportMargin", 10, function(cm){cm.refresh();}, true);
+  option("maxHighlightLength", 10000, resetModeState, true);
+  option("moveInputWithCursor", true, function(cm, val) {
+    if (!val) cm.display.input.resetPosition();
+  });
+
+  option("tabindex", null, function(cm, val) {
+    cm.display.input.getField().tabIndex = val || "";
+  });
+  option("autofocus", null);
+
+  // MODE DEFINITION AND QUERYING
+
+  // Known modes, by name and by MIME
+  var modes = CodeMirror.modes = {}, mimeModes = CodeMirror.mimeModes = {};
+
+  // Extra arguments are stored as the mode's dependencies, which is
+  // used by (legacy) mechanisms like loadmode.js to automatically
+  // load a mode. (Preferred mechanism is the require/define calls.)
+  CodeMirror.defineMode = function(name, mode) {
+    if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name;
+    if (arguments.length > 2)
+      mode.dependencies = Array.prototype.slice.call(arguments, 2);
+    modes[name] = mode;
+  };
+
+  CodeMirror.defineMIME = function(mime, spec) {
+    mimeModes[mime] = spec;
+  };
+
+  // Given a MIME type, a {name, ...options} config object, or a name
+  // string, return a mode config object.
+  CodeMirror.resolveMode = function(spec) {
+    if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
+      spec = mimeModes[spec];
+    } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
+      var found = mimeModes[spec.name];
+      if (typeof found == "string") found = {name: found};
+      spec = createObj(found, spec);
+      spec.name = found.name;
+    } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
+      return CodeMirror.resolveMode("application/xml");
+    } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) {
+      return CodeMirror.resolveMode("application/json");
+    }
+    if (typeof spec == "string") return {name: spec};
+    else return spec || {name: "null"};
+  };
+
+  // Given a mode spec (anything that resolveMode accepts), find and
+  // initialize an actual mode object.
+  CodeMirror.getMode = function(options, spec) {
+    var spec = CodeMirror.resolveMode(spec);
+    var mfactory = modes[spec.name];
+    if (!mfactory) return CodeMirror.getMode(options, "text/plain");
+    var modeObj = mfactory(options, spec);
+    if (modeExtensions.hasOwnProperty(spec.name)) {
+      var exts = modeExtensions[spec.name];
+      for (var prop in exts) {
+        if (!exts.hasOwnProperty(prop)) continue;
+        if (modeObj.hasOwnProperty(prop)) modeObj["_" + prop] = modeObj[prop];
+        modeObj[prop] = exts[prop];
+      }
+    }
+    modeObj.name = spec.name;
+    if (spec.helperType) modeObj.helperType = spec.helperType;
+    if (spec.modeProps) for (var prop in spec.modeProps)
+      modeObj[prop] = spec.modeProps[prop];
+
+    return modeObj;
+  };
+
+  // Minimal default mode.
+  CodeMirror.defineMode("null", function() {
+    return {token: function(stream) {stream.skipToEnd();}};
+  });
+  CodeMirror.defineMIME("text/plain", "null");
+
+  // This can be used to attach properties to mode objects from
+  // outside the actual mode definition.
+  var modeExtensions = CodeMirror.modeExtensions = {};
+  CodeMirror.extendMode = function(mode, properties) {
+    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
+    copyObj(properties, exts);
+  };
+
+  // EXTENSIONS
+
+  CodeMirror.defineExtension = function(name, func) {
+    CodeMirror.prototype[name] = func;
+  };
+  CodeMirror.defineDocExtension = function(name, func) {
+    Doc.prototype[name] = func;
+  };
+  CodeMirror.defineOption = option;
+
+  var initHooks = [];
+  CodeMirror.defineInitHook = function(f) {initHooks.push(f);};
+
+  var helpers = CodeMirror.helpers = {};
+  CodeMirror.registerHelper = function(type, name, value) {
+    if (!helpers.hasOwnProperty(type)) helpers[type] = CodeMirror[type] = {_global: []};
+    helpers[type][name] = value;
+  };
+  CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {
+    CodeMirror.registerHelper(type, name, value);
+    helpers[type]._global.push({pred: predicate, val: value});
+  };
+
+  // MODE STATE HANDLING
+
+  // Utility functions for working with state. Exported because nested
+  // modes need to do this for their inner modes.
+
+  var copyState = CodeMirror.copyState = function(mode, state) {
+    if (state === true) return state;
+    if (mode.copyState) return mode.copyState(state);
+    var nstate = {};
+    for (var n in state) {
+      var val = state[n];
+      if (val instanceof Array) val = val.concat([]);
+      nstate[n] = val;
+    }
+    return nstate;
+  };
+
+  var startState = CodeMirror.startState = function(mode, a1, a2) {
+    return mode.startState ? mode.startState(a1, a2) : true;
+  };
+
+  // Given a mode and a state (for that mode), find the inner mode and
+  // state at the position that the state refers to.
+  CodeMirror.innerMode = function(mode, state) {
+    while (mode.innerMode) {
+      var info = mode.innerMode(state);
+      if (!info || info.mode == mode) break;
+      state = info.state;
+      mode = info.mode;
+    }
+    return info || {mode: mode, state: state};
+  };
+
+  // STANDARD COMMANDS
+
+  // Commands are parameter-less actions that can be performed on an
+  // editor, mostly used for keybindings.
+  var commands = CodeMirror.commands = {
+    selectAll: function(cm) {cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);},
+    singleSelection: function(cm) {
+      cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll);
+    },
+    killLine: function(cm) {
+      deleteNearSelection(cm, function(range) {
+        if (range.empty()) {
+          var len = getLine(cm.doc, range.head.line).text.length;
+          if (range.head.ch == len && range.head.line < cm.lastLine())
+            return {from: range.head, to: Pos(range.head.line + 1, 0)};
+          else
+            return {from: range.head, to: Pos(range.head.line, len)};
+        } else {
+          return {from: range.from(), to: range.to()};
+        }
+      });
+    },
+    deleteLine: function(cm) {
+      deleteNearSelection(cm, function(range) {
+        return {from: Pos(range.from().line, 0),
+                to: clipPos(cm.doc, Pos(range.to().line + 1, 0))};
+      });
+    },
+    delLineLeft: function(cm) {
+      deleteNearSelection(cm, function(range) {
+        return {from: Pos(range.from().line, 0), to: range.from()};
+      });
+    },
+    delWrappedLineLeft: function(cm) {
+      deleteNearSelection(cm, function(range) {
+        var top = cm.charCoords(range.head, "div").top + 5;
+        var leftPos = cm.coordsChar({left: 0, top: top}, "div");
+        return {from: leftPos, to: range.from()};
+      });
+    },
+    delWrappedLineRight: function(cm) {
+      deleteNearSelection(cm, function(range) {
+        var top = cm.charCoords(range.head, "div").top + 5;
+        var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
+        return {from: range.from(), to: rightPos };
+      });
+    },
+    undo: function(cm) {cm.undo();},
+    redo: function(cm) {cm.redo();},
+    undoSelection: function(cm) {cm.undoSelection();},
+    redoSelection: function(cm) {cm.redoSelection();},
+    goDocStart: function(cm) {cm.extendSelection(Pos(cm.firstLine(), 0));},
+    goDocEnd: function(cm) {cm.extendSelection(Pos(cm.lastLine()));},
+    goLineStart: function(cm) {
+      cm.extendSelectionsBy(function(range) { return lineStart(cm, range.head.line); },
+                            {origin: "+move", bias: 1});
+    },
+    goLineStartSmart: function(cm) {
+      cm.extendSelectionsBy(function(range) {
+        return lineStartSmart(cm, range.head);
+      }, {origin: "+move", bias: 1});
+    },
+    goLineEnd: function(cm) {
+      cm.extendSelectionsBy(function(range) { return lineEnd(cm, range.head.line); },
+                            {origin: "+move", bias: -1});
+    },
+    goLineRight: function(cm) {
+      cm.extendSelectionsBy(function(range) {
+        var top = cm.charCoords(range.head, "div").top + 5;
+        return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
+      }, sel_move);
+    },
+    goLineLeft: function(cm) {
+      cm.extendSelectionsBy(function(range) {
+        var top = cm.charCoords(range.head, "div").top + 5;
+        return cm.coordsChar({left: 0, top: top}, "div");
+      }, sel_move);
+    },
+    goLineLeftSmart: function(cm) {
+      cm.extendSelectionsBy(function(range) {
+        var top = cm.charCoords(range.head, "div").top + 5;
+        var pos = cm.coordsChar({left: 0, top: top}, "div");
+        if (pos.ch < cm.getLine(pos.line).search(/\S/)) return lineStartSmart(cm, range.head);
+        return pos;
+      }, sel_move);
+    },
+    goLineUp: function(cm) {cm.moveV(-1, "line");},
+    goLineDown: function(cm) {cm.moveV(1, "line");},
+    goPageUp: function(cm) {cm.moveV(-1, "page");},
+    goPageDown: function(cm) {cm.moveV(1, "page");},
+    goCharLeft: function(cm) {cm.moveH(-1, "char");},
+    goCharRight: function(cm) {cm.moveH(1, "char");},
+    goColumnLeft: function(cm) {cm.moveH(-1, "column");},
+    goColumnRight: function(cm) {cm.moveH(1, "column");},
+    goWordLeft: function(cm) {cm.moveH(-1, "word");},
+    goGroupRight: function(cm) {cm.moveH(1, "group");},
+    goGroupLeft: function(cm) {cm.moveH(-1, "group");},
+    goWordRight: function(cm) {cm.moveH(1, "word");},
+    delCharBefore: function(cm) {cm.deleteH(-1, "char");},
+    delCharAfter: function(cm) {cm.deleteH(1, "char");},
+    delWordBefore: function(cm) {cm.deleteH(-1, "word");},
+    delWordAfter: function(cm) {cm.deleteH(1, "word");},
+    delGroupBefore: function(cm) {cm.deleteH(-1, "group");},
+    delGroupAfter: function(cm) {cm.deleteH(1, "group");},
+    indentAuto: function(cm) {cm.indentSelection("smart");},
+    indentMore: function(cm) {cm.indentSelection("add");},
+    indentLess: function(cm) {cm.indentSelection("subtract");},
+    insertTab: function(cm) {cm.replaceSelection("\t");},
+    insertSoftTab: function(cm) {
+      var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;
+      for (var i = 0; i < ranges.length; i++) {
+        var pos = ranges[i].from();
+        var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
+        spaces.push(spaceStr(tabSize - col % tabSize));
+      }
+      cm.replaceSelections(spaces);
+    },
+    defaultTab: function(cm) {
+      if (cm.somethingSelected()) cm.indentSelection("add");
+      else cm.execCommand("insertTab");
+    },
+    transposeChars: function(cm) {
+      runInOp(cm, function() {
+        var ranges = cm.listSelections(), newSel = [];
+        for (var i = 0; i < ranges.length; i++) {
+          var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;
+          if (line) {
+            if (cur.ch == line.length) cur = new Pos(cur.line, cur.ch - 1);
+            if (cur.ch > 0) {
+              cur = new Pos(cur.line, cur.ch + 1);
+              cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),
+                              Pos(cur.line, cur.ch - 2), cur, "+transpose");
+            } else if (cur.line > cm.doc.first) {
+              var prev = getLine(cm.doc, cur.line - 1).text;
+              if (prev)
+                cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +
+                                prev.charAt(prev.length - 1),
+                                Pos(cur.line - 1, prev.length - 1), Pos(cur.line, 1), "+transpose");
+            }
+          }
+          newSel.push(new Range(cur, cur));
+        }
+        cm.setSelections(newSel);
+      });
+    },
+    newlineAndIndent: function(cm) {
+      runInOp(cm, function() {
+        var len = cm.listSelections().length;
+        for (var i = 0; i < len; i++) {
+          var range = cm.listSelections()[i];
+          cm.replaceRange(cm.doc.lineSeparator(), range.anchor, range.head, "+input");
+          cm.indentLine(range.from().line + 1, null, true);
+        }
+        ensureCursorVisible(cm);
+      });
+    },
+    openLine: function(cm) {cm.replaceSelection("\n", "start")},
+    toggleOverwrite: function(cm) {cm.toggleOverwrite();}
+  };
+
+
+  // STANDARD KEYMAPS
+
+  var keyMap = CodeMirror.keyMap = {};
+
+  keyMap.basic = {
+    "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
+    "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
+    "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
+    "Tab": "defaultTab", "Shift-Tab": "indentAuto",
+    "Enter": "newlineAndIndent", "Insert": "toggleOverwrite",
+    "Esc": "singleSelection"
+  };
+  // Note that the save and find-related commands aren't defined by
+  // default. User code or addons can define them. Unknown commands
+  // are simply ignored.
+  keyMap.pcDefault = {
+    "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
+    "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown",
+    "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
+    "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find",
+    "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
+    "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
+    "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
+    fallthrough: "basic"
+  };
+  // Very basic readline/emacs-style bindings, which are standard on Mac.
+  keyMap.emacsy = {
+    "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
+    "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
+    "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
+    "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars",
+    "Ctrl-O": "openLine"
+  };
+  keyMap.macDefault = {
+    "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
+    "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft",
+    "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore",
+    "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find",
+    "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
+    "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
+    "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
+    fallthrough: ["basic", "emacsy"]
+  };
+  keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
+
+  // KEYMAP DISPATCH
+
+  function normalizeKeyName(name) {
+    var parts = name.split(/-(?!$)/), name = parts[parts.length - 1];
+    var alt, ctrl, shift, cmd;
+    for (var i = 0; i < parts.length - 1; i++) {
+      var mod = parts[i];
+      if (/^(cmd|meta|m)$/i.test(mod)) cmd = true;
+      else if (/^a(lt)?$/i.test(mod)) alt = true;
+      else if (/^(c|ctrl|control)$/i.test(mod)) ctrl = true;
+      else if (/^s(hift)$/i.test(mod)) shift = true;
+      else throw new Error("Unrecognized modifier name: " + mod);
+    }
+    if (alt) name = "Alt-" + name;
+    if (ctrl) name = "Ctrl-" + name;
+    if (cmd) name = "Cmd-" + name;
+    if (shift) name = "Shift-" + name;
+    return name;
+  }
+
+  // This is a kludge to keep keymaps mostly working as raw objects
+  // (backwards compatibility) while at the same time support features
+  // like normalization and multi-stroke key bindings. It compiles a
+  // new normalized keymap, and then updates the old object to reflect
+  // this.
+  CodeMirror.normalizeKeyMap = function(keymap) {
+    var copy = {};
+    for (var keyname in keymap) if (keymap.hasOwnProperty(keyname)) {
+      var value = keymap[keyname];
+      if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) continue;
+      if (value == "...") { delete keymap[keyname]; continue; }
+
+      var keys = map(keyname.split(" "), normalizeKeyName);
+      for (var i = 0; i < keys.length; i++) {
+        var val, name;
+        if (i == keys.length - 1) {
+          name = keys.join(" ");
+          val = value;
+        } else {
+          name = keys.slice(0, i + 1).join(" ");
+          val = "...";
+        }
+        var prev = copy[name];
+        if (!prev) copy[name] = val;
+        else if (prev != val) throw new Error("Inconsistent bindings for " + name);
+      }
+      delete keymap[keyname];
+    }
+    for (var prop in copy) keymap[prop] = copy[prop];
+    return keymap;
+  };
+
+  var lookupKey = CodeMirror.lookupKey = function(key, map, handle, context) {
+    map = getKeyMap(map);
+    var found = map.call ? map.call(key, context) : map[key];
+    if (found === false) return "nothing";
+    if (found === "...") return "multi";
+    if (found != null && handle(found)) return "handled";
+
+    if (map.fallthrough) {
+      if (Object.prototype.toString.call(map.fallthrough) != "[object Array]")
+        return lookupKey(key, map.fallthrough, handle, context);
+      for (var i = 0; i < map.fallthrough.length; i++) {
+        var result = lookupKey(key, map.fallthrough[i], handle, context);
+        if (result) return result;
+      }
+    }
+  };
+
+  // Modifier key presses don't count as 'real' key presses for the
+  // purpose of keymap fallthrough.
+  var isModifierKey = CodeMirror.isModifierKey = function(value) {
+    var name = typeof value == "string" ? value : keyNames[value.keyCode];
+    return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod";
+  };
+
+  // Look up the name of a key as indicated by an event object.
+  var keyName = CodeMirror.keyName = function(event, noShift) {
+    if (presto && event.keyCode == 34 && event["char"]) return false;
+    var base = keyNames[event.keyCode], name = base;
+    if (name == null || event.altGraphKey) return false;
+    if (event.altKey && base != "Alt") name = "Alt-" + name;
+    if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") name = "Ctrl-" + name;
+    if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") name = "Cmd-" + name;
+    if (!noShift && event.shiftKey && base != "Shift") name = "Shift-" + name;
+    return name;
+  };
+
+  function getKeyMap(val) {
+    return typeof val == "string" ? keyMap[val] : val;
+  }
+
+  // FROMTEXTAREA
+
+  CodeMirror.fromTextArea = function(textarea, options) {
+    options = options ? copyObj(options) : {};
+    options.value = textarea.value;
+    if (!options.tabindex && textarea.tabIndex)
+      options.tabindex = textarea.tabIndex;
+    if (!options.placeholder && textarea.placeholder)
+      options.placeholder = textarea.placeholder;
+    // Set autofocus to true if this textarea is focused, or if it has
+    // autofocus and no other element is focused.
+    if (options.autofocus == null) {
+      var hasFocus = activeElt();
+      options.autofocus = hasFocus == textarea ||
+        textarea.getAttribute("autofocus") != null && hasFocus == document.body;
+    }
+
+    function save() {textarea.value = cm.getValue();}
+    if (textarea.form) {
+      on(textarea.form, "submit", save);
+      // Deplorable hack to make the submit method do the right thing.
+      if (!options.leaveSubmitMethodAlone) {
+        var form = textarea.form, realSubmit = form.submit;
+        try {
+          var wrappedSubmit = form.submit = function() {
+            save();
+            form.submit = realSubmit;
+            form.submit();
+            form.submit = wrappedSubmit;
+          };
+        } catch(e) {}
+      }
+    }
+
+    options.finishInit = function(cm) {
+      cm.save = save;
+      cm.getTextArea = function() { return textarea; };
+      cm.toTextArea = function() {
+        cm.toTextArea = isNaN; // Prevent this from being ran twice
+        save();
+        textarea.parentNode.removeChild(cm.getWrapperElement());
+        textarea.style.display = "";
+        if (textarea.form) {
+          off(textarea.form, "submit", save);
+          if (typeof textarea.form.submit == "function")
+            textarea.form.submit = realSubmit;
+        }
+      };
+    };
+
+    textarea.style.display = "none";
+    var cm = CodeMirror(function(node) {
+      textarea.parentNode.insertBefore(node, textarea.nextSibling);
+    }, options);
+    return cm;
+  };
+
+  // STRING STREAM
+
+  // Fed to the mode parsers, provides helper functions to make
+  // parsers more succinct.
+
+  var StringStream = CodeMirror.StringStream = function(string, tabSize) {
+    this.pos = this.start = 0;
+    this.string = string;
+    this.tabSize = tabSize || 8;
+    this.lastColumnPos = this.lastColumnValue = 0;
+    this.lineStart = 0;
+  };
+
+  StringStream.prototype = {
+    eol: function() {return this.pos >= this.string.length;},
+    sol: function() {return this.pos == this.lineStart;},
+    peek: function() {return this.string.charAt(this.pos) || undefined;},
+    next: function() {
+      if (this.pos < this.string.length)
+        return this.string.charAt(this.pos++);
+    },
+    eat: function(match) {
+      var ch = this.string.charAt(this.pos);
+      if (typeof match == "string") var ok = ch == match;
+      else var ok = ch && (match.test ? match.test(ch) : match(ch));
+      if (ok) {++this.pos; return ch;}
+    },
+    eatWhile: function(match) {
+      var start = this.pos;
+      while (this.eat(match)){}
+      return this.pos > start;
+    },
+    eatSpace: function() {
+      var start = this.pos;
+      while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos;
+      return this.pos > start;
+    },
+    skipToEnd: function() {this.pos = this.string.length;},
+    skipTo: function(ch) {
+      var found = this.string.indexOf(ch, this.pos);
+      if (found > -1) {this.pos = found; return true;}
+    },
+    backUp: function(n) {this.pos -= n;},
+    column: function() {
+      if (this.lastColumnPos < this.start) {
+        this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
+        this.lastColumnPos = this.start;
+      }
+      return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
+    },
+    indentation: function() {
+      return countColumn(this.string, null, this.tabSize) -
+        (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0);
+    },
+    match: function(pattern, consume, caseInsensitive) {
+      if (typeof pattern == "string") {
+        var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;};
+        var substr = this.string.substr(this.pos, pattern.length);
+        if (cased(substr) == cased(pattern)) {
+          if (consume !== false) this.pos += pattern.length;
+          return true;
+        }
+      } else {
+        var match = this.string.slice(this.pos).match(pattern);
+        if (match && match.index > 0) return null;
+        if (match && consume !== false) this.pos += match[0].length;
+        return match;
+      }
+    },
+    current: function(){return this.string.slice(this.start, this.pos);},
+    hideFirstChars: function(n, inner) {
+      this.lineStart += n;
+      try { return inner(); }
+      finally { this.lineStart -= n; }
+    }
+  };
+
+  // TEXTMARKERS
+
+  // Created with markText and setBookmark methods. A TextMarker is a
+  // handle that can be used to clear or find a marked position in the
+  // document. Line objects hold arrays (markedSpans) containing
+  // {from, to, marker} object pointing to such marker objects, and
+  // indicating that such a marker is present on that line. Multiple
+  // lines may point to the same marker when it spans across lines.
+  // The spans will have null for their from/to properties when the
+  // marker continues beyond the start/end of the line. Markers have
+  // links back to the lines they currently touch.
+
+  var nextMarkerId = 0;
+
+  var TextMarker = CodeMirror.TextMarker = function(doc, type) {
+    this.lines = [];
+    this.type = type;
+    this.doc = doc;
+    this.id = ++nextMarkerId;
+  };
+  eventMixin(TextMarker);
+
+  // Clear the marker.
+  TextMarker.prototype.clear = function() {
+    if (this.explicitlyCleared) return;
+    var cm = this.doc.cm, withOp = cm && !cm.curOp;
+    if (withOp) startOperation(cm);
+    if (hasHandler(this, "clear")) {
+      var found = this.find();
+      if (found) signalLater(this, "clear", found.from, found.to);
+    }
+    var min = null, max = null;
+    for (var i = 0; i < this.lines.length; ++i) {
+      var line = this.lines[i];
+      var span = getMarkedSpanFor(line.markedSpans, this);
+      if (cm && !this.collapsed) regLineChange(cm, lineNo(line), "text");
+      else if (cm) {
+        if (span.to != null) max = lineNo(line);
+        if (span.from != null) min = lineNo(line);
+      }
+      line.markedSpans = removeMarkedSpan(line.markedSpans, span);
+      if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm)
+        updateLineHeight(line, textHeight(cm.display));
+    }
+    if (cm && this.collapsed && !cm.options.lineWrapping) for (var i = 0; i < this.lines.length; ++i) {
+      var visual = visualLine(this.lines[i]), len = lineLength(visual);
+      if (len > cm.display.maxLineLength) {
+        cm.display.maxLine = visual;
+        cm.display.maxLineLength = len;
+        cm.display.maxLineChanged = true;
+      }
+    }
+
+    if (min != null && cm && this.collapsed) regChange(cm, min, max + 1);
+    this.lines.length = 0;
+    this.explicitlyCleared = true;
+    if (this.atomic && this.doc.cantEdit) {
+      this.doc.cantEdit = false;
+      if (cm) reCheckSelection(cm.doc);
+    }
+    if (cm) signalLater(cm, "markerCleared", cm, this);
+    if (withOp) endOperation(cm);
+    if (this.parent) this.parent.clear();
+  };
+
+  // Find the position of the marker in the document. Returns a {from,
+  // to} object by default. Side can be passed to get a specific side
+  // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the
+  // Pos objects returned contain a line object, rather than a line
+  // number (used to prevent looking up the same line twice).
+  TextMarker.prototype.find = function(side, lineObj) {
+    if (side == null && this.type == "bookmark") side = 1;
+    var from, to;
+    for (var i = 0; i < this.lines.length; ++i) {
+      var line = this.lines[i];
+      var span = getMarkedSpanFor(line.markedSpans, this);
+      if (span.from != null) {
+        from = Pos(lineObj ? line : lineNo(line), span.from);
+        if (side == -1) return from;
+      }
+      if (span.to != null) {
+        to = Pos(lineObj ? line : lineNo(line), span.to);
+        if (side == 1) return to;
+      }
+    }
+    return from && {from: from, to: to};
+  };
+
+  // Signals that the marker's widget changed, and surrounding layout
+  // should be recomputed.
+  TextMarker.prototype.changed = function() {
+    var pos = this.find(-1, true), widget = this, cm = this.doc.cm;
+    if (!pos || !cm) return;
+    runInOp(cm, function() {
+      var line = pos.line, lineN = lineNo(pos.line);
+      var view = findViewForLine(cm, lineN);
+      if (view) {
+        clearLineMeasurementCacheFor(view);
+        cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;
+      }
+      cm.curOp.updateMaxLine = true;
+      if (!lineIsHidden(widget.doc, line) && widget.height != null) {
+        var oldHeight = widget.height;
+        widget.height = null;
+        var dHeight = widgetHeight(widget) - oldHeight;
+        if (dHeight)
+          updateLineHeight(line, line.height + dHeight);
+      }
+    });
+  };
+
+  TextMarker.prototype.attachLine = function(line) {
+    if (!this.lines.length && this.doc.cm) {
+      var op = this.doc.cm.curOp;
+      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)
+        (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this);
+    }
+    this.lines.push(line);
+  };
+  TextMarker.prototype.detachLine = function(line) {
+    this.lines.splice(indexOf(this.lines, line), 1);
+    if (!this.lines.length && this.doc.cm) {
+      var op = this.doc.cm.curOp;
+      (op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);
+    }
+  };
+
+  // Collapsed markers have unique ids, in order to be able to order
+  // them, which is needed for uniquely determining an outer marker
+  // when they overlap (they may nest, but not partially overlap).
+  var nextMarkerId = 0;
+
+  // Create a marker, wire it up to the right lines, and
+  function markText(doc, from, to, options, type) {
+    // Shared markers (across linked documents) are handled separately
+    // (markTextShared will call out to this again, once per
+    // document).
+    if (options && options.shared) return markTextShared(doc, from, to, options, type);
+    // Ensure we are in an operation.
+    if (doc.cm && !doc.cm.curOp) return operation(doc.cm, markText)(doc, from, to, options, type);
+
+    var marker = new TextMarker(doc, type), diff = cmp(from, to);
+    if (options) copyObj(options, marker, false);
+    // Don't connect empty markers unless clearWhenEmpty is false
+    if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)
+      return marker;
+    if (marker.replacedWith) {
+      // Showing up as a widget implies collapsed (widget replaces text)
+      marker.collapsed = true;
+      marker.widgetNode = elt("span", [marker.replacedWith], "CodeMirror-widget");
+      if (!options.handleMouseEvents) marker.widgetNode.setAttribute("cm-ignore-events", "true");
+      if (options.insertLeft) marker.widgetNode.insertLeft = true;
+    }
+    if (marker.collapsed) {
+      if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||
+          from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))
+        throw new Error("Inserting collapsed marker partially overlapping an existing one");
+      sawCollapsedSpans = true;
+    }
+
+    if (marker.addToHistory)
+      addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN);
+
+    var curLine = from.line, cm = doc.cm, updateMaxLine;
+    doc.iter(curLine, to.line + 1, function(line) {
+      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)
+        updateMaxLine = true;
+      if (marker.collapsed && curLine != from.line) updateLineHeight(line, 0);
+      addMarkedSpan(line, new MarkedSpan(marker,
+                                         curLine == from.line ? from.ch : null,
+                                         curLine == to.line ? to.ch : null));
+      ++curLine;
+    });
+    // lineIsHidden depends on the presence of the spans, so needs a second pass
+    if (marker.collapsed) doc.iter(from.line, to.line + 1, function(line) {
+      if (lineIsHidden(doc, line)) updateLineHeight(line, 0);
+    });
+
+    if (marker.clearOnEnter) on(marker, "beforeCursorEnter", function() { marker.clear(); });
+
+    if (marker.readOnly) {
+      sawReadOnlySpans = true;
+      if (doc.history.done.length || doc.history.undone.length)
+        doc.clearHistory();
+    }
+    if (marker.collapsed) {
+      marker.id = ++nextMarkerId;
+      marker.atomic = true;
+    }
+    if (cm) {
+      // Sync editor state
+      if (updateMaxLine) cm.curOp.updateMaxLine = true;
+      if (marker.collapsed)
+        regChange(cm, from.line, to.line + 1);
+      else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)
+        for (var i = from.line; i <= to.line; i++) regLineChange(cm, i, "text");
+      if (marker.atomic) reCheckSelection(cm.doc);
+      signalLater(cm, "markerAdded", cm, marker);
+    }
+    return marker;
+  }
+
+  // SHARED TEXTMARKERS
+
+  // A shared marker spans multiple linked documents. It is
+  // implemented as a meta-marker-object controlling multiple normal
+  // markers.
+  var SharedTextMarker = CodeMirror.SharedTextMarker = function(markers, primary) {
+    this.markers = markers;
+    this.primary = primary;
+    for (var i = 0; i < markers.length; ++i)
+      markers[i].parent = this;
+  };
+  eventMixin(SharedTextMarker);
+
+  SharedTextMarker.prototype.clear = function() {
+    if (this.explicitlyCleared) return;
+    this.explicitlyCleared = true;
+    for (var i = 0; i < this.markers.length; ++i)
+      this.markers[i].clear();
+    signalLater(this, "clear");
+  };
+  SharedTextMarker.prototype.find = function(side, lineObj) {
+    return this.primary.find(side, lineObj);
+  };
+
+  function markTextShared(doc, from, to, options, type) {
+    options = copyObj(options);
+    options.shared = false;
+    var markers = [markText(doc, from, to, options, type)], primary = markers[0];
+    var widget = options.widgetNode;
+    linkedDocs(doc, function(doc) {
+      if (widget) options.widgetNode = widget.cloneNode(true);
+      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));
+      for (var i = 0; i < doc.linked.length; ++i)
+        if (doc.linked[i].isParent) return;
+      primary = lst(markers);
+    });
+    return new SharedTextMarker(markers, primary);
+  }
+
+  function findSharedMarkers(doc) {
+    return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())),
+                         function(m) { return m.parent; });
+  }
+
+  function copySharedMarkers(doc, markers) {
+    for (var i = 0; i < markers.length; i++) {
+      var marker = markers[i], pos = marker.find();
+      var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);
+      if (cmp(mFrom, mTo)) {
+        var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);
+        marker.markers.push(subMark);
+        subMark.parent = marker;
+      }
+    }
+  }
+
+  function detachSharedMarkers(markers) {
+    for (var i = 0; i < markers.length; i++) {
+      var marker = markers[i], linked = [marker.primary.doc];;
+      linkedDocs(marker.primary.doc, function(d) { linked.push(d); });
+      for (var j = 0; j < marker.markers.length; j++) {
+        var subMarker = marker.markers[j];
+        if (indexOf(linked, subMarker.doc) == -1) {
+          subMarker.parent = null;
+          marker.markers.splice(j--, 1);
+        }
+      }
+    }
+  }
+
+  // TEXTMARKER SPANS
+
+  function MarkedSpan(marker, from, to) {
+    this.marker = marker;
+    this.from = from; this.to = to;
+  }
+
+  // Search an array of spans for a span matching the given marker.
+  function getMarkedSpanFor(spans, marker) {
+    if (spans) for (var i = 0; i < spans.length; ++i) {
+      var span = spans[i];
+      if (span.marker == marker) return span;
+    }
+  }
+  // Remove a span from an array, returning undefined if no spans are
+  // left (we don't store arrays for lines without spans).
+  function removeMarkedSpan(spans, span) {
+    for (var r, i = 0; i < spans.length; ++i)
+      if (spans[i] != span) (r || (r = [])).push(spans[i]);
+    return r;
+  }
+  // Add a span to a line.
+  function addMarkedSpan(line, span) {
+    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];
+    span.marker.attachLine(line);
+  }
+
+  // Used for the algorithm that adjusts markers for a change in the
+  // document. These functions cut an array of spans at a given
+  // character position, returning an array of remaining chunks (or
+  // undefined if nothing remains).
+  function markedSpansBefore(old, startCh, isInsert) {
+    if (old) for (var i = 0, nw; i < old.length; ++i) {
+      var span = old[i], marker = span.marker;
+      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
+      if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) {
+        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh);
+        (nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));
+      }
+    }
+    return nw;
+  }
+  function markedSpansAfter(old, endCh, isInsert) {
+    if (old) for (var i = 0, nw; i < old.length; ++i) {
+      var span = old[i], marker = span.marker;
+      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
+      if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) {
+        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh);
+        (nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,
+                                              span.to == null ? null : span.to - endCh));
+      }
+    }
+    return nw;
+  }
+
+  // Given a change object, compute the new set of marker spans that
+  // cover the line in which the change took place. Removes spans
+  // entirely within the change, reconnects spans belonging to the
+  // same marker that appear on both sides of the change, and cuts off
+  // spans partially within the change. Returns an array of span
+  // arrays with one element for each line in (after) the change.
+  function stretchSpansOverChange(doc, change) {
+    if (change.full) return null;
+    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
+    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
+    if (!oldFirst && !oldLast) return null;
+
+    var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;
+    // Get the spans that 'stick out' on both sides
+    var first = markedSpansBefore(oldFirst, startCh, isInsert);
+    var last = markedSpansAfter(oldLast, endCh, isInsert);
+
+    // Next, merge those two ends
+    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);
+    if (first) {
+      // Fix up .to properties of first
+      for (var i = 0; i < first.length; ++i) {
+        var span = first[i];
+        if (span.to == null) {
+          var found = getMarkedSpanFor(last, span.marker);
+          if (!found) span.to = startCh;
+          else if (sameLine) span.to = found.to == null ? null : found.to + offset;
+        }
+      }
+    }
+    if (last) {
+      // Fix up .from in last (or move them into first in case of sameLine)
+      for (var i = 0; i < last.length; ++i) {
+        var span = last[i];
+        if (span.to != null) span.to += offset;
+        if (span.from == null) {
+          var found = getMarkedSpanFor(first, span.marker);
+          if (!found) {
+            span.from = offset;
+            if (sameLine) (first || (first = [])).push(span);
+          }
+        } else {
+          span.from += offset;
+          if (sameLine) (first || (first = [])).push(span);
+        }
+      }
+    }
+    // Make sure we didn't create any zero-length spans
+    if (first) first = clearEmptySpans(first);
+    if (last && last != first) last = clearEmptySpans(last);
+
+    var newMarkers = [first];
+    if (!sameLine) {
+      // Fill gap with whole-line-spans
+      var gap = change.text.length - 2, gapMarkers;
+      if (gap > 0 && first)
+        for (var i = 0; i < first.length; ++i)
+          if (first[i].to == null)
+            (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i].marker, null, null));
+      for (var i = 0; i < gap; ++i)
+        newMarkers.push(gapMarkers);
+      newMarkers.push(last);
+    }
+    return newMarkers;
+  }
+
+  // Remove spans that are empty and don't have a clearWhenEmpty
+  // option of false.
+  function clearEmptySpans(spans) {
+    for (var i = 0; i < spans.length; ++i) {
+      var span = spans[i];
+      if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)
+        spans.splice(i--, 1);
+    }
+    if (!spans.length) return null;
+    return spans;
+  }
+
+  // Used for un/re-doing changes from the history. Combines the
+  // result of computing the existing spans with the set of spans that
+  // existed in the history (so that deleting around a span and then
+  // undoing brings back the span).
+  function mergeOldSpans(doc, change) {
+    var old = getOldSpans(doc, change);
+    var stretched = stretchSpansOverChange(doc, change);
+    if (!old) return stretched;
+    if (!stretched) return old;
+
+    for (var i = 0; i < old.length; ++i) {
+      var oldCur = old[i], stretchCur = stretched[i];
+      if (oldCur && stretchCur) {
+        spans: for (var j = 0; j < stretchCur.length; ++j) {
+          var span = stretchCur[j];
+          for (var k = 0; k < oldCur.length; ++k)
+            if (oldCur[k].marker == span.marker) continue spans;
+          oldCur.push(span);
+        }
+      } else if (stretchCur) {
+        old[i] = stretchCur;
+      }
+    }
+    return old;
+  }
+
+  // Used to 'clip' out readOnly ranges when making a change.
+  function removeReadOnlyRanges(doc, from, to) {
+    var markers = null;
+    doc.iter(from.line, to.line + 1, function(line) {
+      if (line.markedSpans) for (var i = 0; i < line.markedSpans.length; ++i) {
+        var mark = line.markedSpans[i].marker;
+        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))
+          (markers || (markers = [])).push(mark);
+      }
+    });
+    if (!markers) return null;
+    var parts = [{from: from, to: to}];
+    for (var i = 0; i < markers.length; ++i) {
+      var mk = markers[i], m = mk.find(0);
+      for (var j = 0; j < parts.length; ++j) {
+        var p = parts[j];
+        if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) continue;
+        var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);
+        if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)
+          newParts.push({from: p.from, to: m.from});
+        if (dto > 0 || !mk.inclusiveRight && !dto)
+          newParts.push({from: m.to, to: p.to});
+        parts.splice.apply(parts, newParts);
+        j += newParts.length - 1;
+      }
+    }
+    return parts;
+  }
+
+  // Connect or disconnect spans from a line.
+  function detachMarkedSpans(line) {
+    var spans = line.markedSpans;
+    if (!spans) return;
+    for (var i = 0; i < spans.length; ++i)
+      spans[i].marker.detachLine(line);
+    line.markedSpans = null;
+  }
+  function attachMarkedSpans(line, spans) {
+    if (!spans) return;
+    for (var i = 0; i < spans.length; ++i)
+      spans[i].marker.attachLine(line);
+    line.markedSpans = spans;
+  }
+
+  // Helpers used when computing which overlapping collapsed span
+  // counts as the larger one.
+  function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0; }
+  function extraRight(marker) { return marker.inclusiveRight ? 1 : 0; }
+
+  // Returns a number indicating which of two overlapping collapsed
+  // spans is larger (and thus includes the other). Falls back to
+  // comparing ids when the spans cover exactly the same range.
+  function compareCollapsedMarkers(a, b) {
+    var lenDiff = a.lines.length - b.lines.length;
+    if (lenDiff != 0) return lenDiff;
+    var aPos = a.find(), bPos = b.find();
+    var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);
+    if (fromCmp) return -fromCmp;
+    var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);
+    if (toCmp) return toCmp;
+    return b.id - a.id;
+  }
+
+  // Find out whether a line ends or starts in a collapsed span. If
+  // so, return the marker for that span.
+  function collapsedSpanAtSide(line, start) {
+    var sps = sawCollapsedSpans && line.markedSpans, found;
+    if (sps) for (var sp, i = 0; i < sps.length; ++i) {
+      sp = sps[i];
+      if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&
+          (!found || compareCollapsedMarkers(found, sp.marker) < 0))
+        found = sp.marker;
+    }
+    return found;
+  }
+  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true); }
+  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false); }
+
+  // Test whether there exists a collapsed span that partially
+  // overlaps (covers the start or end, but not both) of a new span.
+  // Such overlap is not allowed.
+  function conflictingCollapsedRange(doc, lineNo, from, to, marker) {
+    var line = getLine(doc, lineNo);
+    var sps = sawCollapsedSpans && line.markedSpans;
+    if (sps) for (var i = 0; i < sps.length; ++i) {
+      var sp = sps[i];
+      if (!sp.marker.collapsed) continue;
+      var found = sp.marker.find(0);
+      var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
+      var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
+      if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;
+      if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||
+          fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))
+        return true;
+    }
+  }
+
+  // A visual line is a line as drawn on the screen. Folding, for
+  // example, can cause multiple logical lines to appear on the same
+  // visual line. This finds the start of the visual line that the
+  // given line is part of (usually that is the line itself).
+  function visualLine(line) {
+    var merged;
+    while (merged = collapsedSpanAtStart(line))
+      line = merged.find(-1, true).line;
+    return line;
+  }
+
+  // Returns an array of logical lines that continue the visual line
+  // started by the argument, or undefined if there are no such lines.
+  function visualLineContinued(line) {
+    var merged, lines;
+    while (merged = collapsedSpanAtEnd(line)) {
+      line = merged.find(1, true).line;
+      (lines || (lines = [])).push(line);
+    }
+    return lines;
+  }
+
+  // Get the line number of the start of the visual line that the
+  // given line number is part of.
+  function visualLineNo(doc, lineN) {
+    var line = getLine(doc, lineN), vis = visualLine(line);
+    if (line == vis) return lineN;
+    return lineNo(vis);
+  }
+  // Get the line number of the start of the next visual line after
+  // the given line.
+  function visualLineEndNo(doc, lineN) {
+    if (lineN > doc.lastLine()) return lineN;
+    var line = getLine(doc, lineN), merged;
+    if (!lineIsHidden(doc, line)) return lineN;
+    while (merged = collapsedSpanAtEnd(line))
+      line = merged.find(1, true).line;
+    return lineNo(line) + 1;
+  }
+
+  // Compute whether a line is hidden. Lines count as hidden when they
+  // are part of a visual line that starts with another line, or when
+  // they are entirely covered by collapsed, non-widget span.
+  function lineIsHidden(doc, line) {
+    var sps = sawCollapsedSpans && line.markedSpans;
+    if (sps) for (var sp, i = 0; i < sps.length; ++i) {
+      sp = sps[i];
+      if (!sp.marker.collapsed) continue;
+      if (sp.from == null) return true;
+      if (sp.marker.widgetNode) continue;
+      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))
+        return true;
+    }
+  }
+  function lineIsHiddenInner(doc, line, span) {
+    if (span.to == null) {
+      var end = span.marker.find(1, true);
+      return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker));
+    }
+    if (span.marker.inclusiveRight && span.to == line.text.length)
+      return true;
+    for (var sp, i = 0; i < line.markedSpans.length; ++i) {
+      sp = line.markedSpans[i];
+      if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&
+          (sp.to == null || sp.to != span.from) &&
+          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
+          lineIsHiddenInner(doc, line, sp)) return true;
+    }
+  }
+
+  // LINE WIDGETS
+
+  // Line widgets are block elements displayed above or below a line.
+
+  var LineWidget = CodeMirror.LineWidget = function(doc, node, options) {
+    if (options) for (var opt in options) if (options.hasOwnProperty(opt))
+      this[opt] = options[opt];
+    this.doc = doc;
+    this.node = node;
+  };
+  eventMixin(LineWidget);
+
+  function adjustScrollWhenAboveVisible(cm, line, diff) {
+    if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
+      addToScrollPos(cm, null, diff);
+  }
+
+  LineWidget.prototype.clear = function() {
+    var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);
+    if (no == null || !ws) return;
+    for (var i = 0; i < ws.length; ++i) if (ws[i] == this) ws.splice(i--, 1);
+    if (!ws.length) line.widgets = null;
+    var height = widgetHeight(this);
+    updateLineHeight(line, Math.max(0, line.height - height));
+    if (cm) runInOp(cm, function() {
+      adjustScrollWhenAboveVisible(cm, line, -height);
+      regLineChange(cm, no, "widget");
+    });
+  };
+  LineWidget.prototype.changed = function() {
+    var oldH = this.height, cm = this.doc.cm, line = this.line;
+    this.height = null;
+    var diff = widgetHeight(this) - oldH;
+    if (!diff) return;
+    updateLineHeight(line, line.height + diff);
+    if (cm) runInOp(cm, function() {
+      cm.curOp.forceUpdate = true;
+      adjustScrollWhenAboveVisible(cm, line, diff);
+    });
+  };
+
+  function widgetHeight(widget) {
+    if (widget.height != null) return widget.height;
+    var cm = widget.doc.cm;
+    if (!cm) return 0;
+    if (!contains(document.body, widget.node)) {
+      var parentStyle = "position: relative;";
+      if (widget.coverGutter)
+        parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;";
+      if (widget.noHScroll)
+        parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;";
+      removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle));
+    }
+    return widget.height = widget.node.parentNode.offsetHeight;
+  }
+
+  function addLineWidget(doc, handle, node, options) {
+    var widget = new LineWidget(doc, node, options);
+    var cm = doc.cm;
+    if (cm && widget.noHScroll) cm.display.alignWidgets = true;
+    changeLine(doc, handle, "widget", function(line) {
+      var widgets = line.widgets || (line.widgets = []);
+      if (widget.insertAt == null) widgets.push(widget);
+      else widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget);
+      widget.line = line;
+      if (cm && !lineIsHidden(doc, line)) {
+        var aboveVisible = heightAtLine(line) < doc.scrollTop;
+        updateLineHeight(line, line.height + widgetHeight(widget));
+        if (aboveVisible) addToScrollPos(cm, null, widget.height);
+        cm.curOp.forceUpdate = true;
+      }
+      return true;
+    });
+    return widget;
+  }
+
+  // LINE DATA STRUCTURE
+
+  // Line objects. These hold state related to a line, including
+  // highlighting info (the styles array).
+  var Line = CodeMirror.Line = function(text, markedSpans, estimateHeight) {
+    this.text = text;
+    attachMarkedSpans(this, markedSpans);
+    this.height = estimateHeight ? estimateHeight(this) : 1;
+  };
+  eventMixin(Line);
+  Line.prototype.lineNo = function() { return lineNo(this); };
+
+  // Change the content (text, markers) of a line. Automatically
+  // invalidates cached information and tries to re-estimate the
+  // line's height.
+  function updateLine(line, text, markedSpans, estimateHeight) {
+    line.text = text;
+    if (line.stateAfter) line.stateAfter = null;
+    if (line.styles) line.styles = null;
+    if (line.order != null) line.order = null;
+    detachMarkedSpans(line);
+    attachMarkedSpans(line, markedSpans);
+    var estHeight = estimateHeight ? estimateHeight(line) : 1;
+    if (estHeight != line.height) updateLineHeight(line, estHeight);
+  }
+
+  // Detach a line from the document tree and its markers.
+  function cleanUpLine(line) {
+    line.parent = null;
+    detachMarkedSpans(line);
+  }
+
+  function extractLineClasses(type, output) {
+    if (type) for (;;) {
+      var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/);
+      if (!lineClass) break;
+      type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);
+      var prop = lineClass[1] ? "bgClass" : "textClass";
+      if (output[prop] == null)
+        output[prop] = lineClass[2];
+      else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop]))
+        output[prop] += " " + lineClass[2];
+    }
+    return type;
+  }
+
+  function callBlankLine(mode, state) {
+    if (mode.blankLine) return mode.blankLine(state);
+    if (!mode.innerMode) return;
+    var inner = CodeMirror.innerMode(mode, state);
+    if (inner.mode.blankLine) return inner.mode.blankLine(inner.state);
+  }
+
+  function readToken(mode, stream, state, inner) {
+    for (var i = 0; i < 10; i++) {
+      if (inner) inner[0] = CodeMirror.innerMode(mode, state).mode;
+      var style = mode.token(stream, state);
+      if (stream.pos > stream.start) return style;
+    }
+    throw new Error("Mode " + mode.name + " failed to advance stream.");
+  }
+
+  // Utility for getTokenAt and getLineTokens
+  function takeToken(cm, pos, precise, asArray) {
+    function getObj(copy) {
+      return {start: stream.start, end: stream.pos,
+              string: stream.current(),
+              type: style || null,
+              state: copy ? copyState(doc.mode, state) : state};
+    }
+
+    var doc = cm.doc, mode = doc.mode, style;
+    pos = clipPos(doc, pos);
+    var line = getLine(doc, pos.line), state = getStateBefore(cm, pos.line, precise);
+    var stream = new StringStream(line.text, cm.options.tabSize), tokens;
+    if (asArray) tokens = [];
+    while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
+      stream.start = stream.pos;
+      style = readToken(mode, stream, state);
+      if (asArray) tokens.push(getObj(true));
+    }
+    return asArray ? tokens : getObj();
+  }
+
+  // Run the given mode's parser over a line, calling f for each token.
+  function runMode(cm, text, mode, state, f, lineClasses, forceToEnd) {
+    var flattenSpans = mode.flattenSpans;
+    if (flattenSpans == null) flattenSpans = cm.options.flattenSpans;
+    var curStart = 0, curStyle = null;
+    var stream = new StringStream(text, cm.options.tabSize), style;
+    var inner = cm.options.addModeClass && [null];
+    if (text == "") extractLineClasses(callBlankLine(mode, state), lineClasses);
+    while (!stream.eol()) {
+      if (stream.pos > cm.options.maxHighlightLength) {
+        flattenSpans = false;
+        if (forceToEnd) processLine(cm, text, state, stream.pos);
+        stream.pos = text.length;
+        style = null;
+      } else {
+        style = extractLineClasses(readToken(mode, stream, state, inner), lineClasses);
+      }
+      if (inner) {
+        var mName = inner[0].name;
+        if (mName) style = "m-" + (style ? mName + " " + style : mName);
+      }
+      if (!flattenSpans || curStyle != style) {
+        while (curStart < stream.start) {
+          curStart = Math.min(stream.start, curStart + 50000);
+          f(curStart, curStyle);
+        }
+        curStyle = style;
+      }
+      stream.start = stream.pos;
+    }
+    while (curStart < stream.pos) {
+      // Webkit seems to refuse to render text nodes longer than 57444 characters
+      var pos = Math.min(stream.pos, curStart + 50000);
+      f(pos, curStyle);
+      curStart = pos;
+    }
+  }
+
+  // Compute a style array (an array starting with a mode generation
+  // -- for invalidation -- followed by pairs of end positions and
+  // style strings), which is used to highlight the tokens on the
+  // line.
+  function highlightLine(cm, line, state, forceToEnd) {
+    // A styles array always starts with a number identifying the
+    // mode/overlays that it is based on (for easy invalidation).
+    var st = [cm.state.modeGen], lineClasses = {};
+    // Compute the base array of styles
+    runMode(cm, line.text, cm.doc.mode, state, function(end, style) {
+      st.push(end, style);
+    }, lineClasses, forceToEnd);
+
+    // Run overlays, adjust style array.
+    for (var o = 0; o < cm.state.overlays.length; ++o) {
+      var overlay = cm.state.overlays[o], i = 1, at = 0;
+      runMode(cm, line.text, overlay.mode, true, function(end, style) {
+        var start = i;
+        // Ensure there's a token end at the current position, and that i points at it
+        while (at < end) {
+          var i_end = st[i];
+          if (i_end > end)
+            st.splice(i, 1, end, st[i+1], i_end);
+          i += 2;
+          at = Math.min(end, i_end);
+        }
+        if (!style) return;
+        if (overlay.opaque) {
+          st.splice(start, i - start, end, "cm-overlay " + style);
+          i = start + 2;
+        } else {
+          for (; start < i; start += 2) {
+            var cur = st[start+1];
+            st[start+1] = (cur ? cur + " " : "") + "cm-overlay " + style;
+          }
+        }
+      }, lineClasses);
+    }
+
+    return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null};
+  }
+
+  function getLineStyles(cm, line, updateFrontier) {
+    if (!line.styles || line.styles[0] != cm.state.modeGen) {
+      var state = getStateBefore(cm, lineNo(line));
+      var result = highlightLine(cm, line, line.text.length > cm.options.maxHighlightLength ? copyState(cm.doc.mode, state) : state);
+      line.stateAfter = state;
+      line.styles = result.styles;
+      if (result.classes) line.styleClasses = result.classes;
+      else if (line.styleClasses) line.styleClasses = null;
+      if (updateFrontier === cm.doc.frontier) cm.doc.frontier++;
+    }
+    return line.styles;
+  }
+
+  // Lightweight form of highlight -- proceed over this line and
+  // update state, but don't save a style array. Used for lines that
+  // aren't currently visible.
+  function processLine(cm, text, state, startAt) {
+    var mode = cm.doc.mode;
+    var stream = new StringStream(text, cm.options.tabSize);
+    stream.start = stream.pos = startAt || 0;
+    if (text == "") callBlankLine(mode, state);
+    while (!stream.eol()) {
+      readToken(mode, stream, state);
+      stream.start = stream.pos;
+    }
+  }
+
+  // Convert a style as returned by a mode (either null, or a string
+  // containing one or more styles) to a CSS style. This is cached,
+  // and also looks for line-wide styles.
+  var styleToClassCache = {}, styleToClassCacheWithMode = {};
+  function interpretTokenStyle(style, options) {
+    if (!style || /^\s*$/.test(style)) return null;
+    var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;
+    return cache[style] ||
+      (cache[style] = style.replace(/\S+/g, "cm-$&"));
+  }
+
+  // Render the DOM representation of the text of a line. Also builds
+  // up a 'line map', which points at the DOM nodes that represent
+  // specific stretches of text, and is used by the measuring code.
+  // The returned object contains the DOM node, this map, and
+  // information about line-wide styles that were set by the mode.
+  function buildLineContent(cm, lineView) {
+    // The padding-right forces the element to have a 'border', which
+    // is needed on Webkit to be able to get line-level bounding
+    // rectangles for it (in measureChar).
+    var content = elt("span", null, null, webkit ? "padding-right: .1px" : null);
+    var builder = {pre: elt("pre", [content], "CodeMirror-line"), content: content,
+                   col: 0, pos: 0, cm: cm,
+                   trailingSpace: false,
+                   splitSpaces: (ie || webkit) && cm.getOption("lineWrapping")};
+    lineView.measure = {};
+
+    // Iterate over the logical lines that make up this visual line.
+    for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {
+      var line = i ? lineView.rest[i - 1] : lineView.line, order;
+      builder.pos = 0;
+      builder.addToken = buildToken;
+      // Optionally wire in some hacks into the token-rendering
+      // algorithm, to deal with browser quirks.
+      if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line)))
+        builder.addToken = buildTokenBadBidi(builder.addToken, order);
+      builder.map = [];
+      var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);
+      insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));
+      if (line.styleClasses) {
+        if (line.styleClasses.bgClass)
+          builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || "");
+        if (line.styleClasses.textClass)
+          builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || "");
+      }
+
+      // Ensure at least a single node is present, for measuring.
+      if (builder.map.length == 0)
+        builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure)));
+
+      // Store the map and a cache object for the current logical line
+      if (i == 0) {
+        lineView.measure.map = builder.map;
+        lineView.measure.cache = {};
+      } else {
+        (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map);
+        (lineView.measure.caches || (lineView.measure.caches = [])).push({});
+      }
+    }
+
+    // See issue #2901
+    if (webkit) {
+      var last = builder.content.lastChild
+      if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab")))
+        builder.content.className = "cm-tab-wrap-hack";
+    }
+
+    signal(cm, "renderLine", cm, lineView.line, builder.pre);
+    if (builder.pre.className)
+      builder.textClass = joinClasses(builder.pre.className, builder.textClass || "");
+
+    return builder;
+  }
+
+  function defaultSpecialCharPlaceholder(ch) {
+    var token = elt("span", "\u2022", "cm-invalidchar");
+    token.title = "\\u" + ch.charCodeAt(0).toString(16);
+    token.setAttribute("aria-label", token.title);
+    return token;
+  }
+
+  // Build up the DOM representation for a single token, and add it to
+  // the line map. Takes care to render special characters separately.
+  function buildToken(builder, text, style, startStyle, endStyle, title, css) {
+    if (!text) return;
+    var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text
+    var special = builder.cm.state.specialChars, mustWrap = false;
+    if (!special.test(text)) {
+      builder.col += text.length;
+      var content = document.createTextNode(displayText);
+      builder.map.push(builder.pos, builder.pos + text.length, content);
+      if (ie && ie_version < 9) mustWrap = true;
+      builder.pos += text.length;
+    } else {
+      var content = document.createDocumentFragment(), pos = 0;
+      while (true) {
+        special.lastIndex = pos;
+        var m = special.exec(text);
+        var skipped = m ? m.index - pos : text.length - pos;
+        if (skipped) {
+          var txt = document.createTextNode(displayText.slice(pos, pos + skipped));
+          if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
+          else content.appendChild(txt);
+          builder.map.push(builder.pos, builder.pos + skipped, txt);
+          builder.col += skipped;
+          builder.pos += skipped;
+        }
+        if (!m) break;
+        pos += skipped + 1;
+        if (m[0] == "\t") {
+          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;
+          var txt = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"));
+          txt.setAttribute("role", "presentation");
+          txt.setAttribute("cm-text", "\t");
+          builder.col += tabWidth;
+        } else if (m[0] == "\r" || m[0] == "\n") {
+          var txt = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar"));
+          txt.setAttribute("cm-text", m[0]);
+          builder.col += 1;
+        } else {
+          var txt = builder.cm.options.specialCharPlaceholder(m[0]);
+          txt.setAttribute("cm-text", m[0]);
+          if (ie && ie_version < 9) content.appendChild(elt("span", [txt]));
+          else content.appendChild(txt);
+          builder.col += 1;
+        }
+        builder.map.push(builder.pos, builder.pos + 1, txt);
+        builder.pos++;
+      }
+    }
+    builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32
+    if (style || startStyle || endStyle || mustWrap || css) {
+      var fullStyle = style || "";
+      if (startStyle) fullStyle += startStyle;
+      if (endStyle) fullStyle += endStyle;
+      var token = elt("span", [content], fullStyle, css);
+      if (title) token.title = title;
+      return builder.content.appendChild(token);
+    }
+    builder.content.appendChild(content);
+  }
+
+  function splitSpaces(text, trailingBefore) {
+    if (text.length > 1 && !/  /.test(text)) return text
+    var spaceBefore = trailingBefore, result = ""
+    for (var i = 0; i < text.length; i++) {
+      var ch = text.charAt(i)
+      if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))
+        ch = "\u00a0"
+      result += ch
+      spaceBefore = ch == " "
+    }
+    return result
+  }
+
+  // Work around nonsense dimensions being reported for stretches of
+  // right-to-left text.
+  function buildTokenBadBidi(inner, order) {
+    return function(builder, text, style, startStyle, endStyle, title, css) {
+      style = style ? style + " cm-force-border" : "cm-force-border";
+      var start = builder.pos, end = start + text.length;
+      for (;;) {
+        // Find the part that overlaps with the start of this text
+        for (var i = 0; i < order.length; i++) {
+          var part = order[i];
+          if (part.to > start && part.from <= start) break;
+        }
+        if (part.to >= end) return inner(builder, text, style, startStyle, endStyle, title, css);
+        inner(builder, text.slice(0, part.to - start), style, startStyle, null, title, css);
+        startStyle = null;
+        text = text.slice(part.to - start);
+        start = part.to;
+      }
+    };
+  }
+
+  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
+    var widget = !ignoreWidget && marker.widgetNode;
+    if (widget) builder.map.push(builder.pos, builder.pos + size, widget);
+    if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {
+      if (!widget)
+        widget = builder.content.appendChild(document.createElement("span"));
+      widget.setAttribute("cm-marker", marker.id);
+    }
+    if (widget) {
+      builder.cm.display.input.setUneditable(widget);
+      builder.content.appendChild(widget);
+    }
+    builder.pos += size;
+    builder.trailingSpace = false
+  }
+
+  // Outputs a number of spans to make up a line, taking highlighting
+  // and marked text into account.
+  function insertLineContent(line, builder, styles) {
+    var spans = line.markedSpans, allText = line.text, at = 0;
+    if (!spans) {
+      for (var i = 1; i < styles.length; i+=2)
+        builder.addToken(builder, allText.slice(at, at = styles[i]), interpretTokenStyle(styles[i+1], builder.cm.options));
+      return;
+    }
+
+    var len = allText.length, pos = 0, i = 1, text = "", style, css;
+    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;
+    for (;;) {
+      if (nextChange == pos) { // Update current marker set
+        spanStyle = spanEndStyle = spanStartStyle = title = css = "";
+        collapsed = null; nextChange = Infinity;
+        var foundBookmarks = [], endStyles
+        for (var j = 0; j < spans.length; ++j) {
+          var sp = spans[j], m = sp.marker;
+          if (m.type == "bookmark" && sp.from == pos && m.widgetNode) {
+            foundBookmarks.push(m);
+          } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {
+            if (sp.to != null && sp.to != pos && nextChange > sp.to) {
+              nextChange = sp.to;
+              spanEndStyle = "";
+            }
+            if (m.className) spanStyle += " " + m.className;
+            if (m.css) css = (css ? css + ";" : "") + m.css;
+            if (m.startStyle && sp.from == pos) spanStartStyle += " " + m.startStyle;
+            if (m.endStyle && sp.to == nextChange) (endStyles || (endStyles = [])).push(m.endStyle, sp.to)
+            if (m.title && !title) title = m.title;
+            if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))
+              collapsed = sp;
+          } else if (sp.from > pos && nextChange > sp.from) {
+            nextChange = sp.from;
+          }
+        }
+        if (endStyles) for (var j = 0; j < endStyles.length; j += 2)
+          if (endStyles[j + 1] == nextChange) spanEndStyle += " " + endStyles[j]
+
+        if (!collapsed || collapsed.from == pos) for (var j = 0; j < foundBookmarks.length; ++j)
+          buildCollapsedSpan(builder, 0, foundBookmarks[j]);
+        if (collapsed && (collapsed.from || 0) == pos) {
+          buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,
+                             collapsed.marker, collapsed.from == null);
+          if (collapsed.to == null) return;
+          if (collapsed.to == pos) collapsed = false;
+        }
+      }
+      if (pos >= len) break;
+
+      var upto = Math.min(len, nextChange);
+      while (true) {
+        if (text) {
+          var end = pos + text.length;
+          if (!collapsed) {
+            var tokenText = end > upto ? text.slice(0, upto - pos) : text;
+            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,
+                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title, css);
+          }
+          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
+          pos = end;
+          spanStartStyle = "";
+        }
+        text = allText.slice(at, at = styles[i++]);
+        style = interpretTokenStyle(styles[i++], builder.cm.options);
+      }
+    }
+  }
+
+  // DOCUMENT DATA STRUCTURE
+
+  // By default, updates that start and end at the beginning of a line
+  // are treated specially, in order to make the association of line
+  // widgets and marker elements with the text behave more intuitive.
+  function isWholeLineUpdate(doc, change) {
+    return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" &&
+      (!doc.cm || doc.cm.options.wholeLineUpdateBefore);
+  }
+
+  // Perform a change on the document data structure.
+  function updateDoc(doc, change, markedSpans, estimateHeight) {
+    function spansFor(n) {return markedSpans ? markedSpans[n] : null;}
+    function update(line, text, spans) {
+      updateLine(line, text, spans, estimateHeight);
+      signalLater(line, "change", line, change);
+    }
+    function linesFor(start, end) {
+      for (var i = start, result = []; i < end; ++i)
+        result.push(new Line(text[i], spansFor(i), estimateHeight));
+      return result;
+    }
+
+    var from = change.from, to = change.to, text = change.text;
+    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);
+    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;
+
+    // Adjust the line structure
+    if (change.full) {
+      doc.insert(0, linesFor(0, text.length));
+      doc.remove(text.length, doc.size - text.length);
+    } else if (isWholeLineUpdate(doc, change)) {
+      // This is a whole-line replace. Treated specially to make
+      // sure line objects move the way they are supposed to.
+      var added = linesFor(0, text.length - 1);
+      update(lastLine, lastLine.text, lastSpans);
+      if (nlines) doc.remove(from.line, nlines);
+      if (added.length) doc.insert(from.line, added);
+    } else if (firstLine == lastLine) {
+      if (text.length == 1) {
+        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);
+      } else {
+        var added = linesFor(1, text.length - 1);
+        added.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight));
+        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
+        doc.insert(from.line + 1, added);
+      }
+    } else if (text.length == 1) {
+      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));
+      doc.remove(from.line + 1, nlines);
+    } else {
+      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
+      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);
+      var added = linesFor(1, text.length - 1);
+      if (nlines > 1) doc.remove(from.line + 1, nlines - 1);
+      doc.insert(from.line + 1, added);
+    }
+
+    signalLater(doc, "change", doc, change);
+  }
+
+  // The document is represented as a BTree consisting of leaves, with
+  // chunk of lines in them, and branches, with up to ten leaves or
+  // other branch nodes below them. The top node is always a branch
+  // node, and is the document object itself (meaning it has
+  // additional methods and properties).
+  //
+  // All nodes have parent links. The tree is used both to go from
+  // line numbers to line objects, and to go from objects to numbers.
+  // It also indexes by height, and is used to convert between height
+  // and line object, and to find the total height of the document.
+  //
+  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
+
+  function LeafChunk(lines) {
+    this.lines = lines;
+    this.parent = null;
+    for (var i = 0, height = 0; i < lines.length; ++i) {
+      lines[i].parent = this;
+      height += lines[i].height;
+    }
+    this.height = height;
+  }
+
+  LeafChunk.prototype = {
+    chunkSize: function() { return this.lines.length; },
+    // Remove the n lines at offset 'at'.
+    removeInner: function(at, n) {
+      for (var i = at, e = at + n; i < e; ++i) {
+        var line = this.lines[i];
+        this.height -= line.height;
+        cleanUpLine(line);
+        signalLater(line, "delete");
+      }
+      this.lines.splice(at, n);
+    },
+    // Helper used to collapse a small branch into a single leaf.
+    collapse: function(lines) {
+      lines.push.apply(lines, this.lines);
+    },
+    // Insert the given array of lines at offset 'at', count them as
+    // having the given height.
+    insertInner: function(at, lines, height) {
+      this.height += height;
+      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
+      for (var i = 0; i < lines.length; ++i) lines[i].parent = this;
+    },
+    // Used to iterate over a part of the tree.
+    iterN: function(at, n, op) {
+      for (var e = at + n; at < e; ++at)
+        if (op(this.lines[at])) return true;
+    }
+  };
+
+  function BranchChunk(children) {
+    this.children = children;
+    var size = 0, height = 0;
+    for (var i = 0; i < children.length; ++i) {
+      var ch = children[i];
+      size += ch.chunkSize(); height += ch.height;
+      ch.parent = this;
+    }
+    this.size = size;
+    this.height = height;
+    this.parent = null;
+  }
+
+  BranchChunk.prototype = {
+    chunkSize: function() { return this.size; },
+    removeInner: function(at, n) {
+      this.size -= n;
+      for (var i = 0; i < this.children.length; ++i) {
+        var child = this.children[i], sz = child.chunkSize();
+        if (at < sz) {
+          var rm = Math.min(n, sz - at), oldHeight = child.height;
+          child.removeInner(at, rm);
+          this.height -= oldHeight - child.height;
+          if (sz == rm) { this.children.splice(i--, 1); child.parent = null; }
+          if ((n -= rm) == 0) break;
+          at = 0;
+        } else at -= sz;
+      }
+      // If the result is smaller than 25 lines, ensure that it is a
+      // single leaf node.
+      if (this.size - n < 25 &&
+          (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
+        var lines = [];
+        this.collapse(lines);
+        this.children = [new LeafChunk(lines)];
+        this.children[0].parent = this;
+      }
+    },
+    collapse: function(lines) {
+      for (var i = 0; i < this.children.length; ++i) this.children[i].collapse(lines);
+    },
+    insertInner: function(at, lines, height) {
+      this.size += lines.length;
+      this.height += height;
+      for (var i = 0; i < this.children.length; ++i) {
+        var child = this.children[i], sz = child.chunkSize();
+        if (at <= sz) {
+          child.insertInner(at, lines, height);
+          if (child.lines && child.lines.length > 50) {
+            // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
+            // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
+            var remaining = child.lines.length % 25 + 25
+            for (var pos = remaining; pos < child.lines.length;) {
+              var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
+              child.height -= leaf.height;
+              this.children.splice(++i, 0, leaf);
+              leaf.parent = this;
+            }
+            child.lines = child.lines.slice(0, remaining);
+            this.maybeSpill();
+          }
+          break;
+        }
+        at -= sz;
+      }
+    },
+    // When a node has grown, check whether it should be split.
+    maybeSpill: function() {
+      if (this.children.length <= 10) return;
+      var me = this;
+      do {
+        var spilled = me.children.splice(me.children.length - 5, 5);
+        var sibling = new BranchChunk(spilled);
+        if (!me.parent) { // Become the parent node
+          var copy = new BranchChunk(me.children);
+          copy.parent = me;
+          me.children = [copy, sibling];
+          me = copy;
+       } else {
+          me.size -= sibling.size;
+          me.height -= sibling.height;
+          var myIndex = indexOf(me.parent.children, me);
+          me.parent.children.splice(myIndex + 1, 0, sibling);
+        }
+        sibling.parent = me.parent;
+      } while (me.children.length > 10);
+      me.parent.maybeSpill();
+    },
+    iterN: function(at, n, op) {
+      for (var i = 0; i < this.children.length; ++i) {
+        var child = this.children[i], sz = child.chunkSize();
+        if (at < sz) {
+          var used = Math.min(n, sz - at);
+          if (child.iterN(at, used, op)) return true;
+          if ((n -= used) == 0) break;
+          at = 0;
+        } else at -= sz;
+      }
+    }
+  };
+
+  var nextDocId = 0;
+  var Doc = CodeMirror.Doc = function(text, mode, firstLine, lineSep) {
+    if (!(this instanceof Doc)) return new Doc(text, mode, firstLine, lineSep);
+    if (firstLine == null) firstLine = 0;
+
+    BranchChunk.call(this, [new LeafChunk([new Line("", null)])]);
+    this.first = firstLine;
+    this.scrollTop = this.scrollLeft = 0;
+    this.cantEdit = false;
+    this.cleanGeneration = 1;
+    this.frontier = firstLine;
+    var start = Pos(firstLine, 0);
+    this.sel = simpleSelection(start);
+    this.history = new History(null);
+    this.id = ++nextDocId;
+    this.modeOption = mode;
+    this.lineSep = lineSep;
+    this.extend = false;
+
+    if (typeof text == "string") text = this.splitLines(text);
+    updateDoc(this, {from: start, to: start, text: text});
+    setSelection(this, simpleSelection(start), sel_dontScroll);
+  };
+
+  Doc.prototype = createObj(BranchChunk.prototype, {
+    constructor: Doc,
+    // Iterate over the document. Supports two forms -- with only one
+    // argument, it calls that for each line in the document. With
+    // three, it iterates over the range given by the first two (with
+    // the second being non-inclusive).
+    iter: function(from, to, op) {
+      if (op) this.iterN(from - this.first, to - from, op);
+      else this.iterN(this.first, this.first + this.size, from);
+    },
+
+    // Non-public interface for adding and removing lines.
+    insert: function(at, lines) {
+      var height = 0;
+      for (var i = 0; i < lines.length; ++i) height += lines[i].height;
+      this.insertInner(at - this.first, lines, height);
+    },
+    remove: function(at, n) { this.removeInner(at - this.first, n); },
+
+    // From here, the methods are part of the public interface. Most
+    // are also available from CodeMirror (editor) instances.
+
+    getValue: function(lineSep) {
+      var lines = getLines(this, this.first, this.first + this.size);
+      if (lineSep === false) return lines;
+      return lines.join(lineSep || this.lineSeparator());
+    },
+    setValue: docMethodOp(function(code) {
+      var top = Pos(this.first, 0), last = this.first + this.size - 1;
+      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
+                        text: this.splitLines(code), origin: "setValue", full: true}, true);
+      setSelection(this, simpleSelection(top));
+    }),
+    replaceRange: function(code, from, to, origin) {
+      from = clipPos(this, from);
+      to = to ? clipPos(this, to) : from;
+      replaceRange(this, code, from, to, origin);
+    },
+    getRange: function(from, to, lineSep) {
+      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));
+      if (lineSep === false) return lines;
+      return lines.join(lineSep || this.lineSeparator());
+    },
+
+    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text;},
+
+    getLineHandle: function(line) {if (isLine(this, line)) return getLine(this, line);},
+    getLineNumber: function(line) {return lineNo(line);},
+
+    getLineHandleVisualStart: function(line) {
+      if (typeof line == "number") line = getLine(this, line);
+      return visualLine(line);
+    },
+
+    lineCount: function() {return this.size;},
+    firstLine: function() {return this.first;},
+    lastLine: function() {return this.first + this.size - 1;},
+
+    clipPos: function(pos) {return clipPos(this, pos);},
+
+    getCursor: function(start) {
+      var range = this.sel.primary(), pos;
+      if (start == null || start == "head") pos = range.head;
+      else if (start == "anchor") pos = range.anchor;
+      else if (start == "end" || start == "to" || start === false) pos = range.to();
+      else pos = range.from();
+      return pos;
+    },
+    listSelections: function() { return this.sel.ranges; },
+    somethingSelected: function() {return this.sel.somethingSelected();},
+
+    setCursor: docMethodOp(function(line, ch, options) {
+      setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options);
+    }),
+    setSelection: docMethodOp(function(anchor, head, options) {
+      setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);
+    }),
+    extendSelection: docMethodOp(function(head, other, options) {
+      extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);
+    }),
+    extendSelections: docMethodOp(function(heads, options) {
+      extendSelections(this, clipPosArray(this, heads), options);
+    }),
+    extendSelectionsBy: docMethodOp(function(f, options) {
+      var heads = map(this.sel.ranges, f);
+      extendSelections(this, clipPosArray(this, heads), options);
+    }),
+    setSelections: docMethodOp(function(ranges, primary, options) {
+      if (!ranges.length) return;
+      for (var i = 0, out = []; i < ranges.length; i++)
+        out[i] = new Range(clipPos(this, ranges[i].anchor),
+                           clipPos(this, ranges[i].head));
+      if (primary == null) primary = Math.min(ranges.length - 1, this.sel.primIndex);
+      setSelection(this, normalizeSelection(out, primary), options);
+    }),
+    addSelection: docMethodOp(function(anchor, head, options) {
+      var ranges = this.sel.ranges.slice(0);
+      ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));
+      setSelection(this, normalizeSelection(ranges, ranges.length - 1), options);
+    }),
+
+    getSelection: function(lineSep) {
+      var ranges = this.sel.ranges, lines;
+      for (var i = 0; i < ranges.length; i++) {
+        var sel = getBetween(this, ranges[i].from(), ranges[i].to());
+        lines = lines ? lines.concat(sel) : sel;
+      }
+      if (lineSep === false) return lines;
+      else return lines.join(lineSep || this.lineSeparator());
+    },
+    getSelections: function(lineSep) {
+      var parts = [], ranges = this.sel.ranges;
+      for (var i = 0; i < ranges.length; i++) {
+        var sel = getBetween(this, ranges[i].from(), ranges[i].to());
+        if (lineSep !== false) sel = sel.join(lineSep || this.lineSeparator());
+        parts[i] = sel;
+      }
+      return parts;
+    },
+    replaceSelection: function(code, collapse, origin) {
+      var dup = [];
+      for (var i = 0; i < this.sel.ranges.length; i++)
+        dup[i] = code;
+      this.replaceSelections(dup, collapse, origin || "+input");
+    },
+    replaceSelections: docMethodOp(function(code, collapse, origin) {
+      var changes = [], sel = this.sel;
+      for (var i = 0; i < sel.ranges.length; i++) {
+        var range = sel.ranges[i];
+        changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin};
+      }
+      var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse);
+      for (var i = changes.length - 1; i >= 0; i--)
+        makeChange(this, changes[i]);
+      if (newSel) setSelectionReplaceHistory(this, newSel);
+      else if (this.cm) ensureCursorVisible(this.cm);
+    }),
+    undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}),
+    redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}),
+    undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}),
+    redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}),
+
+    setExtending: function(val) {this.extend = val;},
+    getExtending: function() {return this.extend;},
+
+    historySize: function() {
+      var hist = this.history, done = 0, undone = 0;
+      for (var i = 0; i < hist.done.length; i++) if (!hist.done[i].ranges) ++done;
+      for (var i = 0; i < hist.undone.length; i++) if (!hist.undone[i].ranges) ++undone;
+      return {undo: done, redo: undone};
+    },
+    clearHistory: function() {this.history = new History(this.history.maxGeneration);},
+
+    markClean: function() {
+      this.cleanGeneration = this.changeGeneration(true);
+    },
+    changeGeneration: function(forceSplit) {
+      if (forceSplit)
+        this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null;
+      return this.history.generation;
+    },
+    isClean: function (gen) {
+      return this.history.generation == (gen || this.cleanGeneration);
+    },
+
+    getHistory: function() {
+      return {done: copyHistoryArray(this.history.done),
+              undone: copyHistoryArray(this.history.undone)};
+    },
+    setHistory: function(histData) {
+      var hist = this.history = new History(this.history.maxGeneration);
+      hist.done = copyHistoryArray(histData.done.slice(0), null, true);
+      hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
+    },
+
+    addLineClass: docMethodOp(function(handle, where, cls) {
+      return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
+        var prop = where == "text" ? "textClass"
+                 : where == "background" ? "bgClass"
+                 : where == "gutter" ? "gutterClass" : "wrapClass";
+        if (!line[prop]) line[prop] = cls;
+        else if (classTest(cls).test(line[prop])) return false;
+        else line[prop] += " " + cls;
+        return true;
+      });
+    }),
+    removeLineClass: docMethodOp(function(handle, where, cls) {
+      return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function(line) {
+        var prop = where == "text" ? "textClass"
+                 : where == "background" ? "bgClass"
+                 : where == "gutter" ? "gutterClass" : "wrapClass";
+        var cur = line[prop];
+        if (!cur) return false;
+        else if (cls == null) line[prop] = null;
+        else {
+          var found = cur.match(classTest(cls));
+          if (!found) return false;
+          var end = found.index + found[0].length;
+          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null;
+        }
+        return true;
+      });
+    }),
+
+    addLineWidget: docMethodOp(function(handle, node, options) {
+      return addLineWidget(this, handle, node, options);
+    }),
+    removeLineWidget: function(widget) { widget.clear(); },
+
+    markText: function(from, to, options) {
+      return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range");
+    },
+    setBookmark: function(pos, options) {
+      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
+                      insertLeft: options && options.insertLeft,
+                      clearWhenEmpty: false, shared: options && options.shared,
+                      handleMouseEvents: options && options.handleMouseEvents};
+      pos = clipPos(this, pos);
+      return markText(this, pos, pos, realOpts, "bookmark");
+    },
+    findMarksAt: function(pos) {
+      pos = clipPos(this, pos);
+      var markers = [], spans = getLine(this, pos.line).markedSpans;
+      if (spans) for (var i = 0; i < spans.length; ++i) {
+        var span = spans[i];
+        if ((span.from == null || span.from <= pos.ch) &&
+            (span.to == null || span.to >= pos.ch))
+          markers.push(span.marker.parent || span.marker);
+      }
+      return markers;
+    },
+    findMarks: function(from, to, filter) {
+      from = clipPos(this, from); to = clipPos(this, to);
+      var found = [], lineNo = from.line;
+      this.iter(from.line, to.line + 1, function(line) {
+        var spans = line.markedSpans;
+        if (spans) for (var i = 0; i < spans.length; i++) {
+          var span = spans[i];
+          if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||
+                span.from == null && lineNo != from.line ||
+                span.from != null && lineNo == to.line && span.from >= to.ch) &&
+              (!filter || filter(span.marker)))
+            found.push(span.marker.parent || span.marker);
+        }
+        ++lineNo;
+      });
+      return found;
+    },
+    getAllMarks: function() {
+      var markers = [];
+      this.iter(function(line) {
+        var sps = line.markedSpans;
+        if (sps) for (var i = 0; i < sps.length; ++i)
+          if (sps[i].from != null) markers.push(sps[i].marker);
+      });
+      return markers;
+    },
+
+    posFromIndex: function(off) {
+      var ch, lineNo = this.first, sepSize = this.lineSeparator().length;
+      this.iter(function(line) {
+        var sz = line.text.length + sepSize;
+        if (sz > off) { ch = off; return true; }
+        off -= sz;
+        ++lineNo;
+      });
+      return clipPos(this, Pos(lineNo, ch));
+    },
+    indexFromPos: function (coords) {
+      coords = clipPos(this, coords);
+      var index = coords.ch;
+      if (coords.line < this.first || coords.ch < 0) return 0;
+      var sepSize = this.lineSeparator().length;
+      this.iter(this.first, coords.line, function (line) {
+        index += line.text.length + sepSize;
+      });
+      return index;
+    },
+
+    copy: function(copyHistory) {
+      var doc = new Doc(getLines(this, this.first, this.first + this.size),
+                        this.modeOption, this.first, this.lineSep);
+      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;
+      doc.sel = this.sel;
+      doc.extend = false;
+      if (copyHistory) {
+        doc.history.undoDepth = this.history.undoDepth;
+        doc.setHistory(this.getHistory());
+      }
+      return doc;
+    },
+
+    linkedDoc: function(options) {
+      if (!options) options = {};
+      var from = this.first, to = this.first + this.size;
+      if (options.from != null && options.from > from) from = options.from;
+      if (options.to != null && options.to < to) to = options.to;
+      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep);
+      if (options.sharedHist) copy.history = this.history;
+      (this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});
+      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];
+      copySharedMarkers(copy, findSharedMarkers(this));
+      return copy;
+    },
+    unlinkDoc: function(other) {
+      if (other instanceof CodeMirror) other = other.doc;
+      if (this.linked) for (var i = 0; i < this.linked.length; ++i) {
+        var link = this.linked[i];
+        if (link.doc != other) continue;
+        this.linked.splice(i, 1);
+        other.unlinkDoc(this);
+        detachSharedMarkers(findSharedMarkers(this));
+        break;
+      }
+      // If the histories were shared, split them again
+      if (other.history == this.history) {
+        var splitIds = [other.id];
+        linkedDocs(other, function(doc) {splitIds.push(doc.id);}, true);
+        other.history = new History(null);
+        other.history.done = copyHistoryArray(this.history.done, splitIds);
+        other.history.undone = copyHistoryArray(this.history.undone, splitIds);
+      }
+    },
+    iterLinkedDocs: function(f) {linkedDocs(this, f);},
+
+    getMode: function() {return this.mode;},
+    getEditor: function() {return this.cm;},
+
+    splitLines: function(str) {
+      if (this.lineSep) return str.split(this.lineSep);
+      return splitLinesAuto(str);
+    },
+    lineSeparator: function() { return this.lineSep || "\n"; }
+  });
+
+  // Public alias.
+  Doc.prototype.eachLine = Doc.prototype.iter;
+
+  // Set up methods on CodeMirror's prototype to redirect to the editor's document.
+  var dontDelegate = "iter insert remove copy getEditor constructor".split(" ");
+  for (var prop in Doc.prototype) if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
+    CodeMirror.prototype[prop] = (function(method) {
+      return function() {return method.apply(this.doc, arguments);};
+    })(Doc.prototype[prop]);
+
+  eventMixin(Doc);
+
+  // Call f for all linked documents.
+  function linkedDocs(doc, f, sharedHistOnly) {
+    function propagate(doc, skip, sharedHist) {
+      if (doc.linked) for (var i = 0; i < doc.linked.length; ++i) {
+        var rel = doc.linked[i];
+        if (rel.doc == skip) continue;
+        var shared = sharedHist && rel.sharedHist;
+        if (sharedHistOnly && !shared) continue;
+        f(rel.doc, shared);
+        propagate(rel.doc, doc, shared);
+      }
+    }
+    propagate(doc, null, true);
+  }
+
+  // Attach a document to an editor.
+  function attachDoc(cm, doc) {
+    if (doc.cm) throw new Error("This document is already in use.");
+    cm.doc = doc;
+    doc.cm = cm;
+    estimateLineHeights(cm);
+    loadMode(cm);
+    if (!cm.options.lineWrapping) findMaxLine(cm);
+    cm.options.mode = doc.modeOption;
+    regChange(cm);
+  }
+
+  // LINE UTILITIES
+
+  // Find the line object corresponding to the given line number.
+  function getLine(doc, n) {
+    n -= doc.first;
+    if (n < 0 || n >= doc.size) throw new Error("There is no line " + (n + doc.first) + " in the document.");
+    for (var chunk = doc; !chunk.lines;) {
+      for (var i = 0;; ++i) {
+        var child = chunk.children[i], sz = child.chunkSize();
+        if (n < sz) { chunk = child; break; }
+        n -= sz;
+      }
+    }
+    return chunk.lines[n];
+  }
+
+  // Get the part of a document between two positions, as an array of
+  // strings.
+  function getBetween(doc, start, end) {
+    var out = [], n = start.line;
+    doc.iter(start.line, end.line + 1, function(line) {
+      var text = line.text;
+      if (n == end.line) text = text.slice(0, end.ch);
+      if (n == start.line) text = text.slice(start.ch);
+      out.push(text);
+      ++n;
+    });
+    return out;
+  }
+  // Get the lines between from and to, as array of strings.
+  function getLines(doc, from, to) {
+    var out = [];
+    doc.iter(from, to, function(line) { out.push(line.text); });
+    return out;
+  }
+
+  // Update the height of a line, propagating the height change
+  // upwards to parent nodes.
+  function updateLineHeight(line, height) {
+    var diff = height - line.height;
+    if (diff) for (var n = line; n; n = n.parent) n.height += diff;
+  }
+
+  // Given a line object, find its line number by walking up through
+  // its parent links.
+  function lineNo(line) {
+    if (line.parent == null) return null;
+    var cur = line.parent, no = indexOf(cur.lines, line);
+    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
+      for (var i = 0;; ++i) {
+        if (chunk.children[i] == cur) break;
+        no += chunk.children[i].chunkSize();
+      }
+    }
+    return no + cur.first;
+  }
+
+  // Find the line at the given vertical position, using the height
+  // information in the document tree.
+  function lineAtHeight(chunk, h) {
+    var n = chunk.first;
+    outer: do {
+      for (var i = 0; i < chunk.children.length; ++i) {
+        var child = chunk.children[i], ch = child.height;
+        if (h < ch) { chunk = child; continue outer; }
+        h -= ch;
+        n += child.chunkSize();
+      }
+      return n;
+    } while (!chunk.lines);
+    for (var i = 0; i < chunk.lines.length; ++i) {
+      var line = chunk.lines[i], lh = line.height;
+      if (h < lh) break;
+      h -= lh;
+    }
+    return n + i;
+  }
+
+
+  // Find the height above the given line.
+  function heightAtLine(lineObj) {
+    lineObj = visualLine(lineObj);
+
+    var h = 0, chunk = lineObj.parent;
+    for (var i = 0; i < chunk.lines.length; ++i) {
+      var line = chunk.lines[i];
+      if (line == lineObj) break;
+      else h += line.height;
+    }
+    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {
+      for (var i = 0; i < p.children.length; ++i) {
+        var cur = p.children[i];
+        if (cur == chunk) break;
+        else h += cur.height;
+      }
+    }
+    return h;
+  }
+
+  // Get the bidi ordering for the given line (and cache it). Returns
+  // false for lines that are fully left-to-right, and an array of
+  // BidiSpan objects otherwise.
+  function getOrder(line) {
+    var order = line.order;
+    if (order == null) order = line.order = bidiOrdering(line.text);
+    return order;
+  }
+
+  // HISTORY
+
+  function History(startGen) {
+    // Arrays of change events and selections. Doing something adds an
+    // event to done and clears undo. Undoing moves events from done
+    // to undone, redoing moves them in the other direction.
+    this.done = []; this.undone = [];
+    this.undoDepth = Infinity;
+    // Used to track when changes can be merged into a single undo
+    // event
+    this.lastModTime = this.lastSelTime = 0;
+    this.lastOp = this.lastSelOp = null;
+    this.lastOrigin = this.lastSelOrigin = null;
+    // Used by the isClean() method
+    this.generation = this.maxGeneration = startGen || 1;
+  }
+
+  // Create a history change event from an updateDoc-style change
+  // object.
+  function historyChangeFromChange(doc, change) {
+    var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};
+    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);
+    linkedDocs(doc, function(doc) {attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);}, true);
+    return histChange;
+  }
+
+  // Pop all selection events off the end of a history array. Stop at
+  // a change event.
+  function clearSelectionEvents(array) {
+    while (array.length) {
+      var last = lst(array);
+      if (last.ranges) array.pop();
+      else break;
+    }
+  }
+
+  // Find the top change event in the history. Pop off selection
+  // events that are in the way.
+  function lastChangeEvent(hist, force) {
+    if (force) {
+      clearSelectionEvents(hist.done);
+      return lst(hist.done);
+    } else if (hist.done.length && !lst(hist.done).ranges) {
+      return lst(hist.done);
+    } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {
+      hist.done.pop();
+      return lst(hist.done);
+    }
+  }
+
+  // Register a change in the history. Merges changes that are within
+  // a single operation, or are close together with an origin that
+  // allows merging (starting with "+") into a single event.
+  function addChangeToHistory(doc, change, selAfter, opId) {
+    var hist = doc.history;
+    hist.undone.length = 0;
+    var time = +new Date, cur;
+
+    if ((hist.lastOp == opId ||
+         hist.lastOrigin == change.origin && change.origin &&
+         ((change.origin.charAt(0) == "+" && doc.cm && hist.lastModTime > time - doc.cm.options.historyEventDelay) ||
+          change.origin.charAt(0) == "*")) &&
+        (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
+      // Merge this change into the last event
+      var last = lst(cur.changes);
+      if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {
+        // Optimized case for simple insertion -- don't want to add
+        // new changesets for every character typed
+        last.to = changeEnd(change);
+      } else {
+        // Add new sub-event
+        cur.changes.push(historyChangeFromChange(doc, change));
+      }
+    } else {
+      // Can not be merged, start a new event.
+      var before = lst(hist.done);
+      if (!before || !before.ranges)
+        pushSelectionToHistory(doc.sel, hist.done);
+      cur = {changes: [historyChangeFromChange(doc, change)],
+             generation: hist.generation};
+      hist.done.push(cur);
+      while (hist.done.length > hist.undoDepth) {
+        hist.done.shift();
+        if (!hist.done[0].ranges) hist.done.shift();
+      }
+    }
+    hist.done.push(selAfter);
+    hist.generation = ++hist.maxGeneration;
+    hist.lastModTime = hist.lastSelTime = time;
+    hist.lastOp = hist.lastSelOp = opId;
+    hist.lastOrigin = hist.lastSelOrigin = change.origin;
+
+    if (!last) signal(doc, "historyAdded");
+  }
+
+  function selectionEventCanBeMerged(doc, origin, prev, sel) {
+    var ch = origin.charAt(0);
+    return ch == "*" ||
+      ch == "+" &&
+      prev.ranges.length == sel.ranges.length &&
+      prev.somethingSelected() == sel.somethingSelected() &&
+      new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500);
+  }
+
+  // Called whenever the selection changes, sets the new selection as
+  // the pending selection in the history, and pushes the old pending
+  // selection into the 'done' array when it was significantly
+  // different (in number of selected ranges, emptiness, or time).
+  function addSelectionToHistory(doc, sel, opId, options) {
+    var hist = doc.history, origin = options && options.origin;
+
+    // A new event is started when the previous origin does not match
+    // the current, or the origins don't allow matching. Origins
+    // starting with * are always merged, those starting with + are
+    // merged when similar and close together in time.
+    if (opId == hist.lastSelOp ||
+        (origin && hist.lastSelOrigin == origin &&
+         (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||
+          selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))
+      hist.done[hist.done.length - 1] = sel;
+    else
+      pushSelectionToHistory(sel, hist.done);
+
+    hist.lastSelTime = +new Date;
+    hist.lastSelOrigin = origin;
+    hist.lastSelOp = opId;
+    if (options && options.clearRedo !== false)
+      clearSelectionEvents(hist.undone);
+  }
+
+  function pushSelectionToHistory(sel, dest) {
+    var top = lst(dest);
+    if (!(top && top.ranges && top.equals(sel)))
+      dest.push(sel);
+  }
+
+  // Used to store marked span information in the history.
+  function attachLocalSpans(doc, change, from, to) {
+    var existing = change["spans_" + doc.id], n = 0;
+    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function(line) {
+      if (line.markedSpans)
+        (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans;
+      ++n;
+    });
+  }
+
+  // When un/re-doing restores text containing marked spans, those
+  // that have been explicitly cleared should not be restored.
+  function removeClearedSpans(spans) {
+    if (!spans) return null;
+    for (var i = 0, out; i < spans.length; ++i) {
+      if (spans[i].marker.explicitlyCleared) { if (!out) out = spans.slice(0, i); }
+      else if (out) out.push(spans[i]);
+    }
+    return !out ? spans : out.length ? out : null;
+  }
+
+  // Retrieve and filter the old marked spans stored in a change event.
+  function getOldSpans(doc, change) {
+    var found = change["spans_" + doc.id];
+    if (!found) return null;
+    for (var i = 0, nw = []; i < change.text.length; ++i)
+      nw.push(removeClearedSpans(found[i]));
+    return nw;
+  }
+
+  // Used both to provide a JSON-safe object in .getHistory, and, when
+  // detaching a document, to split the history in two
+  function copyHistoryArray(events, newGroup, instantiateSel) {
+    for (var i = 0, copy = []; i < events.length; ++i) {
+      var event = events[i];
+      if (event.ranges) {
+        copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);
+        continue;
+      }
+      var changes = event.changes, newChanges = [];
+      copy.push({changes: newChanges});
+      for (var j = 0; j < changes.length; ++j) {
+        var change = changes[j], m;
+        newChanges.push({from: change.from, to: change.to, text: change.text});
+        if (newGroup) for (var prop in change) if (m = prop.match(/^spans_(\d+)$/)) {
+          if (indexOf(newGroup, Number(m[1])) > -1) {
+            lst(newChanges)[prop] = change[prop];
+            delete change[prop];
+          }
+        }
+      }
+    }
+    return copy;
+  }
+
+  // Rebasing/resetting history to deal with externally-sourced changes
+
+  function rebaseHistSelSingle(pos, from, to, diff) {
+    if (to < pos.line) {
+      pos.line += diff;
+    } else if (from < pos.line) {
+      pos.line = from;
+      pos.ch = 0;
+    }
+  }
+
+  // Tries to rebase an array of history events given a change in the
+  // document. If the change touches the same lines as the event, the
+  // event, and everything 'behind' it, is discarded. If the change is
+  // before the event, the event's positions are updated. Uses a
+  // copy-on-write scheme for the positions, to avoid having to
+  // reallocate them all on every rebase, but also avoid problems with
+  // shared position objects being unsafely updated.
+  function rebaseHistArray(array, from, to, diff) {
+    for (var i = 0; i < array.length; ++i) {
+      var sub = array[i], ok = true;
+      if (sub.ranges) {
+        if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }
+        for (var j = 0; j < sub.ranges.length; j++) {
+          rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);
+          rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);
+        }
+        continue;
+      }
+      for (var j = 0; j < sub.changes.length; ++j) {
+        var cur = sub.changes[j];
+        if (to < cur.from.line) {
+          cur.from = Pos(cur.from.line + diff, cur.from.ch);
+          cur.to = Pos(cur.to.line + diff, cur.to.ch);
+        } else if (from <= cur.to.line) {
+          ok = false;
+          break;
+        }
+      }
+      if (!ok) {
+        array.splice(0, i + 1);
+        i = 0;
+      }
+    }
+  }
+
+  function rebaseHist(hist, change) {
+    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;
+    rebaseHistArray(hist.done, from, to, diff);
+    rebaseHistArray(hist.undone, from, to, diff);
+  }
+
+  // EVENT UTILITIES
+
+  // Due to the fact that we still support jurassic IE versions, some
+  // compatibility wrappers are needed.
+
+  var e_preventDefault = CodeMirror.e_preventDefault = function(e) {
+    if (e.preventDefault) e.preventDefault();
+    else e.returnValue = false;
+  };
+  var e_stopPropagation = CodeMirror.e_stopPropagation = function(e) {
+    if (e.stopPropagation) e.stopPropagation();
+    else e.cancelBubble = true;
+  };
+  function e_defaultPrevented(e) {
+    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false;
+  }
+  var e_stop = CodeMirror.e_stop = function(e) {e_preventDefault(e); e_stopPropagation(e);};
+
+  function e_target(e) {return e.target || e.srcElement;}
+  function e_button(e) {
+    var b = e.which;
+    if (b == null) {
+      if (e.button & 1) b = 1;
+      else if (e.button & 2) b = 3;
+      else if (e.button & 4) b = 2;
+    }
+    if (mac && e.ctrlKey && b == 1) b = 3;
+    return b;
+  }
+
+  // EVENT HANDLING
+
+  // Lightweight event framework. on/off also work on DOM nodes,
+  // registering native DOM handlers.
+
+  var on = CodeMirror.on = function(emitter, type, f) {
+    if (emitter.addEventListener)
+      emitter.addEventListener(type, f, false);
+    else if (emitter.attachEvent)
+      emitter.attachEvent("on" + type, f);
+    else {
+      var map = emitter._handlers || (emitter._handlers = {});
+      var arr = map[type] || (map[type] = []);
+      arr.push(f);
+    }
+  };
+
+  var noHandlers = []
+  function getHandlers(emitter, type, copy) {
+    var arr = emitter._handlers && emitter._handlers[type]
+    if (copy) return arr && arr.length > 0 ? arr.slice() : noHandlers
+    else return arr || noHandlers
+  }
+
+  var off = CodeMirror.off = function(emitter, type, f) {
+    if (emitter.removeEventListener)
+      emitter.removeEventListener(type, f, false);
+    else if (emitter.detachEvent)
+      emitter.detachEvent("on" + type, f);
+    else {
+      var handlers = getHandlers(emitter, type, false)
+      for (var i = 0; i < handlers.length; ++i)
+        if (handlers[i] == f) { handlers.splice(i, 1); break; }
+    }
+  };
+
+  var signal = CodeMirror.signal = function(emitter, type /*, values...*/) {
+    var handlers = getHandlers(emitter, type, true)
+    if (!handlers.length) return;
+    var args = Array.prototype.slice.call(arguments, 2);
+    for (var i = 0; i < handlers.length; ++i) handlers[i].apply(null, args);
+  };
+
+  var orphanDelayedCallbacks = null;
+
+  // Often, we want to signal events at a point where we are in the
+  // middle of some work, but don't want the handler to start calling
+  // other methods on the editor, which might be in an inconsistent
+  // state or simply not expect any other events to happen.
+  // signalLater looks whether there are any handlers, and schedules
+  // them to be executed when the last operation ends, or, if no
+  // operation is active, when a timeout fires.
+  function signalLater(emitter, type /*, values...*/) {
+    var arr = getHandlers(emitter, type, false)
+    if (!arr.length) return;
+    var args = Array.prototype.slice.call(arguments, 2), list;
+    if (operationGroup) {
+      list = operationGroup.delayedCallbacks;
+    } else if (orphanDelayedCallbacks) {
+      list = orphanDelayedCallbacks;
+    } else {
+      list = orphanDelayedCallbacks = [];
+      setTimeout(fireOrphanDelayed, 0);
+    }
+    function bnd(f) {return function(){f.apply(null, args);};};
+    for (var i = 0; i < arr.length; ++i)
+      list.push(bnd(arr[i]));
+  }
+
+  function fireOrphanDelayed() {
+    var delayed = orphanDelayedCallbacks;
+    orphanDelayedCallbacks = null;
+    for (var i = 0; i < delayed.length; ++i) delayed[i]();
+  }
+
+  // The DOM events that CodeMirror handles can be overridden by
+  // registering a (non-DOM) handler on the editor for the event name,
+  // and preventDefault-ing the event in that handler.
+  function signalDOMEvent(cm, e, override) {
+    if (typeof e == "string")
+      e = {type: e, preventDefault: function() { this.defaultPrevented = true; }};
+    signal(cm, override || e.type, cm, e);
+    return e_defaultPrevented(e) || e.codemirrorIgnore;
+  }
+
+  function signalCursorActivity(cm) {
+    var arr = cm._handlers && cm._handlers.cursorActivity;
+    if (!arr) return;
+    var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);
+    for (var i = 0; i < arr.length; ++i) if (indexOf(set, arr[i]) == -1)
+      set.push(arr[i]);
+  }
+
+  function hasHandler(emitter, type) {
+    return getHandlers(emitter, type).length > 0
+  }
+
+  // Add on and off methods to a constructor's prototype, to make
+  // registering events on such objects more convenient.
+  function eventMixin(ctor) {
+    ctor.prototype.on = function(type, f) {on(this, type, f);};
+    ctor.prototype.off = function(type, f) {off(this, type, f);};
+  }
+
+  // MISC UTILITIES
+
+  // Number of pixels added to scroller and sizer to hide scrollbar
+  var scrollerGap = 30;
+
+  // Returned or thrown by various protocols to signal 'I'm not
+  // handling this'.
+  var Pass = CodeMirror.Pass = {toString: function(){return "CodeMirror.Pass";}};
+
+  // Reused option objects for setSelection & friends
+  var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"};
+
+  function Delayed() {this.id = null;}
+  Delayed.prototype.set = function(ms, f) {
+    clearTimeout(this.id);
+    this.id = setTimeout(f, ms);
+  };
+
+  // Counts the column offset in a string, taking tabs into account.
+  // Used mostly to find indentation.
+  var countColumn = CodeMirror.countColumn = function(string, end, tabSize, startIndex, startValue) {
+    if (end == null) {
+      end = string.search(/[^\s\u00a0]/);
+      if (end == -1) end = string.length;
+    }
+    for (var i = startIndex || 0, n = startValue || 0;;) {
+      var nextTab = string.indexOf("\t", i);
+      if (nextTab < 0 || nextTab >= end)
+        return n + (end - i);
+      n += nextTab - i;
+      n += tabSize - (n % tabSize);
+      i = nextTab + 1;
+    }
+  };
+
+  // The inverse of countColumn -- find the offset that corresponds to
+  // a particular column.
+  var findColumn = CodeMirror.findColumn = function(string, goal, tabSize) {
+    for (var pos = 0, col = 0;;) {
+      var nextTab = string.indexOf("\t", pos);
+      if (nextTab == -1) nextTab = string.length;
+      var skipped = nextTab - pos;
+      if (nextTab == string.length || col + skipped >= goal)
+        return pos + Math.min(skipped, goal - col);
+      col += nextTab - pos;
+      col += tabSize - (col % tabSize);
+      pos = nextTab + 1;
+      if (col >= goal) return pos;
+    }
+  }
+
+  var spaceStrs = [""];
+  function spaceStr(n) {
+    while (spaceStrs.length <= n)
+      spaceStrs.push(lst(spaceStrs) + " ");
+    return spaceStrs[n];
+  }
+
+  function lst(arr) { return arr[arr.length-1]; }
+
+  var selectInput = function(node) { node.select(); };
+  if (ios) // Mobile Safari apparently has a bug where select() is broken.
+    selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; };
+  else if (ie) // Suppress mysterious IE10 errors
+    selectInput = function(node) { try { node.select(); } catch(_e) {} };
+
+  function indexOf(array, elt) {
+    for (var i = 0; i < array.length; ++i)
+      if (array[i] == elt) return i;
+    return -1;
+  }
+  function map(array, f) {
+    var out = [];
+    for (var i = 0; i < array.length; i++) out[i] = f(array[i], i);
+    return out;
+  }
+
+  function insertSorted(array, value, score) {
+    var pos = 0, priority = score(value)
+    while (pos < array.length && score(array[pos]) <= priority) pos++
+    array.splice(pos, 0, value)
+  }
+
+  function nothing() {}
+
+  function createObj(base, props) {
+    var inst;
+    if (Object.create) {
+      inst = Object.create(base);
+    } else {
+      nothing.prototype = base;
+      inst = new nothing();
+    }
+    if (props) copyObj(props, inst);
+    return inst;
+  };
+
+  function copyObj(obj, target, overwrite) {
+    if (!target) target = {};
+    for (var prop in obj)
+      if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
+        target[prop] = obj[prop];
+    return target;
+  }
+
+  function bind(f) {
+    var args = Array.prototype.slice.call(arguments, 1);
+    return function(){return f.apply(null, args);};
+  }
+
+  var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
+  var isWordCharBasic = CodeMirror.isWordChar = function(ch) {
+    return /\w/.test(ch) || ch > "\x80" &&
+      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch));
+  };
+  function isWordChar(ch, helper) {
+    if (!helper) return isWordCharBasic(ch);
+    if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) return true;
+    return helper.test(ch);
+  }
+
+  function isEmpty(obj) {
+    for (var n in obj) if (obj.hasOwnProperty(n) && obj[n]) return false;
+    return true;
+  }
+
+  // Extending unicode characters. A series of a non-extending char +
+  // any number of extending chars is treated as a single unit as far
+  // as editing and measuring is concerned. This is not fully correct,
+  // since some scripts/fonts/browsers also treat other configurations
+  // of code points as a group.
+  var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;
+  function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch); }
+
+  // DOM UTILITIES
+
+  function elt(tag, content, className, style) {
+    var e = document.createElement(tag);
+    if (className) e.className = className;
+    if (style) e.style.cssText = style;
+    if (typeof content == "string") e.appendChild(document.createTextNode(content));
+    else if (content) for (var i = 0; i < content.length; ++i) e.appendChild(content[i]);
+    return e;
+  }
+
+  var range;
+  if (document.createRange) range = function(node, start, end, endNode) {
+    var r = document.createRange();
+    r.setEnd(endNode || node, end);
+    r.setStart(node, start);
+    return r;
+  };
+  else range = function(node, start, end) {
+    var r = document.body.createTextRange();
+    try { r.moveToElementText(node.parentNode); }
+    catch(e) { return r; }
+    r.collapse(true);
+    r.moveEnd("character", end);
+    r.moveStart("character", start);
+    return r;
+  };
+
+  function removeChildren(e) {
+    for (var count = e.childNodes.length; count > 0; --count)
+      e.removeChild(e.firstChild);
+    return e;
+  }
+
+  function removeChildrenAndAdd(parent, e) {
+    return removeChildren(parent).appendChild(e);
+  }
+
+  var contains = CodeMirror.contains = function(parent, child) {
+    if (child.nodeType == 3) // Android browser always returns false when child is a textnode
+      child = child.parentNode;
+    if (parent.contains)
+      return parent.contains(child);
+    do {
+      if (child.nodeType == 11) child = child.host;
+      if (child == parent) return true;
+    } while (child = child.parentNode);
+  };
+
+  function activeElt() {
+    var activeElement = document.activeElement;
+    while (activeElement && activeElement.root && activeElement.root.activeElement)
+      activeElement = activeElement.root.activeElement;
+    return activeElement;
+  }
+  // Older versions of IE throws unspecified error when touching
+  // document.activeElement in some cases (during loading, in iframe)
+  if (ie && ie_version < 11) activeElt = function() {
+    try { return document.activeElement; }
+    catch(e) { return document.body; }
+  };
+
+  function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*"); }
+  var rmClass = CodeMirror.rmClass = function(node, cls) {
+    var current = node.className;
+    var match = classTest(cls).exec(current);
+    if (match) {
+      var after = current.slice(match.index + match[0].length);
+      node.className = current.slice(0, match.index) + (after ? match[1] + after : "");
+    }
+  };
+  var addClass = CodeMirror.addClass = function(node, cls) {
+    var current = node.className;
+    if (!classTest(cls).test(current)) node.className += (current ? " " : "") + cls;
+  };
+  function joinClasses(a, b) {
+    var as = a.split(" ");
+    for (var i = 0; i < as.length; i++)
+      if (as[i] && !classTest(as[i]).test(b)) b += " " + as[i];
+    return b;
+  }
+
+  // WINDOW-WIDE EVENTS
+
+  // These must be handled carefully, because naively registering a
+  // handler for each editor will cause the editors to never be
+  // garbage collected.
+
+  function forEachCodeMirror(f) {
+    if (!document.body.getElementsByClassName) return;
+    var byClass = document.body.getElementsByClassName("CodeMirror");
+    for (var i = 0; i < byClass.length; i++) {
+      var cm = byClass[i].CodeMirror;
+      if (cm) f(cm);
+    }
+  }
+
+  var globalsRegistered = false;
+  function ensureGlobalHandlers() {
+    if (globalsRegistered) return;
+    registerGlobalHandlers();
+    globalsRegistered = true;
+  }
+  function registerGlobalHandlers() {
+    // When the window resizes, we need to refresh active editors.
+    var resizeTimer;
+    on(window, "resize", function() {
+      if (resizeTimer == null) resizeTimer = setTimeout(function() {
+        resizeTimer = null;
+        forEachCodeMirror(onResize);
+      }, 100);
+    });
+    // When the window loses focus, we want to show the editor as blurred
+    on(window, "blur", function() {
+      forEachCodeMirror(onBlur);
+    });
+  }
+
+  // FEATURE DETECTION
+
+  // Detect drag-and-drop
+  var dragAndDrop = function() {
+    // There is *some* kind of drag-and-drop support in IE6-8, but I
+    // couldn't get it to work yet.
+    if (ie && ie_version < 9) return false;
+    var div = elt('div');
+    return "draggable" in div || "dragDrop" in div;
+  }();
+
+  var zwspSupported;
+  function zeroWidthElement(measure) {
+    if (zwspSupported == null) {
+      var test = elt("span", "\u200b");
+      removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")]));
+      if (measure.firstChild.offsetHeight != 0)
+        zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8);
+    }
+    var node = zwspSupported ? elt("span", "\u200b") :
+      elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px");
+    node.setAttribute("cm-text", "");
+    return node;
+  }
+
+  // Feature-detect IE's crummy client rect reporting for bidi text
+  var badBidiRects;
+  function hasBadBidiRects(measure) {
+    if (badBidiRects != null) return badBidiRects;
+    var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
+    var r0 = range(txt, 0, 1).getBoundingClientRect();
+    var r1 = range(txt, 1, 2).getBoundingClientRect();
+    removeChildren(measure);
+    if (!r0 || r0.left == r0.right) return false; // Safari returns null in some cases (#2780)
+    return badBidiRects = (r1.right - r0.right < 3);
+  }
+
+  // See if "".split is the broken IE version, if so, provide an
+  // alternative way to split lines.
+  var splitLinesAuto = CodeMirror.splitLines = "\n\nb".split(/\n/).length != 3 ? function(string) {
+    var pos = 0, result = [], l = string.length;
+    while (pos <= l) {
+      var nl = string.indexOf("\n", pos);
+      if (nl == -1) nl = string.length;
+      var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl);
+      var rt = line.indexOf("\r");
+      if (rt != -1) {
+        result.push(line.slice(0, rt));
+        pos += rt + 1;
+      } else {
+        result.push(line);
+        pos = nl + 1;
+      }
+    }
+    return result;
+  } : function(string){return string.split(/\r\n?|\n/);};
+
+  var hasSelection = window.getSelection ? function(te) {
+    try { return te.selectionStart != te.selectionEnd; }
+    catch(e) { return false; }
+  } : function(te) {
+    try {var range = te.ownerDocument.selection.createRange();}
+    catch(e) {}
+    if (!range || range.parentElement() != te) return false;
+    return range.compareEndPoints("StartToEnd", range) != 0;
+  };
+
+  var hasCopyEvent = (function() {
+    var e = elt("div");
+    if ("oncopy" in e) return true;
+    e.setAttribute("oncopy", "return;");
+    return typeof e.oncopy == "function";
+  })();
+
+  var badZoomedRects = null;
+  function hasBadZoomedRects(measure) {
+    if (badZoomedRects != null) return badZoomedRects;
+    var node = removeChildrenAndAdd(measure, elt("span", "x"));
+    var normal = node.getBoundingClientRect();
+    var fromRange = range(node, 0, 1).getBoundingClientRect();
+    return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1;
+  }
+
+  // KEY NAMES
+
+  var keyNames = CodeMirror.keyNames = {
+    3: "Enter", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
+    19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
+    36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
+    46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
+    106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete",
+    173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
+    221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
+    63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
+  };
+  (function() {
+    // Number keys
+    for (var i = 0; i < 10; i++) keyNames[i + 48] = keyNames[i + 96] = String(i);
+    // Alphabetic keys
+    for (var i = 65; i <= 90; i++) keyNames[i] = String.fromCharCode(i);
+    // Function keys
+    for (var i = 1; i <= 12; i++) keyNames[i + 111] = keyNames[i + 63235] = "F" + i;
+  })();
+
+  // BIDI HELPERS
+
+  function iterateBidiSections(order, from, to, f) {
+    if (!order) return f(from, to, "ltr");
+    var found = false;
+    for (var i = 0; i < order.length; ++i) {
+      var part = order[i];
+      if (part.from < to && part.to > from || from == to && part.to == from) {
+        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr");
+        found = true;
+      }
+    }
+    if (!found) f(from, to, "ltr");
+  }
+
+  function bidiLeft(part) { return part.level % 2 ? part.to : part.from; }
+  function bidiRight(part) { return part.level % 2 ? part.from : part.to; }
+
+  function lineLeft(line) { var order = getOrder(line); return order ? bidiLeft(order[0]) : 0; }
+  function lineRight(line) {
+    var order = getOrder(line);
+    if (!order) return line.text.length;
+    return bidiRight(lst(order));
+  }
+
+  function lineStart(cm, lineN) {
+    var line = getLine(cm.doc, lineN);
+    var visual = visualLine(line);
+    if (visual != line) lineN = lineNo(visual);
+    var order = getOrder(visual);
+    var ch = !order ? 0 : order[0].level % 2 ? lineRight(visual) : lineLeft(visual);
+    return Pos(lineN, ch);
+  }
+  function lineEnd(cm, lineN) {
+    var merged, line = getLine(cm.doc, lineN);
+    while (merged = collapsedSpanAtEnd(line)) {
+      line = merged.find(1, true).line;
+      lineN = null;
+    }
+    var order = getOrder(line);
+    var ch = !order ? line.text.length : order[0].level % 2 ? lineLeft(line) : lineRight(line);
+    return Pos(lineN == null ? lineNo(line) : lineN, ch);
+  }
+  function lineStartSmart(cm, pos) {
+    var start = lineStart(cm, pos.line);
+    var line = getLine(cm.doc, start.line);
+    var order = getOrder(line);
+    if (!order || order[0].level == 0) {
+      var firstNonWS = Math.max(0, line.text.search(/\S/));
+      var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;
+      return Pos(start.line, inWS ? 0 : firstNonWS);
+    }
+    return start;
+  }
+
+  function compareBidiLevel(order, a, b) {
+    var linedir = order[0].level;
+    if (a == linedir) return true;
+    if (b == linedir) return false;
+    return a < b;
+  }
+  var bidiOther;
+  function getBidiPartAt(order, pos) {
+    bidiOther = null;
+    for (var i = 0, found; i < order.length; ++i) {
+      var cur = order[i];
+      if (cur.from < pos && cur.to > pos) return i;
+      if ((cur.from == pos || cur.to == pos)) {
+        if (found == null) {
+          found = i;
+        } else if (compareBidiLevel(order, cur.level, order[found].level)) {
+          if (cur.from != cur.to) bidiOther = found;
+          return i;
+        } else {
+          if (cur.from != cur.to) bidiOther = i;
+          return found;
+        }
+      }
+    }
+    return found;
+  }
+
+  function moveInLine(line, pos, dir, byUnit) {
+    if (!byUnit) return pos + dir;
+    do pos += dir;
+    while (pos > 0 && isExtendingChar(line.text.charAt(pos)));
+    return pos;
+  }
+
+  // This is needed in order to move 'visually' through bi-directional
+  // text -- i.e., pressing left should make the cursor go left, even
+  // when in RTL text. The tricky part is the 'jumps', where RTL and
+  // LTR text touch each other. This often requires the cursor offset
+  // to move more than one unit, in order to visually move one unit.
+  function moveVisually(line, start, dir, byUnit) {
+    var bidi = getOrder(line);
+    if (!bidi) return moveLogically(line, start, dir, byUnit);
+    var pos = getBidiPartAt(bidi, start), part = bidi[pos];
+    var target = moveInLine(line, start, part.level % 2 ? -dir : dir, byUnit);
+
+    for (;;) {
+      if (target > part.from && target < part.to) return target;
+      if (target == part.from || target == part.to) {
+        if (getBidiPartAt(bidi, target) == pos) return target;
+        part = bidi[pos += dir];
+        return (dir > 0) == part.level % 2 ? part.to : part.from;
+      } else {
+        part = bidi[pos += dir];
+        if (!part) return null;
+        if ((dir > 0) == part.level % 2)
+          target = moveInLine(line, part.to, -1, byUnit);
+        else
+          target = moveInLine(line, part.from, 1, byUnit);
+      }
+    }
+  }
+
+  function moveLogically(line, start, dir, byUnit) {
+    var target = start + dir;
+    if (byUnit) while (target > 0 && isExtendingChar(line.text.charAt(target))) target += dir;
+    return target < 0 || target > line.text.length ? null : target;
+  }
+
+  // Bidirectional ordering algorithm
+  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
+  // that this (partially) implements.
+
+  // One-char codes used for character types:
+  // L (L):   Left-to-Right
+  // R (R):   Right-to-Left
+  // r (AL):  Right-to-Left Arabic
+  // 1 (EN):  European Number
+  // + (ES):  European Number Separator
+  // % (ET):  European Number Terminator
+  // n (AN):  Arabic Number
+  // , (CS):  Common Number Separator
+  // m (NSM): Non-Spacing Mark
+  // b (BN):  Boundary Neutral
+  // s (B):   Paragraph Separator
+  // t (S):   Segment Separator
+  // w (WS):  Whitespace
+  // N (ON):  Other Neutrals
+
+  // Returns null if characters are ordered as they appear
+  // (left-to-right), or an array of sections ({from, to, level}
+  // objects) in the order in which they occur visually.
+  var bidiOrdering = (function() {
+    // Character types for codepoints 0 to 0xff
+    var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";
+    // Character types for codepoints 0x600 to 0x6ff
+    var arabicTypes = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm";
+    function charType(code) {
+      if (code <= 0xf7) return lowTypes.charAt(code);
+      else if (0x590 <= code && code <= 0x5f4) return "R";
+      else if (0x600 <= code && code <= 0x6ed) return arabicTypes.charAt(code - 0x600);
+      else if (0x6ee <= code && code <= 0x8ac) return "r";
+      else if (0x2000 <= code && code <= 0x200b) return "w";
+      else if (code == 0x200c) return "b";
+      else return "L";
+    }
+
+    var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;
+    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;
+    // Browsers seem to always treat the boundaries of block elements as being L.
+    var outerType = "L";
+
+    function BidiSpan(level, from, to) {
+      this.level = level;
+      this.from = from; this.to = to;
+    }
+
+    return function(str) {
+      if (!bidiRE.test(str)) return false;
+      var len = str.length, types = [];
+      for (var i = 0, type; i < len; ++i)
+        types.push(type = charType(str.charCodeAt(i)));
+
+      // W1. Examine each non-spacing mark (NSM) in the level run, and
+      // change the type of the NSM to the type of the previous
+      // character. If the NSM is at the start of the level run, it will
+      // get the type of sor.
+      for (var i = 0, prev = outerType; i < len; ++i) {
+        var type = types[i];
+        if (type == "m") types[i] = prev;
+        else prev = type;
+      }
+
+      // W2. Search backwards from each instance of a European number
+      // until the first strong type (R, L, AL, or sor) is found. If an
+      // AL is found, change the type of the European number to Arabic
+      // number.
+      // W3. Change all ALs to R.
+      for (var i = 0, cur = outerType; i < len; ++i) {
+        var type = types[i];
+        if (type == "1" && cur == "r") types[i] = "n";
+        else if (isStrong.test(type)) { cur = type; if (type == "r") types[i] = "R"; }
+      }
+
+      // W4. A single European separator between two European numbers
+      // changes to a European number. A single common separator between
+      // two numbers of the same type changes to that type.
+      for (var i = 1, prev = types[0]; i < len - 1; ++i) {
+        var type = types[i];
+        if (type == "+" && prev == "1" && types[i+1] == "1") types[i] = "1";
+        else if (type == "," && prev == types[i+1] &&
+                 (prev == "1" || prev == "n")) types[i] = prev;
+        prev = type;
+      }
+
+      // W5. A sequence of European terminators adjacent to European
+      // numbers changes to all European numbers.
+      // W6. Otherwise, separators and terminators change to Other
+      // Neutral.
+      for (var i = 0; i < len; ++i) {
+        var type = types[i];
+        if (type == ",") types[i] = "N";
+        else if (type == "%") {
+          for (var end = i + 1; end < len && types[end] == "%"; ++end) {}
+          var replace = (i && types[i-1] == "!") || (end < len && types[end] == "1") ? "1" : "N";
+          for (var j = i; j < end; ++j) types[j] = replace;
+          i = end - 1;
+        }
+      }
+
+      // W7. Search backwards from each instance of a European number
+      // until the first strong type (R, L, or sor) is found. If an L is
+      // found, then change the type of the European number to L.
+      for (var i = 0, cur = outerType; i < len; ++i) {
+        var type = types[i];
+        if (cur == "L" && type == "1") types[i] = "L";
+        else if (isStrong.test(type)) cur = type;
+      }
+
+      // N1. A sequence of neutrals takes the direction of the
+      // surrounding strong text if the text on both sides has the same
+      // direction. European and Arabic numbers act as if they were R in
+      // terms of their influence on neutrals. Start-of-level-run (sor)
+      // and end-of-level-run (eor) are used at level run boundaries.
+      // N2. Any remaining neutrals take the embedding direction.
+      for (var i = 0; i < len; ++i) {
+        if (isNeutral.test(types[i])) {
+          for (var end = i + 1; end < len && isNeutral.test(types[end]); ++end) {}
+          var before = (i ? types[i-1] : outerType) == "L";
+          var after = (end < len ? types[end] : outerType) == "L";
+          var replace = before || after ? "L" : "R";
+          for (var j = i; j < end; ++j) types[j] = replace;
+          i = end - 1;
+        }
+      }
+
+      // Here we depart from the documented algorithm, in order to avoid
+      // building up an actual levels array. Since there are only three
+      // levels (0, 1, 2) in an implementation that doesn't take
+      // explicit embedding into account, we can build up the order on
+      // the fly, without following the level-based algorithm.
+      var order = [], m;
+      for (var i = 0; i < len;) {
+        if (countsAsLeft.test(types[i])) {
+          var start = i;
+          for (++i; i < len && countsAsLeft.test(types[i]); ++i) {}
+          order.push(new BidiSpan(0, start, i));
+        } else {
+          var pos = i, at = order.length;
+          for (++i; i < len && types[i] != "L"; ++i) {}
+          for (var j = pos; j < i;) {
+            if (countsAsNum.test(types[j])) {
+              if (pos < j) order.splice(at, 0, new BidiSpan(1, pos, j));
+              var nstart = j;
+              for (++j; j < i && countsAsNum.test(types[j]); ++j) {}
+              order.splice(at, 0, new BidiSpan(2, nstart, j));
+              pos = j;
+            } else ++j;
+          }
+          if (pos < i) order.splice(at, 0, new BidiSpan(1, pos, i));
+        }
+      }
+      if (order[0].level == 1 && (m = str.match(/^\s+/))) {
+        order[0].from = m[0].length;
+        order.unshift(new BidiSpan(0, 0, m[0].length));
+      }
+      if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
+        lst(order).to -= m[0].length;
+        order.push(new BidiSpan(0, len - m[0].length, len));
+      }
+      if (order[0].level == 2)
+        order.unshift(new BidiSpan(1, order[0].to, order[0].to));
+      if (order[0].level != lst(order).level)
+        order.push(new BidiSpan(order[0].level, len, len));
+
+      return order;
+    };
+  })();
+
+  // THE END
+
+  CodeMirror.version = "5.18.2";
+
+  return CodeMirror;
+});
diff --git a/pagure/static/vendor/codemirror/codemirror.css b/pagure/static/vendor/codemirror/codemirror.css
new file mode 120000
index 0000000..9132274
--- /dev/null
+++ b/pagure/static/vendor/codemirror/codemirror.css
@@ -0,0 +1 @@
+codemirror-5.18.2.css
\ No newline at end of file
diff --git a/pagure/static/vendor/codemirror/codemirror.js b/pagure/static/vendor/codemirror/codemirror.js
new file mode 120000
index 0000000..0b38438
--- /dev/null
+++ b/pagure/static/vendor/codemirror/codemirror.js
@@ -0,0 +1 @@
+codemirror-5.18.2.js
\ No newline at end of file
diff --git a/pagure/static/vendor/codemirror/solarized-5.18.2.css b/pagure/static/vendor/codemirror/solarized-5.18.2.css
new file mode 100644
index 0000000..1f39c7e
--- /dev/null
+++ b/pagure/static/vendor/codemirror/solarized-5.18.2.css
@@ -0,0 +1,169 @@
+/*
+Solarized theme for code-mirror
+http://ethanschoonover.com/solarized
+*/
+
+/*
+Solarized color palette
+http://ethanschoonover.com/solarized/img/solarized-palette.png
+*/
+
+.solarized.base03 { color: #002b36; }
+.solarized.base02 { color: #073642; }
+.solarized.base01 { color: #586e75; }
+.solarized.base00 { color: #657b83; }
+.solarized.base0 { color: #839496; }
+.solarized.base1 { color: #93a1a1; }
+.solarized.base2 { color: #eee8d5; }
+.solarized.base3  { color: #fdf6e3; }
+.solarized.solar-yellow  { color: #b58900; }
+.solarized.solar-orange  { color: #cb4b16; }
+.solarized.solar-red { color: #dc322f; }
+.solarized.solar-magenta { color: #d33682; }
+.solarized.solar-violet  { color: #6c71c4; }
+.solarized.solar-blue { color: #268bd2; }
+.solarized.solar-cyan { color: #2aa198; }
+.solarized.solar-green { color: #859900; }
+
+/* Color scheme for code-mirror */
+
+.cm-s-solarized {
+  line-height: 1.45em;
+  color-profile: sRGB;
+  rendering-intent: auto;
+}
+.cm-s-solarized.cm-s-dark {
+  color: #839496;
+  background-color: #002b36;
+  text-shadow: #002b36 0 1px;
+}
+.cm-s-solarized.cm-s-light {
+  background-color: #fdf6e3;
+  color: #657b83;
+  text-shadow: #eee8d5 0 1px;
+}
+
+.cm-s-solarized .CodeMirror-widget {
+  text-shadow: none;
+}
+
+.cm-s-solarized .cm-header { color: #586e75; }
+.cm-s-solarized .cm-quote { color: #93a1a1; }
+
+.cm-s-solarized .cm-keyword { color: #cb4b16; }
+.cm-s-solarized .cm-atom { color: #d33682; }
+.cm-s-solarized .cm-number { color: #d33682; }
+.cm-s-solarized .cm-def { color: #2aa198; }
+
+.cm-s-solarized .cm-variable { color: #839496; }
+.cm-s-solarized .cm-variable-2 { color: #b58900; }
+.cm-s-solarized .cm-variable-3 { color: #6c71c4; }
+
+.cm-s-solarized .cm-property { color: #2aa198; }
+.cm-s-solarized .cm-operator { color: #6c71c4; }
+
+.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
+
+.cm-s-solarized .cm-string { color: #859900; }
+.cm-s-solarized .cm-string-2 { color: #b58900; }
+
+.cm-s-solarized .cm-meta { color: #859900; }
+.cm-s-solarized .cm-qualifier { color: #b58900; }
+.cm-s-solarized .cm-builtin { color: #d33682; }
+.cm-s-solarized .cm-bracket { color: #cb4b16; }
+.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
+.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
+.cm-s-solarized .cm-tag { color: #93a1a1; }
+.cm-s-solarized .cm-attribute { color: #2aa198; }
+.cm-s-solarized .cm-hr {
+  color: transparent;
+  border-top: 1px solid #586e75;
+  display: block;
+}
+.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
+.cm-s-solarized .cm-special { color: #6c71c4; }
+.cm-s-solarized .cm-em {
+  color: #999;
+  text-decoration: underline;
+  text-decoration-style: dotted;
+}
+.cm-s-solarized .cm-strong { color: #eee; }
+.cm-s-solarized .cm-error,
+.cm-s-solarized .cm-invalidchar {
+  color: #586e75;
+  border-bottom: 1px dotted #dc322f;
+}
+
+.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
+.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
+.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }
+
+.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
+.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
+.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-ligh .CodeMirror-line > span::-moz-selection, .cm-s-ligh .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }
+
+/* Editor styling */
+
+
+
+/* Little shadow on the view-port of the buffer view */
+.cm-s-solarized.CodeMirror {
+  -moz-box-shadow: inset 7px 0 12px -6px #000;
+  -webkit-box-shadow: inset 7px 0 12px -6px #000;
+  box-shadow: inset 7px 0 12px -6px #000;
+}
+
+/* Remove gutter border */
+.cm-s-solarized .CodeMirror-gutters {
+  border-right: 0;
+}
+
+/* Gutter colors and line number styling based of color scheme (dark / light) */
+
+/* Dark */
+.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
+  background-color: #073642;
+}
+
+.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
+  color: #586e75;
+  text-shadow: #021014 0 -1px;
+}
+
+/* Light */
+.cm-s-solarized.cm-s-light .CodeMirror-gutters {
+  background-color: #eee8d5;
+}
+
+.cm-s-solarized.cm-s-light .CodeMirror-linenumber {
+  color: #839496;
+}
+
+/* Common */
+.cm-s-solarized .CodeMirror-linenumber {
+  padding: 0 5px;
+}
+.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
+.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
+.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
+
+.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
+  color: #586e75;
+}
+
+/* Cursor */
+.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }
+
+/* Fat cursor */
+.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor { background: #77ee77; }
+.cm-s-solarized.cm-s-light .cm-animate-fat-cursor { background-color: #77ee77; }
+.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor { background: #586e75; }
+.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor { background-color: #586e75; }
+
+/* Active line */
+.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
+  background: rgba(255, 255, 255, 0.06);
+}
+.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
+  background: rgba(0, 0, 0, 0.06);
+}
diff --git a/pagure/static/vendor/codemirror/solarized.css b/pagure/static/vendor/codemirror/solarized.css
new file mode 120000
index 0000000..372d39a
--- /dev/null
+++ b/pagure/static/vendor/codemirror/solarized.css
@@ -0,0 +1 @@
+solarized-5.18.2.css
\ No newline at end of file
diff --git a/pagure/static/vendor/d3/d3.v3.js b/pagure/static/vendor/d3/d3.v3.js
new file mode 100644
index 0000000..ec7c983
--- /dev/null
+++ b/pagure/static/vendor/d3/d3.v3.js
@@ -0,0 +1,9554 @@
+!function() {
+  var d3 = {
+    version: "3.5.17"
+  };
+  var d3_arraySlice = [].slice, d3_array = function(list) {
+    return d3_arraySlice.call(list);
+  };
+  var d3_document = this.document;
+  function d3_documentElement(node) {
+    return node && (node.ownerDocument || node.document || node).documentElement;
+  }
+  function d3_window(node) {
+    return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);
+  }
+  if (d3_document) {
+    try {
+      d3_array(d3_document.documentElement.childNodes)[0].nodeType;
+    } catch (e) {
+      d3_array = function(list) {
+        var i = list.length, array = new Array(i);
+        while (i--) array[i] = list[i];
+        return array;
+      };
+    }
+  }
+  if (!Date.now) Date.now = function() {
+    return +new Date();
+  };
+  if (d3_document) {
+    try {
+      d3_document.createElement("DIV").style.setProperty("opacity", 0, "");
+    } catch (error) {
+      var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
+      d3_element_prototype.setAttribute = function(name, value) {
+        d3_element_setAttribute.call(this, name, value + "");
+      };
+      d3_element_prototype.setAttributeNS = function(space, local, value) {
+        d3_element_setAttributeNS.call(this, space, local, value + "");
+      };
+      d3_style_prototype.setProperty = function(name, value, priority) {
+        d3_style_setProperty.call(this, name, value + "", priority);
+      };
+    }
+  }
+  d3.ascending = d3_ascending;
+  function d3_ascending(a, b) {
+    return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
+  }
+  d3.descending = function(a, b) {
+    return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
+  };
+  d3.min = function(array, f) {
+    var i = -1, n = array.length, a, b;
+    if (arguments.length === 1) {
+      while (++i < n) if ((b = array[i]) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = array[i]) != null && a > b) a = b;
+    } else {
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
+    }
+    return a;
+  };
+  d3.max = function(array, f) {
+    var i = -1, n = array.length, a, b;
+    if (arguments.length === 1) {
+      while (++i < n) if ((b = array[i]) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = array[i]) != null && b > a) a = b;
+    } else {
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
+        a = b;
+        break;
+      }
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
+    }
+    return a;
+  };
+  d3.extent = function(array, f) {
+    var i = -1, n = array.length, a, b, c;
+    if (arguments.length === 1) {
+      while (++i < n) if ((b = array[i]) != null && b >= b) {
+        a = c = b;
+        break;
+      }
+      while (++i < n) if ((b = array[i]) != null) {
+        if (a > b) a = b;
+        if (c < b) c = b;
+      }
+    } else {
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {
+        a = c = b;
+        break;
+      }
+      while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
+        if (a > b) a = b;
+        if (c < b) c = b;
+      }
+    }
+    return [ a, c ];
+  };
+  function d3_number(x) {
+    return x === null ? NaN : +x;
+  }
+  function d3_numeric(x) {
+    return !isNaN(x);
+  }
+  d3.sum = function(array, f) {
+    var s = 0, n = array.length, a, i = -1;
+    if (arguments.length === 1) {
+      while (++i < n) if (d3_numeric(a = +array[i])) s += a;
+    } else {
+      while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;
+    }
+    return s;
+  };
+  d3.mean = function(array, f) {
+    var s = 0, n = array.length, a, i = -1, j = n;
+    if (arguments.length === 1) {
+      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a; else --j;
+    } else {
+      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a; else --j;
+    }
+    if (j) return s / j;
+  };
+  d3.quantile = function(values, p) {
+    var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
+    return e ? v + e * (values[h] - v) : v;
+  };
+  d3.median = function(array, f) {
+    var numbers = [], n = array.length, a, i = -1;
+    if (arguments.length === 1) {
+      while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);
+    } else {
+      while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);
+    }
+    if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), .5);
+  };
+  d3.variance = function(array, f) {
+    var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;
+    if (arguments.length === 1) {
+      while (++i < n) {
+        if (d3_numeric(a = d3_number(array[i]))) {
+          d = a - m;
+          m += d / ++j;
+          s += d * (a - m);
+        }
+      }
+    } else {
+      while (++i < n) {
+        if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {
+          d = a - m;
+          m += d / ++j;
+          s += d * (a - m);
+        }
+      }
+    }
+    if (j > 1) return s / (j - 1);
+  };
+  d3.deviation = function() {
+    var v = d3.variance.apply(this, arguments);
+    return v ? Math.sqrt(v) : v;
+  };
+  function d3_bisector(compare) {
+    return {
+      left: function(a, x, lo, hi) {
+        if (arguments.length < 3) lo = 0;
+        if (arguments.length < 4) hi = a.length;
+        while (lo < hi) {
+          var mid = lo + hi >>> 1;
+          if (compare(a[mid], x) < 0) lo = mid + 1; else hi = mid;
+        }
+        return lo;
+      },
+      right: function(a, x, lo, hi) {
+        if (arguments.length < 3) lo = 0;
+        if (arguments.length < 4) hi = a.length;
+        while (lo < hi) {
+          var mid = lo + hi >>> 1;
+          if (compare(a[mid], x) > 0) hi = mid; else lo = mid + 1;
+        }
+        return lo;
+      }
+    };
+  }
+  var d3_bisect = d3_bisector(d3_ascending);
+  d3.bisectLeft = d3_bisect.left;
+  d3.bisect = d3.bisectRight = d3_bisect.right;
+  d3.bisector = function(f) {
+    return d3_bisector(f.length === 1 ? function(d, x) {
+      return d3_ascending(f(d), x);
+    } : f);
+  };
+  d3.shuffle = function(array, i0, i1) {
+    if ((m = arguments.length) < 3) {
+      i1 = array.length;
+      if (m < 2) i0 = 0;
+    }
+    var m = i1 - i0, t, i;
+    while (m) {
+      i = Math.random() * m-- | 0;
+      t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;
+    }
+    return array;
+  };
+  d3.permute = function(array, indexes) {
+    var i = indexes.length, permutes = new Array(i);
+    while (i--) permutes[i] = array[indexes[i]];
+    return permutes;
+  };
+  d3.pairs = function(array) {
+    var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);
+    while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ];
+    return pairs;
+  };
+  d3.transpose = function(matrix) {
+    if (!(n = matrix.length)) return [];
+    for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {
+      for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {
+        row[j] = matrix[j][i];
+      }
+    }
+    return transpose;
+  };
+  function d3_transposeLength(d) {
+    return d.length;
+  }
+  d3.zip = function() {
+    return d3.transpose(arguments);
+  };
+  d3.keys = function(map) {
+    var keys = [];
+    for (var key in map) keys.push(key);
+    return keys;
+  };
+  d3.values = function(map) {
+    var values = [];
+    for (var key in map) values.push(map[key]);
+    return values;
+  };
+  d3.entries = function(map) {
+    var entries = [];
+    for (var key in map) entries.push({
+      key: key,
+      value: map[key]
+    });
+    return entries;
+  };
+  d3.merge = function(arrays) {
+    var n = arrays.length, m, i = -1, j = 0, merged, array;
+    while (++i < n) j += arrays[i].length;
+    merged = new Array(j);
+    while (--n >= 0) {
+      array = arrays[n];
+      m = array.length;
+      while (--m >= 0) {
+        merged[--j] = array[m];
+      }
+    }
+    return merged;
+  };
+  var abs = Math.abs;
+  d3.range = function(start, stop, step) {
+    if (arguments.length < 3) {
+      step = 1;
+      if (arguments.length < 2) {
+        stop = start;
+        start = 0;
+      }
+    }
+    if ((stop - start) / step === Infinity) throw new Error("infinite range");
+    var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;
+    start *= k, stop *= k, step *= k;
+    if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
+    return range;
+  };
+  function d3_range_integerScale(x) {
+    var k = 1;
+    while (x * k % 1) k *= 10;
+    return k;
+  }
+  function d3_class(ctor, properties) {
+    for (var key in properties) {
+      Object.defineProperty(ctor.prototype, key, {
+        value: properties[key],
+        enumerable: false
+      });
+    }
+  }
+  d3.map = function(object, f) {
+    var map = new d3_Map();
+    if (object instanceof d3_Map) {
+      object.forEach(function(key, value) {
+        map.set(key, value);
+      });
+    } else if (Array.isArray(object)) {
+      var i = -1, n = object.length, o;
+      if (arguments.length === 1) while (++i < n) map.set(i, object[i]); else while (++i < n) map.set(f.call(object, o = object[i], i), o);
+    } else {
+      for (var key in object) map.set(key, object[key]);
+    }
+    return map;
+  };
+  function d3_Map() {
+    this._ = Object.create(null);
+  }
+  var d3_map_proto = "__proto__", d3_map_zero = "\x00";
+  d3_class(d3_Map, {
+    has: d3_map_has,
+    get: function(key) {
+      return this._[d3_map_escape(key)];
+    },
+    set: function(key, value) {
+      return this._[d3_map_escape(key)] = value;
+    },
+    remove: d3_map_remove,
+    keys: d3_map_keys,
+    values: function() {
+      var values = [];
+      for (var key in this._) values.push(this._[key]);
+      return values;
+    },
+    entries: function() {
+      var entries = [];
+      for (var key in this._) entries.push({
+        key: d3_map_unescape(key),
+        value: this._[key]
+      });
+      return entries;
+    },
+    size: d3_map_size,
+    empty: d3_map_empty,
+    forEach: function(f) {
+      for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);
+    }
+  });
+  function d3_map_escape(key) {
+    return (key += "") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;
+  }
+  function d3_map_unescape(key) {
+    return (key += "")[0] === d3_map_zero ? key.slice(1) : key;
+  }
+  function d3_map_has(key) {
+    return d3_map_escape(key) in this._;
+  }
+  function d3_map_remove(key) {
+    return (key = d3_map_escape(key)) in this._ && delete this._[key];
+  }
+  function d3_map_keys() {
+    var keys = [];
+    for (var key in this._) keys.push(d3_map_unescape(key));
+    return keys;
+  }
+  function d3_map_size() {
+    var size = 0;
+    for (var key in this._) ++size;
+    return size;
+  }
+  function d3_map_empty() {
+    for (var key in this._) return false;
+    return true;
+  }
+  d3.nest = function() {
+    var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
+    function map(mapType, array, depth) {
+      if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
+      var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;
+      while (++i < n) {
+        if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
+          values.push(object);
+        } else {
+          valuesByKey.set(keyValue, [ object ]);
+        }
+      }
+      if (mapType) {
+        object = mapType();
+        setter = function(keyValue, values) {
+          object.set(keyValue, map(mapType, values, depth));
+        };
+      } else {
+        object = {};
+        setter = function(keyValue, values) {
+          object[keyValue] = map(mapType, values, depth);
+        };
+      }
+      valuesByKey.forEach(setter);
+      return object;
+    }
+    function entries(map, depth) {
+      if (depth >= keys.length) return map;
+      var array = [], sortKey = sortKeys[depth++];
+      map.forEach(function(key, keyMap) {
+        array.push({
+          key: key,
+          values: entries(keyMap, depth)
+        });
+      });
+      return sortKey ? array.sort(function(a, b) {
+        return sortKey(a.key, b.key);
+      }) : array;
+    }
+    nest.map = function(array, mapType) {
+      return map(mapType, array, 0);
+    };
+    nest.entries = function(array) {
+      return entries(map(d3.map, array, 0), 0);
+    };
+    nest.key = function(d) {
+      keys.push(d);
+      return nest;
+    };
+    nest.sortKeys = function(order) {
+      sortKeys[keys.length - 1] = order;
+      return nest;
+    };
+    nest.sortValues = function(order) {
+      sortValues = order;
+      return nest;
+    };
+    nest.rollup = function(f) {
+      rollup = f;
+      return nest;
+    };
+    return nest;
+  };
+  d3.set = function(array) {
+    var set = new d3_Set();
+    if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);
+    return set;
+  };
+  function d3_Set() {
+    this._ = Object.create(null);
+  }
+  d3_class(d3_Set, {
+    has: d3_map_has,
+    add: function(key) {
+      this._[d3_map_escape(key += "")] = true;
+      return key;
+    },
+    remove: d3_map_remove,
+    values: d3_map_keys,
+    size: d3_map_size,
+    empty: d3_map_empty,
+    forEach: function(f) {
+      for (var key in this._) f.call(this, d3_map_unescape(key));
+    }
+  });
+  d3.behavior = {};
+  function d3_identity(d) {
+    return d;
+  }
+  d3.rebind = function(target, source) {
+    var i = 1, n = arguments.length, method;
+    while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
+    return target;
+  };
+  function d3_rebind(target, source, method) {
+    return function() {
+      var value = method.apply(source, arguments);
+      return value === source ? target : value;
+    };
+  }
+  function d3_vendorSymbol(object, name) {
+    if (name in object) return name;
+    name = name.charAt(0).toUpperCase() + name.slice(1);
+    for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {
+      var prefixName = d3_vendorPrefixes[i] + name;
+      if (prefixName in object) return prefixName;
+    }
+  }
+  var d3_vendorPrefixes = [ "webkit", "ms", "moz", "Moz", "o", "O" ];
+  function d3_noop() {}
+  d3.dispatch = function() {
+    var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
+    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
+    return dispatch;
+  };
+  function d3_dispatch() {}
+  d3_dispatch.prototype.on = function(type, listener) {
+    var i = type.indexOf("."), name = "";
+    if (i >= 0) {
+      name = type.slice(i + 1);
+      type = type.slice(0, i);
+    }
+    if (type) return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
+    if (arguments.length === 2) {
+      if (listener == null) for (type in this) {
+        if (this.hasOwnProperty(type)) this[type].on(name, null);
+      }
+      return this;
+    }
+  };
+  function d3_dispatch_event(dispatch) {
+    var listeners = [], listenerByName = new d3_Map();
+    function event() {
+      var z = listeners, i = -1, n = z.length, l;
+      while (++i < n) if (l = z[i].on) l.apply(this, arguments);
+      return dispatch;
+    }
+    event.on = function(name, listener) {
+      var l = listenerByName.get(name), i;
+      if (arguments.length < 2) return l && l.on;
+      if (l) {
+        l.on = null;
+        listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
+        listenerByName.remove(name);
+      }
+      if (listener) listeners.push(listenerByName.set(name, {
+        on: listener
+      }));
+      return dispatch;
+    };
+    return event;
+  }
+  d3.event = null;
+  function d3_eventPreventDefault() {
+    d3.event.preventDefault();
+  }
+  function d3_eventSource() {
+    var e = d3.event, s;
+    while (s = e.sourceEvent) e = s;
+    return e;
+  }
+  function d3_eventDispatch(target) {
+    var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
+    while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
+    dispatch.of = function(thiz, argumentz) {
+      return function(e1) {
+        try {
+          var e0 = e1.sourceEvent = d3.event;
+          e1.target = target;
+          d3.event = e1;
+          dispatch[e1.type].apply(thiz, argumentz);
+        } finally {
+          d3.event = e0;
+        }
+      };
+    };
+    return dispatch;
+  }
+  d3.requote = function(s) {
+    return s.replace(d3_requote_re, "\\$&");
+  };
+  var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
+  var d3_subclass = {}.__proto__ ? function(object, prototype) {
+    object.__proto__ = prototype;
+  } : function(object, prototype) {
+    for (var property in prototype) object[property] = prototype[property];
+  };
+  function d3_selection(groups) {
+    d3_subclass(groups, d3_selectionPrototype);
+    return groups;
+  }
+  var d3_select = function(s, n) {
+    return n.querySelector(s);
+  }, d3_selectAll = function(s, n) {
+    return n.querySelectorAll(s);
+  }, d3_selectMatches = function(n, s) {
+    var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, "matchesSelector")];
+    d3_selectMatches = function(n, s) {
+      return d3_selectMatcher.call(n, s);
+    };
+    return d3_selectMatches(n, s);
+  };
+  if (typeof Sizzle === "function") {
+    d3_select = function(s, n) {
+      return Sizzle(s, n)[0] || null;
+    };
+    d3_selectAll = Sizzle;
+    d3_selectMatches = Sizzle.matchesSelector;
+  }
+  d3.selection = function() {
+    return d3.select(d3_document.documentElement);
+  };
+  var d3_selectionPrototype = d3.selection.prototype = [];
+  d3_selectionPrototype.select = function(selector) {
+    var subgroups = [], subgroup, subnode, group, node;
+    selector = d3_selection_selector(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = (group = this[j]).parentNode;
+      for (var i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroup.push(subnode = selector.call(node, node.__data__, i, j));
+          if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_selector(selector) {
+    return typeof selector === "function" ? selector : function() {
+      return d3_select(selector, this);
+    };
+  }
+  d3_selectionPrototype.selectAll = function(selector) {
+    var subgroups = [], subgroup, node;
+    selector = d3_selection_selectorAll(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));
+          subgroup.parentNode = node;
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_selectorAll(selector) {
+    return typeof selector === "function" ? selector : function() {
+      return d3_selectAll(selector, this);
+    };
+  }
+  var d3_nsXhtml = "http://www.w3.org/1999/xhtml";
+  var d3_nsPrefix = {
+    svg: "http://www.w3.org/2000/svg",
+    xhtml: d3_nsXhtml,
+    xlink: "http://www.w3.org/1999/xlink",
+    xml: "http://www.w3.org/XML/1998/namespace",
+    xmlns: "http://www.w3.org/2000/xmlns/"
+  };
+  d3.ns = {
+    prefix: d3_nsPrefix,
+    qualify: function(name) {
+      var i = name.indexOf(":"), prefix = name;
+      if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
+      return d3_nsPrefix.hasOwnProperty(prefix) ? {
+        space: d3_nsPrefix[prefix],
+        local: name
+      } : name;
+    }
+  };
+  d3_selectionPrototype.attr = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") {
+        var node = this.node();
+        name = d3.ns.qualify(name);
+        return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
+      }
+      for (value in name) this.each(d3_selection_attr(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_attr(name, value));
+  };
+  function d3_selection_attr(name, value) {
+    name = d3.ns.qualify(name);
+    function attrNull() {
+      this.removeAttribute(name);
+    }
+    function attrNullNS() {
+      this.removeAttributeNS(name.space, name.local);
+    }
+    function attrConstant() {
+      this.setAttribute(name, value);
+    }
+    function attrConstantNS() {
+      this.setAttributeNS(name.space, name.local, value);
+    }
+    function attrFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
+    }
+    function attrFunctionNS() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
+    }
+    return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
+  }
+  function d3_collapse(s) {
+    return s.trim().replace(/\s+/g, " ");
+  }
+  d3_selectionPrototype.classed = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") {
+        var node = this.node(), n = (name = d3_selection_classes(name)).length, i = -1;
+        if (value = node.classList) {
+          while (++i < n) if (!value.contains(name[i])) return false;
+        } else {
+          value = node.getAttribute("class");
+          while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
+        }
+        return true;
+      }
+      for (value in name) this.each(d3_selection_classed(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_classed(name, value));
+  };
+  function d3_selection_classedRe(name) {
+    return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
+  }
+  function d3_selection_classes(name) {
+    return (name + "").trim().split(/^|\s+/);
+  }
+  function d3_selection_classed(name, value) {
+    name = d3_selection_classes(name).map(d3_selection_classedName);
+    var n = name.length;
+    function classedConstant() {
+      var i = -1;
+      while (++i < n) name[i](this, value);
+    }
+    function classedFunction() {
+      var i = -1, x = value.apply(this, arguments);
+      while (++i < n) name[i](this, x);
+    }
+    return typeof value === "function" ? classedFunction : classedConstant;
+  }
+  function d3_selection_classedName(name) {
+    var re = d3_selection_classedRe(name);
+    return function(node, value) {
+      if (c = node.classList) return value ? c.add(name) : c.remove(name);
+      var c = node.getAttribute("class") || "";
+      if (value) {
+        re.lastIndex = 0;
+        if (!re.test(c)) node.setAttribute("class", d3_collapse(c + " " + name));
+      } else {
+        node.setAttribute("class", d3_collapse(c.replace(re, " ")));
+      }
+    };
+  }
+  d3_selectionPrototype.style = function(name, value, priority) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof name !== "string") {
+        if (n < 2) value = "";
+        for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
+        return this;
+      }
+      if (n < 2) {
+        var node = this.node();
+        return d3_window(node).getComputedStyle(node, null).getPropertyValue(name);
+      }
+      priority = "";
+    }
+    return this.each(d3_selection_style(name, value, priority));
+  };
+  function d3_selection_style(name, value, priority) {
+    function styleNull() {
+      this.style.removeProperty(name);
+    }
+    function styleConstant() {
+      this.style.setProperty(name, value, priority);
+    }
+    function styleFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
+    }
+    return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
+  }
+  d3_selectionPrototype.property = function(name, value) {
+    if (arguments.length < 2) {
+      if (typeof name === "string") return this.node()[name];
+      for (value in name) this.each(d3_selection_property(value, name[value]));
+      return this;
+    }
+    return this.each(d3_selection_property(name, value));
+  };
+  function d3_selection_property(name, value) {
+    function propertyNull() {
+      delete this[name];
+    }
+    function propertyConstant() {
+      this[name] = value;
+    }
+    function propertyFunction() {
+      var x = value.apply(this, arguments);
+      if (x == null) delete this[name]; else this[name] = x;
+    }
+    return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
+  }
+  d3_selectionPrototype.text = function(value) {
+    return arguments.length ? this.each(typeof value === "function" ? function() {
+      var v = value.apply(this, arguments);
+      this.textContent = v == null ? "" : v;
+    } : value == null ? function() {
+      this.textContent = "";
+    } : function() {
+      this.textContent = value;
+    }) : this.node().textContent;
+  };
+  d3_selectionPrototype.html = function(value) {
+    return arguments.length ? this.each(typeof value === "function" ? function() {
+      var v = value.apply(this, arguments);
+      this.innerHTML = v == null ? "" : v;
+    } : value == null ? function() {
+      this.innerHTML = "";
+    } : function() {
+      this.innerHTML = value;
+    }) : this.node().innerHTML;
+  };
+  d3_selectionPrototype.append = function(name) {
+    name = d3_selection_creator(name);
+    return this.select(function() {
+      return this.appendChild(name.apply(this, arguments));
+    });
+  };
+  function d3_selection_creator(name) {
+    function create() {
+      var document = this.ownerDocument, namespace = this.namespaceURI;
+      return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name);
+    }
+    function createNS() {
+      return this.ownerDocument.createElementNS(name.space, name.local);
+    }
+    return typeof name === "function" ? name : (name = d3.ns.qualify(name)).local ? createNS : create;
+  }
+  d3_selectionPrototype.insert = function(name, before) {
+    name = d3_selection_creator(name);
+    before = d3_selection_selector(before);
+    return this.select(function() {
+      return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);
+    });
+  };
+  d3_selectionPrototype.remove = function() {
+    return this.each(d3_selectionRemove);
+  };
+  function d3_selectionRemove() {
+    var parent = this.parentNode;
+    if (parent) parent.removeChild(this);
+  }
+  d3_selectionPrototype.data = function(value, key) {
+    var i = -1, n = this.length, group, node;
+    if (!arguments.length) {
+      value = new Array(n = (group = this[0]).length);
+      while (++i < n) {
+        if (node = group[i]) {
+          value[i] = node.__data__;
+        }
+      }
+      return value;
+    }
+    function bind(group, groupData) {
+      var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
+      if (key) {
+        var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue;
+        for (i = -1; ++i < n; ) {
+          if (node = group[i]) {
+            if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) {
+              exitNodes[i] = node;
+            } else {
+              nodeByKeyValue.set(keyValue, node);
+            }
+            keyValues[i] = keyValue;
+          }
+        }
+        for (i = -1; ++i < m; ) {
+          if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) {
+            enterNodes[i] = d3_selection_dataNode(nodeData);
+          } else if (node !== true) {
+            updateNodes[i] = node;
+            node.__data__ = nodeData;
+          }
+          nodeByKeyValue.set(keyValue, true);
+        }
+        for (i = -1; ++i < n; ) {
+          if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) {
+            exitNodes[i] = group[i];
+          }
+        }
+      } else {
+        for (i = -1; ++i < n0; ) {
+          node = group[i];
+          nodeData = groupData[i];
+          if (node) {
+            node.__data__ = nodeData;
+            updateNodes[i] = node;
+          } else {
+            enterNodes[i] = d3_selection_dataNode(nodeData);
+          }
+        }
+        for (;i < m; ++i) {
+          enterNodes[i] = d3_selection_dataNode(groupData[i]);
+        }
+        for (;i < n; ++i) {
+          exitNodes[i] = group[i];
+        }
+      }
+      enterNodes.update = updateNodes;
+      enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
+      enter.push(enterNodes);
+      update.push(updateNodes);
+      exit.push(exitNodes);
+    }
+    var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
+    if (typeof value === "function") {
+      while (++i < n) {
+        bind(group = this[i], value.call(group, group.parentNode.__data__, i));
+      }
+    } else {
+      while (++i < n) {
+        bind(group = this[i], value);
+      }
+    }
+    update.enter = function() {
+      return enter;
+    };
+    update.exit = function() {
+      return exit;
+    };
+    return update;
+  };
+  function d3_selection_dataNode(data) {
+    return {
+      __data__: data
+    };
+  }
+  d3_selectionPrototype.datum = function(value) {
+    return arguments.length ? this.property("__data__", value) : this.property("__data__");
+  };
+  d3_selectionPrototype.filter = function(filter) {
+    var subgroups = [], subgroup, group, node;
+    if (typeof filter !== "function") filter = d3_selection_filter(filter);
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = (group = this[j]).parentNode;
+      for (var i = 0, n = group.length; i < n; i++) {
+        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
+          subgroup.push(node);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  function d3_selection_filter(selector) {
+    return function() {
+      return d3_selectMatches(this, selector);
+    };
+  }
+  d3_selectionPrototype.order = function() {
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
+        if (node = group[i]) {
+          if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
+          next = node;
+        }
+      }
+    }
+    return this;
+  };
+  d3_selectionPrototype.sort = function(comparator) {
+    comparator = d3_selection_sortComparator.apply(this, arguments);
+    for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
+    return this.order();
+  };
+  function d3_selection_sortComparator(comparator) {
+    if (!arguments.length) comparator = d3_ascending;
+    return function(a, b) {
+      return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
+    };
+  }
+  d3_selectionPrototype.each = function(callback) {
+    return d3_selection_each(this, function(node, i, j) {
+      callback.call(node, node.__data__, i, j);
+    });
+  };
+  function d3_selection_each(groups, callback) {
+    for (var j = 0, m = groups.length; j < m; j++) {
+      for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
+        if (node = group[i]) callback(node, i, j);
+      }
+    }
+    return groups;
+  }
+  d3_selectionPrototype.call = function(callback) {
+    var args = d3_array(arguments);
+    callback.apply(args[0] = this, args);
+    return this;
+  };
+  d3_selectionPrototype.empty = function() {
+    return !this.node();
+  };
+  d3_selectionPrototype.node = function() {
+    for (var j = 0, m = this.length; j < m; j++) {
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        var node = group[i];
+        if (node) return node;
+      }
+    }
+    return null;
+  };
+  d3_selectionPrototype.size = function() {
+    var n = 0;
+    d3_selection_each(this, function() {
+      ++n;
+    });
+    return n;
+  };
+  function d3_selection_enter(selection) {
+    d3_subclass(selection, d3_selection_enterPrototype);
+    return selection;
+  }
+  var d3_selection_enterPrototype = [];
+  d3.selection.enter = d3_selection_enter;
+  d3.selection.enter.prototype = d3_selection_enterPrototype;
+  d3_selection_enterPrototype.append = d3_selectionPrototype.append;
+  d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
+  d3_selection_enterPrototype.node = d3_selectionPrototype.node;
+  d3_selection_enterPrototype.call = d3_selectionPrototype.call;
+  d3_selection_enterPrototype.size = d3_selectionPrototype.size;
+  d3_selection_enterPrototype.select = function(selector) {
+    var subgroups = [], subgroup, subnode, upgroup, group, node;
+    for (var j = -1, m = this.length; ++j < m; ) {
+      upgroup = (group = this[j]).update;
+      subgroups.push(subgroup = []);
+      subgroup.parentNode = group.parentNode;
+      for (var i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));
+          subnode.__data__ = node.__data__;
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_selection(subgroups);
+  };
+  d3_selection_enterPrototype.insert = function(name, before) {
+    if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);
+    return d3_selectionPrototype.insert.call(this, name, before);
+  };
+  function d3_selection_enterInsertBefore(enter) {
+    var i0, j0;
+    return function(d, i, j) {
+      var group = enter[j].update, n = group.length, node;
+      if (j != j0) j0 = j, i0 = 0;
+      if (i >= i0) i0 = i + 1;
+      while (!(node = group[i0]) && ++i0 < n) ;
+      return node;
+    };
+  }
+  d3.select = function(node) {
+    var group;
+    if (typeof node === "string") {
+      group = [ d3_select(node, d3_document) ];
+      group.parentNode = d3_document.documentElement;
+    } else {
+      group = [ node ];
+      group.parentNode = d3_documentElement(node);
+    }
+    return d3_selection([ group ]);
+  };
+  d3.selectAll = function(nodes) {
+    var group;
+    if (typeof nodes === "string") {
+      group = d3_array(d3_selectAll(nodes, d3_document));
+      group.parentNode = d3_document.documentElement;
+    } else {
+      group = d3_array(nodes);
+      group.parentNode = null;
+    }
+    return d3_selection([ group ]);
+  };
+  d3_selectionPrototype.on = function(type, listener, capture) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof type !== "string") {
+        if (n < 2) listener = false;
+        for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
+        return this;
+      }
+      if (n < 2) return (n = this.node()["__on" + type]) && n._;
+      capture = false;
+    }
+    return this.each(d3_selection_on(type, listener, capture));
+  };
+  function d3_selection_on(type, listener, capture) {
+    var name = "__on" + type, i = type.indexOf("."), wrap = d3_selection_onListener;
+    if (i > 0) type = type.slice(0, i);
+    var filter = d3_selection_onFilters.get(type);
+    if (filter) type = filter, wrap = d3_selection_onFilter;
+    function onRemove() {
+      var l = this[name];
+      if (l) {
+        this.removeEventListener(type, l, l.$);
+        delete this[name];
+      }
+    }
+    function onAdd() {
+      var l = wrap(listener, d3_array(arguments));
+      onRemove.call(this);
+      this.addEventListener(type, this[name] = l, l.$ = capture);
+      l._ = listener;
+    }
+    function removeAll() {
+      var re = new RegExp("^__on([^.]+)" + d3.requote(type) + "$"), match;
+      for (var name in this) {
+        if (match = name.match(re)) {
+          var l = this[name];
+          this.removeEventListener(match[1], l, l.$);
+          delete this[name];
+        }
+      }
+    }
+    return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;
+  }
+  var d3_selection_onFilters = d3.map({
+    mouseenter: "mouseover",
+    mouseleave: "mouseout"
+  });
+  if (d3_document) {
+    d3_selection_onFilters.forEach(function(k) {
+      if ("on" + k in d3_document) d3_selection_onFilters.remove(k);
+    });
+  }
+  function d3_selection_onListener(listener, argumentz) {
+    return function(e) {
+      var o = d3.event;
+      d3.event = e;
+      argumentz[0] = this.__data__;
+      try {
+        listener.apply(this, argumentz);
+      } finally {
+        d3.event = o;
+      }
+    };
+  }
+  function d3_selection_onFilter(listener, argumentz) {
+    var l = d3_selection_onListener(listener, argumentz);
+    return function(e) {
+      var target = this, related = e.relatedTarget;
+      if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {
+        l.call(target, e);
+      }
+    };
+  }
+  var d3_event_dragSelect, d3_event_dragId = 0;
+  function d3_event_dragSuppress(node) {
+    var name = ".dragsuppress-" + ++d3_event_dragId, click = "click" + name, w = d3.select(d3_window(node)).on("touchmove" + name, d3_eventPreventDefault).on("dragstart" + name, d3_eventPreventDefault).on("selectstart" + name, d3_eventPreventDefault);
+    if (d3_event_dragSelect == null) {
+      d3_event_dragSelect = "onselectstart" in node ? false : d3_vendorSymbol(node.style, "userSelect");
+    }
+    if (d3_event_dragSelect) {
+      var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];
+      style[d3_event_dragSelect] = "none";
+    }
+    return function(suppressClick) {
+      w.on(name, null);
+      if (d3_event_dragSelect) style[d3_event_dragSelect] = select;
+      if (suppressClick) {
+        var off = function() {
+          w.on(click, null);
+        };
+        w.on(click, function() {
+          d3_eventPreventDefault();
+          off();
+        }, true);
+        setTimeout(off, 0);
+      }
+    };
+  }
+  d3.mouse = function(container) {
+    return d3_mousePoint(container, d3_eventSource());
+  };
+  var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;
+  function d3_mousePoint(container, e) {
+    if (e.changedTouches) e = e.changedTouches[0];
+    var svg = container.ownerSVGElement || container;
+    if (svg.createSVGPoint) {
+      var point = svg.createSVGPoint();
+      if (d3_mouse_bug44083 < 0) {
+        var window = d3_window(container);
+        if (window.scrollX || window.scrollY) {
+          svg = d3.select("body").append("svg").style({
+            position: "absolute",
+            top: 0,
+            left: 0,
+            margin: 0,
+            padding: 0,
+            border: "none"
+          }, "important");
+          var ctm = svg[0][0].getScreenCTM();
+          d3_mouse_bug44083 = !(ctm.f || ctm.e);
+          svg.remove();
+        }
+      }
+      if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX,
+      point.y = e.clientY;
+      point = point.matrixTransform(container.getScreenCTM().inverse());
+      return [ point.x, point.y ];
+    }
+    var rect = container.getBoundingClientRect();
+    return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
+  }
+  d3.touch = function(container, touches, identifier) {
+    if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;
+    if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {
+      if ((touch = touches[i]).identifier === identifier) {
+        return d3_mousePoint(container, touch);
+      }
+    }
+  };
+  d3.behavior.drag = function() {
+    var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, "mousemove", "mouseup"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, "touchmove", "touchend");
+    function drag() {
+      this.on("mousedown.drag", mousedown).on("touchstart.drag", touchstart);
+    }
+    function dragstart(id, position, subject, move, end) {
+      return function() {
+        var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);
+        if (origin) {
+          dragOffset = origin.apply(that, arguments);
+          dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ];
+        } else {
+          dragOffset = [ 0, 0 ];
+        }
+        dispatch({
+          type: "dragstart"
+        });
+        function moved() {
+          var position1 = position(parent, dragId), dx, dy;
+          if (!position1) return;
+          dx = position1[0] - position0[0];
+          dy = position1[1] - position0[1];
+          dragged |= dx | dy;
+          position0 = position1;
+          dispatch({
+            type: "drag",
+            x: position1[0] + dragOffset[0],
+            y: position1[1] + dragOffset[1],
+            dx: dx,
+            dy: dy
+          });
+        }
+        function ended() {
+          if (!position(parent, dragId)) return;
+          dragSubject.on(move + dragName, null).on(end + dragName, null);
+          dragRestore(dragged);
+          dispatch({
+            type: "dragend"
+          });
+        }
+      };
+    }
+    drag.origin = function(x) {
+      if (!arguments.length) return origin;
+      origin = x;
+      return drag;
+    };
+    return d3.rebind(drag, event, "on");
+  };
+  function d3_behavior_dragTouchId() {
+    return d3.event.changedTouches[0].identifier;
+  }
+  d3.touches = function(container, touches) {
+    if (arguments.length < 2) touches = d3_eventSource().touches;
+    return touches ? d3_array(touches).map(function(touch) {
+      var point = d3_mousePoint(container, touch);
+      point.identifier = touch.identifier;
+      return point;
+    }) : [];
+  };
+  var ε = 1e-6, ε2 = ε * ε, π = Math.PI, τ = 2 * π, τε = τ - ε, halfπ = π / 2, d3_radians = π / 180, d3_degrees = 180 / π;
+  function d3_sgn(x) {
+    return x > 0 ? 1 : x < 0 ? -1 : 0;
+  }
+  function d3_cross2d(a, b, c) {
+    return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);
+  }
+  function d3_acos(x) {
+    return x > 1 ? 0 : x < -1 ? π : Math.acos(x);
+  }
+  function d3_asin(x) {
+    return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);
+  }
+  function d3_sinh(x) {
+    return ((x = Math.exp(x)) - 1 / x) / 2;
+  }
+  function d3_cosh(x) {
+    return ((x = Math.exp(x)) + 1 / x) / 2;
+  }
+  function d3_tanh(x) {
+    return ((x = Math.exp(2 * x)) - 1) / (x + 1);
+  }
+  function d3_haversin(x) {
+    return (x = Math.sin(x / 2)) * x;
+  }
+  var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4;
+  d3.interpolateZoom = function(p0, p1) {
+    var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;
+    if (d2 < ε2) {
+      S = Math.log(w1 / w0) / ρ;
+      i = function(t) {
+        return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ];
+      };
+    } else {
+      var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);
+      S = (r1 - r0) / ρ;
+      i = function(t) {
+        var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));
+        return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ];
+      };
+    }
+    i.duration = S * 1e3;
+    return i;
+  };
+  d3.behavior.zoom = function() {
+    var view = {
+      x: 0,
+      y: 0,
+      k: 1
+    }, translate0, center0, center, size = [ 960, 500 ], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = "mousedown.zoom", mousemove = "mousemove.zoom", mouseup = "mouseup.zoom", mousewheelTimer, touchstart = "touchstart.zoom", touchtime, event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"), x0, x1, y0, y1;
+    if (!d3_behavior_zoomWheel) {
+      d3_behavior_zoomWheel = "onwheel" in d3_document ? (d3_behavior_zoomDelta = function() {
+        return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
+      }, "wheel") : "onmousewheel" in d3_document ? (d3_behavior_zoomDelta = function() {
+        return d3.event.wheelDelta;
+      }, "mousewheel") : (d3_behavior_zoomDelta = function() {
+        return -d3.event.detail;
+      }, "MozMousePixelScroll");
+    }
+    function zoom(g) {
+      g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + ".zoom", mousewheeled).on("dblclick.zoom", dblclicked).on(touchstart, touchstarted);
+    }
+    zoom.event = function(g) {
+      g.each(function() {
+        var dispatch = event.of(this, arguments), view1 = view;
+        if (d3_transitionInheritId) {
+          d3.select(this).transition().each("start.zoom", function() {
+            view = this.__chart__ || {
+              x: 0,
+              y: 0,
+              k: 1
+            };
+            zoomstarted(dispatch);
+          }).tween("zoom:zoom", function() {
+            var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([ (cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k ], [ (cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k ]);
+            return function(t) {
+              var l = i(t), k = dx / l[2];
+              this.__chart__ = view = {
+                x: cx - l[0] * k,
+                y: cy - l[1] * k,
+                k: k
+              };
+              zoomed(dispatch);
+            };
+          }).each("interrupt.zoom", function() {
+            zoomended(dispatch);
+          }).each("end.zoom", function() {
+            zoomended(dispatch);
+          });
+        } else {
+          this.__chart__ = view;
+          zoomstarted(dispatch);
+          zoomed(dispatch);
+          zoomended(dispatch);
+        }
+      });
+    };
+    zoom.translate = function(_) {
+      if (!arguments.length) return [ view.x, view.y ];
+      view = {
+        x: +_[0],
+        y: +_[1],
+        k: view.k
+      };
+      rescale();
+      return zoom;
+    };
+    zoom.scale = function(_) {
+      if (!arguments.length) return view.k;
+      view = {
+        x: view.x,
+        y: view.y,
+        k: null
+      };
+      scaleTo(+_);
+      rescale();
+      return zoom;
+    };
+    zoom.scaleExtent = function(_) {
+      if (!arguments.length) return scaleExtent;
+      scaleExtent = _ == null ? d3_behavior_zoomInfinity : [ +_[0], +_[1] ];
+      return zoom;
+    };
+    zoom.center = function(_) {
+      if (!arguments.length) return center;
+      center = _ && [ +_[0], +_[1] ];
+      return zoom;
+    };
+    zoom.size = function(_) {
+      if (!arguments.length) return size;
+      size = _ && [ +_[0], +_[1] ];
+      return zoom;
+    };
+    zoom.duration = function(_) {
+      if (!arguments.length) return duration;
+      duration = +_;
+      return zoom;
+    };
+    zoom.x = function(z) {
+      if (!arguments.length) return x1;
+      x1 = z;
+      x0 = z.copy();
+      view = {
+        x: 0,
+        y: 0,
+        k: 1
+      };
+      return zoom;
+    };
+    zoom.y = function(z) {
+      if (!arguments.length) return y1;
+      y1 = z;
+      y0 = z.copy();
+      view = {
+        x: 0,
+        y: 0,
+        k: 1
+      };
+      return zoom;
+    };
+    function location(p) {
+      return [ (p[0] - view.x) / view.k, (p[1] - view.y) / view.k ];
+    }
+    function point(l) {
+      return [ l[0] * view.k + view.x, l[1] * view.k + view.y ];
+    }
+    function scaleTo(s) {
+      view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
+    }
+    function translateTo(p, l) {
+      l = point(l);
+      view.x += p[0] - l[0];
+      view.y += p[1] - l[1];
+    }
+    function zoomTo(that, p, l, k) {
+      that.__chart__ = {
+        x: view.x,
+        y: view.y,
+        k: view.k
+      };
+      scaleTo(Math.pow(2, k));
+      translateTo(center0 = p, l);
+      that = d3.select(that);
+      if (duration > 0) that = that.transition().duration(duration);
+      that.call(zoom.event);
+    }
+    function rescale() {
+      if (x1) x1.domain(x0.range().map(function(x) {
+        return (x - view.x) / view.k;
+      }).map(x0.invert));
+      if (y1) y1.domain(y0.range().map(function(y) {
+        return (y - view.y) / view.k;
+      }).map(y0.invert));
+    }
+    function zoomstarted(dispatch) {
+      if (!zooming++) dispatch({
+        type: "zoomstart"
+      });
+    }
+    function zoomed(dispatch) {
+      rescale();
+      dispatch({
+        type: "zoom",
+        scale: view.k,
+        translate: [ view.x, view.y ]
+      });
+    }
+    function zoomended(dispatch) {
+      if (!--zooming) dispatch({
+        type: "zoomend"
+      }), center0 = null;
+    }
+    function mousedowned() {
+      var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);
+      d3_selection_interrupt.call(that);
+      zoomstarted(dispatch);
+      function moved() {
+        dragged = 1;
+        translateTo(d3.mouse(that), location0);
+        zoomed(dispatch);
+      }
+      function ended() {
+        subject.on(mousemove, null).on(mouseup, null);
+        dragRestore(dragged);
+        zoomended(dispatch);
+      }
+    }
+    function touchstarted() {
+      var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = ".zoom-" + d3.event.changedTouches[0].identifier, touchmove = "touchmove" + zoomName, touchend = "touchend" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);
+      started();
+      zoomstarted(dispatch);
+      subject.on(mousedown, null).on(touchstart, started);
+      function relocate() {
+        var touches = d3.touches(that);
+        scale0 = view.k;
+        touches.forEach(function(t) {
+          if (t.identifier in locations0) locations0[t.identifier] = location(t);
+        });
+        return touches;
+      }
+      function started() {
+        var target = d3.event.target;
+        d3.select(target).on(touchmove, moved).on(touchend, ended);
+        targets.push(target);
+        var changed = d3.event.changedTouches;
+        for (var i = 0, n = changed.length; i < n; ++i) {
+          locations0[changed[i].identifier] = null;
+        }
+        var touches = relocate(), now = Date.now();
+        if (touches.length === 1) {
+          if (now - touchtime < 500) {
+            var p = touches[0];
+            zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);
+            d3_eventPreventDefault();
+          }
+          touchtime = now;
+        } else if (touches.length > 1) {
+          var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];
+          distance0 = dx * dx + dy * dy;
+        }
+      }
+      function moved() {
+        var touches = d3.touches(that), p0, l0, p1, l1;
+        d3_selection_interrupt.call(that);
+        for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
+          p1 = touches[i];
+          if (l1 = locations0[p1.identifier]) {
+            if (l0) break;
+            p0 = p1, l0 = l1;
+          }
+        }
+        if (l1) {
+          var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);
+          p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
+          l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
+          scaleTo(scale1 * scale0);
+        }
+        touchtime = null;
+        translateTo(p0, l0);
+        zoomed(dispatch);
+      }
+      function ended() {
+        if (d3.event.touches.length) {
+          var changed = d3.event.changedTouches;
+          for (var i = 0, n = changed.length; i < n; ++i) {
+            delete locations0[changed[i].identifier];
+          }
+          for (var identifier in locations0) {
+            return void relocate();
+          }
+        }
+        d3.selectAll(targets).on(zoomName, null);
+        subject.on(mousedown, mousedowned).on(touchstart, touchstarted);
+        dragRestore();
+        zoomended(dispatch);
+      }
+    }
+    function mousewheeled() {
+      var dispatch = event.of(this, arguments);
+      if (mousewheelTimer) clearTimeout(mousewheelTimer); else d3_selection_interrupt.call(this),
+      translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);
+      mousewheelTimer = setTimeout(function() {
+        mousewheelTimer = null;
+        zoomended(dispatch);
+      }, 50);
+      d3_eventPreventDefault();
+      scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
+      translateTo(center0, translate0);
+      zoomed(dispatch);
+    }
+    function dblclicked() {
+      var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;
+      zoomTo(this, p, location(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);
+    }
+    return d3.rebind(zoom, event, "on");
+  };
+  var d3_behavior_zoomInfinity = [ 0, Infinity ], d3_behavior_zoomDelta, d3_behavior_zoomWheel;
+  d3.color = d3_color;
+  function d3_color() {}
+  d3_color.prototype.toString = function() {
+    return this.rgb() + "";
+  };
+  d3.hsl = d3_hsl;
+  function d3_hsl(h, s, l) {
+    return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);
+  }
+  var d3_hslPrototype = d3_hsl.prototype = new d3_color();
+  d3_hslPrototype.brighter = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return new d3_hsl(this.h, this.s, this.l / k);
+  };
+  d3_hslPrototype.darker = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return new d3_hsl(this.h, this.s, k * this.l);
+  };
+  d3_hslPrototype.rgb = function() {
+    return d3_hsl_rgb(this.h, this.s, this.l);
+  };
+  function d3_hsl_rgb(h, s, l) {
+    var m1, m2;
+    h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;
+    s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;
+    l = l < 0 ? 0 : l > 1 ? 1 : l;
+    m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
+    m1 = 2 * l - m2;
+    function v(h) {
+      if (h > 360) h -= 360; else if (h < 0) h += 360;
+      if (h < 60) return m1 + (m2 - m1) * h / 60;
+      if (h < 180) return m2;
+      if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
+      return m1;
+    }
+    function vv(h) {
+      return Math.round(v(h) * 255);
+    }
+    return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));
+  }
+  d3.hcl = d3_hcl;
+  function d3_hcl(h, c, l) {
+    return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);
+  }
+  var d3_hclPrototype = d3_hcl.prototype = new d3_color();
+  d3_hclPrototype.brighter = function(k) {
+    return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
+  };
+  d3_hclPrototype.darker = function(k) {
+    return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
+  };
+  d3_hclPrototype.rgb = function() {
+    return d3_hcl_lab(this.h, this.c, this.l).rgb();
+  };
+  function d3_hcl_lab(h, c, l) {
+    if (isNaN(h)) h = 0;
+    if (isNaN(c)) c = 0;
+    return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
+  }
+  d3.lab = d3_lab;
+  function d3_lab(l, a, b) {
+    return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);
+  }
+  var d3_lab_K = 18;
+  var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
+  var d3_labPrototype = d3_lab.prototype = new d3_color();
+  d3_labPrototype.brighter = function(k) {
+    return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
+  };
+  d3_labPrototype.darker = function(k) {
+    return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
+  };
+  d3_labPrototype.rgb = function() {
+    return d3_lab_rgb(this.l, this.a, this.b);
+  };
+  function d3_lab_rgb(l, a, b) {
+    var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
+    x = d3_lab_xyz(x) * d3_lab_X;
+    y = d3_lab_xyz(y) * d3_lab_Y;
+    z = d3_lab_xyz(z) * d3_lab_Z;
+    return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
+  }
+  function d3_lab_hcl(l, a, b) {
+    return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);
+  }
+  function d3_lab_xyz(x) {
+    return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
+  }
+  function d3_xyz_lab(x) {
+    return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
+  }
+  function d3_xyz_rgb(r) {
+    return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
+  }
+  d3.rgb = d3_rgb;
+  function d3_rgb(r, g, b) {
+    return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);
+  }
+  function d3_rgbNumber(value) {
+    return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);
+  }
+  function d3_rgbString(value) {
+    return d3_rgbNumber(value) + "";
+  }
+  var d3_rgbPrototype = d3_rgb.prototype = new d3_color();
+  d3_rgbPrototype.brighter = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    var r = this.r, g = this.g, b = this.b, i = 30;
+    if (!r && !g && !b) return new d3_rgb(i, i, i);
+    if (r && r < i) r = i;
+    if (g && g < i) g = i;
+    if (b && b < i) b = i;
+    return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));
+  };
+  d3_rgbPrototype.darker = function(k) {
+    k = Math.pow(.7, arguments.length ? k : 1);
+    return new d3_rgb(k * this.r, k * this.g, k * this.b);
+  };
+  d3_rgbPrototype.hsl = function() {
+    return d3_rgb_hsl(this.r, this.g, this.b);
+  };
+  d3_rgbPrototype.toString = function() {
+    return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
+  };
+  function d3_rgb_hex(v) {
+    return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
+  }
+  function d3_rgb_parse(format, rgb, hsl) {
+    var r = 0, g = 0, b = 0, m1, m2, color;
+    m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase());
+    if (m1) {
+      m2 = m1[2].split(",");
+      switch (m1[1]) {
+       case "hsl":
+        {
+          return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
+        }
+
+       case "rgb":
+        {
+          return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
+        }
+      }
+    }
+    if (color = d3_rgb_names.get(format)) {
+      return rgb(color.r, color.g, color.b);
+    }
+    if (format != null && format.charAt(0) === "#" && !isNaN(color = parseInt(format.slice(1), 16))) {
+      if (format.length === 4) {
+        r = (color & 3840) >> 4;
+        r = r >> 4 | r;
+        g = color & 240;
+        g = g >> 4 | g;
+        b = color & 15;
+        b = b << 4 | b;
+      } else if (format.length === 7) {
+        r = (color & 16711680) >> 16;
+        g = (color & 65280) >> 8;
+        b = color & 255;
+      }
+    }
+    return rgb(r, g, b);
+  }
+  function d3_rgb_hsl(r, g, b) {
+    var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
+    if (d) {
+      s = l < .5 ? d / (max + min) : d / (2 - max - min);
+      if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
+      h *= 60;
+    } else {
+      h = NaN;
+      s = l > 0 && l < 1 ? 0 : h;
+    }
+    return new d3_hsl(h, s, l);
+  }
+  function d3_rgb_lab(r, g, b) {
+    r = d3_rgb_xyz(r);
+    g = d3_rgb_xyz(g);
+    b = d3_rgb_xyz(b);
+    var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
+    return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
+  }
+  function d3_rgb_xyz(r) {
+    return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
+  }
+  function d3_rgb_parseNumber(c) {
+    var f = parseFloat(c);
+    return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
+  }
+  var d3_rgb_names = d3.map({
+    aliceblue: 15792383,
+    antiquewhite: 16444375,
+    aqua: 65535,
+    aquamarine: 8388564,
+    azure: 15794175,
+    beige: 16119260,
+    bisque: 16770244,
+    black: 0,
+    blanchedalmond: 16772045,
+    blue: 255,
+    blueviolet: 9055202,
+    brown: 10824234,
+    burlywood: 14596231,
+    cadetblue: 6266528,
+    chartreuse: 8388352,
+    chocolate: 13789470,
+    coral: 16744272,
+    cornflowerblue: 6591981,
+    cornsilk: 16775388,
+    crimson: 14423100,
+    cyan: 65535,
+    darkblue: 139,
+    darkcyan: 35723,
+    darkgoldenrod: 12092939,
+    darkgray: 11119017,
+    darkgreen: 25600,
+    darkgrey: 11119017,
+    darkkhaki: 12433259,
+    darkmagenta: 9109643,
+    darkolivegreen: 5597999,
+    darkorange: 16747520,
+    darkorchid: 10040012,
+    darkred: 9109504,
+    darksalmon: 15308410,
+    darkseagreen: 9419919,
+    darkslateblue: 4734347,
+    darkslategray: 3100495,
+    darkslategrey: 3100495,
+    darkturquoise: 52945,
+    darkviolet: 9699539,
+    deeppink: 16716947,
+    deepskyblue: 49151,
+    dimgray: 6908265,
+    dimgrey: 6908265,
+    dodgerblue: 2003199,
+    firebrick: 11674146,
+    floralwhite: 16775920,
+    forestgreen: 2263842,
+    fuchsia: 16711935,
+    gainsboro: 14474460,
+    ghostwhite: 16316671,
+    gold: 16766720,
+    goldenrod: 14329120,
+    gray: 8421504,
+    green: 32768,
+    greenyellow: 11403055,
+    grey: 8421504,
+    honeydew: 15794160,
+    hotpink: 16738740,
+    indianred: 13458524,
+    indigo: 4915330,
+    ivory: 16777200,
+    khaki: 15787660,
+    lavender: 15132410,
+    lavenderblush: 16773365,
+    lawngreen: 8190976,
+    lemonchiffon: 16775885,
+    lightblue: 11393254,
+    lightcoral: 15761536,
+    lightcyan: 14745599,
+    lightgoldenrodyellow: 16448210,
+    lightgray: 13882323,
+    lightgreen: 9498256,
+    lightgrey: 13882323,
+    lightpink: 16758465,
+    lightsalmon: 16752762,
+    lightseagreen: 2142890,
+    lightskyblue: 8900346,
+    lightslategray: 7833753,
+    lightslategrey: 7833753,
+    lightsteelblue: 11584734,
+    lightyellow: 16777184,
+    lime: 65280,
+    limegreen: 3329330,
+    linen: 16445670,
+    magenta: 16711935,
+    maroon: 8388608,
+    mediumaquamarine: 6737322,
+    mediumblue: 205,
+    mediumorchid: 12211667,
+    mediumpurple: 9662683,
+    mediumseagreen: 3978097,
+    mediumslateblue: 8087790,
+    mediumspringgreen: 64154,
+    mediumturquoise: 4772300,
+    mediumvioletred: 13047173,
+    midnightblue: 1644912,
+    mintcream: 16121850,
+    mistyrose: 16770273,
+    moccasin: 16770229,
+    navajowhite: 16768685,
+    navy: 128,
+    oldlace: 16643558,
+    olive: 8421376,
+    olivedrab: 7048739,
+    orange: 16753920,
+    orangered: 16729344,
+    orchid: 14315734,
+    palegoldenrod: 15657130,
+    palegreen: 10025880,
+    paleturquoise: 11529966,
+    palevioletred: 14381203,
+    papayawhip: 16773077,
+    peachpuff: 16767673,
+    peru: 13468991,
+    pink: 16761035,
+    plum: 14524637,
+    powderblue: 11591910,
+    purple: 8388736,
+    rebeccapurple: 6697881,
+    red: 16711680,
+    rosybrown: 12357519,
+    royalblue: 4286945,
+    saddlebrown: 9127187,
+    salmon: 16416882,
+    sandybrown: 16032864,
+    seagreen: 3050327,
+    seashell: 16774638,
+    sienna: 10506797,
+    silver: 12632256,
+    skyblue: 8900331,
+    slateblue: 6970061,
+    slategray: 7372944,
+    slategrey: 7372944,
+    snow: 16775930,
+    springgreen: 65407,
+    steelblue: 4620980,
+    tan: 13808780,
+    teal: 32896,
+    thistle: 14204888,
+    tomato: 16737095,
+    turquoise: 4251856,
+    violet: 15631086,
+    wheat: 16113331,
+    white: 16777215,
+    whitesmoke: 16119285,
+    yellow: 16776960,
+    yellowgreen: 10145074
+  });
+  d3_rgb_names.forEach(function(key, value) {
+    d3_rgb_names.set(key, d3_rgbNumber(value));
+  });
+  function d3_functor(v) {
+    return typeof v === "function" ? v : function() {
+      return v;
+    };
+  }
+  d3.functor = d3_functor;
+  d3.xhr = d3_xhrType(d3_identity);
+  function d3_xhrType(response) {
+    return function(url, mimeType, callback) {
+      if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
+      mimeType = null;
+      return d3_xhr(url, mimeType, response, callback);
+    };
+  }
+  function d3_xhr(url, mimeType, response, callback) {
+    var xhr = {}, dispatch = d3.dispatch("beforesend", "progress", "load", "error"), headers = {}, request = new XMLHttpRequest(), responseType = null;
+    if (this.XDomainRequest && !("withCredentials" in request) && /^(http(s)?:)?\/\//.test(url)) request = new XDomainRequest();
+    "onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
+      request.readyState > 3 && respond();
+    };
+    function respond() {
+      var status = request.status, result;
+      if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {
+        try {
+          result = response.call(xhr, request);
+        } catch (e) {
+          dispatch.error.call(xhr, e);
+          return;
+        }
+        dispatch.load.call(xhr, result);
+      } else {
+        dispatch.error.call(xhr, request);
+      }
+    }
+    request.onprogress = function(event) {
+      var o = d3.event;
+      d3.event = event;
+      try {
+        dispatch.progress.call(xhr, request);
+      } finally {
+        d3.event = o;
+      }
+    };
+    xhr.header = function(name, value) {
+      name = (name + "").toLowerCase();
+      if (arguments.length < 2) return headers[name];
+      if (value == null) delete headers[name]; else headers[name] = value + "";
+      return xhr;
+    };
+    xhr.mimeType = function(value) {
+      if (!arguments.length) return mimeType;
+      mimeType = value == null ? null : value + "";
+      return xhr;
+    };
+    xhr.responseType = function(value) {
+      if (!arguments.length) return responseType;
+      responseType = value;
+      return xhr;
+    };
+    xhr.response = function(value) {
+      response = value;
+      return xhr;
+    };
+    [ "get", "post" ].forEach(function(method) {
+      xhr[method] = function() {
+        return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
+      };
+    });
+    xhr.send = function(method, data, callback) {
+      if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
+      request.open(method, url, true);
+      if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
+      if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
+      if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
+      if (responseType != null) request.responseType = responseType;
+      if (callback != null) xhr.on("error", callback).on("load", function(request) {
+        callback(null, request);
+      });
+      dispatch.beforesend.call(xhr, request);
+      request.send(data == null ? null : data);
+      return xhr;
+    };
+    xhr.abort = function() {
+      request.abort();
+      return xhr;
+    };
+    d3.rebind(xhr, dispatch, "on");
+    return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
+  }
+  function d3_xhr_fixCallback(callback) {
+    return callback.length === 1 ? function(error, request) {
+      callback(error == null ? request : null);
+    } : callback;
+  }
+  function d3_xhrHasResponse(request) {
+    var type = request.responseType;
+    return type && type !== "text" ? request.response : request.responseText;
+  }
+  d3.dsv = function(delimiter, mimeType) {
+    var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
+    function dsv(url, row, callback) {
+      if (arguments.length < 3) callback = row, row = null;
+      var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);
+      xhr.row = function(_) {
+        return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;
+      };
+      return xhr;
+    }
+    function response(request) {
+      return dsv.parse(request.responseText);
+    }
+    function typedResponse(f) {
+      return function(request) {
+        return dsv.parse(request.responseText, f);
+      };
+    }
+    dsv.parse = function(text, f) {
+      var o;
+      return dsv.parseRows(text, function(row, i) {
+        if (o) return o(row, i - 1);
+        var a = new Function("d", "return {" + row.map(function(name, i) {
+          return JSON.stringify(name) + ": d[" + i + "]";
+        }).join(",") + "}");
+        o = f ? function(row, i) {
+          return f(a(row), i);
+        } : a;
+      });
+    };
+    dsv.parseRows = function(text, f) {
+      var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
+      function token() {
+        if (I >= N) return EOF;
+        if (eol) return eol = false, EOL;
+        var j = I;
+        if (text.charCodeAt(j) === 34) {
+          var i = j;
+          while (i++ < N) {
+            if (text.charCodeAt(i) === 34) {
+              if (text.charCodeAt(i + 1) !== 34) break;
+              ++i;
+            }
+          }
+          I = i + 2;
+          var c = text.charCodeAt(i + 1);
+          if (c === 13) {
+            eol = true;
+            if (text.charCodeAt(i + 2) === 10) ++I;
+          } else if (c === 10) {
+            eol = true;
+          }
+          return text.slice(j + 1, i).replace(/""/g, '"');
+        }
+        while (I < N) {
+          var c = text.charCodeAt(I++), k = 1;
+          if (c === 10) eol = true; else if (c === 13) {
+            eol = true;
+            if (text.charCodeAt(I) === 10) ++I, ++k;
+          } else if (c !== delimiterCode) continue;
+          return text.slice(j, I - k);
+        }
+        return text.slice(j);
+      }
+      while ((t = token()) !== EOF) {
+        var a = [];
+        while (t !== EOL && t !== EOF) {
+          a.push(t);
+          t = token();
+        }
+        if (f && (a = f(a, n++)) == null) continue;
+        rows.push(a);
+      }
+      return rows;
+    };
+    dsv.format = function(rows) {
+      if (Array.isArray(rows[0])) return dsv.formatRows(rows);
+      var fieldSet = new d3_Set(), fields = [];
+      rows.forEach(function(row) {
+        for (var field in row) {
+          if (!fieldSet.has(field)) {
+            fields.push(fieldSet.add(field));
+          }
+        }
+      });
+      return [ fields.map(formatValue).join(delimiter) ].concat(rows.map(function(row) {
+        return fields.map(function(field) {
+          return formatValue(row[field]);
+        }).join(delimiter);
+      })).join("\n");
+    };
+    dsv.formatRows = function(rows) {
+      return rows.map(formatRow).join("\n");
+    };
+    function formatRow(row) {
+      return row.map(formatValue).join(delimiter);
+    }
+    function formatValue(text) {
+      return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
+    }
+    return dsv;
+  };
+  d3.csv = d3.dsv(",", "text/csv");
+  d3.tsv = d3.dsv("	", "text/tab-separated-values");
+  var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) {
+    setTimeout(callback, 17);
+  };
+  d3.timer = function() {
+    d3_timer.apply(this, arguments);
+  };
+  function d3_timer(callback, delay, then) {
+    var n = arguments.length;
+    if (n < 2) delay = 0;
+    if (n < 3) then = Date.now();
+    var time = then + delay, timer = {
+      c: callback,
+      t: time,
+      n: null
+    };
+    if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer;
+    d3_timer_queueTail = timer;
+    if (!d3_timer_interval) {
+      d3_timer_timeout = clearTimeout(d3_timer_timeout);
+      d3_timer_interval = 1;
+      d3_timer_frame(d3_timer_step);
+    }
+    return timer;
+  }
+  function d3_timer_step() {
+    var now = d3_timer_mark(), delay = d3_timer_sweep() - now;
+    if (delay > 24) {
+      if (isFinite(delay)) {
+        clearTimeout(d3_timer_timeout);
+        d3_timer_timeout = setTimeout(d3_timer_step, delay);
+      }
+      d3_timer_interval = 0;
+    } else {
+      d3_timer_interval = 1;
+      d3_timer_frame(d3_timer_step);
+    }
+  }
+  d3.timer.flush = function() {
+    d3_timer_mark();
+    d3_timer_sweep();
+  };
+  function d3_timer_mark() {
+    var now = Date.now(), timer = d3_timer_queueHead;
+    while (timer) {
+      if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;
+      timer = timer.n;
+    }
+    return now;
+  }
+  function d3_timer_sweep() {
+    var t0, t1 = d3_timer_queueHead, time = Infinity;
+    while (t1) {
+      if (t1.c) {
+        if (t1.t < time) time = t1.t;
+        t1 = (t0 = t1).n;
+      } else {
+        t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
+      }
+    }
+    d3_timer_queueTail = t0;
+    return time;
+  }
+  function d3_format_precision(x, p) {
+    return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
+  }
+  d3.round = function(x, n) {
+    return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
+  };
+  var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
+  d3.formatPrefix = function(value, precision) {
+    var i = 0;
+    if (value = +value) {
+      if (value < 0) value *= -1;
+      if (precision) value = d3.round(value, d3_format_precision(value, precision));
+      i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
+      i = Math.max(-24, Math.min(24, Math.floor((i - 1) / 3) * 3));
+    }
+    return d3_formatPrefixes[8 + i / 3];
+  };
+  function d3_formatPrefix(d, i) {
+    var k = Math.pow(10, abs(8 - i) * 3);
+    return {
+      scale: i > 8 ? function(d) {
+        return d / k;
+      } : function(d) {
+        return d * k;
+      },
+      symbol: d
+    };
+  }
+  function d3_locale_numberFormat(locale) {
+    var locale_decimal = locale.decimal, locale_thousands = locale.thousands, locale_grouping = locale.grouping, locale_currency = locale.currency, formatGroup = locale_grouping && locale_thousands ? function(value, width) {
+      var i = value.length, t = [], j = 0, g = locale_grouping[0], length = 0;
+      while (i > 0 && g > 0) {
+        if (length + g + 1 > width) g = Math.max(1, width - length);
+        t.push(value.substring(i -= g, i + g));
+        if ((length += g + 1) > width) break;
+        g = locale_grouping[j = (j + 1) % locale_grouping.length];
+      }
+      return t.reverse().join(locale_thousands);
+    } : d3_identity;
+    return function(specifier) {
+      var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "-", symbol = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, prefix = "", suffix = "", integer = false, exponent = true;
+      if (precision) precision = +precision.substring(1);
+      if (zfill || fill === "0" && align === "=") {
+        zfill = fill = "0";
+        align = "=";
+      }
+      switch (type) {
+       case "n":
+        comma = true;
+        type = "g";
+        break;
+
+       case "%":
+        scale = 100;
+        suffix = "%";
+        type = "f";
+        break;
+
+       case "p":
+        scale = 100;
+        suffix = "%";
+        type = "r";
+        break;
+
+       case "b":
+       case "o":
+       case "x":
+       case "X":
+        if (symbol === "#") prefix = "0" + type.toLowerCase();
+
+       case "c":
+        exponent = false;
+
+       case "d":
+        integer = true;
+        precision = 0;
+        break;
+
+       case "s":
+        scale = -1;
+        type = "r";
+        break;
+      }
+      if (symbol === "$") prefix = locale_currency[0], suffix = locale_currency[1];
+      if (type == "r" && !precision) type = "g";
+      if (precision != null) {
+        if (type == "g") precision = Math.max(1, Math.min(21, precision)); else if (type == "e" || type == "f") precision = Math.max(0, Math.min(20, precision));
+      }
+      type = d3_format_types.get(type) || d3_format_typeDefault;
+      var zcomma = zfill && comma;
+      return function(value) {
+        var fullSuffix = suffix;
+        if (integer && value % 1) return "";
+        var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign === "-" ? "" : sign;
+        if (scale < 0) {
+          var unit = d3.formatPrefix(value, precision);
+          value = unit.scale(value);
+          fullSuffix = unit.symbol + suffix;
+        } else {
+          value *= scale;
+        }
+        value = type(value, precision);
+        var i = value.lastIndexOf("."), before, after;
+        if (i < 0) {
+          var j = exponent ? value.lastIndexOf("e") : -1;
+          if (j < 0) before = value, after = ""; else before = value.substring(0, j), after = value.substring(j);
+        } else {
+          before = value.substring(0, i);
+          after = locale_decimal + value.substring(i + 1);
+        }
+        if (!zfill && comma) before = formatGroup(before, Infinity);
+        var length = prefix.length + before.length + after.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
+        if (zcomma) before = formatGroup(padding + before, padding.length ? width - after.length : Infinity);
+        negative += prefix;
+        value = before + after;
+        return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + fullSuffix;
+      };
+    };
+  }
+  var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i;
+  var d3_format_types = d3.map({
+    b: function(x) {
+      return x.toString(2);
+    },
+    c: function(x) {
+      return String.fromCharCode(x);
+    },
+    o: function(x) {
+      return x.toString(8);
+    },
+    x: function(x) {
+      return x.toString(16);
+    },
+    X: function(x) {
+      return x.toString(16).toUpperCase();
+    },
+    g: function(x, p) {
+      return x.toPrecision(p);
+    },
+    e: function(x, p) {
+      return x.toExponential(p);
+    },
+    f: function(x, p) {
+      return x.toFixed(p);
+    },
+    r: function(x, p) {
+      return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
+    }
+  });
+  function d3_format_typeDefault(x) {
+    return x + "";
+  }
+  var d3_time = d3.time = {}, d3_date = Date;
+  function d3_date_utc() {
+    this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
+  }
+  d3_date_utc.prototype = {
+    getDate: function() {
+      return this._.getUTCDate();
+    },
+    getDay: function() {
+      return this._.getUTCDay();
+    },
+    getFullYear: function() {
+      return this._.getUTCFullYear();
+    },
+    getHours: function() {
+      return this._.getUTCHours();
+    },
+    getMilliseconds: function() {
+      return this._.getUTCMilliseconds();
+    },
+    getMinutes: function() {
+      return this._.getUTCMinutes();
+    },
+    getMonth: function() {
+      return this._.getUTCMonth();
+    },
+    getSeconds: function() {
+      return this._.getUTCSeconds();
+    },
+    getTime: function() {
+      return this._.getTime();
+    },
+    getTimezoneOffset: function() {
+      return 0;
+    },
+    valueOf: function() {
+      return this._.valueOf();
+    },
+    setDate: function() {
+      d3_time_prototype.setUTCDate.apply(this._, arguments);
+    },
+    setDay: function() {
+      d3_time_prototype.setUTCDay.apply(this._, arguments);
+    },
+    setFullYear: function() {
+      d3_time_prototype.setUTCFullYear.apply(this._, arguments);
+    },
+    setHours: function() {
+      d3_time_prototype.setUTCHours.apply(this._, arguments);
+    },
+    setMilliseconds: function() {
+      d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
+    },
+    setMinutes: function() {
+      d3_time_prototype.setUTCMinutes.apply(this._, arguments);
+    },
+    setMonth: function() {
+      d3_time_prototype.setUTCMonth.apply(this._, arguments);
+    },
+    setSeconds: function() {
+      d3_time_prototype.setUTCSeconds.apply(this._, arguments);
+    },
+    setTime: function() {
+      d3_time_prototype.setTime.apply(this._, arguments);
+    }
+  };
+  var d3_time_prototype = Date.prototype;
+  function d3_time_interval(local, step, number) {
+    function round(date) {
+      var d0 = local(date), d1 = offset(d0, 1);
+      return date - d0 < d1 - date ? d0 : d1;
+    }
+    function ceil(date) {
+      step(date = local(new d3_date(date - 1)), 1);
+      return date;
+    }
+    function offset(date, k) {
+      step(date = new d3_date(+date), k);
+      return date;
+    }
+    function range(t0, t1, dt) {
+      var time = ceil(t0), times = [];
+      if (dt > 1) {
+        while (time < t1) {
+          if (!(number(time) % dt)) times.push(new Date(+time));
+          step(time, 1);
+        }
+      } else {
+        while (time < t1) times.push(new Date(+time)), step(time, 1);
+      }
+      return times;
+    }
+    function range_utc(t0, t1, dt) {
+      try {
+        d3_date = d3_date_utc;
+        var utc = new d3_date_utc();
+        utc._ = t0;
+        return range(utc, t1, dt);
+      } finally {
+        d3_date = Date;
+      }
+    }
+    local.floor = local;
+    local.round = round;
+    local.ceil = ceil;
+    local.offset = offset;
+    local.range = range;
+    var utc = local.utc = d3_time_interval_utc(local);
+    utc.floor = utc;
+    utc.round = d3_time_interval_utc(round);
+    utc.ceil = d3_time_interval_utc(ceil);
+    utc.offset = d3_time_interval_utc(offset);
+    utc.range = range_utc;
+    return local;
+  }
+  function d3_time_interval_utc(method) {
+    return function(date, k) {
+      try {
+        d3_date = d3_date_utc;
+        var utc = new d3_date_utc();
+        utc._ = date;
+        return method(utc, k)._;
+      } finally {
+        d3_date = Date;
+      }
+    };
+  }
+  d3_time.year = d3_time_interval(function(date) {
+    date = d3_time.day(date);
+    date.setMonth(0, 1);
+    return date;
+  }, function(date, offset) {
+    date.setFullYear(date.getFullYear() + offset);
+  }, function(date) {
+    return date.getFullYear();
+  });
+  d3_time.years = d3_time.year.range;
+  d3_time.years.utc = d3_time.year.utc.range;
+  d3_time.day = d3_time_interval(function(date) {
+    var day = new d3_date(2e3, 0);
+    day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
+    return day;
+  }, function(date, offset) {
+    date.setDate(date.getDate() + offset);
+  }, function(date) {
+    return date.getDate() - 1;
+  });
+  d3_time.days = d3_time.day.range;
+  d3_time.days.utc = d3_time.day.utc.range;
+  d3_time.dayOfYear = function(date) {
+    var year = d3_time.year(date);
+    return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
+  };
+  [ "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" ].forEach(function(day, i) {
+    i = 7 - i;
+    var interval = d3_time[day] = d3_time_interval(function(date) {
+      (date = d3_time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
+      return date;
+    }, function(date, offset) {
+      date.setDate(date.getDate() + Math.floor(offset) * 7);
+    }, function(date) {
+      var day = d3_time.year(date).getDay();
+      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
+    });
+    d3_time[day + "s"] = interval.range;
+    d3_time[day + "s"].utc = interval.utc.range;
+    d3_time[day + "OfYear"] = function(date) {
+      var day = d3_time.year(date).getDay();
+      return Math.floor((d3_time.dayOfYear(date) + (day + i) % 7) / 7);
+    };
+  });
+  d3_time.week = d3_time.sunday;
+  d3_time.weeks = d3_time.sunday.range;
+  d3_time.weeks.utc = d3_time.sunday.utc.range;
+  d3_time.weekOfYear = d3_time.sundayOfYear;
+  function d3_locale_timeFormat(locale) {
+    var locale_dateTime = locale.dateTime, locale_date = locale.date, locale_time = locale.time, locale_periods = locale.periods, locale_days = locale.days, locale_shortDays = locale.shortDays, locale_months = locale.months, locale_shortMonths = locale.shortMonths;
+    function d3_time_format(template) {
+      var n = template.length;
+      function format(date) {
+        var string = [], i = -1, j = 0, c, p, f;
+        while (++i < n) {
+          if (template.charCodeAt(i) === 37) {
+            string.push(template.slice(j, i));
+            if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
+            if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
+            string.push(c);
+            j = i + 1;
+          }
+        }
+        string.push(template.slice(j, i));
+        return string.join("");
+      }
+      format.parse = function(string) {
+        var d = {
+          y: 1900,
+          m: 0,
+          d: 1,
+          H: 0,
+          M: 0,
+          S: 0,
+          L: 0,
+          Z: null
+        }, i = d3_time_parse(d, template, string, 0);
+        if (i != string.length) return null;
+        if ("p" in d) d.H = d.H % 12 + d.p * 12;
+        var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)();
+        if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("W" in d || "U" in d) {
+          if (!("w" in d)) d.w = "W" in d ? 1 : 0;
+          date.setFullYear(d.y, 0, 1);
+          date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7);
+        } else date.setFullYear(d.y, d.m, d.d);
+        date.setHours(d.H + (d.Z / 100 | 0), d.M + d.Z % 100, d.S, d.L);
+        return localZ ? date._ : date;
+      };
+      format.toString = function() {
+        return template;
+      };
+      return format;
+    }
+    function d3_time_parse(date, template, string, j) {
+      var c, p, t, i = 0, n = template.length, m = string.length;
+      while (i < n) {
+        if (j >= m) return -1;
+        c = template.charCodeAt(i++);
+        if (c === 37) {
+          t = template.charAt(i++);
+          p = d3_time_parsers[t in d3_time_formatPads ? template.charAt(i++) : t];
+          if (!p || (j = p(date, string, j)) < 0) return -1;
+        } else if (c != string.charCodeAt(j++)) {
+          return -1;
+        }
+      }
+      return j;
+    }
+    d3_time_format.utc = function(template) {
+      var local = d3_time_format(template);
+      function format(date) {
+        try {
+          d3_date = d3_date_utc;
+          var utc = new d3_date();
+          utc._ = date;
+          return local(utc);
+        } finally {
+          d3_date = Date;
+        }
+      }
+      format.parse = function(string) {
+        try {
+          d3_date = d3_date_utc;
+          var date = local.parse(string);
+          return date && date._;
+        } finally {
+          d3_date = Date;
+        }
+      };
+      format.toString = local.toString;
+      return format;
+    };
+    d3_time_format.multi = d3_time_format.utc.multi = d3_time_formatMulti;
+    var d3_time_periodLookup = d3.map(), d3_time_dayRe = d3_time_formatRe(locale_days), d3_time_dayLookup = d3_time_formatLookup(locale_days), d3_time_dayAbbrevRe = d3_time_formatRe(locale_shortDays), d3_time_dayAbbrevLookup = d3_time_formatLookup(locale_shortDays), d3_time_monthRe = d3_time_formatRe(locale_months), d3_time_monthLookup = d3_time_formatLookup(locale_months), d3_time_monthAbbrevRe = d3_time_formatRe(locale_shortMonths), d3_time_monthAbbrevLookup = d3_time_formatLookup(locale_shortMonths);
+    locale_periods.forEach(function(p, i) {
+      d3_time_periodLookup.set(p.toLowerCase(), i);
+    });
+    var d3_time_formats = {
+      a: function(d) {
+        return locale_shortDays[d.getDay()];
+      },
+      A: function(d) {
+        return locale_days[d.getDay()];
+      },
+      b: function(d) {
+        return locale_shortMonths[d.getMonth()];
+      },
+      B: function(d) {
+        return locale_months[d.getMonth()];
+      },
+      c: d3_time_format(locale_dateTime),
+      d: function(d, p) {
+        return d3_time_formatPad(d.getDate(), p, 2);
+      },
+      e: function(d, p) {
+        return d3_time_formatPad(d.getDate(), p, 2);
+      },
+      H: function(d, p) {
+        return d3_time_formatPad(d.getHours(), p, 2);
+      },
+      I: function(d, p) {
+        return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
+      },
+      j: function(d, p) {
+        return d3_time_formatPad(1 + d3_time.dayOfYear(d), p, 3);
+      },
+      L: function(d, p) {
+        return d3_time_formatPad(d.getMilliseconds(), p, 3);
+      },
+      m: function(d, p) {
+        return d3_time_formatPad(d.getMonth() + 1, p, 2);
+      },
+      M: function(d, p) {
+        return d3_time_formatPad(d.getMinutes(), p, 2);
+      },
+      p: function(d) {
+        return locale_periods[+(d.getHours() >= 12)];
+      },
+      S: function(d, p) {
+        return d3_time_formatPad(d.getSeconds(), p, 2);
+      },
+      U: function(d, p) {
+        return d3_time_formatPad(d3_time.sundayOfYear(d), p, 2);
+      },
+      w: function(d) {
+        return d.getDay();
+      },
+      W: function(d, p) {
+        return d3_time_formatPad(d3_time.mondayOfYear(d), p, 2);
+      },
+      x: d3_time_format(locale_date),
+      X: d3_time_format(locale_time),
+      y: function(d, p) {
+        return d3_time_formatPad(d.getFullYear() % 100, p, 2);
+      },
+      Y: function(d, p) {
+        return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
+      },
+      Z: d3_time_zone,
+      "%": function() {
+        return "%";
+      }
+    };
+    var d3_time_parsers = {
+      a: d3_time_parseWeekdayAbbrev,
+      A: d3_time_parseWeekday,
+      b: d3_time_parseMonthAbbrev,
+      B: d3_time_parseMonth,
+      c: d3_time_parseLocaleFull,
+      d: d3_time_parseDay,
+      e: d3_time_parseDay,
+      H: d3_time_parseHour24,
+      I: d3_time_parseHour24,
+      j: d3_time_parseDayOfYear,
+      L: d3_time_parseMilliseconds,
+      m: d3_time_parseMonthNumber,
+      M: d3_time_parseMinutes,
+      p: d3_time_parseAmPm,
+      S: d3_time_parseSeconds,
+      U: d3_time_parseWeekNumberSunday,
+      w: d3_time_parseWeekdayNumber,
+      W: d3_time_parseWeekNumberMonday,
+      x: d3_time_parseLocaleDate,
+      X: d3_time_parseLocaleTime,
+      y: d3_time_parseYear,
+      Y: d3_time_parseFullYear,
+      Z: d3_time_parseZone,
+      "%": d3_time_parseLiteralPercent
+    };
+    function d3_time_parseWeekdayAbbrev(date, string, i) {
+      d3_time_dayAbbrevRe.lastIndex = 0;
+      var n = d3_time_dayAbbrevRe.exec(string.slice(i));
+      return n ? (date.w = d3_time_dayAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseWeekday(date, string, i) {
+      d3_time_dayRe.lastIndex = 0;
+      var n = d3_time_dayRe.exec(string.slice(i));
+      return n ? (date.w = d3_time_dayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseMonthAbbrev(date, string, i) {
+      d3_time_monthAbbrevRe.lastIndex = 0;
+      var n = d3_time_monthAbbrevRe.exec(string.slice(i));
+      return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseMonth(date, string, i) {
+      d3_time_monthRe.lastIndex = 0;
+      var n = d3_time_monthRe.exec(string.slice(i));
+      return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;
+    }
+    function d3_time_parseLocaleFull(date, string, i) {
+      return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
+    }
+    function d3_time_parseLocaleDate(date, string, i) {
+      return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
+    }
+    function d3_time_parseLocaleTime(date, string, i) {
+      return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
+    }
+    function d3_time_parseAmPm(date, string, i) {
+      var n = d3_time_periodLookup.get(string.slice(i, i += 2).toLowerCase());
+      return n == null ? -1 : (date.p = n, i);
+    }
+    return d3_time_format;
+  }
+  var d3_time_formatPads = {
+    "-": "",
+    _: " ",
+    "0": "0"
+  }, d3_time_numberRe = /^\s*\d+/, d3_time_percentRe = /^%/;
+  function d3_time_formatPad(value, fill, width) {
+    var sign = value < 0 ? "-" : "", string = (sign ? -value : value) + "", length = string.length;
+    return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);
+  }
+  function d3_time_formatRe(names) {
+    return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
+  }
+  function d3_time_formatLookup(names) {
+    var map = new d3_Map(), i = -1, n = names.length;
+    while (++i < n) map.set(names[i].toLowerCase(), i);
+    return map;
+  }
+  function d3_time_parseWeekdayNumber(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 1));
+    return n ? (date.w = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseWeekNumberSunday(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i));
+    return n ? (date.U = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseWeekNumberMonday(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i));
+    return n ? (date.W = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseFullYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 4));
+    return n ? (date.y = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;
+  }
+  function d3_time_parseZone(date, string, i) {
+    return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string,
+    i + 5) : -1;
+  }
+  function d3_time_expandYear(d) {
+    return d + (d > 68 ? 1900 : 2e3);
+  }
+  function d3_time_parseMonthNumber(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.m = n[0] - 1, i + n[0].length) : -1;
+  }
+  function d3_time_parseDay(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.d = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseDayOfYear(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 3));
+    return n ? (date.j = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseHour24(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.H = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseMinutes(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.M = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseSeconds(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 2));
+    return n ? (date.S = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_parseMilliseconds(date, string, i) {
+    d3_time_numberRe.lastIndex = 0;
+    var n = d3_time_numberRe.exec(string.slice(i, i + 3));
+    return n ? (date.L = +n[0], i + n[0].length) : -1;
+  }
+  function d3_time_zone(d) {
+    var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = abs(z) / 60 | 0, zm = abs(z) % 60;
+    return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
+  }
+  function d3_time_parseLiteralPercent(date, string, i) {
+    d3_time_percentRe.lastIndex = 0;
+    var n = d3_time_percentRe.exec(string.slice(i, i + 1));
+    return n ? i + n[0].length : -1;
+  }
+  function d3_time_formatMulti(formats) {
+    var n = formats.length, i = -1;
+    while (++i < n) formats[i][0] = this(formats[i][0]);
+    return function(date) {
+      var i = 0, f = formats[i];
+      while (!f[1](date)) f = formats[++i];
+      return f[0](date);
+    };
+  }
+  d3.locale = function(locale) {
+    return {
+      numberFormat: d3_locale_numberFormat(locale),
+      timeFormat: d3_locale_timeFormat(locale)
+    };
+  };
+  var d3_locale_enUS = d3.locale({
+    decimal: ".",
+    thousands: ",",
+    grouping: [ 3 ],
+    currency: [ "$", "" ],
+    dateTime: "%a %b %e %X %Y",
+    date: "%m/%d/%Y",
+    time: "%H:%M:%S",
+    periods: [ "AM", "PM" ],
+    days: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ],
+    shortDays: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ],
+    months: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ],
+    shortMonths: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
+  });
+  d3.format = d3_locale_enUS.numberFormat;
+  d3.geo = {};
+  function d3_adder() {}
+  d3_adder.prototype = {
+    s: 0,
+    t: 0,
+    add: function(y) {
+      d3_adderSum(y, this.t, d3_adderTemp);
+      d3_adderSum(d3_adderTemp.s, this.s, this);
+      if (this.s) this.t += d3_adderTemp.t; else this.s = d3_adderTemp.t;
+    },
+    reset: function() {
+      this.s = this.t = 0;
+    },
+    valueOf: function() {
+      return this.s;
+    }
+  };
+  var d3_adderTemp = new d3_adder();
+  function d3_adderSum(a, b, o) {
+    var x = o.s = a + b, bv = x - a, av = x - bv;
+    o.t = a - av + (b - bv);
+  }
+  d3.geo.stream = function(object, listener) {
+    if (object && d3_geo_streamObjectType.hasOwnProperty(object.type)) {
+      d3_geo_streamObjectType[object.type](object, listener);
+    } else {
+      d3_geo_streamGeometry(object, listener);
+    }
+  };
+  function d3_geo_streamGeometry(geometry, listener) {
+    if (geometry && d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
+      d3_geo_streamGeometryType[geometry.type](geometry, listener);
+    }
+  }
+  var d3_geo_streamObjectType = {
+    Feature: function(feature, listener) {
+      d3_geo_streamGeometry(feature.geometry, listener);
+    },
+    FeatureCollection: function(object, listener) {
+      var features = object.features, i = -1, n = features.length;
+      while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
+    }
+  };
+  var d3_geo_streamGeometryType = {
+    Sphere: function(object, listener) {
+      listener.sphere();
+    },
+    Point: function(object, listener) {
+      object = object.coordinates;
+      listener.point(object[0], object[1], object[2]);
+    },
+    MultiPoint: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);
+    },
+    LineString: function(object, listener) {
+      d3_geo_streamLine(object.coordinates, listener, 0);
+    },
+    MultiLineString: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
+    },
+    Polygon: function(object, listener) {
+      d3_geo_streamPolygon(object.coordinates, listener);
+    },
+    MultiPolygon: function(object, listener) {
+      var coordinates = object.coordinates, i = -1, n = coordinates.length;
+      while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
+    },
+    GeometryCollection: function(object, listener) {
+      var geometries = object.geometries, i = -1, n = geometries.length;
+      while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
+    }
+  };
+  function d3_geo_streamLine(coordinates, listener, closed) {
+    var i = -1, n = coordinates.length - closed, coordinate;
+    listener.lineStart();
+    while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);
+    listener.lineEnd();
+  }
+  function d3_geo_streamPolygon(coordinates, listener) {
+    var i = -1, n = coordinates.length;
+    listener.polygonStart();
+    while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
+    listener.polygonEnd();
+  }
+  d3.geo.area = function(object) {
+    d3_geo_areaSum = 0;
+    d3.geo.stream(object, d3_geo_area);
+    return d3_geo_areaSum;
+  };
+  var d3_geo_areaSum, d3_geo_areaRingSum = new d3_adder();
+  var d3_geo_area = {
+    sphere: function() {
+      d3_geo_areaSum += 4 * π;
+    },
+    point: d3_noop,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: function() {
+      d3_geo_areaRingSum.reset();
+      d3_geo_area.lineStart = d3_geo_areaRingStart;
+    },
+    polygonEnd: function() {
+      var area = 2 * d3_geo_areaRingSum;
+      d3_geo_areaSum += area < 0 ? 4 * π + area : area;
+      d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
+    }
+  };
+  function d3_geo_areaRingStart() {
+    var λ00, φ00, λ0, cosφ0, sinφ0;
+    d3_geo_area.point = function(λ, φ) {
+      d3_geo_area.point = nextPoint;
+      λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
+      sinφ0 = Math.sin(φ);
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      φ = φ * d3_radians / 2 + π / 4;
+      var dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u = cosφ0 * cosφ + k * Math.cos(adλ), v = k * sdλ * Math.sin(adλ);
+      d3_geo_areaRingSum.add(Math.atan2(v, u));
+      λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
+    }
+    d3_geo_area.lineEnd = function() {
+      nextPoint(λ00, φ00);
+    };
+  }
+  function d3_geo_cartesian(spherical) {
+    var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
+    return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
+  }
+  function d3_geo_cartesianDot(a, b) {
+    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
+  }
+  function d3_geo_cartesianCross(a, b) {
+    return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
+  }
+  function d3_geo_cartesianAdd(a, b) {
+    a[0] += b[0];
+    a[1] += b[1];
+    a[2] += b[2];
+  }
+  function d3_geo_cartesianScale(vector, k) {
+    return [ vector[0] * k, vector[1] * k, vector[2] * k ];
+  }
+  function d3_geo_cartesianNormalize(d) {
+    var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
+    d[0] /= l;
+    d[1] /= l;
+    d[2] /= l;
+  }
+  function d3_geo_spherical(cartesian) {
+    return [ Math.atan2(cartesian[1], cartesian[0]), d3_asin(cartesian[2]) ];
+  }
+  function d3_geo_sphericalEqual(a, b) {
+    return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;
+  }
+  d3.geo.bounds = function() {
+    var λ0, φ0, λ1, φ1, λ_, λ__, φ__, p0, dλSum, ranges, range;
+    var bound = {
+      point: point,
+      lineStart: lineStart,
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        bound.point = ringPoint;
+        bound.lineStart = ringStart;
+        bound.lineEnd = ringEnd;
+        dλSum = 0;
+        d3_geo_area.polygonStart();
+      },
+      polygonEnd: function() {
+        d3_geo_area.polygonEnd();
+        bound.point = point;
+        bound.lineStart = lineStart;
+        bound.lineEnd = lineEnd;
+        if (d3_geo_areaRingSum < 0) λ0 = -(λ1 = 180), φ0 = -(φ1 = 90); else if (dλSum > ε) φ1 = 90; else if (dλSum < -ε) φ0 = -90;
+        range[0] = λ0, range[1] = λ1;
+      }
+    };
+    function point(λ, φ) {
+      ranges.push(range = [ λ0 = λ, λ1 = λ ]);
+      if (φ < φ0) φ0 = φ;
+      if (φ > φ1) φ1 = φ;
+    }
+    function linePoint(λ, φ) {
+      var p = d3_geo_cartesian([ λ * d3_radians, φ * d3_radians ]);
+      if (p0) {
+        var normal = d3_geo_cartesianCross(p0, p), equatorial = [ normal[1], -normal[0], 0 ], inflection = d3_geo_cartesianCross(equatorial, normal);
+        d3_geo_cartesianNormalize(inflection);
+        inflection = d3_geo_spherical(inflection);
+        var dλ = λ - λ_, s = dλ > 0 ? 1 : -1, λi = inflection[0] * d3_degrees * s, antimeridian = abs(dλ) > 180;
+        if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
+          var φi = inflection[1] * d3_degrees;
+          if (φi > φ1) φ1 = φi;
+        } else if (λi = (λi + 360) % 360 - 180, antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
+          var φi = -inflection[1] * d3_degrees;
+          if (φi < φ0) φ0 = φi;
+        } else {
+          if (φ < φ0) φ0 = φ;
+          if (φ > φ1) φ1 = φ;
+        }
+        if (antimeridian) {
+          if (λ < λ_) {
+            if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
+          } else {
+            if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
+          }
+        } else {
+          if (λ1 >= λ0) {
+            if (λ < λ0) λ0 = λ;
+            if (λ > λ1) λ1 = λ;
+          } else {
+            if (λ > λ_) {
+              if (angle(λ0, λ) > angle(λ0, λ1)) λ1 = λ;
+            } else {
+              if (angle(λ, λ1) > angle(λ0, λ1)) λ0 = λ;
+            }
+          }
+        }
+      } else {
+        point(λ, φ);
+      }
+      p0 = p, λ_ = λ;
+    }
+    function lineStart() {
+      bound.point = linePoint;
+    }
+    function lineEnd() {
+      range[0] = λ0, range[1] = λ1;
+      bound.point = point;
+      p0 = null;
+    }
+    function ringPoint(λ, φ) {
+      if (p0) {
+        var dλ = λ - λ_;
+        dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
+      } else λ__ = λ, φ__ = φ;
+      d3_geo_area.point(λ, φ);
+      linePoint(λ, φ);
+    }
+    function ringStart() {
+      d3_geo_area.lineStart();
+    }
+    function ringEnd() {
+      ringPoint(λ__, φ__);
+      d3_geo_area.lineEnd();
+      if (abs(dλSum) > ε) λ0 = -(λ1 = 180);
+      range[0] = λ0, range[1] = λ1;
+      p0 = null;
+    }
+    function angle(λ0, λ1) {
+      return (λ1 -= λ0) < 0 ? λ1 + 360 : λ1;
+    }
+    function compareRanges(a, b) {
+      return a[0] - b[0];
+    }
+    function withinRange(x, range) {
+      return range[0] <= range[1] ? range[0] <= x && x <= range[1] : x < range[0] || range[1] < x;
+    }
+    return function(feature) {
+      φ1 = λ1 = -(λ0 = φ0 = Infinity);
+      ranges = [];
+      d3.geo.stream(feature, bound);
+      var n = ranges.length;
+      if (n) {
+        ranges.sort(compareRanges);
+        for (var i = 1, a = ranges[0], b, merged = [ a ]; i < n; ++i) {
+          b = ranges[i];
+          if (withinRange(b[0], a) || withinRange(b[1], a)) {
+            if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];
+            if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];
+          } else {
+            merged.push(a = b);
+          }
+        }
+        var best = -Infinity, dλ;
+        for (var n = merged.length - 1, i = 0, a = merged[n], b; i <= n; a = b, ++i) {
+          b = merged[i];
+          if ((dλ = angle(a[1], b[0])) > best) best = dλ, λ0 = b[0], λ1 = a[1];
+        }
+      }
+      ranges = range = null;
+      return λ0 === Infinity || φ0 === Infinity ? [ [ NaN, NaN ], [ NaN, NaN ] ] : [ [ λ0, φ0 ], [ λ1, φ1 ] ];
+    };
+  }();
+  d3.geo.centroid = function(object) {
+    d3_geo_centroidW0 = d3_geo_centroidW1 = d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
+    d3.geo.stream(object, d3_geo_centroid);
+    var x = d3_geo_centroidX2, y = d3_geo_centroidY2, z = d3_geo_centroidZ2, m = x * x + y * y + z * z;
+    if (m < ε2) {
+      x = d3_geo_centroidX1, y = d3_geo_centroidY1, z = d3_geo_centroidZ1;
+      if (d3_geo_centroidW1 < ε) x = d3_geo_centroidX0, y = d3_geo_centroidY0, z = d3_geo_centroidZ0;
+      m = x * x + y * y + z * z;
+      if (m < ε2) return [ NaN, NaN ];
+    }
+    return [ Math.atan2(y, x) * d3_degrees, d3_asin(z / Math.sqrt(m)) * d3_degrees ];
+  };
+  var d3_geo_centroidW0, d3_geo_centroidW1, d3_geo_centroidX0, d3_geo_centroidY0, d3_geo_centroidZ0, d3_geo_centroidX1, d3_geo_centroidY1, d3_geo_centroidZ1, d3_geo_centroidX2, d3_geo_centroidY2, d3_geo_centroidZ2;
+  var d3_geo_centroid = {
+    sphere: d3_noop,
+    point: d3_geo_centroidPoint,
+    lineStart: d3_geo_centroidLineStart,
+    lineEnd: d3_geo_centroidLineEnd,
+    polygonStart: function() {
+      d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
+    }
+  };
+  function d3_geo_centroidPoint(λ, φ) {
+    λ *= d3_radians;
+    var cosφ = Math.cos(φ *= d3_radians);
+    d3_geo_centroidPointXYZ(cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ));
+  }
+  function d3_geo_centroidPointXYZ(x, y, z) {
+    ++d3_geo_centroidW0;
+    d3_geo_centroidX0 += (x - d3_geo_centroidX0) / d3_geo_centroidW0;
+    d3_geo_centroidY0 += (y - d3_geo_centroidY0) / d3_geo_centroidW0;
+    d3_geo_centroidZ0 += (z - d3_geo_centroidZ0) / d3_geo_centroidW0;
+  }
+  function d3_geo_centroidLineStart() {
+    var x0, y0, z0;
+    d3_geo_centroid.point = function(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians);
+      x0 = cosφ * Math.cos(λ);
+      y0 = cosφ * Math.sin(λ);
+      z0 = Math.sin(φ);
+      d3_geo_centroid.point = nextPoint;
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
+      d3_geo_centroidW1 += w;
+      d3_geo_centroidX1 += w * (x0 + (x0 = x));
+      d3_geo_centroidY1 += w * (y0 + (y0 = y));
+      d3_geo_centroidZ1 += w * (z0 + (z0 = z));
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    }
+  }
+  function d3_geo_centroidLineEnd() {
+    d3_geo_centroid.point = d3_geo_centroidPoint;
+  }
+  function d3_geo_centroidRingStart() {
+    var λ00, φ00, x0, y0, z0;
+    d3_geo_centroid.point = function(λ, φ) {
+      λ00 = λ, φ00 = φ;
+      d3_geo_centroid.point = nextPoint;
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians);
+      x0 = cosφ * Math.cos(λ);
+      y0 = cosφ * Math.sin(λ);
+      z0 = Math.sin(φ);
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    };
+    d3_geo_centroid.lineEnd = function() {
+      nextPoint(λ00, φ00);
+      d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
+      d3_geo_centroid.point = d3_geo_centroidPoint;
+    };
+    function nextPoint(λ, φ) {
+      λ *= d3_radians;
+      var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = Math.sqrt(cx * cx + cy * cy + cz * cz), u = x0 * x + y0 * y + z0 * z, v = m && -d3_acos(u) / m, w = Math.atan2(m, u);
+      d3_geo_centroidX2 += v * cx;
+      d3_geo_centroidY2 += v * cy;
+      d3_geo_centroidZ2 += v * cz;
+      d3_geo_centroidW1 += w;
+      d3_geo_centroidX1 += w * (x0 + (x0 = x));
+      d3_geo_centroidY1 += w * (y0 + (y0 = y));
+      d3_geo_centroidZ1 += w * (z0 + (z0 = z));
+      d3_geo_centroidPointXYZ(x0, y0, z0);
+    }
+  }
+  function d3_geo_compose(a, b) {
+    function compose(x, y) {
+      return x = a(x, y), b(x[0], x[1]);
+    }
+    if (a.invert && b.invert) compose.invert = function(x, y) {
+      return x = b.invert(x, y), x && a.invert(x[0], x[1]);
+    };
+    return compose;
+  }
+  function d3_true() {
+    return true;
+  }
+  function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {
+    var subject = [], clip = [];
+    segments.forEach(function(segment) {
+      if ((n = segment.length - 1) <= 0) return;
+      var n, p0 = segment[0], p1 = segment[n];
+      if (d3_geo_sphericalEqual(p0, p1)) {
+        listener.lineStart();
+        for (var i = 0; i < n; ++i) listener.point((p0 = segment[i])[0], p0[1]);
+        listener.lineEnd();
+        return;
+      }
+      var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true), b = new d3_geo_clipPolygonIntersection(p0, null, a, false);
+      a.o = b;
+      subject.push(a);
+      clip.push(b);
+      a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);
+      b = new d3_geo_clipPolygonIntersection(p1, null, a, true);
+      a.o = b;
+      subject.push(a);
+      clip.push(b);
+    });
+    clip.sort(compare);
+    d3_geo_clipPolygonLinkCircular(subject);
+    d3_geo_clipPolygonLinkCircular(clip);
+    if (!subject.length) return;
+    for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {
+      clip[i].e = entry = !entry;
+    }
+    var start = subject[0], points, point;
+    while (1) {
+      var current = start, isSubject = true;
+      while (current.v) if ((current = current.n) === start) return;
+      points = current.z;
+      listener.lineStart();
+      do {
+        current.v = current.o.v = true;
+        if (current.e) {
+          if (isSubject) {
+            for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);
+          } else {
+            interpolate(current.x, current.n.x, 1, listener);
+          }
+          current = current.n;
+        } else {
+          if (isSubject) {
+            points = current.p.z;
+            for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);
+          } else {
+            interpolate(current.x, current.p.x, -1, listener);
+          }
+          current = current.p;
+        }
+        current = current.o;
+        points = current.z;
+        isSubject = !isSubject;
+      } while (!current.v);
+      listener.lineEnd();
+    }
+  }
+  function d3_geo_clipPolygonLinkCircular(array) {
+    if (!(n = array.length)) return;
+    var n, i = 0, a = array[0], b;
+    while (++i < n) {
+      a.n = b = array[i];
+      b.p = a;
+      a = b;
+    }
+    a.n = b = array[0];
+    b.p = a;
+  }
+  function d3_geo_clipPolygonIntersection(point, points, other, entry) {
+    this.x = point;
+    this.z = points;
+    this.o = other;
+    this.e = entry;
+    this.v = false;
+    this.n = this.p = null;
+  }
+  function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {
+    return function(rotate, listener) {
+      var line = clipLine(listener), rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);
+      var clip = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          clip.point = pointRing;
+          clip.lineStart = ringStart;
+          clip.lineEnd = ringEnd;
+          segments = [];
+          polygon = [];
+        },
+        polygonEnd: function() {
+          clip.point = point;
+          clip.lineStart = lineStart;
+          clip.lineEnd = lineEnd;
+          segments = d3.merge(segments);
+          var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
+          if (segments.length) {
+            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
+            d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
+          } else if (clipStartInside) {
+            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
+            listener.lineStart();
+            interpolate(null, null, 1, listener);
+            listener.lineEnd();
+          }
+          if (polygonStarted) listener.polygonEnd(), polygonStarted = false;
+          segments = polygon = null;
+        },
+        sphere: function() {
+          listener.polygonStart();
+          listener.lineStart();
+          interpolate(null, null, 1, listener);
+          listener.lineEnd();
+          listener.polygonEnd();
+        }
+      };
+      function point(λ, φ) {
+        var point = rotate(λ, φ);
+        if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);
+      }
+      function pointLine(λ, φ) {
+        var point = rotate(λ, φ);
+        line.point(point[0], point[1]);
+      }
+      function lineStart() {
+        clip.point = pointLine;
+        line.lineStart();
+      }
+      function lineEnd() {
+        clip.point = point;
+        line.lineEnd();
+      }
+      var segments;
+      var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), polygonStarted = false, polygon, ring;
+      function pointRing(λ, φ) {
+        ring.push([ λ, φ ]);
+        var point = rotate(λ, φ);
+        ringListener.point(point[0], point[1]);
+      }
+      function ringStart() {
+        ringListener.lineStart();
+        ring = [];
+      }
+      function ringEnd() {
+        pointRing(ring[0][0], ring[0][1]);
+        ringListener.lineEnd();
+        var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
+        ring.pop();
+        polygon.push(ring);
+        ring = null;
+        if (!n) return;
+        if (clean & 1) {
+          segment = ringSegments[0];
+          var n = segment.length - 1, i = -1, point;
+          if (n > 0) {
+            if (!polygonStarted) listener.polygonStart(), polygonStarted = true;
+            listener.lineStart();
+            while (++i < n) listener.point((point = segment[i])[0], point[1]);
+            listener.lineEnd();
+          }
+          return;
+        }
+        if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
+        segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
+      }
+      return clip;
+    };
+  }
+  function d3_geo_clipSegmentLength1(segment) {
+    return segment.length > 1;
+  }
+  function d3_geo_clipBufferListener() {
+    var lines = [], line;
+    return {
+      lineStart: function() {
+        lines.push(line = []);
+      },
+      point: function(λ, φ) {
+        line.push([ λ, φ ]);
+      },
+      lineEnd: d3_noop,
+      buffer: function() {
+        var buffer = lines;
+        lines = [];
+        line = null;
+        return buffer;
+      },
+      rejoin: function() {
+        if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));
+      }
+    };
+  }
+  function d3_geo_clipSort(a, b) {
+    return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);
+  }
+  var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate, [ -π, -π / 2 ]);
+  function d3_geo_clipAntimeridianLine(listener) {
+    var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
+    return {
+      lineStart: function() {
+        listener.lineStart();
+        clean = 1;
+      },
+      point: function(λ1, φ1) {
+        var sλ1 = λ1 > 0 ? π : -π, dλ = abs(λ1 - λ0);
+        if (abs(dλ - π) < ε) {
+          listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);
+          listener.point(sλ0, φ0);
+          listener.lineEnd();
+          listener.lineStart();
+          listener.point(sλ1, φ0);
+          listener.point(λ1, φ0);
+          clean = 0;
+        } else if (sλ0 !== sλ1 && dλ >= π) {
+          if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
+          if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
+          φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
+          listener.point(sλ0, φ0);
+          listener.lineEnd();
+          listener.lineStart();
+          listener.point(sλ1, φ0);
+          clean = 0;
+        }
+        listener.point(λ0 = λ1, φ0 = φ1);
+        sλ0 = sλ1;
+      },
+      lineEnd: function() {
+        listener.lineEnd();
+        λ0 = φ0 = NaN;
+      },
+      clean: function() {
+        return 2 - clean;
+      }
+    };
+  }
+  function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
+    var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
+    return abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
+  }
+  function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
+    var φ;
+    if (from == null) {
+      φ = direction * halfπ;
+      listener.point(-π, φ);
+      listener.point(0, φ);
+      listener.point(π, φ);
+      listener.point(π, 0);
+      listener.point(π, -φ);
+      listener.point(0, -φ);
+      listener.point(-π, -φ);
+      listener.point(-π, 0);
+      listener.point(-π, φ);
+    } else if (abs(from[0] - to[0]) > ε) {
+      var s = from[0] < to[0] ? π : -π;
+      φ = direction * s / 2;
+      listener.point(-s, φ);
+      listener.point(0, φ);
+      listener.point(s, φ);
+    } else {
+      listener.point(to[0], to[1]);
+    }
+  }
+  function d3_geo_pointInPolygon(point, polygon) {
+    var meridian = point[0], parallel = point[1], meridianNormal = [ Math.sin(meridian), -Math.cos(meridian), 0 ], polarAngle = 0, winding = 0;
+    d3_geo_areaRingSum.reset();
+    for (var i = 0, n = polygon.length; i < n; ++i) {
+      var ring = polygon[i], m = ring.length;
+      if (!m) continue;
+      var point0 = ring[0], λ0 = point0[0], φ0 = point0[1] / 2 + π / 4, sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), j = 1;
+      while (true) {
+        if (j === m) j = 0;
+        point = ring[j];
+        var λ = point[0], φ = point[1] / 2 + π / 4, sinφ = Math.sin(φ), cosφ = Math.cos(φ), dλ = λ - λ0, sdλ = dλ >= 0 ? 1 : -1, adλ = sdλ * dλ, antimeridian = adλ > π, k = sinφ0 * sinφ;
+        d3_geo_areaRingSum.add(Math.atan2(k * sdλ * Math.sin(adλ), cosφ0 * cosφ + k * Math.cos(adλ)));
+        polarAngle += antimeridian ? dλ + sdλ * τ : dλ;
+        if (antimeridian ^ λ0 >= meridian ^ λ >= meridian) {
+          var arc = d3_geo_cartesianCross(d3_geo_cartesian(point0), d3_geo_cartesian(point));
+          d3_geo_cartesianNormalize(arc);
+          var intersection = d3_geo_cartesianCross(meridianNormal, arc);
+          d3_geo_cartesianNormalize(intersection);
+          var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
+          if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
+            winding += antimeridian ^ dλ >= 0 ? 1 : -1;
+          }
+        }
+        if (!j++) break;
+        λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
+      }
+    }
+    return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1;
+  }
+  function d3_geo_clipCircle(radius) {
+    var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
+    return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [ 0, -radius ] : [ -π, radius - π ]);
+    function visible(λ, φ) {
+      return Math.cos(λ) * Math.cos(φ) > cr;
+    }
+    function clipLine(listener) {
+      var point0, c0, v0, v00, clean;
+      return {
+        lineStart: function() {
+          v00 = v0 = false;
+          clean = 1;
+        },
+        point: function(λ, φ) {
+          var point1 = [ λ, φ ], point2, v = visible(λ, φ), c = smallRadius ? v ? 0 : code(λ, φ) : v ? code(λ + (λ < 0 ? π : -π), φ) : 0;
+          if (!point0 && (v00 = v0 = v)) listener.lineStart();
+          if (v !== v0) {
+            point2 = intersect(point0, point1);
+            if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
+              point1[0] += ε;
+              point1[1] += ε;
+              v = visible(point1[0], point1[1]);
+            }
+          }
+          if (v !== v0) {
+            clean = 0;
+            if (v) {
+              listener.lineStart();
+              point2 = intersect(point1, point0);
+              listener.point(point2[0], point2[1]);
+            } else {
+              point2 = intersect(point0, point1);
+              listener.point(point2[0], point2[1]);
+              listener.lineEnd();
+            }
+            point0 = point2;
+          } else if (notHemisphere && point0 && smallRadius ^ v) {
+            var t;
+            if (!(c & c0) && (t = intersect(point1, point0, true))) {
+              clean = 0;
+              if (smallRadius) {
+                listener.lineStart();
+                listener.point(t[0][0], t[0][1]);
+                listener.point(t[1][0], t[1][1]);
+                listener.lineEnd();
+              } else {
+                listener.point(t[1][0], t[1][1]);
+                listener.lineEnd();
+                listener.lineStart();
+                listener.point(t[0][0], t[0][1]);
+              }
+            }
+          }
+          if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) {
+            listener.point(point1[0], point1[1]);
+          }
+          point0 = point1, v0 = v, c0 = c;
+        },
+        lineEnd: function() {
+          if (v0) listener.lineEnd();
+          point0 = null;
+        },
+        clean: function() {
+          return clean | (v00 && v0) << 1;
+        }
+      };
+    }
+    function intersect(a, b, two) {
+      var pa = d3_geo_cartesian(a), pb = d3_geo_cartesian(b);
+      var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
+      if (!determinant) return !two && a;
+      var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
+      d3_geo_cartesianAdd(A, B);
+      var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t2 = w * w - uu * (d3_geo_cartesianDot(A, A) - 1);
+      if (t2 < 0) return;
+      var t = Math.sqrt(t2), q = d3_geo_cartesianScale(u, (-w - t) / uu);
+      d3_geo_cartesianAdd(q, A);
+      q = d3_geo_spherical(q);
+      if (!two) return q;
+      var λ0 = a[0], λ1 = b[0], φ0 = a[1], φ1 = b[1], z;
+      if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
+      var δλ = λ1 - λ0, polar = abs(δλ - π) < ε, meridian = polar || δλ < ε;
+      if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
+      if (meridian ? polar ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1) : φ0 <= q[1] && q[1] <= φ1 : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
+        var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
+        d3_geo_cartesianAdd(q1, A);
+        return [ q, d3_geo_spherical(q1) ];
+      }
+    }
+    function code(λ, φ) {
+      var r = smallRadius ? radius : π - radius, code = 0;
+      if (λ < -r) code |= 1; else if (λ > r) code |= 2;
+      if (φ < -r) code |= 4; else if (φ > r) code |= 8;
+      return code;
+    }
+  }
+  function d3_geom_clipLine(x0, y0, x1, y1) {
+    return function(line) {
+      var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t0 = 0, t1 = 1, dx = bx - ax, dy = by - ay, r;
+      r = x0 - ax;
+      if (!dx && r > 0) return;
+      r /= dx;
+      if (dx < 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      } else if (dx > 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      }
+      r = x1 - ax;
+      if (!dx && r < 0) return;
+      r /= dx;
+      if (dx < 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      } else if (dx > 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      }
+      r = y0 - ay;
+      if (!dy && r > 0) return;
+      r /= dy;
+      if (dy < 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      } else if (dy > 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      }
+      r = y1 - ay;
+      if (!dy && r < 0) return;
+      r /= dy;
+      if (dy < 0) {
+        if (r > t1) return;
+        if (r > t0) t0 = r;
+      } else if (dy > 0) {
+        if (r < t0) return;
+        if (r < t1) t1 = r;
+      }
+      if (t0 > 0) line.a = {
+        x: ax + t0 * dx,
+        y: ay + t0 * dy
+      };
+      if (t1 < 1) line.b = {
+        x: ax + t1 * dx,
+        y: ay + t1 * dy
+      };
+      return line;
+    };
+  }
+  var d3_geo_clipExtentMAX = 1e9;
+  d3.geo.clipExtent = function() {
+    var x0, y0, x1, y1, stream, clip, clipExtent = {
+      stream: function(output) {
+        if (stream) stream.valid = false;
+        stream = clip(output);
+        stream.valid = true;
+        return stream;
+      },
+      extent: function(_) {
+        if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
+        clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);
+        if (stream) stream.valid = false, stream = null;
+        return clipExtent;
+      }
+    };
+    return clipExtent.extent([ [ 0, 0 ], [ 960, 500 ] ]);
+  };
+  function d3_geo_clipExtent(x0, y0, x1, y1) {
+    return function(listener) {
+      var listener_ = listener, bufferListener = d3_geo_clipBufferListener(), clipLine = d3_geom_clipLine(x0, y0, x1, y1), segments, polygon, ring;
+      var clip = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          listener = bufferListener;
+          segments = [];
+          polygon = [];
+          clean = true;
+        },
+        polygonEnd: function() {
+          listener = listener_;
+          segments = d3.merge(segments);
+          var clipStartInside = insidePolygon([ x0, y1 ]), inside = clean && clipStartInside, visible = segments.length;
+          if (inside || visible) {
+            listener.polygonStart();
+            if (inside) {
+              listener.lineStart();
+              interpolate(null, null, 1, listener);
+              listener.lineEnd();
+            }
+            if (visible) {
+              d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);
+            }
+            listener.polygonEnd();
+          }
+          segments = polygon = ring = null;
+        }
+      };
+      function insidePolygon(p) {
+        var wn = 0, n = polygon.length, y = p[1];
+        for (var i = 0; i < n; ++i) {
+          for (var j = 1, v = polygon[i], m = v.length, a = v[0], b; j < m; ++j) {
+            b = v[j];
+            if (a[1] <= y) {
+              if (b[1] > y && d3_cross2d(a, b, p) > 0) ++wn;
+            } else {
+              if (b[1] <= y && d3_cross2d(a, b, p) < 0) --wn;
+            }
+            a = b;
+          }
+        }
+        return wn !== 0;
+      }
+      function interpolate(from, to, direction, listener) {
+        var a = 0, a1 = 0;
+        if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoints(from, to) < 0 ^ direction > 0) {
+          do {
+            listener.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);
+          } while ((a = (a + direction + 4) % 4) !== a1);
+        } else {
+          listener.point(to[0], to[1]);
+        }
+      }
+      function pointVisible(x, y) {
+        return x0 <= x && x <= x1 && y0 <= y && y <= y1;
+      }
+      function point(x, y) {
+        if (pointVisible(x, y)) listener.point(x, y);
+      }
+      var x__, y__, v__, x_, y_, v_, first, clean;
+      function lineStart() {
+        clip.point = linePoint;
+        if (polygon) polygon.push(ring = []);
+        first = true;
+        v_ = false;
+        x_ = y_ = NaN;
+      }
+      function lineEnd() {
+        if (segments) {
+          linePoint(x__, y__);
+          if (v__ && v_) bufferListener.rejoin();
+          segments.push(bufferListener.buffer());
+        }
+        clip.point = point;
+        if (v_) listener.lineEnd();
+      }
+      function linePoint(x, y) {
+        x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));
+        y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));
+        var v = pointVisible(x, y);
+        if (polygon) ring.push([ x, y ]);
+        if (first) {
+          x__ = x, y__ = y, v__ = v;
+          first = false;
+          if (v) {
+            listener.lineStart();
+            listener.point(x, y);
+          }
+        } else {
+          if (v && v_) listener.point(x, y); else {
+            var l = {
+              a: {
+                x: x_,
+                y: y_
+              },
+              b: {
+                x: x,
+                y: y
+              }
+            };
+            if (clipLine(l)) {
+              if (!v_) {
+                listener.lineStart();
+                listener.point(l.a.x, l.a.y);
+              }
+              listener.point(l.b.x, l.b.y);
+              if (!v) listener.lineEnd();
+              clean = false;
+            } else if (v) {
+              listener.lineStart();
+              listener.point(x, y);
+              clean = false;
+            }
+          }
+        }
+        x_ = x, y_ = y, v_ = v;
+      }
+      return clip;
+    };
+    function corner(p, direction) {
+      return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3 : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1 : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;
+    }
+    function compare(a, b) {
+      return comparePoints(a.x, b.x);
+    }
+    function comparePoints(a, b) {
+      var ca = corner(a, 1), cb = corner(b, 1);
+      return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];
+    }
+  }
+  function d3_geo_conic(projectAt) {
+    var φ0 = 0, φ1 = π / 3, m = d3_geo_projectionMutator(projectAt), p = m(φ0, φ1);
+    p.parallels = function(_) {
+      if (!arguments.length) return [ φ0 / π * 180, φ1 / π * 180 ];
+      return m(φ0 = _[0] * π / 180, φ1 = _[1] * π / 180);
+    };
+    return p;
+  }
+  function d3_geo_conicEqualArea(φ0, φ1) {
+    var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
+    function forward(λ, φ) {
+      var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
+      return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
+    }
+    forward.invert = function(x, y) {
+      var ρ0_y = ρ0 - y;
+      return [ Math.atan2(x, ρ0_y) / n, d3_asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
+    };
+    return forward;
+  }
+  (d3.geo.conicEqualArea = function() {
+    return d3_geo_conic(d3_geo_conicEqualArea);
+  }).raw = d3_geo_conicEqualArea;
+  d3.geo.albers = function() {
+    return d3.geo.conicEqualArea().rotate([ 96, 0 ]).center([ -.6, 38.7 ]).parallels([ 29.5, 45.5 ]).scale(1070);
+  };
+  d3.geo.albersUsa = function() {
+    var lower48 = d3.geo.albers();
+    var alaska = d3.geo.conicEqualArea().rotate([ 154, 0 ]).center([ -2, 58.5 ]).parallels([ 55, 65 ]);
+    var hawaii = d3.geo.conicEqualArea().rotate([ 157, 0 ]).center([ -3, 19.9 ]).parallels([ 8, 18 ]);
+    var point, pointStream = {
+      point: function(x, y) {
+        point = [ x, y ];
+      }
+    }, lower48Point, alaskaPoint, hawaiiPoint;
+    function albersUsa(coordinates) {
+      var x = coordinates[0], y = coordinates[1];
+      point = null;
+      (lower48Point(x, y), point) || (alaskaPoint(x, y), point) || hawaiiPoint(x, y);
+      return point;
+    }
+    albersUsa.invert = function(coordinates) {
+      var k = lower48.scale(), t = lower48.translate(), x = (coordinates[0] - t[0]) / k, y = (coordinates[1] - t[1]) / k;
+      return (y >= .12 && y < .234 && x >= -.425 && x < -.214 ? alaska : y >= .166 && y < .234 && x >= -.214 && x < -.115 ? hawaii : lower48).invert(coordinates);
+    };
+    albersUsa.stream = function(stream) {
+      var lower48Stream = lower48.stream(stream), alaskaStream = alaska.stream(stream), hawaiiStream = hawaii.stream(stream);
+      return {
+        point: function(x, y) {
+          lower48Stream.point(x, y);
+          alaskaStream.point(x, y);
+          hawaiiStream.point(x, y);
+        },
+        sphere: function() {
+          lower48Stream.sphere();
+          alaskaStream.sphere();
+          hawaiiStream.sphere();
+        },
+        lineStart: function() {
+          lower48Stream.lineStart();
+          alaskaStream.lineStart();
+          hawaiiStream.lineStart();
+        },
+        lineEnd: function() {
+          lower48Stream.lineEnd();
+          alaskaStream.lineEnd();
+          hawaiiStream.lineEnd();
+        },
+        polygonStart: function() {
+          lower48Stream.polygonStart();
+          alaskaStream.polygonStart();
+          hawaiiStream.polygonStart();
+        },
+        polygonEnd: function() {
+          lower48Stream.polygonEnd();
+          alaskaStream.polygonEnd();
+          hawaiiStream.polygonEnd();
+        }
+      };
+    };
+    albersUsa.precision = function(_) {
+      if (!arguments.length) return lower48.precision();
+      lower48.precision(_);
+      alaska.precision(_);
+      hawaii.precision(_);
+      return albersUsa;
+    };
+    albersUsa.scale = function(_) {
+      if (!arguments.length) return lower48.scale();
+      lower48.scale(_);
+      alaska.scale(_ * .35);
+      hawaii.scale(_);
+      return albersUsa.translate(lower48.translate());
+    };
+    albersUsa.translate = function(_) {
+      if (!arguments.length) return lower48.translate();
+      var k = lower48.scale(), x = +_[0], y = +_[1];
+      lower48Point = lower48.translate(_).clipExtent([ [ x - .455 * k, y - .238 * k ], [ x + .455 * k, y + .238 * k ] ]).stream(pointStream).point;
+      alaskaPoint = alaska.translate([ x - .307 * k, y + .201 * k ]).clipExtent([ [ x - .425 * k + ε, y + .12 * k + ε ], [ x - .214 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
+      hawaiiPoint = hawaii.translate([ x - .205 * k, y + .212 * k ]).clipExtent([ [ x - .214 * k + ε, y + .166 * k + ε ], [ x - .115 * k - ε, y + .234 * k - ε ] ]).stream(pointStream).point;
+      return albersUsa;
+    };
+    return albersUsa.scale(1070);
+  };
+  var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
+    point: d3_noop,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: function() {
+      d3_geo_pathAreaPolygon = 0;
+      d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
+      d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);
+    }
+  };
+  function d3_geo_pathAreaRingStart() {
+    var x00, y00, x0, y0;
+    d3_geo_pathArea.point = function(x, y) {
+      d3_geo_pathArea.point = nextPoint;
+      x00 = x0 = x, y00 = y0 = y;
+    };
+    function nextPoint(x, y) {
+      d3_geo_pathAreaPolygon += y0 * x - x0 * y;
+      x0 = x, y0 = y;
+    }
+    d3_geo_pathArea.lineEnd = function() {
+      nextPoint(x00, y00);
+    };
+  }
+  var d3_geo_pathBoundsX0, d3_geo_pathBoundsY0, d3_geo_pathBoundsX1, d3_geo_pathBoundsY1;
+  var d3_geo_pathBounds = {
+    point: d3_geo_pathBoundsPoint,
+    lineStart: d3_noop,
+    lineEnd: d3_noop,
+    polygonStart: d3_noop,
+    polygonEnd: d3_noop
+  };
+  function d3_geo_pathBoundsPoint(x, y) {
+    if (x < d3_geo_pathBoundsX0) d3_geo_pathBoundsX0 = x;
+    if (x > d3_geo_pathBoundsX1) d3_geo_pathBoundsX1 = x;
+    if (y < d3_geo_pathBoundsY0) d3_geo_pathBoundsY0 = y;
+    if (y > d3_geo_pathBoundsY1) d3_geo_pathBoundsY1 = y;
+  }
+  function d3_geo_pathBuffer() {
+    var pointCircle = d3_geo_pathBufferCircle(4.5), buffer = [];
+    var stream = {
+      point: point,
+      lineStart: function() {
+        stream.point = pointLineStart;
+      },
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        stream.lineEnd = lineEndPolygon;
+      },
+      polygonEnd: function() {
+        stream.lineEnd = lineEnd;
+        stream.point = point;
+      },
+      pointRadius: function(_) {
+        pointCircle = d3_geo_pathBufferCircle(_);
+        return stream;
+      },
+      result: function() {
+        if (buffer.length) {
+          var result = buffer.join("");
+          buffer = [];
+          return result;
+        }
+      }
+    };
+    function point(x, y) {
+      buffer.push("M", x, ",", y, pointCircle);
+    }
+    function pointLineStart(x, y) {
+      buffer.push("M", x, ",", y);
+      stream.point = pointLine;
+    }
+    function pointLine(x, y) {
+      buffer.push("L", x, ",", y);
+    }
+    function lineEnd() {
+      stream.point = point;
+    }
+    function lineEndPolygon() {
+      buffer.push("Z");
+    }
+    return stream;
+  }
+  function d3_geo_pathBufferCircle(radius) {
+    return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + 2 * radius + "z";
+  }
+  var d3_geo_pathCentroid = {
+    point: d3_geo_pathCentroidPoint,
+    lineStart: d3_geo_pathCentroidLineStart,
+    lineEnd: d3_geo_pathCentroidLineEnd,
+    polygonStart: function() {
+      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
+    },
+    polygonEnd: function() {
+      d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
+      d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
+      d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
+    }
+  };
+  function d3_geo_pathCentroidPoint(x, y) {
+    d3_geo_centroidX0 += x;
+    d3_geo_centroidY0 += y;
+    ++d3_geo_centroidZ0;
+  }
+  function d3_geo_pathCentroidLineStart() {
+    var x0, y0;
+    d3_geo_pathCentroid.point = function(x, y) {
+      d3_geo_pathCentroid.point = nextPoint;
+      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
+    };
+    function nextPoint(x, y) {
+      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
+      d3_geo_centroidX1 += z * (x0 + x) / 2;
+      d3_geo_centroidY1 += z * (y0 + y) / 2;
+      d3_geo_centroidZ1 += z;
+      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
+    }
+  }
+  function d3_geo_pathCentroidLineEnd() {
+    d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
+  }
+  function d3_geo_pathCentroidRingStart() {
+    var x00, y00, x0, y0;
+    d3_geo_pathCentroid.point = function(x, y) {
+      d3_geo_pathCentroid.point = nextPoint;
+      d3_geo_pathCentroidPoint(x00 = x0 = x, y00 = y0 = y);
+    };
+    function nextPoint(x, y) {
+      var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
+      d3_geo_centroidX1 += z * (x0 + x) / 2;
+      d3_geo_centroidY1 += z * (y0 + y) / 2;
+      d3_geo_centroidZ1 += z;
+      z = y0 * x - x0 * y;
+      d3_geo_centroidX2 += z * (x0 + x);
+      d3_geo_centroidY2 += z * (y0 + y);
+      d3_geo_centroidZ2 += z * 3;
+      d3_geo_pathCentroidPoint(x0 = x, y0 = y);
+    }
+    d3_geo_pathCentroid.lineEnd = function() {
+      nextPoint(x00, y00);
+    };
+  }
+  function d3_geo_pathContext(context) {
+    var pointRadius = 4.5;
+    var stream = {
+      point: point,
+      lineStart: function() {
+        stream.point = pointLineStart;
+      },
+      lineEnd: lineEnd,
+      polygonStart: function() {
+        stream.lineEnd = lineEndPolygon;
+      },
+      polygonEnd: function() {
+        stream.lineEnd = lineEnd;
+        stream.point = point;
+      },
+      pointRadius: function(_) {
+        pointRadius = _;
+        return stream;
+      },
+      result: d3_noop
+    };
+    function point(x, y) {
+      context.moveTo(x + pointRadius, y);
+      context.arc(x, y, pointRadius, 0, τ);
+    }
+    function pointLineStart(x, y) {
+      context.moveTo(x, y);
+      stream.point = pointLine;
+    }
+    function pointLine(x, y) {
+      context.lineTo(x, y);
+    }
+    function lineEnd() {
+      stream.point = point;
+    }
+    function lineEndPolygon() {
+      context.closePath();
+    }
+    return stream;
+  }
+  function d3_geo_resample(project) {
+    var δ2 = .5, cosMinDistance = Math.cos(30 * d3_radians), maxDepth = 16;
+    function resample(stream) {
+      return (maxDepth ? resampleRecursive : resampleNone)(stream);
+    }
+    function resampleNone(stream) {
+      return d3_geo_transformPoint(stream, function(x, y) {
+        x = project(x, y);
+        stream.point(x[0], x[1]);
+      });
+    }
+    function resampleRecursive(stream) {
+      var λ00, φ00, x00, y00, a00, b00, c00, λ0, x0, y0, a0, b0, c0;
+      var resample = {
+        point: point,
+        lineStart: lineStart,
+        lineEnd: lineEnd,
+        polygonStart: function() {
+          stream.polygonStart();
+          resample.lineStart = ringStart;
+        },
+        polygonEnd: function() {
+          stream.polygonEnd();
+          resample.lineStart = lineStart;
+        }
+      };
+      function point(x, y) {
+        x = project(x, y);
+        stream.point(x[0], x[1]);
+      }
+      function lineStart() {
+        x0 = NaN;
+        resample.point = linePoint;
+        stream.lineStart();
+      }
+      function linePoint(λ, φ) {
+        var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
+        resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
+        stream.point(x0, y0);
+      }
+      function lineEnd() {
+        resample.point = point;
+        stream.lineEnd();
+      }
+      function ringStart() {
+        lineStart();
+        resample.point = ringPoint;
+        resample.lineEnd = ringEnd;
+      }
+      function ringPoint(λ, φ) {
+        linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
+        resample.point = linePoint;
+      }
+      function ringEnd() {
+        resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
+        resample.lineEnd = lineEnd;
+        lineEnd();
+      }
+      return resample;
+    }
+    function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
+      var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
+      if (d2 > 4 * δ2 && depth--) {
+        var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = abs(abs(c) - 1) < ε || abs(λ0 - λ1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
+        if (dz * dz / d2 > δ2 || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {
+          resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
+          stream.point(x2, y2);
+          resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
+        }
+      }
+    }
+    resample.precision = function(_) {
+      if (!arguments.length) return Math.sqrt(δ2);
+      maxDepth = (δ2 = _ * _) > 0 && 16;
+      return resample;
+    };
+    return resample;
+  }
+  d3.geo.path = function() {
+    var pointRadius = 4.5, projection, context, projectStream, contextStream, cacheStream;
+    function path(object) {
+      if (object) {
+        if (typeof pointRadius === "function") contextStream.pointRadius(+pointRadius.apply(this, arguments));
+        if (!cacheStream || !cacheStream.valid) cacheStream = projectStream(contextStream);
+        d3.geo.stream(object, cacheStream);
+      }
+      return contextStream.result();
+    }
+    path.area = function(object) {
+      d3_geo_pathAreaSum = 0;
+      d3.geo.stream(object, projectStream(d3_geo_pathArea));
+      return d3_geo_pathAreaSum;
+    };
+    path.centroid = function(object) {
+      d3_geo_centroidX0 = d3_geo_centroidY0 = d3_geo_centroidZ0 = d3_geo_centroidX1 = d3_geo_centroidY1 = d3_geo_centroidZ1 = d3_geo_centroidX2 = d3_geo_centroidY2 = d3_geo_centroidZ2 = 0;
+      d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
+      return d3_geo_centroidZ2 ? [ d3_geo_centroidX2 / d3_geo_centroidZ2, d3_geo_centroidY2 / d3_geo_centroidZ2 ] : d3_geo_centroidZ1 ? [ d3_geo_centroidX1 / d3_geo_centroidZ1, d3_geo_centroidY1 / d3_geo_centroidZ1 ] : d3_geo_centroidZ0 ? [ d3_geo_centroidX0 / d3_geo_centroidZ0, d3_geo_centroidY0 / d3_geo_centroidZ0 ] : [ NaN, NaN ];
+    };
+    path.bounds = function(object) {
+      d3_geo_pathBoundsX1 = d3_geo_pathBoundsY1 = -(d3_geo_pathBoundsX0 = d3_geo_pathBoundsY0 = Infinity);
+      d3.geo.stream(object, projectStream(d3_geo_pathBounds));
+      return [ [ d3_geo_pathBoundsX0, d3_geo_pathBoundsY0 ], [ d3_geo_pathBoundsX1, d3_geo_pathBoundsY1 ] ];
+    };
+    path.projection = function(_) {
+      if (!arguments.length) return projection;
+      projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
+      return reset();
+    };
+    path.context = function(_) {
+      if (!arguments.length) return context;
+      contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
+      if (typeof pointRadius !== "function") contextStream.pointRadius(pointRadius);
+      return reset();
+    };
+    path.pointRadius = function(_) {
+      if (!arguments.length) return pointRadius;
+      pointRadius = typeof _ === "function" ? _ : (contextStream.pointRadius(+_), +_);
+      return path;
+    };
+    function reset() {
+      cacheStream = null;
+      return path;
+    }
+    return path.projection(d3.geo.albersUsa()).context(null);
+  };
+  function d3_geo_pathProjectStream(project) {
+    var resample = d3_geo_resample(function(x, y) {
+      return project([ x * d3_degrees, y * d3_degrees ]);
+    });
+    return function(stream) {
+      return d3_geo_projectionRadians(resample(stream));
+    };
+  }
+  d3.geo.transform = function(methods) {
+    return {
+      stream: function(stream) {
+        var transform = new d3_geo_transform(stream);
+        for (var k in methods) transform[k] = methods[k];
+        return transform;
+      }
+    };
+  };
+  function d3_geo_transform(stream) {
+    this.stream = stream;
+  }
+  d3_geo_transform.prototype = {
+    point: function(x, y) {
+      this.stream.point(x, y);
+    },
+    sphere: function() {
+      this.stream.sphere();
+    },
+    lineStart: function() {
+      this.stream.lineStart();
+    },
+    lineEnd: function() {
+      this.stream.lineEnd();
+    },
+    polygonStart: function() {
+      this.stream.polygonStart();
+    },
+    polygonEnd: function() {
+      this.stream.polygonEnd();
+    }
+  };
+  function d3_geo_transformPoint(stream, point) {
+    return {
+      point: point,
+      sphere: function() {
+        stream.sphere();
+      },
+      lineStart: function() {
+        stream.lineStart();
+      },
+      lineEnd: function() {
+        stream.lineEnd();
+      },
+      polygonStart: function() {
+        stream.polygonStart();
+      },
+      polygonEnd: function() {
+        stream.polygonEnd();
+      }
+    };
+  }
+  d3.geo.projection = d3_geo_projection;
+  d3.geo.projectionMutator = d3_geo_projectionMutator;
+  function d3_geo_projection(project) {
+    return d3_geo_projectionMutator(function() {
+      return project;
+    })();
+  }
+  function d3_geo_projectionMutator(projectAt) {
+    var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
+      x = project(x, y);
+      return [ x[0] * k + δx, δy - x[1] * k ];
+    }), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, preclip = d3_geo_clipAntimeridian, postclip = d3_identity, clipAngle = null, clipExtent = null, stream;
+    function projection(point) {
+      point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
+      return [ point[0] * k + δx, δy - point[1] * k ];
+    }
+    function invert(point) {
+      point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
+      return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
+    }
+    projection.stream = function(output) {
+      if (stream) stream.valid = false;
+      stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));
+      stream.valid = true;
+      return stream;
+    };
+    projection.clipAngle = function(_) {
+      if (!arguments.length) return clipAngle;
+      preclip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle((clipAngle = +_) * d3_radians);
+      return invalidate();
+    };
+    projection.clipExtent = function(_) {
+      if (!arguments.length) return clipExtent;
+      clipExtent = _;
+      postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;
+      return invalidate();
+    };
+    projection.scale = function(_) {
+      if (!arguments.length) return k;
+      k = +_;
+      return reset();
+    };
+    projection.translate = function(_) {
+      if (!arguments.length) return [ x, y ];
+      x = +_[0];
+      y = +_[1];
+      return reset();
+    };
+    projection.center = function(_) {
+      if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
+      λ = _[0] % 360 * d3_radians;
+      φ = _[1] % 360 * d3_radians;
+      return reset();
+    };
+    projection.rotate = function(_) {
+      if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
+      δλ = _[0] % 360 * d3_radians;
+      δφ = _[1] % 360 * d3_radians;
+      δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
+      return reset();
+    };
+    d3.rebind(projection, projectResample, "precision");
+    function reset() {
+      projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
+      var center = project(λ, φ);
+      δx = x - center[0] * k;
+      δy = y + center[1] * k;
+      return invalidate();
+    }
+    function invalidate() {
+      if (stream) stream.valid = false, stream = null;
+      return projection;
+    }
+    return function() {
+      project = projectAt.apply(this, arguments);
+      projection.invert = project.invert && invert;
+      return reset();
+    };
+  }
+  function d3_geo_projectionRadians(stream) {
+    return d3_geo_transformPoint(stream, function(x, y) {
+      stream.point(x * d3_radians, y * d3_radians);
+    });
+  }
+  function d3_geo_equirectangular(λ, φ) {
+    return [ λ, φ ];
+  }
+  (d3.geo.equirectangular = function() {
+    return d3_geo_projection(d3_geo_equirectangular);
+  }).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
+  d3.geo.rotation = function(rotate) {
+    rotate = d3_geo_rotation(rotate[0] % 360 * d3_radians, rotate[1] * d3_radians, rotate.length > 2 ? rotate[2] * d3_radians : 0);
+    function forward(coordinates) {
+      coordinates = rotate(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
+      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
+    }
+    forward.invert = function(coordinates) {
+      coordinates = rotate.invert(coordinates[0] * d3_radians, coordinates[1] * d3_radians);
+      return coordinates[0] *= d3_degrees, coordinates[1] *= d3_degrees, coordinates;
+    };
+    return forward;
+  };
+  function d3_geo_identityRotation(λ, φ) {
+    return [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
+  }
+  d3_geo_identityRotation.invert = d3_geo_equirectangular;
+  function d3_geo_rotation(δλ, δφ, δγ) {
+    return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_identityRotation;
+  }
+  function d3_geo_forwardRotationλ(δλ) {
+    return function(λ, φ) {
+      return λ += δλ, [ λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ ];
+    };
+  }
+  function d3_geo_rotationλ(δλ) {
+    var rotation = d3_geo_forwardRotationλ(δλ);
+    rotation.invert = d3_geo_forwardRotationλ(-δλ);
+    return rotation;
+  }
+  function d3_geo_rotationφγ(δφ, δγ) {
+    var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
+    function rotation(λ, φ) {
+      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
+      return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), d3_asin(k * cosδγ + y * sinδγ) ];
+    }
+    rotation.invert = function(λ, φ) {
+      var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
+      return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), d3_asin(k * cosδφ - x * sinδφ) ];
+    };
+    return rotation;
+  }
+  d3.geo.circle = function() {
+    var origin = [ 0, 0 ], angle, precision = 6, interpolate;
+    function circle() {
+      var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
+      interpolate(null, null, 1, {
+        point: function(x, y) {
+          ring.push(x = rotate(x, y));
+          x[0] *= d3_degrees, x[1] *= d3_degrees;
+        }
+      });
+      return {
+        type: "Polygon",
+        coordinates: [ ring ]
+      };
+    }
+    circle.origin = function(x) {
+      if (!arguments.length) return origin;
+      origin = x;
+      return circle;
+    };
+    circle.angle = function(x) {
+      if (!arguments.length) return angle;
+      interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
+      return circle;
+    };
+    circle.precision = function(_) {
+      if (!arguments.length) return precision;
+      interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
+      return circle;
+    };
+    return circle.angle(90);
+  };
+  function d3_geo_circleInterpolate(radius, precision) {
+    var cr = Math.cos(radius), sr = Math.sin(radius);
+    return function(from, to, direction, listener) {
+      var step = direction * precision;
+      if (from != null) {
+        from = d3_geo_circleAngle(cr, from);
+        to = d3_geo_circleAngle(cr, to);
+        if (direction > 0 ? from < to : from > to) from += direction * τ;
+      } else {
+        from = radius + direction * τ;
+        to = radius - .5 * step;
+      }
+      for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {
+        listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
+      }
+    };
+  }
+  function d3_geo_circleAngle(cr, point) {
+    var a = d3_geo_cartesian(point);
+    a[0] -= cr;
+    d3_geo_cartesianNormalize(a);
+    var angle = d3_acos(-a[1]);
+    return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
+  }
+  d3.geo.distance = function(a, b) {
+    var Δλ = (b[0] - a[0]) * d3_radians, φ0 = a[1] * d3_radians, φ1 = b[1] * d3_radians, sinΔλ = Math.sin(Δλ), cosΔλ = Math.cos(Δλ), sinφ0 = Math.sin(φ0), cosφ0 = Math.cos(φ0), sinφ1 = Math.sin(φ1), cosφ1 = Math.cos(φ1), t;
+    return Math.atan2(Math.sqrt((t = cosφ1 * sinΔλ) * t + (t = cosφ0 * sinφ1 - sinφ0 * cosφ1 * cosΔλ) * t), sinφ0 * sinφ1 + cosφ0 * cosφ1 * cosΔλ);
+  };
+  d3.geo.graticule = function() {
+    var x1, x0, X1, X0, y1, y0, Y1, Y0, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;
+    function graticule() {
+      return {
+        type: "MultiLineString",
+        coordinates: lines()
+      };
+    }
+    function lines() {
+      return d3.range(Math.ceil(X0 / DX) * DX, X1, DX).map(X).concat(d3.range(Math.ceil(Y0 / DY) * DY, Y1, DY).map(Y)).concat(d3.range(Math.ceil(x0 / dx) * dx, x1, dx).filter(function(x) {
+        return abs(x % DX) > ε;
+      }).map(x)).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).filter(function(y) {
+        return abs(y % DY) > ε;
+      }).map(y));
+    }
+    graticule.lines = function() {
+      return lines().map(function(coordinates) {
+        return {
+          type: "LineString",
+          coordinates: coordinates
+        };
+      });
+    };
+    graticule.outline = function() {
+      return {
+        type: "Polygon",
+        coordinates: [ X(X0).concat(Y(Y1).slice(1), X(X1).reverse().slice(1), Y(Y0).reverse().slice(1)) ]
+      };
+    };
+    graticule.extent = function(_) {
+      if (!arguments.length) return graticule.minorExtent();
+      return graticule.majorExtent(_).minorExtent(_);
+    };
+    graticule.majorExtent = function(_) {
+      if (!arguments.length) return [ [ X0, Y0 ], [ X1, Y1 ] ];
+      X0 = +_[0][0], X1 = +_[1][0];
+      Y0 = +_[0][1], Y1 = +_[1][1];
+      if (X0 > X1) _ = X0, X0 = X1, X1 = _;
+      if (Y0 > Y1) _ = Y0, Y0 = Y1, Y1 = _;
+      return graticule.precision(precision);
+    };
+    graticule.minorExtent = function(_) {
+      if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
+      x0 = +_[0][0], x1 = +_[1][0];
+      y0 = +_[0][1], y1 = +_[1][1];
+      if (x0 > x1) _ = x0, x0 = x1, x1 = _;
+      if (y0 > y1) _ = y0, y0 = y1, y1 = _;
+      return graticule.precision(precision);
+    };
+    graticule.step = function(_) {
+      if (!arguments.length) return graticule.minorStep();
+      return graticule.majorStep(_).minorStep(_);
+    };
+    graticule.majorStep = function(_) {
+      if (!arguments.length) return [ DX, DY ];
+      DX = +_[0], DY = +_[1];
+      return graticule;
+    };
+    graticule.minorStep = function(_) {
+      if (!arguments.length) return [ dx, dy ];
+      dx = +_[0], dy = +_[1];
+      return graticule;
+    };
+    graticule.precision = function(_) {
+      if (!arguments.length) return precision;
+      precision = +_;
+      x = d3_geo_graticuleX(y0, y1, 90);
+      y = d3_geo_graticuleY(x0, x1, precision);
+      X = d3_geo_graticuleX(Y0, Y1, 90);
+      Y = d3_geo_graticuleY(X0, X1, precision);
+      return graticule;
+    };
+    return graticule.majorExtent([ [ -180, -90 + ε ], [ 180, 90 - ε ] ]).minorExtent([ [ -180, -80 - ε ], [ 180, 80 + ε ] ]);
+  };
+  function d3_geo_graticuleX(y0, y1, dy) {
+    var y = d3.range(y0, y1 - ε, dy).concat(y1);
+    return function(x) {
+      return y.map(function(y) {
+        return [ x, y ];
+      });
+    };
+  }
+  function d3_geo_graticuleY(x0, x1, dx) {
+    var x = d3.range(x0, x1 - ε, dx).concat(x1);
+    return function(y) {
+      return x.map(function(x) {
+        return [ x, y ];
+      });
+    };
+  }
+  function d3_source(d) {
+    return d.source;
+  }
+  function d3_target(d) {
+    return d.target;
+  }
+  d3.geo.greatArc = function() {
+    var source = d3_source, source_, target = d3_target, target_;
+    function greatArc() {
+      return {
+        type: "LineString",
+        coordinates: [ source_ || source.apply(this, arguments), target_ || target.apply(this, arguments) ]
+      };
+    }
+    greatArc.distance = function() {
+      return d3.geo.distance(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments));
+    };
+    greatArc.source = function(_) {
+      if (!arguments.length) return source;
+      source = _, source_ = typeof _ === "function" ? null : _;
+      return greatArc;
+    };
+    greatArc.target = function(_) {
+      if (!arguments.length) return target;
+      target = _, target_ = typeof _ === "function" ? null : _;
+      return greatArc;
+    };
+    greatArc.precision = function() {
+      return arguments.length ? greatArc : 0;
+    };
+    return greatArc;
+  };
+  d3.geo.interpolate = function(source, target) {
+    return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
+  };
+  function d3_geo_interpolate(x0, y0, x1, y1) {
+    var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = 2 * Math.asin(Math.sqrt(d3_haversin(y1 - y0) + cy0 * cy1 * d3_haversin(x1 - x0))), k = 1 / Math.sin(d);
+    var interpolate = d ? function(t) {
+      var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
+      return [ Math.atan2(y, x) * d3_degrees, Math.atan2(z, Math.sqrt(x * x + y * y)) * d3_degrees ];
+    } : function() {
+      return [ x0 * d3_degrees, y0 * d3_degrees ];
+    };
+    interpolate.distance = d;
+    return interpolate;
+  }
+  d3.geo.length = function(object) {
+    d3_geo_lengthSum = 0;
+    d3.geo.stream(object, d3_geo_length);
+    return d3_geo_lengthSum;
+  };
+  var d3_geo_lengthSum;
+  var d3_geo_length = {
+    sphere: d3_noop,
+    point: d3_noop,
+    lineStart: d3_geo_lengthLineStart,
+    lineEnd: d3_noop,
+    polygonStart: d3_noop,
+    polygonEnd: d3_noop
+  };
+  function d3_geo_lengthLineStart() {
+    var λ0, sinφ0, cosφ0;
+    d3_geo_length.point = function(λ, φ) {
+      λ0 = λ * d3_radians, sinφ0 = Math.sin(φ *= d3_radians), cosφ0 = Math.cos(φ);
+      d3_geo_length.point = nextPoint;
+    };
+    d3_geo_length.lineEnd = function() {
+      d3_geo_length.point = d3_geo_length.lineEnd = d3_noop;
+    };
+    function nextPoint(λ, φ) {
+      var sinφ = Math.sin(φ *= d3_radians), cosφ = Math.cos(φ), t = abs((λ *= d3_radians) - λ0), cosΔλ = Math.cos(t);
+      d3_geo_lengthSum += Math.atan2(Math.sqrt((t = cosφ * Math.sin(t)) * t + (t = cosφ0 * sinφ - sinφ0 * cosφ * cosΔλ) * t), sinφ0 * sinφ + cosφ0 * cosφ * cosΔλ);
+      λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ;
+    }
+  }
+  function d3_geo_azimuthal(scale, angle) {
+    function azimuthal(λ, φ) {
+      var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
+      return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
+    }
+    azimuthal.invert = function(x, y) {
+      var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
+      return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
+    };
+    return azimuthal;
+  }
+  var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
+    return Math.sqrt(2 / (1 + cosλcosφ));
+  }, function(ρ) {
+    return 2 * Math.asin(ρ / 2);
+  });
+  (d3.geo.azimuthalEqualArea = function() {
+    return d3_geo_projection(d3_geo_azimuthalEqualArea);
+  }).raw = d3_geo_azimuthalEqualArea;
+  var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
+    var c = Math.acos(cosλcosφ);
+    return c && c / Math.sin(c);
+  }, d3_identity);
+  (d3.geo.azimuthalEquidistant = function() {
+    return d3_geo_projection(d3_geo_azimuthalEquidistant);
+  }).raw = d3_geo_azimuthalEquidistant;
+  function d3_geo_conicConformal(φ0, φ1) {
+    var cosφ0 = Math.cos(φ0), t = function(φ) {
+      return Math.tan(π / 4 + φ / 2);
+    }, n = φ0 === φ1 ? Math.sin(φ0) : Math.log(cosφ0 / Math.cos(φ1)) / Math.log(t(φ1) / t(φ0)), F = cosφ0 * Math.pow(t(φ0), n) / n;
+    if (!n) return d3_geo_mercator;
+    function forward(λ, φ) {
+      if (F > 0) {
+        if (φ < -halfπ + ε) φ = -halfπ + ε;
+      } else {
+        if (φ > halfπ - ε) φ = halfπ - ε;
+      }
+      var ρ = F / Math.pow(t(φ), n);
+      return [ ρ * Math.sin(n * λ), F - ρ * Math.cos(n * λ) ];
+    }
+    forward.invert = function(x, y) {
+      var ρ0_y = F - y, ρ = d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y);
+      return [ Math.atan2(x, ρ0_y) / n, 2 * Math.atan(Math.pow(F / ρ, 1 / n)) - halfπ ];
+    };
+    return forward;
+  }
+  (d3.geo.conicConformal = function() {
+    return d3_geo_conic(d3_geo_conicConformal);
+  }).raw = d3_geo_conicConformal;
+  function d3_geo_conicEquidistant(φ0, φ1) {
+    var cosφ0 = Math.cos(φ0), n = φ0 === φ1 ? Math.sin(φ0) : (cosφ0 - Math.cos(φ1)) / (φ1 - φ0), G = cosφ0 / n + φ0;
+    if (abs(n) < ε) return d3_geo_equirectangular;
+    function forward(λ, φ) {
+      var ρ = G - φ;
+      return [ ρ * Math.sin(n * λ), G - ρ * Math.cos(n * λ) ];
+    }
+    forward.invert = function(x, y) {
+      var ρ0_y = G - y;
+      return [ Math.atan2(x, ρ0_y) / n, G - d3_sgn(n) * Math.sqrt(x * x + ρ0_y * ρ0_y) ];
+    };
+    return forward;
+  }
+  (d3.geo.conicEquidistant = function() {
+    return d3_geo_conic(d3_geo_conicEquidistant);
+  }).raw = d3_geo_conicEquidistant;
+  var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
+    return 1 / cosλcosφ;
+  }, Math.atan);
+  (d3.geo.gnomonic = function() {
+    return d3_geo_projection(d3_geo_gnomonic);
+  }).raw = d3_geo_gnomonic;
+  function d3_geo_mercator(λ, φ) {
+    return [ λ, Math.log(Math.tan(π / 4 + φ / 2)) ];
+  }
+  d3_geo_mercator.invert = function(x, y) {
+    return [ x, 2 * Math.atan(Math.exp(y)) - halfπ ];
+  };
+  function d3_geo_mercatorProjection(project) {
+    var m = d3_geo_projection(project), scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, clipAuto;
+    m.scale = function() {
+      var v = scale.apply(m, arguments);
+      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
+    };
+    m.translate = function() {
+      var v = translate.apply(m, arguments);
+      return v === m ? clipAuto ? m.clipExtent(null) : m : v;
+    };
+    m.clipExtent = function(_) {
+      var v = clipExtent.apply(m, arguments);
+      if (v === m) {
+        if (clipAuto = _ == null) {
+          var k = π * scale(), t = translate();
+          clipExtent([ [ t[0] - k, t[1] - k ], [ t[0] + k, t[1] + k ] ]);
+        }
+      } else if (clipAuto) {
+        v = null;
+      }
+      return v;
+    };
+    return m.clipExtent(null);
+  }
+  (d3.geo.mercator = function() {
+    return d3_geo_mercatorProjection(d3_geo_mercator);
+  }).raw = d3_geo_mercator;
+  var d3_geo_orthographic = d3_geo_azimuthal(function() {
+    return 1;
+  }, Math.asin);
+  (d3.geo.orthographic = function() {
+    return d3_geo_projection(d3_geo_orthographic);
+  }).raw = d3_geo_orthographic;
+  var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
+    return 1 / (1 + cosλcosφ);
+  }, function(ρ) {
+    return 2 * Math.atan(ρ);
+  });
+  (d3.geo.stereographic = function() {
+    return d3_geo_projection(d3_geo_stereographic);
+  }).raw = d3_geo_stereographic;
+  function d3_geo_transverseMercator(λ, φ) {
+    return [ Math.log(Math.tan(π / 4 + φ / 2)), -λ ];
+  }
+  d3_geo_transverseMercator.invert = function(x, y) {
+    return [ -y, 2 * Math.atan(Math.exp(x)) - halfπ ];
+  };
+  (d3.geo.transverseMercator = function() {
+    var projection = d3_geo_mercatorProjection(d3_geo_transverseMercator), center = projection.center, rotate = projection.rotate;
+    projection.center = function(_) {
+      return _ ? center([ -_[1], _[0] ]) : (_ = center(), [ _[1], -_[0] ]);
+    };
+    projection.rotate = function(_) {
+      return _ ? rotate([ _[0], _[1], _.length > 2 ? _[2] + 90 : 90 ]) : (_ = rotate(),
+      [ _[0], _[1], _[2] - 90 ]);
+    };
+    return rotate([ 0, 0, 90 ]);
+  }).raw = d3_geo_transverseMercator;
+  d3.geom = {};
+  function d3_geom_pointX(d) {
+    return d[0];
+  }
+  function d3_geom_pointY(d) {
+    return d[1];
+  }
+  d3.geom.hull = function(vertices) {
+    var x = d3_geom_pointX, y = d3_geom_pointY;
+    if (arguments.length) return hull(vertices);
+    function hull(data) {
+      if (data.length < 3) return [];
+      var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];
+      for (i = 0; i < n; i++) {
+        points.push([ +fx.call(this, data[i], i), +fy.call(this, data[i], i), i ]);
+      }
+      points.sort(d3_geom_hullOrder);
+      for (i = 0; i < n; i++) flippedPoints.push([ points[i][0], -points[i][1] ]);
+      var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);
+      var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];
+      for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);
+      for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);
+      return polygon;
+    }
+    hull.x = function(_) {
+      return arguments.length ? (x = _, hull) : x;
+    };
+    hull.y = function(_) {
+      return arguments.length ? (y = _, hull) : y;
+    };
+    return hull;
+  };
+  function d3_geom_hullUpper(points) {
+    var n = points.length, hull = [ 0, 1 ], hs = 2;
+    for (var i = 2; i < n; i++) {
+      while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;
+      hull[hs++] = i;
+    }
+    return hull.slice(0, hs);
+  }
+  function d3_geom_hullOrder(a, b) {
+    return a[0] - b[0] || a[1] - b[1];
+  }
+  d3.geom.polygon = function(coordinates) {
+    d3_subclass(coordinates, d3_geom_polygonPrototype);
+    return coordinates;
+  };
+  var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];
+  d3_geom_polygonPrototype.area = function() {
+    var i = -1, n = this.length, a, b = this[n - 1], area = 0;
+    while (++i < n) {
+      a = b;
+      b = this[i];
+      area += a[1] * b[0] - a[0] * b[1];
+    }
+    return area * .5;
+  };
+  d3_geom_polygonPrototype.centroid = function(k) {
+    var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;
+    if (!arguments.length) k = -1 / (6 * this.area());
+    while (++i < n) {
+      a = b;
+      b = this[i];
+      c = a[0] * b[1] - b[0] * a[1];
+      x += (a[0] + b[0]) * c;
+      y += (a[1] + b[1]) * c;
+    }
+    return [ x * k, y * k ];
+  };
+  d3_geom_polygonPrototype.clip = function(subject) {
+    var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;
+    while (++i < n) {
+      input = subject.slice();
+      subject.length = 0;
+      b = this[i];
+      c = input[(m = input.length - closed) - 1];
+      j = -1;
+      while (++j < m) {
+        d = input[j];
+        if (d3_geom_polygonInside(d, a, b)) {
+          if (!d3_geom_polygonInside(c, a, b)) {
+            subject.push(d3_geom_polygonIntersect(c, d, a, b));
+          }
+          subject.push(d);
+        } else if (d3_geom_polygonInside(c, a, b)) {
+          subject.push(d3_geom_polygonIntersect(c, d, a, b));
+        }
+        c = d;
+      }
+      if (closed) subject.push(subject[0]);
+      a = b;
+    }
+    return subject;
+  };
+  function d3_geom_polygonInside(p, a, b) {
+    return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
+  }
+  function d3_geom_polygonIntersect(c, d, a, b) {
+    var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
+    return [ x1 + ua * x21, y1 + ua * y21 ];
+  }
+  function d3_geom_polygonClosed(coordinates) {
+    var a = coordinates[0], b = coordinates[coordinates.length - 1];
+    return !(a[0] - b[0] || a[1] - b[1]);
+  }
+  var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];
+  function d3_geom_voronoiBeach() {
+    d3_geom_voronoiRedBlackNode(this);
+    this.edge = this.site = this.circle = null;
+  }
+  function d3_geom_voronoiCreateBeach(site) {
+    var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();
+    beach.site = site;
+    return beach;
+  }
+  function d3_geom_voronoiDetachBeach(beach) {
+    d3_geom_voronoiDetachCircle(beach);
+    d3_geom_voronoiBeaches.remove(beach);
+    d3_geom_voronoiBeachPool.push(beach);
+    d3_geom_voronoiRedBlackNode(beach);
+  }
+  function d3_geom_voronoiRemoveBeach(beach) {
+    var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {
+      x: x,
+      y: y
+    }, previous = beach.P, next = beach.N, disappearing = [ beach ];
+    d3_geom_voronoiDetachBeach(beach);
+    var lArc = previous;
+    while (lArc.circle && abs(x - lArc.circle.x) < ε && abs(y - lArc.circle.cy) < ε) {
+      previous = lArc.P;
+      disappearing.unshift(lArc);
+      d3_geom_voronoiDetachBeach(lArc);
+      lArc = previous;
+    }
+    disappearing.unshift(lArc);
+    d3_geom_voronoiDetachCircle(lArc);
+    var rArc = next;
+    while (rArc.circle && abs(x - rArc.circle.x) < ε && abs(y - rArc.circle.cy) < ε) {
+      next = rArc.N;
+      disappearing.push(rArc);
+      d3_geom_voronoiDetachBeach(rArc);
+      rArc = next;
+    }
+    disappearing.push(rArc);
+    d3_geom_voronoiDetachCircle(rArc);
+    var nArcs = disappearing.length, iArc;
+    for (iArc = 1; iArc < nArcs; ++iArc) {
+      rArc = disappearing[iArc];
+      lArc = disappearing[iArc - 1];
+      d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);
+    }
+    lArc = disappearing[0];
+    rArc = disappearing[nArcs - 1];
+    rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);
+    d3_geom_voronoiAttachCircle(lArc);
+    d3_geom_voronoiAttachCircle(rArc);
+  }
+  function d3_geom_voronoiAddBeach(site) {
+    var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;
+    while (node) {
+      dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;
+      if (dxl > ε) node = node.L; else {
+        dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);
+        if (dxr > ε) {
+          if (!node.R) {
+            lArc = node;
+            break;
+          }
+          node = node.R;
+        } else {
+          if (dxl > -ε) {
+            lArc = node.P;
+            rArc = node;
+          } else if (dxr > -ε) {
+            lArc = node;
+            rArc = node.N;
+          } else {
+            lArc = rArc = node;
+          }
+          break;
+        }
+      }
+    }
+    var newArc = d3_geom_voronoiCreateBeach(site);
+    d3_geom_voronoiBeaches.insert(lArc, newArc);
+    if (!lArc && !rArc) return;
+    if (lArc === rArc) {
+      d3_geom_voronoiDetachCircle(lArc);
+      rArc = d3_geom_voronoiCreateBeach(lArc.site);
+      d3_geom_voronoiBeaches.insert(newArc, rArc);
+      newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
+      d3_geom_voronoiAttachCircle(lArc);
+      d3_geom_voronoiAttachCircle(rArc);
+      return;
+    }
+    if (!rArc) {
+      newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);
+      return;
+    }
+    d3_geom_voronoiDetachCircle(lArc);
+    d3_geom_voronoiDetachCircle(rArc);
+    var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {
+      x: (cy * hb - by * hc) / d + ax,
+      y: (bx * hc - cx * hb) / d + ay
+    };
+    d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);
+    newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);
+    rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);
+    d3_geom_voronoiAttachCircle(lArc);
+    d3_geom_voronoiAttachCircle(rArc);
+  }
+  function d3_geom_voronoiLeftBreakPoint(arc, directrix) {
+    var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;
+    if (!pby2) return rfocx;
+    var lArc = arc.P;
+    if (!lArc) return -Infinity;
+    site = lArc.site;
+    var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;
+    if (!plby2) return lfocx;
+    var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;
+    if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;
+    return (rfocx + lfocx) / 2;
+  }
+  function d3_geom_voronoiRightBreakPoint(arc, directrix) {
+    var rArc = arc.N;
+    if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);
+    var site = arc.site;
+    return site.y === directrix ? site.x : Infinity;
+  }
+  function d3_geom_voronoiCell(site) {
+    this.site = site;
+    this.edges = [];
+  }
+  d3_geom_voronoiCell.prototype.prepare = function() {
+    var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;
+    while (iHalfEdge--) {
+      edge = halfEdges[iHalfEdge].edge;
+      if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);
+    }
+    halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);
+    return halfEdges.length;
+  };
+  function d3_geom_voronoiCloseCells(extent) {
+    var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;
+    while (iCell--) {
+      cell = cells[iCell];
+      if (!cell || !cell.prepare()) continue;
+      halfEdges = cell.edges;
+      nHalfEdges = halfEdges.length;
+      iHalfEdge = 0;
+      while (iHalfEdge < nHalfEdges) {
+        end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;
+        start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;
+        if (abs(x3 - x2) > ε || abs(y3 - y2) > ε) {
+          halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < ε && y1 - y3 > ε ? {
+            x: x0,
+            y: abs(x2 - x0) < ε ? y2 : y1
+          } : abs(y3 - y1) < ε && x1 - x3 > ε ? {
+            x: abs(y2 - y1) < ε ? x2 : x1,
+            y: y1
+          } : abs(x3 - x1) < ε && y3 - y0 > ε ? {
+            x: x1,
+            y: abs(x2 - x1) < ε ? y2 : y0
+          } : abs(y3 - y0) < ε && x3 - x0 > ε ? {
+            x: abs(y2 - y0) < ε ? x2 : x0,
+            y: y0
+          } : null), cell.site, null));
+          ++nHalfEdges;
+        }
+      }
+    }
+  }
+  function d3_geom_voronoiHalfEdgeOrder(a, b) {
+    return b.angle - a.angle;
+  }
+  function d3_geom_voronoiCircle() {
+    d3_geom_voronoiRedBlackNode(this);
+    this.x = this.y = this.arc = this.site = this.cy = null;
+  }
+  function d3_geom_voronoiAttachCircle(arc) {
+    var lArc = arc.P, rArc = arc.N;
+    if (!lArc || !rArc) return;
+    var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;
+    if (lSite === rSite) return;
+    var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;
+    var d = 2 * (ax * cy - ay * cx);
+    if (d >= -ε2) return;
+    var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;
+    var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();
+    circle.arc = arc;
+    circle.site = cSite;
+    circle.x = x + bx;
+    circle.y = cy + Math.sqrt(x * x + y * y);
+    circle.cy = cy;
+    arc.circle = circle;
+    var before = null, node = d3_geom_voronoiCircles._;
+    while (node) {
+      if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {
+        if (node.L) node = node.L; else {
+          before = node.P;
+          break;
+        }
+      } else {
+        if (node.R) node = node.R; else {
+          before = node;
+          break;
+        }
+      }
+    }
+    d3_geom_voronoiCircles.insert(before, circle);
+    if (!before) d3_geom_voronoiFirstCircle = circle;
+  }
+  function d3_geom_voronoiDetachCircle(arc) {
+    var circle = arc.circle;
+    if (circle) {
+      if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;
+      d3_geom_voronoiCircles.remove(circle);
+      d3_geom_voronoiCirclePool.push(circle);
+      d3_geom_voronoiRedBlackNode(circle);
+      arc.circle = null;
+    }
+  }
+  function d3_geom_voronoiClipEdges(extent) {
+    var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;
+    while (i--) {
+      e = edges[i];
+      if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < ε && abs(e.a.y - e.b.y) < ε) {
+        e.a = e.b = null;
+        edges.splice(i, 1);
+      }
+    }
+  }
+  function d3_geom_voronoiConnectEdge(edge, extent) {
+    var vb = edge.b;
+    if (vb) return true;
+    var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;
+    if (ry === ly) {
+      if (fx < x0 || fx >= x1) return;
+      if (lx > rx) {
+        if (!va) va = {
+          x: fx,
+          y: y0
+        }; else if (va.y >= y1) return;
+        vb = {
+          x: fx,
+          y: y1
+        };
+      } else {
+        if (!va) va = {
+          x: fx,
+          y: y1
+        }; else if (va.y < y0) return;
+        vb = {
+          x: fx,
+          y: y0
+        };
+      }
+    } else {
+      fm = (lx - rx) / (ry - ly);
+      fb = fy - fm * fx;
+      if (fm < -1 || fm > 1) {
+        if (lx > rx) {
+          if (!va) va = {
+            x: (y0 - fb) / fm,
+            y: y0
+          }; else if (va.y >= y1) return;
+          vb = {
+            x: (y1 - fb) / fm,
+            y: y1
+          };
+        } else {
+          if (!va) va = {
+            x: (y1 - fb) / fm,
+            y: y1
+          }; else if (va.y < y0) return;
+          vb = {
+            x: (y0 - fb) / fm,
+            y: y0
+          };
+        }
+      } else {
+        if (ly < ry) {
+          if (!va) va = {
+            x: x0,
+            y: fm * x0 + fb
+          }; else if (va.x >= x1) return;
+          vb = {
+            x: x1,
+            y: fm * x1 + fb
+          };
+        } else {
+          if (!va) va = {
+            x: x1,
+            y: fm * x1 + fb
+          }; else if (va.x < x0) return;
+          vb = {
+            x: x0,
+            y: fm * x0 + fb
+          };
+        }
+      }
+    }
+    edge.a = va;
+    edge.b = vb;
+    return true;
+  }
+  function d3_geom_voronoiEdge(lSite, rSite) {
+    this.l = lSite;
+    this.r = rSite;
+    this.a = this.b = null;
+  }
+  function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {
+    var edge = new d3_geom_voronoiEdge(lSite, rSite);
+    d3_geom_voronoiEdges.push(edge);
+    if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);
+    if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);
+    d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));
+    d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));
+    return edge;
+  }
+  function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {
+    var edge = new d3_geom_voronoiEdge(lSite, null);
+    edge.a = va;
+    edge.b = vb;
+    d3_geom_voronoiEdges.push(edge);
+    return edge;
+  }
+  function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {
+    if (!edge.a && !edge.b) {
+      edge.a = vertex;
+      edge.l = lSite;
+      edge.r = rSite;
+    } else if (edge.l === rSite) {
+      edge.b = vertex;
+    } else {
+      edge.a = vertex;
+    }
+  }
+  function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {
+    var va = edge.a, vb = edge.b;
+    this.edge = edge;
+    this.site = lSite;
+    this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);
+  }
+  d3_geom_voronoiHalfEdge.prototype = {
+    start: function() {
+      return this.edge.l === this.site ? this.edge.a : this.edge.b;
+    },
+    end: function() {
+      return this.edge.l === this.site ? this.edge.b : this.edge.a;
+    }
+  };
+  function d3_geom_voronoiRedBlackTree() {
+    this._ = null;
+  }
+  function d3_geom_voronoiRedBlackNode(node) {
+    node.U = node.C = node.L = node.R = node.P = node.N = null;
+  }
+  d3_geom_voronoiRedBlackTree.prototype = {
+    insert: function(after, node) {
+      var parent, grandpa, uncle;
+      if (after) {
+        node.P = after;
+        node.N = after.N;
+        if (after.N) after.N.P = node;
+        after.N = node;
+        if (after.R) {
+          after = after.R;
+          while (after.L) after = after.L;
+          after.L = node;
+        } else {
+          after.R = node;
+        }
+        parent = after;
+      } else if (this._) {
+        after = d3_geom_voronoiRedBlackFirst(this._);
+        node.P = null;
+        node.N = after;
+        after.P = after.L = node;
+        parent = after;
+      } else {
+        node.P = node.N = null;
+        this._ = node;
+        parent = null;
+      }
+      node.L = node.R = null;
+      node.U = parent;
+      node.C = true;
+      after = node;
+      while (parent && parent.C) {
+        grandpa = parent.U;
+        if (parent === grandpa.L) {
+          uncle = grandpa.R;
+          if (uncle && uncle.C) {
+            parent.C = uncle.C = false;
+            grandpa.C = true;
+            after = grandpa;
+          } else {
+            if (after === parent.R) {
+              d3_geom_voronoiRedBlackRotateLeft(this, parent);
+              after = parent;
+              parent = after.U;
+            }
+            parent.C = false;
+            grandpa.C = true;
+            d3_geom_voronoiRedBlackRotateRight(this, grandpa);
+          }
+        } else {
+          uncle = grandpa.L;
+          if (uncle && uncle.C) {
+            parent.C = uncle.C = false;
+            grandpa.C = true;
+            after = grandpa;
+          } else {
+            if (after === parent.L) {
+              d3_geom_voronoiRedBlackRotateRight(this, parent);
+              after = parent;
+              parent = after.U;
+            }
+            parent.C = false;
+            grandpa.C = true;
+            d3_geom_voronoiRedBlackRotateLeft(this, grandpa);
+          }
+        }
+        parent = after.U;
+      }
+      this._.C = false;
+    },
+    remove: function(node) {
+      if (node.N) node.N.P = node.P;
+      if (node.P) node.P.N = node.N;
+      node.N = node.P = null;
+      var parent = node.U, sibling, left = node.L, right = node.R, next, red;
+      if (!left) next = right; else if (!right) next = left; else next = d3_geom_voronoiRedBlackFirst(right);
+      if (parent) {
+        if (parent.L === node) parent.L = next; else parent.R = next;
+      } else {
+        this._ = next;
+      }
+      if (left && right) {
+        red = next.C;
+        next.C = node.C;
+        next.L = left;
+        left.U = next;
+        if (next !== right) {
+          parent = next.U;
+          next.U = node.U;
+          node = next.R;
+          parent.L = node;
+          next.R = right;
+          right.U = next;
+        } else {
+          next.U = parent;
+          parent = next;
+          node = next.R;
+        }
+      } else {
+        red = node.C;
+        node = next;
+      }
+      if (node) node.U = parent;
+      if (red) return;
+      if (node && node.C) {
+        node.C = false;
+        return;
+      }
+      do {
+        if (node === this._) break;
+        if (node === parent.L) {
+          sibling = parent.R;
+          if (sibling.C) {
+            sibling.C = false;
+            parent.C = true;
+            d3_geom_voronoiRedBlackRotateLeft(this, parent);
+            sibling = parent.R;
+          }
+          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
+            if (!sibling.R || !sibling.R.C) {
+              sibling.L.C = false;
+              sibling.C = true;
+              d3_geom_voronoiRedBlackRotateRight(this, sibling);
+              sibling = parent.R;
+            }
+            sibling.C = parent.C;
+            parent.C = sibling.R.C = false;
+            d3_geom_voronoiRedBlackRotateLeft(this, parent);
+            node = this._;
+            break;
+          }
+        } else {
+          sibling = parent.L;
+          if (sibling.C) {
+            sibling.C = false;
+            parent.C = true;
+            d3_geom_voronoiRedBlackRotateRight(this, parent);
+            sibling = parent.L;
+          }
+          if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {
+            if (!sibling.L || !sibling.L.C) {
+              sibling.R.C = false;
+              sibling.C = true;
+              d3_geom_voronoiRedBlackRotateLeft(this, sibling);
+              sibling = parent.L;
+            }
+            sibling.C = parent.C;
+            parent.C = sibling.L.C = false;
+            d3_geom_voronoiRedBlackRotateRight(this, parent);
+            node = this._;
+            break;
+          }
+        }
+        sibling.C = true;
+        node = parent;
+        parent = parent.U;
+      } while (!node.C);
+      if (node) node.C = false;
+    }
+  };
+  function d3_geom_voronoiRedBlackRotateLeft(tree, node) {
+    var p = node, q = node.R, parent = p.U;
+    if (parent) {
+      if (parent.L === p) parent.L = q; else parent.R = q;
+    } else {
+      tree._ = q;
+    }
+    q.U = parent;
+    p.U = q;
+    p.R = q.L;
+    if (p.R) p.R.U = p;
+    q.L = p;
+  }
+  function d3_geom_voronoiRedBlackRotateRight(tree, node) {
+    var p = node, q = node.L, parent = p.U;
+    if (parent) {
+      if (parent.L === p) parent.L = q; else parent.R = q;
+    } else {
+      tree._ = q;
+    }
+    q.U = parent;
+    p.U = q;
+    p.L = q.R;
+    if (p.L) p.L.U = p;
+    q.R = p;
+  }
+  function d3_geom_voronoiRedBlackFirst(node) {
+    while (node.L) node = node.L;
+    return node;
+  }
+  function d3_geom_voronoi(sites, bbox) {
+    var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;
+    d3_geom_voronoiEdges = [];
+    d3_geom_voronoiCells = new Array(sites.length);
+    d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();
+    d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();
+    while (true) {
+      circle = d3_geom_voronoiFirstCircle;
+      if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {
+        if (site.x !== x0 || site.y !== y0) {
+          d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);
+          d3_geom_voronoiAddBeach(site);
+          x0 = site.x, y0 = site.y;
+        }
+        site = sites.pop();
+      } else if (circle) {
+        d3_geom_voronoiRemoveBeach(circle.arc);
+      } else {
+        break;
+      }
+    }
+    if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);
+    var diagram = {
+      cells: d3_geom_voronoiCells,
+      edges: d3_geom_voronoiEdges
+    };
+    d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;
+    return diagram;
+  }
+  function d3_geom_voronoiVertexOrder(a, b) {
+    return b.y - a.y || b.x - a.x;
+  }
+  d3.geom.voronoi = function(points) {
+    var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;
+    if (points) return voronoi(points);
+    function voronoi(data) {
+      var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];
+      d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {
+        var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {
+          var s = e.start();
+          return [ s.x, s.y ];
+        }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [ [ x0, y1 ], [ x1, y1 ], [ x1, y0 ], [ x0, y0 ] ] : [];
+        polygon.point = data[i];
+      });
+      return polygons;
+    }
+    function sites(data) {
+      return data.map(function(d, i) {
+        return {
+          x: Math.round(fx(d, i) / ε) * ε,
+          y: Math.round(fy(d, i) / ε) * ε,
+          i: i
+        };
+      });
+    }
+    voronoi.links = function(data) {
+      return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {
+        return edge.l && edge.r;
+      }).map(function(edge) {
+        return {
+          source: data[edge.l.i],
+          target: data[edge.r.i]
+        };
+      });
+    };
+    voronoi.triangles = function(data) {
+      var triangles = [];
+      d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {
+        var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;
+        while (++j < m) {
+          e0 = e1;
+          s0 = s1;
+          e1 = edges[j].edge;
+          s1 = e1.l === site ? e1.r : e1.l;
+          if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {
+            triangles.push([ data[i], data[s0.i], data[s1.i] ]);
+          }
+        }
+      });
+      return triangles;
+    };
+    voronoi.x = function(_) {
+      return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;
+    };
+    voronoi.y = function(_) {
+      return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;
+    };
+    voronoi.clipExtent = function(_) {
+      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;
+      clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;
+      return voronoi;
+    };
+    voronoi.size = function(_) {
+      if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];
+      return voronoi.clipExtent(_ && [ [ 0, 0 ], _ ]);
+    };
+    return voronoi;
+  };
+  var d3_geom_voronoiClipExtent = [ [ -1e6, -1e6 ], [ 1e6, 1e6 ] ];
+  function d3_geom_voronoiTriangleArea(a, b, c) {
+    return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);
+  }
+  d3.geom.delaunay = function(vertices) {
+    return d3.geom.voronoi().triangles(vertices);
+  };
+  d3.geom.quadtree = function(points, x1, y1, x2, y2) {
+    var x = d3_geom_pointX, y = d3_geom_pointY, compat;
+    if (compat = arguments.length) {
+      x = d3_geom_quadtreeCompatX;
+      y = d3_geom_quadtreeCompatY;
+      if (compat === 3) {
+        y2 = y1;
+        x2 = x1;
+        y1 = x1 = 0;
+      }
+      return quadtree(points);
+    }
+    function quadtree(data) {
+      var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;
+      if (x1 != null) {
+        x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;
+      } else {
+        x2_ = y2_ = -(x1_ = y1_ = Infinity);
+        xs = [], ys = [];
+        n = data.length;
+        if (compat) for (i = 0; i < n; ++i) {
+          d = data[i];
+          if (d.x < x1_) x1_ = d.x;
+          if (d.y < y1_) y1_ = d.y;
+          if (d.x > x2_) x2_ = d.x;
+          if (d.y > y2_) y2_ = d.y;
+          xs.push(d.x);
+          ys.push(d.y);
+        } else for (i = 0; i < n; ++i) {
+          var x_ = +fx(d = data[i], i), y_ = +fy(d, i);
+          if (x_ < x1_) x1_ = x_;
+          if (y_ < y1_) y1_ = y_;
+          if (x_ > x2_) x2_ = x_;
+          if (y_ > y2_) y2_ = y_;
+          xs.push(x_);
+          ys.push(y_);
+        }
+      }
+      var dx = x2_ - x1_, dy = y2_ - y1_;
+      if (dx > dy) y2_ = y1_ + dx; else x2_ = x1_ + dy;
+      function insert(n, d, x, y, x1, y1, x2, y2) {
+        if (isNaN(x) || isNaN(y)) return;
+        if (n.leaf) {
+          var nx = n.x, ny = n.y;
+          if (nx != null) {
+            if (abs(nx - x) + abs(ny - y) < .01) {
+              insertChild(n, d, x, y, x1, y1, x2, y2);
+            } else {
+              var nPoint = n.point;
+              n.x = n.y = n.point = null;
+              insertChild(n, nPoint, nx, ny, x1, y1, x2, y2);
+              insertChild(n, d, x, y, x1, y1, x2, y2);
+            }
+          } else {
+            n.x = x, n.y = y, n.point = d;
+          }
+        } else {
+          insertChild(n, d, x, y, x1, y1, x2, y2);
+        }
+      }
+      function insertChild(n, d, x, y, x1, y1, x2, y2) {
+        var xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym, i = below << 1 | right;
+        n.leaf = false;
+        n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
+        if (right) x1 = xm; else x2 = xm;
+        if (below) y1 = ym; else y2 = ym;
+        insert(n, d, x, y, x1, y1, x2, y2);
+      }
+      var root = d3_geom_quadtreeNode();
+      root.add = function(d) {
+        insert(root, d, +fx(d, ++i), +fy(d, i), x1_, y1_, x2_, y2_);
+      };
+      root.visit = function(f) {
+        d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);
+      };
+      root.find = function(point) {
+        return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);
+      };
+      i = -1;
+      if (x1 == null) {
+        while (++i < n) {
+          insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);
+        }
+        --i;
+      } else data.forEach(root.add);
+      xs = ys = data = d = null;
+      return root;
+    }
+    quadtree.x = function(_) {
+      return arguments.length ? (x = _, quadtree) : x;
+    };
+    quadtree.y = function(_) {
+      return arguments.length ? (y = _, quadtree) : y;
+    };
+    quadtree.extent = function(_) {
+      if (!arguments.length) return x1 == null ? null : [ [ x1, y1 ], [ x2, y2 ] ];
+      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0],
+      y2 = +_[1][1];
+      return quadtree;
+    };
+    quadtree.size = function(_) {
+      if (!arguments.length) return x1 == null ? null : [ x2 - x1, y2 - y1 ];
+      if (_ == null) x1 = y1 = x2 = y2 = null; else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];
+      return quadtree;
+    };
+    return quadtree;
+  };
+  function d3_geom_quadtreeCompatX(d) {
+    return d.x;
+  }
+  function d3_geom_quadtreeCompatY(d) {
+    return d.y;
+  }
+  function d3_geom_quadtreeNode() {
+    return {
+      leaf: true,
+      nodes: [],
+      point: null,
+      x: null,
+      y: null
+    };
+  }
+  function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
+    if (!f(node, x1, y1, x2, y2)) {
+      var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
+      if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
+      if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
+      if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
+      if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
+    }
+  }
+  function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {
+    var minDistance2 = Infinity, closestPoint;
+    (function find(node, x1, y1, x2, y2) {
+      if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;
+      if (point = node.point) {
+        var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;
+        if (distance2 < minDistance2) {
+          var distance = Math.sqrt(minDistance2 = distance2);
+          x0 = x - distance, y0 = y - distance;
+          x3 = x + distance, y3 = y + distance;
+          closestPoint = point;
+        }
+      }
+      var children = node.nodes, xm = (x1 + x2) * .5, ym = (y1 + y2) * .5, right = x >= xm, below = y >= ym;
+      for (var i = below << 1 | right, j = i + 4; i < j; ++i) {
+        if (node = children[i & 3]) switch (i & 3) {
+         case 0:
+          find(node, x1, y1, xm, ym);
+          break;
+
+         case 1:
+          find(node, xm, y1, x2, ym);
+          break;
+
+         case 2:
+          find(node, x1, ym, xm, y2);
+          break;
+
+         case 3:
+          find(node, xm, ym, x2, y2);
+          break;
+        }
+      }
+    })(root, x0, y0, x3, y3);
+    return closestPoint;
+  }
+  d3.interpolateRgb = d3_interpolateRgb;
+  function d3_interpolateRgb(a, b) {
+    a = d3.rgb(a);
+    b = d3.rgb(b);
+    var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
+    return function(t) {
+      return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
+    };
+  }
+  d3.interpolateObject = d3_interpolateObject;
+  function d3_interpolateObject(a, b) {
+    var i = {}, c = {}, k;
+    for (k in a) {
+      if (k in b) {
+        i[k] = d3_interpolate(a[k], b[k]);
+      } else {
+        c[k] = a[k];
+      }
+    }
+    for (k in b) {
+      if (!(k in a)) {
+        c[k] = b[k];
+      }
+    }
+    return function(t) {
+      for (k in i) c[k] = i[k](t);
+      return c;
+    };
+  }
+  d3.interpolateNumber = d3_interpolateNumber;
+  function d3_interpolateNumber(a, b) {
+    a = +a, b = +b;
+    return function(t) {
+      return a * (1 - t) + b * t;
+    };
+  }
+  d3.interpolateString = d3_interpolateString;
+  function d3_interpolateString(a, b) {
+    var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];
+    a = a + "", b = b + "";
+    while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {
+      if ((bs = bm.index) > bi) {
+        bs = b.slice(bi, bs);
+        if (s[i]) s[i] += bs; else s[++i] = bs;
+      }
+      if ((am = am[0]) === (bm = bm[0])) {
+        if (s[i]) s[i] += bm; else s[++i] = bm;
+      } else {
+        s[++i] = null;
+        q.push({
+          i: i,
+          x: d3_interpolateNumber(am, bm)
+        });
+      }
+      bi = d3_interpolate_numberB.lastIndex;
+    }
+    if (bi < b.length) {
+      bs = b.slice(bi);
+      if (s[i]) s[i] += bs; else s[++i] = bs;
+    }
+    return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {
+      return b(t) + "";
+    }) : function() {
+      return b;
+    } : (b = q.length, function(t) {
+      for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);
+      return s.join("");
+    });
+  }
+  var d3_interpolate_numberA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, "g");
+  d3.interpolate = d3_interpolate;
+  function d3_interpolate(a, b) {
+    var i = d3.interpolators.length, f;
+    while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
+    return f;
+  }
+  d3.interpolators = [ function(a, b) {
+    var t = typeof b;
+    return (t === "string" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\(|hsl\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === "object" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);
+  } ];
+  d3.interpolateArray = d3_interpolateArray;
+  function d3_interpolateArray(a, b) {
+    var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
+    for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));
+    for (;i < na; ++i) c[i] = a[i];
+    for (;i < nb; ++i) c[i] = b[i];
+    return function(t) {
+      for (i = 0; i < n0; ++i) c[i] = x[i](t);
+      return c;
+    };
+  }
+  var d3_ease_default = function() {
+    return d3_identity;
+  };
+  var d3_ease = d3.map({
+    linear: d3_ease_default,
+    poly: d3_ease_poly,
+    quad: function() {
+      return d3_ease_quad;
+    },
+    cubic: function() {
+      return d3_ease_cubic;
+    },
+    sin: function() {
+      return d3_ease_sin;
+    },
+    exp: function() {
+      return d3_ease_exp;
+    },
+    circle: function() {
+      return d3_ease_circle;
+    },
+    elastic: d3_ease_elastic,
+    back: d3_ease_back,
+    bounce: function() {
+      return d3_ease_bounce;
+    }
+  });
+  var d3_ease_mode = d3.map({
+    "in": d3_identity,
+    out: d3_ease_reverse,
+    "in-out": d3_ease_reflect,
+    "out-in": function(f) {
+      return d3_ease_reflect(d3_ease_reverse(f));
+    }
+  });
+  d3.ease = function(name) {
+    var i = name.indexOf("-"), t = i >= 0 ? name.slice(0, i) : name, m = i >= 0 ? name.slice(i + 1) : "in";
+    t = d3_ease.get(t) || d3_ease_default;
+    m = d3_ease_mode.get(m) || d3_identity;
+    return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));
+  };
+  function d3_ease_clamp(f) {
+    return function(t) {
+      return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
+    };
+  }
+  function d3_ease_reverse(f) {
+    return function(t) {
+      return 1 - f(1 - t);
+    };
+  }
+  function d3_ease_reflect(f) {
+    return function(t) {
+      return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
+    };
+  }
+  function d3_ease_quad(t) {
+    return t * t;
+  }
+  function d3_ease_cubic(t) {
+    return t * t * t;
+  }
+  function d3_ease_cubicInOut(t) {
+    if (t <= 0) return 0;
+    if (t >= 1) return 1;
+    var t2 = t * t, t3 = t2 * t;
+    return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
+  }
+  function d3_ease_poly(e) {
+    return function(t) {
+      return Math.pow(t, e);
+    };
+  }
+  function d3_ease_sin(t) {
+    return 1 - Math.cos(t * halfπ);
+  }
+  function d3_ease_exp(t) {
+    return Math.pow(2, 10 * (t - 1));
+  }
+  function d3_ease_circle(t) {
+    return 1 - Math.sqrt(1 - t * t);
+  }
+  function d3_ease_elastic(a, p) {
+    var s;
+    if (arguments.length < 2) p = .45;
+    if (arguments.length) s = p / τ * Math.asin(1 / a); else a = 1, s = p / 4;
+    return function(t) {
+      return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);
+    };
+  }
+  function d3_ease_back(s) {
+    if (!s) s = 1.70158;
+    return function(t) {
+      return t * t * ((s + 1) * t - s);
+    };
+  }
+  function d3_ease_bounce(t) {
+    return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
+  }
+  d3.interpolateHcl = d3_interpolateHcl;
+  function d3_interpolateHcl(a, b) {
+    a = d3.hcl(a);
+    b = d3.hcl(b);
+    var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
+    if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;
+    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
+    return function(t) {
+      return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
+    };
+  }
+  d3.interpolateHsl = d3_interpolateHsl;
+  function d3_interpolateHsl(a, b) {
+    a = d3.hsl(a);
+    b = d3.hsl(b);
+    var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;
+    if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;
+    if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah; else if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
+    return function(t) {
+      return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + "";
+    };
+  }
+  d3.interpolateLab = d3_interpolateLab;
+  function d3_interpolateLab(a, b) {
+    a = d3.lab(a);
+    b = d3.lab(b);
+    var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
+    return function(t) {
+      return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
+    };
+  }
+  d3.interpolateRound = d3_interpolateRound;
+  function d3_interpolateRound(a, b) {
+    b -= a;
+    return function(t) {
+      return Math.round(a + b * t);
+    };
+  }
+  d3.transform = function(string) {
+    var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
+    return (d3.transform = function(string) {
+      if (string != null) {
+        g.setAttribute("transform", string);
+        var t = g.transform.baseVal.consolidate();
+      }
+      return new d3_transform(t ? t.matrix : d3_transformIdentity);
+    })(string);
+  };
+  function d3_transform(m) {
+    var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
+    if (r0[0] * r1[1] < r1[0] * r0[1]) {
+      r0[0] *= -1;
+      r0[1] *= -1;
+      kx *= -1;
+      kz *= -1;
+    }
+    this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
+    this.translate = [ m.e, m.f ];
+    this.scale = [ kx, ky ];
+    this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
+  }
+  d3_transform.prototype.toString = function() {
+    return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
+  };
+  function d3_transformDot(a, b) {
+    return a[0] * b[0] + a[1] * b[1];
+  }
+  function d3_transformNormalize(a) {
+    var k = Math.sqrt(d3_transformDot(a, a));
+    if (k) {
+      a[0] /= k;
+      a[1] /= k;
+    }
+    return k;
+  }
+  function d3_transformCombine(a, b, k) {
+    a[0] += k * b[0];
+    a[1] += k * b[1];
+    return a;
+  }
+  var d3_transformIdentity = {
+    a: 1,
+    b: 0,
+    c: 0,
+    d: 1,
+    e: 0,
+    f: 0
+  };
+  d3.interpolateTransform = d3_interpolateTransform;
+  function d3_interpolateTransformPop(s) {
+    return s.length ? s.pop() + "," : "";
+  }
+  function d3_interpolateTranslate(ta, tb, s, q) {
+    if (ta[0] !== tb[0] || ta[1] !== tb[1]) {
+      var i = s.push("translate(", null, ",", null, ")");
+      q.push({
+        i: i - 4,
+        x: d3_interpolateNumber(ta[0], tb[0])
+      }, {
+        i: i - 2,
+        x: d3_interpolateNumber(ta[1], tb[1])
+      });
+    } else if (tb[0] || tb[1]) {
+      s.push("translate(" + tb + ")");
+    }
+  }
+  function d3_interpolateRotate(ra, rb, s, q) {
+    if (ra !== rb) {
+      if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
+      q.push({
+        i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2,
+        x: d3_interpolateNumber(ra, rb)
+      });
+    } else if (rb) {
+      s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")");
+    }
+  }
+  function d3_interpolateSkew(wa, wb, s, q) {
+    if (wa !== wb) {
+      q.push({
+        i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2,
+        x: d3_interpolateNumber(wa, wb)
+      });
+    } else if (wb) {
+      s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")");
+    }
+  }
+  function d3_interpolateScale(ka, kb, s, q) {
+    if (ka[0] !== kb[0] || ka[1] !== kb[1]) {
+      var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")");
+      q.push({
+        i: i - 4,
+        x: d3_interpolateNumber(ka[0], kb[0])
+      }, {
+        i: i - 2,
+        x: d3_interpolateNumber(ka[1], kb[1])
+      });
+    } else if (kb[0] !== 1 || kb[1] !== 1) {
+      s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")");
+    }
+  }
+  function d3_interpolateTransform(a, b) {
+    var s = [], q = [];
+    a = d3.transform(a), b = d3.transform(b);
+    d3_interpolateTranslate(a.translate, b.translate, s, q);
+    d3_interpolateRotate(a.rotate, b.rotate, s, q);
+    d3_interpolateSkew(a.skew, b.skew, s, q);
+    d3_interpolateScale(a.scale, b.scale, s, q);
+    a = b = null;
+    return function(t) {
+      var i = -1, n = q.length, o;
+      while (++i < n) s[(o = q[i]).i] = o.x(t);
+      return s.join("");
+    };
+  }
+  function d3_uninterpolateNumber(a, b) {
+    b = (b -= a = +a) || 1 / b;
+    return function(x) {
+      return (x - a) / b;
+    };
+  }
+  function d3_uninterpolateClamp(a, b) {
+    b = (b -= a = +a) || 1 / b;
+    return function(x) {
+      return Math.max(0, Math.min(1, (x - a) / b));
+    };
+  }
+  d3.layout = {};
+  d3.layout.bundle = function() {
+    return function(links) {
+      var paths = [], i = -1, n = links.length;
+      while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
+      return paths;
+    };
+  };
+  function d3_layout_bundlePath(link) {
+    var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
+    while (start !== lca) {
+      start = start.parent;
+      points.push(start);
+    }
+    var k = points.length;
+    while (end !== lca) {
+      points.splice(k, 0, end);
+      end = end.parent;
+    }
+    return points;
+  }
+  function d3_layout_bundleAncestors(node) {
+    var ancestors = [], parent = node.parent;
+    while (parent != null) {
+      ancestors.push(node);
+      node = parent;
+      parent = parent.parent;
+    }
+    ancestors.push(node);
+    return ancestors;
+  }
+  function d3_layout_bundleLeastCommonAncestor(a, b) {
+    if (a === b) return a;
+    var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
+    while (aNode === bNode) {
+      sharedNode = aNode;
+      aNode = aNodes.pop();
+      bNode = bNodes.pop();
+    }
+    return sharedNode;
+  }
+  d3.layout.chord = function() {
+    var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
+    function relayout() {
+      var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
+      chords = [];
+      groups = [];
+      k = 0, i = -1;
+      while (++i < n) {
+        x = 0, j = -1;
+        while (++j < n) {
+          x += matrix[i][j];
+        }
+        groupSums.push(x);
+        subgroupIndex.push(d3.range(n));
+        k += x;
+      }
+      if (sortGroups) {
+        groupIndex.sort(function(a, b) {
+          return sortGroups(groupSums[a], groupSums[b]);
+        });
+      }
+      if (sortSubgroups) {
+        subgroupIndex.forEach(function(d, i) {
+          d.sort(function(a, b) {
+            return sortSubgroups(matrix[i][a], matrix[i][b]);
+          });
+        });
+      }
+      k = (τ - padding * n) / k;
+      x = 0, i = -1;
+      while (++i < n) {
+        x0 = x, j = -1;
+        while (++j < n) {
+          var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
+          subgroups[di + "-" + dj] = {
+            index: di,
+            subindex: dj,
+            startAngle: a0,
+            endAngle: a1,
+            value: v
+          };
+        }
+        groups[di] = {
+          index: di,
+          startAngle: x0,
+          endAngle: x,
+          value: groupSums[di]
+        };
+        x += padding;
+      }
+      i = -1;
+      while (++i < n) {
+        j = i - 1;
+        while (++j < n) {
+          var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
+          if (source.value || target.value) {
+            chords.push(source.value < target.value ? {
+              source: target,
+              target: source
+            } : {
+              source: source,
+              target: target
+            });
+          }
+        }
+      }
+      if (sortChords) resort();
+    }
+    function resort() {
+      chords.sort(function(a, b) {
+        return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
+      });
+    }
+    chord.matrix = function(x) {
+      if (!arguments.length) return matrix;
+      n = (matrix = x) && matrix.length;
+      chords = groups = null;
+      return chord;
+    };
+    chord.padding = function(x) {
+      if (!arguments.length) return padding;
+      padding = x;
+      chords = groups = null;
+      return chord;
+    };
+    chord.sortGroups = function(x) {
+      if (!arguments.length) return sortGroups;
+      sortGroups = x;
+      chords = groups = null;
+      return chord;
+    };
+    chord.sortSubgroups = function(x) {
+      if (!arguments.length) return sortSubgroups;
+      sortSubgroups = x;
+      chords = null;
+      return chord;
+    };
+    chord.sortChords = function(x) {
+      if (!arguments.length) return sortChords;
+      sortChords = x;
+      if (chords) resort();
+      return chord;
+    };
+    chord.chords = function() {
+      if (!chords) relayout();
+      return chords;
+    };
+    chord.groups = function() {
+      if (!groups) relayout();
+      return groups;
+    };
+    return chord;
+  };
+  d3.layout.force = function() {
+    var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges;
+    function repulse(node) {
+      return function(quad, x1, _, x2) {
+        if (quad.point !== node) {
+          var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;
+          if (dw * dw / theta2 < dn) {
+            if (dn < chargeDistance2) {
+              var k = quad.charge / dn;
+              node.px -= dx * k;
+              node.py -= dy * k;
+            }
+            return true;
+          }
+          if (quad.point && dn && dn < chargeDistance2) {
+            var k = quad.pointCharge / dn;
+            node.px -= dx * k;
+            node.py -= dy * k;
+          }
+        }
+        return !quad.charge;
+      };
+    }
+    force.tick = function() {
+      if ((alpha *= .99) < .005) {
+        timer = null;
+        event.end({
+          type: "end",
+          alpha: alpha = 0
+        });
+        return true;
+      }
+      var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
+      for (i = 0; i < m; ++i) {
+        o = links[i];
+        s = o.source;
+        t = o.target;
+        x = t.x - s.x;
+        y = t.y - s.y;
+        if (l = x * x + y * y) {
+          l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
+          x *= l;
+          y *= l;
+          t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5);
+          t.y -= y * k;
+          s.x += x * (k = 1 - k);
+          s.y += y * k;
+        }
+      }
+      if (k = alpha * gravity) {
+        x = size[0] / 2;
+        y = size[1] / 2;
+        i = -1;
+        if (k) while (++i < n) {
+          o = nodes[i];
+          o.x += (x - o.x) * k;
+          o.y += (y - o.y) * k;
+        }
+      }
+      if (charge) {
+        d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
+        i = -1;
+        while (++i < n) {
+          if (!(o = nodes[i]).fixed) {
+            q.visit(repulse(o));
+          }
+        }
+      }
+      i = -1;
+      while (++i < n) {
+        o = nodes[i];
+        if (o.fixed) {
+          o.x = o.px;
+          o.y = o.py;
+        } else {
+          o.x -= (o.px - (o.px = o.x)) * friction;
+          o.y -= (o.py - (o.py = o.y)) * friction;
+        }
+      }
+      event.tick({
+        type: "tick",
+        alpha: alpha
+      });
+    };
+    force.nodes = function(x) {
+      if (!arguments.length) return nodes;
+      nodes = x;
+      return force;
+    };
+    force.links = function(x) {
+      if (!arguments.length) return links;
+      links = x;
+      return force;
+    };
+    force.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return force;
+    };
+    force.linkDistance = function(x) {
+      if (!arguments.length) return linkDistance;
+      linkDistance = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.distance = force.linkDistance;
+    force.linkStrength = function(x) {
+      if (!arguments.length) return linkStrength;
+      linkStrength = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.friction = function(x) {
+      if (!arguments.length) return friction;
+      friction = +x;
+      return force;
+    };
+    force.charge = function(x) {
+      if (!arguments.length) return charge;
+      charge = typeof x === "function" ? x : +x;
+      return force;
+    };
+    force.chargeDistance = function(x) {
+      if (!arguments.length) return Math.sqrt(chargeDistance2);
+      chargeDistance2 = x * x;
+      return force;
+    };
+    force.gravity = function(x) {
+      if (!arguments.length) return gravity;
+      gravity = +x;
+      return force;
+    };
+    force.theta = function(x) {
+      if (!arguments.length) return Math.sqrt(theta2);
+      theta2 = x * x;
+      return force;
+    };
+    force.alpha = function(x) {
+      if (!arguments.length) return alpha;
+      x = +x;
+      if (alpha) {
+        if (x > 0) {
+          alpha = x;
+        } else {
+          timer.c = null, timer.t = NaN, timer = null;
+          event.end({
+            type: "end",
+            alpha: alpha = 0
+          });
+        }
+      } else if (x > 0) {
+        event.start({
+          type: "start",
+          alpha: alpha = x
+        });
+        timer = d3_timer(force.tick);
+      }
+      return force;
+    };
+    force.start = function() {
+      var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
+      for (i = 0; i < n; ++i) {
+        (o = nodes[i]).index = i;
+        o.weight = 0;
+      }
+      for (i = 0; i < m; ++i) {
+        o = links[i];
+        if (typeof o.source == "number") o.source = nodes[o.source];
+        if (typeof o.target == "number") o.target = nodes[o.target];
+        ++o.source.weight;
+        ++o.target.weight;
+      }
+      for (i = 0; i < n; ++i) {
+        o = nodes[i];
+        if (isNaN(o.x)) o.x = position("x", w);
+        if (isNaN(o.y)) o.y = position("y", h);
+        if (isNaN(o.px)) o.px = o.x;
+        if (isNaN(o.py)) o.py = o.y;
+      }
+      distances = [];
+      if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
+      strengths = [];
+      if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
+      charges = [];
+      if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
+      function position(dimension, size) {
+        if (!neighbors) {
+          neighbors = new Array(n);
+          for (j = 0; j < n; ++j) {
+            neighbors[j] = [];
+          }
+          for (j = 0; j < m; ++j) {
+            var o = links[j];
+            neighbors[o.source.index].push(o.target);
+            neighbors[o.target.index].push(o.source);
+          }
+        }
+        var candidates = neighbors[i], j = -1, l = candidates.length, x;
+        while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;
+        return Math.random() * size;
+      }
+      return force.resume();
+    };
+    force.resume = function() {
+      return force.alpha(.1);
+    };
+    force.stop = function() {
+      return force.alpha(0);
+    };
+    force.drag = function() {
+      if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
+      if (!arguments.length) return drag;
+      this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
+    };
+    function dragmove(d) {
+      d.px = d3.event.x, d.py = d3.event.y;
+      force.resume();
+    }
+    return d3.rebind(force, event, "on");
+  };
+  function d3_layout_forceDragstart(d) {
+    d.fixed |= 2;
+  }
+  function d3_layout_forceDragend(d) {
+    d.fixed &= ~6;
+  }
+  function d3_layout_forceMouseover(d) {
+    d.fixed |= 4;
+    d.px = d.x, d.py = d.y;
+  }
+  function d3_layout_forceMouseout(d) {
+    d.fixed &= ~4;
+  }
+  function d3_layout_forceAccumulate(quad, alpha, charges) {
+    var cx = 0, cy = 0;
+    quad.charge = 0;
+    if (!quad.leaf) {
+      var nodes = quad.nodes, n = nodes.length, i = -1, c;
+      while (++i < n) {
+        c = nodes[i];
+        if (c == null) continue;
+        d3_layout_forceAccumulate(c, alpha, charges);
+        quad.charge += c.charge;
+        cx += c.charge * c.cx;
+        cy += c.charge * c.cy;
+      }
+    }
+    if (quad.point) {
+      if (!quad.leaf) {
+        quad.point.x += Math.random() - .5;
+        quad.point.y += Math.random() - .5;
+      }
+      var k = alpha * charges[quad.point.index];
+      quad.charge += quad.pointCharge = k;
+      cx += k * quad.point.x;
+      cy += k * quad.point.y;
+    }
+    quad.cx = cx / quad.charge;
+    quad.cy = cy / quad.charge;
+  }
+  var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;
+  d3.layout.hierarchy = function() {
+    var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
+    function hierarchy(root) {
+      var stack = [ root ], nodes = [], node;
+      root.depth = 0;
+      while ((node = stack.pop()) != null) {
+        nodes.push(node);
+        if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {
+          var n, childs, child;
+          while (--n >= 0) {
+            stack.push(child = childs[n]);
+            child.parent = node;
+            child.depth = node.depth + 1;
+          }
+          if (value) node.value = 0;
+          node.children = childs;
+        } else {
+          if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;
+          delete node.children;
+        }
+      }
+      d3_layout_hierarchyVisitAfter(root, function(node) {
+        var childs, parent;
+        if (sort && (childs = node.children)) childs.sort(sort);
+        if (value && (parent = node.parent)) parent.value += node.value;
+      });
+      return nodes;
+    }
+    hierarchy.sort = function(x) {
+      if (!arguments.length) return sort;
+      sort = x;
+      return hierarchy;
+    };
+    hierarchy.children = function(x) {
+      if (!arguments.length) return children;
+      children = x;
+      return hierarchy;
+    };
+    hierarchy.value = function(x) {
+      if (!arguments.length) return value;
+      value = x;
+      return hierarchy;
+    };
+    hierarchy.revalue = function(root) {
+      if (value) {
+        d3_layout_hierarchyVisitBefore(root, function(node) {
+          if (node.children) node.value = 0;
+        });
+        d3_layout_hierarchyVisitAfter(root, function(node) {
+          var parent;
+          if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;
+          if (parent = node.parent) parent.value += node.value;
+        });
+      }
+      return root;
+    };
+    return hierarchy;
+  };
+  function d3_layout_hierarchyRebind(object, hierarchy) {
+    d3.rebind(object, hierarchy, "sort", "children", "value");
+    object.nodes = object;
+    object.links = d3_layout_hierarchyLinks;
+    return object;
+  }
+  function d3_layout_hierarchyVisitBefore(node, callback) {
+    var nodes = [ node ];
+    while ((node = nodes.pop()) != null) {
+      callback(node);
+      if ((children = node.children) && (n = children.length)) {
+        var n, children;
+        while (--n >= 0) nodes.push(children[n]);
+      }
+    }
+  }
+  function d3_layout_hierarchyVisitAfter(node, callback) {
+    var nodes = [ node ], nodes2 = [];
+    while ((node = nodes.pop()) != null) {
+      nodes2.push(node);
+      if ((children = node.children) && (n = children.length)) {
+        var i = -1, n, children;
+        while (++i < n) nodes.push(children[i]);
+      }
+    }
+    while ((node = nodes2.pop()) != null) {
+      callback(node);
+    }
+  }
+  function d3_layout_hierarchyChildren(d) {
+    return d.children;
+  }
+  function d3_layout_hierarchyValue(d) {
+    return d.value;
+  }
+  function d3_layout_hierarchySort(a, b) {
+    return b.value - a.value;
+  }
+  function d3_layout_hierarchyLinks(nodes) {
+    return d3.merge(nodes.map(function(parent) {
+      return (parent.children || []).map(function(child) {
+        return {
+          source: parent,
+          target: child
+        };
+      });
+    }));
+  }
+  d3.layout.partition = function() {
+    var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
+    function position(node, x, dx, dy) {
+      var children = node.children;
+      node.x = x;
+      node.y = node.depth * dy;
+      node.dx = dx;
+      node.dy = dy;
+      if (children && (n = children.length)) {
+        var i = -1, n, c, d;
+        dx = node.value ? dx / node.value : 0;
+        while (++i < n) {
+          position(c = children[i], x, d = c.value * dx, dy);
+          x += d;
+        }
+      }
+    }
+    function depth(node) {
+      var children = node.children, d = 0;
+      if (children && (n = children.length)) {
+        var i = -1, n;
+        while (++i < n) d = Math.max(d, depth(children[i]));
+      }
+      return 1 + d;
+    }
+    function partition(d, i) {
+      var nodes = hierarchy.call(this, d, i);
+      position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
+      return nodes;
+    }
+    partition.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return partition;
+    };
+    return d3_layout_hierarchyRebind(partition, hierarchy);
+  };
+  d3.layout.pie = function() {
+    var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = τ, padAngle = 0;
+    function pie(data) {
+      var n = data.length, values = data.map(function(d, i) {
+        return +value.call(pie, d, i);
+      }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;
+      if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
+        return values[j] - values[i];
+      } : function(i, j) {
+        return sort(data[i], data[j]);
+      });
+      index.forEach(function(i) {
+        arcs[i] = {
+          data: data[i],
+          value: v = values[i],
+          startAngle: a,
+          endAngle: a += v * k + pa,
+          padAngle: p
+        };
+      });
+      return arcs;
+    }
+    pie.value = function(_) {
+      if (!arguments.length) return value;
+      value = _;
+      return pie;
+    };
+    pie.sort = function(_) {
+      if (!arguments.length) return sort;
+      sort = _;
+      return pie;
+    };
+    pie.startAngle = function(_) {
+      if (!arguments.length) return startAngle;
+      startAngle = _;
+      return pie;
+    };
+    pie.endAngle = function(_) {
+      if (!arguments.length) return endAngle;
+      endAngle = _;
+      return pie;
+    };
+    pie.padAngle = function(_) {
+      if (!arguments.length) return padAngle;
+      padAngle = _;
+      return pie;
+    };
+    return pie;
+  };
+  var d3_layout_pieSortByValue = {};
+  d3.layout.stack = function() {
+    var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
+    function stack(data, index) {
+      if (!(n = data.length)) return data;
+      var series = data.map(function(d, i) {
+        return values.call(stack, d, i);
+      });
+      var points = series.map(function(d) {
+        return d.map(function(v, i) {
+          return [ x.call(stack, v, i), y.call(stack, v, i) ];
+        });
+      });
+      var orders = order.call(stack, points, index);
+      series = d3.permute(series, orders);
+      points = d3.permute(points, orders);
+      var offsets = offset.call(stack, points, index);
+      var m = series[0].length, n, i, j, o;
+      for (j = 0; j < m; ++j) {
+        out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
+        for (i = 1; i < n; ++i) {
+          out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
+        }
+      }
+      return data;
+    }
+    stack.values = function(x) {
+      if (!arguments.length) return values;
+      values = x;
+      return stack;
+    };
+    stack.order = function(x) {
+      if (!arguments.length) return order;
+      order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
+      return stack;
+    };
+    stack.offset = function(x) {
+      if (!arguments.length) return offset;
+      offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
+      return stack;
+    };
+    stack.x = function(z) {
+      if (!arguments.length) return x;
+      x = z;
+      return stack;
+    };
+    stack.y = function(z) {
+      if (!arguments.length) return y;
+      y = z;
+      return stack;
+    };
+    stack.out = function(z) {
+      if (!arguments.length) return out;
+      out = z;
+      return stack;
+    };
+    return stack;
+  };
+  function d3_layout_stackX(d) {
+    return d.x;
+  }
+  function d3_layout_stackY(d) {
+    return d.y;
+  }
+  function d3_layout_stackOut(d, y0, y) {
+    d.y0 = y0;
+    d.y = y;
+  }
+  var d3_layout_stackOrders = d3.map({
+    "inside-out": function(data) {
+      var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
+        return max[a] - max[b];
+      }), top = 0, bottom = 0, tops = [], bottoms = [];
+      for (i = 0; i < n; ++i) {
+        j = index[i];
+        if (top < bottom) {
+          top += sums[j];
+          tops.push(j);
+        } else {
+          bottom += sums[j];
+          bottoms.push(j);
+        }
+      }
+      return bottoms.reverse().concat(tops);
+    },
+    reverse: function(data) {
+      return d3.range(data.length).reverse();
+    },
+    "default": d3_layout_stackOrderDefault
+  });
+  var d3_layout_stackOffsets = d3.map({
+    silhouette: function(data) {
+      var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
+      for (j = 0; j < m; ++j) {
+        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+        if (o > max) max = o;
+        sums.push(o);
+      }
+      for (j = 0; j < m; ++j) {
+        y0[j] = (max - sums[j]) / 2;
+      }
+      return y0;
+    },
+    wiggle: function(data) {
+      var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
+      y0[0] = o = o0 = 0;
+      for (j = 1; j < m; ++j) {
+        for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
+        for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
+          for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
+            s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
+          }
+          s2 += s3 * data[i][j][1];
+        }
+        y0[j] = o -= s1 ? s2 / s1 * dx : 0;
+        if (o < o0) o0 = o;
+      }
+      for (j = 0; j < m; ++j) y0[j] -= o0;
+      return y0;
+    },
+    expand: function(data) {
+      var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
+      for (j = 0; j < m; ++j) {
+        for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
+        if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
+      }
+      for (j = 0; j < m; ++j) y0[j] = 0;
+      return y0;
+    },
+    zero: d3_layout_stackOffsetZero
+  });
+  function d3_layout_stackOrderDefault(data) {
+    return d3.range(data.length);
+  }
+  function d3_layout_stackOffsetZero(data) {
+    var j = -1, m = data[0].length, y0 = [];
+    while (++j < m) y0[j] = 0;
+    return y0;
+  }
+  function d3_layout_stackMaxIndex(array) {
+    var i = 1, j = 0, v = array[0][1], k, n = array.length;
+    for (;i < n; ++i) {
+      if ((k = array[i][1]) > v) {
+        j = i;
+        v = k;
+      }
+    }
+    return j;
+  }
+  function d3_layout_stackReduceSum(d) {
+    return d.reduce(d3_layout_stackSum, 0);
+  }
+  function d3_layout_stackSum(p, d) {
+    return p + d[1];
+  }
+  d3.layout.histogram = function() {
+    var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
+    function histogram(data, i) {
+      var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
+      while (++i < m) {
+        bin = bins[i] = [];
+        bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
+        bin.y = 0;
+      }
+      if (m > 0) {
+        i = -1;
+        while (++i < n) {
+          x = values[i];
+          if (x >= range[0] && x <= range[1]) {
+            bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
+            bin.y += k;
+            bin.push(data[i]);
+          }
+        }
+      }
+      return bins;
+    }
+    histogram.value = function(x) {
+      if (!arguments.length) return valuer;
+      valuer = x;
+      return histogram;
+    };
+    histogram.range = function(x) {
+      if (!arguments.length) return ranger;
+      ranger = d3_functor(x);
+      return histogram;
+    };
+    histogram.bins = function(x) {
+      if (!arguments.length) return binner;
+      binner = typeof x === "number" ? function(range) {
+        return d3_layout_histogramBinFixed(range, x);
+      } : d3_functor(x);
+      return histogram;
+    };
+    histogram.frequency = function(x) {
+      if (!arguments.length) return frequency;
+      frequency = !!x;
+      return histogram;
+    };
+    return histogram;
+  };
+  function d3_layout_histogramBinSturges(range, values) {
+    return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
+  }
+  function d3_layout_histogramBinFixed(range, n) {
+    var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
+    while (++x <= n) f[x] = m * x + b;
+    return f;
+  }
+  function d3_layout_histogramRange(values) {
+    return [ d3.min(values), d3.max(values) ];
+  }
+  d3.layout.pack = function() {
+    var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ], radius;
+    function pack(d, i) {
+      var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === "function" ? radius : function() {
+        return radius;
+      };
+      root.x = root.y = 0;
+      d3_layout_hierarchyVisitAfter(root, function(d) {
+        d.r = +r(d.value);
+      });
+      d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
+      if (padding) {
+        var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;
+        d3_layout_hierarchyVisitAfter(root, function(d) {
+          d.r += dr;
+        });
+        d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);
+        d3_layout_hierarchyVisitAfter(root, function(d) {
+          d.r -= dr;
+        });
+      }
+      d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));
+      return nodes;
+    }
+    pack.size = function(_) {
+      if (!arguments.length) return size;
+      size = _;
+      return pack;
+    };
+    pack.radius = function(_) {
+      if (!arguments.length) return radius;
+      radius = _ == null || typeof _ === "function" ? _ : +_;
+      return pack;
+    };
+    pack.padding = function(_) {
+      if (!arguments.length) return padding;
+      padding = +_;
+      return pack;
+    };
+    return d3_layout_hierarchyRebind(pack, hierarchy);
+  };
+  function d3_layout_packSort(a, b) {
+    return a.value - b.value;
+  }
+  function d3_layout_packInsert(a, b) {
+    var c = a._pack_next;
+    a._pack_next = b;
+    b._pack_prev = a;
+    b._pack_next = c;
+    c._pack_prev = b;
+  }
+  function d3_layout_packSplice(a, b) {
+    a._pack_next = b;
+    b._pack_prev = a;
+  }
+  function d3_layout_packIntersects(a, b) {
+    var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
+    return .999 * dr * dr > dx * dx + dy * dy;
+  }
+  function d3_layout_packSiblings(node) {
+    if (!(nodes = node.children) || !(n = nodes.length)) return;
+    var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
+    function bound(node) {
+      xMin = Math.min(node.x - node.r, xMin);
+      xMax = Math.max(node.x + node.r, xMax);
+      yMin = Math.min(node.y - node.r, yMin);
+      yMax = Math.max(node.y + node.r, yMax);
+    }
+    nodes.forEach(d3_layout_packLink);
+    a = nodes[0];
+    a.x = -a.r;
+    a.y = 0;
+    bound(a);
+    if (n > 1) {
+      b = nodes[1];
+      b.x = b.r;
+      b.y = 0;
+      bound(b);
+      if (n > 2) {
+        c = nodes[2];
+        d3_layout_packPlace(a, b, c);
+        bound(c);
+        d3_layout_packInsert(a, c);
+        a._pack_prev = c;
+        d3_layout_packInsert(c, b);
+        b = a._pack_next;
+        for (i = 3; i < n; i++) {
+          d3_layout_packPlace(a, b, c = nodes[i]);
+          var isect = 0, s1 = 1, s2 = 1;
+          for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
+            if (d3_layout_packIntersects(j, c)) {
+              isect = 1;
+              break;
+            }
+          }
+          if (isect == 1) {
+            for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
+              if (d3_layout_packIntersects(k, c)) {
+                break;
+              }
+            }
+          }
+          if (isect) {
+            if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
+            i--;
+          } else {
+            d3_layout_packInsert(a, c);
+            b = c;
+            bound(c);
+          }
+        }
+      }
+    }
+    var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
+    for (i = 0; i < n; i++) {
+      c = nodes[i];
+      c.x -= cx;
+      c.y -= cy;
+      cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
+    }
+    node.r = cr;
+    nodes.forEach(d3_layout_packUnlink);
+  }
+  function d3_layout_packLink(node) {
+    node._pack_next = node._pack_prev = node;
+  }
+  function d3_layout_packUnlink(node) {
+    delete node._pack_next;
+    delete node._pack_prev;
+  }
+  function d3_layout_packTransform(node, x, y, k) {
+    var children = node.children;
+    node.x = x += k * node.x;
+    node.y = y += k * node.y;
+    node.r *= k;
+    if (children) {
+      var i = -1, n = children.length;
+      while (++i < n) d3_layout_packTransform(children[i], x, y, k);
+    }
+  }
+  function d3_layout_packPlace(a, b, c) {
+    var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
+    if (db && (dx || dy)) {
+      var da = b.r + c.r, dc = dx * dx + dy * dy;
+      da *= da;
+      db *= db;
+      var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
+      c.x = a.x + x * dx + y * dy;
+      c.y = a.y + x * dy - y * dx;
+    } else {
+      c.x = a.x + db;
+      c.y = a.y;
+    }
+  }
+  d3.layout.tree = function() {
+    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = null;
+    function tree(d, i) {
+      var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);
+      d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;
+      d3_layout_hierarchyVisitBefore(root1, secondWalk);
+      if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode); else {
+        var left = root0, right = root0, bottom = root0;
+        d3_layout_hierarchyVisitBefore(root0, function(node) {
+          if (node.x < left.x) left = node;
+          if (node.x > right.x) right = node;
+          if (node.depth > bottom.depth) bottom = node;
+        });
+        var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);
+        d3_layout_hierarchyVisitBefore(root0, function(node) {
+          node.x = (node.x + tx) * kx;
+          node.y = node.depth * ky;
+        });
+      }
+      return nodes;
+    }
+    function wrapTree(root0) {
+      var root1 = {
+        A: null,
+        children: [ root0 ]
+      }, queue = [ root1 ], node1;
+      while ((node1 = queue.pop()) != null) {
+        for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {
+          queue.push((children[i] = child = {
+            _: children[i],
+            parent: node1,
+            children: (child = children[i].children) && child.slice() || [],
+            A: null,
+            a: null,
+            z: 0,
+            m: 0,
+            c: 0,
+            s: 0,
+            t: null,
+            i: i
+          }).a = child);
+        }
+      }
+      return root1.children[0];
+    }
+    function firstWalk(v) {
+      var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;
+      if (children.length) {
+        d3_layout_treeShift(v);
+        var midpoint = (children[0].z + children[children.length - 1].z) / 2;
+        if (w) {
+          v.z = w.z + separation(v._, w._);
+          v.m = v.z - midpoint;
+        } else {
+          v.z = midpoint;
+        }
+      } else if (w) {
+        v.z = w.z + separation(v._, w._);
+      }
+      v.parent.A = apportion(v, w, v.parent.A || siblings[0]);
+    }
+    function secondWalk(v) {
+      v._.x = v.z + v.parent.m;
+      v.m += v.parent.m;
+    }
+    function apportion(v, w, ancestor) {
+      if (w) {
+        var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;
+        while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
+          vom = d3_layout_treeLeft(vom);
+          vop = d3_layout_treeRight(vop);
+          vop.a = v;
+          shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);
+          if (shift > 0) {
+            d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);
+            sip += shift;
+            sop += shift;
+          }
+          sim += vim.m;
+          sip += vip.m;
+          som += vom.m;
+          sop += vop.m;
+        }
+        if (vim && !d3_layout_treeRight(vop)) {
+          vop.t = vim;
+          vop.m += sim - sop;
+        }
+        if (vip && !d3_layout_treeLeft(vom)) {
+          vom.t = vip;
+          vom.m += sip - som;
+          ancestor = v;
+        }
+      }
+      return ancestor;
+    }
+    function sizeNode(node) {
+      node.x *= size[0];
+      node.y = node.depth * size[1];
+    }
+    tree.separation = function(x) {
+      if (!arguments.length) return separation;
+      separation = x;
+      return tree;
+    };
+    tree.size = function(x) {
+      if (!arguments.length) return nodeSize ? null : size;
+      nodeSize = (size = x) == null ? sizeNode : null;
+      return tree;
+    };
+    tree.nodeSize = function(x) {
+      if (!arguments.length) return nodeSize ? size : null;
+      nodeSize = (size = x) == null ? null : sizeNode;
+      return tree;
+    };
+    return d3_layout_hierarchyRebind(tree, hierarchy);
+  };
+  function d3_layout_treeSeparation(a, b) {
+    return a.parent == b.parent ? 1 : 2;
+  }
+  function d3_layout_treeLeft(v) {
+    var children = v.children;
+    return children.length ? children[0] : v.t;
+  }
+  function d3_layout_treeRight(v) {
+    var children = v.children, n;
+    return (n = children.length) ? children[n - 1] : v.t;
+  }
+  function d3_layout_treeMove(wm, wp, shift) {
+    var change = shift / (wp.i - wm.i);
+    wp.c -= change;
+    wp.s += shift;
+    wm.c += change;
+    wp.z += shift;
+    wp.m += shift;
+  }
+  function d3_layout_treeShift(v) {
+    var shift = 0, change = 0, children = v.children, i = children.length, w;
+    while (--i >= 0) {
+      w = children[i];
+      w.z += shift;
+      w.m += shift;
+      shift += w.s + (change += w.c);
+    }
+  }
+  function d3_layout_treeAncestor(vim, v, ancestor) {
+    return vim.a.parent === v.parent ? vim.a : ancestor;
+  }
+  d3.layout.cluster = function() {
+    var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ], nodeSize = false;
+    function cluster(d, i) {
+      var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
+      d3_layout_hierarchyVisitAfter(root, function(node) {
+        var children = node.children;
+        if (children && children.length) {
+          node.x = d3_layout_clusterX(children);
+          node.y = d3_layout_clusterY(children);
+        } else {
+          node.x = previousNode ? x += separation(node, previousNode) : 0;
+          node.y = 0;
+          previousNode = node;
+        }
+      });
+      var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
+      d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {
+        node.x = (node.x - root.x) * size[0];
+        node.y = (root.y - node.y) * size[1];
+      } : function(node) {
+        node.x = (node.x - x0) / (x1 - x0) * size[0];
+        node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
+      });
+      return nodes;
+    }
+    cluster.separation = function(x) {
+      if (!arguments.length) return separation;
+      separation = x;
+      return cluster;
+    };
+    cluster.size = function(x) {
+      if (!arguments.length) return nodeSize ? null : size;
+      nodeSize = (size = x) == null;
+      return cluster;
+    };
+    cluster.nodeSize = function(x) {
+      if (!arguments.length) return nodeSize ? size : null;
+      nodeSize = (size = x) != null;
+      return cluster;
+    };
+    return d3_layout_hierarchyRebind(cluster, hierarchy);
+  };
+  function d3_layout_clusterY(children) {
+    return 1 + d3.max(children, function(child) {
+      return child.y;
+    });
+  }
+  function d3_layout_clusterX(children) {
+    return children.reduce(function(x, child) {
+      return x + child.x;
+    }, 0) / children.length;
+  }
+  function d3_layout_clusterLeft(node) {
+    var children = node.children;
+    return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
+  }
+  function d3_layout_clusterRight(node) {
+    var children = node.children, n;
+    return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
+  }
+  d3.layout.treemap = function() {
+    var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
+    function scale(children, k) {
+      var i = -1, n = children.length, child, area;
+      while (++i < n) {
+        area = (child = children[i]).value * (k < 0 ? 0 : k);
+        child.area = isNaN(area) || area <= 0 ? 0 : area;
+      }
+    }
+    function squarify(node) {
+      var children = node.children;
+      if (children && children.length) {
+        var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
+        scale(remaining, rect.dx * rect.dy / node.value);
+        row.area = 0;
+        while ((n = remaining.length) > 0) {
+          row.push(child = remaining[n - 1]);
+          row.area += child.area;
+          if (mode !== "squarify" || (score = worst(row, u)) <= best) {
+            remaining.pop();
+            best = score;
+          } else {
+            row.area -= row.pop().area;
+            position(row, u, rect, false);
+            u = Math.min(rect.dx, rect.dy);
+            row.length = row.area = 0;
+            best = Infinity;
+          }
+        }
+        if (row.length) {
+          position(row, u, rect, true);
+          row.length = row.area = 0;
+        }
+        children.forEach(squarify);
+      }
+    }
+    function stickify(node) {
+      var children = node.children;
+      if (children && children.length) {
+        var rect = pad(node), remaining = children.slice(), child, row = [];
+        scale(remaining, rect.dx * rect.dy / node.value);
+        row.area = 0;
+        while (child = remaining.pop()) {
+          row.push(child);
+          row.area += child.area;
+          if (child.z != null) {
+            position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
+            row.length = row.area = 0;
+          }
+        }
+        children.forEach(stickify);
+      }
+    }
+    function worst(row, u) {
+      var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
+      while (++i < n) {
+        if (!(r = row[i].area)) continue;
+        if (r < rmin) rmin = r;
+        if (r > rmax) rmax = r;
+      }
+      s *= s;
+      u *= u;
+      return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
+    }
+    function position(row, u, rect, flush) {
+      var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
+      if (u == rect.dx) {
+        if (flush || v > rect.dy) v = rect.dy;
+        while (++i < n) {
+          o = row[i];
+          o.x = x;
+          o.y = y;
+          o.dy = v;
+          x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
+        }
+        o.z = true;
+        o.dx += rect.x + rect.dx - x;
+        rect.y += v;
+        rect.dy -= v;
+      } else {
+        if (flush || v > rect.dx) v = rect.dx;
+        while (++i < n) {
+          o = row[i];
+          o.x = x;
+          o.y = y;
+          o.dx = v;
+          y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
+        }
+        o.z = false;
+        o.dy += rect.y + rect.dy - y;
+        rect.x += v;
+        rect.dx -= v;
+      }
+    }
+    function treemap(d) {
+      var nodes = stickies || hierarchy(d), root = nodes[0];
+      root.x = root.y = 0;
+      if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0;
+      if (stickies) hierarchy.revalue(root);
+      scale([ root ], root.dx * root.dy / root.value);
+      (stickies ? stickify : squarify)(root);
+      if (sticky) stickies = nodes;
+      return nodes;
+    }
+    treemap.size = function(x) {
+      if (!arguments.length) return size;
+      size = x;
+      return treemap;
+    };
+    treemap.padding = function(x) {
+      if (!arguments.length) return padding;
+      function padFunction(node) {
+        var p = x.call(treemap, node, node.depth);
+        return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
+      }
+      function padConstant(node) {
+        return d3_layout_treemapPad(node, x);
+      }
+      var type;
+      pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
+      padConstant) : padConstant;
+      return treemap;
+    };
+    treemap.round = function(x) {
+      if (!arguments.length) return round != Number;
+      round = x ? Math.round : Number;
+      return treemap;
+    };
+    treemap.sticky = function(x) {
+      if (!arguments.length) return sticky;
+      sticky = x;
+      stickies = null;
+      return treemap;
+    };
+    treemap.ratio = function(x) {
+      if (!arguments.length) return ratio;
+      ratio = x;
+      return treemap;
+    };
+    treemap.mode = function(x) {
+      if (!arguments.length) return mode;
+      mode = x + "";
+      return treemap;
+    };
+    return d3_layout_hierarchyRebind(treemap, hierarchy);
+  };
+  function d3_layout_treemapPadNull(node) {
+    return {
+      x: node.x,
+      y: node.y,
+      dx: node.dx,
+      dy: node.dy
+    };
+  }
+  function d3_layout_treemapPad(node, padding) {
+    var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
+    if (dx < 0) {
+      x += dx / 2;
+      dx = 0;
+    }
+    if (dy < 0) {
+      y += dy / 2;
+      dy = 0;
+    }
+    return {
+      x: x,
+      y: y,
+      dx: dx,
+      dy: dy
+    };
+  }
+  d3.random = {
+    normal: function(µ, σ) {
+      var n = arguments.length;
+      if (n < 2) σ = 1;
+      if (n < 1) µ = 0;
+      return function() {
+        var x, y, r;
+        do {
+          x = Math.random() * 2 - 1;
+          y = Math.random() * 2 - 1;
+          r = x * x + y * y;
+        } while (!r || r > 1);
+        return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
+      };
+    },
+    logNormal: function() {
+      var random = d3.random.normal.apply(d3, arguments);
+      return function() {
+        return Math.exp(random());
+      };
+    },
+    bates: function(m) {
+      var random = d3.random.irwinHall(m);
+      return function() {
+        return random() / m;
+      };
+    },
+    irwinHall: function(m) {
+      return function() {
+        for (var s = 0, j = 0; j < m; j++) s += Math.random();
+        return s;
+      };
+    }
+  };
+  d3.scale = {};
+  function d3_scaleExtent(domain) {
+    var start = domain[0], stop = domain[domain.length - 1];
+    return start < stop ? [ start, stop ] : [ stop, start ];
+  }
+  function d3_scaleRange(scale) {
+    return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
+  }
+  function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
+    var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
+    return function(x) {
+      return i(u(x));
+    };
+  }
+  function d3_scale_nice(domain, nice) {
+    var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
+    if (x1 < x0) {
+      dx = i0, i0 = i1, i1 = dx;
+      dx = x0, x0 = x1, x1 = dx;
+    }
+    domain[i0] = nice.floor(x0);
+    domain[i1] = nice.ceil(x1);
+    return domain;
+  }
+  function d3_scale_niceStep(step) {
+    return step ? {
+      floor: function(x) {
+        return Math.floor(x / step) * step;
+      },
+      ceil: function(x) {
+        return Math.ceil(x / step) * step;
+      }
+    } : d3_scale_niceIdentity;
+  }
+  var d3_scale_niceIdentity = {
+    floor: d3_identity,
+    ceil: d3_identity
+  };
+  function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
+    var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
+    if (domain[k] < domain[0]) {
+      domain = domain.slice().reverse();
+      range = range.slice().reverse();
+    }
+    while (++j <= k) {
+      u.push(uninterpolate(domain[j - 1], domain[j]));
+      i.push(interpolate(range[j - 1], range[j]));
+    }
+    return function(x) {
+      var j = d3.bisect(domain, x, 1, k) - 1;
+      return i[j](u[j](x));
+    };
+  }
+  d3.scale.linear = function() {
+    return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3_interpolate, false);
+  };
+  function d3_scale_linear(domain, range, interpolate, clamp) {
+    var output, input;
+    function rescale() {
+      var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
+      output = linear(domain, range, uninterpolate, interpolate);
+      input = linear(range, domain, uninterpolate, d3_interpolate);
+      return scale;
+    }
+    function scale(x) {
+      return output(x);
+    }
+    scale.invert = function(y) {
+      return input(y);
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(Number);
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.rangeRound = function(x) {
+      return scale.range(x).interpolate(d3_interpolateRound);
+    };
+    scale.clamp = function(x) {
+      if (!arguments.length) return clamp;
+      clamp = x;
+      return rescale();
+    };
+    scale.interpolate = function(x) {
+      if (!arguments.length) return interpolate;
+      interpolate = x;
+      return rescale();
+    };
+    scale.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    scale.tickFormat = function(m, format) {
+      return d3_scale_linearTickFormat(domain, m, format);
+    };
+    scale.nice = function(m) {
+      d3_scale_linearNice(domain, m);
+      return rescale();
+    };
+    scale.copy = function() {
+      return d3_scale_linear(domain, range, interpolate, clamp);
+    };
+    return rescale();
+  }
+  function d3_scale_linearRebind(scale, linear) {
+    return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
+  }
+  function d3_scale_linearNice(domain, m) {
+    d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
+    d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));
+    return domain;
+  }
+  function d3_scale_linearTickRange(domain, m) {
+    if (m == null) m = 10;
+    var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
+    if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
+    extent[0] = Math.ceil(extent[0] / step) * step;
+    extent[1] = Math.floor(extent[1] / step) * step + step * .5;
+    extent[2] = step;
+    return extent;
+  }
+  function d3_scale_linearTicks(domain, m) {
+    return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
+  }
+  function d3_scale_linearTickFormat(domain, m, format) {
+    var range = d3_scale_linearTickRange(domain, m);
+    if (format) {
+      var match = d3_format_re.exec(format);
+      match.shift();
+      if (match[8] === "s") {
+        var prefix = d3.formatPrefix(Math.max(abs(range[0]), abs(range[1])));
+        if (!match[7]) match[7] = "." + d3_scale_linearPrecision(prefix.scale(range[2]));
+        match[8] = "f";
+        format = d3.format(match.join(""));
+        return function(d) {
+          return format(prefix.scale(d)) + prefix.symbol;
+        };
+      }
+      if (!match[7]) match[7] = "." + d3_scale_linearFormatPrecision(match[8], range);
+      format = match.join("");
+    } else {
+      format = ",." + d3_scale_linearPrecision(range[2]) + "f";
+    }
+    return d3.format(format);
+  }
+  var d3_scale_linearFormatSignificant = {
+    s: 1,
+    g: 1,
+    p: 1,
+    r: 1,
+    e: 1
+  };
+  function d3_scale_linearPrecision(value) {
+    return -Math.floor(Math.log(value) / Math.LN10 + .01);
+  }
+  function d3_scale_linearFormatPrecision(type, range) {
+    var p = d3_scale_linearPrecision(range[2]);
+    return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== "e") : p - (type === "%") * 2;
+  }
+  d3.scale.log = function() {
+    return d3_scale_log(d3.scale.linear().domain([ 0, 1 ]), 10, true, [ 1, 10 ]);
+  };
+  function d3_scale_log(linear, base, positive, domain) {
+    function log(x) {
+      return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);
+    }
+    function pow(x) {
+      return positive ? Math.pow(base, x) : -Math.pow(base, -x);
+    }
+    function scale(x) {
+      return linear(log(x));
+    }
+    scale.invert = function(x) {
+      return pow(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      positive = x[0] >= 0;
+      linear.domain((domain = x.map(Number)).map(log));
+      return scale;
+    };
+    scale.base = function(_) {
+      if (!arguments.length) return base;
+      base = +_;
+      linear.domain(domain.map(log));
+      return scale;
+    };
+    scale.nice = function() {
+      var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);
+      linear.domain(niced);
+      domain = niced.map(pow);
+      return scale;
+    };
+    scale.ticks = function() {
+      var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;
+      if (isFinite(j - i)) {
+        if (positive) {
+          for (;i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);
+          ticks.push(pow(i));
+        } else {
+          ticks.push(pow(i));
+          for (;i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);
+        }
+        for (i = 0; ticks[i] < u; i++) {}
+        for (j = ticks.length; ticks[j - 1] > v; j--) {}
+        ticks = ticks.slice(i, j);
+      }
+      return ticks;
+    };
+    scale.tickFormat = function(n, format) {
+      if (!arguments.length) return d3_scale_logFormat;
+      if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format);
+      var k = Math.max(1, base * n / scale.ticks().length);
+      return function(d) {
+        var i = d / pow(Math.round(log(d)));
+        if (i * base < base - .5) i *= base;
+        return i <= k ? format(d) : "";
+      };
+    };
+    scale.copy = function() {
+      return d3_scale_log(linear.copy(), base, positive, domain);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  var d3_scale_logFormat = d3.format(".0e"), d3_scale_logNiceNegative = {
+    floor: function(x) {
+      return -Math.ceil(-x);
+    },
+    ceil: function(x) {
+      return -Math.floor(-x);
+    }
+  };
+  d3.scale.pow = function() {
+    return d3_scale_pow(d3.scale.linear(), 1, [ 0, 1 ]);
+  };
+  function d3_scale_pow(linear, exponent, domain) {
+    var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
+    function scale(x) {
+      return linear(powp(x));
+    }
+    scale.invert = function(x) {
+      return powb(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      linear.domain((domain = x.map(Number)).map(powp));
+      return scale;
+    };
+    scale.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    scale.tickFormat = function(m, format) {
+      return d3_scale_linearTickFormat(domain, m, format);
+    };
+    scale.nice = function(m) {
+      return scale.domain(d3_scale_linearNice(domain, m));
+    };
+    scale.exponent = function(x) {
+      if (!arguments.length) return exponent;
+      powp = d3_scale_powPow(exponent = x);
+      powb = d3_scale_powPow(1 / exponent);
+      linear.domain(domain.map(powp));
+      return scale;
+    };
+    scale.copy = function() {
+      return d3_scale_pow(linear.copy(), exponent, domain);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  function d3_scale_powPow(e) {
+    return function(x) {
+      return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
+    };
+  }
+  d3.scale.sqrt = function() {
+    return d3.scale.pow().exponent(.5);
+  };
+  d3.scale.ordinal = function() {
+    return d3_scale_ordinal([], {
+      t: "range",
+      a: [ [] ]
+    });
+  };
+  function d3_scale_ordinal(domain, ranger) {
+    var index, range, rangeBand;
+    function scale(x) {
+      return range[((index.get(x) || (ranger.t === "range" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];
+    }
+    function steps(start, step) {
+      return d3.range(domain.length).map(function(i) {
+        return start + step * i;
+      });
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = [];
+      index = new d3_Map();
+      var i = -1, n = x.length, xi;
+      while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
+      return scale[ranger.t].apply(scale, ranger.a);
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      rangeBand = 0;
+      ranger = {
+        t: "range",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangePoints = function(x, padding) {
+      if (arguments.length < 2) padding = 0;
+      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2,
+      0) : (stop - start) / (domain.length - 1 + padding);
+      range = steps(start + step * padding / 2, step);
+      rangeBand = 0;
+      ranger = {
+        t: "rangePoints",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeRoundPoints = function(x, padding) {
+      if (arguments.length < 2) padding = 0;
+      var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2),
+      0) : (stop - start) / (domain.length - 1 + padding) | 0;
+      range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);
+      rangeBand = 0;
+      ranger = {
+        t: "rangeRoundPoints",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeBands = function(x, padding, outerPadding) {
+      if (arguments.length < 2) padding = 0;
+      if (arguments.length < 3) outerPadding = padding;
+      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
+      range = steps(start + step * outerPadding, step);
+      if (reverse) range.reverse();
+      rangeBand = step * (1 - padding);
+      ranger = {
+        t: "rangeBands",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeRoundBands = function(x, padding, outerPadding) {
+      if (arguments.length < 2) padding = 0;
+      if (arguments.length < 3) outerPadding = padding;
+      var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));
+      range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);
+      if (reverse) range.reverse();
+      rangeBand = Math.round(step * (1 - padding));
+      ranger = {
+        t: "rangeRoundBands",
+        a: arguments
+      };
+      return scale;
+    };
+    scale.rangeBand = function() {
+      return rangeBand;
+    };
+    scale.rangeExtent = function() {
+      return d3_scaleExtent(ranger.a[0]);
+    };
+    scale.copy = function() {
+      return d3_scale_ordinal(domain, ranger);
+    };
+    return scale.domain(domain);
+  }
+  d3.scale.category10 = function() {
+    return d3.scale.ordinal().range(d3_category10);
+  };
+  d3.scale.category20 = function() {
+    return d3.scale.ordinal().range(d3_category20);
+  };
+  d3.scale.category20b = function() {
+    return d3.scale.ordinal().range(d3_category20b);
+  };
+  d3.scale.category20c = function() {
+    return d3.scale.ordinal().range(d3_category20c);
+  };
+  var d3_category10 = [ 2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175 ].map(d3_rgbString);
+  var d3_category20 = [ 2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725 ].map(d3_rgbString);
+  var d3_category20b = [ 3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654 ].map(d3_rgbString);
+  var d3_category20c = [ 3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081 ].map(d3_rgbString);
+  d3.scale.quantile = function() {
+    return d3_scale_quantile([], []);
+  };
+  function d3_scale_quantile(domain, range) {
+    var thresholds;
+    function rescale() {
+      var k = 0, q = range.length;
+      thresholds = [];
+      while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
+      return scale;
+    }
+    function scale(x) {
+      if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.quantiles = function() {
+      return thresholds;
+    };
+    scale.invertExtent = function(y) {
+      y = range.indexOf(y);
+      return y < 0 ? [ NaN, NaN ] : [ y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1] ];
+    };
+    scale.copy = function() {
+      return d3_scale_quantile(domain, range);
+    };
+    return rescale();
+  }
+  d3.scale.quantize = function() {
+    return d3_scale_quantize(0, 1, [ 0, 1 ]);
+  };
+  function d3_scale_quantize(x0, x1, range) {
+    var kx, i;
+    function scale(x) {
+      return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
+    }
+    function rescale() {
+      kx = range.length / (x1 - x0);
+      i = range.length - 1;
+      return scale;
+    }
+    scale.domain = function(x) {
+      if (!arguments.length) return [ x0, x1 ];
+      x0 = +x[0];
+      x1 = +x[x.length - 1];
+      return rescale();
+    };
+    scale.range = function(x) {
+      if (!arguments.length) return range;
+      range = x;
+      return rescale();
+    };
+    scale.invertExtent = function(y) {
+      y = range.indexOf(y);
+      y = y < 0 ? NaN : y / kx + x0;
+      return [ y, y + 1 / kx ];
+    };
+    scale.copy = function() {
+      return d3_scale_quantize(x0, x1, range);
+    };
+    return rescale();
+  }
+  d3.scale.threshold = function() {
+    return d3_scale_threshold([ .5 ], [ 0, 1 ]);
+  };
+  function d3_scale_threshold(domain, range) {
+    function scale(x) {
+      if (x <= x) return range[d3.bisect(domain, x)];
+    }
+    scale.domain = function(_) {
+      if (!arguments.length) return domain;
+      domain = _;
+      return scale;
+    };
+    scale.range = function(_) {
+      if (!arguments.length) return range;
+      range = _;
+      return scale;
+    };
+    scale.invertExtent = function(y) {
+      y = range.indexOf(y);
+      return [ domain[y - 1], domain[y] ];
+    };
+    scale.copy = function() {
+      return d3_scale_threshold(domain, range);
+    };
+    return scale;
+  }
+  d3.scale.identity = function() {
+    return d3_scale_identity([ 0, 1 ]);
+  };
+  function d3_scale_identity(domain) {
+    function identity(x) {
+      return +x;
+    }
+    identity.invert = identity;
+    identity.domain = identity.range = function(x) {
+      if (!arguments.length) return domain;
+      domain = x.map(identity);
+      return identity;
+    };
+    identity.ticks = function(m) {
+      return d3_scale_linearTicks(domain, m);
+    };
+    identity.tickFormat = function(m, format) {
+      return d3_scale_linearTickFormat(domain, m, format);
+    };
+    identity.copy = function() {
+      return d3_scale_identity(domain);
+    };
+    return identity;
+  }
+  d3.svg = {};
+  function d3_zero() {
+    return 0;
+  }
+  d3.svg.arc = function() {
+    var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;
+    function arc() {
+      var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - halfπ, a1 = endAngle.apply(this, arguments) - halfπ, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;
+      if (r1 < r0) rc = r1, r1 = r0, r0 = rc;
+      if (da >= τε) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : "") + "Z";
+      var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];
+      if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {
+        rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);
+        if (!cw) p1 *= -1;
+        if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));
+        if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));
+      }
+      if (r1) {
+        x0 = r1 * Math.cos(a0 + p1);
+        y0 = r1 * Math.sin(a0 + p1);
+        x1 = r1 * Math.cos(a1 - p1);
+        y1 = r1 * Math.sin(a1 - p1);
+        var l1 = Math.abs(a1 - a0 - 2 * p1) <= π ? 0 : 1;
+        if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {
+          var h1 = (a0 + a1) / 2;
+          x0 = r1 * Math.cos(h1);
+          y0 = r1 * Math.sin(h1);
+          x1 = y1 = null;
+        }
+      } else {
+        x0 = y0 = 0;
+      }
+      if (r0) {
+        x2 = r0 * Math.cos(a1 - p0);
+        y2 = r0 * Math.sin(a1 - p0);
+        x3 = r0 * Math.cos(a0 + p0);
+        y3 = r0 * Math.sin(a0 + p0);
+        var l0 = Math.abs(a0 - a1 + 2 * p0) <= π ? 0 : 1;
+        if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {
+          var h0 = (a0 + a1) / 2;
+          x2 = r0 * Math.cos(h0);
+          y2 = r0 * Math.sin(h0);
+          x3 = y3 = null;
+        }
+      } else {
+        x2 = y2 = 0;
+      }
+      if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) {
+        cr = r0 < r1 ^ cw ? 0 : 1;
+        var rc1 = rc, rc0 = rc;
+        if (da < π) {
+          var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
+          rc0 = Math.min(rc, (r0 - lc) / (kc - 1));
+          rc1 = Math.min(rc, (r1 - lc) / (kc + 1));
+        }
+        if (x1 != null) {
+          var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw);
+          if (rc === rc1) {
+            path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]);
+          } else {
+            path.push("M", t30[0], "A", rc1, ",", rc1, " 0 1,", cr, " ", t12[0]);
+          }
+        } else {
+          path.push("M", x0, ",", y0);
+        }
+        if (x3 != null) {
+          var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw);
+          if (rc === rc0) {
+            path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
+          } else {
+            path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]);
+          }
+        } else {
+          path.push("L", x2, ",", y2);
+        }
+      } else {
+        path.push("M", x0, ",", y0);
+        if (x1 != null) path.push("A", r1, ",", r1, " 0 ", l1, ",", cw, " ", x1, ",", y1);
+        path.push("L", x2, ",", y2);
+        if (x3 != null) path.push("A", r0, ",", r0, " 0 ", l0, ",", 1 - cw, " ", x3, ",", y3);
+      }
+      path.push("Z");
+      return path.join("");
+    }
+    function circleSegment(r1, cw) {
+      return "M0," + r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + -r1 + "A" + r1 + "," + r1 + " 0 1," + cw + " 0," + r1;
+    }
+    arc.innerRadius = function(v) {
+      if (!arguments.length) return innerRadius;
+      innerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.outerRadius = function(v) {
+      if (!arguments.length) return outerRadius;
+      outerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.cornerRadius = function(v) {
+      if (!arguments.length) return cornerRadius;
+      cornerRadius = d3_functor(v);
+      return arc;
+    };
+    arc.padRadius = function(v) {
+      if (!arguments.length) return padRadius;
+      padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);
+      return arc;
+    };
+    arc.startAngle = function(v) {
+      if (!arguments.length) return startAngle;
+      startAngle = d3_functor(v);
+      return arc;
+    };
+    arc.endAngle = function(v) {
+      if (!arguments.length) return endAngle;
+      endAngle = d3_functor(v);
+      return arc;
+    };
+    arc.padAngle = function(v) {
+      if (!arguments.length) return padAngle;
+      padAngle = d3_functor(v);
+      return arc;
+    };
+    arc.centroid = function() {
+      var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - halfπ;
+      return [ Math.cos(a) * r, Math.sin(a) * r ];
+    };
+    return arc;
+  };
+  var d3_svg_arcAuto = "auto";
+  function d3_svg_arcInnerRadius(d) {
+    return d.innerRadius;
+  }
+  function d3_svg_arcOuterRadius(d) {
+    return d.outerRadius;
+  }
+  function d3_svg_arcStartAngle(d) {
+    return d.startAngle;
+  }
+  function d3_svg_arcEndAngle(d) {
+    return d.endAngle;
+  }
+  function d3_svg_arcPadAngle(d) {
+    return d && d.padAngle;
+  }
+  function d3_svg_arcSweep(x0, y0, x1, y1) {
+    return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;
+  }
+  function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {
+    var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;
+    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;
+    return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ];
+  }
+  function d3_svg_line(projection) {
+    var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
+    function line(data) {
+      var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
+      function segment() {
+        segments.push("M", interpolate(projection(points), tension));
+      }
+      while (++i < n) {
+        if (defined.call(this, d = data[i], i)) {
+          points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
+        } else if (points.length) {
+          segment();
+          points = [];
+        }
+      }
+      if (points.length) segment();
+      return segments.length ? segments.join("") : null;
+    }
+    line.x = function(_) {
+      if (!arguments.length) return x;
+      x = _;
+      return line;
+    };
+    line.y = function(_) {
+      if (!arguments.length) return y;
+      y = _;
+      return line;
+    };
+    line.defined = function(_) {
+      if (!arguments.length) return defined;
+      defined = _;
+      return line;
+    };
+    line.interpolate = function(_) {
+      if (!arguments.length) return interpolateKey;
+      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
+      return line;
+    };
+    line.tension = function(_) {
+      if (!arguments.length) return tension;
+      tension = _;
+      return line;
+    };
+    return line;
+  }
+  d3.svg.line = function() {
+    return d3_svg_line(d3_identity);
+  };
+  var d3_svg_lineInterpolators = d3.map({
+    linear: d3_svg_lineLinear,
+    "linear-closed": d3_svg_lineLinearClosed,
+    step: d3_svg_lineStep,
+    "step-before": d3_svg_lineStepBefore,
+    "step-after": d3_svg_lineStepAfter,
+    basis: d3_svg_lineBasis,
+    "basis-open": d3_svg_lineBasisOpen,
+    "basis-closed": d3_svg_lineBasisClosed,
+    bundle: d3_svg_lineBundle,
+    cardinal: d3_svg_lineCardinal,
+    "cardinal-open": d3_svg_lineCardinalOpen,
+    "cardinal-closed": d3_svg_lineCardinalClosed,
+    monotone: d3_svg_lineMonotone
+  });
+  d3_svg_lineInterpolators.forEach(function(key, value) {
+    value.key = key;
+    value.closed = /-closed$/.test(key);
+  });
+  function d3_svg_lineLinear(points) {
+    return points.length > 1 ? points.join("L") : points + "Z";
+  }
+  function d3_svg_lineLinearClosed(points) {
+    return points.join("L") + "Z";
+  }
+  function d3_svg_lineStep(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("H", (p[0] + (p = points[i])[0]) / 2, "V", p[1]);
+    if (n > 1) path.push("H", p[0]);
+    return path.join("");
+  }
+  function d3_svg_lineStepBefore(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
+    return path.join("");
+  }
+  function d3_svg_lineStepAfter(points) {
+    var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
+    while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
+    return path.join("");
+  }
+  function d3_svg_lineCardinalOpen(points, tension) {
+    return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));
+  }
+  function d3_svg_lineCardinalClosed(points, tension) {
+    return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
+    points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
+  }
+  function d3_svg_lineCardinal(points, tension) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
+  }
+  function d3_svg_lineHermite(points, tangents) {
+    if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
+      return d3_svg_lineLinear(points);
+    }
+    var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
+    if (quad) {
+      path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
+      p0 = points[1];
+      pi = 2;
+    }
+    if (tangents.length > 1) {
+      t = tangents[1];
+      p = points[pi];
+      pi++;
+      path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
+      for (var i = 2; i < tangents.length; i++, pi++) {
+        p = points[pi];
+        t = tangents[i];
+        path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
+      }
+    }
+    if (quad) {
+      var lp = points[pi];
+      path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
+    }
+    return path;
+  }
+  function d3_svg_lineCardinalTangents(points, tension) {
+    var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
+    while (++i < n) {
+      p0 = p1;
+      p1 = p2;
+      p2 = points[i];
+      tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
+    }
+    return tangents;
+  }
+  function d3_svg_lineBasis(points) {
+    if (points.length < 3) return d3_svg_lineLinear(points);
+    var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0, "L", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
+    points.push(points[n - 1]);
+    while (++i <= n) {
+      pi = points[i];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    points.pop();
+    path.push("L", pi);
+    return path.join("");
+  }
+  function d3_svg_lineBasisOpen(points) {
+    if (points.length < 4) return d3_svg_lineLinear(points);
+    var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
+    while (++i < 3) {
+      pi = points[i];
+      px.push(pi[0]);
+      py.push(pi[1]);
+    }
+    path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
+    --i;
+    while (++i < n) {
+      pi = points[i];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    return path.join("");
+  }
+  function d3_svg_lineBasisClosed(points) {
+    var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
+    while (++i < 4) {
+      pi = points[i % n];
+      px.push(pi[0]);
+      py.push(pi[1]);
+    }
+    path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
+    --i;
+    while (++i < m) {
+      pi = points[i % n];
+      px.shift();
+      px.push(pi[0]);
+      py.shift();
+      py.push(pi[1]);
+      d3_svg_lineBasisBezier(path, px, py);
+    }
+    return path.join("");
+  }
+  function d3_svg_lineBundle(points, tension) {
+    var n = points.length - 1;
+    if (n) {
+      var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
+      while (++i <= n) {
+        p = points[i];
+        t = i / n;
+        p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
+        p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
+      }
+    }
+    return d3_svg_lineBasis(points);
+  }
+  function d3_svg_lineDot4(a, b) {
+    return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
+  }
+  var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
+  function d3_svg_lineBasisBezier(path, x, y) {
+    path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
+  }
+  function d3_svg_lineSlope(p0, p1) {
+    return (p1[1] - p0[1]) / (p1[0] - p0[0]);
+  }
+  function d3_svg_lineFiniteDifferences(points) {
+    var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
+    while (++i < j) {
+      m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
+    }
+    m[i] = d;
+    return m;
+  }
+  function d3_svg_lineMonotoneTangents(points) {
+    var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
+    while (++i < j) {
+      d = d3_svg_lineSlope(points[i], points[i + 1]);
+      if (abs(d) < ε) {
+        m[i] = m[i + 1] = 0;
+      } else {
+        a = m[i] / d;
+        b = m[i + 1] / d;
+        s = a * a + b * b;
+        if (s > 9) {
+          s = d * 3 / Math.sqrt(s);
+          m[i] = s * a;
+          m[i + 1] = s * b;
+        }
+      }
+    }
+    i = -1;
+    while (++i <= j) {
+      s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
+      tangents.push([ s || 0, m[i] * s || 0 ]);
+    }
+    return tangents;
+  }
+  function d3_svg_lineMonotone(points) {
+    return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
+  }
+  d3.svg.line.radial = function() {
+    var line = d3_svg_line(d3_svg_lineRadial);
+    line.radius = line.x, delete line.x;
+    line.angle = line.y, delete line.y;
+    return line;
+  };
+  function d3_svg_lineRadial(points) {
+    var point, i = -1, n = points.length, r, a;
+    while (++i < n) {
+      point = points[i];
+      r = point[0];
+      a = point[1] - halfπ;
+      point[0] = r * Math.cos(a);
+      point[1] = r * Math.sin(a);
+    }
+    return points;
+  }
+  function d3_svg_area(projection) {
+    var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
+    function area(data) {
+      var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
+        return x;
+      } : d3_functor(x1), fy1 = y0 === y1 ? function() {
+        return y;
+      } : d3_functor(y1), x, y;
+      function segment() {
+        segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
+      }
+      while (++i < n) {
+        if (defined.call(this, d = data[i], i)) {
+          points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
+          points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
+        } else if (points0.length) {
+          segment();
+          points0 = [];
+          points1 = [];
+        }
+      }
+      if (points0.length) segment();
+      return segments.length ? segments.join("") : null;
+    }
+    area.x = function(_) {
+      if (!arguments.length) return x1;
+      x0 = x1 = _;
+      return area;
+    };
+    area.x0 = function(_) {
+      if (!arguments.length) return x0;
+      x0 = _;
+      return area;
+    };
+    area.x1 = function(_) {
+      if (!arguments.length) return x1;
+      x1 = _;
+      return area;
+    };
+    area.y = function(_) {
+      if (!arguments.length) return y1;
+      y0 = y1 = _;
+      return area;
+    };
+    area.y0 = function(_) {
+      if (!arguments.length) return y0;
+      y0 = _;
+      return area;
+    };
+    area.y1 = function(_) {
+      if (!arguments.length) return y1;
+      y1 = _;
+      return area;
+    };
+    area.defined = function(_) {
+      if (!arguments.length) return defined;
+      defined = _;
+      return area;
+    };
+    area.interpolate = function(_) {
+      if (!arguments.length) return interpolateKey;
+      if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
+      interpolateReverse = interpolate.reverse || interpolate;
+      L = interpolate.closed ? "M" : "L";
+      return area;
+    };
+    area.tension = function(_) {
+      if (!arguments.length) return tension;
+      tension = _;
+      return area;
+    };
+    return area;
+  }
+  d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
+  d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
+  d3.svg.area = function() {
+    return d3_svg_area(d3_identity);
+  };
+  d3.svg.area.radial = function() {
+    var area = d3_svg_area(d3_svg_lineRadial);
+    area.radius = area.x, delete area.x;
+    area.innerRadius = area.x0, delete area.x0;
+    area.outerRadius = area.x1, delete area.x1;
+    area.angle = area.y, delete area.y;
+    area.startAngle = area.y0, delete area.y0;
+    area.endAngle = area.y1, delete area.y1;
+    return area;
+  };
+  d3.svg.chord = function() {
+    var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
+    function chord(d, i) {
+      var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
+      return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
+    }
+    function subgroup(self, f, d, i) {
+      var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) - halfπ, a1 = endAngle.call(self, subgroup, i) - halfπ;
+      return {
+        r: r,
+        a0: a0,
+        a1: a1,
+        p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
+        p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
+      };
+    }
+    function equals(a, b) {
+      return a.a0 == b.a0 && a.a1 == b.a1;
+    }
+    function arc(r, p, a) {
+      return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
+    }
+    function curve(r0, p0, r1, p1) {
+      return "Q 0,0 " + p1;
+    }
+    chord.radius = function(v) {
+      if (!arguments.length) return radius;
+      radius = d3_functor(v);
+      return chord;
+    };
+    chord.source = function(v) {
+      if (!arguments.length) return source;
+      source = d3_functor(v);
+      return chord;
+    };
+    chord.target = function(v) {
+      if (!arguments.length) return target;
+      target = d3_functor(v);
+      return chord;
+    };
+    chord.startAngle = function(v) {
+      if (!arguments.length) return startAngle;
+      startAngle = d3_functor(v);
+      return chord;
+    };
+    chord.endAngle = function(v) {
+      if (!arguments.length) return endAngle;
+      endAngle = d3_functor(v);
+      return chord;
+    };
+    return chord;
+  };
+  function d3_svg_chordRadius(d) {
+    return d.radius;
+  }
+  d3.svg.diagonal = function() {
+    var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
+    function diagonal(d, i) {
+      var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
+        x: p0.x,
+        y: m
+      }, {
+        x: p3.x,
+        y: m
+      }, p3 ];
+      p = p.map(projection);
+      return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
+    }
+    diagonal.source = function(x) {
+      if (!arguments.length) return source;
+      source = d3_functor(x);
+      return diagonal;
+    };
+    diagonal.target = function(x) {
+      if (!arguments.length) return target;
+      target = d3_functor(x);
+      return diagonal;
+    };
+    diagonal.projection = function(x) {
+      if (!arguments.length) return projection;
+      projection = x;
+      return diagonal;
+    };
+    return diagonal;
+  };
+  function d3_svg_diagonalProjection(d) {
+    return [ d.x, d.y ];
+  }
+  d3.svg.diagonal.radial = function() {
+    var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
+    diagonal.projection = function(x) {
+      return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
+    };
+    return diagonal;
+  };
+  function d3_svg_diagonalRadialProjection(projection) {
+    return function() {
+      var d = projection.apply(this, arguments), r = d[0], a = d[1] - halfπ;
+      return [ r * Math.cos(a), r * Math.sin(a) ];
+    };
+  }
+  d3.svg.symbol = function() {
+    var type = d3_svg_symbolType, size = d3_svg_symbolSize;
+    function symbol(d, i) {
+      return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
+    }
+    symbol.type = function(x) {
+      if (!arguments.length) return type;
+      type = d3_functor(x);
+      return symbol;
+    };
+    symbol.size = function(x) {
+      if (!arguments.length) return size;
+      size = d3_functor(x);
+      return symbol;
+    };
+    return symbol;
+  };
+  function d3_svg_symbolSize() {
+    return 64;
+  }
+  function d3_svg_symbolType() {
+    return "circle";
+  }
+  function d3_svg_symbolCircle(size) {
+    var r = Math.sqrt(size / π);
+    return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
+  }
+  var d3_svg_symbols = d3.map({
+    circle: d3_svg_symbolCircle,
+    cross: function(size) {
+      var r = Math.sqrt(size / 5) / 2;
+      return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
+    },
+    diamond: function(size) {
+      var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
+      return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
+    },
+    square: function(size) {
+      var r = Math.sqrt(size) / 2;
+      return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
+    },
+    "triangle-down": function(size) {
+      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
+      return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
+    },
+    "triangle-up": function(size) {
+      var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
+      return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
+    }
+  });
+  d3.svg.symbolTypes = d3_svg_symbols.keys();
+  var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
+  d3_selectionPrototype.transition = function(name) {
+    var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name), subgroups = [], subgroup, node, transition = d3_transitionInherit || {
+      time: Date.now(),
+      ease: d3_ease_cubicInOut,
+      delay: 0,
+      duration: 250
+    };
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);
+        subgroup.push(node);
+      }
+    }
+    return d3_transition(subgroups, ns, id);
+  };
+  d3_selectionPrototype.interrupt = function(name) {
+    return this.each(name == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name)));
+  };
+  var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());
+  function d3_selection_interruptNS(ns) {
+    return function() {
+      var lock, activeId, active;
+      if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {
+        active.timer.c = null;
+        active.timer.t = NaN;
+        if (--lock.count) delete lock[activeId]; else delete this[ns];
+        lock.active += .5;
+        active.event && active.event.interrupt.call(this, this.__data__, active.index);
+      }
+    };
+  }
+  function d3_transition(groups, ns, id) {
+    d3_subclass(groups, d3_transitionPrototype);
+    groups.namespace = ns;
+    groups.id = id;
+    return groups;
+  }
+  var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;
+  d3_transitionPrototype.call = d3_selectionPrototype.call;
+  d3_transitionPrototype.empty = d3_selectionPrototype.empty;
+  d3_transitionPrototype.node = d3_selectionPrototype.node;
+  d3_transitionPrototype.size = d3_selectionPrototype.size;
+  d3.transition = function(selection, name) {
+    return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name) : selection : d3.selection().transition(selection);
+  };
+  d3.transition.prototype = d3_transitionPrototype;
+  d3_transitionPrototype.select = function(selector) {
+    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;
+    selector = d3_selection_selector(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {
+          if ("__data__" in node) subnode.__data__ = node.__data__;
+          d3_transitionNode(subnode, i, ns, id, node[ns][id]);
+          subgroup.push(subnode);
+        } else {
+          subgroup.push(null);
+        }
+      }
+    }
+    return d3_transition(subgroups, ns, id);
+  };
+  d3_transitionPrototype.selectAll = function(selector) {
+    var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;
+    selector = d3_selection_selectorAll(selector);
+    for (var j = -1, m = this.length; ++j < m; ) {
+      for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
+        if (node = group[i]) {
+          transition = node[ns][id];
+          subnodes = selector.call(node, node.__data__, i, j);
+          subgroups.push(subgroup = []);
+          for (var k = -1, o = subnodes.length; ++k < o; ) {
+            if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);
+            subgroup.push(subnode);
+          }
+        }
+      }
+    }
+    return d3_transition(subgroups, ns, id);
+  };
+  d3_transitionPrototype.filter = function(filter) {
+    var subgroups = [], subgroup, group, node;
+    if (typeof filter !== "function") filter = d3_selection_filter(filter);
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {
+          subgroup.push(node);
+        }
+      }
+    }
+    return d3_transition(subgroups, this.namespace, this.id);
+  };
+  d3_transitionPrototype.tween = function(name, tween) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 2) return this.node()[ns][id].tween.get(name);
+    return d3_selection_each(this, tween == null ? function(node) {
+      node[ns][id].tween.remove(name);
+    } : function(node) {
+      node[ns][id].tween.set(name, tween);
+    });
+  };
+  function d3_transition_tween(groups, name, value, tween) {
+    var id = groups.id, ns = groups.namespace;
+    return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
+      node[ns][id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
+    } : (value = tween(value), function(node) {
+      node[ns][id].tween.set(name, value);
+    }));
+  }
+  d3_transitionPrototype.attr = function(nameNS, value) {
+    if (arguments.length < 2) {
+      for (value in nameNS) this.attr(value, nameNS[value]);
+      return this;
+    }
+    var interpolate = nameNS == "transform" ? d3_interpolateTransform : d3_interpolate, name = d3.ns.qualify(nameNS);
+    function attrNull() {
+      this.removeAttribute(name);
+    }
+    function attrNullNS() {
+      this.removeAttributeNS(name.space, name.local);
+    }
+    function attrTween(b) {
+      return b == null ? attrNull : (b += "", function() {
+        var a = this.getAttribute(name), i;
+        return a !== b && (i = interpolate(a, b), function(t) {
+          this.setAttribute(name, i(t));
+        });
+      });
+    }
+    function attrTweenNS(b) {
+      return b == null ? attrNullNS : (b += "", function() {
+        var a = this.getAttributeNS(name.space, name.local), i;
+        return a !== b && (i = interpolate(a, b), function(t) {
+          this.setAttributeNS(name.space, name.local, i(t));
+        });
+      });
+    }
+    return d3_transition_tween(this, "attr." + nameNS, value, name.local ? attrTweenNS : attrTween);
+  };
+  d3_transitionPrototype.attrTween = function(nameNS, tween) {
+    var name = d3.ns.qualify(nameNS);
+    function attrTween(d, i) {
+      var f = tween.call(this, d, i, this.getAttribute(name));
+      return f && function(t) {
+        this.setAttribute(name, f(t));
+      };
+    }
+    function attrTweenNS(d, i) {
+      var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
+      return f && function(t) {
+        this.setAttributeNS(name.space, name.local, f(t));
+      };
+    }
+    return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
+  };
+  d3_transitionPrototype.style = function(name, value, priority) {
+    var n = arguments.length;
+    if (n < 3) {
+      if (typeof name !== "string") {
+        if (n < 2) value = "";
+        for (priority in name) this.style(priority, name[priority], value);
+        return this;
+      }
+      priority = "";
+    }
+    function styleNull() {
+      this.style.removeProperty(name);
+    }
+    function styleString(b) {
+      return b == null ? styleNull : (b += "", function() {
+        var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name), i;
+        return a !== b && (i = d3_interpolate(a, b), function(t) {
+          this.style.setProperty(name, i(t), priority);
+        });
+      });
+    }
+    return d3_transition_tween(this, "style." + name, value, styleString);
+  };
+  d3_transitionPrototype.styleTween = function(name, tween, priority) {
+    if (arguments.length < 3) priority = "";
+    function styleTween(d, i) {
+      var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name));
+      return f && function(t) {
+        this.style.setProperty(name, f(t), priority);
+      };
+    }
+    return this.tween("style." + name, styleTween);
+  };
+  d3_transitionPrototype.text = function(value) {
+    return d3_transition_tween(this, "text", value, d3_transition_text);
+  };
+  function d3_transition_text(b) {
+    if (b == null) b = "";
+    return function() {
+      this.textContent = b;
+    };
+  }
+  d3_transitionPrototype.remove = function() {
+    var ns = this.namespace;
+    return this.each("end.transition", function() {
+      var p;
+      if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
+    });
+  };
+  d3_transitionPrototype.ease = function(value) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 1) return this.node()[ns][id].ease;
+    if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
+    return d3_selection_each(this, function(node) {
+      node[ns][id].ease = value;
+    });
+  };
+  d3_transitionPrototype.delay = function(value) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 1) return this.node()[ns][id].delay;
+    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
+      node[ns][id].delay = +value.call(node, node.__data__, i, j);
+    } : (value = +value, function(node) {
+      node[ns][id].delay = value;
+    }));
+  };
+  d3_transitionPrototype.duration = function(value) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 1) return this.node()[ns][id].duration;
+    return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
+      node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));
+    } : (value = Math.max(1, value), function(node) {
+      node[ns][id].duration = value;
+    }));
+  };
+  d3_transitionPrototype.each = function(type, listener) {
+    var id = this.id, ns = this.namespace;
+    if (arguments.length < 2) {
+      var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
+      try {
+        d3_transitionInheritId = id;
+        d3_selection_each(this, function(node, i, j) {
+          d3_transitionInherit = node[ns][id];
+          type.call(node, node.__data__, i, j);
+        });
+      } finally {
+        d3_transitionInherit = inherit;
+        d3_transitionInheritId = inheritId;
+      }
+    } else {
+      d3_selection_each(this, function(node) {
+        var transition = node[ns][id];
+        (transition.event || (transition.event = d3.dispatch("start", "end", "interrupt"))).on(type, listener);
+      });
+    }
+    return this;
+  };
+  d3_transitionPrototype.transition = function() {
+    var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;
+    for (var j = 0, m = this.length; j < m; j++) {
+      subgroups.push(subgroup = []);
+      for (var group = this[j], i = 0, n = group.length; i < n; i++) {
+        if (node = group[i]) {
+          transition = node[ns][id0];
+          d3_transitionNode(node, i, ns, id1, {
+            time: transition.time,
+            ease: transition.ease,
+            delay: transition.delay + transition.duration,
+            duration: transition.duration
+          });
+        }
+        subgroup.push(node);
+      }
+    }
+    return d3_transition(subgroups, ns, id1);
+  };
+  function d3_transitionNamespace(name) {
+    return name == null ? "__transition__" : "__transition_" + name + "__";
+  }
+  function d3_transitionNode(node, i, ns, id, inherit) {
+    var lock = node[ns] || (node[ns] = {
+      active: 0,
+      count: 0
+    }), transition = lock[id], time, timer, duration, ease, tweens;
+    function schedule(elapsed) {
+      var delay = transition.delay;
+      timer.t = delay + time;
+      if (delay <= elapsed) return start(elapsed - delay);
+      timer.c = start;
+    }
+    function start(elapsed) {
+      var activeId = lock.active, active = lock[activeId];
+      if (active) {
+        active.timer.c = null;
+        active.timer.t = NaN;
+        --lock.count;
+        delete lock[activeId];
+        active.event && active.event.interrupt.call(node, node.__data__, active.index);
+      }
+      for (var cancelId in lock) {
+        if (+cancelId < id) {
+          var cancel = lock[cancelId];
+          cancel.timer.c = null;
+          cancel.timer.t = NaN;
+          --lock.count;
+          delete lock[cancelId];
+        }
+      }
+      timer.c = tick;
+      d3_timer(function() {
+        if (timer.c && tick(elapsed || 1)) {
+          timer.c = null;
+          timer.t = NaN;
+        }
+        return 1;
+      }, 0, time);
+      lock.active = id;
+      transition.event && transition.event.start.call(node, node.__data__, i);
+      tweens = [];
+      transition.tween.forEach(function(key, value) {
+        if (value = value.call(node, node.__data__, i)) {
+          tweens.push(value);
+        }
+      });
+      ease = transition.ease;
+      duration = transition.duration;
+    }
+    function tick(elapsed) {
+      var t = elapsed / duration, e = ease(t), n = tweens.length;
+      while (n > 0) {
+        tweens[--n].call(node, e);
+      }
+      if (t >= 1) {
+        transition.event && transition.event.end.call(node, node.__data__, i);
+        if (--lock.count) delete lock[id]; else delete node[ns];
+        return 1;
+      }
+    }
+    if (!transition) {
+      time = inherit.time;
+      timer = d3_timer(schedule, 0, time);
+      transition = lock[id] = {
+        tween: new d3_Map(),
+        time: time,
+        timer: timer,
+        delay: inherit.delay,
+        duration: inherit.duration,
+        ease: inherit.ease,
+        index: i
+      };
+      inherit = null;
+      ++lock.count;
+    }
+  }
+  d3.svg.axis = function() {
+    var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_;
+    function axis(g) {
+      g.each(function() {
+        var g = d3.select(this);
+        var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();
+        var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g.selectAll(".tick").data(ticks, scale1), tickEnter = tick.enter().insert("g", ".domain").attr("class", "tick").style("opacity", ε), tickExit = d3.transition(tick.exit()).style("opacity", ε).remove(), tickUpdate = d3.transition(tick.order()).style("opacity", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;
+        var range = d3_scaleRange(scale1), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
+        d3.transition(path));
+        tickEnter.append("line");
+        tickEnter.append("text");
+        var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text"), sign = orient === "top" || orient === "left" ? -1 : 1, x1, x2, y1, y2;
+        if (orient === "bottom" || orient === "top") {
+          tickTransform = d3_svg_axisX, x1 = "x", y1 = "y", x2 = "x2", y2 = "y2";
+          text.attr("dy", sign < 0 ? "0em" : ".71em").style("text-anchor", "middle");
+          pathUpdate.attr("d", "M" + range[0] + "," + sign * outerTickSize + "V0H" + range[1] + "V" + sign * outerTickSize);
+        } else {
+          tickTransform = d3_svg_axisY, x1 = "y", y1 = "x", x2 = "y2", y2 = "x2";
+          text.attr("dy", ".32em").style("text-anchor", sign < 0 ? "end" : "start");
+          pathUpdate.attr("d", "M" + sign * outerTickSize + "," + range[0] + "H0V" + range[1] + "H" + sign * outerTickSize);
+        }
+        lineEnter.attr(y2, sign * innerTickSize);
+        textEnter.attr(y1, sign * tickSpacing);
+        lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);
+        textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);
+        if (scale1.rangeBand) {
+          var x = scale1, dx = x.rangeBand() / 2;
+          scale0 = scale1 = function(d) {
+            return x(d) + dx;
+          };
+        } else if (scale0.rangeBand) {
+          scale0 = scale1;
+        } else {
+          tickExit.call(tickTransform, scale1, scale0);
+        }
+        tickEnter.call(tickTransform, scale0, scale1);
+        tickUpdate.call(tickTransform, scale1, scale1);
+      });
+    }
+    axis.scale = function(x) {
+      if (!arguments.length) return scale;
+      scale = x;
+      return axis;
+    };
+    axis.orient = function(x) {
+      if (!arguments.length) return orient;
+      orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
+      return axis;
+    };
+    axis.ticks = function() {
+      if (!arguments.length) return tickArguments_;
+      tickArguments_ = d3_array(arguments);
+      return axis;
+    };
+    axis.tickValues = function(x) {
+      if (!arguments.length) return tickValues;
+      tickValues = x;
+      return axis;
+    };
+    axis.tickFormat = function(x) {
+      if (!arguments.length) return tickFormat_;
+      tickFormat_ = x;
+      return axis;
+    };
+    axis.tickSize = function(x) {
+      var n = arguments.length;
+      if (!n) return innerTickSize;
+      innerTickSize = +x;
+      outerTickSize = +arguments[n - 1];
+      return axis;
+    };
+    axis.innerTickSize = function(x) {
+      if (!arguments.length) return innerTickSize;
+      innerTickSize = +x;
+      return axis;
+    };
+    axis.outerTickSize = function(x) {
+      if (!arguments.length) return outerTickSize;
+      outerTickSize = +x;
+      return axis;
+    };
+    axis.tickPadding = function(x) {
+      if (!arguments.length) return tickPadding;
+      tickPadding = +x;
+      return axis;
+    };
+    axis.tickSubdivide = function() {
+      return arguments.length && axis;
+    };
+    return axis;
+  };
+  var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
+    top: 1,
+    right: 1,
+    bottom: 1,
+    left: 1
+  };
+  function d3_svg_axisX(selection, x0, x1) {
+    selection.attr("transform", function(d) {
+      var v0 = x0(d);
+      return "translate(" + (isFinite(v0) ? v0 : x1(d)) + ",0)";
+    });
+  }
+  function d3_svg_axisY(selection, y0, y1) {
+    selection.attr("transform", function(d) {
+      var v0 = y0(d);
+      return "translate(0," + (isFinite(v0) ? v0 : y1(d)) + ")";
+    });
+  }
+  d3.svg.brush = function() {
+    var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, xExtent = [ 0, 0 ], yExtent = [ 0, 0 ], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];
+    function brush(g) {
+      g.each(function() {
+        var g = d3.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
+        var background = g.selectAll(".background").data([ 0 ]);
+        background.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
+        g.selectAll(".extent").data([ 0 ]).enter().append("rect").attr("class", "extent").style("cursor", "move");
+        var resize = g.selectAll(".resize").data(resizes, d3_identity);
+        resize.exit().remove();
+        resize.enter().append("g").attr("class", function(d) {
+          return "resize " + d;
+        }).style("cursor", function(d) {
+          return d3_svg_brushCursor[d];
+        }).append("rect").attr("x", function(d) {
+          return /[ew]$/.test(d) ? -3 : null;
+        }).attr("y", function(d) {
+          return /^[ns]/.test(d) ? -3 : null;
+        }).attr("width", 6).attr("height", 6).style("visibility", "hidden");
+        resize.style("display", brush.empty() ? "none" : null);
+        var gUpdate = d3.transition(g), backgroundUpdate = d3.transition(background), range;
+        if (x) {
+          range = d3_scaleRange(x);
+          backgroundUpdate.attr("x", range[0]).attr("width", range[1] - range[0]);
+          redrawX(gUpdate);
+        }
+        if (y) {
+          range = d3_scaleRange(y);
+          backgroundUpdate.attr("y", range[0]).attr("height", range[1] - range[0]);
+          redrawY(gUpdate);
+        }
+        redraw(gUpdate);
+      });
+    }
+    brush.event = function(g) {
+      g.each(function() {
+        var event_ = event.of(this, arguments), extent1 = {
+          x: xExtent,
+          y: yExtent,
+          i: xExtentDomain,
+          j: yExtentDomain
+        }, extent0 = this.__chart__ || extent1;
+        this.__chart__ = extent1;
+        if (d3_transitionInheritId) {
+          d3.select(this).transition().each("start.brush", function() {
+            xExtentDomain = extent0.i;
+            yExtentDomain = extent0.j;
+            xExtent = extent0.x;
+            yExtent = extent0.y;
+            event_({
+              type: "brushstart"
+            });
+          }).tween("brush:brush", function() {
+            var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);
+            xExtentDomain = yExtentDomain = null;
+            return function(t) {
+              xExtent = extent1.x = xi(t);
+              yExtent = extent1.y = yi(t);
+              event_({
+                type: "brush",
+                mode: "resize"
+              });
+            };
+          }).each("end.brush", function() {
+            xExtentDomain = extent1.i;
+            yExtentDomain = extent1.j;
+            event_({
+              type: "brush",
+              mode: "resize"
+            });
+            event_({
+              type: "brushend"
+            });
+          });
+        } else {
+          event_({
+            type: "brushstart"
+          });
+          event_({
+            type: "brush",
+            mode: "resize"
+          });
+          event_({
+            type: "brushend"
+          });
+        }
+      });
+    };
+    function redraw(g) {
+      g.selectAll(".resize").attr("transform", function(d) {
+        return "translate(" + xExtent[+/e$/.test(d)] + "," + yExtent[+/^s/.test(d)] + ")";
+      });
+    }
+    function redrawX(g) {
+      g.select(".extent").attr("x", xExtent[0]);
+      g.selectAll(".extent,.n>rect,.s>rect").attr("width", xExtent[1] - xExtent[0]);
+    }
+    function redrawY(g) {
+      g.select(".extent").attr("y", yExtent[0]);
+      g.selectAll(".extent,.e>rect,.w>rect").attr("height", yExtent[1] - yExtent[0]);
+    }
+    function brushstart() {
+      var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;
+      var w = d3.select(d3_window(target)).on("keydown.brush", keydown).on("keyup.brush", keyup);
+      if (d3.event.changedTouches) {
+        w.on("touchmove.brush", brushmove).on("touchend.brush", brushend);
+      } else {
+        w.on("mousemove.brush", brushmove).on("mouseup.brush", brushend);
+      }
+      g.interrupt().selectAll("*").interrupt();
+      if (dragging) {
+        origin[0] = xExtent[0] - origin[0];
+        origin[1] = yExtent[0] - origin[1];
+      } else if (resizing) {
+        var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
+        offset = [ xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1] ];
+        origin[0] = xExtent[ex];
+        origin[1] = yExtent[ey];
+      } else if (d3.event.altKey) center = origin.slice();
+      g.style("pointer-events", "none").selectAll(".resize").style("display", null);
+      d3.select("body").style("cursor", eventTarget.style("cursor"));
+      event_({
+        type: "brushstart"
+      });
+      brushmove();
+      function keydown() {
+        if (d3.event.keyCode == 32) {
+          if (!dragging) {
+            center = null;
+            origin[0] -= xExtent[1];
+            origin[1] -= yExtent[1];
+            dragging = 2;
+          }
+          d3_eventPreventDefault();
+        }
+      }
+      function keyup() {
+        if (d3.event.keyCode == 32 && dragging == 2) {
+          origin[0] += xExtent[1];
+          origin[1] += yExtent[1];
+          dragging = 0;
+          d3_eventPreventDefault();
+        }
+      }
+      function brushmove() {
+        var point = d3.mouse(target), moved = false;
+        if (offset) {
+          point[0] += offset[0];
+          point[1] += offset[1];
+        }
+        if (!dragging) {
+          if (d3.event.altKey) {
+            if (!center) center = [ (xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2 ];
+            origin[0] = xExtent[+(point[0] < center[0])];
+            origin[1] = yExtent[+(point[1] < center[1])];
+          } else center = null;
+        }
+        if (resizingX && move1(point, x, 0)) {
+          redrawX(g);
+          moved = true;
+        }
+        if (resizingY && move1(point, y, 1)) {
+          redrawY(g);
+          moved = true;
+        }
+        if (moved) {
+          redraw(g);
+          event_({
+            type: "brush",
+            mode: dragging ? "move" : "resize"
+          });
+        }
+      }
+      function move1(point, scale, i) {
+        var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;
+        if (dragging) {
+          r0 -= position;
+          r1 -= size + position;
+        }
+        min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];
+        if (dragging) {
+          max = (min += position) + size;
+        } else {
+          if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
+          if (position < min) {
+            max = min;
+            min = position;
+          } else {
+            max = position;
+          }
+        }
+        if (extent[0] != min || extent[1] != max) {
+          if (i) yExtentDomain = null; else xExtentDomain = null;
+          extent[0] = min;
+          extent[1] = max;
+          return true;
+        }
+      }
+      function brushend() {
+        brushmove();
+        g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
+        d3.select("body").style("cursor", null);
+        w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
+        dragRestore();
+        event_({
+          type: "brushend"
+        });
+      }
+    }
+    brush.x = function(z) {
+      if (!arguments.length) return x;
+      x = z;
+      resizes = d3_svg_brushResizes[!x << 1 | !y];
+      return brush;
+    };
+    brush.y = function(z) {
+      if (!arguments.length) return y;
+      y = z;
+      resizes = d3_svg_brushResizes[!x << 1 | !y];
+      return brush;
+    };
+    brush.clamp = function(z) {
+      if (!arguments.length) return x && y ? [ xClamp, yClamp ] : x ? xClamp : y ? yClamp : null;
+      if (x && y) xClamp = !!z[0], yClamp = !!z[1]; else if (x) xClamp = !!z; else if (y) yClamp = !!z;
+      return brush;
+    };
+    brush.extent = function(z) {
+      var x0, x1, y0, y1, t;
+      if (!arguments.length) {
+        if (x) {
+          if (xExtentDomain) {
+            x0 = xExtentDomain[0], x1 = xExtentDomain[1];
+          } else {
+            x0 = xExtent[0], x1 = xExtent[1];
+            if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
+            if (x1 < x0) t = x0, x0 = x1, x1 = t;
+          }
+        }
+        if (y) {
+          if (yExtentDomain) {
+            y0 = yExtentDomain[0], y1 = yExtentDomain[1];
+          } else {
+            y0 = yExtent[0], y1 = yExtent[1];
+            if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
+            if (y1 < y0) t = y0, y0 = y1, y1 = t;
+          }
+        }
+        return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
+      }
+      if (x) {
+        x0 = z[0], x1 = z[1];
+        if (y) x0 = x0[0], x1 = x1[0];
+        xExtentDomain = [ x0, x1 ];
+        if (x.invert) x0 = x(x0), x1 = x(x1);
+        if (x1 < x0) t = x0, x0 = x1, x1 = t;
+        if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [ x0, x1 ];
+      }
+      if (y) {
+        y0 = z[0], y1 = z[1];
+        if (x) y0 = y0[1], y1 = y1[1];
+        yExtentDomain = [ y0, y1 ];
+        if (y.invert) y0 = y(y0), y1 = y(y1);
+        if (y1 < y0) t = y0, y0 = y1, y1 = t;
+        if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [ y0, y1 ];
+      }
+      return brush;
+    };
+    brush.clear = function() {
+      if (!brush.empty()) {
+        xExtent = [ 0, 0 ], yExtent = [ 0, 0 ];
+        xExtentDomain = yExtentDomain = null;
+      }
+      return brush;
+    };
+    brush.empty = function() {
+      return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];
+    };
+    return d3.rebind(brush, event, "on");
+  };
+  var d3_svg_brushCursor = {
+    n: "ns-resize",
+    e: "ew-resize",
+    s: "ns-resize",
+    w: "ew-resize",
+    nw: "nwse-resize",
+    ne: "nesw-resize",
+    se: "nwse-resize",
+    sw: "nesw-resize"
+  };
+  var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
+  var d3_time_format = d3_time.format = d3_locale_enUS.timeFormat;
+  var d3_time_formatUtc = d3_time_format.utc;
+  var d3_time_formatIso = d3_time_formatUtc("%Y-%m-%dT%H:%M:%S.%LZ");
+  d3_time_format.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? d3_time_formatIsoNative : d3_time_formatIso;
+  function d3_time_formatIsoNative(date) {
+    return date.toISOString();
+  }
+  d3_time_formatIsoNative.parse = function(string) {
+    var date = new Date(string);
+    return isNaN(date) ? null : date;
+  };
+  d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
+  d3_time.second = d3_time_interval(function(date) {
+    return new d3_date(Math.floor(date / 1e3) * 1e3);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 1e3);
+  }, function(date) {
+    return date.getSeconds();
+  });
+  d3_time.seconds = d3_time.second.range;
+  d3_time.seconds.utc = d3_time.second.utc.range;
+  d3_time.minute = d3_time_interval(function(date) {
+    return new d3_date(Math.floor(date / 6e4) * 6e4);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 6e4);
+  }, function(date) {
+    return date.getMinutes();
+  });
+  d3_time.minutes = d3_time.minute.range;
+  d3_time.minutes.utc = d3_time.minute.utc.range;
+  d3_time.hour = d3_time_interval(function(date) {
+    var timezone = date.getTimezoneOffset() / 60;
+    return new d3_date((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
+  }, function(date, offset) {
+    date.setTime(date.getTime() + Math.floor(offset) * 36e5);
+  }, function(date) {
+    return date.getHours();
+  });
+  d3_time.hours = d3_time.hour.range;
+  d3_time.hours.utc = d3_time.hour.utc.range;
+  d3_time.month = d3_time_interval(function(date) {
+    date = d3_time.day(date);
+    date.setDate(1);
+    return date;
+  }, function(date, offset) {
+    date.setMonth(date.getMonth() + offset);
+  }, function(date) {
+    return date.getMonth();
+  });
+  d3_time.months = d3_time.month.range;
+  d3_time.months.utc = d3_time.month.utc.range;
+  function d3_time_scale(linear, methods, format) {
+    function scale(x) {
+      return linear(x);
+    }
+    scale.invert = function(x) {
+      return d3_time_scaleDate(linear.invert(x));
+    };
+    scale.domain = function(x) {
+      if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
+      linear.domain(x);
+      return scale;
+    };
+    function tickMethod(extent, count) {
+      var span = extent[1] - extent[0], target = span / count, i = d3.bisect(d3_time_scaleSteps, target);
+      return i == d3_time_scaleSteps.length ? [ methods.year, d3_scale_linearTickRange(extent.map(function(d) {
+        return d / 31536e6;
+      }), count)[2] ] : !i ? [ d3_time_scaleMilliseconds, d3_scale_linearTickRange(extent, count)[2] ] : methods[target / d3_time_scaleSteps[i - 1] < d3_time_scaleSteps[i] / target ? i - 1 : i];
+    }
+    scale.nice = function(interval, skip) {
+      var domain = scale.domain(), extent = d3_scaleExtent(domain), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" && tickMethod(extent, interval);
+      if (method) interval = method[0], skip = method[1];
+      function skipped(date) {
+        return !isNaN(date) && !interval.range(date, d3_time_scaleDate(+date + 1), skip).length;
+      }
+      return scale.domain(d3_scale_nice(domain, skip > 1 ? {
+        floor: function(date) {
+          while (skipped(date = interval.floor(date))) date = d3_time_scaleDate(date - 1);
+          return date;
+        },
+        ceil: function(date) {
+          while (skipped(date = interval.ceil(date))) date = d3_time_scaleDate(+date + 1);
+          return date;
+        }
+      } : interval));
+    };
+    scale.ticks = function(interval, skip) {
+      var extent = d3_scaleExtent(scale.domain()), method = interval == null ? tickMethod(extent, 10) : typeof interval === "number" ? tickMethod(extent, interval) : !interval.range && [ {
+        range: interval
+      }, skip ];
+      if (method) interval = method[0], skip = method[1];
+      return interval.range(extent[0], d3_time_scaleDate(+extent[1] + 1), skip < 1 ? 1 : skip);
+    };
+    scale.tickFormat = function() {
+      return format;
+    };
+    scale.copy = function() {
+      return d3_time_scale(linear.copy(), methods, format);
+    };
+    return d3_scale_linearRebind(scale, linear);
+  }
+  function d3_time_scaleDate(t) {
+    return new Date(t);
+  }
+  var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
+  var d3_time_scaleLocalMethods = [ [ d3_time.second, 1 ], [ d3_time.second, 5 ], [ d3_time.second, 15 ], [ d3_time.second, 30 ], [ d3_time.minute, 1 ], [ d3_time.minute, 5 ], [ d3_time.minute, 15 ], [ d3_time.minute, 30 ], [ d3_time.hour, 1 ], [ d3_time.hour, 3 ], [ d3_time.hour, 6 ], [ d3_time.hour, 12 ], [ d3_time.day, 1 ], [ d3_time.day, 2 ], [ d3_time.week, 1 ], [ d3_time.month, 1 ], [ d3_time.month, 3 ], [ d3_time.year, 1 ] ];
+  var d3_time_scaleLocalFormat = d3_time_format.multi([ [ ".%L", function(d) {
+    return d.getMilliseconds();
+  } ], [ ":%S", function(d) {
+    return d.getSeconds();
+  } ], [ "%I:%M", function(d) {
+    return d.getMinutes();
+  } ], [ "%I %p", function(d) {
+    return d.getHours();
+  } ], [ "%a %d", function(d) {
+    return d.getDay() && d.getDate() != 1;
+  } ], [ "%b %d", function(d) {
+    return d.getDate() != 1;
+  } ], [ "%B", function(d) {
+    return d.getMonth();
+  } ], [ "%Y", d3_true ] ]);
+  var d3_time_scaleMilliseconds = {
+    range: function(start, stop, step) {
+      return d3.range(Math.ceil(start / step) * step, +stop, step).map(d3_time_scaleDate);
+    },
+    floor: d3_identity,
+    ceil: d3_identity
+  };
+  d3_time_scaleLocalMethods.year = d3_time.year;
+  d3_time.scale = function() {
+    return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
+  };
+  var d3_time_scaleUtcMethods = d3_time_scaleLocalMethods.map(function(m) {
+    return [ m[0].utc, m[1] ];
+  });
+  var d3_time_scaleUtcFormat = d3_time_formatUtc.multi([ [ ".%L", function(d) {
+    return d.getUTCMilliseconds();
+  } ], [ ":%S", function(d) {
+    return d.getUTCSeconds();
+  } ], [ "%I:%M", function(d) {
+    return d.getUTCMinutes();
+  } ], [ "%I %p", function(d) {
+    return d.getUTCHours();
+  } ], [ "%a %d", function(d) {
+    return d.getUTCDay() && d.getUTCDate() != 1;
+  } ], [ "%b %d", function(d) {
+    return d.getUTCDate() != 1;
+  } ], [ "%B", function(d) {
+    return d.getUTCMonth();
+  } ], [ "%Y", d3_true ] ]);
+  d3_time_scaleUtcMethods.year = d3_time.year.utc;
+  d3_time.scale.utc = function() {
+    return d3_time_scale(d3.scale.linear(), d3_time_scaleUtcMethods, d3_time_scaleUtcFormat);
+  };
+  d3.text = d3_xhrType(function(request) {
+    return request.responseText;
+  });
+  d3.json = function(url, callback) {
+    return d3_xhr(url, "application/json", d3_json, callback);
+  };
+  function d3_json(request) {
+    return JSON.parse(request.responseText);
+  }
+  d3.html = function(url, callback) {
+    return d3_xhr(url, "text/html", d3_html, callback);
+  };
+  function d3_html(request) {
+    var range = d3_document.createRange();
+    range.selectNode(d3_document.body);
+    return range.createContextualFragment(request.responseText);
+  }
+  d3.xml = d3_xhrType(function(request) {
+    return request.responseXML;
+  });
+  if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; else this.d3 = d3;
+}();
\ No newline at end of file
diff --git a/pagure/static/vendor/d3/d3.v3.min.js b/pagure/static/vendor/d3/d3.v3.min.js
new file mode 100644
index 0000000..1664873
--- /dev/null
+++ b/pagure/static/vendor/d3/d3.v3.min.js
@@ -0,0 +1,5 @@
+!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new c;return t.on=function(t,i){var u,o=r.get(t);return arguments.length<2?o&&o.on:(o&&(o.on=null,e=e.slice(0,u=e.indexOf(o)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function S(){ao.event.preventDefault()}function k(){for(var n,t=ao.event;n=t.sourceEvent;)t=n;return t}function N(n){for(var t=new _,e=0,r=arguments.length;++e<r;)t[arguments[e]]=w(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=ao.event;i.target=n,ao.event=i,t[i.type].apply(e,r)}finally{ao.event=u}}},t}function E(n){return ko(n,Co),n}function A(n){return"function"==typeof n?n:function(){return No(n,this)}}function C(n){return"function"==typeof n?n:function(){return Eo(n,this)}}function z(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function i(){this.setAttribute(n,t)}function u(){this.setAttributeNS(n.space,n.local,t)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=ao.ns.qualify(n),null==t?n.local?r:e:"function"==typeof t?n.local?a:o:n.local?u:i}function L(n){return n.trim().replace(/\s+/g," ")}function q(n){return new RegExp("(?:^|\\s+)"+ao.requote(n)+"(?:\\s+|$)","g")}function T(n){return(n+"").trim().split(/^|\s+/)}function R(n,t){function e(){for(var e=-1;++e<i;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<i;)n[e](this,r)}n=T(n).map(D);var i=n.length;return"function"==typeof t?r:e}function D(n){var t=q(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute("class")||"";r?(t.lastIndex=0,t.test(i)||e.setAttribute("class",L(i+" "+n))):e.setAttribute("class",L(i.replace(t," ")))}}function P(n,t,e){function r(){this.style.removeProperty(n)}function i(){this.style.setProperty(n,t,e)}function u(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:"function"==typeof t?u:i}function U(n,t){function e(){delete this[n]}function r(){this[n]=t}function i(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:"function"==typeof t?i:r}function j(n){function t(){var t=this.ownerDocument,e=this.namespaceURI;return e===zo&&t.documentElement.namespaceURI===zo?t.createElement(n):t.createElementNS(e,n)}function e(){return this.ownerDocument.createElementNS(n.space,n.local)}return"function"==typeof n?n:(n=ao.ns.qualify(n)).local?e:t}function F(){var n=this.parentNode;n&&n.removeChild(this)}function H(n){return{__data__:n}}function O(n){return function(){return Ao(this,n)}}function I(n){return arguments.length||(n=e),function(t,e){return t&&e?n(t.__data__,e.__data__):!t-!e}}function Y(n,t){for(var e=0,r=n.length;r>e;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t<l;);return o}}function X(n,t,e){function r(){var t=this[o];t&&(this.removeEventListener(n,t,t.$),delete this[o])}function i(){var i=l(t,co(arguments));r.call(this),this.addEventListener(n,this[o]=i,i.$=e),i._=t}function u(){var t,e=new RegExp("^__on([^.]+)"+ao.requote(n)+"$");for(var r in this)if(t=r.match(e)){var i=this[r];this.removeEventListener(t[1],i,i.$),delete this[r]}}var o="__on"+n,a=n.indexOf("."),l=$;a>0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t<e&&(e=t.t),t=(n=t).n):t=n?n.n=t.n:oa=t.n;return aa=n,e}function Pn(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function Un(n,t){var e=Math.pow(10,3*xo(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++a<r;)37===n.charCodeAt(a)&&(o.push(n.slice(l,a)),null!=(i=ya[e=n.charAt(++a)])&&(e=n.charAt(++a)),(u=A[e])&&(e=u(t,null==i?"e"===e?" ":"0":i)),o.push(e),l=a+1);return o.push(n.slice(l,a)),o.join("")}var r=n.length;return t.parse=function(t){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=e(r,n,t,0);if(i!=t.length)return null;"p"in r&&(r.H=r.H%12+12*r.p);var u=null!=r.Z&&va!==Hn,o=new(u?Hn:va);return"j"in r?o.setFullYear(r.y,0,r.j):"W"in r||"U"in r?("w"in r||(r.w="W"in r?1:0),o.setFullYear(r.y,0,1),o.setFullYear(r.y,0,"W"in r?(r.w+6)%7+7*r.W-(o.getDay()+5)%7:r.w+7*r.U-(o.getDay()+6)%7)):o.setFullYear(r.y,r.m,r.d),o.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),u?o._:o},t.toString=function(){return n},t}function e(n,t,e,r){for(var i,u,o,a=0,l=t.length,c=e.length;l>a;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function $n(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Bn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.U=+r[0],e+r[0].length):-1}function Wn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e));return r?(n.W=+r[0],e+r[0].length):-1}function Jn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Gn(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.y=Qn(+r[0]),e+r[0].length):-1}function Kn(n,t,e){return/^[+-]\d{4}$/.test(t=t.slice(e,e+5))?(n.Z=-t,e+5):-1}function Qn(n){return n+(n>68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e<t;)n[e][0]=this(n[e][0]);return function(t){for(var e=0,r=n[e];!r[1](t);)r=n[++e];return r[0](t)}}function ft(){}function st(n,t,e){var r=e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function ht(n,t){n&&wa.hasOwnProperty(n.type)&&wa[n.type](n,t)}function pt(n,t,e){var r,i=-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1],r[2]);t.lineEnd()}function gt(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)pt(n[e],t,1);t.polygonEnd()}function vt(){function n(n,t){n*=Yo,t=t*Yo/2+Fo/4;var e=n-r,o=e>=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])<Uo&&xo(n[1]-t[1])<Uo}function St(n,t){n*=Yo;var e=Math.cos(t*=Yo);kt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function kt(n,t,e){++Ea,Ca+=(n-Ca)/Ea,za+=(t-za)/Ea,La+=(e-La)/Ea}function Nt(){function n(n,i){n*=Yo;var u=Math.cos(i*=Yo),o=u*Math.cos(n),a=u*Math.sin(n),l=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*l-r*a)*c+(c=r*o-t*l)*c+(c=t*a-e*o)*c),t*o+e*a+r*l);Aa+=c,qa+=c*(t+(t=o)),Ta+=c*(e+(e=a)),Ra+=c*(r+(r=l)),kt(t,e,r)}var t,e,r;ja.point=function(i,u){i*=Yo;var o=Math.cos(u*=Yo);t=o*Math.cos(i),e=o*Math.sin(i),r=Math.sin(u),ja.point=n,kt(t,e,r)}}function Et(){ja.point=St}function At(){function n(n,t){n*=Yo;var e=Math.cos(t*=Yo),o=e*Math.cos(n),a=e*Math.sin(n),l=Math.sin(t),c=i*l-u*a,f=u*o-r*l,s=r*a-i*o,h=Math.sqrt(c*c+f*f+s*s),p=r*o+i*a+u*l,g=h&&-nn(p)/h,v=Math.atan2(h,p);Da+=g*c,Pa+=g*f,Ua+=g*s,Aa+=v,qa+=v*(r+(r=o)),Ta+=v*(i+(i=a)),Ra+=v*(u+(u=l)),kt(r,i,u)}var t,e,r,i,u;ja.point=function(o,a){t=o,e=a,ja.point=n,o*=Yo;var l=Math.cos(a*=Yo);r=l*Math.cos(o),i=l*Math.sin(o),u=Math.sin(a),kt(r,i,u)},ja.lineEnd=function(){n(t,e),ja.lineEnd=Et,ja.point=St}}function Ct(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function zt(){return!0}function Lt(n,t,e,r,i){var u=[],o=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(wt(e,r)){i.lineStart();for(var a=0;t>a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.n=e=n[r],e.p=i,i=e;i.n=e=n[0],e.p=i}}function Tt(n,t,e,r){this.x=n,this.z=t,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Rt(n,t,e,r){return function(i,u){function o(t,e){var r=i(t,e);n(t=r[0],e=r[1])&&u.point(t,e)}function a(n,t){var e=i(n,t);d.point(e[0],e[1])}function l(){m.point=a,d.lineStart()}function c(){m.point=o,d.lineEnd()}function f(n,t){v.push([n,t]);var e=i(n,t);x.point(e[0],e[1])}function s(){x.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),x.lineEnd();var n,t=x.clean(),e=M.buffer(),r=e.length;if(v.pop(),g.push(v),v=null,r)if(1&t){n=e[0];var i,r=n.length-1,o=-1;if(r>0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o<r;)u.point((i=n[o])[0],i[1]);u.lineEnd()}}else r>1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)<Uo?(n.point(e,r=(r+o)/2>0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)<Uo&&(e-=i*Uo),xo(u-a)<Uo&&(u-=a*Uo),r=Ft(e,r,u,o),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),t=0),n.point(e=u,r=o),i=a},lineEnd:function(){n.lineEnd(),e=r=NaN},clean:function(){return 2-t}}}function Ft(n,t,e,r){var i,u,o=Math.sin(n-e);return xo(o)>Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]<t[0]?Fo:-Fo;i=e*u/2,r.point(-u,i),r.point(0,i),r.point(u,i)}else r.point(t[0],t[1])}function Ot(n,t){var e=n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,o=0;ka.reset();for(var a=0,l=t.length;l>a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)<Uo,C=A||Uo>E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)<Uo?k:N):k<=b[1]&&b[1]<=N:E>Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)<Uo?i>0?0:3:xo(r[0]-e)<Uo?i>0?2:1:xo(r[1]-t)<Uo?i>0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){
+r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)<Uo||xo(r-h)<Uo?(r+h)/2:Math.atan2(_,b),E=n(N,k),A=E[0],C=E[1],z=A-t,L=C-e,q=M*z-m*L;(q*q/x>u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)<Uo?ce:(e.invert=function(n,t){var e=u-t;return[Math.atan2(n,e)/i,u-K(i)*Math.sqrt(n*n+e*e)]},e)}function Ne(n,t){return[n,Math.log(Math.tan(Fo/4+t/2))]}function Ee(n){var t,e=oe(n),r=e.scale,i=e.translate,u=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=i.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var o=u.apply(e,arguments);if(o===e){if(t=null==n){var a=Fo*r(),l=i();u([[l[0]-a,l[1]-a],[l[0]+a,l[1]+a]])}}else t&&(o=null);return o},e.clipExtent(null)}function Ae(n,t){return[Math.log(Math.tan(Fo/4+t/2)),-n]}function Ce(n){return n[0]}function ze(n){return n[1]}function Le(n){for(var t=n.length,e=[0,1],r=2,i=2;t>i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)<Uo&&xo(r-l.circle.cy)<Uo;)u=l.P,a.unshift(l),je(l),l=u;a.unshift(l),Be(l);for(var c=o;c.circle&&xo(e-c.circle.x)<Uo&&xo(r-c.circle.cy)<Uo;)o=c.N,a.push(c),je(c),c=o;a.push(c),Be(c);var f,s=a.length;for(f=1;s>f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)<Uo&&g-i>Uo?{x:s,y:xo(t-s)<Uo?e:g}:xo(i-g)<Uo&&h-r>Uo?{x:xo(e-g)<Uo?t:h,y:g}:xo(r-h)<Uo&&i-p>Uo?{x:h,y:xo(t-h)<Uo?e:p}:xo(i-p)<Uo&&r-s>Uo?{x:xo(e-p)<Uo?t:s,y:p}:null),u.site,null)),++l)}function Ve(n,t){return t.angle-n.angle}function Xe(){rr(this),this.x=this.y=this.arc=this.site=this.cy=null}function $e(n){var t=n.P,e=n.N;if(t&&e){var r=t.site,i=n.site,u=e.site;if(r!==u){var o=i.x,a=i.y,l=r.x-o,c=r.y-a,f=u.x-o,s=u.y-a,h=2*(l*s-c*f);if(!(h>=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.y<M.y||y.y===M.y&&y.x<=M.x){if(!M.L){m=M.P;break}M=M.L}else{if(!M.R){m=M;break}M=M.R}ll.insert(m,y),m||(al=y)}}}}function Be(n){var t=n.circle;t&&(t.P||(al=t.N),ll.remove(t),fl.push(t),rr(t),n.circle=null)}function We(n){for(var t,e=il,r=Yt(n[0][0],n[0][1],n[1][0],n[1][1]),i=e.length;i--;)t=e[i],(!Je(t,n)||!r(t)||xo(t.a.x-t.b.x)<Uo&&xo(t.a.y-t.b.y)<Uo)&&(t.a=t.b=null,e.splice(i,1))}function Je(n,t){var e=n.b;if(e)return!0;var r,i,u=n.a,o=t[0][0],a=t[1][0],l=t[0][1],c=t[1][1],f=n.l,s=n.r,h=f.x,p=f.y,g=s.x,v=s.y,d=(h+g)/2,y=(p+v)/2;if(v===p){if(o>d||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.y<l)return}else u={x:d,y:c};e={x:d,y:l}}}else if(r=(h-g)/(v-p),i=y-r*d,-1>r||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.y<l)return}else u={x:(c-i)/r,y:c};e={x:(l-i)/r,y:l}}else if(v>p){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.x<o)return}else u={x:a,y:r*a+i};e={x:o,y:r*o+i}}return n.a=u,n.b=e,!0}function Ge(n,t){this.l=n,this.r=t,this.a=this.b=null}function Ke(n,t,e,r){var i=new Ge(n,t);return il.push(i),e&&nr(i,n,t,e),r&&nr(i,t,n,r),ul[n.i].edges.push(new tr(i,n,t)),ul[t.i].edges.push(new tr(i,t,n)),i}function Qe(n,t,e){var r=new Ge(n,null);return r.a=t,r.b=e,il.push(r),r}function nr(n,t,e,r){n.a||n.b?n.l===e?n.b=r:n.a=r:(n.a=r,n.l=t,n.r=e)}function tr(n,t,e){var r=n.a,i=n.b;this.edge=n,this.site=t,this.angle=e?Math.atan2(e.y-t.y,e.x-t.x):n.l===t?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function er(){this._=null}function rr(n){n.U=n.C=n.L=n.R=n.P=n.N=null}function ir(n,t){var e=t,r=t.R,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ur(n,t){var e=t,r=t.L,i=e.U;i?i.L===e?i.L=r:i.R=r:n._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function or(n){for(;n.L;)n=n.L;return n}function ar(n,t){var e,r,i,u=n.sort(lr).pop();for(il=[],ul=new Array(n.length),ol=new er,ll=new er;;)if(i=al,u&&(!i||u.y<i.y||u.y===i.y&&u.x<i.x))u.x===e&&u.y===r||(ul[u.i]=new Ye(u),He(u),e=u.x,r=u.y),u=n.pop();else{if(!i)break;Fe(i.arc)}t&&(We(t),Ze(t));var o={cells:ul,edges:il};return ol=ll=il=ul=null,o}function lr(n,t){return t.y-n.y||t.x-n.x}function cr(n,t,e){return(n.x-e.x)*(t.y-n.y)-(n.x-t.x)*(e.y-n.y)}function fr(n){return n.x}function sr(n){return n.y}function hr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function pr(n,t,e,r,i,u){if(!n(t,e,r,i,u)){var o=.5*(e+i),a=.5*(r+u),l=t.nodes;l[0]&&pr(n,l[0],e,r,o,a),l[1]&&pr(n,l[1],o,r,i,a),l[2]&&pr(n,l[2],e,a,o,u),l[3]&&pr(n,l[3],o,a,i,u)}}function gr(n,t,e,r,i,u,o){var a,l=1/0;return function c(n,f,s,h,p){if(!(f>u||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return u<t.length&&(i=t.slice(u),a[o]?a[o]+=i:a[++o]=i),a.length<2?l[0]?(t=l[0].x,function(n){return t(n)+""}):function(){return t}:(t=l.length,function(n){for(var e,r=0;t>r;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Zo,this.translate=[n.e,n.f],this.scale=[r,u],this.skew=u?Math.atan2(i,u)*Zo:0}function Fr(n,t){return n[0]*t[0]+n[1]*t[1]}function Hr(n){var t=Math.sqrt(Fr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Or(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Ir(n){return n.length?n.pop()+",":""}function Yr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push("translate(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else(t[0]||t[1])&&e.push("translate("+t+")")}function Zr(n,t,e,r){n!==t?(n-t>180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i<u;)e[(t=r[i]).i]=t.x(n);return e.join("")}}function Br(n,t){return t=(t-=n=+n)||1/t,function(e){return(e-n)/t}}function Wr(n,t){return t=(t-=n=+n)||1/t,function(e){return Math.max(0,Math.min(1,(e-n)/t))}}function Jr(n){for(var t=n.source,e=n.target,r=Kr(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var u=i.length;e!==r;)i.splice(u,0,e),e=e.parent;return i}function Gr(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Kr(n,t){if(n===t)return n;for(var e=Gr(n),r=Gr(t),i=e.pop(),u=r.pop(),o=null;i===u;)o=i,i=e.pop(),u=r.pop();return o}function Qr(n){n.fixed|=2}function ni(n){n.fixed&=-7}function ti(n){n.fixed|=4,n.px=n.x,n.py=n.y}function ei(n){n.fixed&=-5}function ri(n,t,e){var r=0,i=0;if(n.charge=0,!n.leaf)for(var u,o=n.nodes,a=o.length,l=-1;++l<a;)u=o[l],null!=u&&(ri(u,t,e),n.charge+=u.charge,r+=u.charge*u.cx,i+=u.charge*u.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var c=t*e[n.point.index];n.charge+=n.pointCharge=c,r+=c*n.point.x,i+=c*n.point.y}n.cx=r/n.charge,n.cy=i/n.charge}function ii(n,t){return ao.rebind(n,t,"sort","children","value"),n.nodes=n,n.links=fi,n}function ui(n,t){for(var e=[n];null!=(n=e.pop());)if(t(n),(i=n.children)&&(r=i.length))for(var r,i;--r>=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++o<i;)e.push(u[o]);for(;null!=(n=r.pop());)t(n)}function ai(n){return n.children}function li(n){return n.value}function ci(n,t){return t.value-n.value}function fi(n){return ao.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function si(n){return n.x}function hi(n){return n.y}function pi(n,t,e){n.y0=t,n.y=e}function gi(n){return ao.range(n.length)}function vi(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function di(n){for(var t,e=1,r=0,i=n[0][1],u=n.length;u>e;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.r<r.r?Si(r,i=a):Si(r=l,i),o--):(wi(r,u),i=u,t(u))}var y=(f+s)/2,m=(h+p)/2,M=0;for(o=0;c>o;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u<o;)Ci(i[u],t,e,r)}function zi(n,t,e){var r=n.r+e.r,i=t.x-n.x,u=t.y-n.y;if(r&&(i||u)){var o=t.r+e.r,a=i*i+u*u;o*=o,r*=r;var l=.5+(r-o)/(2*a),c=Math.sqrt(Math.max(0,2*o*(r+a)-(r-=a)*r-o*o))/(2*a);e.x=n.x+l*i+c*u,e.y=n.y+l*u-c*i}else e.x=n.x+r,e.y=n.y}function Li(n,t){return n.parent==t.parent?1:2}function qi(n){var t=n.children;return t.length?t[0]:n.t}function Ti(n){var t,e=n.children;return(t=e.length)?e[t-1]:n.t}function Ri(n,t,e){var r=e/(t.i-n.i);t.c-=r,t.s+=e,n.c+=r,t.z+=e,t.m+=e}function Di(n){for(var t,e=0,r=0,i=n.children,u=i.length;--u>=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++o<=a;)i.push(e(n[o-1],n[o])),u.push(r(t[o-1],t[o]));return function(t){var e=ao.bisect(n,t,1,a)-1;return u[e](i[e](t))}}function Wi(n,t,e,r){function i(){var i=Math.min(n.length,t.length)>2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++<f;)for(var h=s-1;h>0;h--)o.push(u(c)*h);for(c=0;o[c]<a;c++);for(f=o.length;o[f-1]>l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++o<a;)i.has(u=r[o])||i.set(u,n.push(u));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(u=n,o=0,t={t:"range",a:arguments},e):u},e.rangePoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=(l+c)/2,0):(c-l)/(n.length-1+a);return u=r(l+f*a/2,f),o=0,t={t:"rangePoints",a:arguments},e},e.rangeRoundPoints=function(i,a){arguments.length<2&&(a=0);var l=i[0],c=i[1],f=n.length<2?(l=c=Math.round((l+c)/2),0):(c-l)/(n.length-1+a)|0;return u=r(l+Math.round(f*a/2+(c-l-(n.length-1+a)*f)/2),f),o=0,t={t:"rangeRoundPoints",a:arguments},e},e.rangeBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=(s-f)/(n.length-a+2*l);return u=r(f+h*l,h),c&&u.reverse(),o=h*(1-a),t={t:"rangeBands",a:arguments},e},e.rangeRoundBands=function(i,a,l){arguments.length<2&&(a=0),arguments.length<3&&(l=a);var c=i[1]<i[0],f=i[c-0],s=i[1-c],h=Math.floor((s-f)/(n.length-a+2*l));return u=r(f+Math.round((s-f-(n.length-a)*h)/2),h),c&&u.reverse(),o=Math.round(h*(1-a)),t={t:"rangeRoundBands",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Yi(t.a[0])},e.copy=function(){return ou(n,t)},e.domain(n)}function au(n,t){function u(){var e=0,r=t.length;for(a=[];++e<r;)a[e-1]=ao.quantile(n,e/r);return o}function o(n){return isNaN(n=+n)?void 0:t[ao.bisect(a,n)]}var a;return o.domain=function(t){return arguments.length?(n=t.map(r).filter(i).sort(e),u()):n},o.range=function(n){return arguments.length?(t=n,u()):t},o.quantiles=function(){return a},o.invertExtent=function(e){return e=t.indexOf(e),0>e?[NaN,NaN]:[e>0?a[e-1]:n[0],e<a.length?a[e]:n[n.length-1]]},o.copy=function(){return au(n,t)},u()}function lu(n,t,e){function r(t){return e[Math.max(0,Math.min(o,Math.floor(u*(t-n))))]}function i(){return u=e.length/(t-n),o=e.length-1,r}var u,o;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],i()):[n,t]},r.range=function(n){return arguments.length?(e=n,i()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s<h;)i.call(this,l=t[s],s)?f.push([+p.call(this,l,s),+g.call(this,l,s)]):f.length&&(o(),f=[]);return f.length&&o(),c.length?c.join(""):null}var e=Ce,r=ze,i=zt,u=xu,o=u.key,a=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(i=n,t):i},t.interpolate=function(n){return arguments.length?(o="function"==typeof n?u=n:(u=Tl.get(n)||xu).key,t):o},t.tension=function(n){return arguments.length?(a=n,t):a},t}function xu(n){return n.length>1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r[0]+(r=n[t])[0])/2,"V",r[1]);return e>1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("V",(r=n[t])[1],"H",r[0]);return i.join("")}function Su(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t<e;)i.push("H",(r=n[t])[0],"V",r[1]);return i.join("")}function ku(n,t){return n.length<4?xu(n):n[1]+Au(n.slice(1,-1),Cu(n,t))}function Nu(n,t){return n.length<3?bu(n):n[0]+Au((n.push(n[0]),n),Cu([n[n.length-2]].concat(n,[n[1]]),t))}function Eu(n,t){return n.length<3?xu(n):n[0]+Au(n,Cu(n,t))}function Au(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return xu(n);var e=n.length!=t.length,r="",i=n[0],u=n[1],o=t[0],a=o,l=1;if(e&&(r+="Q"+(u[0]-2*o[0]/3)+","+(u[1]-2*o[1]/3)+","+u[0]+","+u[1],i=n[1],l=2),t.length>1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c<t.length;c++,l++)u=n[l],a=t[c],r+="S"+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1]}if(e){var f=n[l];r+="Q"+(u[0]+2*a[0]/3)+","+(u[1]+2*a[1]/3)+","+f[0]+","+f[1]}return r}function Cu(n,t){for(var e,r=[],i=(1-t)/2,u=n[0],o=n[1],a=1,l=n.length;++a<l;)e=u,u=o,o=n[a],r.push([i*(o[0]-e[0]),i*(o[1]-e[1])]);return r}function zu(n){if(n.length<3)return xu(n);var t=1,e=n.length,r=n[0],i=r[0],u=r[1],o=[i,i,i,(r=n[1])[0]],a=[u,u,u,r[1]],l=[i,",",u,"L",Ru(Pl,o),",",Ru(Pl,a)];for(n.push(n[e-1]);++t<=e;)r=n[t],o.shift(),o.push(r[0]),a.shift(),a.push(r[1]),Du(l,o,a);return n.pop(),l.push("L",r),l.join("")}function Lu(n){if(n.length<4)return xu(n);for(var t,e=[],r=-1,i=n.length,u=[0],o=[0];++r<3;)t=n[r],u.push(t[0]),o.push(t[1]);for(e.push(Ru(Pl,u)+","+Ru(Pl,o)),--r;++r<i;)t=n[r],u.shift(),u.push(t[0]),o.shift(),o.push(t[1]),Du(e,u,o);return e.join("")}function qu(n){for(var t,e,r=-1,i=n.length,u=i+4,o=[],a=[];++r<4;)e=n[r%i],o.push(e[0]),a.push(e[1]);for(t=[Ru(Pl,o),",",Ru(Pl,a)],--r;++r<u;)e=n[r%i],o.shift(),o.push(e[0]),a.shift(),a.push(e[1]),Du(t,o,a);return t.join("")}function Tu(n,t){var e=n.length-1;if(e)for(var r,i,u=n[0][0],o=n[0][1],a=n[e][0]-u,l=n[e][1]-o,c=-1;++c<=e;)r=n[c],i=c/e,r[0]=t*r[0]+(1-t)*(u+i*a),r[1]=t*r[1]+(1-t)*(o+i*l);return zu(n)}function Ru(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function Du(n,t,e){n.push("C",Ru(Rl,t),",",Ru(Rl,e),",",Ru(Dl,t),",",Ru(Dl,e),",",Ru(Pl,t),",",Ru(Pl,e))}function Pu(n,t){return(t[1]-n[1])/(t[0]-n[0])}function Uu(n){for(var t=0,e=n.length-1,r=[],i=n[0],u=n[1],o=r[0]=Pu(i,u);++t<e;)r[t]=(o+(o=Pu(i=u,u=n[t+1])))/2;return r[t]=o,r}function ju(n){for(var t,e,r,i,u=[],o=Uu(n),a=-1,l=n.length-1;++a<l;)t=Pu(n[a],n[a+1]),xo(t)<Uo?o[a]=o[a+1]=0:(e=o[a]/t,r=o[a+1]/t,i=e*e+r*r,i>9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i<u;)t=n[i],e=t[0],r=t[1]-Io,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function Ou(n){function t(t){function l(){v.push("M",a(n(y),s),f,c(n(d.reverse()),s),"Z")}for(var h,p,g,v=[],d=[],y=[],m=-1,M=t.length,x=En(e),b=En(i),_=e===r?function(){
+return p}:En(r),w=i===u?function(){return g}:En(u);++m<M;)o.call(this,h=t[m],m)?(d.push([p=+x.call(this,h,m),g=+b.call(this,h,m)]),y.push([+_.call(this,h,m),+w.call(this,h,m)])):d.length&&(l(),d=[],y=[]);return d.length&&l(),v.length?v.join(""):null}var e=Ce,r=Ce,i=0,u=ze,o=zt,a=xu,l=a.key,c=a,f="L",s=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(i=u=n,t):u},t.y0=function(n){return arguments.length?(i=n,t):i},t.y1=function(n){return arguments.length?(u=n,t):u},t.defined=function(n){return arguments.length?(o=n,t):o},t.interpolate=function(n){return arguments.length?(l="function"==typeof n?a=n:(a=Tl.get(n)||xu).key,c=a.reverse||a,f=a.closed?"M":"L",t):l},t.tension=function(n){return arguments.length?(s=n,t):s},t}function Iu(n){return n.radius}function Yu(n){return[n.x,n.y]}function Zu(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]-Io;return[e*Math.cos(r),e*Math.sin(r)]}}function Vu(){return 64}function Xu(){return"circle"}function $u(n){var t=Math.sqrt(n/Fo);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Bu(n){return function(){var t,e,r;(t=this[n])&&(r=t[e=t.active])&&(r.timer.c=null,r.timer.t=NaN,--t.count?delete t[e]:delete this[n],t.active+=.5,r.event&&r.event.interrupt.call(this,this.__data__,r.index))}}function Wu(n,t,e){return ko(n,Yl),n.namespace=t,n.id=e,n}function Ju(n,t,e,r){var i=n.id,u=n.namespace;return Y(n,"function"==typeof e?function(n,o,a){n[u][i].tween.set(t,r(e.call(n,n.__data__,o,a)))}:(e=r(e),function(n){n[u][i].tween.set(t,e)}))}function Gu(n){return null==n&&(n=""),function(){this.textContent=n}}function Ku(n){return null==n?"__transition__":"__transition_"+n+"__"}function Qu(n,t,e,r,i){function u(n){var t=v.delay;return f.t=t+l,n>=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]<Kl[u]/i?u-1:u]:[tc,Ki(n,e)[2]]}return r.invert=function(t){return io(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(io)},r.nice=function(n,t){function e(e){return!isNaN(e)&&!n.range(e,io(+e+1),t).length}var u=r.domain(),o=Yi(u),a=null==n?i(o,10):"number"==typeof n&&i(o,n);return a&&(n=a[0],t=a[1]),r.domain(Xi(u,t>1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&e>r&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&e>r&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u;)if(null!=(r=n[i])&&r>=r){e=r;break}for(;++i<u;)null!=(r=n[i])&&r>e&&(e=r)}else{for(;++i<u;)if(null!=(r=t.call(n,n[i],i))&&r>=r){e=r;break}for(;++i<u;)null!=(r=t.call(n,n[i],i))&&r>e&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u<o;)if(null!=(r=n[u])&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=n[u])&&(e>r&&(e=r),r>i&&(i=r))}else{for(;++u<o;)if(null!=(r=t.call(n,n[u],u))&&r>=r){e=i=r;break}for(;++u<o;)null!=(r=t.call(n,n[u],u))&&(e>r&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o<u;)i(e=+n[o])&&(r+=e);else for(;++o<u;)i(e=+t.call(n,n[o],o))&&(r+=e);return r},ao.mean=function(n,t){var e,u=0,o=n.length,a=-1,l=o;if(1===arguments.length)for(;++a<o;)i(e=r(n[a]))?u+=e:--l;else for(;++a<o;)i(e=r(t.call(n,n[a],a)))?u+=e:--l;return l?u/l:void 0},ao.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),i=+n[r-1],u=e-r;return u?i+u*(n[r]-i):i},ao.median=function(n,t){var u,o=[],a=n.length,l=-1;if(1===arguments.length)for(;++l<a;)i(u=r(n[l]))&&o.push(u);else for(;++l<a;)i(u=r(t.call(n,n[l],l)))&&o.push(u);return o.length?ao.quantile(o.sort(e),.5):void 0},ao.variance=function(n,t){var e,u,o=n.length,a=0,l=0,c=-1,f=0;if(1===arguments.length)for(;++c<o;)i(e=r(n[c]))&&(u=e-a,a+=u/++f,l+=u*(e-a));else for(;++c<o;)i(e=r(t.call(n,n[c],c)))&&(u=e-a,a+=u/++f,l+=u*(e-a));return f>1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t<e;)for(var i,u=-1,a=r[t]=new Array(i);++u<i;)a[u]=n[u][t];return r},ao.zip=function(){return ao.transpose(arguments)},ao.keys=function(n){var t=[];for(var e in n)t.push(e);return t},ao.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},ao.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},ao.merge=function(n){for(var t,e,r,i=n.length,u=-1,o=0;++u<i;)o+=n[u].length;for(e=new Array(o);--i>=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)<t;)i.push(r/u);return i},ao.map=function(n,t){var e=new c;if(n instanceof c)n.forEach(function(n,t){e.set(n,t)});else if(Array.isArray(n)){var r,i=-1,u=n.length;if(1===arguments.length)for(;++i<u;)e.set(i,n[i]);else for(;++i<u;)e.set(t.call(n,r=n[i],i),r)}else for(var o in n)e.set(o,n[o]);return e};var bo="__proto__",_o="\x00";l(c,{has:h,get:function(n){return this._[f(n)]},set:function(n,t){return this._[f(n)]=t},remove:p,keys:g,values:function(){var n=[];for(var t in this._)n.push(this._[t]);return n},entries:function(){var n=[];for(var t in this._)n.push({key:s(t),value:this._[t]});return n},size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t),this._[t])}}),ao.nest=function(){function n(t,o,a){if(a>=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p<g;)(h=d.get(l=v(f=o[p])))?h.push(f):d.set(l,[f]);return t?(f=t(),s=function(e,r){f.set(e,n(t,r,a))}):(f={},s=function(e,r){f[e]=n(t,r,a)}),d.forEach(s),f}function t(n,e){if(e>=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r<i;)n[e=arguments[r]]=M(n,t,t[e]);return n};var wo=["webkit","ms","moz","Moz","o","O"];ao.dispatch=function(){for(var n=new _,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=w(n);return n},_.prototype.on=function(n,t){var e=n.indexOf("."),r="";if(e>=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o<a;){u.push(t=[]),t.parentNode=(r=this[o]).parentNode;for(var l=-1,c=r.length;++l<c;)(i=r[l])?(t.push(e=n.call(i,i.__data__,l,o)),e&&"__data__"in i&&(e.__data__=i.__data__)):t.push(null)}return E(u)},Co.selectAll=function(n){var t,e,r=[];n=C(n);for(var i=-1,u=this.length;++i<u;)for(var o=this[i],a=-1,l=o.length;++a<l;)(e=o[a])&&(r.push(t=co(n.call(e,e.__data__,a,i))),t.parentNode=e);return E(r)};var zo="http://www.w3.org/1999/xhtml",Lo={svg:"http://www.w3.org/2000/svg",xhtml:zo,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};ao.ns={prefix:Lo,qualify:function(n){var t=n.indexOf(":"),e=n;return t>=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++i<r;)if(!t.contains(n[i]))return!1}else for(t=e.getAttribute("class");++i<r;)if(!q(n[i]).test(t))return!1;return!0}for(t in n)this.each(R(t,n[t]));return this}return this.each(R(n,t))},Co.style=function(n,e,r){var i=arguments.length;if(3>i){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++r<o;)(i=n[r])&&(y.has(d=t.call(i,i.__data__,r))?v[r]=i:y.set(d,i),m[r]=d);for(r=-1;++r<s;)(i=y.get(d=t.call(e,u=e[r],r)))?i!==!0&&(p[r]=i,i.__data__=u):g[r]=H(u),y.set(d,!0);for(r=-1;++r<o;)r in m&&y.get(m[r])!==!0&&(v[r]=n[r])}else{for(r=-1;++r<h;)i=n[r],u=e[r],i?(i.__data__=u,p[r]=i):g[r]=H(u);for(;s>r;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++u<o;)(i=r[u])&&(n[u]=i.__data__);return n}var a=Z([]),l=E([]),f=E([]);if("function"==typeof n)for(;++u<o;)e(r=this[u],n.call(r,r.parentNode.__data__,u));else for(;++u<o;)e(r=this[u],n);return l.enter=function(){return a},l.exit=function(){return f},l},Co.datum=function(n){return arguments.length?this.property("__data__",n):this.property("__data__")},Co.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],i=r.length-1,u=r[i];--i>=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},Co.each=function(n){return Y(this,function(t,e,r){n.call(t,t.__data__,e,r)})},Co.call=function(n){var t=co(arguments);return n.apply(t[0]=this,t),this},Co.empty=function(){return!this.node()},Co.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++a<l;){r=(i=this[a]).update,o.push(t=[]),t.parentNode=i.parentNode;for(var c=-1,f=i.length;++c<f;)(u=i[c])?(t.push(r[c]=e=n.call(i.parentNode,u.__data__,c,a)),e.__data__=u.__data__):t.push(null)}return E(o)},qo.insert=function(n,t){return arguments.length<2&&(t=V(this)),Co.insert.call(this,n,t)},ao.select=function(t){var e;return"string"==typeof t?(e=[No(t,fo)],e.parentNode=fo.documentElement):(e=[t],e.parentNode=n(t)),E([e])},ao.selectAll=function(n){var t;return"string"==typeof n?(t=co(Eo(n,fo)),t.parentNode=fo.documentElement):(t=co(n),t.parentNode=null),E([t])},Co.on=function(n,t,e){var r=arguments.length;if(3>r){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}f=e+2;var r=n.charCodeAt(e+1);return 13===r?(i=!0,10===n.charCodeAt(e+2)&&++f):10===r&&(i=!0),n.slice(t+1,e).replace(/""/g,'"')}for(;c>f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv("	","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
+shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++r<i;)ht(e[r].geometry,t)}},wa={Sphere:function(n,t){t.sphere()},Point:function(n,t){n=n.coordinates,t.point(n[0],n[1],n[2])},MultiPoint:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)n=e[r],t.point(n[0],n[1],n[2])},LineString:function(n,t){pt(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)pt(e[r],t,0)},Polygon:function(n,t){gt(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)gt(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,i=e.length;++r<i;)ht(e[r],t)}};ao.geo.area=function(n){return Sa=0,ao.geo.stream(n,Na),Sa};var Sa,ka=new ft,Na={sphere:function(){Sa+=4*Fo},point:b,lineStart:b,lineEnd:b,polygonStart:function(){ka.reset(),Na.lineStart=vt},polygonEnd:function(){var n=2*ka;Sa+=0>n?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var f,s,h,p,g,v,d,y,m,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=i,b.lineStart=u,b.lineEnd=o,m=0,Na.polygonStart()},polygonEnd:function(){Na.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>ka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t<f.length-h;++t)p.push(n[a[f[t]][2]]);return p}var e=Ce,r=ze;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},ao.geom.polygon=function(n){return ko(n,rl),n};var rl=ao.geom.polygon.prototype=[];rl.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],i=0;++t<e;)n=r,r=this[t],i+=n[1]*r[0]-n[0]*r[1];return.5*i},rl.centroid=function(n){var t,e,r=-1,i=this.length,u=0,o=0,a=this[i-1];for(arguments.length||(n=-1/(6*this.area()));++r<i;)t=a,a=this[r],e=t[0]*a[1]-a[0]*t[1],u+=(t[0]+a[0])*e,o+=(t[1]+a[1])*e;return[u*n,o*n]},rl.clip=function(n){for(var t,e,r,i,u,o,a=De(n),l=-1,c=this.length-De(this),f=this[c-1];++l<c;){for(t=n.slice(),n.length=0,i=this[l],u=t[(r=t.length-a)-1],e=-1;++e<r;)o=t[e],Te(o,f,i)?(Te(u,f,i)||n.push(Re(u,o,f,i)),n.push(o)):Te(u,f,i)&&n.push(Re(u,o,f,i)),u=o;a&&n.push(n[0]),f=i}return n};var il,ul,ol,al,ll,cl=[],fl=[];Ye.prototype.prepare=function(){for(var n,t=this.edges,e=t.length;e--;)n=t[e].edge,n.b&&n.a||t.splice(e,1);return t.sort(Ve),t.length},tr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},er.prototype={insert:function(n,t){var e,r,i;if(n){if(t.P=n,t.N=n.N,n.N&&(n.N.P=t),n.N=t,n.R){for(n=n.R;n.L;)n=n.L;n.L=t}else n.R=t;e=n}else this._?(n=or(this._),t.P=null,t.N=n,n.P=n.L=t,e=n):(t.P=t.N=null,this._=t,e=null);for(t.L=t.R=null,t.U=e,t.C=!0,n=t;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.R&&(ir(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ur(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,n=r):(n===e.L&&(ur(this,e),n=e,e=n.U),e.C=!1,r.C=!0,ir(this,r))),e=n.U;this._.C=!1},remove:function(n){n.N&&(n.N.P=n.P),n.P&&(n.P.N=n.N),n.N=n.P=null;var t,e,r,i=n.U,u=n.L,o=n.R;if(e=u?o?or(o):u:o,i?i.L===n?i.L=e:i.R=e:this._=e,u&&o?(r=e.C,e.C=n.C,e.L=u,u.U=e,e!==o?(i=e.U,e.U=n.U,n=e.R,i.L=n,e.R=o,o.U=e):(e.U=i,i=e,n=e.R)):(r=n.C,n=e),n&&(n.U=i),!r){if(n&&n.C)return void(n.C=!1);do{if(n===this._)break;if(n===i.L){if(t=i.R,t.C&&(t.C=!1,i.C=!0,ir(this,i),t=i.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,ur(this,t),t=i.R),t.C=i.C,i.C=t.R.C=!1,ir(this,i),n=this._;break}}else if(t=i.L,t.C&&(t.C=!1,i.C=!0,ur(this,i),t=i.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,ir(this,t),t=i.L),t.C=i.C,i.C=t.L.C=!1,ur(this,i),n=this._;break}t.C=!0,n=i,i=i.U}while(!n.C);n&&(n.C=!1)}}},ao.geom.voronoi=function(n){function t(n){var t=new Array(n.length),r=a[0][0],i=a[0][1],u=a[1][0],o=a[1][1];return ar(e(n),a).cells.forEach(function(e,a){var l=e.edges,c=e.site,f=t[a]=l.length?l.map(function(n){var t=n.start();return[t.x,t.y]}):c.x>=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l<c;)i=f,u=s,f=a[l].edge,s=f.l===o?f.r:f.l,r<u.i&&r<s.i&&cr(o,u,s)<0&&t.push([n[r],n[u.i],n[s.i]])}),t},t.x=function(n){return arguments.length?(u=En(r=n),t):r},t.y=function(n){return arguments.length?(o=En(i=n),t):i},t.clipExtent=function(n){return arguments.length?(a=null==n?sl:n,t):a===sl?null:a},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):a===sl?null:a&&a[1]},t)};var sl=[[-1e6,-1e6],[1e6,1e6]];ao.geom.delaunay=function(n){return ao.geom.voronoi().triangles(n)},ao.geom.quadtree=function(n,t,e,r,i){function u(n){function u(n,t,e,r,i,u,o,a){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var l=n.x,f=n.y;if(null!=l)if(xo(l-e)+xo(f-r)<.01)c(n,t,e,r,i,u,o,a);else{var s=n.point;n.x=n.y=n.point=null,c(n,s,l,f,i,u,o,a),c(n,t,e,r,i,u,o,a)}else n.x=e,n.y=r,n.point=t}else c(n,t,e,r,i,u,o,a)}function c(n,t,e,r,i,o,a,l){var c=.5*(i+a),f=.5*(o+l),s=e>=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.x<v&&(v=f.x),f.y<d&&(d=f.y),f.x>y&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p<g;)u(k,n[p],s[p],h[p],v,d,y,m);--p}else n.forEach(k.add);return s=h=n=f=null,k}var o,a=Ce,l=ze;return(o=arguments.length)?(a=fr,l=sr,3===o&&(i=e,r=t,e=t=0),u(n)):(u.x=function(n){return arguments.length?(a=n,u):a},u.y=function(n){return arguments.length?(l=n,u):l},u.extent=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],i=+n[1][1]),u):null==t?null:[[t,e],[r,i]]},u.size=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=e=0,r=+n[0],i=+n[1]),u):null==t?null:[r-t,i-e]},u)},ao.interpolateRgb=vr,ao.interpolateObject=dr,ao.interpolateNumber=yr,ao.interpolateString=mr;var hl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,pl=new RegExp(hl.source,"g");ao.interpolate=Mr,ao.interpolators=[function(n,t){var e=typeof t;return("string"===e?ua.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?vr:mr:t instanceof an?vr:Array.isArray(t)?xr:"object"===e&&isNaN(t)?dr:yr)(n,t)}],ao.interpolateArray=xr;var gl=function(){return m},vl=ao.map({linear:gl,poly:Er,quad:function(){return Sr},cubic:function(){return kr},sin:function(){return Ar},exp:function(){return Cr},circle:function(){return zr},elastic:Lr,back:qr,bounce:function(){return Tr}}),dl=ao.map({"in":m,out:_r,"in-out":wr,"out-in":function(n){return wr(_r(n))}});ao.ease=function(n){var t=n.indexOf("-"),e=t>=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Jr(n[e]));return t}},ao.layout.chord=function(){function n(){var n,c,s,h,p,g={},v=[],d=ao.range(u),y=[];for(e=[],r=[],n=0,h=-1;++h<u;){for(c=0,p=-1;++p<u;)c+=i[h][p];v.push(c),y.push(ao.range(u)),n+=c}for(o&&d.sort(function(n,t){return o(v[n],v[t])}),a&&y.forEach(function(n,t){n.sort(function(n,e){return a(i[t][n],i[t][e])})}),n=(Ho-f*u)/n,c=0,h=-1;++h<u;){for(s=c,p=-1;++p<u;){var m=d[h],M=y[m][p],x=i[m][M],b=c,_=c+=x*n;g[m+"-"+M]={index:m,subindex:M,startAngle:b,endAngle:_,value:x}}r[m]={index:m,startAngle:s,endAngle:c,value:v[m]},c+=f}for(h=-1;++h<u;)for(p=h-1;++p<u;){var w=g[h+"-"+p],S=g[p+"-"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}l&&t()}function t(){e.sort(function(n,t){return l((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,i,u,o,a,l,c={},f=0;return c.matrix=function(n){return arguments.length?(u=(i=n)&&i.length,e=r=null,c):i},c.padding=function(n){return arguments.length?(f=n,e=r=null,c):f},c.sortGroups=function(n){return arguments.length?(o=n,e=r=null,c):o},c.sortSubgroups=function(n){return arguments.length?(a=n,e=null,c):a},c.sortChords=function(n){return arguments.length?(l=n,e&&t(),c):l},c.chords=function(){return e||n(),e},c.groups=function(){return r||n(),r},c},ao.layout.force=function(){function n(n){return function(t,e,r,i){if(t.point!==n){var u=t.cx-n.x,o=t.cy-n.y,a=i-e,l=u*u+o*o;if(l>a*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++l<f;)if(!isNaN(o=a[l][n]))return o;return Math.random()*r}var t,e,r,i=M.length,c=x.length,s=f[0],v=f[1];for(t=0;i>t;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++c<o;)n(a=u[c],e,l=a.value*r,i),e+=l}}function t(n){var e=n.children,r=0;if(e&&(i=e.length))for(var i,u=-1;++u<i;)r=Math.max(r,t(e[u]));return 1+r}function e(e,u){var o=r.call(this,e,u);return n(o[0],0,i[0],i[1]/t(o[0])),o}var r=ao.layout.hierarchy(),i=[1,1];return e.size=function(n){return arguments.length?(i=n,e):i},ii(e,r)},ao.layout.pie=function(){function n(o){var a,l=o.length,c=o.map(function(e,r){return+t.call(n,e,r)}),f=+("function"==typeof r?r.apply(this,arguments):r),s=("function"==typeof i?i.apply(this,arguments):i)-f,h=Math.min(Math.abs(s)/l,+("function"==typeof u?u.apply(this,arguments):u)),p=h*(0>s?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u<p;)o=l[u]=[],o.dx=s[u+1]-(o.x=s[u]),o.y=0;if(p>0)for(u=-1;++u<h;)a=c[u],a>=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.x<p.x&&(p=n),n.x>g.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++i<u;)r=(e=n[i]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++o<a;)(e=n[o].area)&&(u>e&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0;
+if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++u<o;)i=n[u],i.x=a,i.y=c,i.dy=f,a+=i.dx=Math.min(e.x+e.dx-a,f?l(i.area/f):0);i.z=!0,i.dx+=e.x+e.dx-a,e.y+=f,e.dy-=f}else{for((r||f>e.dx)&&(f=e.dx);++u<o;)i=n[u],i.x=a,i.y=c,i.dx=f,c+=i.dy=Math.min(e.y+e.dy-c,f?l(i.area/f):0);i.z=!1,i.dy+=e.y+e.dy-c,e.x+=f,e.dx-=f}}function u(r){var i=o||a(r),u=i[0];return u.x=u.y=0,u.value?(u.dx=c[0],u.dy=c[1]):u.dx=u.dy=0,o&&a.revalue(u),n([u],u.dx*u.dy/u.value),(o?e:t)(u),h&&(o=i),i}var o,a=ao.layout.hierarchy(),l=Math.round,c=[1,1],f=null,s=Oi,h=!1,p="squarify",g=.5*(1+Math.sqrt(5));return u.size=function(n){return arguments.length?(c=n,u):c},u.padding=function(n){function t(t){var e=n.call(u,t,t.depth);return null==e?Oi(t):Ii(t,"number"==typeof e?[e,e,e,e]:e)}function e(t){return Ii(t,n)}if(!arguments.length)return f;var r;return s=null==(f=n)?Oi:"function"==(r=typeof n)?t:"number"===r?(n=[n,n,n,n],e):e,u},u.round=function(n){return arguments.length?(l=n?Math.round:Number,u):l!=Number},u.sticky=function(n){return arguments.length?(h=n,o=null,u):h},u.ratio=function(n){return arguments.length?(g=n,u):g},u.mode=function(n){return arguments.length?(p=n+"",u):p},ii(u,a)},ao.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++a<l;){u.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(e=c[f])&&Qu(e,f,i,r,o),t.push(e)}return Wu(u,i,r)},Co.interrupt=function(n){return this.each(null==n?Il:Bu(Ku(n)))};var Hl,Ol,Il=Bu(Ku()),Yl=[],Zl=0;Yl.call=Co.call,Yl.empty=Co.empty,Yl.node=Co.node,Yl.size=Co.size,ao.transition=function(n,t){return n&&n.transition?Hl?n.transition(t):n:ao.selection().transition(n)},ao.transition.prototype=Yl,Yl.select=function(n){var t,e,r,i=this.id,u=this.namespace,o=[];n=A(n);for(var a=-1,l=this.length;++a<l;){o.push(t=[]);for(var c=this[a],f=-1,s=c.length;++f<s;)(r=c[f])&&(e=n.call(r,r.__data__,f,a))?("__data__"in r&&(e.__data__=r.__data__),Qu(e,f,u,i,r[u][i]),t.push(e)):t.push(null)}return Wu(o,u,i)},Yl.selectAll=function(n){var t,e,r,i,u,o=this.id,a=this.namespace,l=[];n=C(n);for(var c=-1,f=this.length;++c<f;)for(var s=this[c],h=-1,p=s.length;++h<p;)if(r=s[h]){u=r[a][o],e=n.call(r,r.__data__,h,c),l.push(t=[]);for(var g=-1,v=e.length;++g<v;)(i=e[g])&&Qu(i,g,a,o,u),t.push(i)}return Wu(l,a,o)},Yl.filter=function(n){var t,e,r,i=[];"function"!=typeof n&&(n=O(n));for(var u=0,o=this.length;o>u;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]<M[0])],L[1]=h[+(n[1]<M[1])]):M=null),E&&y(n,c,0)&&(r(k),t=!0),A&&y(n,f,1)&&(i(k),t=!0),t&&(e(k),w({type:"brush",mode:C?"move":"resize"}))}function y(n,t,e){var r,i,u=Zi(t),l=u[0],c=u[1],f=L[e],v=e?h:s,d=v[1]-v[0];return C&&(l-=f,c-=d+f),r=(e?g:p)?Math.max(l,Math.min(c,n[e])):n[e],C?i=(r+=f)+d:(M&&(f=Math.max(l,Math.min(c,2*M[e]-r))),r>f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}();
\ No newline at end of file
diff --git a/pagure/static/vendor/emojione/emoji_strategy-1.3.1.json b/pagure/static/vendor/emojione/emoji_strategy-1.3.1.json
new file mode 100644
index 0000000..169e6ca
--- /dev/null
+++ b/pagure/static/vendor/emojione/emoji_strategy-1.3.1.json
@@ -0,0 +1 @@
+{"wine_glass": {"keywords": "wine glass alcohol beverage booze bottle drink drunk fermented glass grapes tasting wine winery", "shortname": ":wine_glass:", "unicode": "1F377", "aliases": ""}, "clock830": {"keywords": "clock face eight-thirty clock time", "shortname": ":clock830:", "unicode": "1F563", "aliases": ""}, "rabbit": {"keywords": "rabbit face animal nature", "shortname": ":rabbit:", "unicode": "1F430", "aliases": ""}, "european_post_office": {"keywords": "european post office building", "shortname": ":european_post_office:", "unicode": "1F3E4", "aliases": ""}, "dollar": {"keywords": "banknote with dollar sign bill currency money dollar united states canada australia banknote money currency paper cash bills", "shortname": ":dollar:", "unicode": "1F4B5", "aliases": ""}, "alien": {"keywords": "extraterrestrial alien UFO paul alien ufo", "shortname": ":alien:", "unicode": "1F47D", "aliases": ""}, "crocodile": {"keywords": "crocodile animal nature crocodile croc alligator gator cranky", "shortname": ":crocodile:", "unicode": "1F40A", "aliases": ""}, "smoking": {"keywords": "smoking symbol cigarette kills tobacco smoking cigarette smoke cancer lungs inhale tar nicotine", "shortname": ":smoking:", "unicode": "1F6AC", "aliases": ""}, "white_square_button": {"keywords": "white square button shape", "shortname": ":white_square_button:", "unicode": "1F533", "aliases": ""}, "maple_leaf": {"keywords": "maple leaf canada nature plant vegetable maple leaf syrup canada tree", "shortname": ":maple_leaf:", "unicode": "1F341", "aliases": ""}, "no_bicycles": {"keywords": "no bicycles cyclist prohibited bicycle bike pedal no", "shortname": ":no_bicycles:", "unicode": "1F6B3", "aliases": ""}, "man_with_gua_pi_mao": {"keywords": "man with gua pi mao boy male skullcap chinese asian qing", "shortname": ":man_with_gua_pi_mao:", "unicode": "1F472", "aliases": ""}, "e-mail": {"keywords": "e-mail symbol communication inbox", "shortname": ":e-mail:", "unicode": "1F4E7", "aliases": ":email:"}, "tv": {"keywords": "television oldschool program show technology", "shortname": ":tv:", "unicode": "1F4FA", "aliases": ""}, "open_hands": {"keywords": "open hands sign butterfly fingers", "shortname": ":open_hands:", "unicode": "1F450", "aliases": ""}, "rotating_light": {"keywords": "police cars revolving light 911 ambulance emergency police light police emergency", "shortname": ":rotating_light:", "unicode": "1F6A8", "aliases": ""}, "part_alternation_mark": {"keywords": "part alternation mark graph sing song vocal music karaoke cue letter m japanese", "shortname": ":part_alternation_mark:", "unicode": "303D", "aliases": ""}, "tm": {"keywords": "trade mark sign brand trademark", "shortname": ":tm:", "unicode": "2122", "aliases": ""}, "mountain_cableway": {"keywords": "mountain cableway transportation vehicle mountain cable rail train railway", "shortname": ":mountain_cableway:", "unicode": "1F6A0", "aliases": ""}, "recycle": {"keywords": "black universal recycling symbol arrow environment garbage trash", "shortname": ":recycle:", "unicode": "267B", "aliases": ""}, "smile": {"keywords": "smiling face with open mouth and smiling eyes face funny haha happy joy laugh smile smiley smiling", "shortname": ":smile:", "unicode": "1F604", "aliases": ""}, "large_blue_circle": {"keywords": "large blue circle ", "shortname": ":large_blue_circle:", "unicode": "1F535", "aliases": ""}, "persevere": {"keywords": "persevering face endure persevere face no sick upset", "shortname": ":persevere:", "unicode": "1F623", "aliases": ""}, "open_file_folder": {"keywords": "open file folder documents load", "shortname": ":open_file_folder:", "unicode": "1F4C2", "aliases": ""}, "fax": {"keywords": "fax machine communication technology", "shortname": ":fax:", "unicode": "1F4E0", "aliases": ""}, "woman": {"keywords": "woman female girls", "shortname": ":woman:", "unicode": "1F469", "aliases": ""}, "eight_pointed_black_star": {"keywords": "eight pointed black star ", "shortname": ":eight_pointed_black_star:", "unicode": "2734", "aliases": ""}, "department_store": {"keywords": "department store building mall shopping department store retail sale merchandise", "shortname": ":department_store:", "unicode": "1F3EC", "aliases": ""}, "trident": {"keywords": "trident emblem spear weapon", "shortname": ":trident:", "unicode": "1F531", "aliases": ""}, "oncoming_automobile": {"keywords": "oncoming automobile car transportation vehicle sedan car automobile", "shortname": ":oncoming_automobile:", "unicode": "1F698", "aliases": ""}, "wave": {"keywords": "waving hand sign farewell gesture goodbye hands solong", "shortname": ":wave:", "unicode": "1F44B", "aliases": ""}, "u7a7a": {"keywords": "squared cjk unified ideograph-7a7a chinese empty japanese kanji", "shortname": ":u7a7a:", "unicode": "1F233", "aliases": ""}, "arrow_right": {"keywords": "black rightwards arrow blue-square next", "shortname": ":arrow_right:", "unicode": "27A1", "aliases": ""}, "ticket": {"keywords": "ticket concert event pass ticket show entertainment stub admission proof purchase", "shortname": ":ticket:", "unicode": "1F3AB", "aliases": ""}, "ramen": {"keywords": "steaming bowl chipsticks food japanese noodle ramen noodles bowl steaming soup", "shortname": ":ramen:", "unicode": "1F35C", "aliases": ""}, "twisted_rightwards_arrows": {"keywords": "twisted rightwards arrows blue-square", "shortname": ":twisted_rightwards_arrows:", "unicode": "1F500", "aliases": ""}, "cool": {"keywords": "squared cool blue-square words", "shortname": ":cool:", "unicode": "1F192", "aliases": ""}, "four": {"keywords": "digit four 4 blue-square numbers", "shortname": ":four:", "unicode": "0034-20E3", "aliases": ""}, "school": {"keywords": "school building school university elementary middle high college teach education", "shortname": ":school:", "unicode": "1F3EB", "aliases": ""}, "high_brightness": {"keywords": "high brightness symbol light summer sun", "shortname": ":high_brightness:", "unicode": "1F506", "aliases": ""}, "railway_car": {"keywords": "railway car transportation vehicle railway rail car coach train", "shortname": ":railway_car:", "unicode": "1F683", "aliases": ""}, "notes": {"keywords": "multiple musical notes music score musical music notes music sound melody", "shortname": ":notes:", "unicode": "1F3B6", "aliases": ""}, "white_flower": {"keywords": "white flower japanese white flower teacher school grade score brilliance intelligence homework student assignment praise", "shortname": ":white_flower:", "unicode": "1F4AE", "aliases": ""}, "gun": {"keywords": "pistol violence weapon", "shortname": ":gun:", "unicode": "1F52B", "aliases": ""}, "couple_with_heart": {"keywords": "couple with heart affection dating human like love marriage valentines", "shortname": ":couple_with_heart:", "unicode": "1F491", "aliases": ""}, "no_good": {"keywords": "face with no good gesture female girl woman no stop nope don&#039;t not", "shortname": ":no_good:", "unicode": "1F645", "aliases": ""}, "saxophone": {"keywords": "saxophone instrument music saxophone sax music instrument woodwind", "shortname": ":saxophone:", "unicode": "1F3B7", "aliases": ""}, "notebook_with_decorative_cover": {"keywords": "notebook with decorative cover classroom notes paper record", "shortname": ":notebook_with_decorative_cover:", "unicode": "1F4D4", "aliases": ""}, "triumph": {"keywords": "face with look of triumph face gas phew triumph steam breath", "shortname": ":triumph:", "unicode": "1F624", "aliases": ""}, "tea": {"keywords": "teacup without handle bowl breakfast british drink green tea leaf drink teacup hot beverage", "shortname": ":tea:", "unicode": "1F375", "aliases": ""}, "suspension_railway": {"keywords": "suspension railway transportation vehicle suspension railway rail train transportation", "shortname": ":suspension_railway:", "unicode": "1F69F", "aliases": ""}, "arrow_left": {"keywords": "leftwards black arrow arrow blue-square previous", "shortname": ":arrow_left:", "unicode": "2B05", "aliases": ""}, "zero": {"keywords": "digit zero blue-square null numbers", "shortname": ":zero:", "unicode": "0030-20E3", "aliases": ""}, "small_orange_diamond": {"keywords": "small orange diamond shape", "shortname": ":small_orange_diamond:", "unicode": "1F538", "aliases": ""}, "cactus": {"keywords": "cactus nature plant vegetable cactus desert drought spike poke", "shortname": ":cactus:", "unicode": "1F335", "aliases": ""}, "spaghetti": {"keywords": "spaghetti food italian noodle spaghetti noodles tomato sauce italian", "shortname": ":spaghetti:", "unicode": "1F35D", "aliases": ""}, "white_small_square": {"keywords": "white small square shape", "shortname": ":white_small_square:", "unicode": "25AB", "aliases": ""}, "ribbon": {"keywords": "ribbon bowtie decoration girl pink ribbon lace wrap decorate", "shortname": ":ribbon:", "unicode": "1F380", "aliases": ""}, "cinema": {"keywords": "cinema blue-square film movie record cinema movie theater motion picture", "shortname": ":cinema:", "unicode": "1F3A6", "aliases": ""}, "mega": {"keywords": "cheering megaphone sound speaker volume", "shortname": ":mega:", "unicode": "1F4E3", "aliases": ""}, "abc": {"keywords": "input symbol for latin letters alphabet blue-square", "shortname": ":abc:", "unicode": "1F524", "aliases": ""}, "purple_heart": {"keywords": "purple heart affection like love valentines purple violet heart love sensitive understanding compassionate compassion duty honor royalty veteran sacrifice", "shortname": ":purple_heart:", "unicode": "1F49C", "aliases": ""}, "love_letter": {"keywords": "love letter affection email envelope like valentines love letter kiss heart", "shortname": ":love_letter:", "unicode": "1F48C", "aliases": ""}, "file_folder": {"keywords": "file folder documents", "shortname": ":file_folder:", "unicode": "1F4C1", "aliases": ""}, "clipboard": {"keywords": "clipboard documents stationery", "shortname": ":clipboard:", "unicode": "1F4CB", "aliases": ""}, "baby_bottle": {"keywords": "baby bottle container food baby bottle milk mother nipple newborn formula", "shortname": ":baby_bottle:", "unicode": "1F37C", "aliases": ""}, "new": {"keywords": "squared new blue-square", "shortname": ":new:", "unicode": "1F195", "aliases": ""}, "bird": {"keywords": "bird animal fly nature tweet", "shortname": ":bird:", "unicode": "1F426", "aliases": ""}, "1234": {"keywords": "input symbol for numbers blue-square numbers", "shortname": ":1234:", "unicode": "1F522", "aliases": ""}, "smiling_imp": {"keywords": "smiling face with horns devil horns horns devil impish trouble", "shortname": ":smiling_imp:", "unicode": "1F608", "aliases": ""}, "no_smoking": {"keywords": "no smoking symbol cigarette no smoking cigarette smoke cancer lungs inhale tar nicotine", "shortname": ":no_smoking:", "unicode": "1F6AD", "aliases": ""}, "herb": {"keywords": "herb grass lawn medicine plant vegetable weed herb spice plant cook cooking", "shortname": ":herb:", "unicode": "1F33F", "aliases": ""}, "pouting_cat": {"keywords": "pouting cat face animal cats pout annoyed miffed glower frown", "shortname": ":pouting_cat:", "unicode": "1F63E", "aliases": ""}, "u5408": {"keywords": "squared cjk unified ideograph-5408 chinese japanese join kanji", "shortname": ":u5408:", "unicode": "1F234", "aliases": ""}, "punch": {"keywords": "fisted hand sign fist hand", "shortname": ":punch:", "unicode": "1F44A", "aliases": ""}, "surfer": {"keywords": "surfer ocean sea sports surfer surf wave ocean ride swell", "shortname": ":surfer:", "unicode": "1F3C4", "aliases": ""}, "house_with_garden": {"keywords": "house with garden home nature plant", "shortname": ":house_with_garden:", "unicode": "1F3E1", "aliases": ""}, "baseball": {"keywords": "baseball MLB balls sports", "shortname": ":baseball:", "unicode": "26BE", "aliases": ""}, "busstop": {"keywords": "bus stop transportation bus stop city transport transportation", "shortname": ":busstop:", "unicode": "1F68F", "aliases": ""}, "new_moon": {"keywords": "new moon symbol nature moon new sky night cheese phase", "shortname": ":new_moon:", "unicode": "1F311", "aliases": ""}, "100": {"keywords": "hundred points symbol numbers perfect score 100 percent a plus perfect school quiz score test exam", "shortname": ":100:", "unicode": "1F4AF", "aliases": ""}, "thumbsup": {"keywords": "thumbs up sign cool hand like yes", "shortname": ":thumbsup:", "unicode": "1F44D", "aliases": ":+1:"}, "bust_in_silhouette": {"keywords": "bust in silhouette human man person user silhouette person user member account guest icon avatar profile me myself i", "shortname": ":bust_in_silhouette:", "unicode": "1F464", "aliases": ""}, "boy": {"keywords": "boy guy male man", "shortname": ":boy:", "unicode": "1F466", "aliases": ""}, "arrow_lower_left": {"keywords": "south west arrow arrow blue-square", "shortname": ":arrow_lower_left:", "unicode": "2199", "aliases": ""}, "no_entry": {"keywords": "no entry bad denied limit privacy security stop", "shortname": ":no_entry:", "unicode": "26D4", "aliases": ""}, "see_no_evil": {"keywords": "see-no-evil monkey animal monkey nature monkey see eyes vision sight mizaru", "shortname": ":see_no_evil:", "unicode": "1F648", "aliases": ""}, "metro": {"keywords": "metro blue-square mrt transportation tube underground metro subway underground train", "shortname": ":metro:", "unicode": "1F687", "aliases": ""}, "leaves": {"keywords": "leaf fluttering in wind grass lawn nature plant tree vegetable leaves leaf wind float fluttering", "shortname": ":leaves:", "unicode": "1F343", "aliases": ""}, "heavy_plus_sign": {"keywords": "heavy plus sign calculation math", "shortname": ":heavy_plus_sign:", "unicode": "2795", "aliases": ""}, "roller_coaster": {"keywords": "roller coaster carnival fun photo play playground roller coaster amusement park fair ride entertainment", "shortname": ":roller_coaster:", "unicode": "1F3A2", "aliases": ""}, "thought_balloon": {"keywords": "thought balloon bubble cloud speech thought balloon comic think day dream wonder", "shortname": ":thought_balloon:", "unicode": "1F4AD", "aliases": ""}, "bow": {"keywords": "person bowing deeply boy male man sorry bow respect curtsy bend", "shortname": ":bow:", "unicode": "1F647", "aliases": ""}, "dragon_face": {"keywords": "dragon face animal chinese green myth nature dragon head fire legendary myth", "shortname": ":dragon_face:", "unicode": "1F432", "aliases": ""}, "hamster": {"keywords": "hamster face animal nature", "shortname": ":hamster:", "unicode": "1F439", "aliases": ""}, "waxing_gibbous_moon": {"keywords": "waxing gibbous moon symbol nature", "shortname": ":waxing_gibbous_moon:", "unicode": "1F314", "aliases": ""}, "cookie": {"keywords": "cookie chocolate food oreo snack cookie dessert biscuit sweet chocolate", "shortname": ":cookie:", "unicode": "1F36A", "aliases": ""}, "massage": {"keywords": "face massage female girl woman", "shortname": ":massage:", "unicode": "1F486", "aliases": ""}, "children_crossing": {"keywords": "children crossing school children kids caution crossing street crosswalk slow", "shortname": ":children_crossing:", "unicode": "1F6B8", "aliases": ""}, "apple": {"keywords": "red apple fruit mac apple fruit electronics red doctor teacher school core", "shortname": ":apple:", "unicode": "1F34E", "aliases": ""}, "family": {"keywords": "family child dad father home mom mother parents family mother father child girl boy group unit", "shortname": ":family:", "unicode": "1F46A", "aliases": ""}, "arrow_up_down": {"keywords": "up down arrow blue-square", "shortname": ":arrow_up_down:", "unicode": "2195", "aliases": ""}, "mount_fuji": {"keywords": "mount fuji japan mountain nature photo", "shortname": ":mount_fuji:", "unicode": "1F5FB", "aliases": ""}, "keycap_ten": {"keywords": "keycap ten 10 blue-square numbers", "shortname": ":keycap_ten:", "unicode": "1F51F", "aliases": ""}, "outbox_tray": {"keywords": "outbox tray email inbox", "shortname": ":outbox_tray:", "unicode": "1F4E4", "aliases": ""}, "clock330": {"keywords": "clock face three-thirty clock time", "shortname": ":clock330:", "unicode": "1F55E", "aliases": ""}, "cloud": {"keywords": "cloud sky weather", "shortname": ":cloud:", "unicode": "2601", "aliases": ""}, "honey_pot": {"keywords": "honey pot bees sweet honey pot bees pooh bear", "shortname": ":honey_pot:", "unicode": "1F36F", "aliases": ""}, "red_car": {"keywords": "automobile transportation vehicle", "shortname": ":red_car:", "unicode": "1F697", "aliases": ""}, "sake": {"keywords": "sake bottle and cup beverage drink drunk wine sake wine rice ferment alcohol japanese drink", "shortname": ":sake:", "unicode": "1F376", "aliases": ""}, "confounded": {"keywords": "confounded face confused face sick unwell confound amaze perplex puzzle mystify", "shortname": ":confounded:", "unicode": "1F616", "aliases": ""}, "angry": {"keywords": "angry face angry livid mad vexed irritated annoyed face frustrated mad", "shortname": ":angry:", "unicode": "1F620", "aliases": ""}, "poodle": {"keywords": "poodle 101 animal dog nature poodle dog clip showy sophisticated vain", "shortname": ":poodle:", "unicode": "1F429", "aliases": ""}, "frog": {"keywords": "frog face animal nature", "shortname": ":frog:", "unicode": "1F438", "aliases": ""}, "musical_note": {"keywords": "musical note score musical music note music sound", "shortname": ":musical_note:", "unicode": "1F3B5", "aliases": ""}, "camera": {"keywords": "camera gadgets photo", "shortname": ":camera:", "unicode": "1F4F7", "aliases": ""}, "iphone": {"keywords": "mobile phone apple dial gadgets technology", "shortname": ":iphone:", "unicode": "1F4F1", "aliases": ""}, "sweat_smile": {"keywords": "smiling face with open mouth and cold sweat face happy hot smiling cold sweat perspiration", "shortname": ":sweat_smile:", "unicode": "1F605", "aliases": ""}, "aries": {"keywords": "aries aries ram astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":aries:", "unicode": "2648", "aliases": ""}, "ear_of_rice": {"keywords": "ear of rice nature plant ear rice food plant seed", "shortname": ":ear_of_rice:", "unicode": "1F33E", "aliases": ""}, "video_camera": {"keywords": "video camera film record", "shortname": ":video_camera:", "unicode": "1F4F9", "aliases": ""}, "mouse2": {"keywords": "mouse animal nature mouse mice rodent", "shortname": ":mouse2:", "unicode": "1F401", "aliases": ""}, "chestnut": {"keywords": "chestnut food squirrel chestnut roasted food tree", "shortname": ":chestnut:", "unicode": "1F330", "aliases": ""}, "pencil": {"keywords": "memo documents paper station write", "shortname": ":pencil:", "unicode": "1F4DD", "aliases": ""}, "guardsman": {"keywords": "guardsman british gb male man uk guardsman guard bearskin hat british queen ceremonial military", "shortname": ":guardsman:", "unicode": "1F482", "aliases": ""}, "door": {"keywords": "door entry exit house door doorway entrance enter exit entry", "shortname": ":door:", "unicode": "1F6AA", "aliases": ""}, "steam_locomotive": {"keywords": "steam locomotive train transportation vehicle locomotive steam train engine", "shortname": ":steam_locomotive:", "unicode": "1F682", "aliases": ""}, "tangerine": {"keywords": "tangerine food fruit nature tangerine citrus orange", "shortname": ":tangerine:", "unicode": "1F34A", "aliases": ""}, "bike": {"keywords": "bicycle bicycle exercise hipster sports bike pedal bicycle transportation", "shortname": ":bike:", "unicode": "1F6B2", "aliases": ""}, "melon": {"keywords": "melon food fruit nature melon cantaloupe honeydew", "shortname": ":melon:", "unicode": "1F348", "aliases": ""}, "train": {"keywords": "Tram Car tram rail", "shortname": ":train:", "unicode": "1F68B", "aliases": ""}, "beers": {"keywords": "clinking beer mugs beverage drink drunk party pub relax beer beers cheers mug toast celebrate pub bar jolly hops clink", "shortname": ":beers:", "unicode": "1F37B", "aliases": ""}, "water_buffalo": {"keywords": "water buffalo animal cow nature ox water buffalo asia bovine milk dairy", "shortname": ":water_buffalo:", "unicode": "1F403", "aliases": ""}, "baby": {"keywords": "baby boy child infant", "shortname": ":baby:", "unicode": "1F476", "aliases": ""}, "mailbox_closed": {"keywords": "closed mailbox with lowered flag communication email inbox", "shortname": ":mailbox_closed:", "unicode": "1F4EA", "aliases": ""}, "curly_loop": {"keywords": "curly loop scribble", "shortname": ":curly_loop:", "unicode": "27B0", "aliases": ""}, "sleeping": {"keywords": "sleeping face face sleepy tired sleep sleepy sleeping snore", "shortname": ":sleeping:", "unicode": "1F634", "aliases": ""}, "pouch": {"keywords": "pouch accessories bag pouch bag cosmetic packing grandma makeup", "shortname": ":pouch:", "unicode": "1F45D", "aliases": ""}, "jack_o_lantern": {"keywords": "jack-o-lantern halloween jack-o-lantern pumpkin halloween holiday carve autumn fall october saints costume spooky horror scary scared dead", "shortname": ":jack_o_lantern:", "unicode": "1F383", "aliases": ""}, "izakaya_lantern": {"keywords": "izakaya lantern light izakaya lantern stay drink alcohol bar sake restaurant", "shortname": ":izakaya_lantern:", "unicode": "1F3EE", "aliases": ""}, "palm_tree": {"keywords": "palm tree nature plant vegetable palm tree coconuts fronds warm tropical", "shortname": ":palm_tree:", "unicode": "1F334", "aliases": ""}, "cat": {"keywords": "cat face animal meow", "shortname": ":cat:", "unicode": "1F431", "aliases": ""}, "dizzy": {"keywords": "dizzy symbol shoot sparkle star dizzy drunk sick intoxicated squeans starburst star", "shortname": ":dizzy:", "unicode": "1F4AB", "aliases": ""}, "nine": {"keywords": "digit nine 9 blue-square numbers", "shortname": ":nine:", "unicode": "0039-20E3", "aliases": ""}, "chocolate_bar": {"keywords": "chocolate bar desert food snack chocolate bar candy coca hershey&#039;s", "shortname": ":chocolate_bar:", "unicode": "1F36B", "aliases": ""}, "v": {"keywords": "victory hand fingers hand ohyeah peace two victory", "shortname": ":v:", "unicode": "270C", "aliases": ""}, "running_shirt_with_sash": {"keywords": "running shirt with sash pageant play running run shirt cloths compete sports", "shortname": ":running_shirt_with_sash:", "unicode": "1F3BD", "aliases": ""}, "raised_hands": {"keywords": "person raising both hands in celebration gesture hooray winning woot yay banzai", "shortname": ":raised_hands:", "unicode": "1F64C", "aliases": ""}, "put_litter_in_its_place": {"keywords": "put litter in its place symbol blue-square litter waste trash garbage receptacle can", "shortname": ":put_litter_in_its_place:", "unicode": "1F6AE", "aliases": ""}, "game_die": {"keywords": "game die dice game die dice craps gamble play", "shortname": ":game_die:", "unicode": "1F3B2", "aliases": ""}, "abcd": {"keywords": "input symbol for latin small letters alphabet blue-square", "shortname": ":abcd:", "unicode": "1F521", "aliases": ""}, "heart": {"keywords": "heavy black heart like love red pink black heart love passion romance intense desire death evil cold valentines", "shortname": ":heart:", "unicode": "2764", "aliases": ""}, "chart_with_upwards_trend": {"keywords": "chart with upwards trend graph", "shortname": ":chart_with_upwards_trend:", "unicode": "1F4C8", "aliases": ""}, "green_heart": {"keywords": "green heart affection like love valentines green heart love nature rebirth reborn jealous clingy envious possessive", "shortname": ":green_heart:", "unicode": "1F49A", "aliases": ""}, "hamburger": {"keywords": "hamburger food meat hamburger burger meat cow beef", "shortname": ":hamburger:", "unicode": "1F354", "aliases": ""}, "pushpin": {"keywords": "pushpin stationery", "shortname": ":pushpin:", "unicode": "1F4CC", "aliases": ""}, "lock": {"keywords": "lock password security", "shortname": ":lock:", "unicode": "1F512", "aliases": ""}, "dolphin": {"keywords": "dolphin animal fins fish flipper nature ocean sea", "shortname": ":dolphin:", "unicode": "1F42C", "aliases": ""}, "confused": {"keywords": "confused face confused confuse daze perplex puzzle indifference skeptical undecided uneasy hesitant", "shortname": ":confused:", "unicode": "1F615", "aliases": ""}, "accept": {"keywords": "circled ideograph accept agree chinese good kanji ok yes", "shortname": ":accept:", "unicode": "1F251", "aliases": ""}, "night_with_stars": {"keywords": "night with stars night star cloudless evening planets space sky", "shortname": ":night_with_stars:", "unicode": "1F303", "aliases": ""}, "pig2": {"keywords": "pig animal nature pig piggy pork ham hog bacon oink slop livestock greed greedy", "shortname": ":pig2:", "unicode": "1F416", "aliases": ""}, "white_medium_small_square": {"keywords": "white medium small square shape", "shortname": ":white_medium_small_square:", "unicode": "25FD", "aliases": ""}, "sunglasses": {"keywords": "smiling face with sunglasses cool face smiling sunglasses sun glasses sunny cool smooth", "shortname": ":sunglasses:", "unicode": "1F60E", "aliases": ""}, "airplane": {"keywords": "airplane flight transportation vehicle airplane plane airport travel airlines fly jet jumbo boeing airbus", "shortname": ":airplane:", "unicode": "2708", "aliases": ""}, "dress": {"keywords": "dress clothes fashion", "shortname": ":dress:", "unicode": "1F457", "aliases": ""}, "kissing_closed_eyes": {"keywords": "kissing face with closed eyes affection face infatuation like love valentines kissing kiss passion puckered heart love smooch", "shortname": ":kissing_closed_eyes:", "unicode": "1F61A", "aliases": ""}, "earth_americas": {"keywords": "earth globe americas USA globe international world earth globe space planet north south america americas home", "shortname": ":earth_americas:", "unicode": "1F30E", "aliases": ""}, "scorpius": {"keywords": "scorpius scorpius scorpion scorpio astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":scorpius:", "unicode": "264F", "aliases": ""}, "sailboat": {"keywords": "sailboat ship transportation", "shortname": ":sailboat:", "unicode": "26F5", "aliases": ""}, "speedboat": {"keywords": "speedboat ship transportation vehicle motor speed ski power boat", "shortname": ":speedboat:", "unicode": "1F6A4", "aliases": ""}, "six": {"keywords": "digit six 6 blue-square numbers", "shortname": ":six:", "unicode": "0036-20E3", "aliases": ""}, "ledger": {"keywords": "ledger notes paper", "shortname": ":ledger:", "unicode": "1F4D2", "aliases": ""}, "id": {"keywords": "squared id purple-square words", "shortname": ":id:", "unicode": "1F194", "aliases": ""}, "tomato": {"keywords": "tomato food fruit nature vegetable tomato fruit sauce italian", "shortname": ":tomato:", "unicode": "1F345", "aliases": ""}, "leftwards_arrow_with_hook": {"keywords": "leftwards arrow with hook ", "shortname": ":leftwards_arrow_with_hook:", "unicode": "21A9", "aliases": ""}, "rewind": {"keywords": "black left-pointing double triangle blue-square play", "shortname": ":rewind:", "unicode": "23EA", "aliases": ""}, "wavy_dash": {"keywords": "wavy dash draw line", "shortname": ":wavy_dash:", "unicode": "3030", "aliases": ""}, "earth_asia": {"keywords": "earth globe asia-australia east globe international world earth globe space planet asia australia home", "shortname": ":earth_asia:", "unicode": "1F30F", "aliases": ""}, "goat": {"keywords": "goat animal nature goat sheep kid billy livestock", "shortname": ":goat:", "unicode": "1F410", "aliases": ""}, "pizza": {"keywords": "slice of pizza food party pizza pie new york italian italy slice peperoni", "shortname": ":pizza:", "unicode": "1F355", "aliases": ""}, "heavy_check_mark": {"keywords": "heavy check mark nike ok", "shortname": ":heavy_check_mark:", "unicode": "2714", "aliases": ""}, "bouquet": {"keywords": "bouquet flowers nature", "shortname": ":bouquet:", "unicode": "1F490", "aliases": ""}, "disappointed_relieved": {"keywords": "disappointed but relieved face face nervous phew sweat disappoint relief", "shortname": ":disappointed_relieved:", "unicode": "1F625", "aliases": ""}, "sunny": {"keywords": "black sun with rays brightness weather", "shortname": ":sunny:", "unicode": "2600", "aliases": ""}, "customs": {"keywords": "customs border passport customs travel foreign goods check authority government", "shortname": ":customs:", "unicode": "1F6C3", "aliases": ""}, "sun_with_face": {"keywords": "sun with face morning sun anthropomorphic face sky", "shortname": ":sun_with_face:", "unicode": "1F31E", "aliases": ""}, "birthday": {"keywords": "birthday cake cake party birthday birth cake dessert wish celebrate", "shortname": ":birthday:", "unicode": "1F382", "aliases": ""}, "fast_forward": {"keywords": "black right-pointing double triangle blue-square", "shortname": ":fast_forward:", "unicode": "23E9", "aliases": ""}, "heartpulse": {"keywords": "growing heart affection like love valentines", "shortname": ":heartpulse:", "unicode": "1F497", "aliases": ""}, "mag": {"keywords": "left-pointing magnifying glass search zoom detective investigator detail details", "shortname": ":mag:", "unicode": "1F50D", "aliases": ""}, "date": {"keywords": "calendar calendar schedule", "shortname": ":date:", "unicode": "1F4C5", "aliases": ""}, "sparkles": {"keywords": "sparkles cool shine shiny stars", "shortname": ":sparkles:", "unicode": "2728", "aliases": ""}, "man": {"keywords": "man classy dad father guy mustashe", "shortname": ":man:", "unicode": "1F468", "aliases": ""}, "a": {"keywords": "negative squared latin capital letter a alphabet letter red-square", "shortname": ":a:", "unicode": "1F170", "aliases": ""}, "headphones": {"keywords": "headphone gadgets music score headphone sound music ears beats buds audio listen", "shortname": ":headphones:", "unicode": "1F3A7", "aliases": ""}, "curry": {"keywords": "curry and rice food hot indian spicy curry spice flavor food meal", "shortname": ":curry:", "unicode": "1F35B", "aliases": ""}, "wheelchair": {"keywords": "wheelchair symbol blue-square disabled", "shortname": ":wheelchair:", "unicode": "267F", "aliases": ""}, "dragon": {"keywords": "dragon animal chinese green myth nature dragon fire legendary myth", "shortname": ":dragon:", "unicode": "1F409", "aliases": ""}, "tulip": {"keywords": "tulip flowers nature plant tulip flower bulb spring easter", "shortname": ":tulip:", "unicode": "1F337", "aliases": ""}, "truck": {"keywords": "delivery truck cars transportation truck delivery package", "shortname": ":truck:", "unicode": "1F69A", "aliases": ""}, "wrench": {"keywords": "wrench diy ikea tools", "shortname": ":wrench:", "unicode": "1F527", "aliases": ""}, "ambulance": {"keywords": "ambulance 911 health ambulance emergency medical help assistance", "shortname": ":ambulance:", "unicode": "1F691", "aliases": ""}, "sa": {"keywords": "squared katakana sa blue-square japanese", "shortname": ":sa:", "unicode": "1F202", "aliases": ""}, "point_up_2": {"keywords": "white up pointing backhand index direction fingers hand", "shortname": ":point_up_2:", "unicode": "1F446", "aliases": ""}, "egg": {"keywords": "cooking breakfast food egg fry pan flat cook frying cooking utensil", "shortname": ":egg:", "unicode": "1F373", "aliases": ""}, "small_red_triangle": {"keywords": "up-pointing red triangle shape", "shortname": ":small_red_triangle:", "unicode": "1F53A", "aliases": ""}, "office": {"keywords": "office building building bureau work", "shortname": ":office:", "unicode": "1F3E2", "aliases": ""}, "mute": {"keywords": "speaker with cancellation stroke sound volume", "shortname": ":mute:", "unicode": "1F507", "aliases": ""}, "clapper": {"keywords": "clapper board film movie record clapper board clapboard movie film take", "shortname": ":clapper:", "unicode": "1F3AC", "aliases": ""}, "haircut": {"keywords": "haircut female girl woman", "shortname": ":haircut:", "unicode": "1F487", "aliases": ""}, "soon": {"keywords": "soon with rightwards arrow above arrow words", "shortname": ":soon:", "unicode": "1F51C", "aliases": ""}, "symbols": {"keywords": "input symbol for symbols blue-square", "shortname": ":symbols:", "unicode": "1F523", "aliases": ""}, "sob": {"keywords": "loudly crying face cry face sad tears upset cry sob tears sad melancholy morn somber hurt", "shortname": ":sob:", "unicode": "1F62D", "aliases": ""}, "wolf": {"keywords": "wolf face animal nature", "shortname": ":wolf:", "unicode": "1F43A", "aliases": ""}, "japan": {"keywords": "silhouette of japan nation", "shortname": ":japan:", "unicode": "1F5FE", "aliases": ""}, "post_office": {"keywords": "japanese post office building communication email", "shortname": ":post_office:", "unicode": "1F3E3", "aliases": ""}, "last_quarter_moon_with_face": {"keywords": "last quarter moon with face nature moon last quarter anthropomorphic face sky night cheese phase", "shortname": ":last_quarter_moon_with_face:", "unicode": "1F31C", "aliases": ""}, "pray": {"keywords": "person with folded hands highfive hope namaste please wish pray high five hands sorrow regret sorry", "shortname": ":pray:", "unicode": "1F64F", "aliases": ""}, "flushed": {"keywords": "flushed face blush face flattered flush blush red pink cheeks shy", "shortname": ":flushed:", "unicode": "1F633", "aliases": ""}, "dizzy_face": {"keywords": "dizzy face dizzy drunk inebriated face spent unconscious xox", "shortname": ":dizzy_face:", "unicode": "1F635", "aliases": ""}, "rugby_football": {"keywords": "rugby football sports rugby football ball sport team england", "shortname": ":rugby_football:", "unicode": "1F3C9", "aliases": ""}, "currency_exchange": {"keywords": "currency exchange dollar money travel", "shortname": ":currency_exchange:", "unicode": "1F4B1", "aliases": ""}, "paperclip": {"keywords": "paperclip documents stationery", "shortname": ":paperclip:", "unicode": "1F4CE", "aliases": ""}, "moneybag": {"keywords": "money bag coins dollar payment", "shortname": ":moneybag:", "unicode": "1F4B0", "aliases": ""}, "mailbox_with_no_mail": {"keywords": "open mailbox with lowered flag email inbox", "shortname": ":mailbox_with_no_mail:", "unicode": "1F4ED", "aliases": ""}, "soccer": {"keywords": "soccer ball balls fifa football sports european football", "shortname": ":soccer:", "unicode": "26BD", "aliases": ""}, "dolls": {"keywords": "japanese dolls japanese kimono toy dolls japan japanese day girls emperor empress pray blessing imperial family royal", "shortname": ":dolls:", "unicode": "1F38E", "aliases": ""}, "poop": {"keywords": "pile of poo poop shit shitface turd poo", "shortname": ":poop:", "unicode": "1F4A9", "aliases": ":shit: :hankey: :poo:"}, "coffee": {"keywords": "hot beverage beverage cafe drink espresso", "shortname": ":coffee:", "unicode": "2615", "aliases": ""}, "full_moon_with_face": {"keywords": "full moon with face night moon full anthropomorphic face sky night cheese phase spooky werewolves monsters", "shortname": ":full_moon_with_face:", "unicode": "1F31D", "aliases": ""}, "neutral_face": {"keywords": "neutral face face indifference neutral objective impartial blank", "shortname": ":neutral_face:", "unicode": "1F610", "aliases": ""}, "elephant": {"keywords": "elephant animal nature nose thailand", "shortname": ":elephant:", "unicode": "1F418", "aliases": ""}, "open_mouth": {"keywords": "face with open mouth face impressed mouth open jaw gapping surprise wow", "shortname": ":open_mouth:", "unicode": "1F62E", "aliases": ""}, "bar_chart": {"keywords": "bar chart graph presentation stats", "shortname": ":bar_chart:", "unicode": "1F4CA", "aliases": ""}, "european_castle": {"keywords": "european castle building history royalty castle european residence royalty disneyland disney fort fortified moat tower princess prince lord king queen fortress nobel stronghold", "shortname": ":european_castle:", "unicode": "1F3F0", "aliases": ""}, "signal_strength": {"keywords": "antenna with bars blue-square", "shortname": ":signal_strength:", "unicode": "1F4F6", "aliases": ""}, "monkey_face": {"keywords": "monkey face animal nature", "shortname": ":monkey_face:", "unicode": "1F435", "aliases": ""}, "snake": {"keywords": "snake animal evil", "shortname": ":snake:", "unicode": "1F40D", "aliases": ""}, "kiss": {"keywords": "kiss mark affection face like lips love valentines", "shortname": ":kiss:", "unicode": "1F48B", "aliases": ""}, "blue_car": {"keywords": "recreational vehicle car suv car wagon automobile", "shortname": ":blue_car:", "unicode": "1F699", "aliases": ""}, "confetti_ball": {"keywords": "confetti ball festival party party congratulations confetti ball celebrate win birthday new years wedding", "shortname": ":confetti_ball:", "unicode": "1F38A", "aliases": ""}, "bath": {"keywords": "bath clean shower bath tub basin wash bubble soak bathroom soap water clean shampoo lather water", "shortname": ":bath:", "unicode": "1F6C0", "aliases": ""}, "bank": {"keywords": "bank building", "shortname": ":bank:", "unicode": "1F3E6", "aliases": ""}, "bread": {"keywords": "bread breakfast food toast wheat bread loaf yeast", "shortname": ":bread:", "unicode": "1F35E", "aliases": ""}, "rice_ball": {"keywords": "rice ball food japanese rice ball white nori seaweed japanese", "shortname": ":rice_ball:", "unicode": "1F359", "aliases": ""}, "oncoming_police_car": {"keywords": "oncoming police car enforcement law vehicle police car emergency ticket citation crime help officer", "shortname": ":oncoming_police_car:", "unicode": "1F694", "aliases": ""}, "tram": {"keywords": "tram transportation vehicle tram transportation transport", "shortname": ":tram:", "unicode": "1F68A", "aliases": ""}, "point_left": {"keywords": "white left pointing backhand index direction fingers hand", "shortname": ":point_left:", "unicode": "1F448", "aliases": ""}, "tokyo_tower": {"keywords": "tokyo tower japan photo", "shortname": ":tokyo_tower:", "unicode": "1F5FC", "aliases": ""}, "sos": {"keywords": "squared sos emergency help red-square words", "shortname": ":sos:", "unicode": "1F198", "aliases": ""}, "weary": {"keywords": "weary face face frustrated sad sleepy tired weary sleepy tired tiredness study finals school exhausted", "shortname": ":weary:", "unicode": "1F629", "aliases": ""}, "clock930": {"keywords": "clock face nine-thirty clock time", "shortname": ":clock930:", "unicode": "1F564", "aliases": ""}, "fishing_pole_and_fish": {"keywords": "fishing pole and fish food hobby fish fishing pole", "shortname": ":fishing_pole_and_fish:", "unicode": "1F3A3", "aliases": ""}, "repeat_one": {"keywords": "clockwise rightwards and leftwards open circle arr blue-square loop", "shortname": ":repeat_one:", "unicode": "1F502", "aliases": ""}, "bowling": {"keywords": "bowling fun play sports bowl bowling ball pin strike spare game", "shortname": ":bowling:", "unicode": "1F3B3", "aliases": ""}, "thumbsdown": {"keywords": "thumbs down sign hand no", "shortname": ":thumbsdown:", "unicode": "1F44E", "aliases": ":-1:"}, "older_woman": {"keywords": "older woman female girl women grandma grandmother", "shortname": ":older_woman:", "unicode": "1F475", "aliases": ":grandma:"}, "smiley_cat": {"keywords": "smiling cat face with open mouth animal cats happy smile smiley cat happy", "shortname": ":smiley_cat:", "unicode": "1F63A", "aliases": ""}, "information_source": {"keywords": "information source alphabet blue-square letter", "shortname": ":information_source:", "unicode": "2139", "aliases": ""}, "telescope": {"keywords": "telescope space stars", "shortname": ":telescope:", "unicode": "1F52D", "aliases": ""}, "beginner": {"keywords": "japanese symbol for beginner badge shield", "shortname": ":beginner:", "unicode": "1F530", "aliases": ""}, "postal_horn": {"keywords": "postal horn instrument music", "shortname": ":postal_horn:", "unicode": "1F4EF", "aliases": ""}, "house": {"keywords": "house building building home house home residence dwelling mansion bungalow ranch craftsman", "shortname": ":house:", "unicode": "1F3E0", "aliases": ""}, "fish": {"keywords": "fish animal food nature", "shortname": ":fish:", "unicode": "1F41F", "aliases": ""}, "construction_worker": {"keywords": "construction worker human male man wip", "shortname": ":construction_worker:", "unicode": "1F477", "aliases": ""}, "u7121": {"keywords": "squared cjk unified ideograph-7121 chinese japanese kanji no nothing orange-square", "shortname": ":u7121:", "unicode": "1F21A", "aliases": ""}, "mobile_phone_off": {"keywords": "mobile phone off mute", "shortname": ":mobile_phone_off:", "unicode": "1F4F4", "aliases": ""}, "unlock": {"keywords": "open lock privacy security", "shortname": ":unlock:", "unicode": "1F513", "aliases": ""}, "books": {"keywords": "books library literature", "shortname": ":books:", "unicode": "1F4DA", "aliases": ""}, "fist": {"keywords": "raised fist fingers grasp hand", "shortname": ":fist:", "unicode": "270A", "aliases": ""}, "beetle": {"keywords": "lady beetle insect nature lady bug ladybug ladybird beetle cow lady cow insect endearment", "shortname": ":beetle:", "unicode": "1F41E", "aliases": ""}, "lock_with_ink_pen": {"keywords": "lock with ink pen secret security", "shortname": ":lock_with_ink_pen:", "unicode": "1F50F", "aliases": ""}, "girl": {"keywords": "girl female woman", "shortname": ":girl:", "unicode": "1F467", "aliases": ""}, "calling": {"keywords": "mobile phone with rightwards arrow at left incoming iphone", "shortname": ":calling:", "unicode": "1F4F2", "aliases": ""}, "sunrise": {"keywords": "sunrise morning photo vacation view sunrise sun morning color sky", "shortname": ":sunrise:", "unicode": "1F305", "aliases": ""}, "briefcase": {"keywords": "briefcase business documents work", "shortname": ":briefcase:", "unicode": "1F4BC", "aliases": ""}, "exclamation": {"keywords": "heavy exclamation mark symbol surprise", "shortname": ":exclamation:", "unicode": "2757", "aliases": ""}, "video_game": {"keywords": "video game PS4 console controller play video game console controller nintendo xbox playstation", "shortname": ":video_game:", "unicode": "1F3AE", "aliases": ""}, "lipstick": {"keywords": "lipstick fashion female girl", "shortname": ":lipstick:", "unicode": "1F484", "aliases": ""}, "smirk": {"keywords": "smirking face mean prank smile smug smirking smirk smug smile half-smile conceited", "shortname": ":smirk:", "unicode": "1F60F", "aliases": ""}, "fish_cake": {"keywords": "fish cake with swirl design food fish cake kamboko swirl ramen noodles naruto", "shortname": ":fish_cake:", "unicode": "1F365", "aliases": ""}, "factory": {"keywords": "factory building", "shortname": ":factory:", "unicode": "1F3ED", "aliases": ""}, "baggage_claim": {"keywords": "baggage claim airport blue-square transport bag baggage luggage travel", "shortname": ":baggage_claim:", "unicode": "1F6C4", "aliases": ""}, "cherry_blossom": {"keywords": "cherry blossom flower nature plant cherry blossom tree flower", "shortname": ":cherry_blossom:", "unicode": "1F338", "aliases": ""}, "sparkle": {"keywords": "sparkle green-square stars", "shortname": ":sparkle:", "unicode": "2747", "aliases": ""}, "fountain": {"keywords": "fountain photo", "shortname": ":fountain:", "unicode": "26F2", "aliases": ""}, "zap": {"keywords": "high voltage sign lightning bolt thunder weather", "shortname": ":zap:", "unicode": "26A1", "aliases": ""}, "speak_no_evil": {"keywords": "speak-no-evil monkey animal monkey monkey mouth talk say words verbal verbalize oral iwazaru", "shortname": ":speak_no_evil:", "unicode": "1F64A", "aliases": ""}, "cyclone": {"keywords": "cyclone blue cloud swirl weather cyclone hurricane typhoon storm ocean", "shortname": ":cyclone:", "unicode": "1F300", "aliases": ""}, "blue_book": {"keywords": "blue book knowledge library read", "shortname": ":blue_book:", "unicode": "1F4D8", "aliases": ""}, "dancers": {"keywords": "woman with bunny ears bunny female girls women dancing dancers showgirl playboy costume bunny cancan", "shortname": ":dancers:", "unicode": "1F46F", "aliases": ""}, "flower_playing_cards": {"keywords": "flower playing cards playing card flower game august moon special", "shortname": ":flower_playing_cards:", "unicode": "1F3B4", "aliases": ""}, "umbrella": {"keywords": "umbrella with rain drops rain weather", "shortname": ":umbrella:", "unicode": "2614", "aliases": ""}, "octopus": {"keywords": "octopus animal creature ocean sea", "shortname": ":octopus:", "unicode": "1F419", "aliases": ""}, "hatching_chick": {"keywords": "hatching chick born chicken egg chick egg baby bird chicken young woman cute", "shortname": ":hatching_chick:", "unicode": "1F423", "aliases": ""}, "free": {"keywords": "squared free blue-square words", "shortname": ":free:", "unicode": "1F193", "aliases": ""}, "traffic_light": {"keywords": "horizontal traffic light traffic transportation traffic light stop go yield horizontal", "shortname": ":traffic_light:", "unicode": "1F6A5", "aliases": ""}, "grimacing": {"keywords": "grimacing face face grimace teeth grimace disapprove pain", "shortname": ":grimacing:", "unicode": "1F62C", "aliases": ""}, "bullettrain_side": {"keywords": "high-speed train transportation vehicle train bullet rail", "shortname": ":bullettrain_side:", "unicode": "1F684", "aliases": ""}, "poultry_leg": {"keywords": "poultry leg food meat poultry leg chicken fried", "shortname": ":poultry_leg:", "unicode": "1F357", "aliases": ""}, "grapes": {"keywords": "grapes food fruit grapes wine vinegar fruit cluster vine", "shortname": ":grapes:", "unicode": "1F347", "aliases": ""}, "smirk_cat": {"keywords": "cat face with wry smile animal cats smirk smirking wry confident confidence", "shortname": ":smirk_cat:", "unicode": "1F63C", "aliases": ""}, "lollipop": {"keywords": "lollipop candy food snack sweet lollipop stick lick sweet sugar candy", "shortname": ":lollipop:", "unicode": "1F36D", "aliases": ""}, "high_heel": {"keywords": "high-heeled shoe fashion female shoes", "shortname": ":high_heel:", "unicode": "1F460", "aliases": ""}, "black_medium_small_square": {"keywords": "black medium small square ", "shortname": ":black_medium_small_square:", "unicode": "25FE", "aliases": ""}, "green_book": {"keywords": "green book knowledge library read", "shortname": ":green_book:", "unicode": "1F4D7", "aliases": ""}, "atm": {"keywords": "automated teller machine atm cash withdrawal money deposit financial bank adam payday bank blue-square cash money payment", "shortname": ":atm:", "unicode": "1F3E7", "aliases": ""}, "fork_and_knife": {"keywords": "fork and knife cutlery kitchen fork knife restaurant meal food eat", "shortname": ":fork_and_knife:", "unicode": "1F374", "aliases": ""}, "passport_control": {"keywords": "passport control blue-square custom passport official travel control foreign identification", "shortname": ":passport_control:", "unicode": "1F6C2", "aliases": ""}, "bookmark": {"keywords": "bookmark favorite", "shortname": ":bookmark:", "unicode": "1F516", "aliases": ""}, "small_blue_diamond": {"keywords": "small blue diamond shape", "shortname": ":small_blue_diamond:", "unicode": "1F539", "aliases": ""}, "yum": {"keywords": "face savouring delicious food face happy joy smile tongue delicious savoring food eat yummy yum tasty savory", "shortname": ":yum:", "unicode": "1F60B", "aliases": ""}, "closed_lock_with_key": {"keywords": "closed lock with key privacy security", "shortname": ":closed_lock_with_key:", "unicode": "1F510", "aliases": ""}, "heartbeat": {"keywords": "beating heart affection like love valentines", "shortname": ":heartbeat:", "unicode": "1F493", "aliases": ""}, "blush": {"keywords": "smiling face with smiling eyes crush embarrassed face flushed happy shy smile smiling smile smiley", "shortname": ":blush:", "unicode": "1F60A", "aliases": ""}, "warning": {"keywords": "warning sign exclamation wip", "shortname": ":warning:", "unicode": "26A0", "aliases": ""}, "ophiuchus": {"keywords": "ophiuchus ophiuchus serpent snake astrology greek constellation stars zodiac purple-square sign horoscope", "shortname": ":ophiuchus:", "unicode": "26CE", "aliases": ""}, "revolving_hearts": {"keywords": "revolving hearts affection like love valentines heart hearts revolving moving circle multiple lovers", "shortname": ":revolving_hearts:", "unicode": "1F49E", "aliases": ""}, "fire_engine": {"keywords": "fire engine cars transportation vehicle fire fighter engine truck emergency medical", "shortname": ":fire_engine:", "unicode": "1F692", "aliases": ""}, "one": {"keywords": "digit one 1 blue-square numbers", "shortname": ":one:", "unicode": "0031-20E3", "aliases": ""}, "feet": {"keywords": "paw prints animal cat dog footprints paw pet tracking paw prints mark imprints footsteps animal lion bear dog cat raccoon critter feet pawsteps", "shortname": ":feet:", "unicode": "1F43E", "aliases": ""}, "sparkler": {"keywords": "firework sparkler night shine stars", "shortname": ":sparkler:", "unicode": "1F387", "aliases": ""}, "cow2": {"keywords": "cow animal beef nature ox cow milk dairy beef bessie moo", "shortname": ":cow2:", "unicode": "1F404", "aliases": ""}, "scissors": {"keywords": "black scissors cut stationery", "shortname": ":scissors:", "unicode": "2702", "aliases": ""}, "ring": {"keywords": "ring marriage propose valentines wedding", "shortname": ":ring:", "unicode": "1F48D", "aliases": ""}, "whale": {"keywords": "spouting whale animal nature ocean sea", "shortname": ":whale:", "unicode": "1F433", "aliases": ""}, "point_right": {"keywords": "white right pointing backhand index direction fingers hand", "shortname": ":point_right:", "unicode": "1F449", "aliases": ""}, "sheep": {"keywords": "sheep animal nature sheep wool flock follower ewe female lamb", "shortname": ":sheep:", "unicode": "1F411", "aliases": ""}, "horse": {"keywords": "horse face animal brown", "shortname": ":horse:", "unicode": "1F434", "aliases": ""}, "basketball": {"keywords": "basketball and hoop NBA balls sports basketball bball dribble hoop net swish rip city", "shortname": ":basketball:", "unicode": "1F3C0", "aliases": ""}, "monkey": {"keywords": "monkey animal nature monkey primate banana silly", "shortname": ":monkey:", "unicode": "1F412", "aliases": ""}, "blossom": {"keywords": "blossom flowers nature yellow blossom daisy flower", "shortname": ":blossom:", "unicode": "1F33C", "aliases": ""}, "gift_heart": {"keywords": "heart with ribbon love valentines", "shortname": ":gift_heart:", "unicode": "1F49D", "aliases": ""}, "top": {"keywords": "top with upwards arrow above blue-square words", "shortname": ":top:", "unicode": "1F51D", "aliases": ""}, "arrow_upper_right": {"keywords": "north east arrow blue-square", "shortname": ":arrow_upper_right:", "unicode": "2197", "aliases": ""}, "clock630": {"keywords": "clock face six-thirty clock time", "shortname": ":clock630:", "unicode": "1F561", "aliases": ""}, "station": {"keywords": "station public transportation vehicle station train subway", "shortname": ":station:", "unicode": "1F689", "aliases": ""}, "clock730": {"keywords": "clock face seven-thirty clock time", "shortname": ":clock730:", "unicode": "1F562", "aliases": ""}, "banana": {"keywords": "banana food fruit banana peel bunch", "shortname": ":banana:", "unicode": "1F34C", "aliases": ""}, "crescent_moon": {"keywords": "crescent moon night moon crescent waxing sky night cheese phase", "shortname": ":crescent_moon:", "unicode": "1F319", "aliases": ""}, "nail_care": {"keywords": "nail polish beauty manicure", "shortname": ":nail_care:", "unicode": "1F485", "aliases": ""}, "eyes": {"keywords": "eyes look peek stalk watch", "shortname": ":eyes:", "unicode": "1F440", "aliases": ""}, "shell": {"keywords": "spiral shell beach nature sea shell spiral beach sand crab nautilus", "shortname": ":shell:", "unicode": "1F41A", "aliases": ""}, "relieved": {"keywords": "relieved face face happiness massage phew relaxed relieved satisfied phew relief", "shortname": ":relieved:", "unicode": "1F60C", "aliases": ""}, "hotel": {"keywords": "hotel accomodation building checkin whotel hotel motel holiday inn hospital", "shortname": ":hotel:", "unicode": "1F3E8", "aliases": ""}, "small_red_triangle_down": {"keywords": "down-pointing red triangle shape", "shortname": ":small_red_triangle_down:", "unicode": "1F53B", "aliases": ""}, "broken_heart": {"keywords": "broken heart sad sorry", "shortname": ":broken_heart:", "unicode": "1F494", "aliases": ""}, "nut_and_bolt": {"keywords": "nut and bolt handy tools", "shortname": ":nut_and_bolt:", "unicode": "1F529", "aliases": ""}, "aerial_tramway": {"keywords": "aerial tramway transportation vehicle aerial tram tramway cable transport", "shortname": ":aerial_tramway:", "unicode": "1F6A1", "aliases": ""}, "sweat_drops": {"keywords": "splashing sweat symbol water", "shortname": ":sweat_drops:", "unicode": "1F4A6", "aliases": ""}, "panda_face": {"keywords": "panda face animal nature panda bear face cub cute endearment friendship love bamboo china black white", "shortname": ":panda_face:", "unicode": "1F43C", "aliases": ""}, "minibus": {"keywords": "minibus car transportation vehicle bus city transport transportation", "shortname": ":minibus:", "unicode": "1F690", "aliases": ""}, "b": {"keywords": "negative squared latin capital letter b alphabet letter red-square", "shortname": ":b:", "unicode": "1F171", "aliases": ""}, "unamused": {"keywords": "unamused face bored face indifference serious straight face unamused not amused depressed unhappy disapprove lame", "shortname": ":unamused:", "unicode": "1F612", "aliases": ""}, "fuelpump": {"keywords": "fuel pump gas station petroleum", "shortname": ":fuelpump:", "unicode": "26FD", "aliases": ""}, "bee": {"keywords": "honeybee animal insect bee queen buzz flower pollen sting honey hive bumble pollination", "shortname": ":bee:", "unicode": "1F41D", "aliases": ""}, "scream_cat": {"keywords": "weary cat face animal cats munch weary sleepy tired tiredness study finals school exhausted scream painting artist", "shortname": ":scream_cat:", "unicode": "1F640", "aliases": ""}, "musical_score": {"keywords": "musical score clef treble music musical score clef g-clef stave staff", "shortname": ":musical_score:", "unicode": "1F3BC", "aliases": ""}, "hourglass_flowing_sand": {"keywords": "hourglass with flowing sand countdown oldschool time", "shortname": ":hourglass_flowing_sand:", "unicode": "23F3", "aliases": ""}, "round_pushpin": {"keywords": "round pushpin stationery", "shortname": ":round_pushpin:", "unicode": "1F4CD", "aliases": ""}, "tophat": {"keywords": "top hat classy gentleman magic top hat cap beaver high tall stove pipe chimney topper london period piece magic magician", "shortname": ":tophat:", "unicode": "1F3A9", "aliases": ""}, "six_pointed_star": {"keywords": "six pointed star with middle dot purple-square", "shortname": ":six_pointed_star:", "unicode": "1F52F", "aliases": ""}, "dog2": {"keywords": "dog animal doge friend nature pet dog puppy pet friend woof bark fido", "shortname": ":dog2:", "unicode": "1F415", "aliases": ""}, "tractor": {"keywords": "tractor agriculture car farming vehicle tractor farm construction machine digger", "shortname": ":tractor:", "unicode": "1F69C", "aliases": ""}, "u6709": {"keywords": "squared cjk unified ideograph-6709 chinese have kanji orange-square", "shortname": ":u6709:", "unicode": "1F236", "aliases": ""}, "u6708": {"keywords": "squared cjk unified ideograph-6708 chinese japanese kanji moon orange-square", "shortname": ":u6708:", "unicode": "1F237", "aliases": ""}, "crying_cat_face": {"keywords": "crying cat face animal cats sad tears weep cry cat sob tears sad melancholy morn somber hurt", "shortname": ":crying_cat_face:", "unicode": "1F63F", "aliases": ""}, "loud_sound": {"keywords": "speaker with three sound waves ", "shortname": ":loud_sound:", "unicode": "1F50A", "aliases": ""}, "arrow_backward": {"keywords": "black left-pointing triangle arrow blue-square", "shortname": ":arrow_backward:", "unicode": "25C0", "aliases": ""}, "runner": {"keywords": "runner exercise man walking run runner jog exercise sprint race dash", "shortname": ":runner:", "unicode": "1F3C3", "aliases": ""}, "ram": {"keywords": "ram animal nature sheep ram sheep male horn horns", "shortname": ":ram:", "unicode": "1F40F", "aliases": ""}, "notebook": {"keywords": "notebook notes paper record stationery", "shortname": ":notebook:", "unicode": "1F4D3", "aliases": ""}, "dash": {"keywords": "dash symbol air fast shoo wind", "shortname": ":dash:", "unicode": "1F4A8", "aliases": ""}, "rat": {"keywords": "rat animal mouse rat rodent crooked snitch", "shortname": ":rat:", "unicode": "1F400", "aliases": ""}, "information_desk_person": {"keywords": "information desk person female girl human woman information help question answer sassy unimpressed attitude snarky", "shortname": ":information_desk_person:", "unicode": "1F481", "aliases": ""}, "anger": {"keywords": "anger symbol anger angry mad", "shortname": ":anger:", "unicode": "1F4A2", "aliases": ""}, "mailbox_with_mail": {"keywords": "open mailbox with raised flag communication email inbox", "shortname": ":mailbox_with_mail:", "unicode": "1F4EC", "aliases": ""}, "milky_way": {"keywords": "milky way photo space milky galaxy star stars planets space sky", "shortname": ":milky_way:", "unicode": "1F30C", "aliases": ""}, "pencil2": {"keywords": "pencil paper stationery write", "shortname": ":pencil2:", "unicode": "270F", "aliases": ""}, "microphone": {"keywords": "microphone PA music sound microphone mic audio sound voice karaoke", "shortname": ":microphone:", "unicode": "1F3A4", "aliases": ""}, "koala": {"keywords": "koala animal nature", "shortname": ":koala:", "unicode": "1F428", "aliases": ""}, "necktie": {"keywords": "necktie cloth fashion formal shirt suitup", "shortname": ":necktie:", "unicode": "1F454", "aliases": ""}, "wink": {"keywords": "winking face face happy mischievous secret wink winking friendly joke", "shortname": ":wink:", "unicode": "1F609", "aliases": ""}, "monorail": {"keywords": "monorail transportation vehicle train mono rail transport", "shortname": ":monorail:", "unicode": "1F69D", "aliases": ""}, "kissing_cat": {"keywords": "kissing cat face with closed eyes animal cats passion kiss puckered heart love", "shortname": ":kissing_cat:", "unicode": "1F63D", "aliases": ""}, "u55b6": {"keywords": "squared cjk unified ideograph-55b6 japanese opening hours", "shortname": ":u55b6:", "unicode": "1F23A", "aliases": ""}, "globe_with_meridians": {"keywords": "globe with meridians earth international world earth meridian globe space planet home", "shortname": ":globe_with_meridians:", "unicode": "1F310", "aliases": ""}, "snowflake": {"keywords": "snowflake christmas cold season weather winter xmas snowflake snow frozen droplet ice crystal cold chilly winter unique special below zero elsa", "shortname": ":snowflake:", "unicode": "2744", "aliases": ""}, "hibiscus": {"keywords": "hibiscus flowers plant vegetable hibiscus flower warm", "shortname": ":hibiscus:", "unicode": "1F33A", "aliases": ""}, "crystal_ball": {"keywords": "crystal ball disco party", "shortname": ":crystal_ball:", "unicode": "1F52E", "aliases": ""}, "koko": {"keywords": "squared katakana koko blue-square destination here japanese katakana", "shortname": ":koko:", "unicode": "1F201", "aliases": ""}, "chart": {"keywords": "chart with upwards trend and yen sign graph green-square", "shortname": ":chart:", "unicode": "1F4B9", "aliases": ""}, "credit_card": {"keywords": "credit card bill dollar money pay payment credit card loan purchase shopping mastercard visa american express wallet signature", "shortname": ":credit_card:", "unicode": "1F4B3", "aliases": ""}, "checkered_flag": {"keywords": "chequered flag contest finishline gokart rase checkered chequred race flag finish complete end", "shortname": ":checkered_flag:", "unicode": "1F3C1", "aliases": ""}, "eight": {"keywords": "digit eight 8 blue-square numbers", "shortname": ":eight:", "unicode": "0038-20E3", "aliases": ""}, "handbag": {"keywords": "handbag accessories accessory bag fashion", "shortname": ":handbag:", "unicode": "1F45C", "aliases": ""}, "pensive": {"keywords": "pensive face face okay sad pensive thoughtful think reflective wistful meditate serious", "shortname": ":pensive:", "unicode": "1F614", "aliases": ""}, "pager": {"keywords": "pager bbcall oldschool", "shortname": ":pager:", "unicode": "1F4DF", "aliases": ""}, "arrows_clockwise": {"keywords": "clockwise downwards and upwards open circle arrows sync", "shortname": ":arrows_clockwise:", "unicode": "1F503", "aliases": ""}, "ballot_box_with_check": {"keywords": "ballot box with check agree ok", "shortname": ":ballot_box_with_check:", "unicode": "2611", "aliases": ""}, "fried_shrimp": {"keywords": "fried shrimp animal food shrimp fried seafood small fish", "shortname": ":fried_shrimp:", "unicode": "1F364", "aliases": ""}, "mans_shoe": {"keywords": "mans shoe fashion male", "shortname": ":mans_shoe:", "unicode": "1F45E", "aliases": ""}, "raised_hand": {"keywords": "raised hand female girl woman", "shortname": ":raised_hand:", "unicode": "270B", "aliases": ""}, "m": {"keywords": "circled latin capital letter m alphabet blue-circle letter", "shortname": ":m:", "unicode": "24C2", "aliases": ""}, "dog": {"keywords": "dog face animal friend nature woof", "shortname": ":dog:", "unicode": "1F436", "aliases": ""}, "police_car": {"keywords": "police car cars enforcement law transportation vehicle police car emergency ticket citation crime help officer", "shortname": ":police_car:", "unicode": "1F693", "aliases": ""}, "new_moon_with_face": {"keywords": "new moon with face nature moon new anthropomorphic face sky night cheese phase", "shortname": ":new_moon_with_face:", "unicode": "1F31A", "aliases": ""}, "ideograph_advantage": {"keywords": "circled ideograph advantage chinese get kanji obtain", "shortname": ":ideograph_advantage:", "unicode": "1F250", "aliases": ""}, "pineapple": {"keywords": "pineapple food fruit nature pineapple pina tropical flower", "shortname": ":pineapple:", "unicode": "1F34D", "aliases": ""}, "black_circle": {"keywords": "medium black circle shape", "shortname": ":black_circle:", "unicode": "26AB", "aliases": ""}, "scream": {"keywords": "face screaming in fear face munch scream painting artist alien", "shortname": ":scream:", "unicode": "1F631", "aliases": ""}, "taxi": {"keywords": "taxi cars transportation uber vehicle taxi car automobile city transport service", "shortname": ":taxi:", "unicode": "1F695", "aliases": ""}, "walking": {"keywords": "pedestrian human man walk pedestrian stroll stride foot feet", "shortname": ":walking:", "unicode": "1F6B6", "aliases": ""}, "golf": {"keywords": "flag in hole business sports", "shortname": ":golf:", "unicode": "26F3", "aliases": ""}, "minidisc": {"keywords": "minidisc data disc disk record technology", "shortname": ":minidisc:", "unicode": "1F4BD", "aliases": ""}, "horse_racing": {"keywords": "horse racing animal betting competition horse race racing jockey triple crown", "shortname": ":horse_racing:", "unicode": "1F3C7", "aliases": ""}, "radio": {"keywords": "radio communication music podcast program", "shortname": ":radio:", "unicode": "1F4FB", "aliases": ""}, "point_down": {"keywords": "white down pointing backhand index direction fingers hand", "shortname": ":point_down:", "unicode": "1F447", "aliases": ""}, "chicken": {"keywords": "chicken animal cluck chicken hen poultry livestock", "shortname": ":chicken:", "unicode": "1F414", "aliases": ""}, "copyright": {"keywords": "copyright sign ip license", "shortname": ":copyright:", "unicode": "00A9", "aliases": ""}, "arrow_lower_right": {"keywords": "south east arrow arrow blue-square", "shortname": ":arrow_lower_right:", "unicode": "2198", "aliases": ""}, "city_sunset": {"keywords": "sunset over buildings photo city scape sunrise dawn light morning metropolitan rise sun", "shortname": ":city_sunset:", "unicode": "1F307", "aliases": ":city_sunrise:"}, "camel": {"keywords": "bactrian camel animal hot nature bactrian camel hump desert central asia heat hot water hump day wednesday sex", "shortname": ":camel:", "unicode": "1F42B", "aliases": ""}, "waning_crescent_moon": {"keywords": "waning crescent moon symbol nature moon crescent waning sky night cheese phase", "shortname": ":waning_crescent_moon:", "unicode": "1F318", "aliases": ""}, "cupid": {"keywords": "heart with arrow affection heart like love valentines", "shortname": ":cupid:", "unicode": "1F498", "aliases": ""}, "mens": {"keywords": "mens symbol restroom toilet wc men bathroom restroom sign boy male avatar", "shortname": ":mens:", "unicode": "1F6B9", "aliases": ""}, "virgo": {"keywords": "virgo sign virgo maiden astrology greek constellation stars zodiac sign zodiac horoscope", "shortname": ":virgo:", "unicode": "264D", "aliases": ""}, "libra": {"keywords": "libra libra scales astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":libra:", "unicode": "264E", "aliases": ""}, "busts_in_silhouette": {"keywords": "busts in silhouette group human man person team user silhouette silhouettes people user members accounts relationship shadow", "shortname": ":busts_in_silhouette:", "unicode": "1F465", "aliases": ""}, "rice": {"keywords": "cooked rice food rice white grain food bowl", "shortname": ":rice:", "unicode": "1F35A", "aliases": ""}, "lips": {"keywords": "mouth kiss mouth", "shortname": ":lips:", "unicode": "1F444", "aliases": ""}, "alarm_clock": {"keywords": "alarm clock time wake", "shortname": ":alarm_clock:", "unicode": "23F0", "aliases": ""}, "couplekiss": {"keywords": "kiss dating like love marriage valentines", "shortname": ":couplekiss:", "unicode": "1F48F", "aliases": ""}, "sagittarius": {"keywords": "sagittarius sagittarius centaur archer astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":sagittarius:", "unicode": "2650", "aliases": ""}, "electric_plug": {"keywords": "electric plug charger power", "shortname": ":electric_plug:", "unicode": "1F50C", "aliases": ""}, "circus_tent": {"keywords": "circus tent carnival festival party circus tent event carnival big top canvas", "shortname": ":circus_tent:", "unicode": "1F3AA", "aliases": ""}, "watch": {"keywords": "watch accessories time", "shortname": ":watch:", "unicode": "231A", "aliases": ""}, "arrow_up": {"keywords": "upwards black arrow blue-square", "shortname": ":arrow_up:", "unicode": "2B06", "aliases": ""}, "bear": {"keywords": "bear face animal nature", "shortname": ":bear:", "unicode": "1F43B", "aliases": ""}, "frowning": {"keywords": "frowning face with open mouth aw face frown sad pout sulk glower", "shortname": ":frowning:", "unicode": "1F626", "aliases": ""}, "incoming_envelope": {"keywords": "incoming envelope email inbox", "shortname": ":incoming_envelope:", "unicode": "1F4E8", "aliases": ""}, "watermelon": {"keywords": "watermelon food fruit melon watermelon summer fruit large", "shortname": ":watermelon:", "unicode": "1F349", "aliases": ""}, "wedding": {"keywords": "wedding affection bride couple groom like love marriage", "shortname": ":wedding:", "unicode": "1F492", "aliases": ""}, "yellow_heart": {"keywords": "yellow heart affection like love valentines yellow gold heart love friendship happy happiness trust compassionate respectful honest caring selfless", "shortname": ":yellow_heart:", "unicode": "1F49B", "aliases": ""}, "no_mobile_phones": {"keywords": "no mobile phones iphone mute", "shortname": ":no_mobile_phones:", "unicode": "1F4F5", "aliases": ""}, "negative_squared_cross_mark": {"keywords": "negative squared cross mark deny green-square no x", "shortname": ":negative_squared_cross_mark:", "unicode": "274E", "aliases": ""}, "cry": {"keywords": "crying face face sad sad cry tear weep tears", "shortname": ":cry:", "unicode": "1F622", "aliases": ""}, "worried": {"keywords": "worried face concern face nervous worried anxious distressed nervous tense", "shortname": ":worried:", "unicode": "1F61F", "aliases": ""}, "microscope": {"keywords": "microscope experiment laboratory zoomin", "shortname": ":microscope:", "unicode": "1F52C", "aliases": ""}, "older_man": {"keywords": "older man human male men", "shortname": ":older_man:", "unicode": "1F474", "aliases": ""}, "whale2": {"keywords": "whale animal nature ocean sea whale blubber bloated fat large massive", "shortname": ":whale2:", "unicode": "1F40B", "aliases": ""}, "x": {"keywords": "cross mark delete no remove", "shortname": ":x:", "unicode": "274C", "aliases": ""}, "interrobang": {"keywords": "exclamation question mark punctuation surprise wat", "shortname": ":interrobang:", "unicode": "2049", "aliases": ""}, "japanese_ogre": {"keywords": "japanese ogre monster japanese oni demon troll ogre folklore monster devil mask theater horns teeth", "shortname": ":japanese_ogre:", "unicode": "1F479", "aliases": ""}, "evergreen_tree": {"keywords": "evergreen tree nature plant evergreen tree needles christmas", "shortname": ":evergreen_tree:", "unicode": "1F332", "aliases": ""}, "oncoming_taxi": {"keywords": "oncoming taxi cars uber vehicle taxi car automobile city transport service", "shortname": ":oncoming_taxi:", "unicode": "1F696", "aliases": ""}, "man_with_turban": {"keywords": "man with turban male turban headdress headwear pagri india indian mummy wisdom peace", "shortname": ":man_with_turban:", "unicode": "1F473", "aliases": ""}, "arrow_up_small": {"keywords": "up-pointing small red triangle blue-square", "shortname": ":arrow_up_small:", "unicode": "1F53C", "aliases": ""}, "art": {"keywords": "artist palette design draw paint artist palette art colors paint draw brush pastels oils", "shortname": ":art:", "unicode": "1F3A8", "aliases": ""}, "cocktail": {"keywords": "cocktail glass alcohol beverage drink drunk cocktail mixed drink alcohol glass martini bar", "shortname": ":cocktail:", "unicode": "1F378", "aliases": ""}, "fries": {"keywords": "french fries chips food fries french potato fry russet idaho", "shortname": ":fries:", "unicode": "1F35F", "aliases": ""}, "hear_no_evil": {"keywords": "hear-no-evil monkey animal monkey monkey ears hear sound kikazaru", "shortname": ":hear_no_evil:", "unicode": "1F649", "aliases": ""}, "convenience_store": {"keywords": "convenience store building", "shortname": ":convenience_store:", "unicode": "1F3EA", "aliases": ""}, "seat": {"keywords": "seat sit", "shortname": ":seat:", "unicode": "1F4BA", "aliases": ""}, "computer": {"keywords": "personal computer laptop tech", "shortname": ":computer:", "unicode": "1F4BB", "aliases": ""}, "arrow_down": {"keywords": "downwards black arrow arrow blue-square", "shortname": ":arrow_down:", "unicode": "2B07", "aliases": ""}, "arrow_upper_left": {"keywords": "north west arrow blue-square", "shortname": ":arrow_upper_left:", "unicode": "2196", "aliases": ""}, "parking": {"keywords": "negative squared latin capital letter p alphabet blue-square cars letter", "shortname": ":parking:", "unicode": "1F17F", "aliases": ""}, "pisces": {"keywords": "pisces pisces fish astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":pisces:", "unicode": "2653", "aliases": ""}, "calendar": {"keywords": "tear-off calendar schedule", "shortname": ":calendar:", "unicode": "1F4C6", "aliases": ""}, "hammer": {"keywords": "hammer done judge law ruling tools verdict", "shortname": ":hammer:", "unicode": "1F528", "aliases": ""}, "bomb": {"keywords": "bomb boom explode", "shortname": ":bomb:", "unicode": "1F4A3", "aliases": ""}, "hourglass": {"keywords": "hourglass clock oldschool time", "shortname": ":hourglass:", "unicode": "231B", "aliases": ""}, "loudspeaker": {"keywords": "public address loudspeaker sound volume", "shortname": ":loudspeaker:", "unicode": "1F4E2", "aliases": ""}, "shower": {"keywords": "shower bath clean wash bathroom shower soap water clean shampoo lather", "shortname": ":shower:", "unicode": "1F6BF", "aliases": ""}, "black_joker": {"keywords": "playing card black joker cards game poker", "shortname": ":black_joker:", "unicode": "1F0CF", "aliases": ""}, "ferris_wheel": {"keywords": "ferris wheel carnival londoneye photo farris wheel amusement park fair ride entertainment", "shortname": ":ferris_wheel:", "unicode": "1F3A1", "aliases": ""}, "bicyclist": {"keywords": "bicyclist bike exercise hipster sports bicyclist road bike pedal bicycle transportation", "shortname": ":bicyclist:", "unicode": "1F6B4", "aliases": ""}, "no_mouth": {"keywords": "face without mouth face hellokitty mouth silent vapid", "shortname": ":no_mouth:", "unicode": "1F636", "aliases": ""}, "postbox": {"keywords": "postbox email envelope letter", "shortname": ":postbox:", "unicode": "1F4EE", "aliases": ""}, "large_blue_diamond": {"keywords": "large blue diamond shape", "shortname": ":large_blue_diamond:", "unicode": "1F537", "aliases": ""}, "non-potable_water": {"keywords": "non-potable water symbol drink faucet tap non-potable water not drinkable dirty gross aqua h20", "shortname": ":non-potable_water:", "unicode": "1F6B1", "aliases": ""}, "icecream": {"keywords": "soft ice cream desert food hot icecream ice cream dairy dessert cold soft serve cone yogurt", "shortname": ":icecream:", "unicode": "1F366", "aliases": ""}, "diamonds": {"keywords": "black diamond suit cards poker", "shortname": ":diamonds:", "unicode": "2666", "aliases": ""}, "princess": {"keywords": "princess blond crown female girl woman princess royal royalty king queen daughter disney high-maintenance", "shortname": ":princess:", "unicode": "1F478", "aliases": ""}, "no_entry_sign": {"keywords": "no entry sign denied disallow forbid limit stop no stop entry", "shortname": ":no_entry_sign:", "unicode": "1F6AB", "aliases": ""}, "shaved_ice": {"keywords": "shaved ice desert hot shaved ice dessert treat syrup flavoring", "shortname": ":shaved_ice:", "unicode": "1F367", "aliases": ""}, "tent": {"keywords": "tent camp outdoors photo", "shortname": ":tent:", "unicode": "26FA", "aliases": ""}, "flashlight": {"keywords": "electric torch dark", "shortname": ":flashlight:", "unicode": "1F526", "aliases": ""}, "raising_hand": {"keywords": "happy person raising one hand female girl woman hand raise notice attention answer", "shortname": ":raising_hand:", "unicode": "1F64B", "aliases": ""}, "wc": {"keywords": "water closet blue-square restroom toilet water closet toilet bathroom throne porcelain waste flush plumbing", "shortname": ":wc:", "unicode": "1F6BE", "aliases": ""}, "joy": {"keywords": "face with tears of joy cry face haha happy tears tears cry joy happy weep", "shortname": ":joy:", "unicode": "1F602", "aliases": ""}, "moyai": {"keywords": "moyai island stone", "shortname": ":moyai:", "unicode": "1F5FF", "aliases": ""}, "aquarius": {"keywords": "aquarius aquarius water bearer astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":aquarius:", "unicode": "2652", "aliases": ""}, "mailbox": {"keywords": "closed mailbox with raised flag communication email inbox", "shortname": ":mailbox:", "unicode": "1F4EB", "aliases": ""}, "guitar": {"keywords": "guitar instrument music guitar string music instrument jam rock acoustic electric", "shortname": ":guitar:", "unicode": "1F3B8", "aliases": ""}, "ok_woman": {"keywords": "face with ok gesture female girl human pink women yes ok okay accept", "shortname": ":ok_woman:", "unicode": "1F646", "aliases": ""}, "key": {"keywords": "key door lock password", "shortname": ":key:", "unicode": "1F511", "aliases": ""}, "blue_heart": {"keywords": "blue heart affection like love valentines blue heart love stability truth loyalty trust", "shortname": ":blue_heart:", "unicode": "1F499", "aliases": ""}, "statue_of_liberty": {"keywords": "statue of liberty american newyork", "shortname": ":statue_of_liberty:", "unicode": "1F5FD", "aliases": ""}, "cop": {"keywords": "police officer arrest enforcement law man police", "shortname": ":cop:", "unicode": "1F46E", "aliases": ""}, "clock1230": {"keywords": "clock face twelve-thirty clock time", "shortname": ":clock1230:", "unicode": "1F567", "aliases": ""}, "tropical_drink": {"keywords": "tropical drink beverage tropical drink mixed pineapple coconut pina fruit umbrella", "shortname": ":tropical_drink:", "unicode": "1F379", "aliases": ""}, "cow": {"keywords": "cow face animal beef ox", "shortname": ":cow:", "unicode": "1F42E", "aliases": ""}, "restroom": {"keywords": "restroom blue-square woman man unisex bathroom restroom sign shared toilet", "shortname": ":restroom:", "unicode": "1F6BB", "aliases": ""}, "white_large_square": {"keywords": "white large square shape", "shortname": ":white_large_square:", "unicode": "2B1C", "aliases": ""}, "eggplant": {"keywords": "aubergine aubergine food nature vegetable eggplant aubergine fruit purple penis", "shortname": ":eggplant:", "unicode": "1F346", "aliases": ""}, "low_brightness": {"keywords": "low brightness symbol summer sun", "shortname": ":low_brightness:", "unicode": "1F505", "aliases": ""}, "four_leaf_clover": {"keywords": "four leaf clover lucky nature plant vegetable clover four leaf luck irish saint patrick green", "shortname": ":four_leaf_clover:", "unicode": "1F340", "aliases": ""}, "space_invader": {"keywords": "alien monster arcade game", "shortname": ":space_invader:", "unicode": "1F47E", "aliases": ""}, "pig_nose": {"keywords": "pig nose animal oink pig nose snout food eat cute oink pink smell truffle", "shortname": ":pig_nose:", "unicode": "1F43D", "aliases": ""}, "cancer": {"keywords": "cancer cancer crab astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":cancer:", "unicode": "264B", "aliases": ""}, "bell": {"keywords": "bell chime christmas notification sound xmas", "shortname": ":bell:", "unicode": "1F514", "aliases": ""}, "battery": {"keywords": "battery energy power sustain", "shortname": ":battery:", "unicode": "1F50B", "aliases": ""}, "jeans": {"keywords": "jeans fashion shopping jeans pants blue denim levi&#039;s levi designer work skinny", "shortname": ":jeans:", "unicode": "1F456", "aliases": ""}, "leo": {"keywords": "leo leo lion astrology greek constellation stars zodiac sign purple-square sign zodiac horoscope", "shortname": ":leo:", "unicode": "264C", "aliases": ""}, "cd": {"keywords": "optical disc disc disk dvd technology", "shortname": ":cd:", "unicode": "1F4BF", "aliases": ""}, "dancer": {"keywords": "dancer female fun girl woman dance dancer dress fancy boogy party celebrate ballet tango cha cha music", "shortname": ":dancer:", "unicode": "1F483", "aliases": ""}, "page_facing_up": {"keywords": "page facing up documents", "shortname": ":page_facing_up:", "unicode": "1F4C4", "aliases": ""}, "church": {"keywords": "church building christ religion", "shortname": ":church:", "unicode": "26EA", "aliases": ""}, "boar": {"keywords": "boar animal nature", "shortname": ":boar:", "unicode": "1F417", "aliases": ""}, "trumpet": {"keywords": "trumpet brass music trumpet brass music instrument", "shortname": ":trumpet:", "unicode": "1F3BA", "aliases": ""}, "angel": {"keywords": "baby angel baby angel halo cupid wings halo heaven wings jesus", "shortname": ":angel:", "unicode": "1F47C", "aliases": ""}, "imp": {"keywords": "imp angry devil evil horns cute devil", "shortname": ":imp:", "unicode": "1F47F", "aliases": ""}, "underage": {"keywords": "no one under eighteen symbol 18 drink night pub", "shortname": ":underage:", "unicode": "1F51E", "aliases": ""}, "three": {"keywords": "digit three 3 blue-square numbers prime", "shortname": ":three:", "unicode": "0033-20E3", "aliases": ""}, "oden": {"keywords": "oden food japanese oden seafood casserole stew", "shortname": ":oden:", "unicode": "1F362", "aliases": ""}, "beer": {"keywords": "beer mug beverage drink drunk party pub relax beer hops mug barley malt yeast portland oregon brewery micro pint boot", "shortname": ":beer:", "unicode": "1F37A", "aliases": ""}, "clock430": {"keywords": "clock face four-thirty clock time", "shortname": ":clock430:", "unicode": "1F55F", "aliases": ""}, "stuck_out_tongue_closed_eyes": {"keywords": "face with stuck-out tongue and tightly-closed eyes face mischievous playful prank tongue kidding silly playful ecstatic", "shortname": ":stuck_out_tongue_closed_eyes:", "unicode": "1F61D", "aliases": ""}, "helicopter": {"keywords": "helicopter transportation vehicle helicopter helo gyro gyrocopter", "shortname": ":helicopter:", "unicode": "1F681", "aliases": ""}, "heavy_division_sign": {"keywords": "heavy division sign calculation divide math", "shortname": ":heavy_division_sign:", "unicode": "2797", "aliases": ""}, "disappointed": {"keywords": "disappointed face disappointed disappoint frown depressed discouraged face sad upset", "shortname": ":disappointed:", "unicode": "1F61E", "aliases": ""}, "performing_arts": {"keywords": "performing arts acting drama theater performing arts performance entertainment acting story mask masks", "shortname": ":performing_arts:", "unicode": "1F3AD", "aliases": ""}, "mushroom": {"keywords": "mushroom plant vegetable mushroom fungi food fungus", "shortname": ":mushroom:", "unicode": "1F344", "aliases": ""}, "fire": {"keywords": "fire cook hot flame", "shortname": ":fire:", "unicode": "1F525", "aliases": ":flame:"}, "two_hearts": {"keywords": "two hearts affection like love valentines heart hearts two love emotion", "shortname": ":two_hearts:", "unicode": "1F495", "aliases": ""}, "arrow_down_small": {"keywords": "down-pointing small red triangle arrow blue-square", "shortname": ":arrow_down_small:", "unicode": "1F53D", "aliases": ""}, "tiger": {"keywords": "tiger face animal", "shortname": ":tiger:", "unicode": "1F42F", "aliases": ""}, "cold_sweat": {"keywords": "face with open mouth and cold sweat face nervous sweat exasperated frustrated", "shortname": ":cold_sweat:", "unicode": "1F630", "aliases": ""}, "bulb": {"keywords": "electric light bulb electricity light idea bulb light", "shortname": ":bulb:", "unicode": "1F4A1", "aliases": ""}, "heart_eyes": {"keywords": "smiling face with heart-shaped eyes affection crush face infatuation like love valentines smiling heart lovestruck love flirt smile heart-shaped", "shortname": ":heart_eyes:", "unicode": "1F60D", "aliases": ""}, "sound": {"keywords": "speaker with one sound wave speaker volume", "shortname": ":sound:", "unicode": "1F509", "aliases": ""}, "ant": {"keywords": "ant animal insect ant queen insect team", "shortname": ":ant:", "unicode": "1F41C", "aliases": ""}, "blowfish": {"keywords": "blowfish food nature ocean sea blowfish pufferfish puffer ballonfish toadfish fugu fish sushi", "shortname": ":blowfish:", "unicode": "1F421", "aliases": ""}, "speech_balloon": {"keywords": "speech balloon bubble words speech balloon talk conversation communication comic dialogue", "shortname": ":speech_balloon:", "unicode": "1F4AC", "aliases": ""}, "earth_africa": {"keywords": "earth globe europe-africa globe international world earth globe space planet africa europe home", "shortname": ":earth_africa:", "unicode": "1F30D", "aliases": ""}, "arrow_right_hook": {"keywords": "rightwards arrow with hook blue-square", "shortname": ":arrow_right_hook:", "unicode": "21AA", "aliases": ""}, "seedling": {"keywords": "seedling grass lawn nature plant seedling plant new start grow", "shortname": ":seedling:", "unicode": "1F331", "aliases": ""}, "fearful": {"keywords": "fearful face face nervous oops scared terrified fear fearful scared frightened", "shortname": ":fearful:", "unicode": "1F628", "aliases": ""}, "envelope_with_arrow": {"keywords": "envelope with downwards arrow above email", "shortname": ":envelope_with_arrow:", "unicode": "1F4E9", "aliases": ""}, "gem": {"keywords": "gem stone blue ruby", "shortname": ":gem:", "unicode": "1F48E", "aliases": ""}, "grinning": {"keywords": "grinning face face happy joy smile grin grinning smiling smile smiley", "shortname": ":grinning:", "unicode": "1F600", "aliases": ""}, "bikini": {"keywords": "bikini beach fashion female girl swimming woman", "shortname": ":bikini:", "unicode": "1F459", "aliases": ""}, "gemini": {"keywords": "gemini gemini twins astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":gemini:", "unicode": "264A", "aliases": ""}, "vertical_traffic_light": {"keywords": "vertical traffic light transportation traffic light stop go yield vertical", "shortname": ":vertical_traffic_light:", "unicode": "1F6A6", "aliases": ""}, "newspaper": {"keywords": "newspaper headline press", "shortname": ":newspaper:", "unicode": "1F4F0", "aliases": ""}, "kissing": {"keywords": "kissing face 3 face infatuation like love valentines kissing kiss pucker lips smooch", "shortname": ":kissing:", "unicode": "1F617", "aliases": ""}, "bathtub": {"keywords": "bathtub clean shower bath tub basin wash bubble soak bathroom soap water clean shampoo lather water", "shortname": ":bathtub:", "unicode": "1F6C1", "aliases": ""}, "anchor": {"keywords": "anchor ferry ship anchor ship boat ocean harbor marina shipyard sailor tattoo", "shortname": ":anchor:", "unicode": "2693", "aliases": ""}, "loop": {"keywords": "double curly loop curly", "shortname": ":loop:", "unicode": "27BF", "aliases": ""}, "swimmer": {"keywords": "swimmer sports swimmer swim water pool laps freestyle butterfly breaststroke backstroke", "shortname": ":swimmer:", "unicode": "1F3CA", "aliases": ""}, "seven": {"keywords": "digit seven 7 blue-square numbers prime", "shortname": ":seven:", "unicode": "0037-20E3", "aliases": ""}, "pound": {"keywords": "banknote with pound sign bills british currency england money sterling uk pound britain british banknote money currency paper cash bills", "shortname": ":pound:", "unicode": "1F4B7", "aliases": ""}, "two_women_holding_hands": {"keywords": "two women holding hands couple female friends like love women hands girlfriends friends sisters mother daughter gay homosexual couple unity", "shortname": ":two_women_holding_hands:", "unicode": "1F46D", "aliases": ""}, "sushi": {"keywords": "sushi food japanese sushi fish raw nigiri japanese", "shortname": ":sushi:", "unicode": "1F363", "aliases": ""}, "purse": {"keywords": "purse accessories fashion money purse clutch bag handbag coin bag accessory money ladies shopping", "shortname": ":purse:", "unicode": "1F45B", "aliases": ""}, "telephone": {"keywords": "black telephone communication dial technology", "shortname": ":telephone:", "unicode": "260E", "aliases": ""}, "u5272": {"keywords": "squared cjk unified ideograph-5272 chinese cut divide kanji pink", "shortname": ":u5272:", "unicode": "1F239", "aliases": ""}, "rooster": {"keywords": "rooster animal chicken nature rooster cockerel cock male cock-a-doodle-doo crowing", "shortname": ":rooster:", "unicode": "1F413", "aliases": ""}, "rice_scene": {"keywords": "moon viewing ceremony photo moon viewing observing otsukimi tsukimi rice scene festival autumn", "shortname": ":rice_scene:", "unicode": "1F391", "aliases": ""}, "vs": {"keywords": "squared vs orange-square words", "shortname": ":vs:", "unicode": "1F19A", "aliases": ""}, "arrow_forward": {"keywords": "black right-pointing triangle arrow blue-square", "shortname": ":arrow_forward:", "unicode": "25B6", "aliases": ""}, "violin": {"keywords": "violin instrument music violin fiddle music instrument", "shortname": ":violin:", "unicode": "1F3BB", "aliases": ""}, "bullettrain_front": {"keywords": "high-speed train with bullet nose transportation train bullet rail", "shortname": ":bullettrain_front:", "unicode": "1F685", "aliases": ""}, "mouse": {"keywords": "mouse face animal nature", "shortname": ":mouse:", "unicode": "1F42D", "aliases": ""}, "bookmark_tabs": {"keywords": "bookmark tabs favorite", "shortname": ":bookmark_tabs:", "unicode": "1F4D1", "aliases": ""}, "shirt": {"keywords": "t-shirt cloth fashion", "shortname": ":shirt:", "unicode": "1F455", "aliases": ""}, "white_circle": {"keywords": "medium white circle shape", "shortname": ":white_circle:", "unicode": "26AA", "aliases": ""}, "balloon": {"keywords": "balloon celebration party balloon birthday celebration helium gas children float", "shortname": ":balloon:", "unicode": "1F388", "aliases": ""}, "heart_decoration": {"keywords": "heart decoration like love purple-square", "shortname": ":heart_decoration:", "unicode": "1F49F", "aliases": ""}, "joy_cat": {"keywords": "cat face with tears of joy animal cats haha happy tears happy tears cry joy", "shortname": ":joy_cat:", "unicode": "1F639", "aliases": ""}, "kimono": {"keywords": "kimono dress fashion female japanese women", "shortname": ":kimono:", "unicode": "1F458", "aliases": ""}, "speaker": {"keywords": "speaker sound listen hear noise", "shortname": ":speaker:", "unicode": "1F508", "aliases": ""}, "train2": {"keywords": "train transportation vehicle train locomotive rail", "shortname": ":train2:", "unicode": "1F686", "aliases": ""}, "first_quarter_moon": {"keywords": "first quarter moon symbol nature moon quarter first sky night cheese phase", "shortname": ":first_quarter_moon:", "unicode": "1F313", "aliases": ""}, "left_luggage": {"keywords": "left luggage blue-square travel bag baggage luggage travel", "shortname": ":left_luggage:", "unicode": "1F6C5", "aliases": ""}, "meat_on_bone": {"keywords": "meat on bone food good meat bone animal cooked", "shortname": ":meat_on_bone:", "unicode": "1F356", "aliases": ""}, "light_rail": {"keywords": "light rail transportation vehicle train rail light", "shortname": ":light_rail:", "unicode": "1F688", "aliases": ""}, "satellite": {"keywords": "satellite antenna communication", "shortname": ":satellite:", "unicode": "1F4E1", "aliases": ""}, "arrow_heading_up": {"keywords": "arrow pointing rightwards then curving upwards arrow blue-square", "shortname": ":arrow_heading_up:", "unicode": "2934", "aliases": ""}, "snail": {"keywords": "snail animal shell slow snail slow escargot french appetizer", "shortname": ":snail:", "unicode": "1F40C", "aliases": ""}, "rainbow": {"keywords": "rainbow happy nature photo sky unicorn rainbow color pride diversity spectrum refract leprechaun gold", "shortname": ":rainbow:", "unicode": "1F308", "aliases": ""}, "u6307": {"keywords": "squared cjk unified ideograph-6307 chinese green-square kanji point", "shortname": ":u6307:", "unicode": "1F22F", "aliases": ""}, "leopard": {"keywords": "leopard animal nature leopard cat spot spotted sexy", "shortname": ":leopard:", "unicode": "1F406", "aliases": ""}, "diamond_shape_with_a_dot_inside": {"keywords": "diamond shape with a dot inside diamond cute cuteness kawaii japanese glyph adorable", "shortname": ":diamond_shape_with_a_dot_inside:", "unicode": "1F4A0", "aliases": ""}, "barber": {"keywords": "barber pole hair salon style", "shortname": ":barber:", "unicode": "1F488", "aliases": ""}, "christmas_tree": {"keywords": "christmas tree celebration december festival vacation xmas christmas xmas santa holiday winter december santa evergreen ornaments jesus gifts presents", "shortname": ":christmas_tree:", "unicode": "1F384", "aliases": ""}, "slot_machine": {"keywords": "slot machine bet gamble vegas slot machine gamble one-armed bandit slots luck", "shortname": ":slot_machine:", "unicode": "1F3B0", "aliases": ""}, "ice_cream": {"keywords": "ice cream desert food hot icecream ice cream dairy dessert cold soft serve cone waffle", "shortname": ":ice_cream:", "unicode": "1F368", "aliases": ""}, "foggy": {"keywords": "foggy mountain photo bridge weather fog foggy", "shortname": ":foggy:", "unicode": "1F301", "aliases": ""}, "euro": {"keywords": "banknote with euro sign currency dollar money euro europe banknote money currency paper cash bills", "shortname": ":euro:", "unicode": "1F4B6", "aliases": ""}, "crossed_flags": {"keywords": "crossed flags japan", "shortname": ":crossed_flags:", "unicode": "1F38C", "aliases": ""}, "smile_cat": {"keywords": "grinning cat face with smiling eyes animal cats cat smile grin grinning", "shortname": ":smile_cat:", "unicode": "1F638", "aliases": ""}, "hushed": {"keywords": "hushed face face woo quiet hush whisper silent", "shortname": ":hushed:", "unicode": "1F62F", "aliases": ""}, "triangular_ruler": {"keywords": "triangular ruler architect math sketch stationery", "shortname": ":triangular_ruler:", "unicode": "1F4D0", "aliases": ""}, "ocean": {"keywords": "water wave sea water wave ocean wave surf beach tide", "shortname": ":ocean:", "unicode": "1F30A", "aliases": ""}, "page_with_curl": {"keywords": "page with curl documents", "shortname": ":page_with_curl:", "unicode": "1F4C3", "aliases": ""}, "flags": {"keywords": "carp streamer banner carp fish japanese koinobori children kids boys celebration happiness carp streamers japanese holiday flags", "shortname": ":flags:", "unicode": "1F38F", "aliases": ""}, "hearts": {"keywords": "black heart suit cards poker", "shortname": ":hearts:", "unicode": "2665", "aliases": ""}, "muscle": {"keywords": "flexed biceps arm flex hand strong muscle bicep", "shortname": ":muscle:", "unicode": "1F4AA", "aliases": ""}, "love_hotel": {"keywords": "love hotel affection dating like love hotel love sex romance leisure adultery prostitution hospital birth happy", "shortname": ":love_hotel:", "unicode": "1F3E9", "aliases": ""}, "snowman": {"keywords": "snowman without snow christmas cold season weather winter xmas", "shortname": ":snowman:", "unicode": "26C4", "aliases": ""}, "eyeglasses": {"keywords": "eyeglasses accessories eyesight fashion eyeglasses spectacles eye sight nearsightedness myopia farsightedness hyperopia frames vision see blurry contacts", "shortname": ":eyeglasses:", "unicode": "1F453", "aliases": ""}, "rocket": {"keywords": "rocket launch ship staffmode rocket space spacecraft astronaut cosmonaut", "shortname": ":rocket:", "unicode": "1F680", "aliases": ""}, "yen": {"keywords": "banknote with yen sign currency dollar japanese money yen japan japanese banknote money currency paper cash bill", "shortname": ":yen:", "unicode": "1F4B4", "aliases": ""}, "straight_ruler": {"keywords": "straight ruler stationery", "shortname": ":straight_ruler:", "unicode": "1F4CF", "aliases": ""}, "u7533": {"keywords": "squared cjk unified ideograph-7533 chinese japanese kanji", "shortname": ":u7533:", "unicode": "1F238", "aliases": ""}, "racehorse": {"keywords": "horse animal gamble horse powerful draft calvary cowboy cowgirl mounted race ride gallop trot colt filly mare stallion gelding yearling thoroughbred pony", "shortname": ":racehorse:", "unicode": "1F40E", "aliases": ""}, "sleepy": {"keywords": "sleepy face face rest tired sleepy tired exhausted", "shortname": ":sleepy:", "unicode": "1F62A", "aliases": ""}, "green_apple": {"keywords": "green apple fruit nature apple fruit green pie granny smith core", "shortname": ":green_apple:", "unicode": "1F34F", "aliases": ""}, "bridge_at_night": {"keywords": "bridge at night photo sanfrancisco bridge night water road evening suspension golden gate", "shortname": ":bridge_at_night:", "unicode": "1F309", "aliases": ""}, "doughnut": {"keywords": "doughnut desert food snack sweet doughnut donut pastry fried dessert breakfast police homer sweet", "shortname": ":doughnut:", "unicode": "1F369", "aliases": ""}, "first_quarter_moon_with_face": {"keywords": "first quarter moon with face nature moon first quarter anthropomorphic face sky night cheese phase", "shortname": ":first_quarter_moon_with_face:", "unicode": "1F31B", "aliases": ""}, "womans_hat": {"keywords": "womans hat accessories fashion female", "shortname": ":womans_hat:", "unicode": "1F452", "aliases": ""}, "sandal": {"keywords": "womans sandal fashion shoes", "shortname": ":sandal:", "unicode": "1F461", "aliases": ""}, "white_medium_square": {"keywords": "white medium square shape", "shortname": ":white_medium_square:", "unicode": "25FB", "aliases": ""}, "snowboarder": {"keywords": "snowboarder sports winter snow boarding sports freestyle halfpipe board mountain alpine winter", "shortname": ":snowboarder:", "unicode": "1F3C2", "aliases": ""}, "sunflower": {"keywords": "sunflower nature plant sunflower sun flower seeds yellow", "shortname": ":sunflower:", "unicode": "1F33B", "aliases": ""}, "grey_exclamation": {"keywords": "white exclamation mark ornament surprise", "shortname": ":grey_exclamation:", "unicode": "2755", "aliases": ""}, "rose": {"keywords": "rose flowers love valentines rose fragrant flower thorns love petals romance", "shortname": ":rose:", "unicode": "1F339", "aliases": ""}, "cl": {"keywords": "squared cl alphabet red-square words", "shortname": ":cl:", "unicode": "1F191", "aliases": ""}, "tropical_fish": {"keywords": "tropical fish animal swim", "shortname": ":tropical_fish:", "unicode": "1F420", "aliases": ""}, "cherries": {"keywords": "cherries food fruit cherry cherries tree fruit pit", "shortname": ":cherries:", "unicode": "1F352", "aliases": ""}, "innocent": {"keywords": "smiling face with halo angel face halo halo angel innocent ring circle heaven", "shortname": ":innocent:", "unicode": "1F607", "aliases": ""}, "rice_cracker": {"keywords": "rice cracker food japanese rice cracker seaweed food japanese", "shortname": ":rice_cracker:", "unicode": "1F358", "aliases": ""}, "ski": {"keywords": "ski and ski boot cold sports winter ski downhill cross-country poles snow winter mountain alpine powder slalom freestyle", "shortname": ":ski:", "unicode": "1F3BF", "aliases": ""}, "pill": {"keywords": "pill health medicine", "shortname": ":pill:", "unicode": "1F48A", "aliases": ""}, "musical_keyboard": {"keywords": "musical keyboard instrument piano music keyboard piano organ instrument electric", "shortname": ":musical_keyboard:", "unicode": "1F3B9", "aliases": ""}, "boom": {"keywords": "collision symbol bomb explode explosion boom bang collision fire emphasis wow bam", "shortname": ":boom:", "unicode": "1F4A5", "aliases": ""}, "full_moon": {"keywords": "full moon symbol nature yellow moon full sky night cheese phase monster spooky werewolves twilight", "shortname": ":full_moon:", "unicode": "1F315", "aliases": ""}, "orange_book": {"keywords": "orange book knowledge library read", "shortname": ":orange_book:", "unicode": "1F4D9", "aliases": ""}, "couple": {"keywords": "man and woman holding hands affection date dating human like love marriage people valentines", "shortname": ":couple:", "unicode": "1F46B", "aliases": ""}, "japanese_goblin": {"keywords": "japanese goblin evil mask red japanese tengu supernatural avian demon goblin mask theater nose frown mustache anger frustration", "shortname": ":japanese_goblin:", "unicode": "1F47A", "aliases": ""}, "inbox_tray": {"keywords": "inbox tray documents email", "shortname": ":inbox_tray:", "unicode": "1F4E5", "aliases": ""}, "clock1": {"keywords": "clock face one oclock clock time", "shortname": ":clock1:", "unicode": "1F550", "aliases": ""}, "clock2": {"keywords": "clock face two oclock clock time", "shortname": ":clock2:", "unicode": "1F551", "aliases": ""}, "clock3": {"keywords": "clock face three oclock clock time", "shortname": ":clock3:", "unicode": "1F552", "aliases": ""}, "five": {"keywords": "digit five blue-square numbers prime", "shortname": ":five:", "unicode": "0035-20E3", "aliases": ""}, "clock5": {"keywords": "clock face five oclock clock time", "shortname": ":clock5:", "unicode": "1F554", "aliases": ""}, "clock6": {"keywords": "clock face six oclock clock time", "shortname": ":clock6:", "unicode": "1F555", "aliases": ""}, "clock7": {"keywords": "clock face seven oclock clock time", "shortname": ":clock7:", "unicode": "1F556", "aliases": ""}, "clock8": {"keywords": "clock face eight oclock clock time", "shortname": ":clock8:", "unicode": "1F557", "aliases": ""}, "clock9": {"keywords": "clock face nine oclock clock time", "shortname": ":clock9:", "unicode": "1F558", "aliases": ""}, "clock130": {"keywords": "clock face one-thirty clock time", "shortname": ":clock130:", "unicode": "1F55C", "aliases": ""}, "name_badge": {"keywords": "name badge fire forbid", "shortname": ":name_badge:", "unicode": "1F4DB", "aliases": ""}, "grin": {"keywords": "grinning face with smiling eyes face happy joy smile grin grinning smiling smile smiley", "shortname": ":grin:", "unicode": "1F601", "aliases": ""}, "womans_clothes": {"keywords": "womans clothes fashion woman clothing clothes blouse shirt wardrobe breasts cleavage shopping shop dressing dressed", "shortname": ":womans_clothes:", "unicode": "1F45A", "aliases": ""}, "gift": {"keywords": "wrapped present birthday christmas present xmas gift present wrap package birthday wedding", "shortname": ":gift:", "unicode": "1F381", "aliases": ""}, "bangbang": {"keywords": "double exclamation mark exclamation surprise", "shortname": ":bangbang:", "unicode": "203C", "aliases": ""}, "stuck_out_tongue_winking_eye": {"keywords": "face with stuck-out tongue and winking eye childish face mischievous playful prank tongue wink winking kidding silly playful crazy", "shortname": ":stuck_out_tongue_winking_eye:", "unicode": "1F61C", "aliases": ""}, "candy": {"keywords": "candy desert snack candy sugar sweet hard", "shortname": ":candy:", "unicode": "1F36C", "aliases": ""}, "arrows_counterclockwise": {"keywords": "anticlockwise downwards and upwards open circle ar blue-square sync", "shortname": ":arrows_counterclockwise:", "unicode": "1F504", "aliases": ""}, "capricorn": {"keywords": "capricorn capricorn sea-goat goat-horned astrology greek constellation stars zodiac sign sign zodiac horoscope", "shortname": ":capricorn:", "unicode": "2651", "aliases": ""}, "hotsprings": {"keywords": "hot springs bath relax warm", "shortname": ":hotsprings:", "unicode": "2668", "aliases": ""}, "laughing": {"keywords": "smiling face with open mouth and tightly-closed ey happy joy lol smiling laughing laugh", "shortname": ":laughing:", "unicode": "1F606", "aliases": ":satisfied:"}, "trolleybus": {"keywords": "trolleybus bart transportation vehicle trolley bus city transport transportation", "shortname": ":trolleybus:", "unicode": "1F68E", "aliases": ""}, "potable_water": {"keywords": "potable water symbol blue-square cleaning faucet liquid restroom potable water drinkable pure clear clean aqua h20", "shortname": ":potable_water:", "unicode": "1F6B0", "aliases": ""}, "city_dusk": {"keywords": "cityscape at dusk photo city scape sunset dusk lights evening metropolitan night dark", "shortname": ":city_dusk:", "unicode": "1F306", "aliases": ""}, "clap": {"keywords": "clapping hands sign applause congrats hands praise clapping appreciation approval sound encouragement enthusiasm", "shortname": ":clap:", "unicode": "1F44F", "aliases": ""}, "clock230": {"keywords": "clock face two-thirty clock time", "shortname": ":clock230:", "unicode": "1F55D", "aliases": ""}, "left_right_arrow": {"keywords": "left right arrow shape", "shortname": ":left_right_arrow:", "unicode": "2194", "aliases": ""}, "japanese_castle": {"keywords": "japanese castle building photo castle japanese residence royalty fort fortified fortress", "shortname": ":japanese_castle:", "unicode": "1F3EF", "aliases": ""}, "waning_gibbous_moon": {"keywords": "waning gibbous moon symbol nature moon waning gibbous sky night cheese phase", "shortname": ":waning_gibbous_moon:", "unicode": "1F316", "aliases": ""}, "crown": {"keywords": "crown king kod leader royalty", "shortname": ":crown:", "unicode": "1F451", "aliases": ""}, "back": {"keywords": "back with leftwards arrow above arrow", "shortname": ":back:", "unicode": "1F519", "aliases": ""}, "sparkling_heart": {"keywords": "sparkling heart affection like love valentines", "shortname": ":sparkling_heart:", "unicode": "1F496", "aliases": ""}, "clubs": {"keywords": "black club suit cards poker", "shortname": ":clubs:", "unicode": "2663", "aliases": ""}, "rage": {"keywords": "pouting face angry despise hate mad pout anger rage irate", "shortname": ":rage:", "unicode": "1F621", "aliases": ""}, "person_with_pouting_face": {"keywords": "person with pouting face female girl woman pout sexy cute annoyed", "shortname": ":person_with_pouting_face:", "unicode": "1F64E", "aliases": ""}, "rabbit2": {"keywords": "rabbit animal nature rabbit bunny easter reproduction prolific", "shortname": ":rabbit2:", "unicode": "1F407", "aliases": ""}, "two_men_holding_hands": {"keywords": "two men holding hands bromance couple friends like love men gay homosexual friends hands holding team unity", "shortname": ":two_men_holding_hands:", "unicode": "1F46C", "aliases": ""}, "tired_face": {"keywords": "tired face face frustrated sick upset whine exhausted sleepy tired", "shortname": ":tired_face:", "unicode": "1F62B", "aliases": ""}, "anguished": {"keywords": "anguished face face nervous stunned pain anguish ouch misery distress grief", "shortname": ":anguished:", "unicode": "1F627", "aliases": ""}, "tanabata_tree": {"keywords": "tanabata tree nature plant tanabata tree festival star wish holiday", "shortname": ":tanabata_tree:", "unicode": "1F38B", "aliases": ""}, "carousel_horse": {"keywords": "carousel horse carnival horse photo carousel horse amusement park ride entertainment park fair", "shortname": ":carousel_horse:", "unicode": "1F3A0", "aliases": ""}, "large_orange_diamond": {"keywords": "large orange diamond shape", "shortname": ":large_orange_diamond:", "unicode": "1F536", "aliases": ""}, "deciduous_tree": {"keywords": "deciduous tree nature plant deciduous tree leaves fall color", "shortname": ":deciduous_tree:", "unicode": "1F333", "aliases": ""}, "o2": {"keywords": "negative squared latin capital letter o alphabet letter red-square", "shortname": ":o2:", "unicode": "1F17E", "aliases": ""}, "knife": {"keywords": "hocho ", "shortname": ":knife:", "unicode": "1F52A", "aliases": ""}, "nose": {"keywords": "nose smell sniff", "shortname": ":nose:", "unicode": "1F443", "aliases": ""}, "point_up": {"keywords": "white up pointing index direction fingers hand", "shortname": ":point_up:", "unicode": "261D", "aliases": ""}, "heavy_minus_sign": {"keywords": "heavy minus sign calculation math", "shortname": ":heavy_minus_sign:", "unicode": "2796", "aliases": ""}, "zzz": {"keywords": "sleeping symbol sleepy tired", "shortname": ":zzz:", "unicode": "1F4A4", "aliases": ""}, "corn": {"keywords": "ear of maize food plant vegetable corn maize food iowa kernel popcorn husk yellow stalk cob ear", "shortname": ":corn:", "unicode": "1F33D", "aliases": ""}, "kissing_smiling_eyes": {"keywords": "kissing face with smiling eyes affection face infatuation valentines kissing kiss smile pucker lips smooch", "shortname": ":kissing_smiling_eyes:", "unicode": "1F619", "aliases": ""}, "clock4": {"keywords": "clock face four oclock clock time", "shortname": ":clock4:", "unicode": "1F553", "aliases": ""}, "closed_umbrella": {"keywords": "closed umbrella drizzle rain weather umbrella closed rain moisture protection sun ultraviolet uv", "shortname": ":closed_umbrella:", "unicode": "1F302", "aliases": ""}, "stew": {"keywords": "pot of food food meat stew hearty soup thick hot pot", "shortname": ":stew:", "unicode": "1F372", "aliases": ""}, "santa": {"keywords": "father christmas christmas father christmas festival male man xmas santa saint nick jolly ho ho ho north pole presents gifts naughty nice sleigh father christmas holiday", "shortname": ":santa:", "unicode": "1F385", "aliases": ""}, "volcano": {"keywords": "volcano nature photo volcano lava magma hot explode", "shortname": ":volcano:", "unicode": "1F30B", "aliases": ""}, "kissing_heart": {"keywords": "face throwing a kiss affection face infatuation kiss blowing kiss heart love lips like love valentines", "shortname": ":kissing_heart:", "unicode": "1F618", "aliases": ""}, "no_pedestrians": {"keywords": "no pedestrians crossing rules walking no walk pedestrian stroll stride foot feet", "shortname": ":no_pedestrians:", "unicode": "1F6B7", "aliases": ""}, "bamboo": {"keywords": "pine decoration nature plant vegetable pine bamboo decoration new years spirits harvest prosperity longevity fortune luck welcome farming agriculture", "shortname": ":bamboo:", "unicode": "1F38D", "aliases": ""}, "eight_spoked_asterisk": {"keywords": "eight spoked asterisk green-square sparkle star", "shortname": ":eight_spoked_asterisk:", "unicode": "2733", "aliases": ""}, "person_with_blond_hair": {"keywords": "person with blond hair male man blonde young western westerner occidental", "shortname": ":person_with_blond_hair:", "unicode": "1F471", "aliases": ""}, "trophy": {"keywords": "trophy award ceremony contest ftw place win trophy first show place win reward achievement medal", "shortname": ":trophy:", "unicode": "1F3C6", "aliases": ""}, "on": {"keywords": "on with exclamation mark with left right arrow abo arrow words", "shortname": ":on:", "unicode": "1F51B", "aliases": ""}, "ok": {"keywords": "squared ok agree blue-square good yes", "shortname": ":ok:", "unicode": "1F197", "aliases": ""}, "package": {"keywords": "package gift mail", "shortname": ":package:", "unicode": "1F4E6", "aliases": ""}, "black_small_square": {"keywords": "black small square ", "shortname": ":black_small_square:", "unicode": "25AA", "aliases": ""}, "school_satchel": {"keywords": "school satchel bag education student school satchel backpack bag packing pack hike education adventure travel sightsee", "shortname": ":school_satchel:", "unicode": "1F392", "aliases": ""}, "o": {"keywords": "heavy large circle circle round", "shortname": ":o:", "unicode": "2B55", "aliases": ""}, "clock12": {"keywords": "clock face twelve oclock clock time", "shortname": ":clock12:", "unicode": "1F55B", "aliases": ""}, "chart_with_downwards_trend": {"keywords": "chart with downwards trend graph", "shortname": ":chart_with_downwards_trend:", "unicode": "1F4C9", "aliases": ""}, "clock10": {"keywords": "clock face ten oclock clock time", "shortname": ":clock10:", "unicode": "1F559", "aliases": ""}, "clock11": {"keywords": "clock face eleven oclock clock time", "shortname": ":clock11:", "unicode": "1F55A", "aliases": ""}, "no_bell": {"keywords": "bell with cancellation stroke mute sound volume", "shortname": ":no_bell:", "unicode": "1F515", "aliases": ""}, "sweat": {"keywords": "face with cold sweat cold sweat sick anxious worried clammy diaphoresis face hot", "shortname": ":sweat:", "unicode": "1F613", "aliases": ""}, "ox": {"keywords": "ox animal beef cow", "shortname": ":ox:", "unicode": "1F402", "aliases": ""}, "mountain_railway": {"keywords": "mountain railway transportation mountain railway rail train transport", "shortname": ":mountain_railway:", "unicode": "1F69E", "aliases": ""}, "tongue": {"keywords": "tongue mouth playful tongue mouth taste buds food silly playful tease kiss french kiss lick tasty playfulness silliness intimacy", "shortname": ":tongue:", "unicode": "1F445", "aliases": ""}, "womens": {"keywords": "womens symbol purple-square woman bathroom restroom sign girl female avatar", "shortname": ":womens:", "unicode": "1F6BA", "aliases": ""}, "baby_symbol": {"keywords": "baby symbol child orange-square baby crawl newborn human diaper small babe", "shortname": ":baby_symbol:", "unicode": "1F6BC", "aliases": ""}, "hospital": {"keywords": "hospital building doctor health surgery", "shortname": ":hospital:", "unicode": "1F3E5", "aliases": ""}, "baby_chick": {"keywords": "baby chick animal chicken chick baby bird chicken young woman cute", "shortname": ":baby_chick:", "unicode": "1F424", "aliases": ""}, "turtle": {"keywords": "turtle animal slow turtle shell tortoise chelonian reptile slow snap steady", "shortname": ":turtle:", "unicode": "1F422", "aliases": ""}, "black_square_button": {"keywords": "black square button frame", "shortname": ":black_square_button:", "unicode": "1F532", "aliases": ""}, "do_not_litter": {"keywords": "do not litter symbol bin garbage trash litter garbage waste no can trash", "shortname": ":do_not_litter:", "unicode": "1F6AF", "aliases": ""}, "wind_chime": {"keywords": "wind chime ding nature wind chime bell f\u016brin instrument music spirits soothing protective spiritual sound", "shortname": ":wind_chime:", "unicode": "1F390", "aliases": ""}, "waxing_crescent_moon": {"keywords": "waxing crescent moon symbol nature moon waxing sky night cheese phase", "shortname": ":waxing_crescent_moon:", "unicode": "1F312", "aliases": ""}, "tiger2": {"keywords": "tiger animal nature tiger cat striped tony tigger hobs", "shortname": ":tiger2:", "unicode": "1F405", "aliases": ""}, "two": {"keywords": "digit two 2 blue-square numbers prime", "shortname": ":two:", "unicode": "0032-20E3", "aliases": ""}, "dango": {"keywords": "dango food dango japanese dumpling mochi balls skewer", "shortname": ":dango:", "unicode": "1F361", "aliases": ""}, "red_circle": {"keywords": "large red circle shape", "shortname": ":red_circle:", "unicode": "1F534", "aliases": ""}, "syringe": {"keywords": "syringe blood drugs health hospital medicine needle", "shortname": ":syringe:", "unicode": "1F489", "aliases": ""}, "last_quarter_moon": {"keywords": "last quarter moon symbol nature moon last quarter sky night cheese phase", "shortname": ":last_quarter_moon:", "unicode": "1F317", "aliases": ""}, "tada": {"keywords": "party popper contulations party party popper tada celebration victory announcement climax congratulations", "shortname": ":tada:", "unicode": "1F389", "aliases": ""}, "ok_hand": {"keywords": "ok hand sign fingers limbs perfect okay ok smoke smoking marijuana joint pot 420", "shortname": ":ok_hand:", "unicode": "1F44C", "aliases": ""}, "custard": {"keywords": "custard desert food custard cream rich butter dessert cr\u00e8me br\u00fbl\u00e9e french", "shortname": ":custard:", "unicode": "1F36E", "aliases": ""}, "rowboat": {"keywords": "rowboat hobby ship sports water boat row oar paddle", "shortname": ":rowboat:", "unicode": "1F6A3", "aliases": ""}, "clock530": {"keywords": "clock face five-thirty clock time", "shortname": ":clock530:", "unicode": "1F560", "aliases": ""}, "heavy_multiplication_x": {"keywords": "heavy multiplication x calculation math", "shortname": ":heavy_multiplication_x:", "unicode": "2716", "aliases": ""}, "white_check_mark": {"keywords": "white heavy check mark agree green-square ok", "shortname": ":white_check_mark:", "unicode": "2705", "aliases": ""}, "tennis": {"keywords": "tennis racquet and ball balls green sports tennis racket racquet ball game net court love", "shortname": ":tennis:", "unicode": "1F3BE", "aliases": ""}, "question": {"keywords": "black question mark ornament confused doubt", "shortname": ":question:", "unicode": "2753", "aliases": ""}, "secret": {"keywords": "circled ideograph secret privacy", "shortname": ":secret:", "unicode": "3299", "aliases": ""}, "stars": {"keywords": "shooting star night photo shooting shoot star sky night comet meteoroid", "shortname": ":stars:", "unicode": "1F320", "aliases": ""}, "capital_abcd": {"keywords": "input symbol for latin capital letters alphabet blue-square words", "shortname": ":capital_abcd:", "unicode": "1F520", "aliases": ""}, "mahjong": {"keywords": "mahjong tile red dragon chinese game kanji", "shortname": ":mahjong:", "unicode": "1F004", "aliases": ""}, "bus": {"keywords": "bus car transportation vehicle bus school city transportation public", "shortname": ":bus:", "unicode": "1F68C", "aliases": ""}, "registered": {"keywords": "registered sign alphabet circle", "shortname": ":registered:", "unicode": "00AE", "aliases": ""}, "fireworks": {"keywords": "fireworks carnival congratulations festival photo fireworks independence celebration explosion july 4th rocket sky idea excitement", "shortname": ":fireworks:", "unicode": "1F386", "aliases": ""}, "construction": {"keywords": "construction sign caution progress wip", "shortname": ":construction:", "unicode": "1F6A7", "aliases": ""}, "link": {"keywords": "link symbol rings url", "shortname": ":link:", "unicode": "1F517", "aliases": ""}, "fallen_leaf": {"keywords": "fallen leaf leaves nature plant vegetable leaf fall color deciduous autumn", "shortname": ":fallen_leaf:", "unicode": "1F342", "aliases": ""}, "astonished": {"keywords": "astonished face face xox shocked surprise astonished", "shortname": ":astonished:", "unicode": "1F632", "aliases": ""}, "card_index": {"keywords": "card index business stationery", "shortname": ":card_index:", "unicode": "1F4C7", "aliases": ""}, "ear": {"keywords": "ear face hear listen sound", "shortname": ":ear:", "unicode": "1F442", "aliases": ""}, "radio_button": {"keywords": "radio button input", "shortname": ":radio_button:", "unicode": "1F518", "aliases": ""}, "bug": {"keywords": "bug insect nature bug insect virus error", "shortname": ":bug:", "unicode": "1F41B", "aliases": ""}, "penguin": {"keywords": "penguin animal nature", "shortname": ":penguin:", "unicode": "1F427", "aliases": ""}, "football": {"keywords": "american football NFL balls sports football ball sport america american", "shortname": ":football:", "unicode": "1F3C8", "aliases": ""}, "arrow_heading_down": {"keywords": "arrow pointing rightwards then curving downwards arrow blue-square", "shortname": ":arrow_heading_down:", "unicode": "2935", "aliases": ""}, "congratulations": {"keywords": "circled ideograph congratulation chinese japanese kanji", "shortname": ":congratulations:", "unicode": "3297", "aliases": ""}, "dromedary_camel": {"keywords": "dromedary camel animal desert hot dromedary camel hump desert middle east heat hot water hump day wednesday sex", "shortname": ":dromedary_camel:", "unicode": "1F42A", "aliases": ""}, "skull": {"keywords": "skull dead skeleton dying", "shortname": ":skull:", "unicode": "1F480", "aliases": ":skeleton:"}, "bride_with_veil": {"keywords": "bride with veil couple marriage wedding bride wedding planning veil gown dress engagement white", "shortname": ":bride_with_veil:", "unicode": "1F470", "aliases": ""}, "stuck_out_tongue": {"keywords": "face with stuck-out tongue childish face mischievous playful prank tongue silly playful cheeky", "shortname": ":stuck_out_tongue:", "unicode": "1F61B", "aliases": ""}, "relaxed": {"keywords": "white smiling face blush face happiness massage smile", "shortname": ":relaxed:", "unicode": "263A", "aliases": ""}, "grey_question": {"keywords": "white question mark ornament doubts", "shortname": ":grey_question:", "unicode": "2754", "aliases": ""}, "vhs": {"keywords": "videocassette oldschool record video", "shortname": ":vhs:", "unicode": "1F4FC", "aliases": ""}, "strawberry": {"keywords": "strawberry food fruit nature strawberry short cake berry", "shortname": ":strawberry:", "unicode": "1F353", "aliases": ""}, "cat2": {"keywords": "cat animal meow pet cat kitten meow", "shortname": ":cat2:", "unicode": "1F408", "aliases": ""}, "athletic_shoe": {"keywords": "athletic shoe shoes sports", "shortname": ":athletic_shoe:", "unicode": "1F45F", "aliases": ""}, "star2": {"keywords": "glowing star night sparkle glow glowing star five points classic", "shortname": ":star2:", "unicode": "1F31F", "aliases": ""}, "cake": {"keywords": "shortcake desert food cake short dessert strawberry", "shortname": ":cake:", "unicode": "1F370", "aliases": ""}, "arrow_double_up": {"keywords": "black up-pointing double triangle arrow blue-square", "shortname": ":arrow_double_up:", "unicode": "23EB", "aliases": ""}, "toilet": {"keywords": "toilet restroom wc toilet bathroom throne porcelain waste flush plumbing", "shortname": ":toilet:", "unicode": "1F6BD", "aliases": ""}, "ab": {"keywords": "negative squared ab alphabet red-square", "shortname": ":ab:", "unicode": "1F18E", "aliases": ""}, "hash": {"keywords": "number sign symbol", "shortname": ":hash:", "unicode": "0023-20E3", "aliases": ""}, "sweet_potato": {"keywords": "roasted sweet potato food nature sweet potato potassium roasted roast", "shortname": ":sweet_potato:", "unicode": "1F360", "aliases": ""}, "mortar_board": {"keywords": "graduation cap cap college degree graduation hat school university graduation cap mortarboard academic education ceremony square tassel", "shortname": ":mortar_board:", "unicode": "1F393", "aliases": ""}, "up": {"keywords": "squared up with exclamation mark blue-square", "shortname": ":up:", "unicode": "1F199", "aliases": ""}, "hatched_chick": {"keywords": "front-facing baby chick baby chicken chick baby bird chicken young woman cute", "shortname": ":hatched_chick:", "unicode": "1F425", "aliases": ""}, "triangular_flag_on_post": {"keywords": "triangular flag on post triangle triangular flag golf post flagpole", "shortname": ":triangular_flag_on_post:", "unicode": "1F6A9", "aliases": ""}, "black_nib": {"keywords": "black nib pen stationery", "shortname": ":black_nib:", "unicode": "2712", "aliases": ""}, "pig": {"keywords": "pig face animal oink", "shortname": ":pig:", "unicode": "1F437", "aliases": ""}, "floppy_disk": {"keywords": "floppy disk oldschool save technology floppy disk storage information computer drive megabyte", "shortname": ":floppy_disk:", "unicode": "1F4BE", "aliases": ""}, "black_large_square": {"keywords": "black large square shape", "shortname": ":black_large_square:", "unicode": "2B1B", "aliases": ""}, "ship": {"keywords": "ship titanic transportation ferry ship boat", "shortname": ":ship:", "unicode": "1F6A2", "aliases": ""}, "8ball": {"keywords": "billiards pool billiards eight ball pool pocket ball cue", "shortname": ":8ball:", "unicode": "1F3B1", "aliases": ""}, "telephone_receiver": {"keywords": "telephone receiver communication dial technology", "shortname": ":telephone_receiver:", "unicode": "1F4DE", "aliases": ""}, "u7981": {"keywords": "squared cjk unified ideograph-7981 chinese forbidden japanese kanji limit restricted", "shortname": ":u7981:", "unicode": "1F232", "aliases": ""}, "person_frowning": {"keywords": "person frowning female girl woman dejected rejected sad frown", "shortname": ":person_frowning:", "unicode": "1F64D", "aliases": ""}, "movie_camera": {"keywords": "movie camera film record movie camera camcorder video motion picture", "shortname": ":movie_camera:", "unicode": "1F3A5", "aliases": ""}, "lemon": {"keywords": "lemon fruit nature lemon yellow citrus", "shortname": ":lemon:", "unicode": "1F34B", "aliases": ""}, "arrow_double_down": {"keywords": "black down-pointing double triangle arrow blue-square", "shortname": ":arrow_double_down:", "unicode": "23EC", "aliases": ""}, "peach": {"keywords": "peach food fruit nature peach fruit juicy pit", "shortname": ":peach:", "unicode": "1F351", "aliases": ""}, "boot": {"keywords": "womans boots fashion shoes", "shortname": ":boot:", "unicode": "1F462", "aliases": ""}, "ng": {"keywords": "squared ng blue-square", "shortname": ":ng:", "unicode": "1F196", "aliases": ""}, "end": {"keywords": "end with leftwards arrow above arrow words", "shortname": ":end:", "unicode": "1F51A", "aliases": ""}, "mountain_bicyclist": {"keywords": "mountain bicyclist human sports transportation bicyclist mountain bike pedal bicycle transportation", "shortname": ":mountain_bicyclist:", "unicode": "1F6B5", "aliases": ""}, "book": {"keywords": "open book library literature", "shortname": ":book:", "unicode": "1F4D6", "aliases": ""}, "clock1130": {"keywords": "clock face eleven-thirty clock time", "shortname": ":clock1130:", "unicode": "1F566", "aliases": ""}, "oncoming_bus": {"keywords": "oncoming bus transportation vehicle bus school city transportation public", "shortname": ":oncoming_bus:", "unicode": "1F68D", "aliases": ""}, "clock1030": {"keywords": "clock face ten-thirty clock time", "shortname": ":clock1030:", "unicode": "1F565", "aliases": ""}, "heart_eyes_cat": {"keywords": "smiling cat face with heart-shaped eyes affection animal cats like love valentines lovestruck love heart", "shortname": ":heart_eyes_cat:", "unicode": "1F63B", "aliases": ""}, "repeat": {"keywords": "clockwise rightwards and leftwards open circle arr loop record", "shortname": ":repeat:", "unicode": "1F501", "aliases": ""}, "star": {"keywords": "white medium star night yellow", "shortname": ":star:", "unicode": "2B50", "aliases": ""}, "dart": {"keywords": "direct hit bar game direct hit bullseye dart archery game fletching arrow sport", "shortname": ":dart:", "unicode": "1F3AF", "aliases": ""}, "envelope": {"keywords": "envelope communication letter mail postal", "shortname": ":envelope:", "unicode": "2709", "aliases": ""}, "footprints": {"keywords": "footprints feet", "shortname": ":footprints:", "unicode": "1F463", "aliases": ""}, "smiley": {"keywords": "smiling face with open mouth face haha happy joy smiling smile smiley", "shortname": ":smiley:", "unicode": "1F603", "aliases": ""}, "pear": {"keywords": "pear fruit nature pear fruit shape", "shortname": ":pear:", "unicode": "1F350", "aliases": ""}, "taurus": {"keywords": "taurus purple-square sign taurus bull astrology greek constellation stars zodiac sign zodiac horoscope", "shortname": ":taurus:", "unicode": "2649", "aliases": ""}, "articulated_lorry": {"keywords": "articulated lorry cars transportation vehicle truck delivery semi lorry articulated", "shortname": ":articulated_lorry:", "unicode": "1F69B", "aliases": ""}, "u6e80": {"keywords": "squared cjk unified ideograph-6e80 chinese full japanese kanji red-square", "shortname": ":u6e80:", "unicode": "1F235", "aliases": ""}, "money_with_wings": {"keywords": "money with wings bills dollar payment money wings easy spend work lost blown burned gift cash dollar", "shortname": ":money_with_wings:", "unicode": "1F4B8", "aliases": ""}, "black_medium_square": {"keywords": "black medium square shape", "shortname": ":black_medium_square:", "unicode": "25FC", "aliases": ""}, "closed_book": {"keywords": "closed book knowledge library read", "shortname": ":closed_book:", "unicode": "1F4D5", "aliases": ""}, "ghost": {"keywords": "ghost halloween", "shortname": ":ghost:", "unicode": "1F47B", "aliases": ""}, "droplet": {"keywords": "droplet drip faucet water drop droplet h20 water aqua tear sweat rain moisture wet moist spit", "shortname": ":droplet:", "unicode": "1F4A7", "aliases": ""}, "spades": {"keywords": "black spade suit cards poker", "shortname": ":spades:", "unicode": "2660", "aliases": ""}, "vibration_mode": {"keywords": "vibration mode orange-square phone", "shortname": ":vibration_mode:", "unicode": "1F4F3", "aliases": ""}, "expressionless": {"keywords": "expressionless face expressionless blank void vapid without expression face indifferent", "shortname": ":expressionless:", "unicode": "1F611", "aliases": ""}, "dvd": {"keywords": "dvd cd disc disk", "shortname": ":dvd:", "unicode": "1F4C0", "aliases": ""}, "mask": {"keywords": "face with medical mask face ill sick sick virus flu medical mask", "shortname": ":mask:", "unicode": "1F637", "aliases": ""}, "mag_right": {"keywords": "right-pointing magnifying glass search zoom detective investigator detail details", "shortname": ":mag_right:", "unicode": "1F50E", "aliases": ""}, "bento": {"keywords": "bento box box food japanese bento japanese rice meal box obento convenient lunchbox", "shortname": ":bento:", "unicode": "1F371", "aliases": ""}, "sunrise_over_mountains": {"keywords": "sunrise over mountains photo vacation view sunrise sun morning mountain rural color sky", "shortname": ":sunrise_over_mountains:", "unicode": "1F304", "aliases": ""}, "partly_sunny": {"keywords": "sun behind cloud cloud morning nature weather", "shortname": ":partly_sunny:", "unicode": "26C5", "aliases": ""}, "heavy_dollar_sign": {"keywords": "heavy dollar sign currency money payment dollar currency money cash sale purchase value", "shortname": ":heavy_dollar_sign:", "unicode": "1F4B2", "aliases": ""}, "scroll": {"keywords": "scroll documents", "shortname": ":scroll:", "unicode": "1F4DC", "aliases": ""}}
\ No newline at end of file
diff --git a/pagure/static/vendor/emojione/emoji_strategy.json b/pagure/static/vendor/emojione/emoji_strategy.json
new file mode 120000
index 0000000..c74068b
--- /dev/null
+++ b/pagure/static/vendor/emojione/emoji_strategy.json
@@ -0,0 +1 @@
+emoji_strategy-1.3.1.json
\ No newline at end of file
diff --git a/pagure/static/vendor/emojione/emojione-1.3.1.js b/pagure/static/vendor/emojione/emojione-1.3.1.js
new file mode 100644
index 0000000..e961706
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione-1.3.1.js
@@ -0,0 +1,466 @@
+/* jshint maxerr: 10000 */
+/* jslint unused: true */
+/* jshint shadow: true */
+/* jshint -W075 */
+(function(ns){
+
+    ns.emojioneList = {':hash:':["0023-fe0f-20e3","0023-20e3"],':zero:':["0030-fe0f-20e3","0030-20e3"],':one:':["0031-fe0f-20e3","0031-20e3"],':two:':["0032-fe0f-20e3","0032-20e3"],':three:':["0033-fe0f-20e3","0033-20e3"],':four:':["0034-fe0f-20e3","0034-20e3"],':five:':["0035-fe0f-20e3","0035-20e3"],':six:':["0036-fe0f-20e3","0036-20e3"],':seven:':["0037-fe0f-20e3","0037-20e3"],':eight:':["0038-fe0f-20e3","0038-20e3"],':nine:':["0039-fe0f-20e3","0039-20e3"],':copyright:':["00a9"],':registered:':["00ae"],':bangbang:':["203c-fe0f","203c"],':interrobang:':["2049-fe0f","2049"],':tm:':["2122"],':information_source:':["2139-fe0f","2139"],':left_right_arrow:':["2194-fe0f","2194"],':arrow_up_down:':["2195-fe0f","2195"],':arrow_upper_left:':["2196-fe0f","2196"],':arrow_upper_right:':["2197-fe0f","2197"],':arrow_lower_right:':["2198-fe0f","2198"],':arrow_lower_left:':["2199-fe0f","2199"],':leftwards_arrow_with_hook:':["21a9-fe0f","21a9"],':arrow_right_hook:':["21aa-fe0f","21aa"],':watch:':["231a-fe0f","231a"],':hourglass:':["231b-fe0f","231b"],':fast_forward:':["23e9"],':rewind:':["23ea"],':arrow_double_up:':["23eb"],':arrow_double_down:':["23ec"],':alarm_clock:':["23f0"],':hourglass_flowing_sand:':["23f3"],':m:':["24c2-fe0f","24c2"],':black_small_square:':["25aa-fe0f","25aa"],':white_small_square:':["25ab-fe0f","25ab"],':arrow_forward:':["25b6-fe0f","25b6"],':arrow_backward:':["25c0-fe0f","25c0"],':white_medium_square:':["25fb-fe0f","25fb"],':black_medium_square:':["25fc-fe0f","25fc"],':white_medium_small_square:':["25fd-fe0f","25fd"],':black_medium_small_square:':["25fe-fe0f","25fe"],':sunny:':["2600-fe0f","2600"],':cloud:':["2601-fe0f","2601"],':telephone:':["260e-fe0f","260e"],':ballot_box_with_check:':["2611-fe0f","2611"],':umbrella:':["2614-fe0f","2614"],':coffee:':["2615-fe0f","2615"],':point_up:':["261d-fe0f","261d"],':relaxed:':["263a-fe0f","263a"],':aries:':["2648-fe0f","2648"],':taurus:':["2649-fe0f","2649"],':gemini:':["264a-fe0f","264a"],':cancer:':["264b-fe0f","264b"],':leo:':["264c-fe0f","264c"],':virgo:':["264d-fe0f","264d"],':libra:':["264e-fe0f","264e"],':scorpius:':["264f-fe0f","264f"],':sagittarius:':["2650-fe0f","2650"],':capricorn:':["2651-fe0f","2651"],':aquarius:':["2652-fe0f","2652"],':pisces:':["2653-fe0f","2653"],':spades:':["2660-fe0f","2660"],':clubs:':["2663-fe0f","2663"],':hearts:':["2665-fe0f","2665"],':diamonds:':["2666-fe0f","2666"],':hotsprings:':["2668-fe0f","2668"],':recycle:':["267b-fe0f","267b"],':wheelchair:':["267f-fe0f","267f"],':anchor:':["2693-fe0f","2693"],':warning:':["26a0-fe0f","26a0"],':zap:':["26a1-fe0f","26a1"],':white_circle:':["26aa-fe0f","26aa"],':black_circle:':["26ab-fe0f","26ab"],':soccer:':["26bd-fe0f","26bd"],':baseball:':["26be-fe0f","26be"],':snowman:':["26c4-fe0f","26c4"],':partly_sunny:':["26c5-fe0f","26c5"],':ophiuchus:':["26ce"],':no_entry:':["26d4-fe0f","26d4"],':church:':["26ea-fe0f","26ea"],':fountain:':["26f2-fe0f","26f2"],':golf:':["26f3-fe0f","26f3"],':sailboat:':["26f5-fe0f","26f5"],':tent:':["26fa-fe0f","26fa"],':fuelpump:':["26fd-fe0f","26fd"],':scissors:':["2702-fe0f","2702"],':white_check_mark:':["2705"],':airplane:':["2708-fe0f","2708"],':envelope:':["2709-fe0f","2709"],':fist:':["270a"],':raised_hand:':["270b"],':v:':["270c-fe0f","270c"],':pencil2:':["270f-fe0f","270f"],':black_nib:':["2712-fe0f","2712"],':heavy_check_mark:':["2714-fe0f","2714"],':heavy_multiplication_x:':["2716-fe0f","2716"],':sparkles:':["2728"],':eight_spoked_asterisk:':["2733-fe0f","2733"],':eight_pointed_black_star:':["2734-fe0f","2734"],':snowflake:':["2744-fe0f","2744"],':sparkle:':["2747-fe0f","2747"],':x:':["274c"],':negative_squared_cross_mark:':["274e"],':question:':["2753"],':grey_question:':["2754"],':grey_exclamation:':["2755"],':exclamation:':["2757-fe0f","2757"],':heart:':["2764-fe0f","2764"],':heavy_plus_sign:':["2795"],':heavy_minus_sign:':["2796"],':heavy_division_sign:':["2797"],':arrow_right:':["27a1-fe0f","27a1"],':curly_loop:':["27b0"],':arrow_heading_up:':["2934-fe0f","2934"],':arrow_heading_down:':["2935-fe0f","2935"],':arrow_left:':["2b05-fe0f","2b05"],':arrow_up:':["2b06-fe0f","2b06"],':arrow_down:':["2b07-fe0f","2b07"],':black_large_square:':["2b1b-fe0f","2b1b"],':white_large_square:':["2b1c-fe0f","2b1c"],':star:':["2b50-fe0f","2b50"],':o:':["2b55-fe0f","2b55"],':wavy_dash:':["3030"],':part_alternation_mark:':["303d-fe0f","303d"],':congratulations:':["3297-fe0f","3297"],':secret:':["3299-fe0f","3299"],':mahjong:':["1f004-fe0f","1f004"],':black_joker:':["1f0cf"],':a:':["1f170"],':b:':["1f171"],':o2:':["1f17e"],':parking:':["1f17f-fe0f","1f17f"],':ab:':["1f18e"],':cl:':["1f191"],':cool:':["1f192"],':free:':["1f193"],':id:':["1f194"],':new:':["1f195"],':ng:':["1f196"],':ok:':["1f197"],':sos:':["1f198"],':up:':["1f199"],':vs:':["1f19a"],':cn:':["1f1e8-1f1f3"],':de:':["1f1e9-1f1ea"],':es:':["1f1ea-1f1f8"],':fr:':["1f1eb-1f1f7"],':gb:':["1f1ec-1f1e7"],':it:':["1f1ee-1f1f9"],':jp:':["1f1ef-1f1f5"],':kr:':["1f1f0-1f1f7"],':us:':["1f1fa-1f1f8"],':ru:':["1f1f7-1f1fa"],':koko:':["1f201"],':sa:':["1f202"],':u7121:':["1f21a-fe0f","1f21a"],':u6307:':["1f22f-fe0f","1f22f"],':u7981:':["1f232"],':u7a7a:':["1f233"],':u5408:':["1f234"],':u6e80:':["1f235"],':u6709:':["1f236"],':u6708:':["1f237"],':u7533:':["1f238"],':u5272:':["1f239"],':u55b6:':["1f23a"],':ideograph_advantage:':["1f250"],':accept:':["1f251"],':cyclone:':["1f300"],':foggy:':["1f301"],':closed_umbrella:':["1f302"],':night_with_stars:':["1f303"],':sunrise_over_mountains:':["1f304"],':sunrise:':["1f305"],':city_dusk:':["1f306"],':city_sunset:':["1f307"],':city_sunrise:':["1f307"],':rainbow:':["1f308"],':bridge_at_night:':["1f309"],':ocean:':["1f30a"],':volcano:':["1f30b"],':milky_way:':["1f30c"],':earth_asia:':["1f30f"],':new_moon:':["1f311"],':first_quarter_moon:':["1f313"],':waxing_gibbous_moon:':["1f314"],':full_moon:':["1f315"],':crescent_moon:':["1f319"],':first_quarter_moon_with_face:':["1f31b"],':star2:':["1f31f"],':stars:':["1f320"],':chestnut:':["1f330"],':seedling:':["1f331"],':palm_tree:':["1f334"],':cactus:':["1f335"],':tulip:':["1f337"],':cherry_blossom:':["1f338"],':rose:':["1f339"],':hibiscus:':["1f33a"],':sunflower:':["1f33b"],':blossom:':["1f33c"],':corn:':["1f33d"],':ear_of_rice:':["1f33e"],':herb:':["1f33f"],':four_leaf_clover:':["1f340"],':maple_leaf:':["1f341"],':fallen_leaf:':["1f342"],':leaves:':["1f343"],':mushroom:':["1f344"],':tomato:':["1f345"],':eggplant:':["1f346"],':grapes:':["1f347"],':melon:':["1f348"],':watermelon:':["1f349"],':tangerine:':["1f34a"],':banana:':["1f34c"],':pineapple:':["1f34d"],':apple:':["1f34e"],':green_apple:':["1f34f"],':peach:':["1f351"],':cherries:':["1f352"],':strawberry:':["1f353"],':hamburger:':["1f354"],':pizza:':["1f355"],':meat_on_bone:':["1f356"],':poultry_leg:':["1f357"],':rice_cracker:':["1f358"],':rice_ball:':["1f359"],':rice:':["1f35a"],':curry:':["1f35b"],':ramen:':["1f35c"],':spaghetti:':["1f35d"],':bread:':["1f35e"],':fries:':["1f35f"],':sweet_potato:':["1f360"],':dango:':["1f361"],':oden:':["1f362"],':sushi:':["1f363"],':fried_shrimp:':["1f364"],':fish_cake:':["1f365"],':icecream:':["1f366"],':shaved_ice:':["1f367"],':ice_cream:':["1f368"],':doughnut:':["1f369"],':cookie:':["1f36a"],':chocolate_bar:':["1f36b"],':candy:':["1f36c"],':lollipop:':["1f36d"],':custard:':["1f36e"],':honey_pot:':["1f36f"],':cake:':["1f370"],':bento:':["1f371"],':stew:':["1f372"],':egg:':["1f373"],':fork_and_knife:':["1f374"],':tea:':["1f375"],':sake:':["1f376"],':wine_glass:':["1f377"],':cocktail:':["1f378"],':tropical_drink:':["1f379"],':beer:':["1f37a"],':beers:':["1f37b"],':ribbon:':["1f380"],':gift:':["1f381"],':birthday:':["1f382"],':jack_o_lantern:':["1f383"],':christmas_tree:':["1f384"],':santa:':["1f385"],':fireworks:':["1f386"],':sparkler:':["1f387"],':balloon:':["1f388"],':tada:':["1f389"],':confetti_ball:':["1f38a"],':tanabata_tree:':["1f38b"],':crossed_flags:':["1f38c"],':bamboo:':["1f38d"],':dolls:':["1f38e"],':flags:':["1f38f"],':wind_chime:':["1f390"],':rice_scene:':["1f391"],':school_satchel:':["1f392"],':mortar_board:':["1f393"],':carousel_horse:':["1f3a0"],':ferris_wheel:':["1f3a1"],':roller_coaster:':["1f3a2"],':fishing_pole_and_fish:':["1f3a3"],':microphone:':["1f3a4"],':movie_camera:':["1f3a5"],':cinema:':["1f3a6"],':headphones:':["1f3a7"],':art:':["1f3a8"],':tophat:':["1f3a9"],':circus_tent:':["1f3aa"],':ticket:':["1f3ab"],':clapper:':["1f3ac"],':performing_arts:':["1f3ad"],':video_game:':["1f3ae"],':dart:':["1f3af"],':slot_machine:':["1f3b0"],':8ball:':["1f3b1"],':game_die:':["1f3b2"],':bowling:':["1f3b3"],':flower_playing_cards:':["1f3b4"],':musical_note:':["1f3b5"],':notes:':["1f3b6"],':saxophone:':["1f3b7"],':guitar:':["1f3b8"],':musical_keyboard:':["1f3b9"],':trumpet:':["1f3ba"],':violin:':["1f3bb"],':musical_score:':["1f3bc"],':running_shirt_with_sash:':["1f3bd"],':tennis:':["1f3be"],':ski:':["1f3bf"],':basketball:':["1f3c0"],':checkered_flag:':["1f3c1"],':snowboarder:':["1f3c2"],':runner:':["1f3c3"],':surfer:':["1f3c4"],':trophy:':["1f3c6"],':football:':["1f3c8"],':swimmer:':["1f3ca"],':house:':["1f3e0"],':house_with_garden:':["1f3e1"],':office:':["1f3e2"],':post_office:':["1f3e3"],':hospital:':["1f3e5"],':bank:':["1f3e6"],':atm:':["1f3e7"],':hotel:':["1f3e8"],':love_hotel:':["1f3e9"],':convenience_store:':["1f3ea"],':school:':["1f3eb"],':department_store:':["1f3ec"],':factory:':["1f3ed"],':izakaya_lantern:':["1f3ee"],':japanese_castle:':["1f3ef"],':european_castle:':["1f3f0"],':snail:':["1f40c"],':snake:':["1f40d"],':racehorse:':["1f40e"],':sheep:':["1f411"],':monkey:':["1f412"],':chicken:':["1f414"],':boar:':["1f417"],':elephant:':["1f418"],':octopus:':["1f419"],':shell:':["1f41a"],':bug:':["1f41b"],':ant:':["1f41c"],':bee:':["1f41d"],':beetle:':["1f41e"],':fish:':["1f41f"],':tropical_fish:':["1f420"],':blowfish:':["1f421"],':turtle:':["1f422"],':hatching_chick:':["1f423"],':baby_chick:':["1f424"],':hatched_chick:':["1f425"],':bird:':["1f426"],':penguin:':["1f427"],':koala:':["1f428"],':poodle:':["1f429"],':camel:':["1f42b"],':dolphin:':["1f42c"],':mouse:':["1f42d"],':cow:':["1f42e"],':tiger:':["1f42f"],':rabbit:':["1f430"],':cat:':["1f431"],':dragon_face:':["1f432"],':whale:':["1f433"],':horse:':["1f434"],':monkey_face:':["1f435"],':dog:':["1f436"],':pig:':["1f437"],':frog:':["1f438"],':hamster:':["1f439"],':wolf:':["1f43a"],':bear:':["1f43b"],':panda_face:':["1f43c"],':pig_nose:':["1f43d"],':feet:':["1f43e"],':eyes:':["1f440"],':ear:':["1f442"],':nose:':["1f443"],':lips:':["1f444"],':tongue:':["1f445"],':point_up_2:':["1f446"],':point_down:':["1f447"],':point_left:':["1f448"],':point_right:':["1f449"],':punch:':["1f44a"],':wave:':["1f44b"],':ok_hand:':["1f44c"],':thumbsup:':["1f44d"],':+1:':["1f44d"],':thumbsdown:':["1f44e"],':-1:':["1f44e"],':clap:':["1f44f"],':open_hands:':["1f450"],':crown:':["1f451"],':womans_hat:':["1f452"],':eyeglasses:':["1f453"],':necktie:':["1f454"],':shirt:':["1f455"],':jeans:':["1f456"],':dress:':["1f457"],':kimono:':["1f458"],':bikini:':["1f459"],':womans_clothes:':["1f45a"],':purse:':["1f45b"],':handbag:':["1f45c"],':pouch:':["1f45d"],':mans_shoe:':["1f45e"],':athletic_shoe:':["1f45f"],':high_heel:':["1f460"],':sandal:':["1f461"],':boot:':["1f462"],':footprints:':["1f463"],':bust_in_silhouette:':["1f464"],':boy:':["1f466"],':girl:':["1f467"],':man:':["1f468"],':woman:':["1f469"],':family:':["1f46a"],':couple:':["1f46b"],':cop:':["1f46e"],':dancers:':["1f46f"],':bride_with_veil:':["1f470"],':person_with_blond_hair:':["1f471"],':man_with_gua_pi_mao:':["1f472"],':man_with_turban:':["1f473"],':older_man:':["1f474"],':older_woman:':["1f475"],':grandma:':["1f475"],':baby:':["1f476"],':construction_worker:':["1f477"],':princess:':["1f478"],':japanese_ogre:':["1f479"],':japanese_goblin:':["1f47a"],':ghost:':["1f47b"],':angel:':["1f47c"],':alien:':["1f47d"],':space_invader:':["1f47e"],':imp:':["1f47f"],':skull:':["1f480"],':skeleton:':["1f480"],':card_index:':["1f4c7"],':information_desk_person:':["1f481"],':guardsman:':["1f482"],':dancer:':["1f483"],':lipstick:':["1f484"],':nail_care:':["1f485"],':ledger:':["1f4d2"],':massage:':["1f486"],':notebook:':["1f4d3"],':haircut:':["1f487"],':notebook_with_decorative_cover:':["1f4d4"],':barber:':["1f488"],':closed_book:':["1f4d5"],':syringe:':["1f489"],':book:':["1f4d6"],':pill:':["1f48a"],':green_book:':["1f4d7"],':kiss:':["1f48b"],':blue_book:':["1f4d8"],':love_letter:':["1f48c"],':orange_book:':["1f4d9"],':ring:':["1f48d"],':books:':["1f4da"],':gem:':["1f48e"],':name_badge:':["1f4db"],':couplekiss:':["1f48f"],':scroll:':["1f4dc"],':bouquet:':["1f490"],':pencil:':["1f4dd"],':couple_with_heart:':["1f491"],':telephone_receiver:':["1f4de"],':wedding:':["1f492"],':pager:':["1f4df"],':fax:':["1f4e0"],':heartbeat:':["1f493"],':satellite:':["1f4e1"],':loudspeaker:':["1f4e2"],':broken_heart:':["1f494"],':mega:':["1f4e3"],':outbox_tray:':["1f4e4"],':two_hearts:':["1f495"],':inbox_tray:':["1f4e5"],':package:':["1f4e6"],':sparkling_heart:':["1f496"],':e-mail:':["1f4e7"],':email:':["1f4e7"],':incoming_envelope:':["1f4e8"],':heartpulse:':["1f497"],':envelope_with_arrow:':["1f4e9"],':mailbox_closed:':["1f4ea"],':cupid:':["1f498"],':mailbox:':["1f4eb"],':postbox:':["1f4ee"],':blue_heart:':["1f499"],':newspaper:':["1f4f0"],':iphone:':["1f4f1"],':green_heart:':["1f49a"],':calling:':["1f4f2"],':vibration_mode:':["1f4f3"],':yellow_heart:':["1f49b"],':mobile_phone_off:':["1f4f4"],':signal_strength:':["1f4f6"],':purple_heart:':["1f49c"],':camera:':["1f4f7"],':video_camera:':["1f4f9"],':gift_heart:':["1f49d"],':tv:':["1f4fa"],':radio:':["1f4fb"],':revolving_hearts:':["1f49e"],':vhs:':["1f4fc"],':arrows_clockwise:':["1f503"],':heart_decoration:':["1f49f"],':loud_sound:':["1f50a"],':battery:':["1f50b"],':diamond_shape_with_a_dot_inside:':["1f4a0"],':electric_plug:':["1f50c"],':mag:':["1f50d"],':bulb:':["1f4a1"],':mag_right:':["1f50e"],':lock_with_ink_pen:':["1f50f"],':anger:':["1f4a2"],':closed_lock_with_key:':["1f510"],':key:':["1f511"],':bomb:':["1f4a3"],':lock:':["1f512"],':unlock:':["1f513"],':zzz:':["1f4a4"],':bell:':["1f514"],':bookmark:':["1f516"],':boom:':["1f4a5"],':link:':["1f517"],':radio_button:':["1f518"],':sweat_drops:':["1f4a6"],':back:':["1f519"],':end:':["1f51a"],':droplet:':["1f4a7"],':on:':["1f51b"],':soon:':["1f51c"],':dash:':["1f4a8"],':top:':["1f51d"],':underage:':["1f51e"],':poop:':["1f4a9"],':shit:':["1f4a9"],':hankey:':["1f4a9"],':poo:':["1f4a9"],':keycap_ten:':["1f51f"],':muscle:':["1f4aa"],':capital_abcd:':["1f520"],':abcd:':["1f521"],':dizzy:':["1f4ab"],':1234:':["1f522"],':symbols:':["1f523"],':speech_balloon:':["1f4ac"],':abc:':["1f524"],':fire:':["1f525"],':flame:':["1f525"],':white_flower:':["1f4ae"],':flashlight:':["1f526"],':wrench:':["1f527"],':100:':["1f4af"],':hammer:':["1f528"],':nut_and_bolt:':["1f529"],':moneybag:':["1f4b0"],':knife:':["1f52a"],':gun:':["1f52b"],':currency_exchange:':["1f4b1"],':crystal_ball:':["1f52e"],':heavy_dollar_sign:':["1f4b2"],':six_pointed_star:':["1f52f"],':credit_card:':["1f4b3"],':beginner:':["1f530"],':trident:':["1f531"],':yen:':["1f4b4"],':black_square_button:':["1f532"],':white_square_button:':["1f533"],':dollar:':["1f4b5"],':red_circle:':["1f534"],':large_blue_circle:':["1f535"],':money_with_wings:':["1f4b8"],':large_orange_diamond:':["1f536"],':large_blue_diamond:':["1f537"],':chart:':["1f4b9"],':small_orange_diamond:':["1f538"],':small_blue_diamond:':["1f539"],':seat:':["1f4ba"],':small_red_triangle:':["1f53a"],':small_red_triangle_down:':["1f53b"],':computer:':["1f4bb"],':arrow_up_small:':["1f53c"],':briefcase:':["1f4bc"],':arrow_down_small:':["1f53d"],':clock1:':["1f550"],':minidisc:':["1f4bd"],':clock2:':["1f551"],':floppy_disk:':["1f4be"],':clock3:':["1f552"],':cd:':["1f4bf"],':clock4:':["1f553"],':dvd:':["1f4c0"],':clock5:':["1f554"],':clock6:':["1f555"],':file_folder:':["1f4c1"],':clock7:':["1f556"],':clock8:':["1f557"],':open_file_folder:':["1f4c2"],':clock9:':["1f558"],':clock10:':["1f559"],':page_with_curl:':["1f4c3"],':clock11:':["1f55a"],':clock12:':["1f55b"],':page_facing_up:':["1f4c4"],':mount_fuji:':["1f5fb"],':tokyo_tower:':["1f5fc"],':date:':["1f4c5"],':statue_of_liberty:':["1f5fd"],':japan:':["1f5fe"],':calendar:':["1f4c6"],':moyai:':["1f5ff"],':grin:':["1f601"],':joy:':["1f602"],':smiley:':["1f603"],':chart_with_upwards_trend:':["1f4c8"],':smile:':["1f604"],':sweat_smile:':["1f605"],':chart_with_downwards_trend:':["1f4c9"],':laughing:':["1f606"],':satisfied:':["1f606"],':wink:':["1f609"],':bar_chart:':["1f4ca"],':blush:':["1f60a"],':yum:':["1f60b"],':clipboard:':["1f4cb"],':relieved:':["1f60c"],':heart_eyes:':["1f60d"],':pushpin:':["1f4cc"],':smirk:':["1f60f"],':unamused:':["1f612"],':round_pushpin:':["1f4cd"],':sweat:':["1f613"],':pensive:':["1f614"],':paperclip:':["1f4ce"],':confounded:':["1f616"],':kissing_heart:':["1f618"],':straight_ruler:':["1f4cf"],':kissing_closed_eyes:':["1f61a"],':stuck_out_tongue_winking_eye:':["1f61c"],':triangular_ruler:':["1f4d0"],':stuck_out_tongue_closed_eyes:':["1f61d"],':disappointed:':["1f61e"],':bookmark_tabs:':["1f4d1"],':angry:':["1f620"],':rage:':["1f621"],':cry:':["1f622"],':persevere:':["1f623"],':triumph:':["1f624"],':disappointed_relieved:':["1f625"],':fearful:':["1f628"],':weary:':["1f629"],':sleepy:':["1f62a"],':tired_face:':["1f62b"],':sob:':["1f62d"],':cold_sweat:':["1f630"],':scream:':["1f631"],':astonished:':["1f632"],':flushed:':["1f633"],':dizzy_face:':["1f635"],':mask:':["1f637"],':smile_cat:':["1f638"],':joy_cat:':["1f639"],':smiley_cat:':["1f63a"],':heart_eyes_cat:':["1f63b"],':smirk_cat:':["1f63c"],':kissing_cat:':["1f63d"],':pouting_cat:':["1f63e"],':crying_cat_face:':["1f63f"],':scream_cat:':["1f640"],':no_good:':["1f645"],':ok_woman:':["1f646"],':bow:':["1f647"],':see_no_evil:':["1f648"],':hear_no_evil:':["1f649"],':speak_no_evil:':["1f64a"],':raising_hand:':["1f64b"],':raised_hands:':["1f64c"],':person_frowning:':["1f64d"],':person_with_pouting_face:':["1f64e"],':pray:':["1f64f"],':rocket:':["1f680"],':railway_car:':["1f683"],':bullettrain_side:':["1f684"],':bullettrain_front:':["1f685"],':metro:':["1f687"],':station:':["1f689"],':bus:':["1f68c"],':busstop:':["1f68f"],':ambulance:':["1f691"],':fire_engine:':["1f692"],':police_car:':["1f693"],':taxi:':["1f695"],':red_car:':["1f697"],':blue_car:':["1f699"],':truck:':["1f69a"],':ship:':["1f6a2"],':speedboat:':["1f6a4"],':traffic_light:':["1f6a5"],':construction:':["1f6a7"],':rotating_light:':["1f6a8"],':triangular_flag_on_post:':["1f6a9"],':door:':["1f6aa"],':no_entry_sign:':["1f6ab"],':smoking:':["1f6ac"],':no_smoking:':["1f6ad"],':bike:':["1f6b2"],':walking:':["1f6b6"],':mens:':["1f6b9"],':womens:':["1f6ba"],':restroom:':["1f6bb"],':baby_symbol:':["1f6bc"],':toilet:':["1f6bd"],':wc:':["1f6be"],':bath:':["1f6c0"],':grinning:':["1f600"],':innocent:':["1f607"],':smiling_imp:':["1f608"],':sunglasses:':["1f60e"],':neutral_face:':["1f610"],':expressionless:':["1f611"],':confused:':["1f615"],':kissing:':["1f617"],':kissing_smiling_eyes:':["1f619"],':stuck_out_tongue:':["1f61b"],':worried:':["1f61f"],':frowning:':["1f626"],':anguished:':["1f627"],':grimacing:':["1f62c"],':open_mouth:':["1f62e"],':hushed:':["1f62f"],':sleeping:':["1f634"],':no_mouth:':["1f636"],':helicopter:':["1f681"],':steam_locomotive:':["1f682"],':train2:':["1f686"],':light_rail:':["1f688"],':tram:':["1f68a"],':oncoming_bus:':["1f68d"],':trolleybus:':["1f68e"],':minibus:':["1f690"],':oncoming_police_car:':["1f694"],':oncoming_taxi:':["1f696"],':oncoming_automobile:':["1f698"],':articulated_lorry:':["1f69b"],':tractor:':["1f69c"],':monorail:':["1f69d"],':mountain_railway:':["1f69e"],':suspension_railway:':["1f69f"],':mountain_cableway:':["1f6a0"],':aerial_tramway:':["1f6a1"],':rowboat:':["1f6a3"],':vertical_traffic_light:':["1f6a6"],':put_litter_in_its_place:':["1f6ae"],':do_not_litter:':["1f6af"],':potable_water:':["1f6b0"],':non-potable_water:':["1f6b1"],':no_bicycles:':["1f6b3"],':bicyclist:':["1f6b4"],':mountain_bicyclist:':["1f6b5"],':no_pedestrians:':["1f6b7"],':children_crossing:':["1f6b8"],':shower:':["1f6bf"],':bathtub:':["1f6c1"],':passport_control:':["1f6c2"],':customs:':["1f6c3"],':baggage_claim:':["1f6c4"],':left_luggage:':["1f6c5"],':earth_africa:':["1f30d"],':earth_americas:':["1f30e"],':globe_with_meridians:':["1f310"],':waxing_crescent_moon:':["1f312"],':waning_gibbous_moon:':["1f316"],':last_quarter_moon:':["1f317"],':waning_crescent_moon:':["1f318"],':new_moon_with_face:':["1f31a"],':last_quarter_moon_with_face:':["1f31c"],':full_moon_with_face:':["1f31d"],':sun_with_face:':["1f31e"],':evergreen_tree:':["1f332"],':deciduous_tree:':["1f333"],':lemon:':["1f34b"],':pear:':["1f350"],':baby_bottle:':["1f37c"],':horse_racing:':["1f3c7"],':rugby_football:':["1f3c9"],':european_post_office:':["1f3e4"],':rat:':["1f400"],':mouse2:':["1f401"],':ox:':["1f402"],':water_buffalo:':["1f403"],':cow2:':["1f404"],':tiger2:':["1f405"],':leopard:':["1f406"],':rabbit2:':["1f407"],':cat2:':["1f408"],':dragon:':["1f409"],':crocodile:':["1f40a"],':whale2:':["1f40b"],':ram:':["1f40f"],':goat:':["1f410"],':rooster:':["1f413"],':dog2:':["1f415"],':pig2:':["1f416"],':dromedary_camel:':["1f42a"],':busts_in_silhouette:':["1f465"],':two_men_holding_hands:':["1f46c"],':two_women_holding_hands:':["1f46d"],':thought_balloon:':["1f4ad"],':euro:':["1f4b6"],':pound:':["1f4b7"],':mailbox_with_mail:':["1f4ec"],':mailbox_with_no_mail:':["1f4ed"],':postal_horn:':["1f4ef"],':no_mobile_phones:':["1f4f5"],':twisted_rightwards_arrows:':["1f500"],':repeat:':["1f501"],':repeat_one:':["1f502"],':arrows_counterclockwise:':["1f504"],':low_brightness:':["1f505"],':high_brightness:':["1f506"],':mute:':["1f507"],':sound:':["1f509"],':no_bell:':["1f515"],':microscope:':["1f52c"],':telescope:':["1f52d"],':clock130:':["1f55c"],':clock230:':["1f55d"],':clock330:':["1f55e"],':clock430:':["1f55f"],':clock530:':["1f560"],':clock630:':["1f561"],':clock730:':["1f562"],':clock830:':["1f563"],':clock930:':["1f564"],':clock1030:':["1f565"],':clock1130:':["1f566"],':clock1230:':["1f567"],':speaker:':["1f508"],':train:':["1f68b"],':loop:':["27bf"],':af:':["1f1e6-1f1eb"],':al:':["1f1e6-1f1f1"],':dz:':["1f1e9-1f1ff"],':ad:':["1f1e6-1f1e9"],':ao:':["1f1e6-1f1f4"],':ag:':["1f1e6-1f1ec"],':ar:':["1f1e6-1f1f7"],':am:':["1f1e6-1f1f2"],':au:':["1f1e6-1f1fa"],':at:':["1f1e6-1f1f9"],':az:':["1f1e6-1f1ff"],':bs:':["1f1e7-1f1f8"],':bh:':["1f1e7-1f1ed"],':bd:':["1f1e7-1f1e9"],':bb:':["1f1e7-1f1e7"],':by:':["1f1e7-1f1fe"],':be:':["1f1e7-1f1ea"],':bz:':["1f1e7-1f1ff"],':bj:':["1f1e7-1f1ef"],':bt:':["1f1e7-1f1f9"],':bo:':["1f1e7-1f1f4"],':ba:':["1f1e7-1f1e6"],':bw:':["1f1e7-1f1fc"],':br:':["1f1e7-1f1f7"],':bn:':["1f1e7-1f1f3"],':bg:':["1f1e7-1f1ec"],':bf:':["1f1e7-1f1eb"],':bi:':["1f1e7-1f1ee"],':kh:':["1f1f0-1f1ed"],':cm:':["1f1e8-1f1f2"],':ca:':["1f1e8-1f1e6"],':cv:':["1f1e8-1f1fb"],':cf:':["1f1e8-1f1eb"],':td:':["1f1f9-1f1e9"],':chile:':["1f1e8-1f1f1"],':co:':["1f1e8-1f1f4"],':km:':["1f1f0-1f1f2"],':cr:':["1f1e8-1f1f7"],':ci:':["1f1e8-1f1ee"],':hr:':["1f1ed-1f1f7"],':cu:':["1f1e8-1f1fa"],':cy:':["1f1e8-1f1fe"],':cz:':["1f1e8-1f1ff"],':congo:':["1f1e8-1f1e9"],':dk:':["1f1e9-1f1f0"],':dj:':["1f1e9-1f1ef"],':dm:':["1f1e9-1f1f2"],':do:':["1f1e9-1f1f4"],':tl:':["1f1f9-1f1f1"],':ec:':["1f1ea-1f1e8"],':eg:':["1f1ea-1f1ec"],':sv:':["1f1f8-1f1fb"],':gq:':["1f1ec-1f1f6"],':er:':["1f1ea-1f1f7"],':ee:':["1f1ea-1f1ea"],':et:':["1f1ea-1f1f9"],':fj:':["1f1eb-1f1ef"],':fi:':["1f1eb-1f1ee"],':ga:':["1f1ec-1f1e6"],':gm:':["1f1ec-1f1f2"],':ge:':["1f1ec-1f1ea"],':gh:':["1f1ec-1f1ed"],':gr:':["1f1ec-1f1f7"],':gd:':["1f1ec-1f1e9"],':gt:':["1f1ec-1f1f9"],':gn:':["1f1ec-1f1f3"],':gw:':["1f1ec-1f1fc"],':gy:':["1f1ec-1f1fe"],':ht:':["1f1ed-1f1f9"],':hn:':["1f1ed-1f1f3"],':hu:':["1f1ed-1f1fa"],':is:':["1f1ee-1f1f8"],':in:':["1f1ee-1f1f3"],':indonesia:':["1f1ee-1f1e9"],':ir:':["1f1ee-1f1f7"],':iq:':["1f1ee-1f1f6"],':ie:':["1f1ee-1f1ea"],':il:':["1f1ee-1f1f1"],':jm:':["1f1ef-1f1f2"],':jo:':["1f1ef-1f1f4"],':kz:':["1f1f0-1f1ff"],':ke:':["1f1f0-1f1ea"],':ki:':["1f1f0-1f1ee"],':xk:':["1f1fd-1f1f0"],':kw:':["1f1f0-1f1fc"],':kg:':["1f1f0-1f1ec"],':la:':["1f1f1-1f1e6"],':lv:':["1f1f1-1f1fb"],':lb:':["1f1f1-1f1e7"],':ls:':["1f1f1-1f1f8"],':lr:':["1f1f1-1f1f7"],':ly:':["1f1f1-1f1fe"],':li:':["1f1f1-1f1ee"],':lt:':["1f1f1-1f1f9"],':lu:':["1f1f1-1f1fa"],':mk:':["1f1f2-1f1f0"],':mg:':["1f1f2-1f1ec"],':mw:':["1f1f2-1f1fc"],':my:':["1f1f2-1f1fe"],':mv:':["1f1f2-1f1fb"],':ml:':["1f1f2-1f1f1"],':mt:':["1f1f2-1f1f9"],':mh:':["1f1f2-1f1ed"],':mr:':["1f1f2-1f1f7"],':mu:':["1f1f2-1f1fa"],':mx:':["1f1f2-1f1fd"],':fm:':["1f1eb-1f1f2"],':md:':["1f1f2-1f1e9"],':mc:':["1f1f2-1f1e8"],':mn:':["1f1f2-1f1f3"],':me:':["1f1f2-1f1ea"],':ma:':["1f1f2-1f1e6"],':mz:':["1f1f2-1f1ff"],':mm:':["1f1f2-1f1f2"],':na:':["1f1f3-1f1e6"],':nr:':["1f1f3-1f1f7"],':np:':["1f1f3-1f1f5"],':nl:':["1f1f3-1f1f1"],':nz:':["1f1f3-1f1ff"],':ni:':["1f1f3-1f1ee"],':ne:':["1f1f3-1f1ea"],':nigeria:':["1f1f3-1f1ec"],':kp:':["1f1f0-1f1f5"],':no:':["1f1f3-1f1f4"],':om:':["1f1f4-1f1f2"],':pk:':["1f1f5-1f1f0"],':pw:':["1f1f5-1f1fc"],':pa:':["1f1f5-1f1e6"],':pg:':["1f1f5-1f1ec"],':py:':["1f1f5-1f1fe"],':pe:':["1f1f5-1f1ea"],':ph:':["1f1f5-1f1ed"],':pl:':["1f1f5-1f1f1"],':pt:':["1f1f5-1f1f9"],':qa:':["1f1f6-1f1e6"],':tw:':["1f1f9-1f1fc"],':cg:':["1f1e8-1f1ec"],':ro:':["1f1f7-1f1f4"],':rw:':["1f1f7-1f1fc"],':kn:':["1f1f0-1f1f3"],':lc:':["1f1f1-1f1e8"],':vc:':["1f1fb-1f1e8"],':ws:':["1f1fc-1f1f8"],':sm:':["1f1f8-1f1f2"],':st:':["1f1f8-1f1f9"],':saudiarabia:':["1f1f8-1f1e6"],':saudi:':["1f1f8-1f1e6"],':sn:':["1f1f8-1f1f3"],':rs:':["1f1f7-1f1f8"],':sc:':["1f1f8-1f1e8"],':sl:':["1f1f8-1f1f1"],':sg:':["1f1f8-1f1ec"],':sk:':["1f1f8-1f1f0"],':si:':["1f1f8-1f1ee"],':sb:':["1f1f8-1f1e7"],':so:':["1f1f8-1f1f4"],':za:':["1f1ff-1f1e6"],':lk:':["1f1f1-1f1f0"],':sd:':["1f1f8-1f1e9"],':sr:':["1f1f8-1f1f7"],':sz:':["1f1f8-1f1ff"],':se:':["1f1f8-1f1ea"],':ch:':["1f1e8-1f1ed"],':sy:':["1f1f8-1f1fe"],':tj:':["1f1f9-1f1ef"],':tz:':["1f1f9-1f1ff"],':th:':["1f1f9-1f1ed"],':tg:':["1f1f9-1f1ec"],':to:':["1f1f9-1f1f4"],':tt:':["1f1f9-1f1f9"],':tn:':["1f1f9-1f1f3"],':tr:':["1f1f9-1f1f7"],':turkmenistan:':["1f1f9-1f1f2"],':tuvalu:':["1f1f9-1f1fb"],':ug:':["1f1fa-1f1ec"],':ua:':["1f1fa-1f1e6"],':ae:':["1f1e6-1f1ea"],':uy:':["1f1fa-1f1fe"],':uz:':["1f1fa-1f1ff"],':vu:':["1f1fb-1f1fa"],':va:':["1f1fb-1f1e6"],':ve:':["1f1fb-1f1ea"],':vn:':["1f1fb-1f1f3"],':eh:':["1f1ea-1f1ed"],':ye:':["1f1fe-1f1ea"],':zm:':["1f1ff-1f1f2"],':zw:':["1f1ff-1f1fc"],':pr:':["1f1f5-1f1f7"],':ky:':["1f1f0-1f1fe"],':bm:':["1f1e7-1f1f2"],':pf:':["1f1f5-1f1eb"],':ps:':["1f1f5-1f1f8"],':nc:':["1f1f3-1f1e8"],':sh:':["1f1f8-1f1ed"],':aw:':["1f1e6-1f1fc"],':vi:':["1f1fb-1f1ee"],':hk:':["1f1ed-1f1f0"],':ac:':["1f1e6-1f1e8"],':ms:':["1f1f2-1f1f8"],':gu:':["1f1ec-1f1fa"],':gl:':["1f1ec-1f1f1"],':nu:':["1f1f3-1f1fa"],':wf:':["1f1fc-1f1eb"],':mo:':["1f1f2-1f1f4"],':fo:':["1f1eb-1f1f4"],':fk:':["1f1eb-1f1f0"],':je:':["1f1ef-1f1ea"],':ai:':["1f1e6-1f1ee"],':gi:':["1f1ec-1f1ee"]};
+    ns.asciiList = {
+        '<3':'2764',
+        '</3':'1f494',
+        ':\')':'1f602',
+        ':\'-)':'1f602',
+        ':D':'1f603',
+        ':-D':'1f603',
+        '=D':'1f603',
+        ':)':'1f604',
+        ':-)':'1f604',
+        '=]':'1f604',
+        '=)':'1f604',
+        ':]':'1f604',
+        '\':)':'1f605',
+        '\':-)':'1f605',
+        '\'=)':'1f605',
+        '\':D':'1f605',
+        '\':-D':'1f605',
+        '\'=D':'1f605',
+        '>:)':'1f606',
+        '>;)':'1f606',
+        '>:-)':'1f606',
+        '>=)':'1f606',
+        ';)':'1f609',
+        ';-)':'1f609',
+        '*-)':'1f609',
+        '*)':'1f609',
+        ';-]':'1f609',
+        ';]':'1f609',
+        ';D':'1f609',
+        ';^)':'1f609',
+        '\':(':'1f613',
+        '\':-(':'1f613',
+        '\'=(':'1f613',
+        ':*':'1f618',
+        ':-*':'1f618',
+        '=*':'1f618',
+        ':^*':'1f618',
+        '>:P':'1f61c',
+        'X-P':'1f61c',
+        'x-p':'1f61c',
+        '>:[':'1f61e',
+        ':-(':'1f61e',
+        ':(':'1f61e',
+        ':-[':'1f61e',
+        ':[':'1f61e',
+        '=(':'1f61e',
+        '>:(':'1f620',
+        '>:-(':'1f620',
+        ':@':'1f620',
+        ':\'(':'1f622',
+        ':\'-(':'1f622',
+        ';(':'1f622',
+        ';-(':'1f622',
+        '>.<':'1f623',
+        ':$':'1f633',
+        '=$':'1f633',
+        '#-)':'1f635',
+        '#)':'1f635',
+        '%-)':'1f635',
+        '%)':'1f635',
+        'X)':'1f635',
+        'X-)':'1f635',
+        '*\\0/*':'1f646',
+        '\\0/':'1f646',
+        '*\\O/*':'1f646',
+        '\\O/':'1f646',
+        'O:-)':'1f607',
+        '0:-3':'1f607',
+        '0:3':'1f607',
+        '0:-)':'1f607',
+        '0:)':'1f607',
+        '0;^)':'1f607',
+        'O:)':'1f607',
+        'O;-)':'1f607',
+        'O=)':'1f607',
+        '0;-)':'1f607',
+        'O:-3':'1f607',
+        'O:3':'1f607',
+        'B-)':'1f60e',
+        'B)':'1f60e',
+        '8)':'1f60e',
+        '8-)':'1f60e',
+        'B-D':'1f60e',
+        '8-D':'1f60e',
+        '-_-':'1f611',
+        '-__-':'1f611',
+        '-___-':'1f611',
+        '>:\\':'1f615',
+        '>:/':'1f615',
+        ':-/':'1f615',
+        ':-.':'1f615',
+        ':/':'1f615',
+        ':\\':'1f615',
+        '=/':'1f615',
+        '=\\':'1f615',
+        ':L':'1f615',
+        '=L':'1f615',
+        ':P':'1f61b',
+        ':-P':'1f61b',
+        '=P':'1f61b',
+        ':-p':'1f61b',
+        ':p':'1f61b',
+        '=p':'1f61b',
+        ':-Þ':'1f61b',
+        ':Þ':'1f61b',
+        ':þ':'1f61b',
+        ':-þ':'1f61b',
+        ':-b':'1f61b',
+        ':b':'1f61b',
+        'd:':'1f61b',
+        ':-O':'1f62e',
+        ':O':'1f62e',
+        ':-o':'1f62e',
+        ':o':'1f62e',
+        'O_O':'1f62e',
+        '>:O':'1f62e',
+        ':-X':'1f636',
+        ':X':'1f636',
+        ':-#':'1f636',
+        ':#':'1f636',
+        '=X':'1f636',
+        '=x':'1f636',
+        ':x':'1f636',
+        ':-x':'1f636',
+        '=#':'1f636'
+    };
+    ns.asciiRegexp = '(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:\'\\)|\\:\'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|\'\\:\\)|\'\\:\\-\\)|\'\\=\\)|\'\\:D|\'\\:\\-D|\'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|\'\\:\\(|\'\\:\\-\\(|\'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:\'\\(|\\:\'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)';
+    ns.unicodeRegexp = '(#\\uFE0F\\u20E3|#\\u20E3|0\\uFE0F\\u20E3|0\\u20E3|1\\uFE0F\\u20E3|1\\u20E3|2\\uFE0F\\u20E3|2\\u20E3|3\\uFE0F\\u20E3|3\\u20E3|4\\uFE0F\\u20E3|4\\u20E3|5\\uFE0F\\u20E3|5\\u20E3|6\\uFE0F\\u20E3|6\\u20E3|7\\uFE0F\\u20E3|7\\u20E3|8\\uFE0F\\u20E3|8\\u20E3|9\\uFE0F\\u20E3|9\\u20E3|\\u00A9|\\u00AE|\\u203C\\uFE0F|\\u203C|\\u2049\\uFE0F|\\u2049|\\u2122|\\u2139\\uFE0F|\\u2139|\\u2194\\uFE0F|\\u2194|\\u2195\\uFE0F|\\u2195|\\u2196\\uFE0F|\\u2196|\\u2197\\uFE0F|\\u2197|\\u2198\\uFE0F|\\u2198|\\u2199\\uFE0F|\\u2199|\\u21A9\\uFE0F|\\u21A9|\\u21AA\\uFE0F|\\u21AA|\\u231A\\uFE0F|\\u231A|\\u231B\\uFE0F|\\u231B|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u24C2\\uFE0F|\\u24C2|\\u25AA\\uFE0F|\\u25AA|\\u25AB\\uFE0F|\\u25AB|\\u25B6\\uFE0F|\\u25B6|\\u25C0\\uFE0F|\\u25C0|\\u25FB\\uFE0F|\\u25FB|\\u25FC\\uFE0F|\\u25FC|\\u25FD\\uFE0F|\\u25FD|\\u25FE\\uFE0F|\\u25FE|\\u2600\\uFE0F|\\u2600|\\u2601\\uFE0F|\\u2601|\\u260E\\uFE0F|\\u260E|\\u2611\\uFE0F|\\u2611|\\u2614\\uFE0F|\\u2614|\\u2615\\uFE0F|\\u2615|\\u261D\\uFE0F|\\u261D|\\u263A\\uFE0F|\\u263A|\\u2648\\uFE0F|\\u2648|\\u2649\\uFE0F|\\u2649|\\u264A\\uFE0F|\\u264A|\\u264B\\uFE0F|\\u264B|\\u264C\\uFE0F|\\u264C|\\u264D\\uFE0F|\\u264D|\\u264E\\uFE0F|\\u264E|\\u264F\\uFE0F|\\u264F|\\u2650\\uFE0F|\\u2650|\\u2651\\uFE0F|\\u2651|\\u2652\\uFE0F|\\u2652|\\u2653\\uFE0F|\\u2653|\\u2660\\uFE0F|\\u2660|\\u2663\\uFE0F|\\u2663|\\u2665\\uFE0F|\\u2665|\\u2666\\uFE0F|\\u2666|\\u2668\\uFE0F|\\u2668|\\u267B\\uFE0F|\\u267B|\\u267F\\uFE0F|\\u267F|\\u2693\\uFE0F|\\u2693|\\u26A0\\uFE0F|\\u26A0|\\u26A1\\uFE0F|\\u26A1|\\u26AA\\uFE0F|\\u26AA|\\u26AB\\uFE0F|\\u26AB|\\u26BD\\uFE0F|\\u26BD|\\u26BE\\uFE0F|\\u26BE|\\u26C4\\uFE0F|\\u26C4|\\u26C5\\uFE0F|\\u26C5|\\u26CE|\\u26D4\\uFE0F|\\u26D4|\\u26EA\\uFE0F|\\u26EA|\\u26F2\\uFE0F|\\u26F2|\\u26F3\\uFE0F|\\u26F3|\\u26F5\\uFE0F|\\u26F5|\\u26FA\\uFE0F|\\u26FA|\\u26FD\\uFE0F|\\u26FD|\\u2702\\uFE0F|\\u2702|\\u2705|\\u2708\\uFE0F|\\u2708|\\u2709\\uFE0F|\\u2709|\\u270A|\\u270B|\\u270C\\uFE0F|\\u270C|\\u270F\\uFE0F|\\u270F|\\u2712\\uFE0F|\\u2712|\\u2714\\uFE0F|\\u2714|\\u2716\\uFE0F|\\u2716|\\u2728|\\u2733\\uFE0F|\\u2733|\\u2734\\uFE0F|\\u2734|\\u2744\\uFE0F|\\u2744|\\u2747\\uFE0F|\\u2747|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2757\\uFE0F|\\u2757|\\u2764\\uFE0F|\\u2764|\\u2795|\\u2796|\\u2797|\\u27A1\\uFE0F|\\u27A1|\\u27B0|\\u2934\\uFE0F|\\u2934|\\u2935\\uFE0F|\\u2935|\\u2B05\\uFE0F|\\u2B05|\\u2B06\\uFE0F|\\u2B06|\\u2B07\\uFE0F|\\u2B07|\\u2B1B\\uFE0F|\\u2B1B|\\u2B1C\\uFE0F|\\u2B1C|\\u2B50\\uFE0F|\\u2B50|\\u2B55\\uFE0F|\\u2B55|\\u3030|\\u303D\\uFE0F|\\u303D|\\u3297\\uFE0F|\\u3297|\\u3299\\uFE0F|\\u3299|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDC04|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDD7F|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE1A|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE2F|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE37|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\u27BF|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDEE)';
+    ns.jsecapeMap = {"#\uFE0F\u20E3":"0023-20E3","#\u20E3":"0023-20E3","0\uFE0F\u20E3":"0030-20E3","0\u20E3":"0030-20E3","1\uFE0F\u20E3":"0031-20E3","1\u20E3":"0031-20E3","2\uFE0F\u20E3":"0032-20E3","2\u20E3":"0032-20E3","3\uFE0F\u20E3":"0033-20E3","3\u20E3":"0033-20E3","4\uFE0F\u20E3":"0034-20E3","4\u20E3":"0034-20E3","5\uFE0F\u20E3":"0035-20E3","5\u20E3":"0035-20E3","6\uFE0F\u20E3":"0036-20E3","6\u20E3":"0036-20E3","7\uFE0F\u20E3":"0037-20E3","7\u20E3":"0037-20E3","8\uFE0F\u20E3":"0038-20E3","8\u20E3":"0038-20E3","9\uFE0F\u20E3":"0039-20E3","9\u20E3":"0039-20E3","\u00A9":"00A9","\u00AE":"00AE","\u203C\uFE0F":"203C","\u203C":"203C","\u2049\uFE0F":"2049","\u2049":"2049","\u2122":"2122","\u2139\uFE0F":"2139","\u2139":"2139","\u2194\uFE0F":"2194","\u2194":"2194","\u2195\uFE0F":"2195","\u2195":"2195","\u2196\uFE0F":"2196","\u2196":"2196","\u2197\uFE0F":"2197","\u2197":"2197","\u2198\uFE0F":"2198","\u2198":"2198","\u2199\uFE0F":"2199","\u2199":"2199","\u21A9\uFE0F":"21A9","\u21A9":"21A9","\u21AA\uFE0F":"21AA","\u21AA":"21AA","\u231A\uFE0F":"231A","\u231A":"231A","\u231B\uFE0F":"231B","\u231B":"231B","\u23E9":"23E9","\u23EA":"23EA","\u23EB":"23EB","\u23EC":"23EC","\u23F0":"23F0","\u23F3":"23F3","\u24C2\uFE0F":"24C2","\u24C2":"24C2","\u25AA\uFE0F":"25AA","\u25AA":"25AA","\u25AB\uFE0F":"25AB","\u25AB":"25AB","\u25B6\uFE0F":"25B6","\u25B6":"25B6","\u25C0\uFE0F":"25C0","\u25C0":"25C0","\u25FB\uFE0F":"25FB","\u25FB":"25FB","\u25FC\uFE0F":"25FC","\u25FC":"25FC","\u25FD\uFE0F":"25FD","\u25FD":"25FD","\u25FE\uFE0F":"25FE","\u25FE":"25FE","\u2600\uFE0F":"2600","\u2600":"2600","\u2601\uFE0F":"2601","\u2601":"2601","\u260E\uFE0F":"260E","\u260E":"260E","\u2611\uFE0F":"2611","\u2611":"2611","\u2614\uFE0F":"2614","\u2614":"2614","\u2615\uFE0F":"2615","\u2615":"2615","\u261D\uFE0F":"261D","\u261D":"261D","\u263A\uFE0F":"263A","\u263A":"263A","\u2648\uFE0F":"2648","\u2648":"2648","\u2649\uFE0F":"2649","\u2649":"2649","\u264A\uFE0F":"264A","\u264A":"264A","\u264B\uFE0F":"264B","\u264B":"264B","\u264C\uFE0F":"264C","\u264C":"264C","\u264D\uFE0F":"264D","\u264D":"264D","\u264E\uFE0F":"264E","\u264E":"264E","\u264F\uFE0F":"264F","\u264F":"264F","\u2650\uFE0F":"2650","\u2650":"2650","\u2651\uFE0F":"2651","\u2651":"2651","\u2652\uFE0F":"2652","\u2652":"2652","\u2653\uFE0F":"2653","\u2653":"2653","\u2660\uFE0F":"2660","\u2660":"2660","\u2663\uFE0F":"2663","\u2663":"2663","\u2665\uFE0F":"2665","\u2665":"2665","\u2666\uFE0F":"2666","\u2666":"2666","\u2668\uFE0F":"2668","\u2668":"2668","\u267B\uFE0F":"267B","\u267B":"267B","\u267F\uFE0F":"267F","\u267F":"267F","\u2693\uFE0F":"2693","\u2693":"2693","\u26A0\uFE0F":"26A0","\u26A0":"26A0","\u26A1\uFE0F":"26A1","\u26A1":"26A1","\u26AA\uFE0F":"26AA","\u26AA":"26AA","\u26AB\uFE0F":"26AB","\u26AB":"26AB","\u26BD\uFE0F":"26BD","\u26BD":"26BD","\u26BE\uFE0F":"26BE","\u26BE":"26BE","\u26C4\uFE0F":"26C4","\u26C4":"26C4","\u26C5\uFE0F":"26C5","\u26C5":"26C5","\u26CE":"26CE","\u26D4\uFE0F":"26D4","\u26D4":"26D4","\u26EA\uFE0F":"26EA","\u26EA":"26EA","\u26F2\uFE0F":"26F2","\u26F2":"26F2","\u26F3\uFE0F":"26F3","\u26F3":"26F3","\u26F5\uFE0F":"26F5","\u26F5":"26F5","\u26FA\uFE0F":"26FA","\u26FA":"26FA","\u26FD\uFE0F":"26FD","\u26FD":"26FD","\u2702\uFE0F":"2702","\u2702":"2702","\u2705":"2705","\u2708\uFE0F":"2708","\u2708":"2708","\u2709\uFE0F":"2709","\u2709":"2709","\u270A":"270A","\u270B":"270B","\u270C\uFE0F":"270C","\u270C":"270C","\u270F\uFE0F":"270F","\u270F":"270F","\u2712\uFE0F":"2712","\u2712":"2712","\u2714\uFE0F":"2714","\u2714":"2714","\u2716\uFE0F":"2716","\u2716":"2716","\u2728":"2728","\u2733\uFE0F":"2733","\u2733":"2733","\u2734\uFE0F":"2734","\u2734":"2734","\u2744\uFE0F":"2744","\u2744":"2744","\u2747\uFE0F":"2747","\u2747":"2747","\u274C":"274C","\u274E":"274E","\u2753":"2753","\u2754":"2754","\u2755":"2755","\u2757\uFE0F":"2757","\u2757":"2757","\u2764\uFE0F":"2764","\u2764":"2764","\u2795":"2795","\u2796":"2796","\u2797":"2797","\u27A1\uFE0F":"27A1","\u27A1":"27A1","\u27B0":"27B0","\u2934\uFE0F":"2934","\u2934":"2934","\u2935\uFE0F":"2935","\u2935":"2935","\u2B05\uFE0F":"2B05","\u2B05":"2B05","\u2B06\uFE0F":"2B06","\u2B06":"2B06","\u2B07\uFE0F":"2B07","\u2B07":"2B07","\u2B1B\uFE0F":"2B1B","\u2B1B":"2B1B","\u2B1C\uFE0F":"2B1C","\u2B1C":"2B1C","\u2B50\uFE0F":"2B50","\u2B50":"2B50","\u2B55\uFE0F":"2B55","\u2B55":"2B55","\u3030":"3030","\u303D\uFE0F":"303D","\u303D":"303D","\u3297\uFE0F":"3297","\u3297":"3297","\u3299\uFE0F":"3299","\u3299":"3299","\uD83C\uDC04\uFE0F":"1F004","\uD83C\uDC04":"1F004","\uD83C\uDCCF":"1F0CF","\uD83C\uDD70":"1F170","\uD83C\uDD71":"1F171","\uD83C\uDD7E":"1F17E","\uD83C\uDD7F\uFE0F":"1F17F","\uD83C\uDD7F":"1F17F","\uD83C\uDD8E":"1F18E","\uD83C\uDD91":"1F191","\uD83C\uDD92":"1F192","\uD83C\uDD93":"1F193","\uD83C\uDD94":"1F194","\uD83C\uDD95":"1F195","\uD83C\uDD96":"1F196","\uD83C\uDD97":"1F197","\uD83C\uDD98":"1F198","\uD83C\uDD99":"1F199","\uD83C\uDD9A":"1F19A","\uD83C\uDDE8\uD83C\uDDF3":"1F1E8-1F1F3","\uD83C\uDDE9\uD83C\uDDEA":"1F1E9-1F1EA","\uD83C\uDDEA\uD83C\uDDF8":"1F1EA-1F1F8","\uD83C\uDDEB\uD83C\uDDF7":"1F1EB-1F1F7","\uD83C\uDDEC\uD83C\uDDE7":"1F1EC-1F1E7","\uD83C\uDDEE\uD83C\uDDF9":"1F1EE-1F1F9","\uD83C\uDDEF\uD83C\uDDF5":"1F1EF-1F1F5","\uD83C\uDDF0\uD83C\uDDF7":"1F1F0-1F1F7","\uD83C\uDDFA\uD83C\uDDF8":"1F1FA-1F1F8","\uD83C\uDDF7\uD83C\uDDFA":"1F1F7-1F1FA","\uD83C\uDE01":"1F201","\uD83C\uDE02":"1F202","\uD83C\uDE1A\uFE0F":"1F21A","\uD83C\uDE1A":"1F21A","\uD83C\uDE2F\uFE0F":"1F22F","\uD83C\uDE2F":"1F22F","\uD83C\uDE32":"1F232","\uD83C\uDE33":"1F233","\uD83C\uDE34":"1F234","\uD83C\uDE35":"1F235","\uD83C\uDE36":"1F236","\uD83C\uDE37":"1F237","\uD83C\uDE38":"1F238","\uD83C\uDE39":"1F239","\uD83C\uDE3A":"1F23A","\uD83C\uDE50":"1F250","\uD83C\uDE51":"1F251","\uD83C\uDF00":"1F300","\uD83C\uDF01":"1F301","\uD83C\uDF02":"1F302","\uD83C\uDF03":"1F303","\uD83C\uDF04":"1F304","\uD83C\uDF05":"1F305","\uD83C\uDF06":"1F306","\uD83C\uDF07":"1F307","\uD83C\uDF08":"1F308","\uD83C\uDF09":"1F309","\uD83C\uDF0A":"1F30A","\uD83C\uDF0B":"1F30B","\uD83C\uDF0C":"1F30C","\uD83C\uDF0F":"1F30F","\uD83C\uDF11":"1F311","\uD83C\uDF13":"1F313","\uD83C\uDF14":"1F314","\uD83C\uDF15":"1F315","\uD83C\uDF19":"1F319","\uD83C\uDF1B":"1F31B","\uD83C\uDF1F":"1F31F","\uD83C\uDF20":"1F320","\uD83C\uDF30":"1F330","\uD83C\uDF31":"1F331","\uD83C\uDF34":"1F334","\uD83C\uDF35":"1F335","\uD83C\uDF37":"1F337","\uD83C\uDF38":"1F338","\uD83C\uDF39":"1F339","\uD83C\uDF3A":"1F33A","\uD83C\uDF3B":"1F33B","\uD83C\uDF3C":"1F33C","\uD83C\uDF3D":"1F33D","\uD83C\uDF3E":"1F33E","\uD83C\uDF3F":"1F33F","\uD83C\uDF40":"1F340","\uD83C\uDF41":"1F341","\uD83C\uDF42":"1F342","\uD83C\uDF43":"1F343","\uD83C\uDF44":"1F344","\uD83C\uDF45":"1F345","\uD83C\uDF46":"1F346","\uD83C\uDF47":"1F347","\uD83C\uDF48":"1F348","\uD83C\uDF49":"1F349","\uD83C\uDF4A":"1F34A","\uD83C\uDF4C":"1F34C","\uD83C\uDF4D":"1F34D","\uD83C\uDF4E":"1F34E","\uD83C\uDF4F":"1F34F","\uD83C\uDF51":"1F351","\uD83C\uDF52":"1F352","\uD83C\uDF53":"1F353","\uD83C\uDF54":"1F354","\uD83C\uDF55":"1F355","\uD83C\uDF56":"1F356","\uD83C\uDF57":"1F357","\uD83C\uDF58":"1F358","\uD83C\uDF59":"1F359","\uD83C\uDF5A":"1F35A","\uD83C\uDF5B":"1F35B","\uD83C\uDF5C":"1F35C","\uD83C\uDF5D":"1F35D","\uD83C\uDF5E":"1F35E","\uD83C\uDF5F":"1F35F","\uD83C\uDF60":"1F360","\uD83C\uDF61":"1F361","\uD83C\uDF62":"1F362","\uD83C\uDF63":"1F363","\uD83C\uDF64":"1F364","\uD83C\uDF65":"1F365","\uD83C\uDF66":"1F366","\uD83C\uDF67":"1F367","\uD83C\uDF68":"1F368","\uD83C\uDF69":"1F369","\uD83C\uDF6A":"1F36A","\uD83C\uDF6B":"1F36B","\uD83C\uDF6C":"1F36C","\uD83C\uDF6D":"1F36D","\uD83C\uDF6E":"1F36E","\uD83C\uDF6F":"1F36F","\uD83C\uDF70":"1F370","\uD83C\uDF71":"1F371","\uD83C\uDF72":"1F372","\uD83C\uDF73":"1F373","\uD83C\uDF74":"1F374","\uD83C\uDF75":"1F375","\uD83C\uDF76":"1F376","\uD83C\uDF77":"1F377","\uD83C\uDF78":"1F378","\uD83C\uDF79":"1F379","\uD83C\uDF7A":"1F37A","\uD83C\uDF7B":"1F37B","\uD83C\uDF80":"1F380","\uD83C\uDF81":"1F381","\uD83C\uDF82":"1F382","\uD83C\uDF83":"1F383","\uD83C\uDF84":"1F384","\uD83C\uDF85":"1F385","\uD83C\uDF86":"1F386","\uD83C\uDF87":"1F387","\uD83C\uDF88":"1F388","\uD83C\uDF89":"1F389","\uD83C\uDF8A":"1F38A","\uD83C\uDF8B":"1F38B","\uD83C\uDF8C":"1F38C","\uD83C\uDF8D":"1F38D","\uD83C\uDF8E":"1F38E","\uD83C\uDF8F":"1F38F","\uD83C\uDF90":"1F390","\uD83C\uDF91":"1F391","\uD83C\uDF92":"1F392","\uD83C\uDF93":"1F393","\uD83C\uDFA0":"1F3A0","\uD83C\uDFA1":"1F3A1","\uD83C\uDFA2":"1F3A2","\uD83C\uDFA3":"1F3A3","\uD83C\uDFA4":"1F3A4","\uD83C\uDFA5":"1F3A5","\uD83C\uDFA6":"1F3A6","\uD83C\uDFA7":"1F3A7","\uD83C\uDFA8":"1F3A8","\uD83C\uDFA9":"1F3A9","\uD83C\uDFAA":"1F3AA","\uD83C\uDFAB":"1F3AB","\uD83C\uDFAC":"1F3AC","\uD83C\uDFAD":"1F3AD","\uD83C\uDFAE":"1F3AE","\uD83C\uDFAF":"1F3AF","\uD83C\uDFB0":"1F3B0","\uD83C\uDFB1":"1F3B1","\uD83C\uDFB2":"1F3B2","\uD83C\uDFB3":"1F3B3","\uD83C\uDFB4":"1F3B4","\uD83C\uDFB5":"1F3B5","\uD83C\uDFB6":"1F3B6","\uD83C\uDFB7":"1F3B7","\uD83C\uDFB8":"1F3B8","\uD83C\uDFB9":"1F3B9","\uD83C\uDFBA":"1F3BA","\uD83C\uDFBB":"1F3BB","\uD83C\uDFBC":"1F3BC","\uD83C\uDFBD":"1F3BD","\uD83C\uDFBE":"1F3BE","\uD83C\uDFBF":"1F3BF","\uD83C\uDFC0":"1F3C0","\uD83C\uDFC1":"1F3C1","\uD83C\uDFC2":"1F3C2","\uD83C\uDFC3":"1F3C3","\uD83C\uDFC4":"1F3C4","\uD83C\uDFC6":"1F3C6","\uD83C\uDFC8":"1F3C8","\uD83C\uDFCA":"1F3CA","\uD83C\uDFE0":"1F3E0","\uD83C\uDFE1":"1F3E1","\uD83C\uDFE2":"1F3E2","\uD83C\uDFE3":"1F3E3","\uD83C\uDFE5":"1F3E5","\uD83C\uDFE6":"1F3E6","\uD83C\uDFE7":"1F3E7","\uD83C\uDFE8":"1F3E8","\uD83C\uDFE9":"1F3E9","\uD83C\uDFEA":"1F3EA","\uD83C\uDFEB":"1F3EB","\uD83C\uDFEC":"1F3EC","\uD83C\uDFED":"1F3ED","\uD83C\uDFEE":"1F3EE","\uD83C\uDFEF":"1F3EF","\uD83C\uDFF0":"1F3F0","\uD83D\uDC0C":"1F40C","\uD83D\uDC0D":"1F40D","\uD83D\uDC0E":"1F40E","\uD83D\uDC11":"1F411","\uD83D\uDC12":"1F412","\uD83D\uDC14":"1F414","\uD83D\uDC17":"1F417","\uD83D\uDC18":"1F418","\uD83D\uDC19":"1F419","\uD83D\uDC1A":"1F41A","\uD83D\uDC1B":"1F41B","\uD83D\uDC1C":"1F41C","\uD83D\uDC1D":"1F41D","\uD83D\uDC1E":"1F41E","\uD83D\uDC1F":"1F41F","\uD83D\uDC20":"1F420","\uD83D\uDC21":"1F421","\uD83D\uDC22":"1F422","\uD83D\uDC23":"1F423","\uD83D\uDC24":"1F424","\uD83D\uDC25":"1F425","\uD83D\uDC26":"1F426","\uD83D\uDC27":"1F427","\uD83D\uDC28":"1F428","\uD83D\uDC29":"1F429","\uD83D\uDC2B":"1F42B","\uD83D\uDC2C":"1F42C","\uD83D\uDC2D":"1F42D","\uD83D\uDC2E":"1F42E","\uD83D\uDC2F":"1F42F","\uD83D\uDC30":"1F430","\uD83D\uDC31":"1F431","\uD83D\uDC32":"1F432","\uD83D\uDC33":"1F433","\uD83D\uDC34":"1F434","\uD83D\uDC35":"1F435","\uD83D\uDC36":"1F436","\uD83D\uDC37":"1F437","\uD83D\uDC38":"1F438","\uD83D\uDC39":"1F439","\uD83D\uDC3A":"1F43A","\uD83D\uDC3B":"1F43B","\uD83D\uDC3C":"1F43C","\uD83D\uDC3D":"1F43D","\uD83D\uDC3E":"1F43E","\uD83D\uDC40":"1F440","\uD83D\uDC42":"1F442","\uD83D\uDC43":"1F443","\uD83D\uDC44":"1F444","\uD83D\uDC45":"1F445","\uD83D\uDC46":"1F446","\uD83D\uDC47":"1F447","\uD83D\uDC48":"1F448","\uD83D\uDC49":"1F449","\uD83D\uDC4A":"1F44A","\uD83D\uDC4B":"1F44B","\uD83D\uDC4C":"1F44C","\uD83D\uDC4D":"1F44D","\uD83D\uDC4E":"1F44E","\uD83D\uDC4F":"1F44F","\uD83D\uDC50":"1F450","\uD83D\uDC51":"1F451","\uD83D\uDC52":"1F452","\uD83D\uDC53":"1F453","\uD83D\uDC54":"1F454","\uD83D\uDC55":"1F455","\uD83D\uDC56":"1F456","\uD83D\uDC57":"1F457","\uD83D\uDC58":"1F458","\uD83D\uDC59":"1F459","\uD83D\uDC5A":"1F45A","\uD83D\uDC5B":"1F45B","\uD83D\uDC5C":"1F45C","\uD83D\uDC5D":"1F45D","\uD83D\uDC5E":"1F45E","\uD83D\uDC5F":"1F45F","\uD83D\uDC60":"1F460","\uD83D\uDC61":"1F461","\uD83D\uDC62":"1F462","\uD83D\uDC63":"1F463","\uD83D\uDC64":"1F464","\uD83D\uDC66":"1F466","\uD83D\uDC67":"1F467","\uD83D\uDC68":"1F468","\uD83D\uDC69":"1F469","\uD83D\uDC6A":"1F46A","\uD83D\uDC6B":"1F46B","\uD83D\uDC6E":"1F46E","\uD83D\uDC6F":"1F46F","\uD83D\uDC70":"1F470","\uD83D\uDC71":"1F471","\uD83D\uDC72":"1F472","\uD83D\uDC73":"1F473","\uD83D\uDC74":"1F474","\uD83D\uDC75":"1F475","\uD83D\uDC76":"1F476","\uD83D\uDC77":"1F477","\uD83D\uDC78":"1F478","\uD83D\uDC79":"1F479","\uD83D\uDC7A":"1F47A","\uD83D\uDC7B":"1F47B","\uD83D\uDC7C":"1F47C","\uD83D\uDC7D":"1F47D","\uD83D\uDC7E":"1F47E","\uD83D\uDC7F":"1F47F","\uD83D\uDC80":"1F480","\uD83D\uDCC7":"1F4C7","\uD83D\uDC81":"1F481","\uD83D\uDC82":"1F482","\uD83D\uDC83":"1F483","\uD83D\uDC84":"1F484","\uD83D\uDC85":"1F485","\uD83D\uDCD2":"1F4D2","\uD83D\uDC86":"1F486","\uD83D\uDCD3":"1F4D3","\uD83D\uDC87":"1F487","\uD83D\uDCD4":"1F4D4","\uD83D\uDC88":"1F488","\uD83D\uDCD5":"1F4D5","\uD83D\uDC89":"1F489","\uD83D\uDCD6":"1F4D6","\uD83D\uDC8A":"1F48A","\uD83D\uDCD7":"1F4D7","\uD83D\uDC8B":"1F48B","\uD83D\uDCD8":"1F4D8","\uD83D\uDC8C":"1F48C","\uD83D\uDCD9":"1F4D9","\uD83D\uDC8D":"1F48D","\uD83D\uDCDA":"1F4DA","\uD83D\uDC8E":"1F48E","\uD83D\uDCDB":"1F4DB","\uD83D\uDC8F":"1F48F","\uD83D\uDCDC":"1F4DC","\uD83D\uDC90":"1F490","\uD83D\uDCDD":"1F4DD","\uD83D\uDC91":"1F491","\uD83D\uDCDE":"1F4DE","\uD83D\uDC92":"1F492","\uD83D\uDCDF":"1F4DF","\uD83D\uDCE0":"1F4E0","\uD83D\uDC93":"1F493","\uD83D\uDCE1":"1F4E1","\uD83D\uDCE2":"1F4E2","\uD83D\uDC94":"1F494","\uD83D\uDCE3":"1F4E3","\uD83D\uDCE4":"1F4E4","\uD83D\uDC95":"1F495","\uD83D\uDCE5":"1F4E5","\uD83D\uDCE6":"1F4E6","\uD83D\uDC96":"1F496","\uD83D\uDCE7":"1F4E7","\uD83D\uDCE8":"1F4E8","\uD83D\uDC97":"1F497","\uD83D\uDCE9":"1F4E9","\uD83D\uDCEA":"1F4EA","\uD83D\uDC98":"1F498","\uD83D\uDCEB":"1F4EB","\uD83D\uDCEE":"1F4EE","\uD83D\uDC99":"1F499","\uD83D\uDCF0":"1F4F0","\uD83D\uDCF1":"1F4F1","\uD83D\uDC9A":"1F49A","\uD83D\uDCF2":"1F4F2","\uD83D\uDCF3":"1F4F3","\uD83D\uDC9B":"1F49B","\uD83D\uDCF4":"1F4F4","\uD83D\uDCF6":"1F4F6","\uD83D\uDC9C":"1F49C","\uD83D\uDCF7":"1F4F7","\uD83D\uDCF9":"1F4F9","\uD83D\uDC9D":"1F49D","\uD83D\uDCFA":"1F4FA","\uD83D\uDCFB":"1F4FB","\uD83D\uDC9E":"1F49E","\uD83D\uDCFC":"1F4FC","\uD83D\uDD03":"1F503","\uD83D\uDC9F":"1F49F","\uD83D\uDD0A":"1F50A","\uD83D\uDD0B":"1F50B","\uD83D\uDCA0":"1F4A0","\uD83D\uDD0C":"1F50C","\uD83D\uDD0D":"1F50D","\uD83D\uDCA1":"1F4A1","\uD83D\uDD0E":"1F50E","\uD83D\uDD0F":"1F50F","\uD83D\uDCA2":"1F4A2","\uD83D\uDD10":"1F510","\uD83D\uDD11":"1F511","\uD83D\uDCA3":"1F4A3","\uD83D\uDD12":"1F512","\uD83D\uDD13":"1F513","\uD83D\uDCA4":"1F4A4","\uD83D\uDD14":"1F514","\uD83D\uDD16":"1F516","\uD83D\uDCA5":"1F4A5","\uD83D\uDD17":"1F517","\uD83D\uDD18":"1F518","\uD83D\uDCA6":"1F4A6","\uD83D\uDD19":"1F519","\uD83D\uDD1A":"1F51A","\uD83D\uDCA7":"1F4A7","\uD83D\uDD1B":"1F51B","\uD83D\uDD1C":"1F51C","\uD83D\uDCA8":"1F4A8","\uD83D\uDD1D":"1F51D","\uD83D\uDD1E":"1F51E","\uD83D\uDCA9":"1F4A9","\uD83D\uDD1F":"1F51F","\uD83D\uDCAA":"1F4AA","\uD83D\uDD20":"1F520","\uD83D\uDD21":"1F521","\uD83D\uDCAB":"1F4AB","\uD83D\uDD22":"1F522","\uD83D\uDD23":"1F523","\uD83D\uDCAC":"1F4AC","\uD83D\uDD24":"1F524","\uD83D\uDD25":"1F525","\uD83D\uDCAE":"1F4AE","\uD83D\uDD26":"1F526","\uD83D\uDD27":"1F527","\uD83D\uDCAF":"1F4AF","\uD83D\uDD28":"1F528","\uD83D\uDD29":"1F529","\uD83D\uDCB0":"1F4B0","\uD83D\uDD2A":"1F52A","\uD83D\uDD2B":"1F52B","\uD83D\uDCB1":"1F4B1","\uD83D\uDD2E":"1F52E","\uD83D\uDCB2":"1F4B2","\uD83D\uDD2F":"1F52F","\uD83D\uDCB3":"1F4B3","\uD83D\uDD30":"1F530","\uD83D\uDD31":"1F531","\uD83D\uDCB4":"1F4B4","\uD83D\uDD32":"1F532","\uD83D\uDD33":"1F533","\uD83D\uDCB5":"1F4B5","\uD83D\uDD34":"1F534","\uD83D\uDD35":"1F535","\uD83D\uDCB8":"1F4B8","\uD83D\uDD36":"1F536","\uD83D\uDD37":"1F537","\uD83D\uDCB9":"1F4B9","\uD83D\uDD38":"1F538","\uD83D\uDD39":"1F539","\uD83D\uDCBA":"1F4BA","\uD83D\uDD3A":"1F53A","\uD83D\uDD3B":"1F53B","\uD83D\uDCBB":"1F4BB","\uD83D\uDD3C":"1F53C","\uD83D\uDCBC":"1F4BC","\uD83D\uDD3D":"1F53D","\uD83D\uDD50":"1F550","\uD83D\uDCBD":"1F4BD","\uD83D\uDD51":"1F551","\uD83D\uDCBE":"1F4BE","\uD83D\uDD52":"1F552","\uD83D\uDCBF":"1F4BF","\uD83D\uDD53":"1F553","\uD83D\uDCC0":"1F4C0","\uD83D\uDD54":"1F554","\uD83D\uDD55":"1F555","\uD83D\uDCC1":"1F4C1","\uD83D\uDD56":"1F556","\uD83D\uDD57":"1F557","\uD83D\uDCC2":"1F4C2","\uD83D\uDD58":"1F558","\uD83D\uDD59":"1F559","\uD83D\uDCC3":"1F4C3","\uD83D\uDD5A":"1F55A","\uD83D\uDD5B":"1F55B","\uD83D\uDCC4":"1F4C4","\uD83D\uDDFB":"1F5FB","\uD83D\uDDFC":"1F5FC","\uD83D\uDCC5":"1F4C5","\uD83D\uDDFD":"1F5FD","\uD83D\uDDFE":"1F5FE","\uD83D\uDCC6":"1F4C6","\uD83D\uDDFF":"1F5FF","\uD83D\uDE01":"1F601","\uD83D\uDE02":"1F602","\uD83D\uDE03":"1F603","\uD83D\uDCC8":"1F4C8","\uD83D\uDE04":"1F604","\uD83D\uDE05":"1F605","\uD83D\uDCC9":"1F4C9","\uD83D\uDE06":"1F606","\uD83D\uDE09":"1F609","\uD83D\uDCCA":"1F4CA","\uD83D\uDE0A":"1F60A","\uD83D\uDE0B":"1F60B","\uD83D\uDCCB":"1F4CB","\uD83D\uDE0C":"1F60C","\uD83D\uDE0D":"1F60D","\uD83D\uDCCC":"1F4CC","\uD83D\uDE0F":"1F60F","\uD83D\uDE12":"1F612","\uD83D\uDCCD":"1F4CD","\uD83D\uDE13":"1F613","\uD83D\uDE14":"1F614","\uD83D\uDCCE":"1F4CE","\uD83D\uDE16":"1F616","\uD83D\uDE18":"1F618","\uD83D\uDCCF":"1F4CF","\uD83D\uDE1A":"1F61A","\uD83D\uDE1C":"1F61C","\uD83D\uDCD0":"1F4D0","\uD83D\uDE1D":"1F61D","\uD83D\uDE1E":"1F61E","\uD83D\uDCD1":"1F4D1","\uD83D\uDE20":"1F620","\uD83D\uDE21":"1F621","\uD83D\uDE22":"1F622","\uD83D\uDE23":"1F623","\uD83D\uDE24":"1F624","\uD83D\uDE25":"1F625","\uD83D\uDE28":"1F628","\uD83D\uDE29":"1F629","\uD83D\uDE2A":"1F62A","\uD83D\uDE2B":"1F62B","\uD83D\uDE2D":"1F62D","\uD83D\uDE30":"1F630","\uD83D\uDE31":"1F631","\uD83D\uDE32":"1F632","\uD83D\uDE33":"1F633","\uD83D\uDE35":"1F635","\uD83D\uDE37":"1F637","\uD83D\uDE38":"1F638","\uD83D\uDE39":"1F639","\uD83D\uDE3A":"1F63A","\uD83D\uDE3B":"1F63B","\uD83D\uDE3C":"1F63C","\uD83D\uDE3D":"1F63D","\uD83D\uDE3E":"1F63E","\uD83D\uDE3F":"1F63F","\uD83D\uDE40":"1F640","\uD83D\uDE45":"1F645","\uD83D\uDE46":"1F646","\uD83D\uDE47":"1F647","\uD83D\uDE48":"1F648","\uD83D\uDE49":"1F649","\uD83D\uDE4A":"1F64A","\uD83D\uDE4B":"1F64B","\uD83D\uDE4C":"1F64C","\uD83D\uDE4D":"1F64D","\uD83D\uDE4E":"1F64E","\uD83D\uDE4F":"1F64F","\uD83D\uDE80":"1F680","\uD83D\uDE83":"1F683","\uD83D\uDE84":"1F684","\uD83D\uDE85":"1F685","\uD83D\uDE87":"1F687","\uD83D\uDE89":"1F689","\uD83D\uDE8C":"1F68C","\uD83D\uDE8F":"1F68F","\uD83D\uDE91":"1F691","\uD83D\uDE92":"1F692","\uD83D\uDE93":"1F693","\uD83D\uDE95":"1F695","\uD83D\uDE97":"1F697","\uD83D\uDE99":"1F699","\uD83D\uDE9A":"1F69A","\uD83D\uDEA2":"1F6A2","\uD83D\uDEA4":"1F6A4","\uD83D\uDEA5":"1F6A5","\uD83D\uDEA7":"1F6A7","\uD83D\uDEA8":"1F6A8","\uD83D\uDEA9":"1F6A9","\uD83D\uDEAA":"1F6AA","\uD83D\uDEAB":"1F6AB","\uD83D\uDEAC":"1F6AC","\uD83D\uDEAD":"1F6AD","\uD83D\uDEB2":"1F6B2","\uD83D\uDEB6":"1F6B6","\uD83D\uDEB9":"1F6B9","\uD83D\uDEBA":"1F6BA","\uD83D\uDEBB":"1F6BB","\uD83D\uDEBC":"1F6BC","\uD83D\uDEBD":"1F6BD","\uD83D\uDEBE":"1F6BE","\uD83D\uDEC0":"1F6C0","\uD83D\uDE00":"1F600","\uD83D\uDE07":"1F607","\uD83D\uDE08":"1F608","\uD83D\uDE0E":"1F60E","\uD83D\uDE10":"1F610","\uD83D\uDE11":"1F611","\uD83D\uDE15":"1F615","\uD83D\uDE17":"1F617","\uD83D\uDE19":"1F619","\uD83D\uDE1B":"1F61B","\uD83D\uDE1F":"1F61F","\uD83D\uDE26":"1F626","\uD83D\uDE27":"1F627","\uD83D\uDE2C":"1F62C","\uD83D\uDE2E":"1F62E","\uD83D\uDE2F":"1F62F","\uD83D\uDE34":"1F634","\uD83D\uDE36":"1F636","\uD83D\uDE81":"1F681","\uD83D\uDE82":"1F682","\uD83D\uDE86":"1F686","\uD83D\uDE88":"1F688","\uD83D\uDE8A":"1F68A","\uD83D\uDE8D":"1F68D","\uD83D\uDE8E":"1F68E","\uD83D\uDE90":"1F690","\uD83D\uDE94":"1F694","\uD83D\uDE96":"1F696","\uD83D\uDE98":"1F698","\uD83D\uDE9B":"1F69B","\uD83D\uDE9C":"1F69C","\uD83D\uDE9D":"1F69D","\uD83D\uDE9E":"1F69E","\uD83D\uDE9F":"1F69F","\uD83D\uDEA0":"1F6A0","\uD83D\uDEA1":"1F6A1","\uD83D\uDEA3":"1F6A3","\uD83D\uDEA6":"1F6A6","\uD83D\uDEAE":"1F6AE","\uD83D\uDEAF":"1F6AF","\uD83D\uDEB0":"1F6B0","\uD83D\uDEB1":"1F6B1","\uD83D\uDEB3":"1F6B3","\uD83D\uDEB4":"1F6B4","\uD83D\uDEB5":"1F6B5","\uD83D\uDEB7":"1F6B7","\uD83D\uDEB8":"1F6B8","\uD83D\uDEBF":"1F6BF","\uD83D\uDEC1":"1F6C1","\uD83D\uDEC2":"1F6C2","\uD83D\uDEC3":"1F6C3","\uD83D\uDEC4":"1F6C4","\uD83D\uDEC5":"1F6C5","\uD83C\uDF0D":"1F30D","\uD83C\uDF0E":"1F30E","\uD83C\uDF10":"1F310","\uD83C\uDF12":"1F312","\uD83C\uDF16":"1F316","\uD83C\uDF17":"1F317","\uD83C\uDF18":"1F318","\uD83C\uDF1A":"1F31A","\uD83C\uDF1C":"1F31C","\uD83C\uDF1D":"1F31D","\uD83C\uDF1E":"1F31E","\uD83C\uDF32":"1F332","\uD83C\uDF33":"1F333","\uD83C\uDF4B":"1F34B","\uD83C\uDF50":"1F350","\uD83C\uDF7C":"1F37C","\uD83C\uDFC7":"1F3C7","\uD83C\uDFC9":"1F3C9","\uD83C\uDFE4":"1F3E4","\uD83D\uDC00":"1F400","\uD83D\uDC01":"1F401","\uD83D\uDC02":"1F402","\uD83D\uDC03":"1F403","\uD83D\uDC04":"1F404","\uD83D\uDC05":"1F405","\uD83D\uDC06":"1F406","\uD83D\uDC07":"1F407","\uD83D\uDC08":"1F408","\uD83D\uDC09":"1F409","\uD83D\uDC0A":"1F40A","\uD83D\uDC0B":"1F40B","\uD83D\uDC0F":"1F40F","\uD83D\uDC10":"1F410","\uD83D\uDC13":"1F413","\uD83D\uDC15":"1F415","\uD83D\uDC16":"1F416","\uD83D\uDC2A":"1F42A","\uD83D\uDC65":"1F465","\uD83D\uDC6C":"1F46C","\uD83D\uDC6D":"1F46D","\uD83D\uDCAD":"1F4AD","\uD83D\uDCB6":"1F4B6","\uD83D\uDCB7":"1F4B7","\uD83D\uDCEC":"1F4EC","\uD83D\uDCED":"1F4ED","\uD83D\uDCEF":"1F4EF","\uD83D\uDCF5":"1F4F5","\uD83D\uDD00":"1F500","\uD83D\uDD01":"1F501","\uD83D\uDD02":"1F502","\uD83D\uDD04":"1F504","\uD83D\uDD05":"1F505","\uD83D\uDD06":"1F506","\uD83D\uDD07":"1F507","\uD83D\uDD09":"1F509","\uD83D\uDD15":"1F515","\uD83D\uDD2C":"1F52C","\uD83D\uDD2D":"1F52D","\uD83D\uDD5C":"1F55C","\uD83D\uDD5D":"1F55D","\uD83D\uDD5E":"1F55E","\uD83D\uDD5F":"1F55F","\uD83D\uDD60":"1F560","\uD83D\uDD61":"1F561","\uD83D\uDD62":"1F562","\uD83D\uDD63":"1F563","\uD83D\uDD64":"1F564","\uD83D\uDD65":"1F565","\uD83D\uDD66":"1F566","\uD83D\uDD67":"1F567","\uD83D\uDD08":"1F508","\uD83D\uDE8B":"1F68B","\u27BF":"27BF","\uD83C\uDDE6\uD83C\uDDEB":"1F1E6-1F1EB","\uD83C\uDDE6\uD83C\uDDF1":"1F1E6-1F1F1","\uD83C\uDDE9\uD83C\uDDFF":"1F1E9-1F1FF","\uD83C\uDDE6\uD83C\uDDE9":"1F1E6-1F1E9","\uD83C\uDDE6\uD83C\uDDF4":"1F1E6-1F1F4","\uD83C\uDDE6\uD83C\uDDEC":"1F1E6-1F1EC","\uD83C\uDDE6\uD83C\uDDF7":"1F1E6-1F1F7","\uD83C\uDDE6\uD83C\uDDF2":"1F1E6-1F1F2","\uD83C\uDDE6\uD83C\uDDFA":"1F1E6-1F1FA","\uD83C\uDDE6\uD83C\uDDF9":"1F1E6-1F1F9","\uD83C\uDDE6\uD83C\uDDFF":"1F1E6-1F1FF","\uD83C\uDDE7\uD83C\uDDF8":"1F1E7-1F1F8","\uD83C\uDDE7\uD83C\uDDED":"1F1E7-1F1ED","\uD83C\uDDE7\uD83C\uDDE9":"1F1E7-1F1E9","\uD83C\uDDE7\uD83C\uDDE7":"1F1E7-1F1E7","\uD83C\uDDE7\uD83C\uDDFE":"1F1E7-1F1FE","\uD83C\uDDE7\uD83C\uDDEA":"1F1E7-1F1EA","\uD83C\uDDE7\uD83C\uDDFF":"1F1E7-1F1FF","\uD83C\uDDE7\uD83C\uDDEF":"1F1E7-1F1EF","\uD83C\uDDE7\uD83C\uDDF9":"1F1E7-1F1F9","\uD83C\uDDE7\uD83C\uDDF4":"1F1E7-1F1F4","\uD83C\uDDE7\uD83C\uDDE6":"1F1E7-1F1E6","\uD83C\uDDE7\uD83C\uDDFC":"1F1E7-1F1FC","\uD83C\uDDE7\uD83C\uDDF7":"1F1E7-1F1F7","\uD83C\uDDE7\uD83C\uDDF3":"1F1E7-1F1F3","\uD83C\uDDE7\uD83C\uDDEC":"1F1E7-1F1EC","\uD83C\uDDE7\uD83C\uDDEB":"1F1E7-1F1EB","\uD83C\uDDE7\uD83C\uDDEE":"1F1E7-1F1EE","\uD83C\uDDF0\uD83C\uDDED":"1F1F0-1F1ED","\uD83C\uDDE8\uD83C\uDDF2":"1F1E8-1F1F2","\uD83C\uDDE8\uD83C\uDDE6":"1F1E8-1F1E6","\uD83C\uDDE8\uD83C\uDDFB":"1F1E8-1F1FB","\uD83C\uDDE8\uD83C\uDDEB":"1F1E8-1F1EB","\uD83C\uDDF9\uD83C\uDDE9":"1F1F9-1F1E9","\uD83C\uDDE8\uD83C\uDDF1":"1F1E8-1F1F1","\uD83C\uDDE8\uD83C\uDDF4":"1F1E8-1F1F4","\uD83C\uDDF0\uD83C\uDDF2":"1F1F0-1F1F2","\uD83C\uDDE8\uD83C\uDDF7":"1F1E8-1F1F7","\uD83C\uDDE8\uD83C\uDDEE":"1F1E8-1F1EE","\uD83C\uDDED\uD83C\uDDF7":"1F1ED-1F1F7","\uD83C\uDDE8\uD83C\uDDFA":"1F1E8-1F1FA","\uD83C\uDDE8\uD83C\uDDFE":"1F1E8-1F1FE","\uD83C\uDDE8\uD83C\uDDFF":"1F1E8-1F1FF","\uD83C\uDDE8\uD83C\uDDE9":"1F1E8-1F1E9","\uD83C\uDDE9\uD83C\uDDF0":"1F1E9-1F1F0","\uD83C\uDDE9\uD83C\uDDEF":"1F1E9-1F1EF","\uD83C\uDDE9\uD83C\uDDF2":"1F1E9-1F1F2","\uD83C\uDDE9\uD83C\uDDF4":"1F1E9-1F1F4","\uD83C\uDDF9\uD83C\uDDF1":"1F1F9-1F1F1","\uD83C\uDDEA\uD83C\uDDE8":"1F1EA-1F1E8","\uD83C\uDDEA\uD83C\uDDEC":"1F1EA-1F1EC","\uD83C\uDDF8\uD83C\uDDFB":"1F1F8-1F1FB","\uD83C\uDDEC\uD83C\uDDF6":"1F1EC-1F1F6","\uD83C\uDDEA\uD83C\uDDF7":"1F1EA-1F1F7","\uD83C\uDDEA\uD83C\uDDEA":"1F1EA-1F1EA","\uD83C\uDDEA\uD83C\uDDF9":"1F1EA-1F1F9","\uD83C\uDDEB\uD83C\uDDEF":"1F1EB-1F1EF","\uD83C\uDDEB\uD83C\uDDEE":"1F1EB-1F1EE","\uD83C\uDDEC\uD83C\uDDE6":"1F1EC-1F1E6","\uD83C\uDDEC\uD83C\uDDF2":"1F1EC-1F1F2","\uD83C\uDDEC\uD83C\uDDEA":"1F1EC-1F1EA","\uD83C\uDDEC\uD83C\uDDED":"1F1EC-1F1ED","\uD83C\uDDEC\uD83C\uDDF7":"1F1EC-1F1F7","\uD83C\uDDEC\uD83C\uDDE9":"1F1EC-1F1E9","\uD83C\uDDEC\uD83C\uDDF9":"1F1EC-1F1F9","\uD83C\uDDEC\uD83C\uDDF3":"1F1EC-1F1F3","\uD83C\uDDEC\uD83C\uDDFC":"1F1EC-1F1FC","\uD83C\uDDEC\uD83C\uDDFE":"1F1EC-1F1FE","\uD83C\uDDED\uD83C\uDDF9":"1F1ED-1F1F9","\uD83C\uDDED\uD83C\uDDF3":"1F1ED-1F1F3","\uD83C\uDDED\uD83C\uDDFA":"1F1ED-1F1FA","\uD83C\uDDEE\uD83C\uDDF8":"1F1EE-1F1F8","\uD83C\uDDEE\uD83C\uDDF3":"1F1EE-1F1F3","\uD83C\uDDEE\uD83C\uDDE9":"1F1EE-1F1E9","\uD83C\uDDEE\uD83C\uDDF7":"1F1EE-1F1F7","\uD83C\uDDEE\uD83C\uDDF6":"1F1EE-1F1F6","\uD83C\uDDEE\uD83C\uDDEA":"1F1EE-1F1EA","\uD83C\uDDEE\uD83C\uDDF1":"1F1EE-1F1F1","\uD83C\uDDEF\uD83C\uDDF2":"1F1EF-1F1F2","\uD83C\uDDEF\uD83C\uDDF4":"1F1EF-1F1F4","\uD83C\uDDF0\uD83C\uDDFF":"1F1F0-1F1FF","\uD83C\uDDF0\uD83C\uDDEA":"1F1F0-1F1EA","\uD83C\uDDF0\uD83C\uDDEE":"1F1F0-1F1EE","\uD83C\uDDFD\uD83C\uDDF0":"1F1FD-1F1F0","\uD83C\uDDF0\uD83C\uDDFC":"1F1F0-1F1FC","\uD83C\uDDF0\uD83C\uDDEC":"1F1F0-1F1EC","\uD83C\uDDF1\uD83C\uDDE6":"1F1F1-1F1E6","\uD83C\uDDF1\uD83C\uDDFB":"1F1F1-1F1FB","\uD83C\uDDF1\uD83C\uDDE7":"1F1F1-1F1E7","\uD83C\uDDF1\uD83C\uDDF8":"1F1F1-1F1F8","\uD83C\uDDF1\uD83C\uDDF7":"1F1F1-1F1F7","\uD83C\uDDF1\uD83C\uDDFE":"1F1F1-1F1FE","\uD83C\uDDF1\uD83C\uDDEE":"1F1F1-1F1EE","\uD83C\uDDF1\uD83C\uDDF9":"1F1F1-1F1F9","\uD83C\uDDF1\uD83C\uDDFA":"1F1F1-1F1FA","\uD83C\uDDF2\uD83C\uDDF0":"1F1F2-1F1F0","\uD83C\uDDF2\uD83C\uDDEC":"1F1F2-1F1EC","\uD83C\uDDF2\uD83C\uDDFC":"1F1F2-1F1FC","\uD83C\uDDF2\uD83C\uDDFE":"1F1F2-1F1FE","\uD83C\uDDF2\uD83C\uDDFB":"1F1F2-1F1FB","\uD83C\uDDF2\uD83C\uDDF1":"1F1F2-1F1F1","\uD83C\uDDF2\uD83C\uDDF9":"1F1F2-1F1F9","\uD83C\uDDF2\uD83C\uDDED":"1F1F2-1F1ED","\uD83C\uDDF2\uD83C\uDDF7":"1F1F2-1F1F7","\uD83C\uDDF2\uD83C\uDDFA":"1F1F2-1F1FA","\uD83C\uDDF2\uD83C\uDDFD":"1F1F2-1F1FD","\uD83C\uDDEB\uD83C\uDDF2":"1F1EB-1F1F2","\uD83C\uDDF2\uD83C\uDDE9":"1F1F2-1F1E9","\uD83C\uDDF2\uD83C\uDDE8":"1F1F2-1F1E8","\uD83C\uDDF2\uD83C\uDDF3":"1F1F2-1F1F3","\uD83C\uDDF2\uD83C\uDDEA":"1F1F2-1F1EA","\uD83C\uDDF2\uD83C\uDDE6":"1F1F2-1F1E6","\uD83C\uDDF2\uD83C\uDDFF":"1F1F2-1F1FF","\uD83C\uDDF2\uD83C\uDDF2":"1F1F2-1F1F2","\uD83C\uDDF3\uD83C\uDDE6":"1F1F3-1F1E6","\uD83C\uDDF3\uD83C\uDDF7":"1F1F3-1F1F7","\uD83C\uDDF3\uD83C\uDDF5":"1F1F3-1F1F5","\uD83C\uDDF3\uD83C\uDDF1":"1F1F3-1F1F1","\uD83C\uDDF3\uD83C\uDDFF":"1F1F3-1F1FF","\uD83C\uDDF3\uD83C\uDDEE":"1F1F3-1F1EE","\uD83C\uDDF3\uD83C\uDDEA":"1F1F3-1F1EA","\uD83C\uDDF3\uD83C\uDDEC":"1F1F3-1F1EC","\uD83C\uDDF0\uD83C\uDDF5":"1F1F0-1F1F5","\uD83C\uDDF3\uD83C\uDDF4":"1F1F3-1F1F4","\uD83C\uDDF4\uD83C\uDDF2":"1F1F4-1F1F2","\uD83C\uDDF5\uD83C\uDDF0":"1F1F5-1F1F0","\uD83C\uDDF5\uD83C\uDDFC":"1F1F5-1F1FC","\uD83C\uDDF5\uD83C\uDDE6":"1F1F5-1F1E6","\uD83C\uDDF5\uD83C\uDDEC":"1F1F5-1F1EC","\uD83C\uDDF5\uD83C\uDDFE":"1F1F5-1F1FE","\uD83C\uDDF5\uD83C\uDDEA":"1F1F5-1F1EA","\uD83C\uDDF5\uD83C\uDDED":"1F1F5-1F1ED","\uD83C\uDDF5\uD83C\uDDF1":"1F1F5-1F1F1","\uD83C\uDDF5\uD83C\uDDF9":"1F1F5-1F1F9","\uD83C\uDDF6\uD83C\uDDE6":"1F1F6-1F1E6","\uD83C\uDDF9\uD83C\uDDFC":"1F1F9-1F1FC","\uD83C\uDDE8\uD83C\uDDEC":"1F1E8-1F1EC","\uD83C\uDDF7\uD83C\uDDF4":"1F1F7-1F1F4","\uD83C\uDDF7\uD83C\uDDFC":"1F1F7-1F1FC","\uD83C\uDDF0\uD83C\uDDF3":"1F1F0-1F1F3","\uD83C\uDDF1\uD83C\uDDE8":"1F1F1-1F1E8","\uD83C\uDDFB\uD83C\uDDE8":"1F1FB-1F1E8","\uD83C\uDDFC\uD83C\uDDF8":"1F1FC-1F1F8","\uD83C\uDDF8\uD83C\uDDF2":"1F1F8-1F1F2","\uD83C\uDDF8\uD83C\uDDF9":"1F1F8-1F1F9","\uD83C\uDDF8\uD83C\uDDE6":"1F1F8-1F1E6","\uD83C\uDDF8\uD83C\uDDF3":"1F1F8-1F1F3","\uD83C\uDDF7\uD83C\uDDF8":"1F1F7-1F1F8","\uD83C\uDDF8\uD83C\uDDE8":"1F1F8-1F1E8","\uD83C\uDDF8\uD83C\uDDF1":"1F1F8-1F1F1","\uD83C\uDDF8\uD83C\uDDEC":"1F1F8-1F1EC","\uD83C\uDDF8\uD83C\uDDF0":"1F1F8-1F1F0","\uD83C\uDDF8\uD83C\uDDEE":"1F1F8-1F1EE","\uD83C\uDDF8\uD83C\uDDE7":"1F1F8-1F1E7","\uD83C\uDDF8\uD83C\uDDF4":"1F1F8-1F1F4","\uD83C\uDDFF\uD83C\uDDE6":"1F1FF-1F1E6","\uD83C\uDDF1\uD83C\uDDF0":"1F1F1-1F1F0","\uD83C\uDDF8\uD83C\uDDE9":"1F1F8-1F1E9","\uD83C\uDDF8\uD83C\uDDF7":"1F1F8-1F1F7","\uD83C\uDDF8\uD83C\uDDFF":"1F1F8-1F1FF","\uD83C\uDDF8\uD83C\uDDEA":"1F1F8-1F1EA","\uD83C\uDDE8\uD83C\uDDED":"1F1E8-1F1ED","\uD83C\uDDF8\uD83C\uDDFE":"1F1F8-1F1FE","\uD83C\uDDF9\uD83C\uDDEF":"1F1F9-1F1EF","\uD83C\uDDF9\uD83C\uDDFF":"1F1F9-1F1FF","\uD83C\uDDF9\uD83C\uDDED":"1F1F9-1F1ED","\uD83C\uDDF9\uD83C\uDDEC":"1F1F9-1F1EC","\uD83C\uDDF9\uD83C\uDDF4":"1F1F9-1F1F4","\uD83C\uDDF9\uD83C\uDDF9":"1F1F9-1F1F9","\uD83C\uDDF9\uD83C\uDDF3":"1F1F9-1F1F3","\uD83C\uDDF9\uD83C\uDDF7":"1F1F9-1F1F7","\uD83C\uDDF9\uD83C\uDDF2":"1F1F9-1F1F2","\uD83C\uDDF9\uD83C\uDDFB":"1F1F9-1F1FB","\uD83C\uDDFA\uD83C\uDDEC":"1F1FA-1F1EC","\uD83C\uDDFA\uD83C\uDDE6":"1F1FA-1F1E6","\uD83C\uDDE6\uD83C\uDDEA":"1F1E6-1F1EA","\uD83C\uDDFA\uD83C\uDDFE":"1F1FA-1F1FE","\uD83C\uDDFA\uD83C\uDDFF":"1F1FA-1F1FF","\uD83C\uDDFB\uD83C\uDDFA":"1F1FB-1F1FA","\uD83C\uDDFB\uD83C\uDDE6":"1F1FB-1F1E6","\uD83C\uDDFB\uD83C\uDDEA":"1F1FB-1F1EA","\uD83C\uDDFB\uD83C\uDDF3":"1F1FB-1F1F3","\uD83C\uDDEA\uD83C\uDDED":"1F1EA-1F1ED","\uD83C\uDDFE\uD83C\uDDEA":"1F1FE-1F1EA","\uD83C\uDDFF\uD83C\uDDF2":"1F1FF-1F1F2","\uD83C\uDDFF\uD83C\uDDFC":"1F1FF-1F1FC","\uD83C\uDDF5\uD83C\uDDF7":"1F1F5-1F1F7","\uD83C\uDDF0\uD83C\uDDFE":"1F1F0-1F1FE","\uD83C\uDDE7\uD83C\uDDF2":"1F1E7-1F1F2","\uD83C\uDDF5\uD83C\uDDEB":"1F1F5-1F1EB","\uD83C\uDDF5\uD83C\uDDF8":"1F1F5-1F1F8","\uD83C\uDDF3\uD83C\uDDE8":"1F1F3-1F1E8","\uD83C\uDDF8\uD83C\uDDED":"1F1F8-1F1ED","\uD83C\uDDE6\uD83C\uDDFC":"1F1E6-1F1FC","\uD83C\uDDFB\uD83C\uDDEE":"1F1FB-1F1EE","\uD83C\uDDED\uD83C\uDDF0":"1F1ED-1F1F0","\uD83C\uDDE6\uD83C\uDDE8":"1F1E6-1F1E8","\uD83C\uDDF2\uD83C\uDDF8":"1F1F2-1F1F8","\uD83C\uDDEC\uD83C\uDDFA":"1F1EC-1F1FA","\uD83C\uDDEC\uD83C\uDDF1":"1F1EC-1F1F1","\uD83C\uDDF3\uD83C\uDDFA":"1F1F3-1F1FA","\uD83C\uDDFC\uD83C\uDDEB":"1F1FC-1F1EB","\uD83C\uDDF2\uD83C\uDDF4":"1F1F2-1F1F4","\uD83C\uDDEB\uD83C\uDDF4":"1F1EB-1F1F4","\uD83C\uDDEB\uD83C\uDDF0":"1F1EB-1F1F0","\uD83C\uDDEF\uD83C\uDDEA":"1F1EF-1F1EA","\uD83C\uDDE6\uD83C\uDDEE":"1F1E6-1F1EE","\uD83C\uDDEC\uD83C\uDDEE":"1F1EC-1F1EE"};
+    ns.shortnameRegexp = ':([-+\\w]+):';
+    ns.imagePathPNG = '//cdn.jsdelivr.net/emojione/assets/png/';
+    ns.imagePathSVG = '//cdn.jsdelivr.net/emojione/assets/svg/';
+    ns.imagePathSVGSprites = './../assets/sprites/emojione.sprites.svg';
+    ns.imageType = 'png'; // or svg
+    ns.sprites = false; // if this is true then sprite markup will be used (if SVG image type is set then you must include the SVG sprite file locally)
+    ns.unicodeAlt = true; // use the unicode char as the alt attribute (makes copy and pasting the resulting text better)
+    ns.ascii = false; // change to true to convert ascii smileys
+    ns.cacheBustParam = '?v=1.2.4'; // you can [optionally] modify this to force browsers to refresh their cache. it will be appended to the send of the filenames
+
+    ns.toImage = function(str) {
+        str = ns.unicodeToImage(str);
+        str = ns.shortnameToImage(str);
+        return str;
+    };
+
+    // Uses toShort to transform all unicode into a standard shortname
+    // then transforms the shortname into unicode
+    // This is done for standardization when converting several unicode types
+    ns.unifyUnicode = function(str) {
+        str = ns.toShort(str);
+        str = ns.shortnameToUnicode(str);
+        return str;
+    };
+
+    // Replace shortnames (:wink:) with Ascii equivalents ( ;^) )
+    // Useful for systems that dont support unicode nor images
+    ns.shortnameToAscii = function(str) {
+        var unicode,
+            // something to keep in mind here is that array flip will destroy
+            // half of the ascii text "emojis" because the unicode numbers are duplicated
+            // this is ok for what it's being used for
+            unicodeToAscii = ns.objectFlip(ns.asciiList);
+
+        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnameRegexp+")", "gi"),function(shortname) {
+            if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
+                // if the shortname doesnt exist just return the entire match
+                return shortname;
+            }
+            else {
+                unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1].toLowerCase();
+                if(typeof unicodeToAscii[unicode] !== 'undefined') {
+                    return unicodeToAscii[unicode];
+                } else {
+                    return shortname;
+                }
+            }
+        });
+        return str;
+    };
+
+    // will output unicode from shortname
+    // useful for sending emojis back to mobile devices
+    ns.shortnameToUnicode = function(str) {
+        // replace regular shortnames first
+        var unicode;
+        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnameRegexp+")", "gi"),function(shortname) {
+            if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
+                // if the shortname doesnt exist just return the entire match
+                return shortname;
+            }
+            unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1].toUpperCase();
+            return ns.convert(unicode);
+        });
+
+        // if ascii smileys are turned on, then we'll replace them!
+        if (ns.ascii) {
+
+            str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,\.]))","g"),function(entire, m1, m2, m3) {
+                if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
+                    // if the shortname doesnt exist just return the entire match
+                    return entire;
+                }
+
+                m3 = ns.unescapeHTML(m3);
+                unicode = ns.asciiList[m3].toUpperCase();
+                return m2+ns.convert(unicode);
+            });
+        }
+
+		return str;
+    };
+
+    ns.shortnameToImage = function(str) {
+        // replace regular shortnames first
+        var replaceWith,unicode,alt;
+        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.shortnameRegexp+")", "gi"),function(shortname) {
+            if( (typeof shortname === 'undefined') || (shortname === '') || (!(shortname in ns.emojioneList)) ) {
+                // if the shortname doesnt exist just return the entire match
+                return shortname;
+            }
+            else {
+                unicode = ns.emojioneList[shortname][ns.emojioneList[shortname].length-1].toUpperCase();
+
+                // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
+                alt = (ns.unicodeAlt) ? ns.convert(unicode) : shortname;
+
+                if(ns.imageType === 'png') {
+                    if(ns.sprites) {
+                        replaceWith = '<span class="emojione-'+unicode+'" title="'+shortname+'">'+alt+'</span>';
+                    }
+                    else {
+                        replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+                    }
+                }
+                else {
+                    // svg
+                    if(ns.sprites) {
+                        replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode+'"></use></svg>';
+                    }
+                    else {
+                        replaceWith = '<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
+                    }
+                }
+
+                return replaceWith;
+            }
+        });
+
+        // if ascii smileys are turned on, then we'll replace them!
+        if (ns.ascii) {
+
+            str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+ns.asciiRegexp+"(?=\\s|$|[!,\.]))","g"),function(entire, m1, m2, m3) {
+                if( (typeof m3 === 'undefined') || (m3 === '') || (!(ns.unescapeHTML(m3) in ns.asciiList)) ) {
+                    // if the shortname doesnt exist just return the entire match
+                    return entire;
+                }
+
+                m3 = ns.unescapeHTML(m3);
+                unicode = ns.asciiList[m3].toUpperCase();
+
+                // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
+                alt = (ns.unicodeAlt) ? ns.convert(unicode) : ns.escapeHTML(m3);
+
+                if(ns.imageType === 'png') {
+                    if(ns.sprites) {
+                        replaceWith = m2+'<span class="emojione-'+unicode.toUpperCase()+'" title="'+ns.escapeHTML(m3)+'">'+alt+'</span>';
+                    }
+                    else {
+                        replaceWith = m2+'<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+                    }
+                }
+                else {
+                    // svg
+                    if(ns.sprites) {
+                        replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode.toUpperCase()+'"></use></svg>';
+                    }
+                    else {
+                        replaceWith = m2+'<object class="emojione" data="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'" type="image/svg+xml" standby="'+alt+'">'+alt+'</object>';
+                    }
+                }
+
+                return replaceWith;
+            });
+        }
+
+        return str;
+    };
+
+    ns.unicodeToImage = function(str) {
+
+        var replaceWith,unicode,alt;
+
+        if((!ns.unicodeAlt) || (ns.sprites)) {
+            // if we are using the shortname as the alt tag then we need a reversed array to map unicode code point to shortnames
+            var mappedUnicode = ns.mapShortToUnicode();
+        }
+
+        str = str.replace(new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+ns.unicodeRegexp+")", "gi"),function(unicodeChar) {
+            if( (typeof unicodeChar === 'undefined') || (unicodeChar === '') || (!(unicodeChar in ns.jsecapeMap)) ) {
+                // if the unicodeChar doesnt exist just return the entire match
+                return unicodeChar;
+            }
+            else {
+                // get the unicode codepoint from the actual char
+                unicode = ns.jsecapeMap[unicodeChar];
+
+                // depending on the settings, we'll either add the native unicode as the alt tag, otherwise the shortname
+                alt = (ns.unicodeAlt) ? ns.convert(unicode) : mappedUnicode[unicode];
+
+                if(ns.imageType === 'png') {
+                    if(ns.sprites) {
+                        replaceWith = '<span class="emojione-'+unicode.toUpperCase()+'" title="'+mappedUnicode[unicode]+'">'+alt+'</span>';
+                    }
+                    else {
+                        replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathPNG+unicode+'.png'+ns.cacheBustParam+'"/>';
+                    }
+                }
+                else {
+                    // svg
+                    if(ns.sprites) {
+                        replaceWith = '<svg class="emojione"><description>'+alt+'</description><use xlink:href="'+ns.imagePathSVGSprites+'#emoji-'+unicode.toUpperCase()+'"></use></svg>';
+                    }
+                    else {
+                        replaceWith = '<img class="emojione" alt="'+alt+'" src="'+ns.imagePathSVG+unicode+'.svg'+ns.cacheBustParam+'"/>';
+                    }
+                }
+
+                return replaceWith;
+            }
+        });
+
+        return str;
+    };
+
+    // super simple loop to replace all unicode emoji to shortnames
+    // needs to be improved into one big replacement instead, for performance reasons
+    ns.toShort = function(str) { // this is really just unicodeToShortname() but I opted for the shorthand name to match toImage()
+        for (var shortcode in ns.emojioneList) {
+            if (!ns.emojioneList.hasOwnProperty(shortcode)) { continue; }
+            for (var ukey in ns.emojioneList[shortcode]) {
+                if (!ns.emojioneList[shortcode].hasOwnProperty(ukey)) { continue; }
+                var unicode = ns.emojioneList[shortcode][ukey].toUpperCase();
+                str = ns.replaceAll(str,ns.convert(unicode),shortcode);
+            }
+        }
+        return str;
+    };
+
+    // for converting unicode code points and code pairs to their respective characters
+    ns.convert = function(unicode) {
+        if(unicode.indexOf("-") > -1) {
+            var parts = [];
+            var s = unicode.split('-');
+            for(var i = 0; i < s.length; i++) {
+                var part = parseInt(s[i], 16);
+                if (part >= 0x10000 && part <= 0x10FFFF) {
+                    var hi = Math.floor((part - 0x10000) / 0x400) + 0xD800;
+                    var lo = ((part - 0x10000) % 0x400) + 0xDC00;
+                    part = (String.fromCharCode(hi) + String.fromCharCode(lo));
+                }
+                else {
+                    part = String.fromCharCode(part);
+                }
+                parts.push(part);
+            }
+            return parts.join('');
+        }
+        else {
+            var s = parseInt(unicode, 16);
+            if (s >= 0x10000 && s <= 0x10FFFF) {
+                var hi = Math.floor((s - 0x10000) / 0x400) + 0xD800;
+                var lo = ((s - 0x10000) % 0x400) + 0xDC00;
+                return (String.fromCharCode(hi) + String.fromCharCode(lo));
+            }
+            else {
+                return String.fromCharCode(s);
+            }
+        }
+    };
+
+    ns.escapeHTML = function (string) {
+        var escaped = {
+            '&' : '&amp;',
+            '<' : '&lt;',
+            '>' : '&gt;',
+            '"' : '&quot;',
+            '\'': '&#039;'
+        };
+
+        return string.replace(/[&<>"']/g, function (match) {
+            return escaped[match];
+        });
+    };
+    ns.unescapeHTML = function (string) {
+        var unescaped = {
+            '&amp;'  : '&',
+            '&#38;'  : '&',
+            '&#x26;' : '&',
+            '&lt;'   : '<',
+            '&#60;'  : '<',
+            '&#x3C;' : '<',
+            '&gt;'   : '>',
+            '&#62;'  : '>',
+            '&#x3E;' : '>',
+            '&quot;' : '"',
+            '&#34;'  : '"',
+            '&#x22;' : '"',
+            '&apos;' : '\'',
+            '&#39;'  : '\'',
+            '&#x27;' : '\''
+        };
+
+        return string.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/ig, function (match) {
+            return unescaped[match];
+        });
+    };
+    ns.mapShortToUnicode = function() {
+        var new_obj = {};
+        for (var shortname in ns.emojioneList) {
+            if (!ns.emojioneList.hasOwnProperty(shortname)) { continue; }
+            for (var ukey in ns.emojioneList[shortname]) {
+                if (!ns.emojioneList[shortname].hasOwnProperty(ukey)) { continue; }
+                new_obj[ns.emojioneList[shortname][ukey].toUpperCase()] = shortname;
+            }
+        }
+        return new_obj;
+    };
+    //reverse an object
+    ns.objectFlip = function (obj) {
+        var key, tmp_obj = {};
+
+        for (key in obj) {
+            if (obj.hasOwnProperty(key)) {
+                tmp_obj[obj[key]] = key;
+            }
+        }
+
+        return tmp_obj;
+    };
+
+    ns.escapeRegExp = function(string) {
+        return string.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g, "\\$&");
+    };
+
+    ns.replaceAll = function(string, find, replaceWith) {
+
+        var search = new RegExp("<object[^>]*>.*?<\/object>|<span[^>]*>.*?<\/span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+find+")", "gi");
+
+        // callback prevents replacing anything inside of these common html tags as well as between an <object></object> tag
+        var replace = function(entire, m1) {
+            return ((typeof  m1 === 'undefined') || (m1 === '')) ? entire : replaceWith;
+        };
+
+        return string.replace(search,replace);
+    };
+
+}(this.emojione = this.emojione || {}));
+if(typeof module === "object") module.exports = this.emojione;
diff --git a/pagure/static/vendor/emojione/emojione-1.3.1.min.js b/pagure/static/vendor/emojione/emojione-1.3.1.min.js
new file mode 100644
index 0000000..a4091d6
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione-1.3.1.min.js
@@ -0,0 +1,3 @@
+/*! emojione 13-04-2015 */
+!function(a){a.emojioneList={":hash:":["0023-fe0f-20e3","0023-20e3"],":zero:":["0030-fe0f-20e3","0030-20e3"],":one:":["0031-fe0f-20e3","0031-20e3"],":two:":["0032-fe0f-20e3","0032-20e3"],":three:":["0033-fe0f-20e3","0033-20e3"],":four:":["0034-fe0f-20e3","0034-20e3"],":five:":["0035-fe0f-20e3","0035-20e3"],":six:":["0036-fe0f-20e3","0036-20e3"],":seven:":["0037-fe0f-20e3","0037-20e3"],":eight:":["0038-fe0f-20e3","0038-20e3"],":nine:":["0039-fe0f-20e3","0039-20e3"],":copyright:":["00a9"],":registered:":["00ae"],":bangbang:":["203c-fe0f","203c"],":interrobang:":["2049-fe0f","2049"],":tm:":["2122"],":information_source:":["2139-fe0f","2139"],":left_right_arrow:":["2194-fe0f","2194"],":arrow_up_down:":["2195-fe0f","2195"],":arrow_upper_left:":["2196-fe0f","2196"],":arrow_upper_right:":["2197-fe0f","2197"],":arrow_lower_right:":["2198-fe0f","2198"],":arrow_lower_left:":["2199-fe0f","2199"],":leftwards_arrow_with_hook:":["21a9-fe0f","21a9"],":arrow_right_hook:":["21aa-fe0f","21aa"],":watch:":["231a-fe0f","231a"],":hourglass:":["231b-fe0f","231b"],":fast_forward:":["23e9"],":rewind:":["23ea"],":arrow_double_up:":["23eb"],":arrow_double_down:":["23ec"],":alarm_clock:":["23f0"],":hourglass_flowing_sand:":["23f3"],":m:":["24c2-fe0f","24c2"],":black_small_square:":["25aa-fe0f","25aa"],":white_small_square:":["25ab-fe0f","25ab"],":arrow_forward:":["25b6-fe0f","25b6"],":arrow_backward:":["25c0-fe0f","25c0"],":white_medium_square:":["25fb-fe0f","25fb"],":black_medium_square:":["25fc-fe0f","25fc"],":white_medium_small_square:":["25fd-fe0f","25fd"],":black_medium_small_square:":["25fe-fe0f","25fe"],":sunny:":["2600-fe0f","2600"],":cloud:":["2601-fe0f","2601"],":telephone:":["260e-fe0f","260e"],":ballot_box_with_check:":["2611-fe0f","2611"],":umbrella:":["2614-fe0f","2614"],":coffee:":["2615-fe0f","2615"],":point_up:":["261d-fe0f","261d"],":relaxed:":["263a-fe0f","263a"],":aries:":["2648-fe0f","2648"],":taurus:":["2649-fe0f","2649"],":gemini:":["264a-fe0f","264a"],":cancer:":["264b-fe0f","264b"],":leo:":["264c-fe0f","264c"],":virgo:":["264d-fe0f","264d"],":libra:":["264e-fe0f","264e"],":scorpius:":["264f-fe0f","264f"],":sagittarius:":["2650-fe0f","2650"],":capricorn:":["2651-fe0f","2651"],":aquarius:":["2652-fe0f","2652"],":pisces:":["2653-fe0f","2653"],":spades:":["2660-fe0f","2660"],":clubs:":["2663-fe0f","2663"],":hearts:":["2665-fe0f","2665"],":diamonds:":["2666-fe0f","2666"],":hotsprings:":["2668-fe0f","2668"],":recycle:":["267b-fe0f","267b"],":wheelchair:":["267f-fe0f","267f"],":anchor:":["2693-fe0f","2693"],":warning:":["26a0-fe0f","26a0"],":zap:":["26a1-fe0f","26a1"],":white_circle:":["26aa-fe0f","26aa"],":black_circle:":["26ab-fe0f","26ab"],":soccer:":["26bd-fe0f","26bd"],":baseball:":["26be-fe0f","26be"],":snowman:":["26c4-fe0f","26c4"],":partly_sunny:":["26c5-fe0f","26c5"],":ophiuchus:":["26ce"],":no_entry:":["26d4-fe0f","26d4"],":church:":["26ea-fe0f","26ea"],":fountain:":["26f2-fe0f","26f2"],":golf:":["26f3-fe0f","26f3"],":sailboat:":["26f5-fe0f","26f5"],":tent:":["26fa-fe0f","26fa"],":fuelpump:":["26fd-fe0f","26fd"],":scissors:":["2702-fe0f","2702"],":white_check_mark:":["2705"],":airplane:":["2708-fe0f","2708"],":envelope:":["2709-fe0f","2709"],":fist:":["270a"],":raised_hand:":["270b"],":v:":["270c-fe0f","270c"],":pencil2:":["270f-fe0f","270f"],":black_nib:":["2712-fe0f","2712"],":heavy_check_mark:":["2714-fe0f","2714"],":heavy_multiplication_x:":["2716-fe0f","2716"],":sparkles:":["2728"],":eight_spoked_asterisk:":["2733-fe0f","2733"],":eight_pointed_black_star:":["2734-fe0f","2734"],":snowflake:":["2744-fe0f","2744"],":sparkle:":["2747-fe0f","2747"],":x:":["274c"],":negative_squared_cross_mark:":["274e"],":question:":["2753"],":grey_question:":["2754"],":grey_exclamation:":["2755"],":exclamation:":["2757-fe0f","2757"],":heart:":["2764-fe0f","2764"],":heavy_plus_sign:":["2795"],":heavy_minus_sign:":["2796"],":heavy_division_sign:":["2797"],":arrow_right:":["27a1-fe0f","27a1"],":curly_loop:":["27b0"],":arrow_heading_up:":["2934-fe0f","2934"],":arrow_heading_down:":["2935-fe0f","2935"],":arrow_left:":["2b05-fe0f","2b05"],":arrow_up:":["2b06-fe0f","2b06"],":arrow_down:":["2b07-fe0f","2b07"],":black_large_square:":["2b1b-fe0f","2b1b"],":white_large_square:":["2b1c-fe0f","2b1c"],":star:":["2b50-fe0f","2b50"],":o:":["2b55-fe0f","2b55"],":wavy_dash:":["3030"],":part_alternation_mark:":["303d-fe0f","303d"],":congratulations:":["3297-fe0f","3297"],":secret:":["3299-fe0f","3299"],":mahjong:":["1f004-fe0f","1f004"],":black_joker:":["1f0cf"],":a:":["1f170"],":b:":["1f171"],":o2:":["1f17e"],":parking:":["1f17f-fe0f","1f17f"],":ab:":["1f18e"],":cl:":["1f191"],":cool:":["1f192"],":free:":["1f193"],":id:":["1f194"],":new:":["1f195"],":ng:":["1f196"],":ok:":["1f197"],":sos:":["1f198"],":up:":["1f199"],":vs:":["1f19a"],":cn:":["1f1e8-1f1f3"],":de:":["1f1e9-1f1ea"],":es:":["1f1ea-1f1f8"],":fr:":["1f1eb-1f1f7"],":gb:":["1f1ec-1f1e7"],":it:":["1f1ee-1f1f9"],":jp:":["1f1ef-1f1f5"],":kr:":["1f1f0-1f1f7"],":us:":["1f1fa-1f1f8"],":ru:":["1f1f7-1f1fa"],":koko:":["1f201"],":sa:":["1f202"],":u7121:":["1f21a-fe0f","1f21a"],":u6307:":["1f22f-fe0f","1f22f"],":u7981:":["1f232"],":u7a7a:":["1f233"],":u5408:":["1f234"],":u6e80:":["1f235"],":u6709:":["1f236"],":u6708:":["1f237"],":u7533:":["1f238"],":u5272:":["1f239"],":u55b6:":["1f23a"],":ideograph_advantage:":["1f250"],":accept:":["1f251"],":cyclone:":["1f300"],":foggy:":["1f301"],":closed_umbrella:":["1f302"],":night_with_stars:":["1f303"],":sunrise_over_mountains:":["1f304"],":sunrise:":["1f305"],":city_dusk:":["1f306"],":city_sunset:":["1f307"],":city_sunrise:":["1f307"],":rainbow:":["1f308"],":bridge_at_night:":["1f309"],":ocean:":["1f30a"],":volcano:":["1f30b"],":milky_way:":["1f30c"],":earth_asia:":["1f30f"],":new_moon:":["1f311"],":first_quarter_moon:":["1f313"],":waxing_gibbous_moon:":["1f314"],":full_moon:":["1f315"],":crescent_moon:":["1f319"],":first_quarter_moon_with_face:":["1f31b"],":star2:":["1f31f"],":stars:":["1f320"],":chestnut:":["1f330"],":seedling:":["1f331"],":palm_tree:":["1f334"],":cactus:":["1f335"],":tulip:":["1f337"],":cherry_blossom:":["1f338"],":rose:":["1f339"],":hibiscus:":["1f33a"],":sunflower:":["1f33b"],":blossom:":["1f33c"],":corn:":["1f33d"],":ear_of_rice:":["1f33e"],":herb:":["1f33f"],":four_leaf_clover:":["1f340"],":maple_leaf:":["1f341"],":fallen_leaf:":["1f342"],":leaves:":["1f343"],":mushroom:":["1f344"],":tomato:":["1f345"],":eggplant:":["1f346"],":grapes:":["1f347"],":melon:":["1f348"],":watermelon:":["1f349"],":tangerine:":["1f34a"],":banana:":["1f34c"],":pineapple:":["1f34d"],":apple:":["1f34e"],":green_apple:":["1f34f"],":peach:":["1f351"],":cherries:":["1f352"],":strawberry:":["1f353"],":hamburger:":["1f354"],":pizza:":["1f355"],":meat_on_bone:":["1f356"],":poultry_leg:":["1f357"],":rice_cracker:":["1f358"],":rice_ball:":["1f359"],":rice:":["1f35a"],":curry:":["1f35b"],":ramen:":["1f35c"],":spaghetti:":["1f35d"],":bread:":["1f35e"],":fries:":["1f35f"],":sweet_potato:":["1f360"],":dango:":["1f361"],":oden:":["1f362"],":sushi:":["1f363"],":fried_shrimp:":["1f364"],":fish_cake:":["1f365"],":icecream:":["1f366"],":shaved_ice:":["1f367"],":ice_cream:":["1f368"],":doughnut:":["1f369"],":cookie:":["1f36a"],":chocolate_bar:":["1f36b"],":candy:":["1f36c"],":lollipop:":["1f36d"],":custard:":["1f36e"],":honey_pot:":["1f36f"],":cake:":["1f370"],":bento:":["1f371"],":stew:":["1f372"],":egg:":["1f373"],":fork_and_knife:":["1f374"],":tea:":["1f375"],":sake:":["1f376"],":wine_glass:":["1f377"],":cocktail:":["1f378"],":tropical_drink:":["1f379"],":beer:":["1f37a"],":beers:":["1f37b"],":ribbon:":["1f380"],":gift:":["1f381"],":birthday:":["1f382"],":jack_o_lantern:":["1f383"],":christmas_tree:":["1f384"],":santa:":["1f385"],":fireworks:":["1f386"],":sparkler:":["1f387"],":balloon:":["1f388"],":tada:":["1f389"],":confetti_ball:":["1f38a"],":tanabata_tree:":["1f38b"],":crossed_flags:":["1f38c"],":bamboo:":["1f38d"],":dolls:":["1f38e"],":flags:":["1f38f"],":wind_chime:":["1f390"],":rice_scene:":["1f391"],":school_satchel:":["1f392"],":mortar_board:":["1f393"],":carousel_horse:":["1f3a0"],":ferris_wheel:":["1f3a1"],":roller_coaster:":["1f3a2"],":fishing_pole_and_fish:":["1f3a3"],":microphone:":["1f3a4"],":movie_camera:":["1f3a5"],":cinema:":["1f3a6"],":headphones:":["1f3a7"],":art:":["1f3a8"],":tophat:":["1f3a9"],":circus_tent:":["1f3aa"],":ticket:":["1f3ab"],":clapper:":["1f3ac"],":performing_arts:":["1f3ad"],":video_game:":["1f3ae"],":dart:":["1f3af"],":slot_machine:":["1f3b0"],":8ball:":["1f3b1"],":game_die:":["1f3b2"],":bowling:":["1f3b3"],":flower_playing_cards:":["1f3b4"],":musical_note:":["1f3b5"],":notes:":["1f3b6"],":saxophone:":["1f3b7"],":guitar:":["1f3b8"],":musical_keyboard:":["1f3b9"],":trumpet:":["1f3ba"],":violin:":["1f3bb"],":musical_score:":["1f3bc"],":running_shirt_with_sash:":["1f3bd"],":tennis:":["1f3be"],":ski:":["1f3bf"],":basketball:":["1f3c0"],":checkered_flag:":["1f3c1"],":snowboarder:":["1f3c2"],":runner:":["1f3c3"],":surfer:":["1f3c4"],":trophy:":["1f3c6"],":football:":["1f3c8"],":swimmer:":["1f3ca"],":house:":["1f3e0"],":house_with_garden:":["1f3e1"],":office:":["1f3e2"],":post_office:":["1f3e3"],":hospital:":["1f3e5"],":bank:":["1f3e6"],":atm:":["1f3e7"],":hotel:":["1f3e8"],":love_hotel:":["1f3e9"],":convenience_store:":["1f3ea"],":school:":["1f3eb"],":department_store:":["1f3ec"],":factory:":["1f3ed"],":izakaya_lantern:":["1f3ee"],":japanese_castle:":["1f3ef"],":european_castle:":["1f3f0"],":snail:":["1f40c"],":snake:":["1f40d"],":racehorse:":["1f40e"],":sheep:":["1f411"],":monkey:":["1f412"],":chicken:":["1f414"],":boar:":["1f417"],":elephant:":["1f418"],":octopus:":["1f419"],":shell:":["1f41a"],":bug:":["1f41b"],":ant:":["1f41c"],":bee:":["1f41d"],":beetle:":["1f41e"],":fish:":["1f41f"],":tropical_fish:":["1f420"],":blowfish:":["1f421"],":turtle:":["1f422"],":hatching_chick:":["1f423"],":baby_chick:":["1f424"],":hatched_chick:":["1f425"],":bird:":["1f426"],":penguin:":["1f427"],":koala:":["1f428"],":poodle:":["1f429"],":camel:":["1f42b"],":dolphin:":["1f42c"],":mouse:":["1f42d"],":cow:":["1f42e"],":tiger:":["1f42f"],":rabbit:":["1f430"],":cat:":["1f431"],":dragon_face:":["1f432"],":whale:":["1f433"],":horse:":["1f434"],":monkey_face:":["1f435"],":dog:":["1f436"],":pig:":["1f437"],":frog:":["1f438"],":hamster:":["1f439"],":wolf:":["1f43a"],":bear:":["1f43b"],":panda_face:":["1f43c"],":pig_nose:":["1f43d"],":feet:":["1f43e"],":eyes:":["1f440"],":ear:":["1f442"],":nose:":["1f443"],":lips:":["1f444"],":tongue:":["1f445"],":point_up_2:":["1f446"],":point_down:":["1f447"],":point_left:":["1f448"],":point_right:":["1f449"],":punch:":["1f44a"],":wave:":["1f44b"],":ok_hand:":["1f44c"],":thumbsup:":["1f44d"],":+1:":["1f44d"],":thumbsdown:":["1f44e"],":-1:":["1f44e"],":clap:":["1f44f"],":open_hands:":["1f450"],":crown:":["1f451"],":womans_hat:":["1f452"],":eyeglasses:":["1f453"],":necktie:":["1f454"],":shirt:":["1f455"],":jeans:":["1f456"],":dress:":["1f457"],":kimono:":["1f458"],":bikini:":["1f459"],":womans_clothes:":["1f45a"],":purse:":["1f45b"],":handbag:":["1f45c"],":pouch:":["1f45d"],":mans_shoe:":["1f45e"],":athletic_shoe:":["1f45f"],":high_heel:":["1f460"],":sandal:":["1f461"],":boot:":["1f462"],":footprints:":["1f463"],":bust_in_silhouette:":["1f464"],":boy:":["1f466"],":girl:":["1f467"],":man:":["1f468"],":woman:":["1f469"],":family:":["1f46a"],":couple:":["1f46b"],":cop:":["1f46e"],":dancers:":["1f46f"],":bride_with_veil:":["1f470"],":person_with_blond_hair:":["1f471"],":man_with_gua_pi_mao:":["1f472"],":man_with_turban:":["1f473"],":older_man:":["1f474"],":older_woman:":["1f475"],":grandma:":["1f475"],":baby:":["1f476"],":construction_worker:":["1f477"],":princess:":["1f478"],":japanese_ogre:":["1f479"],":japanese_goblin:":["1f47a"],":ghost:":["1f47b"],":angel:":["1f47c"],":alien:":["1f47d"],":space_invader:":["1f47e"],":imp:":["1f47f"],":skull:":["1f480"],":skeleton:":["1f480"],":card_index:":["1f4c7"],":information_desk_person:":["1f481"],":guardsman:":["1f482"],":dancer:":["1f483"],":lipstick:":["1f484"],":nail_care:":["1f485"],":ledger:":["1f4d2"],":massage:":["1f486"],":notebook:":["1f4d3"],":haircut:":["1f487"],":notebook_with_decorative_cover:":["1f4d4"],":barber:":["1f488"],":closed_book:":["1f4d5"],":syringe:":["1f489"],":book:":["1f4d6"],":pill:":["1f48a"],":green_book:":["1f4d7"],":kiss:":["1f48b"],":blue_book:":["1f4d8"],":love_letter:":["1f48c"],":orange_book:":["1f4d9"],":ring:":["1f48d"],":books:":["1f4da"],":gem:":["1f48e"],":name_badge:":["1f4db"],":couplekiss:":["1f48f"],":scroll:":["1f4dc"],":bouquet:":["1f490"],":pencil:":["1f4dd"],":couple_with_heart:":["1f491"],":telephone_receiver:":["1f4de"],":wedding:":["1f492"],":pager:":["1f4df"],":fax:":["1f4e0"],":heartbeat:":["1f493"],":satellite:":["1f4e1"],":loudspeaker:":["1f4e2"],":broken_heart:":["1f494"],":mega:":["1f4e3"],":outbox_tray:":["1f4e4"],":two_hearts:":["1f495"],":inbox_tray:":["1f4e5"],":package:":["1f4e6"],":sparkling_heart:":["1f496"],":e-mail:":["1f4e7"],":email:":["1f4e7"],":incoming_envelope:":["1f4e8"],":heartpulse:":["1f497"],":envelope_with_arrow:":["1f4e9"],":mailbox_closed:":["1f4ea"],":cupid:":["1f498"],":mailbox:":["1f4eb"],":postbox:":["1f4ee"],":blue_heart:":["1f499"],":newspaper:":["1f4f0"],":iphone:":["1f4f1"],":green_heart:":["1f49a"],":calling:":["1f4f2"],":vibration_mode:":["1f4f3"],":yellow_heart:":["1f49b"],":mobile_phone_off:":["1f4f4"],":signal_strength:":["1f4f6"],":purple_heart:":["1f49c"],":camera:":["1f4f7"],":video_camera:":["1f4f9"],":gift_heart:":["1f49d"],":tv:":["1f4fa"],":radio:":["1f4fb"],":revolving_hearts:":["1f49e"],":vhs:":["1f4fc"],":arrows_clockwise:":["1f503"],":heart_decoration:":["1f49f"],":loud_sound:":["1f50a"],":battery:":["1f50b"],":diamond_shape_with_a_dot_inside:":["1f4a0"],":electric_plug:":["1f50c"],":mag:":["1f50d"],":bulb:":["1f4a1"],":mag_right:":["1f50e"],":lock_with_ink_pen:":["1f50f"],":anger:":["1f4a2"],":closed_lock_with_key:":["1f510"],":key:":["1f511"],":bomb:":["1f4a3"],":lock:":["1f512"],":unlock:":["1f513"],":zzz:":["1f4a4"],":bell:":["1f514"],":bookmark:":["1f516"],":boom:":["1f4a5"],":link:":["1f517"],":radio_button:":["1f518"],":sweat_drops:":["1f4a6"],":back:":["1f519"],":end:":["1f51a"],":droplet:":["1f4a7"],":on:":["1f51b"],":soon:":["1f51c"],":dash:":["1f4a8"],":top:":["1f51d"],":underage:":["1f51e"],":poop:":["1f4a9"],":shit:":["1f4a9"],":hankey:":["1f4a9"],":poo:":["1f4a9"],":keycap_ten:":["1f51f"],":muscle:":["1f4aa"],":capital_abcd:":["1f520"],":abcd:":["1f521"],":dizzy:":["1f4ab"],":1234:":["1f522"],":symbols:":["1f523"],":speech_balloon:":["1f4ac"],":abc:":["1f524"],":fire:":["1f525"],":flame:":["1f525"],":white_flower:":["1f4ae"],":flashlight:":["1f526"],":wrench:":["1f527"],":100:":["1f4af"],":hammer:":["1f528"],":nut_and_bolt:":["1f529"],":moneybag:":["1f4b0"],":knife:":["1f52a"],":gun:":["1f52b"],":currency_exchange:":["1f4b1"],":crystal_ball:":["1f52e"],":heavy_dollar_sign:":["1f4b2"],":six_pointed_star:":["1f52f"],":credit_card:":["1f4b3"],":beginner:":["1f530"],":trident:":["1f531"],":yen:":["1f4b4"],":black_square_button:":["1f532"],":white_square_button:":["1f533"],":dollar:":["1f4b5"],":red_circle:":["1f534"],":large_blue_circle:":["1f535"],":money_with_wings:":["1f4b8"],":large_orange_diamond:":["1f536"],":large_blue_diamond:":["1f537"],":chart:":["1f4b9"],":small_orange_diamond:":["1f538"],":small_blue_diamond:":["1f539"],":seat:":["1f4ba"],":small_red_triangle:":["1f53a"],":small_red_triangle_down:":["1f53b"],":computer:":["1f4bb"],":arrow_up_small:":["1f53c"],":briefcase:":["1f4bc"],":arrow_down_small:":["1f53d"],":clock1:":["1f550"],":minidisc:":["1f4bd"],":clock2:":["1f551"],":floppy_disk:":["1f4be"],":clock3:":["1f552"],":cd:":["1f4bf"],":clock4:":["1f553"],":dvd:":["1f4c0"],":clock5:":["1f554"],":clock6:":["1f555"],":file_folder:":["1f4c1"],":clock7:":["1f556"],":clock8:":["1f557"],":open_file_folder:":["1f4c2"],":clock9:":["1f558"],":clock10:":["1f559"],":page_with_curl:":["1f4c3"],":clock11:":["1f55a"],":clock12:":["1f55b"],":page_facing_up:":["1f4c4"],":mount_fuji:":["1f5fb"],":tokyo_tower:":["1f5fc"],":date:":["1f4c5"],":statue_of_liberty:":["1f5fd"],":japan:":["1f5fe"],":calendar:":["1f4c6"],":moyai:":["1f5ff"],":grin:":["1f601"],":joy:":["1f602"],":smiley:":["1f603"],":chart_with_upwards_trend:":["1f4c8"],":smile:":["1f604"],":sweat_smile:":["1f605"],":chart_with_downwards_trend:":["1f4c9"],":laughing:":["1f606"],":satisfied:":["1f606"],":wink:":["1f609"],":bar_chart:":["1f4ca"],":blush:":["1f60a"],":yum:":["1f60b"],":clipboard:":["1f4cb"],":relieved:":["1f60c"],":heart_eyes:":["1f60d"],":pushpin:":["1f4cc"],":smirk:":["1f60f"],":unamused:":["1f612"],":round_pushpin:":["1f4cd"],":sweat:":["1f613"],":pensive:":["1f614"],":paperclip:":["1f4ce"],":confounded:":["1f616"],":kissing_heart:":["1f618"],":straight_ruler:":["1f4cf"],":kissing_closed_eyes:":["1f61a"],":stuck_out_tongue_winking_eye:":["1f61c"],":triangular_ruler:":["1f4d0"],":stuck_out_tongue_closed_eyes:":["1f61d"],":disappointed:":["1f61e"],":bookmark_tabs:":["1f4d1"],":angry:":["1f620"],":rage:":["1f621"],":cry:":["1f622"],":persevere:":["1f623"],":triumph:":["1f624"],":disappointed_relieved:":["1f625"],":fearful:":["1f628"],":weary:":["1f629"],":sleepy:":["1f62a"],":tired_face:":["1f62b"],":sob:":["1f62d"],":cold_sweat:":["1f630"],":scream:":["1f631"],":astonished:":["1f632"],":flushed:":["1f633"],":dizzy_face:":["1f635"],":mask:":["1f637"],":smile_cat:":["1f638"],":joy_cat:":["1f639"],":smiley_cat:":["1f63a"],":heart_eyes_cat:":["1f63b"],":smirk_cat:":["1f63c"],":kissing_cat:":["1f63d"],":pouting_cat:":["1f63e"],":crying_cat_face:":["1f63f"],":scream_cat:":["1f640"],":no_good:":["1f645"],":ok_woman:":["1f646"],":bow:":["1f647"],":see_no_evil:":["1f648"],":hear_no_evil:":["1f649"],":speak_no_evil:":["1f64a"],":raising_hand:":["1f64b"],":raised_hands:":["1f64c"],":person_frowning:":["1f64d"],":person_with_pouting_face:":["1f64e"],":pray:":["1f64f"],":rocket:":["1f680"],":railway_car:":["1f683"],":bullettrain_side:":["1f684"],":bullettrain_front:":["1f685"],":metro:":["1f687"],":station:":["1f689"],":bus:":["1f68c"],":busstop:":["1f68f"],":ambulance:":["1f691"],":fire_engine:":["1f692"],":police_car:":["1f693"],":taxi:":["1f695"],":red_car:":["1f697"],":blue_car:":["1f699"],":truck:":["1f69a"],":ship:":["1f6a2"],":speedboat:":["1f6a4"],":traffic_light:":["1f6a5"],":construction:":["1f6a7"],":rotating_light:":["1f6a8"],":triangular_flag_on_post:":["1f6a9"],":door:":["1f6aa"],":no_entry_sign:":["1f6ab"],":smoking:":["1f6ac"],":no_smoking:":["1f6ad"],":bike:":["1f6b2"],":walking:":["1f6b6"],":mens:":["1f6b9"],":womens:":["1f6ba"],":restroom:":["1f6bb"],":baby_symbol:":["1f6bc"],":toilet:":["1f6bd"],":wc:":["1f6be"],":bath:":["1f6c0"],":grinning:":["1f600"],":innocent:":["1f607"],":smiling_imp:":["1f608"],":sunglasses:":["1f60e"],":neutral_face:":["1f610"],":expressionless:":["1f611"],":confused:":["1f615"],":kissing:":["1f617"],":kissing_smiling_eyes:":["1f619"],":stuck_out_tongue:":["1f61b"],":worried:":["1f61f"],":frowning:":["1f626"],":anguished:":["1f627"],":grimacing:":["1f62c"],":open_mouth:":["1f62e"],":hushed:":["1f62f"],":sleeping:":["1f634"],":no_mouth:":["1f636"],":helicopter:":["1f681"],":steam_locomotive:":["1f682"],":train2:":["1f686"],":light_rail:":["1f688"],":tram:":["1f68a"],":oncoming_bus:":["1f68d"],":trolleybus:":["1f68e"],":minibus:":["1f690"],":oncoming_police_car:":["1f694"],":oncoming_taxi:":["1f696"],":oncoming_automobile:":["1f698"],":articulated_lorry:":["1f69b"],":tractor:":["1f69c"],":monorail:":["1f69d"],":mountain_railway:":["1f69e"],":suspension_railway:":["1f69f"],":mountain_cableway:":["1f6a0"],":aerial_tramway:":["1f6a1"],":rowboat:":["1f6a3"],":vertical_traffic_light:":["1f6a6"],":put_litter_in_its_place:":["1f6ae"],":do_not_litter:":["1f6af"],":potable_water:":["1f6b0"],":non-potable_water:":["1f6b1"],":no_bicycles:":["1f6b3"],":bicyclist:":["1f6b4"],":mountain_bicyclist:":["1f6b5"],":no_pedestrians:":["1f6b7"],":children_crossing:":["1f6b8"],":shower:":["1f6bf"],":bathtub:":["1f6c1"],":passport_control:":["1f6c2"],":customs:":["1f6c3"],":baggage_claim:":["1f6c4"],":left_luggage:":["1f6c5"],":earth_africa:":["1f30d"],":earth_americas:":["1f30e"],":globe_with_meridians:":["1f310"],":waxing_crescent_moon:":["1f312"],":waning_gibbous_moon:":["1f316"],":last_quarter_moon:":["1f317"],":waning_crescent_moon:":["1f318"],":new_moon_with_face:":["1f31a"],":last_quarter_moon_with_face:":["1f31c"],":full_moon_with_face:":["1f31d"],":sun_with_face:":["1f31e"],":evergreen_tree:":["1f332"],":deciduous_tree:":["1f333"],":lemon:":["1f34b"],":pear:":["1f350"],":baby_bottle:":["1f37c"],":horse_racing:":["1f3c7"],":rugby_football:":["1f3c9"],":european_post_office:":["1f3e4"],":rat:":["1f400"],":mouse2:":["1f401"],":ox:":["1f402"],":water_buffalo:":["1f403"],":cow2:":["1f404"],":tiger2:":["1f405"],":leopard:":["1f406"],":rabbit2:":["1f407"],":cat2:":["1f408"],":dragon:":["1f409"],":crocodile:":["1f40a"],":whale2:":["1f40b"],":ram:":["1f40f"],":goat:":["1f410"],":rooster:":["1f413"],":dog2:":["1f415"],":pig2:":["1f416"],":dromedary_camel:":["1f42a"],":busts_in_silhouette:":["1f465"],":two_men_holding_hands:":["1f46c"],":two_women_holding_hands:":["1f46d"],":thought_balloon:":["1f4ad"],":euro:":["1f4b6"],":pound:":["1f4b7"],":mailbox_with_mail:":["1f4ec"],":mailbox_with_no_mail:":["1f4ed"],":postal_horn:":["1f4ef"],":no_mobile_phones:":["1f4f5"],":twisted_rightwards_arrows:":["1f500"],":repeat:":["1f501"],":repeat_one:":["1f502"],":arrows_counterclockwise:":["1f504"],":low_brightness:":["1f505"],":high_brightness:":["1f506"],":mute:":["1f507"],":sound:":["1f509"],":no_bell:":["1f515"],":microscope:":["1f52c"],":telescope:":["1f52d"],":clock130:":["1f55c"],":clock230:":["1f55d"],":clock330:":["1f55e"],":clock430:":["1f55f"],":clock530:":["1f560"],":clock630:":["1f561"],":clock730:":["1f562"],":clock830:":["1f563"],":clock930:":["1f564"],":clock1030:":["1f565"],":clock1130:":["1f566"],":clock1230:":["1f567"],":speaker:":["1f508"],":train:":["1f68b"],":loop:":["27bf"],":af:":["1f1e6-1f1eb"],":al:":["1f1e6-1f1f1"],":dz:":["1f1e9-1f1ff"],":ad:":["1f1e6-1f1e9"],":ao:":["1f1e6-1f1f4"],":ag:":["1f1e6-1f1ec"],":ar:":["1f1e6-1f1f7"],":am:":["1f1e6-1f1f2"],":au:":["1f1e6-1f1fa"],":at:":["1f1e6-1f1f9"],":az:":["1f1e6-1f1ff"],":bs:":["1f1e7-1f1f8"],":bh:":["1f1e7-1f1ed"],":bd:":["1f1e7-1f1e9"],":bb:":["1f1e7-1f1e7"],":by:":["1f1e7-1f1fe"],":be:":["1f1e7-1f1ea"],":bz:":["1f1e7-1f1ff"],":bj:":["1f1e7-1f1ef"],":bt:":["1f1e7-1f1f9"],":bo:":["1f1e7-1f1f4"],":ba:":["1f1e7-1f1e6"],":bw:":["1f1e7-1f1fc"],":br:":["1f1e7-1f1f7"],":bn:":["1f1e7-1f1f3"],":bg:":["1f1e7-1f1ec"],":bf:":["1f1e7-1f1eb"],":bi:":["1f1e7-1f1ee"],":kh:":["1f1f0-1f1ed"],":cm:":["1f1e8-1f1f2"],":ca:":["1f1e8-1f1e6"],":cv:":["1f1e8-1f1fb"],":cf:":["1f1e8-1f1eb"],":td:":["1f1f9-1f1e9"],":chile:":["1f1e8-1f1f1"],":co:":["1f1e8-1f1f4"],":km:":["1f1f0-1f1f2"],":cr:":["1f1e8-1f1f7"],":ci:":["1f1e8-1f1ee"],":hr:":["1f1ed-1f1f7"],":cu:":["1f1e8-1f1fa"],":cy:":["1f1e8-1f1fe"],":cz:":["1f1e8-1f1ff"],":congo:":["1f1e8-1f1e9"],":dk:":["1f1e9-1f1f0"],":dj:":["1f1e9-1f1ef"],":dm:":["1f1e9-1f1f2"],":do:":["1f1e9-1f1f4"],":tl:":["1f1f9-1f1f1"],":ec:":["1f1ea-1f1e8"],":eg:":["1f1ea-1f1ec"],":sv:":["1f1f8-1f1fb"],":gq:":["1f1ec-1f1f6"],":er:":["1f1ea-1f1f7"],":ee:":["1f1ea-1f1ea"],":et:":["1f1ea-1f1f9"],":fj:":["1f1eb-1f1ef"],":fi:":["1f1eb-1f1ee"],":ga:":["1f1ec-1f1e6"],":gm:":["1f1ec-1f1f2"],":ge:":["1f1ec-1f1ea"],":gh:":["1f1ec-1f1ed"],":gr:":["1f1ec-1f1f7"],":gd:":["1f1ec-1f1e9"],":gt:":["1f1ec-1f1f9"],":gn:":["1f1ec-1f1f3"],":gw:":["1f1ec-1f1fc"],":gy:":["1f1ec-1f1fe"],":ht:":["1f1ed-1f1f9"],":hn:":["1f1ed-1f1f3"],":hu:":["1f1ed-1f1fa"],":is:":["1f1ee-1f1f8"],":in:":["1f1ee-1f1f3"],":indonesia:":["1f1ee-1f1e9"],":ir:":["1f1ee-1f1f7"],":iq:":["1f1ee-1f1f6"],":ie:":["1f1ee-1f1ea"],":il:":["1f1ee-1f1f1"],":jm:":["1f1ef-1f1f2"],":jo:":["1f1ef-1f1f4"],":kz:":["1f1f0-1f1ff"],":ke:":["1f1f0-1f1ea"],":ki:":["1f1f0-1f1ee"],":xk:":["1f1fd-1f1f0"],":kw:":["1f1f0-1f1fc"],":kg:":["1f1f0-1f1ec"],":la:":["1f1f1-1f1e6"],":lv:":["1f1f1-1f1fb"],":lb:":["1f1f1-1f1e7"],":ls:":["1f1f1-1f1f8"],":lr:":["1f1f1-1f1f7"],":ly:":["1f1f1-1f1fe"],":li:":["1f1f1-1f1ee"],":lt:":["1f1f1-1f1f9"],":lu:":["1f1f1-1f1fa"],":mk:":["1f1f2-1f1f0"],":mg:":["1f1f2-1f1ec"],":mw:":["1f1f2-1f1fc"],":my:":["1f1f2-1f1fe"],":mv:":["1f1f2-1f1fb"],":ml:":["1f1f2-1f1f1"],":mt:":["1f1f2-1f1f9"],":mh:":["1f1f2-1f1ed"],":mr:":["1f1f2-1f1f7"],":mu:":["1f1f2-1f1fa"],":mx:":["1f1f2-1f1fd"],":fm:":["1f1eb-1f1f2"],":md:":["1f1f2-1f1e9"],":mc:":["1f1f2-1f1e8"],":mn:":["1f1f2-1f1f3"],":me:":["1f1f2-1f1ea"],":ma:":["1f1f2-1f1e6"],":mz:":["1f1f2-1f1ff"],":mm:":["1f1f2-1f1f2"],":na:":["1f1f3-1f1e6"],":nr:":["1f1f3-1f1f7"],":np:":["1f1f3-1f1f5"],":nl:":["1f1f3-1f1f1"],":nz:":["1f1f3-1f1ff"],":ni:":["1f1f3-1f1ee"],":ne:":["1f1f3-1f1ea"],":nigeria:":["1f1f3-1f1ec"],":kp:":["1f1f0-1f1f5"],":no:":["1f1f3-1f1f4"],":om:":["1f1f4-1f1f2"],":pk:":["1f1f5-1f1f0"],":pw:":["1f1f5-1f1fc"],":pa:":["1f1f5-1f1e6"],":pg:":["1f1f5-1f1ec"],":py:":["1f1f5-1f1fe"],":pe:":["1f1f5-1f1ea"],":ph:":["1f1f5-1f1ed"],":pl:":["1f1f5-1f1f1"],":pt:":["1f1f5-1f1f9"],":qa:":["1f1f6-1f1e6"],":tw:":["1f1f9-1f1fc"],":cg:":["1f1e8-1f1ec"],":ro:":["1f1f7-1f1f4"],":rw:":["1f1f7-1f1fc"],":kn:":["1f1f0-1f1f3"],":lc:":["1f1f1-1f1e8"],":vc:":["1f1fb-1f1e8"],":ws:":["1f1fc-1f1f8"],":sm:":["1f1f8-1f1f2"],":st:":["1f1f8-1f1f9"],":saudiarabia:":["1f1f8-1f1e6"],":saudi:":["1f1f8-1f1e6"],":sn:":["1f1f8-1f1f3"],":rs:":["1f1f7-1f1f8"],":sc:":["1f1f8-1f1e8"],":sl:":["1f1f8-1f1f1"],":sg:":["1f1f8-1f1ec"],":sk:":["1f1f8-1f1f0"],":si:":["1f1f8-1f1ee"],":sb:":["1f1f8-1f1e7"],":so:":["1f1f8-1f1f4"],":za:":["1f1ff-1f1e6"],":lk:":["1f1f1-1f1f0"],":sd:":["1f1f8-1f1e9"],":sr:":["1f1f8-1f1f7"],":sz:":["1f1f8-1f1ff"],":se:":["1f1f8-1f1ea"],":ch:":["1f1e8-1f1ed"],":sy:":["1f1f8-1f1fe"],":tj:":["1f1f9-1f1ef"],":tz:":["1f1f9-1f1ff"],":th:":["1f1f9-1f1ed"],":tg:":["1f1f9-1f1ec"],":to:":["1f1f9-1f1f4"],":tt:":["1f1f9-1f1f9"],":tn:":["1f1f9-1f1f3"],":tr:":["1f1f9-1f1f7"],":turkmenistan:":["1f1f9-1f1f2"],":tuvalu:":["1f1f9-1f1fb"],":ug:":["1f1fa-1f1ec"],":ua:":["1f1fa-1f1e6"],":ae:":["1f1e6-1f1ea"],":uy:":["1f1fa-1f1fe"],":uz:":["1f1fa-1f1ff"],":vu:":["1f1fb-1f1fa"],":va:":["1f1fb-1f1e6"],":ve:":["1f1fb-1f1ea"],":vn:":["1f1fb-1f1f3"],":eh:":["1f1ea-1f1ed"],":ye:":["1f1fe-1f1ea"],":zm:":["1f1ff-1f1f2"],":zw:":["1f1ff-1f1fc"],":pr:":["1f1f5-1f1f7"],":ky:":["1f1f0-1f1fe"],":bm:":["1f1e7-1f1f2"],":pf:":["1f1f5-1f1eb"],":ps:":["1f1f5-1f1f8"],":nc:":["1f1f3-1f1e8"],":sh:":["1f1f8-1f1ed"],":aw:":["1f1e6-1f1fc"],":vi:":["1f1fb-1f1ee"],":hk:":["1f1ed-1f1f0"],":ac:":["1f1e6-1f1e8"],":ms:":["1f1f2-1f1f8"],":gu:":["1f1ec-1f1fa"],":gl:":["1f1ec-1f1f1"],":nu:":["1f1f3-1f1fa"],":wf:":["1f1fc-1f1eb"],":mo:":["1f1f2-1f1f4"],":fo:":["1f1eb-1f1f4"],":fk:":["1f1eb-1f1f0"],":je:":["1f1ef-1f1ea"],":ai:":["1f1e6-1f1ee"],":gi:":["1f1ec-1f1ee"]},a.asciiList={"<3":"2764","</3":"1f494",":')":"1f602",":'-)":"1f602",":D":"1f603",":-D":"1f603","=D":"1f603",":)":"1f604",":-)":"1f604","=]":"1f604","=)":"1f604",":]":"1f604","':)":"1f605","':-)":"1f605","'=)":"1f605","':D":"1f605","':-D":"1f605","'=D":"1f605",">:)":"1f606",">;)":"1f606",">:-)":"1f606",">=)":"1f606",";)":"1f609",";-)":"1f609","*-)":"1f609","*)":"1f609",";-]":"1f609",";]":"1f609",";D":"1f609",";^)":"1f609","':(":"1f613","':-(":"1f613","'=(":"1f613",":*":"1f618",":-*":"1f618","=*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c","x-p":"1f61c",">:[":"1f61e",":-(":"1f61e",":(":"1f61e",":-[":"1f61e",":[":"1f61e","=(":"1f61e",">:(":"1f620",">:-(":"1f620",":@":"1f620",":'(":"1f622",":'-(":"1f622",";(":"1f622",";-(":"1f622",">.<":"1f623",":$":"1f633","=$":"1f633","#-)":"1f635","#)":"1f635","%-)":"1f635","%)":"1f635","X)":"1f635","X-)":"1f635","*\\0/*":"1f646","\\0/":"1f646","*\\O/*":"1f646","\\O/":"1f646","O:-)":"1f607","0:-3":"1f607","0:3":"1f607","0:-)":"1f607","0:)":"1f607","0;^)":"1f607","O:)":"1f607","O;-)":"1f607","O=)":"1f607","0;-)":"1f607","O:-3":"1f607","O:3":"1f607","B-)":"1f60e","B)":"1f60e","8)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611","-__-":"1f611","-___-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b",":-P":"1f61b","=P":"1f61b",":-p":"1f61b",":p":"1f61b","=p":"1f61b",":-Þ":"1f61b",":Þ":"1f61b",":þ":"1f61b",":-þ":"1f61b",":-b":"1f61b",":b":"1f61b","d:":"1f61b",":-O":"1f62e",":O":"1f62e",":-o":"1f62e",":o":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":X":"1f636",":-#":"1f636",":#":"1f636","=X":"1f636","=x":"1f636",":x":"1f636",":-x":"1f636","=#":"1f636"},a.asciiRegexp="(\\<3|&lt;3|\\<\\/3|&lt;\\/3|\\:'\\)|\\:'\\-\\)|\\:D|\\:\\-D|\\=D|\\:\\)|\\:\\-\\)|\\=\\]|\\=\\)|\\:\\]|'\\:\\)|'\\:\\-\\)|'\\=\\)|'\\:D|'\\:\\-D|'\\=D|\\>\\:\\)|&gt;\\:\\)|\\>;\\)|&gt;;\\)|\\>\\:\\-\\)|&gt;\\:\\-\\)|\\>\\=\\)|&gt;\\=\\)|;\\)|;\\-\\)|\\*\\-\\)|\\*\\)|;\\-\\]|;\\]|;D|;\\^\\)|'\\:\\(|'\\:\\-\\(|'\\=\\(|\\:\\*|\\:\\-\\*|\\=\\*|\\:\\^\\*|\\>\\:P|&gt;\\:P|X\\-P|x\\-p|\\>\\:\\[|&gt;\\:\\[|\\:\\-\\(|\\:\\(|\\:\\-\\[|\\:\\[|\\=\\(|\\>\\:\\(|&gt;\\:\\(|\\>\\:\\-\\(|&gt;\\:\\-\\(|\\:@|\\:'\\(|\\:'\\-\\(|;\\(|;\\-\\(|\\>\\.\\<|&gt;\\.&lt;|\\:\\$|\\=\\$|#\\-\\)|#\\)|%\\-\\)|%\\)|X\\)|X\\-\\)|\\*\\\\0\\/\\*|\\\\0\\/|\\*\\\\O\\/\\*|\\\\O\\/|O\\:\\-\\)|0\\:\\-3|0\\:3|0\\:\\-\\)|0\\:\\)|0;\\^\\)|O\\:\\-\\)|O\\:\\)|O;\\-\\)|O\\=\\)|0;\\-\\)|O\\:\\-3|O\\:3|B\\-\\)|B\\)|8\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\-__\\-|\\-___\\-|\\>\\:\\\\|&gt;\\:\\\\|\\>\\:\\/|&gt;\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\:\\-P|\\=P|\\:\\-p|\\:p|\\=p|\\:\\-Þ|\\:\\-&THORN;|\\:Þ|\\:&THORN;|\\:þ|\\:&thorn;|\\:\\-þ|\\:\\-&thorn;|\\:\\-b|\\:b|d\\:|\\:\\-O|\\:O|\\:\\-o|\\:o|O_O|\\>\\:O|&gt;\\:O|\\:\\-X|\\:X|\\:\\-#|\\:#|\\=X|\\=x|\\:x|\\:\\-x|\\=#)",a.unicodeRegexp="(#\\uFE0F\\u20E3|#\\u20E3|0\\uFE0F\\u20E3|0\\u20E3|1\\uFE0F\\u20E3|1\\u20E3|2\\uFE0F\\u20E3|2\\u20E3|3\\uFE0F\\u20E3|3\\u20E3|4\\uFE0F\\u20E3|4\\u20E3|5\\uFE0F\\u20E3|5\\u20E3|6\\uFE0F\\u20E3|6\\u20E3|7\\uFE0F\\u20E3|7\\u20E3|8\\uFE0F\\u20E3|8\\u20E3|9\\uFE0F\\u20E3|9\\u20E3|\\u00A9|\\u00AE|\\u203C\\uFE0F|\\u203C|\\u2049\\uFE0F|\\u2049|\\u2122|\\u2139\\uFE0F|\\u2139|\\u2194\\uFE0F|\\u2194|\\u2195\\uFE0F|\\u2195|\\u2196\\uFE0F|\\u2196|\\u2197\\uFE0F|\\u2197|\\u2198\\uFE0F|\\u2198|\\u2199\\uFE0F|\\u2199|\\u21A9\\uFE0F|\\u21A9|\\u21AA\\uFE0F|\\u21AA|\\u231A\\uFE0F|\\u231A|\\u231B\\uFE0F|\\u231B|\\u23E9|\\u23EA|\\u23EB|\\u23EC|\\u23F0|\\u23F3|\\u24C2\\uFE0F|\\u24C2|\\u25AA\\uFE0F|\\u25AA|\\u25AB\\uFE0F|\\u25AB|\\u25B6\\uFE0F|\\u25B6|\\u25C0\\uFE0F|\\u25C0|\\u25FB\\uFE0F|\\u25FB|\\u25FC\\uFE0F|\\u25FC|\\u25FD\\uFE0F|\\u25FD|\\u25FE\\uFE0F|\\u25FE|\\u2600\\uFE0F|\\u2600|\\u2601\\uFE0F|\\u2601|\\u260E\\uFE0F|\\u260E|\\u2611\\uFE0F|\\u2611|\\u2614\\uFE0F|\\u2614|\\u2615\\uFE0F|\\u2615|\\u261D\\uFE0F|\\u261D|\\u263A\\uFE0F|\\u263A|\\u2648\\uFE0F|\\u2648|\\u2649\\uFE0F|\\u2649|\\u264A\\uFE0F|\\u264A|\\u264B\\uFE0F|\\u264B|\\u264C\\uFE0F|\\u264C|\\u264D\\uFE0F|\\u264D|\\u264E\\uFE0F|\\u264E|\\u264F\\uFE0F|\\u264F|\\u2650\\uFE0F|\\u2650|\\u2651\\uFE0F|\\u2651|\\u2652\\uFE0F|\\u2652|\\u2653\\uFE0F|\\u2653|\\u2660\\uFE0F|\\u2660|\\u2663\\uFE0F|\\u2663|\\u2665\\uFE0F|\\u2665|\\u2666\\uFE0F|\\u2666|\\u2668\\uFE0F|\\u2668|\\u267B\\uFE0F|\\u267B|\\u267F\\uFE0F|\\u267F|\\u2693\\uFE0F|\\u2693|\\u26A0\\uFE0F|\\u26A0|\\u26A1\\uFE0F|\\u26A1|\\u26AA\\uFE0F|\\u26AA|\\u26AB\\uFE0F|\\u26AB|\\u26BD\\uFE0F|\\u26BD|\\u26BE\\uFE0F|\\u26BE|\\u26C4\\uFE0F|\\u26C4|\\u26C5\\uFE0F|\\u26C5|\\u26CE|\\u26D4\\uFE0F|\\u26D4|\\u26EA\\uFE0F|\\u26EA|\\u26F2\\uFE0F|\\u26F2|\\u26F3\\uFE0F|\\u26F3|\\u26F5\\uFE0F|\\u26F5|\\u26FA\\uFE0F|\\u26FA|\\u26FD\\uFE0F|\\u26FD|\\u2702\\uFE0F|\\u2702|\\u2705|\\u2708\\uFE0F|\\u2708|\\u2709\\uFE0F|\\u2709|\\u270A|\\u270B|\\u270C\\uFE0F|\\u270C|\\u270F\\uFE0F|\\u270F|\\u2712\\uFE0F|\\u2712|\\u2714\\uFE0F|\\u2714|\\u2716\\uFE0F|\\u2716|\\u2728|\\u2733\\uFE0F|\\u2733|\\u2734\\uFE0F|\\u2734|\\u2744\\uFE0F|\\u2744|\\u2747\\uFE0F|\\u2747|\\u274C|\\u274E|\\u2753|\\u2754|\\u2755|\\u2757\\uFE0F|\\u2757|\\u2764\\uFE0F|\\u2764|\\u2795|\\u2796|\\u2797|\\u27A1\\uFE0F|\\u27A1|\\u27B0|\\u2934\\uFE0F|\\u2934|\\u2935\\uFE0F|\\u2935|\\u2B05\\uFE0F|\\u2B05|\\u2B06\\uFE0F|\\u2B06|\\u2B07\\uFE0F|\\u2B07|\\u2B1B\\uFE0F|\\u2B1B|\\u2B1C\\uFE0F|\\u2B1C|\\u2B50\\uFE0F|\\u2B50|\\u2B55\\uFE0F|\\u2B55|\\u3030|\\u303D\\uFE0F|\\u303D|\\u3297\\uFE0F|\\u3297|\\u3299\\uFE0F|\\u3299|\\uD83C\\uDC04\\uFE0F|\\uD83C\\uDC04|\\uD83C\\uDCCF|\\uD83C\\uDD70|\\uD83C\\uDD71|\\uD83C\\uDD7E|\\uD83C\\uDD7F\\uFE0F|\\uD83C\\uDD7F|\\uD83C\\uDD8E|\\uD83C\\uDD91|\\uD83C\\uDD92|\\uD83C\\uDD93|\\uD83C\\uDD94|\\uD83C\\uDD95|\\uD83C\\uDD96|\\uD83C\\uDD97|\\uD83C\\uDD98|\\uD83C\\uDD99|\\uD83C\\uDD9A|\\uD83C\\uDDE8\\uD83C\\uDDF3|\\uD83C\\uDDE9\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF8|\\uD83C\\uDDEB\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE7|\\uD83C\\uDDEE\\uD83C\\uDDF9|\\uD83C\\uDDEF\\uD83C\\uDDF5|\\uD83C\\uDDF0\\uD83C\\uDDF7|\\uD83C\\uDDFA\\uD83C\\uDDF8|\\uD83C\\uDDF7\\uD83C\\uDDFA|\\uD83C\\uDE01|\\uD83C\\uDE02|\\uD83C\\uDE1A\\uFE0F|\\uD83C\\uDE1A|\\uD83C\\uDE2F\\uFE0F|\\uD83C\\uDE2F|\\uD83C\\uDE32|\\uD83C\\uDE33|\\uD83C\\uDE34|\\uD83C\\uDE35|\\uD83C\\uDE36|\\uD83C\\uDE37|\\uD83C\\uDE38|\\uD83C\\uDE39|\\uD83C\\uDE3A|\\uD83C\\uDE50|\\uD83C\\uDE51|\\uD83C\\uDF00|\\uD83C\\uDF01|\\uD83C\\uDF02|\\uD83C\\uDF03|\\uD83C\\uDF04|\\uD83C\\uDF05|\\uD83C\\uDF06|\\uD83C\\uDF07|\\uD83C\\uDF08|\\uD83C\\uDF09|\\uD83C\\uDF0A|\\uD83C\\uDF0B|\\uD83C\\uDF0C|\\uD83C\\uDF0F|\\uD83C\\uDF11|\\uD83C\\uDF13|\\uD83C\\uDF14|\\uD83C\\uDF15|\\uD83C\\uDF19|\\uD83C\\uDF1B|\\uD83C\\uDF1F|\\uD83C\\uDF20|\\uD83C\\uDF30|\\uD83C\\uDF31|\\uD83C\\uDF34|\\uD83C\\uDF35|\\uD83C\\uDF37|\\uD83C\\uDF38|\\uD83C\\uDF39|\\uD83C\\uDF3A|\\uD83C\\uDF3B|\\uD83C\\uDF3C|\\uD83C\\uDF3D|\\uD83C\\uDF3E|\\uD83C\\uDF3F|\\uD83C\\uDF40|\\uD83C\\uDF41|\\uD83C\\uDF42|\\uD83C\\uDF43|\\uD83C\\uDF44|\\uD83C\\uDF45|\\uD83C\\uDF46|\\uD83C\\uDF47|\\uD83C\\uDF48|\\uD83C\\uDF49|\\uD83C\\uDF4A|\\uD83C\\uDF4C|\\uD83C\\uDF4D|\\uD83C\\uDF4E|\\uD83C\\uDF4F|\\uD83C\\uDF51|\\uD83C\\uDF52|\\uD83C\\uDF53|\\uD83C\\uDF54|\\uD83C\\uDF55|\\uD83C\\uDF56|\\uD83C\\uDF57|\\uD83C\\uDF58|\\uD83C\\uDF59|\\uD83C\\uDF5A|\\uD83C\\uDF5B|\\uD83C\\uDF5C|\\uD83C\\uDF5D|\\uD83C\\uDF5E|\\uD83C\\uDF5F|\\uD83C\\uDF60|\\uD83C\\uDF61|\\uD83C\\uDF62|\\uD83C\\uDF63|\\uD83C\\uDF64|\\uD83C\\uDF65|\\uD83C\\uDF66|\\uD83C\\uDF67|\\uD83C\\uDF68|\\uD83C\\uDF69|\\uD83C\\uDF6A|\\uD83C\\uDF6B|\\uD83C\\uDF6C|\\uD83C\\uDF6D|\\uD83C\\uDF6E|\\uD83C\\uDF6F|\\uD83C\\uDF70|\\uD83C\\uDF71|\\uD83C\\uDF72|\\uD83C\\uDF73|\\uD83C\\uDF74|\\uD83C\\uDF75|\\uD83C\\uDF76|\\uD83C\\uDF77|\\uD83C\\uDF78|\\uD83C\\uDF79|\\uD83C\\uDF7A|\\uD83C\\uDF7B|\\uD83C\\uDF80|\\uD83C\\uDF81|\\uD83C\\uDF82|\\uD83C\\uDF83|\\uD83C\\uDF84|\\uD83C\\uDF85|\\uD83C\\uDF86|\\uD83C\\uDF87|\\uD83C\\uDF88|\\uD83C\\uDF89|\\uD83C\\uDF8A|\\uD83C\\uDF8B|\\uD83C\\uDF8C|\\uD83C\\uDF8D|\\uD83C\\uDF8E|\\uD83C\\uDF8F|\\uD83C\\uDF90|\\uD83C\\uDF91|\\uD83C\\uDF92|\\uD83C\\uDF93|\\uD83C\\uDFA0|\\uD83C\\uDFA1|\\uD83C\\uDFA2|\\uD83C\\uDFA3|\\uD83C\\uDFA4|\\uD83C\\uDFA5|\\uD83C\\uDFA6|\\uD83C\\uDFA7|\\uD83C\\uDFA8|\\uD83C\\uDFA9|\\uD83C\\uDFAA|\\uD83C\\uDFAB|\\uD83C\\uDFAC|\\uD83C\\uDFAD|\\uD83C\\uDFAE|\\uD83C\\uDFAF|\\uD83C\\uDFB0|\\uD83C\\uDFB1|\\uD83C\\uDFB2|\\uD83C\\uDFB3|\\uD83C\\uDFB4|\\uD83C\\uDFB5|\\uD83C\\uDFB6|\\uD83C\\uDFB7|\\uD83C\\uDFB8|\\uD83C\\uDFB9|\\uD83C\\uDFBA|\\uD83C\\uDFBB|\\uD83C\\uDFBC|\\uD83C\\uDFBD|\\uD83C\\uDFBE|\\uD83C\\uDFBF|\\uD83C\\uDFC0|\\uD83C\\uDFC1|\\uD83C\\uDFC2|\\uD83C\\uDFC3|\\uD83C\\uDFC4|\\uD83C\\uDFC6|\\uD83C\\uDFC8|\\uD83C\\uDFCA|\\uD83C\\uDFE0|\\uD83C\\uDFE1|\\uD83C\\uDFE2|\\uD83C\\uDFE3|\\uD83C\\uDFE5|\\uD83C\\uDFE6|\\uD83C\\uDFE7|\\uD83C\\uDFE8|\\uD83C\\uDFE9|\\uD83C\\uDFEA|\\uD83C\\uDFEB|\\uD83C\\uDFEC|\\uD83C\\uDFED|\\uD83C\\uDFEE|\\uD83C\\uDFEF|\\uD83C\\uDFF0|\\uD83D\\uDC0C|\\uD83D\\uDC0D|\\uD83D\\uDC0E|\\uD83D\\uDC11|\\uD83D\\uDC12|\\uD83D\\uDC14|\\uD83D\\uDC17|\\uD83D\\uDC18|\\uD83D\\uDC19|\\uD83D\\uDC1A|\\uD83D\\uDC1B|\\uD83D\\uDC1C|\\uD83D\\uDC1D|\\uD83D\\uDC1E|\\uD83D\\uDC1F|\\uD83D\\uDC20|\\uD83D\\uDC21|\\uD83D\\uDC22|\\uD83D\\uDC23|\\uD83D\\uDC24|\\uD83D\\uDC25|\\uD83D\\uDC26|\\uD83D\\uDC27|\\uD83D\\uDC28|\\uD83D\\uDC29|\\uD83D\\uDC2B|\\uD83D\\uDC2C|\\uD83D\\uDC2D|\\uD83D\\uDC2E|\\uD83D\\uDC2F|\\uD83D\\uDC30|\\uD83D\\uDC31|\\uD83D\\uDC32|\\uD83D\\uDC33|\\uD83D\\uDC34|\\uD83D\\uDC35|\\uD83D\\uDC36|\\uD83D\\uDC37|\\uD83D\\uDC38|\\uD83D\\uDC39|\\uD83D\\uDC3A|\\uD83D\\uDC3B|\\uD83D\\uDC3C|\\uD83D\\uDC3D|\\uD83D\\uDC3E|\\uD83D\\uDC40|\\uD83D\\uDC42|\\uD83D\\uDC43|\\uD83D\\uDC44|\\uD83D\\uDC45|\\uD83D\\uDC46|\\uD83D\\uDC47|\\uD83D\\uDC48|\\uD83D\\uDC49|\\uD83D\\uDC4A|\\uD83D\\uDC4B|\\uD83D\\uDC4C|\\uD83D\\uDC4D|\\uD83D\\uDC4E|\\uD83D\\uDC4F|\\uD83D\\uDC50|\\uD83D\\uDC51|\\uD83D\\uDC52|\\uD83D\\uDC53|\\uD83D\\uDC54|\\uD83D\\uDC55|\\uD83D\\uDC56|\\uD83D\\uDC57|\\uD83D\\uDC58|\\uD83D\\uDC59|\\uD83D\\uDC5A|\\uD83D\\uDC5B|\\uD83D\\uDC5C|\\uD83D\\uDC5D|\\uD83D\\uDC5E|\\uD83D\\uDC5F|\\uD83D\\uDC60|\\uD83D\\uDC61|\\uD83D\\uDC62|\\uD83D\\uDC63|\\uD83D\\uDC64|\\uD83D\\uDC66|\\uD83D\\uDC67|\\uD83D\\uDC68|\\uD83D\\uDC69|\\uD83D\\uDC6A|\\uD83D\\uDC6B|\\uD83D\\uDC6E|\\uD83D\\uDC6F|\\uD83D\\uDC70|\\uD83D\\uDC71|\\uD83D\\uDC72|\\uD83D\\uDC73|\\uD83D\\uDC74|\\uD83D\\uDC75|\\uD83D\\uDC76|\\uD83D\\uDC77|\\uD83D\\uDC78|\\uD83D\\uDC79|\\uD83D\\uDC7A|\\uD83D\\uDC7B|\\uD83D\\uDC7C|\\uD83D\\uDC7D|\\uD83D\\uDC7E|\\uD83D\\uDC7F|\\uD83D\\uDC80|\\uD83D\\uDCC7|\\uD83D\\uDC81|\\uD83D\\uDC82|\\uD83D\\uDC83|\\uD83D\\uDC84|\\uD83D\\uDC85|\\uD83D\\uDCD2|\\uD83D\\uDC86|\\uD83D\\uDCD3|\\uD83D\\uDC87|\\uD83D\\uDCD4|\\uD83D\\uDC88|\\uD83D\\uDCD5|\\uD83D\\uDC89|\\uD83D\\uDCD6|\\uD83D\\uDC8A|\\uD83D\\uDCD7|\\uD83D\\uDC8B|\\uD83D\\uDCD8|\\uD83D\\uDC8C|\\uD83D\\uDCD9|\\uD83D\\uDC8D|\\uD83D\\uDCDA|\\uD83D\\uDC8E|\\uD83D\\uDCDB|\\uD83D\\uDC8F|\\uD83D\\uDCDC|\\uD83D\\uDC90|\\uD83D\\uDCDD|\\uD83D\\uDC91|\\uD83D\\uDCDE|\\uD83D\\uDC92|\\uD83D\\uDCDF|\\uD83D\\uDCE0|\\uD83D\\uDC93|\\uD83D\\uDCE1|\\uD83D\\uDCE2|\\uD83D\\uDC94|\\uD83D\\uDCE3|\\uD83D\\uDCE4|\\uD83D\\uDC95|\\uD83D\\uDCE5|\\uD83D\\uDCE6|\\uD83D\\uDC96|\\uD83D\\uDCE7|\\uD83D\\uDCE8|\\uD83D\\uDC97|\\uD83D\\uDCE9|\\uD83D\\uDCEA|\\uD83D\\uDC98|\\uD83D\\uDCEB|\\uD83D\\uDCEE|\\uD83D\\uDC99|\\uD83D\\uDCF0|\\uD83D\\uDCF1|\\uD83D\\uDC9A|\\uD83D\\uDCF2|\\uD83D\\uDCF3|\\uD83D\\uDC9B|\\uD83D\\uDCF4|\\uD83D\\uDCF6|\\uD83D\\uDC9C|\\uD83D\\uDCF7|\\uD83D\\uDCF9|\\uD83D\\uDC9D|\\uD83D\\uDCFA|\\uD83D\\uDCFB|\\uD83D\\uDC9E|\\uD83D\\uDCFC|\\uD83D\\uDD03|\\uD83D\\uDC9F|\\uD83D\\uDD0A|\\uD83D\\uDD0B|\\uD83D\\uDCA0|\\uD83D\\uDD0C|\\uD83D\\uDD0D|\\uD83D\\uDCA1|\\uD83D\\uDD0E|\\uD83D\\uDD0F|\\uD83D\\uDCA2|\\uD83D\\uDD10|\\uD83D\\uDD11|\\uD83D\\uDCA3|\\uD83D\\uDD12|\\uD83D\\uDD13|\\uD83D\\uDCA4|\\uD83D\\uDD14|\\uD83D\\uDD16|\\uD83D\\uDCA5|\\uD83D\\uDD17|\\uD83D\\uDD18|\\uD83D\\uDCA6|\\uD83D\\uDD19|\\uD83D\\uDD1A|\\uD83D\\uDCA7|\\uD83D\\uDD1B|\\uD83D\\uDD1C|\\uD83D\\uDCA8|\\uD83D\\uDD1D|\\uD83D\\uDD1E|\\uD83D\\uDCA9|\\uD83D\\uDD1F|\\uD83D\\uDCAA|\\uD83D\\uDD20|\\uD83D\\uDD21|\\uD83D\\uDCAB|\\uD83D\\uDD22|\\uD83D\\uDD23|\\uD83D\\uDCAC|\\uD83D\\uDD24|\\uD83D\\uDD25|\\uD83D\\uDCAE|\\uD83D\\uDD26|\\uD83D\\uDD27|\\uD83D\\uDCAF|\\uD83D\\uDD28|\\uD83D\\uDD29|\\uD83D\\uDCB0|\\uD83D\\uDD2A|\\uD83D\\uDD2B|\\uD83D\\uDCB1|\\uD83D\\uDD2E|\\uD83D\\uDCB2|\\uD83D\\uDD2F|\\uD83D\\uDCB3|\\uD83D\\uDD30|\\uD83D\\uDD31|\\uD83D\\uDCB4|\\uD83D\\uDD32|\\uD83D\\uDD33|\\uD83D\\uDCB5|\\uD83D\\uDD34|\\uD83D\\uDD35|\\uD83D\\uDCB8|\\uD83D\\uDD36|\\uD83D\\uDD37|\\uD83D\\uDCB9|\\uD83D\\uDD38|\\uD83D\\uDD39|\\uD83D\\uDCBA|\\uD83D\\uDD3A|\\uD83D\\uDD3B|\\uD83D\\uDCBB|\\uD83D\\uDD3C|\\uD83D\\uDCBC|\\uD83D\\uDD3D|\\uD83D\\uDD50|\\uD83D\\uDCBD|\\uD83D\\uDD51|\\uD83D\\uDCBE|\\uD83D\\uDD52|\\uD83D\\uDCBF|\\uD83D\\uDD53|\\uD83D\\uDCC0|\\uD83D\\uDD54|\\uD83D\\uDD55|\\uD83D\\uDCC1|\\uD83D\\uDD56|\\uD83D\\uDD57|\\uD83D\\uDCC2|\\uD83D\\uDD58|\\uD83D\\uDD59|\\uD83D\\uDCC3|\\uD83D\\uDD5A|\\uD83D\\uDD5B|\\uD83D\\uDCC4|\\uD83D\\uDDFB|\\uD83D\\uDDFC|\\uD83D\\uDCC5|\\uD83D\\uDDFD|\\uD83D\\uDDFE|\\uD83D\\uDCC6|\\uD83D\\uDDFF|\\uD83D\\uDE01|\\uD83D\\uDE02|\\uD83D\\uDE03|\\uD83D\\uDCC8|\\uD83D\\uDE04|\\uD83D\\uDE05|\\uD83D\\uDCC9|\\uD83D\\uDE06|\\uD83D\\uDE09|\\uD83D\\uDCCA|\\uD83D\\uDE0A|\\uD83D\\uDE0B|\\uD83D\\uDCCB|\\uD83D\\uDE0C|\\uD83D\\uDE0D|\\uD83D\\uDCCC|\\uD83D\\uDE0F|\\uD83D\\uDE12|\\uD83D\\uDCCD|\\uD83D\\uDE13|\\uD83D\\uDE14|\\uD83D\\uDCCE|\\uD83D\\uDE16|\\uD83D\\uDE18|\\uD83D\\uDCCF|\\uD83D\\uDE1A|\\uD83D\\uDE1C|\\uD83D\\uDCD0|\\uD83D\\uDE1D|\\uD83D\\uDE1E|\\uD83D\\uDCD1|\\uD83D\\uDE20|\\uD83D\\uDE21|\\uD83D\\uDE22|\\uD83D\\uDE23|\\uD83D\\uDE24|\\uD83D\\uDE25|\\uD83D\\uDE28|\\uD83D\\uDE29|\\uD83D\\uDE2A|\\uD83D\\uDE2B|\\uD83D\\uDE2D|\\uD83D\\uDE30|\\uD83D\\uDE31|\\uD83D\\uDE32|\\uD83D\\uDE33|\\uD83D\\uDE35|\\uD83D\\uDE37|\\uD83D\\uDE38|\\uD83D\\uDE39|\\uD83D\\uDE3A|\\uD83D\\uDE3B|\\uD83D\\uDE3C|\\uD83D\\uDE3D|\\uD83D\\uDE3E|\\uD83D\\uDE3F|\\uD83D\\uDE40|\\uD83D\\uDE45|\\uD83D\\uDE46|\\uD83D\\uDE47|\\uD83D\\uDE48|\\uD83D\\uDE49|\\uD83D\\uDE4A|\\uD83D\\uDE4B|\\uD83D\\uDE4C|\\uD83D\\uDE4D|\\uD83D\\uDE4E|\\uD83D\\uDE4F|\\uD83D\\uDE80|\\uD83D\\uDE83|\\uD83D\\uDE84|\\uD83D\\uDE85|\\uD83D\\uDE87|\\uD83D\\uDE89|\\uD83D\\uDE8C|\\uD83D\\uDE8F|\\uD83D\\uDE91|\\uD83D\\uDE92|\\uD83D\\uDE93|\\uD83D\\uDE95|\\uD83D\\uDE97|\\uD83D\\uDE99|\\uD83D\\uDE9A|\\uD83D\\uDEA2|\\uD83D\\uDEA4|\\uD83D\\uDEA5|\\uD83D\\uDEA7|\\uD83D\\uDEA8|\\uD83D\\uDEA9|\\uD83D\\uDEAA|\\uD83D\\uDEAB|\\uD83D\\uDEAC|\\uD83D\\uDEAD|\\uD83D\\uDEB2|\\uD83D\\uDEB6|\\uD83D\\uDEB9|\\uD83D\\uDEBA|\\uD83D\\uDEBB|\\uD83D\\uDEBC|\\uD83D\\uDEBD|\\uD83D\\uDEBE|\\uD83D\\uDEC0|\\uD83D\\uDE00|\\uD83D\\uDE07|\\uD83D\\uDE08|\\uD83D\\uDE0E|\\uD83D\\uDE10|\\uD83D\\uDE11|\\uD83D\\uDE15|\\uD83D\\uDE17|\\uD83D\\uDE19|\\uD83D\\uDE1B|\\uD83D\\uDE1F|\\uD83D\\uDE26|\\uD83D\\uDE27|\\uD83D\\uDE2C|\\uD83D\\uDE2E|\\uD83D\\uDE2F|\\uD83D\\uDE34|\\uD83D\\uDE36|\\uD83D\\uDE81|\\uD83D\\uDE82|\\uD83D\\uDE86|\\uD83D\\uDE88|\\uD83D\\uDE8A|\\uD83D\\uDE8D|\\uD83D\\uDE8E|\\uD83D\\uDE90|\\uD83D\\uDE94|\\uD83D\\uDE96|\\uD83D\\uDE98|\\uD83D\\uDE9B|\\uD83D\\uDE9C|\\uD83D\\uDE9D|\\uD83D\\uDE9E|\\uD83D\\uDE9F|\\uD83D\\uDEA0|\\uD83D\\uDEA1|\\uD83D\\uDEA3|\\uD83D\\uDEA6|\\uD83D\\uDEAE|\\uD83D\\uDEAF|\\uD83D\\uDEB0|\\uD83D\\uDEB1|\\uD83D\\uDEB3|\\uD83D\\uDEB4|\\uD83D\\uDEB5|\\uD83D\\uDEB7|\\uD83D\\uDEB8|\\uD83D\\uDEBF|\\uD83D\\uDEC1|\\uD83D\\uDEC2|\\uD83D\\uDEC3|\\uD83D\\uDEC4|\\uD83D\\uDEC5|\\uD83C\\uDF0D|\\uD83C\\uDF0E|\\uD83C\\uDF10|\\uD83C\\uDF12|\\uD83C\\uDF16|\\uD83C\\uDF17|\\uD83C\\uDF18|\\uD83C\\uDF1A|\\uD83C\\uDF1C|\\uD83C\\uDF1D|\\uD83C\\uDF1E|\\uD83C\\uDF32|\\uD83C\\uDF33|\\uD83C\\uDF4B|\\uD83C\\uDF50|\\uD83C\\uDF7C|\\uD83C\\uDFC7|\\uD83C\\uDFC9|\\uD83C\\uDFE4|\\uD83D\\uDC00|\\uD83D\\uDC01|\\uD83D\\uDC02|\\uD83D\\uDC03|\\uD83D\\uDC04|\\uD83D\\uDC05|\\uD83D\\uDC06|\\uD83D\\uDC07|\\uD83D\\uDC08|\\uD83D\\uDC09|\\uD83D\\uDC0A|\\uD83D\\uDC0B|\\uD83D\\uDC0F|\\uD83D\\uDC10|\\uD83D\\uDC13|\\uD83D\\uDC15|\\uD83D\\uDC16|\\uD83D\\uDC2A|\\uD83D\\uDC65|\\uD83D\\uDC6C|\\uD83D\\uDC6D|\\uD83D\\uDCAD|\\uD83D\\uDCB6|\\uD83D\\uDCB7|\\uD83D\\uDCEC|\\uD83D\\uDCED|\\uD83D\\uDCEF|\\uD83D\\uDCF5|\\uD83D\\uDD00|\\uD83D\\uDD01|\\uD83D\\uDD02|\\uD83D\\uDD04|\\uD83D\\uDD05|\\uD83D\\uDD06|\\uD83D\\uDD07|\\uD83D\\uDD09|\\uD83D\\uDD15|\\uD83D\\uDD2C|\\uD83D\\uDD2D|\\uD83D\\uDD5C|\\uD83D\\uDD5D|\\uD83D\\uDD5E|\\uD83D\\uDD5F|\\uD83D\\uDD60|\\uD83D\\uDD61|\\uD83D\\uDD62|\\uD83D\\uDD63|\\uD83D\\uDD64|\\uD83D\\uDD65|\\uD83D\\uDD66|\\uD83D\\uDD67|\\uD83D\\uDD08|\\uD83D\\uDE8B|\\u27BF|\\uD83C\\uDDE6\\uD83C\\uDDEB|\\uD83C\\uDDE6\\uD83C\\uDDF1|\\uD83C\\uDDE9\\uD83C\\uDDFF|\\uD83C\\uDDE6\\uD83C\\uDDE9|\\uD83C\\uDDE6\\uD83C\\uDDF4|\\uD83C\\uDDE6\\uD83C\\uDDEC|\\uD83C\\uDDE6\\uD83C\\uDDF7|\\uD83C\\uDDE6\\uD83C\\uDDF2|\\uD83C\\uDDE6\\uD83C\\uDDFA|\\uD83C\\uDDE6\\uD83C\\uDDF9|\\uD83C\\uDDE6\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDF8|\\uD83C\\uDDE7\\uD83C\\uDDED|\\uD83C\\uDDE7\\uD83C\\uDDE9|\\uD83C\\uDDE7\\uD83C\\uDDE7|\\uD83C\\uDDE7\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDEA|\\uD83C\\uDDE7\\uD83C\\uDDFF|\\uD83C\\uDDE7\\uD83C\\uDDEF|\\uD83C\\uDDE7\\uD83C\\uDDF9|\\uD83C\\uDDE7\\uD83C\\uDDF4|\\uD83C\\uDDE7\\uD83C\\uDDE6|\\uD83C\\uDDE7\\uD83C\\uDDFC|\\uD83C\\uDDE7\\uD83C\\uDDF7|\\uD83C\\uDDE7\\uD83C\\uDDF3|\\uD83C\\uDDE7\\uD83C\\uDDEC|\\uD83C\\uDDE7\\uD83C\\uDDEB|\\uD83C\\uDDE7\\uD83C\\uDDEE|\\uD83C\\uDDF0\\uD83C\\uDDED|\\uD83C\\uDDE8\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDE6|\\uD83C\\uDDE8\\uD83C\\uDDFB|\\uD83C\\uDDE8\\uD83C\\uDDEB|\\uD83C\\uDDF9\\uD83C\\uDDE9|\\uD83C\\uDDE8\\uD83C\\uDDF1|\\uD83C\\uDDE8\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDF2|\\uD83C\\uDDE8\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF7|\\uD83C\\uDDE8\\uD83C\\uDDFA|\\uD83C\\uDDE8\\uD83C\\uDDFE|\\uD83C\\uDDE8\\uD83C\\uDDFF|\\uD83C\\uDDE8\\uD83C\\uDDE9|\\uD83C\\uDDE9\\uD83C\\uDDF0|\\uD83C\\uDDE9\\uD83C\\uDDEF|\\uD83C\\uDDE9\\uD83C\\uDDF2|\\uD83C\\uDDE9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF1|\\uD83C\\uDDEA\\uD83C\\uDDE8|\\uD83C\\uDDEA\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDFB|\\uD83C\\uDDEC\\uD83C\\uDDF6|\\uD83C\\uDDEA\\uD83C\\uDDF7|\\uD83C\\uDDEA\\uD83C\\uDDEA|\\uD83C\\uDDEA\\uD83C\\uDDF9|\\uD83C\\uDDEB\\uD83C\\uDDEF|\\uD83C\\uDDEB\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDE6|\\uD83C\\uDDEC\\uD83C\\uDDF2|\\uD83C\\uDDEC\\uD83C\\uDDEA|\\uD83C\\uDDEC\\uD83C\\uDDED|\\uD83C\\uDDEC\\uD83C\\uDDF7|\\uD83C\\uDDEC\\uD83C\\uDDE9|\\uD83C\\uDDEC\\uD83C\\uDDF9|\\uD83C\\uDDEC\\uD83C\\uDDF3|\\uD83C\\uDDEC\\uD83C\\uDDFC|\\uD83C\\uDDEC\\uD83C\\uDDFE|\\uD83C\\uDDED\\uD83C\\uDDF9|\\uD83C\\uDDED\\uD83C\\uDDF3|\\uD83C\\uDDED\\uD83C\\uDDFA|\\uD83C\\uDDEE\\uD83C\\uDDF8|\\uD83C\\uDDEE\\uD83C\\uDDF3|\\uD83C\\uDDEE\\uD83C\\uDDE9|\\uD83C\\uDDEE\\uD83C\\uDDF7|\\uD83C\\uDDEE\\uD83C\\uDDF6|\\uD83C\\uDDEE\\uD83C\\uDDEA|\\uD83C\\uDDEE\\uD83C\\uDDF1|\\uD83C\\uDDEF\\uD83C\\uDDF2|\\uD83C\\uDDEF\\uD83C\\uDDF4|\\uD83C\\uDDF0\\uD83C\\uDDFF|\\uD83C\\uDDF0\\uD83C\\uDDEA|\\uD83C\\uDDF0\\uD83C\\uDDEE|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF0\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDEC|\\uD83C\\uDDF1\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDFB|\\uD83C\\uDDF1\\uD83C\\uDDE7|\\uD83C\\uDDF1\\uD83C\\uDDF8|\\uD83C\\uDDF1\\uD83C\\uDDF7|\\uD83C\\uDDF1\\uD83C\\uDDFE|\\uD83C\\uDDF1\\uD83C\\uDDEE|\\uD83C\\uDDF1\\uD83C\\uDDF9|\\uD83C\\uDDF1\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDF0|\\uD83C\\uDDF2\\uD83C\\uDDEC|\\uD83C\\uDDF2\\uD83C\\uDDFC|\\uD83C\\uDDF2\\uD83C\\uDDFE|\\uD83C\\uDDF2\\uD83C\\uDDFB|\\uD83C\\uDDF2\\uD83C\\uDDF1|\\uD83C\\uDDF2\\uD83C\\uDDF9|\\uD83C\\uDDF2\\uD83C\\uDDED|\\uD83C\\uDDF2\\uD83C\\uDDF7|\\uD83C\\uDDF2\\uD83C\\uDDFA|\\uD83C\\uDDF2\\uD83C\\uDDFD|\\uD83C\\uDDEB\\uD83C\\uDDF2|\\uD83C\\uDDF2\\uD83C\\uDDE9|\\uD83C\\uDDF2\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF3|\\uD83C\\uDDF2\\uD83C\\uDDEA|\\uD83C\\uDDF2\\uD83C\\uDDE6|\\uD83C\\uDDF2\\uD83C\\uDDFF|\\uD83C\\uDDF2\\uD83C\\uDDF2|\\uD83C\\uDDF3\\uD83C\\uDDE6|\\uD83C\\uDDF3\\uD83C\\uDDF7|\\uD83C\\uDDF3\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFF|\\uD83C\\uDDF3\\uD83C\\uDDEE|\\uD83C\\uDDF3\\uD83C\\uDDEA|\\uD83C\\uDDF3\\uD83C\\uDDEC|\\uD83C\\uDDF0\\uD83C\\uDDF5|\\uD83C\\uDDF3\\uD83C\\uDDF4|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDF0|\\uD83C\\uDDF5\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDE6|\\uD83C\\uDDF5\\uD83C\\uDDEC|\\uD83C\\uDDF5\\uD83C\\uDDFE|\\uD83C\\uDDF5\\uD83C\\uDDEA|\\uD83C\\uDDF5\\uD83C\\uDDED|\\uD83C\\uDDF5\\uD83C\\uDDF1|\\uD83C\\uDDF5\\uD83C\\uDDF9|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF9\\uD83C\\uDDFC|\\uD83C\\uDDE8\\uD83C\\uDDEC|\\uD83C\\uDDF7\\uD83C\\uDDF4|\\uD83C\\uDDF7\\uD83C\\uDDFC|\\uD83C\\uDDF0\\uD83C\\uDDF3|\\uD83C\\uDDF1\\uD83C\\uDDE8|\\uD83C\\uDDFB\\uD83C\\uDDE8|\\uD83C\\uDDFC\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDF2|\\uD83C\\uDDF8\\uD83C\\uDDF9|\\uD83C\\uDDF8\\uD83C\\uDDE6|\\uD83C\\uDDF8\\uD83C\\uDDF3|\\uD83C\\uDDF7\\uD83C\\uDDF8|\\uD83C\\uDDF8\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDF1|\\uD83C\\uDDF8\\uD83C\\uDDEC|\\uD83C\\uDDF8\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDEE|\\uD83C\\uDDF8\\uD83C\\uDDE7|\\uD83C\\uDDF8\\uD83C\\uDDF4|\\uD83C\\uDDFF\\uD83C\\uDDE6|\\uD83C\\uDDF1\\uD83C\\uDDF0|\\uD83C\\uDDF8\\uD83C\\uDDE9|\\uD83C\\uDDF8\\uD83C\\uDDF7|\\uD83C\\uDDF8\\uD83C\\uDDFF|\\uD83C\\uDDF8\\uD83C\\uDDEA|\\uD83C\\uDDE8\\uD83C\\uDDED|\\uD83C\\uDDF8\\uD83C\\uDDFE|\\uD83C\\uDDF9\\uD83C\\uDDEF|\\uD83C\\uDDF9\\uD83C\\uDDFF|\\uD83C\\uDDF9\\uD83C\\uDDED|\\uD83C\\uDDF9\\uD83C\\uDDEC|\\uD83C\\uDDF9\\uD83C\\uDDF4|\\uD83C\\uDDF9\\uD83C\\uDDF9|\\uD83C\\uDDF9\\uD83C\\uDDF3|\\uD83C\\uDDF9\\uD83C\\uDDF7|\\uD83C\\uDDF9\\uD83C\\uDDF2|\\uD83C\\uDDF9\\uD83C\\uDDFB|\\uD83C\\uDDFA\\uD83C\\uDDEC|\\uD83C\\uDDFA\\uD83C\\uDDE6|\\uD83C\\uDDE6\\uD83C\\uDDEA|\\uD83C\\uDDFA\\uD83C\\uDDFE|\\uD83C\\uDDFA\\uD83C\\uDDFF|\\uD83C\\uDDFB\\uD83C\\uDDFA|\\uD83C\\uDDFB\\uD83C\\uDDE6|\\uD83C\\uDDFB\\uD83C\\uDDEA|\\uD83C\\uDDFB\\uD83C\\uDDF3|\\uD83C\\uDDEA\\uD83C\\uDDED|\\uD83C\\uDDFE\\uD83C\\uDDEA|\\uD83C\\uDDFF\\uD83C\\uDDF2|\\uD83C\\uDDFF\\uD83C\\uDDFC|\\uD83C\\uDDF5\\uD83C\\uDDF7|\\uD83C\\uDDF0\\uD83C\\uDDFE|\\uD83C\\uDDE7\\uD83C\\uDDF2|\\uD83C\\uDDF5\\uD83C\\uDDEB|\\uD83C\\uDDF5\\uD83C\\uDDF8|\\uD83C\\uDDF3\\uD83C\\uDDE8|\\uD83C\\uDDF8\\uD83C\\uDDED|\\uD83C\\uDDE6\\uD83C\\uDDFC|\\uD83C\\uDDFB\\uD83C\\uDDEE|\\uD83C\\uDDED\\uD83C\\uDDF0|\\uD83C\\uDDE6\\uD83C\\uDDE8|\\uD83C\\uDDF2\\uD83C\\uDDF8|\\uD83C\\uDDEC\\uD83C\\uDDFA|\\uD83C\\uDDEC\\uD83C\\uDDF1|\\uD83C\\uDDF3\\uD83C\\uDDFA|\\uD83C\\uDDFC\\uD83C\\uDDEB|\\uD83C\\uDDF2\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF4|\\uD83C\\uDDEB\\uD83C\\uDDF0|\\uD83C\\uDDEF\\uD83C\\uDDEA|\\uD83C\\uDDE6\\uD83C\\uDDEE|\\uD83C\\uDDEC\\uD83C\\uDDEE)",
+a.jsecapeMap={"#️⃣":"0023-20E3","#⃣":"0023-20E3","0️⃣":"0030-20E3","0⃣":"0030-20E3","1️⃣":"0031-20E3","1⃣":"0031-20E3","2️⃣":"0032-20E3","2⃣":"0032-20E3","3️⃣":"0033-20E3","3⃣":"0033-20E3","4️⃣":"0034-20E3","4⃣":"0034-20E3","5️⃣":"0035-20E3","5⃣":"0035-20E3","6️⃣":"0036-20E3","6⃣":"0036-20E3","7️⃣":"0037-20E3","7⃣":"0037-20E3","8️⃣":"0038-20E3","8⃣":"0038-20E3","9️⃣":"0039-20E3","9⃣":"0039-20E3","©":"00A9","®":"00AE","‼️":"203C","‼":"203C","⁉️":"2049","⁉":"2049","™":"2122","ℹ️":"2139","ℹ":"2139","↔️":"2194","↔":"2194","↕️":"2195","↕":"2195","↖️":"2196","↖":"2196","↗️":"2197","↗":"2197","↘️":"2198","↘":"2198","↙️":"2199","↙":"2199","↩️":"21A9","↩":"21A9","↪️":"21AA","↪":"21AA","⌚️":"231A","⌚":"231A","⌛️":"231B","⌛":"231B","⏩":"23E9","⏪":"23EA","⏫":"23EB","⏬":"23EC","⏰":"23F0","⏳":"23F3","Ⓜ️":"24C2","Ⓜ":"24C2","▪️":"25AA","▪":"25AA","▫️":"25AB","▫":"25AB","▶️":"25B6","▶":"25B6","◀️":"25C0","◀":"25C0","◻️":"25FB","◻":"25FB","◼️":"25FC","◼":"25FC","◽️":"25FD","◽":"25FD","◾️":"25FE","◾":"25FE","☀️":"2600","☀":"2600","☁️":"2601","☁":"2601","☎️":"260E","☎":"260E","☑️":"2611","☑":"2611","☔️":"2614","☔":"2614","☕️":"2615","☕":"2615","☝️":"261D","☝":"261D","☺️":"263A","☺":"263A","♈️":"2648","♈":"2648","♉️":"2649","♉":"2649","♊️":"264A","♊":"264A","♋️":"264B","♋":"264B","♌️":"264C","♌":"264C","♍️":"264D","♍":"264D","♎️":"264E","♎":"264E","♏️":"264F","♏":"264F","♐️":"2650","♐":"2650","♑️":"2651","♑":"2651","♒️":"2652","♒":"2652","♓️":"2653","♓":"2653","♠️":"2660","♠":"2660","♣️":"2663","♣":"2663","♥️":"2665","♥":"2665","♦️":"2666","♦":"2666","♨️":"2668","♨":"2668","♻️":"267B","♻":"267B","♿️":"267F","♿":"267F","⚓️":"2693","⚓":"2693","⚠️":"26A0","⚠":"26A0","⚡️":"26A1","⚡":"26A1","⚪️":"26AA","⚪":"26AA","⚫️":"26AB","⚫":"26AB","⚽️":"26BD","⚽":"26BD","⚾️":"26BE","⚾":"26BE","⛄️":"26C4","⛄":"26C4","⛅️":"26C5","⛅":"26C5","⛎":"26CE","⛔️":"26D4","⛔":"26D4","⛪️":"26EA","⛪":"26EA","⛲️":"26F2","⛲":"26F2","⛳️":"26F3","⛳":"26F3","⛵️":"26F5","⛵":"26F5","⛺️":"26FA","⛺":"26FA","⛽️":"26FD","⛽":"26FD","✂️":"2702","✂":"2702","✅":"2705","✈️":"2708","✈":"2708","✉️":"2709","✉":"2709","✊":"270A","✋":"270B","✌️":"270C","✌":"270C","✏️":"270F","✏":"270F","✒️":"2712","✒":"2712","✔️":"2714","✔":"2714","✖️":"2716","✖":"2716","✨":"2728","✳️":"2733","✳":"2733","✴️":"2734","✴":"2734","❄️":"2744","❄":"2744","❇️":"2747","❇":"2747","❌":"274C","❎":"274E","❓":"2753","❔":"2754","❕":"2755","❗️":"2757","❗":"2757","❤️":"2764","❤":"2764","➕":"2795","➖":"2796","➗":"2797","➡️":"27A1","➡":"27A1","➰":"27B0","⤴️":"2934","⤴":"2934","⤵️":"2935","⤵":"2935","⬅️":"2B05","⬅":"2B05","⬆️":"2B06","⬆":"2B06","⬇️":"2B07","⬇":"2B07","⬛️":"2B1B","⬛":"2B1B","⬜️":"2B1C","⬜":"2B1C","⭐️":"2B50","⭐":"2B50","⭕️":"2B55","⭕":"2B55","〰":"3030","〽️":"303D","〽":"303D","㊗️":"3297","㊗":"3297","㊙️":"3299","㊙":"3299","🀄️":"1F004","🀄":"1F004","🃏":"1F0CF","🅰":"1F170","🅱":"1F171","🅾":"1F17E","🅿️":"1F17F","🅿":"1F17F","🆎":"1F18E","🆑":"1F191","🆒":"1F192","🆓":"1F193","🆔":"1F194","🆕":"1F195","🆖":"1F196","🆗":"1F197","🆘":"1F198","🆙":"1F199","🆚":"1F19A","🇨🇳":"1F1E8-1F1F3","🇩🇪":"1F1E9-1F1EA","🇪🇸":"1F1EA-1F1F8","🇫🇷":"1F1EB-1F1F7","🇬🇧":"1F1EC-1F1E7","🇮🇹":"1F1EE-1F1F9","🇯🇵":"1F1EF-1F1F5","🇰🇷":"1F1F0-1F1F7","🇺🇸":"1F1FA-1F1F8","🇷🇺":"1F1F7-1F1FA","🈁":"1F201","🈂":"1F202","🈚️":"1F21A","🈚":"1F21A","🈯️":"1F22F","🈯":"1F22F","🈲":"1F232","🈳":"1F233","🈴":"1F234","🈵":"1F235","🈶":"1F236","🈷":"1F237","🈸":"1F238","🈹":"1F239","🈺":"1F23A","🉐":"1F250","🉑":"1F251","🌀":"1F300","🌁":"1F301","🌂":"1F302","🌃":"1F303","🌄":"1F304","🌅":"1F305","🌆":"1F306","🌇":"1F307","🌈":"1F308","🌉":"1F309","🌊":"1F30A","🌋":"1F30B","🌌":"1F30C","🌏":"1F30F","🌑":"1F311","🌓":"1F313","🌔":"1F314","🌕":"1F315","🌙":"1F319","🌛":"1F31B","🌟":"1F31F","🌠":"1F320","🌰":"1F330","🌱":"1F331","🌴":"1F334","🌵":"1F335","🌷":"1F337","🌸":"1F338","🌹":"1F339","🌺":"1F33A","🌻":"1F33B","🌼":"1F33C","🌽":"1F33D","🌾":"1F33E","🌿":"1F33F","🍀":"1F340","🍁":"1F341","🍂":"1F342","🍃":"1F343","🍄":"1F344","🍅":"1F345","🍆":"1F346","🍇":"1F347","🍈":"1F348","🍉":"1F349","🍊":"1F34A","🍌":"1F34C","🍍":"1F34D","🍎":"1F34E","🍏":"1F34F","🍑":"1F351","🍒":"1F352","🍓":"1F353","🍔":"1F354","🍕":"1F355","🍖":"1F356","🍗":"1F357","🍘":"1F358","🍙":"1F359","🍚":"1F35A","🍛":"1F35B","🍜":"1F35C","🍝":"1F35D","🍞":"1F35E","🍟":"1F35F","🍠":"1F360","🍡":"1F361","🍢":"1F362","🍣":"1F363","🍤":"1F364","🍥":"1F365","🍦":"1F366","🍧":"1F367","🍨":"1F368","🍩":"1F369","🍪":"1F36A","🍫":"1F36B","🍬":"1F36C","🍭":"1F36D","🍮":"1F36E","🍯":"1F36F","🍰":"1F370","🍱":"1F371","🍲":"1F372","🍳":"1F373","🍴":"1F374","🍵":"1F375","🍶":"1F376","🍷":"1F377","🍸":"1F378","🍹":"1F379","🍺":"1F37A","🍻":"1F37B","🎀":"1F380","🎁":"1F381","🎂":"1F382","🎃":"1F383","🎄":"1F384","🎅":"1F385","🎆":"1F386","🎇":"1F387","🎈":"1F388","🎉":"1F389","🎊":"1F38A","🎋":"1F38B","🎌":"1F38C","🎍":"1F38D","🎎":"1F38E","🎏":"1F38F","🎐":"1F390","🎑":"1F391","🎒":"1F392","🎓":"1F393","🎠":"1F3A0","🎡":"1F3A1","🎢":"1F3A2","🎣":"1F3A3","🎤":"1F3A4","🎥":"1F3A5","🎦":"1F3A6","🎧":"1F3A7","🎨":"1F3A8","🎩":"1F3A9","🎪":"1F3AA","🎫":"1F3AB","🎬":"1F3AC","🎭":"1F3AD","🎮":"1F3AE","🎯":"1F3AF","🎰":"1F3B0","🎱":"1F3B1","🎲":"1F3B2","🎳":"1F3B3","🎴":"1F3B4","🎵":"1F3B5","🎶":"1F3B6","🎷":"1F3B7","🎸":"1F3B8","🎹":"1F3B9","🎺":"1F3BA","🎻":"1F3BB","🎼":"1F3BC","🎽":"1F3BD","🎾":"1F3BE","🎿":"1F3BF","🏀":"1F3C0","🏁":"1F3C1","🏂":"1F3C2","🏃":"1F3C3","🏄":"1F3C4","🏆":"1F3C6","🏈":"1F3C8","🏊":"1F3CA","🏠":"1F3E0","🏡":"1F3E1","🏢":"1F3E2","🏣":"1F3E3","🏥":"1F3E5","🏦":"1F3E6","🏧":"1F3E7","🏨":"1F3E8","🏩":"1F3E9","🏪":"1F3EA","🏫":"1F3EB","🏬":"1F3EC","🏭":"1F3ED","🏮":"1F3EE","🏯":"1F3EF","🏰":"1F3F0","🐌":"1F40C","🐍":"1F40D","🐎":"1F40E","🐑":"1F411","🐒":"1F412","🐔":"1F414","🐗":"1F417","🐘":"1F418","🐙":"1F419","🐚":"1F41A","🐛":"1F41B","🐜":"1F41C","🐝":"1F41D","🐞":"1F41E","🐟":"1F41F","🐠":"1F420","🐡":"1F421","🐢":"1F422","🐣":"1F423","🐤":"1F424","🐥":"1F425","🐦":"1F426","🐧":"1F427","🐨":"1F428","🐩":"1F429","🐫":"1F42B","🐬":"1F42C","🐭":"1F42D","🐮":"1F42E","🐯":"1F42F","🐰":"1F430","🐱":"1F431","🐲":"1F432","🐳":"1F433","🐴":"1F434","🐵":"1F435","🐶":"1F436","🐷":"1F437","🐸":"1F438","🐹":"1F439","🐺":"1F43A","🐻":"1F43B","🐼":"1F43C","🐽":"1F43D","🐾":"1F43E","👀":"1F440","👂":"1F442","👃":"1F443","👄":"1F444","👅":"1F445","👆":"1F446","👇":"1F447","👈":"1F448","👉":"1F449","👊":"1F44A","👋":"1F44B","👌":"1F44C","👍":"1F44D","👎":"1F44E","👏":"1F44F","👐":"1F450","👑":"1F451","👒":"1F452","👓":"1F453","👔":"1F454","👕":"1F455","👖":"1F456","👗":"1F457","👘":"1F458","👙":"1F459","👚":"1F45A","👛":"1F45B","👜":"1F45C","👝":"1F45D","👞":"1F45E","👟":"1F45F","👠":"1F460","👡":"1F461","👢":"1F462","👣":"1F463","👤":"1F464","👦":"1F466","👧":"1F467","👨":"1F468","👩":"1F469","👪":"1F46A","👫":"1F46B","👮":"1F46E","👯":"1F46F","👰":"1F470","👱":"1F471","👲":"1F472","👳":"1F473","👴":"1F474","👵":"1F475","👶":"1F476","👷":"1F477","👸":"1F478","👹":"1F479","👺":"1F47A","👻":"1F47B","👼":"1F47C","👽":"1F47D","👾":"1F47E","👿":"1F47F","💀":"1F480","📇":"1F4C7","💁":"1F481","💂":"1F482","💃":"1F483","💄":"1F484","💅":"1F485","📒":"1F4D2","💆":"1F486","📓":"1F4D3","💇":"1F487","📔":"1F4D4","💈":"1F488","📕":"1F4D5","💉":"1F489","📖":"1F4D6","💊":"1F48A","📗":"1F4D7","💋":"1F48B","📘":"1F4D8","💌":"1F48C","📙":"1F4D9","💍":"1F48D","📚":"1F4DA","💎":"1F48E","📛":"1F4DB","💏":"1F48F","📜":"1F4DC","💐":"1F490","📝":"1F4DD","💑":"1F491","📞":"1F4DE","💒":"1F492","📟":"1F4DF","📠":"1F4E0","💓":"1F493","📡":"1F4E1","📢":"1F4E2","💔":"1F494","📣":"1F4E3","📤":"1F4E4","💕":"1F495","📥":"1F4E5","📦":"1F4E6","💖":"1F496","📧":"1F4E7","📨":"1F4E8","💗":"1F497","📩":"1F4E9","📪":"1F4EA","💘":"1F498","📫":"1F4EB","📮":"1F4EE","💙":"1F499","📰":"1F4F0","📱":"1F4F1","💚":"1F49A","📲":"1F4F2","📳":"1F4F3","💛":"1F49B","📴":"1F4F4","📶":"1F4F6","💜":"1F49C","📷":"1F4F7","📹":"1F4F9","💝":"1F49D","📺":"1F4FA","📻":"1F4FB","💞":"1F49E","📼":"1F4FC","🔃":"1F503","💟":"1F49F","🔊":"1F50A","🔋":"1F50B","💠":"1F4A0","🔌":"1F50C","🔍":"1F50D","💡":"1F4A1","🔎":"1F50E","🔏":"1F50F","💢":"1F4A2","🔐":"1F510","🔑":"1F511","💣":"1F4A3","🔒":"1F512","🔓":"1F513","💤":"1F4A4","🔔":"1F514","🔖":"1F516","💥":"1F4A5","🔗":"1F517","🔘":"1F518","💦":"1F4A6","🔙":"1F519","🔚":"1F51A","💧":"1F4A7","🔛":"1F51B","🔜":"1F51C","💨":"1F4A8","🔝":"1F51D","🔞":"1F51E","💩":"1F4A9","🔟":"1F51F","💪":"1F4AA","🔠":"1F520","🔡":"1F521","💫":"1F4AB","🔢":"1F522","🔣":"1F523","💬":"1F4AC","🔤":"1F524","🔥":"1F525","💮":"1F4AE","🔦":"1F526","🔧":"1F527","💯":"1F4AF","🔨":"1F528","🔩":"1F529","💰":"1F4B0","🔪":"1F52A","🔫":"1F52B","💱":"1F4B1","🔮":"1F52E","💲":"1F4B2","🔯":"1F52F","💳":"1F4B3","🔰":"1F530","🔱":"1F531","💴":"1F4B4","🔲":"1F532","🔳":"1F533","💵":"1F4B5","🔴":"1F534","🔵":"1F535","💸":"1F4B8","🔶":"1F536","🔷":"1F537","💹":"1F4B9","🔸":"1F538","🔹":"1F539","💺":"1F4BA","🔺":"1F53A","🔻":"1F53B","💻":"1F4BB","🔼":"1F53C","💼":"1F4BC","🔽":"1F53D","🕐":"1F550","💽":"1F4BD","🕑":"1F551","💾":"1F4BE","🕒":"1F552","💿":"1F4BF","🕓":"1F553","📀":"1F4C0","🕔":"1F554","🕕":"1F555","📁":"1F4C1","🕖":"1F556","🕗":"1F557","📂":"1F4C2","🕘":"1F558","🕙":"1F559","📃":"1F4C3","🕚":"1F55A","🕛":"1F55B","📄":"1F4C4","🗻":"1F5FB","🗼":"1F5FC","📅":"1F4C5","🗽":"1F5FD","🗾":"1F5FE","📆":"1F4C6","🗿":"1F5FF","😁":"1F601","😂":"1F602","😃":"1F603","📈":"1F4C8","😄":"1F604","😅":"1F605","📉":"1F4C9","😆":"1F606","😉":"1F609","📊":"1F4CA","😊":"1F60A","😋":"1F60B","📋":"1F4CB","😌":"1F60C","😍":"1F60D","📌":"1F4CC","😏":"1F60F","😒":"1F612","📍":"1F4CD","😓":"1F613","😔":"1F614","📎":"1F4CE","😖":"1F616","😘":"1F618","📏":"1F4CF","😚":"1F61A","😜":"1F61C","📐":"1F4D0","😝":"1F61D","😞":"1F61E","📑":"1F4D1","😠":"1F620","😡":"1F621","😢":"1F622","😣":"1F623","😤":"1F624","😥":"1F625","😨":"1F628","😩":"1F629","😪":"1F62A","😫":"1F62B","😭":"1F62D","😰":"1F630","😱":"1F631","😲":"1F632","😳":"1F633","😵":"1F635","😷":"1F637","😸":"1F638","😹":"1F639","😺":"1F63A","😻":"1F63B","😼":"1F63C","😽":"1F63D","😾":"1F63E","😿":"1F63F","🙀":"1F640","🙅":"1F645","🙆":"1F646","🙇":"1F647","🙈":"1F648","🙉":"1F649","🙊":"1F64A","🙋":"1F64B","🙌":"1F64C","🙍":"1F64D","🙎":"1F64E","🙏":"1F64F","🚀":"1F680","🚃":"1F683","🚄":"1F684","🚅":"1F685","🚇":"1F687","🚉":"1F689","🚌":"1F68C","🚏":"1F68F","🚑":"1F691","🚒":"1F692","🚓":"1F693","🚕":"1F695","🚗":"1F697","🚙":"1F699","🚚":"1F69A","🚢":"1F6A2","🚤":"1F6A4","🚥":"1F6A5","🚧":"1F6A7","🚨":"1F6A8","🚩":"1F6A9","🚪":"1F6AA","🚫":"1F6AB","🚬":"1F6AC","🚭":"1F6AD","🚲":"1F6B2","🚶":"1F6B6","🚹":"1F6B9","🚺":"1F6BA","🚻":"1F6BB","🚼":"1F6BC","🚽":"1F6BD","🚾":"1F6BE","🛀":"1F6C0","😀":"1F600","😇":"1F607","😈":"1F608","😎":"1F60E","😐":"1F610","😑":"1F611","😕":"1F615","😗":"1F617","😙":"1F619","😛":"1F61B","😟":"1F61F","😦":"1F626","😧":"1F627","😬":"1F62C","😮":"1F62E","😯":"1F62F","😴":"1F634","😶":"1F636","🚁":"1F681","🚂":"1F682","🚆":"1F686","🚈":"1F688","🚊":"1F68A","🚍":"1F68D","🚎":"1F68E","🚐":"1F690","🚔":"1F694","🚖":"1F696","🚘":"1F698","🚛":"1F69B","🚜":"1F69C","🚝":"1F69D","🚞":"1F69E","🚟":"1F69F","🚠":"1F6A0","🚡":"1F6A1","🚣":"1F6A3","🚦":"1F6A6","🚮":"1F6AE","🚯":"1F6AF","🚰":"1F6B0","🚱":"1F6B1","🚳":"1F6B3","🚴":"1F6B4","🚵":"1F6B5","🚷":"1F6B7","🚸":"1F6B8","🚿":"1F6BF","🛁":"1F6C1","🛂":"1F6C2","🛃":"1F6C3","🛄":"1F6C4","🛅":"1F6C5","🌍":"1F30D","🌎":"1F30E","🌐":"1F310","🌒":"1F312","🌖":"1F316","🌗":"1F317","🌘":"1F318","🌚":"1F31A","🌜":"1F31C","🌝":"1F31D","🌞":"1F31E","🌲":"1F332","🌳":"1F333","🍋":"1F34B","🍐":"1F350","🍼":"1F37C","🏇":"1F3C7","🏉":"1F3C9","🏤":"1F3E4","🐀":"1F400","🐁":"1F401","🐂":"1F402","🐃":"1F403","🐄":"1F404","🐅":"1F405","🐆":"1F406","🐇":"1F407","🐈":"1F408","🐉":"1F409","🐊":"1F40A","🐋":"1F40B","🐏":"1F40F","🐐":"1F410","🐓":"1F413","🐕":"1F415","🐖":"1F416","🐪":"1F42A","👥":"1F465","👬":"1F46C","👭":"1F46D","💭":"1F4AD","💶":"1F4B6","💷":"1F4B7","📬":"1F4EC","📭":"1F4ED","📯":"1F4EF","📵":"1F4F5","🔀":"1F500","🔁":"1F501","🔂":"1F502","🔄":"1F504","🔅":"1F505","🔆":"1F506","🔇":"1F507","🔉":"1F509","🔕":"1F515","🔬":"1F52C","🔭":"1F52D","🕜":"1F55C","🕝":"1F55D","🕞":"1F55E","🕟":"1F55F","🕠":"1F560","🕡":"1F561","🕢":"1F562","🕣":"1F563","🕤":"1F564","🕥":"1F565","🕦":"1F566","🕧":"1F567","🔈":"1F508","🚋":"1F68B","➿":"27BF","🇦🇫":"1F1E6-1F1EB","🇦🇱":"1F1E6-1F1F1","🇩🇿":"1F1E9-1F1FF","🇦🇩":"1F1E6-1F1E9","🇦🇴":"1F1E6-1F1F4","🇦🇬":"1F1E6-1F1EC","🇦🇷":"1F1E6-1F1F7","🇦🇲":"1F1E6-1F1F2","🇦🇺":"1F1E6-1F1FA","🇦🇹":"1F1E6-1F1F9","🇦🇿":"1F1E6-1F1FF","🇧🇸":"1F1E7-1F1F8","🇧🇭":"1F1E7-1F1ED","🇧🇩":"1F1E7-1F1E9","🇧🇧":"1F1E7-1F1E7","🇧🇾":"1F1E7-1F1FE","🇧🇪":"1F1E7-1F1EA","🇧🇿":"1F1E7-1F1FF","🇧🇯":"1F1E7-1F1EF","🇧🇹":"1F1E7-1F1F9","🇧🇴":"1F1E7-1F1F4","🇧🇦":"1F1E7-1F1E6","🇧🇼":"1F1E7-1F1FC","🇧🇷":"1F1E7-1F1F7","🇧🇳":"1F1E7-1F1F3","🇧🇬":"1F1E7-1F1EC","🇧🇫":"1F1E7-1F1EB","🇧🇮":"1F1E7-1F1EE","🇰🇭":"1F1F0-1F1ED","🇨🇲":"1F1E8-1F1F2","🇨🇦":"1F1E8-1F1E6","🇨🇻":"1F1E8-1F1FB","🇨🇫":"1F1E8-1F1EB","🇹🇩":"1F1F9-1F1E9","🇨🇱":"1F1E8-1F1F1","🇨🇴":"1F1E8-1F1F4","🇰🇲":"1F1F0-1F1F2","🇨🇷":"1F1E8-1F1F7","🇨🇮":"1F1E8-1F1EE","🇭🇷":"1F1ED-1F1F7","🇨🇺":"1F1E8-1F1FA","🇨🇾":"1F1E8-1F1FE","🇨🇿":"1F1E8-1F1FF","🇨🇩":"1F1E8-1F1E9","🇩🇰":"1F1E9-1F1F0","🇩🇯":"1F1E9-1F1EF","🇩🇲":"1F1E9-1F1F2","🇩🇴":"1F1E9-1F1F4","🇹🇱":"1F1F9-1F1F1","🇪🇨":"1F1EA-1F1E8","🇪🇬":"1F1EA-1F1EC","🇸🇻":"1F1F8-1F1FB","🇬🇶":"1F1EC-1F1F6","🇪🇷":"1F1EA-1F1F7","🇪🇪":"1F1EA-1F1EA","🇪🇹":"1F1EA-1F1F9","🇫🇯":"1F1EB-1F1EF","🇫🇮":"1F1EB-1F1EE","🇬🇦":"1F1EC-1F1E6","🇬🇲":"1F1EC-1F1F2","🇬🇪":"1F1EC-1F1EA","🇬🇭":"1F1EC-1F1ED","🇬🇷":"1F1EC-1F1F7","🇬🇩":"1F1EC-1F1E9","🇬🇹":"1F1EC-1F1F9","🇬🇳":"1F1EC-1F1F3","🇬🇼":"1F1EC-1F1FC","🇬🇾":"1F1EC-1F1FE","🇭🇹":"1F1ED-1F1F9","🇭🇳":"1F1ED-1F1F3","🇭🇺":"1F1ED-1F1FA","🇮🇸":"1F1EE-1F1F8","🇮🇳":"1F1EE-1F1F3","🇮🇩":"1F1EE-1F1E9","🇮🇷":"1F1EE-1F1F7","🇮🇶":"1F1EE-1F1F6","🇮🇪":"1F1EE-1F1EA","🇮🇱":"1F1EE-1F1F1","🇯🇲":"1F1EF-1F1F2","🇯🇴":"1F1EF-1F1F4","🇰🇿":"1F1F0-1F1FF","🇰🇪":"1F1F0-1F1EA","🇰🇮":"1F1F0-1F1EE","🇽🇰":"1F1FD-1F1F0","🇰🇼":"1F1F0-1F1FC","🇰🇬":"1F1F0-1F1EC","🇱🇦":"1F1F1-1F1E6","🇱🇻":"1F1F1-1F1FB","🇱🇧":"1F1F1-1F1E7","🇱🇸":"1F1F1-1F1F8","🇱🇷":"1F1F1-1F1F7","🇱🇾":"1F1F1-1F1FE","🇱🇮":"1F1F1-1F1EE","🇱🇹":"1F1F1-1F1F9","🇱🇺":"1F1F1-1F1FA","🇲🇰":"1F1F2-1F1F0","🇲🇬":"1F1F2-1F1EC","🇲🇼":"1F1F2-1F1FC","🇲🇾":"1F1F2-1F1FE","🇲🇻":"1F1F2-1F1FB","🇲🇱":"1F1F2-1F1F1","🇲🇹":"1F1F2-1F1F9","🇲🇭":"1F1F2-1F1ED","🇲🇷":"1F1F2-1F1F7","🇲🇺":"1F1F2-1F1FA","🇲🇽":"1F1F2-1F1FD","🇫🇲":"1F1EB-1F1F2","🇲🇩":"1F1F2-1F1E9","🇲🇨":"1F1F2-1F1E8","🇲🇳":"1F1F2-1F1F3","🇲🇪":"1F1F2-1F1EA","🇲🇦":"1F1F2-1F1E6","🇲🇿":"1F1F2-1F1FF","🇲🇲":"1F1F2-1F1F2","🇳🇦":"1F1F3-1F1E6","🇳🇷":"1F1F3-1F1F7","🇳🇵":"1F1F3-1F1F5","🇳🇱":"1F1F3-1F1F1","🇳🇿":"1F1F3-1F1FF","🇳🇮":"1F1F3-1F1EE","🇳🇪":"1F1F3-1F1EA","🇳🇬":"1F1F3-1F1EC","🇰🇵":"1F1F0-1F1F5","🇳🇴":"1F1F3-1F1F4","🇴🇲":"1F1F4-1F1F2","🇵🇰":"1F1F5-1F1F0","🇵🇼":"1F1F5-1F1FC","🇵🇦":"1F1F5-1F1E6","🇵🇬":"1F1F5-1F1EC","🇵🇾":"1F1F5-1F1FE","🇵🇪":"1F1F5-1F1EA","🇵🇭":"1F1F5-1F1ED","🇵🇱":"1F1F5-1F1F1","🇵🇹":"1F1F5-1F1F9","🇶🇦":"1F1F6-1F1E6","🇹🇼":"1F1F9-1F1FC","🇨🇬":"1F1E8-1F1EC","🇷🇴":"1F1F7-1F1F4","🇷🇼":"1F1F7-1F1FC","🇰🇳":"1F1F0-1F1F3","🇱🇨":"1F1F1-1F1E8","🇻🇨":"1F1FB-1F1E8","🇼🇸":"1F1FC-1F1F8","🇸🇲":"1F1F8-1F1F2","🇸🇹":"1F1F8-1F1F9","🇸🇦":"1F1F8-1F1E6","🇸🇳":"1F1F8-1F1F3","🇷🇸":"1F1F7-1F1F8","🇸🇨":"1F1F8-1F1E8","🇸🇱":"1F1F8-1F1F1","🇸🇬":"1F1F8-1F1EC","🇸🇰":"1F1F8-1F1F0","🇸🇮":"1F1F8-1F1EE","🇸🇧":"1F1F8-1F1E7","🇸🇴":"1F1F8-1F1F4","🇿🇦":"1F1FF-1F1E6","🇱🇰":"1F1F1-1F1F0","🇸🇩":"1F1F8-1F1E9","🇸🇷":"1F1F8-1F1F7","🇸🇿":"1F1F8-1F1FF","🇸🇪":"1F1F8-1F1EA","🇨🇭":"1F1E8-1F1ED","🇸🇾":"1F1F8-1F1FE","🇹🇯":"1F1F9-1F1EF","🇹🇿":"1F1F9-1F1FF","🇹🇭":"1F1F9-1F1ED","🇹🇬":"1F1F9-1F1EC","🇹🇴":"1F1F9-1F1F4","🇹🇹":"1F1F9-1F1F9","🇹🇳":"1F1F9-1F1F3","🇹🇷":"1F1F9-1F1F7","🇹🇲":"1F1F9-1F1F2","🇹🇻":"1F1F9-1F1FB","🇺🇬":"1F1FA-1F1EC","🇺🇦":"1F1FA-1F1E6","🇦🇪":"1F1E6-1F1EA","🇺🇾":"1F1FA-1F1FE","🇺🇿":"1F1FA-1F1FF","🇻🇺":"1F1FB-1F1FA","🇻🇦":"1F1FB-1F1E6","🇻🇪":"1F1FB-1F1EA","🇻🇳":"1F1FB-1F1F3","🇪🇭":"1F1EA-1F1ED","🇾🇪":"1F1FE-1F1EA","🇿🇲":"1F1FF-1F1F2","🇿🇼":"1F1FF-1F1FC","🇵🇷":"1F1F5-1F1F7","🇰🇾":"1F1F0-1F1FE","🇧🇲":"1F1E7-1F1F2","🇵🇫":"1F1F5-1F1EB","🇵🇸":"1F1F5-1F1F8","🇳🇨":"1F1F3-1F1E8","🇸🇭":"1F1F8-1F1ED","🇦🇼":"1F1E6-1F1FC","🇻🇮":"1F1FB-1F1EE","🇭🇰":"1F1ED-1F1F0","🇦🇨":"1F1E6-1F1E8","🇲🇸":"1F1F2-1F1F8","🇬🇺":"1F1EC-1F1FA","🇬🇱":"1F1EC-1F1F1","🇳🇺":"1F1F3-1F1FA","🇼🇫":"1F1FC-1F1EB","🇲🇴":"1F1F2-1F1F4","🇫🇴":"1F1EB-1F1F4","🇫🇰":"1F1EB-1F1F0","🇯🇪":"1F1EF-1F1EA","🇦🇮":"1F1E6-1F1EE","🇬🇮":"1F1EC-1F1EE"},a.shortnameRegexp=":([-+\\w]+):",a.imagePathPNG="//cdn.jsdelivr.net/emojione/assets/png/",a.imagePathSVG="//cdn.jsdelivr.net/emojione/assets/svg/",a.imagePathSVGSprites="./../assets/sprites/emojione.sprites.svg",a.imageType="png",a.sprites=!1,a.unicodeAlt=!0,a.ascii=!1,a.cacheBustParam="?v=1.2.4",a.toImage=function(b){return b=a.unicodeToImage(b),b=a.shortnameToImage(b)},a.unifyUnicode=function(b){return b=a.toShort(b),b=a.shortnameToUnicode(b)},a.shortnameToAscii=function(b){var c,d=a.objectFlip(a.asciiList);return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnameRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b][a.emojioneList[b].length-1].toLowerCase(),"undefined"!=typeof d[c]?d[c]:b):b})},a.shortnameToUnicode=function(b){var c;return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnameRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(c=a.emojioneList[b][a.emojioneList[b].length-1].toUpperCase(),a.convert(c)):b}),a.ascii&&(b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+a.asciiRegexp+"(?=\\s|$|[!,.]))","g"),function(b,d,e,f){return"undefined"!=typeof f&&""!==f&&a.unescapeHTML(f)in a.asciiList?(f=a.unescapeHTML(f),c=a.asciiList[f].toUpperCase(),e+a.convert(c)):b})),b},a.shortnameToImage=function(b){var c,d,e;return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.shortnameRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.emojioneList?(d=a.emojioneList[b][a.emojioneList[b].length-1].toUpperCase(),e=a.unicodeAlt?a.convert(d):b,c="png"===a.imageType?a.sprites?'<span class="emojione-'+d+'" title="'+b+'">'+e+"</span>":'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d+'"></use></svg>':'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b}),a.ascii&&(b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)"+a.asciiRegexp+"(?=\\s|$|[!,.]))","g"),function(b,f,g,h){return"undefined"!=typeof h&&""!==h&&a.unescapeHTML(h)in a.asciiList?(h=a.unescapeHTML(h),d=a.asciiList[h].toUpperCase(),e=a.unicodeAlt?a.convert(d):a.escapeHTML(h),c="png"===a.imageType?a.sprites?g+'<span class="emojione-'+d.toUpperCase()+'" title="'+a.escapeHTML(h)+'">'+e+"</span>":g+'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d.toUpperCase()+'"></use></svg>':g+'<object class="emojione" data="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'" type="image/svg+xml" standby="'+e+'">'+e+"</object>"):b})),b},a.unicodeToImage=function(b){var c,d,e;if(!a.unicodeAlt||a.sprites)var f=a.mapShortToUnicode();return b=b.replace(new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+a.unicodeRegexp+")","gi"),function(b){return"undefined"!=typeof b&&""!==b&&b in a.jsecapeMap?(d=a.jsecapeMap[b],e=a.unicodeAlt?a.convert(d):f[d],c="png"===a.imageType?a.sprites?'<span class="emojione-'+d.toUpperCase()+'" title="'+f[d]+'">'+e+"</span>":'<img class="emojione" alt="'+e+'" src="'+a.imagePathPNG+d+".png"+a.cacheBustParam+'"/>':a.sprites?'<svg class="emojione"><description>'+e+'</description><use xlink:href="'+a.imagePathSVGSprites+"#emoji-"+d.toUpperCase()+'"></use></svg>':'<img class="emojione" alt="'+e+'" src="'+a.imagePathSVG+d+".svg"+a.cacheBustParam+'"/>'):b})},a.toShort=function(b){for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d in a.emojioneList[c])if(a.emojioneList[c].hasOwnProperty(d)){var e=a.emojioneList[c][d].toUpperCase();b=a.replaceAll(b,a.convert(e),c)}return b},a.convert=function(a){if(a.indexOf("-")>-1){for(var b=[],c=a.split("-"),d=0;d<c.length;d++){var e=parseInt(c[d],16);if(e>=65536&&1114111>=e){var f=Math.floor((e-65536)/1024)+55296,g=(e-65536)%1024+56320;e=String.fromCharCode(f)+String.fromCharCode(g)}else e=String.fromCharCode(e);b.push(e)}return b.join("")}var c=parseInt(a,16);if(c>=65536&&1114111>=c){var f=Math.floor((c-65536)/1024)+55296,g=(c-65536)%1024+56320;return String.fromCharCode(f)+String.fromCharCode(g)}return String.fromCharCode(c)},a.escapeHTML=function(a){var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;"};return a.replace(/[&<>"']/g,function(a){return b[a]})},a.unescapeHTML=function(a){var b={"&amp;":"&","&#38;":"&","&#x26;":"&","&lt;":"<","&#60;":"<","&#x3C;":"<","&gt;":">","&#62;":">","&#x3E;":">","&quot;":'"',"&#34;":'"',"&#x22;":'"',"&apos;":"'","&#39;":"'","&#x27;":"'"};return a.replace(/&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,function(a){return b[a]})},a.mapShortToUnicode=function(){var b={};for(var c in a.emojioneList)if(a.emojioneList.hasOwnProperty(c))for(var d in a.emojioneList[c])a.emojioneList[c].hasOwnProperty(d)&&(b[a.emojioneList[c][d].toUpperCase()]=c);return b},a.objectFlip=function(a){var b,c={};for(b in a)a.hasOwnProperty(b)&&(c[a[b]]=b);return c},a.escapeRegExp=function(a){return a.replace(/[-[\]{}()*+?.,;:&\\^$|#\s]/g,"\\$&")},a.replaceAll=function(a,b,c){var d=new RegExp("<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|("+b+")","gi"),e=function(a,b){return"undefined"==typeof b||""===b?a:c};return a.replace(d,e)}}(this.emojione=this.emojione||{}),"object"==typeof module&&(module.exports=this.emojione);
diff --git a/pagure/static/vendor/emojione/emojione.js b/pagure/static/vendor/emojione/emojione.js
new file mode 120000
index 0000000..8dd95a4
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione.js
@@ -0,0 +1 @@
+emojione-1.3.1.js
\ No newline at end of file
diff --git a/pagure/static/vendor/emojione/emojione.min.js b/pagure/static/vendor/emojione/emojione.min.js
new file mode 120000
index 0000000..edcc80b
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione.min.js
@@ -0,0 +1 @@
+emojione-1.3.1.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/emojione/emojione.sprites-1.3.1.css b/pagure/static/vendor/emojione/emojione.sprites-1.3.1.css
new file mode 100644
index 0000000..06c1394
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione.sprites-1.3.1.css
@@ -0,0 +1,4298 @@
+[class*=emojione-] {
+    text-indent: -9999em;
+    image-rendering: optimizeQuality;
+    font-size: inherit;
+    height: 1.3em;
+    width: 1.3em;
+    top: -3px;
+    position: relative;
+    display: inline-block;
+    margin: 0 .15em;
+    line-height: normal;
+    vertical-align: middle;
+    background-image: url("emojione.sprites.png");
+    background-size: 3300%;
+    background-repeat: no-repeat
+}
+
+.emojione-0023-20E3 {
+    background-position: 3.125% 0%
+}
+
+.emojione-0030-20E3 {
+    background-position: 21.875% 64.51613%
+}
+
+.emojione-0031-20E3 {
+    background-position: 0% 3.22581%
+}
+
+.emojione-0032-20E3 {
+    background-position: 3.125% 3.22581%
+}
+
+.emojione-0033-20E3 {
+    background-position: 6.25% 0%
+}
+
+.emojione-0034-20E3 {
+    background-position: 6.25% 3.22581%
+}
+
+.emojione-0035-20E3 {
+    background-position: 0% 6.45161%
+}
+
+.emojione-0036-20E3 {
+    background-position: 3.125% 6.45161%
+}
+
+.emojione-0037-20E3 {
+    background-position: 6.25% 6.45161%
+}
+
+.emojione-0038-20E3 {
+    background-position: 9.375% 0%
+}
+
+.emojione-0039-20E3 {
+    background-position: 9.375% 3.22581%
+}
+
+.emojione-00A9 {
+    background-position: 9.375% 6.45161%
+}
+
+.emojione-00AE {
+    background-position: 0% 9.67742%
+}
+
+.emojione-1F004 {
+    background-position: 3.125% 9.67742%
+}
+
+.emojione-1F0CF {
+    background-position: 6.25% 9.67742%
+}
+
+.emojione-1F170 {
+    background-position: 9.375% 9.67742%
+}
+
+.emojione-1F171 {
+    background-position: 12.5% 0%
+}
+
+.emojione-1F17E {
+    background-position: 12.5% 3.22581%
+}
+
+.emojione-1F17F {
+    background-position: 12.5% 6.45161%
+}
+
+.emojione-1F18E {
+    background-position: 12.5% 9.67742%
+}
+
+.emojione-1F191 {
+    background-position: 0% 12.90323%
+}
+
+.emojione-1F192 {
+    background-position: 3.125% 12.90323%
+}
+
+.emojione-1F193 {
+    background-position: 6.25% 12.90323%
+}
+
+.emojione-1F194 {
+    background-position: 9.375% 12.90323%
+}
+
+.emojione-1F195 {
+    background-position: 12.5% 12.90323%
+}
+
+.emojione-1F196 {
+    background-position: 15.625% 0%
+}
+
+.emojione-1F197 {
+    background-position: 15.625% 3.22581%
+}
+
+.emojione-1F198 {
+    background-position: 15.625% 6.45161%
+}
+
+.emojione-1F199 {
+    background-position: 15.625% 9.67742%
+}
+
+.emojione-1F19A {
+    background-position: 15.625% 12.90323%
+}
+
+.emojione-1F1E6-1F1E8 {
+    background-position: 0% 16.12903%
+}
+
+.emojione-1F1E6-1F1E9 {
+    background-position: 3.125% 16.12903%
+}
+
+.emojione-1F1E6-1F1EA {
+    background-position: 6.25% 16.12903%
+}
+
+.emojione-1F1E6-1F1EB {
+    background-position: 9.375% 16.12903%
+}
+
+.emojione-1F1E6-1F1EC {
+    background-position: 12.5% 16.12903%
+}
+
+.emojione-1F1E6-1F1EE {
+    background-position: 15.625% 16.12903%
+}
+
+.emojione-1F1E6-1F1F1 {
+    background-position: 18.75% 0%
+}
+
+.emojione-1F1E6-1F1F2 {
+    background-position: 18.75% 3.22581%
+}
+
+.emojione-1F1E6-1F1F4 {
+    background-position: 18.75% 6.45161%
+}
+
+.emojione-1F1E6-1F1F7 {
+    background-position: 18.75% 9.67742%
+}
+
+.emojione-1F1E6-1F1F9 {
+    background-position: 18.75% 12.90323%
+}
+
+.emojione-1F1E6-1F1FA {
+    background-position: 18.75% 16.12903%
+}
+
+.emojione-1F1E6-1F1FC {
+    background-position: 0% 19.35484%
+}
+
+.emojione-1F1E6-1F1FF {
+    background-position: 3.125% 19.35484%
+}
+
+.emojione-1F1E7-1F1E6 {
+    background-position: 6.25% 19.35484%
+}
+
+.emojione-1F1E7-1F1E7 {
+    background-position: 9.375% 19.35484%
+}
+
+.emojione-1F1E7-1F1E9 {
+    background-position: 12.5% 19.35484%
+}
+
+.emojione-1F1E7-1F1EA {
+    background-position: 15.625% 19.35484%
+}
+
+.emojione-1F1E7-1F1EB {
+    background-position: 18.75% 19.35484%
+}
+
+.emojione-1F1E7-1F1EC {
+    background-position: 21.875% 0%
+}
+
+.emojione-1F1E7-1F1ED {
+    background-position: 21.875% 3.22581%
+}
+
+.emojione-1F1E7-1F1EE {
+    background-position: 21.875% 6.45161%
+}
+
+.emojione-1F1E7-1F1EF {
+    background-position: 21.875% 9.67742%
+}
+
+.emojione-1F1E7-1F1F2 {
+    background-position: 21.875% 12.90323%
+}
+
+.emojione-1F1E7-1F1F3 {
+    background-position: 21.875% 16.12903%
+}
+
+.emojione-1F1E7-1F1F4 {
+    background-position: 21.875% 19.35484%
+}
+
+.emojione-1F1E7-1F1F7 {
+    background-position: 0% 22.58065%
+}
+
+.emojione-1F1E7-1F1F8 {
+    background-position: 3.125% 22.58065%
+}
+
+.emojione-1F1E7-1F1F9 {
+    background-position: 6.25% 22.58065%
+}
+
+.emojione-1F1E7-1F1FC {
+    background-position: 9.375% 22.58065%
+}
+
+.emojione-1F1E7-1F1FE {
+    background-position: 12.5% 22.58065%
+}
+
+.emojione-1F1E7-1F1FF {
+    background-position: 15.625% 22.58065%
+}
+
+.emojione-1F1E8-1F1E6 {
+    background-position: 18.75% 22.58065%
+}
+
+.emojione-1F1E8-1F1E9 {
+    background-position: 21.875% 22.58065%
+}
+
+.emojione-1F1E8-1F1EB {
+    background-position: 25% 0%
+}
+
+.emojione-1F1E8-1F1EC {
+    background-position: 25% 3.22581%
+}
+
+.emojione-1F1E8-1F1ED {
+    background-position: 25% 6.45161%
+}
+
+.emojione-1F1E8-1F1EE {
+    background-position: 25% 9.67742%
+}
+
+.emojione-1F1E8-1F1F1 {
+    background-position: 25% 12.90323%
+}
+
+.emojione-1F1E8-1F1F2 {
+    background-position: 25% 16.12903%
+}
+
+.emojione-1F1E8-1F1F3 {
+    background-position: 25% 19.35484%
+}
+
+.emojione-1F1E8-1F1F4 {
+    background-position: 25% 22.58065%
+}
+
+.emojione-1F1E8-1F1F7 {
+    background-position: 0% 25.80645%
+}
+
+.emojione-1F1E8-1F1FA {
+    background-position: 3.125% 25.80645%
+}
+
+.emojione-1F1E8-1F1FB {
+    background-position: 6.25% 25.80645%
+}
+
+.emojione-1F1E8-1F1FE {
+    background-position: 9.375% 25.80645%
+}
+
+.emojione-1F1E8-1F1FF {
+    background-position: 12.5% 25.80645%
+}
+
+.emojione-1F1E9-1F1EA {
+    background-position: 15.625% 25.80645%
+}
+
+.emojione-1F1E9-1F1EF {
+    background-position: 18.75% 25.80645%
+}
+
+.emojione-1F1E9-1F1F0 {
+    background-position: 21.875% 25.80645%
+}
+
+.emojione-1F1E9-1F1F2 {
+    background-position: 25% 25.80645%
+}
+
+.emojione-1F1E9-1F1F4 {
+    background-position: 28.125% 0%
+}
+
+.emojione-1F1E9-1F1FF {
+    background-position: 28.125% 3.22581%
+}
+
+.emojione-1F1EA-1F1E8 {
+    background-position: 28.125% 6.45161%
+}
+
+.emojione-1F1EA-1F1EA {
+    background-position: 28.125% 9.67742%
+}
+
+.emojione-1F1EA-1F1EC {
+    background-position: 28.125% 12.90323%
+}
+
+.emojione-1F1EA-1F1ED {
+    background-position: 28.125% 16.12903%
+}
+
+.emojione-1F1EA-1F1F7 {
+    background-position: 28.125% 19.35484%
+}
+
+.emojione-1F1EA-1F1F8 {
+    background-position: 28.125% 22.58065%
+}
+
+.emojione-1F1EA-1F1F9 {
+    background-position: 28.125% 25.80645%
+}
+
+.emojione-1F1EB-1F1EE {
+    background-position: 0% 29.03226%
+}
+
+.emojione-1F1EB-1F1EF {
+    background-position: 3.125% 29.03226%
+}
+
+.emojione-1F1EB-1F1F0 {
+    background-position: 6.25% 29.03226%
+}
+
+.emojione-1F1EB-1F1F2 {
+    background-position: 9.375% 29.03226%
+}
+
+.emojione-1F1EB-1F1F4 {
+    background-position: 12.5% 29.03226%
+}
+
+.emojione-1F1EB-1F1F7 {
+    background-position: 15.625% 29.03226%
+}
+
+.emojione-1F1EC-1F1E6 {
+    background-position: 18.75% 29.03226%
+}
+
+.emojione-1F1EC-1F1E7 {
+    background-position: 21.875% 29.03226%
+}
+
+.emojione-1F1EC-1F1E9 {
+    background-position: 25% 29.03226%
+}
+
+.emojione-1F1EC-1F1EA {
+    background-position: 28.125% 29.03226%
+}
+
+.emojione-1F1EC-1F1ED {
+    background-position: 31.25% 0%
+}
+
+.emojione-1F1EC-1F1EE {
+    background-position: 31.25% 3.22581%
+}
+
+.emojione-1F1EC-1F1F1 {
+    background-position: 31.25% 6.45161%
+}
+
+.emojione-1F1EC-1F1F2 {
+    background-position: 31.25% 9.67742%
+}
+
+.emojione-1F1EC-1F1F3 {
+    background-position: 31.25% 12.90323%
+}
+
+.emojione-1F1EC-1F1F6 {
+    background-position: 31.25% 16.12903%
+}
+
+.emojione-1F1EC-1F1F7 {
+    background-position: 31.25% 19.35484%
+}
+
+.emojione-1F1EC-1F1F9 {
+    background-position: 31.25% 22.58065%
+}
+
+.emojione-1F1EC-1F1FA {
+    background-position: 31.25% 25.80645%
+}
+
+.emojione-1F1EC-1F1FC {
+    background-position: 31.25% 29.03226%
+}
+
+.emojione-1F1EC-1F1FE {
+    background-position: 0% 32.25806%
+}
+
+.emojione-1F1ED-1F1F0 {
+    background-position: 3.125% 32.25806%
+}
+
+.emojione-1F1ED-1F1F3 {
+    background-position: 6.25% 32.25806%
+}
+
+.emojione-1F1ED-1F1F7 {
+    background-position: 9.375% 32.25806%
+}
+
+.emojione-1F1ED-1F1F9 {
+    background-position: 12.5% 32.25806%
+}
+
+.emojione-1F1ED-1F1FA {
+    background-position: 15.625% 32.25806%
+}
+
+.emojione-1F1EE-1F1E9 {
+    background-position: 18.75% 32.25806%
+}
+
+.emojione-1F1EE-1F1EA {
+    background-position: 21.875% 32.25806%
+}
+
+.emojione-1F1EE-1F1F1 {
+    background-position: 25% 32.25806%
+}
+
+.emojione-1F1EE-1F1F3 {
+    background-position: 28.125% 32.25806%
+}
+
+.emojione-1F1EE-1F1F6 {
+    background-position: 31.25% 32.25806%
+}
+
+.emojione-1F1EE-1F1F7 {
+    background-position: 34.375% 0%
+}
+
+.emojione-1F1EE-1F1F8 {
+    background-position: 34.375% 3.22581%
+}
+
+.emojione-1F1EE-1F1F9 {
+    background-position: 34.375% 6.45161%
+}
+
+.emojione-1F1EF-1F1EA {
+    background-position: 34.375% 9.67742%
+}
+
+.emojione-1F1EF-1F1F2 {
+    background-position: 34.375% 12.90323%
+}
+
+.emojione-1F1EF-1F1F4 {
+    background-position: 34.375% 16.12903%
+}
+
+.emojione-1F1EF-1F1F5 {
+    background-position: 34.375% 19.35484%
+}
+
+.emojione-1F1F0-1F1EA {
+    background-position: 34.375% 22.58065%
+}
+
+.emojione-1F1F0-1F1EC {
+    background-position: 34.375% 25.80645%
+}
+
+.emojione-1F1F0-1F1ED {
+    background-position: 34.375% 29.03226%
+}
+
+.emojione-1F1F0-1F1EE {
+    background-position: 34.375% 32.25806%
+}
+
+.emojione-1F1F0-1F1F2 {
+    background-position: 0% 35.48387%
+}
+
+.emojione-1F1F0-1F1F3 {
+    background-position: 3.125% 35.48387%
+}
+
+.emojione-1F1F0-1F1F5 {
+    background-position: 6.25% 35.48387%
+}
+
+.emojione-1F1F0-1F1F7 {
+    background-position: 9.375% 35.48387%
+}
+
+.emojione-1F1F0-1F1FC {
+    background-position: 12.5% 35.48387%
+}
+
+.emojione-1F1F0-1F1FE {
+    background-position: 15.625% 35.48387%
+}
+
+.emojione-1F1F0-1F1FF {
+    background-position: 18.75% 35.48387%
+}
+
+.emojione-1F1F1-1F1E6 {
+    background-position: 21.875% 35.48387%
+}
+
+.emojione-1F1F1-1F1E7 {
+    background-position: 25% 35.48387%
+}
+
+.emojione-1F1F1-1F1E8 {
+    background-position: 28.125% 35.48387%
+}
+
+.emojione-1F1F1-1F1EE {
+    background-position: 31.25% 35.48387%
+}
+
+.emojione-1F1F1-1F1F0 {
+    background-position: 34.375% 35.48387%
+}
+
+.emojione-1F1F1-1F1F7 {
+    background-position: 37.5% 0%
+}
+
+.emojione-1F1F1-1F1F8 {
+    background-position: 37.5% 3.22581%
+}
+
+.emojione-1F1F1-1F1F9 {
+    background-position: 37.5% 6.45161%
+}
+
+.emojione-1F1F1-1F1FA {
+    background-position: 37.5% 9.67742%
+}
+
+.emojione-1F1F1-1F1FB {
+    background-position: 37.5% 12.90323%
+}
+
+.emojione-1F1F1-1F1FE {
+    background-position: 37.5% 16.12903%
+}
+
+.emojione-1F1F2-1F1E6 {
+    background-position: 37.5% 19.35484%
+}
+
+.emojione-1F1F2-1F1E8 {
+    background-position: 37.5% 22.58065%
+}
+
+.emojione-1F1F2-1F1E9 {
+    background-position: 37.5% 25.80645%
+}
+
+.emojione-1F1F2-1F1EA {
+    background-position: 37.5% 29.03226%
+}
+
+.emojione-1F1F2-1F1EC {
+    background-position: 37.5% 32.25806%
+}
+
+.emojione-1F1F2-1F1ED {
+    background-position: 37.5% 35.48387%
+}
+
+.emojione-1F1F2-1F1F0 {
+    background-position: 0% 38.70968%
+}
+
+.emojione-1F1F2-1F1F1 {
+    background-position: 3.125% 38.70968%
+}
+
+.emojione-1F1F2-1F1F2 {
+    background-position: 6.25% 38.70968%
+}
+
+.emojione-1F1F2-1F1F3 {
+    background-position: 9.375% 38.70968%
+}
+
+.emojione-1F1F2-1F1F4 {
+    background-position: 12.5% 38.70968%
+}
+
+.emojione-1F1F2-1F1F7 {
+    background-position: 15.625% 38.70968%
+}
+
+.emojione-1F1F2-1F1F8 {
+    background-position: 18.75% 38.70968%
+}
+
+.emojione-1F1F2-1F1F9 {
+    background-position: 21.875% 38.70968%
+}
+
+.emojione-1F1F2-1F1FA {
+    background-position: 25% 38.70968%
+}
+
+.emojione-1F1F2-1F1FB {
+    background-position: 28.125% 38.70968%
+}
+
+.emojione-1F1F2-1F1FC {
+    background-position: 31.25% 38.70968%
+}
+
+.emojione-1F1F2-1F1FD {
+    background-position: 34.375% 38.70968%
+}
+
+.emojione-1F1F2-1F1FE {
+    background-position: 37.5% 38.70968%
+}
+
+.emojione-1F1F2-1F1FF {
+    background-position: 40.625% 0%
+}
+
+.emojione-1F1F3-1F1E6 {
+    background-position: 40.625% 3.22581%
+}
+
+.emojione-1F1F3-1F1E8 {
+    background-position: 40.625% 6.45161%
+}
+
+.emojione-1F1F3-1F1EA {
+    background-position: 40.625% 9.67742%
+}
+
+.emojione-1F1F3-1F1EC {
+    background-position: 40.625% 12.90323%
+}
+
+.emojione-1F1F3-1F1EE {
+    background-position: 40.625% 16.12903%
+}
+
+.emojione-1F1F3-1F1F1 {
+    background-position: 40.625% 19.35484%
+}
+
+.emojione-1F1F3-1F1F4 {
+    background-position: 40.625% 22.58065%
+}
+
+.emojione-1F1F3-1F1F5 {
+    background-position: 40.625% 25.80645%
+}
+
+.emojione-1F1F3-1F1F7 {
+    background-position: 40.625% 29.03226%
+}
+
+.emojione-1F1F3-1F1FA {
+    background-position: 40.625% 32.25806%
+}
+
+.emojione-1F1F3-1F1FF {
+    background-position: 40.625% 35.48387%
+}
+
+.emojione-1F1F4-1F1F2 {
+    background-position: 40.625% 38.70968%
+}
+
+.emojione-1F1F5-1F1E6 {
+    background-position: 0% 41.93548%
+}
+
+.emojione-1F1F5-1F1EA {
+    background-position: 3.125% 41.93548%
+}
+
+.emojione-1F1F5-1F1EB {
+    background-position: 6.25% 41.93548%
+}
+
+.emojione-1F1F5-1F1EC {
+    background-position: 9.375% 41.93548%
+}
+
+.emojione-1F1F5-1F1ED {
+    background-position: 12.5% 41.93548%
+}
+
+.emojione-1F1F5-1F1F0 {
+    background-position: 15.625% 41.93548%
+}
+
+.emojione-1F1F5-1F1F1 {
+    background-position: 18.75% 41.93548%
+}
+
+.emojione-1F1F5-1F1F7 {
+    background-position: 21.875% 41.93548%
+}
+
+.emojione-1F1F5-1F1F8 {
+    background-position: 25% 41.93548%
+}
+
+.emojione-1F1F5-1F1F9 {
+    background-position: 28.125% 41.93548%
+}
+
+.emojione-1F1F5-1F1FC {
+    background-position: 31.25% 41.93548%
+}
+
+.emojione-1F1F5-1F1FE {
+    background-position: 34.375% 41.93548%
+}
+
+.emojione-1F1F6-1F1E6 {
+    background-position: 37.5% 41.93548%
+}
+
+.emojione-1F1F7-1F1F4 {
+    background-position: 40.625% 41.93548%
+}
+
+.emojione-1F1F7-1F1F8 {
+    background-position: 43.75% 0%
+}
+
+.emojione-1F1F7-1F1FA {
+    background-position: 43.75% 3.22581%
+}
+
+.emojione-1F1F7-1F1FC {
+    background-position: 43.75% 6.45161%
+}
+
+.emojione-1F1F8-1F1E6 {
+    background-position: 43.75% 9.67742%
+}
+
+.emojione-1F1F8-1F1E7 {
+    background-position: 43.75% 12.90323%
+}
+
+.emojione-1F1F8-1F1E8 {
+    background-position: 43.75% 16.12903%
+}
+
+.emojione-1F1F8-1F1E9 {
+    background-position: 43.75% 19.35484%
+}
+
+.emojione-1F1F8-1F1EA {
+    background-position: 43.75% 22.58065%
+}
+
+.emojione-1F1F8-1F1EC {
+    background-position: 43.75% 25.80645%
+}
+
+.emojione-1F1F8-1F1ED {
+    background-position: 43.75% 29.03226%
+}
+
+.emojione-1F1F8-1F1EE {
+    background-position: 43.75% 32.25806%
+}
+
+.emojione-1F1F8-1F1F0 {
+    background-position: 43.75% 35.48387%
+}
+
+.emojione-1F1F8-1F1F1 {
+    background-position: 43.75% 38.70968%
+}
+
+.emojione-1F1F8-1F1F2 {
+    background-position: 43.75% 41.93548%
+}
+
+.emojione-1F1F8-1F1F3 {
+    background-position: 0% 45.16129%
+}
+
+.emojione-1F1F8-1F1F4 {
+    background-position: 3.125% 45.16129%
+}
+
+.emojione-1F1F8-1F1F7 {
+    background-position: 6.25% 45.16129%
+}
+
+.emojione-1F1F8-1F1F9 {
+    background-position: 9.375% 45.16129%
+}
+
+.emojione-1F1F8-1F1FB {
+    background-position: 12.5% 45.16129%
+}
+
+.emojione-1F1F8-1F1FE {
+    background-position: 15.625% 45.16129%
+}
+
+.emojione-1F1F8-1F1FF {
+    background-position: 18.75% 45.16129%
+}
+
+.emojione-1F1F9-1F1E9 {
+    background-position: 21.875% 45.16129%
+}
+
+.emojione-1F1F9-1F1EC {
+    background-position: 25% 45.16129%
+}
+
+.emojione-1F1F9-1F1ED {
+    background-position: 28.125% 45.16129%
+}
+
+.emojione-1F1F9-1F1EF {
+    background-position: 31.25% 45.16129%
+}
+
+.emojione-1F1F9-1F1F1 {
+    background-position: 34.375% 45.16129%
+}
+
+.emojione-1F1F9-1F1F2 {
+    background-position: 37.5% 45.16129%
+}
+
+.emojione-1F1F9-1F1F3 {
+    background-position: 40.625% 45.16129%
+}
+
+.emojione-1F1F9-1F1F4 {
+    background-position: 43.75% 45.16129%
+}
+
+.emojione-1F1F9-1F1F7 {
+    background-position: 46.875% 0%
+}
+
+.emojione-1F1F9-1F1F9 {
+    background-position: 46.875% 3.22581%
+}
+
+.emojione-1F1F9-1F1FB {
+    background-position: 46.875% 6.45161%
+}
+
+.emojione-1F1F9-1F1FC {
+    background-position: 46.875% 9.67742%
+}
+
+.emojione-1F1F9-1F1FF {
+    background-position: 46.875% 12.90323%
+}
+
+.emojione-1F1FA-1F1E6 {
+    background-position: 46.875% 16.12903%
+}
+
+.emojione-1F1FA-1F1EC {
+    background-position: 46.875% 19.35484%
+}
+
+.emojione-1F1FA-1F1F8 {
+    background-position: 46.875% 22.58065%
+}
+
+.emojione-1F1FA-1F1FE {
+    background-position: 46.875% 25.80645%
+}
+
+.emojione-1F1FA-1F1FF {
+    background-position: 46.875% 29.03226%
+}
+
+.emojione-1F1FB-1F1E6 {
+    background-position: 46.875% 32.25806%
+}
+
+.emojione-1F1FB-1F1E8 {
+    background-position: 46.875% 35.48387%
+}
+
+.emojione-1F1FB-1F1EA {
+    background-position: 46.875% 38.70968%
+}
+
+.emojione-1F1FB-1F1EE {
+    background-position: 46.875% 41.93548%
+}
+
+.emojione-1F1FB-1F1F3 {
+    background-position: 46.875% 45.16129%
+}
+
+.emojione-1F1FB-1F1FA {
+    background-position: 0% 48.3871%
+}
+
+.emojione-1F1FC-1F1EB {
+    background-position: 3.125% 48.3871%
+}
+
+.emojione-1F1FC-1F1F8 {
+    background-position: 6.25% 48.3871%
+}
+
+.emojione-1F1FD-1F1F0 {
+    background-position: 9.375% 48.3871%
+}
+
+.emojione-1F1FE-1F1EA {
+    background-position: 12.5% 48.3871%
+}
+
+.emojione-1F1FF-1F1E6 {
+    background-position: 15.625% 48.3871%
+}
+
+.emojione-1F1FF-1F1F2 {
+    background-position: 18.75% 48.3871%
+}
+
+.emojione-1F1FF-1F1FC {
+    background-position: 21.875% 48.3871%
+}
+
+.emojione-1F201 {
+    background-position: 25% 48.3871%
+}
+
+.emojione-1F202 {
+    background-position: 28.125% 48.3871%
+}
+
+.emojione-1F21A {
+    background-position: 31.25% 48.3871%
+}
+
+.emojione-1F22F {
+    background-position: 34.375% 48.3871%
+}
+
+.emojione-1F232 {
+    background-position: 37.5% 48.3871%
+}
+
+.emojione-1F233 {
+    background-position: 40.625% 48.3871%
+}
+
+.emojione-1F234 {
+    background-position: 43.75% 48.3871%
+}
+
+.emojione-1F235 {
+    background-position: 46.875% 48.3871%
+}
+
+.emojione-1F236 {
+    background-position: 50% 0%
+}
+
+.emojione-1F237 {
+    background-position: 50% 3.22581%
+}
+
+.emojione-1F238 {
+    background-position: 50% 6.45161%
+}
+
+.emojione-1F239 {
+    background-position: 50% 9.67742%
+}
+
+.emojione-1F23A {
+    background-position: 50% 12.90323%
+}
+
+.emojione-1F250 {
+    background-position: 50% 16.12903%
+}
+
+.emojione-1F251 {
+    background-position: 50% 19.35484%
+}
+
+.emojione-1F300 {
+    background-position: 50% 22.58065%
+}
+
+.emojione-1F301 {
+    background-position: 50% 25.80645%
+}
+
+.emojione-1F302 {
+    background-position: 50% 29.03226%
+}
+
+.emojione-1F303 {
+    background-position: 50% 32.25806%
+}
+
+.emojione-1F304 {
+    background-position: 50% 35.48387%
+}
+
+.emojione-1F305 {
+    background-position: 50% 38.70968%
+}
+
+.emojione-1F306 {
+    background-position: 50% 41.93548%
+}
+
+.emojione-1F307 {
+    background-position: 50% 45.16129%
+}
+
+.emojione-1F308 {
+    background-position: 50% 48.3871%
+}
+
+.emojione-1F309 {
+    background-position: 0% 51.6129%
+}
+
+.emojione-1F30A {
+    background-position: 3.125% 51.6129%
+}
+
+.emojione-1F30B {
+    background-position: 6.25% 51.6129%
+}
+
+.emojione-1F30C {
+    background-position: 9.375% 51.6129%
+}
+
+.emojione-1F30D {
+    background-position: 12.5% 51.6129%
+}
+
+.emojione-1F30E {
+    background-position: 15.625% 51.6129%
+}
+
+.emojione-1F30F {
+    background-position: 18.75% 51.6129%
+}
+
+.emojione-1F310 {
+    background-position: 21.875% 51.6129%
+}
+
+.emojione-1F311 {
+    background-position: 25% 51.6129%
+}
+
+.emojione-1F312 {
+    background-position: 28.125% 51.6129%
+}
+
+.emojione-1F313 {
+    background-position: 31.25% 51.6129%
+}
+
+.emojione-1F314 {
+    background-position: 34.375% 51.6129%
+}
+
+.emojione-1F315 {
+    background-position: 37.5% 51.6129%
+}
+
+.emojione-1F316 {
+    background-position: 40.625% 51.6129%
+}
+
+.emojione-1F317 {
+    background-position: 43.75% 51.6129%
+}
+
+.emojione-1F318 {
+    background-position: 46.875% 51.6129%
+}
+
+.emojione-1F319 {
+    background-position: 50% 51.6129%
+}
+
+.emojione-1F31A {
+    background-position: 53.125% 0%
+}
+
+.emojione-1F31B {
+    background-position: 53.125% 3.22581%
+}
+
+.emojione-1F31C {
+    background-position: 53.125% 6.45161%
+}
+
+.emojione-1F31D {
+    background-position: 53.125% 9.67742%
+}
+
+.emojione-1F31E {
+    background-position: 53.125% 12.90323%
+}
+
+.emojione-1F31F {
+    background-position: 53.125% 16.12903%
+}
+
+.emojione-1F320 {
+    background-position: 53.125% 19.35484%
+}
+
+.emojione-1F330 {
+    background-position: 53.125% 22.58065%
+}
+
+.emojione-1F331 {
+    background-position: 53.125% 25.80645%
+}
+
+.emojione-1F332 {
+    background-position: 53.125% 29.03226%
+}
+
+.emojione-1F333 {
+    background-position: 53.125% 32.25806%
+}
+
+.emojione-1F334 {
+    background-position: 53.125% 35.48387%
+}
+
+.emojione-1F335 {
+    background-position: 53.125% 38.70968%
+}
+
+.emojione-1F337 {
+    background-position: 53.125% 41.93548%
+}
+
+.emojione-1F338 {
+    background-position: 53.125% 45.16129%
+}
+
+.emojione-1F339 {
+    background-position: 53.125% 48.3871%
+}
+
+.emojione-1F33A {
+    background-position: 53.125% 51.6129%
+}
+
+.emojione-1F33B {
+    background-position: 0% 54.83871%
+}
+
+.emojione-1F33C {
+    background-position: 3.125% 54.83871%
+}
+
+.emojione-1F33D {
+    background-position: 6.25% 54.83871%
+}
+
+.emojione-1F33E {
+    background-position: 9.375% 54.83871%
+}
+
+.emojione-1F33F {
+    background-position: 12.5% 54.83871%
+}
+
+.emojione-1F340 {
+    background-position: 15.625% 54.83871%
+}
+
+.emojione-1F341 {
+    background-position: 18.75% 54.83871%
+}
+
+.emojione-1F342 {
+    background-position: 21.875% 54.83871%
+}
+
+.emojione-1F343 {
+    background-position: 25% 54.83871%
+}
+
+.emojione-1F344 {
+    background-position: 28.125% 54.83871%
+}
+
+.emojione-1F345 {
+    background-position: 31.25% 54.83871%
+}
+
+.emojione-1F346 {
+    background-position: 34.375% 54.83871%
+}
+
+.emojione-1F347 {
+    background-position: 37.5% 54.83871%
+}
+
+.emojione-1F348 {
+    background-position: 40.625% 54.83871%
+}
+
+.emojione-1F349 {
+    background-position: 43.75% 54.83871%
+}
+
+.emojione-1F34A {
+    background-position: 46.875% 54.83871%
+}
+
+.emojione-1F34B {
+    background-position: 50% 54.83871%
+}
+
+.emojione-1F34C {
+    background-position: 53.125% 54.83871%
+}
+
+.emojione-1F34D {
+    background-position: 56.25% 0%
+}
+
+.emojione-1F34E {
+    background-position: 56.25% 3.22581%
+}
+
+.emojione-1F34F {
+    background-position: 56.25% 6.45161%
+}
+
+.emojione-1F350 {
+    background-position: 56.25% 9.67742%
+}
+
+.emojione-1F351 {
+    background-position: 56.25% 12.90323%
+}
+
+.emojione-1F352 {
+    background-position: 56.25% 16.12903%
+}
+
+.emojione-1F353 {
+    background-position: 56.25% 19.35484%
+}
+
+.emojione-1F354 {
+    background-position: 56.25% 22.58065%
+}
+
+.emojione-1F355 {
+    background-position: 56.25% 25.80645%
+}
+
+.emojione-1F356 {
+    background-position: 56.25% 29.03226%
+}
+
+.emojione-1F357 {
+    background-position: 56.25% 32.25806%
+}
+
+.emojione-1F358 {
+    background-position: 56.25% 35.48387%
+}
+
+.emojione-1F359 {
+    background-position: 56.25% 38.70968%
+}
+
+.emojione-1F35A {
+    background-position: 56.25% 41.93548%
+}
+
+.emojione-1F35B {
+    background-position: 56.25% 45.16129%
+}
+
+.emojione-1F35C {
+    background-position: 56.25% 48.3871%
+}
+
+.emojione-1F35D {
+    background-position: 56.25% 51.6129%
+}
+
+.emojione-1F35E {
+    background-position: 56.25% 54.83871%
+}
+
+.emojione-1F35F {
+    background-position: 0% 58.06452%
+}
+
+.emojione-1F360 {
+    background-position: 3.125% 58.06452%
+}
+
+.emojione-1F361 {
+    background-position: 6.25% 58.06452%
+}
+
+.emojione-1F362 {
+    background-position: 9.375% 58.06452%
+}
+
+.emojione-1F363 {
+    background-position: 12.5% 58.06452%
+}
+
+.emojione-1F364 {
+    background-position: 15.625% 58.06452%
+}
+
+.emojione-1F365 {
+    background-position: 18.75% 58.06452%
+}
+
+.emojione-1F366 {
+    background-position: 21.875% 58.06452%
+}
+
+.emojione-1F367 {
+    background-position: 25% 58.06452%
+}
+
+.emojione-1F368 {
+    background-position: 28.125% 58.06452%
+}
+
+.emojione-1F369 {
+    background-position: 31.25% 58.06452%
+}
+
+.emojione-1F36A {
+    background-position: 34.375% 58.06452%
+}
+
+.emojione-1F36B {
+    background-position: 37.5% 58.06452%
+}
+
+.emojione-1F36C {
+    background-position: 40.625% 58.06452%
+}
+
+.emojione-1F36D {
+    background-position: 43.75% 58.06452%
+}
+
+.emojione-1F36E {
+    background-position: 46.875% 58.06452%
+}
+
+.emojione-1F36F {
+    background-position: 50% 58.06452%
+}
+
+.emojione-1F370 {
+    background-position: 53.125% 58.06452%
+}
+
+.emojione-1F371 {
+    background-position: 56.25% 58.06452%
+}
+
+.emojione-1F372 {
+    background-position: 59.375% 0%
+}
+
+.emojione-1F373 {
+    background-position: 59.375% 3.22581%
+}
+
+.emojione-1F374 {
+    background-position: 59.375% 6.45161%
+}
+
+.emojione-1F375 {
+    background-position: 59.375% 9.67742%
+}
+
+.emojione-1F376 {
+    background-position: 59.375% 12.90323%
+}
+
+.emojione-1F377 {
+    background-position: 59.375% 16.12903%
+}
+
+.emojione-1F378 {
+    background-position: 59.375% 19.35484%
+}
+
+.emojione-1F379 {
+    background-position: 59.375% 22.58065%
+}
+
+.emojione-1F37A {
+    background-position: 59.375% 25.80645%
+}
+
+.emojione-1F37B {
+    background-position: 59.375% 29.03226%
+}
+
+.emojione-1F37C {
+    background-position: 59.375% 32.25806%
+}
+
+.emojione-1F380 {
+    background-position: 59.375% 35.48387%
+}
+
+.emojione-1F381 {
+    background-position: 59.375% 38.70968%
+}
+
+.emojione-1F382 {
+    background-position: 59.375% 41.93548%
+}
+
+.emojione-1F383 {
+    background-position: 59.375% 45.16129%
+}
+
+.emojione-1F384 {
+    background-position: 59.375% 48.3871%
+}
+
+.emojione-1F385 {
+    background-position: 59.375% 51.6129%
+}
+
+.emojione-1F386 {
+    background-position: 59.375% 54.83871%
+}
+
+.emojione-1F387 {
+    background-position: 59.375% 58.06452%
+}
+
+.emojione-1F388 {
+    background-position: 0% 61.29032%
+}
+
+.emojione-1F389 {
+    background-position: 3.125% 61.29032%
+}
+
+.emojione-1F38A {
+    background-position: 6.25% 61.29032%
+}
+
+.emojione-1F38B {
+    background-position: 9.375% 61.29032%
+}
+
+.emojione-1F38C {
+    background-position: 12.5% 61.29032%
+}
+
+.emojione-1F38D {
+    background-position: 15.625% 61.29032%
+}
+
+.emojione-1F38E {
+    background-position: 18.75% 61.29032%
+}
+
+.emojione-1F38F {
+    background-position: 21.875% 61.29032%
+}
+
+.emojione-1F390 {
+    background-position: 25% 61.29032%
+}
+
+.emojione-1F391 {
+    background-position: 28.125% 61.29032%
+}
+
+.emojione-1F392 {
+    background-position: 31.25% 61.29032%
+}
+
+.emojione-1F393 {
+    background-position: 34.375% 61.29032%
+}
+
+.emojione-1F3A0 {
+    background-position: 37.5% 61.29032%
+}
+
+.emojione-1F3A1 {
+    background-position: 40.625% 61.29032%
+}
+
+.emojione-1F3A2 {
+    background-position: 43.75% 61.29032%
+}
+
+.emojione-1F3A3 {
+    background-position: 46.875% 61.29032%
+}
+
+.emojione-1F3A4 {
+    background-position: 50% 61.29032%
+}
+
+.emojione-1F3A5 {
+    background-position: 53.125% 61.29032%
+}
+
+.emojione-1F3A6 {
+    background-position: 56.25% 61.29032%
+}
+
+.emojione-1F3A7 {
+    background-position: 59.375% 61.29032%
+}
+
+.emojione-1F3A8 {
+    background-position: 62.5% 0%
+}
+
+.emojione-1F3A9 {
+    background-position: 62.5% 3.22581%
+}
+
+.emojione-1F3AA {
+    background-position: 62.5% 6.45161%
+}
+
+.emojione-1F3AB {
+    background-position: 62.5% 9.67742%
+}
+
+.emojione-1F3AC {
+    background-position: 62.5% 12.90323%
+}
+
+.emojione-1F3AD {
+    background-position: 62.5% 16.12903%
+}
+
+.emojione-1F3AE {
+    background-position: 62.5% 19.35484%
+}
+
+.emojione-1F3AF {
+    background-position: 62.5% 22.58065%
+}
+
+.emojione-1F3B0 {
+    background-position: 62.5% 25.80645%
+}
+
+.emojione-1F3B1 {
+    background-position: 62.5% 29.03226%
+}
+
+.emojione-1F3B2 {
+    background-position: 62.5% 32.25806%
+}
+
+.emojione-1F3B3 {
+    background-position: 62.5% 35.48387%
+}
+
+.emojione-1F3B4 {
+    background-position: 62.5% 38.70968%
+}
+
+.emojione-1F3B5 {
+    background-position: 62.5% 41.93548%
+}
+
+.emojione-1F3B6 {
+    background-position: 62.5% 45.16129%
+}
+
+.emojione-1F3B7 {
+    background-position: 62.5% 48.3871%
+}
+
+.emojione-1F3B8 {
+    background-position: 62.5% 51.6129%
+}
+
+.emojione-1F3B9 {
+    background-position: 62.5% 54.83871%
+}
+
+.emojione-1F3BA {
+    background-position: 62.5% 58.06452%
+}
+
+.emojione-1F3BB {
+    background-position: 62.5% 61.29032%
+}
+
+.emojione-1F3BC {
+    background-position: 0% 64.51613%
+}
+
+.emojione-1F3BD {
+    background-position: 3.125% 64.51613%
+}
+
+.emojione-1F3BE {
+    background-position: 6.25% 64.51613%
+}
+
+.emojione-1F3BF {
+    background-position: 9.375% 64.51613%
+}
+
+.emojione-1F3C0 {
+    background-position: 12.5% 64.51613%
+}
+
+.emojione-1F3C1 {
+    background-position: 15.625% 64.51613%
+}
+
+.emojione-1F3C2 {
+    background-position: 18.75% 64.51613%
+}
+
+.emojione-1F3C3 {
+    background-position: 0% 0%
+}
+
+.emojione-1F3C4 {
+    background-position: 25% 64.51613%
+}
+
+.emojione-1F3C6 {
+    background-position: 28.125% 64.51613%
+}
+
+.emojione-1F3C7 {
+    background-position: 31.25% 64.51613%
+}
+
+.emojione-1F3C8 {
+    background-position: 34.375% 64.51613%
+}
+
+.emojione-1F3C9 {
+    background-position: 37.5% 64.51613%
+}
+
+.emojione-1F3CA {
+    background-position: 40.625% 64.51613%
+}
+
+.emojione-1F3E0 {
+    background-position: 43.75% 64.51613%
+}
+
+.emojione-1F3E1 {
+    background-position: 46.875% 64.51613%
+}
+
+.emojione-1F3E2 {
+    background-position: 50% 64.51613%
+}
+
+.emojione-1F3E3 {
+    background-position: 53.125% 64.51613%
+}
+
+.emojione-1F3E4 {
+    background-position: 56.25% 64.51613%
+}
+
+.emojione-1F3E5 {
+    background-position: 59.375% 64.51613%
+}
+
+.emojione-1F3E6 {
+    background-position: 62.5% 64.51613%
+}
+
+.emojione-1F3E7 {
+    background-position: 65.625% 0%
+}
+
+.emojione-1F3E8 {
+    background-position: 65.625% 3.22581%
+}
+
+.emojione-1F3E9 {
+    background-position: 65.625% 6.45161%
+}
+
+.emojione-1F3EA {
+    background-position: 65.625% 9.67742%
+}
+
+.emojione-1F3EB {
+    background-position: 65.625% 12.90323%
+}
+
+.emojione-1F3EC {
+    background-position: 65.625% 16.12903%
+}
+
+.emojione-1F3ED {
+    background-position: 65.625% 19.35484%
+}
+
+.emojione-1F3EE {
+    background-position: 65.625% 22.58065%
+}
+
+.emojione-1F3EF {
+    background-position: 65.625% 25.80645%
+}
+
+.emojione-1F3F0 {
+    background-position: 65.625% 29.03226%
+}
+
+.emojione-1F400 {
+    background-position: 65.625% 32.25806%
+}
+
+.emojione-1F401 {
+    background-position: 65.625% 35.48387%
+}
+
+.emojione-1F402 {
+    background-position: 65.625% 38.70968%
+}
+
+.emojione-1F403 {
+    background-position: 65.625% 41.93548%
+}
+
+.emojione-1F404 {
+    background-position: 65.625% 45.16129%
+}
+
+.emojione-1F405 {
+    background-position: 65.625% 48.3871%
+}
+
+.emojione-1F406 {
+    background-position: 65.625% 51.6129%
+}
+
+.emojione-1F407 {
+    background-position: 65.625% 54.83871%
+}
+
+.emojione-1F408 {
+    background-position: 65.625% 58.06452%
+}
+
+.emojione-1F409 {
+    background-position: 65.625% 61.29032%
+}
+
+.emojione-1F40A {
+    background-position: 65.625% 64.51613%
+}
+
+.emojione-1F40B {
+    background-position: 0% 67.74194%
+}
+
+.emojione-1F40C {
+    background-position: 3.125% 67.74194%
+}
+
+.emojione-1F40D {
+    background-position: 6.25% 67.74194%
+}
+
+.emojione-1F40E {
+    background-position: 9.375% 67.74194%
+}
+
+.emojione-1F40F {
+    background-position: 12.5% 67.74194%
+}
+
+.emojione-1F410 {
+    background-position: 15.625% 67.74194%
+}
+
+.emojione-1F411 {
+    background-position: 18.75% 67.74194%
+}
+
+.emojione-1F412 {
+    background-position: 21.875% 67.74194%
+}
+
+.emojione-1F413 {
+    background-position: 25% 67.74194%
+}
+
+.emojione-1F414 {
+    background-position: 28.125% 67.74194%
+}
+
+.emojione-1F415 {
+    background-position: 31.25% 67.74194%
+}
+
+.emojione-1F416 {
+    background-position: 34.375% 67.74194%
+}
+
+.emojione-1F417 {
+    background-position: 37.5% 67.74194%
+}
+
+.emojione-1F418 {
+    background-position: 40.625% 67.74194%
+}
+
+.emojione-1F419 {
+    background-position: 43.75% 67.74194%
+}
+
+.emojione-1F41A {
+    background-position: 46.875% 67.74194%
+}
+
+.emojione-1F41B {
+    background-position: 50% 67.74194%
+}
+
+.emojione-1F41C {
+    background-position: 53.125% 67.74194%
+}
+
+.emojione-1F41D {
+    background-position: 56.25% 67.74194%
+}
+
+.emojione-1F41E {
+    background-position: 59.375% 67.74194%
+}
+
+.emojione-1F41F {
+    background-position: 62.5% 67.74194%
+}
+
+.emojione-1F420 {
+    background-position: 65.625% 67.74194%
+}
+
+.emojione-1F421 {
+    background-position: 68.75% 0%
+}
+
+.emojione-1F422 {
+    background-position: 68.75% 3.22581%
+}
+
+.emojione-1F423 {
+    background-position: 68.75% 6.45161%
+}
+
+.emojione-1F424 {
+    background-position: 68.75% 9.67742%
+}
+
+.emojione-1F425 {
+    background-position: 68.75% 12.90323%
+}
+
+.emojione-1F426 {
+    background-position: 68.75% 16.12903%
+}
+
+.emojione-1F427 {
+    background-position: 68.75% 19.35484%
+}
+
+.emojione-1F428 {
+    background-position: 68.75% 22.58065%
+}
+
+.emojione-1F429 {
+    background-position: 68.75% 25.80645%
+}
+
+.emojione-1F42A {
+    background-position: 68.75% 29.03226%
+}
+
+.emojione-1F42B {
+    background-position: 68.75% 32.25806%
+}
+
+.emojione-1F42C {
+    background-position: 68.75% 35.48387%
+}
+
+.emojione-1F42D {
+    background-position: 68.75% 38.70968%
+}
+
+.emojione-1F42E {
+    background-position: 68.75% 41.93548%
+}
+
+.emojione-1F42F {
+    background-position: 68.75% 45.16129%
+}
+
+.emojione-1F430 {
+    background-position: 68.75% 48.3871%
+}
+
+.emojione-1F431 {
+    background-position: 68.75% 51.6129%
+}
+
+.emojione-1F432 {
+    background-position: 68.75% 54.83871%
+}
+
+.emojione-1F433 {
+    background-position: 68.75% 58.06452%
+}
+
+.emojione-1F434 {
+    background-position: 68.75% 61.29032%
+}
+
+.emojione-1F435 {
+    background-position: 68.75% 64.51613%
+}
+
+.emojione-1F436 {
+    background-position: 68.75% 67.74194%
+}
+
+.emojione-1F437 {
+    background-position: 0% 70.96774%
+}
+
+.emojione-1F438 {
+    background-position: 3.125% 70.96774%
+}
+
+.emojione-1F439 {
+    background-position: 6.25% 70.96774%
+}
+
+.emojione-1F43A {
+    background-position: 9.375% 70.96774%
+}
+
+.emojione-1F43B {
+    background-position: 12.5% 70.96774%
+}
+
+.emojione-1F43C {
+    background-position: 15.625% 70.96774%
+}
+
+.emojione-1F43D {
+    background-position: 18.75% 70.96774%
+}
+
+.emojione-1F43E {
+    background-position: 21.875% 70.96774%
+}
+
+.emojione-1F440 {
+    background-position: 25% 70.96774%
+}
+
+.emojione-1F442 {
+    background-position: 28.125% 70.96774%
+}
+
+.emojione-1F443 {
+    background-position: 31.25% 70.96774%
+}
+
+.emojione-1F444 {
+    background-position: 34.375% 70.96774%
+}
+
+.emojione-1F445 {
+    background-position: 37.5% 70.96774%
+}
+
+.emojione-1F446 {
+    background-position: 40.625% 70.96774%
+}
+
+.emojione-1F447 {
+    background-position: 43.75% 70.96774%
+}
+
+.emojione-1F448 {
+    background-position: 46.875% 70.96774%
+}
+
+.emojione-1F449 {
+    background-position: 50% 70.96774%
+}
+
+.emojione-1F44A {
+    background-position: 53.125% 70.96774%
+}
+
+.emojione-1F44B {
+    background-position: 56.25% 70.96774%
+}
+
+.emojione-1F44C {
+    background-position: 59.375% 70.96774%
+}
+
+.emojione-1F44D {
+    background-position: 62.5% 70.96774%
+}
+
+.emojione-1F44E {
+    background-position: 65.625% 70.96774%
+}
+
+.emojione-1F44F {
+    background-position: 68.75% 70.96774%
+}
+
+.emojione-1F450 {
+    background-position: 71.875% 0%
+}
+
+.emojione-1F451 {
+    background-position: 71.875% 3.22581%
+}
+
+.emojione-1F452 {
+    background-position: 71.875% 6.45161%
+}
+
+.emojione-1F453 {
+    background-position: 71.875% 9.67742%
+}
+
+.emojione-1F454 {
+    background-position: 71.875% 12.90323%
+}
+
+.emojione-1F455 {
+    background-position: 71.875% 16.12903%
+}
+
+.emojione-1F456 {
+    background-position: 71.875% 19.35484%
+}
+
+.emojione-1F457 {
+    background-position: 71.875% 22.58065%
+}
+
+.emojione-1F458 {
+    background-position: 71.875% 25.80645%
+}
+
+.emojione-1F459 {
+    background-position: 71.875% 29.03226%
+}
+
+.emojione-1F45A {
+    background-position: 71.875% 32.25806%
+}
+
+.emojione-1F45B {
+    background-position: 71.875% 35.48387%
+}
+
+.emojione-1F45C {
+    background-position: 71.875% 38.70968%
+}
+
+.emojione-1F45D {
+    background-position: 71.875% 41.93548%
+}
+
+.emojione-1F45E {
+    background-position: 71.875% 45.16129%
+}
+
+.emojione-1F45F {
+    background-position: 71.875% 48.3871%
+}
+
+.emojione-1F460 {
+    background-position: 71.875% 51.6129%
+}
+
+.emojione-1F461 {
+    background-position: 71.875% 54.83871%
+}
+
+.emojione-1F462 {
+    background-position: 71.875% 58.06452%
+}
+
+.emojione-1F463 {
+    background-position: 71.875% 61.29032%
+}
+
+.emojione-1F464 {
+    background-position: 71.875% 64.51613%
+}
+
+.emojione-1F465 {
+    background-position: 71.875% 67.74194%
+}
+
+.emojione-1F466 {
+    background-position: 71.875% 70.96774%
+}
+
+.emojione-1F467 {
+    background-position: 0% 74.19355%
+}
+
+.emojione-1F468 {
+    background-position: 3.125% 74.19355%
+}
+
+.emojione-1F469 {
+    background-position: 6.25% 74.19355%
+}
+
+.emojione-1F46A {
+    background-position: 9.375% 74.19355%
+}
+
+.emojione-1F46B {
+    background-position: 12.5% 74.19355%
+}
+
+.emojione-1F46C {
+    background-position: 15.625% 74.19355%
+}
+
+.emojione-1F46D {
+    background-position: 18.75% 74.19355%
+}
+
+.emojione-1F46E {
+    background-position: 21.875% 74.19355%
+}
+
+.emojione-1F46F {
+    background-position: 25% 74.19355%
+}
+
+.emojione-1F470 {
+    background-position: 28.125% 74.19355%
+}
+
+.emojione-1F471 {
+    background-position: 31.25% 74.19355%
+}
+
+.emojione-1F472 {
+    background-position: 34.375% 74.19355%
+}
+
+.emojione-1F473 {
+    background-position: 37.5% 74.19355%
+}
+
+.emojione-1F474 {
+    background-position: 40.625% 74.19355%
+}
+
+.emojione-1F475 {
+    background-position: 43.75% 74.19355%
+}
+
+.emojione-1F476 {
+    background-position: 46.875% 74.19355%
+}
+
+.emojione-1F477 {
+    background-position: 50% 74.19355%
+}
+
+.emojione-1F478 {
+    background-position: 53.125% 74.19355%
+}
+
+.emojione-1F479 {
+    background-position: 56.25% 74.19355%
+}
+
+.emojione-1F47A {
+    background-position: 59.375% 74.19355%
+}
+
+.emojione-1F47B {
+    background-position: 62.5% 74.19355%
+}
+
+.emojione-1F47C {
+    background-position: 65.625% 74.19355%
+}
+
+.emojione-1F47D {
+    background-position: 68.75% 74.19355%
+}
+
+.emojione-1F47E {
+    background-position: 71.875% 74.19355%
+}
+
+.emojione-1F47F {
+    background-position: 75% 0%
+}
+
+.emojione-1F480 {
+    background-position: 75% 3.22581%
+}
+
+.emojione-1F481 {
+    background-position: 75% 6.45161%
+}
+
+.emojione-1F482 {
+    background-position: 75% 9.67742%
+}
+
+.emojione-1F483 {
+    background-position: 75% 12.90323%
+}
+
+.emojione-1F484 {
+    background-position: 75% 16.12903%
+}
+
+.emojione-1F485 {
+    background-position: 75% 19.35484%
+}
+
+.emojione-1F486 {
+    background-position: 75% 22.58065%
+}
+
+.emojione-1F487 {
+    background-position: 75% 25.80645%
+}
+
+.emojione-1F488 {
+    background-position: 75% 29.03226%
+}
+
+.emojione-1F489 {
+    background-position: 75% 32.25806%
+}
+
+.emojione-1F48A {
+    background-position: 75% 35.48387%
+}
+
+.emojione-1F48B {
+    background-position: 75% 38.70968%
+}
+
+.emojione-1F48C {
+    background-position: 75% 41.93548%
+}
+
+.emojione-1F48D {
+    background-position: 75% 45.16129%
+}
+
+.emojione-1F48E {
+    background-position: 75% 48.3871%
+}
+
+.emojione-1F48F {
+    background-position: 75% 51.6129%
+}
+
+.emojione-1F490 {
+    background-position: 75% 54.83871%
+}
+
+.emojione-1F491 {
+    background-position: 75% 58.06452%
+}
+
+.emojione-1F492 {
+    background-position: 75% 61.29032%
+}
+
+.emojione-1F493 {
+    background-position: 75% 64.51613%
+}
+
+.emojione-1F494 {
+    background-position: 75% 67.74194%
+}
+
+.emojione-1F495 {
+    background-position: 75% 70.96774%
+}
+
+.emojione-1F496 {
+    background-position: 75% 74.19355%
+}
+
+.emojione-1F497 {
+    background-position: 0% 77.41935%
+}
+
+.emojione-1F498 {
+    background-position: 3.125% 77.41935%
+}
+
+.emojione-1F499 {
+    background-position: 6.25% 77.41935%
+}
+
+.emojione-1F49A {
+    background-position: 9.375% 77.41935%
+}
+
+.emojione-1F49B {
+    background-position: 12.5% 77.41935%
+}
+
+.emojione-1F49C {
+    background-position: 15.625% 77.41935%
+}
+
+.emojione-1F49D {
+    background-position: 18.75% 77.41935%
+}
+
+.emojione-1F49E {
+    background-position: 21.875% 77.41935%
+}
+
+.emojione-1F49F {
+    background-position: 25% 77.41935%
+}
+
+.emojione-1F4A0 {
+    background-position: 28.125% 77.41935%
+}
+
+.emojione-1F4A1 {
+    background-position: 31.25% 77.41935%
+}
+
+.emojione-1F4A2 {
+    background-position: 34.375% 77.41935%
+}
+
+.emojione-1F4A3 {
+    background-position: 37.5% 77.41935%
+}
+
+.emojione-1F4A4 {
+    background-position: 40.625% 77.41935%
+}
+
+.emojione-1F4A5 {
+    background-position: 43.75% 77.41935%
+}
+
+.emojione-1F4A6 {
+    background-position: 46.875% 77.41935%
+}
+
+.emojione-1F4A7 {
+    background-position: 50% 77.41935%
+}
+
+.emojione-1F4A8 {
+    background-position: 53.125% 77.41935%
+}
+
+.emojione-1F4A9 {
+    background-position: 56.25% 77.41935%
+}
+
+.emojione-1F4AA {
+    background-position: 59.375% 77.41935%
+}
+
+.emojione-1F4AB {
+    background-position: 62.5% 77.41935%
+}
+
+.emojione-1F4AC {
+    background-position: 65.625% 77.41935%
+}
+
+.emojione-1F4AD {
+    background-position: 68.75% 77.41935%
+}
+
+.emojione-1F4AE {
+    background-position: 71.875% 77.41935%
+}
+
+.emojione-1F4AF {
+    background-position: 75% 77.41935%
+}
+
+.emojione-1F4B0 {
+    background-position: 78.125% 0%
+}
+
+.emojione-1F4B1 {
+    background-position: 78.125% 3.22581%
+}
+
+.emojione-1F4B2 {
+    background-position: 78.125% 6.45161%
+}
+
+.emojione-1F4B3 {
+    background-position: 78.125% 9.67742%
+}
+
+.emojione-1F4B4 {
+    background-position: 78.125% 12.90323%
+}
+
+.emojione-1F4B5 {
+    background-position: 78.125% 16.12903%
+}
+
+.emojione-1F4B6 {
+    background-position: 78.125% 19.35484%
+}
+
+.emojione-1F4B7 {
+    background-position: 78.125% 22.58065%
+}
+
+.emojione-1F4B8 {
+    background-position: 78.125% 25.80645%
+}
+
+.emojione-1F4B9 {
+    background-position: 78.125% 29.03226%
+}
+
+.emojione-1F4BA {
+    background-position: 78.125% 32.25806%
+}
+
+.emojione-1F4BB {
+    background-position: 78.125% 35.48387%
+}
+
+.emojione-1F4BC {
+    background-position: 78.125% 38.70968%
+}
+
+.emojione-1F4BD {
+    background-position: 78.125% 41.93548%
+}
+
+.emojione-1F4BE {
+    background-position: 78.125% 45.16129%
+}
+
+.emojione-1F4BF {
+    background-position: 78.125% 48.3871%
+}
+
+.emojione-1F4C0 {
+    background-position: 78.125% 51.6129%
+}
+
+.emojione-1F4C1 {
+    background-position: 78.125% 54.83871%
+}
+
+.emojione-1F4C2 {
+    background-position: 78.125% 58.06452%
+}
+
+.emojione-1F4C3 {
+    background-position: 78.125% 61.29032%
+}
+
+.emojione-1F4C4 {
+    background-position: 78.125% 64.51613%
+}
+
+.emojione-1F4C5 {
+    background-position: 78.125% 67.74194%
+}
+
+.emojione-1F4C6 {
+    background-position: 78.125% 70.96774%
+}
+
+.emojione-1F4C7 {
+    background-position: 78.125% 74.19355%
+}
+
+.emojione-1F4C8 {
+    background-position: 78.125% 77.41935%
+}
+
+.emojione-1F4C9 {
+    background-position: 0% 80.64516%
+}
+
+.emojione-1F4CA {
+    background-position: 3.125% 80.64516%
+}
+
+.emojione-1F4CB {
+    background-position: 6.25% 80.64516%
+}
+
+.emojione-1F4CC {
+    background-position: 9.375% 80.64516%
+}
+
+.emojione-1F4CD {
+    background-position: 12.5% 80.64516%
+}
+
+.emojione-1F4CE {
+    background-position: 15.625% 80.64516%
+}
+
+.emojione-1F4CF {
+    background-position: 18.75% 80.64516%
+}
+
+.emojione-1F4D0 {
+    background-position: 21.875% 80.64516%
+}
+
+.emojione-1F4D1 {
+    background-position: 25% 80.64516%
+}
+
+.emojione-1F4D2 {
+    background-position: 28.125% 80.64516%
+}
+
+.emojione-1F4D3 {
+    background-position: 31.25% 80.64516%
+}
+
+.emojione-1F4D4 {
+    background-position: 34.375% 80.64516%
+}
+
+.emojione-1F4D5 {
+    background-position: 37.5% 80.64516%
+}
+
+.emojione-1F4D6 {
+    background-position: 40.625% 80.64516%
+}
+
+.emojione-1F4D7 {
+    background-position: 43.75% 80.64516%
+}
+
+.emojione-1F4D8 {
+    background-position: 46.875% 80.64516%
+}
+
+.emojione-1F4D9 {
+    background-position: 50% 80.64516%
+}
+
+.emojione-1F4DA {
+    background-position: 53.125% 80.64516%
+}
+
+.emojione-1F4DB {
+    background-position: 56.25% 80.64516%
+}
+
+.emojione-1F4DC {
+    background-position: 59.375% 80.64516%
+}
+
+.emojione-1F4DD {
+    background-position: 62.5% 80.64516%
+}
+
+.emojione-1F4DE {
+    background-position: 65.625% 80.64516%
+}
+
+.emojione-1F4DF {
+    background-position: 68.75% 80.64516%
+}
+
+.emojione-1F4E0 {
+    background-position: 71.875% 80.64516%
+}
+
+.emojione-1F4E1 {
+    background-position: 75% 80.64516%
+}
+
+.emojione-1F4E2 {
+    background-position: 78.125% 80.64516%
+}
+
+.emojione-1F4E3 {
+    background-position: 81.25% 0%
+}
+
+.emojione-1F4E4 {
+    background-position: 81.25% 3.22581%
+}
+
+.emojione-1F4E5 {
+    background-position: 81.25% 6.45161%
+}
+
+.emojione-1F4E6 {
+    background-position: 81.25% 9.67742%
+}
+
+.emojione-1F4E7 {
+    background-position: 81.25% 12.90323%
+}
+
+.emojione-1F4E8 {
+    background-position: 81.25% 16.12903%
+}
+
+.emojione-1F4E9 {
+    background-position: 81.25% 19.35484%
+}
+
+.emojione-1F4EA {
+    background-position: 81.25% 22.58065%
+}
+
+.emojione-1F4EB {
+    background-position: 81.25% 25.80645%
+}
+
+.emojione-1F4EC {
+    background-position: 81.25% 29.03226%
+}
+
+.emojione-1F4ED {
+    background-position: 81.25% 32.25806%
+}
+
+.emojione-1F4EE {
+    background-position: 81.25% 35.48387%
+}
+
+.emojione-1F4EF {
+    background-position: 81.25% 38.70968%
+}
+
+.emojione-1F4F0 {
+    background-position: 81.25% 41.93548%
+}
+
+.emojione-1F4F1 {
+    background-position: 81.25% 45.16129%
+}
+
+.emojione-1F4F2 {
+    background-position: 81.25% 48.3871%
+}
+
+.emojione-1F4F3 {
+    background-position: 81.25% 51.6129%
+}
+
+.emojione-1F4F4 {
+    background-position: 81.25% 54.83871%
+}
+
+.emojione-1F4F5 {
+    background-position: 81.25% 58.06452%
+}
+
+.emojione-1F4F6 {
+    background-position: 81.25% 61.29032%
+}
+
+.emojione-1F4F7 {
+    background-position: 81.25% 64.51613%
+}
+
+.emojione-1F4F9 {
+    background-position: 81.25% 67.74194%
+}
+
+.emojione-1F4FA {
+    background-position: 81.25% 70.96774%
+}
+
+.emojione-1F4FB {
+    background-position: 81.25% 74.19355%
+}
+
+.emojione-1F4FC {
+    background-position: 81.25% 77.41935%
+}
+
+.emojione-1F500 {
+    background-position: 81.25% 80.64516%
+}
+
+.emojione-1F501 {
+    background-position: 0% 83.87097%
+}
+
+.emojione-1F502 {
+    background-position: 3.125% 83.87097%
+}
+
+.emojione-1F503 {
+    background-position: 6.25% 83.87097%
+}
+
+.emojione-1F504 {
+    background-position: 9.375% 83.87097%
+}
+
+.emojione-1F505 {
+    background-position: 12.5% 83.87097%
+}
+
+.emojione-1F506 {
+    background-position: 15.625% 83.87097%
+}
+
+.emojione-1F507 {
+    background-position: 18.75% 83.87097%
+}
+
+.emojione-1F508 {
+    background-position: 21.875% 83.87097%
+}
+
+.emojione-1F509 {
+    background-position: 25% 83.87097%
+}
+
+.emojione-1F50A {
+    background-position: 28.125% 83.87097%
+}
+
+.emojione-1F50B {
+    background-position: 31.25% 83.87097%
+}
+
+.emojione-1F50C {
+    background-position: 34.375% 83.87097%
+}
+
+.emojione-1F50D {
+    background-position: 37.5% 83.87097%
+}
+
+.emojione-1F50E {
+    background-position: 40.625% 83.87097%
+}
+
+.emojione-1F50F {
+    background-position: 43.75% 83.87097%
+}
+
+.emojione-1F510 {
+    background-position: 46.875% 83.87097%
+}
+
+.emojione-1F511 {
+    background-position: 50% 83.87097%
+}
+
+.emojione-1F512 {
+    background-position: 53.125% 83.87097%
+}
+
+.emojione-1F513 {
+    background-position: 56.25% 83.87097%
+}
+
+.emojione-1F514 {
+    background-position: 59.375% 83.87097%
+}
+
+.emojione-1F515 {
+    background-position: 62.5% 83.87097%
+}
+
+.emojione-1F516 {
+    background-position: 65.625% 83.87097%
+}
+
+.emojione-1F517 {
+    background-position: 68.75% 83.87097%
+}
+
+.emojione-1F518 {
+    background-position: 71.875% 83.87097%
+}
+
+.emojione-1F519 {
+    background-position: 75% 83.87097%
+}
+
+.emojione-1F51A {
+    background-position: 78.125% 83.87097%
+}
+
+.emojione-1F51B {
+    background-position: 81.25% 83.87097%
+}
+
+.emojione-1F51C {
+    background-position: 84.375% 0%
+}
+
+.emojione-1F51D {
+    background-position: 84.375% 3.22581%
+}
+
+.emojione-1F51E {
+    background-position: 84.375% 6.45161%
+}
+
+.emojione-1F51F {
+    background-position: 84.375% 9.67742%
+}
+
+.emojione-1F520 {
+    background-position: 84.375% 12.90323%
+}
+
+.emojione-1F521 {
+    background-position: 84.375% 16.12903%
+}
+
+.emojione-1F522 {
+    background-position: 84.375% 19.35484%
+}
+
+.emojione-1F523 {
+    background-position: 84.375% 22.58065%
+}
+
+.emojione-1F524 {
+    background-position: 84.375% 25.80645%
+}
+
+.emojione-1F525 {
+    background-position: 84.375% 29.03226%
+}
+
+.emojione-1F526 {
+    background-position: 84.375% 32.25806%
+}
+
+.emojione-1F527 {
+    background-position: 84.375% 35.48387%
+}
+
+.emojione-1F528 {
+    background-position: 84.375% 38.70968%
+}
+
+.emojione-1F529 {
+    background-position: 84.375% 41.93548%
+}
+
+.emojione-1F52A {
+    background-position: 84.375% 45.16129%
+}
+
+.emojione-1F52B {
+    background-position: 84.375% 48.3871%
+}
+
+.emojione-1F52C {
+    background-position: 84.375% 51.6129%
+}
+
+.emojione-1F52D {
+    background-position: 84.375% 54.83871%
+}
+
+.emojione-1F52E {
+    background-position: 84.375% 58.06452%
+}
+
+.emojione-1F52F {
+    background-position: 84.375% 61.29032%
+}
+
+.emojione-1F530 {
+    background-position: 84.375% 64.51613%
+}
+
+.emojione-1F531 {
+    background-position: 84.375% 67.74194%
+}
+
+.emojione-1F532 {
+    background-position: 84.375% 70.96774%
+}
+
+.emojione-1F533 {
+    background-position: 84.375% 74.19355%
+}
+
+.emojione-1F534 {
+    background-position: 84.375% 77.41935%
+}
+
+.emojione-1F535 {
+    background-position: 84.375% 80.64516%
+}
+
+.emojione-1F536 {
+    background-position: 84.375% 83.87097%
+}
+
+.emojione-1F537 {
+    background-position: 0% 87.09677%
+}
+
+.emojione-1F538 {
+    background-position: 3.125% 87.09677%
+}
+
+.emojione-1F539 {
+    background-position: 6.25% 87.09677%
+}
+
+.emojione-1F53A {
+    background-position: 9.375% 87.09677%
+}
+
+.emojione-1F53B {
+    background-position: 12.5% 87.09677%
+}
+
+.emojione-1F53C {
+    background-position: 15.625% 87.09677%
+}
+
+.emojione-1F53D {
+    background-position: 18.75% 87.09677%
+}
+
+.emojione-1F550 {
+    background-position: 21.875% 87.09677%
+}
+
+.emojione-1F551 {
+    background-position: 25% 87.09677%
+}
+
+.emojione-1F552 {
+    background-position: 28.125% 87.09677%
+}
+
+.emojione-1F553 {
+    background-position: 31.25% 87.09677%
+}
+
+.emojione-1F554 {
+    background-position: 34.375% 87.09677%
+}
+
+.emojione-1F555 {
+    background-position: 37.5% 87.09677%
+}
+
+.emojione-1F556 {
+    background-position: 40.625% 87.09677%
+}
+
+.emojione-1F557 {
+    background-position: 43.75% 87.09677%
+}
+
+.emojione-1F558 {
+    background-position: 46.875% 87.09677%
+}
+
+.emojione-1F559 {
+    background-position: 50% 87.09677%
+}
+
+.emojione-1F55A {
+    background-position: 53.125% 87.09677%
+}
+
+.emojione-1F55B {
+    background-position: 56.25% 87.09677%
+}
+
+.emojione-1F55C {
+    background-position: 59.375% 87.09677%
+}
+
+.emojione-1F55D {
+    background-position: 62.5% 87.09677%
+}
+
+.emojione-1F55E {
+    background-position: 65.625% 87.09677%
+}
+
+.emojione-1F55F {
+    background-position: 68.75% 87.09677%
+}
+
+.emojione-1F560 {
+    background-position: 71.875% 87.09677%
+}
+
+.emojione-1F561 {
+    background-position: 75% 87.09677%
+}
+
+.emojione-1F562 {
+    background-position: 78.125% 87.09677%
+}
+
+.emojione-1F563 {
+    background-position: 81.25% 87.09677%
+}
+
+.emojione-1F564 {
+    background-position: 84.375% 87.09677%
+}
+
+.emojione-1F565 {
+    background-position: 87.5% 0%
+}
+
+.emojione-1F566 {
+    background-position: 87.5% 3.22581%
+}
+
+.emojione-1F567 {
+    background-position: 87.5% 6.45161%
+}
+
+.emojione-1F5FB {
+    background-position: 87.5% 9.67742%
+}
+
+.emojione-1F5FC {
+    background-position: 87.5% 12.90323%
+}
+
+.emojione-1F5FD {
+    background-position: 87.5% 16.12903%
+}
+
+.emojione-1F5FE {
+    background-position: 87.5% 19.35484%
+}
+
+.emojione-1F5FF {
+    background-position: 87.5% 22.58065%
+}
+
+.emojione-1F600 {
+    background-position: 87.5% 25.80645%
+}
+
+.emojione-1F601 {
+    background-position: 87.5% 29.03226%
+}
+
+.emojione-1F602 {
+    background-position: 87.5% 32.25806%
+}
+
+.emojione-1F603 {
+    background-position: 87.5% 35.48387%
+}
+
+.emojione-1F604 {
+    background-position: 87.5% 38.70968%
+}
+
+.emojione-1F605 {
+    background-position: 87.5% 41.93548%
+}
+
+.emojione-1F606 {
+    background-position: 87.5% 45.16129%
+}
+
+.emojione-1F607 {
+    background-position: 87.5% 48.3871%
+}
+
+.emojione-1F608 {
+    background-position: 87.5% 51.6129%
+}
+
+.emojione-1F609 {
+    background-position: 87.5% 54.83871%
+}
+
+.emojione-1F60A {
+    background-position: 87.5% 58.06452%
+}
+
+.emojione-1F60B {
+    background-position: 87.5% 61.29032%
+}
+
+.emojione-1F60C {
+    background-position: 87.5% 64.51613%
+}
+
+.emojione-1F60D {
+    background-position: 87.5% 67.74194%
+}
+
+.emojione-1F60E {
+    background-position: 87.5% 70.96774%
+}
+
+.emojione-1F60F {
+    background-position: 87.5% 74.19355%
+}
+
+.emojione-1F610 {
+    background-position: 87.5% 77.41935%
+}
+
+.emojione-1F611 {
+    background-position: 87.5% 80.64516%
+}
+
+.emojione-1F612 {
+    background-position: 87.5% 83.87097%
+}
+
+.emojione-1F613 {
+    background-position: 87.5% 87.09677%
+}
+
+.emojione-1F614 {
+    background-position: 0% 90.32258%
+}
+
+.emojione-1F615 {
+    background-position: 3.125% 90.32258%
+}
+
+.emojione-1F616 {
+    background-position: 6.25% 90.32258%
+}
+
+.emojione-1F617 {
+    background-position: 9.375% 90.32258%
+}
+
+.emojione-1F618 {
+    background-position: 12.5% 90.32258%
+}
+
+.emojione-1F619 {
+    background-position: 15.625% 90.32258%
+}
+
+.emojione-1F61A {
+    background-position: 18.75% 90.32258%
+}
+
+.emojione-1F61B {
+    background-position: 21.875% 90.32258%
+}
+
+.emojione-1F61C {
+    background-position: 25% 90.32258%
+}
+
+.emojione-1F61D {
+    background-position: 28.125% 90.32258%
+}
+
+.emojione-1F61E {
+    background-position: 31.25% 90.32258%
+}
+
+.emojione-1F61F {
+    background-position: 34.375% 90.32258%
+}
+
+.emojione-1F620 {
+    background-position: 37.5% 90.32258%
+}
+
+.emojione-1F621 {
+    background-position: 40.625% 90.32258%
+}
+
+.emojione-1F622 {
+    background-position: 43.75% 90.32258%
+}
+
+.emojione-1F623 {
+    background-position: 46.875% 90.32258%
+}
+
+.emojione-1F624 {
+    background-position: 50% 90.32258%
+}
+
+.emojione-1F625 {
+    background-position: 53.125% 90.32258%
+}
+
+.emojione-1F626 {
+    background-position: 56.25% 90.32258%
+}
+
+.emojione-1F627 {
+    background-position: 59.375% 90.32258%
+}
+
+.emojione-1F628 {
+    background-position: 62.5% 90.32258%
+}
+
+.emojione-1F629 {
+    background-position: 65.625% 90.32258%
+}
+
+.emojione-1F62A {
+    background-position: 68.75% 90.32258%
+}
+
+.emojione-1F62B {
+    background-position: 71.875% 90.32258%
+}
+
+.emojione-1F62C {
+    background-position: 75% 90.32258%
+}
+
+.emojione-1F62D {
+    background-position: 78.125% 90.32258%
+}
+
+.emojione-1F62E {
+    background-position: 81.25% 90.32258%
+}
+
+.emojione-1F62F {
+    background-position: 84.375% 90.32258%
+}
+
+.emojione-1F630 {
+    background-position: 87.5% 90.32258%
+}
+
+.emojione-1F631 {
+    background-position: 90.625% 0%
+}
+
+.emojione-1F632 {
+    background-position: 90.625% 3.22581%
+}
+
+.emojione-1F633 {
+    background-position: 90.625% 6.45161%
+}
+
+.emojione-1F634 {
+    background-position: 90.625% 9.67742%
+}
+
+.emojione-1F635 {
+    background-position: 90.625% 12.90323%
+}
+
+.emojione-1F636 {
+    background-position: 90.625% 16.12903%
+}
+
+.emojione-1F637 {
+    background-position: 90.625% 19.35484%
+}
+
+.emojione-1F638 {
+    background-position: 90.625% 22.58065%
+}
+
+.emojione-1F639 {
+    background-position: 90.625% 25.80645%
+}
+
+.emojione-1F63A {
+    background-position: 90.625% 29.03226%
+}
+
+.emojione-1F63B {
+    background-position: 90.625% 32.25806%
+}
+
+.emojione-1F63C {
+    background-position: 90.625% 35.48387%
+}
+
+.emojione-1F63D {
+    background-position: 90.625% 38.70968%
+}
+
+.emojione-1F63E {
+    background-position: 90.625% 41.93548%
+}
+
+.emojione-1F63F {
+    background-position: 90.625% 45.16129%
+}
+
+.emojione-1F640 {
+    background-position: 90.625% 48.3871%
+}
+
+.emojione-1F645 {
+    background-position: 90.625% 51.6129%
+}
+
+.emojione-1F646 {
+    background-position: 90.625% 54.83871%
+}
+
+.emojione-1F647 {
+    background-position: 90.625% 58.06452%
+}
+
+.emojione-1F648 {
+    background-position: 90.625% 61.29032%
+}
+
+.emojione-1F649 {
+    background-position: 90.625% 64.51613%
+}
+
+.emojione-1F64A {
+    background-position: 90.625% 67.74194%
+}
+
+.emojione-1F64B {
+    background-position: 90.625% 70.96774%
+}
+
+.emojione-1F64C {
+    background-position: 90.625% 74.19355%
+}
+
+.emojione-1F64D {
+    background-position: 90.625% 77.41935%
+}
+
+.emojione-1F64E {
+    background-position: 90.625% 80.64516%
+}
+
+.emojione-1F64F {
+    background-position: 90.625% 83.87097%
+}
+
+.emojione-1F680 {
+    background-position: 90.625% 87.09677%
+}
+
+.emojione-1F681 {
+    background-position: 90.625% 90.32258%
+}
+
+.emojione-1F682 {
+    background-position: 0% 93.54839%
+}
+
+.emojione-1F683 {
+    background-position: 3.125% 93.54839%
+}
+
+.emojione-1F684 {
+    background-position: 6.25% 93.54839%
+}
+
+.emojione-1F685 {
+    background-position: 9.375% 93.54839%
+}
+
+.emojione-1F686 {
+    background-position: 12.5% 93.54839%
+}
+
+.emojione-1F687 {
+    background-position: 15.625% 93.54839%
+}
+
+.emojione-1F688 {
+    background-position: 18.75% 93.54839%
+}
+
+.emojione-1F689 {
+    background-position: 21.875% 93.54839%
+}
+
+.emojione-1F68A {
+    background-position: 25% 93.54839%
+}
+
+.emojione-1F68B {
+    background-position: 28.125% 93.54839%
+}
+
+.emojione-1F68C {
+    background-position: 31.25% 93.54839%
+}
+
+.emojione-1F68D {
+    background-position: 34.375% 93.54839%
+}
+
+.emojione-1F68E {
+    background-position: 37.5% 93.54839%
+}
+
+.emojione-1F68F {
+    background-position: 40.625% 93.54839%
+}
+
+.emojione-1F690 {
+    background-position: 43.75% 93.54839%
+}
+
+.emojione-1F691 {
+    background-position: 46.875% 93.54839%
+}
+
+.emojione-1F692 {
+    background-position: 50% 93.54839%
+}
+
+.emojione-1F693 {
+    background-position: 53.125% 93.54839%
+}
+
+.emojione-1F694 {
+    background-position: 56.25% 93.54839%
+}
+
+.emojione-1F695 {
+    background-position: 59.375% 93.54839%
+}
+
+.emojione-1F696 {
+    background-position: 62.5% 93.54839%
+}
+
+.emojione-1F697 {
+    background-position: 65.625% 93.54839%
+}
+
+.emojione-1F698 {
+    background-position: 68.75% 93.54839%
+}
+
+.emojione-1F699 {
+    background-position: 71.875% 93.54839%
+}
+
+.emojione-1F69A {
+    background-position: 75% 93.54839%
+}
+
+.emojione-1F69B {
+    background-position: 78.125% 93.54839%
+}
+
+.emojione-1F69C {
+    background-position: 81.25% 93.54839%
+}
+
+.emojione-1F69D {
+    background-position: 84.375% 93.54839%
+}
+
+.emojione-1F69E {
+    background-position: 87.5% 93.54839%
+}
+
+.emojione-1F69F {
+    background-position: 90.625% 93.54839%
+}
+
+.emojione-1F6A0 {
+    background-position: 93.75% 0%
+}
+
+.emojione-1F6A1 {
+    background-position: 93.75% 3.22581%
+}
+
+.emojione-1F6A2 {
+    background-position: 93.75% 6.45161%
+}
+
+.emojione-1F6A3 {
+    background-position: 93.75% 9.67742%
+}
+
+.emojione-1F6A4 {
+    background-position: 93.75% 12.90323%
+}
+
+.emojione-1F6A5 {
+    background-position: 93.75% 16.12903%
+}
+
+.emojione-1F6A6 {
+    background-position: 93.75% 19.35484%
+}
+
+.emojione-1F6A7 {
+    background-position: 93.75% 22.58065%
+}
+
+.emojione-1F6A8 {
+    background-position: 93.75% 25.80645%
+}
+
+.emojione-1F6A9 {
+    background-position: 93.75% 29.03226%
+}
+
+.emojione-1F6AA {
+    background-position: 93.75% 32.25806%
+}
+
+.emojione-1F6AB {
+    background-position: 93.75% 35.48387%
+}
+
+.emojione-1F6AC {
+    background-position: 93.75% 38.70968%
+}
+
+.emojione-1F6AD {
+    background-position: 93.75% 41.93548%
+}
+
+.emojione-1F6AE {
+    background-position: 93.75% 45.16129%
+}
+
+.emojione-1F6AF {
+    background-position: 93.75% 48.3871%
+}
+
+.emojione-1F6B0 {
+    background-position: 93.75% 51.6129%
+}
+
+.emojione-1F6B1 {
+    background-position: 93.75% 54.83871%
+}
+
+.emojione-1F6B2 {
+    background-position: 93.75% 58.06452%
+}
+
+.emojione-1F6B3 {
+    background-position: 93.75% 61.29032%
+}
+
+.emojione-1F6B4 {
+    background-position: 93.75% 64.51613%
+}
+
+.emojione-1F6B5 {
+    background-position: 93.75% 67.74194%
+}
+
+.emojione-1F6B6 {
+    background-position: 93.75% 70.96774%
+}
+
+.emojione-1F6B7 {
+    background-position: 93.75% 74.19355%
+}
+
+.emojione-1F6B8 {
+    background-position: 93.75% 77.41935%
+}
+
+.emojione-1F6B9 {
+    background-position: 93.75% 80.64516%
+}
+
+.emojione-1F6BA {
+    background-position: 93.75% 83.87097%
+}
+
+.emojione-1F6BB {
+    background-position: 93.75% 87.09677%
+}
+
+.emojione-1F6BC {
+    background-position: 93.75% 90.32258%
+}
+
+.emojione-1F6BD {
+    background-position: 93.75% 93.54839%
+}
+
+.emojione-1F6BE {
+    background-position: 0% 96.77419%
+}
+
+.emojione-1F6BF {
+    background-position: 3.125% 96.77419%
+}
+
+.emojione-1F6C0 {
+    background-position: 6.25% 96.77419%
+}
+
+.emojione-1F6C1 {
+    background-position: 9.375% 96.77419%
+}
+
+.emojione-1F6C2 {
+    background-position: 12.5% 96.77419%
+}
+
+.emojione-1F6C3 {
+    background-position: 15.625% 96.77419%
+}
+
+.emojione-1F6C4 {
+    background-position: 18.75% 96.77419%
+}
+
+.emojione-1F6C5 {
+    background-position: 21.875% 96.77419%
+}
+
+.emojione-203C {
+    background-position: 25% 96.77419%
+}
+
+.emojione-2049 {
+    background-position: 28.125% 96.77419%
+}
+
+.emojione-2122 {
+    background-position: 31.25% 96.77419%
+}
+
+.emojione-2139 {
+    background-position: 34.375% 96.77419%
+}
+
+.emojione-2194 {
+    background-position: 37.5% 96.77419%
+}
+
+.emojione-2195 {
+    background-position: 40.625% 96.77419%
+}
+
+.emojione-2196 {
+    background-position: 43.75% 96.77419%
+}
+
+.emojione-2197 {
+    background-position: 46.875% 96.77419%
+}
+
+.emojione-2198 {
+    background-position: 50% 96.77419%
+}
+
+.emojione-2199 {
+    background-position: 53.125% 96.77419%
+}
+
+.emojione-21A9 {
+    background-position: 56.25% 96.77419%
+}
+
+.emojione-21AA {
+    background-position: 59.375% 96.77419%
+}
+
+.emojione-231A {
+    background-position: 62.5% 96.77419%
+}
+
+.emojione-231B {
+    background-position: 65.625% 96.77419%
+}
+
+.emojione-23E9 {
+    background-position: 68.75% 96.77419%
+}
+
+.emojione-23EA {
+    background-position: 71.875% 96.77419%
+}
+
+.emojione-23EB {
+    background-position: 75% 96.77419%
+}
+
+.emojione-23EC {
+    background-position: 78.125% 96.77419%
+}
+
+.emojione-23F0 {
+    background-position: 81.25% 96.77419%
+}
+
+.emojione-23F3 {
+    background-position: 84.375% 96.77419%
+}
+
+.emojione-24C2 {
+    background-position: 87.5% 96.77419%
+}
+
+.emojione-25AA {
+    background-position: 90.625% 96.77419%
+}
+
+.emojione-25AB {
+    background-position: 93.75% 96.77419%
+}
+
+.emojione-25B6 {
+    background-position: 96.875% 0%
+}
+
+.emojione-25C0 {
+    background-position: 96.875% 3.22581%
+}
+
+.emojione-25FB {
+    background-position: 96.875% 6.45161%
+}
+
+.emojione-25FC {
+    background-position: 96.875% 9.67742%
+}
+
+.emojione-25FD {
+    background-position: 96.875% 12.90323%
+}
+
+.emojione-25FE {
+    background-position: 96.875% 16.12903%
+}
+
+.emojione-2600 {
+    background-position: 96.875% 19.35484%
+}
+
+.emojione-2601 {
+    background-position: 96.875% 22.58065%
+}
+
+.emojione-260E {
+    background-position: 96.875% 25.80645%
+}
+
+.emojione-2611 {
+    background-position: 96.875% 29.03226%
+}
+
+.emojione-2614 {
+    background-position: 96.875% 32.25806%
+}
+
+.emojione-2615 {
+    background-position: 96.875% 35.48387%
+}
+
+.emojione-261D {
+    background-position: 96.875% 38.70968%
+}
+
+.emojione-263A {
+    background-position: 96.875% 41.93548%
+}
+
+.emojione-2648 {
+    background-position: 96.875% 45.16129%
+}
+
+.emojione-2649 {
+    background-position: 96.875% 48.3871%
+}
+
+.emojione-264A {
+    background-position: 96.875% 51.6129%
+}
+
+.emojione-264B {
+    background-position: 96.875% 54.83871%
+}
+
+.emojione-264C {
+    background-position: 96.875% 58.06452%
+}
+
+.emojione-264D {
+    background-position: 96.875% 61.29032%
+}
+
+.emojione-264E {
+    background-position: 96.875% 64.51613%
+}
+
+.emojione-264F {
+    background-position: 96.875% 67.74194%
+}
+
+.emojione-2650 {
+    background-position: 96.875% 70.96774%
+}
+
+.emojione-2651 {
+    background-position: 96.875% 74.19355%
+}
+
+.emojione-2652 {
+    background-position: 96.875% 77.41935%
+}
+
+.emojione-2653 {
+    background-position: 96.875% 80.64516%
+}
+
+.emojione-2660 {
+    background-position: 96.875% 83.87097%
+}
+
+.emojione-2663 {
+    background-position: 96.875% 87.09677%
+}
+
+.emojione-2665 {
+    background-position: 96.875% 90.32258%
+}
+
+.emojione-2666 {
+    background-position: 96.875% 93.54839%
+}
+
+.emojione-2668 {
+    background-position: 96.875% 96.77419%
+}
+
+.emojione-267B {
+    background-position: 0% 100%
+}
+
+.emojione-267F {
+    background-position: 3.125% 100%
+}
+
+.emojione-2693 {
+    background-position: 6.25% 100%
+}
+
+.emojione-26A0 {
+    background-position: 9.375% 100%
+}
+
+.emojione-26A1 {
+    background-position: 12.5% 100%
+}
+
+.emojione-26AA {
+    background-position: 15.625% 100%
+}
+
+.emojione-26AB {
+    background-position: 18.75% 100%
+}
+
+.emojione-26BD {
+    background-position: 21.875% 100%
+}
+
+.emojione-26BE {
+    background-position: 25% 100%
+}
+
+.emojione-26C4 {
+    background-position: 28.125% 100%
+}
+
+.emojione-26C5 {
+    background-position: 31.25% 100%
+}
+
+.emojione-26CE {
+    background-position: 34.375% 100%
+}
+
+.emojione-26D4 {
+    background-position: 37.5% 100%
+}
+
+.emojione-26EA {
+    background-position: 40.625% 100%
+}
+
+.emojione-26F2 {
+    background-position: 43.75% 100%
+}
+
+.emojione-26F3 {
+    background-position: 46.875% 100%
+}
+
+.emojione-26F5 {
+    background-position: 50% 100%
+}
+
+.emojione-26FA {
+    background-position: 53.125% 100%
+}
+
+.emojione-26FD {
+    background-position: 56.25% 100%
+}
+
+.emojione-2702 {
+    background-position: 59.375% 100%
+}
+
+.emojione-2705 {
+    background-position: 62.5% 100%
+}
+
+.emojione-2708 {
+    background-position: 65.625% 100%
+}
+
+.emojione-2709 {
+    background-position: 68.75% 100%
+}
+
+.emojione-270A {
+    background-position: 71.875% 100%
+}
+
+.emojione-270B {
+    background-position: 75% 100%
+}
+
+.emojione-270C {
+    background-position: 78.125% 100%
+}
+
+.emojione-270F {
+    background-position: 81.25% 100%
+}
+
+.emojione-2712 {
+    background-position: 84.375% 100%
+}
+
+.emojione-2714 {
+    background-position: 87.5% 100%
+}
+
+.emojione-2716 {
+    background-position: 90.625% 100%
+}
+
+.emojione-2728 {
+    background-position: 93.75% 100%
+}
+
+.emojione-2733 {
+    background-position: 96.875% 100%
+}
+
+.emojione-2734 {
+    background-position: 100% 0%
+}
+
+.emojione-2744 {
+    background-position: 100% 3.22581%
+}
+
+.emojione-2747 {
+    background-position: 100% 6.45161%
+}
+
+.emojione-274C {
+    background-position: 100% 9.67742%
+}
+
+.emojione-274E {
+    background-position: 100% 12.90323%
+}
+
+.emojione-2753 {
+    background-position: 100% 16.12903%
+}
+
+.emojione-2754 {
+    background-position: 100% 19.35484%
+}
+
+.emojione-2755 {
+    background-position: 100% 22.58065%
+}
+
+.emojione-2757 {
+    background-position: 100% 25.80645%
+}
+
+.emojione-2764 {
+    background-position: 100% 29.03226%
+}
+
+.emojione-2795 {
+    background-position: 100% 32.25806%
+}
+
+.emojione-2796 {
+    background-position: 100% 35.48387%
+}
+
+.emojione-2797 {
+    background-position: 100% 38.70968%
+}
+
+.emojione-27A1 {
+    background-position: 100% 41.93548%
+}
+
+.emojione-27B0 {
+    background-position: 100% 45.16129%
+}
+
+.emojione-27BF {
+    background-position: 100% 48.3871%
+}
+
+.emojione-2934 {
+    background-position: 100% 51.6129%
+}
+
+.emojione-2935 {
+    background-position: 100% 54.83871%
+}
+
+.emojione-2B05 {
+    background-position: 100% 58.06452%
+}
+
+.emojione-2B06 {
+    background-position: 100% 61.29032%
+}
+
+.emojione-2B07 {
+    background-position: 100% 64.51613%
+}
+
+.emojione-2B1B {
+    background-position: 100% 67.74194%
+}
+
+.emojione-2B1C {
+    background-position: 100% 70.96774%
+}
+
+.emojione-2B50 {
+    background-position: 100% 74.19355%
+}
+
+.emojione-2B55 {
+    background-position: 100% 77.41935%
+}
+
+.emojione-3030 {
+    background-position: 100% 80.64516%
+}
+
+.emojione-303D {
+    background-position: 100% 83.87097%
+}
+
+.emojione-3297 {
+    background-position: 100% 87.09677%
+}
+
+.emojione-3299 {
+    background-position: 100% 90.32258%
+}
+
+
+/* AutoComplete styles for Emoji One */
+.dropdown-menu {
+  list-style: none;
+  padding: .3em 0 0;
+  margin: 0;
+  border: 1px solid #6E6E6E;
+  background-color: white;
+  border-radius: 5px;
+  overflow: hidden;
+  font-size: inherit;
+  letter-spacing: .025em;
+  box-shadow: 3px 3px 3px rgba(0,0,0,.2);
+}
+.dropdown-menu a:hover {
+  cursor: pointer;
+}
+.dropdown-menu li {
+  letter-spacing: 0;
+  display: block;
+  float: none;
+  margin: 0;
+  padding: 0;
+  border:none;
+}
+.dropdown-menu li:before {
+  display: none;
+}
+.dropdown-menu .textcomplete-footer {
+  margin-top: .3em;
+  background: #e6e6e6;
+}
+.dropdown-menu .textcomplete-footer a {
+  color: #999999;
+  text-decoration: none;
+  text-transform: uppercase;
+  letter-spacing: .05em;
+  line-height: 2.1818em;
+  padding-left: 1.8181em;
+  font-size: .84em;
+}
+.dropdown-menu .textcomplete-footer .arrow {
+  margin-left: .8em;
+  font-size: 1.3em;
+}
+.dropdown-menu li .emojione {
+  vertical-align: middle;
+  font-size: 1.23em;
+  width: 1em;
+  height: 1em;
+  top: -1px;
+  margin: 0 .3em 0 0;
+}
+.dropdown-menu li a {
+  display: block;
+  height: 100%;
+  line-height: 1.8em;
+  padding: 0 1.54em 0 .615em;
+  color: #4f4f4f;
+}
+.dropdown-menu .active,
+.dropdown-menu li:hover {
+  background: #6E6E6E;
+  color: white;
+}
+.dropdown-menu .active a,
+.dropdown-menu li:hover a {
+  color: inherit;
+}
diff --git a/pagure/static/vendor/emojione/emojione.sprites-1.3.1.png b/pagure/static/vendor/emojione/emojione.sprites-1.3.1.png
new file mode 100644
index 0000000..1f2aecc
Binary files /dev/null and b/pagure/static/vendor/emojione/emojione.sprites-1.3.1.png differ
diff --git a/pagure/static/vendor/emojione/emojione.sprites.css b/pagure/static/vendor/emojione/emojione.sprites.css
new file mode 120000
index 0000000..8f31e00
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione.sprites.css
@@ -0,0 +1 @@
+emojione.sprites.min-1.3.1.css
\ No newline at end of file
diff --git a/pagure/static/vendor/emojione/emojione.sprites.min-1.3.1.css b/pagure/static/vendor/emojione/emojione.sprites.min-1.3.1.css
new file mode 100755
index 0000000..cca9e95
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione.sprites.min-1.3.1.css
@@ -0,0 +1,71 @@
+[class*=emojione-]{text-indent:-9999em;image-rendering:optimizeQuality;font-size:inherit;height:1.3em;width:1.3em;top:-3px;position:relative;display:inline-block;margin:0 .15em;line-height:normal;vertical-align:middle;background-image:url("emojione.sprites.png");background-size:3300%;background-repeat:no-repeat}.emojione-0023-20E3{background-position:3.125% 0%}.emojione-0030-20E3{background-position:21.875% 64.51613%}.emojione-0031-20E3{background-position:0% 3.22581%}.emojione-0032-20E3{background-position:3.125% 3.22581%}.emojione-0033-20E3{background-position:6.25% 0%}.emojione-0034-20E3{background-position:6.25% 3.22581%}.emojione-0035-20E3{background-position:0% 6.45161%}.emojione-0036-20E3{background-position:3.125% 6.45161%}.emojione-0037-20E3{background-position:6.25% 6.45161%}.emojione-0038-20E3{background-position:9.375% 0%}.emojione-0039-20E3{background-position:9.375% 3.22581%}.emojione-00A9{background-position:9.375% 6.45161%}.emojione-00AE{background-position:0% 9.67742%}.emojione-1F004{background-position:3.125% 9.67742%}.emojione-1F0CF{background-position:6.25% 9.67742%}.emojione-1F170{background-position:9.375% 9.67742%}.emojione-1F171{background-position:12.5% 0%}.emojione-1F17E{background-position:12.5% 3.22581%}.emojione-1F17F{background-position:12.5% 6.45161%}.emojione-1F18E{background-position:12.5% 9.67742%}.emojione-1F191{background-position:0% 12.90323%}.emojione-1F192{background-position:3.125% 12.90323%}.emojione-1F193{background-position:6.25% 12.90323%}.emojione-1F194{background-position:9.375% 12.90323%}.emojione-1F195{background-position:12.5% 12.90323%}.emojione-1F196{background-position:15.625% 0%}.emojione-1F197{background-position:15.625% 3.22581%}.emojione-1F198{background-position:15.625% 6.45161%}.emojione-1F199{background-position:15.625% 9.67742%}.emojione-1F19A{background-position:15.625% 12.90323%}.emojione-1F1E6-1F1E8{background-position:0% 16.12903%}.emojione-1F1E6-1F1E9{background-position:3.125% 16.12903%}.emojione-1F1E6-1F1EA{background-position:6.25% 16.12903%}.emojione-1F1E6-1F1EB{background-position:9.375% 16.12903%}.emojione-1F1E6-1F1EC{background-position:12.5% 16.12903%}.emojione-1F1E6-1F1EE{background-position:15.625% 16.12903%}.emojione-1F1E6-1F1F1{background-position:18.75% 0%}.emojione-1F1E6-1F1F2{background-position:18.75% 3.22581%}.emojione-1F1E6-1F1F4{background-position:18.75% 6.45161%}.emojione-1F1E6-1F1F7{background-position:18.75% 9.67742%}.emojione-1F1E6-1F1F9{background-position:18.75% 12.90323%}.emojione-1F1E6-1F1FA{background-position:18.75% 16.12903%}.emojione-1F1E6-1F1FC{background-position:0% 19.35484%}.emojione-1F1E6-1F1FF{background-position:3.125% 19.35484%}.emojione-1F1E7-1F1E6{background-position:6.25% 19.35484%}.emojione-1F1E7-1F1E7{background-position:9.375% 19.35484%}.emojione-1F1E7-1F1E9{background-position:12.5% 19.35484%}.emojione-1F1E7-1F1EA{background-position:15.625% 19.35484%}.emojione-1F1E7-1F1EB{background-position:18.75% 19.35484%}.emojione-1F1E7-1F1EC{background-position:21.875% 0%}.emojione-1F1E7-1F1ED{background-position:21.875% 3.22581%}.emojione-1F1E7-1F1EE{background-position:21.875% 6.45161%}.emojione-1F1E7-1F1EF{background-position:21.875% 9.67742%}.emojione-1F1E7-1F1F2{background-position:21.875% 12.90323%}.emojione-1F1E7-1F1F3{background-position:21.875% 16.12903%}.emojione-1F1E7-1F1F4{background-position:21.875% 19.35484%}.emojione-1F1E7-1F1F7{background-position:0% 22.58065%}.emojione-1F1E7-1F1F8{background-position:3.125% 22.58065%}.emojione-1F1E7-1F1F9{background-position:6.25% 22.58065%}.emojione-1F1E7-1F1FC{background-position:9.375% 22.58065%}.emojione-1F1E7-1F1FE{background-position:12.5% 22.58065%}.emojione-1F1E7-1F1FF{background-position:15.625% 22.58065%}.emojione-1F1E8-1F1E6{background-position:18.75% 22.58065%}.emojione-1F1E8-1F1E9{background-position:21.875% 22.58065%}.emojione-1F1E8-1F1EB{background-position:25% 0%}.emojione-1F1E8-1F1EC{background-position:25% 3.22581%}.emojione-1F1E8-1F1ED{background-position:25% 6.45161%}.emojione-1F1E8-1F1EE{background-position:25% 9.67742%}.emojione-1F1E8-1F1F1{background-position:25% 12.90323%}.emojione-1F1E8-1F1F2{background-position:25% 16.12903%}.emojione-1F1E8-1F1F3{background-position:25% 19.35484%}.emojione-1F1E8-1F1F4{background-position:25% 22.58065%}.emojione-1F1E8-1F1F7{background-position:0% 25.80645%}.emojione-1F1E8-1F1FA{background-position:3.125% 25.80645%}.emojione-1F1E8-1F1FB{background-position:6.25% 25.80645%}.emojione-1F1E8-1F1FE{background-position:9.375% 25.80645%}.emojione-1F1E8-1F1FF{background-position:12.5% 25.80645%}.emojione-1F1E9-1F1EA{background-position:15.625% 25.80645%}.emojione-1F1E9-1F1EF{background-position:18.75% 25.80645%}.emojione-1F1E9-1F1F0{background-position:21.875% 25.80645%}.emojione-1F1E9-1F1F2{background-position:25% 25.80645%}.emojione-1F1E9-1F1F4{background-position:28.125% 0%}.emojione-1F1E9-1F1FF{background-position:28.125% 3.22581%}.emojione-1F1EA-1F1E8{background-position:28.125% 6.45161%}.emojione-1F1EA-1F1EA{background-position:28.125% 9.67742%}.emojione-1F1EA-1F1EC{background-position:28.125% 12.90323%}.emojione-1F1EA-1F1ED{background-position:28.125% 16.12903%}.emojione-1F1EA-1F1F7{background-position:28.125% 19.35484%}.emojione-1F1EA-1F1F8{background-position:28.125% 22.58065%}.emojione-1F1EA-1F1F9{background-position:28.125% 25.80645%}.emojione-1F1EB-1F1EE{background-position:0% 29.03226%}.emojione-1F1EB-1F1EF{background-position:3.125% 29.03226%}.emojione-1F1EB-1F1F0{background-position:6.25% 29.03226%}.emojione-1F1EB-1F1F2{background-position:9.375% 29.03226%}.emojione-1F1EB-1F1F4{background-position:12.5% 29.03226%}.emojione-1F1EB-1F1F7{background-position:15.625% 29.03226%}.emojione-1F1EC-1F1E6{background-position:18.75% 29.03226%}.emojione-1F1EC-1F1E7{background-position:21.875% 29.03226%}.emojione-1F1EC-1F1E9{background-position:25% 29.03226%}.emojione-1F1EC-1F1EA{background-position:28.125% 29.03226%}.emojione-1F1EC-1F1ED{background-position:31.25% 0%}.emojione-1F1EC-1F1EE{background-position:31.25% 3.22581%}.emojione-1F1EC-1F1F1{background-position:31.25% 6.45161%}.emojione-1F1EC-1F1F2{background-position:31.25% 9.67742%}.emojione-1F1EC-1F1F3{background-position:31.25% 12.90323%}.emojione-1F1EC-1F1F6{background-position:31.25% 16.12903%}.emojione-1F1EC-1F1F7{background-position:31.25% 19.35484%}.emojione-1F1EC-1F1F9{background-position:31.25% 22.58065%}.emojione-1F1EC-1F1FA{background-position:31.25% 25.80645%}.emojione-1F1EC-1F1FC{background-position:31.25% 29.03226%}.emojione-1F1EC-1F1FE{background-position:0% 32.25806%}.emojione-1F1ED-1F1F0{background-position:3.125% 32.25806%}.emojione-1F1ED-1F1F3{background-position:6.25% 32.25806%}.emojione-1F1ED-1F1F7{background-position:9.375% 32.25806%}.emojione-1F1ED-1F1F9{background-position:12.5% 32.25806%}.emojione-1F1ED-1F1FA{background-position:15.625% 32.25806%}.emojione-1F1EE-1F1E9{background-position:18.75% 32.25806%}.emojione-1F1EE-1F1EA{background-position:21.875% 32.25806%}.emojione-1F1EE-1F1F1{background-position:25% 32.25806%}.emojione-1F1EE-1F1F3{background-position:28.125% 32.25806%}.emojione-1F1EE-1F1F6{background-position:31.25% 32.25806%}.emojione-1F1EE-1F1F7{background-position:34.375% 0%}.emojione-1F1EE-1F1F8{background-position:34.375% 3.22581%}.emojione-1F1EE-1F1F9{background-position:34.375% 6.45161%}.emojione-1F1EF-1F1EA{background-position:34.375% 9.67742%}.emojione-1F1EF-1F1F2{background-position:34.375% 12.90323%}.emojione-1F1EF-1F1F4{background-position:34.375% 16.12903%}.emojione-1F1EF-1F1F5{background-position:34.375% 19.35484%}.emojione-1F1F0-1F1EA{background-position:34.375% 22.58065%}.emojione-1F1F0-1F1EC{background-position:34.375% 25.80645%}.emojione-1F1F0-1F1ED{background-position:34.375% 29.03226%}.emojione-1F1F0-1F1EE{background-position:34.375% 32.25806%}.emojione-1F1F0-1F1F2{background-position:0% 35.48387%}.emojione-1F1F0-1F1F3{background-position:3.125% 35.48387%}.emojione-1F1F0-1F1F5{background-position:6.25% 35.48387%}.emojione-1F1F0-1F1F7{background-position:9.375% 35.48387%}.emojione-1F1F0-1F1FC{background-position:12.5% 35.48387%}.emojione-1F1F0-1F1FE{background-position:15.625% 35.48387%}.emojione-1F1F0-1F1FF{background-position:18.75% 35.48387%}.emojione-1F1F1-1F1E6{background-position:21.875% 35.48387%}.emojione-1F1F1-1F1E7{background-position:25% 35.48387%}.emojione-1F1F1-1F1E8{background-position:28.125% 35.48387%}.emojione-1F1F1-1F1EE{background-position:31.25% 35.48387%}.emojione-1F1F1-1F1F0{background-position:34.375% 35.48387%}.emojione-1F1F1-1F1F7{background-position:37.5% 0%}.emojione-1F1F1-1F1F8{background-position:37.5% 3.22581%}.emojione-1F1F1-1F1F9{background-position:37.5% 6.45161%}.emojione-1F1F1-1F1FA{background-position:37.5% 9.67742%}.emojione-1F1F1-1F1FB{background-position:37.5% 12.90323%}.emojione-1F1F1-1F1FE{background-position:37.5% 16.12903%}.emojione-1F1F2-1F1E6{background-position:37.5% 19.35484%}.emojione-1F1F2-1F1E8{background-position:37.5% 22.58065%}.emojione-1F1F2-1F1E9{background-position:37.5% 25.80645%}.emojione-1F1F2-1F1EA{background-position:37.5% 29.03226%}.emojione-1F1F2-1F1EC{background-position:37.5% 32.25806%}.emojione-1F1F2-1F1ED{background-position:37.5% 35.48387%}.emojione-1F1F2-1F1F0{background-position:0% 38.70968%}.emojione-1F1F2-1F1F1{background-position:3.125% 38.70968%}.emojione-1F1F2-1F1F2{background-position:6.25% 38.70968%}.emojione-1F1F2-1F1F3{background-position:9.375% 38.70968%}.emojione-1F1F2-1F1F4{background-position:12.5% 38.70968%}.emojione-1F1F2-1F1F7{background-position:15.625% 38.70968%}.emojione-1F1F2-1F1F8{background-position:18.75% 38.70968%}.emojione-1F1F2-1F1F9{background-position:21.875% 38.70968%}.emojione-1F1F2-1F1FA{background-position:25% 38.70968%}.emojione-1F1F2-1F1FB{background-position:28.125% 38.70968%}.emojione-1F1F2-1F1FC{background-position:31.25% 38.70968%}.emojione-1F1F2-1F1FD{background-position:34.375% 38.70968%}.emojione-1F1F2-1F1FE{background-position:37.5% 38.70968%}.emojione-1F1F2-1F1FF{background-position:40.625% 0%}.emojione-1F1F3-1F1E6{background-position:40.625% 3.22581%}.emojione-1F1F3-1F1E8{background-position:40.625% 6.45161%}.emojione-1F1F3-1F1EA{background-position:40.625% 9.67742%}.emojione-1F1F3-1F1EC{background-position:40.625% 12.90323%}.emojione-1F1F3-1F1EE{background-position:40.625% 16.12903%}.emojione-1F1F3-1F1F1{background-position:40.625% 19.35484%}.emojione-1F1F3-1F1F4{background-position:40.625% 22.58065%}.emojione-1F1F3-1F1F5{background-position:40.625% 25.80645%}.emojione-1F1F3-1F1F7{background-position:40.625% 29.03226%}.emojione-1F1F3-1F1FA{background-position:40.625% 32.25806%}.emojione-1F1F3-1F1FF{background-position:40.625% 35.48387%}.emojione-1F1F4-1F1F2{background-position:40.625% 38.70968%}.emojione-1F1F5-1F1E6{background-position:0% 41.93548%}.emojione-1F1F5-1F1EA{background-position:3.125% 41.93548%}.emojione-1F1F5-1F1EB{background-position:6.25% 41.93548%}.emojione-1F1F5-1F1EC{background-position:9.375% 41.93548%}.emojione-1F1F5-1F1ED{background-position:12.5% 41.93548%}.emojione-1F1F5-1F1F0{background-position:15.625% 41.93548%}.emojione-1F1F5-1F1F1{background-position:18.75% 41.93548%}.emojione-1F1F5-1F1F7{background-position:21.875% 41.93548%}.emojione-1F1F5-1F1F8{background-position:25% 41.93548%}.emojione-1F1F5-1F1F9{background-position:28.125% 41.93548%}.emojione-1F1F5-1F1FC{background-position:31.25% 41.93548%}.emojione-1F1F5-1F1FE{background-position:34.375% 41.93548%}.emojione-1F1F6-1F1E6{background-position:37.5% 41.93548%}.emojione-1F1F7-1F1F4{background-position:40.625% 41.93548%}.emojione-1F1F7-1F1F8{background-position:43.75% 0%}.emojione-1F1F7-1F1FA{background-position:43.75% 3.22581%}.emojione-1F1F7-1F1FC{background-position:43.75% 6.45161%}.emojione-1F1F8-1F1E6{background-position:43.75% 9.67742%}.emojione-1F1F8-1F1E7{background-position:43.75% 12.90323%}.emojione-1F1F8-1F1E8{background-position:43.75% 16.12903%}.emojione-1F1F8-1F1E9{background-position:43.75% 19.35484%}.emojione-1F1F8-1F1EA{background-position:43.75% 22.58065%}.emojione-1F1F8-1F1EC{background-position:43.75% 25.80645%}.emojione-1F1F8-1F1ED{background-position:43.75% 29.03226%}.emojione-1F1F8-1F1EE{background-position:43.75% 32.25806%}.emojione-1F1F8-1F1F0{background-position:43.75% 35.48387%}.emojione-1F1F8-1F1F1{background-position:43.75% 38.70968%}.emojione-1F1F8-1F1F2{background-position:43.75% 41.93548%}.emojione-1F1F8-1F1F3{background-position:0% 45.16129%}.emojione-1F1F8-1F1F4{background-position:3.125% 45.16129%}.emojione-1F1F8-1F1F7{background-position:6.25% 45.16129%}.emojione-1F1F8-1F1F9{background-position:9.375% 45.16129%}.emojione-1F1F8-1F1FB{background-position:12.5% 45.16129%}.emojione-1F1F8-1F1FE{background-position:15.625% 45.16129%}.emojione-1F1F8-1F1FF{background-position:18.75% 45.16129%}.emojione-1F1F9-1F1E9{background-position:21.875% 45.16129%}.emojione-1F1F9-1F1EC{background-position:25% 45.16129%}.emojione-1F1F9-1F1ED{background-position:28.125% 45.16129%}.emojione-1F1F9-1F1EF{background-position:31.25% 45.16129%}.emojione-1F1F9-1F1F1{background-position:34.375% 45.16129%}.emojione-1F1F9-1F1F2{background-position:37.5% 45.16129%}.emojione-1F1F9-1F1F3{background-position:40.625% 45.16129%}.emojione-1F1F9-1F1F4{background-position:43.75% 45.16129%}.emojione-1F1F9-1F1F7{background-position:46.875% 0%}.emojione-1F1F9-1F1F9{background-position:46.875% 3.22581%}.emojione-1F1F9-1F1FB{background-position:46.875% 6.45161%}.emojione-1F1F9-1F1FC{background-position:46.875% 9.67742%}.emojione-1F1F9-1F1FF{background-position:46.875% 12.90323%}.emojione-1F1FA-1F1E6{background-position:46.875% 16.12903%}.emojione-1F1FA-1F1EC{background-position:46.875% 19.35484%}.emojione-1F1FA-1F1F8{background-position:46.875% 22.58065%}.emojione-1F1FA-1F1FE{background-position:46.875% 25.80645%}.emojione-1F1FA-1F1FF{background-position:46.875% 29.03226%}.emojione-1F1FB-1F1E6{background-position:46.875% 32.25806%}.emojione-1F1FB-1F1E8{background-position:46.875% 35.48387%}.emojione-1F1FB-1F1EA{background-position:46.875% 38.70968%}.emojione-1F1FB-1F1EE{background-position:46.875% 41.93548%}.emojione-1F1FB-1F1F3{background-position:46.875% 45.16129%}.emojione-1F1FB-1F1FA{background-position:0% 48.3871%}.emojione-1F1FC-1F1EB{background-position:3.125% 48.3871%}.emojione-1F1FC-1F1F8{background-position:6.25% 48.3871%}.emojione-1F1FD-1F1F0{background-position:9.375% 48.3871%}.emojione-1F1FE-1F1EA{background-position:12.5% 48.3871%}.emojione-1F1FF-1F1E6{background-position:15.625% 48.3871%}.emojione-1F1FF-1F1F2{background-position:18.75% 48.3871%}.emojione-1F1FF-1F1FC{background-position:21.875% 48.3871%}.emojione-1F201{background-position:25% 48.3871%}.emojione-1F202{background-position:28.125% 48.3871%}.emojione-1F21A{background-position:31.25% 48.3871%}.emojione-1F22F{background-position:34.375% 48.3871%}.emojione-1F232{background-position:37.5% 48.3871%}.emojione-1F233{background-position:40.625% 48.3871%}.emojione-1F234{background-position:43.75% 48.3871%}.emojione-1F235{background-position:46.875% 48.3871%}.emojione-1F236{background-position:50% 0%}.emojione-1F237{background-position:50% 3.22581%}.emojione-1F238{background-position:50% 6.45161%}.emojione-1F239{background-position:50% 9.67742%}.emojione-1F23A{background-position:50% 12.90323%}.emojione-1F250{background-position:50% 16.12903%}.emojione-1F251{background-position:50% 19.35484%}.emojione-1F300{background-position:50% 22.58065%}.emojione-1F301{background-position:50% 25.80645%}.emojione-1F302{background-position:50% 29.03226%}.emojione-1F303{background-position:50% 32.25806%}.emojione-1F304{background-position:50% 35.48387%}.emojione-1F305{background-position:50% 38.70968%}.emojione-1F306{background-position:50% 41.93548%}.emojione-1F307{background-position:50% 45.16129%}.emojione-1F308{background-position:50% 48.3871%}.emojione-1F309{background-position:0% 51.6129%}.emojione-1F30A{background-position:3.125% 51.6129%}.emojione-1F30B{background-position:6.25% 51.6129%}.emojione-1F30C{background-position:9.375% 51.6129%}.emojione-1F30D{background-position:12.5% 51.6129%}.emojione-1F30E{background-position:15.625% 51.6129%}.emojione-1F30F{background-position:18.75% 51.6129%}.emojione-1F310{background-position:21.875% 51.6129%}.emojione-1F311{background-position:25% 51.6129%}.emojione-1F312{background-position:28.125% 51.6129%}.emojione-1F313{background-position:31.25% 51.6129%}.emojione-1F314{background-position:34.375% 51.6129%}.emojione-1F315{background-position:37.5% 51.6129%}.emojione-1F316{background-position:40.625% 51.6129%}.emojione-1F317{background-position:43.75% 51.6129%}.emojione-1F318{background-position:46.875% 51.6129%}.emojione-1F319{background-position:50% 51.6129%}.emojione-1F31A{background-position:53.125% 0%}.emojione-1F31B{background-position:53.125% 3.22581%}.emojione-1F31C{background-position:53.125% 6.45161%}.emojione-1F31D{background-position:53.125% 9.67742%}.emojione-1F31E{background-position:53.125% 12.90323%}.emojione-1F31F{background-position:53.125% 16.12903%}.emojione-1F320{background-position:53.125% 19.35484%}.emojione-1F330{background-position:53.125% 22.58065%}.emojione-1F331{background-position:53.125% 25.80645%}.emojione-1F332{background-position:53.125% 29.03226%}.emojione-1F333{background-position:53.125% 32.25806%}.emojione-1F334{background-position:53.125% 35.48387%}.emojione-1F335{background-position:53.125% 38.70968%}.emojione-1F337{background-position:53.125% 41.93548%}.emojione-1F338{background-position:53.125% 45.16129%}.emojione-1F339{background-position:53.125% 48.3871%}.emojione-1F33A{background-position:53.125% 51.6129%}.emojione-1F33B{background-position:0% 54.83871%}.emojione-1F33C{background-position:3.125% 54.83871%}.emojione-1F33D{background-position:6.25% 54.83871%}.emojione-1F33E{background-position:9.375% 54.83871%}.emojione-1F33F{background-position:12.5% 54.83871%}.emojione-1F340{background-position:15.625% 54.83871%}.emojione-1F341{background-position:18.75% 54.83871%}.emojione-1F342{background-position:21.875% 54.83871%}.emojione-1F343{background-position:25% 54.83871%}.emojione-1F344{background-position:28.125% 54.83871%}.emojione-1F345{background-position:31.25% 54.83871%}.emojione-1F346{background-position:34.375% 54.83871%}.emojione-1F347{background-position:37.5% 54.83871%}.emojione-1F348{background-position:40.625% 54.83871%}.emojione-1F349{background-position:43.75% 54.83871%}.emojione-1F34A{background-position:46.875% 54.83871%}.emojione-1F34B{background-position:50% 54.83871%}.emojione-1F34C{background-position:53.125% 54.83871%}.emojione-1F34D{background-position:56.25% 0%}.emojione-1F34E{background-position:56.25% 3.22581%}.emojione-1F34F{background-position:56.25% 6.45161%}.emojione-1F350{background-position:56.25% 9.67742%}.emojione-1F351{background-position:56.25% 12.90323%}.emojione-1F352{background-position:56.25% 16.12903%}.emojione-1F353{background-position:56.25% 19.35484%}.emojione-1F354{background-position:56.25% 22.58065%}.emojione-1F355{background-position:56.25% 25.80645%}.emojione-1F356{background-position:56.25% 29.03226%}.emojione-1F357{background-position:56.25% 32.25806%}.emojione-1F358{background-position:56.25% 35.48387%}.emojione-1F359{background-position:56.25% 38.70968%}.emojione-1F35A{background-position:56.25% 41.93548%}.emojione-1F35B{background-position:56.25% 45.16129%}.emojione-1F35C{background-position:56.25% 48.3871%}.emojione-1F35D{background-position:56.25% 51.6129%}.emojione-1F35E{background-position:56.25% 54.83871%}.emojione-1F35F{background-position:0% 58.06452%}.emojione-1F360{background-position:3.125% 58.06452%}.emojione-1F361{background-position:6.25% 58.06452%}.emojione-1F362{background-position:9.375% 58.06452%}.emojione-1F363{background-position:12.5% 58.06452%}.emojione-1F364{background-position:15.625% 58.06452%}.emojione-1F365{background-position:18.75% 58.06452%}.emojione-1F366{background-position:21.875% 58.06452%}.emojione-1F367{background-position:25% 58.06452%}.emojione-1F368{background-position:28.125% 58.06452%}.emojione-1F369{background-position:31.25% 58.06452%}.emojione-1F36A{background-position:34.375% 58.06452%}.emojione-1F36B{background-position:37.5% 58.06452%}.emojione-1F36C{background-position:40.625% 58.06452%}.emojione-1F36D{background-position:43.75% 58.06452%}.emojione-1F36E{background-position:46.875% 58.06452%}.emojione-1F36F{background-position:50% 58.06452%}.emojione-1F370{background-position:53.125% 58.06452%}.emojione-1F371{background-position:56.25% 58.06452%}.emojione-1F372{background-position:59.375% 0%}.emojione-1F373{background-position:59.375% 3.22581%}.emojione-1F374{background-position:59.375% 6.45161%}.emojione-1F375{background-position:59.375% 9.67742%}.emojione-1F376{background-position:59.375% 12.90323%}.emojione-1F377{background-position:59.375% 16.12903%}.emojione-1F378{background-position:59.375% 19.35484%}.emojione-1F379{background-position:59.375% 22.58065%}.emojione-1F37A{background-position:59.375% 25.80645%}.emojione-1F37B{background-position:59.375% 29.03226%}.emojione-1F37C{background-position:59.375% 32.25806%}.emojione-1F380{background-position:59.375% 35.48387%}.emojione-1F381{background-position:59.375% 38.70968%}.emojione-1F382{background-position:59.375% 41.93548%}.emojione-1F383{background-position:59.375% 45.16129%}.emojione-1F384{background-position:59.375% 48.3871%}.emojione-1F385{background-position:59.375% 51.6129%}.emojione-1F386{background-position:59.375% 54.83871%}.emojione-1F387{background-position:59.375% 58.06452%}.emojione-1F388{background-position:0% 61.29032%}.emojione-1F389{background-position:3.125% 61.29032%}.emojione-1F38A{background-position:6.25% 61.29032%}.emojione-1F38B{background-position:9.375% 61.29032%}.emojione-1F38C{background-position:12.5% 61.29032%}.emojione-1F38D{background-position:15.625% 61.29032%}.emojione-1F38E{background-position:18.75% 61.29032%}.emojione-1F38F{background-position:21.875% 61.29032%}.emojione-1F390{background-position:25% 61.29032%}.emojione-1F391{background-position:28.125% 61.29032%}.emojione-1F392{background-position:31.25% 61.29032%}.emojione-1F393{background-position:34.375% 61.29032%}.emojione-1F3A0{background-position:37.5% 61.29032%}.emojione-1F3A1{background-position:40.625% 61.29032%}.emojione-1F3A2{background-position:43.75% 61.29032%}.emojione-1F3A3{background-position:46.875% 61.29032%}.emojione-1F3A4{background-position:50% 61.29032%}.emojione-1F3A5{background-position:53.125% 61.29032%}.emojione-1F3A6{background-position:56.25% 61.29032%}.emojione-1F3A7{background-position:59.375% 61.29032%}.emojione-1F3A8{background-position:62.5% 0%}.emojione-1F3A9{background-position:62.5% 3.22581%}.emojione-1F3AA{background-position:62.5% 6.45161%}.emojione-1F3AB{background-position:62.5% 9.67742%}.emojione-1F3AC{background-position:62.5% 12.90323%}.emojione-1F3AD{background-position:62.5% 16.12903%}.emojione-1F3AE{background-position:62.5% 19.35484%}.emojione-1F3AF{background-position:62.5% 22.58065%}.emojione-1F3B0{background-position:62.5% 25.80645%}.emojione-1F3B1{background-position:62.5% 29.03226%}.emojione-1F3B2{background-position:62.5% 32.25806%}.emojione-1F3B3{background-position:62.5% 35.48387%}.emojione-1F3B4{background-position:62.5% 38.70968%}.emojione-1F3B5{background-position:62.5% 41.93548%}.emojione-1F3B6{background-position:62.5% 45.16129%}.emojione-1F3B7{background-position:62.5% 48.3871%}.emojione-1F3B8{background-position:62.5% 51.6129%}.emojione-1F3B9{background-position:62.5% 54.83871%}.emojione-1F3BA{background-position:62.5% 58.06452%}.emojione-1F3BB{background-position:62.5% 61.29032%}.emojione-1F3BC{background-position:0% 64.51613%}.emojione-1F3BD{background-position:3.125% 64.51613%}.emojione-1F3BE{background-position:6.25% 64.51613%}.emojione-1F3BF{background-position:9.375% 64.51613%}.emojione-1F3C0{background-position:12.5% 64.51613%}.emojione-1F3C1{background-position:15.625% 64.51613%}.emojione-1F3C2{background-position:18.75% 64.51613%}.emojione-1F3C3{background-position:0% 0%}.emojione-1F3C4{background-position:25% 64.51613%}.emojione-1F3C6{background-position:28.125% 64.51613%}.emojione-1F3C7{background-position:31.25% 64.51613%}.emojione-1F3C8{background-position:34.375% 64.51613%}.emojione-1F3C9{background-position:37.5% 64.51613%}.emojione-1F3CA{background-position:40.625% 64.51613%}.emojione-1F3E0{background-position:43.75% 64.51613%}.emojione-1F3E1{background-position:46.875% 64.51613%}.emojione-1F3E2{background-position:50% 64.51613%}.emojione-1F3E3{background-position:53.125% 64.51613%}.emojione-1F3E4{background-position:56.25% 64.51613%}.emojione-1F3E5{background-position:59.375% 64.51613%}.emojione-1F3E6{background-position:62.5% 64.51613%}.emojione-1F3E7{background-position:65.625% 0%}.emojione-1F3E8{background-position:65.625% 3.22581%}.emojione-1F3E9{background-position:65.625% 6.45161%}.emojione-1F3EA{background-position:65.625% 9.67742%}.emojione-1F3EB{background-position:65.625% 12.90323%}.emojione-1F3EC{background-position:65.625% 16.12903%}.emojione-1F3ED{background-position:65.625% 19.35484%}.emojione-1F3EE{background-position:65.625% 22.58065%}.emojione-1F3EF{background-position:65.625% 25.80645%}.emojione-1F3F0{background-position:65.625% 29.03226%}.emojione-1F400{background-position:65.625% 32.25806%}.emojione-1F401{background-position:65.625% 35.48387%}.emojione-1F402{background-position:65.625% 38.70968%}.emojione-1F403{background-position:65.625% 41.93548%}.emojione-1F404{background-position:65.625% 45.16129%}.emojione-1F405{background-position:65.625% 48.3871%}.emojione-1F406{background-position:65.625% 51.6129%}.emojione-1F407{background-position:65.625% 54.83871%}.emojione-1F408{background-position:65.625% 58.06452%}.emojione-1F409{background-position:65.625% 61.29032%}.emojione-1F40A{background-position:65.625% 64.51613%}.emojione-1F40B{background-position:0% 67.74194%}.emojione-1F40C{background-position:3.125% 67.74194%}.emojione-1F40D{background-position:6.25% 67.74194%}.emojione-1F40E{background-position:9.375% 67.74194%}.emojione-1F40F{background-position:12.5% 67.74194%}.emojione-1F410{background-position:15.625% 67.74194%}.emojione-1F411{background-position:18.75% 67.74194%}.emojione-1F412{background-position:21.875% 67.74194%}.emojione-1F413{background-position:25% 67.74194%}.emojione-1F414{background-position:28.125% 67.74194%}.emojione-1F415{background-position:31.25% 67.74194%}.emojione-1F416{background-position:34.375% 67.74194%}.emojione-1F417{background-position:37.5% 67.74194%}.emojione-1F418{background-position:40.625% 67.74194%}.emojione-1F419{background-position:43.75% 67.74194%}.emojione-1F41A{background-position:46.875% 67.74194%}.emojione-1F41B{background-position:50% 67.74194%}.emojione-1F41C{background-position:53.125% 67.74194%}.emojione-1F41D{background-position:56.25% 67.74194%}.emojione-1F41E{background-position:59.375% 67.74194%}.emojione-1F41F{background-position:62.5% 67.74194%}.emojione-1F420{background-position:65.625% 67.74194%}.emojione-1F421{background-position:68.75% 0%}.emojione-1F422{background-position:68.75% 3.22581%}.emojione-1F423{background-position:68.75% 6.45161%}.emojione-1F424{background-position:68.75% 9.67742%}.emojione-1F425{background-position:68.75% 12.90323%}.emojione-1F426{background-position:68.75% 16.12903%}.emojione-1F427{background-position:68.75% 19.35484%}.emojione-1F428{background-position:68.75% 22.58065%}.emojione-1F429{background-position:68.75% 25.80645%}.emojione-1F42A{background-position:68.75% 29.03226%}.emojione-1F42B{background-position:68.75% 32.25806%}.emojione-1F42C{background-position:68.75% 35.48387%}.emojione-1F42D{background-position:68.75% 38.70968%}.emojione-1F42E{background-position:68.75% 41.93548%}.emojione-1F42F{background-position:68.75% 45.16129%}.emojione-1F430{background-position:68.75% 48.3871%}.emojione-1F431{background-position:68.75% 51.6129%}.emojione-1F432{background-position:68.75% 54.83871%}.emojione-1F433{background-position:68.75% 58.06452%}.emojione-1F434{background-position:68.75% 61.29032%}.emojione-1F435{background-position:68.75% 64.51613%}.emojione-1F436{background-position:68.75% 67.74194%}.emojione-1F437{background-position:0% 70.96774%}.emojione-1F438{background-position:3.125% 70.96774%}.emojione-1F439{background-position:6.25% 70.96774%}.emojione-1F43A{background-position:9.375% 70.96774%}.emojione-1F43B{background-position:12.5% 70.96774%}.emojione-1F43C{background-position:15.625% 70.96774%}.emojione-1F43D{background-position:18.75% 70.96774%}.emojione-1F43E{background-position:21.875% 70.96774%}.emojione-1F440{background-position:25% 70.96774%}.emojione-1F442{background-position:28.125% 70.96774%}.emojione-1F443{background-position:31.25% 70.96774%}.emojione-1F444{background-position:34.375% 70.96774%}.emojione-1F445{background-position:37.5% 70.96774%}.emojione-1F446{background-position:40.625% 70.96774%}.emojione-1F447{background-position:43.75% 70.96774%}.emojione-1F448{background-position:46.875% 70.96774%}.emojione-1F449{background-position:50% 70.96774%}.emojione-1F44A{background-position:53.125% 70.96774%}.emojione-1F44B{background-position:56.25% 70.96774%}.emojione-1F44C{background-position:59.375% 70.96774%}.emojione-1F44D{background-position:62.5% 70.96774%}.emojione-1F44E{background-position:65.625% 70.96774%}.emojione-1F44F{background-position:68.75% 70.96774%}.emojione-1F450{background-position:71.875% 0%}.emojione-1F451{background-position:71.875% 3.22581%}.emojione-1F452{background-position:71.875% 6.45161%}.emojione-1F453{background-position:71.875% 9.67742%}.emojione-1F454{background-position:71.875% 12.90323%}.emojione-1F455{background-position:71.875% 16.12903%}.emojione-1F456{background-position:71.875% 19.35484%}.emojione-1F457{background-position:71.875% 22.58065%}.emojione-1F458{background-position:71.875% 25.80645%}.emojione-1F459{background-position:71.875% 29.03226%}.emojione-1F45A{background-position:71.875% 32.25806%}.emojione-1F45B{background-position:71.875% 35.48387%}.emojione-1F45C{background-position:71.875% 38.70968%}.emojione-1F45D{background-position:71.875% 41.93548%}.emojione-1F45E{background-position:71.875% 45.16129%}.emojione-1F45F{background-position:71.875% 48.3871%}.emojione-1F460{background-position:71.875% 51.6129%}.emojione-1F461{background-position:71.875% 54.83871%}.emojione-1F462{background-position:71.875% 58.06452%}.emojione-1F463{background-position:71.875% 61.29032%}.emojione-1F464{background-position:71.875% 64.51613%}.emojione-1F465{background-position:71.875% 67.74194%}.emojione-1F466{background-position:71.875% 70.96774%}.emojione-1F467{background-position:0% 74.19355%}.emojione-1F468{background-position:3.125% 74.19355%}.emojione-1F469{background-position:6.25% 74.19355%}.emojione-1F46A{background-position:9.375% 74.19355%}.emojione-1F46B{background-position:12.5% 74.19355%}.emojione-1F46C{background-position:15.625% 74.19355%}.emojione-1F46D{background-position:18.75% 74.19355%}.emojione-1F46E{background-position:21.875% 74.19355%}.emojione-1F46F{background-position:25% 74.19355%}.emojione-1F470{background-position:28.125% 74.19355%}.emojione-1F471{background-position:31.25% 74.19355%}.emojione-1F472{background-position:34.375% 74.19355%}.emojione-1F473{background-position:37.5% 74.19355%}.emojione-1F474{background-position:40.625% 74.19355%}.emojione-1F475{background-position:43.75% 74.19355%}.emojione-1F476{background-position:46.875% 74.19355%}.emojione-1F477{background-position:50% 74.19355%}.emojione-1F478{background-position:53.125% 74.19355%}.emojione-1F479{background-position:56.25% 74.19355%}.emojione-1F47A{background-position:59.375% 74.19355%}.emojione-1F47B{background-position:62.5% 74.19355%}.emojione-1F47C{background-position:65.625% 74.19355%}.emojione-1F47D{background-position:68.75% 74.19355%}.emojione-1F47E{background-position:71.875% 74.19355%}.emojione-1F47F{background-position:75% 0%}.emojione-1F480{background-position:75% 3.22581%}.emojione-1F481{background-position:75% 6.45161%}.emojione-1F482{background-position:75% 9.67742%}.emojione-1F483{background-position:75% 12.90323%}.emojione-1F484{background-position:75% 16.12903%}.emojione-1F485{background-position:75% 19.35484%}.emojione-1F486{background-position:75% 22.58065%}.emojione-1F487{background-position:75% 25.80645%}.emojione-1F488{background-position:75% 29.03226%}.emojione-1F489{background-position:75% 32.25806%}.emojione-1F48A{background-position:75% 35.48387%}.emojione-1F48B{background-position:75% 38.70968%}.emojione-1F48C{background-position:75% 41.93548%}.emojione-1F48D{background-position:75% 45.16129%}.emojione-1F48E{background-position:75% 48.3871%}.emojione-1F48F{background-position:75% 51.6129%}.emojione-1F490{background-position:75% 54.83871%}.emojione-1F491{background-position:75% 58.06452%}.emojione-1F492{background-position:75% 61.29032%}.emojione-1F493{background-position:75% 64.51613%}.emojione-1F494{background-position:75% 67.74194%}.emojione-1F495{background-position:75% 70.96774%}.emojione-1F496{background-position:75% 74.19355%}.emojione-1F497{background-position:0% 77.41935%}.emojione-1F498{background-position:3.125% 77.41935%}.emojione-1F499{background-position:6.25% 77.41935%}.emojione-1F49A{background-position:9.375% 77.41935%}.emojione-1F49B{background-position:12.5% 77.41935%}.emojione-1F49C{background-position:15.625% 77.41935%}.emojione-1F49D{background-position:18.75% 77.41935%}.emojione-1F49E{background-position:21.875% 77.41935%}.emojione-1F49F{background-position:25% 77.41935%}.emojione-1F4A0{background-position:28.125% 77.41935%}.emojione-1F4A1{background-position:31.25% 77.41935%}.emojione-1F4A2{background-position:34.375% 77.41935%}.emojione-1F4A3{background-position:37.5% 77.41935%}.emojione-1F4A4{background-position:40.625% 77.41935%}.emojione-1F4A5{background-position:43.75% 77.41935%}.emojione-1F4A6{background-position:46.875% 77.41935%}.emojione-1F4A7{background-position:50% 77.41935%}.emojione-1F4A8{background-position:53.125% 77.41935%}.emojione-1F4A9{background-position:56.25% 77.41935%}.emojione-1F4AA{background-position:59.375% 77.41935%}.emojione-1F4AB{background-position:62.5% 77.41935%}.emojione-1F4AC{background-position:65.625% 77.41935%}.emojione-1F4AD{background-position:68.75% 77.41935%}.emojione-1F4AE{background-position:71.875% 77.41935%}.emojione-1F4AF{background-position:75% 77.41935%}.emojione-1F4B0{background-position:78.125% 0%}.emojione-1F4B1{background-position:78.125% 3.22581%}.emojione-1F4B2{background-position:78.125% 6.45161%}.emojione-1F4B3{background-position:78.125% 9.67742%}.emojione-1F4B4{background-position:78.125% 12.90323%}.emojione-1F4B5{background-position:78.125% 16.12903%}.emojione-1F4B6{background-position:78.125% 19.35484%}.emojione-1F4B7{background-position:78.125% 22.58065%}.emojione-1F4B8{background-position:78.125% 25.80645%}.emojione-1F4B9{background-position:78.125% 29.03226%}.emojione-1F4BA{background-position:78.125% 32.25806%}.emojione-1F4BB{background-position:78.125% 35.48387%}.emojione-1F4BC{background-position:78.125% 38.70968%}.emojione-1F4BD{background-position:78.125% 41.93548%}.emojione-1F4BE{background-position:78.125% 45.16129%}.emojione-1F4BF{background-position:78.125% 48.3871%}.emojione-1F4C0{background-position:78.125% 51.6129%}.emojione-1F4C1{background-position:78.125% 54.83871%}.emojione-1F4C2{background-position:78.125% 58.06452%}.emojione-1F4C3{background-position:78.125% 61.29032%}.emojione-1F4C4{background-position:78.125% 64.51613%}.emojione-1F4C5{background-position:78.125% 67.74194%}.emojione-1F4C6{background-position:78.125% 70.96774%}.emojione-1F4C7{background-position:78.125% 74.19355%}.emojione-1F4C8{background-position:78.125% 77.41935%}.emojione-1F4C9{background-position:0% 80.64516%}.emojione-1F4CA{background-position:3.125% 80.64516%}.emojione-1F4CB{background-position:6.25% 80.64516%}.emojione-1F4CC{background-position:9.375% 80.64516%}.emojione-1F4CD{background-position:12.5% 80.64516%}.emojione-1F4CE{background-position:15.625% 80.64516%}.emojione-1F4CF{background-position:18.75% 80.64516%}.emojione-1F4D0{background-position:21.875% 80.64516%}.emojione-1F4D1{background-position:25% 80.64516%}.emojione-1F4D2{background-position:28.125% 80.64516%}.emojione-1F4D3{background-position:31.25% 80.64516%}.emojione-1F4D4{background-position:34.375% 80.64516%}.emojione-1F4D5{background-position:37.5% 80.64516%}.emojione-1F4D6{background-position:40.625% 80.64516%}.emojione-1F4D7{background-position:43.75% 80.64516%}.emojione-1F4D8{background-position:46.875% 80.64516%}.emojione-1F4D9{background-position:50% 80.64516%}.emojione-1F4DA{background-position:53.125% 80.64516%}.emojione-1F4DB{background-position:56.25% 80.64516%}.emojione-1F4DC{background-position:59.375% 80.64516%}.emojione-1F4DD{background-position:62.5% 80.64516%}.emojione-1F4DE{background-position:65.625% 80.64516%}.emojione-1F4DF{background-position:68.75% 80.64516%}.emojione-1F4E0{background-position:71.875% 80.64516%}.emojione-1F4E1{background-position:75% 80.64516%}.emojione-1F4E2{background-position:78.125% 80.64516%}.emojione-1F4E3{background-position:81.25% 0%}.emojione-1F4E4{background-position:81.25% 3.22581%}.emojione-1F4E5{background-position:81.25% 6.45161%}.emojione-1F4E6{background-position:81.25% 9.67742%}.emojione-1F4E7{background-position:81.25% 12.90323%}.emojione-1F4E8{background-position:81.25% 16.12903%}.emojione-1F4E9{background-position:81.25% 19.35484%}.emojione-1F4EA{background-position:81.25% 22.58065%}.emojione-1F4EB{background-position:81.25% 25.80645%}.emojione-1F4EC{background-position:81.25% 29.03226%}.emojione-1F4ED{background-position:81.25% 32.25806%}.emojione-1F4EE{background-position:81.25% 35.48387%}.emojione-1F4EF{background-position:81.25% 38.70968%}.emojione-1F4F0{background-position:81.25% 41.93548%}.emojione-1F4F1{background-position:81.25% 45.16129%}.emojione-1F4F2{background-position:81.25% 48.3871%}.emojione-1F4F3{background-position:81.25% 51.6129%}.emojione-1F4F4{background-position:81.25% 54.83871%}.emojione-1F4F5{background-position:81.25% 58.06452%}.emojione-1F4F6{background-position:81.25% 61.29032%}.emojione-1F4F7{background-position:81.25% 64.51613%}.emojione-1F4F9{background-position:81.25% 67.74194%}.emojione-1F4FA{background-position:81.25% 70.96774%}.emojione-1F4FB{background-position:81.25% 74.19355%}.emojione-1F4FC{background-position:81.25% 77.41935%}.emojione-1F500{background-position:81.25% 80.64516%}.emojione-1F501{background-position:0% 83.87097%}.emojione-1F502{background-position:3.125% 83.87097%}.emojione-1F503{background-position:6.25% 83.87097%}.emojione-1F504{background-position:9.375% 83.87097%}.emojione-1F505{background-position:12.5% 83.87097%}.emojione-1F506{background-position:15.625% 83.87097%}.emojione-1F507{background-position:18.75% 83.87097%}.emojione-1F508{background-position:21.875% 83.87097%}.emojione-1F509{background-position:25% 83.87097%}.emojione-1F50A{background-position:28.125% 83.87097%}.emojione-1F50B{background-position:31.25% 83.87097%}.emojione-1F50C{background-position:34.375% 83.87097%}.emojione-1F50D{background-position:37.5% 83.87097%}.emojione-1F50E{background-position:40.625% 83.87097%}.emojione-1F50F{background-position:43.75% 83.87097%}.emojione-1F510{background-position:46.875% 83.87097%}.emojione-1F511{background-position:50% 83.87097%}.emojione-1F512{background-position:53.125% 83.87097%}.emojione-1F513{background-position:56.25% 83.87097%}.emojione-1F514{background-position:59.375% 83.87097%}.emojione-1F515{background-position:62.5% 83.87097%}.emojione-1F516{background-position:65.625% 83.87097%}.emojione-1F517{background-position:68.75% 83.87097%}.emojione-1F518{background-position:71.875% 83.87097%}.emojione-1F519{background-position:75% 83.87097%}.emojione-1F51A{background-position:78.125% 83.87097%}.emojione-1F51B{background-position:81.25% 83.87097%}.emojione-1F51C{background-position:84.375% 0%}.emojione-1F51D{background-position:84.375% 3.22581%}.emojione-1F51E{background-position:84.375% 6.45161%}.emojione-1F51F{background-position:84.375% 9.67742%}.emojione-1F520{background-position:84.375% 12.90323%}.emojione-1F521{background-position:84.375% 16.12903%}.emojione-1F522{background-position:84.375% 19.35484%}.emojione-1F523{background-position:84.375% 22.58065%}.emojione-1F524{background-position:84.375% 25.80645%}.emojione-1F525{background-position:84.375% 29.03226%}.emojione-1F526{background-position:84.375% 32.25806%}.emojione-1F527{background-position:84.375% 35.48387%}.emojione-1F528{background-position:84.375% 38.70968%}.emojione-1F529{background-position:84.375% 41.93548%}.emojione-1F52A{background-position:84.375% 45.16129%}.emojione-1F52B{background-position:84.375% 48.3871%}.emojione-1F52C{background-position:84.375% 51.6129%}.emojione-1F52D{background-position:84.375% 54.83871%}.emojione-1F52E{background-position:84.375% 58.06452%}.emojione-1F52F{background-position:84.375% 61.29032%}.emojione-1F530{background-position:84.375% 64.51613%}.emojione-1F531{background-position:84.375% 67.74194%}.emojione-1F532{background-position:84.375% 70.96774%}.emojione-1F533{background-position:84.375% 74.19355%}.emojione-1F534{background-position:84.375% 77.41935%}.emojione-1F535{background-position:84.375% 80.64516%}.emojione-1F536{background-position:84.375% 83.87097%}.emojione-1F537{background-position:0% 87.09677%}.emojione-1F538{background-position:3.125% 87.09677%}.emojione-1F539{background-position:6.25% 87.09677%}.emojione-1F53A{background-position:9.375% 87.09677%}.emojione-1F53B{background-position:12.5% 87.09677%}.emojione-1F53C{background-position:15.625% 87.09677%}.emojione-1F53D{background-position:18.75% 87.09677%}.emojione-1F550{background-position:21.875% 87.09677%}.emojione-1F551{background-position:25% 87.09677%}.emojione-1F552{background-position:28.125% 87.09677%}.emojione-1F553{background-position:31.25% 87.09677%}.emojione-1F554{background-position:34.375% 87.09677%}.emojione-1F555{background-position:37.5% 87.09677%}.emojione-1F556{background-position:40.625% 87.09677%}.emojione-1F557{background-position:43.75% 87.09677%}.emojione-1F558{background-position:46.875% 87.09677%}.emojione-1F559{background-position:50% 87.09677%}.emojione-1F55A{background-position:53.125% 87.09677%}.emojione-1F55B{background-position:56.25% 87.09677%}.emojione-1F55C{background-position:59.375% 87.09677%}.emojione-1F55D{background-position:62.5% 87.09677%}.emojione-1F55E{background-position:65.625% 87.09677%}.emojione-1F55F{background-position:68.75% 87.09677%}.emojione-1F560{background-position:71.875% 87.09677%}.emojione-1F561{background-position:75% 87.09677%}.emojione-1F562{background-position:78.125% 87.09677%}.emojione-1F563{background-position:81.25% 87.09677%}.emojione-1F564{background-position:84.375% 87.09677%}.emojione-1F565{background-position:87.5% 0%}.emojione-1F566{background-position:87.5% 3.22581%}.emojione-1F567{background-position:87.5% 6.45161%}.emojione-1F5FB{background-position:87.5% 9.67742%}.emojione-1F5FC{background-position:87.5% 12.90323%}.emojione-1F5FD{background-position:87.5% 16.12903%}.emojione-1F5FE{background-position:87.5% 19.35484%}.emojione-1F5FF{background-position:87.5% 22.58065%}.emojione-1F600{background-position:87.5% 25.80645%}.emojione-1F601{background-position:87.5% 29.03226%}.emojione-1F602{background-position:87.5% 32.25806%}.emojione-1F603{background-position:87.5% 35.48387%}.emojione-1F604{background-position:87.5% 38.70968%}.emojione-1F605{background-position:87.5% 41.93548%}.emojione-1F606{background-position:87.5% 45.16129%}.emojione-1F607{background-position:87.5% 48.3871%}.emojione-1F608{background-position:87.5% 51.6129%}.emojione-1F609{background-position:87.5% 54.83871%}.emojione-1F60A{background-position:87.5% 58.06452%}.emojione-1F60B{background-position:87.5% 61.29032%}.emojione-1F60C{background-position:87.5% 64.51613%}.emojione-1F60D{background-position:87.5% 67.74194%}.emojione-1F60E{background-position:87.5% 70.96774%}.emojione-1F60F{background-position:87.5% 74.19355%}.emojione-1F610{background-position:87.5% 77.41935%}.emojione-1F611{background-position:87.5% 80.64516%}.emojione-1F612{background-position:87.5% 83.87097%}.emojione-1F613{background-position:87.5% 87.09677%}.emojione-1F614{background-position:0% 90.32258%}.emojione-1F615{background-position:3.125% 90.32258%}.emojione-1F616{background-position:6.25% 90.32258%}.emojione-1F617{background-position:9.375% 90.32258%}.emojione-1F618{background-position:12.5% 90.32258%}.emojione-1F619{background-position:15.625% 90.32258%}.emojione-1F61A{background-position:18.75% 90.32258%}.emojione-1F61B{background-position:21.875% 90.32258%}.emojione-1F61C{background-position:25% 90.32258%}.emojione-1F61D{background-position:28.125% 90.32258%}.emojione-1F61E{background-position:31.25% 90.32258%}.emojione-1F61F{background-position:34.375% 90.32258%}.emojione-1F620{background-position:37.5% 90.32258%}.emojione-1F621{background-position:40.625% 90.32258%}.emojione-1F622{background-position:43.75% 90.32258%}.emojione-1F623{background-position:46.875% 90.32258%}.emojione-1F624{background-position:50% 90.32258%}.emojione-1F625{background-position:53.125% 90.32258%}.emojione-1F626{background-position:56.25% 90.32258%}.emojione-1F627{background-position:59.375% 90.32258%}.emojione-1F628{background-position:62.5% 90.32258%}.emojione-1F629{background-position:65.625% 90.32258%}.emojione-1F62A{background-position:68.75% 90.32258%}.emojione-1F62B{background-position:71.875% 90.32258%}.emojione-1F62C{background-position:75% 90.32258%}.emojione-1F62D{background-position:78.125% 90.32258%}.emojione-1F62E{background-position:81.25% 90.32258%}.emojione-1F62F{background-position:84.375% 90.32258%}.emojione-1F630{background-position:87.5% 90.32258%}.emojione-1F631{background-position:90.625% 0%}.emojione-1F632{background-position:90.625% 3.22581%}.emojione-1F633{background-position:90.625% 6.45161%}.emojione-1F634{background-position:90.625% 9.67742%}.emojione-1F635{background-position:90.625% 12.90323%}.emojione-1F636{background-position:90.625% 16.12903%}.emojione-1F637{background-position:90.625% 19.35484%}.emojione-1F638{background-position:90.625% 22.58065%}.emojione-1F639{background-position:90.625% 25.80645%}.emojione-1F63A{background-position:90.625% 29.03226%}.emojione-1F63B{background-position:90.625% 32.25806%}.emojione-1F63C{background-position:90.625% 35.48387%}.emojione-1F63D{background-position:90.625% 38.70968%}.emojione-1F63E{background-position:90.625% 41.93548%}.emojione-1F63F{background-position:90.625% 45.16129%}.emojione-1F640{background-position:90.625% 48.3871%}.emojione-1F645{background-position:90.625% 51.6129%}.emojione-1F646{background-position:90.625% 54.83871%}.emojione-1F647{background-position:90.625% 58.06452%}.emojione-1F648{background-position:90.625% 61.29032%}.emojione-1F649{background-position:90.625% 64.51613%}.emojione-1F64A{background-position:90.625% 67.74194%}.emojione-1F64B{background-position:90.625% 70.96774%}.emojione-1F64C{background-position:90.625% 74.19355%}.emojione-1F64D{background-position:90.625% 77.41935%}.emojione-1F64E{background-position:90.625% 80.64516%}.emojione-1F64F{background-position:90.625% 83.87097%}.emojione-1F680{background-position:90.625% 87.09677%}.emojione-1F681{background-position:90.625% 90.32258%}.emojione-1F682{background-position:0% 93.54839%}.emojione-1F683{background-position:3.125% 93.54839%}.emojione-1F684{background-position:6.25% 93.54839%}.emojione-1F685{background-position:9.375% 93.54839%}.emojione-1F686{background-position:12.5% 93.54839%}.emojione-1F687{background-position:15.625% 93.54839%}.emojione-1F688{background-position:18.75% 93.54839%}.emojione-1F689{background-position:21.875% 93.54839%}.emojione-1F68A{background-position:25% 93.54839%}.emojione-1F68B{background-position:28.125% 93.54839%}.emojione-1F68C{background-position:31.25% 93.54839%}.emojione-1F68D{background-position:34.375% 93.54839%}.emojione-1F68E{background-position:37.5% 93.54839%}.emojione-1F68F{background-position:40.625% 93.54839%}.emojione-1F690{background-position:43.75% 93.54839%}.emojione-1F691{background-position:46.875% 93.54839%}.emojione-1F692{background-position:50% 93.54839%}.emojione-1F693{background-position:53.125% 93.54839%}.emojione-1F694{background-position:56.25% 93.54839%}.emojione-1F695{background-position:59.375% 93.54839%}.emojione-1F696{background-position:62.5% 93.54839%}.emojione-1F697{background-position:65.625% 93.54839%}.emojione-1F698{background-position:68.75% 93.54839%}.emojione-1F699{background-position:71.875% 93.54839%}.emojione-1F69A{background-position:75% 93.54839%}.emojione-1F69B{background-position:78.125% 93.54839%}.emojione-1F69C{background-position:81.25% 93.54839%}.emojione-1F69D{background-position:84.375% 93.54839%}.emojione-1F69E{background-position:87.5% 93.54839%}.emojione-1F69F{background-position:90.625% 93.54839%}.emojione-1F6A0{background-position:93.75% 0%}.emojione-1F6A1{background-position:93.75% 3.22581%}.emojione-1F6A2{background-position:93.75% 6.45161%}.emojione-1F6A3{background-position:93.75% 9.67742%}.emojione-1F6A4{background-position:93.75% 12.90323%}.emojione-1F6A5{background-position:93.75% 16.12903%}.emojione-1F6A6{background-position:93.75% 19.35484%}.emojione-1F6A7{background-position:93.75% 22.58065%}.emojione-1F6A8{background-position:93.75% 25.80645%}.emojione-1F6A9{background-position:93.75% 29.03226%}.emojione-1F6AA{background-position:93.75% 32.25806%}.emojione-1F6AB{background-position:93.75% 35.48387%}.emojione-1F6AC{background-position:93.75% 38.70968%}.emojione-1F6AD{background-position:93.75% 41.93548%}.emojione-1F6AE{background-position:93.75% 45.16129%}.emojione-1F6AF{background-position:93.75% 48.3871%}.emojione-1F6B0{background-position:93.75% 51.6129%}.emojione-1F6B1{background-position:93.75% 54.83871%}.emojione-1F6B2{background-position:93.75% 58.06452%}.emojione-1F6B3{background-position:93.75% 61.29032%}.emojione-1F6B4{background-position:93.75% 64.51613%}.emojione-1F6B5{background-position:93.75% 67.74194%}.emojione-1F6B6{background-position:93.75% 70.96774%}.emojione-1F6B7{background-position:93.75% 74.19355%}.emojione-1F6B8{background-position:93.75% 77.41935%}.emojione-1F6B9{background-position:93.75% 80.64516%}.emojione-1F6BA{background-position:93.75% 83.87097%}.emojione-1F6BB{background-position:93.75% 87.09677%}.emojione-1F6BC{background-position:93.75% 90.32258%}.emojione-1F6BD{background-position:93.75% 93.54839%}.emojione-1F6BE{background-position:0% 96.77419%}.emojione-1F6BF{background-position:3.125% 96.77419%}.emojione-1F6C0{background-position:6.25% 96.77419%}.emojione-1F6C1{background-position:9.375% 96.77419%}.emojione-1F6C2{background-position:12.5% 96.77419%}.emojione-1F6C3{background-position:15.625% 96.77419%}.emojione-1F6C4{background-position:18.75% 96.77419%}.emojione-1F6C5{background-position:21.875% 96.77419%}.emojione-203C{background-position:25% 96.77419%}.emojione-2049{background-position:28.125% 96.77419%}.emojione-2122{background-position:31.25% 96.77419%}.emojione-2139{background-position:34.375% 96.77419%}.emojione-2194{background-position:37.5% 96.77419%}.emojione-2195{background-position:40.625% 96.77419%}.emojione-2196{background-position:43.75% 96.77419%}.emojione-2197{background-position:46.875% 96.77419%}.emojione-2198{background-position:50% 96.77419%}.emojione-2199{background-position:53.125% 96.77419%}.emojione-21A9{background-position:56.25% 96.77419%}.emojione-21AA{background-position:59.375% 96.77419%}.emojione-231A{background-position:62.5% 96.77419%}.emojione-231B{background-position:65.625% 96.77419%}.emojione-23E9{background-position:68.75% 96.77419%}.emojione-23EA{background-position:71.875% 96.77419%}.emojione-23EB{background-position:75% 96.77419%}.emojione-23EC{background-position:78.125% 96.77419%}.emojione-23F0{background-position:81.25% 96.77419%}.emojione-23F3{background-position:84.375% 96.77419%}.emojione-24C2{background-position:87.5% 96.77419%}.emojione-25AA{background-position:90.625% 96.77419%}.emojione-25AB{background-position:93.75% 96.77419%}.emojione-25B6{background-position:96.875% 0%}.emojione-25C0{background-position:96.875% 3.22581%}.emojione-25FB{background-position:96.875% 6.45161%}.emojione-25FC{background-position:96.875% 9.67742%}.emojione-25FD{background-position:96.875% 12.90323%}.emojione-25FE{background-position:96.875% 16.12903%}.emojione-2600{background-position:96.875% 19.35484%}.emojione-2601{background-position:96.875% 22.58065%}.emojione-260E{background-position:96.875% 25.80645%}.emojione-2611{background-position:96.875% 29.03226%}.emojione-2614{background-position:96.875% 32.25806%}.emojione-2615{background-position:96.875% 35.48387%}.emojione-261D{background-position:96.875% 38.70968%}.emojione-263A{background-position:96.875% 41.93548%}.emojione-2648{background-position:96.875% 45.16129%}.emojione-2649{background-position:96.875% 48.3871%}.emojione-264A{background-position:96.875% 51.6129%}.emojione-264B{background-position:96.875% 54.83871%}.emojione-264C{background-position:96.875% 58.06452%}.emojione-264D{background-position:96.875% 61.29032%}.emojione-264E{background-position:96.875% 64.51613%}.emojione-264F{background-position:96.875% 67.74194%}.emojione-2650{background-position:96.875% 70.96774%}.emojione-2651{background-position:96.875% 74.19355%}.emojione-2652{background-position:96.875% 77.41935%}.emojione-2653{background-position:96.875% 80.64516%}.emojione-2660{background-position:96.875% 83.87097%}.emojione-2663{background-position:96.875% 87.09677%}.emojione-2665{background-position:96.875% 90.32258%}.emojione-2666{background-position:96.875% 93.54839%}.emojione-2668{background-position:96.875% 96.77419%}.emojione-267B{background-position:0% 100%}.emojione-267F{background-position:3.125% 100%}.emojione-2693{background-position:6.25% 100%}.emojione-26A0{background-position:9.375% 100%}.emojione-26A1{background-position:12.5% 100%}.emojione-26AA{background-position:15.625% 100%}.emojione-26AB{background-position:18.75% 100%}.emojione-26BD{background-position:21.875% 100%}.emojione-26BE{background-position:25% 100%}.emojione-26C4{background-position:28.125% 100%}.emojione-26C5{background-position:31.25% 100%}.emojione-26CE{background-position:34.375% 100%}.emojione-26D4{background-position:37.5% 100%}.emojione-26EA{background-position:40.625% 100%}.emojione-26F2{background-position:43.75% 100%}.emojione-26F3{background-position:46.875% 100%}.emojione-26F5{background-position:50% 100%}.emojione-26FA{background-position:53.125% 100%}.emojione-26FD{background-position:56.25% 100%}.emojione-2702{background-position:59.375% 100%}.emojione-2705{background-position:62.5% 100%}.emojione-2708{background-position:65.625% 100%}.emojione-2709{background-position:68.75% 100%}.emojione-270A{background-position:71.875% 100%}.emojione-270B{background-position:75% 100%}.emojione-270C{background-position:78.125% 100%}.emojione-270F{background-position:81.25% 100%}.emojione-2712{background-position:84.375% 100%}.emojione-2714{background-position:87.5% 100%}.emojione-2716{background-position:90.625% 100%}.emojione-2728{background-position:93.75% 100%}.emojione-2733{background-position:96.875% 100%}.emojione-2734{background-position:100% 0%}.emojione-2744{background-position:100% 3.22581%}.emojione-2747{background-position:100% 6.45161%}.emojione-274C{background-position:100% 9.67742%}.emojione-274E{background-position:100% 12.90323%}.emojione-2753{background-position:100% 16.12903%}.emojione-2754{background-position:100% 19.35484%}.emojione-2755{background-position:100% 22.58065%}.emojione-2757{background-position:100% 25.80645%}.emojione-2764{background-position:100% 29.03226%}.emojione-2795{background-position:100% 32.25806%}.emojione-2796{background-position:100% 35.48387%}.emojione-2797{background-position:100% 38.70968%}.emojione-27A1{background-position:100% 41.93548%}.emojione-27B0{background-position:100% 45.16129%}.emojione-27BF{background-position:100% 48.3871%}.emojione-2934{background-position:100% 51.6129%}.emojione-2935{background-position:100% 54.83871%}.emojione-2B05{background-position:100% 58.06452%}.emojione-2B06{background-position:100% 61.29032%}.emojione-2B07{background-position:100% 64.51613%}.emojione-2B1B{background-position:100% 67.74194%}.emojione-2B1C{background-position:100% 70.96774%}.emojione-2B50{background-position:100% 74.19355%}.emojione-2B55{background-position:100% 77.41935%}.emojione-3030{background-position:100% 80.64516%}.emojione-303D{background-position:100% 83.87097%}.emojione-3297{background-position:100% 87.09677%}.emojione-3299{background-position:100% 90.32258%}
+
+
+/* AutoComplete styles for Emoji One */
+.dropdown-menu {
+  list-style: none;
+  padding: .3em 0 0;
+  margin: 0;
+  border: 1px solid #6E6E6E;
+  background-color: white;
+  border-radius: 5px;
+  overflow: hidden;
+  font-size: inherit;
+  letter-spacing: .025em;
+  box-shadow: 3px 3px 3px rgba(0,0,0,.2);
+}
+.dropdown-menu a:hover {
+  cursor: pointer;
+}
+.dropdown-menu li {
+  letter-spacing: 0;
+  display: block;
+  float: none;
+  margin: 0;
+  padding: 0;
+  border:none;
+}
+.dropdown-menu li:before {
+  display: none;
+}
+.dropdown-menu .textcomplete-footer {
+  margin-top: .3em;
+  background: #e6e6e6;
+}
+.dropdown-menu .textcomplete-footer a {
+  color: #999999;
+  text-decoration: none;
+  text-transform: uppercase;
+  letter-spacing: .05em;
+  line-height: 2.1818em;
+  padding-left: 1.8181em;
+  font-size: .84em;
+}
+.dropdown-menu .textcomplete-footer .arrow {
+  margin-left: .8em;
+  font-size: 1.3em;
+}
+.dropdown-menu li .emojione {
+  vertical-align: middle;
+  font-size: 1.23em;
+  width: 1em;
+  height: 1em;
+  top: -1px;
+  margin: 0 .3em 0 0;
+}
+.dropdown-menu li a {
+  display: block;
+  height: 100%;
+  line-height: 1.8em;
+  padding: 0 1.54em 0 .615em;
+  color: #4f4f4f;
+}
+.dropdown-menu .active,
+.dropdown-menu li:hover {
+  background: #6E6E6E;
+  color: white;
+}
+.dropdown-menu .active a,
+.dropdown-menu li:hover a {
+  color: inherit;
+}
diff --git a/pagure/static/vendor/emojione/emojione.sprites.png b/pagure/static/vendor/emojione/emojione.sprites.png
new file mode 120000
index 0000000..cc9e491
--- /dev/null
+++ b/pagure/static/vendor/emojione/emojione.sprites.png
@@ -0,0 +1 @@
+emojione.sprites-1.3.1.png
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/css/hack-extended-2.020.css b/pagure/static/vendor/hack_fonts/css/hack-extended-2.020.css
new file mode 100644
index 0000000..0f98461
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/css/hack-extended-2.020.css
@@ -0,0 +1,38 @@
+/*!
+ *  Hack v2.020 - https://sourcefoundry.org/hack/
+ *  Licenses - Fonts: Hack Open Font License + Bitstream Vera license, CSS: MIT License
+ */
+/* FONT PATHS
+ * -------------------------- */
+@font-face {
+  font-family: 'Hack';
+  src: url('../fonts/eot/hack-regular-webfont.eot?v=2.020');
+  src: url('../fonts/eot/hack-regular-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-regular-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-regular-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-regular-webfont.ttf?v=2.020') format('truetype');
+  font-weight: 400;
+  font-style: normal;
+}
+
+@font-face {
+  font-family: 'Hack';
+  src: url('../fonts/eot/hack-bold-webfont.eot?v=2.020');
+  src: url('../fonts/eot/hack-bold-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-bold-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-bold-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-bold-webfont.ttf?v=2.020') format('truetype');
+  font-weight: 700;
+  font-style: normal;
+}
+
+@font-face {
+  font-family: 'Hack';
+  src: url('../fonts/eot/hack-italic-webfont.eot?v=2.020');
+  src: url('../fonts/eot/hack-italic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-italic-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-italic-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-italic-webfont.ttf?v=2.020') format('truetype');
+  font-weight: 400;
+  font-style: italic;
+}
+
+@font-face {
+  font-family: 'Hack';
+  src: url('../fonts/eot/hack-bolditalic-webfont.eot?v=2.020');
+  src: url('../fonts/eot/hack-bolditalic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'), url('../fonts/woff2/hack-bolditalic-webfont.woff2?v=2.020') format('woff2'), url('../fonts/woff/hack-bolditalic-webfont.woff?v=2.020') format('woff'), url('../fonts/web-ttf/hack-bolditalic-webfont.ttf?v=2.020') format('truetype');
+  font-weight: 700;
+  font-style: italic;
+}
+
diff --git a/pagure/static/vendor/hack_fonts/css/hack-extended-2.020.min.css b/pagure/static/vendor/hack_fonts/css/hack-extended-2.020.min.css
new file mode 100644
index 0000000..11f9859
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/css/hack-extended-2.020.min.css
@@ -0,0 +1,4 @@
+/*!
+ *  Hack v2.020 - https://sourcefoundry.org/hack/
+ *  Licenses - Fonts: Hack Open Font License + Bitstream Vera license, CSS: MIT License
+ */@font-face{font-family:'Hack';src:url('../fonts/eot/hack-regular-webfont.eot?v=2.020');src:url('../fonts/eot/hack-regular-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-regular-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-regular-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-regular-webfont.ttf?v=2.020') format('truetype');font-weight:400;font-style:normal}@font-face{font-family:'Hack';src:url('../fonts/eot/hack-bold-webfont.eot?v=2.020');src:url('../fonts/eot/hack-bold-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-bold-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-bold-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-bold-webfont.ttf?v=2.020') format('truetype');font-weight:700;font-style:normal}@font-face{font-family:'Hack';src:url('../fonts/eot/hack-italic-webfont.eot?v=2.020');src:url('../fonts/eot/hack-italic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-italic-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-italic-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-italic-webfont.ttf?v=2.020') format('truetype');font-weight:400;font-style:italic}@font-face{font-family:'Hack';src:url('../fonts/eot/hack-bolditalic-webfont.eot?v=2.020');src:url('../fonts/eot/hack-bolditalic-webfont.eot?#iefix&v=2.020') format('embedded-opentype'),url('../fonts/woff2/hack-bolditalic-webfont.woff2?v=2.020') format('woff2'),url('../fonts/woff/hack-bolditalic-webfont.woff?v=2.020') format('woff'),url('../fonts/web-ttf/hack-bolditalic-webfont.ttf?v=2.020') format('truetype');font-weight:700;font-style:italic}
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/css/hack-extended.css b/pagure/static/vendor/hack_fonts/css/hack-extended.css
new file mode 120000
index 0000000..f08cb16
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/css/hack-extended.css
@@ -0,0 +1 @@
+hack-extended-2.020.css
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/css/hack-extended.min.css b/pagure/static/vendor/hack_fonts/css/hack-extended.min.css
new file mode 120000
index 0000000..ceb0a59
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/css/hack-extended.min.css
@@ -0,0 +1 @@
+hack-extended-2.020.min.css
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/hack-bold-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/hack-bold-webfont.eot
new file mode 100755
index 0000000..a87e0ab
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/hack-bold-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/hack-bolditalic-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/hack-bolditalic-webfont.eot
new file mode 100755
index 0000000..c99503b
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/hack-bolditalic-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/hack-italic-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/hack-italic-webfont.eot
new file mode 100755
index 0000000..c64c219
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/hack-italic-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/hack-regular-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/hack-regular-webfont.eot
new file mode 100755
index 0000000..00725f4
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/hack-regular-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-bold-latin-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-bold-latin-webfont.eot
new file mode 100755
index 0000000..65ffecc
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-bold-latin-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-bolditalic-latin-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-bolditalic-latin-webfont.eot
new file mode 100755
index 0000000..487526a
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-bolditalic-latin-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-italic-latin-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-italic-latin-webfont.eot
new file mode 100755
index 0000000..22f0d06
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-italic-latin-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-regular-latin-webfont.eot b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-regular-latin-webfont.eot
new file mode 100755
index 0000000..7edc826
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/eot/latin/hack-regular-latin-webfont.eot differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/hack-bold-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/hack-bold-webfont.svg
new file mode 100755
index 0000000..555785c
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/hack-bold-webfont.svg
@@ -0,0 +1,1645 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackbold" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M470 1052v456h285v-456l-68 -576h-139zM615 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49 q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5z" />
+<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
+<glyph unicode="#" d="M209 373h-207v215h260l74 293h-219v215h274l94 374h222l-95 -374h203l94 374h224l-97 -374h193v-215h-246l-74 -293h205v-215h-258l-94 -373h-221l94 373h-205l-94 -373h-221zM688 588l74 293h-205l-74 -293h205z" />
+<glyph unicode="$" d="M512 0q-45 3 -142 26q-95 22 -198 66v262q103 -61 200 -94q51 -17 95 -25t86 -9v329q-197 39 -293 135q-96 94 -96 253q0 166 102 265t247 111v237h221l1 -237q32 -5 108 -18q34 -6 72.5 -15.5t83.5 -23.5v-256q-33 22 -68.5 37.5t-69.5 26.5q-39 12 -80 19.5t-87 10.5 v-307q199 -32 298 -134q51 -52 75.5 -121t24.5 -152q0 -86 -27 -152.5t-81 -119.5q-61 -59 -134.5 -84t-114.5 -30l-1 -301h-221zM553 1100q-61 -7 -93 -41q-14 -14 -23 -37t-9 -55q0 -57 32 -95q33 -39 93 -55v283zM694 226q36 5 59 18t39 31q35 40 35 101t-34 101 q-16 18 -40 31t-59 20v-302z" />
+<glyph unicode="%" d="M352 793q-133 0 -226 93q-45 45 -69 100.5t-24 125.5q0 134 93 227t226 93q69 0 125.5 -24t101.5 -69t69 -101.5t24 -125.5q0 -133 -93 -226q-45 -45 -101.5 -69t-125.5 -24zM352 975q58 0 98 40q39 39 39 97q0 57 -40 97t-97 40t-97 -39q-40 -40 -40 -98q0 -33 11 -56 t29 -41q40 -40 97 -40zM48 561l1143 436v-114l-1139 -432zM898 0q-71 0 -129 26.5t-97 65.5q-48 48 -70 107.5t-22 121.5q0 63 23 120.5t69 104.5q43 44 100.5 68.5t125.5 24.5t125 -24t102 -68q43 -42 68.5 -100t25.5 -127q0 -65 -24 -123.5t-69 -103.5q-42 -42 -101 -67.5 t-127 -25.5zM898 182q58 0 98 40t40 97t-41 98q-20 20 -45 30t-52 10q-57 0 -97 -40q-20 -20 -29.5 -45.5t-9.5 -52.5q0 -30 11 -55.5t28 -42.5q39 -39 97 -39z" />
+<glyph unicode="&#x26;" d="M537 -29q-221 0 -361 131q-139 130 -139 340q0 78 18 142t53 122q36 60 87.5 111t121.5 96q-27 43 -45 79t-29 66q-12 33 -18 64.5t-6 66.5q0 76 27 138t82 106q109 87 315 87q38 0 73 -3t70 -8q40 -6 71.5 -13.5t66.5 -18.5v-256q-28 16 -64 31.5t-65 23.5t-63.5 13 t-68.5 5q-38 0 -69 -7t-51 -21q-41 -29 -41 -80q0 -20 7 -43.5t24 -57.5q16 -32 39 -71t59 -94l313 -480q22 39 32 87q11 52 11 106q0 14 -0.5 30t-1.5 29q-1 15 -2 25.5t-4 27.5h235v-51q0 -147 -34 -253q-35 -111 -107 -195l162 -246h-317l-48 72q-39 -26 -77 -43.5 t-82 -31.5q-42 -13 -83 -19.5t-91 -6.5zM580 207q15 0 27 1.5t29 5.5q14 3 26.5 6.5t30.5 11.5l8 4q10 5 16.5 8.5t11 6l9 5t10.5 6.5l-308 469q-66 -44 -99 -102q-34 -59 -34 -135q0 -66 22 -116.5t56 -86.5q79 -84 195 -84z" />
+<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
+<glyph unicode="(" d="M596 -270q-74 107 -134 220.5t-102 235.5q-77 225 -77 457q0 231 78 458q38 110 94.5 221t140.5 232h228q-64 -116 -113.5 -232t-82.5 -231q-64 -222 -64 -448q0 -224 64 -447q65 -227 196 -466h-228v0z" />
+<glyph unicode=")" d="M409 -270q131 239 196 466q64 223 64 447q0 226 -64 448q-32 110 -80.5 226t-115.5 237h228q159 -229 236 -453q39 -114 58 -230.5t19 -229.5q0 -230 -77 -455q-40 -117 -98.5 -229t-137.5 -227h-228v0z" />
+<glyph unicode="*" d="M216 455l239 366l-358 155l51 148l369 -120l19 416h156l19 -416l369 120l51 -148l-358 -155l239 -366l-133 -95l-265 350l-265 -350z" />
+<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
+<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-11 -35 -28 -70t-43 -70q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
+<glyph unicode="-" d="M221 746h791v-291h-791v291z" />
+<glyph unicode="." d="M612 -42q-39 0 -69 13.5t-55 38.5q-52 52 -52 131q0 82 52 134q51 51 125 51q36 0 68 -12.5t58 -38.5q51 -51 51 -134q0 -80 -51 -131q-52 -52 -127 -52z" />
+<glyph unicode="/" d="M899 1493h221l-786 -1683h-221z" />
+<glyph unicode="0" d="M617 -29q-248 0 -371 194q-123 193 -123 580q0 388 123 582q123 193 370 193q248 0 371 -193q123 -194 123 -582t-123 -581t-370 -193zM616 221q103 0 150 125q47 126 47 399q0 274 -47 400q-47 125 -150 125q-102 0 -149 -125q-47 -126 -47 -400q0 -273 47 -399 q47 -125 149 -125zM617 460q-8 0 -14.5 10t-11.5 26.5t-8.5 37.5t-6.5 44q-2 19 -4.5 43t-4 48t-2.5 45t-1 35q0 10 0.5 28.5t2 41.5t3 48t4.5 48q13 117 41 117q15 0 26 -33.5t17 -85.5q2 -21 4 -45t3.5 -47t2.5 -44t1 -34q0 -9 -0.5 -26t-1.5 -39.5t-2.5 -48t-4.5 -50.5 q-7 -60 -18 -89.5t-25 -29.5z" />
+<glyph unicode="1" d="M188 260h330v969l-307 -76v266l309 74h285v-1233h330v-260h-947v260z" />
+<glyph unicode="2" d="M115 216q0 19 6 33.5t19 28.5l135 144q84 90 140 149.5t94.5 101t63.5 69.5t48 54q37 43 64 78.5t44 72.5q33 67 33 135q0 45 -14.5 84.5t-45.5 67.5t-75 41t-97 13q-81 0 -177 -31q-98 -31 -206 -92v275q60 22 114 37t96 23q50 10 100 15t100 5q109 0 203.5 -26.5 t165.5 -83.5q64 -52 99.5 -127t35.5 -179q0 -44 -7 -82t-23 -79q-17 -42 -42.5 -85.5t-58.5 -85.5q-18 -22 -42.5 -49.5t-59.5 -64t-81.5 -84t-107.5 -108.5q-55 -56 -91.5 -87.5t-62 -51t-44 -33.5t-37.5 -34h659v-260h-948v216z" />
+<glyph unicode="3" d="M555 -29q-53 0 -109 4.5t-111 14.5q-51 9 -104 22.5t-106 32.5v274q46 -23 96.5 -41t106.5 -30q57 -13 112 -19t101 -6q66 0 118 13t89 42q36 29 52.5 69t16.5 88q0 51 -17.5 95t-52.5 76q-33 29 -82.5 45.5t-115.5 16.5h-158v260h158q109 0 171 44q32 23 46 54t14 69 q0 82 -60 129q-29 23 -71.5 34.5t-101.5 11.5q-39 0 -84.5 -5t-93.5 -16q-45 -10 -96 -25.5t-103 -35.5v268q105 32 203 48q51 8 98.5 12t92.5 4q238 0 369 -103q132 -104 132 -284q0 -64 -17.5 -118t-58.5 -99q-77 -86 -217 -111q160 -28 244 -127q42 -49 63 -114t21 -150 q0 -106 -34.5 -189t-103.5 -140t-171 -85.5t-236 -28.5z" />
+<glyph unicode="4" d="M694 322h-592v286l566 885h309v-918h164v-253h-164v-322h-283v322zM694 575v590l-377 -590h377z" />
+<glyph unicode="5" d="M533 -29q-43 0 -92 4t-98 12q-50 8 -100.5 20.5t-99.5 27.5v266q45 -22 85 -36t86 -25q45 -11 87 -16t87 -5q158 0 238 67q81 67 81 189q0 66 -22 113.5t-58 79.5t-90.5 50.5t-128.5 18.5q-35 0 -74.5 -4.5t-79.5 -14.5q-41 -10 -83.5 -26t-77.5 -33v834h811v-260h-572 v-277q10 4 32 10.5t45 10.5q18 3 43 4.5t46 1.5q106 0 199 -35.5t160 -103.5q65 -66 101 -159t36 -208q0 -119 -39 -212t-110 -158t-173 -100.5t-239 -35.5z" />
+<glyph unicode="6" d="M644 -31q-131 0 -227.5 44.5t-160.5 139.5q-66 97 -95.5 241t-29.5 330q0 198 35 348.5t116 253.5q76 96 189.5 144t259.5 48q41 0 76 -3.5t73 -11.5q73 -15 150 -45v-268q-40 23 -77.5 40t-73.5 28q-72 22 -141 22q-159 0 -242 -107t-88 -318q23 32 54 57.5t66 40.5 q32 14 75.5 23t98.5 9q99 0 177.5 -31.5t132.5 -94.5q54 -62 82 -153.5t28 -210.5q0 -121 -30.5 -220.5t-92.5 -168.5q-63 -70 -152 -103.5t-203 -33.5zM643 207q45 0 83 16.5t65 53.5q51 69 51 200q0 130 -51 201q-24 33 -61 51.5t-88 18.5q-50 0 -85.5 -18t-59.5 -51 q-51 -71 -51 -201q0 -69 13.5 -119t37.5 -83q26 -36 63.5 -52.5t82.5 -16.5z" />
+<glyph unicode="7" d="M758 1233h-623v260h944v-209l-506 -1284h-301z" />
+<glyph unicode="8" d="M617 -29q-123 0 -212 30.5t-149 86.5q-64 59 -95.5 142t-31.5 184q0 76 18 134.5t53 107.5q71 97 197 135q-113 39 -172 123q-29 42 -44 92.5t-15 114.5q0 91 30 164t91 127q121 108 329 108t330 -108q121 -108 121 -292q0 -123 -58 -205q-58 -84 -169 -124 q122 -37 194 -136q35 -49 52.5 -107.5t17.5 -133.5q0 -101 -31.5 -184t-95.5 -142q-128 -117 -360 -117zM616 903q88 0 139 52q50 52 50 138q0 89 -50 139q-23 23 -58 36.5t-81 13.5q-86 0 -137 -51t-51 -138q0 -86 51 -138q27 -28 61 -40t76 -12zM616 209q48 0 89 15.5 t72 47.5q29 29 45 72t16 96q0 50 -15 91t-46 73q-28 29 -68 45.5t-93 16.5q-48 0 -88.5 -15t-71.5 -47q-61 -62 -61 -165q0 -51 15 -93.5t46 -74.5q27 -28 68 -45t92 -17z" />
+<glyph unicode="9" d="M502 -39q-40 0 -75.5 3.5t-72.5 11.5q-38 8 -75.5 19t-75.5 25v269q40 -23 77.5 -40t74.5 -28q70 -22 140 -22q76 0 137.5 26t104.5 81q40 51 63 130t25 188q-25 -34 -53.5 -57t-66.5 -40t-79.5 -25t-92.5 -8q-100 0 -179 32t-134 96q-54 63 -81.5 153.5t-27.5 207.5 q0 122 30.5 220t91.5 167q122 137 357 137q139 0 233 -47.5t154 -135.5q68 -100 96.5 -245t28.5 -323q0 -110 -10 -200.5t-29 -164t-47 -132t-64 -104.5q-78 -100 -193 -147t-257 -47zM589 741q96 0 147 70q50 70 50 200q0 69 -13.5 119.5t-36.5 82.5q-26 35 -63 52t-84 17 q-51 0 -86.5 -18.5t-59.5 -50.5q-52 -70 -52 -201t52 -201q26 -35 61.5 -52.5t84.5 -17.5z" />
+<glyph unicode=":" d="M619 752q-39 0 -70.5 14.5t-53.5 36.5q-27 27 -39.5 61t-12.5 72q0 43 14 76.5t37 56.5q26 26 59 38.5t68 12.5t67 -12.5t58 -38.5q23 -23 37 -56.5t14 -75.5t-14 -76.5t-37 -57.5t-56 -37t-71 -14zM620 36q-74 0 -125 51q-52 52 -52 133t52 133q51 51 125 51 q36 0 68 -12.5t58 -38.5q23 -23 37 -56.5t14 -76.5q0 -42 -13.5 -75.5t-37.5 -57.5q-26 -26 -58 -38.5t-68 -12.5z" />
+<glyph unicode=";" d="M609 695q-41 0 -74 15t-56 38q-29 29 -41.5 65t-12.5 75q0 45 15 80.5t38 59.5q27 26 61.5 39.5t72.5 13.5q76 0 131 -53q24 -25 38.5 -59.5t14.5 -79.5t-14.5 -80.5t-38.5 -60.5q-25 -24 -59.5 -38.5t-74.5 -14.5zM373 -346l15 7q55 23 103 57.5t80 74.5q29 36 48 83.5 t23 102.5q-10 -2 -13 -2h-10q-35 0 -69.5 11t-59.5 34q-26 23 -38.5 55.5t-12.5 72.5q0 81 54 128q14 12 28.5 20.5t31.5 15.5q14 5 32 8t39 3q23 0 45 -4.5t42 -15.5q40 -19 65 -58q14 -21 23.5 -42.5t15.5 -47.5q7 -26 10 -55t3 -61q0 -94 -25.5 -174t-73.5 -145 q-93 -129 -281 -200l-14 -5z" />
+<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
+<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
+<glyph unicode="?" d="M479 583q0 83 31 152q17 37 45 74.5t73 81.5l90 89q11 11 25.5 26t25.5 29q23 27 32 44q5 8 9.5 19.5t7.5 22.5q2 6 3.5 18.5t1.5 25.5q0 8 -0.5 20t-2.5 20q-1 4 -4 15.5t-7 19.5q-4 9 -8.5 15.5t-10.5 14.5t-12 14t-15 14q-14 11 -25 17.5t-20 10.5q-5 2 -21.5 8 t-33.5 9q-30 6 -64 6q-11 0 -26 -0.5t-26 -2.5t-25 -4.5t-29 -6.5q-14 -4 -30.5 -9.5t-26.5 -9.5q-39 -15 -87 -41t-96 -60l-24 -17v225l7 5q96 58 194 87q96 28 202 28q98 0 173 -25q76 -26 135 -75q27 -23 49 -52.5t37 -64.5q29 -69 29 -149q0 -82 -36 -151 q-17 -32 -46.5 -70t-83.5 -91l-87 -86q-22 -21 -32.5 -32.5t-22.5 -25.5q-10 -12 -17.5 -24.5t-12.5 -20.5q-8 -16 -13 -38t-5 -39v-142h-220v126zM592 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5 t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
+<glyph unicode="@" d="M767 -319q-171 0 -309.5 58t-243.5 175q-208 232 -208 632q0 192 46.5 346t140.5 271t217.5 174.5t272.5 57.5q118 0 204 -34t146 -97q126 -132 126 -359v-770h-196v82q-22 -30 -44 -48t-45 -29q-51 -25 -125 -25q-163 0 -263 118q-101 119 -101 313q0 99 25.5 176 t74.5 134q100 117 263 117q34 0 66.5 -5.5t60.5 -18.5q26 -12 49 -31t39 -41v41q0 136 -74 210q-76 74 -210 74q-108 0 -194.5 -47.5t-148.5 -134.5q-61 -85 -96 -206t-35 -270q0 -161 41 -284t110 -206q78 -93 182 -137t219 -44q40 0 81 5.5t79 17.5q36 11 72.5 29.5 t71.5 41.5l92 -176q-42 -29 -88 -50t-88 -33q-44 -13 -96.5 -20t-113.5 -7zM782 303q89 0 140 64t51 178q0 112 -51 177q-51 64 -140 64q-50 0 -83 -17.5t-56 -46.5q-51 -65 -51 -177q0 -114 51 -178q23 -29 56 -46.5t83 -17.5z" />
+<glyph unicode="A" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="B" d="M125 1495h481q250 0 375 -94q125 -95 125 -283q0 -143 -74 -225q-73 -80 -217 -94q88 -8 152 -37.5t106 -77.5q86 -98 86 -275q0 -215 -130 -312t-423 -97h-481v1495zM606 913q60 0 98 10t62 31q23 20 35 50.5t12 80.5q0 44 -11 77t-37 56q-21 18 -57.5 30t-101.5 12 h-196v-347h196zM606 236q141 0 198 48q56 48 56 167q0 121 -59 174t-195 53h-196v-442h196z" />
+<glyph unicode="C" d="M759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129 q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
+<glyph unicode="D" d="M137 1493h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v1493zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-961h80z" />
+<glyph unicode="E" d="M168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="F" d="M182 1493h930v-260h-635v-332h578v-260h-578v-641h-295v1493z" />
+<glyph unicode="G" d="M720 -29q-143 0 -255 50.5t-190 150.5q-75 96 -116.5 238t-41.5 337q0 186 39.5 330t120.5 244q160 199 455 199q51 0 94.5 -6t87.5 -19q85 -25 163 -74v-327q-62 80 -142 121q-80 40 -176 40q-170 0 -252 -126q-83 -128 -83 -382q0 -125 20 -220.5t60 -161.5 q38 -62 95.5 -95.5t138.5 -33.5q20 0 41 2t38 7q22 5 33 11t22 14v285h-202v248h460v-684q-84 -72 -187 -110q-52 -19 -106 -28.5t-117 -9.5z" />
+<glyph unicode="H" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
+<glyph unicode="I" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="J" d="M524 -29q-58 0 -106 6.5t-100 19.5q-51 13 -102 31.5t-107 45.5v342q43 -45 89 -78t95 -56q96 -46 197 -46q115 0 169 58t54 185v754h-361v260h656v-1014q0 -273 -114 -390q-58 -60 -153.5 -89t-216.5 -29z" />
+<glyph unicode="K" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
+<glyph unicode="L" d="M225 1493h295v-1233h631v-260h-926v1493z" />
+<glyph unicode="M" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
+<glyph unicode="N" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
+<glyph unicode="O" d="M616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388 q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="P" d="M166 1493h405q308 0 445 -110q135 -110 135 -357q0 -248 -135 -357q-137 -110 -445 -110h-110v-559h-295v1493zM582 807q146 0 204 49t58 170t-58 170t-204 49h-121v-438h121z" />
+<glyph unicode="Q" d="M656 -23l-23 -5q-5 -1 -7 -1h-4q-137 0 -234.5 50.5t-162.5 145.5q-133 196 -133 577q0 192 33 336.5t100 244.5q70 103 169.5 149t221.5 46q131 0 229 -49.5t164 -146.5q132 -197 132 -579q0 -263 -63 -440t-183 -254l286 -332h-342zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="R" d="M133 1493h426q288 0 414 -102q63 -51 94 -134.5t31 -192.5q0 -84 -18.5 -144t-56.5 -106q-36 -44 -88.5 -71.5t-127.5 -37.5q23 -5 43 -16t34 -25q15 -15 34.5 -46t44.5 -81l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838 q121 0 174 48q24 22 38 59t14 97q0 110 -52 156q-53 47 -174 47h-139v-407h139z" />
+<glyph unicode="S" d="M582 -29q-60 0 -117 6t-114 20q-114 27 -216 79v305q62 -44 117 -74t112 -51q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55q-115 44 -189 88.5t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116 q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174q85 -109 85 -281q0 -221 -134 -332q-135 -112 -394 -112z" />
+<glyph unicode="T" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
+<glyph unicode="U" d="M616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="V" d="M57 1493h297l262 -1247l263 1247h297l-355 -1493h-409z" />
+<glyph unicode="W" d="M0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
+<glyph unicode="X" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
+<glyph unicode="Y" d="M469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="Z" d="M94 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
+<glyph unicode="[" d="M384 1636h503v-190h-238v-1531h238v-185h-503v1906z" />
+<glyph unicode="\" d="M111 1493h223l786 -1683h-223z" />
+<glyph unicode="]" d="M344 -83h243v1528h-243v190h505v-1905h-505v187z" />
+<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
+<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
+<glyph unicode="`" d="M199 1638h282l283 -376h-197z" />
+<glyph unicode="a" d="M494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14 t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290 q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="b" d="M740 -29q-103 0 -177 49q-75 49 -121 146l-29 -166h-263v1556h292v-595q54 94 126 140q35 23 75.5 34.5t91.5 11.5q96 0 172 -38.5t129 -113.5q51 -72 79 -180.5t28 -254.5q0 -137 -26 -247.5t-80 -188.5q-54 -77 -128.5 -115t-168.5 -38zM647 211q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
+<glyph unicode="c" d="M702 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33 t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
+<glyph unicode="d" d="M492 -29q-93 0 -167.5 38t-128.5 115q-106 153 -106 436t108 435q51 72 126 112t174 40q48 0 89 -10.5t79 -35.5q71 -47 125 -140v595h292v-1556h-263l-29 166q-23 -49 -54 -85.5t-67 -60.5q-74 -49 -178 -49zM586 211q94 0 150 92q55 91 55 254t-55 254q-56 92 -150 92 q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
+<glyph unicode="e" d="M665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63 q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="f" d="M426 895h-272v225h272v78q0 202 84 280t312 78h241v-225h-229q-67 0 -89 -24q-12 -12 -19 -36t-7 -53v-98h344v-225h-344v-895h-293v895z" />
+<glyph unicode="g" d="M578 -424q-44 0 -89.5 3t-90.5 10q-90 13 -183 42v269q42 -23 85 -40t84 -28q43 -11 87 -16.5t85 -5.5q68 0 113.5 14.5t74.5 43.5q59 59 59 183v121q-44 -80 -114 -119q-71 -39 -172 -39q-194 0 -306 150q-57 75 -85 176.5t-28 232.5q0 263 113 420q57 78 132 117 t169 39q98 0 173 -45t118 -127l29 143h264v-1036q0 -269 -121 -389q-122 -119 -397 -119zM596 246q93 0 150 91q28 45 42.5 103.5t14.5 136.5q0 74 -14 134.5t-43 107.5q-57 90 -150 90q-92 0 -148 -90q-57 -90 -57 -241q0 -152 57 -242q56 -90 148 -90z" />
+<glyph unicode="h" d="M172 1556h291v-604q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 121 -34 173q-17 26 -45.5 39t-65.5 13q-82 0 -127 -70q-45 -71 -45 -196v-641h-291v1556z" />
+<glyph unicode="i" d="M451 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="j" d="M614 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM170 -199h234q99 0 139 55q41 56 41 187v852h-297v225h590v-1077q0 -252 -90 -360q-44 -52 -119 -79.5t-182 -27.5h-316v225z" />
+<glyph unicode="k" d="M174 1556h293v-817l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1556z" />
+<glyph unicode="l" d="M788 -8q-209 0 -300 108q-91 107 -91 359v872h-297v225h590v-1097q0 -131 41 -187q40 -55 139 -55h234v-225h-316v0z" />
+<glyph unicode="m" d="M82 1120h184l29 -116q26 67 80 105q25 17 56.5 27.5t67.5 10.5q68 0 123 -40q56 -41 68 -99q33 70 84 105q50 34 128 34q73 0 122.5 -26t75.5 -74q29 -53 42 -156.5t13 -259.5v-631h-240v719q0 66 -4.5 105t-14.5 61q-19 43 -69 43q-29 0 -45 -12t-25 -32 q-10 -21 -15 -61.5t-5 -103.5v-719h-237v719q0 121 -20 166q-19 43 -70 43q-50 0 -69 -42q-19 -41 -19 -167v-719h-240v1120z" />
+<glyph unicode="n" d="M172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116v-641h-291v1120z" />
+<glyph unicode="o" d="M617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259 q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="p" d="M150 1120h263l29 -168q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1546zM647 215 q95 0 149 92q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
+<glyph unicode="q" d="M791 158q-53 -92 -125 -140q-36 -24 -76 -35.5t-91 -11.5q-93 0 -169 37t-132 115q-54 76 -81 185t-27 250q0 283 106 436q54 77 128.5 115t167.5 38q104 0 178 -49q36 -24 67 -60.5t54 -85.5l29 168h263v-1546h-292v584zM586 215q94 0 150 92q55 91 55 254t-55 254 q-56 92 -150 92q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
+<glyph unicode="r" d="M241 1120h264l29 -174q44 97 132 149q45 26 97 39t108 13q30 0 62 -3.5t59 -10.5q29 -8 58 -19.5t51 -23.5v-279q-48 44 -112 66q-32 11 -67.5 16.5t-73.5 5.5q-94 0 -163 -32q-70 -32 -108 -94q-10 -16 -19 -39t-14 -54q-5 -29 -7.5 -67t-2.5 -97v-516h-293v1120z" />
+<glyph unicode="s" d="M616 -29q-51 0 -105.5 4.5t-105.5 12.5t-105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 98.5 -21.5t98.5 -7.5q99 0 153 30q26 15 39.5 36.5t13.5 56.5q0 23 -7.5 42t-31.5 37t-66.5 34t-110.5 31l-81 18q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90 q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20q79 -19 138 -49t97 -73t56 -101.5t18 -127.5q0 -173 -113 -259 q-57 -44 -142.5 -65.5t-195.5 -21.5z" />
+<glyph unicode="t" d="M827 -4q-253 0 -341 81q-89 80 -89 298v520h-286v225h286v306l293 130v-436h383v-225h-383v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-246v0z" />
+<glyph unicode="u" d="M481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="v" d="M80 1120h297l239 -874l240 874h297l-356 -1120h-361z" />
+<glyph unicode="w" d="M0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
+<glyph unicode="x" d="M469 584l-381 536h342l186 -334l187 334h342l-377 -536l410 -584h-342l-220 377l-219 -377h-342z" />
+<glyph unicode="y" d="M137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
+<glyph unicode="z" d="M162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
+<glyph unicode="{" d="M853 -334q-248 0 -333 74q-85 73 -85 295v215q0 70 -12.5 124.5t-40.5 84.5q-27 29 -77 43t-117 14h-92v191h92q140 0 194 57q53 58 53 209v215q0 222 85 295q83 73 333 73h150v-190h-123q-105 0 -139 -42q-35 -43 -35 -185v-209q0 -165 -49 -232q-49 -66 -175 -86 q125 -21 175 -89q49 -67 49 -232v-205q0 -143 35 -187q34 -42 139 -42h123v-191h-150v0z" />
+<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
+<glyph unicode="}" d="M230 -143h121q104 0 140 43t36 186v205q0 165 49 232q26 35 70.5 57t103.5 32q-127 20 -174 86q-49 67 -49 232v209q0 140 -35 184q-19 23 -56 33t-85 10h-121v190h150q249 0 332 -73q83 -74 83 -295v-215q0 -81 14.5 -130.5t40.5 -77.5t73 -43t122 -15h92v-191h-92 q-141 0 -195 -58q-55 -58 -55 -208v-215q0 -221 -83 -295q-85 -74 -332 -74h-150v191z" />
+<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M615 1508q17 0 34 -2.5t34 -10.5q17 -7 29.5 -15.5t26.5 -23.5q12 -13 17 -20t11 -18q8 -14 11.5 -23t5.5 -22q5 -25 5 -49q0 -41 -12 -74.5t-37 -58.5q-24 -25 -56.5 -38t-66.5 -13q-8 0 -16.5 0.5t-14.5 1.5l-26 6q-6 2 -14.5 5.5t-10.5 4.5q-7 3 -13 7t-10 7 q-4 4 -7 6.5t-14 13.5q-50 49 -50 131q0 84 50 134q23 23 54.5 37t69.5 14zM687 960l68 -576v-456h-285v456l78 576h139z" />
+<glyph unicode="&#xa2;" d="M655 -25q-235 22 -371 179q-137 158 -137 408q0 130 35 232t102 179q136 156 371 172v287h142v-287q61 -5 120 -21q35 -10 62.5 -21.5t56.5 -25.5v-268q-29 22 -60.5 39.5t-55.5 27.5q-26 11 -58.5 19t-64.5 12v-692q33 2 64.5 10t59.5 19q29 12 58 28.5t57 38.5v-268 q-29 -16 -55.5 -27t-56.5 -19q-63 -18 -127 -22v-288h-142v288zM655 907q-113 -13 -175 -103q-30 -44 -46 -104.5t-16 -139.5q0 -75 15.5 -136.5t47.5 -109.5q63 -93 174 -99v692z" />
+<glyph unicode="&#xa3;" d="M119 260h235v334h-198v225h198v197q0 255 113 380q112 124 343 124q44 0 85 -4t70 -10t65.5 -17.5t71.5 -26.5v-274q-30 22 -63.5 38.5t-58.5 24.5q-32 11 -66 16t-66 5q-56 0 -94 -16.5t-63 -49.5q-50 -68 -50 -211v-176h336v-225h-336v-334h481v-260h-1003v260z" />
+<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
+<glyph unicode="&#xa5;" d="M469 438h-412v189h408l-86 151h-322v187h224l-273 528h318l290 -600l291 600h318l-273 -528h224v-187h-322l-86 -151h408v-189h-412v-438h-295v438z" />
+<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
+<glyph unicode="&#xa7;" d="M602 -195q-39 0 -85.5 3.5t-87.5 10.5t-85.5 18.5t-85.5 25.5v229q45 -16 85 -26.5t81 -18.5q39 -8 75.5 -12t71.5 -4q46 0 75.5 7.5t49.5 21.5t30.5 34t10.5 40q0 21 -12 41.5t-37.5 43.5t-66 49t-98.5 58l-37 20q-83 45 -142.5 88t-98 86t-57 86.5t-18.5 89.5 q0 38 13 79.5t39 76.5q24 32 61.5 58.5t87.5 43.5q-72 50 -103 110q-32 61 -32 141q0 143 104 229t277 86q72 0 152 -15q43 -8 82 -19.5t79 -25.5v-225q-86 30 -151 45q-31 7 -63.5 10.5t-58.5 3.5q-73 0 -116 -29q-23 -16 -33 -36.5t-10 -40.5q0 -23 12.5 -44t37.5 -42.5 t63 -45.5t90 -52q9 -5 13 -7l6 -3l3 -1.5t6 -3.5q57 -31 100 -55t75.5 -44.5t56 -40t41.5 -40.5q59 -71 59 -171q0 -90 -47 -154t-150 -111q70 -49 103 -111q32 -61 32 -144q0 -71 -25.5 -129.5t-78.5 -100.5q-50 -40 -123 -61.5t-170 -21.5zM711 473q27 17 48 36.5t32 34.5 q12 17 18 36t6 33q0 46 -67 103.5t-198 123.5l-32 16q-54 -35 -79 -70t-25 -74q0 -56 49 -99q12 -11 31 -23.5t48.5 -29.5t70.5 -38.5t98 -48.5z" />
+<glyph unicode="&#xa8;" d="M331 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
+<glyph unicode="&#xaa;" d="M537 698q-128 0 -205 68q-76 68 -76 187q0 67 24 117.5t69 82.5q91 66 280 66h157v26q0 27 -12.5 45t-32.5 29q-21 11 -55 17.5t-85 6.5q-38 0 -76.5 -4t-73.5 -12q-71 -16 -136 -51v188q27 11 66 22.5t81 19.5q37 7 74.5 10.5t76.5 3.5q188 0 277 -86t89 -269v-448h-174 l-19 92q-49 -57 -110 -84q-62 -27 -139 -27zM593 866q42 0 78 14.5t61 37.5q27 26 40.5 59.5t13.5 71.5v30h-102q-109 0 -159 -26t-50 -83q0 -22 7.5 -42t22.5 -34q14 -13 35.5 -20.5t52.5 -7.5zM293 598h688v-170h-688v170z" />
+<glyph unicode="&#xab;" d="M59 535v131l469 393v-238l-277 -221l277 -221v-238zM513 535v131l469 393v-238l-276 -221l276 -221v-238z" />
+<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
+<glyph unicode="&#xad;" d="M301 735h631v-291h-631v291z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
+<glyph unicode="&#xaf;" d="M301 1556h631v-188h-631v188z" />
+<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
+<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#xb2;" d="M274 1261q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79 t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
+<glyph unicode="&#xb3;" d="M588 1113q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64z" />
+<glyph unicode="&#xb4;" d="M752 1638h282l-368 -376h-197z" />
+<glyph unicode="&#xb5;" d="M154 1120h287v-680q0 -113 41 -171q20 -28 49.5 -43t72.5 -15q81 0 122 57q40 56 40 172v680h289v-776q0 -69 14 -102q13 -31 44 -31q8 0 13.5 1.5t13.5 4.5q9 4 13.5 6.5t14.5 9.5v-217q-25 -13 -42.5 -20.5t-37.5 -13.5q-19 -5 -36.5 -8t-37.5 -3q-39 0 -66.5 10.5 t-48.5 27.5q-26 21 -42.5 50t-30.5 70q-38 -78 -92 -118q-55 -40 -126 -40q-58 0 -99 23q-42 23 -68 72l2 -494h-289v1548z" />
+<glyph unicode="&#xb6;" d="M496 649q-107 14 -183.5 47.5t-131.5 87.5q-111 109 -111 286q0 192 130 307q131 116 345 116h520v-1690h-191v1543h-190v-1543h-188v846z" />
+<glyph unicode="&#xb7;" d="M614 344q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28z" />
+<glyph unicode="&#xb8;" d="M573 -401q-23 0 -51 1.5t-51 4.5q-18 2 -32 4.5t-25.5 5t-22.5 5t-24 5.5v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-11 20 -27.5 45.5t-39.5 55.5h140q30 -32 51.5 -62t33.5 -53q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-114.5 -12.5z" />
+<glyph unicode="&#xb9;" d="M313 1265h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145z" />
+<glyph unicode="&#xba;" d="M637 698q-87 0 -151.5 28.5t-112.5 82.5t-73.5 127t-25.5 171q0 189 99 302q97 111 264 111q166 0 264 -111q98 -112 98 -302q0 -94 -23.5 -167.5t-73.5 -130.5q-98 -111 -265 -111zM637 874q35 0 64.5 15.5t51.5 47.5q42 61 42 171q0 109 -42 172q-20 30 -49 46.5 t-67 16.5q-41 0 -69 -18t-46 -44q-43 -64 -43 -173t42 -171q19 -28 48 -45.5t68 -17.5zM293 598h688v-170h-688v170z" />
+<glyph unicode="&#xbb;" d="M253 379l276 221l-276 221v238l469 -393v-131l-469 -394v238zM707 379l277 221l-277 221v238l469 -393v-131l-469 -394v238z" />
+<glyph unicode="&#xbc;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
+<glyph unicode="&#xbd;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM475 -129q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164 q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
+<glyph unicode="&#xbe;" d="M361 809q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64zM47 618l1059 263l37 -119l-1059 -262z M823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
+<glyph unicode="&#xbf;" d="M667 1222q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM606 -27q-99 0 -179 23t-137 71t-85.5 113t-28.5 143 q0 42 8.5 77t25.5 68q17 32 47.5 70.5t80.5 86.5l88 86q66 64 85 106q19 41 19 105q0 3 1 6q1 11 1 21v20v123h267v-154q0 -100 -31 -169q-17 -38 -44.5 -74t-66.5 -74l-90 -89q-20 -20 -33.5 -34.5t-23 -25.5t-15.5 -20t-11 -18q-23 -43 -23 -87q0 -32 11.5 -57.5 t34.5 -42.5t57.5 -25.5t77.5 -8.5q45 0 88 9t89 27q48 19 92 44t95 61v-268q-49 -28 -97 -48.5t-101 -35.5q-50 -14 -98 -21.5t-104 -7.5z" />
+<glyph unicode="&#xc0;" d="M283 1852h284l199 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc1;" d="M668 1852h284l-286 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc2;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc3;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q14 -5 35.5 -15t39.5 -22l60 -39q6 -4 16 -9.5t25 -11.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9t-1 -8v-5q0 -108 -53 -173q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34q-2 1 -4.5 3t-7.5 4q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc4;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc5;" d="M418 1421q-45 39 -65 86q-11 24 -16 51.5t-5 55.5q0 63 23 115t60 89q35 35 87 59t115 24q56 0 108 -21t94 -63q36 -36 59 -87.5t23 -114.5q0 -29 -5 -57t-16 -51q-21 -48 -65 -86l385 -1421h-295l-92 369h-395l-90 -369h-295zM618 1485q53 0 92 39q38 38 38 92t-39 93 q-40 38 -92 38q-29 0 -52.5 -10.5t-40.5 -27.5q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q20 -20 44.5 -29.5t50.5 -9.5zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc6;" d="M358 1493h803v-260h-291v-311h260v-260h-260v-402h310v-260h-564v362h-282l-86 -362h-248zM616 598v635h-79l-148 -635h227z" />
+<glyph unicode="&#xc7;" d="M774 1255q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-21 -5 -42.5 -8.5t-44.5 -5.5q21 -26 36.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5 t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 40.5q-253 20 -393 196q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5 t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5z" />
+<glyph unicode="&#xc8;" d="M314 1842h284l199 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xc9;" d="M699 1841h284l-286 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xca;" d="M492 1852h309l223 -264h-178l-199 161l-198 -161h-178zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xcb;" d="M362 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM757 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xcc;" d="M283 1852h284l199 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xcd;" d="M668 1852h284l-286 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xce;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xcf;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xd0;" d="M137 664h-137v237h137v592h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v664zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-326h211v-237h-211v-398h80z" />
+<glyph unicode="&#xd1;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q17 -6 36.5 -15.5t38.5 -21.5l60 -39q8 -5 19 -10.5t22 -10.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q0 -2 -0.5 -3.5t-0.5 -13.5q0 -50 -13.5 -93.5t-39.5 -75.5 q-29 -35 -65 -50t-77 -15q-36 0 -72 11q-20 6 -38.5 15t-39.5 23l-54 34l-8 5l-4 2q-22 12 -39.5 19t-33.5 7q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
+<glyph unicode="&#xd2;" d="M283 1852h284l199 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd3;" d="M668 1852h284l-286 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd4;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5 zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd5;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q15 -5 34.5 -14t40.5 -23l60 -39q8 -5 17.5 -10t23.5 -11q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q-1 -4 -1 -7v-5q0 -109 -53 -174q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34l-12 7q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5 q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd6;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5 q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390 q52 -121 165 -121z" />
+<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
+<glyph unicode="&#xd8;" d="M-6 51l168 238q-19 49 -31 95.5t-21 106.5q-8 54 -13 114t-5 138q0 385 133 581q66 98 162 147t229 49q105 0 186 -31q44 -17 79.5 -40t64.5 -52l113 162l162 -115l-158 -223q40 -97 59 -213q10 -60 14.5 -125.5t4.5 -137.5q0 -382 -132 -578q-69 -102 -168 -149 t-226 -47q-57 0 -102.5 8.5t-87.5 25.5t-78 40.5t-71 58.5l-120 -167zM772 1153q-26 51 -65 77q-38 25 -90 25q-59 0 -99 -30.5t-66 -89.5q-53 -121 -53 -379v-127zM618 236q60 0 99 31.5t64 89.5q13 30 22.5 68.5t16.5 90t10.5 117t3.5 148.5l-1 23q-1 14 -1 20.5 t-0.5 13.5t-1 17.5t-1.5 32.5l-378 -534q11 -28 28.5 -50.5t37.5 -36.5q43 -31 101 -31z" />
+<glyph unicode="&#xd9;" d="M283 1852h284l199 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="&#xda;" d="M668 1852h284l-286 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="&#xdb;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442 q-122 -138 -389 -138z" />
+<glyph unicode="&#xdc;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5 q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="&#xdd;" d="M668 1852h284l-286 -264h-197zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="&#xde;" d="M162 1493h295v-238h110q309 0 445 -109q68 -55 101.5 -144.5t33.5 -210.5q0 -242 -137 -350q-70 -56 -180.5 -82.5t-262.5 -26.5h-110v-332h-295v1493zM578 575q146 0 204 49t58 169q0 122 -58 171q-59 50 -204 50h-121v-439h121z" />
+<glyph unicode="&#xdf;" d="M759 -29q-32 0 -64.5 3t-61.5 9q-26 5 -60.5 15t-68.5 22v250q29 -16 58 -27.5t58 -19.5q27 -8 53.5 -12t55.5 -4q42 0 70 9t48 25t31 38t11 49q0 42 -29 80.5t-86 83.5q-8 6 -11 8t-6 4.5t-8.5 6.5t-19.5 15l-86 68q-29 23 -51.5 51.5t-37.5 60.5q-30 63 -30 141 q0 125 74 211q39 45 91.5 72.5t119.5 43.5q-5 39 -20.5 67t-37.5 44q-25 18 -60 27t-77 9q-46 0 -83 -11.5t-63 -38.5q-48 -51 -48 -149v-1122h-293v1126q0 212 121 321q63 57 150 83t196 26q117 0 198.5 -29t135.5 -89q106 -118 106 -365v-14q-72 -4 -115.5 -17.5 t-72.5 -33.5q-32 -23 -49 -53.5t-17 -65.5q0 -21 6.5 -40t21 -37.5t36.5 -39t52 -44.5q13 -11 15.5 -12.5t3.5 -2.5l97 -74q45 -34 73.5 -67t48.5 -71q19 -36 29.5 -78t10.5 -93q0 -79 -27 -146.5t-84 -116.5q-57 -48 -135 -72t-169 -24z" />
+<glyph unicode="&#xe0;" d="M199 1673h282l283 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe1;" d="M752 1673h282l-368 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe2;" d="M496 1672h241l256 -376h-178l-199 225l-198 -225h-178zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5 t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5 q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5 q45 -45 124 -45z" />
+<glyph unicode="&#xe3;" d="M768 1317q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5 q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35 q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42 q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe4;" d="M331 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203 v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5 q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10z M576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe5;" d="M617 1249q-57 0 -109.5 21t-93.5 62q-35 35 -58.5 87.5t-23.5 115.5q0 64 24 115.5t59 86.5q41 41 92.5 61.5t108.5 20.5q62 0 113.5 -22.5t88.5 -59.5q36 -36 59.5 -88t23.5 -115q0 -57 -20.5 -108t-61.5 -93q-42 -42 -93.5 -63t-108.5 -21zM617 1403q54 0 93 39 q38 38 38 92t-39 93q-40 38 -93 38q-54 0 -92 -38q-39 -39 -39 -93q0 -55 38 -93q16 -16 40 -27t54 -11zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5 q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39 q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe6;" d="M346 -29q-158 0 -245 92q-87 93 -87 263q0 185 101 277q100 91 305 91h76v51q0 93 -39 140t-114 47q-32 0 -64 -7.5t-61 -19.5t-66 -32.5t-76 -49.5v246q75 40 144 59t137 19q46 0 86 -7.5t72 -23.5q62 -31 97 -96q28 61 95 94q66 33 158 33q91 0 151.5 -29.5t97.5 -89.5 q18 -29 31.5 -67t23 -89t14.5 -117t5 -149v-127h-451q0 -143 50 -219q23 -35 58 -55.5t87 -20.5q34 0 63 8t57 22q26 13 55.5 33t63.5 54v-244q-50 -44 -112 -65q-32 -11 -68.5 -16t-74.5 -5q-55 0 -99 10.5t-82 31.5q-75 42 -117 122q-20 -42 -47 -73t-59 -51 q-65 -40 -166 -40zM963 690v23q0 126 -25 172q-26 47 -88 47t-88 -47q-25 -46 -25 -172v-23h226zM365 184q63 0 94 43q30 43 30 131v125h-73q-86 0 -131 -39t-45 -115q0 -69 32 -107t93 -38z" />
+<glyph unicode="&#xe7;" d="M761 909q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26q-50 -12 -101 -18q22 -26 37.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 39.5q-110 8 -195.5 46.5t-149.5 107.5q-146 157 -146 432q0 276 147 434 q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5z" />
+<glyph unicode="&#xe8;" d="M238 1673h282l283 -376h-197zM675 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM854 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xe9;" d="M781 1672h282l-368 -376h-197zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xea;" d="M525 1673h241l256 -376h-178l-199 225l-198 -225h-178zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65 q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xeb;" d="M360 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM755 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187 q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5 q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xec;" d="M159 1683h282l283 -376h-197zM822 -12q-209 0 -300 108q-91 107 -91 359v440h-247v225h540v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#xed;" d="M694 1673h282l-368 -376h-197zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#xee;" d="M440 1673h241l256 -376h-178l-199 225l-198 -225h-178zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#xef;" d="M261 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM656 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55 h234v-225h-316z" />
+<glyph unicode="&#xf0;" d="M613 -29q-125 0 -219 41t-158 112q-69 77 -103.5 181t-34.5 229q0 239 129 379q61 66 148 103t199 37q41 0 73 -6t58 -19l-160 219l-312 -119l-55 117l283 109l-158 202h293l92 -116l297 127l66 -123l-277 -117l166 -227q51 -70 86 -135t57 -128q43 -126 43 -278 q0 -137 -34 -246t-101 -186t-162.5 -116.5t-215.5 -39.5zM613 209q57 0 98.5 24.5t67.5 66.5q29 45 43 111t14 145q0 26 -1.5 52.5t-4.5 48.5q-2 17 -7.5 46.5t-11.5 56.5q-33 18 -56 27t-42 14q-51 14 -96 14q-52 0 -95 -18.5t-73 -53.5q-29 -35 -44.5 -86t-15.5 -122 q0 -72 15.5 -133t44.5 -104q59 -89 164 -89z" />
+<glyph unicode="&#xf1;" d="M768 1297q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116 v-641h-291v1120z" />
+<glyph unicode="&#xf2;" d="M199 1596h282l283 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf3;" d="M752 1596h282l-368 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf4;" d="M496 1596h241l256 -299h-178l-199 147l-198 -147h-178zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187 q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf5;" d="M768 1297q-21 0 -36.5 3.5t-30.5 8.5q-23 8 -40 18t-43 27l-67 45q-44 29 -72 29q-31 0 -51 -32t-20 -89v-8h-140v33q0 114 54 183t143 69q37 0 72 -13q20 -8 38 -19t39 -26l62 -43q14 -10 22.5 -14t17.5 -8q19 -8 35 -8q36 0 55 31t19 89v9h140v-8t-1 -9t-1 -8.5v-5.5 q0 -117 -53 -185q-26 -33 -61 -51t-81 -18zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42 zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf6;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5 t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257 q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf7;" d="M491 889q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249zM66 762h1099v-238h-1099v238zM491 86q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249z" />
+<glyph unicode="&#xf8;" d="M25 2l163 197q-44 72 -67 162t-23 198q0 135 35.5 243.5t104.5 186.5q70 79 166 118.5t211 39.5q42 0 83.5 -5t76.5 -16q33 -10 69.5 -27t70.5 -40l148 176l139 -121l-160 -188q25 -41 42.5 -85.5t27.5 -82.5q11 -42 17 -93t6 -108q0 -131 -35 -239.5t-104 -187.5 q-66 -75 -161 -117t-215 -42q-45 0 -84.5 6t-77.5 17t-72 27t-71 40l-151 -178zM745 860q-25 25 -57 37t-70 12q-106 0 -166 -92q-61 -92 -61 -258q0 -18 0.5 -32.5t1.5 -27.5q1 -12 1.5 -21t4.5 -29zM617 209q106 0 165 93q30 48 45 113t15 138q0 17 -0.5 35t-1.5 29 q-1 9 -3.5 26.5t-5.5 31.5l-348 -413q31 -26 64 -40q32 -13 70 -13z" />
+<glyph unicode="&#xf9;" d="M199 1646h282l283 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="&#xfa;" d="M752 1646h282l-368 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="&#xfb;" d="M496 1646h241l256 -376h-178l-199 225l-198 -225h-178zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z " />
+<glyph unicode="&#xfc;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39 t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="&#xfd;" d="M762 1646h282l-368 -376h-197zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
+<glyph unicode="&#xfe;" d="M150 1556h292v-604q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1982zM647 215q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
+<glyph unicode="&#xff;" d="M341 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727 h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
+<glyph unicode="&#x100;" d="M301 1823h631v-188h-631v188zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x101;" d="M301 1535h631v-188h-631v188zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#x102;" d="M616 1588q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x103;" d="M616 1297q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5 t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62 t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#x104;" d="M1081 -254q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-7l-92 369h-395l-90 -369h-295l403 1493h361l403 -1493h-147q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28 q0 -35 28 -61.5t90 -26.5zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x105;" d="M1036 -252q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 54 26.5 108t82.5 114q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10q-91 0 -164.5 25t-127.5 76 q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36 t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-148q-17 -23 -28.5 -39t-19.5 -28t-13 -21t-9 -16 q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5zM818 526h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45q56 0 101 21.5t77 66.5q64 86 64 244v20z" />
+<glyph unicode="&#x106;" d="M794 1852h284l-286 -264h-197zM759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5q-160 0 -243 -128 q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
+<glyph unicode="&#x107;" d="M854 1672h282l-368 -376h-197zM722 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90 q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
+<glyph unicode="&#x108;" d="M287 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM1070 43q-139 -72 -311 -72q-198 0 -336.5 89t-209.5 263q-72 173 -72 422q0 250 71 423t210 263q139 89 337 89q175 0 311 -72v-328q-77 71 -147.5 103t-148.5 32q-160 0 -243 -129.5t-83 -380.5 q0 -252 82.5 -380.5t243.5 -128.5q77 0 149 33q36 16 70.5 40t76.5 62v-328z" />
+<glyph unicode="&#x109;" d="M282 1297l256 299h241l256 -299h-178l-199 147l-198 -147h-178zM1041 57q-73 -41 -159.5 -63.5t-179.5 -22.5q-172 0 -297 70.5t-191 203.5q-66 132 -66 314q0 183 66 316t191 204q124 70 294 70q92 0 175.5 -21t166.5 -65v-268q-130 114 -300 114q-143 0 -219.5 -91 t-76.5 -259t76.5 -258t220.5 -90q84 0 160.5 29t138.5 86v-269z" />
+<glyph unicode="&#x10a;" d="M599 1596q-13 0 -22 9t-9 22v184q0 13 9 22t22 9h213q13 0 22 -9t9 -22v-184q0 -13 -9 -22t-22 -9h-213zM757 -29q-149 0 -264 50.5t-193 148.5t-118.5 242.5t-40.5 332.5q0 189 40.5 333.5t118.5 242.5t193 148.5t264 50.5q176 0 313 -72v-328q-76 70 -147.5 102.5 t-150.5 32.5q-160 0 -242 -128t-82 -382t82 -381.5t242 -127.5q79 0 150.5 32.5t147.5 102.5v-328q-70 -36 -147 -54t-166 -18z" />
+<glyph unicode="&#x10b;" d="M584 1349q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM722 -29q-131 0 -234 40t-174 116t-108.5 184.5t-37.5 246.5q0 139 38 248.5t109 185.5t174 116.5t232 40.5q91 0 173.5 -20.5t166.5 -65.5v-268q-64 55 -140.5 84.5t-158.5 29.5 q-144 0 -220.5 -90.5t-76.5 -260.5q0 -168 76.5 -257.5t223.5 -89.5q85 0 159 29.5t137 85.5v-269q-149 -86 -339 -86z" />
+<glyph unicode="&#x10c;" d="M366 1852h178l198 -162l199 162h178l-223 -264h-309zM759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5 q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
+<glyph unicode="&#x10d;" d="M342 1675h178l198 -227l199 227h178l-256 -376h-241zM722 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259 t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
+<glyph unicode="&#x10e;" d="M227 1860h178l198 -162l199 162h178l-223 -264h-309zM137 1493h316q183 0 313.5 -42t213.5 -132.5t122 -231.5t39 -339t-39 -340t-122 -232.5t-213.5 -133t-313.5 -42.5h-316v1493zM512 266q87 0 148 26t100 83.5t56.5 149t17.5 222.5t-17.5 222.5t-56.5 148.5t-100 83 t-148 26h-80v-961h80z" />
+<glyph unicode="&#x10f;" d="M491 -29q-95 0 -169 39.5t-126 114.5t-79 184.5t-27 249.5q0 142 28 251.5t80.5 184.5t127.5 113.5t169 38.5q98 0 168 -44t128 -142v595h292v-1556h-263l-29 166q-47 -95 -119.5 -145t-180.5 -50zM1168 1555h288l-164 -383h-202zM586 211q48 0 86 23.5t64.5 68.5 t40.5 109t14 145t-14 145t-40.5 109t-64.5 68.5t-86 23.5t-85.5 -23.5t-63.5 -68.5t-40 -109t-14 -145t14 -145t40 -109t63.5 -68.5t85.5 -23.5z" />
+<glyph unicode="&#x110;" d="M137 664h-137v237h137v592h316q183 0 313.5 -42t213.5 -132.5t122 -231.5t39 -339t-39 -340t-122 -232.5t-213.5 -133t-313.5 -42.5h-316v664zM512 266q87 0 148 26t100 83.5t56.5 149t17.5 222.5t-17.5 222.5t-56.5 148.5t-100 83t-148 26h-80v-326h211v-237h-211v-398 h80z" />
+<glyph unicode="&#x111;" d="M492 -29q-93 0 -167.5 38t-128.5 115q-106 153 -106 436t108 435q51 72 126 112t174 40q48 0 89 -10.5t79 -35.5q71 -47 125 -140v290h-306v189h306v116h292v-116h146v-189h-146v-1251h-263l-29 166q-23 -49 -54 -85.5t-67 -60.5q-74 -49 -178 -49zM586 211q94 0 150 92 q55 91 55 254t-55 254q-56 92 -150 92q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
+<glyph unicode="&#x112;" d="M332 1820h631v-188h-631v188zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x113;" d="M330 1535h631v-188h-631v188zM669 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269 q-100 -42 -207 -63t-216 -21zM844 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x116;" d="M541 1606q-13 0 -22 9t-9 22v184q0 13 9 22t22 9h213q13 0 22 -9t9 -22v-184q0 -13 -9 -22t-22 -9h-213zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x117;" d="M538 1349q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM669 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759 q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM844 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x118;" d="M951 -254q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-614v1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-175q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28 q0 -35 28 -61.5t90 -26.5z" />
+<glyph unicode="&#x119;" d="M1139 465h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-42 -17 -85 -31t-88 -24q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5 t-62 131.5q0 49 21.5 97t66.5 101q-42 -3 -86 -3q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119zM844 685q-2 116 -60 175.5t-164 59.5 q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x11a;" d="M293 1852h178l198 -162l199 162h178l-223 -264h-309zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x11b;" d="M247 1678h178l198 -227l199 227h178l-256 -376h-241zM669 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29 t205 92v-269q-100 -42 -207 -63t-216 -21zM844 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x11c;" d="M294 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM1130 119q-85 -73 -188.5 -110.5t-221.5 -37.5q-191 0 -326 90.5t-206 264.5q-71 175 -71 421q0 249 71.5 422.5t209.5 262.5q137 88 334 88q189 0 345 -99v-327q-125 161 -318 161q-170 0 -252.5 -126 t-82.5 -382q0 -250 79.5 -380.5t234.5 -130.5q49 0 79 9q19 5 30 10t25 15v285h-202v248h460v-684z" />
+<glyph unicode="&#x11d;" d="M525 1673h241l256 -376h-178l-199 225l-198 -225h-178zM215 -369v269q80 -43 167.5 -66.5t173.5 -23.5q68 0 113 14t75 44q59 59 59 183v121q-44 -80 -114.5 -119t-171.5 -39q-128 0 -222.5 67.5t-145.5 193.5t-51 298t51.5 302.5t145.5 202.5q95 71 217 71q98 0 173 -45 t118 -127l29 143h264v-1036q0 -181 -53 -292t-166 -163q-115 -53 -299 -53q-180 0 -363 55zM724 304q79 100 79 273q0 98 -25.5 173.5t-73.5 117.5q-47 41 -108 41q-60 0 -106.5 -41.5t-72.5 -116.5q-26 -76 -26 -173q0 -99 25.5 -174.5t72.5 -116.5t107 -41q83 0 128 58z " />
+<glyph unicode="&#x11e;" d="M676 1588q-147 0 -233 68q-42 32 -68 79.5t-34 116.5h141q19 -59 69 -90q49 -31 125 -31q77 0 125 30q49 31 68 91h143q-15 -128 -101 -196q-45 -35 -104.5 -51.5t-130.5 -16.5zM720 -29q-143 0 -255 50.5t-190 150.5q-75 96 -116.5 238t-41.5 337q0 186 39.5 330 t120.5 244q160 199 455 199q51 0 94.5 -6t87.5 -19q85 -25 163 -74v-327q-62 80 -142 121q-80 40 -176 40q-170 0 -252 -126q-83 -128 -83 -382q0 -125 20 -220.5t60 -161.5q38 -62 95 -95.5t140 -33.5q40 0 78 9q22 5 33 11t22 14v285h-202v248h460v-684q-84 -72 -187 -110 q-52 -19 -106 -28.5t-117 -9.5z" />
+<glyph unicode="&#x11f;" d="M616 1299q-76 0 -136.5 18.5t-105.5 58.5q-46 41 -68 96t-25 124h141q10 -68 61 -106q50 -38 134 -38q83 0 132 37q50 37 60 107h143q-6 -143 -92 -220q-88 -77 -244 -77zM578 -424q-44 0 -89.5 3t-90.5 10q-90 13 -183 42v269q42 -23 85 -40t84 -28q43 -11 87 -16.5 t85 -5.5q68 0 113.5 14.5t74.5 43.5q59 59 59 183v121q-44 -80 -114 -119q-71 -39 -172 -39q-194 0 -306 150q-57 75 -85 176.5t-28 232.5q0 263 113 420q57 78 132 117t169 39q98 0 173 -45t118 -127l29 143h264v-1036q0 -269 -121 -389q-122 -119 -397 -119zM596 246 q93 0 150 91q28 45 42.5 103.5t14.5 136.5q0 74 -14 134.5t-43 107.5q-57 90 -150 90q-92 0 -148 -90q-57 -90 -57 -241q0 -152 57 -242q56 -90 148 -90z" />
+<glyph unicode="&#x120;" d="M580 1606q-13 0 -22 9t-9 22v184q0 13 9 22t22 9h213q13 0 22 -9t9 -22v-184q0 -13 -9 -22t-22 -9h-213zM719 -29q-143 0 -255 51.5t-189 150.5t-117.5 243.5t-40.5 330.5q0 188 41 332t119.5 242t192 148.5t257.5 50.5q101 0 185.5 -24.5t164.5 -74.5v-327 q-125 161 -319 161q-168 0 -251 -125t-83 -382q0 -252 79 -382t238 -130q34 0 63.5 5.5t48.5 16.5q9 5 14 12.5t5 22.5v232q0 30 -30 30h-172v248h460v-684q-173 -148 -411 -148z" />
+<glyph unicode="&#x121;" d="M509 1349q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM582 -424q-95 0 -184 13.5t-183 41.5v269q83 -46 170 -68t169 -22q129 0 189 57.5t60 183.5v121q-44 -83 -116.5 -120.5t-166.5 -37.5q-99 0 -177 39t-132.5 111.5t-83.5 176t-29 233.5 q0 132 29.5 238.5t84 181t130.5 115t169 40.5q100 0 174.5 -45t117.5 -127l29 143h264v-1036q0 -134 -29.5 -230.5t-92 -158t-159.5 -90.5t-233 -29zM596 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -67 t-41.5 -104.5t-14.5 -137t14.5 -137t41.5 -104t65 -66.5t84 -23.5z" />
+<glyph unicode="&#x122;" d="M719 -29q-143 0 -255 51.5t-189 150.5t-117.5 243.5t-40.5 330.5q0 188 41 332t119.5 242t192 148.5t257.5 50.5q101 0 185.5 -24.5t164.5 -74.5v-327q-125 161 -319 161q-334 0 -334 -508q0 -252 79 -381.5t240 -129.5q40 0 74 8.5t55 25.5v285h-202v248h460v-684 q-173 -148 -411 -148zM627 -187h282l-177 -306h-194z" />
+<glyph unicode="&#x123;" d="M632 1565h194l-89 -306h-282zM582 -424q-95 0 -184 13.5t-183 41.5v269q83 -46 170 -68t169 -22q129 0 189 57.5t60 183.5v121q-44 -83 -116.5 -120.5t-166.5 -37.5q-99 0 -177 39t-132.5 111.5t-83.5 176t-29 233.5q0 132 29.5 238.5t84 181t130.5 115t169 40.5 q100 0 174.5 -45t117.5 -127l29 143h264v-1036q0 -134 -29.5 -230.5t-92 -158t-159.5 -90.5t-233 -29zM596 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -67t-41.5 -104.5t-14.5 -137t14.5 -137t41.5 -104t65 -66.5 t84 -23.5z" />
+<glyph unicode="&#x124;" d="M240 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM137 0v1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295z" />
+<glyph unicode="&#x125;" d="M338 1638l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM172 0v1556h291v-604q32 93 106.5 144t181.5 51q158 0 239 -106t81 -314v-727h-291v682q0 121 -34 173t-111 52q-82 0 -127 -70t-45 -196v-641h-291z" />
+<glyph unicode="&#x126;" d="M137 1105h-134v164h134v224h295v-224h369v224h294v-224h135v-164h-135v-1105h-294v664h-369v-664h-295v1105zM801 924v181h-369v-181h369z" />
+<glyph unicode="&#x127;" d="M172 1270h-160v164h160v122h291v-122h277v-164h-277v-318q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 171.5t-107.5 53.5q-88 0 -132 -69.5t-44 -196.5v-641h-291v1270z" />
+<glyph unicode="&#x128;" d="M268 1618q0 53 14.5 96.5t40.5 74.5t61.5 48t78.5 17q38 0 76.5 -13t74.5 -36l60 -39q20 -13 38.5 -21t38.5 -8q35 0 54.5 30t19.5 87h140v-6t-1 -9t-1 -8v-5q0 -54 -14 -98t-39.5 -75t-62 -48t-82.5 -17q-35 0 -69.5 11t-77.5 38l-54 34l-12 7q-20 11 -37.5 18.5 t-34.5 7.5q-32 0 -52 -29.5t-20 -80.5v-6h-140v30zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x129;" d="M714 1270q-16 0 -31 2.5t-32 9t-37.5 17.5t-45.5 28l-55 37l-12 8q-22 14 -39 21.5t-33 7.5q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 72 -13.5t77 -43.5l62 -43q20 -14 38.5 -22.5t36.5 -8.5q35 0 54.5 32t19.5 89v8h140 q0 -137 -51.5 -210.5t-149.5 -73.5zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#x12a;" d="M301 1820h631v-188h-631v188zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x12b;" d="M230 1536h631v-188h-631v188zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#x12e;" d="M764 1233v-973h297v-260h-297q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-451v260h297v973h-297v260 h889v-260h-297z" />
+<glyph unicode="&#x12f;" d="M451 1323q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM945 -12q-31 -41 -44 -61.5t-20 -34.5q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5 t-62 131.5q0 53 25 104.5t77 109.5q-200 3 -290 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-183z" />
+<glyph unicode="&#x130;" d="M509 1606q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x131;" d="M812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316v0z" />
+<glyph unicode="&#x132;" d="M135 295h374q81 0 148 40q68 39 107.5 107t39.5 148v904h294l1 -904q0 -161 -79 -295q-80 -137 -216 -216t-295 -79h-374v295zM135 1493h295v-903h-295v903z" />
+<glyph unicode="&#x133;" d="M131 1283v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233q-30 0 -30 30zM819 1283v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233q-30 0 -30 30zM131 1120h293v-1120h-293v1120zM424 -131h263q37 0 67 18q30 17 47 47t17 66v1120h295v-1120 q0 -116 -57 -213q-58 -99 -156.5 -156t-212.5 -57h-263v295z" />
+<glyph unicode="&#x134;" d="M480 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM894 89q-56 -59 -150.5 -88.5t-219.5 -29.5q-52 0 -98.5 6t-107.5 20q-102 26 -209 77v342q82 -85 181 -132.5t200 -47.5q115 0 169 58.5t54 184.5v754h-361v260h656v-1014q0 -273 -114 -390z" />
+<glyph unicode="&#x135;" d="M354 1297l256 376h241l256 -376h-178l-199 225l-198 -225h-178zM170 -424v225h234q67 0 106 24t57 76q17 54 17 142v852h-297v225h590v-1077q0 -170 -39.5 -271.5t-124.5 -148.5q-86 -47 -227 -47h-316z" />
+<glyph unicode="&#x136;" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493zM575 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x137;" d="M174 1556h293v-817l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1556zM589 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x138;" d="M174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
+<glyph unicode="&#x139;" d="M669 1853h284l-286 -264h-197zM225 1493h295v-1233h631v-260h-926v1493z" />
+<glyph unicode="&#x13a;" d="M669 1900h284l-286 -264h-197zM778 -8q-105 0 -179 26t-121 82t-69 144.5t-22 214.5v872h-297v225h590v-1097q0 -66 9.5 -112t31 -75t56 -42t83.5 -13h234v-225h-316z" />
+<glyph unicode="&#x13b;" d="M225 1493h295v-1233h631v-260h-926v1493zM591 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x13c;" d="M778 -8q-105 0 -179 26t-121 82t-69 144.5t-22 214.5v872h-297v225h590v-1097q0 -66 9.5 -112t31 -75t56 -42t83.5 -13h234v-225h-316zM465 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x13d;" d="M225 1493h295v-1233h631v-260h-926v1493zM869 1493h282l-161 -376h-197z" />
+<glyph unicode="&#x13e;" d="M778 -8q-105 0 -179 26t-121 82t-69 144.5t-22 214.5v872h-297v225h590v-1097q0 -66 9.5 -112t31 -75t56 -42t83.5 -13h234v-225h-316zM908 1556h282l-161 -376h-197z" />
+<glyph unicode="&#x13f;" d="M225 1493h295v-1233h631v-260h-926v1493zM698 686v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215q-30 0 -30 30z" />
+<glyph unicode="&#x140;" d="M502 39q-85 47 -125 149t-40 271v872h-297v225h590v-1097q0 -88 18 -141q17 -52 56 -76.5t106 -24.5h234v-225h-316q-140 0 -226 47zM769 686v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215q-30 0 -30 30z" />
+<glyph unicode="&#x141;" d="M225 537l-151 -111l-113 154l264 188v725h295v-520l275 194l112 -153l-387 -273v-481h631v-260h-926v537z" />
+<glyph unicode="&#x142;" d="M801 -8q-209 0 -300 108q-91 107 -91 359v166l-273 -195l-100 162l373 264v475h-295v225h587v-493l295 209l103 -160l-398 -280v-373q0 -132 42 -187q20 -27 54 -41t85 -14h233v-225h-315v0z" />
+<glyph unicode="&#x143;" d="M699 1853h284l-286 -264h-197zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
+<glyph unicode="&#x144;" d="M750 1690h282l-368 -376h-197zM172 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120z" />
+<glyph unicode="&#x145;" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493zM519 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x146;" d="M172 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120zM525 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x147;" d="M281 1852h178l198 -162l199 162h178l-223 -264h-309zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
+<glyph unicode="&#x148;" d="M276 1673h178l198 -227l199 227h178l-256 -376h-241zM172 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120z" />
+<glyph unicode="&#x149;" d="M48 1286v270h314v-270l-197 -383h-215zM334 1120h262l29 -168q32 93 106.5 144t181.5 51q158 0 239 -106t81 -314v-727h-291v682q0 122 -34 174.5t-110 52.5q-42 0 -72.5 -17.5t-54.5 -53.5q-46 -70 -46 -197v-641h-291v1120z" />
+<glyph unicode="&#x14a;" d="M612 -199h37q50 0 84.5 13t56.5 42t31.5 75.5t9.5 112.5v971q0 125 -45.5 182.5t-144.5 57.5q-60 0 -105 -20t-75 -56.5t-45 -89t-15 -117.5v-972h-295v1493h266l29 -240q38 130 126.5 199.5t219.5 69.5q184 0 281 -145.5t97 -434.5v-884q0 -133 -22.5 -225.5t-70 -150 t-121.5 -83t-178 -25.5h-121v227z" />
+<glyph unicode="&#x14b;" d="M559 -199h39q50 0 84.5 13t56.5 42t31.5 75t9.5 112v639q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-684q0 -126 -21.5 -214.5t-69 -145t-121.5 -82t-179 -25.5 h-121v225z" />
+<glyph unicode="&#x14c;" d="M301 1830h631v-188h-631v188zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5 q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="&#x14d;" d="M301 1535h631v-188h-631v188zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110 t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x150;" d="M463 1852h284l-286 -264h-197zM838 1852h284l-286 -264h-197zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121 q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="&#x151;" d="M492 1673h217l-248 -376h-164zM854 1673h231l-272 -376h-174zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209 q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x152;" d="M633 0q-324 0 -444 156q-62 80 -91.5 226t-29.5 363q0 437 121 592q62 80 174 118t270 38h573v-260h-332v-311h302v-260h-302v-402h343v-260h-584zM621 260v973h-52q-63 0 -105.5 -23.5t-63.5 -65.5q-23 -45 -34.5 -140.5t-11.5 -258.5q0 -82 3 -146t9 -112.5t14.5 -83 t19.5 -56.5q23 -46 66.5 -66.5t102.5 -20.5h52z" />
+<glyph unicode="&#x153;" d="M374 -29q-101 0 -167.5 36t-107.5 102q-45 72 -65 185t-20 266q0 156 20.5 268t64.5 183q42 69 110 102.5t168 33.5q95 0 156 -29q62 -29 104 -96q28 60 93 93q64 32 158 32q86 0 149 -29.5t100 -89.5q73 -118 73 -422v-127h-450q0 -143 50 -219q49 -76 145 -76 q33 0 62 8t57 22q29 14 58.5 34.5t61.5 52.5v-244q-50 -44 -111 -65q-62 -21 -144 -21q-102 0 -172 37q-71 37 -118 111q-21 -37 -47.5 -65t-61.5 -47q-68 -36 -166 -36zM385 184q45 0 68.5 18t36.5 49q7 18 13 44t9.5 62.5t5.5 86t2 114.5q0 71 -2 122t-6 87.5t-9.5 60.5 t-12.5 40q-14 34 -39.5 50t-66.5 16q-38 0 -64 -15.5t-41 -50.5q-17 -38 -24 -111.5t-7 -196.5q0 -68 2 -118.5t6 -87t9.5 -62t13.5 -42.5q14 -31 38 -48.5t68 -17.5zM985 690v35q0 57 -5.5 97t-19.5 65q-25 47 -87 47q-34 0 -55 -12.5t-33 -35.5q-11 -22 -18 -60.5 t-7 -112.5v-23h225z" />
+<glyph unicode="&#x154;" d="M669 1853h284l-286 -264h-197zM133 1493h426q141 0 242.5 -24.5t167.5 -75.5t97.5 -130.5t31.5 -188.5q0 -171 -74 -260t-217 -109q22 -5 40.5 -14t36 -27.5t36.5 -49t43 -77.5l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838 q60 0 103 11.5t70.5 36t40 63.5t12.5 94q0 54 -12.5 92.5t-39.5 62.5t-70 35.5t-104 11.5h-139v-407h139z" />
+<glyph unicode="&#x155;" d="M865 1680h282l-368 -376h-197zM291 1120h264l29 -174q43 97 132 149t207 52q62 0 119 -14.5t109 -42.5v-279q-48 45 -112 66.5t-142 21.5q-98 0 -165 -33.5t-105 -93.5q-12 -19 -20 -41t-13.5 -51t-7.5 -69t-2 -95v-516h-293v1120z" />
+<glyph unicode="&#x156;" d="M133 1493h426q141 0 242.5 -24.5t167.5 -75.5t97.5 -130.5t31.5 -188.5q0 -171 -74 -260t-217 -109q22 -5 40.5 -14t36 -27.5t36.5 -49t43 -77.5l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838q60 0 103 11.5t70.5 36t40 63.5 t12.5 94q0 54 -12.5 92.5t-39.5 62.5t-70 35.5t-104 11.5h-139v-407h139zM587 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x157;" d="M291 1120h264l29 -174q43 97 132 149t207 52q62 0 119 -14.5t109 -42.5v-279q-48 45 -112 66.5t-142 21.5q-98 0 -165 -33.5t-105 -93.5q-12 -19 -20 -41t-13.5 -51t-7.5 -69t-2 -95v-516h-293v1120zM341 -158h282l-177 -306h-194z" />
+<glyph unicode="&#x158;" d="M209 1852h178l198 -162l199 162h178l-223 -264h-309zM133 1493h426q141 0 242.5 -24.5t167.5 -75.5t97.5 -130.5t31.5 -188.5q0 -171 -74 -260t-217 -109q22 -5 40.5 -14t36 -27.5t36.5 -49t43 -77.5l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590 h-295v1493zM567 838q60 0 103 11.5t70.5 36t40 63.5t12.5 94q0 54 -12.5 92.5t-39.5 62.5t-70 35.5t-104 11.5h-139v-407h139z" />
+<glyph unicode="&#x159;" d="M342 1683h178l198 -227l199 227h178l-256 -376h-241zM291 1120h264l29 -174q43 97 132 149t207 52q62 0 119 -14.5t109 -42.5v-279q-48 45 -112 66.5t-142 21.5q-98 0 -165 -33.5t-105 -93.5q-12 -19 -20 -41t-13.5 -51t-7.5 -69t-2 -95v-516h-293v1120z" />
+<glyph unicode="&#x15a;" d="M699 1853h284l-286 -264h-197zM584 -29q-123 0 -231.5 25.5t-217.5 79.5v305q115 -83 226.5 -124.5t214.5 -41.5q115 0 175 48.5t60 135.5q0 72 -40.5 122t-115.5 79l-145 55q-109 41 -182 84t-117.5 92.5t-63 109t-18.5 134.5q0 107 33.5 190t96.5 139.5t153 86 t204 29.5q103 0 205.5 -23.5t204.5 -69.5v-288q-96 67 -193 102t-194 35q-108 0 -164.5 -43t-56.5 -121q0 -64 42 -104q20 -20 59.5 -41t113.5 -49l127 -48q93 -35 159 -78.5t108.5 -99t62.5 -123.5t20 -152q0 -224 -135 -335t-391 -111z" />
+<glyph unicode="&#x15b;" d="M750 1673h282l-368 -376h-197zM613 -29q-103 0 -208.5 17.5t-214.5 52.5v256q97 -55 197 -84t201 -29q203 0 203 124q0 28 -9.5 45t-28.5 32q-23 18 -64.5 34t-113.5 32l-81 18q-161 36 -241.5 116t-80.5 216q0 168 117.5 257t333.5 89q91 0 184.5 -15.5t183.5 -46.5 v-256q-164 105 -346 105q-97 0 -146.5 -29t-49.5 -77q0 -47 50.5 -78.5t163.5 -58.5l11 -3l84 -20q158 -38 233.5 -121.5t75.5 -226.5q0 -349 -454 -349z" />
+<glyph unicode="&#x15c;" d="M230 1588l221 264h309l223 -264h-178l-199 161l-198 -161h-178zM1110 415q0 -220 -133.5 -332t-394.5 -112q-244 0 -447 105v305q235 -166 445 -166q110 0 170.5 50t60.5 138q0 136 -156 197l-145 55q-150 58 -231.5 116t-115.5 132q-34 72 -34 182q0 134 59 232.5 t169 150.5q108 52 258 52q211 0 411 -93v-288q-94 67 -193 102t-195 35q-106 0 -163 -43t-57 -122q0 -52 23 -83t69 -56q41 -22 123 -54l127 -48q183 -69 266.5 -177t83.5 -278z" />
+<glyph unicode="&#x15d;" d="M240 1297l256 299h241l256 -299h-178l-199 147l-198 -147h-178zM1067 317q0 -346 -451 -346q-105 0 -205.5 16.5t-220.5 53.5v256q95 -54 198 -83.5t197 -29.5q99 0 153 30q27 16 40 38t13 55q0 26 -8.5 44t-30.5 35q-49 37 -177 65l-81 18q-167 38 -244.5 118.5 t-77.5 215.5q0 108 53 185.5t153 118.5q99 40 241 40q98 0 189 -15q44 -7 94 -19.5t89 -27.5v-256q-85 54 -169.5 79.5t-178.5 25.5t-143 -28q-25 -14 -38 -35t-13 -45q0 -45 51 -77q55 -33 163 -58l11 -3l84 -20q161 -38 235 -122t74 -229z" />
+<glyph unicode="&#x15e;" d="M1025 696q85 -109 85 -281q0 -221 -134 -332q-48 -39 -110.5 -65t-141.5 -37q23 -27 40 -51.5t28 -44.5q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5 t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-15 30 -45 72h-7q-60 0 -117 6t-114 20q-114 27 -216 79v305q65 -46 120 -75.5t109 -49.5q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55 q-115 44 -189 88.5t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174z" />
+<glyph unicode="&#x15f;" d="M993 546q38 -43 56 -101.5t18 -127.5q0 -173 -113 -259q-84 -63 -227 -81q23 -26 39 -49.5t26 -42.5q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5 t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 15 -19.5 33.5t-26.5 38.5q-45 2 -92 5.5t-91 11.5q-51 8 -105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 99 -21.5t96 -7.5q54 0 93 8t63 22q29 17 40.5 41t11.5 53q0 22 -7.5 41t-31.5 37t-66.5 34 t-110.5 31l-81 18q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20 q79 -19 138 -49t97 -73z" />
+<glyph unicode="&#x160;" d="M240 1852h178l198 -162l199 162h178l-223 -264h-309zM582 -29q-60 0 -117 6t-114 20q-114 27 -216 79v305q65 -46 120 -75.5t109 -49.5q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55q-115 44 -189 88.5 t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174q85 -109 85 -281 q0 -221 -134 -332q-135 -112 -394 -112z" />
+<glyph unicode="&#x161;" d="M240 1673h178l198 -227l199 227h178l-256 -376h-241zM616 -29q-51 0 -105.5 4.5t-105.5 12.5t-105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 99 -21.5t96 -7.5q54 0 93 8t63 22q29 17 40.5 41t11.5 53q0 22 -7.5 41t-31.5 37t-66.5 34t-110.5 31l-81 18 q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20q79 -19 138 -49t97 -73 t56 -101.5t18 -127.5q0 -173 -113 -259q-57 -44 -142.5 -65.5t-195.5 -21.5z" />
+<glyph unicode="&#x162;" d="M764 0h-57q62 -70 87 -120t25 -102q0 -179 -250 -179q-90 0 -202 26v156q94 -35 164 -35q59 0 91.5 22.5t32.5 61.5q0 29 -21 69.5t-67 100.5h-98v1235h-379v258h1053v-258h-379v-1235z" />
+<glyph unicode="&#x163;" d="M690 895v-534q0 -74 37 -107t121 -33h225v-225h-173q56 -66 78 -113t22 -96q0 -179 -250 -179q-90 0 -202 26v156q94 -35 164 -35q59 0 91.5 22.5t32.5 61.5q0 27 -19 65t-61 94q-137 8 -213 42q-76 33 -111 112t-35 223v520h-286v225h286v306l293 130v-436h383v-225 h-383z" />
+<glyph unicode="&#x164;" d="M233 1864h178l198 -162l199 162h178l-223 -264h-309zM469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
+<glyph unicode="&#x165;" d="M909 1687h282l-161 -376h-197zM827 -4q-253 0 -341 81q-89 80 -89 298v520h-286v225h286v306l293 130v-436h383v-225h-383v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-246z" />
+<glyph unicode="&#x166;" d="M469 538h-247v192h247v505h-379v258h1053v-258h-379v-505h247v-192h-247v-538h-295v538z" />
+<glyph unicode="&#x167;" d="M827 -4q-126 0 -209 18.5t-132 62t-69 116.5t-20 182v186h-178v192h178v142h-286v225h286v306l293 130v-436h383v-225h-383v-142h184v-192h-184v-200q0 -75 36.5 -107.5t121.5 -32.5h225v-225h-246v0z" />
+<glyph unicode="&#x168;" d="M268 1618q0 53 14.5 96.5t40.5 74.5t61.5 48t78.5 17q38 0 76.5 -13t74.5 -36l60 -39q20 -13 38.5 -21t38.5 -8q35 0 54.5 30t19.5 87h140v-6t-1 -9t-1 -8v-5q0 -54 -14 -98t-39.5 -75t-62 -48t-82.5 -17q-35 0 -69.5 11t-77.5 38l-54 34l-12 7q-20 11 -37.5 18.5 t-34.5 7.5q-32 0 -52 -29.5t-20 -80.5v-6h-140v30zM616 -29q-134 0 -230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5z" />
+<glyph unicode="&#x169;" d="M764 1270q-16 0 -31 2.5t-32 9t-37.5 17.5t-45.5 28l-55 37l-12 8q-22 14 -39 21.5t-33 7.5q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 72 -13.5t77 -43.5l62 -43q20 -14 38.5 -22.5t36.5 -8.5q35 0 54.5 32t19.5 89v8h140 q0 -137 -51.5 -210.5t-149.5 -73.5zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
+<glyph unicode="&#x16a;" d="M301 1830h631v-188h-631v188zM616 -29q-134 0 -230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5z" />
+<glyph unicode="&#x16b;" d="M301 1508h631v-188h-631v188zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
+<glyph unicode="&#x16c;" d="M952 1852q-15 -128 -101.5 -196t-234.5 -68q-147 0 -233 67.5t-102 196.5h141q19 -59 68.5 -90t125.5 -31q156 0 193 121h143zM907 32q-112 -61 -291 -61t-291 61.5t-165 188.5q-54 128 -54 330v942h295v-1016q0 -113 57 -176t158 -63t158 63t57 176v1016h295v-942 q0 -202 -54 -330t-165 -189z" />
+<glyph unicode="&#x16d;" d="M946 1596q-6 -143 -93 -220t-243 -77q-155 0 -242 77.5t-93 219.5h141q10 -69 60.5 -106.5t134.5 -37.5q83 0 132.5 37t59.5 107h143zM768 166q-32 -94 -106 -144.5t-181 -50.5q-158 0 -239.5 106t-81.5 314v729h293v-684q0 -121 34 -173t111 -52q81 0 125.5 70t44.5 196 v643h293v-1120h-264z" />
+<glyph unicode="&#x16e;" d="M1126 1493v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5t-230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h259q-28 58 -28 123q0 59 22.5 111t61 90.5t90.5 61t111 22.5t111 -22.5t90.5 -61t60.5 -90.5t22 -111q0 -65 -28 -123h248zM621 1747 q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10t51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5zM616 238q102 0 158.5 63.5t56.5 175.5v946q-39 -43 -92.5 -67.5t-116.5 -24.5q-67 0 -124.5 28.5t-96.5 76.5v-959 q0 -112 56.5 -175.5t158.5 -63.5z" />
+<glyph unicode="&#x16f;" d="M617 1249q-59 0 -111 22.5t-90.5 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90.5 61t111 22.5t111 -22.5t90.5 -61t60.5 -90.5t22 -111t-22 -111t-60.5 -90.5t-90.5 -61t-111 -22.5zM616 1403q27 0 51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5 t-51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
+<glyph unicode="&#x170;" d="M463 1852h284l-286 -264h-197zM838 1852h284l-286 -264h-197zM616 -29q-134 0 -230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295v-942q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5 t-230.5 -33.5z" />
+<glyph unicode="&#x171;" d="M492 1646h217l-248 -376h-164zM854 1646h231l-272 -376h-174zM480 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
+<glyph unicode="&#x172;" d="M1126 1493v-942q0 -143 -26 -248.5t-80.5 -176t-139.5 -108.5t-202 -45q-15 -20 -25.5 -35t-17.5 -26t-11.5 -19t-8.5 -15q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5 t-62 131.5q0 53 25 104.5t77 109.5q-112 10 -193.5 49t-134 109.5t-77.5 174.5t-25 244v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5t56.5 175.5v1016h295z" />
+<glyph unicode="&#x173;" d="M1080 -254q31 0 69.5 7.5t78.5 23.5v-156q-54 -11 -101.5 -16.5t-85.5 -5.5q-117 0 -179 45.5t-62 131.5q0 55 27 109t84 115h-143v166q-31 -92 -103.5 -143.5t-184.5 -51.5q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5 t43.5 196.5v643h293v-1120h-9q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-10 -18 -14.5 -32t-4.5 -28q0 -35 28 -61.5t90 -26.5z" />
+<glyph unicode="&#x174;" d="M461 1859h309l223 -264h-178l-199 161l-198 -161h-178zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
+<glyph unicode="&#x175;" d="M496 1646h241l256 -376h-178l-199 225l-198 -225h-178zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
+<glyph unicode="&#x176;" d="M461 1859h309l223 -264h-178l-199 161l-198 -161h-178zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="&#x177;" d="M507 1646h241l256 -376h-178l-199 225l-198 -225h-178zM137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
+<glyph unicode="&#x178;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="&#x179;" d="M699 1853h284l-286 -264h-197zM115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
+<glyph unicode="&#x17a;" d="M750 1646h282l-368 -376h-197zM162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
+<glyph unicode="&#x17b;" d="M559 1606q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
+<glyph unicode="&#x17c;" d="M509 1320q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215zM162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
+<glyph unicode="&#x17d;" d="M240 1852h178l198 -162l199 162h178l-223 -264h-309zM115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
+<glyph unicode="&#x17e;" d="M240 1645h178l198 -227l199 227h178l-256 -376h-241zM162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
+<glyph unicode="&#x192;" d="M240 -426q-28 0 -58 3t-57 9t-56 16t-57 23v234q22 -14 42.5 -24t40.5 -17q39 -13 80 -13q94 0 147 60q52 60 69 190l80 611h-252v219h281l39 293q12 91 44.5 161.5t81.5 118.5q51 49 117 73.5t144 24.5q28 0 59 -3t57 -9q23 -5 54 -16t57 -23v-231q-23 14 -44 23t-38 15 q-39 13 -79 13q-93 0 -144 -60q-27 -32 -44.5 -79.5t-25.5 -110.5l-24 -190h260v-219h-289l-94 -713q-11 -85 -42.5 -157t-83.5 -123q-101 -99 -265 -99z" />
+<glyph unicode="&#x1a0;" d="M1229 1367q0 -117 -45.5 -178.5t-131.5 -61.5q-11 0 -22.5 1t-22.5 4q46 -159 46 -386q0 -383 -132.5 -579t-391.5 -196q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q267 0 400 -208l3 -2q35 -19 63 -19q36 0 61.5 27.5t25.5 87.5q0 30 -7.5 70t-23.5 79h156 q11 -55 16.5 -102t5.5 -86zM694 357q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121q114 0 166 121z" />
+<glyph unicode="&#x1a1;" d="M1202 1167q11 -55 16.5 -102t5.5 -86q0 -117 -45.5 -178.5t-131.5 -61.5h-10t-10 1q9 -42 14 -87t5 -94q0 -135 -36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41t-214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41q149 0 260 -62.5 t177 -177.5q12 -4 26 -4q36 0 61.5 27.5t25.5 87.5q0 30 -7.5 70t-23.5 79h156zM527 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z " />
+<glyph unicode="&#x1a4;" d="M243 1245q-28 0 -41 -8.5t-18 -27.5q-5 -22 -5 -59l1 -80h-175v130q0 96 32.5 162.5t86.5 98.5q25 15 56 23.5t63 8.5h405q580 0 580 -468q0 -230 -142.5 -348t-437.5 -118h-110v-559h-295v1245zM659 807q97 0 154 21t83 69q25 46 25 129q0 80 -24.5 128.5t-81.5 69.5 t-156 21h-121v-438h121z" />
+<glyph unicode="&#x1af;" d="M1206 1555q11 -55 16.5 -102t5.5 -86q0 -117 -45.5 -178.5t-131.5 -61.5h-13t-13 2v-578q0 -152 -29.5 -261.5t-91.5 -180.5t-158.5 -104.5t-230.5 -33.5t-230 33.5t-158.5 104.5t-92 180.5t-29.5 261.5v942h295v-1016q0 -112 56.5 -175.5t158.5 -63.5t158.5 63.5 t56.5 175.5v1016h295v-196q25 10 40.5 36.5t15.5 72.5q0 30 -7.5 70t-23.5 79h156v0z" />
+<glyph unicode="&#x1b0;" d="M1203 1167q11 -55 16.5 -102t5.5 -86q0 -117 -45.5 -178.5t-131.5 -61.5q-69 0 -139 44v-783h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-187 q5 -3 9.5 -6t9.5 -5q35 -19 63 -19q36 0 61.5 27.5t25.5 87.5q0 30 -7.5 70t-23.5 79h156v0z" />
+<glyph unicode="&#x1e6;" d="M337 1852h178l198 -162l199 162h178l-223 -264h-309zM719 -29q-143 0 -255 51.5t-189 150.5t-117.5 243.5t-40.5 330.5q0 188 41 332t119.5 242t192 148.5t257.5 50.5q101 0 185.5 -24.5t164.5 -74.5v-327q-125 161 -319 161q-334 0 -334 -508q0 -252 79 -381.5 t240 -129.5q40 0 74 8.5t55 25.5v285h-202v248h460v-684q-173 -148 -411 -148z" />
+<glyph unicode="&#x1e7;" d="M220 1673h178l198 -227l199 227h178l-256 -376h-241zM580 -424q-93 0 -182 13.5t-183 41.5v269q84 -46 169.5 -68t176.5 -22q125 0 183.5 58t58.5 183v121q-43 -81 -113.5 -119.5t-173.5 -38.5q-96 0 -173.5 39t-131.5 111t-83.5 175t-29.5 232q0 133 29.5 240t83.5 182 t131 115.5t172 40.5q97 0 171.5 -45t117.5 -127l29 143h264v-1036q0 -135 -29.5 -231t-92 -157.5t-160.5 -90.5t-234 -29zM596 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -66.5t-41.5 -104.5t-14.5 -136.5 q0 -76 14.5 -137.5t41.5 -104.5t65 -66.5t84 -23.5z" />
+<glyph unicode="&#x1fe;" d="M668 1852h284l-286 -264h-197zM-6 51l168 238q-35 88 -52.5 201t-17.5 252q0 386 132.5 582t391.5 196q207 0 330 -123l113 162l162 -115l-158 -223q78 -188 78 -478q0 -380 -132.5 -576t-391.5 -196q-213 0 -341 133l-120 -167zM772 1153q-53 102 -156 102 q-112 0 -164 -120q-53 -121 -53 -379v-127zM617 236q113 0 165 121q26 60 39 156.5t13 227.5q0 31 -1 62.5t-4 84.5l-378 -534q26 -60 68.5 -89t97.5 -29z" />
+<glyph unicode="&#x1ff;" d="M754 1674h282l-368 -376h-197zM27 3l163 197q-90 145 -90 360q0 135 36.5 244t104 185.5t163 117.5t214.5 41q85 0 158.5 -21.5t140.5 -66.5l148 176l139 -121l-160 -188q46 -76 69.5 -167.5t23.5 -199.5q0 -135 -36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41 q-168 0 -301 90l-151 -178zM747 861q-26 25 -57 37t-70 12q-53 0 -95 -24t-71.5 -69t-45 -110t-15.5 -147q0 -34 2 -60t6 -50zM620 210q52 0 93.5 24t70.5 69.5t44.5 110.5t15.5 146q0 29 -2.5 58t-8.5 58l-348 -413q60 -53 135 -53z" />
+<glyph unicode="&#x218;" d="M584 -29q-123 0 -231.5 25.5t-217.5 79.5v305q115 -83 226.5 -124.5t214.5 -41.5q115 0 175 48.5t60 135.5q0 72 -40.5 122t-115.5 79l-145 55q-109 41 -182 84t-117.5 92.5t-63 109t-18.5 134.5q0 107 33.5 190t96.5 139.5t153 86t204 29.5q103 0 205.5 -23.5 t204.5 -69.5v-288q-96 67 -193 102t-194 35q-108 0 -164.5 -43t-56.5 -121q0 -64 42 -104q20 -20 59.5 -41t113.5 -49l127 -48q93 -35 159 -78.5t108.5 -99t62.5 -123.5t20 -152q0 -224 -135 -335t-391 -111zM461 -198h282l-177 -306h-194z" />
+<glyph unicode="&#x219;" d="M613 -29q-103 0 -208.5 17.5t-214.5 52.5v256q97 -55 197 -84t201 -29q203 0 203 124q0 28 -9.5 45t-28.5 32q-23 18 -64.5 34t-113.5 32l-81 18q-161 36 -241.5 116t-80.5 216q0 168 117.5 257t333.5 89q91 0 184.5 -15.5t183.5 -46.5v-256q-164 105 -346 105 q-97 0 -146.5 -29t-49.5 -77q0 -47 50.5 -78.5t163.5 -58.5l11 -3l84 -20q158 -38 233.5 -121.5t75.5 -226.5q0 -349 -454 -349zM461 -198h282l-177 -306h-194z" />
+<glyph unicode="&#x21a;" d="M764 0h-57q32 -36 53.5 -65.5t34.5 -56t18.5 -51t5.5 -49.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 29 -21 69.5t-67 100.5h-98v1235h-379v258h1053v-258h-379v-1235z" />
+<glyph unicode="&#x21b;" d="M690 895v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-173q28 -33 47.5 -61t31 -53t16.5 -48t5 -47q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 27 -19 65t-61 94q-196 11 -270 79q-89 80 -89 298 v520h-286v225h286v306l293 130v-436h383v-225h-383z" />
+<glyph unicode="&#x2b9;" d="M565 1638h221l-110 -498h-176z" />
+<glyph unicode="&#x2bb;" d="M432 1174l197 382h215l-99 -382v-271h-313v271z" />
+<glyph unicode="&#x2bc;" d="M530 1286v270h314v-270l-197 -383h-215z" />
+<glyph unicode="&#x2bd;" d="M754 1218q-274 1 -274 265v246h274v-246h-122q2 -122 122 -122v-143v0z" />
+<glyph unicode="&#x2be;" d="M474 1140q27 0 51 10.5t42 28t28 41.5t10 51t-10.5 51t-28 41.5t-41.5 28t-51 10.5v154q59 0 111 -22.5t90.5 -61t61 -90.5t22.5 -111t-22.5 -111t-61 -90.5t-90.5 -61t-111 -22.5v154z" />
+<glyph unicode="&#x2bf;" d="M759 986q-59 0 -111 22.5t-90.5 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90.5 61t111 22.5v-154q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10 -51t28 -41.5t42 -28t51 -10.5v-154v0z" />
+<glyph unicode="&#x2c0;" d="M442 1080h54q125 0 174 64q33 43 33 82q0 53 -33 91q-57 64 -160 64q-92 0 -182 -48v167q22 9 43 16.5t47.5 12.5t62.5 7.5t89 2.5q69 0 130 -26.5t106.5 -70t72 -100t26.5 -116.5q0 -65 -20 -113.5t-54.5 -82.5t-81.5 -54.5t-101 -29.5v-278h-206v412z" />
+<glyph unicode="&#x2c1;" d="M585 946q-54 9 -101 29.5t-81.5 54.5t-54.5 82.5t-20 113.5q0 60 26.5 116.5t72 100t106.5 70t130 26.5q52 0 88.5 -2.5t63 -7.5t47.5 -12.5t43 -16.5v-167q-90 48 -182 48q-103 0 -160 -64q-33 -38 -33 -91q0 -39 33 -82q49 -64 174 -64h54v-412h-206v278z" />
+<glyph unicode="&#x2c6;" d="M496 1638h241l256 -376h-178l-199 225l-198 -225h-178z" />
+<glyph unicode="&#x2c7;" d="M240 1638h178l198 -227l199 227h178l-256 -376h-241z" />
+<glyph unicode="&#x2c8;" d="M522 1554h189v-555h-189v555z" />
+<glyph unicode="&#x2c9;" d="M301 1556h631v-188h-631v188z" />
+<glyph unicode="&#x2cc;" d="M522 390h189v-555h-189v555z" />
+<glyph unicode="&#x2cd;" d="M301 -218h631v-188h-631v188z" />
+<glyph unicode="&#x2ce;" d="M297 -208h282l283 -376h-197z" />
+<glyph unicode="&#x2cf;" d="M654 -208h282l-368 -376h-197z" />
+<glyph unicode="&#x2d0;" d="M411 1120h411l-206 -380zM617 380l205 -380h-411z" />
+<glyph unicode="&#x2d1;" d="M411 1120h411l-206 -380z" />
+<glyph unicode="&#x2d8;" d="M616 1309q-156 0 -242 77q-87 77 -93 220h141q10 -68 61 -106q50 -38 133 -38q84 0 133 37q50 38 60 107h143q-6 -143 -92 -220q-88 -77 -244 -77z" />
+<glyph unicode="&#x2d9;" d="M509 1339q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215v0z" />
+<glyph unicode="&#x2da;" d="M617 1249q-57 0 -109.5 21t-93.5 62q-35 35 -58.5 87.5t-23.5 115.5q0 64 24 115.5t59 86.5q41 41 92.5 61.5t108.5 20.5q62 0 113.5 -22.5t88.5 -59.5q36 -36 59.5 -88t23.5 -116q0 -57 -20.5 -107.5t-61.5 -92.5q-42 -42 -93.5 -63t-108.5 -21zM617 1403q54 0 93 39 q38 38 38 92t-39 93q-40 38 -93 38q-54 0 -92 -38q-39 -39 -39 -93q0 -55 38 -93q16 -16 40 -27t54 -11z" />
+<glyph unicode="&#x2db;" d="M681 -401q-54 0 -98 11.5t-75 34.5q-62 47 -62 132q0 31 7.5 56t20.5 51q15 30 35 57.5t48 58.5h141q-17 -23 -29 -40t-20 -29t-13 -21t-9 -16q-19 -35 -19 -60q0 -21 9 -37.5t21 -26.5q16 -13 38 -18.5t48 -5.5q14 0 33 1.5t39 5.5q15 3 35.5 9t42.5 15v-156 q-9 -2 -22.5 -4.5t-27.5 -5t-27.5 -4.5t-23.5 -3q-13 -2 -40.5 -3.5t-51.5 -1.5z" />
+<glyph unicode="&#x2dc;" d="M768 1307q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5z" />
+<glyph unicode="&#x2dd;" d="M492 1638h217l-248 -376h-164zM854 1638h231l-272 -376h-174z" />
+<glyph unicode="&#x300;" horiz-adv-x="0" d="M-1034 1638h282l283 -376h-197z" />
+<glyph unicode="&#x301;" horiz-adv-x="0" d="M-481 1638h282l-368 -376h-197z" />
+<glyph unicode="&#x302;" horiz-adv-x="0" d="M-737 1638h241l256 -376h-178l-199 225l-198 -225h-178z" />
+<glyph unicode="&#x303;" horiz-adv-x="0" d="M-469 1307q-16 0 -31 2.5t-32 9t-37.5 17.5t-45.5 28l-55 37l-12 8q-22 14 -39 21.5t-33 7.5q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 72 -13.5t77 -43.5l62 -43q20 -14 38.5 -22.5t36.5 -8.5q35 0 54.5 32t19.5 89v8h140 q0 -137 -51.5 -210.5t-149.5 -73.5z" />
+<glyph unicode="&#x304;" horiz-adv-x="0" d="M-932 1556h631v-188h-631v188z" />
+<glyph unicode="&#x305;" horiz-adv-x="0" d="M-1233 1547h1233v-190h-1233v190z" />
+<glyph unicode="&#x306;" horiz-adv-x="0" d="M-617 1309q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76z" />
+<glyph unicode="&#x307;" horiz-adv-x="0" d="M-754 1585h275v-246h-275v246z" />
+<glyph unicode="&#x308;" horiz-adv-x="0" d="M-932 1585h236v-246h-236v246zM-537 1585h236v-246h-236v246z" />
+<glyph unicode="&#x309;" horiz-adv-x="0" d="M-685 1376q28 7 59.5 24.5t48.5 37.5q11 11 16.5 26t5.5 36q0 34 -13.5 53t-33 27.5t-40.5 10t-35 0.5h-50q-47 0 -116 -31v152q106 26 202 26q224 0 248 -145q1 -10 1.5 -20t0.5 -18q0 -49 -26 -100t-78 -109v-84h-190v114z" />
+<glyph unicode="&#x30a;" horiz-adv-x="0" d="M-617 1249q-59 0 -110.5 22.5t-90 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90 61t110.5 22.5q60 0 112 -22.5t90.5 -61t60.5 -90.5t22 -111t-22 -111t-60.5 -90.5t-90.5 -61t-112 -22.5zM-617 1403q27 0 51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28 t-51 10.5t-51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10z" />
+<glyph unicode="&#x30b;" horiz-adv-x="0" d="M-741 1638h217l-248 -376h-164zM-379 1638h231l-272 -376h-174z" />
+<glyph unicode="&#x30c;" horiz-adv-x="0" d="M-993 1638h178l198 -227l199 227h178l-256 -376h-241z" />
+<glyph unicode="&#x30d;" horiz-adv-x="0" d="M-711 1706h190v-444h-190v444z" />
+<glyph unicode="&#x30e;" horiz-adv-x="0" d="M-996 1706h190v-444h-190v444zM-426 1706h190v-444h-190v444z" />
+<glyph unicode="&#x30f;" horiz-adv-x="0" d="M-1091 1638h231l215 -376h-174zM-714 1638h217l194 -376h-163z" />
+<glyph unicode="&#x310;" horiz-adv-x="0" d="M-754 1801h275v-246h-275v246zM-617 1309q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76z" />
+<glyph unicode="&#x311;" horiz-adv-x="0" d="M-952 1309q6 145 92 221t243 76q158 0 244 -76t92 -221h-143q-11 70 -60 107t-133 37t-133.5 -37.5t-60.5 -106.5h-141v0z" />
+<glyph unicode="&#x312;" horiz-adv-x="0" d="M-609 1209h194l-89 -306h-282z" />
+<glyph unicode="&#x313;" horiz-adv-x="0" d="M-753 1361q120 0 120 122h-120v246h274v-246q0 -264 -274 -265v143z" />
+<glyph unicode="&#x314;" horiz-adv-x="0" d="M-479 1218q-274 1 -274 265v246h274v-246h-122q2 -122 122 -122v-143v0z" />
+<glyph unicode="&#x315;" horiz-adv-x="0" d="M-688 1638h282l-161 -376h-197z" />
+<glyph unicode="&#x316;" horiz-adv-x="0" d="M-899 -217h282l283 -376h-197z" />
+<glyph unicode="&#x317;" horiz-adv-x="0" d="M-616 -217h282l-368 -376h-197z" />
+<glyph unicode="&#x318;" horiz-adv-x="0" d="M-683 -624h-182v189h182v183h190v-555h-190v183z" />
+<glyph unicode="&#x319;" horiz-adv-x="0" d="M-760 -252h189v-183h183v-189h-183v-183h-189v555z" />
+<glyph unicode="&#x31a;" horiz-adv-x="0" d="M-528 1713h-366v189h555v-555h-189v366z" />
+<glyph unicode="&#x31b;" horiz-adv-x="0" d="M-594 739q-54 0 -108 27t-115 84v141q34 -25 59.5 -42t44.5 -27q35 -19 62 -19q39 0 63.5 29.5t24.5 78.5q0 78 -31 156h156q22 -107 22 -190q0 -115 -45.5 -176.5t-132.5 -61.5z" />
+<glyph unicode="&#x31c;" horiz-adv-x="0" d="M-507 -502q-46 0 -86 17t-69.5 47t-46.5 70t-17 86t17 86t46.5 69.5t69.5 46.5t86 17v-132q-37 0 -62 -25t-25 -62q0 -38 25 -63t62 -25v-132v0z" />
+<glyph unicode="&#x31d;" horiz-adv-x="0" d="M-890 -435h182v183h190v-183h183v-189h-555v189z" />
+<glyph unicode="&#x31e;" horiz-adv-x="0" d="M-735 -624h-183v189h555v-189h-183v-183h-189v183z" />
+<glyph unicode="&#x31f;" horiz-adv-x="0" d="M-698 -624h-182v189h182v183h190v-183h183v-189h-183v-183h-190v183z" />
+<glyph unicode="&#x320;" horiz-adv-x="0" d="M-894 -252h555v-189h-555v189z" />
+<glyph unicode="&#x321;" horiz-adv-x="0" d="M-674 -199h39q49 0 83.5 12.5t56.5 41t32 75t10 113.5v125h291v-125q0 -125 -21.5 -213.5t-69 -145t-121.5 -82.5t-179 -26h-121v225z" />
+<glyph unicode="&#x322;" horiz-adv-x="0" d="M-675 -426q-105 0 -179 26t-121.5 82.5t-69 145t-21.5 213.5v125h291v-125q0 -67 10 -113.5t32 -75t56.5 -41t83.5 -12.5h39v-225h-121v0z" />
+<glyph unicode="&#x323;" horiz-adv-x="0" d="M-754 -216h275v-246h-275v246z" />
+<glyph unicode="&#x324;" horiz-adv-x="0" d="M-932 -216h236v-246h-236v246zM-537 -216h236v-246h-236v246z" />
+<glyph unicode="&#x325;" horiz-adv-x="0" d="M-617 -502q-46 0 -86 17t-69.5 47t-46.5 70t-17 86t17 86t46.5 69.5t69.5 46.5t86 17t86.5 -17t70 -46.5t46.5 -69.5t17 -86t-17 -86t-46.5 -70t-70 -47t-86.5 -17zM-617 -370q37 0 62.5 25.5t25.5 62.5q0 36 -25.5 61.5t-62.5 25.5t-62 -25t-25 -62q0 -38 25 -63t62 -25 z" />
+<glyph unicode="&#x326;" horiz-adv-x="0" d="M-772 -198h282l-177 -306h-194z" />
+<glyph unicode="&#x327;" horiz-adv-x="0" d="M-664 -401q-48 0 -98 6.5t-104 19.5v156q91 -35 165 -35q58 0 90.5 23t32.5 63q0 26 -21 67t-67 101h140q57 -63 84.5 -115t27.5 -100q0 -96 -61 -141t-189 -45z" />
+<glyph unicode="&#x328;" horiz-adv-x="0" d="M-593 -401q-115 0 -176.5 45.5t-61.5 132.5q0 54 27 108t84 115h141q-52 -70 -71 -106q-19 -34 -19 -60q0 -39 30 -63.5t81 -24.5q77 0 155 31v-156q-106 -22 -190 -22z" />
+<glyph unicode="&#x329;" horiz-adv-x="0" d="M-711 -218h189v-444h-189v444z" />
+<glyph unicode="&#x32a;" horiz-adv-x="0" d="M-931 -218h630v-374h-188v186h-254v-186h-188v374z" />
+<glyph unicode="&#x32b;" horiz-adv-x="0" d="M-785 -489q-179 0 -226 191q-5 24 -8.5 50.5t-4.5 55.5h143q19 -137 96 -144q80 0 95 128q1 4 1 8t1 8h143q19 -137 96 -144q71 0 92 109q2 9 3 18t2 17h143q-6 -208 -127 -272q-47 -25 -112 -25q-108 0 -169 70q-61 -70 -168 -70z" />
+<glyph unicode="&#x32c;" horiz-adv-x="0" d="M-993 -109h178l198 -227l199 227h178l-256 -376h-241z" />
+<glyph unicode="&#x32d;" horiz-adv-x="0" d="M-737 -109h241l256 -376h-178l-199 225l-198 -225h-178z" />
+<glyph unicode="&#x32e;" horiz-adv-x="0" d="M-617 -491q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76z" />
+<glyph unicode="&#x32f;" horiz-adv-x="0" d="M-952 -489q6 145 92 221t244 76q157 0 243 -76t92 -221h-141q-11 69 -60.5 106.5t-133.5 37.5t-133 -37t-60 -107h-143v0z" />
+<glyph unicode="&#x330;" horiz-adv-x="0" d="M-465 -487q-36 0 -69 12t-81 45l-55 37l-12 8q-44 29 -70 29q-73 0 -73 -121v-8h-140q0 137 51.5 210.5t145.5 73.5q36 0 71.5 -13.5t77.5 -43.5l62 -43q43 -31 74 -31q36 0 55.5 31.5t19.5 89.5v8h140q0 -137 -51.5 -210.5t-145.5 -73.5z" />
+<glyph unicode="&#x331;" horiz-adv-x="0" d="M-932 -218h631v-188h-631v188z" />
+<glyph unicode="&#x332;" horiz-adv-x="0" d="M-1233 -293h1233v-190h-1233v190z" />
+<glyph unicode="&#x333;" horiz-adv-x="0" d="M-1233 -18h1233v-190h-1233v190zM-1233 -293h1233v-190h-1233v190z" />
+<glyph unicode="&#x334;" horiz-adv-x="0" d="M-385 463q-91 0 -203 51q-11 5 -19.5 8.5t-13.5 5.5q-39 17 -70 28t-58.5 18t-52.5 9.5t-50 2.5q-78 0 -148 -29t-145 -92v229q78 61 151 88t156 27q27 0 51.5 -2.5t51.5 -8.5t57 -16.5t67 -25.5l33 -15q114 -55 209 -55q70 0 139 30.5t142 94.5v-233 q-75 -60 -146.5 -87.5t-150.5 -27.5z" />
+<glyph unicode="&#x335;" horiz-adv-x="0" d="M-1041 632h774v-194h-774v194z" />
+<glyph unicode="&#x336;" horiz-adv-x="0" d="M-1233 632h1233v-194h-1233v194z" />
+<glyph unicode="&#x337;" horiz-adv-x="0" d="M-1208 2l1038 1233l139 -121l-1038 -1231z" />
+<glyph unicode="&#x338;" horiz-adv-x="0" d="M-1239 51l1065 1508l162 -115l-1065 -1507z" />
+<glyph unicode="&#x339;" horiz-adv-x="0" d="M-726 -370q37 0 62 25t25 63q0 37 -25 62t-62 25v132q46 0 86 -17t69.5 -46.5t46.5 -69.5t17 -86t-17 -86t-46.5 -70t-69.5 -47t-86 -17v132z" />
+<glyph unicode="&#x33a;" horiz-adv-x="0" d="M-931 -146h188v-186h254v186h188v-374h-630v374z" />
+<glyph unicode="&#x33b;" horiz-adv-x="0" d="M-903 -218h573v-573h-573v573zM-501 -620v231h-231v-231h231z" />
+<glyph unicode="&#x33c;" horiz-adv-x="0" d="M-1024 -489q6 208 127 272q47 25 112 25q107 0 168 -70q61 70 169 70q179 0 226 -191q5 -24 8.5 -50.5t4.5 -55.5h-143q-20 137 -97 144q-79 0 -94 -128q-1 -4 -1 -8t-1 -8h-143q-20 137 -97 144q-70 0 -91 -109q-2 -9 -3 -18t-2 -17h-143v0z" />
+<glyph unicode="&#x33d;" horiz-adv-x="0" d="M-880 1326l129 129l-129 129l134 134l129 -129l130 129l134 -134l-129 -129l129 -129l-134 -134l-130 129l-129 -129z" />
+<glyph unicode="&#x33e;" horiz-adv-x="0" d="M-757 1340h8q57 0 88.5 15t31.5 42q0 23 -30 55l-44 46q-31 33 -43.5 59t-12.5 53q0 82 73.5 123.5t210.5 41.5v-122h-8q-57 0 -90 -14q-32 -14 -32 -41q0 -19 32 -54q5 -5 6 -8l36 -41q18 -20 29.5 -34.5t17.5 -27.5t8.5 -25t2.5 -26q0 -82 -73.5 -123t-210.5 -41v122z " />
+<glyph unicode="&#x33f;" horiz-adv-x="0" d="M0 1272v-190h-1233v190h1233z" />
+<glyph unicode="&#x358;" horiz-adv-x="0" d="M-280 1585h275v-246h-275v246z" />
+<glyph unicode="&#x361;" horiz-adv-x="0" d="M-1473 1506q-8 58 23.5 102t92 76t144.5 54t182 36t204.5 20.5t211.5 8.5q87 2 186.5 -3.5t197 -19.5t187 -37t156 -56.5t103 -78.5t28.5 -102h-143q-14 71 -211 107q-103 19 -228 28t-276 9q-304 0 -504 -37q-197 -36 -211 -107h-143v0z" />
+<glyph unicode="&#x384;" d="M752 1638h282l-368 -376h-197z" />
+<glyph unicode="&#x385;" d="M752 1891h282l-368 -376h-197zM211 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM816 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
+<glyph unicode="&#x386;" d="M202 1638h282l-368 -376h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x388;" d="M-68 1638h282l-368 -376h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x389;" d="M-108 1638h282l-368 -376h-197zM137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
+<glyph unicode="&#x38a;" d="M-48 1638h282l-368 -376h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x38c;" d="M112 1638h282l-368 -376h-197zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5 q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="&#x38e;" d="M-253 1608h282l-368 -376h-197zM469 534q0 117 -16.5 227.5t-44 201t-63.5 154t-75 86.5q-17 10 -44.5 18t-60 12.5t-67 3.5t-64.5 -8v264q16 6 42 8.5t56.5 2t63.5 -4t65 -9.5q65 -14 119.5 -43t98 -80t75.5 -127t52 -183q106 377 344 433q101 24 175 -23q50 -31 72 -77 t26 -94.5t-6.5 -93t-25.5 -72.5q-17 -32 -41 -48t-50.5 -19.5t-53 5.5t-48.5 28t-37.5 46t-19.5 61q-92 -136 -134.5 -301.5t-42.5 -367.5v-534h-295v534z" />
+<glyph unicode="&#x38f;" d="M157 1638h282l-368 -376h-197zM90 211h238q-58 52 -101 111.5t-71 128.5t-42 149.5t-14 176.5q0 159 36.5 285.5t103.5 215t162 135.5t213 47t214 -47t163.5 -135.5t104 -215t36.5 -285.5q0 -96 -14 -177t-42.5 -150t-71 -128t-100.5 -111h238v-211h-471v268 q81 79 120 196t39 287q0 105 -14.5 187.5t-42 139t-67.5 86.5t-91 30t-91 -30t-67.5 -86.5t-42 -138.5t-14.5 -187q0 -162 37.5 -282t124.5 -202v-268h-473v211z" />
+<glyph unicode="&#x390;" d="M752 1891h282l-368 -376h-197zM211 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM816 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225 h493v-763q0 -74 37 -107t121 -33h58v-225h-78z" />
+<glyph unicode="&#x391;" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x392;" d="M125 1495h481q500 0 500 -376q0 -146 -73.5 -226.5t-217.5 -93.5q176 -18 260 -116.5t84 -275.5q0 -107 -31.5 -184t-99 -126.5t-172 -73t-250.5 -23.5h-481v1495zM606 913q56 0 95.5 9.5t64 30t36 53t11.5 78.5q0 93 -48.5 134.5t-158.5 41.5h-196v-347h196zM606 236 q70 0 118.5 11t78.5 36.5t43.5 66t13.5 99.5q0 61 -14 104.5t-44.5 71t-79 40.5t-116.5 13h-196v-442h196z" />
+<glyph unicode="&#x393;" d="M182 1493h930v-260h-635v-1233h-295v1493z" />
+<glyph unicode="&#x394;" d="M436 1493h361l403 -1493h-1167zM845 260l-229 963l-229 -963h458z" />
+<glyph unicode="&#x395;" d="M168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x396;" d="M115 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
+<glyph unicode="&#x397;" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
+<glyph unicode="&#x398;" d="M10 680q0 237 71 402t207 250.5t330 85.5q193 0 328.5 -85t206 -251.5t70.5 -406.5q0 -357 -154.5 -528t-445.5 -171q-302 0 -457.5 177.5t-155.5 526.5zM940 686q0 229 -71 363t-246 134q-176 0 -253 -135.5t-77 -361.5q0 -220 76 -337.5t255 -117.5q119 0 188.5 53 t98.5 152.5t29 249.5zM403 809h427v-230h-427v230z" />
+<glyph unicode="&#x399;" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x39a;" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
+<glyph unicode="&#x39b;" d="M436 1493h361l403 -1493h-295l-289 1223l-288 -1223h-295z" />
+<glyph unicode="&#x39c;" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
+<glyph unicode="&#x39d;" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
+<glyph unicode="&#x39e;" d="M137 1493h959v-260h-959v260zM377 924h479v-260h-479v260zM137 260h959v-260h-959v260z" />
+<glyph unicode="&#x39f;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389 q52 -121 165 -121z" />
+<glyph unicode="&#x3a0;" d="M137 1493h959v-1493h-295v1233h-369v-1233h-295v1493z" />
+<glyph unicode="&#x3a1;" d="M162 1493h405q154 0 264 -26.5t180.5 -83.5t103 -145.5t32.5 -211.5t-32.5 -211.5t-103 -145.5t-180.5 -83.5t-264 -26.5h-110v-559h-295v1493zM578 807q72 0 122 11.5t81 37.5t45 68t14 102t-14 102t-45 68t-81 37.5t-122 11.5h-121v-438h121z" />
+<glyph unicode="&#x3a3;" d="M98 260l401 487l-401 487v259h1046v-260h-706l402 -486l-402 -487h706v-260h-1046v260z" />
+<glyph unicode="&#x3a4;" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
+<glyph unicode="&#x3a5;" d="M459 534q0 117 -16.5 227.5t-44 201t-63.5 154t-75 86.5q-17 10 -44.5 18t-60 12.5t-67 3.5t-64.5 -8v264q16 6 42 8.5t56.5 2t63.5 -4t65 -9.5q65 -14 119.5 -43t98 -80t75.5 -127t52 -183q106 377 344 433q101 24 175 -23q50 -31 72 -77t26 -94.5t-6.5 -93t-25.5 -72.5 q-17 -32 -41 -48t-50.5 -19.5t-53 5.5t-48.5 28t-37.5 46t-19.5 61q-92 -136 -134.5 -301.5t-42.5 -367.5v-534h-295v534z" />
+<glyph unicode="&#x3a6;" d="M350 260h119v70q-76 11 -144.5 38t-120 75.5t-82 123t-30.5 179.5t30 178.5t82 122.5t120 75.5t145 38.5v72h-119v260h533v-260h-119v-72q76 -12 144.5 -38.5t120.5 -75.5t82 -122.5t30 -178.5t-30.5 -179.5t-82 -123t-120 -75.5t-144.5 -38v-70h119v-260h-533v260z M469 965l-35 -27q-41 -32 -61 -80.5t-20 -106.5q0 -60 21 -109.5t60 -88.5q16 -16 35 -27v439zM764 526q16 9 36 27q16 15 30.5 36t25.5 47t17.5 55.5t6.5 61.5q0 52 -19 102t-62 83l-14 10.5t-2.5 2t-3 2.5t-15.5 12v-439z" />
+<glyph unicode="&#x3a7;" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
+<glyph unicode="&#x3a8;" d="M350 260h119v132q-149 44 -245 176q-75 103 -109.5 247t-34.5 331v347h295v-347q0 -251 64 -388q5 -10 14 -27.5t16 -25.5v788h295v-788q7 9 15 24t15 29q64 137 64 388v347h295v-347q0 -194 -36 -336t-109 -242q-97 -132 -244 -176v-132h119v-260h-533v260z" />
+<glyph unicode="&#x3a9;" d="M90 211h238q-121 110 -174 245q-54 135 -54 325q0 157 36 283t103 214q65 85 159.5 133.5t216.5 48.5q121 0 216 -47.5t162 -135.5q68 -88 104 -212.5t36 -282.5q0 -191 -54 -326q-53 -135 -174 -245h238v-211h-471v268q81 80 120 196q39 117 39 287q0 210 -56 327 q-56 116 -159 116q-101 0 -158 -116q-57 -117 -57 -327q0 -170 40 -287q17 -51 46 -101.5t76 -94.5v-268h-473v211z" />
+<glyph unicode="&#x3aa;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x3ab;" d="M321 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM716 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM459 534q0 117 -16.5 227.5t-44 201t-63.5 154t-75 86.5q-17 10 -44.5 18t-60 12.5t-67 3.5t-64.5 -8 v264q16 6 42 8.5t56.5 2t63.5 -4t65 -9.5q65 -14 119.5 -43t98 -80t75.5 -127t52 -183q106 377 344 433q101 24 175 -23q50 -31 72 -77t26 -94.5t-6.5 -93t-25.5 -72.5q-17 -32 -41 -48t-50.5 -19.5t-53 5.5t-48.5 28t-37.5 46t-19.5 61q-92 -136 -134.5 -301.5 t-42.5 -367.5v-534h-295v534z" />
+<glyph unicode="&#x3ac;" d="M752 1671h282l-368 -376h-197zM1062 0q-159 0 -240 84q-6 6 -13.5 15t-9.5 14q-12 -15 -25 -30t-25.5 -28t-23 -23.5t-17.5 -15.5q-19 -14 -55.5 -25.5t-84 -16.5t-102 -1t-108.5 20.5t-104 48t-88 81.5q-56 73 -84 185t-28 251q0 153 33 262t92.5 180t141 106t179.5 38 q114 4 199.5 -31.5t133.5 -101.5l36 108h282l-193 -577l27 -153q28 -165 97 -165h82v-225h-102zM695 589l-30 163q-14 76 -49 112.5t-77.5 40t-85 -21t-72.5 -69.5q-58 -89 -58 -262q0 -91 15 -151.5t43 -101.5q27 -39 60 -58.5t64 -20.5t55.5 15.5t35.5 49.5z" />
+<glyph unicode="&#x3ad;" d="M752 1666h282l-368 -376h-197zM672 -22q-261 0 -392 85t-131 246q0 124 78.5 198.5t233.5 96.5q-139 20 -209 83.5t-70 165.5q0 66 31 119.5t93.5 90.5t156.5 57t220 20q42 0 76.5 -2.5t70.5 -8t77 -15t95 -22.5v-215q-53 17 -97 28.5t-82 19t-72 10.5t-66 3 q-115 0 -173.5 -33.5t-58.5 -82.5t57 -80.5t162 -31.5h151v-223h-151q-61 0 -108 -13t-79.5 -35t-49.5 -51.5t-17 -62.5q0 -30 15 -56.5t50 -46t91 -30.5t139 -11q40 0 77 3t76 11.5t82.5 22.5t96.5 35v-219q-64 -18 -117 -29t-98 -17t-83.5 -8t-74.5 -2z" />
+<glyph unicode="&#x3ae;" d="M752 1673h282l-368 -376h-197zM780 682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-1153h-291v1108z" />
+<glyph unicode="&#x3af;" d="M752 1648h282l-368 -376h-197zM901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225h493v-763q0 -74 37 -107t121 -33h58v-225h-78z" />
+<glyph unicode="&#x3b0;" d="M752 1891h282l-368 -376h-197zM211 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM816 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165 v225h457v-755q0 -37 10 -63.5t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5t27 -140.5t10 -157.5q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
+<glyph unicode="&#x3b1;" d="M1062 0q-159 0 -240 84q-6 6 -13.5 15t-9.5 14q-12 -15 -25 -30t-25.5 -28t-23 -23.5t-17.5 -15.5q-19 -14 -55.5 -25.5t-84 -16.5t-102 -1t-108.5 20.5t-104 48t-88 81.5q-56 73 -84 185t-28 251q0 153 33 262t92.5 180t141 106t179.5 38q114 4 199.5 -31.5 t133.5 -101.5l36 108h282l-193 -577l27 -153q28 -165 97 -165h82v-225h-102zM695 589l-30 163q-14 76 -49 112.5t-77.5 40t-85 -21t-72.5 -69.5q-58 -89 -58 -262q0 -91 15 -151.5t43 -101.5q27 -39 60 -58.5t64 -20.5t55.5 15.5t35.5 49.5z" />
+<glyph unicode="&#x3b2;" d="M132 1113q0 229 108.5 342.5t318.5 113.5q102 0 180.5 -25.5t135.5 -68.5t93.5 -100t54 -120t18 -128.5t-14.5 -124.5t-44 -109t-71 -83q118 -41 171 -130.5t53 -240.5q0 -210 -98 -330t-300 -130q-96 -5 -173.5 18t-141.5 72v-495h-291zM422 402q33 -51 76 -88t89 -57.5 t90 -22t79 19.5t56.5 66t21.5 118q0 63 -17.5 106t-52 69t-87.5 36.5t-123 7.5v223q46 -2 81.5 16.5t59 50t36 72.5t13.5 84t-9.5 84t-33 73.5t-56 52.5t-78.5 20q-145 0 -145 -226v-705z" />
+<glyph unicode="&#x3b3;" d="M479 0l-233 752q-11 36 -26.5 61t-38.5 43q-15 12 -32 20.5t-31 8.5h-42v235h80q55 0 109.5 -20.5t102 -60.5t85.5 -98t61 -133l119 -394l243 706h297l-402 -1120v-426h-292v426z" />
+<glyph unicode="&#x3b4;" d="M618 -29q-119 0 -215.5 41t-164 117t-104 185t-36.5 246q0 134 35.5 238.5t104.5 189.5q28 34 52.5 55.5t36.5 21.5q-74 32 -109.5 86t-35.5 126q0 69 32 123t93 91.5t150.5 57.5t204.5 20q45 0 90.5 -3t87.5 -9q2 -1 5 -1t5 -1q16 -2 53.5 -10.5t98.5 -23.5v-215 q-2 1 -5 2t-20 6q-49 15 -87.5 25.5t-72.5 16.5t-66 8.5t-67 2.5q-32 0 -57.5 -2t-46 -6t-37.5 -10.5t-33 -15.5l-22 -15q-17 -13 -26 -30t-9 -42q0 -33 14 -51.5t37 -28.5t52 -13.5t60 -5.5q122 -9 218.5 -48.5t163 -110.5t102 -175.5t35.5 -242.5q0 -141 -36.5 -252.5 t-104 -188.5t-163 -117.5t-213.5 -40.5zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x3b5;" d="M672 -22q-261 0 -392 85t-131 246q0 124 78.5 198.5t233.5 96.5q-139 20 -209 83.5t-70 165.5q0 66 31 119.5t93.5 90.5t156.5 57t220 20q42 0 76.5 -2.5t70.5 -8t77 -15t95 -22.5v-215q-53 17 -97 28.5t-82 19t-72 10.5t-66 3q-115 0 -173.5 -33.5t-58.5 -82.5t57 -80.5 t162 -31.5h151v-223h-151q-61 0 -108 -13t-79.5 -35t-49.5 -51.5t-17 -62.5q0 -30 15 -56.5t50 -46t91 -30.5t139 -11q40 0 77 3t76 11.5t82.5 22.5t96.5 35v-219q-64 -18 -117 -29t-98 -17t-83.5 -8t-74.5 -2z" />
+<glyph unicode="&#x3b6;" d="M762 -201q35 0 57.5 8t36 21.5t19 31t5.5 36.5t-7.5 37.5t-22 33.5t-36.5 24t-52 9q-149 0 -260 39.5t-185.5 107.5t-112.5 160t-41 196.5t27.5 216.5t93.5 221t157 209t219 181h-471v225h876v-225q-610 -378 -610 -797q0 -297 307 -309q70 -3 128.5 -25t100.5 -63.5 t65 -101.5t23 -139q0 -74 -23 -133.5t-64.5 -101.5t-100 -64.5t-129.5 -22.5v225z" />
+<glyph unicode="&#x3b7;" d="M780 682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-1153h-291v1108z" />
+<glyph unicode="&#x3b8;" d="M617 -24q-119 0 -215.5 56t-164 159.5t-104 251.5t-36.5 333q0 184 36.5 332t104 252t163.5 159.5t215 55.5t215 -55.5t163.5 -159.5t104 -252.5t36.5 -333.5q0 -187 -36.5 -333t-102.5 -249q-68 -105 -163.5 -160.5t-215.5 -55.5zM839 887q-6 97 -22 180.5t-43 144.5 t-66 96t-92 35t-92 -35t-66 -96t-43 -144.5t-22 -180.5h446zM616 209q54 0 93.5 36t66.5 98t42 144t21 175h-446q6 -93 21 -175t42 -144t66.5 -98t93.5 -36z" />
+<glyph unicode="&#x3b9;" d="M901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225h493v-763q0 -74 37 -107t121 -33h58v-225h-78v0z" />
+<glyph unicode="&#x3ba;" d="M174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
+<glyph unicode="&#x3bb;" d="M496 1069l-41 119q-13 37 -27.5 62.5t-36.5 41.5t-54 22.5t-79 6.5h-112v235h150q91 0 161 -20t124 -61t93 -104.5t69 -150.5l415 -1220h-297l-224 655l-255 -655h-297z" />
+<glyph unicode="&#x3bc;" d="M174 1120h287v-680q0 -229 164 -229q161 0 161 229v680h289v-776q0 -69 14 -102q13 -31 44 -31q26 0 55 22v-217q-43 -23 -80 -34t-72 -11q-72 0 -117.5 37t-72.5 121q-37 -78 -92 -118t-125 -40q-116 0 -168 95l2 -494h-289v1548z" />
+<glyph unicode="&#x3bd;" d="M47 1120h306l223 -825q57 59 104.5 116.5t82 114.5t54 114.5t19.5 117.5q0 23 -4 48t-18 65q-12 34 -27 68.5t-32.5 67t-36.5 61.5t-38 52h307q33 -44 62 -96.5t50 -107.5t33 -109t12 -100q0 -61 -21 -126.5t-55.5 -131.5t-79.5 -130t-93.5 -122t-97 -108.5t-89.5 -88.5 h-356z" />
+<glyph unicode="&#x3be;" d="M752 -201q35 0 57.5 8t36 21.5t19 30t5.5 34.5q0 21 -6.5 39.5t-20.5 33t-36.5 23.5t-54.5 11q-17 1 -51.5 1.5t-79.5 4t-97.5 13t-104.5 27.5t-100 46.5t-85 72t-59 103t-22 139.5q0 152 89.5 245t281.5 127q-156 19 -237 98.5t-81 200.5q0 45 12 81t38 66.5t68 56.5 t102 49h-247v225h876v-225q-278 0 -417.5 -63.5t-139.5 -180.5q0 -49 25.5 -86t80.5 -63t141.5 -40.5t208.5 -17.5v-223q-250 -4 -379.5 -65.5t-129.5 -182.5q0 -57 27.5 -91t71.5 -53t98.5 -27t109.5 -13q155 -15 236 -93.5t81 -226.5q0 -79 -23 -140.5t-64.5 -104 t-100 -64.5t-129.5 -22v225z" />
+<glyph unicode="&#x3bf;" d="M616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147 t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x3c0;" d="M1018 -39q-43 0 -76 4.5t-62 12.5q-33 10 -53 22.5t-34 26.5t-25 32t-19 43q-14 45 -14 131v658h-274v-891h-285v891h-162v209h1168v-209h-162v-529q0 -37 2 -63.5t5 -45.5t7.5 -31.5t10.5 -19.5q24 -32 94 -32h23.5t18.5 1l33 3v-188q-41 -13 -93 -19q-25 -3 -51.5 -4.5 t-51.5 -1.5z" />
+<glyph unicode="&#x3c1;" d="M150 552q0 301 125.5 448t381.5 147q135 0 227.5 -39t150 -113t83 -181t25.5 -242q0 -147 -27.5 -259.5t-79.5 -188.5t-127 -114.5t-170 -38.5q-52 0 -94.5 11.5t-78 35t-66 58.5t-58.5 82v-584h-292v978zM647 215q95 0 149 92q27 46 40.5 109.5t13.5 143.5 q0 82 -14 146.5t-40 109t-63.5 68t-85.5 23.5t-86 -23.5t-64.5 -68.5t-40.5 -109t-14 -145t14 -145t40.5 -109t64.5 -68.5t86 -23.5z" />
+<glyph unicode="&#x3c2;" d="M749 -201q35 0 57.5 8t36 21.5t19 30.5t5.5 36q0 41 -26.5 70.5t-91.5 34.5q-22 2 -59 3t-82 6t-95 16.5t-99 35.5t-93.5 62t-78.5 96.5t-54 139t-20 188.5q0 145 38 257.5t109 189t173.5 116t231.5 39.5q92 0 174.5 -20.5t166.5 -65.5v-268q-64 55 -140.5 84.5 t-158.5 29.5q-144 0 -220.5 -90.5t-76.5 -267.5q0 -72 12.5 -123.5t34 -86.5t50 -56.5t60 -33.5t64 -17.5t63.5 -8.5q72 -8 130.5 -29.5t100 -59.5t64 -94.5t22.5 -134.5q0 -80 -23 -141.5t-64.5 -104.5t-100 -65t-129.5 -22v225z" />
+<glyph unicode="&#x3c3;" d="M594 -29q-117 0 -212.5 41t-163 117.5t-104 185.5t-36.5 244q0 126 33 229.5t98 177t162 114t225 40.5h552v-225h-212q48 -36 82 -73t55.5 -79.5t31.5 -93t10 -112.5q0 -123 -36.5 -227t-104.5 -179.5t-164 -117.5t-216 -42zM594 209q54 0 96.5 25.5t72 69.5t44.5 103 t15 127q0 45 -8 83.5t-28.5 74t-55.5 68.5t-89 68q-21 14 -51.5 31t-55.5 28q-66 -19 -103 -75q-29 -43 -44.5 -106t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t92.5 -23.5z" />
+<glyph unicode="&#x3c4;" d="M901 0q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v516h-335v225h962v-225h-335v-530q0 -75 37 -107.5t121 -32.5h58v-225h-78v0z" />
+<glyph unicode="&#x3c5;" d="M610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165v225h457v-755q0 -37 10 -63.5t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5t27 -140.5t10 -157.5 q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
+<glyph unicode="&#x3c6;" d="M471 0q-203 33 -304.5 170.5t-101.5 394.5q0 104 16 186.5t43 144.5t63.5 105.5t78.5 70.5t86.5 38.5t87.5 9.5v-229q-11 0 -30 -25.5t-36 -59.5q-42 -86 -42 -213q0 -118 34.5 -202t104.5 -135v392q0 242 84 362t241 120q80 0 148.5 -33t118 -101.5t77.5 -174.5t28 -251 q0 -260 -98 -401t-307 -169v-426h-292v426zM763 256q42 25 69.5 68t43.5 95t22 108.5t5 109.5t-8 97t-17 72q-12 33 -28.5 47t-32.5 11q-29 -5 -41.5 -60.5t-12.5 -155.5v-392z" />
+<glyph unicode="&#x3c7;" d="M468 348l-182 404q-33 74 -72 104q-15 12 -32 20.5t-31 8.5h-79v235h117q50 0 98 -15.5t94 -51.5t89.5 -96t83.5 -149l67 -148l225 460h297l-379 -775l182 -403q18 -40 35 -63.5t37 -40.5q15 -12 32 -20.5t31 -8.5h80v-235h-118q-54 0 -102.5 16t-93.5 53t-87 96.5 t-82 146.5l-67 146l-224 -458h-297z" />
+<glyph unicode="&#x3c8;" d="M471 0q-402 64 -402 588v532h292v-525q0 -290 110 -370v895h292v-895q110 101 110 370v525h292v-532q0 -537 -402 -588v-426h-292v426z" />
+<glyph unicode="&#x3c9;" d="M393 -29q-66 0 -122 23t-91 60q-39 41 -64.5 113t-38.5 163t-13 194t12 208t35.5 204.5t59.5 183.5h262q-23 -81 -39.5 -152.5t-27 -142t-15.5 -143.5t-5 -156q0 -49 1.5 -95.5t5 -85t8.5 -67t11 -41.5q12 -26 44 -28q72 0 75 456h252q3 -456 75 -456q32 2 44 28 q6 13 11 41.5t8.5 67t5 85t1.5 95.5q0 83 -5 156t-15.5 143.5t-27 142t-39.5 152.5h262q36 -85 60 -186t35.5 -206t11 -208t-13.5 -193t-38.5 -161t-63.5 -112q-38 -40 -95 -61.5t-119 -21.5q-173 0 -223 179q-50 -179 -224 -179z" />
+<glyph unicode="&#x3ca;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM901 -8q-126 0 -209 17.5t-132 61t-69 116.5t-20 184v524h-201v225h493v-763q0 -74 37 -107t121 -33 h58v-225h-78z" />
+<glyph unicode="&#x3cb;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165v225h457v-755q0 -37 10 -63.5 t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5t27 -140.5t10 -157.5q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
+<glyph unicode="&#x3cc;" d="M752 1673h282l-368 -376h-197zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110 t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x3cd;" d="M752 1648h282l-368 -376h-197zM610 0q-121 0 -193.5 29.5t-111.5 80.5t-51.5 120t-12.5 149v516h-165v225h457v-755q0 -37 10 -63.5t27 -43.5t40.5 -25t49.5 -8q94 0 148.5 101.5t56.5 313.5q1 69 -5 137t-20.5 130.5t-39.5 117t-63 95.5h291q27 -37 51 -89.5t41 -117.5 t27 -140.5t10 -157.5q0 -140 -31 -253.5t-97 -193.5t-170 -124t-249 -44z" />
+<glyph unicode="&#x3ce;" d="M752 1646h282l-368 -376h-197zM393 -29q-66 0 -122 23t-91 60q-39 41 -64.5 113t-38.5 163t-13 194t12 208t35.5 204.5t59.5 183.5h262q-23 -81 -39.5 -152.5t-27 -142t-15.5 -143.5t-5 -156q0 -49 1.5 -95.5t5 -85t8.5 -67t11 -41.5q12 -26 44 -28q72 0 75 456h252 q3 -456 75 -456q32 2 44 28q6 13 11 41.5t8.5 67t5 85t1.5 95.5q0 83 -5 156t-15.5 143.5t-27 142t-39.5 152.5h262q36 -85 60 -186t35.5 -206t11 -208t-13.5 -193t-38.5 -161t-63.5 -112q-38 -40 -95 -61.5t-119 -21.5q-173 0 -223 179q-50 -179 -224 -179z" />
+<glyph unicode="&#x3f4;" d="M616 -29q-260 0 -392 195t-132 579q0 383 132.5 579t391.5 196q260 0 392.5 -196t132.5 -579q0 -382 -132.5 -578t-392.5 -196zM828 911q-7 74 -19.5 137t-36.5 109t-61.5 72t-94.5 26t-94 -25.5t-60.5 -71t-36.5 -109t-20 -138.5h423zM616 236q57 0 96 27t64 79.5 t38 130t18 178.5h-431q4 -100 17 -177.5t38 -130t64 -80t96 -27.5z" />
+<glyph unicode="&#x400;" d="M304 1850h284l199 -264h-197zM158 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x401;" d="M352 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM747 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM158 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x402;" d="M565 -199h136q49 0 83.5 13t56 42t31 75t9.5 112v461q0 121 -35 173q-22 37 -119 49l-41 3q-70 0 -142 -29l-34 -16q-11 -7 -17 -12.5t-11 -13.5q-23 -32 -34 -82.5t-11 -112.5v-463h-291v1347h-180v209h964v-209h-493v-514q17 49 59 77l47 31q31 20 79.5 30.5 t124.5 17.5q31 3 59 3q61 0 119 -13.5t103 -39.5q37 -21 63 -53q38 -47 59.5 -126t21.5 -188v-529q0 -126 -22 -214.5t-69 -145t-120.5 -82t-177.5 -25.5h-218v225z" />
+<glyph unicode="&#x403;" d="M699 1899h284l-286 -264h-197zM182 1493h930v-260h-635v-1233h-295v1493z" />
+<glyph unicode="&#x404;" d="M739 -29q-150 0 -265 50.5t-193 148.5t-118.5 243t-40.5 333t40.5 332.5t118.5 242.5t193 148.5t265 50.5q97 0 173 -19.5t139 -52.5v-328q-27 25 -59 49.5t-69.5 43.5t-79.5 30.5t-89 11.5q-77 0 -133 -31t-94.5 -83.5t-60.5 -121.5t-30 -144h572v-260h-572 q7 -73 30 -141.5t62 -121t95.5 -84.5t131.5 -32q149 0 296 135v-328q-66 -34 -142 -53t-170 -19z" />
+<glyph unicode="&#x405;" d="M584 -29q-123 0 -231.5 25.5t-217.5 79.5v305q115 -83 226.5 -124.5t214.5 -41.5q115 0 175 48.5t60 135.5q0 72 -40.5 122t-115.5 79l-145 55q-109 41 -182 84t-117.5 92.5t-63 109t-18.5 134.5q0 107 33.5 190t96.5 139.5t153 86t204 29.5q103 0 205.5 -23.5 t204.5 -69.5v-288q-96 67 -193 102t-194 35q-108 0 -164.5 -43t-56.5 -121q0 -64 42 -104q20 -20 59.5 -41t113.5 -49l127 -48q93 -35 159 -78.5t108.5 -99t62.5 -123.5t20 -152q0 -224 -135 -335t-391 -111z" />
+<glyph unicode="&#x406;" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x407;" d="M331 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x408;" d="M533 -29q-53 0 -103 5.5t-101.5 17.5t-105.5 31.5t-114 48.5v342q87 -88 183.5 -134t200.5 -46q114 0 167 58.5t53 184.5v754h-361v260h656v-1014q0 -133 -27.5 -229t-85 -158t-147.5 -91.5t-215 -29.5z" />
+<glyph unicode="&#x409;" d="M0 250h6q56 0 91.5 14t57 41.5t32 69t16.5 96.5q3 29 5.5 72.5t4 112t2.5 168t1 241.5v428h616v-580h22q37 0 79 -12t84.5 -36.5t81.5 -61.5t68.5 -87.5t47.5 -115t18 -143.5q0 -119 -39 -205t-96.5 -142t-123.5 -83t-120 -27h-262v1233h-136v-176q0 -181 -1.5 -330 t-12.5 -266.5t-36 -204t-73 -143.5q-95 -113 -300 -113h-33v250zM840 236q18 0 44.5 11.5t50.5 37.5t41 68t17 104t-17 104t-41 68t-50.5 37.5t-44.5 11.5h-8v-442h8z" />
+<glyph unicode="&#x40a;" d="M30 1493h240v-569h322v569h240v-580h22q37 0 79 -12t84.5 -36.5t81.5 -62t68.5 -88t47.5 -115t18 -142.5q0 -119 -39 -205t-96.5 -142t-123.5 -83t-120 -27h-262v664h-322v-664h-240v1493zM840 236q18 0 44.5 11.5t50.5 37.5t41 68t17 104t-17 104t-41 68t-50.5 37.5 t-44.5 11.5h-8v-442h8z" />
+<glyph unicode="&#x40b;" d="M156 1347h-190v209h964v-209h-483v-514q1 4 5.5 15.5t16 26.5t31.5 32.5t52 34.5q18 10 37 17t42.5 12.5t54 9.5t71.5 8q31 3 59 3q60 0 118 -13.5t104 -39.5q37 -21 63 -53q38 -47 59.5 -126t21.5 -188v-572h-291v504q0 121 -35 173q-22 37 -119 49l-41 3 q-70 0 -142 -29l-34 -16q-11 -7 -17 -12.5t-11 -13.5q-23 -32 -34 -82.5t-11 -112.5v-463h-291v1347z" />
+<glyph unicode="&#x40c;" d="M689 1850h284l-286 -264h-197zM107 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
+<glyph unicode="&#x40d;" d="M314 1850h284l199 -264h-197zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
+<glyph unicode="&#x40e;" d="M626 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM195 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
+<glyph unicode="&#x40f;" d="M487 0h-350v1493h295v-1233h369v1233h295v-1493h-350v-322h-259v322z" />
+<glyph unicode="&#x410;" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x411;" d="M152 1493h930v-260h-635v-299h110q154 0 264 -26.5t180.5 -83.5t103 -145.5t32.5 -211.5t-32.5 -211.5t-103 -145.5t-180.5 -83.5t-264 -26.5h-405v1493zM568 248q72 0 122 11.5t81 37.5t45 68t14 102t-14 102t-45 68t-81 37.5t-122 11.5h-121v-438h121z" />
+<glyph unicode="&#x412;" d="M125 1495h481q500 0 500 -376q0 -146 -73.5 -226.5t-217.5 -93.5q176 -18 260 -116.5t84 -275.5q0 -107 -31.5 -184t-99 -126.5t-172 -73t-250.5 -23.5h-481v1495zM606 913q56 0 95.5 9.5t64 30t36 53t11.5 78.5q0 93 -48.5 134.5t-158.5 41.5h-196v-347h196zM606 236 q70 0 118.5 11t78.5 36.5t43.5 66t13.5 99.5q0 61 -14 104.5t-44.5 71t-79 40.5t-116.5 13h-196v-442h196z" />
+<glyph unicode="&#x413;" d="M182 1493h930v-260h-635v-1233h-295v1493z" />
+<glyph unicode="&#x414;" d="M40 260h100q12 0 24 12t21.5 31t15.5 43t6 49v102v996h848v-1233h137v-582h-255v322h-642v-322h-255v582zM760 260v973h-258v-736q0 -141 -30 -237h288z" />
+<glyph unicode="&#x415;" d="M158 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x416;" d="M271 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l258 -886h-250l-157 537l-77 -181v-356h-240v356l-77 181l-157 -537h-250z" />
+<glyph unicode="&#x417;" d="M554 -29q-110 0 -219.5 19t-209.5 55v274q48 -25 102 -43t108 -30t106 -17.5t97 -5.5q145 0 212 56.5t67 155.5q0 107 -69.5 170t-198.5 63h-158v260h158q111 0 171 43.5t60 125.5q0 81 -60.5 127t-175.5 46q-78 0 -174.5 -21t-199.5 -61v268q103 31 202.5 47.5 t193.5 16.5q118 0 210.5 -26.5t156.5 -76.5t98 -121.5t34 -160.5q0 -137 -76 -220.5t-217 -109.5q77 -14 138 -44.5t103 -79.5t64.5 -116t22.5 -153q0 -215 -138.5 -328t-407.5 -113z" />
+<glyph unicode="&#x418;" d="M119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
+<glyph unicode="&#x419;" d="M616 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
+<glyph unicode="&#x41a;" d="M107 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
+<glyph unicode="&#x41b;" d="M26 265h10q101 0 147 50.5t50 157.5q3 83 5.5 154t4 139.5t2.5 140.5t1 158v428h870v-1493h-295v1233h-280v-176q0 -181 -1.5 -330t-12.5 -266.5t-36 -204t-73 -143.5q-95 -113 -300 -113h-92v265z" />
+<glyph unicode="&#x41c;" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
+<glyph unicode="&#x41d;" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
+<glyph unicode="&#x41e;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389 q52 -121 165 -121z" />
+<glyph unicode="&#x41f;" d="M137 1493h959v-1493h-295v1233h-369v-1233h-295v1493z" />
+<glyph unicode="&#x420;" d="M162 1493h405q154 0 264 -26.5t180.5 -83.5t103 -145.5t32.5 -211.5t-32.5 -211.5t-103 -145.5t-180.5 -83.5t-264 -26.5h-110v-559h-295v1493zM578 807q72 0 122 11.5t81 37.5t45 68t14 102t-14 102t-45 68t-81 37.5t-122 11.5h-121v-438h121z" />
+<glyph unicode="&#x421;" d="M300 1321q75 93 182.5 143.5t244.5 54.5q15 2 15 16v210q0 10 10 10h308q10 0 10 -10v-625q-76 70 -147.5 102.5t-150.5 32.5q-160 0 -242 -128t-82 -382q0 -253 82 -381t242 -128q79 0 150.5 32.5t147.5 102.5v-328q-139 -72 -313 -72q-149 0 -264 50t-193 149 q-159 200 -159 575q0 376 159 576z" />
+<glyph unicode="&#x422;" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
+<glyph unicode="&#x423;" d="M195 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
+<glyph unicode="&#x424;" d="M489 132q-104 9 -188.5 63.5t-144.5 140t-93 195.5t-33 230q0 119 32.5 229t92.5 196t145 141t189 64v102h255v-102q103 -9 188 -64t145 -140.5t93 -196t33 -230.5t-33 -229.5t-93 -195t-145 -140t-188 -63.5v-132h-255v132zM489 1136q-57 -12 -96.5 -45.5t-63.5 -83 t-34.5 -112t-10.5 -132.5q0 -65 9.5 -127.5t33 -113.5t63 -87t99.5 -48v749zM744 387q57 12 96.5 45t63.5 82.5t34.5 112t10.5 133.5q0 66 -9.5 128.5t-33 113.5t-63 86.5t-99.5 47.5v-749z" />
+<glyph unicode="&#x425;" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
+<glyph unicode="&#x426;" d="M935 0h-803v1493h295v-1233h369v1233h295v-1233h137v-582h-293v322z" />
+<glyph unicode="&#x427;" d="M828 766q-30 -77 -112.5 -118t-227.5 -41q-107 0 -182 24t-122.5 75t-69 130.5t-21.5 190.5v529h291v-461q0 -72 17.5 -116t46.5 -68t67 -32.5t79 -8.5q70 0 115 17.5t71.5 51.5t37 83.5t10.5 113.5v420h291v-1556h-291v766z" />
+<glyph unicode="&#x428;" d="M78 1494h240v-1234h178v1233h240v-1234h178v1234h240v-1493h-1076v1494z" />
+<glyph unicode="&#x429;" d="M984 0h-902v1493h240v-1232h178v1231h240v-1232h178v1232h240v-1232h66v-582h-240v322z" />
+<glyph unicode="&#x42a;" d="M280 1284h-250v209h545v-580h30q153 0 263 -26.5t180.5 -82.5t103.5 -142.5t33 -205.5q0 -117 -32.5 -203t-102 -142.5t-179.5 -83.5t-266 -27h-325v1284zM616 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-41v-442h41z" />
+<glyph unicode="&#x42b;" d="M40 1493h255v-580h10q131 0 231.5 -26.5t168 -82.5t102 -142.5t34.5 -205.5q0 -235 -134.5 -345.5t-401.5 -110.5h-265v1493zM938 1493h255v-1493h-255v1493zM316 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-21v-442h21z" />
+<glyph unicode="&#x42c;" d="M164 1493h295v-580h110q153 0 263 -26.5t180.5 -82.5t103.5 -142.5t33 -205.5q0 -117 -32.5 -203t-102 -142.5t-179.5 -83.5t-266 -27h-405v1493zM580 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-121v-442h121z" />
+<glyph unicode="&#x42d;" d="M505 -29q-89 0 -165.5 18t-147.5 54v328q145 -135 304 -135q271 0 311 379h-542v260h542q-41 380 -312 380q-158 0 -303 -135v328q135 72 311 72q150 0 265.5 -50.5t193.5 -148.5t118.5 -242.5t40.5 -332.5t-40.5 -333t-118.5 -243t-193 -148.5t-264 -50.5z" />
+<glyph unicode="&#x42e;" d="M820 -29q-84 0 -157.5 47t-125.5 149q-108 194 -125 484h-111v-651h-295v1493h295v-582h115q7 69 21.5 140.5t38 139.5t57.5 127.5t79 104.5t102.5 71t128.5 26q97 0 170.5 -50t120.5 -146q24 -48 42.5 -111.5t31 -138t19 -158t5.5 -171.5q-2 -187 -33 -331.5 t-85.5 -242.5t-129.5 -149t-164 -51zM739 356q18 -54 41 -82t47 -28.5t46 27t37 83.5q13 41 22.5 100t14.5 127.5t5 143.5t-4 148t-13.5 139.5t-24.5 119.5q-17 60 -38 90.5t-50 30.5t-49.5 -31.5t-33.5 -89.5q-21 -77 -31.5 -173t-10.5 -221t10.5 -222.5t31.5 -161.5z" />
+<glyph unicode="&#x42f;" d="M359 644q-39 20 -85 52.5t-86 84t-66.5 124t-26.5 173.5q0 216 136.5 315.5t402.5 99.5h476v-1493h-295v590h-162l-299 -590h-321zM815 838v407h-189q-111 0 -168.5 -47t-57.5 -156t57.5 -156.5t168.5 -47.5h189z" />
+<glyph unicode="&#x430;" d="M494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14 t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290 q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#x431;" d="M636 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244v41.5t-1 20.5l-17 167q-8 74 -11.5 119.5t-3.5 71.5q0 11 0.5 24t1.5 21q7 62 26 132.5t56 138t93.5 126t137.5 96.5q41 19 86 31.5t100 20.5t122.5 13.5t154.5 10.5q18 1 29.5 2.5t20.5 3.5t17 4.5t19 7.5 l110 -212q-19 -7 -42.5 -11.5t-43.5 -6.5l-290 -24q-63 -5 -104 -17t-67 -28q-30 -17 -61.5 -46t-59 -65t-47.5 -76t-26 -80q64 51 143 76.5t173 25.5q120 0 216.5 -41t164 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM636 209 q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x432;" d="M139 1120h468q123 0 213.5 -17t149 -52.5t87 -91t28.5 -132.5q0 -47 -10.5 -83t-30.5 -63.5t-50.5 -47t-69.5 -34.5q104 -29 157 -102t53 -179q0 -154 -117 -236t-361 -82h-517v1120zM587 698q72 0 114 6t63 18q17 10 28 28t11 44q0 23 -9.5 44t-29.5 35q-21 14 -63 21 t-114 7h-156v-203h156zM598 219q126 0 184.5 30.5t58.5 100.5t-58.5 99.5t-184.5 29.5h-167v-260h167z" />
+<glyph unicode="&#x433;" d="M262 1120h799v-219h-508v-901h-291v1120z" />
+<glyph unicode="&#x434;" d="M68 219h76q8 0 21 10.5t25 32.5q6 10 10.5 24.5t8 34.5t5.5 48t2 66v685h847v-901h123v-505h-219v286h-680v-286h-219v505zM772 219v682h-265v-442q0 -147 -31 -240h296z" />
+<glyph unicode="&#x435;" d="M679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM854 685 q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x436;" d="M268 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l254 -694h-255l-156 427l-72 -122v-305h-240v305l-72 122l-156 -427h-255z" />
+<glyph unicode="&#x437;" d="M522 -22q-47 0 -89 3t-84.5 10.5t-87 20t-96.5 32.5v236q49 -24 92 -39.5t86.5 -24.5t91.5 -12t108 -3q55 0 102 3.5t81 15.5t53 35.5t19 63.5q0 45 -23 73t-57.5 43.5t-74.5 21t-75 5.5h-163v219h137q42 0 83 6t73.5 20.5t52.5 38.5t20 59q0 123 -255 123 q-161 0 -314 -52v223q54 16 147 32t210 16q124 0 216.5 -22.5t154.5 -64t93 -101t31 -134.5q0 -58 -17 -101t-44 -73t-60 -49t-64 -29q40 -11 80 -36t71.5 -61.5t51 -84.5t19.5 -104q0 -78 -40 -136t-114.5 -96.5t-179.5 -57.5t-235 -19z" />
+<glyph unicode="&#x438;" d="M152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
+<glyph unicode="&#x439;" d="M616 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
+<glyph unicode="&#x43a;" d="M174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
+<glyph unicode="&#x43b;" d="M39 240h10q52 0 86 7.5t55.5 29.5t32.5 60.5t17 101.5q3 29 4.5 62t3 67.5t2 68t0.5 63.5v420h849v-1120h-291v901h-267v-197q0 -73 -3 -155.5t-14 -162t-32.5 -150.5t-58.5 -121q-45 -60 -116 -87.5t-183 -27.5h-95v240z" />
+<glyph unicode="&#x43c;" d="M86 1120h352l178 -655l178 655h352v-1120h-240l-2 823l-172 -653h-232l-174 653v-823h-240v1120z" />
+<glyph unicode="&#x43d;" d="M172 1120h291v-381h317v381h291v-1120h-291v520h-317v-520h-291v1120z" />
+<glyph unicode="&#x43e;" d="M616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147 t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x43f;" d="M172 1120h899v-1120h-291v901h-317v-901h-291v1120z" />
+<glyph unicode="&#x440;" d="M150 1120h263l29 -168q45 95 118.5 145t181.5 50q94 0 168.5 -39.5t126.5 -114.5t79 -184.5t27 -249.5q0 -142 -28 -251.5t-80.5 -184.5t-127.5 -113.5t-169 -38.5q-98 0 -168 44.5t-128 142.5v-584h-292v1546zM647 215q48 0 85.5 23.5t63.5 68.5t40 109t14 145t-14 145 t-40 109t-63.5 68.5t-85.5 23.5t-86 -23.5t-64.5 -68.5t-40.5 -109t-14 -145t14 -145t40.5 -109t64.5 -68.5t86 -23.5z" />
+<glyph unicode="&#x441;" d="M295 992q72 76 175 116.5t231 40.5q20 0 56 -2h2q14 0 14 14v214q0 10 10 10h248q10 0 10 -10v-580q-64 55 -141 84.5t-158 29.5q-144 0 -220.5 -90.5t-76.5 -260.5q0 -169 76.5 -258t223.5 -89q167 0 296 115v-269q-149 -86 -339 -86q-130 0 -233 40t-175 116t-109 185 t-37 246q0 138 37.5 248t109.5 186z" />
+<glyph unicode="&#x442;" d="M472 901h-308v219h907v-219h-308v-901h-291v901z" />
+<glyph unicode="&#x443;" d="M137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
+<glyph unicode="&#x444;" d="M496 -29q-74 7 -148 49.5t-133.5 117t-97 180.5t-37.5 241t37.5 241t97 180.5t133.5 116.5t148 50v409h240v-409q75 -8 149.5 -50t134.5 -116.5t97 -180.5t37 -241t-37 -241t-97 -180.5t-134.5 -117t-149.5 -49.5v-397h-240v397zM496 909q-35 -9 -67 -32.5t-56 -66 t-38.5 -104.5t-14.5 -147t14.5 -147t38.5 -104.5t56 -66t67 -32.5v700zM736 209q36 9 68.5 32.5t56.5 66t38.5 104.5t14.5 147t-14.5 147t-38.5 104.5t-56.5 66t-68.5 32.5v-700z" />
+<glyph unicode="&#x445;" d="M469 584l-381 536h342l186 -334l187 334h342l-377 -536l410 -584h-342l-220 377l-219 -377h-342z" />
+<glyph unicode="&#x446;" d="M998 0h-836v1120h291v-901h317v901h291v-901h156v-505h-219v286z" />
+<glyph unicode="&#x447;" d="M760 416h-190q-98 0 -179 17.5t-139.5 62t-91 121.5t-32.5 196v307h299v-337q0 -45 10 -74.5t35.5 -46t69.5 -23t111 -6.5h107v488h290v-1121h-290v416z" />
+<glyph unicode="&#x448;" d="M78 1120h240v-901h178v901h240v-901h178v901h240v-1120h-1076v1120z" />
+<glyph unicode="&#x449;" d="M1014 0h-943v1120h240v-901h178v901h240v-901h178v901h240v-901h86v-505h-219v286z" />
+<glyph unicode="&#x44a;" d="M301 895h-251v225h542v-422h127q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-418v895zM665 219q111 0 163.5 30.5t52.5 100.5t-52.5 99.5t-163.5 29.5h-73v-260h73z" />
+<glyph unicode="&#x44b;" d="M31 1120h291v-422h21q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-312v1120zM908 1120h293v-1120h-293v1120zM349 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-27v-260h27z" />
+<glyph unicode="&#x44c;" d="M217 1120h291v-422h177q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-468v1120zM631 219q111 0 163.5 30.5t52.5 100.5t-52.5 99.5t-163.5 29.5h-123v-260h123z" />
+<glyph unicode="&#x44d;" d="M532 -29q-193 0 -339 86v269q68 -59 137.5 -88t153.5 -29q119 0 197.5 60.5t101.5 188.5h-477v219h472q-52 232 -287 232q-166 0 -298 -114v268q156 84 341 84q130 0 232.5 -40t173.5 -115.5t108.5 -185t37.5 -247.5t-37 -247t-108 -184.5t-174 -116t-235 -40.5z" />
+<glyph unicode="&#x44e;" d="M807 -29q-71 0 -134 32.5t-111.5 97t-80 159.5t-39.5 220h-102v-480h-240v1120h240v-431h107q16 112 49 199.5t81 146.5t110.5 88t136.5 24t143 -44t122.5 -111.5t86 -180t32.5 -249.5q0 -148 -34.5 -259t-91 -184.5t-128.5 -110.5t-147 -37zM828 209q22 0 48 21.5 t46 64.5q22 46 32 110.5t10 155.5q0 104 -12 167.5t-34 102.5q-8 14 -19 28t-23.5 25t-25.5 18t-26 7q-22 0 -46.5 -21.5t-44.5 -56.5q-26 -47 -36.5 -114.5t-10.5 -175.5q0 -70 7.5 -133.5t37.5 -117.5q23 -42 50 -61.5t47 -19.5z" />
+<glyph unicode="&#x44f;" d="M365 488q-44 21 -84 49.5t-70.5 67.5t-48.5 89.5t-18 115.5q0 79 29 137t91 96.5t159 57.5t233 19h424v-1120h-291v429h-121l-261 -429h-339zM789 648v261h-173q-40 0 -75 -7t-60.5 -23t-40 -40.5t-14.5 -59.5t14.5 -60t40 -40.5t60.5 -23t75 -7.5h173z" />
+<glyph unicode="&#x450;" d="M238 1673h282l283 -376h-197zM679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269 q-100 -42 -207 -63t-216 -21zM854 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x451;" d="M370 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM765 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5 t169 118.5t228 41.5q121 0 217 -38t163 -110t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM854 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x452;" d="M575 -199q83 12 139 51t90 101t48.5 144.5t14.5 181.5q0 84 -10 138t-30 84.5t-51 42t-73 11.5q-112 0 -159 -66t-47 -200v-289h-291v895h-171v225h171v436h291v-436h437v-225h-437v-295q30 94 107 144.5t200 50.5q78 0 143 -24t112 -83t73 -157.5t26 -247.5 q0 -132 -25.5 -250t-90.5 -211.5t-178.5 -157.5t-288.5 -88v225z" />
+<glyph unicode="&#x453;" d="M792 1638h282l-368 -376h-197zM262 1120h799v-219h-508v-901h-291v1120z" />
+<glyph unicode="&#x454;" d="M697 -29q-131 0 -234 40t-174 116t-108.5 184.5t-37.5 246.5q0 139 38 248.5t109 185.5t174 116.5t232 40.5q91 0 173.5 -20.5t166.5 -65.5v-268q-64 55 -140 84.5t-160 29.5q-71 0 -121 -20.5t-83 -53.5t-52.5 -74.5t-28.5 -83.5h412v-209h-417q8 -51 27.5 -98t54.5 -82 t87 -56t125 -21q165 0 296 115v-269q-149 -86 -339 -86z" />
+<glyph unicode="&#x455;" d="M613 -29q-103 0 -208.5 17.5t-214.5 52.5v256q97 -55 197 -84t201 -29q203 0 203 124q0 28 -9.5 45t-28.5 32q-23 18 -64.5 34t-113.5 32l-81 18q-161 36 -241.5 116t-80.5 216q0 168 117.5 257t333.5 89q91 0 184.5 -15.5t183.5 -46.5v-256q-164 105 -346 105 q-97 0 -146.5 -29t-49.5 -77q0 -47 50.5 -78.5t163.5 -58.5l11 -3l84 -20q158 -38 233.5 -121.5t75.5 -226.5q0 -349 -454 -349z" />
+<glyph unicode="&#x456;" d="M441 1323q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#x457;" d="M271 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM666 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55 h234v-225h-316z" />
+<glyph unicode="&#x458;" d="M614 1323q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM170 -199h234q49 0 83.5 13t56 42t31 75t9.5 112v852h-297v225h590v-1077q0 -126 -21.5 -214.5t-69 -145t-121.5 -82t-179 -25.5h-316v225z" />
+<glyph unicode="&#x459;" d="M11 240h10q52 0 86 7.5t55.5 29.5t32.5 60.5t17 101.5q3 29 4.5 62t3 67.5t2 68t0.5 63.5v420h598v-422h11q79 0 152 -21.5t128.5 -64.5t88.5 -108.5t33 -153.5t-33 -154t-88.5 -109.5t-128.5 -65t-152 -21.5h-251v901h-118v-197q0 -73 -3 -155.5t-14 -162t-32.5 -150.5 t-58.5 -121q-45 -60 -116 -87.5t-183 -27.5h-44v240zM837 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-17v-260h17z" />
+<glyph unicode="&#x45a;" d="M41 1120h240v-381h299v381h240v-422h11q79 0 152 -21.5t128.5 -64.5t88.5 -108.5t33 -153.5t-33 -154t-88.5 -109.5t-128.5 -65t-152 -21.5h-251v520h-299v-520h-240v1120zM837 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-17v-260h17 z" />
+<glyph unicode="&#x45b;" d="M211 895h-171v225h171v436h291v-436h437v-225h-437v-295q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-375h-291v330q0 118 -33.5 171.5t-106.5 53.5q-86 0 -131.5 -68t-45.5 -198v-289h-291v895z" />
+<glyph unicode="&#x45c;" d="M752 1646h282l-368 -376h-197zM174 1120h293v-381l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1120z" />
+<glyph unicode="&#x45d;" d="M238 1646h282l283 -376h-197zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
+<glyph unicode="&#x45e;" d="M626 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5 h-242v223z" />
+<glyph unicode="&#x45f;" d="M511 0h-340v1120h291v-901h318v901h291v-1120h-340v-286h-220v286z" />
+<glyph unicode="&#x462;" d="M270 1124h-250v209h250v160h295v-160h323v-209h-323v-211h30q153 0 263 -26.5t180.5 -82.5t103.5 -142.5t33 -205.5q0 -117 -32.5 -203t-102 -142.5t-179.5 -83.5t-266 -27h-325v1124zM606 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37 t-127.5 11h-41v-442h41z" />
+<glyph unicode="&#x463;" d="M286 950h-251v225h251v381h291v-381h402v-225h-402v-252h127q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5t-143 -65t-190.5 -21.5h-418v950zM650 219q111 0 163.5 30.5t52.5 100.5t-52.5 99.5t-163.5 29.5h-73v-260h73z" />
+<glyph unicode="&#x472;" d="M616 -29q-122 0 -208 36.5t-144.5 97t-92.5 138.5t-51.5 160t-22.5 162.5t-5 146.5q0 336 84 528.5t264 252.5q81 27 177 27q261 0 392.5 -195t131.5 -582q0 -325 -93 -510.5t-271 -239.5q-72 -22 -161 -22zM828 911q-18 197 -76 276q-26 35 -60 51.5t-76 16.5 q-148 0 -193 -214q-10 -49 -18 -130h423zM617 236q57 0 95.5 27t63.5 79.5t38 130t18 178.5h-431q4 -100 17 -177.5t38.5 -130t64.5 -80t96 -27.5z" />
+<glyph unicode="&#x473;" d="M614 -29q-235 0 -376 159q-70 79 -105 186t-35 240q0 137 36.5 246.5t104 186t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-164 -117.5t-216.5 -41zM839 632q-6 57 -21.5 107t-42.5 88t-66.5 60t-92.5 22t-92 -22t-66 -60 t-42.5 -88t-21.5 -107h445zM616 209q53 0 90.5 20.5t63 53.5t40.5 73.5t22 81.5h-431q7 -41 22 -81.5t40.5 -73.5t62.5 -53.5t90 -20.5z" />
+<glyph unicode="&#x490;" d="M222 1493h670v306h260v-566h-635v-1233h-295v1493z" />
+<glyph unicode="&#x491;" d="M282 1120h590v314h209v-533h-508v-901h-291v1120z" />
+<glyph unicode="&#x492;" d="M222 664h-135v240h135v589h930v-260h-635v-329h425v-240h-425v-664h-295v664z" />
+<glyph unicode="&#x493;" d="M292 458h-130v219h130v443h799v-219h-508v-224h360v-219h-360v-458h-291v458z" />
+<glyph unicode="&#x494;" d="M528 -199h136q49 0 83.5 13t56 42t31 75t9.5 112v421q0 121 -35 173q-15 22 -41.5 35.5t-77.5 13.5h-233v-686h-295v1493h930v-260h-635v-281h309q125 0 226 -53q19 -10 36.5 -23t29.5 -30q81 -105 81 -314v-489q0 -126 -21.5 -214.5t-69 -145t-122 -82t-180.5 -25.5 h-218v225z" />
+<glyph unicode="&#x495;" d="M488 -199h113q49 0 83 13t55.5 42t31 75t9.5 112v137q0 62 -9 105t-27 69.5t-45.5 38.5t-65.5 12h-120v-405h-291v1120h799v-209h-508v-266h237q160 0 240.5 -104t80.5 -316v-182q0 -126 -21.5 -215t-68.5 -145t-120.5 -81.5t-177.5 -25.5h-195v225z" />
+<glyph unicode="&#x496;" d="M981 0h-10l-157 537l-77 -181v-356h-240v356l-77 181l-157 -537h-250l258 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l182 -626h76v-582h-240v322z" />
+<glyph unicode="&#x497;" d="M1004 0h-39l-156 427l-72 -122v-305h-240v305l-72 122l-156 -427h-255l254 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l174 -475h83v-505h-219v286z" />
+<glyph unicode="&#x498;" d="M1100 412q0 -189 -108 -299.5t-319 -135.5q52 -62 72 -107.5t20 -91.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 25 -16 59t-51 82q-105 2 -209 20.5t-200 53.5v274q48 -25 102 -43t108 -30t106 -17.5t97 -5.5 q145 0 212 56.5t67 155.5q0 107 -69.5 170t-198.5 63h-158v260h158q111 0 171 43.5t60 125.5q0 81 -60.5 127t-175.5 46q-78 0 -174.5 -21t-199.5 -61v268q103 31 202.5 47.5t193.5 16.5q118 0 210.5 -26.5t156.5 -76.5t98 -121.5t34 -160.5q0 -137 -76 -220.5t-217 -109.5 q77 -14 138 -44.5t103 -79.5t64.5 -116t22.5 -153z" />
+<glyph unicode="&#x499;" d="M1079 287q0 -67 -29.5 -119t-85 -90t-135 -61.5t-178.5 -32.5q28 -32 47 -59.5t30 -52.5t16 -48t5 -46q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61q0 26 -17 61.5t-55 86.5h-3q-47 0 -89 3t-84.5 10.5t-87 20 t-96.5 32.5v236q49 -24 92 -39.5t86.5 -24.5t91.5 -12t108 -3q55 0 102 3.5t81 15.5t53 35.5t19 63.5q0 45 -23 73t-57.5 43.5t-74.5 21t-75 5.5h-163v219h137q42 0 83 6t73.5 20.5t52.5 38.5t20 59q0 123 -255 123q-161 0 -314 -52v223q54 16 147 32t210 16 q124 0 216.5 -22.5t154.5 -64t93 -101t31 -134.5q0 -58 -17 -101t-44 -73t-60 -49t-64 -29q40 -11 80 -36t71.5 -61.5t51 -84.5t19.5 -104z" />
+<glyph unicode="&#x49a;" d="M932 0h-35l-354 672l-131 -166v-506h-295v1493h295v-590l462 590h334l-471 -588l348 -645h140v-582h-293v322z" />
+<glyph unicode="&#x49b;" d="M909 0h-35l-307 524l-100 -96v-428h-293v1120h293v-381l352 381h355l-424 -418l315 -493h133v-495h-289v286z" />
+<glyph unicode="&#x4a2;" d="M990 0h-239v664h-369v-664h-295v1493h295v-569h369v569h295v-1233h237v-582h-293v322z" />
+<glyph unicode="&#x4a3;" d="M944 0h-291v530h-317v-530h-291v1120h291v-381h317v381h291v-911h289v-495h-289v286z" />
+<glyph unicode="&#x4a4;" d="M98 1493h240v-578h315v578h580v-247h-340v-1246h-240v675h-315v-675h-240v1493z" />
+<glyph unicode="&#x4a5;" d="M102 1120h240v-390h323v390h568v-210h-328v-910h-240v520h-323v-520h-240v1120z" />
+<glyph unicode="&#x4aa;" d="M772 1255q-160 0 -242 -128t-82 -382t82 -381.5t242 -127.5q79 0 150.5 32.5t147.5 102.5v-328q-54 -28 -112 -45t-123 -23q26 -30 43 -56.5t27.5 -50t15 -46t4.5 -44.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23t32.5 61 q0 26 -16.5 60t-51.5 83q-134 11 -237 66.5t-173 153t-106 236.5t-36 316q0 189 40.5 333.5t118.5 242.5t193 148.5t264 50.5q176 0 313 -72v-328q-76 70 -147.5 102.5t-150.5 32.5z" />
+<glyph unicode="&#x4ab;" d="M747 909q-144 0 -220.5 -90.5t-76.5 -260.5q0 -168 76.5 -257.5t223.5 -89.5q85 0 159 29.5t137 85.5v-269q-116 -67 -260 -82q26 -30 43 -56.5t27.5 -50t15 -46t4.5 -44.5q0 -88 -61 -133.5t-189 -45.5q-48 0 -98 6.5t-104 19.5v156q91 -35 164 -35q59 0 91.5 23 t32.5 61q0 26 -16.5 60t-51.5 84q-117 9 -208 53t-154 119t-96 179t-33 233q0 139 38 248.5t109 185.5t174 116.5t232 40.5q91 0 173.5 -20.5t166.5 -65.5v-268q-64 55 -140.5 84.5t-158.5 29.5z" />
+<glyph unicode="&#x4ac;" d="M764 0h-295v1235h-379v258h1053v-258h-379v-975h293v-582h-293v322z" />
+<glyph unicode="&#x4ad;" d="M763 0h-291v911h-308v209h907v-209h-308v-702h289v-495h-289v286z" />
+<glyph unicode="&#x4ae;" d="M469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="&#x4af;" d="M471 31l-414 1089h308l251 -727l251 727h308l-414 -1089v-457h-290v457z" />
+<glyph unicode="&#x4b0;" d="M469 264h-240v260h240v64l-461 905h318l290 -600l291 600h318l-461 -905v-64h240v-260h-240v-264h-295v264z" />
+<glyph unicode="&#x4b1;" d="M471 -250h-200v219h200v62l-414 1089h308l251 -727l251 727h308l-414 -1089v-62h200v-219h-200v-176h-290v176z" />
+<glyph unicode="&#x4b2;" d="M913 0h-12l-285 494l-284 -494h-305l438 758l-426 735h305l272 -475l273 475h305l-424 -735l286 -498h150v-582h-293v322z" />
+<glyph unicode="&#x4b3;" d="M889 0h-53l-220 377l-219 -377h-342l414 584l-381 536h342l186 -334l187 334h342l-377 -536l263 -375h147v-495h-289v286z" />
+<glyph unicode="&#x4ba;" d="M121 1556h291v-666q17 50 59 77l47 31q26 17 76.5 29.5t126.5 18.5l57 3q59 0 118 -13t107 -40q37 -21 63 -53q38 -47 59.5 -126t21.5 -188v-629h-291v561q0 121 -35 173q-23 37 -119 49q-23 3 -42 3q-69 0 -141 -29q-23 -9 -37 -18.5t-25 -23.5q-23 -31 -34 -83 t-11 -112v-520h-291v1556z" />
+<glyph unicode="&#x4bb;" d="M172 1556h291v-604q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 171.5t-107.5 53.5q-88 0 -132 -69.5t-44 -196.5v-641h-291v1556z" />
+<glyph unicode="&#x4c0;" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#x4c1;" d="M616 1587q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM271 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l258 -886h-250l-157 537l-77 -181v-356h-240v356l-77 181l-157 -537h-250z" />
+<glyph unicode="&#x4c2;" d="M616 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM268 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l254 -694h-255l-156 427l-72 -122v-305h-240v305l-72 122l-156 -427h-255z" />
+<glyph unicode="&#x4c3;" d="M483 -199h136q102 0 139 55q41 56 41 187v421q0 126 -35 173q-49 49 -119 49h-86l-147 -180v-506h-295v1493h295v-590l462 590h334l-433 -541q84 0 172 -53q27 -15 41 -27t25 -26q37 -48 59 -128t22 -186v-489q0 -122 -22.5 -213.5t-67.5 -145.5q-44 -53 -119.5 -80.5 t-183.5 -27.5h-218v225z" />
+<glyph unicode="&#x4c4;" d="M442 -199h113q49 0 83 13t55.5 42t31 75t9.5 112v137q0 62 -9 105t-27 69.5t-45.5 38.5t-65.5 12h-120v-405h-293v1120h293v-381l352 381h355l-483 -475h13q160 0 240.5 -104t80.5 -316v-182q0 -126 -21.5 -215t-68.5 -145t-120.5 -81.5t-177.5 -25.5h-195v225z" />
+<glyph unicode="&#x4c7;" d="M485 -199h136q49 0 83.5 13t56 42t31 75t9.5 112v621h-369v-664h-295v1493h295v-569h369v569h295v-1450q0 -125 -22 -213.5t-69.5 -144.5t-122 -82.5t-179.5 -26.5h-218v225z" />
+<glyph unicode="&#x4c8;" d="M487 -199h113q49 0 83.5 13t56 42t31 75t9.5 112v487h-317v-530h-291v1120h291v-381h317v381h291v-1077q0 -126 -21.5 -215t-68.5 -145t-120.5 -81.5t-178.5 -25.5h-195v225z" />
+<glyph unicode="&#x4cb;" d="M537 260h293v506q-17 -49 -59 -77l-47 -31q-14 -9 -36 -17t-49 -14.5t-57.5 -11t-60.5 -5.5l-57 -3q-59 0 -118 13t-107 40q-37 21 -63 53q-38 47 -59.5 126t-21.5 188v529h291v-461q0 -121 35 -173q23 -37 119 -49q22 -3 42 -3q69 0 141 29q23 9 37 18.5t25 23.5 q23 31 34 83t11 112v420h291v-1556h-291v-322h-293v582z" />
+<glyph unicode="&#x4cc;" d="M473 209h289v207h-107q-230 0 -385 101l-4 3q-136 91 -136 293v307h299v-337q0 -61 35 -94q4 -4 9 -8t12 -9q55 -39 170 -39h107v488h290v-1121h-290v-286h-289v495z" />
+<glyph unicode="&#x4cf;" d="M387 1556h293v-1556h-293v1556z" />
+<glyph unicode="&#x4d0;" d="M616 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x4d1;" d="M616 1270q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5 t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62 t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#x4d2;" d="M331 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#x4d3;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203 v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5 q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10z M576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#x4d4;" d="M358 1493h803v-260h-291v-311h260v-260h-260v-402h310v-260h-564v362h-282l-86 -362h-248zM616 598v635h-79l-148 -635h227z" />
+<glyph unicode="&#x4d5;" d="M346 -29q-159 0 -245.5 92t-86.5 266q0 365 406 365h76v51q0 187 -154 187q-116 0 -266 -109v246q77 40 145 59t140 19q99 0 159 -33.5t92 -93.5q32 64 97 95.5t160 31.5q87 0 147.5 -28.5t98.5 -92t55.5 -167t17.5 -253.5v-127h-451q0 -145 49.5 -220t145.5 -75 q119 0 239 117v-244q-96 -86 -252 -86q-107 0 -181.5 40t-119.5 124q-41 -84 -106.5 -124t-165.5 -40zM963 690v23q0 126 -25 172q-26 47 -88 47t-88 -47q-25 -46 -25 -172v-23h226zM365 184q124 0 124 174v125h-73q-176 0 -176 -156q0 -68 32 -105.5t93 -37.5z" />
+<glyph unicode="&#x4d6;" d="M634 1586q-148 0 -234 67t-101 197h141q41 -121 196 -121q151 0 191 121h143q-15 -130 -101 -197t-235 -67zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#x4d7;" d="M630 1297q-157 0 -243 76t-92 221h141q11 -69 60.5 -106.5t133.5 -37.5t133 37t60 107h143q-6 -145 -92 -221t-244 -76zM679 -29q-145 0 -254.5 38t-183.5 112t-111.5 181.5t-37.5 247.5q0 139 36.5 249.5t105.5 187.5t169 118.5t228 41.5q121 0 217 -38t163 -110 t102.5 -176.5t35.5 -238.5v-119h-759q1 -262 308 -262q102 0 199 29t205 92v-269q-100 -42 -207 -63t-216 -21zM854 685q-2 116 -60 175.5t-164 59.5q-108 0 -166.5 -60.5t-70.5 -175.5z" />
+<glyph unicode="&#x4d8;" d="M617 -29q-260 0 -392.5 195.5t-132.5 578.5v95h740v5q0 97 -13.5 173.5t-42.5 129t-73.5 80t-107.5 27.5q-67 0 -140 -32.5t-148 -102.5v328q70 36 147 54t157 18q265 0 397.5 -195.5t132.5 -577.5q0 -383 -132.5 -579.5t-391.5 -196.5zM618 236q50 0 86 22t61 65.5 t40 108t23 148.5h-423q11 -176 63.5 -260t149.5 -84z" />
+<glyph unicode="&#x4d9;" d="M620 -29q-121 0 -217 38t-163 110t-102.5 176.5t-35.5 238.5v119h759v10q-1 132 -78 192t-227 60q-105 0 -202 -29t-205 -92v269q100 42 207 63t216 21q145 0 254.5 -38t183.5 -112t111.5 -182t37.5 -247t-36.5 -249.5t-105.5 -188t-169.5 -118.5t-227.5 -41zM621 198 q108 0 166.5 60t70.5 175h-461q2 -115 59.5 -175t164.5 -60z" />
+<glyph unicode="&#x4da;" d="M341 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-260 0 -392.5 195.5t-132.5 578.5v95h740v5q0 97 -13.5 173.5t-42.5 129t-73.5 80 t-107.5 27.5q-67 0 -140 -32.5t-148 -102.5v328q70 36 147 54t157 18q265 0 397.5 -195.5t132.5 -577.5q0 -383 -132.5 -579.5t-391.5 -196.5zM618 236q50 0 86 22t61 65.5t40 108t23 148.5h-423q11 -176 63.5 -260t149.5 -84z" />
+<glyph unicode="&#x4db;" d="M341 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM620 -29q-121 0 -217 38t-163 110t-102.5 176.5t-35.5 238.5v119h759v10q-1 132 -78 192t-227 60 q-105 0 -202 -29t-205 -92v269q100 42 207 63t216 21q145 0 254.5 -38t183.5 -112t111.5 -182t37.5 -247t-36.5 -249.5t-105.5 -188t-169.5 -118.5t-227.5 -41zM621 198q108 0 166.5 60t70.5 175h-461q2 -115 59.5 -175t164.5 -60z" />
+<glyph unicode="&#x4dc;" d="M323 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM718 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM271 886l-258 607h261l223 -523v523h240v-523l223 523h261l-258 -607l258 -886h-250l-157 537 l-77 -181v-356h-240v356l-77 181l-157 -537h-250z" />
+<glyph unicode="&#x4dd;" d="M330 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM725 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM268 694l-250 426h277l202 -343v343h240v-343l202 343h277l-250 -426l254 -694h-255l-156 427 l-72 -122v-305h-240v305l-72 122l-156 -427h-255z" />
+<glyph unicode="&#x4de;" d="M311 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM706 1604q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM554 -29q-110 0 -219.5 19t-209.5 55v274q48 -25 102 -43t108 -30t106 -17.5t97 -5.5q145 0 212 56.5 t67 155.5q0 107 -69.5 170t-198.5 63h-158v260h158q111 0 171 43.5t60 125.5q0 81 -60.5 127t-175.5 46q-78 0 -174.5 -21t-199.5 -61v268q103 31 202.5 47.5t193.5 16.5q118 0 210.5 -26.5t156.5 -76.5t98 -121.5t34 -160.5q0 -137 -76 -220.5t-217 -109.5 q77 -14 138 -44.5t103 -79.5t64.5 -116t22.5 -153q0 -215 -138.5 -328t-407.5 -113z" />
+<glyph unicode="&#x4df;" d="M319 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM714 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM510 -22q-47 0 -89 3t-84.5 10.5t-87 20t-96.5 32.5v236q49 -24 92 -39.5t86.5 -24.5t91.5 -12 t108 -3q55 0 102 3.5t81 15.5t53 35.5t19 63.5q0 45 -23 73t-57.5 43.5t-74.5 21t-75 5.5h-163v219h137q42 0 83 6t73.5 20.5t52.5 38.5t20 59q0 123 -255 123q-161 0 -314 -52v223q54 16 147 32t210 16q124 0 216.5 -22.5t154.5 -64t93 -101t31 -134.5q0 -58 -17 -101 t-44 -73t-60 -49t-64 -29q40 -11 80 -36t71.5 -61.5t51 -84.5t19.5 -104q0 -78 -40 -136t-114.5 -96.5t-179.5 -57.5t-235 -19z" />
+<glyph unicode="&#x4e0;" d="M615 -28q-166 0 -281.5 31.5t-187.5 91.5t-104 147t-32 197h318q0 -54 22 -92.5t60 -63.5t89 -37t108 -12q103 0 171.5 36.5t89.5 109.5q5 16 6.5 31.5t1.5 29.5q0 86 -54 136.5t-170 64.5q-17 2 -35 3t-38 1h-255v218l372 369h-566v260h1010v-244l-401 -401 q72 -5 130.5 -12t107 -24t89 -47t76.5 -80q42 -57 61.5 -120t19.5 -144q0 -93 -24.5 -162t-67 -119t-100.5 -82.5t-125.5 -51.5t-142 -26.5t-148.5 -7.5z" />
+<glyph unicode="&#x4e1;" d="M531 -440q-112 0 -213.5 18t-207.5 56v297q195 -109 386 -109q136 0 208 53t72 153q0 101 -74.5 153.5t-222.5 52.5h-168v218l390 449h-566v219h895v-229l-391 -455q67 -4 125.5 -10.5t109.5 -24.5t95.5 -51.5t82.5 -91.5q36 -54 53.5 -113t17.5 -132q0 -111 -39 -195.5 t-114.5 -142t-186 -86.5t-252.5 -29z" />
+<glyph unicode="&#x4e2;" d="M301 1850h631v-188h-631v188zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
+<glyph unicode="&#x4e3;" d="M301 1508h631v-188h-631v188zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
+<glyph unicode="&#x4e4;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM119 1493h260v-1085l416 1085h317v-1493h-260v1085l-418 -1085h-315v1493z" />
+<glyph unicode="&#x4e5;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM152 1120h291v-715l357 715h291v-1120h-291v715l-357 -715h-291v1120z" />
+<glyph unicode="&#x4e6;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5 t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="&#x4e7;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41 t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5 t94.5 -23.5z" />
+<glyph unicode="&#x4e8;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM828 911q-7 74 -19.5 137t-36.5 109t-61.5 72t-94.5 26t-94 -25.5t-60.5 -71t-36.5 -109t-20 -138.5h423zM617 236q57 0 95.5 27t63.5 79.5 t38 130t18 178.5h-431q4 -100 17 -177.5t38.5 -130t64.5 -80t96 -27.5z" />
+<glyph unicode="&#x4e9;" d="M614 -29q-235 0 -376 159q-70 79 -105 186t-35 240q0 137 36.5 246.5t104 186t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-164 -117.5t-216.5 -41zM839 632q-6 57 -21.5 107t-42.5 88t-66.5 60t-92.5 22t-92 -22t-66 -60 t-42.5 -88t-21.5 -107h445zM616 209q53 0 90.5 20.5t63 53.5t40.5 73.5t22 81.5h-431q7 -41 22 -81.5t40.5 -73.5t62.5 -53.5t90 -20.5z" />
+<glyph unicode="&#x4ea;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5 t-132.5 -579t-391.5 -196zM828 911q-7 74 -19.5 137t-36.5 109t-61.5 72t-94.5 26t-94 -25.5t-60.5 -71t-36.5 -109t-20 -138.5h423zM617 236q57 0 95.5 27t63.5 79.5t38 130t18 178.5h-431q4 -100 17 -177.5t38.5 -130t64.5 -80t96 -27.5z" />
+<glyph unicode="&#x4eb;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM614 -29q-235 0 -376 159q-70 79 -105 186t-35 240q0 137 36.5 246.5t104 186t163 117.5t214.5 41 t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-164 -117.5t-216.5 -41zM839 632q-6 57 -21.5 107t-42.5 88t-66.5 60t-92.5 22t-92 -22t-66 -60t-42.5 -88t-21.5 -107h445zM616 209q53 0 90.5 20.5t63 53.5t40.5 73.5t22 81.5h-431q7 -41 22 -81.5 t40.5 -73.5t62.5 -53.5t90 -20.5z" />
+<glyph unicode="&#x4ec;" d="M286 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM681 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM490 -29q-89 0 -165.5 18t-147.5 54v328q145 -135 304 -135q271 0 311 379h-542v260h542 q-41 380 -312 380q-158 0 -303 -135v328q135 72 311 72q150 0 265.5 -50.5t193.5 -148.5t118.5 -242.5t40.5 -332.5t-40.5 -333t-118.5 -243t-193 -148.5t-264 -50.5z" />
+<glyph unicode="&#x4ed;" d="M299 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM694 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM537 -29q-193 0 -339 86v269q68 -59 137.5 -88t153.5 -29q119 0 197.5 60.5t101.5 188.5h-477v219 h472q-52 232 -287 232q-166 0 -298 -114v268q78 42 158 63t173 21q130 0 234 -40t177 -115.5t112 -185t39 -247.5t-37 -247t-108 -184.5t-174 -116t-235 -40.5z" />
+<glyph unicode="&#x4ee;" d="M301 1850h631v-188h-631v188zM185 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
+<glyph unicode="&#x4ef;" d="M301 1508h631v-188h-631v188zM127 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
+<glyph unicode="&#x4f0;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM185 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305 l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
+<glyph unicode="&#x4f1;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM127 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308 l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
+<glyph unicode="&#x4f2;" d="M463 1852h284l-286 -264h-197zM838 1852h284l-286 -264h-197zM185 260h80q29 0 55.5 1.5t51 13.5t46.5 40t42 81l55 145l-487 952h305l316 -620l251 620h305l-478 -1190q-62 -154 -143.5 -228.5t-198.5 -74.5h-200v260z" />
+<glyph unicode="&#x4f3;" d="M492 1646h217l-248 -376h-164zM854 1646h231l-272 -376h-174zM127 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
+<glyph unicode="&#x4f4;" d="M321 1627q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM716 1627q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM826 766q-30 -77 -112.5 -118t-227.5 -41q-107 0 -182 24t-122.5 75t-69 130.5t-21.5 190.5v529h291 v-461q0 -72 17.5 -116t46.5 -68t67 -32.5t79 -8.5q70 0 115 17.5t71.5 51.5t37 83.5t10.5 113.5v420h291v-1556h-291v766z" />
+<glyph unicode="&#x4f5;" d="M316 1321q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM711 1321q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM755 416h-190q-98 0 -179 17.5t-139.5 62t-91 121.5t-32.5 196v307h299v-337q0 -45 10 -74.5 t35.5 -46t69.5 -23t111 -6.5h107v488h290v-1121h-290v416z" />
+<glyph unicode="&#x4f6;" d="M477 0h-295v1493h930v-260h-635v-973h293v-582h-293v322z" />
+<glyph unicode="&#x4f7;" d="M523 0h-291v1120h799v-209h-508v-702h289v-495h-289v286z" />
+<glyph unicode="&#x4f8;" d="M371 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM766 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM40 1493h255v-580h10q131 0 231.5 -26.5t168 -82.5t102 -142.5t34.5 -205.5q0 -235 -134.5 -345.5 t-401.5 -110.5h-265v1493zM938 1493h255v-1493h-255v1493zM316 236q78 0 130 11.5t83 37.5t44 68t13 102q0 63 -14 106t-45.5 69t-83 37t-127.5 11h-21v-442h21z" />
+<glyph unicode="&#x4f9;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM31 1120h291v-422h21q106 0 190.5 -21.5t143 -64.5t90 -108.5t31.5 -153.5t-31.5 -154t-90 -109.5 t-143 -65t-190.5 -21.5h-312v1120zM908 1120h293v-1120h-293v1120zM349 219q25 0 52.5 7.5t50.5 23t38 40.5t15 60t-15 59.5t-38 40t-50.5 22.5t-52.5 7h-27v-260h27z" />
+<glyph unicode="&#x510;" d="M671 -29q-269 0 -407.5 113t-138.5 328q0 172 86.5 269t241.5 124q-141 26 -217 109.5t-76 220.5q0 89 34 160.5t98 121.5t156.5 76.5t210.5 26.5q94 0 193.5 -16.5t202.5 -47.5v-268q-103 40 -199.5 61t-174.5 21q-115 0 -175.5 -46t-60.5 -127q0 -82 60 -125.5 t171 -43.5h158v-260h-158q-129 0 -198.5 -63t-69.5 -170q0 -50 16.5 -89t50.5 -66.5t86.5 -42t125.5 -14.5q45 0 97 5.5t106 17.5t108 30t102 43v-274q-100 -36 -209.5 -55t-219.5 -19z" />
+<glyph unicode="&#x511;" d="M672 -22q-261 0 -392 85t-131 246q0 124 78.5 198.5t233.5 96.5q-139 20 -209 83.5t-70 165.5q0 66 31 119.5t93.5 90.5t156.5 57t220 20q42 0 76.5 -2.5t70.5 -8t77 -15t95 -22.5v-215q-53 17 -97 28.5t-82 19t-72 10.5t-66 3q-115 0 -173.5 -33.5t-58.5 -82.5t57 -80.5 t162 -31.5h151v-223h-151q-61 0 -108 -13t-79.5 -35t-49.5 -51.5t-17 -62.5q0 -30 15 -56.5t50 -46t91 -30.5t139 -11q40 0 77 3t76 11.5t82.5 22.5t96.5 35v-219q-64 -18 -117 -29t-98 -17t-83.5 -8t-74.5 -2z" />
+<glyph unicode="&#x51a;" d="M656 -23q-18 -4 -26 -5t-23 -1q-251 0 -383 196.5t-132 579.5t132 578t393 195q259 0 391.5 -196t132.5 -578q0 -266 -62.5 -442.5t-183.5 -252.5l186 -182l-202 -150zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5 q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="&#x51b;" d="M791 158q-58 -98 -128.5 -142.5t-167.5 -44.5q-94 0 -169 38.5t-127.5 113.5t-80.5 184.5t-28 251.5q0 140 27 249.5t79 184.5t126 114.5t169 39.5q108 0 180.5 -50t119.5 -145l29 168h263v-1546h-292v584zM586 215q48 0 86 23.5t64.5 68.5t40.5 109t14 145t-14 145 t-40.5 109t-64.5 68.5t-86 23.5t-85.5 -23.5t-63.5 -68.5t-40 -109t-14 -145t14 -145t40 -109t63.5 -68.5t85.5 -23.5z" />
+<glyph unicode="&#x51c;" d="M0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
+<glyph unicode="&#x51d;" d="M0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
+<glyph unicode="&#x531;" d="M993 -64q-37 17 -72 38.5t-69 46.5q-108 -50 -272 -50q-134 0 -229.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-1016q0 -112 56 -175.5t159 -63.5q23 0 44 3q-32 40 -58 78t-45 72l178 144q17 -32 40 -60.5t52 -54.5q2 14 3 28t1 29v1016h295v-942 q0 -91 -10 -165t-31 -134q54 -28 112 -53l-169 -263v0z" />
+<glyph unicode="&#x532;" d="M98 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-67h-295v141q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-342h742v-260h-742v-414h-295v942z" />
+<glyph unicode="&#x533;" d="M758 414h-231q-131 0 -224 35.5t-153 106.5t-88.5 174t-28.5 241q0 140 29 242.5t92 171.5t158.5 103t232.5 34q133 0 228.5 -33t158.5 -104t92 -180t29 -263v-268h146v-260h-146v-414h-295v414zM758 674v342q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-96 q0 -113 57 -179q28 -32 67.5 -49.5t90.5 -17.5h215z" />
+<glyph unicode="&#x534;" d="M758 1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-141h-295v67q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-268h146v-260h-146v-414h-295v1016z" />
+<glyph unicode="&#x535;" d="M608 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-373h755v-260h-755v-383q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v141h295v-67q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
+<glyph unicode="&#x536;" d="M107 331h295v-71q81 1 161 46.5t146 132.5q67 88 105.5 204.5t38.5 262.5q0 173 -58.5 261t-180.5 88q-54 0 -99.5 -18.5t-77.5 -57.5t-48.5 -99t-16.5 -145v-60h-295v22q0 305 133 465t400 160q142 0 243.5 -43.5t167.5 -124.5q33 -41 58 -91t42 -107t25.5 -119.5 t8.5 -126.5q0 -94 -18.5 -181t-57.5 -172q-41 -88 -104 -165.5t-160 -131.5h279v-260h-987v331z" />
+<glyph unicode="&#x537;" d="M112 1493h295v-373h714v-260h-714v-600h575v-260h-870v1493z" />
+<glyph unicode="&#x538;" d="M98 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-67h-295v141q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-756h742v-260h-1037v942z" />
+<glyph unicode="&#x539;" d="M739 -29q-78 0 -142.5 24.5t-111.5 79.5t-70.5 138.5t-23.5 198.5q0 120 25 206.5t70 143.5q46 57 111 85t146 28h107v141q0 67 -14.5 119.5t-47.5 87.5t-86 53.5t-129 18.5t-128.5 -18.5t-85.5 -53.5t-47.5 -87.5t-14.5 -119.5v-1016h-254v942q0 154 32.5 263t98.5 180 t165 104t234 33t234 -33t165 -104t98.5 -180t32.5 -263v-67h87v-260h-87v-202q0 -108 -25 -189.5t-73 -138.5q-96 -114 -266 -114zM744 218q29 0 49 10.5t33 34.5q13 23 18.5 59.5t5.5 90.5v202h-107q-63 0 -93.5 -47.5t-30.5 -151.5q0 -107 32 -152.5t93 -45.5z" />
+<glyph unicode="&#x53a;" d="M544 -29q-137 0 -232 34.5t-158 103.5q-65 72 -93 175t-28 237q0 139 28.5 242.5t88.5 174.5q120 141 377 141h231v414h295v-414h146v-260h-146v-268q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-229.5 -33.5zM543 238q103 0 159 63.5t56 175.5v342h-215 q-51 0 -90.5 -17.5t-67.5 -49.5q-57 -66 -57 -179v-96q0 -112 56 -175.5t159 -63.5z" />
+<glyph unicode="&#x53b;" d="M106 1493h295v-400q47 23 98 35.5t128 12.5q123 0 219 -33t159 -104t92 -180t29 -263v-67h-295v141q0 112 -56.5 175.5t-157.5 63.5q-50 0 -90 -16t-68 -46t-43 -72t-15 -94v-646h-295v1493z" />
+<glyph unicode="&#x53c;" d="M153 1493h295v-1233h631v-260h-926v1493z" />
+<glyph unicode="&#x53d;" d="M812 -27q-107 0 -174.5 27.5t-106.5 85.5q-40 58 -55 147t-15 214v433h-129v-880h-254v1493h254v-373h383v-715q0 -57 6.5 -94t19.5 -60q23 -43 72 -43q24 0 40.5 10t27.5 33q20 44 20 154v715h254v-673q0 -125 -13 -214t-51 -147t-105 -85.5t-174 -27.5z" />
+<glyph unicode="&#x53e;" d="M631 -29q-158 0 -260.5 48.5t-163.5 128.5q-64 84 -92 196.5t-28 244.5q0 120 21 222t61 196h-134v486h237v-245h46q54 63 117 113.5t134 85.5t147.5 54t155.5 19q45 0 92 -5.5t92 -16.5q48 -11 81.5 -24.5t50.5 -25.5v-317q-50 61 -144 101q-45 19 -91 29.5t-92 10.5 q-47 0 -90.5 -11t-83.5 -31q118 -21 214.5 -71t162.5 -129q66 -78 99.5 -185.5t33.5 -246.5q0 -85 -13 -164.5t-41 -149.5q-29 -72 -73.5 -129.5t-103.5 -96.5q-131 -87 -335 -87zM634 228q88 0 137 24t75 71q13 24 21 54t12.5 63t6 68.5t1.5 70.5q0 56 -3.5 101.5t-11.5 83 t-22 68t-36 56.5q-45 53 -126 82t-209 35q-23 -48 -39 -94.5t-26.5 -98.5t-15.5 -111.5t-5 -134.5q0 -80 7 -142.5t30 -105.5q24 -46 72.5 -68t131.5 -22z" />
+<glyph unicode="&#x53f;" d="M831 400q-47 -23 -98.5 -35.5t-127.5 -12.5q-123 0 -219 33.5t-159 104.5t-92 179.5t-29 262.5v561h295v-635q0 -112 56.5 -175.5t157.5 -63.5q50 0 90 16t68 46t43 72t15 94v273h295v-1120h-295v400z" />
+<glyph unicode="&#x540;" d="M329 251q-59 23 -103.5 48t-81.5 57t-58.5 70.5t-21.5 83.5q0 143 231 340q91 77 211 157.5t264 161.5l-184 324h340l243 -420h-2l1 -1q-97 -48 -199 -102.5t-196 -111.5q-39 -24 -81 -50.5t-81 -53.5t-73 -52t-56 -45q-15 -14 -28.5 -28.5t-20.5 -25.5q-15 -23 -15 -40 t12 -27t29 -17l687 -283v-311z" />
+<glyph unicode="&#x541;" d="M933 -64q-32 48 -63.5 92t-63.5 86q-82 -75 -174 -108t-191 -33q-164 0 -258 83q-47 42 -72.5 101.5t-25.5 139.5t25.5 142.5t72.5 105.5t111.5 65.5t142.5 22.5q90 0 173.5 -29t162.5 -83q34 81 54 168.5t20 196.5q0 98 -16.5 170.5t-47.5 117.5t-74.5 63t-100.5 18 q-48 0 -93 -14.5t-80 -57.5q-33 -41 -51 -109t-18 -173v-26h-295v26q0 175 42.5 293.5t116.5 191.5t172 104.5t207 31.5q114 0 211.5 -33.5t170.5 -108.5q75 -78 116.5 -200t41.5 -284q0 -160 -41 -299t-119 -269q49 -57 92 -117.5t81 -124.5zM449 226q37 0 82 16t92 63 q-47 35 -94 55t-86 20q-40 0 -59.5 -20.5t-19.5 -58.5q0 -75 85 -75z" />
+<glyph unicode="&#x542;" d="M758 1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-141h-295v67q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-682h146v-260h-441v1016z" />
+<glyph unicode="&#x543;" d="M380 0q-73 0 -127.5 16t-93.5 47t-63.5 79.5t-24.5 119.5q0 87 40 199t125 257q12 21 30 51t39 64t44 69t45 67l-301 524h331l160 -279q65 71 130 125.5t138 95.5q72 40 148 61.5t161 21.5v-265q-38 0 -81.5 -9.5t-96.5 -41.5q-52 -31 -115 -88.5t-138 -153.5l426 -742 v-218h-776zM799 265l-251 436q-5 -8 -12.5 -19.5t-16 -25.5t-17.5 -28t-16 -26q-60 -100 -86 -167t-26 -104q0 -38 28 -52t97 -14h300z" />
+<glyph unicode="&#x544;" d="M543 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-1016q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v1016h441v-260h-146v-682q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
+<glyph unicode="&#x545;" d="M659 -29q-134 0 -232 38t-164 102q-67 64 -101.5 148t-34.5 177v9h298v-9q0 -42 15 -79.5t44 -66.5t71 -46.5t102 -17.5t104 18t72 49q27 30 39 71.5t12 84.5q0 102 -59.5 157.5t-171.5 55.5h-603v260h603q48 0 81.5 15t54.5 40q23 26 31.5 58t8.5 65q0 85 -45.5 124 t-128.5 39q-175 0 -175 -169h-298q0 100 33.5 178.5t96.5 133.5q61 54 147.5 83t192.5 29t193 -29.5t150 -84.5q65 -57 98.5 -134.5t33.5 -171.5q0 -109 -42 -179t-112 -107q54 -23 93 -59t65 -84t38.5 -101.5t12.5 -114.5q0 -97 -30.5 -185t-95.5 -154t-164 -104.5 t-233 -38.5z" />
+<glyph unicode="&#x546;" d="M689 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v682h-146v260h441v-1016q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v141h295v-67q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
+<glyph unicode="&#x547;" d="M620 -27q-116 0 -216 34.5t-173 111.5q-74 78 -115 197t-41 274q0 141 33 244t84 178t111 121.5t114 58.5q-21 9 -49.5 16.5t-57.5 12.5t-53 8t-35 3h-93v261h165q16 0 29 -0.5t27 -2t30.5 -4t40.5 -6.5q38 -7 74.5 -15.5t68.5 -22.5l504 -211v-311l-299 126 q-11 4 -26.5 9t-33.5 9q-19 3 -38 5.5t-35 2.5q-59 0 -104 -37t-78 -100q-34 -64 -52.5 -148t-18.5 -189q0 -91 15.5 -161.5t47.5 -116.5q30 -43 73 -61.5t99 -18.5q53 0 98.5 17.5t77.5 59.5t50 111t18 174v18h295v-18q0 -175 -41 -294.5t-113 -194.5q-73 -75 -172 -107.5 t-211 -32.5z" />
+<glyph unicode="&#x548;" d="M106 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-942h-295v1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-1016h-295v942z" />
+<glyph unicode="&#x549;" d="M166 265v310l293 -124q13 -6 30 -11t35 -8.5t35.5 -6t32.5 -2.5q63 0 109.5 39.5t80.5 111.5q33 69 51.5 162t18.5 199q-8 160 -63 240t-173 80q-57 0 -102 -18.5t-77 -57.5t-48.5 -99t-16.5 -145v-60h-295v22q0 305 133 465t402 160q266 0 406 -162q69 -80 103 -191.5 t34 -251.5q0 -138 -30 -241.5t-76 -181.5q-48 -81 -102.5 -130t-104.5 -71l147 -66v-307z" />
+<glyph unicode="&#x54a;" d="M927 935q0 157 -43.5 241.5t-140.5 99.5v-834h-254v833q-98 -17 -140.5 -100t-42.5 -240v-120h-254v104q0 133 31.5 243t100.5 189q71 82 178.5 124.5t258.5 42.5q153 0 262.5 -43t176.5 -124q66 -79 93.5 -189t27.5 -243v-919h-254v935z" />
+<glyph unicode="&#x54b;" d="M112 331h295v-70q51 0 95 16.5t84 42.5q9 42 14 78.5t5 65.5q0 70 -35.5 110.5t-123.5 46.5q-23 1 -55 2.5t-67.5 6.5t-72 16.5t-68.5 33.5q-44 30 -65.5 68t-30.5 71q-5 19 -8 38.5t-4.5 37.5t-2 33.5t-0.5 25.5q0 75 11.5 137t37.5 123q26 59 67.5 114t104.5 99 q61 42 140.5 66.5t188.5 24.5q154 0 257 -50t166 -137q33 -46 55.5 -98.5t35.5 -106.5t18.5 -108t5.5 -104q0 -208 -83 -372q-41 -81 -105.5 -156t-151.5 -125h279v-261h-987v331zM785 557q16 33 30.5 76.5t25.5 94.5q9 44 13 83t4 84q0 30 -2 62.5t-7 64.5t-13.5 62.5 t-21.5 56.5q-12 25 -29.5 46t-41 36t-54 23.5t-69.5 8.5q-72 0 -121.5 -27t-78.5 -69q-30 -42 -42 -91.5t-12 -89.5q0 -21 4 -43.5t18 -40.5q18 -24 42.5 -29.5t53.5 -7.5q55 -3 110.5 -16.5t103.5 -53.5q41 -35 65 -84t24 -108q0 -10 -0.5 -19.5t-1.5 -18.5z" />
+<glyph unicode="&#x54c;" d="M33 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-268h146v-260h-146v-414h-295v1016q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-1016h-295v942z" />
+<glyph unicode="&#x54d;" d="M616 -29q-135 0 -230.5 33.5t-158.5 104.5t-92 179.5t-29 262.5v942h295v-1016q0 -112 56 -175.5t159 -63.5t159 63.5t56 175.5v1016h295v-942q0 -154 -29 -262.5t-92 -179.5t-158.5 -104.5t-230.5 -33.5z" />
+<glyph unicode="&#x54e;" d="M758 400q-47 -23 -98.5 -35.5t-127.5 -12.5q-123 0 -219 33.5t-159 104.5t-92 179.5t-29 262.5v67h295v-141q0 -112 56.5 -175.5t157.5 -63.5q50 0 90 16t68 46t43 72t15 94v646h295v-1233h146v-260h-441v400z" />
+<glyph unicode="&#x54f;" d="M630 -29q-121 0 -218.5 34.5t-166.5 97.5t-104.5 149.5t-35.5 194.5h307q0 -78 19.5 -122.5t49.5 -68.5q31 -25 69.5 -33t78.5 -8q42 0 76.5 8t61.5 29t43.5 57t16.5 92q0 20 -3 46q-6 45 -34.5 76t-81.5 58q-25 13 -53 24.5t-56 22.5q-73 28 -130 52t-112 57t-102.5 80 t-76.5 120q-14 35 -21 73.5t-7 84.5q0 48 9 95.5t30 94.5q23 50 58.5 92t84.5 73q51 32 119.5 51t165.5 19q127 0 219.5 -32t153.5 -88q60 -54 89 -125.5t29 -154.5h-300q0 51 -18.5 81.5t-47.5 47.5t-64 21.5t-61 4.5q-38 0 -68.5 -7.5t-54.5 -25.5q-56 -42 -56 -118 q0 -56 29.5 -91.5t77.5 -63.5q30 -17 59.5 -30t51.5 -21q60 -23 127 -50.5t126 -62.5q58 -35 109 -85t80 -125q14 -37 21.5 -80.5t7.5 -90.5q0 -98 -32 -181t-95 -143q-62 -60 -154.5 -94.5t-215.5 -34.5z" />
+<glyph unicode="&#x550;" d="M106 942q0 154 29 263t92 180t158.5 104t230.5 33t230.5 -33t158.5 -104t92 -180t29 -263v-67h-295v141q0 112 -56 175.5t-159 63.5t-159 -63.5t-56 -175.5v-1016h-295v942z" />
+<glyph unicode="&#x551;" d="M660 -27q-135 0 -233 38t-164 102q-67 64 -101.5 148t-34.5 177v9h298v-9q0 -42 15 -79.5t44 -66.5t71 -46.5t102 -17.5t104 18t72 49q29 32 40 74t11 81q0 95 -59 151q-29 28 -71.5 44.5t-99.5 16.5h-604v260h182q-30 49 -40 93t-10 86q0 88 32 165.5t93 134.5 q60 56 147.5 86.5t199.5 30.5t199.5 -30t148.5 -87t93 -134t32 -170q0 -97 -37.5 -171t-116.5 -114q58 -26 98 -67.5t65 -89.5q25 -49 35.5 -100t10.5 -105q0 -94 -30.5 -180.5t-95.5 -152.5q-65 -67 -163.5 -105.5t-232.5 -38.5zM652 922q51 0 84 14t54 38q39 45 39 121 q0 32 -8 63.5t-28 54.5t-53.5 36.5t-85.5 13.5q-51 0 -84.5 -13.5t-53.5 -36.5q-20 -24 -28 -56t-8 -65t7.5 -64t27.5 -54q19 -23 51.5 -37.5t85.5 -14.5z" />
+<glyph unicode="&#x552;" d="M112 1493h295v-373h714v-260h-714v-860h-295v1493z" />
+<glyph unicode="&#x553;" d="M487 138q-133 6 -221 51t-142 130q-51 80 -72 190t-21 254q0 142 21 251.5t73 187.5q54 81 141 122.5t221 46.5v122h255v-122q136 -5 224 -48t141 -121t73.5 -187.5t20.5 -249.5t-20.5 -253t-73.5 -195t-141 -128.5t-224 -51.5v-137h-255v138zM487 1143 q-73 -3 -114 -24.5t-61 -66.5q-21 -45 -25.5 -114.5t-4.5 -159.5q0 -110 5 -185.5t26 -125.5q20 -45 59.5 -71.5t114.5 -29.5v777zM742 366q73 3 114.5 28.5t61.5 74.5q20 48 24.5 121t4.5 174t-4.5 172t-24.5 116t-61.5 66.5t-114.5 24.5v-777z" />
+<glyph unicode="&#x554;" d="M197 154h-146v260h146v643q0 100 28.5 184.5t88.5 146.5q58 60 148 95t222 35q131 0 224 -35t154 -98t90.5 -146.5t29.5 -183.5q0 -103 -30.5 -187.5t-89.5 -144.5q-63 -63 -156 -97.5t-208 -34.5q-47 0 -97 9t-109 40v-226h669v-260h-669v-154h-295v154zM692 846 q56 0 92 14.5t58 41.5t30.5 66t8.5 84q0 43 -8.5 84t-31.5 70q-23 27 -59 42q-38 15 -95 15q-61 0 -97.5 -15.5t-57.5 -41.5q-22 -27 -30.5 -65t-8.5 -84q0 -48 9.5 -86t32.5 -66t61 -43.5t96 -15.5z" />
+<glyph unicode="&#x555;" d="M617 -29q-260 0 -392.5 196.5t-132.5 578.5t132.5 578t392.5 196q259 0 391.5 -195.5t132.5 -578.5t-132.5 -579t-391.5 -196zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389 q52 -121 165 -121z" />
+<glyph unicode="&#x556;" d="M614 -29q-131 0 -223.5 19.5t-157.5 56.5t-104.5 89.5t-61.5 118.5t-29 142.5t-7 164.5h251q0 -88 5 -152t26 -107q20 -42 60 -64.5t114 -25.5v677q-190 10 -281 84.5t-91 223.5q0 69 20.5 126.5t66.5 95.5t120.5 55.5t185.5 17.5h234v-375q136 -5 224 -43t141 -109 t73.5 -172t20.5 -239q0 -80 -7.5 -157t-29.5 -143t-61.5 -118.5t-105.5 -89.5t-159.5 -56.5t-223.5 -19.5zM487 1263q-36 0 -59 -5t-36 -14q-13 -10 -17.5 -23.5t-4.5 -30.5t4.5 -30t17.5 -21q25 -18 95 -18v142zM742 213q73 3 114.5 25t61.5 65t24.5 107t4.5 152t-4.5 149 t-24.5 100t-61.5 57.5t-114.5 21.5v-677z" />
+<glyph unicode="&#x559;" d="M759 986q-59 0 -111 22.5t-90.5 61t-61 90.5t-22.5 111t22.5 111t61 90.5t90.5 61t111 22.5v-154q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10 -51t28 -41.5t42 -28t51 -10.5v-154v0z" />
+<glyph unicode="&#x55a;" d="M509 1224v271h313v-271l-196 -383h-216z" />
+<glyph unicode="&#x55b;" d="M556 1638h403l-368 -376h-318z" />
+<glyph unicode="&#x55c;" d="M136 1265q3 76 27.5 139.5t68.5 111.5t103.5 79.5t131.5 45.5q49 10 88 18t70.5 16t58 16.5t52.5 20.5q51 23 78 49.5t31 67.5h251q0 -61 -13.5 -125.5t-45.5 -120.5q-19 -32 -42 -55.5t-51.5 -41t-62 -30t-72.5 -22.5q-17 -5 -29 -7.5t-27.5 -5.5t-38.5 -7t-60 -11 q-75 -14 -134 -30t-96 -43q-17 -13 -26.5 -28t-9.5 -37h-252v0z" />
+<glyph unicode="&#x55d;" d="M273 1638h403l283 -376h-318z" />
+<glyph unicode="&#x55e;" d="M840 1209q-51 0 -99.5 12t-90.5 41q-44 30 -71.5 75.5t-36.5 116.5h165q6 -32 32 -46.5t60 -14.5q27 0 45.5 8.5t30.5 23.5q13 16 17 34t4 33q0 38 -17 61.5t-46 39.5t-66.5 23.5t-79.5 7.5q-85 0 -157.5 -28t-128.5 -75q-122 -102 -140 -256h-194q3 90 30.5 168 t73.5 144q47 67 108 118t133 87q71 35 148.5 54.5t163.5 19.5q103 0 184 -27.5t138 -75.5q58 -48 88.5 -112t30.5 -137q0 -60 -20.5 -112t-62.5 -93q-42 -42 -103 -66t-139 -24z" />
+<glyph unicode="&#x55f;" d="M188 1556h140v-169h716v-122h-856v291z" />
+<glyph unicode="&#x561;" d="M333 -27q-73 0 -122 26t-75 74q-26 47 -41 146t-15 270v631h240v-719q0 -64 4.5 -104.5t15.5 -63.5q11 -26 28 -33.5t39 -7.5q24 0 42 8.5t29 34.5q20 44 20 166v719h237v-719q0 -63 5 -103t16 -63q11 -26 28.5 -34.5t41.5 -8.5q22 0 39.5 7.5t28.5 33.5q11 23 15 63.5 t4 104.5v719h240v-1120h-213v116q-25 -66 -79.5 -104.5t-120.5 -38.5q-36 0 -68 11t-58 30q-31 22 -47 46.5t-22 51.5q-33 -72 -82.5 -105.5t-129.5 -33.5z" />
+<glyph unicode="&#x562;" d="M149 1120h291v-168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-277h-291v232q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-416h644v-225h-644v-426h-291v1546z" />
+<glyph unicode="&#x563;" d="M766 158q-57 -97 -127.5 -142t-168.5 -45q-96 0 -170.5 39.5t-126.5 113.5q-53 75 -80.5 183t-27.5 251q0 141 27 250t79 185q52 75 127 114.5t169 39.5q104 0 177.5 -48.5t121.5 -146.5l29 168h263v-895h109v-225h-109v-426h-292v584zM560 215q49 0 87 24t64 69 t40.5 108t14.5 145q0 160 -55 253q-26 45 -63.5 69t-86.5 24q-50 0 -87 -24.5t-62 -67.5q-26 -45 -40 -109q-7 -32 -10.5 -67.5t-3.5 -77.5q0 -81 14 -145t40 -109q54 -92 148 -92z" />
+<glyph unicode="&#x564;" d="M711 682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-502h128v-225h-128v-426h-291v1108z" />
+<glyph unicode="&#x565;" d="M462 -29q-158 0 -238.5 104.5t-80.5 315.5v1165h293v-436h654v-225h-654v-459q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v243h293v-720h-293v166q-31 -93 -103.5 -144t-185.5 -51z" />
+<glyph unicode="&#x566;" d="M766 158q-57 -97 -127.5 -142t-168.5 -45q-96 0 -170.5 39.5t-126.5 113.5q-53 75 -80.5 183t-27.5 251q0 141 27 250t79 185q52 75 127 114.5t169 39.5q104 0 177.5 -48.5t121.5 -146.5l29 168h263v-1321h109v-225h-401v584zM560 215q49 0 87 24t64 69t40.5 108 t14.5 145q0 160 -55 253q-26 45 -63.5 69t-86.5 24q-50 0 -87 -24.5t-62 -67.5q-26 -45 -40 -109q-7 -32 -10.5 -67.5t-3.5 -77.5q0 -81 14 -145t40 -109q54 -92 148 -92z" />
+<glyph unicode="&#x567;" d="M180 1556h293v-436h579v-225h-579v-670h494v-225h-787v1556z" />
+<glyph unicode="&#x568;" d="M149 1120h291v-168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-727h-291v682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-842h644v-225h-935v1546z" />
+<glyph unicode="&#x569;" d="M54 1120h291v-168q15 46 50 82.5t83 61.5t101 38t109 13q77 0 153 -28.5t136 -97.5q59 -68 95.5 -181t36.5 -281h69v-143h-77q-14 -127 -54.5 -214t-95.5 -139q-55 -51 -118.5 -71.5t-129.5 -20.5q-69 0 -126 19.5t-99 56.5t-63.5 89t-21.5 119q0 77 26.5 134.5 t70.5 95.5t100 56t116 18h102q0 27 -1.5 58t-5.5 62t-11.5 61t-19.5 55q-25 51 -73 82.5t-118 31.5q-51 0 -90 -18t-71 -53t-52.5 -83t-20.5 -114v-1067h-291v1546zM704 107q38 0 57.5 14.5t30.5 47.5t13.5 86t2.5 131v30h-102q-26 0 -51 -10t-45 -30q-20 -21 -32.5 -51.5 t-12.5 -70.5q0 -30 8 -56.5t25 -46.5q37 -44 106 -44z" />
+<glyph unicode="&#x56a;" d="M561 -29q-135 0 -228 48.5t-153 129.5q-31 42 -53 90.5t-35.5 100.5t-20 107t-6.5 110q0 115 27.5 216.5t87.5 179.5q60 77 154 122t227 45h205v436h292v-436h109v-225h-109v-338q0 -78 -11.5 -150t-37.5 -138q-26 -67 -66.5 -121.5t-94.5 -92.5q-55 -40 -126 -62 t-161 -22zM560 211q59 0 98 26t63 72t34.5 109.5t10.5 138.5v338h-205q-57 0 -96 -23t-63 -67t-34 -107t-10 -141t10 -142t34 -109q24 -46 63 -70.5t95 -24.5z" />
+<glyph unicode="&#x56b;" d="M167 1556h291v-604q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-727h-291v682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-1067h-291v1982z" />
+<glyph unicode="&#x56c;" d="M328 1120h291v-1321h286v-225h-577v1546z" />
+<glyph unicode="&#x56d;" d="M79 1556h237v-516q12 25 32.5 45t41.5 33q47 29 109 29q18 0 44.5 -4t53.5 -18q26 -14 50.5 -41t43.5 -75t30.5 -119t12.5 -171l1 -318q0 -66 5 -104.5t16 -61.5q11 -26 28.5 -34.5t41.5 -8.5q22 0 39.5 7.5t28.5 33.5q11 23 15 63.5t4 104.5v719h240v-1120h-213v116 q-28 -71 -81.5 -107t-127.5 -36q-15 0 -40.5 3.5t-54.5 18.5q-27 14 -51.5 41.5t-43.5 75.5t-31 118.5t-12 170.5l-1 318q0 63 -4.5 103t-15.5 64q-11 23 -28 32.5t-42 9.5t-42 -9t-28 -32t-16 -63.5t-5 -104.5v-1145h-237v1982z" />
+<glyph unicode="&#x56e;" d="M616 -29q-126 0 -222 43t-162 121q-67 79 -100.5 185.5t-33.5 237.5q0 91 17 170.5t53 146.5t90 117t132 82l-204 138l247 344l218 -144l-97 -137l233 -155h337v-225h-91q25 -41 44.5 -82t32 -83.5t19 -87.5t6.5 -96q0 -121 -34.5 -227.5t-99.5 -183.5q-66 -78 -162 -121 t-223 -43zM614 211q60 0 103 26.5t71 74.5q27 47 40.5 111t13.5 135q0 63 -10.5 111t-30.5 86t-50.5 68t-69.5 56l-24 16h-42q-109 0 -166.5 -86.5t-57.5 -251.5q0 -78 13.5 -142t41.5 -109q27 -45 68 -70t100 -25z" />
+<glyph unicode="&#x56f;" d="M774 166q-31 -93 -103.5 -144t-185.5 -51q-158 0 -238.5 104.5t-80.5 315.5v1165h293v-1120q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v643h293v-1546h-293v592z" />
+<glyph unicode="&#x570;" d="M168 1556h291v-604q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 171.5t-107.5 53.5q-88 0 -132 -69.5t-44 -196.5v-641h-291v1556z" />
+<glyph unicode="&#x571;" d="M497 -29q-93 0 -159 34t-108 94t-59.5 138t-17.5 159q0 96 22.5 187.5t67.5 184.5q46 96 110 184t143 168q-60 1 -103 20t-70 49t-39.5 68.5t-12.5 80.5q0 36 9.5 71.5t30.5 67.5l51 79h289l-57 -85q-18 -27 -25.5 -52t-7.5 -46q0 -44 26.5 -71.5t69.5 -27.5h9q6 0 9 1 q64 47 142 94l4 -249q-33 -18 -67 -45q92 -50 157.5 -109.5t103.5 -131.5q36 -69 50 -146t14 -168v-520h-293v166q-15 -45 -42 -80t-62 -61q-37 -26 -82 -40t-103 -14zM615 211q50 0 81.5 24.5t51.5 61.5q20 38 29 84t9 91v86q0 51 -5 105t-25 104t-56.5 90.5t-99.5 66.5 q-39 -51 -68.5 -109t-49 -119.5t-29 -124t-9.5 -122.5q0 -53 9 -95t32 -75q48 -68 130 -68z" />
+<glyph unicode="&#x572;" d="M711 682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120h262l29 -168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-928h128v-225h-419v1108z" />
+<glyph unicode="&#x573;" d="M516 -29q-94 0 -160 38t-108 103t-61 148.5t-19 185.5q0 106 19 222t56 227h-105v225h205q51 88 113 161t135 126t155.5 81.5t172.5 28.5q14 0 31 -1t35 -4t34.5 -8t28.5 -13v-248q-23 15 -44.5 24t-39.5 14q-16 4 -30 5t-25 1q-47 0 -83.5 -13t-70.5 -37 q-35 -25 -64.5 -58t-55.5 -73q100 -20 185.5 -69.5t146.5 -119.5t94 -155.5t33 -174.5v-587h-293v166q-31 -94 -105 -144.5t-180 -50.5zM620 211q89 0 135 69.5t46 196.5v160q0 35 -17 77.5t-51 79.5q-32 35 -82.5 62.5t-116.5 35.5q-35 -105 -52.5 -209t-17.5 -194 q0 -67 9 -114.5t23 -78.5t32 -48.5t37 -25.5q17 -8 31.5 -9.5t23.5 -1.5z" />
+<glyph unicode="&#x574;" d="M485 -29q-158 0 -238.5 104.5t-80.5 315.5v729h293v-684q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v1079h421v-225h-128v-1331h-293v166q-31 -93 -103.5 -144t-185.5 -51z" />
+<glyph unicode="&#x575;" d="M263 -199h234q47 0 82.5 13t57.5 42q21 29 30.5 75t9.5 112v1077h293v-1077q0 -127 -21.5 -215t-69.5 -145t-121 -82t-179 -25h-316v225z" />
+<glyph unicode="&#x576;" d="M549 -27q-157 0 -237.5 104t-80.5 316v938h-128v225h419v-1118q0 -119 33.5 -173t106.5 -54q88 0 132.5 70.5t44.5 197.5v641h291v-1120h-291v168q-31 -93 -104.5 -144t-185.5 -51z" />
+<glyph unicode="&#x577;" d="M386 -426q-48 0 -88 17t-69 46q-30 29 -46 67t-16 80q0 54 24 110t66 114q45 63 98.5 118.5t111.5 112.5q43 42 78.5 77t64.5 66t53 59.5t44 58.5q39 58 56.5 111t17.5 104q0 48 -14 84t-39 62t-60.5 41t-77.5 15q-38 0 -72.5 -12t-64.5 -35t-52.5 -53t-33.5 -65 l-209 154q31 57 79 101t107 75t123 47t137 16q101 0 189 -30t151 -85t97 -133.5t34 -179.5q0 -47 -8 -92t-28 -92t-52.5 -96.5t-80.5 -106.5q-50 -59 -114.5 -124.5t-152.5 -149.5q-43 -42 -76.5 -76.5t-58.5 -68.5q-41 -56 -41 -84q0 -14 10.5 -21t26.5 -7h530v-225h-644v0 z" />
+<glyph unicode="&#x578;" d="M168 1120h262l29 -168q32 97 107.5 146t182.5 49q156 0 237 -104.5t81 -315.5v-727h-291v682q0 118 -33.5 172.5t-106.5 54.5q-88 0 -132.5 -70.5t-44.5 -197.5v-641h-291v1120z" />
+<glyph unicode="&#x579;" d="M431 -426q-42 0 -79 15.5t-65 45.5q-28 29 -44.5 71t-16.5 96q0 51 15 113t39 125t58 131.5t76 136.5q44 72 87.5 130.5t87.5 106.5q-48 3 -93.5 23t-82.5 56q-36 35 -57.5 82t-21.5 107q0 59 24 124t84 126l120 123l188 -172l-66 -64q-42 -40 -62 -74t-20 -67 q0 -21 8 -40t23 -33.5t37.5 -23.5t52.5 -9q35 0 76 13.5t92 42.5l99 -176q-70 -57 -132.5 -121t-116.5 -130q-57 -71 -99.5 -136t-71.5 -121q-31 -60 -47.5 -112t-16.5 -94q0 -37 13 -53.5t38 -16.5h450v-225h-576v0z" />
+<glyph unicode="&#x57a;" d="M913 85q-27 -54 -74 -83t-101 -29q-34 0 -66 11t-58 30q-26 18 -44 42t-25 56q-33 -72 -82.5 -105.5t-129.5 -33.5q-73 0 -122 26t-75 74q-26 47 -41 146t-15 270v631h240v-719q0 -64 4.5 -104.5t15.5 -63.5q11 -26 28 -33.5t39 -7.5q24 0 42 8.5t29 34.5q20 44 20 166 v719h237v-719q0 -63 5 -103t16 -63q11 -26 28.5 -34.5t41.5 -8.5q22 0 39.5 7.5t28.5 33.5q11 23 15 63.5t4 104.5v719h240v-1546h-240v511z" />
+<glyph unicode="&#x57b;" d="M406 -426q-49 0 -89 17t-69 46t-45 65.5t-16 74.5q0 36 13.5 79t33.5 83q27 53 60.5 94t59.5 69q9 10 20 23t20.5 30t15.5 39t6 49q0 26 -6 48t-16 41t-23 35.5t-27 31.5q-15 16 -34 33.5t-33 29.5q-33 30 -65.5 68.5t-52.5 92.5q-10 26 -15.5 54t-5.5 62 q0 87 37.5 160.5t105.5 129.5q66 54 153 85t193 31q90 0 177 -25.5t156 -82.5q66 -55 100.5 -132t34.5 -179q0 -90 -28 -168.5t-84 -157.5q-54 -76 -133.5 -156t-187.5 -182q-85 -80 -131 -140q-26 -33 -37.5 -57t-11.5 -39q0 -27 38 -27h530v-225h-644zM562 312 q79 82 126.5 139.5t72.5 102.5t32.5 83.5t7.5 70.5q0 50 -12 86t-35 62q-24 27 -60.5 44t-76.5 17q-38 0 -74.5 -15t-63.5 -36q-29 -23 -49 -55t-20 -74q0 -32 12.5 -63.5t32.5 -58.5q12 -17 23.5 -31t17.5 -19q7 -8 17.5 -19.5t21 -25t20 -28t15.5 -28.5q12 -29 12 -62 q0 -21 -5 -43t-15 -47z" />
+<glyph unicode="&#x57c;" d="M117 1120h291v-168q13 42 40 78t62 62q36 26 83 40.5t104 14.5q91 0 157 -34.5t111 -93.5t65.5 -134.5t20.5 -161.5q0 -77 -15.5 -148.5t-41.5 -134.5q-25 -60 -60 -115t-76 -100h258v-225h-515v175q85 95 122 204q19 55 28 116.5t9 125.5q0 62 -9 113t-30 90 q-22 40 -57 62.5t-83 22.5q-46 0 -78.5 -20.5t-53.5 -57.5t-31 -85.5t-10 -100.5v-645h-291v1120z" />
+<glyph unicode="&#x57d;" d="M486 -29q-157 0 -238.5 105.5t-81.5 314.5v729h293v-684q0 -117 33 -171t107 -54q88 0 131.5 69.5t43.5 196.5v643h293v-1120h-264l-29 166q-31 -92 -103.5 -143.5t-184.5 -51.5z" />
+<glyph unicode="&#x57e;" d="M705 166q-31 -93 -103.5 -144t-185.5 -51q-158 0 -238.5 104.5t-80.5 315.5v729h293v-684q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v1079h293v-1757h138v-225h-431v592z" />
+<glyph unicode="&#x57f;" d="M314 -27q-124 0 -178.5 107.5t-54.5 320.5v719h237v-719q0 -63 5 -103t16 -63q11 -24 27.5 -33.5t41.5 -9.5q23 0 39.5 8t27.5 29q10 20 15.5 56.5t5.5 90.5v744h213v-116q25 65 77.5 104t130.5 39q123 0 178.5 -107.5t55.5 -320.5v-719h-237v719q0 63 -4.5 103t-15.5 64 q-11 23 -28 32.5t-42 9.5q-26 0 -41.5 -9t-24.5 -27q-11 -21 -16.5 -60t-5.5 -89v-743h-213v116q-25 -65 -78 -104t-131 -39z" />
+<glyph unicode="&#x580;" d="M167 1120h262l29 -168q31 93 104.5 144t185.5 51q157 0 237.5 -104t80.5 -316v-727h-291v682q0 119 -33.5 173t-106.5 54q-88 0 -132.5 -70.5t-44.5 -197.5v-1067h-291v1546z" />
+<glyph unicode="&#x581;" d="M601 -424q-95 0 -184 13.5t-183 41.5v269q83 -46 170 -68t169 -22q129 0 189 57.5t60 183.5v121q-44 -83 -116.5 -120.5t-166.5 -37.5q-99 0 -177 39t-132.5 111.5t-83.5 176t-29 233.5q0 132 29.5 238.5t84 181t130.5 115t169 40.5q100 0 174.5 -45t117.5 -127l29 143 h264v-1036q0 -134 -29.5 -230.5t-92 -158t-159.5 -90.5t-233 -29zM615 246q46 0 84.5 23.5t65.5 67t42 105t15 136.5t-15 136t-42 104.5t-65.5 67t-84.5 23.5t-84 -23.5t-65 -67t-41.5 -104.5t-14.5 -137t14.5 -137t41.5 -104t65 -66.5t84 -23.5z" />
+<glyph unicode="&#x582;" d="M188 1120h293v-895h563v-225h-856v1120z" />
+<glyph unicode="&#x583;" d="M496 104q-52 -131 -184 -131q-122 0 -176.5 108.5t-54.5 319.5v719h237v-719q0 -63 5 -103t16 -63q9 -20 24 -31.5t38 -11.5q17 0 33 8t30 28q14 21 23 57t9 91v1180h240v-541q26 66 72.5 99t112.5 33q120 0 175 -109t55 -319v-719h-237v719q0 63 -4.5 103t-15.5 64 q-11 23 -28 32.5t-39 9.5t-36.5 -9t-26.5 -32q-14 -26 -21 -65.5t-7 -102.5v-1145h-240v530z" />
+<glyph unicode="&#x584;" d="M175 -358h-110v225h110v1253h263l29 -168q91 195 298 195q99 0 173 -41t124 -113q52 -76 79 -185t27 -251q0 -280 -107 -432q-54 -76 -129.5 -115t-169.5 -39q-98 0 -168 45t-127 142v-291h663v-225h-663v-68h-292v68zM673 215q94 0 148 92q26 45 40 109q7 32 10.5 67.5 t3.5 77.5q0 81 -14 145t-40 109q-54 92 -149 92q-48 0 -86 -23.5t-64 -68.5q-55 -92 -55 -254q0 -87 15 -149.5t40 -104.5t62.5 -67t88.5 -25z" />
+<glyph unicode="&#x585;" d="M616 -29q-119 0 -214.5 41t-163 117.5t-104 185.5t-36.5 244t36.5 244t104 185.5t163 117.5t214.5 41t215 -41t163.5 -117.5t104 -185.5t36.5 -244t-36.5 -244t-104 -185.5t-163.5 -117.5t-215 -41zM616 209q53 0 95 23.5t71 68.5t44.5 110t15.5 148q0 82 -15.5 147 t-44.5 110t-71 69t-95 24t-94.5 -24t-70.5 -69t-44.5 -110t-15.5 -147q0 -83 15.5 -148t44.5 -110t70.5 -68.5t94.5 -23.5z" />
+<glyph unicode="&#x586;" d="M503 -3q-66 5 -131.5 24.5t-125.5 51.5q-62 32 -112.5 73.5t-91.5 95.5l186 192q32 -54 63 -88.5t67 -60.5q35 -25 68.5 -36.5t76.5 -18.5v639q-94 0 -165 25t-121 70q-101 92 -101 249q0 78 26 140.5t79 107.5t130 70t183 25h209v-442q127 -7 212 -45.5t138 -107.5 t75 -165t22 -219q0 -125 -22.5 -227.5t-74.5 -178.5t-137 -121.5t-213 -52.5v-423h-240v423zM503 1325q-76 0 -111.5 -23t-35.5 -83t36 -80.5t111 -20.5v207zM743 229q57 9 96 38.5t63 75.5q23 45 33 104.5t10 126.5q0 65 -9.5 115.5t-32.5 87.5q-23 35 -61.5 58t-98.5 29 v-635z" />
+<glyph unicode="&#x587;" d="M365 -29q-158 0 -238.5 104.5t-80.5 315.5v1165h293v-1120q0 -118 33 -171.5t107 -53.5q88 0 131.5 69.5t43.5 196.5v643h293v-895h240v-225h-533v166q-31 -93 -103.5 -144t-185.5 -51z" />
+<glyph unicode="&#x589;" d="M480 698q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM480 0q-30 0 -30 30v307q0 30 30 30h273q30 0 30 -30v-307q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x58a;" d="M301 735q303 -142 631 0v-291q-317 -119 -631 0v291z" />
+<glyph unicode="&#xe3f;" d="M538 0h-394v1307h394v249h141v-251q94 -6 169.5 -27t129 -60.5t82.5 -98.5t29 -140q0 -128 -71 -198.5t-209 -81.5q169 -16 250 -103.5t81 -240.5q0 -93 -29.5 -158.5t-87 -107t-144 -62.5t-200.5 -26v-302h-141v301zM538 798v304h-120v-304h120zM679 803q27 4 50 12 t40.5 24.5t27.5 42.5t10 66q0 41 -10.5 68t-28 43.5t-40.5 25t-49 12.5v-294zM538 206v387h-120v-387h120zM679 210q40 4 72.5 14t54.5 30.5t34 53.5t12 84q0 54 -13 89.5t-36 58t-54.5 33.5t-69.5 16v-379z" />
+<glyph unicode="&#x10d0;" d="M611 0q-127 0 -223 30.5t-160.5 88t-97 141t-32.5 189.5q0 33 3.5 59t13.5 50t26 48t42 53l247 -34q-20 -32 -29 -65t-9 -81q0 -128 60 -196.5t168 -68.5q106 0 164 66.5t58 192.5q0 102 -41 162t-123 92h1q-166 56 -239.5 165t-74.5 270h262q0 -44 9 -78t24 -59.5 t34.5 -42t41.5 -24.5l-1 1q106 -39 182 -84.5t125 -103t72 -130t23 -165.5q0 -111 -32.5 -199.5t-98 -150t-164.5 -94t-231 -32.5z" />
+<glyph unicode="&#x10d1;" d="M613 0q-510 0 -513 535q2 215 102.5 346t294.5 182v105q0 28 -12.5 46.5t-31 29.5t-40 17t-38.5 10q-45 10 -80 29.5t-59 52.5t-37 81.5t-13 117.5h300q0 -96 84 -112q102 -35 147.5 -101.5t45.5 -164.5v-115q94 -35 164 -84t116 -115t68.5 -150t22.5 -189 q0 -253 -130.5 -387t-390.5 -134zM614 214q106 0 158.5 80.5t52.5 248.5q0 80 -12.5 143t-38.5 108t-66 69t-91 24q-52 0 -94 -24t-72 -70q-29 -44 -44.5 -106.5t-15.5 -147.5t15.5 -145t44.5 -100q57 -80 163 -80z" />
+<glyph unicode="&#x10d2;" d="M616 -402q-269 0 -402.5 120t-133.5 356t136 355.5t406 127.5q22 9 41.5 23t33.5 38q13 22 21 54.5t8 67.5q0 19 -3 33t-9.5 24.5t-17.5 18t-26 14.5q-29 13 -60 18t-63 5q-69 0 -112 -22q-19 -10 -33.5 -27t-14.5 -42l9 -47l-166 -129q-19 25 -31.5 47t-20.5 46 q-8 23 -11.5 45.5t-3.5 51.5q0 290 397 290q211 0 317 -79t106 -240q0 -72 -23.5 -129.5t-77.5 -105.5q140 -67 204.5 -174t64.5 -265q0 -235 -133 -355t-402 -120zM616 -185q126 0 189 66.5t63 182.5q0 71 -21.5 125t-57 89.5t-81 53t-92.5 17.5t-92.5 -17.5t-81 -53.5 t-57 -89.5t-21.5 -124.5q0 -116 62.5 -182.5t189.5 -66.5z" />
+<glyph unicode="&#x10d3;" d="M697 -403q0 23 -17 45.5t-45 42.5q-30 21 -67 36t-70 23q-37 8 -74 8.5t-66 -9.5q-30 -10 -49 -31.5t-22 -56.5l-164 116q7 16 19 39t28 45t35.5 39.5t41.5 22.5q-66 67 -107 140t-67 155q-26 84 -36 173t-10 169q0 254 92.5 378t274.5 124q32 0 57 -4t46 -12t40.5 -21.5 t40.5 -31.5q38 35 94.5 52t136.5 17q97 0 171 -25.5t125 -79.5q51 -55 76 -140.5t25 -206.5v-129q0 -127 -23.5 -218.5t-72.5 -148.5t-121.5 -83t-157.5 -26q-76 0 -126 19t-89 51t-67 72t-47 88q-18 45 -26.5 90t-8.5 85l1 410q-1 12 -9 20.5t-25 8.5h-67q-15 0 -29 -10 t-23 -23q-11 -16 -17.5 -36.5t-6.5 -43.5v-374q0 -103 30.5 -175.5t80.5 -125.5q51 -54 111.5 -88.5t130.5 -66.5q29 -14 48.5 -22t33 -14t24.5 -10.5t24 -10.5q29 -13 57 -27.5t53.5 -31.5t46.5 -36.5t36 -41.5q30 -45 30 -109h-300zM805 213q32 0 58 17t43 48 q17 30 26 72.5t9 93.5v177q0 58 -14.5 100t-31.5 67q-19 28 -38.5 41.5t-30.5 13.5h-97q-15 0 -24 -9.5t-9 -26.5v-297q0 -57 3 -110t14 -95t32.5 -67t59.5 -25z" />
+<glyph unicode="&#x10d4;" d="M631 -402q-133 0 -233 27.5t-167 79t-100.5 125.5t-33.5 167q0 46 9 82t28.5 69.5t51 67.5t77.5 75l178 -95q-15 -28 -25 -49t-15 -41q-5 -21 -7 -42.5t-2 -38.5q0 -57 16.5 -98t47 -67.5t74.5 -38.5t99 -12q108 0 160.5 46t52.5 145v639q0 112 -51.5 163.5t-155.5 51.5 q-91 0 -138 -43t-47 -146q0 -41 7 -77t20 -62l-214 -90q-28 34 -45.5 61.5t-27.5 54.5t-14 57t-4 59q0 100 41.5 175.5t109 125.5t154.5 75t177 23.5t177 -28.5t154.5 -80.5t109 -134t41.5 -187.5v-629q0 -410 -505 -410z" />
+<glyph unicode="&#x10d5;" d="M619 -402q-265 0 -392.5 106t-128.5 318q0 24 5.5 54.5t16.5 63.5q11 31 27.5 63t39.5 58l238 -83q-22 -38 -27.5 -78.5t-5.5 -66.5q0 -119 61 -171.5t169 -52.5q101 0 160.5 42.5t59.5 130.5v92q0 88 -49.5 130.5t-137.5 42.5h-63v209h63q42 0 76 10.5t59 34.5 q24 23 38 58.5t14 86.5t-15 89.5t-42 65.5q-27 26 -64 39.5t-91 13.5q-45 0 -82.5 -9.5t-64 -29t-41.5 -49.5t-15 -71q0 -30 8 -59t22 -55l-208 -98q-18 15 -38 39.5t-36 53.5q-17 30 -25.5 63.5t-8.5 77.5q0 81 30.5 145.5t91.5 110t152.5 69.5t212.5 24q252 0 376.5 -104 t124.5 -296q0 -52 -9.5 -95.5t-32 -81.5t-58.5 -71t-89 -63q100 -35 148 -105t48 -179v-75q0 -200 -130 -299t-387 -99z" />
+<glyph unicode="&#x10d6;" d="M613 0q-260 0 -387.5 132.5t-127.5 386.5q0 143 42 240t138 151q-81 42 -129.5 113t-47.5 171q-2 356 399 356q202 0 302 -86t100 -249q0 -138 -76 -227q153 -42 231.5 -157.5t78.5 -311.5q0 -256 -131 -387.5t-392 -131.5zM508 1010q63 0 95.5 45.5t32.5 132.5 q0 73 -28.5 114t-99.5 41q-60 0 -89.5 -35.5t-29.5 -123.5q0 -90 30 -132t89 -42zM623 214q106 0 162.5 78t56.5 230q0 75 -14.5 137t-45.5 107q-29 42 -72 64t-95 22q-104 0 -164 -87q-29 -43 -44.5 -103.5t-15.5 -135.5q0 -78 16.5 -136t47.5 -97q29 -38 71 -58.5 t97 -20.5z" />
+<glyph unicode="&#x10d7;" d="M425 0q-193 0 -295.5 133t-102.5 396v29q0 249 103 373.5t307 124.5q72 0 125 -16.5t95 -52.5q19 17 38.5 30t42.5 21.5t50.5 13t62.5 4.5q172 0 263.5 -109t91.5 -327v-93q0 -78 -10.5 -143t-35.5 -125q-25 -61 -66 -123.5t-101 -135.5h-215q54 66 83 117t43 100 t16 103.5t2 127.5v339q0 32 -16.5 44t-45.5 12h-95q-11 0 -17 -13t-6 -28v-298q0 -127 -15.5 -221t-51.5 -157t-96 -94.5t-154 -31.5zM430 214q54 0 79 38t26 104l-1 431q0 27 -17 42q-16 14 -30 14h-68q-28 0 -48.5 -14t-33.5 -38t-19 -56t-6 -68v-309q0 -72 34 -108 t84 -36z" />
+<glyph unicode="&#x10d8;" d="M324 0q-72 57 -115.5 116.5t-68.5 126.5q-25 66 -33.5 139.5t-8.5 158.5q-1 252 130.5 388.5t394.5 136.5q131 0 226.5 -34.5t159.5 -100.5q65 -67 96 -164t31 -237q0 -73 -9.5 -145.5t-32.5 -138.5q-24 -67 -66 -128t-111 -118h-229q60 76 91 145t45 135t16 130.5 t2 130.5q0 69 -14 128t-43 101q-26 39 -65.5 61.5t-95.5 22.5q-47 0 -90 -18.5t-79 -64.5q-17 -22 -29 -47.5t-19.5 -58t-11 -73.5t-3.5 -95q0 -13 0.5 -36t2.5 -51.5t6.5 -61.5t12.5 -67q17 -72 50.5 -140.5t90.5 -140.5h-231v0z" />
+<glyph unicode="&#x10d9;" d="M636 -402q-136 0 -237 28t-168 80.5t-100 129t-33 173.5q0 27 2.5 50t8.5 44t15.5 42t22.5 44q22 38 44 66.5t44 45.5l190 -124q-9 -14 -15.5 -26.5t-9.5 -27.5q-8 -34 -8 -78q0 -121 62.5 -179t176.5 -58q49 0 88 11t67 35q27 23 41.5 59t14.5 87v47q0 111 -36.5 170 t-124.5 59h-133v220h133q161 0 161 131q0 51 -27 87.5t-91 62.5q-57 23 -139.5 35t-188.5 12v224q721 0 721 -402q0 -48 -11 -87t-35.5 -70t-63.5 -55t-95 -42q107 -39 166.5 -124t57.5 -210l-1 -58q-4 -200 -123.5 -301t-375.5 -101z" />
+<glyph unicode="&#x10da;" d="M703 -402q-21 85 -64.5 136.5t-103.5 68.5q-19 4 -37 6.5t-31 2.5q-74 0 -179 -110l-141 165q36 51 76 82t94 45q-57 62 -98 132t-68 144.5t-40 152.5t-13 157q0 245 125 365.5t382 120.5q132 0 231 -30.5t166 -89.5t100.5 -145t33.5 -197q0 -46 -5.5 -79t-16 -59.5 t-25 -49.5t-32.5 -48q-11 -16 -16 -24t-8 -19q-4 -13 -6 -30t-2 -33q0 -9 0.5 -21t2.5 -23q2 -17 6 -33t11 -37l-244 -1q-5 20 -10 36t-10 33q-6 21 -7.5 32.5t-1.5 25.5q0 42 6.5 78.5t15.5 53.5q11 21 20 40.5t15 40t9.5 44.5t3.5 55q0 75 -18.5 124t-47.5 79 q-63 64 -172 64q-111 0 -161.5 -69t-50.5 -217q0 -127 31.5 -221.5t76.5 -163t93.5 -112.5t82.5 -70q53 -40 111.5 -87t107 -98t80.5 -106t32 -111h-304v0z" />
+<glyph unicode="&#x10db;" d="M628 0q-260 0 -394 133.5t-134 400.5q0 128 31.5 223.5t98.5 156.5q66 60 163 86.5t208 26.5q42 0 75.5 -4t62 -15t53 -29.5t47.5 -47.5v223q0 94 -60 140t-173 46q-85 0 -132.5 -26t-47.5 -80v-98h-306v98q0 159 123 238t362 79q264 0 397.5 -97t133.5 -296v-687 q0 -109 -31.5 -195t-94.5 -148t-156 -95t-226 -33zM624 214q108 0 163 75t55 228q0 161 -60 233q-29 35 -71 49.5t-94 14.5q-54 0 -95 -14.5t-70 -49.5q-61 -71 -61 -222q0 -82 16.5 -141t47 -97.5t73.5 -57t96 -18.5z" />
+<glyph unicode="&#x10dc;" d="M611 0q-254 0 -383.5 125t-129.5 376v657q-1 367 394 367h523v-222h-542q-40 0 -60 -25.5t-20 -91.5v-225q30 31 56 51.5t53.5 32.5t59.5 17t75 5q118 0 211 -33.5t157 -100.5t97.5 -167.5t33.5 -235.5q0 -263 -130.5 -396.5t-394.5 -133.5zM618 213q106 0 165 78t59 241 q0 161 -58 241t-168 80q-104 0 -163.5 -77t-59.5 -241q0 -160 57 -241t168 -81z" />
+<glyph unicode="&#x10dd;" d="M202 0q-51 60 -85 119.5t-54 118.5t-28 116t-8 114v81q0 250 99.5 378.5t293.5 128.5q70 0 115 -17.5t84 -53.5q19 18 38 31.5t41 22.5t48 13t61 4q195 0 297 -126.5t102 -370.5v-91q0 -58 -8 -116t-28 -117q-19 -55 -52 -114.5t-86 -120.5h-275q54 58 86.5 112.5 t50.5 106.5t23.5 100.5t5.5 96.5v247q0 90 -25.5 135t-70.5 45h-63q-15 0 -26 -11t-9 -40l2 -404h-226l-1 404q0 29 -9.5 39t-34.5 11l-55 1q-40 1 -66 -42.5t-26 -137.5v-241q0 -48 6 -98t26 -103q20 -55 56 -110t92 -111h-291v0z" />
+<glyph unicode="&#x10de;" d="M613 0q-255 0 -385 114t-130 350q0 18 2 40t10 48q9 28 27.5 55.5t53.5 59.5h242q-12 -33 -19.5 -59.5t-12.5 -51.5t-7 -51.5t-2 -49.5q0 -62 16 -107.5t45.5 -75t71 -44t92.5 -14.5q112 0 168.5 66.5t56.5 200.5q0 143 -62.5 211.5t-170.5 68.5h-123v204h144 q45 0 78.5 12.5t55 33t32 46t10.5 51.5q0 61 -59.5 94t-189.5 48q-343 60 -343 295h293q0 -76 187 -106h-2q199 -22 297.5 -102.5t98.5 -224.5q0 -91 -40 -155t-125 -106q55 -33 95.5 -70t66.5 -83t38.5 -102.5t12.5 -127.5q0 -229 -128.5 -348.5t-394.5 -119.5z" />
+<glyph unicode="&#x10df;" d="M612 -402q-258 0 -386 105t-129 319h294q0 -103 53 -158t166 -55q54 0 101.5 13t81.5 40q33 26 51 66t18 94v841q-32 -4 -63.5 -7t-63.5 -6q-15 -2 -27 -3t-26 -2t-31.5 -3t-42.5 -5q-7 -1 -12 -1.5t-10 -0.5q-5 -1 -9.5 -1t-8.5 -1q-6 -1 -8 -1h-2.5h-2t-6.5 -1l-24 -3 v-6q58 -26 91 -60t50 -74q18 -41 24.5 -90t6.5 -89q0 -42 -6.5 -80.5t-22.5 -71.5t-42.5 -61t-66.5 -50q-70 -39 -186.5 -61t-275.5 -22v236q105 0 174 6t110.5 20t58.5 36.5t17 54.5q0 38 -22 78t-66.5 76t-112.5 65t-159 46v182l1040 140v-1083q0 -209 -132 -315.5 t-393 -106.5z" />
+<glyph unicode="&#x10e0;" d="M215 0q-57 57 -93.5 125t-57.5 137t-29 134t-8 116v87q0 59 12 127t34.5 138.5t54.5 139.5t71 131q46 73 104 134t136.5 113.5t182 98t241.5 86.5l37 -220q-149 -34 -270.5 -101.5t-215.5 -179.5q63 0 117.5 -19.5t90.5 -48.5q40 36 94 52t120 16q187 0 278.5 -117 t91.5 -347v-134q0 -60 -4.5 -118.5t-21.5 -117.5q-17 -60 -50 -117.5t-90 -114.5h-291q61 57 96 111t53 108q17 52 21.5 102.5t4.5 99.5l2 279q0 20 -6.5 46.5t-17.5 49.5q-12 25 -27.5 41t-32.5 16h-64q-20 0 -30.5 -12t-10.5 -53v-400h-226l1 405q0 20 -3.5 32t-9.5 18 q-7 6 -16.5 8t-21.5 2h-69q-17 0 -31.5 -16.5t-25.5 -40.5t-17.5 -50.5t-6.5 -45.5v-254q0 -57 3.5 -111t20.5 -110t53 -112t102 -113h-275v0z" />
+<glyph unicode="&#x10e1;" d="M617 0q-259 0 -389.5 131.5t-130.5 393.5v992h295v-992q0 -79 16 -137.5t45.5 -97t71 -57.5t93.5 -19q109 0 166.5 78t57.5 221q0 47 -7 80t-21.5 58t-37.5 44t-54 39q-30 19 -60.5 40t-53.5 59q-17 27 -23.5 54t-6.5 53q0 84 64 163t203 159l71 -126q-45 -17 -69 -37 t-37 -43t-16.5 -47t-3.5 -47q0 -12 14 -24t37 -25q15 -8 32.5 -17.5t34 -17.5t29.5 -14.5t18 -9.5q92 -47 137 -132t45 -224q0 -118 -32 -210.5t-97 -156.5t-162.5 -97.5t-228.5 -33.5z" />
+<glyph unicode="&#x10e2;" d="M621 -403q-150 0 -263 47t-188.5 138.5t-113.5 224.5t-38 306q0 166 34 286t103 209q66 86 158 138t213 73l-15 324h216l-15 -327q120 -17 213 -68.5t158 -138.5q66 -88 99 -208.5t33 -287.5q0 -349 -148.5 -532.5t-445.5 -183.5zM618 -191q155 0 232 130.5t77 387.5 q0 98 -12 179t-38 143.5t-66.5 106.5t-98.5 69l15 -494h-213l12 493q-112 -50 -163.5 -172t-51.5 -327q0 -257 76 -386.5t231 -129.5z" />
+<glyph unicode="&#x10e3;" d="M649 -403q-125 0 -219.5 29t-158 83t-95.5 131.5t-32 175.5q0 59 11.5 102.5t34.5 86.5q23 45 50 78.5t58 59.5l151 -109q-25 -51 -29.5 -98t-4.5 -100q0 -57 17.5 -100t48.5 -71t73.5 -42t92.5 -14q100 0 147.5 56t47.5 179v723q0 48 -18 63q-10 8 -26.5 10.5t-32.5 2.5 q-32 0 -54.5 -10.5t-34.5 -47.5q-10 -29 -12.5 -71t-2.5 -97l-11 -170h-158l-10 170q0 54 -2 96t-10 71q-9 32 -28.5 45.5t-48.5 13.5q-36 0 -57.5 -17.5t-40.5 -40.5q-16 -19 -25.5 -30.5t-18 -18t-18 -8.5t-24.5 -2q-24 0 -49 4.5t-47 16.5t-43 32.5t-47 50.5l60 258 q12 -21 31 -46.5t36 -42.5q20 -20 40.5 -33t38.5 -13t34 16q17 16 38 35.5t48 35.5q25 16 61 16q53 0 89.5 -33.5t71.5 -88.5q47 63 101 92.5t133 29.5q74 0 135 -26t104.5 -78.5t67.5 -132t24 -187.5l-1 -585q-1 -226 -121 -338t-365 -112z" />
+<glyph unicode="&#x10e4;" d="M681 -402q-106 0 -194.5 22.5t-152.5 73.5t-100 129.5t-36 190.5l259 -40q0 -60 17 -92t47 -49t71.5 -20.5t90.5 -3.5h25q46 0 87 10t72 30t48 49.5t17 66.5v232h-89v189l89 1l-1 466h-146q-11 -2 -18 -13q-7 -12 -9 -41v-279q0 -105 -15.5 -186.5t-55.5 -138.5 q-38 -55 -99 -82.5t-157 -27.5q-200 0 -302 124.5t-102 375.5v44q0 215 102.5 326t300.5 111q74 0 128 -16.5t97 -52.5q42 35 96.5 52t118.5 17q84 0 147 -28.5t105 -82t63 -128.5t21 -168q0 -38 -3.5 -68t-10 -55.5t-16 -47.5t-22.5 -43q-25 -42 -54 -74.5t-64 -61.5 q36 -24 67 -53t54 -61q23 -33 36 -67t13 -68v-82q0 -106 -32 -178t-95 -117t-154.5 -65t-209.5 -20h-34zM435 280q29 0 49 11.5t32 29.5q14 20 20.5 47.5t6.5 56.5v377q0 25 -12 37t-28 13l-111 1q-33 0 -56 -42q-11 -21 -17.5 -49t-6.5 -62v-275q0 -42 10 -69t28 -44 t41 -24.5t44 -7.5z" />
+<glyph unicode="&#x10e5;" d="M625 -402q-125 0 -222.5 27.5t-165.5 81.5t-103.5 135t-35.5 188q0 44 6.5 75.5t22.5 63.5t40.5 63t62.5 68l209 -65q-25 -52 -33.5 -103.5t-8.5 -89.5q0 -119 62.5 -176t172.5 -57q53 0 95 15t74 55q30 37 46 90t16 125v280q0 120 -12.5 209.5t-41.5 149.5t-77 90.5 t-123 30.5q-70 0 -106.5 -28.5t-36.5 -93.5q0 -18 2.5 -40.5t7.5 -42.5t11.5 -39t17.5 -39l-267 -87q-18 40 -26.5 66.5t-15.5 56.5q-7 32 -9.5 61.5t-2.5 54.5q0 88 27.5 153t79 107.5t125.5 63t167 20.5q27 0 48.5 -2t42 -6t40 -10.5t42.5 -16.5q37 -16 64.5 -31t41.5 -24 v59v27t1 27v54v60v313h272v-1415q0 -259 -125.5 -381.5t-384.5 -122.5z" />
+<glyph unicode="&#x10e6;" d="M732 -402q-6 38 -22.5 69.5t-35.5 52.5q-20 22 -46 39t-56 28q-41 15 -70 15q-36 0 -83 -28.5t-110 -88.5l-115 163q26 38 52.5 63t55.5 38q-275 252 -275 527v76q0 254 97.5 384t287.5 130q71 0 119.5 -18.5t86.5 -52.5q79 71 216 71q187 0 279.5 -127t92.5 -375v-66 q0 -123 -41 -221q-21 -50 -54.5 -97.5t-82.5 -97.5l-253 -1q13 19 29 41t31 45t28.5 45.5t23.5 42.5q20 40 28 76t8 68v330q0 40 -5 64.5t-15 38.5t-23.5 17.5t-30.5 3.5h-87q-14 0 -23 -8.5t-9 -38.5v-418h-226v416q0 49 -30 49h-66q-22 0 -40 -3.5t-32 -17.5t-22 -38.5 t-8 -64.5v-223q0 -75 14.5 -135.5t38 -108t54.5 -83.5t64 -63.5t65.5 -47.5t60.5 -36q84 -48 149 -89t115.5 -88.5t89.5 -108.5t71 -149z" />
+<glyph unicode="&#x10e7;" d="M635 -402q-535 0 -535 456h311q0 -246 226 -246q97 0 151.5 46.5t54.5 142.5v253q-38 -31 -63.5 -48.5t-52.5 -30.5q-16 -8 -29.5 -12.5t-28.5 -7.5t-32.5 -4t-40.5 -1q-110 0 -206 23t-162 78t-97 142t-31 205q0 67 11 123t39 110q29 54 76.5 105t122.5 105h311 q-66 -66 -106 -112t-66 -82q-26 -37 -42.5 -68t-24.5 -62q-8 -29 -9.5 -52.5t-1.5 -46.5q0 -85 11.5 -131.5t38.5 -73.5q26 -25 64 -35t89 -10q114 0 172 44.5t58 138.5v483h293v-1037q0 -395 -501 -395z" />
+<glyph unicode="&#x10e8;" d="M650 0q-263 0 -403.5 133t-140.5 402q0 136 33 227.5t95 145.5q32 28 73 48.5t87.5 34t97.5 20t102 6.5q41 0 74 -4.5t61.5 -16t55 -31t55.5 -48.5v262q0 49 -8 81t-22.5 50t-35.5 25t-48 7q-23 0 -46.5 -4.5t-33.5 -12.5q-11 -9 -14 -22t-3 -31v-110h-167v112 q0 17 -2.5 30t-11.5 22q-9 8 -27.5 12.5t-41.5 4.5q-33 0 -53 -11.5t-31 -41.5q-10 -27 -13 -67.5t-3 -94.5h-276q0 422 280 422q91 0 155.5 -42.5t101.5 -121.5q21 44 45 75.5t55.5 51t70.5 28.5t90 9q160 0 250.5 -85.5t90.5 -256.5v-718q0 -249 -121.5 -369.5 t-370.5 -120.5zM655 214q193 0 193 306q0 90 -16 143t-46 85t-72.5 43.5t-93.5 11.5q-53 0 -94 -12t-70 -44t-43.5 -83.5t-14.5 -128.5q0 -87 18.5 -145.5t53.5 -97.5t85.5 -58.5t99.5 -19.5z" />
+<glyph unicode="&#x10e9;" d="M98 1183q0 367 437 367q215 0 325 -84t110 -235q0 -31 -5 -56.5t-15.5 -51.5t-28 -55t-42.5 -68q52 -28 98.5 -72.5t81.5 -103.5t56 -128t21 -157q0 -72 -15.5 -144t-48 -140.5t-82 -133t-117.5 -121.5h-316q136 130 210.5 266t74.5 291q0 73 -17 130t-49 94 q-33 38 -79.5 55t-97.5 17q-104 0 -155.5 -67.5t-51.5 -190.5v-595h-294v1183zM392 955q46 58 101 78q51 18 143 17l56 -1l14 142q0 48 -12 77.5t-35 46.5q-23 16 -57 22t-60 6q-75 0 -112.5 -39.5t-37.5 -128.5v-220z" />
+<glyph unicode="&#x10ea;" d="M643 -401q-299 0 -442.5 173t-143.5 535v92q0 78 11.5 161t36.5 171t65 181t98 192l231 -121q-41 -63 -68.5 -126t-46.5 -135q-17 -63 -25.5 -126.5t-8.5 -139.5v-149q0 -130 17.5 -224t53.5 -155t91.5 -90t131.5 -29q60 0 113 18.5t82 57.5q15 19 24.5 45.5t15.5 56.5 t8.5 63t2.5 65q0 100 -25 144.5t-89 44.5h-232v206h225q97 0 96 135q0 31 -11.5 51.5t-28.5 34t-36 21.5t-35 14q-44 18 -76.5 39.5t-54.5 54t-33 78t-13 110.5h289q0 -70 21.5 -108.5t62.5 -55.5q24 -10 58 -26.5t65 -43.5t52.5 -66.5t21.5 -95.5q0 -73 -40 -133.5 t-112 -109.5q49 -37 83.5 -72t56 -73.5t31 -83.5t9.5 -101q0 -48 -7 -96.5t-22 -95t-38.5 -87.5t-56.5 -74q-66 -64 -171.5 -95.5t-236.5 -31.5z" />
+<glyph unicode="&#x10eb;" d="M621 0q-264 0 -393.5 127.5t-129.5 393.5q0 272 129.5 409t370.5 137q44 0 81 -5.5t72 -21.5q32 -14 61 -37t50 -56v570l274 -1v-1010q0 -261 -129.5 -383.5t-385.5 -122.5zM614 214q108 0 166 69q30 35 46 91.5t16 142.5t-16 151t-46 107t-73 60.5t-92 18.5 q-208 0 -208 -328q0 -163 51 -237.5t156 -74.5z" />
+<glyph unicode="&#x10ec;" d="M603 0q-144 0 -237 38t-152 109q-56 66 -88 165t-32 228v708q0 75 24.5 131t69.5 94q43 37 103.5 57t127.5 20q94 0 164 -41q35 -20 64 -50.5t49 -72.5q77 164 256 164q281 0 281 -422h-276q0 54 -3 94.5t-13 67.5q-11 32 -32 42.5t-52 10.5q-23 0 -41 -4.5t-27 -12.5 q-10 -9 -12.5 -22t-2.5 -30v-112h-167v110q0 18 -3 31t-14 22q-11 8 -32.5 12.5t-56.5 4.5q-29 0 -50 -4t-35 -16q-15 -13 -22.5 -37t-7.5 -66v-302q27 25 53 43.5t56 31t67 19t85 6.5q103 0 195.5 -29t158.5 -91q63 -60 96 -151.5t33 -222.5q0 -265 -135 -394t-392 -129z M606 213q51 0 95 17t76 53q30 35 45.5 88t15.5 138q0 82 -14.5 138t-42.5 91t-70 50t-100 15q-52 0 -92 -12.5t-69 -43.5q-29 -30 -45.5 -81t-16.5 -133q0 -77 15 -138.5t43 -103.5t68 -60t92 -18z" />
+<glyph unicode="&#x10ed;" d="M616 -402q-131 0 -228 27.5t-161.5 79t-96.5 125.5t-32 167q0 34 5 64t19.5 61.5t39.5 67.5t66 82l213 -141q-25 -24 -38 -62q-6 -18 -8.5 -36t-2.5 -36q0 -95 58 -142.5t163 -47.5q54 0 96.5 13t72.5 40q29 26 45 65t15 93q0 69 -47.5 123.5t-128.5 96.5 q-102 94 -125 176q-6 -2 -11 -2h-4t-7 -2q-383 0 -383 349q0 353 386 353l10 -1v406h279v-508q34 -27 58.5 -61.5t31.5 -69.5h189v-232h-192q-8 -32 -28.5 -67t-50.5 -60l-1 -52q1 -46 145 -131q87 -59 129 -137.5t42 -190.5q0 -198 -130 -304t-388 -106zM533 578 q26 0 54.5 14t51.5 39q25 26 38.5 59t13.5 69q0 39 -14.5 71.5t-34.5 54.5q-22 23 -48.5 36.5t-52.5 13.5t-55 -13.5t-52 -36.5q-24 -24 -38.5 -56t-14.5 -70q0 -36 13.5 -69t36.5 -59q25 -28 52 -40.5t50 -12.5z" />
+<glyph unicode="&#x10ee;" d="M623 0q-137 0 -233 38t-162 110t-98 176t-32 239l-1 954h292v-563q29 35 56.5 57t57 34.5t62 17t71.5 4.5q119 0 212 -33.5t156.5 -100t97 -167t33.5 -234.5q0 -261 -128.5 -396.5t-383.5 -135.5zM618 214q105 0 164.5 77.5t59.5 238.5q0 163 -60 243t-166 80 q-108 0 -166 -80.5t-58 -240.5q0 -162 59.5 -240t166.5 -78z" />
+<glyph unicode="&#x10ef;" d="M613 -402q-260 0 -388 109.5t-128 313.5q0 50 8 94.5t23.5 86.5t40 83t57.5 85l209 -136q-25 -47 -34 -94t-9 -92q0 -239 219 -239q106 0 168.5 53.5t62.5 158.5q0 47 -13 86t-36 71t-55 57t-69 44q-99 67 -148 135t-50 140l20 187l-356 53v259l356 -101l-20 297h267 l-20 -345l376 -79v-260l-376 127l20 -138q0 -11 16 -26.5t34 -29.5q13 -10 31.5 -23t39 -26.5t41.5 -27t39 -24.5q96 -72 146.5 -164.5t50.5 -217.5q0 -204 -133 -310.5t-390 -106.5z" />
+<glyph unicode="&#x10f0;" d="M622 0q-524 0 -524 432v134h293v-134q0 -116 58 -167t171 -51q48 0 89 9t70 29t45.5 52t16.5 77q0 23 -4.5 52t-14.5 44q-9 14 -20.5 18t-23.5 4h-279v219h280q10 0 20.5 2t19.5 10t15 23t6 42q0 25 -5.5 39t-14.5 21t-20 8.5t-21 1.5h-280v221h278q8 0 17.5 2t18.5 9 q8 7 14 19.5t6 29.5q0 24 -14 40.5t-49 28.5q-36 13 -74 17t-91 13q-38 6 -87.5 20t-93 46t-73.5 89t-30 150h228q0 -26 25.5 -45t63.5 -34q48 -19 94.5 -27t95.5 -14q22 -3 51.5 -8t61.5 -15.5t63 -28t55.5 -45t39.5 -66.5t15 -92q0 -66 -27 -113t-90 -80 q61 -33 94.5 -81.5t33.5 -109.5q0 -117 -133 -187q42 -30 70 -57.5t44.5 -56t23 -59.5t6.5 -67q0 -85 -32 -152.5t-96.5 -114.5t-160.5 -72t-225 -25z" />
+<glyph unicode="&#x10f1;" d="M661 -402q-152 0 -257.5 33t-171 100.5t-95 170.5t-29.5 244q0 57 4 113t11.5 115t17.5 122t22 133q5 31 9.5 59.5t6 59t0 64.5t-7.5 77q-9 63 -27 131.5t-45 156.5h274q12 -39 22 -73.5t18 -67.5t14 -67t11 -71q5 -42 6.5 -76t0 -66t-5 -63.5t-8.5 -68.5 q-15 -116 -27 -234.5t-12 -221.5q0 -104 14.5 -173t44 -111t73.5 -59.5t103 -17.5q69 0 115.5 19.5t73.5 49t35.5 63.5t2.5 63.5t-25.5 49t-49.5 19.5h-187v211h187q41 0 55.5 23.5t14.5 73.5q0 30 -4.5 53t-12.5 36q-9 12 -22 16.5t-30 4.5h-188v207h188q34 0 51.5 23.5 t17.5 84.5q0 31 -4.5 48t-13.5 26t-22 11t-30 2h-187v214h187q35 0 54 21.5t15.5 50t-34.5 55.5t-97 39q-183 45 -185 279h215q0 -21 18 -39t46 -33t63 -27.5t70 -22.5q192 -62 192 -230q0 -66 -30.5 -116t-96.5 -79q68 -31 97.5 -82t29.5 -113q0 -76 -36.5 -132.5 t-90.5 -86.5q62 -29 94.5 -85.5t32.5 -125.5q0 -74 -36.5 -122.5t-104.5 -80.5q141 -79 141 -256q0 -321 -475 -321z" />
+<glyph unicode="&#x10f2;" d="M136 22q72 0 125 10t85 32q-65 47 -112 98t-77 110t-44.5 127t-14.5 149q0 123 32.5 219.5t97 163t161.5 101t226 34.5q130 0 227.5 -35t163 -101t98 -162t32.5 -217q0 -84 -16 -152.5t-48.5 -127t-82 -109t-117.5 -97.5q38 -22 92.5 -32.5t121.5 -8.5v-294 q-331 81 -482 235q-91 -78 -207.5 -137t-260.5 -102v296zM610 195q107 35 170.5 119t62.5 216q1 79 -15 139.5t-45.5 101t-72.5 61.5t-96 21q-106 0 -164 -79t-58 -234q0 -140 52.5 -223t165.5 -122z" />
+<glyph unicode="&#x10f3;" d="M609 -191q110 0 171.5 58t61.5 164v31q0 121 -74 177t-203 55h-174v195h174q114 0 169.5 93.5t54.5 264.5l-357 -21v-197h-294v405l998 32q0 -224 -63 -386t-186 -262q249 -121 249 -371v-31q0 -83 -29.5 -150t-79 -117t-116 -83.5t-141.5 -50t-154 -16.5t-153.5 17 t-141 50.5t-116.5 84t-79 118t-29 152.5l43 147l298 -30l-47 -123q0 -103 58.5 -154.5t159.5 -51.5z" />
+<glyph unicode="&#x10f4;" d="M619 -402q-264 0 -393 113t-129 346l294 1q0 -126 59 -188t166 -62q48 0 91 12.5t73 38.5q62 53 62 157v53q0 46 -16.5 81.5t-47.5 59.5q-62 47 -171 47h-216v225h213q46 4 87.5 28t73.5 65q31 39 51.5 95.5t25.5 131.5q-3 0 -4.5 -0.5t-6 -1.5t-13.5 -2.5l-27 -4.5 q-14 -3 -26.5 -5t-26 -4t-29.5 -4t-38 -4q-15 -2 -29.5 -3t-35.5 -1q-125 0 -219 25.5t-159 75.5q-130 100 -130 290q0 199 144.5 294t433.5 94l-1 -208q-157 0 -233.5 -50t-76.5 -143q0 -85 61 -125t172 -40q63 0 125.5 13t128 40t136 68t148.5 97v-350q0 -176 -66 -292 t-201 -183q135 -42 201 -116t66 -189v-53q0 -212 -130 -317t-387 -105z" />
+<glyph unicode="&#x10f5;" d="M593 0q-244 0 -364 89t-120 273q0 182 121 277t363 95h202v76h-202q-242 0 -363 97t-121 280q0 185 121 274.5t365 89.5q241 0 358.5 -88t117.5 -270v-166h107v-217h-107v-76h107v-245h-107v-134q0 -180 -118.5 -267.5t-359.5 -87.5zM795 1027v166q0 147 -195 147 q-196 0 -196 -153q0 -78 47.5 -119t141.5 -41h202zM599 209q196 0 196 162v147h-202q-189 0 -189 -154q0 -155 195 -155z" />
+<glyph unicode="&#x10f6;" d="M316 -190q43 0 79.5 11t62.5 34t40.5 55.5t12.5 77.5l1 807q0 32 -9 44t-26 14h-98q-26 2 -41 -33q-16 -33 -16 -105v-302q0 -167 122 -167v-217q-417 4 -417 397v228q0 412 347 412q160 0 242 -88q40 46 100.5 67t138.5 21q351 0 351 -412v-232q0 -212 -86.5 -317 t-257.5 -105q-35 0 -60 4.5t-45 13.5v-16q-5 -204 -115.5 -303.5t-325.5 -99.5v211zM828 214q51 0 67.5 29.5t16.5 90.5v395q0 64 -17.5 94t-52.5 30h-80q-35 0 -35 -60l1 -459q0 -66 26.5 -93t73.5 -27z" />
+<glyph unicode="&#x10f7;" d="M609 -403q-130 0 -229 26.5t-166 81t-101.5 137.5t-35.5 196q0 88 17 155.5t45.5 118.5t64.5 87t74.5 62t76.5 43t69 29q65 26 115.5 44.5t84.5 39.5t51.5 49t17.5 72q0 49 -23 82.5t-73 33.5q-20 0 -49 -6t-53 -20t-39 -35t-15 -49l6 -57l-216 -33l-15 72 q0 172 99.5 256t285.5 84q100 0 172.5 -23.5t120 -67t70.5 -105.5t23 -139q0 -67 -18 -121t-59 -99.5t-106.5 -85t-159.5 -78.5q-91 -23 -151.5 -71.5t-91.5 -108.5t-32 -123.5t27 -116t85.5 -86t143.5 -33.5q110 0 173 62t63 193q0 14 -1.5 36t-7.5 42t-17.5 38t-32.5 35 l216 149q34 -39 60 -78t43.5 -80.5t26 -86t8.5 -95.5q0 -101 -33.5 -180t-102 -133.5t-171 -83.5t-240.5 -29z" />
+<glyph unicode="&#x10f8;" d="M617 -403q-254 0 -386 104.5t-132 310.5v1032h294v-573q0 -36 15.5 -62.5t44 -44t67 -26t85.5 -8.5q115 0 176.5 56.5t61.5 188.5q0 58 -13 112.5t-45 106.5q-31 51 -83 102t-128 99l285 98q81 -63 134 -125.5t85 -125.5q33 -66 45.5 -132.5t12.5 -133.5 q0 -233 -128 -350.5t-383 -117.5q-74 0 -130.5 9.5t-101.5 28.5v-130q0 -105 57 -156t162 -51q115 0 173 60.5t58 184.5h294q-2 -233 -131 -345t-389 -112z" />
+<glyph unicode="&#x10f9;" d="M635 -402q-200 0 -296 82t-96 244q0 100 39 171.5t125 124.5q-171 53 -249 153t-78 252q-1 114 45 199t121 141.5t171.5 85t197.5 28.5t197.5 -28t172 -84t122 -139.5t46.5 -194.5q0 -150 -92 -263.5t-284 -204.5q-71 -29 -118.5 -57t-75.5 -56.5t-39.5 -59t-11.5 -66.5 q0 -54 24.5 -86t81.5 -32q47 0 80 24t33 71v111h284v-111q0 -153 -104 -229t-296 -76zM620 386q130 19 185.5 80.5t55.5 166.5q0 114 -60 174.5t-181 60.5q-122 0 -183 -61.5t-61 -173.5q0 -107 58 -168t186 -79z" />
+<glyph unicode="&#x10fa;" d="M686 -195q0 57 -10.5 90t-27.5 53q-17 19 -44.5 31.5t-56.5 12.5q-46 0 -85.5 -34t-78.5 -100l-217 124q75 111 182 145q-102 90 -161 215q-29 63 -44.5 130.5t-15.5 145.5q0 225 131 337t389 112q229 -19 345 -112t116 -257q0 -96 -40 -219t-121 -282l-235 98 q57 123 83.5 217.5t26.5 162.5q0 179 -185 179q-110 0 -162.5 -61.5t-52.5 -176.5q4 -151 42 -235q39 -86 135 -172q88 -26 169.5 -79t148.5 -134l-231 -191v0z" />
+<glyph unicode="&#x10fb;" d="M301 797q-30 0 -30 30v150q0 30 30 30h185q30 0 30 -30v-150q0 -30 -30 -30h-185zM753 444q-30 0 -30 30v148q0 30 30 30h179q30 0 30 -30v-148q0 -30 -30 -30h-179zM301 49q-30 0 -30 30v148q0 30 30 30h182q30 0 30 -30v-148q0 -30 -30 -30h-182z" />
+<glyph unicode="&#x10fc;" d="M602 736q-103 0 -161.5 74t-58.5 224v323q0 196 209 196h258v-119l-281 2q-39 0 -39 -59v-108l80 50q61 0 106.5 -25t76 -66t45.5 -93.5t15 -107t-15.5 -107t-47 -93.5t-78 -66t-109.5 -25zM619 852q38 0 60.5 44.5t22.5 129.5q0 84 -22.5 124t-60.5 40q-31 0 -51.5 -25 t-30.5 -62.5t-9.5 -81.5t11 -81.5t30.5 -62.5t50 -25z" />
+<glyph unicode="&#x1e80;" d="M283 1859h284l199 -264h-197zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
+<glyph unicode="&#x1e81;" d="M150 1646h282l283 -376h-197zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
+<glyph unicode="&#x1e82;" d="M668 1859h284l-286 -264h-197zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
+<glyph unicode="&#x1e83;" d="M801 1646h282l-368 -376h-197zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
+<glyph unicode="&#x1e84;" d="M331 1595q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1595q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z " />
+<glyph unicode="&#x1e85;" d="M331 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z " />
+<glyph unicode="&#x1ebc;" d="M298 1588v30q0 53 14 96.5t41 74.5t62.5 48t77.5 17q75 0 151 -49l60 -39q23 -15 40.5 -22t36.5 -7q35 0 54.5 30t19.5 87h140v-6q0 -6 -1 -9t-1 -8v-5q0 -54 -13.5 -98t-39.5 -75t-63 -48t-82 -17q-36 0 -70.5 11.5t-76.5 37.5l-54 34l-12 7q-24 13 -40 19.5t-32 6.5 q-33 0 -52.5 -29.5t-19.5 -80.5v-6h-140zM168 0v1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930z" />
+<glyph unicode="&#x1ebd;" d="M965 1554q0 -138 -51.5 -211t-149.5 -73q-32 0 -63 12q-37 13 -83 45l-67 45q-44 29 -72 29q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 71.5 -13t77.5 -44l62 -43q44 -31 75 -31q35 0 54.5 32t19.5 89v8h140zM231 122q-149 152 -149 432 q0 140 35.5 246.5t107.5 187.5q142 159 392 159q247 0 385 -147q137 -146 137 -416v-119h-759q2 -133 78 -197.5t229 -64.5q99 0 200 29q105 33 205 92v-269q-102 -42 -208 -63q-101 -21 -219 -21q-145 0 -252 37.5t-182 113.5zM844 685q-1 117 -59 176q-28 28 -70.5 43.5 t-97.5 15.5q-102 0 -162.5 -61t-71.5 -175z" />
+<glyph unicode="&#x1ef2;" d="M283 1859h284l199 -264h-197zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="&#x1ef3;" d="M161 1646h282l283 -376h-197zM137 -201h119q44 0 76 6.5t56.5 25t44.5 52t40 88.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-59 -158 -141.5 -230.5t-200.5 -72.5h-242v223z" />
+<glyph unicode="&#x1ef8;" d="M288 1588v30q0 53 14 96.5t41 74.5t62.5 48t77.5 17q75 0 151 -49l60 -39q23 -15 40.5 -22t36.5 -7q35 0 54.5 30t19.5 87h140v-6q0 -6 -1 -9t-1 -8v-5q0 -54 -13.5 -98t-39.5 -75t-63 -48t-82 -17q-36 0 -70.5 11.5t-76.5 37.5l-54 34l-12 7q-24 13 -40 19.5t-32 6.5 q-33 0 -52.5 -29.5t-19.5 -80.5v-6h-140zM469 0v588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295z" />
+<glyph unicode="&#x1ef9;" d="M995 1554q0 -138 -51.5 -211t-149.5 -73q-32 0 -63 12q-37 13 -83 45l-67 45q-44 29 -72 29q-34 0 -52.5 -31.5t-18.5 -89.5v-8h-140q0 137 51.5 210.5t145.5 73.5q38 0 71.5 -13t77.5 -44l62 -43q44 -31 75 -31q35 0 54.5 32t19.5 89v8h140zM137 -424v223h119 q92 0 132 30q22 16 44 54.5t41 87.5l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-61 -160 -141 -231q-82 -72 -201 -72h-242z" />
+<glyph unicode="&#x2000;" />
+<glyph unicode="&#x2001;" />
+<glyph unicode="&#x2002;" />
+<glyph unicode="&#x2003;" />
+<glyph unicode="&#x2004;" />
+<glyph unicode="&#x2005;" />
+<glyph unicode="&#x2006;" />
+<glyph unicode="&#x2007;" />
+<glyph unicode="&#x2008;" />
+<glyph unicode="&#x2009;" />
+<glyph unicode="&#x200a;" />
+<glyph unicode="&#x2010;" d="M301 735h631v-291h-631v291z" />
+<glyph unicode="&#x2011;" d="M301 735h631v-291h-631v291z" />
+<glyph unicode="&#x2012;" d="M0 690h1233v-246h-1233v246z" />
+<glyph unicode="&#x2013;" d="M0 690h1233v-246h-1233v246z" />
+<glyph unicode="&#x2014;" d="M0 690h1233v-246h-1233v246z" />
+<glyph unicode="&#x2015;" d="M0 690h1233v-246h-1233v246z" />
+<glyph unicode="&#x2016;" d="M257 1565h227v-2048h-227v2048zM747 1565h227v-2048h-227v2048z" />
+<glyph unicode="&#x2017;" d="M0 -18h1233v-190h-1233v190zM0 -293h1233v-190h-1233v190z" />
+<glyph unicode="&#x2018;" d="M432 1174l197 382h215l-99 -382v-271h-313v271z" />
+<glyph unicode="&#x2019;" d="M530 1286v270h314v-270l-197 -383h-215z" />
+<glyph unicode="&#x201a;" d="M461 96v271h313v-271l-196 -383h-216z" />
+<glyph unicode="&#x201b;" d="M432 1286v270h314v-270l98 -383h-215z" />
+<glyph unicode="&#x201c;" d="M152 1174l196 382h215l-98 -382v-271h-313v271zM672 1174l196 382h213l-96 -382v-271h-313v271z" />
+<glyph unicode="&#x201d;" d="M248 1286v270h313v-270l-196 -383h-215zM768 1286v270h313v-270l-196 -383h-215z" />
+<glyph unicode="&#x201e;" d="M248 96v271h313v-271l-196 -383h-215zM768 96v271h313v-271l-196 -383h-215z" />
+<glyph unicode="&#x201f;" d="M150 1286v270h313v-270l98 -383h-215zM670 1286v270h313v-270l98 -383h-215z" />
+<glyph unicode="&#x2020;" d="M487 883h-331v223h331v387h256v-387h332v-223h-332v-1080h-256v1080z" />
+<glyph unicode="&#x2021;" d="M487 190h-331v224h331v469h-331v223h331v387h256v-387h332v-223h-332v-469h332v-224h-332v-387h-256v387z" />
+<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-28 12 -59 32.5t-57 46.5q-25 26 -44 55.5t-33 61.5t-20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q31 -13 60.5 -32.5t54.5 -44.5q24 -24 44.5 -53t35.5 -64q27 -65 27 -137 q0 -74 -27 -138q-12 -29 -31.5 -59t-48.5 -59t-57.5 -47.5t-58.5 -31.5q-29 -12 -64 -20t-76 -8z" />
+<glyph unicode="&#x2023;" d="M256 1200l801 -440l-801 -441v881z" />
+<glyph unicode="&#x2026;" d="M87 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM499 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM911 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235z" />
+<glyph unicode="&#x202f;" />
+<glyph unicode="&#x2030;" d="M286 856q-60 0 -112 22.5t-90 60.5q-42 42 -63 94t-21 111q0 63 22.5 115.5t59.5 89.5q40 40 93 61.5t112 21.5q61 0 112.5 -22.5t89.5 -61.5q38 -38 60 -90t22 -112t-22 -114t-60 -92q-42 -43 -95 -63.5t-108 -20.5zM285 1018q50 0 88 39q20 21 28.5 43t8.5 46 q0 50 -37 87t-89 37q-51 0 -86 -35q-36 -36 -36 -88q0 -54 36 -91q36 -38 87 -38zM35 664l1044 415l39 -94l-1046 -420zM330 0q-120 0 -202 84q-83 85 -83 206q0 63 21 112t62 90q83 83 201 83q121 0 204 -83q40 -40 61.5 -91t21.5 -113q0 -58 -20 -108t-64 -95 q-84 -85 -202 -85zM946 0q-57 0 -107.5 20.5t-92.5 61.5q-42 42 -63 93.5t-21 109.5v4q0 58 20.5 109.5t61.5 93.5q41 41 92.5 62t109.5 21q60 0 113 -22.5t91 -60.5q42 -42 62.5 -94.5t20.5 -109.5t-20.5 -109t-62.5 -94q-39 -40 -91 -62.5t-113 -22.5zM330 162q50 0 88 39 q20 21 28.5 43t8.5 46q0 50 -37 87t-88 37t-87 -36t-36 -87q0 -54 36 -91q36 -38 87 -38zM946 162q24 0 47.5 10t41.5 28q15 15 25.5 38.5t10.5 52.5q0 48 -37 85q-38 37 -88 38q-23 0 -45.5 -9t-40.5 -27q-16 -16 -26.5 -39.5t-10.5 -50.5q0 -24 9.5 -47.5t26.5 -41.5 q14 -15 37.5 -26t49.5 -11z" />
+<glyph unicode="&#x2031;" d="M286 856q-59 0 -111 22.5t-91 61.5t-61.5 92t-22.5 113t22.5 112.5t61.5 91t91 61t111 22.5q60 0 112 -22.5t90.5 -61.5t60.5 -91t22 -112t-22.5 -112.5t-61 -92t-90.5 -62t-111 -22.5zM285 1018q25 0 48 10.5t40 28t27 40.5t10 49q0 25 -10 47.5t-27 39.5t-40 27t-49 10 t-48 -9.5t-38.5 -26t-26 -39t-9.5 -48.5t9.5 -49.5t26.5 -41t39 -28t48 -10.5zM35 664l1044 415l39 -94l-1046 -420zM254 0q-54 0 -100 22.5t-80.5 61.5t-54 92t-19.5 114q0 60 19 112t53.5 90.5t81 60.5t102.5 22q103 0 176 -83l2 -3l3 3q36 42 83 63t95.5 21t95.5 -21 t85 -63l1 -3l3 3q74 83 176 83q54 0 101 -22.5t81.5 -61t54.5 -90.5t20 -112t-20 -112.5t-54.5 -92t-81 -62t-100.5 -22.5q-102 0 -176 83l-4 4l-1 -3q-75 -84 -180 -84q-104 0 -178 83l-4 4l-2 -3q-75 -84 -178 -84zM253 162q22 0 42.5 10.5t35.5 28.5t24 41t9 48t-9 47.5 t-24.5 39.5t-36 27t-42.5 10t-41.5 -9.5t-34.5 -26.5t-23.5 -39.5t-8.5 -48.5t8.5 -49t23.5 -40.5t34.5 -28t42.5 -10.5zM616 162q22 0 42 10t35 27t24 39.5t9 46.5v4q0 25 -9 48t-24.5 40t-35.5 27t-42 10t-41.5 -10t-34.5 -27.5t-23.5 -40.5t-8.5 -48t8.5 -48t23 -40 t34.5 -27.5t43 -10.5zM978 162q23 0 43 10t35 27.5t24 40t9 48.5t-9 48.5t-24 39.5t-35.5 27t-42.5 11q-22 0 -41 -9.5t-33.5 -25.5t-23 -35.5t-10.5 -40.5v-14v-14q2 -21 10.5 -41.5t23 -36.5t33 -25.5t41.5 -9.5z" />
+<glyph unicode="&#x2034;" d="M189 1493h278l-289 -373h-162zM564 1493h278l-289 -373h-162zM939 1493h278l-289 -373h-162z" />
+<glyph unicode="&#x2035;" d="M391 1493h278l173 -373h-162z" />
+<glyph unicode="&#x2036;" d="M201 1493h278l173 -373h-162zM581 1493h278l173 -373h-162z" />
+<glyph unicode="&#x2037;" d="M16 1493h278l173 -373h-162zM396 1493h278l173 -373h-162zM766 1493h278l173 -373h-162z" />
+<glyph unicode="&#x2039;" d="M256 535v131l469 393v-238l-276 -221l276 -221v-238z" />
+<glyph unicode="&#x203a;" d="M510 379l278 221l-278 221v238l469 -393v-131l-469 -394v238z" />
+<glyph unicode="&#x203c;" d="M175 838v655h267v-655l-33 -357h-199zM791 838v655h267v-655l-33 -357h-199zM308 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38 q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5zM928 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5 t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5z" />
+<glyph unicode="&#x203d;" d="M440 1252l-20 -8q-21 -8 -41.5 -17.5t-43 -21.5t-47.5 -28t-55 -38v268q99 57 198 85t205 28q99 0 178 -24t135 -69.5t86 -111t30 -147.5q0 -37 -7.5 -71t-25.5 -69.5t-49.5 -74t-79.5 -85.5l-88 -86q-37 -36 -57.5 -62t-31 -48.5t-13.5 -46t-4 -54.5l-2 -47v-123h-267 v851zM707 997q35 37 54 71t19 78q0 66 -46 100q-12 9 -27 15v-264zM574 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121 t-114 -47z" />
+<glyph unicode="&#x203e;" d="M0 1547h1233v-190h-1233v190z" />
+<glyph unicode="&#x203f;" d="M618 -485q-164 0 -332.5 40t-352.5 123v161q179 -69 347.5 -104t336.5 -35q330 0 684 139v-161q-185 -83 -352 -123t-331 -40z" />
+<glyph unicode="&#x2044;" d="M899 1493h221l-786 -1683h-221z" />
+<glyph unicode="&#x2045;" d="M422 1556h508v-190h-242v-628h242v-190h-242v-628h242v-190h-508v1826z" />
+<glyph unicode="&#x2046;" d="M303 -80h242v628h-242v190h242v628h-242v190h508v-1826h-508v190z" />
+<glyph unicode="&#x2047;" d="M132 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5 q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM748 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5 q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM270 -50q-67 0 -114 47t-47 120 q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM889 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3 q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
+<glyph unicode="&#x2048;" d="M132 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5 q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM807 838v655h267v-655l-33 -357h-199zM271 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6 q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM947 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5 q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
+<glyph unicode="&#x2049;" d="M748 555l20 169q11 43 21 71t20.5 48.5t22 37.5t26.5 39q20 30 33.5 55t21.5 47t11.5 41.5t3.5 39.5q0 35 -9.5 64.5t-27 46.5t-43.5 18.5t-59 -19.5q-62 -26 -135 -115v309q128 113 261 113q65 0 117 -25t88 -70t55.5 -108t19.5 -138q0 -81 -21.5 -152.5t-61.5 -142.5 q-20 -36 -33.5 -61t-23 -47.5t-15.5 -45.5t-11 -56q-2 -14 -4.5 -31t-4.5 -32t-3 -26t-1 -14l-1 -47v-123h-267v154zM159 838v655h267v-655l-33 -357h-199zM290 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6 q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM894 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5 q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
+<glyph unicode="&#x204b;" d="M168 1493h520q108 0 195.5 -30.5t150 -86t96 -134t33.5 -174.5q0 -88 -28.5 -160t-83 -125.5t-134 -87.5t-180.5 -46v-846h-188v1543h-190v-1543h-191v1690z" />
+<glyph unicode="&#x205f;" />
+<glyph unicode="&#x2070;" d="M615 1113q-337 0 -337 434q0 433 337 433q339 0 339 -433q0 -434 -339 -434zM616 1253q71 0 102 70q32 70 32 223q0 152 -32 224q-31 70 -102 70q-39 0 -63 -19t-39 -51q-33 -71 -33 -224q0 -151 33 -223q15 -32 39 -51t63 -19zM616 1476q-19 0 -34.5 5.5t-26.5 14.5 q-24 19 -24 49q0 31 24.5 51.5t59.5 20.5t60.5 -20.5t25.5 -50.5q0 -29 -24.5 -49.5t-60.5 -20.5z" />
+<glyph unicode="&#x2074;" d="M639 1300h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM639 1443v330l-250 -330h250z" />
+<glyph unicode="&#x2075;" d="M557 1113q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5z" />
+<glyph unicode="&#x2076;" d="M637 1112q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178q64 73 200 73q139 0 214 -71.5t75 -205.5q0 -140 -83.5 -216.5t-244.5 -76.5zM637 1245q66 0 101 39t35 112 q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
+<glyph unicode="&#x2077;" d="M711 1810h-427v145h646v-117l-346 -718h-206z" />
+<glyph unicode="&#x2078;" d="M617 1113q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5 t-246 -64.5zM616 1635q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM615 1246q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
+<glyph unicode="&#x2079;" d="M539 1113q-51 0 -100 7.5t-109 25.5v151q51 -24 101.5 -37.5t101.5 -13.5q107 0 163.5 61t59.5 177q-33 -36 -83 -54.5t-119 -18.5q-138 0 -212.5 71t-74.5 205q0 141 83.5 217t244.5 76q175 0 262.5 -100t87.5 -316q0 -232 -101 -341.5t-305 -109.5zM595 1551 q66 0 100 38.5t34 112.5t-34 113t-100 39t-101 -39t-35 -112t35 -112.5t101 -39.5z" />
+<glyph unicode="&#x207a;" d="M542 961h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
+<glyph unicode="&#x207b;" d="M270 1095h692v-134h-692v134z" />
+<glyph unicode="&#x207c;" d="M284 1221h666v-132h-666v132zM284 966h666v-133h-666v133z" />
+<glyph unicode="&#x207d;" d="M643 517q-100 130 -148.5 255t-48.5 256q0 258 197 510h144q-84 -135 -124 -259t-40 -249q0 -126 40 -252t124 -261h-144v0z" />
+<glyph unicode="&#x207e;" d="M446 517q84 135 123.5 261t39.5 252q0 125 -39.5 249t-123.5 259h143q198 -252 198 -510q0 -131 -49 -256t-149 -255h-143v0z" />
+<glyph unicode="&#x208a;" d="M542 293h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
+<glyph unicode="&#x208b;" d="M270 427h692v-134h-692v134z" />
+<glyph unicode="&#x208c;" d="M284 553h666v-132h-666v132zM284 298h666v-133h-666v133z" />
+<glyph unicode="&#x208d;" d="M643 -151q-100 130 -148.5 255t-48.5 256q0 258 197 510h144q-84 -135 -124 -259t-40 -249q0 -126 40 -252t124 -261h-144v0z" />
+<glyph unicode="&#x208e;" d="M446 -151q84 135 123.5 261t39.5 252q0 125 -39.5 249t-123.5 259h143q198 -252 198 -510q0 -131 -49 -256t-149 -255h-143v0z" />
+<glyph unicode="&#x20a0;" d="M659 416q-57 -42 -116 -63t-127 -21q-95 0 -172 40.5t-131 116.5t-83.5 183t-29.5 241q0 133 29.5 240.5t83.5 183.5t131.5 116.5t173.5 40.5q63 0 121.5 -19t119.5 -64v-232q-57 55 -110.5 80.5t-108.5 25.5q-56 0 -99.5 -25.5t-73.5 -73.5t-45.5 -117t-15.5 -156 q0 -86 15.5 -155t45 -117t73 -73.5t99.5 -25.5q54 0 109 25t111 80v473h548v-218h-349v-209h329v-218h-329v-257h361v-218h-560v416z" />
+<glyph unicode="&#x20a1;" d="M583 -10q-59 13 -111 36l-29 -115h-141l48 188q-42 35 -82 81q-179 209 -179 562q0 180 45.5 322t128 241t197.5 153.5t255 60.5l19 74h140l-20 -80q48 -8 96 -21q4 -2 8 -3t9 -2l27 106h141l-42 -162q21 -11 37 -22v-309q-26 22 -51.5 40.5t-51.5 32.5l-236 -923 q88 2 169.5 35t169.5 106v-309q-87 -55 -180.5 -83t-196.5 -28h-17t-18 1l-16 -62h-139zM900 1226q-55 13 -116 15l-233 -905q23 -22 49 -38t55 -27zM636 1212q-72 -33 -124 -103q-47 -63 -71.5 -154t-24.5 -210q0 -144 37 -248z" />
+<glyph unicode="&#x20a2;" d="M684 -28q-141 0 -254.5 53.5t-193.5 154t-123.5 243.5t-43.5 322t43.5 322.5t123.5 244t193.5 154.5t253.5 54q100 0 186.5 -27.5t169.5 -83.5v-309q-156 141 -322 141q-82 0 -146 -34t-108 -98.5t-67 -156.5t-23 -208q0 -230 90 -362q40 -59 91 -90v716h247v-166 q24 49 51 85t59 59.5t71 34.5t86 11q12 0 22.5 -1.5t36.5 -5.5l1 -291q-33 19 -65 28.5t-65 9.5q-96 0 -146.5 -79t-50.5 -229v-205q27 6 44 12t33 13q43 19 82.5 45.5t78.5 61.5v-309q-81 -54 -167.5 -82t-187.5 -28z" />
+<glyph unicode="&#x20a3;" d="M169 290h-169v88h169v1115h946v-291h-595v-278h559v-291h-559v-255h178v-88h-178v-290h-351v290z" />
+<glyph unicode="&#x20a4;" d="M110 266h200v212h-171v194h171v157h-171v194h171q3 127 30.5 220.5t84 155t143.5 91.5t208 30q164 0 320 -54v-286q-60 39 -126.5 58t-128.5 19q-107 0 -155 -57t-54 -177h329v-194h-329v-157h329v-194h-329v-212h475v-266h-997v266z" />
+<glyph unicode="&#x20a5;" d="M500 306v278q0 183 -20 240q-21 53 -74 53q-65 0 -101 -85q-36 -86 -36 -241v-551h-230v1120h230v-164q85 191 218 191q75 0 130.5 -54t85.5 -154l119 371h110l-56 -174q16 5 31.5 8t34.5 3q121 0 185.5 -118t64.5 -347v-682h-230v584l1 26v41q0 54 -5 99t-17 74 t-31.5 41t-42.5 12q-32 0 -57 -21.5t-43 -62.5l-10 -29q-11 -33 -18.5 -89t-7.5 -125v-550h-219l-61 -190h-109z" />
+<glyph unicode="&#x20a6;" d="M66 438h-66v194h66v229h-66v194h66v438h430l145 -438h161v438h366v-438h65v-194h-65v-229h65v-194h-65v-438h-430l-146 438h-162v-438h-364v438zM528 632l-77 229h-21v-229h98zM802 632v229h-97l77 -229h20z" />
+<glyph unicode="&#x20a7;" d="M1004 -28q-52 0 -103 17q-12 4 -16.5 6t-12.5 5h-125q-51 0 -82 23.5t-49 65.5q-39 88 -39 300v475h-47q-8 -67 -24.5 -129.5t-46 -110.5t-73.5 -77t-105 -29h-110v-518h-167v1493h277q61 0 106 -29.5t75.5 -80.5t47.5 -119t23 -144h44v318h156v-318h160q45 27 109 27 q45 0 92 -15t102 -47v-272q-98 96 -185 96q-86 0 -86 -104q0 -43 16.5 -66t58.5 -34l28 -9q57 -18 95.5 -44t62 -65.5t34 -97t10.5 -138.5q0 -195 -55.5 -287t-170.5 -92zM263 797q49 0 75.5 54.5t26.5 154.5t-26.5 154t-75.5 54h-92v-417h92zM993 209q88 0 88 119 q0 25 -4.5 42.5t-13.5 29t-24 19t-36 13.5l-27 8q-52 15 -87.5 41.5t-58 68.5t-32.5 101t-10 140q0 23 0.5 40t2.5 33h-58v-475q0 -77 14 -105q12 -27 49 -28v57q31 -35 61 -57q83 -47 136 -47z" />
+<glyph unicode="&#x20a8;" d="M932 -29q-36 0 -66.5 5t-61.5 13q-11 3 -22.5 6t-22.5 7l1 -2h-229l-102 371q-16 58 -30 95t-31 58q-32 41 -85 41h-60v-565h-215v1493h328q163 0 240.5 -98t77.5 -309q0 -154 -39.5 -248.5t-120.5 -139.5q23 -9 43 -30.5t36 -50.5t34.5 -79.5t35.5 -113.5l32 -118 q54 -46 115.5 -71.5t123.5 -25.5q63 0 92 28.5t29 91.5q0 21 -4 37t-15 28.5t-31 21.5t-52 16l-35 8q-66 15 -112 42t-74.5 69.5t-41 101t-12.5 136.5q0 184 67 271t207 87q58 0 118.5 -15t132.5 -47v-272q-128 96 -238 96q-111 0 -111 -104q0 -43 21 -66t75 -34l35 -9 q73 -18 122.5 -44t80 -65.5t43.5 -97t13 -139.5q0 -195 -70.5 -287t-221.5 -92zM313 831q67 0 96.5 45t29.5 148q0 102 -29.5 146t-96.5 44h-90v-383h90z" />
+<glyph unicode="&#x20a9;" d="M104 854h-104v146h84l-15 118h-69v146h49l-30 229h207l30 -229h227l30 229h208l30 -229h228l30 229h205l-30 -229h49v-146h-68l-16 -118h84v-146h-104l-112 -854h-249l-114 854h-74l-114 -854h-248zM448 1000l16 118h-189l16 -118h157zM634 1000l-15 118h-5l-15 -118h35z M944 1000l15 118h-189l16 -118h158zM429 854h-118l59 -446zM924 854h-118l59 -446z" />
+<glyph unicode="&#x20aa;" d="M4 1493h431q218 0 324.5 -155t106.5 -472v-345h-191v345q0 93 -8.5 158t-32 106.5t-63.5 60.5t-103 19h-205l-2 -1238h-257v1521zM799 -28q-107 0 -187.5 37t-134.5 114t-81.5 195t-27.5 280v345h191v-345q0 -93 8.5 -158t32 -106.5t63.5 -60.5t103 -19h207v1239h258 v-1522z" />
+<glyph unicode="&#x20ab;" d="M637 -25q-95 0 -169 39.5t-126 114.5t-79 184.5t-27 249.5q0 142 28 251.5t80.5 184.5t127.5 113.5t169 38.5q98 0 168 -44t128 -142v290h-306v189h306v116h292v-116h146v-189h-146v-1251h-292v166q-47 -95 -119.5 -145t-180.5 -50zM732 215q48 0 86 23.5t64.5 68.5 t40.5 109t14 145t-14 145t-40.5 109t-64.5 68.5t-86 23.5t-85.5 -23.5t-63.5 -68.5t-40 -109t-14 -145t14 -145t40 -109t63.5 -68.5t85.5 -23.5zM477 -214h631v-188h-631v188z" />
+<glyph unicode="&#x20ac;" d="M779 -29q-234 0 -380 131q-147 132 -190 381h-203l84 187h96q-1 7 -1 14.5v15.5v2.5t-0.5 6t-0.5 13v23.5v23.5t0.5 13t0.5 5.5v3v15.5t1 15.5h-180l84 189h119q43 248 190 380q73 66 168 98t211 32q44 0 82.5 -4.5t75.5 -13.5q73 -18 141 -54v-328q-74 78 -144 114 q-71 36 -147 36q-57 0 -101 -18t-76 -47q-32 -30 -58 -78t-43 -117h442l-84 -189h-382q-1 -8 -1.5 -16.5t-0.5 -17.5q0 -5 -0.5 -12t-0.5 -33t0.5 -31t0.5 -8v-16.5t1 -16.5h316l-84 -187h-207q24 -126 96 -194q38 -35 82 -51.5t97 -16.5q79 0 150 36q70 36 144 114v-328 q-66 -36 -139 -54q-74 -18 -159 -18z" />
+<glyph unicode="&#x20ad;" d="M143 712h-93v152h93v629h277v-545l401 545h321l-461 -629h319v-152h-322l518 -712h-348l-428 588v-588h-277v712z" />
+<glyph unicode="&#x20ae;" d="M470 350l-100 -58l-44 77l144 83v168l-100 -58l-44 77l144 83v480h-466v291h1226v-291h-455v-258l99 57l44 -77l-143 -82v-168l99 57l44 -77l-143 -82v-572h-305v350z" />
+<glyph unicode="&#x20af;" d="M163 -29q-36 0 -64.5 17t-48.5 47.5t-30.5 73t-10.5 92.5q0 46 9 88t27 74.5t44.5 51.5t61.5 19q15 0 31.5 -4t30.5 -12q3 20 5 37.5t4 30.5l88 811q-4 -3 -8 -6.5t-8 -7.5q-8 -8 -15.5 -18.5t-14 -26.5t-13 -38t-12.5 -53l-108 65q14 79 41 141.5t63 101.5 q29 31 66.5 48t94.5 17q105 0 183 -59t130 -173q45 -97 65.5 -220.5t20.5 -257.5q0 -53 -3.5 -115t-11 -127t-19 -131.5t-28.5 -129.5q-18 -67 -42.5 -126t-56.5 -106q-37 -53 -78.5 -78.5t-85.5 -25.5q-30 0 -54.5 11t-47.5 30q-14 13 -24 23.5t-17 18.5l-32 37 q-3 -10 -6 -18.5t-7 -16.5q-41 -85 -119 -85zM467 181q24 0 44 16t37 45q32 55 57 152t38 218q5 51 8 99t3 94q0 93 -12.5 182t-40.5 159q-28 71 -67.5 113t-88.5 49l-91 -825q-6 -56 -11.5 -100.5t-10.5 -78.5l20 -27q21 -29 34.5 -45t27.5 -28q13 -11 25.5 -17t27.5 -6z M757 -414l83 720q18 157 47.5 257.5t69.5 154.5q41 55 91 55q41 0 77 -31t57 -88q17 -45 25 -105.5t8 -129.5q0 -67 -7.5 -127.5t-20 -111.5t-30 -91t-37.5 -66q-40 -52 -94 -52q-32 0 -54.5 23.5t-43.5 88.5l-61 -540zM1018 149q16 0 32.5 17t30.5 52q13 33 21 82.5 t8 113.5q0 80 -14 122q-8 24 -18.5 33.5t-21.5 9.5q-23 0 -41.5 -31.5t-29.5 -74.5q-9 -34 -15 -80t-6 -92q0 -30 3 -57.5t9.5 -48.5t17 -33.5t24.5 -12.5zM150 154q11 0 17.5 14.5t12.5 49.5q-17 30 -35 30q-14 0 -21 -14t-7 -31q0 -23 10.5 -36t22.5 -13z" />
+<glyph unicode="&#x20b0;" d="M723 198q112 0 168.5 55t56.5 154q0 48 -14.5 85.5t-48.5 73.5q-55 -61 -119 -88.5t-128 -27.5q-33 0 -60 7t-50 20.5t-43 32.5t-39 44q-10 13 -21.5 27t-24 26t-25.5 19.5t-25 7.5q-25 0 -57 -34.5t-77 -109.5l-191 132q39 67 76 118t74.5 84.5t77 50.5t83.5 17 q43 0 85.5 -16.5t79.5 -51.5q32 -31 54 -51.5t37.5 -33t26 -18t20.5 -5.5q11 0 28 6.5t28 20.5q-93 90 -138.5 194t-45.5 232q0 167 77.5 259t238.5 92q155 0 237 -89t82 -276q0 -98 -23.5 -199.5t-74.5 -189.5q41 -43 71.5 -85t50 -86.5t29 -92.5t9.5 -102 q0 -105 -34.5 -185.5t-97.5 -134.5t-152.5 -81.5t-200.5 -27.5v227zM849 925q26 54 38.5 114.5t12.5 117.5q0 81 -23 130t-57 49q-18 0 -32.5 -14.5t-24 -38.5t-15 -55t-5.5 -65q0 -150 106 -238z" />
+<glyph unicode="&#x20b1;" d="M162 884h-102v103h102v80h-102v103h102v323h405q152 0 264 -27t181 -83q45 -36 76 -89.5t45 -123.5h99v-103h-86q1 -40 0 -80h86v-103h-98q-30 -140 -122 -215q-69 -57 -182.5 -83.5t-262.5 -26.5h-110v-559h-295v884zM805 1170q-5 8 -10.5 14.5t-12.5 11.5 q-58 49 -204 49h-121v-75h348zM838 987q4 40 0 80h-381v-80h381zM578 807q69 0 122 11.5t82 37.5q14 12 24 28h-349v-77h121z" />
+<glyph unicode="&#x20b2;" d="M583 -22q-112 15 -210.5 69.5t-171.5 150t-115 232t-42 316.5q0 179 42 315t115 230.5t171 149t211 71.5v144h162v-137q94 -4 191 -29.5t194 -80.5v-248q-98 63 -189.5 96t-195.5 34v-1090q17 1 35 2.5t38 4.5q41 7 75 24t62 43v321h-117v208h335v-693 q-115 -70 -222 -101t-206 -37v-138h-162v143zM583 1265q-91 -34 -154 -115q-109 -142 -109 -405q0 -134 27 -234t78 -169q63 -84 158 -119v1042z" />
+<glyph unicode="&#x20b3;" d="M128 357h-70v195h126l43 149h-169v195h225l173 597h319l173 -597h225v-195h-168l43 -149h125v-195h-69l104 -357h-293l-103 357h-392l-104 -357h-292zM656 896l-40 138l-40 -138h80zM755 552l-43 149h-193l-43 -149h279z" />
+<glyph unicode="&#x20b4;" d="M655 -29q-257 0 -391.5 111.5t-134.5 337.5v18h-129v194h174q10 17 16.5 27.5t11 17t7 10.5t5.5 8q35 47 97.5 90.5t143.5 75.5h-455v194h811q10 24 10 56q0 80 -56.5 122.5t-164.5 42.5q-97 0 -194 -35t-193 -102v288q102 46 204.5 69.5t204.5 23.5q114 0 204.5 -30 t153.5 -86t96.5 -136.5t33.5 -182.5v-15t-1 -15h124v-194h-181q-2 -3 -9 -12t-12 -15q-39 -45 -111 -89.5t-191 -89.5l-61 -23h565v-194h-802q-3 -17 -3 -36q0 -89 59.5 -138t174.5 -49q105 0 216 42t226 124v-305q-115 -57 -224 -81t-225 -24z" />
+<glyph unicode="&#x20b5;" d="M712 -27q-68 5 -144 23t-150 53.5t-141.5 89t-118.5 129.5t-81.5 175.5t-30.5 226.5q0 123 28.5 221t77.5 174t114.5 131.5t139.5 92.5t152.5 56t153.5 24v187h162v-191q29 -4 57.5 -9t56.5 -13q51 -14 102 -35.5t96 -47.5v-309q-81 78 -160.5 112.5t-151.5 41.5v-869 q72 7 150 41.5t163 113.5v-309q-48 -28 -97.5 -48.5t-101.5 -34.5q-28 -8 -56.5 -13t-57.5 -9v-278h-162v274zM712 1095q-26 -7 -52.5 -18.5t-53.5 -29.5q-85 -57 -130 -153.5t-45 -216.5q0 -126 47.5 -226t131.5 -158q27 -19 53 -30t49 -17v849z" />
+<glyph unicode="&#x20b7;" d="M822 1278q-126 0 -199 -56q-35 -27 -54.5 -63.5t-19.5 -71.5q0 -50 45.5 -93.5t138.5 -83.5l7 -3l116 -51q147 -65 214 -156t67 -227q0 -111 -40.5 -204t-119.5 -161q-135 -114 -352 -134l-19 -176h-135l18 174q-39 3 -98 11l-21 -185h-135l26 213q-61 18 -94 31 l-32 -244h-135l122 712h109l-1 -65q23 39 57 60t74 21q38 0 62.5 -21t29.5 -58q17 36 53.5 57.5t78.5 21.5q53 0 84 -32t31 -91l-2 -29l-1 -20l-5 -35l-7 -35l-10 -53q78 23 120.5 74.5t42.5 123.5q0 66 -34.5 110.5t-104.5 74.5l-119 50q-102 43 -162 79.5t-92 76.5 q-31 38 -46.5 86t-15.5 115q0 111 42 202t119 158q79 67 186 103t233 36q105 0 199.5 -20t189.5 -62l-57 -285q-68 62 -158 93.5t-196 31.5zM284 402q-22 0 -35 -15t-22 -46l-6 -22q42 -27 90 -49l3 14l4 20q5 25 5 39q1 3 1 12q0 47 -40 47zM462 340q-5 -17 -13 -56 l-11 -57q48 -10 98 -12l13 69q10 41 10 73q0 45 -39 45q-23 0 -36 -15.5t-22 -46.5z" />
+<glyph unicode="&#x20b8;" d="M90 1493h1053v-258h-1053v258zM469 857h-379v258h1053v-258h-379v-857h-295v857z" />
+<glyph unicode="&#x20b9;" d="M496 421q-42 88 -87.5 128.5t-98.5 40.5h-166v248h211q63 0 105 16t68 46q15 17 25 36.5t15 36.5h-465l88 195h377q-14 43 -39 71q-53 59 -174 59h-252l88 195h955l-86 -195h-224q30 -55 42 -130h268l-86 -195h-181q-8 -48 -26.5 -92.5t-52.5 -80.5t-84.5 -61t-120.5 -34 q22 -5 40 -13.5t36 -27t37 -49t43 -78.5l270 -537h-324z" />
+<glyph unicode="&#x2116;" d="M9 0v1493h224l178 -820v820h205v-1493h-224l-178 779v-779h-205zM1130 737q-33 -57 -77.5 -92t-99.5 -35q-57 0 -99.5 34.5t-77.5 91.5q-31 51 -48.5 133.5t-17.5 180.5q0 95 17 177t49 138q75 127 177 127q56 0 100 -34.5t77 -93.5q32 -55 49 -137t17 -177t-17 -176.5 t-49 -136.5zM863 1048q0 -62 13 -114.5t34.5 -83.5t47.5 -31t47.5 31t34.5 83.5t13 114.5t-13 114.5t-34.5 83.5t-47.5 31t-47.5 -31t-34.5 -83.5t-13 -114.5zM731 331v173h441v-173h-441z" />
+<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
+<glyph unicode="&#x2126;" d="M90 211h238q-58 52 -101 111.5t-71 128.5t-42 149.5t-14 176.5q0 159 36.5 285.5t103.5 215t162 135.5t213 47t214 -47t163.5 -135.5t104 -215t36.5 -285.5q0 -96 -14 -177t-42.5 -150t-71 -128t-100.5 -111h238v-211h-471v268q81 79 120 196t39 287q0 105 -14.5 187.5 t-42 139t-67.5 86.5t-91 30t-91 -30t-67.5 -86.5t-42 -138.5t-14.5 -187q0 -162 37.5 -282t124.5 -202v-268h-473v211z" />
+<glyph unicode="&#x2150;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM912 420h-427v145h646v-117l-346 -718h-206z" />
+<glyph unicode="&#x2151;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM740 -285q-51 0 -100 7.5t-109 25.5v151q51 -24 101.5 -37.5t101.5 -13.5q107 0 163.5 61t59.5 177q-33 -36 -83 -54.5t-119 -18.5q-138 0 -212.5 71t-74.5 205 q0 141 83.5 217t244.5 76q175 0 262.5 -100t87.5 -316q0 -232 -101 -341.5t-305 -109.5zM796 153q66 0 100 38.5t34 112.5t-34 113t-100 39t-101 -39t-35 -112t35 -112.5t101 -39.5z" />
+<glyph unicode="&#x2153;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM786 -285q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5 t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
+<glyph unicode="&#x2154;" d="M16 965q38 32 61.5 51.5t38.5 32t23.5 20t17.5 14.5q161 133 237.5 218t76.5 133q0 17 -10 35t-30 33t-51 24.5t-73 9.5q-55 0 -121.5 -17.5t-144.5 -51.5v164q75 22 145.5 33.5t139.5 11.5q87 0 153 -18t110.5 -48t67.5 -69.5t23 -82.5t-22.5 -88.5t-67 -96.5t-111 -110 t-154.5 -129l-83 -65h440v-145h-666v141zM47 618l1059 263l37 -119l-1059 -262zM786 -285q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25 q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
+<glyph unicode="&#x2155;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465 h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
+<glyph unicode="&#x2156;" d="M16 965q38 32 61.5 51.5t38.5 32t23.5 20t17.5 14.5q161 133 237.5 218t76.5 133q0 17 -10 35t-30 33t-51 24.5t-73 9.5q-55 0 -121.5 -17.5t-144.5 -51.5v164q75 22 145.5 33.5t139.5 11.5q87 0 153 -18t110.5 -48t67.5 -69.5t23 -82.5t-22.5 -88.5t-67 -96.5t-111 -110 t-154.5 -129l-83 -65h440v-145h-666v141zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154 q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
+<glyph unicode="&#x2157;" d="M327 809q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5 q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
+<glyph unicode="&#x2158;" d="M381 1004h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM381 1147v330l-250 -330h250zM47 618l1059 263l37 -119l-1059 -262zM758 -285q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5 q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117t-76.5 -88.5t-122 -56t-162 -19.5z" />
+<glyph unicode="&#x2159;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM838 -286q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178 q64 73 200 73q139 0 214 -71.5t75 -205.5q0 -140 -83.5 -216.5t-244.5 -76.5zM838 -153q66 0 101 39t35 112q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
+<glyph unicode="&#x215a;" d="M299 809q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5zM47 618l1059 263l37 -119l-1059 -262zM838 -286q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178q64 73 200 73q139 0 214 -71.5t75 -205.5 q0 -140 -83.5 -216.5t-244.5 -76.5zM838 -153q66 0 101 39t35 112q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
+<glyph unicode="&#x215b;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45 t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38 q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
+<glyph unicode="&#x215c;" d="M327 809q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5 q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5 q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
+<glyph unicode="&#x215d;" d="M299 809q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92 q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34 q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
+<glyph unicode="&#x215e;" d="M453 1514h-427v145h646v-117l-346 -718h-206zM47 618l1059 263l37 -119l-1059 -262zM818 -285q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92 q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5t-246 -64.5zM817 237q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM816 -152q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34 q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
+<glyph unicode="&#x215f;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262z" />
+<glyph unicode="&#x2189;" d="M357 809q-337 0 -337 434q0 433 337 433q339 0 339 -433q0 -434 -339 -434zM358 949q71 0 102 70q32 70 32 223q0 152 -32 224q-31 70 -102 70q-39 0 -63 -19t-39 -51q-33 -71 -33 -224q0 -151 33 -223q15 -32 39 -51t63 -19zM358 1172q-19 0 -34.5 5.5t-26.5 14.5 q-24 19 -24 49q0 31 24.5 51.5t59.5 20.5t60.5 -20.5t25.5 -50.5q0 -29 -24.5 -49.5t-60.5 -20.5zM47 618l1059 263l37 -119l-1059 -262zM786 -285q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111 v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
+<glyph unicode="&#x2190;" d="M66 490v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x2191;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
+<glyph unicode="&#x2192;" d="M756 319l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x2193;" d="M254 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x2194;" d="M66 490v142l291 291l120 -120l-130 -130h539l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-539l130 -130l-120 -120z" />
+<glyph unicode="&#x2195;" d="M254 291l120 120l130 -130v539l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-539l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x2196;" d="M341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
+<glyph unicode="&#x2197;" d="M164 136l572 572h-187v187h412l118 -118v-412h-187v187l-572 -572z" />
+<glyph unicode="&#x2198;" d="M548 156h187l-572 572l156 156l572 -572v187h187v-412l-118 -118h-412v187z" />
+<glyph unicode="&#x2199;" d="M154 88v412h187v-187l572 572l156 -156l-572 -572h187v-187h-412z" />
+<glyph unicode="&#x219a;" d="M66 490v142l291 291l120 -120l-130 -130h393l148 240l202 -112l-79 -128h156v-224h-273l-147 -240l-202 112l79 128h-277l130 -130l-120 -120z" />
+<glyph unicode="&#x219b;" d="M756 319l130 130h-393l-148 -240l-202 112l79 128h-156v224h273l147 240l202 -112l-79 -128h277l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x219c;" d="M60 777l118 118h412v-187h-187q-10 -35 7.5 -56.5t51.5 -40.5q24 -15 47 -15q17 0 34.5 8.5t31 18.5t22.5 19t9 10q17 26 23.5 38t10.5 20q13 28 26.5 47.5t31 35.5t41 31.5t56.5 36.5q16 10 40 16t51.5 7t55.5 -3.5t51 -16.5q14 -7 38 -24t49.5 -42t47.5 -58t31 -72 l-142 -88q-5 10 -9.5 21t-12 22t-18.5 22t-29 20q-11 6 -24 10t-28 4q-27 0 -57.5 -14.5t-45.5 -47.5q-35 -69 -41 -75q-2 -3 -12.5 -20.5t-28.5 -40.5t-43.5 -47.5t-56.5 -40.5q-24 -13 -49 -18.5t-51 -5.5q-57 0 -102 24t-83 68l-79 91v-187h-187v412z" />
+<glyph unicode="&#x219d;" d="M986 552l-79 -91q-39 -45 -84.5 -68.5t-96.5 -23.5q-30 0 -58.5 7.5t-53.5 20t-45 29t-32 33.5q-3 4 -11.5 17t-17.5 27t-17 25.5t-10 13.5q-11 16 -19.5 31t-21.5 44q-16 33 -45.5 47.5t-54.5 14.5q-31 0 -60.5 -17t-41.5 -38q-5 -8 -10.5 -19t-11.5 -25l-142 88 q9 39 30.5 71.5t47 58t50 42.5t38.5 24q23 12 51 16.5t55.5 3.5t51.5 -7t40 -16q29 -18 50 -31.5t38 -29.5t32.5 -36.5t34.5 -52.5t25 -43t9 -16q1 -3 10 -12t22.5 -19t30 -17.5t32.5 -7.5q13 0 27.5 5t28.5 13t26 18t20 21q6 8 9.5 20t-3.5 35h-187v187h412l118 -118v-412 h-187v187z" />
+<glyph unicode="&#x219e;" d="M66 490v142l291 291l120 -120l-130 -130h90l250 250l120 -120l-130 -130h490v-224h-490l130 -130l-120 -120l-250 250h-90l130 -130l-120 -120z" />
+<glyph unicode="&#x219f;" d="M504 490l-130 -130l-120 120l250 250v90l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-90l250 -250l-120 -120l-130 130v-490h-224v490z" />
+<glyph unicode="&#x21a0;" d="M426 319l130 130h-490v224h490l-130 130l120 120l250 -250h90l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-90l-250 -250z" />
+<glyph unicode="&#x21a1;" d="M254 291l120 120l130 -130v90l-250 250l120 120l130 -130v490h224v-490l130 130l120 -120l-250 -250v-90l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21a2;" d="M66 490v142l291 291l120 -120l-130 -130h450l250 250l120 -120l-242 -242l242 -242l-119 -120l-251 250h-450l130 -130l-120 -120z" />
+<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l120 120l250 -250h450l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-450l-251 -250z" />
+<glyph unicode="&#x21a4;" d="M66 490v142l291 291l120 -120l-130 -130h626v250h194v-724h-194v250h-626l130 -130l-120 -120z" />
+<glyph unicode="&#x21a5;" d="M254 194h250v626l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-626h250v-194h-724v194z" />
+<glyph unicode="&#x21a6;" d="M66 923h194v-250h626l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-626v-250h-194v724z" />
+<glyph unicode="&#x21a7;" d="M254 291l120 120l130 -130v626h-250v194h724v-194h-250v-626l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21a8;" d="M254 194h292l-292 291l120 120l130 -130v345l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-345l130 130l120 -120l-290 -291h290v-194h-724v194z" />
+<glyph unicode="&#x21a9;" d="M66 490v142l291 291l120 -120l-130 -130h524q12 0 26 5t25 16q12 11 16.5 25t4.5 26q0 14 -5 27.5t-16 23.5q-9 9 -22.5 15.5t-28.5 6.5v224q65 0 118 -24t91 -62q46 -46 66.5 -100t20.5 -110q0 -63 -23 -117t-64 -95q-34 -34 -86.5 -59.5t-122.5 -25.5h-524l130 -130 l-120 -120z" />
+<glyph unicode="&#x21aa;" d="M756 319l130 130h-524q-70 0 -122.5 25.5t-86.5 59.5q-41 41 -64 95t-23 117q0 56 20.5 110t66.5 100q38 38 91 62t118 24v-224q-15 0 -28.5 -6.5t-22.5 -15.5q-11 -10 -16 -23.5t-5 -27.5q0 -12 4.5 -26t16.5 -25q11 -11 25 -16t26 -5h524l-130 130l120 120l291 -291 v-142l-291 -291z" />
+<glyph unicode="&#x21ab;" d="M66 490v142l291 291l120 -120l-130 -130h228v72q0 62 22.5 115.5t64.5 95.5t94 64t114 22q65 0 118 -23.5t92 -62.5q46 -46 66.5 -101t20.5 -110q0 -60 -22 -114t-64 -96q-37 -38 -90 -62t-120 -24h-71v-224h-225v224h-228l130 -130l-120 -120zM871 673q11 0 25.5 5 t25.5 16t16 24.5t5 28.5q0 29 -21 49q-10 9 -23 15.5t-27 6.5t-28.5 -6t-23.5 -15q-13 -12 -16.5 -27t-3.5 -25v-72h71z" />
+<glyph unicode="&#x21ac;" d="M756 319l130 130h-228v-224h-225v224h-71q-63 0 -115.5 22t-93.5 63q-38 38 -62.5 92t-24.5 119q0 55 20.5 110t66.5 101q39 39 92 62.5t118 23.5q62 0 114 -22t94 -64t64.5 -95.5t22.5 -115.5v-72h228l-130 130l120 120l291 -291v-142l-291 -291zM433 673v72 q0 10 -3.5 25t-16.5 27q-9 9 -23.5 15t-28.5 6t-27 -6.5t-23 -15.5q-21 -20 -21 -49q0 -15 5 -28.5t16 -24.5t25.5 -16t25.5 -5h71z" />
+<glyph unicode="&#x21ad;" d="M66 490v142l291 291l120 -120l-130 -130q17 -13 30 -28q18 -18 37 -18q11 0 19.5 5t16.5 13q9 12 11 20q13 37 38 66t53 43q30 15 65 15q68 0 118 -59q15 -18 22.5 -33t14.5 -32q5 -13 12 -20.5t16 -12.5q10 -5 20 -5q11 0 19.5 5t16.5 13l15.5 15.5t14.5 12.5l-130 130 l120 120l291 -291v-142l-291 -291l-120 120l130 130q-11 -7 -28 -10t-34 -3q-38 0 -67 15t-55 44q-17 20 -24.5 34.5t-13.5 30.5q-3 8 -8.5 17t-19.5 16q-10 5 -19 5q-19 0 -37 -18q-3 -3 -5.5 -7t-5.5 -13q-9 -32 -35 -62.5t-56 -46.5q-15 -8 -30.5 -11.5t-37.5 -3.5 q-19 0 -36 3t-27 10l130 -130l-120 -120z" />
+<glyph unicode="&#x21ae;" d="M464 217l49 232h-166l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h195l56 270l171 -39l-49 -231h166l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-195l-56 -271z" />
+<glyph unicode="&#x21af;" d="M674 19l-238 335l138 99l107 -150l110 629l-734 -432l171 933l221 -37l-91 -493l724 420l-181 -1058l150 107l99 -139l-336 -238z" />
+<glyph unicode="&#x21b0;" d="M856 937h-392l130 -130l-120 -120l-290 291v142l290 291l120 -120l-130 -130h616v-1161h-224v937z" />
+<glyph unicode="&#x21b1;" d="M154 1161h614l-130 130l120 120l292 -291v-142l-292 -291l-120 120l130 130h-390v-937h-224v1161z" />
+<glyph unicode="&#x21b2;" d="M184 261v142l290 291l120 -120l-130 -130h392v937h224v-1161h-616l130 -130l-120 -120z" />
+<glyph unicode="&#x21b3;" d="M638 90l130 130h-614v1161h224v-937h390l-130 130l120 120l292 -291v-142l-292 -291z" />
+<glyph unicode="&#x21b4;" d="M353 291l120 120l130 -130v631h-417v224h641v-855l130 130l120 -120l-291 -291h-142z" />
+<glyph unicode="&#x21b5;" d="M64 261v142l290 291l120 -120l-130 -130h632v417h224v-641h-856l130 -130l-120 -120z" />
+<glyph unicode="&#x21b6;" d="M50 635l120 120l130 -130v33q0 12 8.5 40.5t25 64t41.5 74.5t58 73q61 63 139.5 95t169.5 32t169 -32t141 -95q60 -60 95.5 -140t35.5 -174h-214q0 94 -66 162q-31 32 -68.5 49t-85.5 17q-45 0 -87 -15.5t-75 -49.5t-48 -72.5t-15 -61.5l130 130l120 -120l-291 -291h-142 z" />
+<glyph unicode="&#x21b7;" d="M459 635l120 120l130 -130q0 23 -14 60.5t-49 72.5q-31 32 -69.5 48.5t-89.5 17.5t-88.5 -16.5t-68.5 -49.5q-66 -68 -66 -162h-214q0 94 35.5 174t95.5 140q63 63 141 95t169 32t169.5 -32t139.5 -95q33 -34 58 -73t41.5 -74.5t25 -64t8.5 -40.5v-33l130 130l120 -120 l-291 -291h-142z" />
+<glyph unicode="&#x21b8;" d="M50 1110h1132v-140h-1132v140zM341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
+<glyph unicode="&#x21b9;" d="M66 1298h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724zM592 90l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
+<glyph unicode="&#x21ba;" d="M593 -39q-111 0 -207 41t-172 116q-79 78 -119 175t-40 209q0 108 38.5 201.5t120.5 178.5l171 -149q-46 -45 -68.5 -102t-22.5 -118q0 -66 24 -122t66 -98q39 -40 93 -65t124 -25q125 0 215 90q49 49 69.5 105.5t20.5 120.5q0 38 -6 69t-17 44l-48 72v-187h-187v412 l118 118h412v-187h-187q19 0 43.5 -35t46 -89t36 -120t14.5 -128q0 -99 -40.5 -195.5t-118.5 -174.5q-72 -72 -168 -114.5t-211 -42.5z" />
+<glyph unicode="&#x21bb;" d="M640 -39q-115 0 -211 42.5t-168 114.5q-78 78 -118.5 175t-40.5 195q0 61 14.5 127t36 120.5t45.5 89.5t44 35h-187v187h412l118 -118v-412h-187v187l-48 -72q-11 -13 -17 -44t-6 -69q0 -64 20.5 -120.5t69.5 -105.5q90 -90 215 -90q70 0 124 25t93 65q42 42 66 98 t24 122q0 61 -22.5 118t-68.5 102l171 149q82 -85 120.5 -178.5t38.5 -201.5q0 -112 -40 -209t-119 -175q-76 -75 -172 -116t-207 -41z" />
+<glyph unicode="&#x21bc;" d="M66 632l291 291l120 -120l-130 -130h820v-224h-1101v183z" />
+<glyph unicode="&#x21bd;" d="M66 490v183h1101v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21be;" d="M504 1101h184l290 -291l-120 -120l-130 130v-820h-224v1101z" />
+<glyph unicode="&#x21bf;" d="M504 820l-130 -130l-120 120l292 291h182v-1101h-224v820z" />
+<glyph unicode="&#x21c0;" d="M66 673h820l-130 130l120 120l291 -291v-183h-1101v224z" />
+<glyph unicode="&#x21c1;" d="M756 319l130 130h-820v224h1101v-183l-291 -291z" />
+<glyph unicode="&#x21c2;" d="M504 1101h224v-820l130 130l120 -120l-290 -291h-184v1101z" />
+<glyph unicode="&#x21c3;" d="M254 291l120 120l130 -130v820h224v-1101h-182z" />
+<glyph unicode="&#x21c4;" d="M756 574l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291zM66 261v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21c5;" d="M262 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820zM496 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21c6;" d="M66 745v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120zM756 90l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21c7;" d="M66 261v142l171 171l-171 171v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-130 -130h820v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21c8;" d="M262 820l-130 -130l-120 120l292 291h142l171 -171l171 171h142l290 -291l-120 -120l-130 130v-820h-224v820l-130 -130l-130 130v-820h-224v820z" />
+<glyph unicode="&#x21c9;" d="M756 90l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-291 -291z" />
+<glyph unicode="&#x21ca;" d="M12 291l120 120l130 -130v820h224v-820l131 130l129 -130v820h224v-820l130 130l120 -120l-290 -291h-142l-172 171l-170 -171h-142z" />
+<glyph unicode="&#x21cb;" d="M66 887l291 291l120 -120l-130 -130h820v-224h-1101v183zM756 90l130 130h-820v224h1101v-183l-291 -291z" />
+<glyph unicode="&#x21cc;" d="M66 928h820l-130 130l120 120l291 -291v-183h-1101v224zM66 261v183h1101v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21cd;" d="M66 490v142l291 291l120 -120l-68 -68h379l86 158l97 -59l-54 -99h250v-102h-312l-80 -144h392v-102h-443l-86 -156l-96 58l54 98h-187l68 -68l-120 -120zM649 489l78 144h-420l-72 -72l72 -72h342z" />
+<glyph unicode="&#x21ce;" d="M66 490v142l291 291l120 -120l-68 -68h129v188h157v-188h129l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-129v-188h-157v188h-129l68 -68l-120 -120zM538 489v144h-231l-72 -72l72 -72h231zM926 489l72 72l-72 72h-231v-144h231z" />
+<glyph unicode="&#x21cf;" d="M756 319l68 68h-379l-86 -158l-97 59l54 99h-250v102h312l80 144h-392v102h443l86 156l96 -58l-54 -98h187l-68 68l120 120l291 -291v-142l-291 -291zM926 489l72 72l-72 72h-342l-78 -144h420z" />
+<glyph unicode="&#x21d0;" d="M66 490v142l291 291l120 -120l-68 -68h758v-102h-860l-72 -72l72 -72h860v-102h-758l68 -68l-120 -120z" />
+<glyph unicode="&#x21d1;" d="M442 758l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-758h-102l1 860l-73 72l-72 -72v-860h-102v758z" />
+<glyph unicode="&#x21d2;" d="M756 319l68 68h-758v102h860l72 72l-72 72h-860v102h758l-68 68l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21d3;" d="M254 291l120 120l68 -68v758h102v-860l72 -72l73 72l-1 860h102v-758l68 68l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21d4;" d="M66 490v142l291 291l120 -120l-68 -68h415l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-415l68 -68l-120 -120zM926 489l72 72l-72 72h-619l-72 -72l72 -72h619z" />
+<glyph unicode="&#x21d5;" d="M254 291l120 120l68 -68v415l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-415l68 68l120 -120l-290 -291h-142zM689 241v619l-73 72l-72 -72v-619l72 -72z" />
+<glyph unicode="&#x21d6;" d="M312 477v-112h-187v412l118 118h412v-187h-110l533 -534l-74 -74l-606 608h-86v-86l608 -606l-74 -74z" />
+<glyph unicode="&#x21d7;" d="M313 16l608 606v86h-86l-606 -608l-74 74l533 534h-110v187h412l118 -118v-412h-187v112l-534 -535z" />
+<glyph unicode="&#x21d8;" d="M578 157h112l-535 534l74 74l606 -608h86v86l-608 606l74 74l534 -533v110h187v-412l-118 -118h-412v187z" />
+<glyph unicode="&#x21d9;" d="M125 88v412h187v-110l534 533l74 -74l-608 -606v-86h86l606 608l74 -74l-535 -534h112v-187h-412z" />
+<glyph unicode="&#x21da;" d="M66 490v142l291 291l120 -120h690v-102h-792l-89 -89h881v-102h-881l89 -89h792v-102h-690l-120 -120z" />
+<glyph unicode="&#x21db;" d="M756 319h-690v102h792l89 89h-881v102h881l-89 89h-792v102h690l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21dc;" d="M66 490v142l291 291l120 -120l-130 -130h172l75 -80l194 206l193 -206l76 80h110v-224h-68l-118 -126l-193 218l-194 -218l-118 126h-129l130 -130l-120 -120z" />
+<glyph unicode="&#x21dd;" d="M756 319l130 130h-129l-118 -126l-194 218l-193 -218l-118 126h-68v224h110l76 -80l193 206l194 -206l75 80h172l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21e0;" d="M66 490v142l291 291l120 -120l-130 -130h198v-224h-198l130 -130l-120 -120zM670 673h187v-224h-187v224zM980 673h187v-224h-187v224z" />
+<glyph unicode="&#x21e1;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130l1 -198h-225v198zM505 497h223l1 -187h-225zM505 187h223v-187h-224z" />
+<glyph unicode="&#x21e2;" d="M756 319l130 130h-198v224h198l-130 130l120 120l291 -291v-142l-291 -291zM66 673h187v-224h-187v224zM376 673h187v-224h-187v224z" />
+<glyph unicode="&#x21e3;" d="M504 1101h224v-187h-223zM504 791h224v-187h-223zM254 291l120 120l130 -130v198h224v-198l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21e4;" d="M66 923h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724z" />
+<glyph unicode="&#x21e5;" d="M592 319l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
+<glyph unicode="&#x21e6;" d="M5 561l403 423v-231h759v-384h-759v-231zM309 469h768v184h-768v93l-164 -185l164 -185v93z" />
+<glyph unicode="&#x21e7;" d="M424 759h-230l422 403l424 -403h-232v-759h-384v759zM708 90v768h94l-186 164l-184 -164h92v-768h184z" />
+<glyph unicode="&#x21e8;" d="M824 369h-758v384h758v231l404 -423l-404 -423v231zM1088 561l-164 185v-93h-768v-184h768v-93z" />
+<glyph unicode="&#x21e9;" d="M194 403h230v759h384v-759h232l-424 -403zM802 304h-94v768h-184v-768h-92l184 -164z" />
+<glyph unicode="&#x21eb;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM920 90v100h-212v668h94l-186 184l-184 -184h92v-668h-210v-100h606z" />
+<glyph unicode="&#x21ec;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM802 858l-186 184l-184 -184h370zM920 90v100h-212v569h-184v-569h-210v-100h606z" />
+<glyph unicode="&#x21ed;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM582 90v917l-150 -149h92v-668h-210v-100h268zM920 90v110h-212v658h94l-150 149v-917h268z" />
+<glyph unicode="&#x21ee;" d="M424 539h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-539h-384v539zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM708 90v548h94l-186 164l-184 -164h92v-548h184z" />
+<glyph unicode="&#x21ef;" d="M224 280h200v259h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-259h202v-280h-786v280zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM920 90v100h-212v448h94l-186 164l-184 -164h92v-448h-210v-100h606z" />
+<glyph unicode="&#x21f0;" d="M825 374h-479v-201h-280v786h280v-201h479v231l403 -423l-403 -423v231zM256 263v211h668v-93l184 185l-184 185v-93h-668v211h-100v-606h100z" />
+<glyph unicode="&#x21f1;" d="M40 1124h1123v-103h-1020v-1021h-103v1124zM455 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
+<glyph unicode="&#x21f2;" d="M430 416h186l-572 572l156 156l572 -572v187h188v-412l-118 -118h-412v187zM64 103h1022v1020h102v-1123h-1124v103z" />
+<glyph unicode="&#x21f3;" d="M194 403h230v356h-230l422 403l424 -403h-232v-356h232l-424 -403zM802 304h-94v554h94l-186 164l-184 -164h92v-554h-92l184 -164z" />
+<glyph unicode="&#x21f4;" d="M756 319l130 130h-147q-10 -35 -33 -73.5t-60.5 -70.5t-89.5 -53.5t-119 -21.5q-65 0 -114.5 19.5t-85.5 51t-59 70.5t-34 78h-78v224h78q10 37 34 77t60.5 72t85.5 53t109 21q20 0 46 -3t55.5 -13t62 -27.5t65.5 -45.5q34 -29 51.5 -59t25.5 -75h147l-130 130l120 120 l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21f5;" d="M12 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142zM746 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
+<glyph unicode="&#x21f6;" d="M756 -165l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-171 -171l171 -171v-142l-291 -291z" />
+<glyph unicode="&#x21f7;" d="M66 490v142l291 291l120 -120l-130 -130h287v250h194v-250h339v-224h-339v-250h-194v250h-287l130 -130l-120 -120z" />
+<glyph unicode="&#x21f8;" d="M404 449h-338v224h338v250h194v-250h288l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-288v-250h-194v250z" />
+<glyph unicode="&#x21f9;" d="M514 449h-167l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h167v250h205v-250h167l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-167v-260h-205v260z" />
+<glyph unicode="&#x21fa;" d="M66 490v142l291 291l120 -120l-130 -130h217v250h194v-250h88v250h194v-250h127v-224h-127v-250h-194v250h-88v-250h-194v250h-217l130 -130l-120 -120z" />
+<glyph unicode="&#x21fb;" d="M193 449h-127v224h127v250h194v-250h87v250h194v-250h218l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-218v-250h-194v250h-87v-250h-194v250z" />
+<glyph unicode="&#x21fc;" d="M66 490v142l291 291l120 -120l-130 -130h145v263h106v-263h37v263h106v-263h145l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-145v-250h-106v250h-37v-250h-106v250h-145l130 -130l-120 -120z" />
+<glyph unicode="&#x21fd;" d="M5 561l403 423v-311h759v-224h-759v-311zM309 746l-164 -185l164 -185v370z" />
+<glyph unicode="&#x21fe;" d="M825 449h-759v224h759v311l403 -423l-403 -423v311zM1088 561l-164 185v-370z" />
+<glyph unicode="&#x21ff;" d="M5 561l403 423v-311h417v311l403 -423l-403 -423v311h-417v-311zM309 746l-164 -185l164 -185v370zM1088 561l-164 185v-370z" />
+<glyph unicode="&#x2200;" d="M33 1493h295l90 -369h395l92 369h295l-403 -1493h-361zM756 881h-279l139 -611z" />
+<glyph unicode="&#x2201;" d="M639 -29q-148 0 -263 51.5t-193.5 150.5t-119 243t-40.5 329v1q0 185 40.5 329t119 243t193.5 150.5t263 51.5q149 0 262 -51t191 -150q80 -101 121 -248h-375q-5 20 -10.5 38t-12.5 34q-23 54 -68 84t-110 30q-124 0 -176 -114q-53 -117 -53 -395v-5q0 -78 3.5 -138.5 t10.5 -108t17 -83.5t23 -64q26 -55 67 -85t107 -30t111 30t68 84q8 17 13 36t10 36h375q-41 -147 -121 -248q-78 -99 -191 -150t-262 -51z" />
+<glyph unicode="&#x2202;" d="M538 -25q-90 0 -159 29.5t-123 85.5q-56 57 -83.5 129t-27.5 165q0 96 29 178.5t88 148.5q116 131 288 131q50 0 92.5 -10.5t76.5 -32.5q66 -43 112 -137q3 22 6.5 40t7 38.5t7.5 46.5t8 64q5 42 7.5 78t2.5 74q0 54 -6 93t-19 68q-14 30 -32 43.5t-38 13.5 q-30 0 -68 -22.5t-78 -50.5q-49 -34 -87 -53.5t-73 -19.5q-43 0 -71 30q-29 31 -29 71q0 32 20.5 62t65.5 58q43 26 94.5 40t111.5 14q103 0 180 -41t134 -120q59 -81 88 -188.5t29 -250.5q0 -160 -38 -299.5t-119 -254.5q-78 -109 -176.5 -165t-220.5 -56zM535 45 q48 0 91.5 32t77.5 101q33 68 49.5 153.5t16.5 175.5q0 61 -8.5 108.5t-29.5 80.5q-20 32 -48.5 47t-60.5 15q-54 0 -96 -35t-73 -98q-32 -66 -49.5 -151t-17.5 -179q0 -69 9.5 -115t28.5 -75q20 -30 48 -45t62 -15z" />
+<glyph unicode="&#x2203;" d="M163 251h624v380h-624v231h624v390h-624v241h928v-1493h-928v251z" />
+<glyph unicode="&#x2204;" d="M231 0h-68v251h147l104 380h-251v231h318l104 390h-422v241h471l26 95h192l-26 -95h265v-1493h-669l-26 -95h-191zM787 862v390l-114 -390h114zM787 251v380h-182l-104 -380h286z" />
+<glyph unicode="&#x2205;" d="M64 208l119 119q-20 26 -38.5 58t-33 71t-23 85.5t-8.5 100.5q0 224 157 381q159 159 381 159q55 0 101 -9t85 -23.5t71 -33.5t58 -39l119 119l119 -119l-119 -119q19 -26 37 -57.5t32.5 -70.5t23 -85t8.5 -101q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5 q-54 0 -100.5 9t-85 23t-70.5 32.5t-57 37.5l-119 -119zM810 953q-13 8 -26.5 15.5t-27.5 13.5q-65 27 -138 27q-79 0 -146 -30t-114 -77q-54 -54 -80 -121.5t-26 -139.5q0 -73 27 -137q5 -14 12.5 -27t15.5 -26zM617 278q149 0 257 108q107 107 107 257q0 75 -27 140 q-5 13 -11.5 25.5t-14.5 25.5l-502 -502q12 -8 26 -15t25 -12q29 -13 65.5 -20t74.5 -7z" />
+<glyph unicode="&#x2206;" d="M487 1423h258l496 -1423h-1247zM891 221l-275 821l-274 -821h549z" />
+<glyph unicode="&#x2207;" d="M-6 1423h1247l-496 -1423h-258zM891 1202h-549l274 -821z" />
+<glyph unicode="&#x2208;" d="M636 0q-73 0 -141 26.5t-128 76t-109.5 119.5t-85.5 158q-72 175 -72 380q0 105 18.5 202t53.5 182.5t84 156t111 121.5q123 102 269 102h497v-230h-497q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h796v-230h-796q4 -38 14.5 -83.5 t27.5 -92t42.5 -90.5t61.5 -80q71 -71 153 -71h497v-230h-497v0z" />
+<glyph unicode="&#x2209;" d="M239 -117l94 250q-50 48 -92.5 113.5t-73.5 145.5t-49 173t-18 196q0 104 18.5 201t53.5 182.5t84 156t111 121.5q123 102 269 102h218l74 197l215 -80l-43 -117h33v-230h-121l-156 -417h277v-230h-363l-156 -416q5 -1 11 -1h11h497v-230h-497q-33 0 -55.5 4t-48.5 10 q-44 11 -63.5 -40.5t-14.5 -170.5zM612 877l156 417h-132q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h275zM525 647h-188q10 -81 33 -150t54 -121z" />
+<glyph unicode="&#x220a;" d="M636 129q-73 0 -141.5 18t-128.5 51t-109.5 80.5t-85.5 106.5q-72 118 -72 255q0 71 19 137t54 123.5t84.5 105t110.5 81.5q124 68 269 68h498v-224h-498q-140 0 -234 -96q-17 -17 -34 -39.5t-27 -42.5h793v-222h-792q10 -20 25.5 -41t34.5 -41q95 -98 234 -98h498v-222 h-498v0z" />
+<glyph unicode="&#x220b;" d="M100 230h497q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-796v230h796q-5 38 -14.5 83.5t-27 92t-42.5 90.5t-61 80q-71 71 -154 71h-497v230h497q73 0 141 -26.5t128 -75.5t109.5 -119t85.5 -158q72 -176 72 -381q0 -105 -18.5 -202t-53.5 -182.5 t-84.5 -156t-110.5 -121.5q-123 -102 -269 -102h-497v230z" />
+<glyph unicode="&#x220c;" d="M100 -117l44 117h-34v230h120l157 417h-277v230h363l155 416q-5 1 -10.5 1h-10.5h-497v230h497q33 0 55.5 -4t47.5 -10q43 -11 63 40t16 171l215 -80l-94 -250q49 -48 92 -113.5t74 -145.5t49 -173t18 -196q0 -104 -18.5 -201t-53.5 -182.5t-84.5 -156t-110.5 -121.5 q-123 -102 -269 -102h-217l-75 -197zM906 877q-10 81 -33 150t-54 121l-101 -271h188zM607 230q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-274l-156 -417h131z" />
+<glyph unicode="&#x220d;" d="M99 353h498q75 0 130.5 25t102.5 71q42 42 62 82h-793v222h792q-11 20 -26.5 41t-34.5 41q-95 98 -233 98h-498v222h498q73 0 141.5 -17.5t128.5 -50.5t109.5 -80.5t85.5 -106.5q72 -119 72 -257q0 -70 -18.5 -135.5t-53.5 -123t-84.5 -105t-110.5 -81.5 q-125 -69 -270 -69h-498v224z" />
+<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
+<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-256v1747h-417v-1747h-256v1954z" />
+<glyph unicode="&#x2210;" d="M152 1518h256v-1747h417v1747h256v-1954h-929v1954z" />
+<glyph unicode="&#x2211;" d="M127 -301l494 870l-494 809v140h960v-213h-647l449 -736l-451 -794h666v-211h-977v135z" />
+<glyph unicode="&#x2212;" d="M66 762h1099v-238h-1099v238z" />
+<glyph unicode="&#x2213;" d="M88 1284h1057v-238h-1057v238zM498 354h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354z" />
+<glyph unicode="&#x2217;" d="M528 502l-331 -184l-76 141l332 174l-332 173l76 141l331 -182v344h172v-344l332 182l76 -141l-330 -173l330 -174l-76 -141l-332 184v-344h-172v344z" />
+<glyph unicode="&#x2218;" d="M613 372q-70 0 -130 25.5t-104.5 69.5t-70 104.5t-25.5 131.5t25.5 132t70.5 106t105.5 71t129.5 26q72 0 133 -27t106 -72q47 -48 71 -108t24 -126q0 -67 -25 -128t-71 -107q-48 -48 -109.5 -73t-129.5 -25zM614 534q36 0 67.5 13t54.5 36.5t36.5 54.5t13.5 67t-13 67 t-36 54t-54 36.5t-67 13.5t-67.5 -13.5t-54.5 -36.5t-36.5 -54.5t-13.5 -67.5t13 -67t36 -54t54 -36t67 -13z" />
+<glyph unicode="&#x221a;" d="M256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
+<glyph unicode="&#x221b;" d="M370 1043q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
+<glyph unicode="&#x221c;" d="M444 1238h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187zM444 1381v330l-250 -330h250z" />
+<glyph unicode="&#x221d;" d="M497 223q-69 0 -127.5 30t-101.5 85t-67 131.5t-24 169.5q0 89 22.5 162.5t64 126.5t100 82.5t130.5 29.5q91 0 163 -50t124 -159q45 108 114.5 158.5t160.5 50.5v-198q-16 0 -37 -13t-46 -42q-24 -28 -43.5 -64t-39.5 -94q14 -34 26 -59.5t22.5 -44.5t20.5 -32.5 t19 -24.5q40 -46 78 -46v-199q-75 0 -143 48.5t-132 156.5q-109 -205 -284 -205zM485 422q53 0 99 52t87 161q-54 125 -91 166t-86 41q-30 0 -54.5 -15.5t-42 -43.5t-27.5 -68t-10 -89q0 -46 9 -83.5t25 -64.5t39 -41.5t52 -14.5z" />
+<glyph unicode="&#x221e;" d="M331 223q-136 0 -228 116q-46 58 -68.5 130t-22.5 165q0 91 21.5 165t65.5 130q45 58 102.5 84.5t126.5 26.5q95 0 166 -52q73 -53 122 -157q46 108 115 158q70 51 170 51q146 0 233 -112q87 -113 87 -295q0 -92 -22.5 -164.5t-67.5 -130.5q-90 -115 -227 -115 q-89 0 -156 49t-132 156q-55 -103 -126 -154t-159 -51zM319 422q54 0 100 52q47 53 87 161q-54 125 -91 166q-20 22 -41.5 31.5t-44.5 9.5q-30 0 -54.5 -15.5t-41.5 -41.5q-18 -28 -28 -68t-10 -89q0 -43 8.5 -82t25.5 -68q33 -56 90 -56zM903 422q29 0 53.5 15t42.5 43 q19 29 28 68.5t9 86.5q0 45 -8 83t-25 67q-16 27 -39 42t-52 15q-55 0 -104 -55q-48 -54 -83 -158q28 -67 49 -104t39 -57q40 -46 90 -46z" />
+<glyph unicode="&#x221f;" d="M88 1306h238v-818h819v-238h-1057v1056z" />
+<glyph unicode="&#x2220;" d="M887 1306h238l-620 -818h640v-238h-1057z" />
+<glyph unicode="&#x2223;" d="M502 1565h227v-2048h-227v2048z" />
+<glyph unicode="&#x2227;" d="M436 1186h361l253 -1186h-298l-136 874l-136 -874h-298z" />
+<glyph unicode="&#x2228;" d="M182 1186h298l136 -874l136 874h298l-253 -1186h-361z" />
+<glyph unicode="&#x2229;" d="M182 602q0 154 25 264.5t78 181.5t135 104.5t196 33.5t196 -33.5t135 -104.5t78 -181.5t25 -264.5v-602h-251v676q0 117 -48 180t-135 63t-135 -63t-48 -180v-676h-251v602z" />
+<glyph unicode="&#x222a;" d="M616 0q-114 0 -196 33.5t-135 104.5t-78 181.5t-25 264.5v602h251v-676q0 -117 48 -180t135 -63t135 63t48 180v676h251v-602q0 -154 -25 -264.5t-78 -181.5t-135 -104.5t-196 -33.5z" />
+<glyph unicode="&#x222b;" d="M291 -373q-52 0 -92.5 13t-67.5 36q-26 21 -42.5 53.5t-16.5 74.5q0 60 39 98q38 37 99 37q55 0 91 -31q19 -17 26.5 -36t8.5 -36q2 -23 1 -40.5t5 -32.5q2 -5 7.5 -10t16.5 -5q28 0 48 40t33.5 119.5t22 199.5t15.5 280q0 10 1 34.5t2 55t2 63t2 59.5q10 255 38.5 435 t84.5 296q51 106 131 165t195 59q101 0 159 -49q27 -23 43 -55t16 -72q0 -33 -10.5 -58t-27.5 -41q-19 -18 -45 -27t-55 -9q-45 0 -76 24q-32 24 -42 69q-4 15 -4.5 26t-2.5 28q-2 15 -7 30.5t-22 15.5q-51 0 -80 -159t-40 -475q-1 -24 -1.5 -40t-1 -34t-1.5 -42t-2 -62 q-5 -136 -12 -247t-18 -196q-8 -61 -22.5 -125.5t-37.5 -125.5q-29 -79 -66.5 -134t-82.5 -92q-45 -38 -97 -57.5t-114 -19.5z" />
+<glyph unicode="&#x222c;" d="M242 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5 t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5zM765 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5 q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5z" />
+<glyph unicode="&#x222d;" d="M149 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-42.5 -103t-69 -66.5 t-93 -23.5zM522 -418q-42 0 -85.5 16.5t-104.5 58.5l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q45 0 90 -18.5t101 -56.5l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-43 -103 t-69.5 -66.5t-93 -23.5zM896 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132 t-42.5 -103t-69 -66.5t-93 -23.5z" />
+<glyph unicode="&#x2234;" d="M478 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM177 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM787 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2235;" d="M178 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM783 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM482 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2236;" d="M478 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM482 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2237;" d="M178 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM783 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM177 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM787 105 q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2238;" d="M480 902q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM66 762h1099v-238h-1099v238z" />
+<glyph unicode="&#x2239;" d="M880 822q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM74 760h746v-235h-746v235zM878 105q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x223a;" d="M78 870q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM883 870q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM66 762h1099v-238h-1099v238zM77 54q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30 h-273zM887 54q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x223b;" d="M481 912q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5 h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM480 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x223c;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x223d;" d="M381 468q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14z" />
+<glyph unicode="&#x2241;" d="M344 167l140 412q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l135 397l201 -68l-137 -406q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-137 -404z" />
+<glyph unicode="&#x2242;" d="M88 987h1057v-235h-1057v235zM850 254q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 108 -40t102 -14q72 0 140.5 30.5 t141.5 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
+<glyph unicode="&#x2243;" d="M850 672q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2244;" d="M194 112l103 183h-209v235h338l133 230q-29 13 -64 23t-75.5 13t-85.5 -3t-93 -24q-45 -17 -83 -42t-70 -54v226q42 36 84 59t82 36.5t77.5 18.5t70.5 5q26 0 49 -3t48 -9t52.5 -15.5t62.5 -22.5l13 -5l38 -18l201 360l144 -83l-183 -324q35 -9 76 -3t83.5 22.5t83 43 t75.5 59.5v-232q-29 -27 -67.5 -48.5t-92.5 -41.5q-36 -13 -67.5 -20t-63 -7t-65.5 6.5t-77 20.5l-94 -168h528v-235h-662l-150 -263z" />
+<glyph unicode="&#x2245;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x2246;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM239 30l20 30h-171v237h327l150 227h-477v236h634l96 147l176 -117l-19 -30h170v-236h-327l-150 -227h477v-237h-633l-97 -147z" />
+<glyph unicode="&#x2247;" d="M207 -54l47 114h-166v237h262l92 227h-354v236h450l85 210q-41 18 -74 29.5t-62 19t-54.5 10.5t-50.5 3q-79 0 -149 -29t-145 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q4 -2 11.5 -5l15 -6t14 -6t9.5 -4l106 259l218 -89l-78 -192 q30 8 55 19q32 14 68 38t74 57v-234q-75 -60 -145.5 -86.5t-146.5 -27.5l-61 -149h353v-236h-449l-93 -227h542v-237h-638l-82 -202z" />
+<glyph unicode="&#x2248;" d="M850 672q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29q-29 -12 -66.5 -34.5t-78.5 -57.5v229q40 31 78.5 53t72.5 35q36 14 76 20.5t77 6.5q52 0 107.5 -13.5t121.5 -41.5h1 l30 -14q117 -54 212 -54q71 0 139 30t142 95v-234q-75 -58 -146 -86q-33 -13 -69.5 -20.5t-79.5 -7.5zM850 254q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29 q-29 -12 -66.5 -34.5t-78.5 -57.5v229q77 61 151 88q37 14 76 20.5t76 6.5q53 0 108.5 -13.5t121.5 -41.5h1l31 -14q56 -26 108 -40t103 -14q38 0 71.5 8t67.5 23q39 17 72.5 39.5t69.5 54.5v-233q-74 -59 -146 -87q-33 -13 -69.5 -20.5t-79.5 -7.5z" />
+<glyph unicode="&#x2249;" d="M293 151l90 226q-183 -11 -295 -121v229q78 61 151 88t154 27q39 0 77 -7l70 173q-16 5 -29.5 9.5t-26.5 7.5q-22 5 -48.5 8.5t-54.5 3.5q-77 0 -147.5 -29t-145.5 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 109.5 -13.5t120.5 -40.5l102 256l219 -90l-93 -235h16 q72 0 139 29.5t142 95.5v-234q-75 -60 -146.5 -87t-146.5 -27q-25 0 -46 3t-44 8l-68 -169q90 -37 170 -37q70 0 139 30.5t142 94.5v-233q-72 -58 -144 -86.5t-149 -28.5q-52 0 -100.5 12.5t-106.5 38.5l-30 13l-103 -257z" />
+<glyph unicode="&#x224a;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5q-2 1 -12 5t-21 9q-33 14 -61.5 24.5t-55 18t-53.5 11.5t-58 4q-78 0 -148 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5q-2 1 -12 5t-21 9q-33 14 -61.5 24.5t-55 18t-53.5 11.5t-58 4q-78 0 -148 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40 t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x224b;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234q-69 -55 -141 -84.5 t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM850 25q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 107.5 -40t101.5 -14q72 0 141 30.5 t142 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
+<glyph unicode="&#x224c;" d="M381 909q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x224d;" d="M617 728q-200 0 -530 156v229q345 -155 530 -163q186 0 527 163v-229q-327 -156 -527 -156zM88 398q328 156 528 156t529 -156v-229q-344 155 -529 163q-186 0 -528 -163v229z" />
+<glyph unicode="&#x224e;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM615 20q-26 0 -62.5 10t-75 31.5t-75 54.5t-62.5 80q-16 28 -25.5 56t-9.5 45h-217v235h343q1 -27 7.5 -58.5t18.5 -62.5t29.5 -58.5t39.5 -46.5q17 -14 39.5 -24.5t51.5 -10.5q51 -1 92 34.5t69 110.5q11 28 17.5 57.5 t7.5 58.5h342v-235h-217q-14 -69 -48.5 -126t-107.5 -100q-40 -23 -82.5 -37t-74.5 -14z" />
+<glyph unicode="&#x224f;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2250;" d="M480 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2251;" d="M480 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM480 -166q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2252;" d="M118 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM842 -166q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2253;" d="M843 1083q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM118 -166q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2254;" d="M111 708q-30 0 -30 30v262q0 30 30 30h176q30 0 30 -30v-262q0 -30 -30 -30h-176zM407 987h745v-235h-745v235zM111 253q-30 0 -30 30v261q0 30 30 30h176q30 0 30 -30v-261q0 -30 -30 -30h-176zM407 532h745v-237h-745v237z" />
+<glyph unicode="&#x2255;" d="M946 708q-30 0 -30 30v262q0 30 30 30h176q30 0 30 -30v-262q0 -30 -30 -30h-176zM81 987h745v-235h-745v235zM946 253q-30 0 -30 30v261q0 30 30 30h176q30 0 30 -30v-261q0 -30 -30 -30h-176zM81 532h745v-237h-745v237z" />
+<glyph unicode="&#x2256;" d="M88 532h256q-25 62 -25 110q0 51 27 110h-258v235h1057v-235h-256q14 -13 20 -42.5t6 -61.5q0 -28 -5.5 -53t-21.5 -63h257v-237h-1057v237zM693 532q26 24 38.5 54t12.5 60t-13 58t-39 48h-143q-52 -48 -52 -111q0 -61 51 -109h145z" />
+<glyph unicode="&#x2257;" d="M614 1082q-64 0 -119 22t-95 61t-63 92t-23 114q0 62 23.5 116.5t65 95t96.5 63t118 21.5q60 -1 114.5 -23.5t96.5 -61.5t67 -93t25 -117q0 -62 -24 -115t-65.5 -92t-97 -61t-119.5 -22zM617 1257q25 0 47.5 9t38.5 24.5t25.5 36.5t9.5 45t-9.5 45.5t-26 37.5t-39 25.5 t-47.5 9.5t-47 -9t-38 -25t-25.5 -37.5t-9.5 -45.5t9.5 -45.5t25.5 -37t38 -24.5t48 -9zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2258;" d="M182 1314q209 151 436 151q230 0 432 -151l1 -244q-214 151 -433 160q-214 -1 -436 -160v244zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2259;" d="M536 1688h162l233 -603h-194l-119 298l-116 -298h-200zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225a;" d="M302 1688h200l116 -298l119 298h194l-233 -603h-162zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225b;" d="M455 1419l-261 190h323l100 306l102 -306h321l-261 -190l102 -307l-264 190l-262 -190zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225c;" d="M561 1820h111l286 -729h-683zM722 1257l-106 274l-105 -274h211zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225d;" d="M257 1073q-32 0 -57.5 12.5t-44.5 35t-29 54.5t-10 70t10 69.5t29 54t44.5 35t57.5 12.5q31 0 57 -13.5t48 -42.5v175h105v-454h-95l-10 48q-41 -56 -105 -56zM915 1333h-52v75h52v23q0 54 29.5 79t92.5 25h80v-68h-58q-22 0 -31 -8t-9 -28v-23h89v-75h-89v-252h-104v252 zM676 1073q-91 0 -140 44.5t-49 125.5t48 127t129 46q82 0 128 -46t46 -124v-30h-244q6 -74 92 -74q31 0 65.5 10t70.5 30v-81q-37 -14 -74 -21t-72 -7zM730 1280q0 30 -17 48t-47 18q-29 0 -48 -17t-23 -49h135zM293 1149q34 0 51.5 24.5t17.5 71.5q0 95 -69 95 q-68 0 -68 -95q0 -47 17.5 -71.5t50.5 -24.5zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225e;" d="M180 1627h175v-81q64 94 164 94q57 0 100 -27.5t65 -76.5q68 104 181 104q90 0 139 -58t49 -170v-334h-175v286q1 5 1 14v19q0 58 -17 84.5t-55 26.5q-50 0 -76.5 -42.5t-26.5 -118.5v-269h-175v286q0 91 -15 118q-17 26 -55 26q-51 0 -77.5 -41t-26.5 -119v-270h-175 v549zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
+<glyph unicode="&#x225f;" d="M492 1366q0 21 3.5 38.5t12.5 35t26 37t44 43.5l32 29q54 49 54 97q0 34 -24 53t-68 19q-39 0 -86 -16.5t-98 -49.5v157q60 21 109.5 31t100.5 10q118 0 182.5 -49.5t64.5 -143.5q0 -49 -20 -90.5t-66 -82.5l-32 -28q-17 -16 -27.5 -28t-16.5 -22.5t-8.5 -20t-2.5 -21.5 v-22h-180v24zM522 1090q-30 0 -30 30v118q0 30 30 30h120q30 0 30 -30v-118q0 -30 -30 -30h-120zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
+<glyph unicode="&#x2260;" d="M94 117l146 178h-162v237h321l176 220h-497v235h659l252 305l150 -125l-146 -180h162v-235h-315l-174 -220h489v-237h-659l-252 -305z" />
+<glyph unicode="&#x2261;" d="M88 1222h1057v-235h-1057v235zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x2262;" d="M188 -15l34 75h-134v237h241l101 227h-342v236h450l100 227h-550v235h658l80 181l219 -98l-36 -83h136v-235h-244l-102 -227h346v-236h-451l-101 -227h552v-237h-660l-78 -173z" />
+<glyph unicode="&#x2263;" d="M88 1410h1057v-237h-1057v237zM88 987h1057v-237h-1057v237zM88 564h1057v-237h-1057v237zM88 141h1057v-237h-1057v237z" />
+<glyph unicode="&#x2264;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x2265;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x2266;" d="M88 728v235l1057 334v-244l-739 -209l739 -209v-243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
+<glyph unicode="&#x2267;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
+<glyph unicode="&#x2268;" d="M1145 1053l-739 -209l739 -209v-243l-285 91l150 -128l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150l-161 137l11 13h-146v237h346l89 105h-435v238h635l122 144l-757 241v235l1057 334v-244z" />
+<glyph unicode="&#x2269;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM223 -250l11 13h-146v237h346l89 105h-435v238h635l126 149l161 -137l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150z" />
+<glyph unicode="&#x226d;" d="M230 -31l126 311q-60 -20 -126.5 -48t-141.5 -63v229q106 51 198.5 85t171.5 51l80 199q-184 24 -451 151v229q339 -167 538 -163l179 443l199 -80l-125 -310q60 20 125.5 47.5t140.5 62.5v-229q-108 -51 -200 -84.5t-170 -52.5l-80 -198q185 -24 451 -151v-229 q-340 169 -537 163l-179 -443z" />
+<glyph unicode="&#x226e;" d="M343 52l121 324l-376 148v236l610 239l107 289l155 -58l-56 -149l241 95v-250l-346 -124l-106 -283l452 -161v-249l-527 207l-121 -322zM595 729l-245 -88l188 -67z" />
+<glyph unicode="&#x226f;" d="M273 52l56 149l-241 -95v250l346 124l106 283l-452 161v249l527 -207l121 322l154 -58l-121 -324l376 -148v-236l-610 -239l-107 -289zM883 641l-188 67l-57 -155z" />
+<glyph unicode="&#x2270;" d="M310 -120l42 120h-264v238h346l87 247l-433 138v235l634 200l100 290l181 -76l-49 -141l191 61v-244l-283 -80l-83 -234l366 -104v-243l-437 139l-65 -188h502v-238h-586l-68 -196zM633 803l-227 -64l185 -52z" />
+<glyph unicode="&#x2271;" d="M168 -120l42 120h-122v238h204l48 129l-252 -80v243l342 97l70 204l-412 117v244l486 -158l106 310l181 -76l-101 -292l385 -118v-235l-575 -183l-71 -202h646v-238h-729l-67 -196zM827 739l-137 39l-32 -87z" />
+<glyph unicode="&#x2272;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40 t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2273;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14 q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2274;" d="M310 -120l58 165q-72 -2 -138.5 -30t-141.5 -91v229q78 60 151 87.5t154 27.5q25 0 51 -3l77 220l-433 138v235l633 200l101 290l181 -76l-49 -140l191 60v-244l-283 -80l-82 -235l365 -103v-243l-437 139l-75 -218l19 -9q56 -26 109.5 -40t103.5 -14q71 0 138 29.5 t142 95.5v-234q-144 -114 -293 -114q-49 0 -97.5 12t-109.5 39q-17 7 -27.5 12t-18.5 8.5t-16.5 6.5t-20.5 8l-71 -204zM631 803l-225 -64l185 -52z" />
+<glyph unicode="&#x2275;" d="M168 -124l46 132q-62 -29 -126 -84v229q42 32 79.5 54t71.5 34q15 5 32 10t31 8l37 108l-251 -80v243l342 97l71 204l-413 117v244l485 -153l107 305l181 -76l-101 -289l385 -121v-235l-572 -182l-66 -189q55 -14 114 -39h1l30 -14q115 -54 213 -54q71 0 138 29.5 t142 95.5v-234q-75 -60 -146.5 -87t-148.5 -27q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-35 15 -67 27t-61 20q-1 0 -8 1.5t-16 2.5t-16.5 2.5t-10.5 1.5l-84 -242zM827 739l-137 39l-30 -86z" />
+<glyph unicode="&#x2276;" d="M88 832v235l1057 334v-244l-739 -209l739 -209v-243zM88 0l739 209l-739 209v244l1057 -334v-235l-1057 -336v243z" />
+<glyph unicode="&#x2277;" d="M88 739l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 93v235l1057 334v-244l-739 -209l739 -209v-243z" />
+<glyph unicode="&#x2278;" d="M202 -358l52 168l-166 -53v243l247 70l80 256l-327 92v244l393 -124l48 154l-441 140v235l619 195l100 323l224 -70l-52 -166l166 52v-244l-247 -70l-80 -256l327 -92v-243l-392 125l-48 -154l440 -139v-235l-618 -196l-101 -325zM628 1011l-222 -63l186 -53zM827 209 l-186 53l-36 -116z" />
+<glyph unicode="&#x2279;" d="M202 -358l118 377l-232 74v235l363 115l59 187l-422 -134v243l500 141l38 125l-538 152v244l602 -190l117 374l224 -70l-117 -375l231 -73v-235l-363 -115l-58 -188l421 133v-244l-500 -141l-38 -125l538 -152v-243l-602 191l-117 -376z" />
+<glyph unicode="&#x227a;" d="M1143 -95q-115 172 -277 301.5t-366 207.5q-91 35 -195.5 61t-218.5 43v246q106 20 213.5 51t200.5 66q113 42 203.5 90t167 107t142.5 132t130 167v-354q-285 -347 -626 -382q339 -46 626 -382v-354v0z" />
+<glyph unicode="&#x227b;" d="M86 259q287 336 626 382q-341 35 -626 382v354q67 -99 137 -174.5t147.5 -134t166 -103.5t192.5 -84q109 -41 215 -70.5t199 -46.5v-246q-118 -18 -222.5 -44.5t-191.5 -59.5q-204 -78 -366 -207.5t-277 -301.5v354z" />
+<glyph unicode="&#x227c;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM1145 -421q-399 591 -1057 712v235q678 -112 1057 -625v-322z" />
+<glyph unicode="&#x227d;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM88 -99q379 513 1057 625v-235q-658 -121 -1057 -712v322z" />
+<glyph unicode="&#x227e;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x227f;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2280;" d="M309 -169l190 583q-90 35 -192.5 61t-220.5 43v246q40 7 89.5 19t103.5 27t110.5 32.5t110.5 37.5q42 15 84 32.5t91 43.5l185 568l223 -73l-82 -253q79 83 142 179v-354q-69 -83 -139 -147.5t-145 -112.5l-69 -211q186 -98 353 -293v-354q-170 254 -431 407l-180 -554z M575 649q-14 -2 -29 -4t-29 -4l53 -9z" />
+<glyph unicode="&#x2281;" d="M146 -169l82 253q-79 -83 -142 -179v354q69 83 139 147.5t145 112.5l69 211q-186 98 -353 293v354q170 -254 431 -407l180 554l223 -73l-190 -583q90 -35 192.5 -61t220.5 -43v-246q-41 -8 -90.5 -19.5t-103.5 -26.5t-110 -33t-110 -37q-42 -15 -84 -32.5t-91 -43.5 l-185 -568zM654 633q14 2 29 4t29 4l-53 9z" />
+<glyph unicode="&#x2282;" d="M576 138q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569v0z" />
+<glyph unicode="&#x2283;" d="M88 363h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225z" />
+<glyph unicode="&#x2284;" d="M246 -48l94 242q-31 17 -58 38.5t-52 47.5q-72 76 -107 167.5t-35 193.5q0 108 38 200.5t103.5 159.5t154.5 105t191 38h134l99 257l179 -69l-72 -188h230v-225h-318l-216 -556h534v-225h-569q-14 0 -26.5 0.5t-25.5 1.5l-99 -258zM621 919h-46q-55 0 -103 -20t-83 -57 t-55.5 -89t-20.5 -116q0 -59 18.5 -108.5t57.5 -88.5q15 -15 35 -30z" />
+<glyph unicode="&#x2285;" d="M246 -49l72 188h-230v225h318l216 556h-534v225h569q14 0 26.5 -0.5t25.5 -1.5l99 258l179 -70l-94 -242q31 -17 58 -38.5t52 -47.5q72 -76 107 -167.5t35 -193.5q0 -108 -38 -200.5t-103.5 -159.5t-154.5 -105t-191 -38h-134l-99 -257zM658 364q55 0 103 20t83 57 t55.5 89t20.5 116q0 59 -18.5 108.5t-57.5 88.5q-15 15 -35 30l-197 -509h46z" />
+<glyph unicode="&#x2286;" d="M576 315q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569zM88 198h1057v-238h-1057v238z" />
+<glyph unicode="&#x2287;" d="M88 540h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225zM88 198h1057v-238h-1057v238z" />
+<glyph unicode="&#x2288;" d="M168 -160l46 120h-126v238h219l61 158q-76 34 -138 101q-70 75 -106 166t-36 195q0 108 38 200.5t103.5 159.5t154.5 105t191 38h166l67 173l179 -69l-40 -104h198v-225h-285l-213 -556h498v-225h-569h-15l-45 -117h629v-238h-721l-75 -196zM654 1096h-79q-55 0 -103 -20 t-83 -57t-55.5 -89t-20.5 -116q0 -121 76 -197q28 -28 61 -46z" />
+<glyph unicode="&#x2289;" d="M168 -160l46 120h-126v238h219l45 117h-264v225h350l216 556h-566v225h570q42 0 81 -6l69 179l179 -69l-69 -178q45 -27 86 -68q72 -73 106.5 -169t34.5 -194q0 -103 -36 -194t-100.5 -159.5t-154 -108t-197.5 -39.5h-96l-45 -117h629v-238h-721l-75 -196zM658 540 q54 0 102 19.5t83.5 56.5t56 88.5t20.5 116.5q0 60 -19 110t-57 88l-10 9l-187 -488h11z" />
+<glyph unicode="&#x228a;" d="M316 -108l54 68h-282v238h472l94 117h-78q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20t-83 -57t-55.5 -88t-20.5 -113q0 -63 20.5 -114.5t56.5 -87.5t83.5 -56t101.5 -20h570v-225 h-289l61 -49l-54 -68h282v-238h-472l-173 -216z" />
+<glyph unicode="&#x228b;" d="M316 -108l54 68h-282v238h472l94 117h-566v225h570q54 0 101.5 20t83.5 56t56.5 87.5t20.5 114.5q0 62 -20.5 113t-55.5 88t-83 57t-103 20h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159.5t38 -201q0 -100 -34.5 -191t-107.5 -169q-41 -44 -84 -71t-95 -45 l93 -75l-54 -68h282v-238h-472l-173 -216z" />
+<glyph unicode="&#x228d;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t139.5 17t89 61t47 119t13.5 191v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM519 500q-30 0 -30 30v205q0 30 30 30 h193q30 0 30 -30v-205q0 -30 -30 -30h-193z" />
+<glyph unicode="&#x228e;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t139.5 17t89 61t47 119t13.5 191v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM550 576h-140v132h140v140h132v-140h140 v-132h-140v-140h-132v140z" />
+<glyph unicode="&#x228f;" d="M88 1196h1057v-235h-822v-640h822v-235h-1057v1110z" />
+<glyph unicode="&#x2290;" d="M88 321h822v640h-822v235h1057v-1110h-1057v235z" />
+<glyph unicode="&#x2291;" d="M88 1302h1057v-235h-822v-448h822v-235h-1057v918zM88 215h1057v-235h-1057v235z" />
+<glyph unicode="&#x2292;" d="M88 619h822v448h-822v235h1057v-918h-1057v235zM88 215h1057v-235h-1057v235z" />
+<glyph unicode="&#x2293;" d="M62 1284h1110v-1284h-236v1049h-640v-1049h-234v1284z" />
+<glyph unicode="&#x2294;" d="M62 1284h236v-1049h640v1049h234v-1284h-1110v1284z" />
+<glyph unicode="&#x2295;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
+<glyph unicode="&#x2296;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM271 727h691v-170h-691v170z" />
+<glyph unicode="&#x2297;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l184 184l-185 185l120 121l185 -186l185 185l120 -120l-185 -185l184 -183l-121 -120l-183 183l-184 -184z" />
+<glyph unicode="&#x2298;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l489 489l120 -120l-489 -489z" />
+<glyph unicode="&#x2299;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM449 815h333v-365h-333v365z" />
+<glyph unicode="&#x229a;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM614 378q-57 0 -105 20t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 538q22 0 42 8t34.5 22.5t23 33.5t8.5 42 q0 20 -7 39t-24 36q-31 31 -75 31q-23 0 -42.5 -8.5t-34 -22.5t-22.5 -34t-8 -42q0 -23 8 -42t22.5 -33t33.5 -22t41 -8z" />
+<glyph unicode="&#x229b;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM927 889q-7 9 -15 18t-16 17q-26 26 -59 49t-69 38q-32 13 -68 21v-267zM528 1031q-17 -4 -32.5 -8.5t-31.5 -11.5q-35 -15 -68.5 -38.5t-58.5 -48.5q-8 -8 -16.5 -17.5t-15.5 -18.5l223 -123v266zM994 519q18 58 18 125q0 27 -3 53.5t-10 51.5l-221 -116z M453 633l-220 114q-12 -50 -12 -104q0 -65 18 -122zM528 502l-211 -117q5 -5 10 -11t10 -11q25 -25 58.5 -48.5t68.5 -38.5q16 -7 31.5 -11.5t32.5 -8.5v246zM700 255q36 8 68 21q33 14 67 37t61 50q8 8 12 12.5t7 7.5l-215 119v-247z" />
+<glyph unicode="&#x229c;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM299 849h635v-141h-635v141zM299 576h635v-143h-635v143z" />
+<glyph unicode="&#x229d;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM399 727h435v-170h-435v170z" />
+<glyph unicode="&#x229e;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
+<glyph unicode="&#x229f;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM271 727h691v-170h-691v170z" />
+<glyph unicode="&#x22a0;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM268 413l229 229l-231 231l121 120l230 -231l230 230l120 -120l-230 -230l229 -228l-120 -121l-229 229l-229 -229z" />
+<glyph unicode="&#x22a1;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM449 815h333v-365h-333v365z" />
+<glyph unicode="&#x22a2;" d="M66 1284h237v-522h862v-238h-862v-524h-237v1284z" />
+<glyph unicode="&#x22a3;" d="M928 522h-862v238h862v524h237v-1284h-237v522z" />
+<glyph unicode="&#x22a4;" d="M498 1046h-432v238h1099v-238h-430v-1046h-237v1046z" />
+<glyph unicode="&#x22b2;" d="M88 524v236l1057 416v-1067zM908 841l-558 -200l558 -199v399z" />
+<glyph unicode="&#x22b3;" d="M88 1176l1057 -416v-236l-1057 -415v1067zM883 641l-558 200v-399z" />
+<glyph unicode="&#x22b4;" d="M88 623v235l1057 334v-905zM908 881l-502 -142l502 -142v284zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x22b5;" d="M88 1192l1057 -334v-235l-1057 -336v905zM827 739l-502 142v-284zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x22b8;" d="M918 359q-61 0 -109.5 21t-90.5 61q-20 19 -34.5 39.5t-24.5 43.5h-631v238h631q10 23 24 42.5t31 36.5q45 45 98.5 67t110.5 22q58 0 109.5 -22t90 -61t60.5 -92t22 -114q0 -60 -21.5 -111.5t-60 -89.5t-91 -59.5t-114.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43 t10.5 53.5q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
+<glyph unicode="&#x22c2;" d="M90 936q0 168 28.5 284.5t91.5 189t163 105t244 32.5t244 -32.5t163 -105t91 -189t28 -284.5v-1372h-238v1352q0 117 -13.5 192t-46.5 118.5t-88.5 60.5t-139.5 17t-139.5 -17t-89 -61t-47 -119t-13.5 -191v-1352h-238v1372z" />
+<glyph unicode="&#x22c3;" d="M616 -465q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v1372h238v-1352q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t139.5 17t89 61t47 119t13.5 191v1352h238v-1372q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5z" />
+<glyph unicode="&#x22c4;" d="M6 730l610 610l611 -610l-611 -610zM1004 730l-388 390l-387 -390l387 -388z" />
+<glyph unicode="&#x22c5;" d="M449 895h333v-365h-333v365z" />
+<glyph unicode="&#x22c6;" d="M467 657l-241 175h298l93 284l93 -284h297l-241 -175l93 -283l-242 175l-242 -175z" />
+<glyph unicode="&#x22cd;" d="M381 672q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x22ce;" d="M482 0q0 900 -484 1284h338q262 -208 280 -508q26 300 280 508h338q-484 -384 -484 -1284h-268v0z" />
+<glyph unicode="&#x22cf;" d="M-2 0q484 384 484 1284h268q0 -900 484 -1284h-338q-262 208 -280 508q-26 -300 -280 -508h-338v0z" />
+<glyph unicode="&#x22d0;" d="M778 -46q-143 0 -268 54t-218.5 147.5t-147.5 218.5t-54 268q0 95 24.5 183t69.5 164.5t107.5 139t139 107.5t164.5 69.5t183 24.5h365v-220h-365q-97 0 -182.5 -36.5t-149 -100t-100 -149t-36.5 -182.5t36.5 -182.5t100 -149t149 -100t182.5 -36.5h365v-220h-365z M778 324q-66 0 -124 25t-101 68t-68 101t-25 124t25 124t68 101t101 68t124 25h365v-220h-365q-42 0 -70 -28t-28 -70t28 -70t70 -28h365v-220h-365z" />
+<glyph unicode="&#x22d1;" d="M90 174h365q97 0 182.5 36.5t149 100t100 149t36.5 182.5t-36.5 182.5t-100 149t-149 100t-182.5 36.5h-365v220h365q95 0 183 -24.5t164.5 -69.5t139 -107.5t107.5 -139t69.5 -164.5t24.5 -183t-24.5 -183t-69.5 -164.5t-107.5 -139t-139 -107.5t-164.5 -69.5 t-183 -24.5h-365v220zM90 544h365q42 0 70 28t28 70t-28 70t-70 28h-365v220h365q66 0 124 -25t101 -68t68 -101t25 -124t-25 -124t-68 -101t-101 -68t-124 -25h-365v220z" />
+<glyph unicode="&#x22da;" d="M88 1020v235l1057 334v-244l-739 -209l739 -209v-243zM88 635h1057v-238h-1057v238zM88 -313l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
+<glyph unicode="&#x22db;" d="M88 927l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 635h1057v-238h-1057v238zM88 -223v235l1057 336v-243l-739 -209l739 -209v-244z" />
+<glyph unicode="&#x22dc;" d="M88 1192h1057v-238h-1057v238zM88 334v235l1057 336v-243l-739 -209l739 -209v-244z" />
+<glyph unicode="&#x22dd;" d="M88 1192h1057v-238h-1057v238zM88 244l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
+<glyph unicode="&#x22de;" d="M88 811q658 121 1057 712v-322q-379 -513 -1057 -625v235zM1145 -421q-405 518 -1057 555v266q640 52 1057 555v-338q-271 -277 -608 -350q335 -75 608 -350v-338z" />
+<glyph unicode="&#x22df;" d="M1145 576q-678 112 -1057 625v322q399 -591 1057 -712v-235zM88 -83q273 275 608 350q-337 73 -608 350v338q417 -503 1057 -555v-266q-652 -37 -1057 -555v338z" />
+<glyph unicode="&#x22e0;" d="M279 -452l139 646q-78 32 -160 56.5t-170 40.5v235q102 -17 196.5 -42.5t182.5 -60.5l40 188q-195 73 -419 91v266q284 16 522 125l119 552l225 -48l-73 -340q72 57 137.5 122.5t126.5 143.5v-338q-156 -158 -333 -249l-39 -181q199 -95 372 -270v-338q-189 228 -424 364 l-41 -191q273 -158 465 -419v-322q-219 323 -515 507l-126 -586zM556 839l-19 -4l17 -4z" />
+<glyph unicode="&#x22e1;" d="M279 -452l74 346q-143 -135 -265 -315v322q74 100 158 184t181 154l55 253q-216 -131 -394 -345v338q208 214 458 306l17 82q-258 92 -475 312v338q222 -285 524 -425l117 547l225 -48l-124 -579q75 -20 153 -32.5t162 -17.5v-266q-107 -8 -207 -29.5t-194 -55.5 l-48 -224q204 92 449 133v-235q-280 -51 -511 -187l-130 -604z" />
+<glyph unicode="&#x22e2;" d="M187 -214l70 194h-169v235h253l61 169h-314v918h644l98 272l216 -78l-70 -194h169v-235h-253l-161 -448h414v-235h-499l-61 -169h560v-235h-644l-98 -272zM487 619l161 448h-325v-448h164z" />
+<glyph unicode="&#x22e3;" d="M187 -214l70 194h-169v235h253l61 169h-314v235h399l161 448h-560v235h644l98 272l216 -78l-70 -194h169v-918h-499l-61 -169h560v-235h-644l-98 -272zM910 619v448h-18l-161 -448h179z" />
+<glyph unicode="&#x22e4;" d="M324 -122l72 102h-308v235h475l119 169h-594v918h1057v-235h-822v-448h822v-235h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
+<glyph unicode="&#x22e5;" d="M324 -122l72 102h-308v235h475l119 169h-594v235h822v448h-822v235h1057v-918h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
+<glyph unicode="&#x22e6;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l72 213l-537 171v235l1057 334v-244l-739 -209l739 -209v-243l-317 101l-76 -226q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
+<glyph unicode="&#x22e7;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l74 219l-539 -171v243l739 209l-739 209v244l1057 -334v-235l-426 -135l128 -44l-95 -282q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
+<glyph unicode="&#x22e8;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
+<glyph unicode="&#x22e9;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
+<glyph unicode="&#x22ef;" d="M87 460q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM499 460q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM911 460q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235z" />
+<glyph unicode="&#x2304;" d="M146 428h193l277 -410l277 410h193l-470 -698z" />
+<glyph unicode="&#x2308;" d="M422 1556h508v-190h-242v-1636h-266v1826z" />
+<glyph unicode="&#x2309;" d="M545 1366h-242v190h508v-1826h-266v1636z" />
+<glyph unicode="&#x230a;" d="M422 1556h266v-1636h242v-190h-508v1826z" />
+<glyph unicode="&#x230b;" d="M303 -80h242v1636h266v-1826h-508v190z" />
+<glyph unicode="&#x2310;" d="M88 899h1057v-237h-819v-300h-238v537z" />
+<glyph unicode="&#x2320;" d="M485 727q0 4 1.5 55.5t5.5 156.5q10 253 38.5 434.5t83.5 296.5q52 109 134 166.5t190 57.5q51 0 91.5 -12.5t69.5 -36t44.5 -55.5t15.5 -71q0 -63 -37.5 -99.5t-97.5 -36.5q-52 0 -81.5 26t-39.5 67q-2 10 -4 25t-3 29q-2 20 -8.5 33t-20.5 13q-47 0 -76.5 -156.5 t-43.5 -477.5q-6 -143 -6 -178v-1476h-256v1239z" />
+<glyph unicode="&#x2321;" d="M288 -490q-51 0 -91.5 12.5t-69.5 36t-44.5 55.5t-15.5 71q0 63 37.5 99.5t97.5 36.5q52 0 81.5 -26t39.5 -67q2 -10 4 -25t3 -29q2 -20 8.5 -33t20.5 -13q47 0 76.5 156.5t43.5 477.5q6 142 6 178v1486h256v-1249q0 -4 -1.5 -55.5t-5.5 -156.5q-10 -253 -38.5 -434.5 t-83.5 -296.5q-52 -109 -134 -166.5t-190 -57.5z" />
+<glyph unicode="&#x239b;" d="M232 -282q0 294 22.5 546t61 466t89.5 391t108 322t116.5 258.5t114.5 199.5h256q-59 -120 -117.5 -246.5t-111.5 -271.5t-98 -313.5t-78.5 -371t-52.5 -445t-19 -535.5v-234h-291v234z" />
+<glyph unicode="&#x239c;" d="M232 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x239d;" d="M744 -492q-51 80 -109 190t-115 253t-109 320.5t-92 393.5t-63.5 472t-23.5 555v234h291v-234q0 -284 16 -518t46.5 -430t73 -361.5t95.5 -313.5t115 -285t131 -276h-256v0z" />
+<glyph unicode="&#x239e;" d="M710 -282q0 293 -19 535.5t-52.5 445t-78.5 371t-98 313.5t-111.5 271.5t-117.5 246.5h256q55 -86 114.5 -199.5t116.5 -258.5t108 -322t89.5 -391t61 -466t22.5 -546v-234h-291v234z" />
+<glyph unicode="&#x239f;" d="M710 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x23a0;" d="M233 -492q69 139 131 276t115 285t95.5 313.5t73 361.5t46.5 430t16 518v234h291v-234q0 -299 -23.5 -555t-63.5 -472t-92 -393.5t-109 -320.5t-115 -253t-109 -190h-256v0z" />
+<glyph unicode="&#x23a1;" d="M232 1901h768v-291h-477v-2126h-291v2417z" />
+<glyph unicode="&#x23a2;" d="M232 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x23a3;" d="M232 1926h291v-2127h477v-291h-768v2418z" />
+<glyph unicode="&#x23a4;" d="M709 1610h-477v291h768v-2417h-291v2126z" />
+<glyph unicode="&#x23a5;" d="M709 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x23a6;" d="M232 -201h477v2127h291v-2418h-768v291z" />
+<glyph unicode="&#x23a7;" d="M476 1375q0 123 31.5 220.5t91 165.5t146 104t197.5 36h275v-272h-281q-51 0 -85 -8t-55 -34t-29.5 -74.5t-8.5 -129.5v-1917h-282v1909z" />
+<glyph unicode="&#x23a8;" d="M476 181q0 94 -19 165t-65 118.5t-122.5 72t-191.5 26.5l-61 1v283h61q112 0 188.5 23t123 70t66.5 119t20 170v684h282v-696q0 -134 -25.5 -240t-75.5 -179q-42 -61 -100 -93q56 -31 100 -93q51 -73 76 -179t25 -240v-698h-282v686z" />
+<glyph unicode="&#x23a9;" d="M942 -492q-109 0 -195.5 35.5t-146.5 103t-92 165t-32 222.5v1879h282v-1887q0 -81 8.5 -129.5t29.5 -74.5t55 -34t85 -8h281v-272h-275v0z" />
+<glyph unicode="&#x23aa;" d="M476 1913h282v-2437h-282v2437z" />
+<glyph unicode="&#x23ab;" d="M475 1383q0 81 -8.5 129.5t-29.5 74.5t-55 34t-85 8h-281v272h275q111 0 197.5 -36t146 -104t91 -165.5t31.5 -220.5v-1909h-282v1917z" />
+<glyph unicode="&#x23ac;" d="M475 193q0 134 25 240t76 179q43 62 100 93q-59 33 -100 93q-50 73 -75.5 179t-25.5 240v696h282v-684q0 -98 20 -170t66.5 -119t123 -70t188.5 -23h61v-283l-61 -1q-115 -2 -191.5 -26.5t-122.5 -72t-65 -118.5t-19 -165v-686h-282v698z" />
+<glyph unicode="&#x23ad;" d="M16 -220h281q51 0 85 8t55 34t29.5 74.5t8.5 129.5v1887h282v-1879q0 -125 -32 -222.5t-92 -165t-146.5 -103t-195.5 -35.5h-275v272z" />
+<glyph unicode="&#x23ae;" d="M485 1926h256v-2438h-256v2438z" />
+<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
+<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
+<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
+<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
+<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
+<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
+<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
+<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
+<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
+<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
+<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
+<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
+<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
+<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
+<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
+<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
+<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
+<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
+<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
+<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
+<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
+<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
+<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
+<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
+<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
+<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
+<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
+<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
+<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
+<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
+<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
+<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
+<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
+<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
+<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
+<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
+<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
+<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
+<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
+<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
+<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
+<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
+<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
+<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
+<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
+<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
+<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
+<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
+<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
+<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
+<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
+<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
+<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
+<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
+<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
+<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
+<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
+<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
+<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
+<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
+<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
+<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
+<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
+<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
+<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
+<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
+<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
+<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
+<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
+<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
+<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
+<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
+<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
+<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
+<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
+<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
+<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
+<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
+<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
+<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
+<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
+<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
+<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
+<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
+<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
+<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
+<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
+<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
+<glyph unicode="&#x2588;" d="M-20 1921h1273v-2433h-1273v2433z" />
+<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
+<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
+<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
+<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
+<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
+<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
+<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
+<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
+<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
+<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
+<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
+<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
+<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
+<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
+<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
+<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
+<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
+<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
+<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
+<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
+<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
+<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
+<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
+<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
+<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
+<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
+<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
+<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
+<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
+<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
+<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
+<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
+<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
+<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
+<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
+<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
+<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
+<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
+<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
+<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
+<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1056 1028h-879l439 -878z" />
+<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
+<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
+<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
+<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
+<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
+<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
+<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
+<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
+<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
+<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1004 532l-388 388l-387 -388l387 -388z" />
+<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
+<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
+<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
+<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64z" />
+<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-40 -157q-54 16 -110 16t-110 -16zM111 885q42 58 93.5 100.5t106.5 74.5l81 -140q-42 -23 -79 -53.5t-69 -75.5zM988 791q-32 45 -69.5 75.5t-77.5 53.5l80 140q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150l157 -40 q-12 -53 -12 -110q0 -58 12 -110zM1054 422q12 52 12 110q0 57 -12 110l157 40q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l133 94q32 -45 69 -75.5t79 -53.5zM841 144q40 23 75.5 52t71.5 77l133 -93q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l40 157q54 -16 110 -16t110 16l40 -157q-75 -21 -150 -21z" />
+<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q21 8 39 17t39 21q9 5 12 7t5 3t3.5 2.5t7.5 4.5v810q-7 6 -28 17q-29 16 -43.5 23t-34.5 15v-920zM448 991q-19 -8 -38 -17t-38 -20 q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
+<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64zM616 286q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5 q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM616 396q18 0 36 6t32 14q67 40 67 116t-67 116q-14 8 -32 14t-36 6q-32 0 -67 -20q-67 -39 -67 -116t67 -116q35 -20 67 -20z" />
+<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
+<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
+<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
+<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h977z" />
+<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-977q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
+<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
+<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
+<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM615 399q71 0 136 26.5t119 80.5q52 52 79.5 117.5t27.5 139.5q0 72 -26.5 136.5t-80.5 116.5q-51 50 -115 77t-137 27q-75 0 -140.5 -27.5t-115.5 -76.5q-51 -51 -78.5 -115.5t-27.5 -139.5q0 -73 26.5 -138.5t77.5 -116.5 q50 -51 115 -79t140 -28z" />
+<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM372 110q-119 69 -181.5 172t-62.5 250t62.5 250t181.5 172q125 72 246 71t242 -71q245 -141 245 -422t-245 -422q-121 -70 -242 -71t-246 71z" />
+<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 180 -79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5 q120 -68 182 -177t62 -246h-977z" />
+<glyph unicode="&#x25db;" d="M-20 532h26q0 -179 76.5 -309.5t228.5 -218.5q79 -46 154.5 -67t149.5 -21q154 0 306 88q153 88 229.5 218.5t76.5 309.5h26v-1044h-1273v1044zM616 39q-122 0 -244 71q-244 141 -244 422h977q0 -281 -245 -422q-122 -71 -244 -71z" />
+<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
+<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q77 0 156.5 -24t148.5 -63q143 -81 224 -214t81 -315h-123v0z" />
+<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
+<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
+<glyph unicode="&#x25e0;" d="M6 532q0 351 305 528q79 46 154.5 67t149.5 21q154 0 306 -88q306 -177 306 -528h-161q0 128 -55.5 225.5t-169.5 163.5t-226 65t-223 -65q-108 -63 -166 -159t-59 -230h-161v0z" />
+<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h161q0 -128 57.5 -228.5t166.5 -161.5q57 -32 115 -47.5t111 -15.5q52 0 109.5 15.5t114.5 47.5q105 59 165 157.5t60 232.5h161q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
+<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
+<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
+<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
+<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
+<glyph unicode="&#x25e6;" d="M614 399q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28zM616 471q60 0 111 22.5 t92 63.5q86 86 86 204q0 59 -21.5 110.5t-64.5 93.5q-42 41 -93.5 62t-109.5 21t-109.5 -21t-93.5 -62q-41 -40 -63 -91.5t-22 -111.5q0 -63 23 -115t60 -90q41 -42 93 -64t112 -22z" />
+<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
+<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
+<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
+<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
+<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
+<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
+<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
+<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
+<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
+<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM619 39q57 0 118.5 18t122.5 53q245 141 245 422t-245 422q-48 28 -93.5 43.5t-93.5 23.5v-547h-542q8 -79 35.5 -142.5t68 -111.5t89.5 -82.5t100.5 -56.5t102 -32t92.5 -10zM559 588v433q-95 -14 -187 -67q-219 -126 -241 -366h428z " />
+<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q45 6 95.5 24.5t92.5 42.5q55 31 100 73t77 94.5t49.5 115.5t17.5 137q0 137 -61.5 246.5t-182.5 178.5q-62 35 -125.5 52.5t-120.5 17.5q-42 0 -92 -10.5t-101.5 -33t-101 -57t-89 -83t-66.5 -111.5t-34 -142h542v-545zM559 474 h-428q22 -237 241 -364q92 -53 187 -67v431z" />
+<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142.5t-67 112t-89.5 83t-101.5 56.5t-103 32.5t-94 10.5q-55 0 -116 -17t-125 -54q-244 -141 -244 -422t244 -422q48 -28 94 -44t93 -23v545zM673 43q94 14 187 67q112 64 171.5 155t70.5 209h-429v-431z" />
+<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q41 0 91 10.5t101.5 32.5t101 56t89.5 82.5t67.5 111.5t35.5 142h-543v547q-44 -6 -92 -23t-96 -44q-118 -67 -180.5 -173t-62.5 -247q0 -137 61 -246.5t182 -178.5q62 -35 125.5 -52.5t119.5 -17.5zM1102 588q-23 241 -242 366 q-93 53 -187 67v-433h429z" />
+<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
+<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
+<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
+<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
+<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
+<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
+<glyph unicode="&#x266a;" d="M602 1493h245q195 -186 281 -386t86 -434l-220 -91q0 120 -8 189t-38 160q-30 94 -101 229v-895q0 -147 -25.5 -242t-80.5 -156t-134.5 -89.5t-199.5 -28.5q-95 0 -176 33.5t-129 91.5t-48 127q0 68 47 125.5t129 91.5q81 33 177 33q104 0 193 -40q2 40 2 54v1228z" />
+<glyph unicode="&#x2756;" d="M358 879l260 261l260 -261l-260 -259zM44 569l259 259l260 -259l-260 -260zM670 569l260 258l259 -258l-259 -261zM358 254l260 260l260 -260l-260 -260z" />
+<glyph unicode="&#x2768;" d="M993 -101q-152 0 -286 56t-246 168q-107 107 -164 239.5t-57 290.5q0 157 56.5 291t164.5 242q112 112 247.5 168t284.5 56v-39q-90 0 -170 -51.5t-148 -158.5t-100.5 -233t-32.5 -273q0 -148 32.5 -274t99.5 -232t147.5 -159t171.5 -53v-38v0z" />
+<glyph unicode="&#x2769;" d="M240 -62q93 0 173 53t146 158q67 106 99.5 231.5t32.5 274.5q0 146 -32 272.5t-100 233.5t-148.5 159t-170.5 52v38q149 0 284.5 -56t247.5 -168q108 -108 164.5 -242t56.5 -291q0 -153 -55 -286t-166 -244q-109 -109 -243 -166.5t-289 -57.5v39z" />
+<glyph unicode="&#x276a;" d="M601 -121q-121 192 -181.5 375.5t-60.5 366.5q0 182 59.5 365t182.5 375h273q-108 -187 -161 -369.5t-53 -369.5q0 -189 52.5 -372.5t161.5 -370.5h-273v0z" />
+<glyph unicode="&#x276b;" d="M366 -121q105 181 156.5 359t51.5 361t-51 359t-157 358h265q120 -187 178 -363.5t58 -352.5q0 -179 -59 -357t-177 -364h-265v0z" />
+<glyph unicode="&#x276c;" d="M324 617l372 748h213l-374 -748l374 -747h-213z" />
+<glyph unicode="&#x276d;" d="M697 617l-372 748h212l372 -748l-372 -747h-213z" />
+<glyph unicode="&#x276e;" d="M211 578l481 748h330l-490 -748l490 -747h-330z" />
+<glyph unicode="&#x276f;" d="M701 578l-490 748h330l481 -748l-481 -747h-330z" />
+<glyph unicode="&#x2770;" d="M206 649l418 840h403l-420 -840l420 -839h-403z" />
+<glyph unicode="&#x2771;" d="M625 650l-418 840h402l418 -840l-418 -840h-403z" />
+<glyph unicode="&#x2772;" d="M457 -51v1218l232 231l87 -87l-196 -195v-1116l196 -195l-87 -87z" />
+<glyph unicode="&#x2773;" d="M457 -189l196 195v1116l-196 195l87 87l232 -231v-1218l-232 -231z" />
+<glyph unicode="&#x2774;" d="M801 -328q-89 0 -146.5 14.5t-91.5 52t-47 102t-13 163.5v215q0 68 -9 114t-29.5 74.5t-54.5 40.5t-85 12h-44v128h44q51 0 85 12t55 40t29.5 73.5t8.5 112.5v216q0 99 13 163.5t47 101.5t91.5 51.5t146.5 14.5h151v-129h-49q-50 0 -81.5 -8.5t-49 -31t-24 -63 t-6.5 -103.5v-223q0 -71 -7.5 -121t-25 -84t-45 -54.5t-66.5 -32.5q39 -12 66.5 -33t45 -55t25 -84t7.5 -120v-223q0 -63 6.5 -103.5t24 -63t49 -31t81.5 -8.5h49v-130h-151v0z" />
+<glyph unicode="&#x2775;" d="M250 -204h53q55 0 89.5 8.5t54 31.5t26.5 63.5t7 104.5v226q0 71 8 121.5t26.5 85t48.5 56t73 33.5q-42 11 -72 31.5t-48.5 55t-27 85.5t-8.5 123v225q0 64 -7 105t-26.5 64t-54 31.5t-89.5 8.5h-53v130h165q97 0 160 -14.5t100 -52.5t51.5 -103t14.5 -165v-219 q0 -68 9.5 -113.5t32 -74t60 -40.5t93.5 -12h47v-130h-47q-56 0 -93 -12t-60 -40.5t-32.5 -75t-9.5 -115.5v-217q0 -101 -14.5 -166t-51.5 -102.5t-100 -52.5t-160 -15h-165v131z" />
+<glyph unicode="&#x2794;" d="M837 565h-753v170h753l-262 262h227l347 -347l-347 -347h-227z" />
+<glyph unicode="&#x2798;" d="M513 208l271 186l-668 605l148 149l606 -668l186 270l61 -604z" />
+<glyph unicode="&#x2799;" d="M815 680l-731 -35v170l731 -35l-48 261l382 -311l-382 -311z" />
+<glyph unicode="&#x279a;" d="M116 342l668 605l-271 186l604 62l-61 -604l-186 270l-606 -668z" />
+<glyph unicode="&#x279b;" d="M578 659h-532v92h532l-128 242q266 -192 737 -288q-471 -96 -737 -288z" />
+<glyph unicode="&#x279c;" d="M765 298q-38 0 -65 27q-28 28 -28 66q0 20 7.5 37t20.5 30l139 140h-672q-36 0 -65 27q-28 26 -28 66t28 66q14 13 30 20.5t35 7.5h672l-139 139q-13 13 -20.5 30.5t-7.5 37.5q0 37 28 65q13 13 29.5 20.5t36.5 7.5t37 -8t29 -20l300 -300q13 -14 21 -30q4 -8 5.5 -17.5 t1.5 -17.5q0 -21 -8.5 -38.5t-19.5 -28.5l-300 -300q-12 -12 -29.5 -19.5t-37.5 -7.5z" />
+<glyph unicode="&#x279d;" d="M838 722h-754v56h754v283l311 -311l-311 -311v283z" />
+<glyph unicode="&#x279e;" d="M854 626h-808v168h808v250l333 -334l-333 -334v250z" />
+<glyph unicode="&#x279f;" d="M850 552h-301v300h301v178l329 -328l-329 -329v179zM54 852h45v-300h-45v300zM159 852h90v-300h-90v300zM309 852h180v-300h-180v300z" />
+<glyph unicode="&#x27a0;" d="M838 510h-285v427h285v98q131 -218 311 -311q-181 -95 -311 -312v98zM84 937h42v-427h-42v427zM183 937h85v-427h-85v427zM325 937h171v-427h-171v427z" />
+<glyph unicode="&#x27a1;" d="M838 558h-754v284h754v169l311 -311l-311 -311v169z" />
+<glyph unicode="&#x27a2;" d="M434 710l-338 338l1041 -338l-1041 -338zM948 710l-627 203l203 -203h424z" />
+<glyph unicode="&#x27a3;" d="M443 740l-320 320l987 -320l-987 -320zM931 740h-403l-192 -193z" />
+<glyph unicode="&#x27a4;" d="M372 750l-249 462l987 -462l-987 -462z" />
+<glyph unicode="&#x27a5;" d="M850 545h-616q-36 0 -68.5 14.5t-57.5 38.5q-28 27 -41 60t-13 67v360q0 -34 13 -67t41 -60q25 -24 57.5 -38.5t68.5 -14.5h616v149l329 -329l-329 -329v149z" />
+<glyph unicode="&#x27a6;" d="M54 755q0 34 13 67t41 60q25 24 57.5 38.5t68.5 14.5h616v149l329 -329l-329 -329v149h-616q-36 0 -68.5 -14.5t-57.5 -38.5q-28 -27 -41 -60t-13 -67v360z" />
+<glyph unicode="&#x27a7;" d="M613 530h-277v450h277v268l284 -493l-284 -493v268z" />
+<glyph unicode="&#x27a8;" d="M738 485h-684v420h684v119q108 -230 441 -329q-333 -99 -441 -329v119z" />
+<glyph unicode="&#x27a9;" d="M607 532h-506v356h506v169h178l347 -347l-347 -347h-178v169zM954 710l-290 290v-169h-506v-242h506v-169z" />
+<glyph unicode="&#x27aa;" d="M607 472h-506v356h506v169h178l347 -347l-347 -347h-178v169zM1060 650l-290 290v-169h-505v-242h505v-169z" />
+<glyph unicode="&#x27ab;" d="M554 326l15 27h-515v142l205 356h597l99 169h71l153 -365v-143l-519 -328h-106v142zM1108 673l-122 290l-98 -169h-598l-140 -242h598l-98 -169z" />
+<glyph unicode="&#x27ac;" d="M838 361h-552l-189 308v123h476l-15 23v123h99l479 -284v-123l-142 -316h-65zM1070 515l-422 251l90 -146h-552l129 -210h552l90 -146z" />
+<glyph unicode="&#x27ad;" d="M600 338h-399l-75 150v494h458v119h82l366 -366l75 -150l-366 -366h-82zM950 735l-306 306v-119h-458v-374h458v-119z" />
+<glyph unicode="&#x27ae;" d="M581 259h-496v536l81 163h432l64 128h90l396 -397l-81 -162l-396 -397h-90v129zM978 527l-332 331v-128h-496v-406h496v-129z" />
+<glyph unicode="&#x27af;" d="M696 408v44h-608l-37 76l112 247l-112 247h645v119h83l366 -366l37 -75l-366 -366h-82zM1062 775l-306 306v-119h-609l85 -187l-85 -187h609v-119z" />
+<glyph unicode="&#x27b1;" d="M698 374h-656l114 251l-114 251l38 77h618v44l38 76h83l372 -372l-38 -76l-372 -372h-83v121zM1069 625l-310 311v-121h-620l87 -190l-87 -190h620v-121z" />
+<glyph unicode="&#x27b2;" d="M586 189q-103 0 -195 39.5t-160 108.5q-27 27 -49 57t-35 54h487v-129l372 372l-372 372v-128h-489q16 29 40 60.5t55.5 61t70 56t83.5 45.5q90 38 188 38q109 0 201 -41t158 -107q72 -72 109.5 -164t37.5 -192q0 -97 -37 -189t-110 -166q-76 -76 -168.5 -112t-186.5 -36 z" />
+<glyph unicode="&#x27b3;" d="M221 533v57l-133 199h384l133 -199h278v198q62 -67 127 -123.5t135 -102.5q-70 -47 -135 -103.5t-127 -123.5v198h-278l-133 -199h-384zM307 590l-114 171h-43l114 -171h43zM392 590l-114 171h-43l114 -171h43zM477 590l-114 171h-42l114 -171h42zM562 590l-113 171h-43 l114 -171h42zM193 362l114 171h-43l-114 -171h43zM278 362l114 171h-43l-114 -171h43zM363 362l114 171h-42l-114 -171h42zM449 362l113 171h-42l-114 -171h43z" />
+<glyph unicode="&#x27b4;" d="M393 955v230l345 -345v-229zM116 908h230l346 -344h-230zM1117 186q-114 34 -248 34q-55 0 -112 -6l143 143l-207 207l46 46l207 -207l142 143q-6 -57 -6 -111q0 -132 35 -249z" />
+<glyph unicode="&#x27b5;" d="M909 642h-256v56h256v177q111 -135 240 -205q-129 -70 -240 -205v177zM84 841h426l142 -143h-426zM226 640h426l-142 -142h-426z" />
+<glyph unicode="&#x27b6;" d="M692 752l207 207l-142 143q57 -6 111 -6q66 0 128 8.5t120 25.5q-34 -115 -34 -248q0 -28 1.5 -55.5t3.5 -56.5l-142 143l-207 -207zM462 751h230l-345 -344h-230zM394 360l345 344v-230l-345 -344v230z" />
+<glyph unicode="&#x27b7;" d="M1154 186q-125 36 -269 36q-58 0 -118 -6q63 61 140 96q17 7 31 11t25 5l-266 265q-27 27 -57.5 39t-63.5 12q-36 0 -69 -13t-57 -38l-371 371q31 32 69 47t77 15q42 0 81.5 -15.5t68.5 -46.5q-29 31 -45 70t-16 80q0 40 16 79t45 69l371 -372q-28 -29 -38.5 -59 t-10.5 -62q0 -37 12 -70q7 -15 17 -30.5t20 -25.5l266 -265q2 11 7 27t10 27q17 42 40.5 76.5t54.5 64.5q-6 -62 -6 -121q0 -142 36 -266z" />
+<glyph unicode="&#x27b8;" d="M932 394q0 78 28 146q5 11 11 23.5t12 20.5h-328q-63 0 -108 -45t-45 -108h-459q0 37 13.5 70.5t40.5 59.5q26 25 59 39.5t70 14.5q-37 0 -71 15t-58 39q-54 54 -54 130h459q0 -63 45 -108t108 -45h328q-11 14 -23 44q-28 68 -28 146q119 -145 258 -221 q-139 -76 -258 -221z" />
+<glyph unicode="&#x27b9;" d="M393 176q-28 27 -42.5 63.5t-14.5 74.5q0 37 14.5 73t42.5 65q-28 -29 -65 -43t-73 -14q-39 0 -74.5 14.5t-63.5 42.5l345 344q22 -22 52.5 -34.5t62.5 -12.5q33 0 63 12.5t52 34.5l246 247q-20 1 -51 15q-73 31 -131 89q55 -6 111 -6q66 0 128.5 8.5t120.5 25.5 q-34 -114 -34 -247q0 -55 6 -113q-31 31 -51 61.5t-37 69.5q-11 26 -17 50l-246 -246q-25 -27 -35.5 -55t-10.5 -58q0 -32 11.5 -62.5t34.5 -53.5l-344 -345v0z" />
+<glyph unicode="&#x27ba;" d="M1179 652q-137 37 -238.5 70.5t-169.5 63.5q-44 19 -62 61q-8 22 -8 43q0 49 33 80q33 33 80 33q23 0 42.5 -8.5t36.5 -24.5q13 -11 25 -36q90 -194 261 -282zM204 500q-31 0 -59.5 12.5t-46.5 31.5q-23 24 -33 49q-11 28 -11 58q0 31 12 59t32 47q22 21 48.5 33t57.5 12 q29 0 57 -11q133 -51 361 -85.5t556 -54.5q-671 -42 -917 -141q-26 -10 -57 -10zM814 298q-24 0 -44 9t-36 24q-33 31 -33 81q0 22 8.5 43t24.5 36q16 16 37 25q93 37 194.5 70t213.5 64q-170 -89 -261 -282q-9 -22 -25.5 -37t-36.5 -25q-21 -8 -42 -8z" />
+<glyph unicode="&#x27bb;" d="M920 367q-61 63 -61 144q0 42 15.5 77t45.5 67q-30 32 -45.5 67t-15.5 77q0 81 61 144q80 -196 284 -288q-204 -92 -284 -288zM290 451q-48 0 -85 19t-57 40q-16 20 -24 34.5t-18 32.5q-14 25 -29 41.5t-48 36.5q34 21 49.5 39t27.5 39t22 37.5t21.5 30t26.5 24t36 19.5 q34 15 75 15q27 0 51.5 -5.5t45.5 -14.5t40 -19.5t36 -19.5q38 -21 78 -39.5t92.5 -35.5t121.5 -34t166 -36q-106 -21 -179 -39.5t-124 -36t-87 -34.5t-68 -35q-36 -20 -79 -39.5t-91 -19.5z" />
+<glyph unicode="&#x27bc;" d="M70 446q-12 0 -22 10t-10 24q0 6 2 12l93 185q3 4 3 13q0 8 -3 13l-93 185q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h498q6 0 12 -2.5t10 -7.5q2 -1 7 -11l73 -146q5 -10 18 -18q8 -2 12 -2h229q6 0 12.5 3t10.5 7q10 10 10 22q0 4 -3 13l-22 81q-1 5 -1.5 7t-0.5 6 q0 13 10 23q5 4 10.5 6.5t11.5 2.5q7 0 13.5 -3t9.5 -6l195 -195q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-195 -195q-3 -3 -9.5 -6t-13.5 -3q-6 0 -11.5 2.5t-10.5 6.5q-10 10 -10 23q0 4 0.5 6t1.5 7l22 81q3 9 3 13q0 12 -10 22q-4 4 -10.5 7t-12.5 3h-229q-6 0 -12 -3 t-11 -7q-4 -4 -7 -10l-73 -146q-4 -9 -7.5 -12t-10.5 -6q-5 -3 -11 -3h-498v0z" />
+<glyph unicode="&#x27bd;" d="M838 357q-7 0 -12.5 3t-10.5 7q-10 10 -10 23q0 3 0.5 6t1.5 7l71 178q3 6 3 13q0 5 -2.5 11.5t-7.5 10.5q-4 4 -10.5 7t-12.5 3h-75q-6 0 -12 -3t-10 -7q-6 -6 -8 -10l-97 -195q-4 -8 -8 -11.5t-10 -6.5q-5 -3 -12 -3h-537q-13 0 -23 10t-10 24q0 7 3 12l117 234 q2 6 2 13t-2 13l-126 250q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h538q16 0 23 -10q2 -1 7 -11l105 -211q5 -10 18 -18q8 -2 12 -2h75q6 0 12.5 3t10.5 7q5 4 7.5 10.5t2.5 11.5q0 7 -3 13l-71 178q-1 4 -1.5 7t-0.5 6q0 13 10 23q5 4 10.5 7t12.5 3q6 0 12 -3t10 -7 l325 -292q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-325 -292q-4 -4 -10 -7t-12 -3z" />
+<glyph unicode="&#x27be;" d="M50 756h612q-32 51 -52.5 98.5t-34.5 90.5h79q5 -14 10.5 -29t12.5 -29q11 -24 22.5 -47t26 -46.5t33 -50t44.5 -58.5h-753v71zM782 285q35 75 79 138.5t103 117.5q11 11 29.5 26t53.5 40q-26 18 -47.5 35t-36.5 31q-56 51 -102.5 119.5t-78.5 135.5l-8 17h82 q13 -29 32.5 -60.5t41 -61t44.5 -55.5t43 -45q32 -30 73 -59t93 -57q-103 -56 -187.5 -137t-139.5 -202h-82zM575 268q14 45 34.5 91.5t52.5 98.5h-612v71h753q-25 -30 -43.5 -56.5t-33.5 -51t-26.5 -47.5t-22.5 -47q-5 -10 -10 -22.5t-13 -36.5h-79z" />
+<glyph unicode="&#x27c2;" d="M66 238h430v1046h237v-1046h432v-238h-1099v238z" />
+<glyph unicode="&#x27c5;" d="M866 -334q-31 0 -54 1t-41.5 2.5t-33.5 3.5t-28 4q-151 25 -246.5 71.5t-145 114.5t-58.5 158t12 201.5t67.5 245t107.5 288.5q52 131 87.5 221.5t57.5 150.5t33 94.5t13 52.5q4 32 -12.5 56t-56.5 24q-61 0 -91 -65l-215 100q35 62 93.5 102.5t126 60t137.5 18 t128.5 -24t99.5 -66.5t50 -109q6 -42 -2 -94.5t-29 -121.5t-54.5 -158.5t-78.5 -205.5q-47 -122 -83 -216.5t-60 -168.5t-37.5 -132.5t-15.5 -108.5q-5 -118 56 -182t193 -76q33 -3 56 -5t54 -7q36 -7 81 -4v-225h-111v0z" />
+<glyph unicode="&#x27c6;" d="M256 -109q30 -2 47 -0.5t35 4.5q42 6 70.5 8.5t38.5 3.5q137 15 196 79.5t53 178.5q-3 57 -20 125.5t-44 147.5t-61 167.5t-71 185.5q-45 117 -82 222t-57 193.5t-19 158.5t31 118t94 71.5t171 19.5q56 -2 103 -12.5t87.5 -31.5t75.5 -55.5t67 -84.5l-215 -100 q-30 65 -91 65q-39 0 -56 -23.5t-13 -56.5q3 -23 16.5 -64.5t38 -104.5t59 -149.5t78.5 -200.5q61 -157 107 -291t67.5 -245.5t12 -201t-59 -157t-145 -113.5t-246.5 -71q-27 -5 -61.5 -8t-95.5 -3h-111v225z" />
+<glyph unicode="&#x27dc;" d="M310 359q-59 0 -110 22.5t-89.5 61.5t-60.5 92t-22 114q0 60 21.5 111t59.5 89t91 59.5t115 21.5q115 0 200 -82q20 -19 34.5 -39.5t24.5 -43.5h631v-238h-631q-10 -23 -24 -42.5t-31 -36.5q-45 -45 -98.5 -67t-110.5 -22zM312 509q29 0 54 11t44 29.5t29.5 43.5t10.5 54 q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43 -29.5t53.5 -10.5z" />
+<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
+<glyph unicode="&#x27e6;" d="M297 1556h683v-120h-281v-1586h281v-120h-683v1826zM579 -150v1586h-162v-1586h162z" />
+<glyph unicode="&#x27e7;" d="M253 -150h281v1586h-281v120h683v-1826h-683v120zM816 -150v1586h-162v-1586h162z" />
+<glyph unicode="&#x27e8;" d="M338 642l285 912h272l-286 -912l286 -912h-272z" />
+<glyph unicode="&#x27e9;" d="M624 642l-286 912h272l285 -912l-285 -912h-272z" />
+<glyph unicode="&#x27ea;" d="M88 642l285 912h272l-286 -912l286 -912h-272zM588 642l285 912h272l-286 -912l286 -912h-272z" />
+<glyph unicode="&#x27eb;" d="M374 642l-286 912h272l285 -912l-285 -912h-272zM874 642l-286 912h272l285 -912l-285 -912h-272z" />
+<glyph unicode="&#x27f5;" d="M-100 490v142l291 291l120 -120l-130 -130h1152v-224h-1152l130 -130l-120 -120z" />
+<glyph unicode="&#x27f6;" d="M922 319l130 130h-1152v224h1152l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x27f7;" d="M-100 490v142l291 291l120 -120l-130 -130h871l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-871l130 -130l-120 -120z" />
+<glyph unicode="&#x2987;" d="M978 -270q-122 27 -223 77t-181.5 118t-140 151t-99.5 176t-59.5 193t-19.5 202q0 98 18.5 196t57 189.5t97.5 174.5t139 150.5t182.5 118t228.5 78.5v-1824zM858 1373q-48 -13 -92.5 -49t-83.5 -89.5t-70.5 -121.5t-54 -144.5t-35 -160t-12.5 -166.5t12.5 -166.5 t35 -160t54 -144.5t70.5 -121.5t83.5 -89.5t92.5 -49v1462z" />
+<glyph unicode="&#x2988;" d="M255 1554q122 -27 223 -77t181.5 -118t140 -151t99.5 -176t59.5 -193t19.5 -202q0 -98 -18.5 -196t-57 -189.5t-97.5 -174.5t-139 -150.5t-182.5 -118.5t-228.5 -78v1824zM375 -89q48 13 92.5 49t83.5 89.5t70.5 121.5t54 144.5t35 159.5t12.5 167q0 83 -12.5 166.5 t-35 160t-54 144.5t-70.5 121.5t-83.5 89.5t-92.5 49v-1462z" />
+<glyph unicode="&#x2997;" d="M380 139v968l502 501l131 -131l-279 -278v-1122l279 -268l-131 -131z" />
+<glyph unicode="&#x2998;" d="M220 -191l279 278v1122l-279 268l131 131l502 -461v-968l-502 -501z" />
+<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
+<glyph unicode="&#x29fa;" d="M248 524h-182v238h182v430h237v-430h263v430h237v-430h180v-238h-180v-432h-237v432h-263v-432h-237v432z" />
+<glyph unicode="&#x29fb;" d="M148 524h-82v238h82v430h217v-430h143v430h217v-430h143v430h217v-430h80v-238h-80v-432h-217v432h-143v-432h-217v432h-143v-432h-217v432z" />
+<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -275q347 0 347 814q0 818 -347 818q-346 0 -346 -818q0 -814 346 -814zM449 711h333v-365h-333v365z" />
+<glyph unicode="&#x2a2f;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
+<glyph unicode="&#x2a6a;" d="M481 912q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5 h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2a6b;" d="M721 912q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5 h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM240 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
+<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
+<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
+<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
+<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
+<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
+<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
+<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
+<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
+<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
+<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
+<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
+<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
+<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
+<glyph unicode="&#x2c7d;" d="M264 1504h187l165 -698l166 698h187l-224 -836h-257z" />
+<glyph unicode="&#x2e18;" d="M664 1236q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM603 -64q-99 0 -178 24t-135 69.5t-86 111t-30 147.5 q0 37 7.5 71t25.5 69t49.5 74t79.5 86l88 86q37 36 57.5 62t31 48.5t13 46t4.5 54.5l2 47v123h267v-851l20 8q21 8 41.5 17.5t43 21.5t47.5 28t55 38v-268q-99 -57 -198 -85t-205 -28zM532 459q-35 -37 -54 -71t-19 -78q0 -66 46 -100q12 -9 27 -15v264z" />
+<glyph unicode="&#x2e1f;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM480 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2e22;" d="M422 1556h508v-190h-242v-540h-266v730z" />
+<glyph unicode="&#x2e23;" d="M545 1366h-242v190h508v-730h-266v540z" />
+<glyph unicode="&#x2e24;" d="M422 460h266v-540h242v-190h-508v730z" />
+<glyph unicode="&#x2e25;" d="M303 -80h242v540h266v-730h-508v190z" />
+<glyph unicode="&#x2e2e;" d="M526 524q-1 14 -1.5 26t-0.5 21q0 29 -3 52.5t-14 47t-32 50t-57 61.5l-88 86q-48 47 -79.5 85.5t-49.5 74t-25.5 69.5t-7.5 71q0 82 30 147.5t86 111t135 69.5t178 24q106 0 205 -28t198 -85v-268q-103 75 -192.5 108t-174.5 33q-89 0 -134.5 -34t-45.5 -102 q0 -23 5.5 -43.5t18.5 -41.5t33.5 -44.5t50.5 -53.5l90 -89q39 -38 66 -73t44 -71.5t24.5 -78.5t7.5 -94v-154h-267v123zM652 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5 q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
+<glyph unicode="&#xfeff;" />
+<glyph d="M615 1508q17 0 34 -2.5t34 -10.5q17 -7 29.5 -15.5t26.5 -23.5q12 -13 17 -20t11 -18q8 -14 11.5 -23t5.5 -22q5 -25 5 -49q0 -41 -12 -74.5t-37 -58.5q-24 -25 -56.5 -38t-66.5 -13q-8 0 -16.5 0.5t-14.5 1.5l-26 6q-6 2 -14.5 5.5t-10.5 4.5q-7 3 -13 7t-10 7 q-4 4 -7 6.5t-14 13.5q-50 49 -50 131q0 84 50 134q23 23 54.5 37t69.5 14zM687 960l68 -576v-456h-285v456l78 576h139z" />
+<glyph d="M669 1230q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM603 -27q-99 0 -178 24t-135 69.5t-86 111t-30 147.5 q0 37 7.5 71t25.5 69t49.5 74t79.5 86l88 86q37 36 57.5 62t31 48.5t13 46t4.5 54.5l2 47v123h267v-851l20 8q21 8 41.5 17.5t43 21.5t47.5 28t55 38v-268q-99 -57 -198 -85t-205 -28zM532 496q-35 -37 -54 -71t-19 -78q0 -66 46 -100q12 -9 27 -15v264z" />
+<glyph d="M662 1230q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM602 -27q-98 0 -176.5 24t-134 69.5t-85.5 110.5 t-30 147q0 38 7.5 72.5t26 69.5t49.5 73.5t79 85.5l88 86q33 32 53 56.5t31.5 48t15.5 48.5t4 58q0 3 1 6q1 11 1 21v20v123h267v-154q0 -52 -7.5 -93t-24 -78t-43.5 -72t-67 -74l-90 -89q-29 -29 -49.5 -52.5t-33 -45t-18 -42t-5.5 -43.5q0 -68 45.5 -102t133.5 -34 t176.5 34.5t189.5 106.5v-268q-99 -57 -198.5 -85t-205.5 -28z" />
+<glyph horiz-adv-x="0" d="M-617 1635q-148 0 -234 67t-101 197h141q41 -121 194 -121t193 121h143q-15 -130 -101 -197t-235 -67z" />
+<glyph horiz-adv-x="0" d="M-952 1635q15 130 101 197t234 67q149 0 235 -67t101 -197h-143q-40 121 -193 121t-194 -121h-141v0z" />
+<glyph horiz-adv-x="0" d="M-1122 1899h284l199 -264h-197zM-747 1899h284l199 -264h-197z" />
+<glyph horiz-adv-x="0" d="M-754 1899h275v-246h-275v246z" />
+<glyph horiz-adv-x="0" d="M-770 1899h284l-286 -264h-197zM-395 1899h284l-286 -264h-197z" />
+<glyph horiz-adv-x="0" d="M-932 1870h631v-188h-631v188z" />
+<glyph d="M331 1280q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1280q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
+<glyph d="M668 1526h284l-286 -264h-197z" />
+<glyph d="M268 1292q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q35 0 73 -12q16 -5 37 -15.5t38 -21.5l60 -39q11 -7 19.5 -11.5t21.5 -9.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9t-1 -8v-5q0 -56 -13.5 -98.5t-39.5 -74.5q-29 -35 -65 -50t-77 -15 q-36 0 -72 11q-20 6 -38.5 15t-39.5 23l-54 34l-12 7q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30z" />
+<glyph d="M283 1526h284l199 -264h-197z" />
+<glyph d="M461 1526h309l223 -264h-178l-199 161l-198 -161h-178z" />
+<glyph d="M240 1526h178l198 -162l199 162h178l-223 -264h-309z" />
+<glyph d="M47 618l1059 263l37 -119l-1059 -262z" />
+<glyph d="M639 848h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM639 991v330l-250 -330h250z" />
+<glyph d="M616 1262q-147 0 -233 68q-42 32 -68 79.5t-34 116.5h141q19 -59 69 -90q49 -31 125 -31q77 0 125 30q49 31 68 91h143q-15 -128 -101 -196q-45 -35 -104.5 -51.5t-130.5 -16.5z" />
+<glyph d="M509 1280q-30 0 -30 30v186q0 30 30 30h215q30 0 30 -30v-186q0 -30 -30 -30h-215v0z" />
+<glyph d="M615 -434q-337 0 -337 434q0 433 337 433q339 0 339 -433q0 -434 -339 -434zM616 -294q71 0 102 70q32 70 32 223q0 152 -32 224q-31 70 -102 70q-39 0 -63 -19t-39 -51q-33 -71 -33 -224q0 -151 33 -223q15 -32 39 -51t63 -19zM616 -71q-19 0 -34.5 5.5t-26.5 14.5 q-24 19 -24 49q0 31 24.5 51.5t59.5 20.5t60.5 -20.5t25.5 -50.5q0 -29 -24.5 -49.5t-60.5 -20.5z" />
+<glyph d="M313 -259h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145z" />
+<glyph d="M274 -259q38 32 61.5 51.5t38.5 32t23.5 20t17.5 14.5q161 133 237.5 218t76.5 133q0 17 -10 35t-30 33t-51 24.5t-73 9.5q-55 0 -121.5 -17.5t-144.5 -51.5v164q75 22 145.5 33.5t139.5 11.5q87 0 153 -18t110.5 -48t67.5 -69.5t23 -82.5t-22.5 -88.5t-67 -96.5 t-111 -110t-154.5 -129l-83 -65h440v-145h-666v141z" />
+<glyph d="M585 -415q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63z" />
+<glyph d="M639 -220h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM639 -77v330l-250 -330h250z" />
+<glyph d="M557 -407q-60 0 -127 9t-137 27v148q51 -21 113.5 -33.5t124.5 -12.5q106 0 161 37.5t55 105.5q0 70 -55.5 108.5t-150.5 38.5q-50 0 -104.5 -11t-109.5 -32v465h555v-145h-391v-154q24 7 51.5 11t62.5 4q74 0 136.5 -20.5t107.5 -58t70 -90t25 -116.5q0 -65 -26.5 -117 t-76.5 -88.5t-122 -56t-162 -19.5z" />
+<glyph d="M637 -428q-176 0 -263 100.5t-87 316.5q0 231 100.5 341t306.5 110q49 0 98.5 -7t109.5 -27v-149q-49 22 -100 36t-104 14q-105 0 -162.5 -60t-59.5 -178q64 73 200 73q139 0 214 -71.5t75 -205.5q0 -140 -83.5 -216.5t-244.5 -76.5zM637 -295q66 0 101 39t35 112 q0 72 -35 112q-35 39 -101 39t-100.5 -38t-34.5 -112t34.5 -113t100.5 -39z" />
+<glyph d="M711 290h-427v145h646v-117l-346 -718h-206z" />
+<glyph d="M617 -423q-161 0 -248 65.5t-87 178.5q0 83 47.5 137.5t136.5 77.5q-80 23 -119 69.5t-39 115.5q0 52 21.5 93t61 70t96.5 44.5t128 15.5q72 0 129.5 -15.5t97 -45t61 -70.5t21.5 -92q0 -69 -39.5 -115.5t-115.5 -69.5q85 -22 132.5 -75t47.5 -140q0 -115 -86 -179.5 t-246 -64.5zM616 99q60 0 94.5 29t34.5 78t-34.5 77t-94.5 28t-94.5 -28.5t-34.5 -76.5q0 -49 34.5 -78t94.5 -29zM615 -290q68 0 110 35t42 94q0 31 -11.5 54t-29.5 38q-41 34 -108 34q-70 0 -112 -34.5t-42 -92.5t41.5 -93t109.5 -35z" />
+<glyph d="M539 -430q-51 0 -100 7.5t-109 25.5v151q51 -24 101.5 -37.5t101.5 -13.5q107 0 163.5 61t59.5 177q-33 -36 -83 -54.5t-119 -18.5q-138 0 -212.5 71t-74.5 205q0 141 83.5 217t244.5 76q175 0 262.5 -100t87.5 -316q0 -232 -101 -341.5t-305 -109.5zM595 8 q66 0 100 38.5t34 112.5t-34 113t-100 39t-101 -39t-35 -112t35 -112.5t101 -39.5z" />
+<glyph horiz-adv-x="0" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/hack-bolditalic-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/hack-bolditalic-webfont.svg
new file mode 100755
index 0000000..c6f655a
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/hack-bolditalic-webfont.svg
@@ -0,0 +1,1591 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackbold_italic" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M637 1054l71 454h286l-72 -457l-159 -575h-139zM612 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70 t-71.5 -48q-33 -13 -74 -13z" />
+<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
+<glyph unicode="#" d="M199 373h-240l53 215h242l72 293h-240l53 215h242l94 374h221l-94 -374h205l94 374h221l-94 -374h240l-54 -215h-241l-72 -293h240l-54 -215h-241l-94 -373h-222l95 373h-205l-94 -373h-222zM678 588l74 293h-203l-74 -293h203z" />
+<glyph unicode="$" d="M361 0q-3 1 -46.5 7.5t-88.5 17.5q-51 13 -94 29t-93 38l51 262q45 -31 89 -54t89 -40q87 -32 186 -37l68 346q-94 22 -150.5 52t-94.5 70q-39 42 -58.5 92.5t-19.5 116.5q0 85 32 159t96 134q127 118 290 126l48 237h221l-47 -237q-5 -2 33.5 -7t70.5 -11 q33 -6 71 -15.5t78 -23.5l-50 -250q-32 21 -66 36t-65 25q-72 22 -163 25l-64 -314q182 -48 263 -132q41 -42 61 -95t20 -122q0 -89 -32.5 -164.5t-98.5 -135.5q-68 -62 -156.5 -94.5t-157.5 -40.5l-58 -301h-221zM624 1099q-83 -9 -123 -54q-22 -24 -32 -52t-10 -58 q0 -25 6.5 -42t19.5 -31q26 -29 86 -41zM578 227q91 10 141 59q23 23 36 50.5t13 64.5q0 52 -28 83q-29 31 -103 48z" />
+<glyph unicode="%" d="M353 778q-67 0 -130.5 22.5t-113.5 70.5q-43 42 -69.5 102t-26.5 132q0 70 25.5 130t70.5 104q47 46 110.5 69.5t140.5 23.5h9.5t15.5 -1q7 -1 16.5 -2t17.5 -3t14 -3t19 -5q18 -5 24 -7.5t8 -3.5q13 -5 21 -8.5t14.5 -6.5t12 -6.5t13.5 -8.5q29 -18 52 -40t42.5 -48 t33.5 -58q27 -60 27 -128t-25 -125t-76 -105q-22 -20 -50 -38.5t-63 -32.5q-63 -24 -133 -24zM351 943q36 0 68 12q11 4 25.5 11.5t31.5 23.5q26 24 39 52q13 27 13 61q0 69 -51 116q-26 23 -58.5 35t-67.5 12t-68 -11.5t-57 -34.5t-36 -53.5t-12 -62.5q0 -33 12 -62.5 t35 -52.5q22 -21 54.5 -33.5t71.5 -12.5zM22 570l1210 448v-145l-1210 -442v139zM898 0q-71 0 -134 24q-28 11 -56 27.5t-56 42.5q-15 14 -29.5 31.5t-25.5 36.5q-23 37 -33 77q-11 42 -11 88q0 72 27 131t74 103q48 45 110.5 69t135.5 24q72 0 131 -25q30 -13 60 -32.5 t49 -38.5q9 -9 12.5 -13t6.5 -7q1 -2 7.5 -10t8.5 -10q5 -8 6 -9t1 -1.5t1 -2t6 -9.5l14 -22q2 -4 5.5 -12t5.5 -11q8 -17 12.5 -32.5t7.5 -28.5q3 -14 4.5 -31.5t1.5 -33.5q0 -64 -24.5 -124t-71.5 -106q-43 -42 -105.5 -68.5t-140.5 -26.5zM900 165q74 0 124 47 q25 23 37 52t12 61q0 33 -12.5 63.5t-36.5 53.5q-20 20 -51.5 33.5t-73.5 13.5q-35 0 -67 -11.5t-57 -34.5q-50 -47 -50 -117q0 -12 1.5 -21.5t4.5 -20.5t6.5 -20t9.5 -19q4 -6 11.5 -16t16.5 -18q13 -12 26.5 -20t29.5 -14q31 -12 69 -12z" />
+<glyph unicode="&#x26;" d="M387 -29q-92 0 -170.5 26t-136.5 80q-59 55 -86 128.5t-27 156.5q0 161 99 304q51 73 120.5 133.5t163.5 113.5q-14 31 -22.5 56t-15.5 52q-6 24 -9.5 46t-3.5 51q0 88 33 163t100 130q66 54 158 81.5t204 27.5q37 0 71 -3t68 -8q33 -5 65 -13t67 -19l-49 -256 q-54 35 -118 54q-32 10 -64.5 14.5t-64.5 4.5q-48 0 -81 -9t-55 -26q-47 -36 -47 -101q0 -36 19 -93q11 -35 24.5 -67t34.5 -78l221 -480q42 58 66 135q23 75 28 170h235q-10 -156 -71 -282q-60 -125 -168 -217l115 -246h-316l-35 72q-43 -25 -86.5 -44t-88.5 -32 q-88 -25 -177 -25zM473 207q42 0 89 14q23 7 45.5 17t45.5 24l-217 469q-91 -53 -137 -126q-24 -38 -35.5 -80.5t-11.5 -84.5q0 -49 15.5 -91.5t47.5 -75.5t72.5 -49.5t85.5 -16.5z" />
+<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
+<glyph unicode="(" d="M440 -270q-39 82 -70 166t-52 171q-40 163 -40 326q0 149 32.5 292t97.5 289t159 288t227 292h225q-234 -314 -350 -613q-117 -302 -117 -595q0 -71 7 -145t21 -151q15 -81 36.5 -161t48.5 -159h-225v0z" />
+<glyph unicode=")" d="M243 -270q233 313 350 614t117 595q0 71 -7 144.5t-21 151.5q-29 155 -85 319h225q82 -173 122 -336q20 -83 30 -164.5t10 -161.5q0 -146 -32 -291t-97 -291q-64 -144 -161 -289t-226 -291h-225v0z" />
+<glyph unicode="*" d="M230 467l240 368l-361 157l46 130l371 -122l20 420h136l20 -420l371 122l46 -130l-361 -157l240 -368l-117 -84l-267 353l-267 -353z" />
+<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
+<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-12 -38 -30.5 -74.5t-40.5 -65.5q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
+<glyph unicode="-" d="M259 746h789l-56 -291h-788z" />
+<glyph unicode="." d="M614 -42q-76 0 -127 51q-24 24 -37.5 57.5t-13.5 76.5q0 79 51 132q51 51 125 51q76 0 127 -51t51 -134q0 -80 -51 -132q-51 -51 -125 -51z" />
+<glyph unicode="/" d="M852 1493h223l-854 -1683h-221z" />
+<glyph unicode="0" d="M504 -29q-108 0 -183.5 31.5t-125.5 95.5q-48 62 -72.5 154t-24.5 225q0 57 4 103.5t11 94.5q8 59 18 108t24 103q28 106 64.5 196.5t79.5 160.5q16 26 32 48t30 38q33 39 70 70q36 30 77 53q61 34 129.5 51t148.5 17q112 0 187 -32.5t123 -93.5q50 -63 74.5 -156 t24.5 -215q0 -93 -14 -200.5t-43 -216.5q-27 -103 -64.5 -195.5t-79.5 -160.5q-19 -31 -43 -63t-52 -60q-25 -25 -54 -47.5t-60 -39.5q-122 -69 -281 -69zM529 165q22 0 40.5 3t37.5 9q16 5 35 14t36 21q32 22 62.5 58t53.5 81q7 13 16 31.5t19 40.5q9 20 16.5 40t14.5 39 q5 14 9 24.5t7 20.5t6 19.5t7 22.5q5 16 12 43t13 53q5 22 9 39.5t7 32.5t5.5 29.5t5.5 29.5q6 35 10 64.5t6 58.5t3.5 58.5t1.5 53.5q0 17 -0.5 32.5t-1.5 27.5t-2 23t-4 26q-1 5 -4 19t-5 22q-2 6 -6 17.5t-8 18.5q-2 5 -6 11.5t-11 15.5q-11 15 -26 27t-34 20t-42 11.5 t-46 3.5q-42 0 -80.5 -12t-71.5 -35q-38 -26 -67 -62.5t-50 -74.5q-35 -63 -67 -151t-54 -184q-24 -103 -35.5 -201.5t-11.5 -172.5q0 -76 12 -125.5t38 -81.5q49 -61 150 -61zM572 410q-1 0 -1.5 1t-1.5 1h-4q-48 15 -44 131v12q0 3 0.5 6t1.5 7v13v4.5t1 9.5q4 33 6 52.5 t4 32.5t3.5 22.5t3.5 22.5q1 6 3.5 18t5 24.5t5 23t3.5 13.5q4 15 6.5 23.5t4 13t2 5.5t0.5 2q2 8 8 26.5t10 30.5q6 17 14.5 37.5t13.5 31.5q9 21 21 41t25.5 35.5t27 24.5t25.5 9h5q2 0 6 -2q53 -15 48 -128v-1q-1 -4 -1 -12v-14q-2 -32 -12 -102q-5 -25 -9 -46.5 t-7 -32.5q-4 -17 -11 -42t-16 -52t-18.5 -54.5t-18.5 -49.5q-14 -35 -26.5 -60t-25.5 -43q-14 -19 -27.5 -27t-27.5 -8h-3z" />
+<glyph unicode="1" d="M94 260h330l188 969l-321 -76l51 266l326 74h282l-239 -1233h309l-51 -260h-926z" />
+<glyph unicode="2" d="M13 218q4 19 11.5 31.5t21.5 25.5l251 225q28 25 46 40.5t32.5 28.5t29.5 26t37 33q108 97 184.5 174t125 138.5t70.5 110t22 87.5q0 32 -14 61t-42 49t-66.5 30t-86.5 10q-42 0 -89.5 -7.5t-98.5 -21.5q-45 -13 -102 -35t-120 -53l51 267q55 20 110 35.5t106 25.5 q54 11 107 16t98 5q95 0 176 -23t141 -71q56 -44 88.5 -105.5t32.5 -134.5q0 -131 -113.5 -291t-340.5 -353l-40 -34l-317 -248h647l-51 -260h-949z" />
+<glyph unicode="3" d="M421 -29q-51 0 -103.5 4.5t-111.5 14.5q-63 11 -120 24.5t-117 30.5l54 270q50 -24 100.5 -41.5t99.5 -28.5q52 -12 105 -18t102 -6q88 0 144.5 18.5t94.5 50.5t59.5 79.5t21.5 107.5q0 95 -64 143q-32 24 -76.5 36t-95.5 12h-158l52 260h157q123 0 202 56q40 29 58.5 64 t18.5 76q0 70 -57 108q-26 17 -66.5 27.5t-98.5 10.5q-82 0 -181 -21q-51 -11 -103 -26t-107 -35l54 268q54 17 103.5 28.5t97.5 19.5t94.5 12t86.5 4q106 0 189.5 -25t141.5 -71q62 -49 92 -116t30 -144q0 -66 -22.5 -124t-71.5 -109t-115 -81.5t-147 -44.5 q135 -36 200 -118q33 -42 49.5 -94.5t16.5 -122.5q0 -110 -41 -203t-122 -161t-193.5 -101.5t-252.5 -33.5z" />
+<glyph unicode="4" d="M612 322h-594l58 286l735 885h309l-178 -918h164l-49 -253h-164l-62 -322h-282zM662 575l110 578l-483 -578h373z" />
+<glyph unicode="5" d="M387 -29q-47 0 -94.5 4t-95.5 12q-97 17 -191 48l51 266q69 -40 156 -61q43 -11 88 -16t90 -5q90 0 157.5 20t116.5 59q50 40 74.5 93.5t24.5 117.5q0 108 -71 168t-195 60q-73 0 -158 -20q-80 -19 -162 -58l162 834h811l-51 -260h-572l-53 -277q31 13 69 19q36 6 78 6 q99 0 179 -30.5t135 -85.5q56 -56 85.5 -136t29.5 -184q0 -127 -44.5 -233.5t-133.5 -184.5q-88 -78 -210.5 -117t-275.5 -39z" />
+<glyph unicode="6" d="M544 -33q-107 0 -191.5 31.5t-142.5 94.5q-57 63 -85.5 156t-28.5 231q0 100 15 203t46 208q30 103 72.5 192.5t96.5 163.5q49 67 106 118t131 86q71 34 151 50.5t167 16.5q42 0 75 -3.5t68 -11.5q68 -15 145 -45l-51 -268q-38 27 -68 41.5t-62 25.5q-35 11 -70 17t-72 6 q-157 0 -263 -108q-54 -54 -92 -134.5t-61 -183.5q61 66 136 98q76 33 166 33q165 0 263 -111q48 -54 72.5 -129.5t24.5 -179.5q0 -131 -39.5 -236t-114.5 -190q-76 -85 -171.5 -128.5t-222.5 -43.5zM551 207q52 0 98 25.5t81 73.5t54 111.5t19 132.5q0 48 -10.5 84 t-34.5 63q-47 51 -122 51q-56 0 -102 -27.5t-78 -72.5q-36 -51 -54.5 -114t-18.5 -126q0 -50 11 -86t34 -62q21 -24 51.5 -38.5t71.5 -14.5z" />
+<glyph unicode="7" d="M844 1233h-633l51 260h963l-41 -209l-756 -1284h-319z" />
+<glyph unicode="8" d="M502 -29q-106 0 -187 26t-137 74q-115 100 -115 281q0 85 25.5 157t73.5 130t116 99t156 61q-51 14 -90 37.5t-67 60.5q-26 34 -40 77.5t-14 100.5q0 88 36 169t111 147q69 60 160 94.5t200 34.5q90 0 164 -24.5t131 -73.5q54 -47 83 -112t29 -149q0 -145 -89 -248 q-88 -101 -239 -127q108 -28 170 -113q30 -42 45.5 -93t15.5 -119q0 -104 -36.5 -194.5t-111.5 -159.5q-69 -63 -166.5 -99.5t-223.5 -36.5zM653 903q44 0 86 15t74 45q64 60 64 153q0 79 -46 124q-47 44 -126 44q-94 0 -157 -61q-29 -28 -46 -67t-17 -86q0 -35 11 -66 t34 -54q24 -25 55 -36t68 -11zM528 209q54 0 100 19t81 57q34 37 51.5 86t17.5 103q0 49 -14 84t-39 59q-24 23 -60 37t-86 14q-112 0 -182 -75q-35 -37 -53 -86t-18 -102q0 -44 13.5 -81t42.5 -64q28 -26 65 -38.5t81 -12.5z" />
+<glyph unicode="9" d="M345 -31q-42 0 -75.5 3.5t-68.5 11.5q-31 7 -67.5 17.5t-78.5 27.5l51 268q30 -21 62.5 -38.5t68.5 -28.5q35 -11 70 -17t72 -6q156 0 262 109q58 60 94.5 140t59.5 177q-63 -66 -137 -98q-38 -17 -78.5 -25t-85.5 -8q-92 0 -156 31t-106 79q-52 60 -74.5 138.5 t-22.5 168.5q0 130 41 241.5t110 189.5q75 85 177 127.5t222 42.5q109 0 192.5 -33t137.5 -93q113 -123 113 -386q0 -99 -15 -204t-45 -208t-72.5 -193t-96.5 -165q-52 -72 -108.5 -120t-127.5 -82q-73 -35 -152.5 -51t-165.5 -16zM589 739q106 0 179 100q36 50 55 111 t19 128q0 48 -10.5 84.5t-34.5 64.5q-46 53 -122 53q-107 0 -179 -101q-36 -51 -54 -114t-18 -130q0 -54 11 -86.5t34 -58.5q20 -23 48.5 -37t71.5 -14z" />
+<glyph unicode=":" d="M734 747q-40 0 -68 13t-46 33q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14zM620 35q-40 0 -68 13t-46 33 q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14z" />
+<glyph unicode=";" d="M724 698q-38 0 -70.5 13.5t-55.5 39.5q-19 23 -26.5 52t-7.5 60v4.5t1 7.5l2 20q4 20 9.5 38t16.5 38q19 34 48 60q29 24 63 38.5t76 14.5q38 0 70 -13.5t55 -39.5q18 -22 27.5 -49t9.5 -62v-4.5t-1 -7.5l-2 -19q-6 -29 -12 -45t-16 -33q-10 -18 -21 -32t-27 -28 q-17 -15 -32.5 -23.5t-32.5 -16.5q-33 -13 -74 -13zM320 -342l13 6q129 54 205 134.5t101 182.5q-5 -1 -10 -1h-10q-79 0 -122 46q-35 37 -35 93v10q0 6 0.5 12.5t1.5 14.5q6 39 25 71t48 55q18 16 42 25q20 12 45 16q11 2 23 3.5t26 1.5q48 0 84 -19t59 -61 q14 -26 20.5 -56.5t6.5 -59.5q0 -17 -2 -42.5t-5 -47.5q-13 -90 -51 -171t-98 -148q-31 -34 -65.5 -61.5t-74.5 -53.5q-50 -32 -92 -51t-79 -32l-16 -5z" />
+<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
+<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
+<glyph unicode="?" d="M531 585q12 83 55 152q24 39 57.5 75t84.5 79l104 89q36 31 61.5 56.5t38.5 44.5q28 40 36 86q1 3 1 9q1 3 1 8t1 8v7q0 29 -10.5 54.5t-30.5 44.5q-25 24 -66 38q-20 7 -43 10t-46 3q-43 0 -85.5 -9.5t-83.5 -24.5q-49 -18 -98.5 -43.5t-101.5 -57.5l-28 -17l36 228l7 3 q13 8 34.5 18.5t34.5 16.5q16 8 34.5 15.5t34.5 13.5q17 7 31 11.5t37 10.5q48 13 97 21t109 8q105 0 175 -26t119 -74q16 -15 26 -28.5t18 -29.5q18 -32 27 -68q5 -18 7 -37t2 -33t-2 -35.5t-4 -38.5q-10 -76 -59 -148q-14 -21 -28 -37.5t-33 -36.5q-23 -25 -44 -44 t-49 -42l-102 -86q-5 -4 -13.5 -11.5t-18 -16.5t-18.5 -17.5t-16 -15.5q-11 -11 -21 -23.5t-15 -20.5q-12 -18 -19.5 -38.5t-10.5 -38.5l-8 -47l-14 -93h-220zM556 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5 t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
+<glyph unicode="@" d="M599 -319q-137 0 -250.5 48.5t-195.5 142.5q-84 96 -125.5 225.5t-41.5 289.5q0 163 44 322q23 81 55.5 156t72.5 139q115 185 284 289q81 50 170.5 76t186.5 26t176.5 -26t136.5 -76q61 -54 89 -123.5t28 -146.5q0 -13 -0.5 -31t-2.5 -32q-1 -10 -3.5 -24t-8.5 -44 l-147 -757h-197l17 82q-42 -48 -99 -75q-35 -17 -66 -22t-58 -5q-66 0 -120 22.5t-93 65.5q-42 46 -61 108t-19 137q0 109 34.5 206t92.5 167q65 78 146.5 115t165.5 37q35 0 66 -6t57 -18q27 -13 47.5 -32t33.5 -40q5 17 8.5 34t5.5 34t3 32.5t1 26.5q0 50 -16 87t-45 62 t-72.5 39t-100.5 14q-58 0 -116.5 -15.5t-115.5 -47.5t-107 -78t-94 -104q-51 -67 -84.5 -136.5t-54.5 -134.5q-48 -149 -48 -302q0 -113 28 -210t89 -169q58 -69 138.5 -104.5t180.5 -35.5q79 0 160 24t162 72l63 -174q-105 -56 -202 -84q-43 -12 -93.5 -19t-104.5 -7z M724 301q51 0 96 24t78 67q35 46 53 105t18 119q0 45 -10 74.5t-30 51.5q-41 44 -112 44q-51 0 -95.5 -22.5t-79.5 -66.5q-35 -45 -53 -101.5t-18 -114.5q0 -38 8.5 -73t31.5 -61q17 -20 45.5 -33t67.5 -13z" />
+<glyph unicode="A" d="M582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="B" d="M270 1495h482q210 0 319 -83q107 -83 107 -248q0 -159 -95 -259t-270 -119q66 -5 122 -28t94 -62q39 -40 58 -95t19 -121q0 -48 -9.5 -98.5t-28.5 -97.5q-18 -45 -45 -85t-62 -72q-74 -67 -190 -97t-310 -30h-481zM639 913q122 0 183 55q29 26 45 64.5t16 90.5 q0 40 -10.5 64.5t-32.5 40.5q-44 32 -133 32h-197l-68 -347h197zM508 236q157 0 230 67q37 34 55 85t18 113q0 54 -13.5 85t-39.5 51q-53 41 -164 41h-197l-86 -442h197z" />
+<glyph unicode="C" d="M598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q130 57 283 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5 q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z " />
+<glyph unicode="D" d="M283 1493h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -57t-12 -52.5q-20 -81 -44 -146t-46 -110q-29 -60 -62 -103.5t-62 -72.5q-45 -44 -102.5 -77.5t-123.5 -53.5q-127 -40 -349 -40h-330zM434 266 q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-186 -961h96z" />
+<glyph unicode="E" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="F" d="M338 1493h930l-51 -260h-635l-62 -332h578l-51 -260h-578l-127 -641h-295z" />
+<glyph unicode="G" d="M611 -29q-128 0 -220.5 38t-155.5 106q-70 76 -101.5 181t-31.5 232q0 96 17.5 204.5t54.5 216.5q32 94 80.5 183t112.5 162q45 51 101.5 94.5t126.5 74.5q130 57 281 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-66 -328q-51 67 -120 102q-70 35 -149 35 q-39 0 -73 -8t-63 -21q-30 -14 -58.5 -34.5t-57.5 -52.5q-23 -25 -41 -52t-35 -58q-16 -29 -31 -63t-29 -77q-15 -45 -28 -94.5t-21 -94.5q-17 -94 -17 -169q0 -82 18.5 -136.5t45.5 -87.5q34 -42 80.5 -60t100.5 -18q19 0 34.5 2t32.5 7q12 3 26 8t29 16l57 291h-206 l49 248h460l-139 -709q-72 -60 -168 -91q-99 -32 -212 -32z" />
+<glyph unicode="H" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
+<glyph unicode="I" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="J" d="M411 -29q-55 0 -111 6.5t-108 19.5q-46 11 -100.5 31.5t-111.5 49.5l65 344q78 -96 167 -143q88 -48 194 -48q112 0 169 54q29 27 49.5 74t34.5 120l148 754h-361l52 260h655l-199 -1014q-17 -88 -35.5 -150.5t-38.5 -105.5q-20 -42 -46.5 -77t-61.5 -64t-74.5 -49 t-83.5 -34q-46 -14 -97 -21t-106 -7z" />
+<glyph unicode="K" d="M270 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
+<glyph unicode="L" d="M371 1493h295l-240 -1233h631l-51 -260h-926z" />
+<glyph unicode="M" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
+<glyph unicode="N" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
+<glyph unicode="O" d="M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 60.5 198t74.5 160q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q13 37 22 69t20 78q15 63 25.5 115t18.5 101q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-13 -52 -24.5 -107.5t-19.5 -106.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="P" d="M305 1493h420q236 0 360 -91q63 -47 93 -114t30 -159q0 -51 -9 -107t-27 -113q-19 -59 -42.5 -101.5t-52.5 -76.5q-77 -90 -194 -131t-301 -41h-164l-109 -559h-295zM610 807q75 0 129.5 18t89.5 50q36 34 54 84.5t18 111.5q0 98 -52 136q-53 38 -177 38h-121l-84 -438 h143z" />
+<glyph unicode="Q" d="M535 -29h-27q-109 0 -192 31.5t-140 92.5q-60 65 -87.5 158.5t-27.5 220.5q0 88 12.5 190t37.5 206t59 195t74 161q38 66 87 122t117 97q60 36 131 55.5t153 19.5q106 0 187.5 -32t137.5 -91q62 -66 88 -156.5t26 -216.5q0 -83 -11.5 -183.5t-37.5 -213.5 q-23 -100 -56.5 -195t-75.5 -170q-21 -37 -43 -66.5t-45 -54.5q-53 -56 -126 -102l239 -320h-344zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q11 21 23 50t23 60q21 60 42 147q16 65 26 116.5t18 99.5q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-16 -64 -26 -114.5t-18 -99.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="R" d="M294 1493h410q231 0 344 -87q54 -42 83 -108t29 -165q0 -90 -24.5 -164t-73.5 -131q-98 -114 -279 -133q60 -9 95 -45q34 -36 61 -123l164 -537h-301l-106 376l-8 27q-31 101 -68.5 144t-89.5 43h-117l-115 -590h-295zM585 838q70 0 121 16.5t84 47.5q35 32 52 79t17 103 q0 86 -46 123q-47 38 -138 38h-133l-80 -407h123z" />
+<glyph unicode="S" d="M469 -29q-58 0 -113.5 6.5t-112.5 19.5q-60 14 -118 33.5t-121 45.5l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5 q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41q-37 -29 -55.5 -65.5t-18.5 -69.5q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72 t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-78 -66 -187.5 -101.5t-246.5 -35.5z" />
+<glyph unicode="T" d="M563 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
+<glyph unicode="U" d="M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 18 3.5 30t3 23.5t4 23.5t6.5 30l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-75 -73 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="V" d="M203 1493h291l24 -1251l506 1251h301l-645 -1493h-412z" />
+<glyph unicode="W" d="M143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
+<glyph unicode="X" d="M471 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
+<glyph unicode="Y" d="M432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="Z" d="M4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
+<glyph unicode="[" d="M649 1651h455l-28 -173h-240l-251 -1590h240l-28 -173h-455z" />
+<glyph unicode="\" d="M340 1493h203l198 -1683h-202z" />
+<glyph unicode="]" d="M373 -112h240l251 1589h-240l28 173h455l-307 -1935h-455z" />
+<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
+<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
+<glyph unicode="`" d="M371 1638h284l209 -376h-198z" />
+<glyph unicode="a" d="M379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19 t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66 t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="b" d="M651 -29q-58 0 -102.5 17t-78.5 46t-57 71t-32 102l-70 -207h-264l303 1556h293l-119 -604q63 96 146 146q42 25 86.5 37t91.5 12q71 0 130.5 -27t102.5 -82q45 -57 64.5 -135t19.5 -171q0 -58 -7.5 -123t-22.5 -130q-13 -54 -34.5 -116t-51.5 -119q-34 -63 -78 -114.5 t-95 -86.5t-108.5 -53.5t-116.5 -18.5zM599 209q57 0 106.5 37.5t86.5 104.5q38 69 58 155.5t20 175.5q0 60 -10 100.5t-31 68.5q-42 56 -115 56q-53 0 -104.5 -33t-93.5 -105q-39 -67 -60.5 -153t-21.5 -172q0 -63 11.5 -105t32.5 -70q22 -29 53 -44.5t68 -15.5z" />
+<glyph unicode="c" d="M621 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145 t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
+<glyph unicode="d" d="M382 -29q-144 0 -230 110q-43 55 -64.5 129.5t-21.5 175.5q0 60 7.5 124t23.5 129t39 126.5t48 108.5q32 61 76 112.5t98 89.5q104 73 223 73q111 0 185 -63q34 -29 57 -73t31 -102l125 645h293l-303 -1556h-262l2 166q-66 -96 -148 -145q-83 -50 -179 -50zM517 211 q57 0 107 34.5t92 104.5t62.5 153t20.5 171q0 66 -11.5 106.5t-33.5 69.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102.5t31.5 -66.5q42 -56 113 -56z" />
+<glyph unicode="e" d="M583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q115 54 250 54q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759 q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="f" d="M456 895h-273l43 225h273l16 78q23 114 56.5 182t77.5 103q46 36 126.5 54.5t204.5 18.5h240l-43 -225h-230q-66 0 -94 -27q-14 -14 -25.5 -41.5t-19.5 -66.5l-16 -76h344l-43 -225h-344l-174 -895h-293z" />
+<glyph unicode="g" d="M386 -424q-99 0 -190 15q-46 8 -90 19t-88 25l54 265q76 -46 158 -68q42 -11 83.5 -16.5t82.5 -5.5q66 0 115 14.5t84 43.5q39 32 60 77.5t33 105.5l27 133q-54 -83 -131 -125q-77 -43 -175 -43q-76 0 -137.5 25t-110.5 80q-48 54 -70.5 123t-22.5 163q0 65 10.5 135 t31.5 141q23 76 52 137.5t63 111.5q71 103 171 161t206 58q105 0 172 -55t88 -158l64 182h264l-203 -1036q-26 -135 -72 -233.5t-119 -159.5q-137 -115 -410 -115zM521 246q55 0 106 33.5t93 99.5q42 67 62.5 148t20.5 162q0 51 -9 93.5t-32 72.5q-22 29 -51 41.5t-62 12.5 q-57 0 -108.5 -34.5t-90.5 -97.5q-42 -66 -62.5 -148.5t-20.5 -163.5q0 -51 9 -93t31 -71q41 -55 114 -55z" />
+<glyph unicode="h" d="M362 1556h291l-116 -604q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5 q-29 30 -83 30q-45 0 -80 -19t-62 -52q-30 -37 -50.5 -89t-33.5 -118l-121 -629h-293z" />
+<glyph unicode="i" d="M615 1323q-28 0 -28 25q0 5 1 8l56 282q4 27 32 27h233q28 0 28 -25q0 -5 -1 -8l-56 -282q-5 -27 -32 -27h-233zM732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763 q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="j" d="M763 1323q-15 0 -22.5 9t-4.5 24l55 282q4 27 32 27h233q15 0 22.5 -9t4.5 -24l-55 -282q-5 -27 -32 -27h-233zM22 -199h231q100 0 151 53q29 30 46.5 79t29.5 110l166 852h-297l43 225h590l-209 -1077q-10 -50 -18.5 -87.5t-16.5 -66t-15 -49t-14 -36.5 q-30 -71 -77 -118q-30 -30 -66 -50.5t-75 -33.5q-40 -13 -90.5 -19.5t-116.5 -6.5h-307z" />
+<glyph unicode="k" d="M363 1556h293l-152 -782l404 346h370l-505 -418l313 -702h-311l-222 524l-116 -96l-82 -428h-293z" />
+<glyph unicode="l" d="M690 -10q-107 0 -177 14t-113 43q-41 27 -63 70.5t-22 108.5q0 17 1.5 33t3.5 31q2 10 5.5 33.5t8.5 45.5l203 962h-306l43 225h598l-249 -1201q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297 v0z" />
+<glyph unicode="m" d="M184 1120h192l-1 -116q41 69 102 106q59 37 129 37t113 -37q43 -38 51 -102q31 64 96 102q64 37 138 37q48 0 85 -14.5t63 -40.5q29 -30 41.5 -71.5t12.5 -89.5q0 -17 -1.5 -40.5t-3.5 -47.5q-3 -27 -9.5 -62t-11.5 -62l-140 -719h-239l139 719q5 23 8 41t6 41q2 15 3 27 t1 20q0 23 -5 37t-12 22q-18 21 -52 21q-48 0 -76 -45q-15 -24 -27.5 -64.5t-23.5 -99.5l-139 -719h-240l141 719q2 12 6.5 35.5t6.5 39.5q2 17 3 29.5t1 21.5q0 41 -18 62t-52 21q-47 0 -74 -43q-16 -25 -28 -65.5t-23 -100.5l-139 -719h-240z" />
+<glyph unicode="n" d="M276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q4 20 5.5 34t2.5 19q1 13 1.5 25.5t0.5 22.5q0 29 -6.5 53t-22.5 41q-29 30 -83 30 q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
+<glyph unicode="o" d="M543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5 t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="p" d="M264 1120h264l-4 -168q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
+<glyph unicode="q" d="M709 166q-64 -96 -146 -145q-83 -50 -178 -50q-70 0 -129.5 27.5t-102.5 82.5t-64 132t-21 174q0 58 7.5 122.5t23.5 129.5q31 129 88 235q35 64 76.5 114.5t95.5 88.5q104 72 221 72q57 0 104 -16.5t80 -45.5t57 -73t33 -103l68 209h264l-301 -1546h-291zM519 211 q116 0 198 139q41 69 61.5 151.5t20.5 172.5q0 59 -10 101.5t-35 74.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102t31.5 -66t49 -42.5t66 -14.5z" />
+<glyph unicode="r" d="M343 1120h264l-6 -174q62 96 161 149q98 52 217 52q63 0 119 -15q55 -15 99 -42l-53 -275q-26 23 -53.5 39t-53.5 25q-30 11 -65.5 15.5t-71.5 4.5q-78 0 -141 -21t-110 -67q-44 -43 -77 -116t-53 -179l-100 -516h-295z" />
+<glyph unicode="s" d="M501 -29q-53 0 -108 4.5t-100 12.5q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5 t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26q-55 -35 -55 -93q0 -46 37 -73q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5 t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-70 -53 -168 -78.5t-215 -25.5z" />
+<glyph unicode="t" d="M707 -5q-106 0 -176 14t-113 43q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5q0 -43 30 -61q29 -19 109 -19h225 l-43 -225h-245v0z" />
+<glyph unicode="u" d="M372 -29q-128 0 -197 71q-69 70 -69 202q0 14 1 30t3 34q1 3 4 28.5t9 54.5l143 729h291l-131 -684q-2 -13 -3.5 -24.5t-3.5 -28.5q-2 -16 -2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120 h-264l4 166q-24 -50 -56.5 -83.5t-72.5 -58.5q-46 -29 -91.5 -41t-95.5 -12z" />
+<glyph unicode="v" d="M172 1120h283l80 -878l389 878h307l-551 -1120h-369z" />
+<glyph unicode="w" d="M96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
+<glyph unicode="x" d="M436 594l-258 526h301l148 -317l268 317h332l-477 -553l278 -567h-299l-170 356l-303 -356h-332z" />
+<glyph unicode="y" d="M-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
+<glyph unicode="z" d="M94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
+<glyph unicode="{" d="M644 -334q-105 0 -171 14t-108 40t-63.5 68.5t-21.5 110.5q0 13 1 24t3 28q0 3 1.5 12t3.5 20.5t4 25t5 26.5l43 215q1 4 2.5 13t3.5 20.5t4 23.5t3 21q2 17 3 28.5t1 20.5q0 42 -15.5 67.5t-47.5 41.5q-27 14 -73 22t-109 8h-62l37 191h91q143 0 207 55t94 211l41 215 q22 115 56.5 188t80.5 108q93 72 353 72h149l-36 -190h-123q-56 0 -91.5 -11t-57.5 -32q-23 -22 -40 -65.5t-31 -118.5l-38 -209q-14 -78 -38 -138t-57 -96q-61 -67 -192 -84q96 -21 137 -64q20 -20 30.5 -48.5t10.5 -71.5q0 -11 -1 -29t-3 -35q-2 -13 -4.5 -30t-7.5 -43 l-41 -205q-3 -13 -4.5 -21t-3 -15t-2.5 -15.5t-3 -22.5l-3 -25.5t-1 -18.5q0 -32 8.5 -52.5t25.5 -33.5q34 -25 114 -25h121l-37 -191h-148v0z" />
+<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
+<glyph unicode="}" d="M56 -143h123q48 0 86.5 11t60.5 32q45 43 72 186l39 205q15 79 38.5 138t56.5 95q62 68 192 88q-95 16 -136 58q-42 42 -42 122q0 11 1 26.5t3 33.5q2 11 5 34.5t7 43.5l41 209q5 18 7.5 35t5.5 40q2 15 3 22t1 11t-0.5 5t-0.5 5q0 28 -8 50t-25 35q-33 24 -114 24h-121 l37 190h147q204 0 287 -48q42 -24 62 -65t20 -92q0 -49 -20 -149l-3 -15l-41 -215q-3 -16 -5.5 -32.5t-4.5 -28.5q-2 -16 -3 -26.5t-1 -20.5q0 -53 18.5 -80t44.5 -42q62 -35 178 -35h62l-37 -191h-92q-141 0 -206 -58q-67 -59 -95 -208l-41 -215q-42 -222 -142 -295 q-100 -74 -347 -74h-150z" />
+<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M696 1198q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM455 655l112 357h199 l-25 -357l-127 -655h-286z" />
+<glyph unicode="&#xa2;" d="M506 -25q-195 23 -298 141q-52 60 -78 138.5t-26 183.5q0 77 14 148.5t41 140.5q29 72 69 134t87 110q37 38 83 71t105 57q51 21 109 33t121 13l55 287h142l-55 -287q27 -2 55.5 -7t54.5 -13q57 -17 117 -48l-53 -264q-23 20 -48.5 36.5t-51.5 27.5q-52 22 -119 30 l-135 -692q32 2 64.5 9.5t64.5 18.5q34 12 65 28t63 36l-51 -264q-61 -31 -125 -48q-65 -17 -129 -20l-55 -288h-141zM688 907q-136 -15 -229 -145q-46 -64 -70 -139t-24 -160q0 -60 13 -102.5t39 -75.5q25 -32 57.5 -50t77.5 -20z" />
+<glyph unicode="&#xa3;" d="M29 260h235l64 334h-199l45 225h199l37 197q26 137 71 232.5t108 153.5q64 60 156 89t207 29q80 0 150 -16q73 -17 143 -48l-53 -266q-29 20 -61 36.5t-58 25.5t-58 14.5t-63 5.5q-105 0 -168 -67q-31 -33 -54.5 -84.5t-37.5 -125.5l-33 -176h336l-43 -225h-338l-63 -334 h481l-51 -260h-1004z" />
+<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
+<glyph unicode="&#xa5;" d="M383 438h-412l37 189h408l-58 151h-321l37 187h223l-170 528h317l174 -600l408 600h317l-374 -528h223l-37 -187h-321l-115 -151h407l-36 -189h-412l-86 -438h-293z" />
+<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
+<glyph unicode="&#xa7;" d="M458 -195q-79 0 -167 15q-91 15 -187 45l46 229q35 -16 72.5 -28.5t80.5 -21.5q82 -17 150 -17q91 0 137 34q23 17 35 41.5t12 48.5q0 39 -34.5 80t-117.5 97l-18 12l-100 68q-52 35 -88.5 65t-60.5 65q-18 26 -29 57.5t-11 73.5q0 95 61 171q30 38 74 70t101 57 q-51 40 -75 90q-12 25 -18 52.5t-6 62.5q0 154 118 251q56 46 131 71.5t175 25.5q73 0 153 -15q81 -15 167 -45l-45 -229q-34 17 -68.5 30t-64.5 21q-33 8 -65.5 12t-62.5 4q-87 0 -133 -34q-47 -35 -47 -95q0 -44 31 -79q20 -23 53.5 -47.5t85.5 -57.5l105 -67 q95 -60 142 -127q23 -32 32.5 -65.5t9.5 -69.5q0 -86 -55 -160q-29 -38 -71 -73t-99 -69q24 -23 40.5 -47t26.5 -47q21 -50 21 -111q0 -77 -30.5 -140.5t-88.5 -109.5q-57 -45 -137.5 -69.5t-180.5 -24.5zM682 451q55 38 88 83q17 24 24 44.5t7 40.5q0 35 -19 66 q-9 15 -22.5 29.5t-30.5 26.5l-80 54q-2 0 -12 7.5t-29 20.5l-78 54q-29 -21 -51.5 -44t-37.5 -44q-17 -24 -24 -44.5t-7 -40.5q0 -35 18 -65t55 -55l78 -54l51 -34q15 -10 24 -15.5t15.5 -10t13.5 -9t17 -10.5z" />
+<glyph unicode="&#xa8;" d="M449 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM844 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
+<glyph unicode="&#xaa;" d="M511 698q-111 0 -173 61q-64 61 -64 167q0 71 27 128t85 99q112 80 319 80h135l6 35q2 4 2 7v11q0 40 -36 61q-19 11 -45.5 16t-58.5 5t-64 -5t-69 -15q-36 -10 -73 -23.5t-84 -34.5l33 174q79 28 152 42q35 7 69.5 10.5t70.5 3.5q67 0 125.5 -12.5t100.5 -38.5 q44 -27 63 -65.5t19 -85.5q0 -10 -1 -28t-3 -35q-2 -19 -6.5 -44.5t-8.5 -45.5l-88 -448h-207l19 88q-25 -29 -50 -47.5t-57 -32.5q-63 -27 -138 -27zM598 838q38 0 73.5 16.5t63.5 48.5q26 29 46 75t30 109h-80q-122 0 -180 -36q-29 -18 -44 -45.5t-15 -62.5q0 -47 29 -76 q14 -14 32.5 -21.5t44.5 -7.5zM246 598h688l-35 -170h-688z" />
+<glyph unicode="&#xab;" d="M78 535l24 131l547 393l-47 -238l-319 -221l233 -221l-45 -238zM532 535l25 131l545 393l-45 -238l-320 -221l234 -221l-45 -238z" />
+<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
+<glyph unicode="&#xad;" d="M299 735h629l-56 -291h-628z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
+<glyph unicode="&#xaf;" d="M459 1556h631l-37 -188h-631z" />
+<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
+<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#xb2;" d="M289 1261q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q109 78 185 138.5t124 106.5t69.5 80t21.5 58q0 16 -9 33.5t-27 30.5q-35 24 -104 24q-30 0 -64.5 -4.5t-71.5 -13.5q-38 -9 -77 -22.5t-75 -30.5l31 162q38 11 75 20t74 15q73 12 145 12q69 0 124.5 -12.5 t97.5 -41.5q41 -29 59.5 -67t18.5 -74q0 -41 -23.5 -86t-73.5 -98.5t-127.5 -116t-185.5 -138.5q-13 -9 -18 -12.5t-12.5 -8.5t-23 -16t-50.5 -36h438l-28 -145h-664z" />
+<glyph unicode="&#xb3;" d="M569 1103q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5z" />
+<glyph unicode="&#xb4;" d="M887 1638h321l-442 -376h-197z" />
+<glyph unicode="&#xb5;" d="M246 1120h289l-132 -680q-2 -8 -4.5 -20.5t-4.5 -31.5q-3 -24 -3 -42q0 -64 34 -98q17 -17 40.5 -26t55.5 -9q81 0 132 56q52 56 74 171l131 680h289l-150 -776q-2 -17 -3.5 -27t-2.5 -15t-1 -6.5v-2.5q-2 -10 -2.5 -16t-0.5 -13q0 -23 11 -37t30 -14q12 0 27 6 q5 2 14.5 7t20.5 12l-43 -222q-28 -14 -47 -21.5t-39 -12.5t-39 -8t-39 -3q-38 0 -64 10t-44 28q-38 38 -50 120q-52 -79 -114 -118q-29 -19 -61 -29.5t-71 -10.5q-59 0 -96 24q-38 24 -53 71l-97 -494h-288z" />
+<glyph unicode="&#xb6;" d="M457 649q-171 18 -263 104q-46 43 -69 99t-23 134q0 103 40.5 194t122.5 166q162 147 407 147h518l-328 -1690h-190l301 1543h-191l-299 -1543h-190z" />
+<glyph unicode="&#xb7;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
+<glyph unicode="&#xb8;" d="M349 -401q-26 0 -54.5 2t-45.5 4q-6 1 -19.5 3t-28.5 5t-29.5 6t-21.5 6l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-6 16 -17 39t-27 51h141q36 -49 54 -94q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5 q-37 -29 -90.5 -44t-120.5 -15z" />
+<glyph unicode="&#xb9;" d="M315 1265h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657z" />
+<glyph unicode="&#xba;" d="M634 698q-78 0 -137 21t-103 63q-45 42 -66 101t-21 144q0 103 30 193t90 160q119 140 313 140q154 0 241 -84q43 -42 64.5 -100t21.5 -145q0 -100 -29.5 -190.5t-89.5 -162.5q-62 -73 -140.5 -106.5t-173.5 -33.5zM649 862q45 0 82.5 25.5t64.5 69.5q30 49 45 110 t15 121q0 38 -7 71t-27 56q-17 20 -41.5 30.5t-52.5 10.5q-46 0 -83.5 -25.5t-64.5 -69.5q-32 -51 -46 -112.5t-14 -116.5q0 -47 9 -77t25 -50q17 -20 41 -31.5t54 -11.5zM254 598h688l-33 -170h-688z" />
+<glyph unicode="&#xbb;" d="M127 379l322 221l-234 221l45 238l393 -393l-26 -131l-545 -394zM582 379l321 221l-233 221l45 238l393 -393l-27 -131l-544 -394z" />
+<glyph unicode="&#xbc;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
+<glyph unicode="&#xbd;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM443 -129q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q107 77 183 137t124 106.5t70.5 80.5t22.5 59q0 16 -9 33.5t-27 30.5q-35 24 -104 24 q-30 0 -64.5 -4.5t-71.5 -13.5q-41 -10 -78 -23t-74 -30l31 162q38 11 75 20t74 15q73 12 144 12t128 -13t96 -41q40 -29 58.5 -67.5t18.5 -73.5q0 -80 -99.5 -186.5t-310.5 -252.5q-12 -8 -21.5 -14.5t-20.5 -14.5t-25.5 -18t-36.5 -26h438l-28 -145h-664z" />
+<glyph unicode="&#xbe;" d="M342 809q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
+<glyph unicode="&#xbf;" d="M732 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM454 -27q-85 0 -150 20.5t-115 62.5q-99 82 -99 216 q0 96 49 178q25 42 67.5 88.5t98.5 92.5l105 86l8 7q66 58 102.5 116t50.5 129l23 123h266l-29 -154q-10 -52 -24.5 -91.5t-36.5 -74.5q-26 -42 -60.5 -77.5t-78.5 -73.5l-105 -93l-15 -13q-68 -59 -104 -105.5t-36 -88.5q0 -20 9 -42.5t28 -38.5t45 -23.5t64 -7.5 q46 0 93 10t96 27t103.5 43.5t114.5 64.5l-52 -268q-100 -55 -208 -84t-210 -29z" />
+<glyph unicode="&#xc0;" d="M500 1852h264l143 -264h-178zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc1;" d="M862 1852h281l-320 -264h-207zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc2;" d="M639 1852h348l151 -264h-169l-164 161l-230 -161h-180zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc3;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-14 11 -22.5 16 t-19.5 10q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc4;" d="M487 1613q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM883 1613q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM582 1493h360l113 -1493h-293l-14 369h-400 l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc5;" d="M547 1421q-36 36 -57 89q-21 52 -21 108q0 115 84 199q40 40 88.5 62t111.5 22q117 0 201 -84t84 -199q0 -32 -6 -61.5t-17 -53.5q-12 -28 -29.5 -52t-37.5 -42l107 -1409h-295l-21 369h-395l-162 -369h-295zM754 1485q54 0 93 39q38 38 38 92t-39 93q-40 38 -92 38 q-54 0 -92 -38q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q39 -39 93 -39zM729 612l-20 611l-258 -611h278z" />
+<glyph unicode="&#xc6;" d="M502 1493h809l-51 -260h-291l-60 -311h260l-51 -260h-260l-78 -402h310l-52 -260h-563l72 362h-283l-155 -362h-259zM592 598l125 635h-80l-272 -635h227z" />
+<glyph unicode="&#xc7;" d="M1038 1502q35 -8 75.5 -21.5t79.5 -32.5l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77 q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-22 -5 -43.5 -8.5t-43.5 -5.5q22 -35 36 -69q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156 q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 28t-18 36q-91 8 -167.5 41t-132.5 93q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 139.5 43t149.5 14 q42 0 78.5 -4.5t76.5 -13.5z" />
+<glyph unicode="&#xc8;" d="M527 1853h264l143 -264h-178zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xc9;" d="M899 1852h281l-320 -264h-207zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xca;" d="M666 1853h348l151 -264h-169l-164 161l-230 -161h-180zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xcb;" d="M514 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM910 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM317 1493h932l-51 -260h-635l-63 -322h575 l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xcc;" d="M496 1853h264l143 -264h-178zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xcd;" d="M858 1853h281l-320 -264h-207zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xce;" d="M645 1853h348l151 -264h-169l-164 161l-230 -161h-180zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xcf;" d="M493 1606q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM889 1606q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xd0;" d="M151 664h-137l47 237h135l117 592h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -56.5t-12 -53q-20 -81 -44 -146t-46 -110q-30 -62 -62 -104.5t-62 -71.5q-48 -47 -105.5 -79t-120.5 -52 q-69 -21 -154.5 -30.5t-194.5 -9.5h-330zM464 266q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-63 -326h211l-45 -237h-211l-78 -398h96z" />
+<glyph unicode="&#xd1;" d="M452 1588q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
+<glyph unicode="&#xd2;" d="M510 1852h264l143 -264h-178zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd3;" d="M872 1852h281l-320 -264h-207zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd4;" d="M629 1852h348l151 -264h-169l-164 161l-230 -161h-180zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94 q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112 t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45 t68.5 -14z" />
+<glyph unicode="&#xd5;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18 q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5 t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175 q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd6;" d="M487 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM883 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60 q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
+<glyph unicode="&#xd8;" d="M-141 51l219 244q-5 21 -7.5 37t-4.5 34q-2 19 -3.5 37t-1.5 51q0 94 12 200t37 211q23 100 57 193t77 169q39 69 89 124.5t114 93.5t137 56.5t148 18.5q104 0 187 -33q82 -33 144 -98l154 170l139 -115l-205 -227q6 -32 9.5 -56.5t5.5 -47.5q2 -25 3.5 -45t1.5 -46 t-1.5 -63t-5.5 -72q-2 -14 -4 -32.5t-5 -39l-6 -41t-6 -37.5q-5 -30 -12.5 -64t-15.5 -68t-17 -66t-18 -59q-17 -52 -39.5 -107t-51.5 -108q-42 -74 -93.5 -129t-109.5 -90q-63 -38 -135.5 -56.5t-150.5 -18.5q-110 0 -196 37q-88 38 -144 109l-160 -180zM852 1153 q-9 27 -23.5 47.5t-31.5 32.5q-20 15 -44 21t-47 6q-65 0 -112.5 -39t-83.5 -108q-38 -72 -70.5 -189t-60.5 -295zM525 233q127 0 204 153q38 76 70.5 203.5t58.5 299.5l-483 -535q18 -60 57 -90q18 -14 40 -22.5t53 -8.5z" />
+<glyph unicode="&#xd9;" d="M496 1852h264l143 -264h-178zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xda;" d="M868 1854h281l-320 -264h-207zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xdb;" d="M645 1855h348l151 -264h-169l-164 161l-230 -161h-180zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45 q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xdc;" d="M493 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM889 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xdd;" d="M868 1852h281l-320 -264h-207zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#xde;" d="M307 1493h295l-47 -227h127q235 0 360 -92q63 -47 93 -114t30 -158q0 -51 -9 -107t-27 -112q-19 -58 -42.5 -100.5t-52.5 -76.5q-44 -52 -91.5 -82t-102.5 -50q-59 -21 -130.5 -31.5t-170.5 -10.5h-164l-64 -332h-295zM569 580q147 0 217 67q36 34 54 83.5t18 112.5 q0 55 -13 87t-39 50q-26 19 -68.5 28.5t-106.5 9.5h-121l-86 -438h145z" />
+<glyph unicode="&#xdf;" d="M666 -29q-40 0 -70 3.5t-61 9.5q-39 8 -67.5 16t-61.5 20l49 250q29 -16 57 -27.5t55 -19.5q51 -16 102 -16q42 0 77.5 10t61.5 30t39 46t13 54q0 41 -27.5 84.5t-83.5 99.5l-6 6l-69 71q-45 46 -65 97q-21 51 -21 112q0 132 92 227q91 93 260 130v16q0 29 -10.5 55 t-34.5 45q-46 35 -125 35q-95 0 -152 -51t-77 -152l-219 -1122h-293l219 1126q21 109 64 188.5t109 134.5q131 110 346 110q97 0 170.5 -21.5t122.5 -65.5t73 -109.5t24 -147.5q0 -29 -3 -64t-8 -86l-1 -6q-73 -4 -128 -19.5t-91 -38.5t-57 -56t-21 -70q0 -33 21.5 -70 t74.5 -90l82 -82q59 -60 88 -121q14 -29 21.5 -62t7.5 -76q0 -86 -32 -161t-96 -131q-128 -111 -349 -111z" />
+<glyph unicode="&#xe0;" d="M402 1673h284l209 -376h-198zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe1;" d="M918 1673h321l-442 -376h-197zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe2;" d="M699 1673h243l183 -376h-176l-152 225l-240 -225h-190zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe3;" d="M911 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q109 0 189 -19.5t135 -56.5q60 -40 86 -95.5t26 -127.5q0 -18 -1.5 -41t-5.5 -51q-2 -14 -4 -27t-4 -26.5t-5 -29t-7 -34.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe4;" d="M480 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM875 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM379 -29q-75 0 -137 21t-107 66 q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5 q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46 t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe5;" d="M778 1249q-57 0 -108.5 21t-93.5 63q-41 42 -61.5 93t-20.5 108q0 63 23.5 115t59.5 88q37 37 88.5 59.5t113.5 22.5q57 0 108.5 -20.5t92.5 -61.5q35 -35 59 -86.5t24 -115.5q0 -63 -23.5 -115.5t-58.5 -87.5q-41 -41 -93.5 -62t-109.5 -21zM779 1403q25 0 49.5 9.5 t44.5 29.5q37 39 37 93q0 53 -39 92q-17 17 -40 27.5t-52 10.5q-55 0 -93 -38q-39 -39 -39 -93q0 -55 38 -93q17 -17 41.5 -27.5t52.5 -10.5zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17 q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125 q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe6;" d="M246 -29q-127 0 -202 79q-38 40 -56.5 92.5t-18.5 124.5q0 92 30.5 169t91.5 137q121 117 325 117h108l11 58q3 17 3.5 21.5t1.5 8.5q1 5 1 12.5v9.5q0 36 -8.5 60t-25.5 40q-35 32 -98 32q-54 0 -122 -25q-37 -14 -75 -32.5t-81 -43.5l47 238q40 20 77.5 34.5t74.5 24.5 q36 10 71.5 14.5t67.5 4.5q84 0 142 -35q30 -18 50 -42t33 -56q53 65 122 99q68 34 154 34q126 0 193 -70q68 -71 68 -204q0 -24 -2 -51t-6 -61q-7 -58 -15 -99.5t-10 -55.5l-22 -129h-451q-3 -19 -6.5 -43t-4.5 -32q-3 -27 -3 -45q0 -42 11.5 -75t31.5 -55q42 -47 113 -47 q54 0 124 29q31 13 65.5 33t67.5 47l-47 -238q-57 -40 -125 -60q-34 -10 -71.5 -15t-74.5 -5q-52 0 -90.5 10.5t-73.5 32.5q-68 44 -99 121q-62 -83 -134 -123q-39 -22 -78.5 -31.5t-84.5 -9.5zM991 688l12 67q4 16 6 34q1 8 1 19.5v25.5q0 50 -20 75q-20 23 -64 23 q-57 0 -91 -42q-19 -23 -33 -57.5t-22 -72.5l-14 -72h225zM296 180q66 0 106 52t61 169l14 78h-74q-98 0 -156 -51q-30 -26 -44.5 -61.5t-14.5 -73.5q0 -28 7.5 -48t21.5 -35q28 -30 79 -30z" />
+<glyph unicode="&#xe7;" d="M809 909q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-18 -4 -36.5 -6.5t-36.5 -4.5q23 -35 37 -70q18 -47 18 -91 q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 27.5t-17 35.5q-89 6 -166.5 35t-137.5 86 q-69 66 -98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28z" />
+<glyph unicode="&#xe8;" d="M391 1674h284l209 -376h-198zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xe9;" d="M867 1673h321l-442 -376h-197zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xea;" d="M668 1673h243l183 -376h-176l-152 225l-240 -225h-190zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181 q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134 q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xeb;" d="M439 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM834 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM583 -29 q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16 t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xec;" d="M306 1648h284l209 -376h-198zM737 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xed;" d="M862 1648h321l-442 -376h-197zM697 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xee;" d="M596 1673h243l183 -376h-176l-152 225l-240 -225h-190zM700 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12 q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xef;" d="M395 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-175zM790 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-176zM718 -8q-107 0 -177 14 t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xf0;" d="M538 -29q-112 0 -195.5 30.5t-140.5 84.5q-63 60 -91.5 143.5t-28.5 190.5q0 129 39.5 245.5t119.5 207.5q74 84 176.5 132t233.5 48q42 0 75 -6q17 -3 32.5 -7.5t29.5 -11.5q-6 15 -10.5 25t-10 22t-13.5 28l-21 42q-23 44 -35 65.5t-20 32.5l-330 -123l-41 115l307 115 l-125 206h279l74 -120l323 118l41 -112l-303 -113q120 -182 179 -349q29 -81 44 -163t15 -171q0 -144 -41 -269t-123 -219q-78 -90 -188 -138.5t-251 -48.5zM560 207q60 0 113 31t94 94q39 60 60 143.5t21 176.5q0 17 -0.5 36t-1.5 30q-1 8 -3.5 27t-4.5 33q-19 11 -40 18.5 t-39 12.5q-20 5 -42.5 7.5t-40.5 2.5q-68 0 -122.5 -29t-93.5 -80q-43 -57 -64 -128.5t-21 -144.5q0 -60 13 -101.5t36 -68.5q22 -26 56 -43t80 -17z" />
+<glyph unicode="&#xf1;" d="M880 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8 q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5q-29 30 -83 30q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
+<glyph unicode="&#xf2;" d="M371 1673h284l209 -376h-198zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf3;" d="M887 1673h321l-442 -376h-197zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf4;" d="M668 1675h243l183 -376h-176l-152 225l-240 -225h-190zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf5;" d="M880 1299q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf6;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM543 -29 q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5 q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf7;" d="M461 1198h309v-309h-309v309zM66 762h1099v-238h-1099v238zM461 395h309v-309h-309v309z" />
+<glyph unicode="&#xf8;" d="M-82 2l211 207q-11 27 -17.5 49t-12.5 50q-5 26 -8 53.5t-3 68.5q0 153 42 287t123 233q83 100 194.5 149.5t240.5 49.5q45 0 88 -6t82 -19q76 -25 143 -75l193 186l117 -121l-207 -201q10 -25 18 -50.5t13 -52.5q5 -28 7.5 -53.5t2.5 -60.5q0 -155 -41.5 -290.5 t-123.5 -235.5q-79 -96 -189.5 -147.5t-249.5 -51.5q-47 0 -90 6t-81 19q-76 25 -137 76l-198 -189zM801 856q-26 29 -56 42t-71 13q-63 0 -110.5 -29.5t-85.5 -88.5q-39 -61 -62 -145t-33 -195zM562 207q120 0 196 121q39 63 61.5 147.5t30.5 194.5l-416 -404 q14 -17 26.5 -26.5t29.5 -17.5q31 -15 72 -15z" />
+<glyph unicode="&#xf9;" d="M381 1648h284l209 -376h-198zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfa;" d="M897 1648h321l-442 -376h-197zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfb;" d="M678 1648h243l183 -376h-176l-152 225l-240 -225h-190zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9 q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfc;" d="M459 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM854 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM370 -29q-61 0 -110.5 18t-84.5 53 q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5 q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfd;" d="M922 1648h321l-442 -376h-197zM-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
+<glyph unicode="&#xfe;" d="M348 1556h293l-117 -604q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
+<glyph unicode="&#xff;" d="M484 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM879 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM-20 -201 h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
+<glyph unicode="&#x100;" d="M519 1850h631l-36 -188h-631zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x101;" d="M459 1535h631l-37 -188h-631zM381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5 t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-252l-14 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
+<glyph unicode="&#x102;" d="M796 1588q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x103;" d="M736 1297q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5 t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-262l-4 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70 t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
+<glyph unicode="&#x104;" d="M785 -182q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-5l-14 369h-400l-162 -369h-299l695 1493h360l113 -1493h-147q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5z M737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x105;" d="M709 1147q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-150q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119 t118.5 136l25 125q-67 -78 -154.5 -116t-189.5 -38q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5 t97.5 13.5t94 4zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
+<glyph unicode="&#x106;" d="M978 1852h281l-320 -264h-207zM598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 137.5 43t147.5 14q42 0 80.5 -4.5t78.5 -13.5q32 -8 73 -21t82 -33l-64 -328 q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328 q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z" />
+<glyph unicode="&#x107;" d="M948 1673h321l-442 -376h-197zM611 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28q-89 0 -158 -33 t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
+<glyph unicode="&#x108;" d="M786 1852h309l172 -264h-178l-168 161l-229 -161h-178zM98 489q0 117 27 256q50 253 154 424q105 173 261 262t354 89q174 0 297 -72l-64 -328q-63 71 -127.5 103t-142.5 32q-160 0 -268 -129.5t-157 -380.5q-22 -107 -22 -206q0 -150 62.5 -226.5t186.5 -76.5 q77 0 155 33q39 16 78 39.5t89 62.5l-63 -328q-154 -72 -325 -72q-243 0 -369 132.5t-126 385.5z" />
+<glyph unicode="&#x109;" d="M752 1596h241l198 -299h-178l-170 147l-227 -147h-178zM317 30q-193 111 -193 369q0 66 17 160q36 181 128 316q93 133 230 203.5t307 70.5q92 0 171.5 -21t154.5 -65l-52 -268q-110 114 -278 114q-143 0 -237.5 -91t-126.5 -259q-12 -60 -12 -110q0 -116 61.5 -177 t179.5 -61q85 0 168 29t154 86l-53 -269q-80 -42 -170.5 -64t-184.5 -22q-163 0 -264 59z" />
+<glyph unicode="&#x10a;" d="M763 1607q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM596 -29q-238 0 -364 136.5t-126 414.5q0 106 18.5 214.5t52.5 210t82.5 191t108.5 158.5q97 111 226.5 167.5t281.5 56.5q85 0 162.5 -18t155.5 -54l-64 -328 q-24 33 -55 59t-66.5 43t-74 26t-77.5 9q-94 0 -168.5 -48.5t-129.5 -133.5q-34 -52 -62 -118t-48.5 -137.5t-32 -144.5t-11.5 -139q0 -153 63 -229t184 -76q78 0 158.5 33.5t174.5 106.5l-64 -328q-78 -36 -157.5 -54t-167.5 -18z" />
+<glyph unicode="&#x10b;" d="M677 1347q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM608 -29q-113 0 -202.5 30.5t-152 91.5t-95.5 152t-33 212q0 147 48 273t136 218.5t211.5 145.5t274.5 53q91 0 176 -20.5t161 -63.5l-53 -268 q-120 114 -274 114q-86 0 -156.5 -33t-121 -91.5t-78.5 -138.5t-28 -174q0 -136 59.5 -199.5t180.5 -63.5q74 0 151.5 24.5t174.5 79.5l-56 -276q-155 -66 -323 -66z" />
+<glyph unicode="&#x10c;" d="M507 1853h170l149 -162l229 162h181l-244 -264h-348zM598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 137.5 43t147.5 14q42 0 80.5 -4.5t78.5 -13.5q32 -8 73 -21 t82 -33l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5 t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z" />
+<glyph unicode="&#x10d;" d="M475 1673h174l153 -227l238 227h190l-331 -376h-242zM611 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86 q-66 28 -146 28q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
+<glyph unicode="&#x10e;" d="M383 1853h170l149 -162l229 162h181l-244 -264h-348zM283 1493h315q287 0 427 -123.5t140 -375.5q0 -79 -13.5 -179.5t-41.5 -212.5q-20 -81 -43 -146t-49 -116.5t-56 -92.5t-65 -75q-47 -46 -101.5 -78.5t-123.5 -53.5t-155 -30.5t-195 -9.5h-330zM434 266 q115 0 189 43.5t120 132.5q24 46 45 110t37 134.5t25.5 140.5t9.5 129q0 140 -60.5 205.5t-193.5 65.5h-82l-186 -961h96z" />
+<glyph unicode="&#x10f;" d="M382 -29q-73 0 -131.5 28t-99.5 81.5t-63 132t-22 180.5q0 64 8.5 129t24.5 127t38 119t48 105q73 136 175 206t219 70q58 0 105.5 -17t83 -48.5t57.5 -75t29 -97.5l125 645h293l-303 -1556h-262l2 166q-66 -97 -148 -146t-179 -49zM1333 1556h321l-257 -376h-197z M513 211q63 0 115.5 40t90.5 104.5t59 146.5t21 165q0 123 -44.5 182.5t-115.5 59.5q-63 0 -114 -42t-87.5 -108.5t-56 -150t-19.5 -165.5q0 -121 41 -176.5t110 -55.5z" />
+<glyph unicode="&#x110;" d="M121 664h-137l47 237h135l117 592h315q287 0 427 -123.5t140 -375.5q0 -79 -13.5 -179.5t-41.5 -212.5q-20 -81 -43 -146t-49 -116.5t-56 -92.5t-65 -75q-47 -46 -101.5 -78.5t-123.5 -53.5t-155 -30.5t-195 -9.5h-330zM434 266q115 0 189 43.5t120 132.5q24 46 45 110 t37 134.5t25.5 140.5t9.5 129q0 140 -60.5 205.5t-193.5 65.5h-82l-63 -326h211l-45 -237h-211l-78 -398h96z" />
+<glyph unicode="&#x111;" d="M382 -29q-144 0 -230 110q-43 55 -64.5 129.5t-21.5 175.5q0 60 7.5 124t23.5 129t39 126.5t48 108.5q32 61 76 112.5t98 89.5q104 73 223 73q111 0 185 -63q34 -29 57 -73t31 -102l66 340h-304l37 189h303l23 116h293l-23 -116h146l-37 -189h-146l-243 -1251h-262l2 166 q-66 -96 -148 -145q-83 -50 -179 -50zM517 211q57 0 107 34.5t92 104.5t62.5 153t20.5 171q0 66 -11.5 106.5t-33.5 69.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102.5t31.5 -66.5q42 -56 113 -56z" />
+<glyph unicode="&#x112;" d="M540 1850h631l-36 -188h-631zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x113;" d="M468 1537h631l-37 -188h-631zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30 q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
+<glyph unicode="&#x116;" d="M709 1606q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x117;" d="M636 1349q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139 t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
+<glyph unicode="&#x118;" d="M563 1233l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-130q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-658 l288 1493h932l-51 -260h-635z" />
+<glyph unicode="&#x119;" d="M369 465q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-40 -17 -81 -31t-83 -24q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5 t-58.5 108.5q0 49 30.5 107t96.5 122q-36 -3 -73 -3q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759zM689 920q-97 0 -168 -59 t-111 -177h466q7 27 7 55q0 84 -51 132.5t-143 48.5z" />
+<glyph unicode="&#x11a;" d="M509 1852h170l149 -162l229 162h181l-244 -264h-348zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x11b;" d="M410 1673h174l153 -227l238 227h190l-331 -376h-242zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759 q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
+<glyph unicode="&#x11c;" d="M814 1852h309l172 -264h-178l-168 161l-229 -161h-178zM95 492q0 116 27 255q50 250 154 423q105 173 260 261.5t352 88.5q188 0 325 -99l-63 -327q-93 161 -287 161q-170 0 -277 -125t-157 -383q-23 -126 -23 -209q0 -148 60.5 -225t177.5 -77q50 0 81 9q20 5 32 10 t28 15l55 285h-202l48 248h460l-133 -684q-99 -73 -210 -110.5t-228 -37.5q-234 0 -357 134.5t-123 386.5z" />
+<glyph unicode="&#x11d;" d="M724 1673h241l183 -376h-178l-155 225l-242 -225h-178zM17 -369l53 269q73 -43 155.5 -66.5t167.5 -23.5q68 0 116 14t83 44q71 59 95 183l24 121q-60 -80 -138 -119t-179 -39q-157 0 -243 100t-86 281q0 89 19 178q33 174 109 303q76 130 185 201.5t231 71.5 q98 0 164.5 -45t93.5 -127l57 143h264l-202 -1036q-35 -180 -109 -291q-75 -111 -199 -164t-308 -53q-182 0 -353 55zM657 304q101 102 132 273q12 63 12 116q0 101 -40.5 158.5t-113.5 57.5q-60 0 -114.5 -41t-95.5 -116q-35 -66 -53.5 -145t-18.5 -145q0 -39 4 -59 q11 -76 49.5 -116.5t99.5 -40.5q84 0 139 58z" />
+<glyph unicode="&#x11e;" d="M807 1588q-72 0 -123.5 17t-88.5 51q-74 68 -74 192v4h143q10 -60 51 -87q41 -28 117 -28q40 0 70 7.5t57 23.5q54 32 76 84h154q-40 -129 -139 -196q-100 -68 -243 -68zM611 -29q-128 0 -220.5 38t-155.5 106q-70 76 -101.5 181t-31.5 232q0 96 17.5 204.5t54.5 216.5 q32 94 80.5 183t112.5 162q45 51 101.5 94.5t126.5 74.5q130 57 281 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-66 -328q-51 67 -120 102q-70 35 -149 35q-39 0 -73 -8t-63 -21q-30 -14 -58.5 -34.5t-57.5 -52.5q-23 -25 -41 -52t-35 -58q-16 -29 -31 -63t-29 -77 q-15 -45 -28 -94.5t-21 -94.5q-17 -94 -17 -169q0 -82 18.5 -136.5t45.5 -87.5q34 -42 80.5 -60t100.5 -18q19 0 34.5 2t32.5 7q12 3 26 8t29 16l57 291h-206l49 248h460l-139 -709q-72 -60 -168 -91q-99 -32 -212 -32z" />
+<glyph unicode="&#x11f;" d="M749 1301q-146 0 -219 66q-35 31 -54.5 78.5t-19.5 119.5v33h144v-13q0 -61 44 -97q43 -36 120 -36q81 0 140 39q29 19 49 44.5t34 62.5h143q-14 -71 -45.5 -125t-82.5 -94q-99 -78 -253 -78zM386 -424q-99 0 -190 15q-46 8 -90 19t-88 25l54 265q76 -46 158 -68 q42 -11 83.5 -16.5t82.5 -5.5q66 0 115 14.5t84 43.5q39 32 60 77.5t33 105.5l27 133q-54 -83 -131 -125q-77 -43 -175 -43q-76 0 -137.5 25t-110.5 80q-48 54 -70.5 123t-22.5 163q0 65 10.5 135t31.5 141q23 76 52 137.5t63 111.5q71 103 171 161t206 58q105 0 172 -55 t88 -158l64 182h264l-203 -1036q-26 -135 -72 -233.5t-119 -159.5q-137 -115 -410 -115zM521 246q55 0 106 33.5t93 99.5q42 68 62.5 149.5t20.5 160.5q0 51 -9 93.5t-32 72.5q-20 27 -49 40.5t-64 13.5q-57 0 -108.5 -34.5t-90.5 -97.5q-42 -66 -62.5 -148.5t-20.5 -163.5 q0 -51 9 -93t31 -71q41 -55 114 -55z" />
+<glyph unicode="&#x120;" d="M738 1607q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM610 -29q-121 0 -215.5 36.5t-159.5 107.5t-99 176t-34 242q0 102 18.5 208t53 205.5t83.5 189t110 158.5q99 112 228 169t280 57q84 0 161.5 -18t155.5 -54l-66 -328 q-51 67 -120 102t-149 35q-70 0 -134.5 -28t-118.5 -88q-44 -48 -76.5 -111.5t-58.5 -138.5q-15 -43 -27 -89.5t-20.5 -93t-13.5 -91t-5 -84.5q0 -146 63.5 -224t178.5 -78q75 0 125 33l57 291h-206l49 248h460l-139 -709q-70 -60 -168 -91.5t-213 -31.5z" />
+<glyph unicode="&#x121;" d="M647 1351q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM389 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41 q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5q0 64 11.5 134.5t32 139t49.5 132t64 114.5q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l64 182h264l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM516 246q60 0 112 36.5t91 97.5t61.5 140 t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36t-91 -96.5t-61.5 -139.5t-22.5 -166q0 -115 39.5 -170t109.5 -55z" />
+<glyph unicode="&#x122;" d="M610 -29q-121 0 -215.5 36.5t-159.5 107.5t-99 176t-34 242q0 102 18.5 208t53 205.5t83.5 189t110 158.5q99 112 228 169t280 57q84 0 161.5 -18t155.5 -54l-66 -328q-51 67 -120 102t-149 35q-70 0 -134.5 -28t-118.5 -88q-44 -48 -76.5 -111.5t-58.5 -138.5 q-15 -43 -27 -89.5t-20.5 -93t-13.5 -91t-5 -84.5q0 -146 63.5 -224t178.5 -78q75 0 125 33l57 291h-206l49 248h460l-139 -709q-70 -60 -168 -91.5t-213 -31.5zM490 -187h282l-236 -306h-194z" />
+<glyph unicode="&#x123;" d="M761 1579h194l-148 -306h-282zM389 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5q0 64 11.5 134.5t32 139 t49.5 132t64 114.5q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l64 182h264l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM516 246q60 0 112 36.5t91 97.5t61.5 140t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36t-91 -96.5t-61.5 -139.5 t-22.5 -166q0 -115 39.5 -170t109.5 -55z" />
+<glyph unicode="&#x124;" d="M676 1852h309l172 -264h-178l-168 161l-229 -161h-178zM282 1493h295l-110 -569h369l110 569h295l-290 -1493h-295l129 664h-369l-129 -664h-295z" />
+<glyph unicode="&#x125;" d="M816 1902h309l172 -264h-178l-168 161l-229 -161h-178zM362 1556h291l-118 -604q50 93 134.5 144t191.5 51q254 0 254 -269q0 -74 -16 -151l-141 -727h-291l133 682q12 60 12 102q0 65 -28 94t-86 29q-82 0 -140.5 -70t-82.5 -196l-125 -641h-291z" />
+<glyph unicode="&#x126;" d="M207 1105h-134l32 164h134l43 224h295l-43 -224h369l43 224h294l-43 -224h135l-32 -164h-135l-215 -1105h-294l129 664h-369l-129 -664h-295zM836 924l35 181h-369l-35 -181h369z" />
+<glyph unicode="&#x127;" d="M268 1270h-160l32 164h160l23 122h291l-23 -122h277l-32 -164h-277l-62 -318q51 96 134 145.5t188 49.5q125 0 193 -69.5t68 -199.5q0 -26 -4 -60t-15 -91l-141 -727h-291l132 682q9 46 11 68t2 34q0 70 -26 102.5t-83 32.5q-88 0 -145.5 -71t-83.5 -207l-124 -641h-291z " />
+<glyph unicode="&#x128;" d="M428 1588q25 130 91 198t161 68q38 0 70 -12t67 -39l53 -41q32 -27 70 -27q37 0 63 30.5t37 88.5h137q-26 -124 -89 -195t-163 -71q-35 0 -67 11t-70 40l-49 37q-25 19 -41.5 25.5t-31.5 6.5q-38 0 -64 -30.5t-37 -89.5h-137zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x129;" d="M804 1270q-35 0 -67.5 13t-72.5 44l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74 57t89.5 20q17 0 32.5 -3t32 -9.5t35 -18.5t41.5 -30l51 -39q39 -31 70 -31q38 0 64 33t36 96h139q-47 -284 -249 -284zM727 -8 q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 12 5.5 33.5t8.5 45.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#x12a;" d="M519 1850h631l-36 -188h-631zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x12b;" d="M367 1508h631l-37 -188h-631zM717 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#x12e;" d="M858 1233l-188 -973h297l-52 -260h-297q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-450l51 260h297l188 973h-297l51 260 h889l-51 -260h-297z" />
+<glyph unicode="&#x12f;" d="M544 1323q-16 0 -23 9t-4 24l56 282q4 27 32 27h233q16 0 23 -9t4 -24l-56 -282q-5 -27 -32 -27h-233zM823 -8q-66 -71 -90 -107q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5 t-58.5 108.5q0 53 35 115t110 130q-91 3 -152.5 17t-100.5 40q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 12 5.5 33.5t8.5 45.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-191z" />
+<glyph unicode="&#x130;" d="M674 1607q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h214q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x131;" d="M732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297v0z " />
+<glyph unicode="&#x132;" d="M83 295h374q80 0 156 40q76 39 128.5 107t67.5 148l176 904h294l-175 -904q-32 -161 -136 -295q-106 -137 -257.5 -216t-310.5 -79h-374zM316 1493h295l-176 -903h-295z" />
+<glyph unicode="&#x133;" d="M265 1274q0 7 1 9l55 282q6 30 36 30h233q25 0 25 -21q0 -7 -1 -9l-55 -282q-6 -30 -36 -30h-233q-25 0 -25 21zM953 1274q0 7 1 9l55 282q6 30 36 30h233q25 0 25 -21q0 -7 -1 -9l-55 -282q-6 -30 -36 -30h-233q-25 0 -25 21zM234 1120h293l-217 -1120h-293zM284 -131 h263q56 0 101 38t56 93l217 1120h295l-217 -1120q-22 -116 -99 -213q-77 -99 -186.5 -156t-223.5 -57h-263z" />
+<glyph unicode="&#x134;" d="M915 1852h309l172 -264h-178l-168 161l-229 -161h-178zM172 -3q-96 26 -194 77l66 342q64 -85 154.5 -132.5t191.5 -47.5q115 0 180.5 58.5t89.5 184.5l147 754h-361l50 260h656l-197 -1014q-53 -274 -190 -390q-136 -118 -392 -118q-49 0 -94.5 6t-106.5 20z" />
+<glyph unicode="&#x135;" d="M804 1673h241l183 -376h-178l-155 225l-242 -225h-178zM20 -199h234q67 0 111 24t71.5 75.5t45.5 142.5l165 852h-297l44 225h590l-209 -1077q-33 -167 -92 -271q-60 -102 -154.5 -149t-235.5 -47h-316z" />
+<glyph unicode="&#x136;" d="M270 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294zM421 -158h282l-236 -306h-194z" />
+<glyph unicode="&#x137;" d="M363 1556h293l-152 -782l404 346h370l-505 -418l313 -702h-311l-222 524l-116 -96l-82 -428h-293zM454 -158h282l-236 -306h-194z" />
+<glyph unicode="&#x138;" d="M283 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
+<glyph unicode="&#x139;" d="M858 1854h281l-320 -264h-207zM371 1493h295l-240 -1233h631l-51 -260h-926z" />
+<glyph unicode="&#x13a;" d="M855 1901h281l-320 -264h-207zM690 -10q-100 0 -171 13.5t-116.5 41.5t-66.5 72t-21 106q0 29 4.5 64t14.5 82l203 962h-306l43 225h598l-249 -1201q-9 -45 -9 -66q0 -42 36 -58t104 -16h278l-45 -225h-297z" />
+<glyph unicode="&#x13b;" d="M371 1493h295l-240 -1233h631l-51 -260h-926zM423 -158h282l-236 -306h-194z" />
+<glyph unicode="&#x13c;" d="M690 -10q-100 0 -171 13.5t-116.5 41.5t-66.5 72t-21 106q0 29 4.5 64t14.5 82l203 962h-306l43 225h598l-249 -1201q-9 -45 -9 -66q0 -42 36 -58t104 -16h278l-45 -225h-297zM358 -153h282l-236 -306h-194z" />
+<glyph unicode="&#x13d;" d="M371 1493h295l-240 -1233h631l-51 -260h-926zM908 1492h321l-257 -376h-197z" />
+<glyph unicode="&#x13e;" d="M690 -10q-100 0 -171 13.5t-116.5 41.5t-66.5 72t-21 106q0 29 4.5 64t14.5 82l203 962h-306l43 225h598l-249 -1201q-9 -45 -9 -66q0 -42 36 -58t104 -16h278l-45 -225h-297zM990 1556h321l-257 -376h-197z" />
+<glyph unicode="&#x13f;" d="M370 1493h295l-239 -1233h631l-51 -260h-926zM686 686l37 186q6 30 35 30h215q26 0 26 -21q0 -7 -1 -9l-37 -186q-4 -30 -35 -30h-215q-29 0 -25 30z" />
+<glyph unicode="&#x140;" d="M297 275q0 81 20 184l170 872h-297l44 225h590l-214 -1097q-12 -61 -12 -106q0 -72 34.5 -104t110.5 -32h234l-43 -225h-316q-168 0 -244.5 67t-76.5 216zM793 686l37 186q6 30 35 30h215q26 0 26 -21q0 -7 -1 -9l-37 -186q-4 -30 -35 -30h-215q-29 0 -25 30z" />
+<glyph unicode="&#x141;" d="M176 502l-131 -99l-115 154l299 211l142 725h295l-95 -481l250 174l115 -154l-418 -295l-92 -477h631l-51 -260h-926z" />
+<glyph unicode="&#x142;" d="M719 -10q-205 0 -290 56q-43 28 -64 74.5t-21 106.5q0 17 1.5 31.5t3.5 31.5t5 37t8 42l53 260l-276 -195l-90 146l418 284l98 467h-305l43 225h598l-94 -464l290 203l103 -138l-443 -301l-106 -502q-3 -12 -4 -16.5t-1 -6.5v-4t-1 -8t-1.5 -15.5t-0.5 -15.5 q0 -20 8.5 -33t22.5 -21t38 -13.5t70 -5.5h279l-45 -225h-297v0z" />
+<glyph unicode="&#x143;" d="M887 1853h281l-320 -264h-207zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
+<glyph unicode="&#x144;" d="M881 1673h321l-442 -376h-197zM276 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293z" />
+<glyph unicode="&#x145;" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263zM351 -158h282l-236 -306h-194z" />
+<glyph unicode="&#x146;" d="M276 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293zM390 -158h282l-236 -306h-194z" />
+<glyph unicode="&#x147;" d="M487 1852h170l149 -162l229 162h181l-244 -264h-348zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
+<glyph unicode="&#x148;" d="M414 1673h174l153 -227l238 227h190l-331 -376h-242zM276 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293 z" />
+<glyph unicode="&#x149;" d="M188 1286l53 270h314l-53 -270l-271 -383h-215zM442 1120h262l-4 -168q50 93 134.5 144t191.5 51q127 0 191 -68.5t64 -202.5q0 -72 -16 -149l-142 -727h-291l133 682q12 62 12 105q0 45 -12 70q-24 52 -100 52q-42 0 -76 -17.5t-65 -53.5q-59 -71 -84 -197l-125 -641 h-291z" />
+<glyph unicode="&#x14a;" d="M447 -199h37q50 0 87 13t64 42t46 75.5t32 112.5l189 971q5 26 7.5 49.5t2.5 42.5q0 77 -38.5 112.5t-115.5 35.5q-59 0 -108 -20t-86 -56.5t-62.5 -89t-38.5 -117.5l-189 -972h-295l291 1493h266l-18 -240q63 129 165 199t233 70q143 0 217 -87t74 -263q0 -50 -6 -107.5 t-19 -122.5l-172 -884q-26 -133 -66 -225.5t-99 -150t-138 -83t-183 -25.5h-121z" />
+<glyph unicode="&#x14b;" d="M419 -199h39q49 0 86 12.5t64.5 41t46.5 75t32 113.5l124 639q12 61 12 105q0 19 -3 40.5t-14.5 39.5t-33 30t-57.5 12q-88 0 -146.5 -72t-82.5 -196l-124 -641h-291l217 1120h262l-3 -168q51 97 136 146t194 49q78 0 126.5 -23.5t76 -61.5t37.5 -86.5t10 -97.5 q0 -34 -4 -71.5t-12 -79.5l-133 -684q-24 -126 -63 -214.5t-97 -145t-137.5 -82t-184.5 -25.5h-121z" />
+<glyph unicode="&#x14c;" d="M509 1850h631l-36 -188h-631zM497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233 q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
+<glyph unicode="&#x14d;" d="M459 1537h631l-37 -188h-631zM533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207 q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x150;" d="M687 1852h284l-337 -264h-197zM1062 1852h284l-337 -264h-197zM497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169 q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74 q0 -107 40 -166t123 -59z" />
+<glyph unicode="&#x151;" d="M612 1673h246l-321 -376h-164zM1008 1673h260l-346 -376h-172zM533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5 t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x152;" d="M474 0q-133 0 -219 23.5t-138 67.5q-53 45 -79.5 119.5t-26.5 191.5q0 66 8.5 147t25.5 175t41 187t52 172q35 99 80 177.5t116 134.5q64 51 141 74.5t171 23.5h686l-52 -260h-331l-60 -311h301l-51 -260h-301l-78 -402h342l-51 -260h-577zM506 260l189 973h-51 q-48 0 -82.5 -13t-60.5 -34q-30 -25 -51.5 -61t-39.5 -86q-10 -27 -21 -64t-22 -79.5t-21.5 -88.5t-18.5 -90q-15 -80 -23.5 -153t-8.5 -124q0 -52 9.5 -84.5t29.5 -53.5q18 -20 47 -31t74 -11h51z" />
+<glyph unicode="&#x153;" d="M296 -29q-72 0 -132 20.5t-102 62.5q-40 40 -61 101.5t-21 153.5q0 57 8 132t24 154q17 84 39 155.5t48 130.5q29 66 66 115t89 84q50 33 109 50t122 17q39 0 75.5 -7t67.5 -23t55.5 -39.5t41.5 -51.5q48 58 117 90q68 31 151 31q67 0 117 -18t83 -51q35 -35 52 -86 t17 -114q0 -26 -2.5 -59t-5.5 -58q-4 -29 -10.5 -71t-14.5 -84l-23 -127h-450q-5 -26 -7.5 -46t-4.5 -33q-3 -26 -3 -44q0 -38 11 -70.5t32 -55.5q20 -22 50 -34t67 -12q55 0 123 28q33 14 64.5 32t66.5 45l-47 -238q-57 -41 -126 -60q-71 -20 -147 -20q-52 0 -91.5 10.5 t-72.5 30.5q-68 41 -87 109q-25 -38 -55.5 -65.5t-65.5 -46.5q-36 -19 -76.5 -28.5t-90.5 -9.5zM319 184q27 0 48 8t38 24q20 18 33.5 44t26.5 62q10 25 23 81q7 29 14.5 68t17.5 88q4 19 8 41t8 43t7 38.5t5 27.5q4 23 6.5 48t2.5 47q0 31 -6 56t-20 42q-26 32 -79 32 q-55 0 -90 -32q-17 -16 -30 -39.5t-28 -65.5q-9 -26 -15.5 -48t-14.5 -55t-15 -62.5t-15 -72.5q-8 -41 -13.5 -71.5t-10.5 -70.5q-5 -33 -7 -53.5t-2 -41.5q0 -73 26 -105q25 -33 82 -33zM1022 690l10 66q4 19 6 40q1 10 1.5 19t0.5 19q0 51 -20 76q-20 24 -63 24 q-57 0 -91 -42q-17 -21 -32 -55.5t-23 -76.5l-14 -70h225z" />
+<glyph unicode="&#x154;" d="M844 1853h281l-320 -264h-207zM294 1493h410q234 0 345 -88.5t111 -273.5q0 -90 -25 -164t-73.5 -129t-118.5 -89t-160 -44q30 -5 53.5 -15.5t41.5 -30t32.5 -49.5t28.5 -73l164 -537h-301l-106 376l-8 27q-29 96 -65.5 141.5t-92.5 45.5h-117l-115 -590h-295zM585 838 q136 0 205 64.5t69 177.5q0 86 -43.5 125.5t-140.5 39.5h-133l-80 -407h123z" />
+<glyph unicode="&#x155;" d="M911 1673h321l-442 -376h-197zM343 1120h264l-6 -174q64 99 163 150t215 51q63 0 118 -15t100 -42l-53 -275q-50 44 -108.5 64t-136.5 20q-81 0 -143 -21.5t-108 -67.5t-77.5 -118.5t-51.5 -175.5l-100 -516h-295z" />
+<glyph unicode="&#x156;" d="M294 1493h410q234 0 345 -88.5t111 -273.5q0 -90 -25 -164t-73.5 -129t-118.5 -89t-160 -44q30 -5 53.5 -15.5t41.5 -30t32.5 -49.5t28.5 -73l164 -537h-301l-106 376l-8 27q-29 96 -65.5 141.5t-92.5 45.5h-117l-115 -590h-295zM585 838q136 0 205 64.5t69 177.5 q0 86 -43.5 125.5t-140.5 39.5h-133l-80 -407h123zM433 -158h282l-236 -306h-194z" />
+<glyph unicode="&#x157;" d="M373 1120h264l-6 -174q64 99 163 150t215 51q63 0 118 -15t100 -42l-53 -275q-50 44 -108.5 64t-136.5 20q-81 0 -143 -21.5t-108 -67.5t-77.5 -118.5t-51.5 -175.5l-100 -516h-295zM181 -158h282l-236 -306h-194z" />
+<glyph unicode="&#x158;" d="M420 1852h170l149 -162l229 162h181l-244 -264h-348zM294 1493h410q234 0 345 -88.5t111 -273.5q0 -90 -25 -164t-73.5 -129t-118.5 -89t-160 -44q30 -5 53.5 -15.5t41.5 -30t32.5 -49.5t28.5 -73l164 -537h-301l-106 376l-8 27q-29 96 -65.5 141.5t-92.5 45.5h-117 l-115 -590h-295zM585 838q136 0 205 64.5t69 177.5q0 86 -43.5 125.5t-140.5 39.5h-133l-80 -407h123z" />
+<glyph unicode="&#x159;" d="M475 1673h174l153 -227l238 227h190l-331 -376h-242zM348 1120h264l-6 -174q64 99 163 150t215 51q63 0 118 -15t100 -42l-53 -275q-50 44 -108.5 64t-136.5 20q-81 0 -143 -21.5t-108 -67.5t-77.5 -118.5t-51.5 -175.5l-100 -516h-295z" />
+<glyph unicode="&#x15a;" d="M887 1853h281l-320 -264h-207zM469 -29q-113 0 -227 26t-238 79l59 305q97 -81 202.5 -123.5t214.5 -42.5q66 0 118.5 15.5t89 43.5t56.5 67.5t20 88.5q0 65 -35 110t-104 74l-119 50q-94 39 -155 75.5t-97 77t-50 87.5t-14 108q0 115 42.5 209t119.5 160.5t184.5 102.5 t238.5 36q97 0 195 -20t189 -62l-57 -285q-34 31 -75 54.5t-86.5 39.5t-93 23.5t-94.5 7.5q-78 0 -131.5 -19.5t-86 -48t-46.5 -61.5t-14 -61q0 -49 42.5 -92t141.5 -86l7 -3l116 -51q73 -32 126 -70.5t87.5 -86t51 -104t16.5 -125.5q0 -112 -42 -204t-119 -157.5 t-187 -101.5t-246 -36z" />
+<glyph unicode="&#x15b;" d="M881 1673h321l-442 -376h-197zM495 -29q-100 0 -202.5 17.5t-202.5 52.5l51 256q87 -57 180.5 -86t190.5 -29q109 0 170 37t61 111q0 18 -6 33.5t-26 31.5q-23 18 -62.5 33.5t-99.5 32.5l-88 24q-236 65 -236 284q0 85 35 155t100 119.5t158.5 76.5t210.5 27 q88 0 180 -15.5t185 -46.5l-50 -254q-77 55 -165 81t-171 26q-101 0 -155.5 -34.5t-54.5 -93.5q0 -46 37 -73q9 -7 25.5 -15t38 -16.5t47.5 -17t54 -16.5l74 -21q124 -35 185 -104.5t61 -187.5q0 -91 -35 -163t-102 -122t-165 -76.5t-223 -26.5z" />
+<glyph unicode="&#x15c;" d="M673 1852h309l172 -264h-178l-168 161l-229 -161h-178zM2 76l59 305q202 -166 413 -166q110 0 180 50t87 138q4 15 4 41q0 104 -121 156l-135 55q-114 49 -181 96q-66 46 -96.5 101t-30.5 128q0 39 11 105q27 136 105 233q78 99 197 150.5t269 51.5q210 0 393 -93 l-56 -288q-81 67 -173.5 102t-188.5 35q-105 0 -170.5 -43t-81.5 -122q-4 -20 -4 -37q0 -37 23 -64t60 -46.5t99 -45.5l117 -48q141 -57 207.5 -140.5t66.5 -204.5q0 -51 -12 -110q-43 -220 -198.5 -332t-415.5 -112q-244 0 -427 105z" />
+<glyph unicode="&#x15d;" d="M672 1596h241l198 -299h-178l-170 147l-227 -147h-178zM884 75q67 51 101.5 122.5t34.5 161.5q0 116 -59.5 186t-186.5 106l-74 21q-79 23 -116 39q-44 18 -65 39.5t-21 59.5q0 59 55.5 93.5t151.5 34.5q181 0 339 -107l50 254q-43 15 -93.5 27.5t-91.5 19.5 q-88 15 -184 15q-111 0 -204.5 -26.5t-160.5 -75.5q-66 -49 -100.5 -120t-34.5 -158q0 -106 60 -178t176 -104l88 -24q123 -35 163 -66q31 -24 31 -69q0 -69 -61 -106.5t-172 -37.5q-92 0 -188 30q-49 15 -91.5 35t-89.5 50l-51 -256q109 -37 204.5 -53.5t206.5 -16.5 q120 0 217.5 26.5t165.5 77.5z" />
+<glyph unicode="&#x15e;" d="M549 1222q-37 -29 -55.5 -65.5t-18.5 -69.5q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-61 -52 -142.5 -85.5t-181.5 -45.5q12 -18 21.5 -35.5t16.5 -35.5q18 -47 18 -91 q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-42 5 -62.5 11t-36.5 9l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 11 -11.5 27t-16.5 35q-98 3 -195 25q-60 14 -118 33.5t-121 45.5 l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5 t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41z" />
+<glyph unicode="&#x15f;" d="M553 903q-55 -35 -55 -93q0 -46 37 -73q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-58 -44 -135 -68.5t-168 -32.5q23 -36 36 -68q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5 q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-42 5 -62.5 11t-36.5 9l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 77q0 26 -13 61q-5 12 -12 27.5t-17 34.5q-38 2 -75.5 6t-68.5 9q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5 t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5 l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26z" />
+<glyph unicode="&#x160;" d="M457 1853h170l149 -162l229 162h181l-244 -264h-348zM469 -29q-58 0 -113.5 6.5t-112.5 19.5q-60 14 -118 33.5t-121 45.5l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50 q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41q-37 -29 -55.5 -65.5t-18.5 -69.5 q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-78 -66 -187.5 -101.5t-246.5 -35.5z" />
+<glyph unicode="&#x161;" d="M424 1673h174l153 -227l238 227h190l-331 -376h-242zM501 -29q-53 0 -108 4.5t-100 12.5q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5 l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26q-55 -35 -55 -93q0 -46 37 -73 q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-70 -53 -168 -78.5t-215 -25.5z" />
+<glyph unicode="&#x162;" d="M1288 1493l-51 -258h-379l-240 -1235h-54q37 -50 54.5 -95t17.5 -91q0 -48 -19.5 -88t-56.5 -68q-39 -28 -93.5 -43.5t-120.5 -15.5q-96 0 -195 26l28 156q90 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 27 -13 61.5t-44 89.5h-99l239 1235h-383l49 258h1059z" />
+<glyph unicode="&#x163;" d="M633 325l-2 -25q0 -45 30.5 -62.5t108.5 -17.5h225l-43 -225h-200q33 -48 49 -90.5t16 -86.5q0 -48 -19.5 -88t-56.5 -68q-39 -28 -93.5 -43.5t-120.5 -15.5q-96 0 -195 26l28 156q90 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 26 -12.5 59.5t-41.5 86.5 q-133 11 -204 63.5t-71 166.5q0 19 5 61l5 36q1 11 8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535z" />
+<glyph unicode="&#x164;" d="M459 1853h170l149 -162l229 162h181l-244 -264h-348zM563 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
+<glyph unicode="&#x165;" d="M1073 1661h321l-257 -376h-197zM707 -5q-106 0 -176 14t-113 43q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5 q0 -43 30 -61q29 -19 109 -19h225l-43 -225h-245z" />
+<glyph unicode="&#x166;" d="M428 538h-247l38 192h247l98 505h-379l50 258h1053l-50 -258h-379l-98 -505h247l-38 -192h-247l-104 -538h-295z" />
+<glyph unicode="&#x167;" d="M706 -5q-251 0 -325 80q-47 52 -47 158q0 31 4 66t12 75l35 187h-178l38 192h178l27 142h-286l44 225h286l62 318h293l-62 -318h383l-44 -225h-383l-27 -142h184l-38 -192h-184l-38 -201q-5 -28 -5 -45q0 -40 20 -62q31 -33 116 -33h225l-44 -225h-246v0z" />
+<glyph unicode="&#x168;" d="M438 1589q25 130 91 198t161 68q38 0 70 -12t67 -39l53 -41q32 -27 70 -27q37 0 63 30.5t37 88.5h137q-26 -124 -89 -195t-163 -71q-35 0 -67 11t-70 40l-49 37q-25 19 -41.5 25.5t-31.5 6.5q-38 0 -64 -30.5t-37 -89.5h-137zM492 -29q-106 0 -189 25t-140.5 74.5 t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5 q-75 -74 -178.5 -113t-238.5 -39z" />
+<glyph unicode="&#x169;" d="M892 1270q-20 0 -37 3t-34 10t-34.5 18t-37.5 26l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74.5 57t90 20q18 0 33.5 -3t32 -10t34 -19t40.5 -29l51 -39q40 -31 72 -31q38 0 63.5 34.5t34.5 94.5h139q-23 -140 -85 -212 t-161 -72zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166q-45 -91 -128 -143t-192 -52z" />
+<glyph unicode="&#x16a;" d="M519 1850h631l-36 -188h-631zM492 -29q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295l-185 -942 q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39z" />
+<glyph unicode="&#x16b;" d="M469 1508h631l-37 -188h-631zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166q-45 -91 -128 -143t-192 -52z" />
+<glyph unicode="&#x16c;" d="M494 1824q0 23 1 28h141q7 -59 51 -90t120 -31q155 0 216 121h143q-40 -128 -139.5 -196t-247.5 -68q-141 0 -213 61.5t-72 174.5zM731 10q97 37 164.5 100.5t102.5 136.5q29 61 48.5 130t40.5 174l185 942h-295l-199 -1016q-25 -124 -89 -185t-171 -61 q-85 0 -131.5 44.5t-46.5 124.5q0 33 7 71q1 1 1 6l199 1016h-295l-184 -942l-5 -23l-5 -30l-7 -54q-6 -54 -6 -90q0 -94 29 -164t89 -120q119 -99 334 -99q131 0 234 39z" />
+<glyph unicode="&#x16d;" d="M1002 1379q-99 -78 -253 -78q-145 0 -219 66t-74 198v33h144v-13q0 -61 43.5 -97t120.5 -36q82 0 140 39q29 19 49 44.5t34 62.5h143q-14 -71 -45.5 -125t-82.5 -94zM559 24q-44 -28 -89.5 -40.5t-97.5 -12.5q-128 0 -197 70.5t-69 202.5q0 39 4 64q1 1 4 29q3 26 9 54 l143 729h291l-131 -684l-4 -32l-3 -21q-3 -21 -3 -47q0 -32 7 -53.5t22 -39.5q29 -32 84 -32q44 0 78 17.5t61 53.5q59 73 84 207l122 631h291l-217 -1120h-264l4 166q-23 -46 -54 -80t-75 -62z" />
+<glyph unicode="&#x16e;" d="M1272 1493l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h251q-28 58 -28 123q0 59 22 111t60.5 90.5t90.5 61t111 22.5 t111 -22.5t90.5 -61t61 -90.5t22.5 -111q0 -65 -28 -123h256zM759 1747q-27 0 -51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10t51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5zM962 1416q-39 -40 -91 -62.5t-112 -22.5 q-69 0 -126.5 29t-96.5 79l-188 -962q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186z" />
+<glyph unicode="&#x16f;" d="M737 1254q-59 0 -111 22.5t-90.5 61t-60.5 90.5t-22 111t22 111t60.5 90.5t90.5 61t111 22.5t111 -22.5t90.5 -61t61 -90.5t22.5 -111t-22.5 -111t-61 -90.5t-90.5 -61t-111 -22.5zM737 1408q27 0 51 10.5t42 28t28.5 41.5t10.5 51t-10.5 51t-28.5 41.5t-42 28t-51 10.5 t-51 -10.5t-41.5 -28t-28 -41.5t-10.5 -51t10.5 -51t28 -42t41.5 -28t51 -10zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166 q-45 -91 -128 -143t-192 -52z" />
+<glyph unicode="&#x170;" d="M687 1852h284l-337 -264h-197zM1062 1852h284l-337 -264h-197zM492 -29q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60 t90.5 186l199 1016h295l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39z" />
+<glyph unicode="&#x171;" d="M632 1648h246l-321 -376h-164zM1028 1648h260l-346 -376h-172zM368 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166 q-45 -91 -128 -143t-192 -52z" />
+<glyph unicode="&#x172;" d="M1272 1493l-185 -942q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39h-5q-63 -68 -87 -104q-12 -19 -18 -34.5t-6 -30.5q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5 t-58.5 108.5q0 54 37.5 118.5t117.5 135.5q-151 29 -231.5 123.5t-80.5 252.5q0 39 5.5 85.5t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295z" />
+<glyph unicode="&#x173;" d="M823 -182q0 -29 24 -50.5t76 -21.5q27 0 68 7t88 24l-31 -156q-49 -11 -95 -16.5t-84 -5.5q-103 0 -161.5 37.5t-58.5 108.5q0 54 37.5 119t118.5 136h-150l33 166q-45 -91 -128 -143t-192 -52q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684 q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-2q-75 -80 -99 -117q-12 -19 -18 -34.5t-6 -30.5z" />
+<glyph unicode="&#x174;" d="M669 1859h348l151 -264h-169l-164 161l-230 -161h-180zM143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
+<glyph unicode="&#x175;" d="M698 1646h243l183 -376h-176l-152 225l-240 -225h-190zM96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
+<glyph unicode="&#x176;" d="M656 1859h348l151 -264h-169l-164 161l-230 -161h-180zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#x177;" d="M716 1647h243l183 -376h-176l-152 225l-240 -225h-190zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
+<glyph unicode="&#x178;" d="M489 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM885 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM432 588l-287 905h293l187 -649l411 649h322 l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#x179;" d="M867 1853h281l-320 -264h-207zM4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
+<glyph unicode="&#x17a;" d="M901 1647h321l-442 -376h-197zM94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
+<glyph unicode="&#x17b;" d="M698 1606q-16 0 -23 9t-4 24l37 186q4 27 32 27h215q16 0 23 -9t4 -24l-37 -186q-5 -27 -32 -27h-215zM4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
+<glyph unicode="&#x17c;" d="M667 1320q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214zM94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
+<glyph unicode="&#x17d;" d="M477 1852h170l149 -162l229 162h181l-244 -264h-348zM4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
+<glyph unicode="&#x17e;" d="M444 1648h174l153 -227l238 227h190l-331 -376h-242zM94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
+<glyph unicode="&#x192;" d="M270 -426q-28 0 -58 3t-57 9t-56 16t-57 23v234q22 -14 42.5 -24t40.5 -17q39 -13 80 -13q94 0 147 60q52 60 69 190l80 611h-252v219h281l39 293q12 91 44.5 161.5t81.5 118.5q51 49 117 73.5t144 24.5q28 0 59 -3t57 -9q23 -5 54 -16t57 -23v-231q-23 14 -44 23t-38 15 q-39 13 -79 13q-93 0 -144 -60q-27 -32 -44.5 -79.5t-25.5 -110.5l-24 -190h260v-219h-289l-94 -713q-11 -85 -42.5 -157t-83.5 -123q-101 -99 -265 -99z" />
+<glyph unicode="&#x1a0;" d="M1388 1555q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -114 -80.5 -176t-143.5 -62q-19 0 -37 3q4 -28 5.5 -57.5t1.5 -61.5q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5 t74 160q82 144 203 217.5t286 73.5q136 0 230.5 -51t146.5 -156l5 -3q32 -19 58 -19q35 0 66 25.5t43 82.5q4 18 6 39.5t2 39.5q0 34 -8 77h156zM758 630q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5 q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148z" />
+<glyph unicode="&#x1a1;" d="M1294 1167q0 -55 -3.5 -101.5t-11.5 -88.5q-20 -97 -65 -156.5t-112 -76.5q2 -19 3 -38.5t1 -40.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26 q146 0 248.5 -59.5t153.5 -180.5q25 10 45.5 35t29.5 67q4 18 6 39.5t2 39.5q0 34 -8 77h156zM518 207q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x1a4;" d="M376 1245q-33 0 -47.5 -10.5t-22.5 -34.5q-6 -19 -18 -82l-9 -48h-175l25 130q18 92 62.5 159.5t107.5 101.5q59 32 125 32h405q502 0 502 -350q0 -54 -12 -117q-89 -467 -671 -467h-110l-109 -559h-295zM707 807q99 0 160 21.5t95 68.5q35 48 50 129q8 43 8 76 q0 76 -53.5 109.5t-174.5 33.5h-121l-85 -438h121z" />
+<glyph unicode="&#x1af;" d="M1437 1555q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -114 -80.5 -176t-143.5 -62q-35 0 -69 12l-115 -588q-17 -86 -34.5 -151.5t-38.5 -116.5t-46.5 -89.5t-58.5 -70.5q-75 -74 -178.5 -113t-238.5 -39q-106 0 -189 25t-140.5 74.5t-87.5 121.5t-30 167q0 39 5.5 85.5 t17.5 106.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40.5t-1.5 -31.5q0 -79 46 -123.5t136 -44.5q100 0 165.5 60t90.5 186l199 1016h295l-39 -201q4 -1 12 -1q35 0 66 25.5t43 82.5q4 18 6 39.5t2 39.5q0 34 -8 77h156z" />
+<glyph unicode="&#x1b0;" d="M1336 1167q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -114 -80.5 -176t-143.5 -62q-35 0 -65 10l-145 -749h-264l4 166q-45 -91 -128 -143t-192 -52q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31 q80 0 138 67.5t86 210.5l122 631h291l-42 -217h9q35 0 66 25.5t43 82.5q4 18 6 39.5t2 39.5q0 34 -8 77h156z" />
+<glyph unicode="&#x1e6;" d="M505 1853h170l149 -162l229 162h181l-244 -264h-348zM610 -29q-121 0 -215.5 36.5t-159.5 107.5t-99 176t-34 242q0 102 18.5 208t53 205.5t83.5 189t110 158.5q99 112 228 169t280 57q84 0 161.5 -18t155.5 -54l-66 -328q-51 67 -120 102t-149 35q-70 0 -134.5 -28 t-118.5 -88q-44 -48 -76.5 -111.5t-58.5 -138.5q-15 -43 -27 -89.5t-20.5 -93t-13.5 -91t-5 -84.5q0 -146 63.5 -224t178.5 -78q75 0 125 33l57 291h-206l49 248h460l-139 -709q-70 -60 -168 -91.5t-213 -31.5z" />
+<glyph unicode="&#x1e7;" d="M414 1677h174l153 -227l238 227h190l-331 -376h-242zM389 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5 q0 64 11.5 134.5t32 139t49.5 132t64 114.5q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l64 182h264l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM516 246q60 0 112 36.5t91 97.5t61.5 140t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36 t-91 -96.5t-61.5 -139.5t-22.5 -166q0 -115 39.5 -170t109.5 -55z" />
+<glyph unicode="&#x1fe;" d="M862 1853h281l-320 -264h-207zM-141 51l219 244q-5 21 -8 39.5t-5 37t-3 38.5t-1 43q0 100 13 206.5t37 208.5t58 194.5t75 164.5q81 143 203 218t284 75q210 0 332 -131l154 170l139 -115l-205 -227q10 -57 15 -105t5 -94q0 -30 -2 -65.5t-6 -72.5t-8.5 -73.5 t-10.5 -69.5q-25 -146 -67 -267t-90 -205q-87 -153 -207.5 -223.5t-275.5 -70.5q-113 0 -199 36t-145 110l-160 -180zM852 1153q-18 52 -55.5 79.5t-90.5 27.5q-63 0 -111.5 -38.5t-84.5 -107.5q-40 -77 -72.5 -200.5t-58.5 -284.5zM526 233q60 0 111.5 37t91.5 116 q76 151 129 503l-483 -535q36 -121 151 -121z" />
+<glyph unicode="&#x1ff;" d="M887 1675h321l-442 -376h-197zM-82 2l211 207q-21 49 -31 100t-10 124q0 157 43.5 289t122.5 226.5t190 147.5t246 53q180 0 311 -100l193 186l117 -121l-207 -201q11 -27 18.5 -53t12.5 -53.5t7.5 -57.5t2.5 -65q0 -158 -43.5 -289t-123 -225t-191.5 -146.5t-249 -52.5 q-186 0 -305 101l-198 -189zM801 856q-49 55 -128 55q-120 0 -195.5 -117t-94.5 -341zM562 207q60 0 109.5 31t86.5 90t60.5 145t31.5 197l-416 -404q47 -59 128 -59z" />
+<glyph unicode="&#x218;" d="M469 -29q-113 0 -227 26t-238 79l59 305q97 -81 202.5 -123.5t214.5 -42.5q66 0 118.5 15.5t89 43.5t56.5 67.5t20 88.5q0 65 -35 110t-104 74l-119 50q-94 39 -155 75.5t-97 77t-50 87.5t-14 108q0 115 42.5 209t119.5 160.5t184.5 102.5t238.5 36q97 0 195 -20t189 -62 l-57 -285q-34 31 -75 54.5t-86.5 39.5t-93 23.5t-94.5 7.5q-78 0 -131.5 -19.5t-86 -48t-46.5 -61.5t-14 -61q0 -49 42.5 -92t141.5 -86l7 -3l116 -51q73 -32 126 -70.5t87.5 -86t51 -104t16.5 -125.5q0 -112 -42 -204t-119 -157.5t-187 -101.5t-246 -36zM284 -198h282 l-236 -306h-194z" />
+<glyph unicode="&#x219;" d="M495 -29q-100 0 -202.5 17.5t-202.5 52.5l51 256q87 -57 180.5 -86t190.5 -29q109 0 170 37t61 111q0 18 -6 33.5t-26 31.5q-23 18 -62.5 33.5t-99.5 32.5l-88 24q-236 65 -236 284q0 85 35 155t100 119.5t158.5 76.5t210.5 27q88 0 180 -15.5t185 -46.5l-50 -254 q-77 55 -165 81t-171 26q-101 0 -155.5 -34.5t-54.5 -93.5q0 -46 37 -73q9 -7 25.5 -15t38 -16.5t47.5 -17t54 -16.5l74 -21q124 -35 185 -104.5t61 -187.5q0 -91 -35 -163t-102 -122t-165 -76.5t-223 -26.5zM284 -198h282l-236 -306h-194z" />
+<glyph unicode="&#x21a;" d="M1288 1493l-51 -258h-379l-240 -1235h-54q36 -48 54 -93.5t18 -92.5q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 27 -13 61.5t-44 89.5h-99l239 1235h-383l49 258h1059z" />
+<glyph unicode="&#x21b;" d="M639 360q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5q0 -43 30 -61q29 -19 109 -19h225l-43 -225h-200q32 -46 48.5 -89t16.5 -88q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5 t36.5 76.5q0 26 -12.5 59.5t-41.5 86.5q-65 5 -111 18.5t-78 34.5q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535v0z" />
+<glyph unicode="&#x2b9;" d="M613 1638h221l-206 -498h-176z" />
+<glyph unicode="&#x2bb;" d="M473 1174l270 382h215l-172 -382l-53 -271h-313z" />
+<glyph unicode="&#x2bc;" d="M542 1285l52 271h313l-52 -271l-271 -382h-215z" />
+<glyph unicode="&#x2bd;" d="M704 1218q-231 1 -231 188q0 18 2 37t6 40l48 246h274l-48 -246h-121q-2 -10 -3 -19t-1 -17q0 -86 102 -86l-28 -143v0z" />
+<glyph unicode="&#x2be;" d="M632 1140q30 0 58.5 12.5t50.5 34t35.5 49.5t13.5 59q0 45 -30 76t-78 31l30 154q52 0 95 -17.5t74 -48.5t48.5 -73t17.5 -91q0 -14 -1 -27.5t-4 -27.5q-12 -59 -44.5 -111t-78.5 -90.5t-102 -61t-115 -22.5z" />
+<glyph unicode="&#x2bf;" d="M771 986q-118 0 -186 83q-25 32 -36.5 69t-11.5 77q0 69 32 137t95 121q101 83 218 83l-30 -154q-30 0 -58.5 -13t-51 -34.5t-36 -49.5t-13.5 -59q0 -45 30 -75.5t78 -30.5l-30 -154v0z" />
+<glyph unicode="&#x2c0;" d="M437 1080h54q126 0 187 64q26 27 39 56t13 57q0 33 -18 60q-45 64 -148 64q-94 0 -191 -48l32 167q24 9 46.5 16.5t50 12.5t64 7.5t89.5 2.5q62 0 113.5 -21.5t88 -57.5t57 -83.5t20.5 -100.5q0 -22 -5 -50q-12 -65 -41.5 -113.5t-70.5 -82.5t-92 -54.5t-108 -29.5 l-54 -278h-206z" />
+<glyph unicode="&#x2c1;" d="M554 946q-45 7 -83.5 23.5t-66.5 43t-43.5 63.5t-15.5 85q0 15 2 31.5t5 33.5q12 60 49.5 116.5t91.5 100t120 70t135 26.5q52 0 88 -2.5t61.5 -7.5t45 -12.5t39.5 -16.5l-32 -167q-83 48 -173 48q-103 0 -173 -64q-26 -23 -38.5 -50.5t-12.5 -56.5q0 -35 18 -66 q36 -64 161 -64h54l-80 -412h-206z" />
+<glyph unicode="&#x2c6;" d="M668 1638h243l183 -376h-176l-152 225l-240 -225h-190z" />
+<glyph unicode="&#x2c7;" d="M414 1638h174l153 -227l238 227h190l-331 -376h-242z" />
+<glyph unicode="&#x2c8;" d="M576 1554h189l-108 -555h-189z" />
+<glyph unicode="&#x2c9;" d="M459 1556h631l-37 -188h-631z" />
+<glyph unicode="&#x2cc;" d="M576 390h189l-108 -555h-189z" />
+<glyph unicode="&#x2cd;" d="M114 -218h631l-37 -188h-631z" />
+<glyph unicode="&#x2ce;" d="M469 -208h284l209 -376h-198z" />
+<glyph unicode="&#x2cf;" d="M789 -208h321l-442 -376h-197z" />
+<glyph unicode="&#x2d0;" d="M520 1120h411l-280 -380zM582 380l131 -380h-411z" />
+<glyph unicode="&#x2d1;" d="M448 1120h411l-280 -380z" />
+<glyph unicode="&#x2d8;" d="M739 1309q-146 0 -219 66q-35 31 -54.5 78.5t-19.5 119.5v33h144v-13q0 -61 44 -97q43 -36 120 -36q81 0 140 39q29 19 49 44.5t34 62.5h143q-14 -71 -45.5 -125t-82.5 -94q-99 -78 -253 -78z" />
+<glyph unicode="&#x2d9;" d="M627 1339q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h212q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214v0z" />
+<glyph unicode="&#x2da;" d="M747 1249q-57 0 -108.5 21t-93.5 63q-41 42 -61.5 92.5t-20.5 107.5q0 64 23.5 116t59.5 88q37 37 88.5 59.5t113.5 22.5q57 0 108.5 -20.5t92.5 -61.5q35 -35 59 -86.5t24 -115.5q0 -63 -23.5 -115.5t-58.5 -87.5q-41 -41 -93.5 -62t-109.5 -21zM749 1403q53 0 92 39 q38 38 38 92t-39 93q-40 38 -92 38q-55 0 -93 -38q-39 -39 -39 -93q0 -55 38 -93q17 -17 41.5 -27.5t53.5 -10.5z" />
+<glyph unicode="&#x2db;" d="M471 -401q-47 0 -87 9t-70 29q-28 18 -43 44.5t-15 62.5q0 57 39 122q40 66 117 134h141q-75 -80 -99 -117q-11 -17 -17.5 -33.5t-6.5 -31.5q0 -31 26 -52q12 -10 29.5 -15t43.5 -5q14 0 33 1.5t39 5.5q39 7 85 24l-31 -156q-9 -2 -22 -4.5t-27 -5t-26.5 -4.5t-19.5 -3 q-20 -2 -45 -3.5t-44 -1.5z" />
+<glyph unicode="&#x2dc;" d="M880 1307q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -1.5 1.5t-3.5 2.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2 q20 0 35.5 9t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72z" />
+<glyph unicode="&#x2dd;" d="M612 1638h246l-321 -376h-164zM1008 1638h260l-346 -376h-172z" />
+<glyph unicode="&#x300;" horiz-adv-x="0" d="M-862 1638h284l209 -376h-198z" />
+<glyph unicode="&#x301;" horiz-adv-x="0" d="M-346 1638h321l-442 -376h-197z" />
+<glyph unicode="&#x302;" horiz-adv-x="0" d="M-565 1638h243l183 -376h-176l-152 225l-240 -225h-190z" />
+<glyph unicode="&#x303;" horiz-adv-x="0" d="M-354 1307q-35 0 -67.5 13t-72.5 44l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74 57t89.5 20q17 0 32.5 -3t32 -9.5t35 -18.5t41.5 -30l51 -39q39 -31 70 -31q38 0 64 33t36 96h139q-47 -284 -249 -284z" />
+<glyph unicode="&#x304;" horiz-adv-x="0" d="M-774 1556h631l-37 -188h-631z" />
+<glyph unicode="&#x305;" horiz-adv-x="0" d="M-1233 1547h1233v-190h-1233v190z" />
+<glyph unicode="&#x306;" horiz-adv-x="0" d="M-492 1309q-295 0 -295 264v33h144v-13q0 -61 44 -97t120 -36q81 0 139.5 38.5t83.5 107.5h143q-29 -143 -127.5 -220t-251.5 -77z" />
+<glyph unicode="&#x307;" horiz-adv-x="0" d="M-590 1585h272l-47 -246h-274z" />
+<glyph unicode="&#x308;" horiz-adv-x="0" d="M-770 1585h237l-49 -246h-235zM-375 1585h238l-49 -246h-236z" />
+<glyph unicode="&#x309;" horiz-adv-x="0" d="M-709 1376q68 17 120 62q15 11 26.5 35.5t11.5 49.5q0 20 -10 36.5t-34 23.5q-19 5 -35 7t-30 1h-49q-47 0 -122 -31l30 152q112 26 207 26q223 0 219 -145l-2 -20t-3 -21q-18 -91 -145 -206l-17 -84h-189z" />
+<glyph unicode="&#x30a;" horiz-adv-x="0" d="M-485 1249q-60 0 -112 22.5t-90.5 61t-60.5 90.5t-22 111t22 111t60.5 90.5t90.5 61t112 22.5q59 0 110.5 -22.5t90 -61t61 -90.5t22.5 -111t-22.5 -111t-61 -90.5t-90 -61t-110.5 -22.5zM-485 1403q27 0 51 10.5t41.5 28t28 41.5t10.5 51t-10.5 51t-28.5 41.5t-41.5 28 t-50.5 10.5t-51 -10.5t-42 -28t-28.5 -41.5t-10.5 -51t10.5 -51t28.5 -42t42 -28t51 -10z" />
+<glyph unicode="&#x30b;" horiz-adv-x="0" d="M-621 1638h246l-321 -376h-164zM-225 1638h260l-346 -376h-172z" />
+<glyph unicode="&#x30c;" horiz-adv-x="0" d="M-819 1638h174l153 -227l238 227h190l-331 -376h-242z" />
+<glyph unicode="&#x30d;" horiz-adv-x="0" d="M-668 1706h190l-86 -444h-190z" />
+<glyph unicode="&#x30e;" horiz-adv-x="0" d="M-953 1706h190l-86 -444h-190zM-383 1706h190l-86 -444h-190z" />
+<glyph unicode="&#x30f;" horiz-adv-x="0" d="M-918 1638h231l142 -376h-174zM-541 1638h217l121 -376h-163z" />
+<glyph unicode="&#x310;" horiz-adv-x="0" d="M-77 1822q-29 -143 -127.5 -220t-251.5 -77q-295 0 -295 264v33h144v-13q0 -56 37 -90l16 82h272l-16 -83q54 37 78 104h143z" />
+<glyph unicode="&#x311;" horiz-adv-x="0" d="M-843 1309q34 145 135 221t258 76q78 0 132.5 -18t88 -49.5t48.5 -74t15 -91.5q0 -30 -6 -64h-143q1 3 1 8q0 64 -41 100t-125 36t-140.5 -37.5t-81.5 -106.5h-141v0z" />
+<glyph unicode="&#x312;" horiz-adv-x="0" d="M-562 1209h194l-148 -306h-282z" />
+<glyph unicode="&#x313;" horiz-adv-x="0" d="M-775 1361q120 0 144 122h-121l48 246h274l-48 -246q-51 -264 -325 -265z" />
+<glyph unicode="&#x314;" horiz-adv-x="0" d="M-529 1218q-231 1 -231 188q0 18 2 37t6 40l48 246h274l-48 -246h-121q-2 -10 -3 -19t-1 -17q0 -86 102 -86l-28 -143v0z" />
+<glyph unicode="&#x315;" horiz-adv-x="0" d="M-531 1638h321l-257 -376h-197z" />
+<glyph unicode="&#x316;" horiz-adv-x="0" d="M-727 -217h284l209 -376h-198z" />
+<glyph unicode="&#x317;" horiz-adv-x="0" d="M-481 -217h321l-442 -376h-197z" />
+<glyph unicode="&#x318;" horiz-adv-x="0" d="M-740 -624h-183l37 189h183l35 183h190l-108 -555h-189z" />
+<glyph unicode="&#x319;" horiz-adv-x="0" d="M-758 -252h190l-36 -183h183l-37 -189h-182l-36 -183h-189z" />
+<glyph unicode="&#x31a;" horiz-adv-x="0" d="M-511 1713h-366l37 189h555l-108 -555h-189z" />
+<glyph unicode="&#x31b;" horiz-adv-x="0" d="M-636 739q-54 0 -102 27t-99 84l27 141q60 -50 91 -69t58 -19q39 0 69.5 29.5t39.5 78.5q4 20 6 39t2 39q0 35 -8 78h156q0 -55 -3.5 -101.5t-11.5 -88.5q-23 -115 -80.5 -176.5t-144.5 -61.5z" />
+<glyph unicode="&#x31c;" horiz-adv-x="0" d="M-750 -502q-47 0 -81 15.5t-56 40t-33 55.5t-11 63q0 60 24.5 108.5t62.5 83.5t85.5 54t94.5 19l-26 -132q-18 0 -37 -8t-34.5 -21t-25.5 -30.5t-10 -35.5q0 -80 73 -80l-26 -132v0z" />
+<glyph unicode="&#x31d;" horiz-adv-x="0" d="M-946 -435h183l35 183h190l-36 -183h183l-37 -189h-555z" />
+<glyph unicode="&#x31e;" horiz-adv-x="0" d="M-867 -624h-183l37 189h555l-37 -189h-183l-35 -183h-190z" />
+<glyph unicode="&#x31f;" horiz-adv-x="0" d="M-825 -624h-183l37 189h183l35 183h190l-36 -183h183l-37 -189h-182l-36 -183h-189z" />
+<glyph unicode="&#x320;" horiz-adv-x="0" d="M-876 -252h555l-36 -189h-555z" />
+<glyph unicode="&#x321;" horiz-adv-x="0" d="M-688 -199h39q49 0 86 12.5t64.5 41t46.5 75t32 113.5l25 125h291l-25 -125q-24 -125 -63 -213.5t-97 -145t-137.5 -82.5t-184.5 -26h-121z" />
+<glyph unicode="&#x322;" horiz-adv-x="0" d="M-733 -426q-166 0 -243 67t-77 217q0 39 5 84.5t15 98.5l25 125h291l-25 -125q-12 -62 -12 -106q0 -75 35.5 -105.5t111.5 -30.5h39l-44 -225h-121v0z" />
+<glyph unicode="&#x323;" horiz-adv-x="0" d="M-941 -216h275l-48 -246h-275z" />
+<glyph unicode="&#x324;" horiz-adv-x="0" d="M-1119 -216h236l-48 -246h-236zM-724 -216h236l-48 -246h-236z" />
+<glyph unicode="&#x325;" horiz-adv-x="0" d="M-859 -502q-47 0 -81 15.5t-56 40t-33 55.5t-11 63q0 60 24.5 108.5t62.5 83.5t85.5 54t93.5 19t80.5 -15.5t57 -40t33.5 -55.5t11 -62q0 -60 -24.5 -109t-63 -84t-86 -54t-93.5 -19zM-834 -370q18 0 37 8t34.5 21.5t25.5 30t10 34.5q0 81 -73 81q-18 0 -37 -8t-34.5 -21 t-25 -30.5t-9.5 -35.5q0 -80 72 -80z" />
+<glyph unicode="&#x326;" horiz-adv-x="0" d="M-949 -198h282l-236 -306h-194z" />
+<glyph unicode="&#x327;" horiz-adv-x="0" d="M-880 -401q-104 0 -202 26l28 156q87 -35 160 -35q69 0 105 26.5t36 77.5q0 26 -13 60.5t-44 89.5h141q72 -96 72 -184q0 -50 -20 -90t-56.5 -68t-89 -43.5t-117.5 -15.5z" />
+<glyph unicode="&#x328;" horiz-adv-x="0" d="M-806 -401q-99 0 -157 38.5t-58 104.5q0 120 156 258h141q-75 -80 -99 -117q-24 -38 -24 -63q0 -33 26 -53.5t68 -20.5q73 0 162 31l-31 -156q-49 -11 -95 -16.5t-89 -5.5z" />
+<glyph unicode="&#x329;" horiz-adv-x="0" d="M-668 -218h189l-86 -444h-189z" />
+<glyph unicode="&#x32a;" horiz-adv-x="0" d="M-895 -218h630l-73 -374h-188l36 186h-254l-36 -186h-188z" />
+<glyph unicode="&#x32b;" horiz-adv-x="0" d="M-813 -489q-190 0 -190 206q0 21 1.5 43.5t6.5 47.5h143q0 -6 -0.5 -12t-0.5 -12q0 -113 69 -120q79 0 120 128q4 9 5 16h143q0 -6 -0.5 -12t-0.5 -12q0 -113 69 -120q71 0 113 109q7 17 12 35h143q-46 -207 -180 -272q-51 -25 -117 -25q-107 0 -155 70q-74 -70 -181 -70 z" />
+<glyph unicode="&#x32c;" horiz-adv-x="0" d="M-1159 -109h178l154 -227l243 227h178l-329 -376h-241z" />
+<glyph unicode="&#x32d;" horiz-adv-x="0" d="M-903 -109h241l183 -376h-178l-156 225l-241 -225h-178z" />
+<glyph unicode="&#x32e;" horiz-adv-x="0" d="M-840 -491q-295 0 -295 264v33h144v-13q0 -61 44 -97t120 -36q81 0 139.5 38.5t83.5 107.5h143q-29 -143 -127.5 -220t-251.5 -77z" />
+<glyph unicode="&#x32f;" horiz-adv-x="0" d="M-1192 -489q34 145 135 221t259 76q78 0 132 -18t87 -49.5t48 -74t15 -91.5q0 -15 -1.5 -31t-3.5 -33h-141v7q0 64 -41 100.5t-125 36.5t-140 -37t-81 -107h-143v0z" />
+<glyph unicode="&#x330;" horiz-adv-x="0" d="M-702 -487q-35 0 -67.5 13t-72.5 44l-49 37q-2 2 -5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q9 65 31.5 117.5t55 89.5t74 57t89.5 20q17 0 32.5 -3t32 -9.5t35 -18.5t41.5 -30l51 -39q39 -31 70 -31q38 0 64 33t36 96h139q-47 -284 -249 -284z" />
+<glyph unicode="&#x331;" horiz-adv-x="0" d="M-1119 -218h631l-37 -188h-631z" />
+<glyph unicode="&#x332;" horiz-adv-x="0" d="M-1233 -293h1233v-190h-1233v190z" />
+<glyph unicode="&#x333;" horiz-adv-x="0" d="M-1233 -18h1233v-190h-1233v190zM-1233 -293h1233v-190h-1233v190z" />
+<glyph unicode="&#x334;" horiz-adv-x="0" d="M-419 463q-90 0 -193 51q-10 5 -17.5 8.5t-12.5 5.5q-36 17 -65 28t-55 18t-50.5 9.5t-49.5 2.5q-78 0 -153.5 -29t-162.5 -92l44 229q90 61 168 88t161 27q27 0 51 -2.5t49.5 -8.5t54 -16.5t62.5 -25.5l30 -15q106 -55 199 -55q70 0 144 30.5t161 94.5l-45 -233 q-87 -60 -164 -87.5t-156 -27.5z" />
+<glyph unicode="&#x335;" horiz-adv-x="0" d="M-1022 632h774l-38 -194h-774z" />
+<glyph unicode="&#x336;" horiz-adv-x="0" d="M-1213 632h1233l-38 -194h-1233z" />
+<glyph unicode="&#x337;" horiz-adv-x="0" d="M-1315 2l1277 1233l116 -121l-1277 -1231z" />
+<glyph unicode="&#x338;" horiz-adv-x="0" d="M-1373 51l1358 1508l139 -115l-1358 -1507z" />
+<glyph unicode="&#x339;" horiz-adv-x="0" d="M-944 -370q18 0 37 8t34.5 21.5t25.5 30t10 34.5q0 81 -73 81l26 132q46 0 80.5 -15.5t57 -40t33.5 -55.5t11 -62q0 -60 -24.5 -109t-63 -84t-86.5 -54t-94 -19z" />
+<glyph unicode="&#x33a;" horiz-adv-x="0" d="M-895 -146h188l-36 -186h254l36 186h188l-73 -374h-630z" />
+<glyph unicode="&#x33b;" horiz-adv-x="0" d="M-847 -218h573l-112 -573h-573zM-523 -620l44 231h-231l-44 -231h231z" />
+<glyph unicode="&#x33c;" horiz-adv-x="0" d="M-1053 -489q46 207 180 272q51 25 117 25q107 0 155 -70q74 70 181 70q190 0 190 -206q0 -21 -1.5 -43.5t-6.5 -47.5h-143q0 6 0.5 12t0.5 12q0 112 -69 120q-79 0 -120 -128q-4 -9 -5 -16h-143q0 6 0.5 12t0.5 12q0 112 -69 120q-71 0 -113 -109q-7 -17 -12 -35h-143v0z " />
+<glyph unicode="&#x33d;" horiz-adv-x="0" d="M-905 1326l154 129l-104 129l160 134l105 -129l154 129l108 -134l-154 -129l104 -129l-160 -134l-105 129l-154 -129z" />
+<glyph unicode="&#x33e;" horiz-adv-x="0" d="M-788 1340h8q57 0 92 15t40 42q2 11 -3.5 25.5t-16.5 29.5l-34 46q-38 51 -38 89q0 11 3 23q16 82 97.5 123.5t218.5 41.5l-24 -122h-8q-121 0 -132 -55q-3 -20 21 -54q2 -2 2.5 -4t1.5 -4l29 -41q20 -30 29 -49.5t9 -38.5q0 -12 -3 -25q-16 -82 -97.5 -123t-218.5 -41z " />
+<glyph unicode="&#x33f;" horiz-adv-x="0" d="M0 1272v-190h-1233v190h1233z" />
+<glyph unicode="&#x358;" horiz-adv-x="0" d="M28 1585h272l-47 -246h-274z" />
+<glyph unicode="&#x361;" horiz-adv-x="0" d="M-1502 1506q3 58 43 102t106.5 76t155 54t189 36t208.5 20.5t213 8.5h45q81 0 169 -6t172.5 -18.5t161 -32.5t134.5 -48.5t92 -65.5t34 -83q0 -22 -7 -43h-143q0 71 -191 107q-194 37 -496 37q-303 0 -512 -37q-205 -36 -231 -107h-143v0z" />
+<glyph unicode="&#x384;" d="M887 1638h321l-442 -376h-197z" />
+<glyph unicode="&#x385;" d="M959 1946h321l-442 -376h-197zM379 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM874 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176z" />
+<glyph unicode="&#x386;" d="M262 1518h321l-442 -376h-197zM614 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM769 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x388;" d="M-79 1502h321l-442 -376h-197zM297 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x389;" d="M-82 1502h321l-442 -376h-197zM283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
+<glyph unicode="&#x38a;" d="M-43 1502h321l-442 -376h-197zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x38c;" d="M100 1502h321l-442 -376h-197zM489 -56q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM520 206 q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
+<glyph unicode="&#x38e;" d="M427 534q15 76 22 150.5t7 144.5q0 72 -7 135t-19.5 112.5t-31 82.5t-40.5 44q-72 35 -149 35q-40 0 -82 -9l51 264q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q264 -48 260 -433q180 377 428 433q38 8 67 8q61 0 104 -31q69 -50 69 -135q0 -83 -68 -202 q-20 -34 -51 -50.5t-64 -16.5q-25 0 -48 9t-40 26.5t-26.5 43.5t-6.5 61q-119 -136 -193.5 -301.5t-113.5 -367.5l-104 -534h-295zM-216 1502h321l-442 -376h-197z" />
+<glyph unicode="&#x38f;" d="M164 1502h321l-442 -376h-197zM4 211h238q-71 78 -104.5 167.5t-33.5 203.5q0 90 21 200q30 154 90 279t144 213.5t189 137t224 48.5q97 0 172.5 -32.5t127.5 -93t79.5 -148t27.5 -197.5q0 -96 -21 -207q-18 -95 -47 -176t-70.5 -151t-96.5 -130t-125 -114h238l-41 -211 h-471l52 268q51 42 90.5 91.5t70 108t52.5 128t39 152.5q24 120 24 209q0 70 -15 121q-17 59 -51.5 87.5t-84.5 28.5q-53 0 -99 -31t-85 -88.5t-69 -140.5t-50 -186q-21 -108 -21 -196q0 -181 90 -284l-52 -268h-473z" />
+<glyph unicode="&#x390;" d="M951 1936h321l-442 -376h-197zM382 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM857 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM765 -8 q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78z" />
+<glyph unicode="&#x391;" d="M590 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM745 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x392;" d="M277 1495h482q212 0 319 -82t107 -250q0 -80 -24.5 -145t-71 -113t-114.5 -78.5t-155 -40.5q68 -6 122 -28t92 -60.5t58.5 -93.5t20.5 -127q0 -50 -9.5 -99t-28.5 -94t-46 -85.5t-61 -71.5q-36 -33 -82.5 -57t-106.5 -39.5t-137 -23t-174 -7.5h-481zM646 913 q121 0 182.5 54.5t61.5 151.5q0 75 -40.5 108t-135.5 33h-197l-68 -347h197zM515 236q151 0 227 64.5t76 195.5q0 43 -10 77t-34.5 57.5t-66.5 35.5t-106 12h-197l-86 -442h197z" />
+<glyph unicode="&#x393;" d="M342 1493h930l-50 -260h-635l-240 -1233h-295z" />
+<glyph unicode="&#x394;" d="M582 1493h361l113 -1493h-1167zM751 260l-41 963l-417 -963h458z" />
+<glyph unicode="&#x395;" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x396;" d="M14 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
+<glyph unicode="&#x397;" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
+<glyph unicode="&#x398;" d="M-21 452q0 104 24 228q46 237 149 402t255.5 250.5t346.5 85.5q238 0 362.5 -128t124.5 -374q0 -106 -26 -241q-70 -357 -257.5 -528t-478.5 -171q-248 0 -374 119.5t-126 356.5zM934 686q23 113 23 209q0 288 -244 288q-176 0 -279 -135.5t-147 -361.5 q-20 -102 -20 -181q0 -133 62 -203.5t200 -70.5q119 0 198.5 53t128.5 152.5t78 249.5zM421 809h427l-45 -230h-427z" />
+<glyph unicode="&#x399;" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x39a;" d="M266 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
+<glyph unicode="&#x39b;" d="M590 1493h361l113 -1493h-295l-51 1223l-526 -1223h-295z" />
+<glyph unicode="&#x39c;" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
+<glyph unicode="&#x39d;" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
+<glyph unicode="&#x39e;" d="M283 1493h959l-50 -260h-959zM412 924h480l-51 -260h-479zM43 260h959l-50 -260h-959z" />
+<glyph unicode="&#x39f;" d="M497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5 q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
+<glyph unicode="&#x3a0;" d="M292 1493h959l-290 -1493h-295l240 1233h-369l-240 -1233h-295z" />
+<glyph unicode="&#x3a1;" d="M317 1493h420q236 0 359.5 -91t123.5 -279q0 -54 -10 -109t-27 -106t-41.5 -96.5t-52.5 -80.5q-78 -96 -203 -134t-292 -38h-164l-109 -559h-295zM622 807q147 0 219 67.5t72 194.5q0 48 -11.5 81.5t-38.5 54.5t-71 30.5t-108 9.5h-121l-84 -438h143z" />
+<glyph unicode="&#x3a3;" d="M3 260l496 487l-306 487l50 259h1046l-50 -260h-706l307 -486l-497 -487h706l-50 -260h-1046z" />
+<glyph unicode="&#x3a4;" d="M575 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
+<glyph unicode="&#x3a5;" d="M432 534q15 76 22 150.5t7 144.5q0 72 -7 135t-19.5 112.5t-31 82.5t-40.5 44q-72 35 -149 35q-40 0 -82 -9l51 264q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q264 -48 260 -433q180 377 428 433q38 8 67 8q61 0 104 -31q69 -50 69 -135q0 -83 -68 -202 q-20 -34 -51 -50.5t-64 -16.5q-25 0 -48 9t-40 26.5t-26.5 43.5t-6.5 61q-119 -136 -193.5 -301.5t-113.5 -367.5l-104 -534h-295z" />
+<glyph unicode="&#x3a6;" d="M255 260h119l14 70q-65 9 -121.5 31t-97.5 58.5t-64.5 89.5t-23.5 124q0 25 2.5 55.5t7.5 56.5q17 99 61.5 172.5t107 124.5t137.5 80t153 39l14 72h-120l51 260h533l-50 -260h-119l-14 -72q65 -11 121 -32t97.5 -57.5t65 -90t23.5 -128.5q0 -23 -2.5 -51t-8.5 -58 q-20 -103 -64.5 -176.5t-106 -123t-135.5 -77t-152 -37.5l-14 -70h120l-51 -260h-533zM511 965l-39 -27q-60 -42 -91 -105.5t-31 -131.5q0 -41 11.5 -78.5t35.5 -69.5q11 -16 29 -27zM721 526q14 8 23 14t17 13q30 27 53.5 58t39.5 64.5t24.5 67t8.5 65.5q0 39 -12.5 73 t-38.5 57l-30 27z" />
+<glyph unicode="&#x3a7;" d="M471 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
+<glyph unicode="&#x3a8;" d="M255 260h119l26 132q-139 44 -210 176q-31 57 -47 129t-16 168q0 65 7.5 132.5t23.5 148.5l67 347h295l-67 -347q-14 -69 -21 -129.5t-7 -119.5q0 -45 4 -77.5t12 -61.5q5 -20 10 -32.5t10 -20.5l153 788h295l-153 -788q9 9 19.5 23.5t20.5 29.5q45 70 80 165t60 223 l67 347h295l-67 -347q-38 -195 -103.5 -338.5t-153.5 -239.5q-62 -67 -133 -111t-146 -65l-26 -132h120l-51 -260h-533z" />
+<glyph unicode="&#x3a9;" d="M90 211h238q-121 110 -174 245q-54 135 -54 325q0 157 36 283t103 214q65 85 159.5 133.5t216.5 48.5q121 0 216 -47.5t162 -135.5q68 -88 104 -212.5t36 -282.5q0 -191 -54 -326q-53 -135 -174 -245h238v-211h-471v268q81 80 120 196q39 117 39 287q0 210 -56 327 q-56 116 -159 116q-101 0 -158 -116q-57 -117 -57 -327q0 -170 40 -287q17 -51 46 -101.5t76 -94.5v-268h-473v211z" />
+<glyph unicode="&#x3aa;" d="M473 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM869 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x3ab;" d="M483 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM879 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM432 534q15 76 22 150.5t7 144.5q0 72 -7 135 t-19.5 112.5t-31 82.5t-40.5 44q-72 35 -149 35q-40 0 -82 -9l51 264q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q264 -48 260 -433q180 377 428 433q38 8 67 8q61 0 104 -31q69 -50 69 -135q0 -83 -68 -202q-20 -34 -51 -50.5t-64 -16.5q-25 0 -48 9t-40 26.5t-26.5 43.5 t-6.5 61q-119 -136 -193.5 -301.5t-113.5 -367.5l-104 -534h-295z" />
+<glyph unicode="&#x3ac;" d="M887 1673h321l-442 -376h-197zM953 0q-160 0 -224 84q-15 21 -17 29l-31.5 -31.5t-25.5 -24.5t-24.5 -20t-28.5 -19q-45 -27 -91 -36t-100 -9q-56 0 -106 8t-92 26t-75 46.5t-56 69.5q-25 45 -36 104t-11 140q0 93 14 181t41.5 167t68.5 147.5t95 121.5q45 44 94 75 t99 50.5t100 28t97 8.5q97 0 168.5 -34t108.5 -100l57 108h282l-305 -577l-3 -153q-3 -165 65 -165h82l-44 -225h-102zM701 589l1 163q1 80 -29 116.5t-79 36.5q-39 0 -82 -22.5t-81 -69.5q-30 -37 -53 -85t-38.5 -100t-23.5 -105.5t-8 -101.5q0 -45 6 -73.5t16 -48.5 q19 -39 50 -59t63 -20q29 0 56 16.5t44 48.5z" />
+<glyph unicode="&#x3ad;" d="M887 1666h321l-442 -376h-197zM568 -22q-244 0 -359 68.5t-115 199.5q0 15 1.5 32t5.5 34q25 121 116 195t253 97q-115 17 -175.5 68t-60.5 131q0 12 1.5 23.5t3.5 23.5q13 66 54.5 119.5t109 91.5t160 58.5t208.5 20.5q85 0 180 -12q2 -1 5 -1t5 -1q15 -2 51 -10.5 t94 -23.5l-42 -215l-24 8q-45 15 -81 25t-68 16.5t-64.5 9t-70.5 2.5q-56 0 -98 -7t-81 -27l-25 -15q-42 -28 -48 -69q-1 -5 -1.5 -10.5t-0.5 -9.5q0 -16 12 -30.5t32 -26.5q55 -33 155 -33h151l-43 -223h-151q-61 0 -112 -12.5t-85 -34.5l-20 -13q-57 -40 -69 -106 q-3 -12 -3 -21q0 -21 13.5 -41t36.5 -36q35 -25 80.5 -33.5t105.5 -8.5q54 0 104.5 5t102.5 14q21 4 31 6t19 4q11 3 42 13.5t82 29.5l-43 -219q-5 -1 -9 -2t-9 -3q-50 -14 -95.5 -24t-88.5 -16t-85.5 -8.5t-87.5 -2.5z" />
+<glyph unicode="&#x3ae;" d="M877 1673h321l-442 -376h-197zM812 682q12 61 12 104q0 63 -27 93t-81 30q-88 0 -146 -71.5t-82 -196.5l-125 -641h-291l218 1120h262l-4 -168q50 94 134.5 144.5t193.5 50.5q124 0 188.5 -66.5t64.5 -200.5q0 -35 -4.5 -73t-12.5 -80l-224 -1153h-291z" />
+<glyph unicode="&#x3af;" d="M857 1648h321l-442 -376h-197zM762 -8q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78z" />
+<glyph unicode="&#x3b0;" d="M959 1946h321l-442 -376h-197zM379 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM874 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM484 0 q-88 0 -148 16t-97 46t-53.5 73t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5t-9.5 59.5t-18.5 53t-30.5 49h291 q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
+<glyph unicode="&#x3b1;" d="M953 0q-160 0 -224 84q-15 21 -17 29l-31.5 -31.5t-25.5 -24.5t-24.5 -20t-28.5 -19q-45 -27 -91 -36t-100 -9q-56 0 -106 8t-92 26t-75 46.5t-56 69.5q-25 45 -36 104t-11 140q0 93 14 181t41.5 167t68.5 147.5t95 121.5q45 44 94 75t99 50.5t100 28t97 8.5 q97 0 168.5 -34t108.5 -100l57 108h282l-305 -577l-3 -153q-3 -165 65 -165h82l-44 -225h-102zM701 589l1 163q1 80 -29 116.5t-79 36.5q-39 0 -82 -22.5t-81 -69.5q-30 -37 -53 -85t-38.5 -100t-23.5 -105.5t-8 -101.5q0 -45 6 -73.5t16 -48.5q19 -39 50 -59t63 -20 q29 0 56 16.5t44 48.5z" />
+<glyph unicode="&#x3b2;" d="M258 1113q45 229 175 342.5t341 113.5q111 0 188 -29.5t124.5 -78.5t69 -112.5t21.5 -132.5q0 -60 -14.5 -119.5t-41 -113t-63 -98.5t-80.5 -75q45 -16 77 -41t52 -56.5t29 -69t9 -77.5q0 -26 -3 -56t-8 -57q-18 -104 -58 -189.5t-102 -147t-145 -97.5t-186 -40 q-8 0 -12 -0.5t-18 -0.5q-71 0 -142.5 21t-124.5 70l-97 -495h-291zM410 402q18 -40 44 -71t56 -52.5t62.5 -33t63.5 -11.5q32 0 62.5 12.5t57 38.5t46 67t30.5 97q6 31 6 58q0 151 -214 151h-16t-16 -1l43 223q55 -2 99.5 24t76 68t48.5 93t17 100q0 34 -8.5 64t-26 53 t-44.5 36.5t-63 13.5q-71 0 -117.5 -55t-69.5 -170z" />
+<glyph unicode="&#x3b3;" d="M356 0l-87 752q-5 38 -16 62.5t-29 41.5q-12 11 -27.5 20t-29.5 9h-42l46 235h80q54 0 104.5 -21t91 -60.5t67.5 -97.5t35 -133l41 -394l381 706h297l-620 -1120l-83 -426h-292z" />
+<glyph unicode="&#x3b4;" d="M491 -29q-100 0 -178 29.5t-132 84.5t-82.5 134t-28.5 178q0 39 4.5 79t12.5 83q28 142 85 245t139 184q15 15 30 28.5t29 24.5t25.5 17.5t18.5 6.5q-56 26 -82 70.5t-26 97.5q0 34 10.5 69.5t32 69.5t54 65t75.5 55q66 37 158.5 57t210.5 20q45 0 89.5 -3t86.5 -9 q2 -1 5 -1t5 -1q15 -2 51 -10.5t94 -23.5l-42 -215q-8 3 -11 4l-4.5 1.5t-3 0.5t-5.5 2q-45 14 -78.5 24t-64.5 16.5t-62.5 9.5t-73.5 3q-61 0 -103.5 -7t-80.5 -27l-24 -15q-51 -32 -51 -88q0 -29 13.5 -45t34.5 -24t46.5 -10.5t50.5 -3.5q109 -5 188.5 -36t131.5 -85 t77 -130t25 -172q0 -42 -4.5 -82t-12.5 -84q-27 -136 -85 -245t-140.5 -185t-186.5 -116.5t-221 -40.5zM538 209q52 0 98.5 23.5t84.5 68.5t66 110t44 148q7 35 10.5 67t3.5 62q0 106 -44 163.5t-128 57.5q-53 0 -99 -24t-84 -69t-66 -110t-44 -147q-7 -35 -10.5 -67 t-3.5 -62q0 -106 44 -163.5t128 -57.5z" />
+<glyph unicode="&#x3b5;" d="M568 -22q-244 0 -359 68.5t-115 199.5q0 15 1.5 32t5.5 34q25 121 116 195t253 97q-115 17 -175.5 68t-60.5 131q0 12 1.5 23.5t3.5 23.5q13 66 54.5 119.5t109 91.5t160 58.5t208.5 20.5q85 0 180 -12q2 -1 5 -1t5 -1q15 -2 51 -10.5t94 -23.5l-42 -215l-24 8 q-45 15 -81 25t-68 16.5t-64.5 9t-70.5 2.5q-56 0 -98 -7t-81 -27l-25 -15q-42 -28 -48 -69q-1 -5 -1.5 -10.5t-0.5 -9.5q0 -16 12 -30.5t32 -26.5q55 -33 155 -33h151l-43 -223h-151q-61 0 -112 -12.5t-85 -34.5l-20 -13q-57 -40 -69 -106q-3 -12 -3 -21q0 -21 13.5 -41 t36.5 -36q35 -25 80.5 -33.5t105.5 -8.5q54 0 104.5 5t102.5 14q21 4 31 6t19 4q11 3 42 13.5t82 29.5l-43 -219q-5 -1 -9 -2t-9 -3q-50 -14 -95.5 -24t-88.5 -16t-85.5 -8.5t-87.5 -2.5z" />
+<glyph unicode="&#x3b6;" d="M623 -201q35 0 59.5 8t40.5 21.5t25 31t12 36.5t-0.5 37.5t-15.5 33.5t-32 24t-50 9q-149 0 -252.5 39.5t-164.5 107.5t-81 160t-3 196.5t69.5 216.5t136.5 221t198 209t254 181h-471l44 225h876l-44 -225q-684 -378 -765 -797q-58 -297 247 -309q69 -3 123 -25t88 -63.5 t45.5 -101.5t-3.5 -139q-15 -74 -49.5 -133.5t-84.5 -101.5t-112.5 -64.5t-133.5 -22.5z" />
+<glyph unicode="&#x3b7;" d="M809 682q12 61 12 104q0 63 -27 93t-81 30q-88 0 -146 -71.5t-82 -196.5l-125 -641h-291l218 1120h262l-4 -168q50 94 134.5 144.5t193.5 50.5q124 0 188.5 -66.5t64.5 -200.5q0 -35 -4.5 -73t-12.5 -80l-224 -1153h-291z" />
+<glyph unicode="&#x3b8;" d="M502 -24q-95 0 -168.5 36t-123.5 102.5t-76 161.5t-26 214q0 60 7 134.5t21 151.5q33 178 97.5 325t153.5 252.5t197.5 163.5t228.5 58q93 0 166 -36t123 -102.5t76 -162t26 -215.5q0 -64 -7 -136.5t-21 -146.5q-15 -82 -39.5 -163t-57 -156.5t-72.5 -143t-86 -122.5 q-92 -110 -199 -162.5t-220 -52.5zM901 887q6 48 9.5 93t3.5 87q0 61 -8 112t-26 87.5t-46 56.5t-68 20q-53 0 -98.5 -35t-84.5 -96t-71 -144.5t-57 -180.5h446zM546 209q54 0 100.5 36t85.5 98t70 144t55 175h-446q-6 -48 -9.5 -92.5t-3.5 -86.5q0 -60 8 -110.5t25.5 -86.5 t45.5 -56.5t69 -20.5z" />
+<glyph unicode="&#x3b9;" d="M772 -8q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78v0z" />
+<glyph unicode="&#x3ba;" d="M283 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
+<glyph unicode="&#x3bb;" d="M609 1069l-18 119q-6 37 -15.5 62.5t-28.5 41t-49.5 22.5t-77.5 7h-112l45 235h150q94 0 160.5 -20.5t111.5 -62.5t71.5 -105t38.5 -148l178 -1220h-297l-96 655l-383 -655h-297z" />
+<glyph unicode="&#x3bc;" d="M246 1120h289l-132 -680q-12 -56 -12 -94q0 -63 34 -98t95 -35q161 0 207 227l131 680h289l-150 -776q-2 -17 -4 -30t-3 -21q-3 -17 -3 -25q0 -55 41 -55q12 0 26.5 6t35.5 19l-43 -222q-46 -23 -86 -34t-76 -11q-72 0 -110 37t-50 121q-107 -158 -246 -158 q-58 0 -96 23.5t-53 71.5l-97 -494h-288z" />
+<glyph unicode="&#x3bd;" d="M156 1120h306l62 -825q76 66 136 124.5t103.5 114.5t71 110t39.5 111q3 14 4 27.5t1 30.5q0 16 -1 28t-4 30q-10 64 -32 132t-53 117h307q21 -35 36.5 -77t26 -85.5t16 -86.5t5.5 -82q0 -41 -6 -74q-11 -62 -44 -128.5t-80.5 -132.5t-105 -130.5t-118 -123t-119.5 -110 t-108 -90.5h-356z" />
+<glyph unicode="&#x3be;" d="M613 -201q35 0 59.5 8t40.5 21.5t25 31t12 36.5q2 10 2 21q0 37 -22.5 57.5t-77.5 25.5q-24 3 -73 6t-108 12.5t-121 28.5t-113 54t-83.5 88.5t-32.5 132.5q0 76 33 150.5t93 136.5t143.5 107t185.5 63q-71 10 -122 32t-84 52.5t-48.5 67.5t-15.5 77q0 47 19.5 95 t56 91.5t88 79t115.5 57.5h-247l44 225h876l-44 -225q-152 0 -265.5 -22t-188.5 -57.5t-112.5 -80t-37.5 -89.5q0 -38 26 -73.5t78 -63t129.5 -45t181.5 -20.5l-43 -223q-252 -4 -394 -65.5t-163 -181.5q-3 -17 -3 -32q0 -32 12.5 -55.5t34 -40t49 -26.5t58 -16t61.5 -9.5 t59 -5.5q18 -1 44 -5t55.5 -13t58.5 -25t52 -43t37.5 -66t14.5 -93q0 -39 -9 -84q-15 -74 -49.5 -133.5t-84.5 -101.5t-112.5 -64.5t-133.5 -22.5z" />
+<glyph unicode="&#x3bf;" d="M533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5 t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x3c0;" d="M1016 -39q-43 0 -76 4.5t-62 12.5q-33 10 -53 22.5t-34 26.5t-25 32t-19 43q-14 45 -14 131v658h-274v-891h-285v891h-162v209h1168v-209h-162v-529q0 -37 2 -63.5t5 -45.5t7.5 -31.5t10.5 -19.5q24 -32 94 -32h23.5t18.5 1l33 3v-188q-41 -13 -93 -19q-25 -3 -51.5 -4.5 t-51.5 -1.5z" />
+<glyph unicode="&#x3c1;" d="M139 552q28 147 80 258t129 186t180 113t234 38q107 0 182 -24.5t122.5 -72t69.5 -116t22 -155.5q0 -97 -24 -221q-28 -144 -78 -253.5t-117.5 -183.5t-150 -112t-174.5 -38q-101 0 -161.5 46t-97.5 141l-114 -584h-292zM573 215q48 0 88.5 23.5t75.5 68.5q27 35 48.5 81 t37 97.5t23.5 105.5t8 105q0 38 -4.5 67t-13.5 52q-18 46 -51 69t-78 23q-47 0 -90.5 -24.5t-79.5 -69.5t-63.5 -109t-41.5 -143q-7 -38 -10 -74.5t-3 -62.5q0 -97 39.5 -153t114.5 -56z" />
+<glyph unicode="&#x3c2;" d="M600 -201q66 0 97.5 28t39.5 69q2 10 2 22q0 35 -23 56.5t-77 25.5q-26 2 -72.5 3t-101 10t-111.5 30.5t-103 63t-75 107.5t-29 166q0 43 5.5 90t13.5 89q27 138 86 247.5t145.5 185.5t197 116.5t239.5 40.5q91 0 169.5 -20.5t153.5 -65.5l-52 -268q-54 55 -124.5 84.5 t-152.5 29.5q-145 0 -239 -92t-126 -258q-12 -63 -12 -112q0 -74 23 -117t58 -65t75 -29.5t75 -10.5q21 -2 48.5 -6t56.5 -13t57 -25.5t50.5 -43.5t36 -66t13.5 -94q0 -17 -1.5 -37.5t-6.5 -43.5q-14 -73 -48.5 -132.5t-84.5 -101.5t-113 -65t-134 -23z" />
+<glyph unicode="&#x3c3;" d="M469 -29q-101 0 -180 29.5t-133 84.5t-82.5 134t-28.5 178q0 39 4.5 79t12.5 83q25 129 79 233t134 177t184 112t230 39h552l-44 -225h-211q60 -51 87.5 -121.5t27.5 -152.5q0 -63 -16 -129.5t-45 -131t-71 -123.5t-94 -107q-171 -159 -406 -159zM510 209q62 0 114 33.5 t90 85t62 113.5t31 118q2 12 3 29t1 28q0 57 -34.5 110.5t-99.5 101.5q-23 17 -49 33t-46 26q-40 -11 -68 -30t-50 -45q-28 -33 -50.5 -78t-38.5 -95.5t-24.5 -103.5t-8.5 -102q0 -38 5.5 -71.5t17.5 -59.5q21 -47 58 -70t87 -23z" />
+<glyph unicode="&#x3c4;" d="M767 0q-101 0 -171.5 11t-115.5 38t-65.5 71t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 516h-335l44 225h962l-44 -225h-335l-103 -530q-2 -12 -3.5 -23t-1.5 -22q0 -51 33 -73t103 -22h58l-44 -225h-78v0z" />
+<glyph unicode="&#x3c5;" d="M494 0q-88 0 -148 16t-97 46t-53.5 73t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5t-9.5 59.5t-18.5 53t-30.5 49h291 q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
+<glyph unicode="&#x3c6;" d="M369 0q-89 14 -149 52t-97.5 93t-53.5 123t-16 143q0 88 19 176.5t50 166.5t70.5 141t79.5 101q25 24 61 47.5t75.5 41.5t78 28t69.5 7l-44 -229q-11 0 -35 -24.5t-48 -60.5q-19 -29 -37 -66.5t-31.5 -80.5t-21.5 -89t-8 -92q0 -66 20 -123.5t68 -98.5l76 392 q48 246 157.5 364t264.5 118q79 0 138 -30t93 -93q26 -48 38 -114t12 -143q0 -74 -12 -155t-38 -160t-67.5 -152t-101.5 -132t-139 -99t-179 -52l-82 -426h-292zM711 256q152 97 205 339q9 42 14.5 84t5.5 77q0 12 -1 25t-3 25q-11 58 -43 58q-60 0 -102 -216z" />
+<glyph unicode="&#x3c7;" d="M435 348l-105 404q-20 75 -51 104q-13 12 -29 20.5t-28 8.5h-79l45 235h117q51 0 96 -15.5t84 -51.5t70.5 -96t54.5 -149l38 -148l314 460h297l-529 -775l104 -403q8 -32 20 -59.5t31 -44.5q13 -12 29 -20.5t28 -8.5h80l-45 -235h-118q-50 0 -95.5 15t-84 51t-70.5 96 t-55 150l-38 146l-313 -458h-297z" />
+<glyph unicode="&#x3c8;" d="M359 0q-309 51 -309 391q0 89 21 197l103 532h292l-102 -525q-21 -110 -21 -188q0 -132 59 -182l174 895h292l-174 -895q129 100 182 370l102 525h292l-103 -532q-104 -537 -516 -588l-83 -426h-292z" />
+<glyph unicode="&#x3c9;" d="M287 -29q-66 0 -117 22.5t-80 60.5q-51 67 -51 217q0 93 18 203.5t50.5 224t78.5 222.5t103 199h262q-42 -86 -72.5 -160.5t-53.5 -142t-40 -131t-30 -129.5q-9 -42 -16 -84t-12.5 -80t-8.5 -69.5t-3 -52.5q0 -22 3 -34q6 -26 39 -28q71 0 163 456h252 q-23 -124 -34.5 -213.5t-11.5 -146.5q0 -96 33 -96q31 1 49 28q15 23 36 88t39.5 159t31.5 209.5t13 239.5q0 94 -9 187h262q26 -113 26 -256q0 -79 -8 -161t-22.5 -161t-36 -153.5t-48.5 -138t-59.5 -114t-68.5 -82.5q-44 -38 -104.5 -60.5t-124.5 -22.5q-175 0 -189 179 q-84 -179 -259 -179z" />
+<glyph unicode="&#x3ca;" d="M412 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM807 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM765 -8q-101 0 -171.5 11t-115.5 38t-65.5 71 t-20.5 110q0 32 4.5 68.5t12.5 80.5l100 524h-201l44 225h493l-147 -763q-2 -12 -3.5 -22.5t-1.5 -21.5q0 -51 33 -73.5t103 -22.5h58l-44 -225h-78z" />
+<glyph unicode="&#x3cb;" d="M429 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM824 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM484 0q-88 0 -148 16t-97 46t-53.5 73 t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5t-9.5 59.5t-18.5 53t-30.5 49h291q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102 t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
+<glyph unicode="&#x3cc;" d="M887 1675h321l-442 -376h-197zM533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207 q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x3cd;" d="M867 1648h321l-442 -376h-197zM484 0q-88 0 -148 16t-97 46t-53.5 73t-16.5 97q0 29 4.5 66t12.5 81l100 516h-165l44 225h457l-147 -755q-2 -11 -3 -21.5t-1 -18.5q0 -53 29.5 -76.5t75.5 -23.5q94 0 167 101t118 314q11 53 18.5 111.5t7.5 136.5q0 39 -2.5 70.5 t-9.5 59.5t-18.5 53t-30.5 49h291q26 -45 40 -119.5t14 -165.5q0 -55 -5 -102t-14 -95q-28 -150 -82 -268.5t-136 -200.5t-194 -125.5t-256 -43.5z" />
+<glyph unicode="&#x3ce;" d="M882 1648h321l-442 -376h-197zM282 -29q-66 0 -117 22.5t-80 60.5q-51 67 -51 217q0 93 18 203.5t50.5 224t78.5 222.5t103 199h262q-42 -86 -72.5 -160.5t-53.5 -142t-40 -131t-30 -129.5q-9 -42 -16 -84t-12.5 -80t-8.5 -69.5t-3 -52.5q0 -22 3 -34q6 -26 39 -28 q71 0 163 456h252q-23 -124 -34.5 -213.5t-11.5 -146.5q0 -96 33 -96q31 1 49 28q15 23 36 88t39.5 159t31.5 209.5t13 239.5q0 94 -9 187h262q26 -113 26 -256q0 -79 -8 -161t-22.5 -161t-36 -153.5t-48.5 -138t-59.5 -114t-68.5 -82.5q-44 -38 -104.5 -60.5t-124.5 -22.5 q-175 0 -189 179q-84 -179 -259 -179z" />
+<glyph unicode="&#x3f4;" d="M465 -29q-203 0 -304.5 119t-101.5 355q0 132 33 300q74 383 245 579t430 196q204 0 305.5 -118.5t101.5 -354.5q0 -133 -33 -302q-75 -384 -244.5 -579t-431.5 -195zM860 911q3 33 5 63.5t2 59.5q0 49 -7 90t-24.5 70t-47 45t-73.5 16q-57 0 -99 -25.5t-74.5 -71 t-57.5 -109t-47 -138.5h423zM517 236q57 0 101.5 27t79.5 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90q0 -109 34.5 -165t116.5 -56z" />
+<glyph unicode="&#x400;" d="M537 1854h264l143 -264h-178zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x401;" d="M504 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM900 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM317 1493h932l-51 -260h-635l-63 -322h575 l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x402;" d="M369 -199h136q51 0 88.5 14t64 43.5t44.5 75t30 109.5l90 461q12 60 12 103q0 45 -13 70q-16 37 -109 49l-41 3q-70 0 -148 -29l-37 -16q-22 -12 -33 -26q-30 -35 -50.5 -84.5t-32.5 -110.5l-90 -463h-291l262 1347h-190l40 209h964l-40 -209h-483l-100 -514q26 50 74 77 l53 31q33 20 84 30.5t129 17.5q31 3 60 3q59 0 113 -12.5t98 -40.5q23 -14 34 -27t19 -26q36 -63 36 -162q0 -33 -4 -71.5t-12 -80.5l-103 -529q-24 -126 -63 -214.5t-97 -145t-136.5 -82t-182.5 -25.5h-218z" />
+<glyph unicode="&#x403;" d="M929 1854h281l-320 -264h-207zM342 1493h930l-50 -260h-635l-240 -1233h-295z" />
+<glyph unicode="&#x404;" d="M591 -29q-99 0 -174.5 20.5t-130 57t-90.5 85.5t-57.5 105t-30.5 117t-9 122q0 57 6.5 126.5t20.5 141.5q34 184 102.5 328t167 243t225 151t276.5 52q174 0 296 -72l-64 -328q-122 135 -272 135q-76 0 -138 -31t-110.5 -83.5t-84 -121.5t-58.5 -144h572l-50 -260h-572 q-3 -30 -3 -60q0 -57 11 -114t39.5 -102.5t76 -74t121.5 -28.5q149 0 322 135l-64 -328q-78 -36 -157.5 -54t-170.5 -18z" />
+<glyph unicode="&#x405;" d="M469 -29q-113 0 -227 26t-238 79l59 305q97 -81 202.5 -123.5t214.5 -42.5q66 0 118.5 15.5t89 43.5t56.5 67.5t20 88.5q0 65 -35 110t-104 74l-119 50q-94 39 -155 75.5t-97 77t-50 87.5t-14 108q0 115 42.5 209t119.5 160.5t184.5 102.5t238.5 36q97 0 195 -20t189 -62 l-57 -285q-34 31 -75 54.5t-86.5 39.5t-93 23.5t-94.5 7.5q-78 0 -131.5 -19.5t-86 -48t-46.5 -61.5t-14 -61q0 -49 42.5 -92t141.5 -86l7 -3l116 -51q73 -32 126 -70.5t87.5 -86t51 -104t16.5 -125.5q0 -112 -42 -204t-119 -157.5t-187 -101.5t-246 -36z" />
+<glyph unicode="&#x406;" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x407;" d="M484 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM880 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x408;" d="M427 -29q-221 0 -429 107l65 344q82 -100 169.5 -145.5t195.5 -45.5q53 0 93.5 12t70.5 40.5t50.5 76t34.5 119.5l148 754h-361l52 260h655l-199 -1014q-17 -84 -34.5 -146t-39 -108.5t-48 -80.5t-60.5 -62q-68 -55 -157.5 -83t-205.5 -28z" />
+<glyph unicode="&#x409;" d="M-101 250h10q53 0 91 13t66 40.5t47.5 69t36.5 98.5q9 32 20.5 79t27 117t35 167.5t45.5 230.5l83 428h616l-113 -580h22q55 0 109.5 -25.5t97.5 -75t70 -121.5t27 -165q0 -7 -1 -29.5t-7.5 -55t-19.5 -73.5t-37 -85t-61 -88.5t-90 -84.5q-33 -24 -68.5 -44.5t-70.5 -35 t-67.5 -22.5t-58.5 -8h-262l240 1233h-136l-35 -176q-32 -159 -59.5 -303t-61.5 -266t-78 -218t-107 -157q-118 -113 -322 -113h-37zM741 236q17 0 44.5 11t56 33.5t52.5 56.5t35 79q3 13 6 30.5t5 35.5t3.5 34t1.5 26q0 29 -12 54t-29.5 43t-38 28.5t-38.5 10.5h-8 l-86 -442h8z" />
+<glyph unicode="&#x40a;" d="M211 1493h240l-110 -569h322l110 569h240l-113 -580h22q55 0 109.5 -24.5t97.5 -69t70 -106t27 -135.5q0 -24 -3 -56t-10 -66q-16 -79 -46.5 -144t-71 -115.5t-86.5 -87.5t-93 -61.5t-91 -36t-80 -11.5h-262l129 664h-322l-129 -664h-240zM777 236q18 0 47 11.5t58.5 38 t54.5 68.5t36 103q4 20 6 44t2 38q0 34 -13 60.5t-31.5 43.5t-39 26t-34.5 9h-8l-86 -442h8z" />
+<glyph unicode="&#x40b;" d="M278 1347h-190l40 209h964l-40 -209h-483l-100 -514q26 50 74 77l53 31q33 20 84 30.5t129 17.5q31 3 60 3q59 0 113 -12.5t98 -40.5q23 -14 34 -27t19 -26q36 -63 36 -162q0 -33 -4 -71.5t-12 -80.5l-111 -572h-291l98 504q12 60 12 103q0 45 -13 70q-16 37 -109 49 l-41 3q-70 0 -148 -29l-37 -16q-22 -12 -33 -26q-30 -35 -50.5 -84.5t-32.5 -110.5l-90 -463h-291z" />
+<glyph unicode="&#x40c;" d="M877 1854h281l-320 -264h-207zM265 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
+<glyph unicode="&#x40d;" d="M501 1854h264l143 -264h-178zM267 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
+<glyph unicode="&#x40e;" d="M779 1590q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM113 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190 q-92 -153 -188 -228t-213 -75h-200z" />
+<glyph unicode="&#x40f;" d="M353 0h-350l290 1493h295l-239 -1233h369l239 1233h295l-290 -1493h-350l-62 -322h-259z" />
+<glyph unicode="&#x410;" d="M582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x411;" d="M298 1493h930l-50 -260h-635l-58 -299h110q258 0 381 -77.5t123 -244.5q0 -30 -3.5 -68.5t-10.5 -76.5q-22 -123 -73 -211t-134 -145t-198.5 -84t-266.5 -27h-405zM472 248q71 0 123.5 11.5t89 37.5t58.5 67.5t34 102.5q4 20 6 37t2 34q0 81 -54.5 114.5t-173.5 33.5 h-121l-85 -438h121z" />
+<glyph unicode="&#x412;" d="M280 1495h482q212 0 319 -82t107 -250q0 -80 -24.5 -145t-71 -113t-114.5 -78.5t-155 -40.5q68 -6 122 -28t92 -60.5t58.5 -93.5t20.5 -127q0 -50 -9.5 -99t-28.5 -94t-46 -85.5t-61 -71.5q-36 -33 -82.5 -57t-106.5 -39.5t-137 -23t-174 -7.5h-481zM649 913 q121 0 182.5 54.5t61.5 151.5q0 75 -40.5 108t-135.5 33h-197l-68 -347h197zM518 236q151 0 227 64.5t76 195.5q0 43 -10 77t-34.5 57.5t-66.5 35.5t-106 12h-197l-86 -442h197z" />
+<glyph unicode="&#x413;" d="M342 1493h930l-50 -260h-635l-240 -1233h-295z" />
+<glyph unicode="&#x414;" d="M-54 260h100q12 0 26 12t27.5 31t24 43t15.5 48l213 1099h848l-239 -1233h137l-113 -582h-255l62 322h-642l-62 -322h-255zM666 260l189 973h-258l-143 -736q-13 -66 -33 -128.5t-43 -108.5h288z" />
+<glyph unicode="&#x415;" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x416;" d="M298 886l-140 607h261l121 -523l102 523h240l-102 -523l325 523h261l-376 -607l86 -886h-250l-53 537l-112 -181l-69 -356h-240l69 356l-42 181l-261 -537h-250z" />
+<glyph unicode="&#x417;" d="M442 -29q-103 0 -216.5 19t-236.5 55l54 270q94 -45 199 -69.5t201 -24.5q81 0 142 18t102.5 50.5t62 78t20.5 101.5q0 102 -64 150.5t-172 48.5h-158l52 260h157q62 0 113.5 14.5t88 41t57 62.5t20.5 78q0 70 -57.5 108t-166.5 38q-81 0 -179.5 -21t-209.5 -61l54 268 q105 32 201.5 48t177.5 16q105 0 189.5 -25.5t144 -72t91 -111.5t31.5 -145q0 -70 -24.5 -129.5t-70 -106t-111.5 -78.5t-150 -47q141 -38 203.5 -122t62.5 -214q0 -113 -42.5 -205t-121 -157t-191 -100.5t-253.5 -35.5z" />
+<glyph unicode="&#x418;" d="M267 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
+<glyph unicode="&#x419;" d="M754 1590q-137 0 -210 67t-73 193v4h143q10 -60 51 -87.5t120 -27.5q72 0 124.5 30.5t75.5 84.5h154q-40 -130 -138.5 -197t-246.5 -67zM267 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
+<glyph unicode="&#x41a;" d="M265 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
+<glyph unicode="&#x41b;" d="M-73 265h10q94 0 153 47t85 161q25 107 42.5 184.5t31.5 143t26.5 127t27.5 137.5l83 428h870l-290 -1493h-295l240 1233h-280l-35 -176q-32 -159 -59.5 -303t-61.5 -266t-78 -218t-107 -157q-118 -113 -322 -113h-92z" />
+<glyph unicode="&#x41c;" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
+<glyph unicode="&#x41d;" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
+<glyph unicode="&#x41e;" d="M497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5 q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
+<glyph unicode="&#x41f;" d="M297 1493h959l-290 -1493h-295l240 1233h-369l-240 -1233h-295z" />
+<glyph unicode="&#x420;" d="M322 1493h420q236 0 359.5 -91t123.5 -279q0 -54 -10 -109t-27 -106t-41.5 -96.5t-52.5 -80.5q-78 -96 -203 -134t-292 -38h-164l-109 -559h-295zM627 807q147 0 219 67.5t72 194.5q0 48 -11.5 81.5t-38.5 54.5t-71 30.5t-108 9.5h-121l-84 -438h143z" />
+<glyph unicode="&#x421;" d="M182 947q34 102 82.5 191t108.5 158q93 106 215.5 162.5t267.5 61.5q15 0 15 15v304q0 10 10 10h308q10 0 10 -10v-390h-2l2 -1l-64 -328q-48 66 -121 102q-73 35 -152 35q-91 0 -166.5 -47.5t-131.5 -134.5q-67 -102 -110 -255q-44 -151 -44 -284q0 -152 62.5 -228.5 t184.5 -76.5q78 0 159 34t174 106l-64 -328q-156 -72 -325 -72q-240 0 -365 137.5t-125 413.5q0 104 18.5 213t52.5 212z" />
+<glyph unicode="&#x422;" d="M573 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
+<glyph unicode="&#x423;" d="M113 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
+<glyph unicode="&#x424;" d="M375 132q-68 6 -121 30t-92 60t-66 82t-43.5 96t-23.5 102t-7 101q0 37 4 76.5t12 80.5q24 123 78 233t130 195t171 139t202 64l20 102h255l-20 -102q68 -6 120.5 -30t92 -60t66 -82t43 -96.5t24 -103t7.5 -101.5q0 -37 -4 -76.5t-12 -81.5q-24 -119 -78 -228.5 t-130.5 -195t-171.5 -140t-201 -64.5l-26 -132h-255zM570 1136q-102 -19 -174 -111.5t-104 -264.5q-8 -41 -10.5 -70t-4.5 -58q-2 -36 2 -75.5t19 -74t45 -60.5t81 -35zM679 387q61 13 107 47t78.5 81t53 102t32.5 109q4 21 8 44.5t7 46t4.5 42.5t1.5 34q0 37 -2.5 75 t-16 71.5t-43.5 59t-84 37.5z" />
+<glyph unicode="&#x425;" d="M486 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
+<glyph unicode="&#x426;" d="M789 0h-803l290 1493h295l-239 -1233h369l239 1233h295l-239 -1233h137l-113 -582h-293z" />
+<glyph unicode="&#x427;" d="M824 766q-46 -77 -136 -118t-238 -41q-86 0 -147.5 15t-101.5 47.5t-59 84t-19 124.5q0 33 4 70.5t12 78.5l103 529h291l-89 -461q-4 -21 -6 -39t-2 -36q0 -47 14 -76t37.5 -45.5t55.5 -22.5t68 -6q67 0 115 16.5t81.5 50t54.5 83.5t34 116l81 420h291l-302 -1556h-291z " />
+<glyph unicode="&#x428;" d="M234 1494h240l-240 -1234h178l240 1233h240l-240 -1234h178l240 1234h240l-290 -1493h-1076z" />
+<glyph unicode="&#x429;" d="M846 0h-902l290 1493h240l-239 -1232h178l239 1231h240l-239 -1232h178l239 1232h240l-239 -1232h66l-113 -582h-240z" />
+<glyph unicode="&#x42a;" d="M382 1284h-250l41 209h545l-113 -580h30q154 0 252 -25t154 -69t77.5 -104.5t21.5 -131.5q0 -33 -3.5 -65t-10.5 -67q-23 -116 -72 -201t-130 -140.5t-196.5 -82.5t-269.5 -27h-325zM515 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5 t-30.5 44.5q-23 20 -68 30t-127 10h-41l-86 -442h41z" />
+<glyph unicode="&#x42b;" d="M195 1493h255l-113 -580h10q132 0 220.5 -25t142 -69t76 -105.5t22.5 -133.5q0 -31 -3.5 -62.5t-10.5 -66.5q-45 -229 -201 -340t-423 -111h-265zM1093 1493h255l-290 -1493h-255zM227 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5 t-30.5 44.5q-23 20 -68 30t-127 10h-21l-86 -442h21z" />
+<glyph unicode="&#x42c;" d="M311 1493h295l-113 -580h110q154 0 252 -25t154 -69t77.5 -104.5t21.5 -131.5q0 -33 -3.5 -65t-10.5 -67q-23 -116 -72 -201t-130 -140.5t-196.5 -82.5t-269.5 -27h-405zM483 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5t-30.5 44.5 q-23 20 -68 30t-127 10h-121l-86 -442h121z" />
+<glyph unicode="&#x42d;" d="M348 -29q-88 0 -161 18t-137 54l64 328q120 -135 278 -135q271 0 385 379h-542l50 260h542q2 21 3 40.5t1 36.5q0 154 -61 228.5t-181 74.5q-81 0 -161.5 -33.5t-167.5 -101.5l64 328q148 72 327 72q100 0 175 -20.5t130 -57t91 -85t57.5 -105t30.5 -118t9 -122.5 q0 -57 -6.5 -125.5t-20.5 -140.5q-35 -185 -103.5 -329t-166.5 -243t-224 -151t-275 -52z" />
+<glyph unicode="&#x42e;" d="M674 -29q-75 0 -130.5 36t-91.5 99.5t-53.5 151t-17.5 191.5q0 97 15 202h-114l-127 -651h-240l290 1493h240l-113 -582h118q20 70 49 143t66 140.5t82 127t98.5 103.5t114.5 69.5t130 25.5q137 0 208 -102t71 -296q0 -79 -11.5 -177t-31.5 -200q-38 -187 -96 -331 t-130 -242.5t-155 -149.5t-171 -51zM723 236q25 0 56.5 34t61.5 96q20 42 39.5 96.5t36.5 115t31 125t24 126.5t15.5 119t5.5 104q0 24 -1 42t-3 31q-8 65 -25.5 97.5t-41.5 32.5q-50 0 -119 -144q-18 -38 -33.5 -77t-29 -83.5t-26 -95t-24.5 -110.5q-39 -197 -39 -313 q0 -23 1.5 -40.5t3.5 -33.5q8 -59 25.5 -90.5t41.5 -31.5z" />
+<glyph unicode="&#x42f;" d="M339 644q-36 19 -70.5 50.5t-62 72t-44.5 89.5t-17 102q0 43 11 101q22 117 71.5 199t127 134.5t183.5 76.5t241 24h476l-290 -1493h-295l115 590h-162l-414 -590h-321zM833 838l79 407h-189q-53 0 -97.5 -11t-78.5 -35.5t-57 -63t-33 -93.5q-6 -33 -6 -59 q0 -145 193 -145h189z" />
+<glyph unicode="&#x430;" d="M381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76 t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-291l25 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
+<glyph unicode="&#x431;" d="M498 -29q-117 0 -196.5 36.5t-128.5 96.5t-70.5 137t-21.5 158q0 35 3.5 70t10.5 72q4 23 8 44.5t6 35.5l15 167q5 59 13.5 118t23 117.5t36.5 115t55 110.5q45 74 100 127t117 89.5t130.5 58.5t141 35.5t149 20.5t154.5 13q19 1 31 2.5t20.5 3t17 4.5t20.5 8l69 -212 q-20 -7 -43 -11.5t-46 -6.5l-295 -24q-66 -5 -107 -16.5t-72 -28.5q-37 -20 -75 -49.5t-72 -65.5t-60.5 -75t-39.5 -77q148 102 338 102q119 0 199.5 -36.5t130 -96t71 -135.5t21.5 -155q0 -41 -4.5 -83.5t-12.5 -81.5q-26 -135 -83.5 -244t-140 -185.5t-187.5 -117.5 t-226 -41zM548 209q54 0 101.5 25t85 70.5t65 110t42.5 144.5q7 35 10.5 70t3.5 63q0 35 -7 73t-25.5 70t-51.5 53t-84 21q-54 0 -100.5 -23.5t-83.5 -65t-63.5 -96.5t-40.5 -118q-5 -21 -9 -46t-7 -51t-5 -50t-2 -42q0 -30 7 -66.5t26 -68t52 -52.5t86 -21z" />
+<glyph unicode="&#x432;" d="M253 1120h468q131 0 211.5 -15.5t127.5 -46.5q42 -28 64.5 -71t22.5 -107q0 -96 -51.5 -171t-158.5 -110q47 -14 78.5 -36.5t50 -50t26.5 -58.5t8 -63q0 -14 -1.5 -32t-5.5 -38q-30 -161 -166.5 -241t-374.5 -80h-517zM619 698q66 0 111.5 6.5t73.5 20t40 34t12 48.5 q0 26 -8.5 43t-21.5 26q-7 5 -18 9.5t-29.5 8t-47.5 5.5t-73 2h-156l-39 -203h156zM537 219q60 0 109.5 8t85.5 25.5t56 46.5t20 71q0 32 -12.5 51.5t-35.5 31.5q-51 26 -173 26h-167l-50 -260h167z" />
+<glyph unicode="&#x433;" d="M356 1120h799l-43 -219h-508l-175 -901h-291z" />
+<glyph unicode="&#x434;" d="M0 219h76q11 0 26.5 13t27.5 30q9 12 16.5 26.5t14.5 35t14 48t14 63.5l134 685h847l-175 -901h123l-99 -505h-219l56 286h-680l-56 -286h-219zM704 219l132 682h-265l-86 -442q-14 -73 -33 -132.5t-44 -107.5h296z" />
+<glyph unicode="&#x435;" d="M586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5 l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
+<glyph unicode="&#x436;" d="M294 694l-167 426h277l135 -343l67 343h240l-67 -343l269 343h277l-333 -426l119 -694h-255l-73 427l-96 -122l-59 -305h-240l59 305l-48 122l-239 -427h-255z" />
+<glyph unicode="&#x437;" d="M390 -22q-40 0 -79 2.5t-79.5 9.5t-85 20t-94.5 34l46 236q45 -24 85 -39.5t82 -24.5t90.5 -12t111.5 -3q55 0 101.5 3.5t82 16t58.5 37.5t31 67q3 15 3 27q0 31 -19.5 52t-49.5 34t-67 18.5t-71 5.5h-163l43 219h137q42 0 87 7t82.5 23t61.5 42.5t24 65.5 q0 56 -56.5 82.5t-174.5 26.5q-164 0 -326 -52l43 223q80 22 175 35t191 13q112 0 195 -18.5t138 -52.5t81.5 -80.5t26.5 -101.5q0 -14 -1.5 -29t-4.5 -29q-12 -62 -35.5 -105.5t-54.5 -74t-68.5 -50.5t-77.5 -33q37 -12 68.5 -33t54.5 -51t36 -68.5t13 -85.5 q0 -93 -51 -160.5t-138.5 -111t-204 -64.5t-247.5 -21z" />
+<glyph unicode="&#x438;" d="M261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
+<glyph unicode="&#x439;" d="M736 1270q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
+<glyph unicode="&#x43a;" d="M276 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
+<glyph unicode="&#x43b;" d="M-28 240h10q52 0 87.5 8t61 29.5t44 60.5t36.5 101q7 26 15.5 58.5t16.5 67t15.5 69.5t13.5 66l82 420h849l-218 -1120h-291l175 901h-267l-38 -197q-4 -18 -11.5 -58.5t-20.5 -93.5t-31 -113.5t-41.5 -120t-53 -113t-64.5 -91.5q-55 -59 -134.5 -86.5t-187.5 -27.5h-95z " />
+<glyph unicode="&#x43c;" d="M188 1120h352l51 -655l305 655h352l-218 -1120h-240l158 823l-299 -653h-232l-47 653l-160 -823h-240z" />
+<glyph unicode="&#x43d;" d="M273 1120h291l-74 -381h317l74 381h291l-218 -1120h-291l101 520h-317l-101 -520h-291z" />
+<glyph unicode="&#x43e;" d="M533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5 t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x43f;" d="M281 1120h899l-218 -1120h-291l175 901h-317l-175 -901h-291z" />
+<glyph unicode="&#x440;" d="M261 1120h264l-4 -168q72 100 153.5 147.5t175.5 47.5q73 0 131.5 -28t99.5 -81.5t63 -130.5t22 -176q0 -59 -8 -123t-23 -127.5t-37 -124t-50 -112.5q-72 -133 -176 -203t-221 -70q-114 0 -184.5 63.5t-90.5 172.5l-123 -633h-293zM593 209q63 0 114 41.5t87.5 108 t56.5 150t20 166.5q0 120 -40.5 176t-110.5 56q-63 0 -116 -40t-91 -105t-59 -146.5t-21 -164.5q0 -123 44.5 -182.5t115.5 -59.5z" />
+<glyph unicode="&#x441;" d="M307 949q90 94 214 146t272 52q19 0 53 -2q16 0 16 15v241q0 10 10 10h248q10 0 10 -10v-340l-53 -266q-120 114 -274 114q-85 0 -155.5 -32t-121.5 -92q-51 -59 -79 -139.5t-28 -173.5q0 -135 59 -199t181 -64q74 0 151.5 24.5t174.5 79.5l-56 -276q-154 -66 -323 -66 q-229 0 -354 122q-129 124 -129 364q0 146 47.5 272t136.5 220z" />
+<glyph unicode="&#x442;" d="M532 901h-308l43 219h907l-43 -219h-308l-175 -901h-291z" />
+<glyph unicode="&#x443;" d="M-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
+<glyph unicode="&#x444;" d="M381 -29q-73 7 -132 45t-101 96t-64.5 131t-22.5 151q0 34 4.5 77.5t12.5 87.5q17 89 49 166.5t74.5 141t93 114t104 86t107.5 55.5t104 25l79 409h240l-79 -409q72 -8 131 -44.5t101 -94t65 -131t23 -153.5q0 -35 -4.5 -77t-13.5 -88q-27 -138 -85 -244t-131.5 -179.5 t-155.5 -115t-159 -49.5l-77 -397h-240zM563 909q-38 -9 -75 -33.5t-69.5 -67.5t-58.5 -104.5t-42 -144.5q-8 -40 -11.5 -76t-3.5 -63q0 -38 7.5 -72.5t23 -62.5t38.5 -48t55 -28zM667 209q39 9 75.5 33t68.5 65.5t58 103.5t43 148q16 80 16 138q0 37 -7 72t-22.5 63t-39 48 t-56.5 29z" />
+<glyph unicode="&#x445;" d="M466 594l-258 526h301l148 -317l268 317h332l-477 -553l278 -567h-299l-170 356l-303 -356h-332z" />
+<glyph unicode="&#x446;" d="M872 0h-836l218 1120h291l-175 -901h317l175 901h291l-175 -901h156l-99 -505h-219z" />
+<glyph unicode="&#x447;" d="M706 416h-107q-231 0 -365 101l-4 3q-43 33 -66 82.5t-23 114.5q0 23 2.5 47.5t7.5 48.5l60 307h299l-66 -337q-3 -18 -3 -33q0 -38 20 -61q3 -4 7.5 -8t10.5 -9q48 -39 162 -39h107l95 488h290l-218 -1121h-290z" />
+<glyph unicode="&#x448;" d="M187 1120h240l-175 -901h178l175 901h240l-175 -901h178l175 901h240l-218 -1120h-1076z" />
+<glyph unicode="&#x449;" d="M900 0h-943l218 1120h240l-175 -901h178l175 901h240l-175 -901h178l175 901h240l-175 -901h86l-99 -505h-219z" />
+<glyph unicode="&#x44a;" d="M363 895h-251l44 225h542l-82 -422h127q106 0 181 -20t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-418zM596 219q52 0 96.5 7.5t77.5 25.5t51.5 47.5t18.5 73.5q0 28 -9.5 47t-32.5 33q-45 26 -152 26 h-73l-50 -260h73z" />
+<glyph unicode="&#x44b;" d="M133 1120h291l-82 -422h21q106 0 181 -20t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-312zM1010 1120h293l-218 -1120h-293zM276 219q30 0 62.5 10t59.5 29t44.5 47t17.5 65q0 30 -12 51t-31.5 34 t-43 18.5t-47.5 5.5h-27l-50 -260h27z" />
+<glyph unicode="&#x44c;" d="M298 1120h291l-82 -422h177q106 0 181 -20t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-468zM537 219q52 0 96.5 7.5t77.5 25.5t51.5 47.5t18.5 73.5q0 28 -9.5 47t-32.5 33q-45 26 -152 26h-123 l-50 -260h123z" />
+<glyph unicode="&#x44d;" d="M418 -29q-193 0 -323 86l53 269q56 -59 120 -88t148 -29q125 0 213 63t134 186h-477l43 219h472q-7 232 -242 232q-166 0 -320 -114l52 268q87 42 175 63t183 21q129 0 216 -36t140 -95t75.5 -135t22.5 -157q0 -41 -4.5 -83t-12.5 -81q-27 -139 -85.5 -248.5t-144.5 -185 t-196.5 -115.5t-241.5 -40z" />
+<glyph unicode="&#x44e;" d="M1212 988q29 -46 48 -110.5t19 -157.5q0 -78 -15.5 -165t-45 -171t-73 -160t-99.5 -132q-37 -37 -72.5 -58.5t-71 -33.5t-71.5 -18t-75 -10q-6 -1 -10 -1h-6q-47 0 -88.5 14t-76 36.5t-62 51t-47.5 57.5q-33 48 -50 106.5t-17 140.5q0 24 1.5 50t5.5 53h-102l-93 -480 h-293l218 1120h293l-84 -431h106q30 95 79.5 171.5t108.5 133t124.5 93t128.5 51.5q37 9 68 9q35 0 70.5 -11t68.5 -32t61.5 -50.5t51.5 -65.5zM1004 666q1 34 -0.5 57.5t-1.5 27.5q-1 10 -6.5 37.5t-21.5 58.5q-10 19 -20.5 33.5t-15.5 14.5q-5 3 -11 4t-10 1 q-19 0 -43.5 -20.5t-50.5 -58.5q-19 -27 -35 -57t-28.5 -56.5t-20 -46.5t-10.5 -27q-3 -8 -5.5 -14.5t-5 -15t-5 -20.5t-6.5 -30q-13 -64 -19 -105.5t-8 -65.5t-1.5 -33.5l0.5 -9.5q4 -11 8 -24t5 -15l4 -9q10 -35 23.5 -53.5t24.5 -25.5q14 -11 31 -11q12 0 26.5 7t30 19 t31.5 29t30 37q16 23 28.5 47.5t21.5 47.5t15 44t11 37q2 8 4 13.5t4 13.5t4.5 20t7.5 34q4 22 7 38t4.5 28.5t2.5 24t1 24.5z" />
+<glyph unicode="&#x44f;" d="M342 488q-23 13 -52 34t-54.5 50t-43.5 67.5t-18 85.5q0 16 2 38t7 45q15 79 55.5 138t109.5 97.5t170 57.5t238 19h424l-218 -1120h-291l84 429h-121l-345 -429h-339zM797 648l51 261h-173q-43 0 -82.5 -9t-69.5 -27.5t-48 -46.5t-18 -66q0 -60 43.5 -86t123.5 -26h173z " />
+<glyph unicode="&#x450;" d="M410 1675h284l209 -376h-198zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30 q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
+<glyph unicode="&#x451;" d="M478 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM873 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM586 -29q-253 0 -381.5 117t-128.5 352 q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21z M876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59t-111 -177h466z" />
+<glyph unicode="&#x452;" d="M411 -199q87 12 150.5 51.5t109 101t75.5 144.5t50 182q18 88 18 147q0 25 -4.5 48t-18.5 41t-40 28.5t-70 10.5q-110 0 -169 -69t-84 -197l-56 -289h-291l174 895h-171l44 225h171l84 436h291l-84 -436h437l-44 -225h-437l-57 -295q52 100 142.5 147.5t199.5 47.5 q76 0 129.5 -21.5t87.5 -59.5t49.5 -91t15.5 -117q0 -43 -6 -98.5t-17 -112.5q-24 -133 -72 -253t-131.5 -215.5t-210 -161t-308.5 -89.5z" />
+<glyph unicode="&#x453;" d="M912 1648h321l-442 -376h-197zM356 1120h799l-43 -219h-508l-175 -901h-291z" />
+<glyph unicode="&#x454;" d="M569 -29q-110 0 -195 28.5t-143 83.5t-88 134t-30 180q0 39 4.5 79t12.5 83q27 138 86 247.5t145 185.5t196 116.5t240 40.5q91 0 170 -20.5t154 -65.5l-52 -268q-54 55 -124 84.5t-154 29.5q-72 0 -126 -21t-94 -54t-66.5 -74.5t-43.5 -82.5h412l-41 -209h-417 q-2 -51 8.5 -98t38.5 -82t76 -56t121 -21q164 0 318 115l-52 -269q-164 -86 -356 -86z" />
+<glyph unicode="&#x455;" d="M495 -29q-100 0 -202.5 17.5t-202.5 52.5l51 256q87 -57 180.5 -86t190.5 -29q109 0 170 37t61 111q0 18 -6 33.5t-26 31.5q-23 18 -62.5 33.5t-99.5 32.5l-88 24q-236 65 -236 284q0 85 35 155t100 119.5t158.5 76.5t210.5 27q88 0 180 -15.5t185 -46.5l-50 -254 q-77 55 -165 81t-171 26q-101 0 -155.5 -34.5t-54.5 -93.5q0 -46 37 -73q9 -7 25.5 -15t38 -16.5t47.5 -17t54 -16.5l74 -21q124 -35 185 -104.5t61 -187.5q0 -91 -35 -163t-102 -122t-165 -76.5t-223 -26.5z" />
+<glyph unicode="&#x456;" d="M588 1323q-16 0 -23 9t-4 24l56 282q4 27 32 27h233q16 0 23 -9t4 -24l-56 -282q-5 -27 -32 -27h-233zM732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8 v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#x457;" d="M369 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM764 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM703 -8q-107 0 -177 14t-113 43 q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#x458;" d="M743 1323q-15 0 -22.5 9t-4.5 24l55 282q4 27 32 27h233q15 0 22.5 -9t4.5 -24l-55 -282q-5 -27 -32 -27h-233zM22 -199h231q51 0 88 13t64 42t45 75t31 112l165 852h-297l43 225h590l-209 -1077q-9 -47 -17 -83t-16 -64.5t-15.5 -50.5t-15.5 -40q-33 -78 -86 -128 t-131 -75q-83 -26 -208 -26h-307z" />
+<glyph unicode="&#x459;" d="M-57 240h10q52 0 87.5 8t61 29.5t44 60.5t36.5 101q7 26 15.5 58.5t16.5 67t15.5 69.5t13.5 66l82 420h598l-82 -422h11q80 0 143.5 -20t107.5 -56t67.5 -85.5t23.5 -107.5q0 -18 -2 -37.5t-6 -41.5q-16 -88 -62 -154t-110.5 -109.5t-142 -65t-155.5 -21.5h-251l175 901 h-118l-38 -197q-4 -18 -11.5 -58.5t-20.5 -93.5t-31 -113.5t-41.5 -120t-53 -113t-64.5 -91.5q-55 -59 -134.5 -86.5t-187.5 -27.5h-44zM765 219q30 0 62.5 10t59.5 29t44.5 47t17.5 65q0 30 -12 51t-31.5 34t-43 18.5t-47.5 5.5h-17l-50 -260h17z" />
+<glyph unicode="&#x45a;" d="M164 1120h240l-74 -381h299l74 381h240l-82 -422h11q80 0 143.5 -20t107.5 -56t67.5 -85.5t23.5 -107.5q0 -18 -2 -37.5t-6 -41.5q-16 -88 -62 -154t-110.5 -109.5t-142 -65t-155.5 -21.5h-251l101 520h-299l-101 -520h-240zM785 219q30 0 62.5 10t59.5 29t44.5 47 t17.5 65q0 30 -12 51t-31.5 34t-43 18.5t-47.5 5.5h-17l-50 -260h17z" />
+<glyph unicode="&#x45b;" d="M249 895h-171l43 225h171l85 436h291l-85 -436h437l-43 -225h-437l-58 -295q48 91 131.5 143t197.5 52q125 0 188.5 -67t63.5 -203q0 -32 -4 -70t-12 -80l-73 -375h-291l64 330q5 24 8 52t3 50q0 62 -28.5 92.5t-82.5 30.5q-85 0 -143 -70.5t-82 -195.5l-56 -289h-291z " />
+<glyph unicode="&#x45c;" d="M880 1648h321l-442 -376h-197zM276 1120h293l-74 -381l426 381h355l-505 -418l311 -702h-324l-205 524l-119 -96l-83 -428h-293z" />
+<glyph unicode="&#x45d;" d="M431 1648h284l209 -376h-198zM261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
+<glyph unicode="&#x45e;" d="M741 1270q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159 t-91.5 -92t-95 -42t-112.5 -10h-240z" />
+<glyph unicode="&#x45f;" d="M398 0h-340l218 1120h291l-175 -901h318l175 901h291l-218 -1120h-340l-56 -286h-220z" />
+<glyph unicode="&#x462;" d="M343 1124h-250l41 209h250l31 160h295l-31 -160h323l-41 -209h-323l-41 -211h30q130 0 225.5 -19t157.5 -59.5t92 -102.5t30 -148q0 -31 -3.5 -64t-10.5 -69q-23 -116 -72.5 -201t-130.5 -140.5t-196.5 -82.5t-268.5 -27h-325zM507 236q77 0 131 11.5t90.5 37t57.5 66.5 t33 100q9 46 9 81q0 41 -13 69t-41 45t-73 24.5t-108 7.5h-41l-86 -442h41z" />
+<glyph unicode="&#x463;" d="M357 950h-251l43 225h251l74 381h291l-74 -381h402l-43 -225h-402l-49 -252h127q188 0 291.5 -67.5t103.5 -202.5q0 -20 -2 -38.5t-6 -39.5q-16 -86 -59.5 -151.5t-110.5 -109.5t-156 -66.5t-197 -22.5h-418zM579 219q112 0 170 31t71 100q3 16 3 30q0 54 -48 76.5 t-146 22.5h-73l-50 -260h73z" />
+<glyph unicode="&#x472;" d="M465 -29q-123 0 -202.5 37.5t-126 99t-64.5 141.5t-18 165q0 39 3 82t8.5 85.5t12 84t13.5 79.5q28 148 73 271.5t106.5 219t140 161t175.5 96.5q84 27 180 27q205 0 306.5 -119t101.5 -347q0 -65 -8 -144.5t-24 -165.5q-29 -153 -76 -279t-112 -221.5t-146 -159 t-177 -91.5q-76 -22 -166 -22zM860 911q6 63 6 115q0 108 -28 160q-20 37 -51 53t-72 16q-78 0 -133.5 -53.5t-100.5 -160.5l-10 -26t-10.5 -28t-11 -33.5t-12.5 -42.5h423zM518 236q57 0 101 27t79 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90 q0 -109 34.5 -165t117.5 -56z" />
+<glyph unicode="&#x473;" d="M502 -29q-121 0 -207.5 40.5t-139.5 118.5q-73 107 -73 272q0 76 15.5 156.5t45.5 157.5t74.5 146.5t103.5 125.5q82 78 185.5 118.5t224.5 40.5q118 0 205 -39.5t141 -119.5q38 -57 55.5 -125.5t17.5 -147.5q0 -78 -16 -159t-46.5 -157.5t-75 -145.5t-101.5 -123 q-85 -80 -188 -119.5t-221 -39.5zM853 632q3 28 3 55q0 47 -9.5 87.5t-30 70.5t-53.5 47t-79 17q-53 0 -96.5 -22t-78 -60t-60 -88t-41.5 -107h445zM548 209q53 0 94.5 20.5t73.5 53.5t55 73.5t38 81.5h-432q0 -41 7 -81.5t26 -73.5t52 -53.5t86 -20.5z" />
+<glyph unicode="&#x490;" d="M362 1493h670l60 306h260l-110 -566h-635l-240 -1233h-295z" />
+<glyph unicode="&#x491;" d="M375 1120h590l61 314h209l-103 -533h-508l-175 -901h-291z" />
+<glyph unicode="&#x492;" d="M216 664h-135l46 240h135l115 589h930l-50 -260h-635l-64 -329h425l-47 -240h-425l-129 -664h-295z" />
+<glyph unicode="&#x493;" d="M266 458h-130l43 219h130l86 443h799l-43 -219h-508l-43 -224h360l-43 -219h-360l-89 -458h-291z" />
+<glyph unicode="&#x494;" d="M324 -199h136q51 0 88.5 14t64 43.5t44.5 75t30 109.5l82 421q6 32 9.5 57.5t3.5 48.5q0 63 -29.5 89.5t-93.5 26.5h-234l-133 -686h-295l290 1493h930l-50 -260h-635l-55 -281h309q66 0 121 -14.5t95 -38.5q19 -11 33 -24t22 -29q36 -63 36 -162q0 -33 -4 -71.5 t-12 -80.5l-95 -489q-24 -126 -63 -214.5t-97 -145t-137.5 -82t-185.5 -25.5h-218z" />
+<glyph unicode="&#x495;" d="M332 -199h113q47 0 83 11.5t63.5 39.5t46.5 74.5t33 116.5l27 137q6 30 8.5 55t2.5 45q0 68 -28 96.5t-86 28.5h-120l-79 -405h-291l218 1120h799l-41 -209h-508l-52 -266h237q128 0 192.5 -67t64.5 -201q0 -35 -4.5 -72.5t-12.5 -79.5l-36 -182q-25 -125 -63 -214 t-95 -145t-135.5 -82t-184.5 -26h-195z" />
+<glyph unicode="&#x496;" d="M836 0h-10l-52 537l-113 -181l-69 -356h-240l69 356l-41 181l-262 -537h-250l430 886l-140 607h261l122 -523l101 523h240l-101 -523l324 523h261l-376 -607l61 -626h76l-113 -582h-240z" />
+<glyph unicode="&#x497;" d="M895 0h-39l-73 427l-96 -122l-59 -305h-240l59 305l-48 122l-239 -427h-255l389 694l-167 426h277l135 -343l67 343h240l-67 -343l269 343h277l-333 -426l82 -475h83l-99 -505h-219z" />
+<glyph unicode="&#x498;" d="M764 805q141 -38 203.5 -122t62.5 -214q0 -102 -34.5 -187t-99.5 -149t-158.5 -104t-210.5 -53q55 -82 55 -162q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 23 -9.5 52t-32.5 71 q-95 3 -199 21.5t-216 51.5l54 270q94 -45 199 -69.5t201 -24.5q81 0 142 18t102.5 50.5t62 78t20.5 101.5q0 102 -64 150.5t-172 48.5h-158l52 260h157q62 0 113.5 14.5t88 41t57 62.5t20.5 78q0 70 -57.5 108t-166.5 38q-81 0 -179.5 -21t-209.5 -61l54 268 q105 32 201.5 48t177.5 16q105 0 189.5 -25.5t144 -72t91 -111.5t31.5 -145q0 -70 -24.5 -129.5t-70 -106t-111.5 -78.5t-150 -47z" />
+<glyph unicode="&#x499;" d="M1095 836q-12 -62 -35.5 -105.5t-54.5 -74t-68.5 -50.5t-77.5 -33q37 -12 68.5 -33t54.5 -51t36 -68.5t13 -85.5q0 -83 -40.5 -145.5t-111 -106t-166 -68.5t-206.5 -33q59 -86 59 -168q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5 l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 24 -10.5 54t-34.5 75q-36 1 -72.5 4t-74.5 10.5t-79 19.5t-87 32l46 236q45 -24 85 -39.5t82 -24.5t90.5 -12t111.5 -3q55 0 101.5 3.5t82 16t58.5 37.5t31 67q3 15 3 27q0 31 -19.5 52t-49.5 34t-67 18.5t-71 5.5h-163 l43 219h137q42 0 87 7t82.5 23t61.5 42.5t24 65.5q0 56 -56.5 82.5t-174.5 26.5q-164 0 -326 -52l43 223q80 22 175 35t191 13q112 0 195 -18.5t138 -52.5t81.5 -80.5t26.5 -101.5q0 -14 -1.5 -29t-4.5 -29z" />
+<glyph unicode="&#x49a;" d="M797 0h-10l-254 670l-172 -170l-95 -500h-294l288 1493h295l-108 -557l563 557h348l-606 -604l239 -629h150l-128 -656h-293z" />
+<glyph unicode="&#x49b;" d="M781 0h-35l-205 524l-119 -96l-83 -428h-293l218 1120h293l-74 -381l426 381h355l-506 -418l219 -493h134l-104 -533h-289z" />
+<glyph unicode="&#x4a2;" d="M860 0h-239l129 664h-369l-129 -664h-295l290 1493h295l-110 -569h369l110 569h295l-239 -1233h237l-128 -656h-293z" />
+<glyph unicode="&#x4a3;" d="M917 0h-291l103 530h-317l-103 -530h-291l218 1120h291l-74 -381h317l74 381h291l-177 -911h289l-104 -533h-289z" />
+<glyph unicode="&#x4a4;" d="M353 1493h240l-112 -578h315l112 578h580l-48 -247h-340l-242 -1246h-240l131 675h-315l-131 -675h-240z" />
+<glyph unicode="&#x4a5;" d="M227 1120h240l-76 -390h323l76 390h568l-41 -210h-328l-177 -910h-240l101 520h-323l-101 -520h-240z" />
+<glyph unicode="&#x4aa;" d="M871 1520q85 0 162.5 -18t155.5 -54l-64 -328q-24 33 -55 59t-66.5 43t-74 26t-77.5 9q-94 0 -168.5 -48.5t-129.5 -133.5q-34 -52 -62 -118t-48.5 -137.5t-32 -144.5t-11.5 -139q0 -153 63 -229t184 -76q78 0 158.5 33.5t174.5 106.5l-64 -328q-60 -28 -121 -45 t-126 -23q27 -42 40.5 -81t13.5 -80q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 23 -10 52.5t-33 72.5q-206 18 -314.5 154.5t-108.5 393.5q0 106 18.5 214.5t52.5 210t82.5 191 t108.5 158.5q97 111 226.5 167.5t281.5 56.5z" />
+<glyph unicode="&#x4ab;" d="M805 909q-86 0 -156.5 -33t-121 -91.5t-78.5 -138.5t-28 -174q0 -136 59.5 -199.5t180.5 -63.5q74 0 151.5 24.5t174.5 79.5l-56 -276q-144 -61 -300 -66q52 -79 52 -157q0 -49 -19.5 -88.5t-57 -67.5t-91.5 -43.5t-122 -15.5q-45 0 -96 6.5t-99 19.5l28 156 q87 -35 162 -35q66 0 102.5 26.5t36.5 76.5q0 25 -10.5 55.5t-36.5 77.5q-168 31 -261.5 150.5t-93.5 324.5q0 147 48 273t136 218.5t211.5 145.5t274.5 53q91 0 176 -20.5t161 -63.5l-53 -268q-120 114 -274 114z" />
+<glyph unicode="&#x4ac;" d="M634 0h-295l240 1235h-379l50 258h1053l-50 -258h-379l-189 -975h293l-128 -656h-293z" />
+<glyph unicode="&#x4ad;" d="M623 0h-291l177 911h-308l41 209h907l-41 -209h-308l-136 -702h289l-104 -533h-289z" />
+<glyph unicode="&#x4ae;" d="M455 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#x4af;" d="M365 31l-203 1089h308l110 -727l392 727h308l-625 -1089l-89 -457h-290z" />
+<glyph unicode="&#x4b0;" d="M390 264h-240l51 260h240l12 64l-285 905h318l173 -600l408 600h318l-637 -905l-12 -64h240l-51 -260h-240l-51 -264h-295z" />
+<glyph unicode="&#x4b1;" d="M310 -250h-200l43 219h200l12 62l-203 1089h308l110 -727l392 727h308l-625 -1089l-12 -62h200l-43 -219h-200l-34 -176h-290z" />
+<glyph unicode="&#x4b2;" d="M763 0h-12l-189 494l-380 -494h-305l585 758l-283 735h305l180 -475l365 475h305l-567 -735l190 -498h150l-128 -656h-293z" />
+<glyph unicode="&#x4b3;" d="M774 0h-53l-147 377l-292 -377h-342l528 584l-277 536h342l121 -334l252 334h342l-481 -536l190 -375h147l-104 -533h-289z" />
+<glyph unicode="&#x4ba;" d="M273 1556h291l-129 -666q27 50 74 77l53 31q31 18 84.5 30t127.5 18l58 3q67 0 123.5 -15t91.5 -38q20 -13 32 -26.5t20 -26.5q36 -59 36 -163q0 -32 -4 -70.5t-12 -80.5l-122 -629h-291l109 561q12 60 12 103q0 45 -13 70q-16 37 -109 49q-23 3 -42 3q-69 0 -147 -29 q-32 -12 -45.5 -21.5t-24.5 -20.5q-28 -31 -49 -81t-34 -114l-101 -520h-291z" />
+<glyph unicode="&#x4bb;" d="M362 1556h291l-116 -604q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -29 96.5t-83 30.5q-85 0 -142.5 -71t-83.5 -207l-121 -629h-293z" />
+<glyph unicode="&#x4c0;" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#x4c1;" d="M761 1590q-137 0 -210 67t-73 193v4h143q10 -60 51 -87.5t120 -27.5q72 0 124.5 30.5t75.5 84.5h154q-40 -130 -138.5 -197t-246.5 -67zM298 886l-140 607h261l121 -523l102 523h240l-102 -523l325 523h261l-376 -607l86 -886h-250l-53 537l-112 -181l-69 -356h-240 l69 356l-42 181l-261 -537h-250z" />
+<glyph unicode="&#x4c2;" d="M751 1270q-295 0 -295 264v33h144v-13q0 -61 44 -97t120 -36q81 0 139.5 38.5t83.5 107.5h143q-29 -143 -127.5 -220t-251.5 -77zM294 694l-167 426h277l135 -343l67 343h240l-67 -343l269 343h277l-333 -426l119 -694h-255l-73 427l-96 -122l-59 -305h-240l59 305 l-48 122l-239 -427h-255z" />
+<glyph unicode="&#x4c3;" d="M309 -199h136q49 0 86 13t64 42q28 30 46 76t31 111l82 421q12 61 12 104q0 46 -13 69q-40 49 -109 49h-87l-182 -180l-98 -506h-295l290 1493h295l-114 -590l576 590h334l-538 -541q85 0 162 -53q21 -14 34 -26.5t21 -26.5q17 -28 26.5 -71t9.5 -97q0 -32 -4 -68.5 t-12 -77.5l-95 -489q-24 -124 -62.5 -212.5t-96.5 -145t-138 -83t-186 -26.5h-218z" />
+<glyph unicode="&#x4c4;" d="M298 -199h113q47 0 83 11.5t63.5 39.5t46.5 74.5t33 116.5l27 137q6 30 8.5 55t2.5 45q0 68 -28 96.5t-86 28.5h-120l-79 -405h-293l218 1120h293l-74 -381l426 381h355l-575 -475h12q128 0 192.5 -67t64.5 -201q0 -35 -4.5 -72.5t-12.5 -79.5l-36 -182 q-25 -125 -63 -214t-95 -145t-135.5 -82t-184.5 -26h-195z" />
+<glyph unicode="&#x4c7;" d="M301 -199h136q51 0 88.5 14t64 43.5t44.5 75t30 109.5l121 621h-369l-129 -664h-295l290 1493h295l-110 -569h369l110 569h295l-282 -1450q-24 -126 -64 -214.5t-98.5 -145t-137.5 -82t-183 -25.5h-218z" />
+<glyph unicode="&#x4c8;" d="M343 -199h113q51 0 88.5 14t64 43.5t44.5 75t30 109.5l95 487h-317l-103 -530h-291l218 1120h291l-74 -381h317l74 381h291l-210 -1077q-25 -128 -64 -217t-97 -144.5t-136.5 -80.5t-181.5 -25h-195z" />
+<glyph unicode="&#x4cb;" d="M427 260h293l98 506q-26 -50 -74 -77l-53 -31q-31 -18 -89 -31t-123 -17l-58 -3q-67 0 -123.5 15t-91.5 38q-20 13 -32 26.5t-20 26.5q-36 59 -36 163q0 32 4 70.5t12 80.5l102 529h291l-89 -461q-12 -60 -12 -103q0 -45 13 -70q16 -37 109 -49q22 -3 42 -3q69 0 147 29 q32 12 45.5 21.5t24.5 20.5q28 31 49 81t34 114l81 420h291l-302 -1556h-291l-77 -396h-293z" />
+<glyph unicode="&#x4cc;" d="M404 209h289l40 207h-107q-231 0 -365 101l-4 3q-43 33 -66 82.5t-23 114.5q0 23 2.5 47.5t7.5 48.5l60 307h299l-66 -337q-3 -18 -3 -33q0 -38 20 -61q3 -4 7.5 -8t10.5 -9q48 -39 162 -39h107l95 488h290l-218 -1121h-290l-63 -324h-289z" />
+<glyph unicode="&#x4cf;" d="M641 1556h293l-302 -1556h-293z" />
+<glyph unicode="&#x4d0;" d="M776 1590q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x4d1;" d="M736 1297q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM381 -29q-78 0 -139.5 22t-105 64t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5 t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114l-123 -639h-262l-4 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70 t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
+<glyph unicode="&#x4d2;" d="M487 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM883 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM582 1493h360l113 -1493h-293l-14 369h-400 l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#x4d3;" d="M480 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM875 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM381 -29q-78 0 -139.5 22t-105 64 t-66.5 103.5t-23 141.5q0 103 39.5 184t116 137t189 85t259.5 29h193l8 49q1 6 1.5 11.5t0.5 13.5q0 60 -50 90.5t-143 30.5q-88 0 -189.5 -27.5t-223.5 -85.5l47 250q63 21 117.5 36t105 24.5t97.5 13.5t94 4q209 0 320.5 -76t111.5 -226q0 -40 -7.5 -92t-19.5 -114 l-123 -639h-262l-4 125q-67 -78 -154.5 -116t-189.5 -38zM504 172q54 0 102.5 24t87.5 70t67 112.5t42 151.5h-113q-168 0 -253 -51t-85 -154q0 -72 40 -112.5t112 -40.5z" />
+<glyph unicode="&#x4d4;" d="M522 1493h809l-51 -260h-291l-60 -311h260l-51 -260h-260l-78 -402h310l-52 -260h-563l72 362h-283l-155 -362h-259zM612 598l125 635h-80l-272 -635h227z" />
+<glyph unicode="&#x4d5;" d="M246 -29q-63 0 -114.5 20t-87.5 58.5t-55.5 94t-19.5 127.5q0 91 31.5 168t90 132.5t141 87t184.5 31.5h108l11 58q6 30 6 58q0 62 -33.5 94t-96.5 32q-107 0 -280 -101l47 238q79 39 151.5 58.5t136.5 19.5q92 0 148 -36.5t80 -96.5q52 66 121 99.5t156 33.5 q125 0 192.5 -70t67.5 -202q0 -43 -7.5 -110t-24.5 -159l-23 -129h-451q-8 -49 -11 -75.5t-3 -44.5q0 -81 42 -129t114 -48q55 0 123 28.5t134 80.5l-47 -238q-60 -42 -130 -61t-136 -19q-199 0 -268 164q-61 -84 -134 -124t-163 -40zM991 688l12 67q7 32 7 71q0 22 -3 41 t-11.5 33.5t-24.5 23t-43 8.5q-114 0 -148 -172l-14 -72h225zM297 180q64 0 104.5 52t61.5 169l14 78h-74q-49 0 -89 -13.5t-68 -38t-43 -58.5t-15 -74q0 -57 29 -86t80 -29z" />
+<glyph unicode="&#x4d6;" d="M794 1580q-142 0 -215 67t-73 193v4h143q8 -54 47 -84.5t118 -30.5q78 0 129.5 29.5t76.5 85.5h154q-20 -66 -56.5 -115.5t-85.5 -82.5t-109.5 -49.5t-128.5 -16.5zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x4d7;" d="M730 1299q-143 0 -216.5 65t-73.5 199v33h144v-13q0 -61 44 -97t122 -36q79 0 137.5 38.5t83.5 107.5h143q-29 -139 -125.5 -218t-258.5 -79zM586 -29q-253 0 -381.5 117t-128.5 352q0 68 11 135.5t32 131.5t52.5 122.5t72.5 108.5q85 103 200 157t252 54 q104 0 188.5 -31.5t144.5 -89t93 -139t33 -181.5q0 -42 -6.5 -100.5t-20.5 -142.5h-759q-3 -17 -4.5 -32t-2.5 -30q0 -200 268 -200q106 0 213 30.5t201 90.5l-51 -269q-96 -42 -198.5 -63t-208.5 -21zM876 684q7 27 7 55q0 84 -51 132.5t-143 48.5q-97 0 -168 -59 t-111 -177h466z" />
+<glyph unicode="&#x4d8;" d="M465 -29q-406 0 -406 476q0 70 8.5 142.5t24.5 155.5l18 95h741q8 55 13 102.5t5 90.5q0 109 -38.5 165.5t-133.5 56.5q-72 0 -150.5 -33t-166.5 -102l64 328q78 36 158 54t161 18q208 0 309.5 -118t101.5 -355q0 -133 -33 -302q-37 -188 -97.5 -332.5t-145 -242.5 t-193 -148.5t-240.5 -50.5zM517 236q57 0 100.5 26.5t76.5 73t57.5 109.5t44.5 135h-423q-4 -32 -6 -63t-2 -60q0 -49 7.5 -89.5t25 -70t46.5 -45.5t73 -16z" />
+<glyph unicode="&#x4d9;" d="M492 -29q-204 0 -314.5 105t-110.5 301q0 35 4 74.5t12 82.5l23 119h759q4 18 5.5 35t1.5 32q0 195 -264 195q-102 0 -204.5 -29t-222.5 -92l52 269q112 43 223 63.5t217 20.5q246 0 368 -107.5t122 -310.5q0 -42 -4.5 -84.5t-12.5 -81.5q-26 -135 -83.5 -244.5 t-142 -187t-193 -119t-235.5 -41.5zM537 198q109 0 179 61t104 175l-461 -1q-3 -18 -5 -35t-2 -34q0 -82 48 -124t137 -42z" />
+<glyph unicode="&#x4da;" d="M487 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM883 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM465 -29q-406 0 -406 476q0 70 8.5 142.5 t24.5 155.5l18 95h741q8 55 13 102.5t5 90.5q0 109 -38.5 165.5t-133.5 56.5q-72 0 -150.5 -33t-166.5 -102l64 328q78 36 158 54t161 18q208 0 309.5 -118t101.5 -355q0 -133 -33 -302q-37 -188 -97.5 -332.5t-145 -242.5t-193 -148.5t-240.5 -50.5zM517 236 q57 0 100.5 26.5t76.5 73t57.5 109.5t44.5 135h-423q-4 -32 -6 -63t-2 -60q0 -49 7.5 -89.5t25 -70t46.5 -45.5t73 -16z" />
+<glyph unicode="&#x4db;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM492 -29q-204 0 -314.5 105t-110.5 301 q0 35 4 74.5t12 82.5l23 119h759q4 18 5.5 35t1.5 32q0 195 -264 195q-102 0 -204.5 -29t-222.5 -92l52 269q112 43 223 63.5t217 20.5q246 0 368 -107.5t122 -310.5q0 -42 -4.5 -84.5t-12.5 -81.5q-26 -135 -83.5 -244.5t-142 -187t-193 -119t-235.5 -41.5zM537 198 q109 0 179 61t104 175l-461 -1q-3 -18 -5 -35t-2 -34q0 -82 48 -124t137 -42z" />
+<glyph unicode="&#x4dc;" d="M494 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM890 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM298 886l-140 607h261l121 -523l102 523h240 l-102 -523l325 523h261l-376 -607l86 -886h-250l-53 537l-112 -181l-69 -356h-240l69 356l-42 181l-261 -537h-250z" />
+<glyph unicode="&#x4dd;" d="M457 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM852 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM294 694l-167 426h277l135 -343l67 343h240 l-67 -343l269 343h277l-333 -426l119 -694h-255l-73 427l-96 -122l-59 -305h-240l59 305l-48 122l-239 -427h-255z" />
+<glyph unicode="&#x4de;" d="M457 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM853 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM444 -29q-103 0 -216.5 19t-236.5 55l54 270 q94 -45 199 -69.5t201 -24.5q81 0 142 18t102.5 50.5t62 78t20.5 101.5q0 102 -64 150.5t-172 48.5h-158l52 260h157q62 0 113.5 14.5t88 41t57 62.5t20.5 78q0 70 -57.5 108t-166.5 38q-81 0 -179.5 -21t-209.5 -61l54 268q105 32 201.5 48t177.5 16q105 0 189.5 -25.5 t144 -72t91 -111.5t31.5 -145q0 -70 -24.5 -129.5t-70 -106t-111.5 -78.5t-150 -47q141 -38 203.5 -122t62.5 -214q0 -113 -42.5 -205t-121 -157t-191 -100.5t-253.5 -35.5z" />
+<glyph unicode="&#x4df;" d="M431 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM826 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM387 -22q-40 0 -79 2.5t-79.5 9.5t-85 20 t-94.5 34l46 236q45 -24 85 -39.5t82 -24.5t90.5 -12t111.5 -3q55 0 101.5 3.5t82 16t58.5 37.5t31 67q3 15 3 27q0 31 -19.5 52t-49.5 34t-67 18.5t-71 5.5h-163l43 219h137q42 0 87 7t82.5 23t61.5 42.5t24 65.5q0 56 -56.5 82.5t-174.5 26.5q-164 0 -326 -52l43 223 q80 22 175 35t191 13q112 0 195 -18.5t138 -52.5t81.5 -80.5t26.5 -101.5q0 -14 -1.5 -29t-4.5 -29q-12 -62 -35.5 -105.5t-54.5 -74t-68.5 -50.5t-77.5 -33q37 -12 68.5 -33t54.5 -51t36 -68.5t13 -85.5q0 -93 -51 -160.5t-138.5 -111t-204 -64.5t-247.5 -21z" />
+<glyph unicode="&#x4e0;" d="M467 -28q-141 0 -241 23t-163 67.5t-92.5 108t-29.5 144.5q0 30 3.5 61t9.5 63h318q-4 -19 -4 -38q0 -44 18 -75.5t50.5 -52t76.5 -30t96 -9.5q99 0 177.5 35.5t114.5 110.5q8 16 12 30t7 29q2 12 3.5 23.5t1.5 23.5q0 69 -47 106.5t-143 49.5q-17 2 -34.5 3t-37.5 1 h-255l43 218l443 369h-566l51 260h1010l-48 -244l-479 -401q64 -4 121 -11t104.5 -24t84.5 -47.5t63 -80.5q19 -37 28.5 -80t9.5 -87t-9 -93q-17 -93 -54 -162.5t-89 -120t-117 -83.5t-136.5 -52t-148 -27t-152.5 -8z" />
+<glyph unicode="&#x4e1;" d="M345 -440q-114 0 -211.5 18.5t-194.5 55.5l57 297q87 -54 176 -81.5t188 -27.5q135 0 218 52t103 153q2 12 3.5 23t1.5 23q0 79 -66 120t-196 41h-168l43 218l477 449h-566l43 219h895l-45 -229l-479 -455q60 -3 117.5 -10t107.5 -25t89.5 -51.5t64.5 -90.5 q14 -32 22.5 -71.5t8.5 -88.5q0 -53 -12.5 -110.5t-39.5 -113t-70 -106.5t-105 -92q-176 -117 -462 -117z" />
+<glyph unicode="&#x4e2;" d="M529 1850h631l-36 -188h-631zM264 1493h260l-211 -1085l627 1085h317l-290 -1493h-260l211 1085l-629 -1085h-315z" />
+<glyph unicode="&#x4e3;" d="M479 1508h631l-37 -188h-631zM261 1120h291l-139 -715l496 715h291l-218 -1120h-291l139 715l-496 -715h-291z" />
+<glyph unicode="&#x4e4;" d="M496 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM892 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM264 1493h260l-211 -1085l627 1085h317 l-290 -1493h-260l211 1085l-629 -1085h-315z" />
+<glyph unicode="&#x4e5;" d="M469 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM864 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM261 1120h291l-139 -715l496 715h291 l-218 -1120h-291l139 715l-496 -715h-291z" />
+<glyph unicode="&#x4e6;" d="M467 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM863 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM497 -29q-212 0 -324 127t-112 384 q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5 t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
+<glyph unicode="&#x4e7;" d="M449 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM844 1349q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM533 -29q-103 0 -185.5 30.5t-140 91 t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5t58.5 146.5t20.5 166q0 128 -46 187.5 t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x4e8;" d="M464 -29q-202 0 -303.5 120t-101.5 346q0 64 8 144t24 165q35 187 96.5 331.5t147.5 242.5t195.5 149t239.5 51q202 0 303 -119.5t101 -346.5q0 -64 -8 -144t-24 -166q-34 -184 -95 -327.5t-147 -242.5t-195.5 -151t-240.5 -52zM860 911q3 33 5 64t2 60q0 49 -7 89.5 t-24.5 69.5t-47 45t-73.5 16q-57 0 -99 -25.5t-74.5 -71t-57.5 -109t-47 -138.5h423zM518 236q57 0 101 27t79 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90q0 -109 34.5 -165t117.5 -56z" />
+<glyph unicode="&#x4e9;" d="M502 -29q-121 0 -207.5 40.5t-139.5 118.5q-73 107 -73 272q0 76 15.5 156.5t45.5 157.5t74.5 146.5t103.5 125.5q82 78 185.5 118.5t224.5 40.5q118 0 205 -39.5t141 -119.5q38 -57 55.5 -125.5t17.5 -147.5q0 -78 -16 -159t-46.5 -157.5t-75 -145.5t-101.5 -123 q-85 -80 -188 -119.5t-221 -39.5zM853 632q3 28 3 55q0 47 -9.5 87.5t-30 70.5t-53.5 47t-79 17q-53 0 -96.5 -22t-78 -60t-60 -88t-41.5 -107h445zM548 209q53 0 94.5 20.5t73.5 53.5t55 73.5t38 81.5h-432q0 -41 7 -81.5t26 -73.5t52 -53.5t86 -20.5z" />
+<glyph unicode="&#x4ea;" d="M487 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM883 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM464 -29q-202 0 -303.5 120t-101.5 346 q0 64 8 144t24 165q35 187 96.5 331.5t147.5 242.5t195.5 149t239.5 51q202 0 303 -119.5t101 -346.5q0 -64 -8 -144t-24 -166q-34 -184 -95 -327.5t-147 -242.5t-195.5 -151t-240.5 -52zM860 911q3 33 5 64t2 60q0 49 -7 89.5t-24.5 69.5t-47 45t-73.5 16q-57 0 -99 -25.5 t-74.5 -71t-57.5 -109t-47 -138.5h423zM518 236q57 0 101 27t79 79.5t63.5 130t52.5 178.5h-431q-8 -56 -12.5 -104t-4.5 -90q0 -109 34.5 -165t117.5 -56z" />
+<glyph unicode="&#x4eb;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM502 -29q-121 0 -207.5 40.5t-139.5 118.5 q-73 107 -73 272q0 76 15.5 156.5t45.5 157.5t74.5 146.5t103.5 125.5q82 78 185.5 118.5t224.5 40.5q118 0 205 -39.5t141 -119.5q38 -57 55.5 -125.5t17.5 -147.5q0 -78 -16 -159t-46.5 -157.5t-75 -145.5t-101.5 -123q-85 -80 -188 -119.5t-221 -39.5zM853 632q3 28 3 55 q0 47 -9.5 87.5t-30 70.5t-53.5 47t-79 17q-53 0 -96.5 -22t-78 -60t-60 -88t-41.5 -107h445zM548 209q53 0 94.5 20.5t73.5 53.5t55 73.5t38 81.5h-432q0 -41 7 -81.5t26 -73.5t52 -53.5t86 -20.5z" />
+<glyph unicode="&#x4ec;" d="M434 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM830 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM343 -29q-88 0 -161 18t-137 54l64 328 q120 -135 278 -135q271 0 385 379h-542l50 260h542q2 21 3 40.5t1 36.5q0 154 -61 228.5t-181 74.5q-81 0 -161.5 -33.5t-167.5 -101.5l64 328q148 72 327 72q100 0 175 -20.5t130 -57t91 -85t57.5 -105t30.5 -118t9 -122.5q0 -57 -6.5 -125.5t-20.5 -140.5 q-35 -185 -103.5 -329t-166.5 -243t-224 -151t-275 -52z" />
+<glyph unicode="&#x4ed;" d="M434 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM829 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM411 -29q-193 0 -323 86l53 269 q56 -59 120 -88t148 -29q125 0 213 63t134 186h-477l43 219h472q-7 232 -242 232q-166 0 -320 -114l52 268q87 42 175 63t183 21q129 0 216 -36t140 -95t75.5 -135t22.5 -157q0 -41 -4.5 -83t-12.5 -81q-27 -139 -85.5 -248.5t-144.5 -185t-196.5 -115.5t-241.5 -40z" />
+<glyph unicode="&#x4ee;" d="M529 1870h631l-36 -188h-631zM100 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
+<glyph unicode="&#x4ef;" d="M464 1508h631l-37 -188h-631zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
+<glyph unicode="&#x4f0;" d="M503 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM899 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM100 260h80q56 0 86 8q33 9 68.5 40t67.5 88 l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
+<glyph unicode="&#x4f1;" d="M464 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM859 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52 t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
+<glyph unicode="&#x4f2;" d="M697 1854h284l-337 -264h-197zM1072 1854h284l-337 -264h-197zM100 260h80q56 0 86 8q33 9 68.5 40t67.5 88l83 145l-302 952h305l196 -620l371 620h305l-709 -1190q-92 -153 -188 -228t-213 -75h-200z" />
+<glyph unicode="&#x4f3;" d="M647 1648h246l-321 -376h-164zM1043 1648h260l-346 -376h-172zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
+<glyph unicode="&#x4f4;" d="M502 1628q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM898 1628q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM833 766q-46 -77 -136 -118t-238 -41 q-86 0 -147.5 15t-101.5 47.5t-59 84t-19 124.5q0 33 4 70.5t12 78.5l103 529h291l-89 -461q-4 -21 -6 -39t-2 -36q0 -47 14 -76t37.5 -45.5t55.5 -22.5t68 -6q67 0 115 16.5t81.5 50t54.5 83.5t34 116l81 420h291l-302 -1556h-291z" />
+<glyph unicode="&#x4f5;" d="M442 1321q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM837 1321q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM716 416h-107q-231 0 -365 101l-4 3 q-43 33 -66 82.5t-23 114.5q0 23 2.5 47.5t7.5 48.5l60 307h299l-66 -337q-3 -18 -3 -33q0 -38 20 -61q3 -4 7.5 -8t10.5 -9q48 -39 162 -39h107l95 488h290l-218 -1121h-290z" />
+<glyph unicode="&#x4f6;" d="M357 0h-295l290 1493h930l-50 -260h-635l-189 -973h293l-128 -656h-293z" />
+<glyph unicode="&#x4f7;" d="M438 0h-291l218 1120h799l-41 -209h-508l-136 -702h289l-104 -533h-289z" />
+<glyph unicode="&#x4f8;" d="M496 1608q-16 0 -22.5 9t-3.5 24l38 186q6 27 32 27h175q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM892 1608q-16 0 -22.5 9t-3.5 24l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM188 1493h255l-113 -580h10q132 0 220.5 -25 t142 -69t76 -105.5t22.5 -133.5q0 -31 -3.5 -62.5t-10.5 -66.5q-45 -229 -201 -340t-423 -111h-265zM1086 1493h255l-290 -1493h-255zM220 236q74 0 127.5 11t91 36t60 66.5t33.5 101.5q5 24 7 45.5t2 38.5q0 32 -9.5 58.5t-30.5 44.5q-23 20 -68 30t-127 10h-21l-86 -442 h21z" />
+<glyph unicode="&#x4f9;" d="M467 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-175zM862 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q16 0 22.5 -9t3.5 -24l-37 -186q-5 -27 -32 -27h-176zM140 1120h291l-82 -422h21q106 0 181 -20 t122.5 -56t69.5 -85.5t22 -107.5q0 -19 -2 -38t-6 -41q-15 -83 -56.5 -148t-108 -110t-156.5 -68.5t-202 -23.5h-312zM1017 1120h293l-218 -1120h-293zM283 219q30 0 62.5 10t59.5 29t44.5 47t17.5 65q0 30 -12 51t-31.5 34t-43 18.5t-47.5 5.5h-27l-50 -260h27z" />
+<glyph unicode="&#x510;" d="M520 -29q-233 0 -351.5 86t-118.5 253q0 26 3 51.5t8 54.5q31 161 133.5 261t270.5 128q-123 24 -180.5 91.5t-57.5 161.5q0 19 2 37t6 38q17 87 63.5 158.5t120 122.5t172 78.5t219.5 27.5q94 0 190 -16.5t193 -47.5l-52 -268q-96 40 -187.5 61t-169.5 21 q-121 0 -188 -47.5t-83 -128.5q-2 -11 -3 -20.5t-1 -16.5q0 -60 52 -94.5t150 -34.5h158l-50 -260h-158q-132 0 -213 -64.5t-102 -175.5q-2 -11 -3 -22t-1 -20q0 -76 57.5 -119.5t186.5 -43.5q46 0 100 6t110.5 18t113 30t107.5 42l-53 -274q-108 -36 -221 -55t-223 -19z " />
+<glyph unicode="&#x511;" d="M568 -22q-244 0 -359 68.5t-115 199.5q0 15 1.5 32t5.5 34q25 121 116 195t253 97q-115 17 -175.5 68t-60.5 131q0 12 1.5 23.5t3.5 23.5q13 66 54.5 119.5t109 91.5t160 58.5t208.5 20.5q85 0 180 -12q2 -1 5 -1t5 -1q15 -2 51 -10.5t94 -23.5l-42 -215l-24 8 q-45 15 -81 25t-68 16.5t-64.5 9t-70.5 2.5q-56 0 -98 -7t-81 -27l-25 -15q-42 -28 -48 -69q-1 -5 -1.5 -10.5t-0.5 -9.5q0 -16 12 -30.5t32 -26.5q55 -33 155 -33h151l-43 -223h-151q-61 0 -112 -12.5t-85 -34.5l-20 -13q-57 -40 -69 -106q-3 -12 -3 -21q0 -21 13.5 -41 t36.5 -36q35 -25 80.5 -33.5t105.5 -8.5q54 0 104.5 5t102.5 14q21 4 31 6t19 4q11 3 42 13.5t82 29.5l-43 -219q-5 -1 -9 -2t-9 -3q-50 -14 -95.5 -24t-88.5 -16t-85.5 -8.5t-87.5 -2.5z" />
+<glyph unicode="&#x51a;" d="M535 -29h-27q-218 0 -332.5 123.5t-114.5 383.5q0 86 12.5 186t36 200t57.5 194t77 169q168 293 492 293q103 0 183.5 -30.5t136.5 -92.5t85.5 -157t29.5 -225q0 -86 -12.5 -186t-36.5 -201t-57.5 -196t-75.5 -170q-20 -35 -41 -64.5t-46.5 -56.5t-56 -52t-69.5 -50 l148 -186l-211 -134zM528 233q63 0 108.5 35.5t82.5 104.5q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166 t123 -59z" />
+<glyph unicode="&#x51b;" d="M709 166q-66 -99 -148.5 -147t-176.5 -48q-73 0 -131.5 28t-99.5 82t-63 131.5t-22 176.5q0 62 8.5 127.5t24 128.5t37.5 121.5t48 107.5q70 130 173.5 202.5t222.5 72.5q109 0 181.5 -62t90.5 -176l68 209h264l-301 -1546h-291zM515 211q63 0 115 40t89.5 105t58.5 146 t21 164q0 124 -44.5 183.5t-115.5 59.5q-63 0 -114 -42t-87.5 -108.5t-56 -149t-19.5 -164.5q0 -121 41 -177.5t112 -56.5z" />
+<glyph unicode="&#x51c;" d="M163 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
+<glyph unicode="&#x51d;" d="M96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
+<glyph unicode="&#x531;" d="M861 -64q-66 35 -124 85q-60 -25 -129 -37.5t-153 -12.5q-140 0 -226.5 35t-133.5 103q-29 42 -44 98t-15 132q0 48 6 100t17 112l183 942h295l-198 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -82 45 -126t131 -44q23 0 44 3q-24 40 -42.5 78t-30.5 72l206 144q10 -32 28 -60.5 t41 -54.5q5 14 8.5 28t6.5 29l198 1016h295l-183 -942q-19 -97 -44.5 -171t-54.5 -128q25 -14 50 -27t51 -26l-220 -263v0z" />
+<glyph unicode="&#x532;" d="M133 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33t224.5 -33t138.5 -104q29 -43 43.5 -100t14.5 -134q0 -47 -5.5 -97t-17.5 -112l-13 -67h-295l27 141q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-100 0 -170 -61.5t-93 -177.5l-66 -342h742l-51 -260 h-742l-80 -414h-294z" />
+<glyph unicode="&#x533;" d="M695 414h-231q-131 0 -216.5 35.5t-132.5 106.5q-29 44 -43 99.5t-14 119.5q0 39 5 91.5t15 105.5q25 135 76.5 239t125.5 173q72 67 173.5 102.5t242.5 35.5q135 0 224.5 -33.5t137.5 -103.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-52 -268h146l-51 -260h-146 l-80 -414h-295zM746 674l66 342q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-130.5 44.5q-101 0 -170 -62t-92 -177l-19 -96q-4 -18 -5.5 -35.5t-1.5 -31.5q0 -27 6.5 -57t23.5 -56q19 -28 54 -47t91 -19h215z" />
+<glyph unicode="&#x534;" d="M807 1016q4 18 5.5 36t1.5 33q0 82 -44.5 126t-129.5 44q-103 0 -172 -63t-91 -176l-27 -141h-295l13 67q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-52 -268h146l-51 -260h-146l-80 -414 h-295z" />
+<glyph unicode="&#x535;" d="M460 -29q-140 0 -227 34.5t-135 103.5q-29 42 -44 98t-15 132q0 48 6 100t17 112l183 942h295l-72 -373h725l-34 -260h-742l-74 -383q-4 -18 -5.5 -36t-1.5 -33q0 -82 44.5 -126t129.5 -44q103 0 172 63t91 176l27 141h295l-13 -67q-29 -148 -79 -258.5t-128 -183.5 q-76 -71 -178 -104.5t-237 -33.5z" />
+<glyph unicode="&#x536;" d="M23 331h295l-14 -71q82 1 171.5 47.5t170.5 131.5q38 40 73.5 88.5t66 105.5t54 122.5t38.5 138.5q17 85 17 153q0 104 -45 156t-140 52q-55 0 -104 -18.5t-88 -57.5t-68.5 -100.5t-44.5 -143.5l-11 -60h-295l4 22q27 146 81 262t135.5 196.5t191.5 123.5t248 43 q134 0 228 -41.5t148 -126.5q31 -50 48 -116t17 -156q0 -41 -4.5 -87.5t-17.5 -106.5q-16 -73 -47 -156t-92 -176q-56 -85 -136.5 -164.5t-185.5 -131.5h279l-50 -260h-986z" />
+<glyph unicode="&#x537;" d="M287 1493h295l-73 -373h714l-50 -260h-714l-117 -600h575l-51 -260h-869z" />
+<glyph unicode="&#x538;" d="M133 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33t224.5 -33t138.5 -104q29 -43 43.5 -100t14.5 -134q0 -47 -5.5 -97t-17.5 -112l-13 -67h-295l27 141q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177l-147 -756h742l-50 -260 h-1036z" />
+<glyph unicode="&#x539;" d="M609 -29q-78 0 -139 25t-96 79q-45 68 -45 180q0 34 4 75t12 83q21 113 64.5 201.5t99.5 146.5q111 114 278 114h107l28 141q5 23 7.5 48t2.5 46q0 32 -7.5 61t-24.5 52q-26 35 -75.5 53.5t-125.5 18.5t-132 -18.5t-96 -53.5t-64.5 -87.5t-37.5 -119.5l-198 -1016h-253 l183 942q29 151 82.5 261t134.5 182q80 71 185 104t240 33t227.5 -33t145.5 -104q67 -89 67 -243q0 -46 -5.5 -97.5t-16.5 -102.5l-14 -67h87l-50 -260h-87l-39 -202q-20 -106 -61.5 -188.5t-100.5 -139.5q-117 -114 -287 -114zM661 218q28 0 51 10.5t40 34.5q32 44 53 150 l39 202h-107q-56 0 -101 -48t-63 -154q-4 -23 -6.5 -49t-2.5 -43q0 -50 25 -76.5t72 -26.5z" />
+<glyph unicode="&#x53a;" d="M398 -29q-137 0 -226 34.5t-138 103.5q-61 86 -61 227q0 80 20 186q25 131 72.5 236t126.5 180q74 71 172.5 106t230.5 35h231l80 414h295l-80 -414h146l-51 -260h-146l-52 -268q-30 -155 -81 -264t-125 -178q-76 -71 -178 -104.5t-236 -33.5zM446 238q103 0 172 63.5 t91 175.5l66 342h-215q-51 0 -94 -17.5t-77 -49.5q-68 -65 -91 -179l-19 -96q-4 -18 -5.5 -35.5t-1.5 -32.5q0 -82 44.5 -126.5t129.5 -44.5z" />
+<glyph unicode="&#x53b;" d="M286 1493h295l-78 -400q26 12 51.5 21t53.5 15t59.5 9t70.5 3q123 0 213 -33t139 -104q58 -85 58 -230q0 -51 -6.5 -103t-17.5 -110l-13 -67h-295l28 141q4 18 5.5 35.5t1.5 32.5q0 83 -45 127t-131 44q-102 0 -169 -60.5t-88 -167.5l-128 -646h-294z" />
+<glyph unicode="&#x53c;" d="M333 1493h295l-240 -1233h631l-51 -260h-926z" />
+<glyph unicode="&#x53d;" d="M664 -27q-107 0 -168.5 27.5t-90.5 85.5q-26 53 -26 140q0 46 6.5 101t19.5 120l84 433h-129l-171 -880h-253l289 1493h254l-72 -373h383l-139 -715q-6 -32 -9 -56.5t-3 -45.5q0 -32 7 -52q8 -23 24 -33t40 -10t42.5 10t33.5 33t27.5 60t23.5 94l139 715h254l-131 -673 q-22 -112 -52.5 -206t-81.5 -155q-51 -60 -124.5 -86.5t-176.5 -26.5z" />
+<glyph unicode="&#x53e;" d="M480 -29q-77 0 -139 12.5t-110 35.5t-83 55.5t-58 72.5q-29 50 -42 110t-13 131q0 94 23 209q11 54 25.5 105t34 101.5t44.5 100.5t57 103h-134l95 486h237l-48 -245h46q66 63 139 113.5t151 85.5t158 54t159 19q45 0 91 -5.5t88 -16.5t75 -24t48 -26l-62 -317 q-19 30 -51.5 56t-72.5 45t-84.5 29.5t-90.5 10.5q-47 0 -92 -11t-90 -31q118 -22 203 -72.5t134 -127.5q34 -53 51 -118t17 -136q0 -36 -4.5 -82.5t-12.5 -92.5q-11 -62 -31 -123.5t-47 -119t-61 -108.5t-74 -93q-39 -41 -88 -75t-108 -59t-128.5 -38.5t-151.5 -13.5z M533 228q87 0 141.5 24t89.5 71q33 45 54 111.5t40 166.5q8 44 12.5 77t4.5 67q0 44 -8 79.5t-26 63.5q-32 49 -106.5 80t-205.5 37q-32 -47 -57 -94t-44.5 -96.5t-35 -103.5t-28.5 -114q-12 -57 -20 -112t-8 -96q0 -42 10 -71q16 -46 60 -68t127 -22z" />
+<glyph unicode="&#x53f;" d="M763 400q-26 -11 -51 -20t-53 -15t-60 -9.5t-72 -3.5q-130 0 -216 35t-134 103q-59 84 -59 229q0 93 24 213l109 561h295l-124 -635q-4 -18 -5.5 -36t-1.5 -33q0 -82 45 -126t131 -44q101 0 168 59.5t89 168.5l55 273h295l-218 -1120h-295z" />
+<glyph unicode="&#x540;" d="M239 251q-49 21 -92 47t-73 58q-23 24 -37.5 54.5t-14.5 67.5q0 16 3 34q11 64 83 149.5t214 188.5q106 77 244.5 159t292.5 160l-123 324h340l163 -420h-2l1 -1q-29 -12 -65 -28.5t-75 -35t-78 -38l-75 -37.5q-45 -23 -82.5 -42.5t-70.5 -37.5t-62.5 -35t-59.5 -34 q-62 -36 -114 -69t-85 -58q-40 -29 -60 -54q-23 -27 -23 -46q0 -12 8 -20q11 -11 26 -18l632 -283l-61 -311z" />
+<glyph unicode="&#x541;" d="M778 -64q-22 48 -45.5 92t-46.5 86q-97 -75 -195 -108t-197 -33q-165 0 -242 83q-29 31 -44 71.5t-15 91.5q0 22 2.5 42.5t5.5 36.5q15 79 52.5 141.5t92.5 105.5t124.5 65.5t147.5 22.5q90 0 167.5 -29t146.5 -83q27 45 49 87.5t39.5 86t31 88.5t23.5 95q19 95 19 165 q0 42 -6.5 74.5t-18.5 56.5q-22 44 -61 62.5t-98 18.5q-51 0 -98.5 -15.5t-88.5 -56.5t-72.5 -109t-51.5 -173l-5 -26h-295l5 26q17 90 43 163.5t59 133.5t71.5 106.5t80.5 81.5q89 74 192.5 105t212.5 31q114 0 205 -33.5t150 -108.5q40 -51 61.5 -123t21.5 -166 q0 -48 -5.5 -100.5t-16.5 -105.5q-16 -79 -41 -152t-60 -145q-33 -68 -75.5 -134t-91.5 -126q38 -57 69 -117.5t57 -124.5zM350 226q42 0 90 17.5t100 61.5q-39 35 -82.5 55t-83.5 20t-62.5 -20.5t-30.5 -56.5q-3 -12 -3 -23q0 -29 17.5 -41.5t54.5 -12.5z" />
+<glyph unicode="&#x542;" d="M807 1016q4 18 5.5 36t1.5 33q0 82 -44.5 126t-129.5 44q-103 0 -172 -63t-91 -176l-27 -141h-295l13 67q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-133 -682h146l-50 -260h-441z" />
+<glyph unicode="&#x543;" d="M232 0q-66 0 -120.5 15.5t-89.5 47.5q-28 26 -40.5 61t-12.5 76q0 15 1.5 32t5.5 36q6 30 23.5 78.5t56.5 118.5q32 57 74.5 119t97.5 134q48 62 100.5 126t105.5 125l-199 524h331l106 -279q76 69 153.5 125t156.5 96t160 61.5t166 21.5l-51 -265q-38 0 -83.5 -9.5 t-104.5 -41.5t-132.5 -89t-167.5 -153l281 -742l-42 -218h-776zM702 265l-166 436l-81 -99q-37 -45 -66 -87t-50 -78t-33.5 -64.5t-16.5 -47.5q0 -2 -0.5 -3t-0.5 -6q0 -30 28.5 -40.5t85.5 -10.5h300z" />
+<glyph unicode="&#x544;" d="M408 -29q-135 0 -224.5 33.5t-137.5 104.5q-29 43 -43.5 100t-14.5 133q0 49 6 100.5t17 108.5l182 942h295l-197 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -81 44.5 -125.5t129.5 -44.5q101 0 170.5 62t92.5 177l197 1016h441l-50 -260h-146l-133 -682q-30 -155 -80.5 -263.5 t-125.5 -178.5q-76 -71 -178.5 -104.5t-237.5 -33.5z" />
+<glyph unicode="&#x545;" d="M509 -29q-70 0 -127 10.5t-102.5 29t-80.5 44.5t-60 56q-41 48 -61 108t-20 126q0 44 9 91l1 9h298l-1 -9q-2 -11 -3 -21.5t-1 -19.5q0 -62 34 -105q23 -29 62 -46.5t99 -17.5t107.5 18t80.5 49q30 28 52 69t31 92q2 13 3.5 25t1.5 25q0 73 -49.5 115.5t-146.5 42.5h-603 l51 260h603q48 0 84 15t62 40q50 47 65 123q2 12 3.5 22.5t1.5 22.5q0 60 -38 89t-110 29q-173 0 -208 -169h-298q19 100 68.5 178.5t122.5 133.5q75 56 168 84t195 28q106 0 186.5 -29.5t133.5 -84.5q40 -42 61 -96t21 -120q0 -43 -9 -88q-22 -111 -76.5 -180.5 t-133.5 -107.5q49 -23 81 -59t49 -84q19 -53 19 -118q0 -27 -2.5 -50.5t-7.5 -46.5q-19 -97 -65.5 -184t-127.5 -156q-79 -67 -184 -105t-239 -38z" />
+<glyph unicode="&#x546;" d="M541 -29q-140 0 -227 34.5t-135 103.5q-30 44 -44.5 101t-14.5 133q0 49 6 100t17 108l133 682h-146l50 260h441l-197 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -82 44.5 -126t129.5 -44q103 0 172 63t91 176l27 141h295l-13 -67q-29 -148 -79 -258.5t-128 -183.5 q-76 -71 -178 -104.5t-237 -33.5z" />
+<glyph unicode="&#x547;" d="M469 -27q-116 0 -208 35t-150 111q-39 51 -60.5 122.5t-21.5 162.5q0 45 5 97t16 105q26 131 78.5 231t117.5 175q66 75 134.5 121.5t125.5 58.5q-20 9 -47.5 16.5t-54.5 12.5q-28 5 -51.5 8t-34.5 3h-93l51 261h165q22 0 56 -3t68 -9q16 -3 35 -7.5t37.5 -10t35 -11 t28.5 -10.5l463 -211l-60 -311l-275 126q-7 3 -23 8.5t-34 9.5q-18 3 -36.5 5.5t-34.5 2.5q-56 0 -108.5 -35.5t-100.5 -101.5t-81 -148.5t-53 -180.5q-18 -92 -18 -158q0 -41 6.5 -72.5t18.5 -55.5q22 -43 62 -61.5t95 -18.5q54 0 103 18t89 59q46 47 73 116.5t49 168.5 l4 18h295l-4 -18q-39 -176 -98.5 -294.5t-150.5 -195.5q-89 -74 -196.5 -106.5t-216.5 -32.5z" />
+<glyph unicode="&#x548;" d="M141 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-183 -942h-295l197 1016q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177l-197 -1016h-294z" />
+<glyph unicode="&#x549;" d="M77 265l60 310l269 -124q24 -11 60.5 -19.5t66.5 -8.5q63 0 116.5 39t102.5 112q47 69 82.5 159t58.5 202q9 61 9 111q0 106 -43.5 157.5t-139.5 51.5q-57 0 -106 -18.5t-88 -57.5q-43 -42 -69.5 -103t-42.5 -141l-12 -60h-295l5 22q32 144 83.5 260t129.5 197t186 124.5 t254 43.5q142 0 233.5 -41.5t144.5 -120.5q69 -104 69 -266q0 -42 -4.5 -87t-14.5 -95q-26 -134 -76 -237t-111 -181q-62 -78 -127 -128.5t-120 -72.5l134 -66l-59 -307z" />
+<glyph unicode="&#x54a;" d="M961 935q8 42 12 78t4 66q0 84 -31 134.5t-103 62.5l-162 -834h-254l162 833q-52 -9 -91.5 -34t-69.5 -66.5t-51 -101t-37 -138.5l-24 -120h-254l21 104q12 60 30 118.5t44 114t61 106.5t81 94q87 81 203.5 123.5t266.5 42.5q155 0 254.5 -44t150.5 -123 q31 -48 44.5 -108t13.5 -130q0 -88 -20 -194l-179 -919h-254z" />
+<glyph unicode="&#x54b;" d="M28 331h295l-13 -70q51 0 98 16.5t92 42.5q22 52 36.5 99.5t14.5 87.5q0 21 -5 39.5t-17 33.5q-23 26 -48.5 32.5t-61.5 8.5q-23 1 -55 2.5t-66 7t-68 17t-62 32.5q-43 33 -57.5 76t-14.5 83q0 28 4.5 62t12.5 69q14 66 36.5 123.5t60.5 120.5q36 58 87.5 113t124.5 100 q66 40 149.5 65.5t197.5 25.5q195 0 304 -87q54 -43 84 -101t41 -125q5 -26 6.5 -53t1.5 -54q0 -60 -6.5 -112t-15.5 -95q-20 -97 -57 -183.5t-93 -166.5t-135 -155t-176 -125h279l-51 -261h-986zM745 557q14 20 27 43t25 45.5t21.5 44t16.5 38.5q18 45 29 84t18 73 q8 41 13 81t5 77q0 54 -12 98q-14 49 -54 81.5t-118 32.5q-72 0 -126.5 -27t-92.5 -69q-37 -41 -59 -90.5t-31 -94.5q-3 -23 -3 -39q0 -50 39 -68q15 -7 29 -8t31 -2q25 -1 52 -4.5t53 -11t50.5 -21t44.5 -33.5q26 -26 41 -62t15 -82q0 -10 -1 -22.5t-4 -26.5q-3 -21 -9 -37 z" />
+<glyph unicode="&#x54c;" d="M118 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33q128 0 220 -31.5t143 -105.5q58 -85 58 -234q0 -49 -6 -100.5t-17 -108.5l-52 -268h146l-51 -260h-146l-80 -414h-295l197 1016q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177 l-197 -1016h-294z" />
+<glyph unicode="&#x54d;" d="M467 -29q-139 0 -226.5 35t-134.5 103q-29 42 -44 98t-15 132q0 48 6 100t17 112l183 942h295l-197 -1016q-4 -18 -5.5 -36t-1.5 -33q0 -81 44.5 -125.5t129.5 -44.5q101 0 170.5 62t92.5 177l197 1016h295l-183 -942q-30 -155 -81 -264t-125 -178q-73 -69 -175 -103.5 t-242 -34.5z" />
+<glyph unicode="&#x54e;" d="M690 400q-26 -12 -52 -21t-53.5 -15t-59.5 -9t-70 -3q-125 0 -214 34t-137 104q-29 43 -43.5 99.5t-14.5 133.5q0 47 5.5 97t17.5 112l13 67h295l-28 -141q-4 -18 -5.5 -35.5t-1.5 -32.5q0 -82 45 -126.5t131 -44.5q96 0 165 57t92 171l128 646h295l-240 -1233h146 l-51 -260h-441z" />
+<glyph unicode="&#x54f;" d="M482 -29q-125 0 -215 34.5t-147 97.5q-84 93 -84 240q0 24 2.5 50t7.5 54h307q-9 -45 -9 -80q0 -41 10.5 -67.5t29.5 -43.5q28 -26 65.5 -33.5t72.5 -7.5q62 0 104.5 16.5t73.5 49.5q32 34 48 77.5t17 88.5q0 22 -4 40t-14 33.5t-27.5 30.5t-44.5 30q-22 13 -46 24 t-53 23q-68 28 -120.5 52t-101.5 57q-55 38 -90 85.5t-49 115.5q-4 17 -5.5 35t-1.5 35q0 52 11.5 99t25.5 83q19 48 48 93.5t74 90.5q40 39 95.5 73t134.5 54q36 9 75 14t90 5q130 0 217.5 -32t137.5 -87q37 -41 54 -91t17 -107q0 -20 -2 -41t-6 -42h-300q4 19 4 38 q0 35 -12.5 56.5t-32.5 34.5q-26 17 -60 21.5t-60 4.5q-38 0 -70 -7.5t-60 -25.5t-49 -47.5t-30 -74.5q-3 -15 -3 -28q0 -34 18 -64t63 -59q25 -16 53 -29.5t48 -21.5q22 -9 52 -21.5t61.5 -27t62.5 -31t55 -32.5q53 -35 93.5 -87.5t54.5 -123.5q6 -32 6 -68q0 -67 -20 -143 t-58 -141q-47 -81 -122 -142.5t-175 -95.5q-99 -34 -217 -34z" />
+<glyph unicode="&#x550;" d="M171 942q29 148 79 259t128 184q75 71 177.5 104t237.5 33t224.5 -33t138.5 -104q29 -43 43.5 -100t14.5 -134q0 -47 -5.5 -97t-17.5 -112l-13 -67h-295l27 141q4 18 5.5 36t1.5 33q0 81 -44.5 125.5t-129.5 44.5q-101 0 -170.5 -62t-92.5 -177l-197 -1016h-294z" />
+<glyph unicode="&#x551;" d="M509 -27q-131 0 -222 36.5t-148 103.5q-41 48 -61 108t-20 126q0 44 9 91l1 9h298l-1 -9q-2 -11 -3 -21.5t-1 -19.5q0 -62 34 -105q23 -29 62 -46.5t100 -17.5q56 0 103 16.5t85 51.5q37 34 55.5 74.5t26.5 85.5q2 11 3 22.5t1 21.5q0 28 -7.5 53t-27.5 48 q-24 28 -63 44.5t-96 16.5h-604l51 260h182q-12 28 -17.5 56t-5.5 55q0 32 6 62q17 90 62.5 167.5t122.5 137.5q72 57 163.5 87.5t206.5 30.5q113 0 193.5 -30t131.5 -87q74 -83 74 -212q0 -46 -9 -95q-17 -93 -69 -167.5t-140 -114.5q54 -26 86 -67.5t47 -89.5 q8 -27 12 -55.5t4 -54.5q0 -24 -2.5 -46t-6.5 -43q-18 -98 -65.5 -185t-127.5 -155t-185 -105.5t-238 -37.5zM687 922q50 0 85.5 14t61.5 38q26 25 40.5 55t21.5 65q5 28 5 50q0 20 -4 37.5t-13 31.5q-14 21 -44.5 35.5t-85.5 14.5q-51 0 -87.5 -13.5t-60.5 -36.5t-39 -56.5 t-20 -62.5q-2 -14 -3.5 -26.5t-1.5 -25.5q0 -41 17 -68q15 -24 46 -38t82 -14z" />
+<glyph unicode="&#x552;" d="M287 1493h295l-73 -373h714l-50 -260h-714l-168 -860h-294z" />
+<glyph unicode="&#x553;" d="M368 138q-135 6 -213.5 52.5t-114.5 128.5q-18 41 -26 89.5t-8 100.5t7 119.5t20 136.5q25 134 70 247t111 190q71 84 167.5 124t226.5 45l24 122h255l-24 -122q135 -5 214.5 -48t117.5 -121q20 -42 28.5 -90t8.5 -99t-7 -115.5t-20 -132.5q-26 -140 -71.5 -253.5 t-112.5 -194.5q-65 -79 -160 -126.5t-238 -53.5l-27 -137h-255zM564 1143q-74 -3 -119.5 -24.5t-74.5 -66.5q-31 -48 -48 -117.5t-37 -169.5q-14 -73 -23.5 -129.5t-9.5 -105.5q0 -35 6 -62q11 -49 47 -74t108 -28zM668 366q78 3 123.5 30.5t72.5 72.5q29 49 48 124t38 172 q14 74 23.5 132t9.5 101q0 30 -6 54q-12 46 -49 67t-109 24z" />
+<glyph unicode="&#x554;" d="M79 154h-145l50 260h145l125 643q20 106 66 189t115 142q72 62 170.5 96t226.5 34q130 0 216 -35.5t135 -97.5q35 -45 51 -100t16 -117q0 -28 -3 -56t-8 -57q-18 -97 -64 -182t-121 -149q-78 -66 -177 -99.5t-211 -33.5q-48 0 -96 9t-102 40l-44 -226h669l-50 -260h-669 l-30 -154h-295zM708 846q56 0 95 14.5t66 41.5t43.5 66t25.5 87q4 20 6 37.5t2 34.5q0 48 -19 79q-17 28 -51 42q-35 15 -93 15q-59 0 -98.5 -15t-66.5 -42t-43 -65t-25 -84q-8 -40 -8 -70q0 -49 21 -82q17 -28 52 -43.5t93 -15.5z" />
+<glyph unicode="&#x555;" d="M497 -29q-212 0 -324 127t-112 384q0 92 14 194.5t38.5 202t58.5 190.5t74 160q82 144 203 217.5t286 73.5q211 0 323.5 -126t112.5 -383q0 -85 -12.5 -184.5t-36 -199.5t-57 -194t-76.5 -169q-82 -144 -204 -218.5t-288 -74.5zM528 233q63 0 108.5 35.5t82.5 104.5 q25 46 47.5 109t43.5 148q12 50 23 102.5t18.5 104t12 99.5t4.5 88q0 236 -163 236q-65 0 -110 -36t-81 -105q-23 -43 -46 -105.5t-46 -152.5q-15 -60 -26 -119t-17.5 -112.5t-10 -97.5t-3.5 -74q0 -107 40 -166t123 -59z" />
+<glyph unicode="&#x556;" d="M466 -29q-129 0 -218 19.5t-147 56.5t-87 89.5t-38 118.5q-2 17 -3.5 35.5t-1.5 40.5q0 51 7.5 109t20.5 122h250q-12 -60 -19.5 -109t-7.5 -86q0 -20 2 -35t6 -29q13 -45 50.5 -66t106.5 -24l131 677q-179 8 -260 82q-60 55 -60 152q0 19 2 34.5t5 31.5q15 78 46 135 t85 95t131.5 55.5t188.5 17.5h234l-72 -375q137 -5 217 -44.5t117 -107.5q21 -38 30.5 -85.5t9.5 -95.5q0 -40 -6 -100.5t-17 -122.5q-14 -75 -38.5 -156.5t-59.5 -150.5q-32 -63 -81.5 -116.5t-124.5 -91.5q-73 -37 -171.5 -56.5t-227.5 -19.5zM591 1263q-36 0 -60 -5 t-39 -14q-15 -10 -22 -23.5t-10 -30.5q-1 -5 -1.5 -10.5t-0.5 -10.5q0 -19 14 -30q11 -9 33 -13.5t58 -4.5zM642 213q75 3 120 25t73 65t45 108.5t34 150.5q12 61 19.5 108.5t7.5 84.5q0 34 -7 56q-12 38 -49 57t-112 22z" />
+<glyph unicode="&#x559;" d="M771 986q-61 0 -108 22t-78 61q-25 32 -36.5 69t-11.5 77q0 69 32 137t95 121q45 38 100 60.5t118 22.5l-30 -154q-30 0 -58.5 -13t-51 -34.5t-36 -49.5t-13.5 -59q0 -45 30 -75.5t78 -30.5l-30 -154v0z" />
+<glyph unicode="&#x55a;" d="M519 1224l53 271h313l-53 -271l-270 -383h-216z" />
+<glyph unicode="&#x55b;" d="M592 1638h403l-441 -376h-318z" />
+<glyph unicode="&#x55c;" d="M81 1265q17 76 54.5 139.5t90.5 111.5t118.5 79.5t140.5 45.5q92 17 158.5 32t124.5 39q55 23 86.5 49t44.5 68h251q-11 -63 -36.5 -125.5t-69.5 -119.5q-24 -30 -49.5 -53t-56 -40.5t-68 -31t-84.5 -25.5q-43 -11 -80.5 -17t-80.5 -14q-82 -15 -142.5 -31t-101.5 -42 t-48 -65h-252v0z" />
+<glyph unicode="&#x55d;" d="M309 1638h403l210 -376h-318z" />
+<glyph unicode="&#x55e;" d="M777 1209q-55 0 -100.5 13t-79.5 40q-32 26 -52 66t-20 100v12.5t1 13.5h165q0 -32 23.5 -46.5t57.5 -14.5q30 0 48.5 9t32.5 23q18 17 24 33t11 37q2 7 2 10.5v5.5q0 32 -11.5 50t-34.5 32q-26 16 -62 23.5t-78 7.5q-82 0 -160 -27t-146 -76t-117 -113.5t-72 -142.5 h-194q21 90 63.5 168t101.5 144q60 68 131 119t149 86q79 36 160 55t165 19q102 0 179 -27.5t125 -75.5q76 -76 76 -188q0 -15 -1.5 -31.5t-5.5 -33.5q-12 -57 -42 -108t-80 -93q-49 -41 -113.5 -65.5t-145.5 -24.5z" />
+<glyph unicode="&#x55f;" d="M216 1556h140l-33 -169h716l-24 -122h-856z" />
+<glyph unicode="&#x561;" d="M201 -27q-70 0 -115.5 25t-62.5 75q-13 36 -13 104q0 58 9 135t29 177l123 631h240l-140 -719q-8 -44 -12.5 -76t-4.5 -56q0 -10 1 -19t3 -17q7 -24 21 -32.5t39 -8.5q26 0 44.5 9t34.5 34t28 64.5t24 101.5l140 719h237l-140 -719q-16 -80 -16 -129q0 -11 1 -20t3 -17 q6 -22 20 -32.5t43 -10.5q24 0 42.5 8.5t33.5 32.5t27 64.5t24 103.5l140 719h240l-218 -1120h-213l23 116q-18 -32 -43 -58t-55 -45t-63 -29.5t-67 -10.5q-36 0 -65.5 11t-52.5 30q-21 17 -35.5 41.5t-14.5 56.5q-50 -77 -108 -108t-131 -31z" />
+<glyph unicode="&#x562;" d="M266 1120h291l-33 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-54 -277h-291l45 232q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-81 -416h644l-44 -225h-644l-82 -426h-290z" />
+<glyph unicode="&#x563;" d="M676 158q-75 -96 -154 -141.5t-177 -45.5q-95 0 -163 39t-106 114q-23 44 -34.5 98.5t-11.5 123.5q0 95 23 213q26 135 73 244t119 190q69 78 149.5 116t173.5 38q106 0 169.5 -49t92.5 -146l62 168h263l-174 -895h109l-44 -225h-109l-82 -426h-292zM482 215 q50 0 91.5 24.5t76.5 68.5q34 43 60.5 104t43.5 149q7 37 10.5 69.5t3.5 62.5q0 71 -20 122q-37 92 -132 92q-94 0 -166 -92q-35 -45 -62 -109t-42 -145q-6 -32 -10 -68t-4 -68q0 -35 5 -64.5t14 -53.5q35 -92 131 -92z" />
+<glyph unicode="&#x564;" d="M763 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-125 -641h-291l218 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-98 -502h128l-44 -225h-128l-82 -426h-291z" />
+<glyph unicode="&#x565;" d="M348 -29q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l227 1165h293l-85 -436h654l-44 -225h-654l-89 -459q-12 -60 -12 -103q0 -122 108 -122q84 0 142.5 67t84.5 199l47 243h293l-140 -720h-293l32 166q-50 -95 -133.5 -145t-192.5 -50z" />
+<glyph unicode="&#x566;" d="M686 158q-75 -96 -154 -141.5t-177 -45.5q-95 0 -163 39t-106 114q-23 44 -34.5 98.5t-11.5 123.5q0 95 23 213q26 135 73 244t119 190q69 78 149.5 116t173.5 38q106 0 169.5 -49t92.5 -146l62 168h263l-257 -1321h109l-43 -225h-401zM492 215q50 0 91.5 24.5t76.5 68.5 q34 43 60.5 104t43.5 149q7 37 10.5 69.5t3.5 62.5q0 71 -20 122q-37 92 -132 92q-94 0 -166 -92q-35 -45 -62 -109t-42 -145q-6 -32 -10 -68t-4 -68q0 -35 5 -64.5t14 -53.5q35 -92 131 -92z" />
+<glyph unicode="&#x567;" d="M331 1556h293l-85 -436h579l-44 -225h-579l-130 -670h494l-44 -225h-787z" />
+<glyph unicode="&#x568;" d="M266 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-142 -727h-291l133 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-164 -842h644l-43 -225h-934z" />
+<glyph unicode="&#x569;" d="M201 1120h262l-4 -168q25 46 67.5 82.5t94.5 61.5q51 25 107.5 38t110.5 13q51 0 101 -12.5t92 -40.5t73 -72.5t48 -110.5q8 -33 12 -71.5t4 -78.5q0 -92 -22 -202h69l-28 -143h-77q-40 -132 -96.5 -217t-121.5 -136t-132.5 -71.5t-133.5 -20.5q-74 0 -126 20.5t-84 55.5 q-51 56 -51 144q0 30 6 63q14 79 52.5 136t89.5 95t109.5 56t120.5 18h102q8 38 13 77t5 77q0 47 -10 81q-15 52 -57.5 83.5t-109.5 31.5q-55 0 -99.5 -20.5t-77.5 -49.5q-40 -35 -70 -86.5t-41 -111.5l-207 -1067h-290zM653 107q34 0 58.5 13t42.5 48q17 33 29.5 85.5 t28.5 132.5l6 30h-102q-32 0 -57 -11t-46 -29q-26 -22 -43.5 -51.5t-25.5 -70.5q-2 -11 -3 -21t-1 -18q0 -38 16 -64q13 -20 36.5 -32t60.5 -12z" />
+<glyph unicode="&#x56a;" d="M406 -29q-90 0 -156 22t-114 62t-76.5 94t-41.5 120q-5 29 -8 59t-3 62q0 79 17 167q22 114 69 215.5t124 180.5q78 81 180 124t233 43h205l85 436h292l-85 -436h109l-44 -225h-109l-66 -338q-16 -81 -42.5 -154t-62.5 -134q-39 -66 -90.5 -121t-111.5 -93 q-63 -40 -138.5 -62t-165.5 -22zM452 211q57 0 101.5 25t78.5 73q32 45 55 108t38 140l66 338h-205q-57 0 -100.5 -23t-75.5 -67t-55 -106t-38 -141q-8 -44 -12.5 -83t-4.5 -73q0 -27 3 -51.5t10 -44.5q15 -46 49 -70.5t90 -24.5z" />
+<glyph unicode="&#x56b;" d="M359 1556h291l-117 -604q48 92 131.5 143.5t196.5 51.5q125 0 189 -66t64 -200q0 -35 -4.5 -73t-12.5 -81l-141 -727h-291l132 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-84 0 -143 -68.5t-85 -199.5l-207 -1067h-290z" />
+<glyph unicode="&#x56c;" d="M508 1120h291l-257 -1321h286l-44 -225h-577z" />
+<glyph unicode="&#x56d;" d="M261 1556h237l-98 -512q42 57 93 80t108 23q19 0 44.5 -4t49.5 -18q21 -13 41 -40t30 -76q4 -20 6 -42.5t2 -50.5q0 -39 -5 -88t-16 -109l-60 -318q-8 -43 -12.5 -75t-4.5 -56q0 -22 4 -35q7 -24 21.5 -33.5t41.5 -9.5q26 0 43.5 9t32.5 32t27.5 63.5t24.5 104.5l139 719 h240l-217 -1120h-213l22 116q-41 -69 -101.5 -106t-135.5 -37q-23 0 -46 4.5t-45 17.5q-24 14 -42.5 40.5t-28.5 76.5q-4 20 -6 42t-2 50q0 40 5 88.5t16 108.5l60 318q8 43 12.5 74.5t4.5 56.5q0 10 -1 19t-3 17q-6 21 -19.5 31.5t-42.5 10.5q-25 0 -43.5 -9t-33.5 -32 t-27.5 -63.5t-24.5 -104.5l-222 -1145h-239z" />
+<glyph unicode="&#x56e;" d="M465 -29q-125 0 -214.5 41.5t-141.5 122.5q-35 55 -51 122t-16 140q0 37 4 77.5t12 84.5q17 88 49 168t82 148q49 67 113 117t148 82l-177 138l314 344l190 -144l-124 -137l203 -155h337l-44 -225h-91q22 -51 34.5 -107t12.5 -122q0 -31 -2.5 -56t-7.5 -51 q-23 -127 -78 -234.5t-140 -188.5q-88 -85 -190 -125t-222 -40zM507 211q63 0 110 28t82 73q37 48 63 112t40 135q5 28 8 52.5t3 47.5q0 27 -4 51t-11 45q-13 38 -37 68t-58 56l-21 16h-42q-56 0 -102.5 -23.5t-83.5 -67t-63 -105.5t-40 -140q-6 -32 -10 -69t-4 -69 t4.5 -61.5t14.5 -53.5q19 -46 56.5 -70.5t94.5 -24.5z" />
+<glyph unicode="&#x56f;" d="M696 166q-50 -95 -133.5 -145t-192.5 -50q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l226 1165h293l-218 -1120q-12 -60 -12 -102q0 -63 27.5 -93t82.5 -30q88 0 144.5 70.5t80.5 195.5l125 643h293l-300 -1546h-293z" />
+<glyph unicode="&#x570;" d="M358 1556h291l-116 -604q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -29 96.5t-83 30.5q-85 0 -142.5 -71t-83.5 -207l-121 -629h-293z" />
+<glyph unicode="&#x571;" d="M342 -29q-49 0 -87.5 9.5t-68.5 26.5t-51 40.5t-35 51.5q-17 35 -25 76t-8 88q0 66 15 140q17 85 55.5 175t105.5 190q63 93 143 181.5t179 170.5q-60 1 -99 20t-60 49q-15 21 -22 46t-7 51q0 13 1.5 25.5t3.5 24.5q8 39 25.5 76t41.5 65l67 79h289l-74 -85 q-22 -25 -34 -48.5t-18 -48.5q-1 -6 -1.5 -12t-0.5 -12q0 -34 21.5 -55t54.5 -21q14 0 24 4t23 12l134 79l-44 -249q-19 -10 -38 -21t-38 -24q89 -54 140 -114.5t74 -126.5q12 -35 17 -72.5t5 -73.5q0 -38 -5 -80t-14 -88l-101 -520h-293l32 166q-24 -46 -58.5 -81.5 t-72.5 -59.5q-42 -26 -90 -40t-106 -14zM507 211q48 0 85 24t65 62q27 38 45 84t27 91l17 86q7 34 11 69.5t4 68.5q0 38 -6 71q-10 52 -40 92t-84 65q-48 -47 -90 -108.5t-75.5 -127.5t-56 -132t-30.5 -121q-2 -16 -4 -34.5t-2 -34.5q0 -23 4.5 -45.5t13.5 -41.5 q15 -31 44.5 -49.5t71.5 -18.5z" />
+<glyph unicode="&#x572;" d="M773 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-86 0 -144.5 -70t-83.5 -198l-125 -641h-291l218 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-181 -928h128l-43 -225h-419z" />
+<glyph unicode="&#x573;" d="M365 -29q-91 0 -149.5 36t-90.5 105q-17 37 -25 81t-8 92q0 38 4 76t12 78q10 53 26 110.5t37 116t46.5 116.5t54.5 113h-105l44 225h205q70 92 145 163t159 124q83 52 170.5 81t178.5 29q14 0 30.5 -1t34.5 -4q9 -2 28.5 -6.5t30.5 -14.5l-49 -248q-20 15 -39.5 24 t-37.5 14q-16 4 -27 5t-22 1q-47 0 -88 -13t-79 -37q-40 -25 -76 -58t-70 -73q97 -20 172 -70t123 -119q35 -52 53.5 -112t18.5 -126q0 -46 -9 -92l-114 -587h-293l32 166q-49 -94 -133 -144.5t-190 -50.5zM520 211q91 0 148 71t81 195l31 160q3 16 3 33q0 31 -10 63t-31 61 q-27 37 -73 63.5t-107 34.5q-27 -52 -51 -106t-43 -106.5t-33 -100.5t-21 -88q-7 -36 -10 -69t-3 -57q0 -39 8 -69q9 -34 24 -50t31 -24q17 -8 32 -9.5t24 -1.5z" />
+<glyph unicode="&#x574;" d="M318 -29q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l142 729h293l-133 -684q-12 -60 -12 -103q0 -122 109 -122q84 0 142 67.5t84 198.5l210 1079h421l-44 -225h-128l-259 -1331h-264l3 166q-50 -95 -133.5 -145t-192.5 -50z" />
+<glyph unicode="&#x575;" d="M-34 -199h234q98 0 150 55q27 29 45.5 75t31.5 112l210 1077h293l-210 -1077q-24 -125 -62.5 -214t-98.5 -146q-58 -57 -136.5 -82t-184.5 -25h-316z" />
+<glyph unicode="&#x576;" d="M395 -27q-125 0 -189.5 66.5t-64.5 200.5q0 35 4.5 72.5t12.5 80.5l183 938h-128l43 225h419l-217 -1118q-12 -62 -12 -103q0 -64 27.5 -94t81.5 -30q86 0 144.5 70t83.5 198l125 641h291l-218 -1120h-262l4 168q-51 -95 -135 -145t-193 -50z" />
+<glyph unicode="&#x577;" d="M173 -426q-45 0 -82 15.5t-63 47.5q-17 21 -27.5 48t-10.5 59q0 8 1 18.5t3 20.5q12 58 46 112t88 113q56 61 118.5 116t136.5 115q58 47 101 83t76.5 66t60.5 57t53 56q48 56 77 108.5t40 110.5q2 12 3.5 23t1.5 23q0 56 -30 95q-19 25 -51.5 40.5t-76.5 15.5 q-37 0 -74.5 -12t-71.5 -35q-33 -22 -62 -52.5t-47 -65.5l-179 154q42 57 98.5 101t121.5 75t132 47t140 16q101 0 183.5 -30t134.5 -85q39 -42 59.5 -97t20.5 -122q0 -43 -9 -91t-26.5 -94t-46.5 -93q-27 -44 -69 -94t-103 -109q-32 -31 -67 -62.5t-74.5 -64.5t-83.5 -69.5 t-95 -77.5q-31 -25 -53.5 -44t-41.5 -35.5t-35 -32t-33 -33.5q-27 -29 -43 -51t-16 -38q0 -12 9.5 -17.5t23.5 -5.5h530l-44 -225h-644v0z" />
+<glyph unicode="&#x578;" d="M262 1120h264l-3 -168q48 91 130 143t191 52q124 0 193 -69t69 -196q0 -32 -4.5 -69t-13.5 -85l-141 -728h-293l133 682q5 26 7.5 53t2.5 45q0 66 -28.5 96.5t-82.5 30.5q-85 0 -143 -71.5t-84 -206.5l-121 -629h-293z" />
+<glyph unicode="&#x579;" d="M244 -426q-41 0 -75 15.5t-57 44.5q-17 23 -25.5 52t-8.5 63q0 11 1 25t4 28q10 51 35.5 110.5t64.5 127.5q38 66 85.5 134t101.5 134q53 65 109.5 125.5t111.5 111.5q-49 3 -91 23.5t-71 55.5q-23 26 -35 59.5t-12 82.5q0 2 0.5 14t4.5 31q12 61 49.5 126.5t107.5 125.5 l144 123l155 -172l-79 -64q-44 -35 -72 -69.5t-36 -65.5q-3 -14 -3 -26q0 -38 25.5 -62t75.5 -24q35 0 80 13.5t100 42.5l65 -176q-79 -55 -154 -118.5t-144 -132.5q-66 -66 -122 -131.5t-99 -126.5q-84 -120 -102 -198q-2 -10 -3 -18.5t-1 -15.5q0 -23 10 -33t30 -10h450 l-44 -225h-576v0z" />
+<glyph unicode="&#x57a;" d="M782 85q-38 -54 -90.5 -83t-106.5 -29q-34 0 -63.5 11t-52.5 30q-21 17 -35.5 41.5t-14.5 56.5q-51 -77 -108 -108t-131 -31q-65 0 -112 23t-66 77q-13 36 -13 104q0 58 9 135t29 177l123 631h240l-140 -719q-8 -44 -12.5 -76.5t-4.5 -56.5q0 -22 4 -35q5 -26 21.5 -33.5 t36.5 -7.5q29 0 48 10.5t33 32.5q29 44 52 166l140 719h237l-140 -719q-16 -80 -16 -129q0 -11 1 -20t3 -17q7 -24 21 -33.5t41 -9.5q26 0 43.5 9t32.5 32t27.5 63.5t24.5 104.5l140 719h240l-301 -1546h-240z" />
+<glyph unicode="&#x57b;" d="M213 -426q-49 0 -86 17t-60 46q-18 22 -28 48t-10 56q0 8 1 18t3 19q7 30 25.5 70.5t53.5 90.5q38 53 75 90.5t76 72.5q16 15 30.5 29.5t25.5 31t19.5 36t14.5 45.5q2 10 3 20t1 18q0 36 -13.5 64.5t-32.5 52.5q-8 10 -24 29t-30 34q-32 37 -54.5 73t-33.5 88 q-2 11 -3.5 23.5t-1.5 27.5q0 47 13 92.5t34 85.5q27 51 68 96.5t91 80.5q52 37 111.5 62.5t120.5 39.5q32 7 63 10.5t68 3.5q100 0 182.5 -27t136.5 -81q41 -41 62.5 -95t21.5 -123q0 -43 -9 -89q-17 -91 -61 -171.5t-115 -158.5q-68 -75 -165.5 -157t-221.5 -181 q-54 -43 -92 -77t-67 -63q-33 -35 -50.5 -61.5t-17.5 -41.5q0 -20 34 -20h530l-44 -225h-644zM512 312q63 55 109.5 98t81.5 80q18 19 31.5 35t24 30t19 27.5t16.5 28.5q17 32 24.5 56t12.5 53q2 12 3 21t1 20q0 33 -7 55t-18 39q-19 28 -51 45t-73 17q-39 0 -78.5 -15 t-70.5 -36t-57 -51.5t-35 -69.5q-4 -19 -4 -39q0 -32 6.5 -52t16.5 -39q9 -17 16.5 -28t15.5 -22q17 -24 31.5 -48.5t22.5 -52.5q4 -15 4 -29q0 -27 -9.5 -56.5t-32.5 -66.5z" />
+<glyph unicode="&#x57c;" d="M253 1120h262l-4 -168q21 43 56 79.5t73 60.5q42 26 91.5 40.5t106.5 14.5q91 0 151 -34.5t92 -93.5q40 -72 40 -178q0 -29 -3 -57t-8 -57q-14 -74 -43 -147.5t-70 -139.5q-39 -64 -84 -118t-93 -97h258l-44 -225h-515l34 175q56 52 94 100.5t68 104.5q31 57 51.5 118 t33.5 127q5 28 8.5 55t3.5 58q0 24 -2.5 45.5t-9.5 40.5q-14 41 -45 63t-79 22t-84 -21.5t-64 -57.5q-56 -72 -77 -185l-125 -645h-291z" />
+<glyph unicode="&#x57d;" d="M374 -29q-123 0 -192.5 70t-69.5 203q0 29 4 64t13 83l143 729h291l-131 -684q-5 -27 -7.5 -53.5t-2.5 -44.5q0 -65 29 -96t83 -31q80 0 138 67.5t86 210.5l122 631h291l-217 -1120h-264l4 166q-45 -91 -128 -143t-192 -52z" />
+<glyph unicode="&#x57e;" d="M667 166q-50 -95 -133.5 -145t-192.5 -50q-125 0 -190 66.5t-65 200.5q0 35 4.5 73t12.5 80l141 729h293l-133 -684q-12 -60 -12 -102q0 -63 27.5 -93t82.5 -30q88 0 144.5 70.5t80.5 195.5l210 1079h293l-341 -1757h138l-44 -225h-431z" />
+<glyph unicode="&#x57f;" d="M200 -27q-90 0 -132 56t-42 168q0 43 6 92.5t18 111.5l139 719h237l-139 -719q-8 -43 -12.5 -74.5t-4.5 -55.5q0 -10 1 -19t3 -17q7 -25 22 -34t40 -9q23 0 41 8t33 29q16 22 27 56t22 91l145 744h213l-22 -116q38 64 98 103.5t138 39.5q89 0 131.5 -55t42.5 -166 q0 -42 -6 -94t-18 -113l-139 -719h-237l139 719q8 43 12.5 74.5t4.5 56.5q0 10 -1 19t-3 17q-6 21 -20 31.5t-43 10.5q-23 0 -41 -8t-32 -28q-16 -23 -27 -59t-22 -90l-145 -743h-213l22 116q-38 -64 -98 -103.5t-138 -39.5z" />
+<glyph unicode="&#x580;" d="M289 1120h262l-4 -168q51 95 135 145t193 50q125 0 189.5 -66.5t64.5 -200.5q0 -35 -4.5 -72.5t-12.5 -80.5l-142 -727h-291l133 682q12 61 12 103q0 64 -27.5 94t-81.5 30q-84 0 -143 -68.5t-85 -199.5l-207 -1067h-291z" />
+<glyph unicode="&#x581;" d="M408 -424q-103 0 -193 15t-178 44l54 265q75 -45 157.5 -67.5t165.5 -22.5q66 0 115.5 14.5t85 44.5t58 75t34.5 107l27 133q-56 -86 -133.5 -127t-172.5 -41q-78 0 -141 26.5t-107.5 77.5t-68.5 124.5t-24 167.5q0 64 11.5 134.5t32 139t49.5 132t64 114.5 q72 104 171 161.5t207 57.5q104 0 171 -55t88 -158l65 182h263l-203 -1036q-27 -138 -73 -235t-118 -157.5t-172 -88t-235 -27.5zM535 246q60 0 112 36.5t91 97.5t61.5 140t22.5 164q0 115 -40.5 170t-109.5 55q-59 0 -111 -36t-91 -96.5t-61.5 -139.5t-22.5 -166 q0 -115 39.5 -170t109.5 -55z" />
+<glyph unicode="&#x582;" d="M366 1120h293l-174 -895h563l-43 -225h-856z" />
+<glyph unicode="&#x583;" d="M406 104q-42 -72 -95 -101.5t-114 -29.5q-88 0 -130 56t-42 168q0 43 6 92.5t18 111.5l139 719h237l-139 -719q-8 -43 -12.5 -74.5t-4.5 -55.5q0 -10 1 -19t3 -17q7 -24 21.5 -33.5t34.5 -9.5q16 0 33.5 7t36.5 30t34 58t26 89l229 1180h240l-105 -541q38 65 91 98.5 t120 33.5q86 0 128 -56t42 -166q0 -85 -24 -206l-139 -719h-237l139 719q8 43 12.5 74.5t4.5 56.5q0 10 -1 19t-3 17q-5 16 -17 29t-41 13q-22 0 -39 -9t-34 -32q-19 -26 -33.5 -65.5t-26.5 -102.5l-222 -1145h-240z" />
+<glyph unicode="&#x584;" d="M-5 -358h-109l44 225h109l243 1253h263l-4 -168q132 195 337 195q91 0 159 -37.5t107 -117.5q22 -45 33 -100.5t11 -118.5q0 -44 -5 -100.5t-16 -113.5q-25 -137 -74.5 -246.5t-118.5 -187.5q-69 -77 -151 -115.5t-176 -38.5q-98 0 -160 45t-100 142l-56 -291h663 l-44 -225h-663l-13 -68h-292zM603 215q95 0 167 92q17 21 32.5 49t28.5 60t23.5 68t18 73t11.5 72.5t4 67.5q0 66 -17 114.5t-52 72.5q-34 23 -81 23q-48 0 -90.5 -23.5t-77.5 -68.5q-38 -48 -64.5 -113t-40.5 -141q-6 -32 -10 -67t-4 -67q0 -70 20 -119q18 -45 51 -69 t81 -24z" />
+<glyph unicode="&#x585;" d="M533 -29q-103 0 -185.5 30.5t-140 91t-88.5 151t-31 210.5q0 91 18 178t53.5 164t87.5 142t120 112t151.5 73t181.5 26q103 0 185.5 -30.5t140 -91t88.5 -151t31 -211.5q0 -137 -40.5 -262.5t-118.5 -221.5t-192 -153t-261 -57zM557 207q67 0 121.5 40t92.5 104.5 t58.5 146.5t20.5 166q0 128 -46 187.5t-125 59.5q-71 0 -126.5 -41t-93 -106.5t-57 -146.5t-19.5 -161q0 -128 47.5 -188.5t126.5 -60.5z" />
+<glyph unicode="&#x586;" d="M352 -3q-66 5 -127 24.5t-115 51.5t-98 74.5t-72 94.5l222 192q21 -54 45.5 -89.5t54.5 -59.5q28 -23 59.5 -35.5t75.5 -19.5l125 639q-94 0 -160.5 25t-107.5 70q-30 33 -45.5 77t-15.5 95q0 20 2 38.5t6 38.5q31 157 153 248q61 45 143.5 70t188.5 25h209l-86 -442 q126 -7 203.5 -45.5t116.5 -107.5q23 -40 33.5 -88.5t10.5 -105.5q0 -45 -6 -94t-15 -96q-23 -121 -65.5 -225t-110.5 -181q-67 -76 -161 -121.5t-223 -52.5l-82 -423h-240zM610 1325q-76 0 -116 -23t-51 -83q-3 -17 -3 -29q0 -42 32.5 -57t97.5 -15zM637 229q66 11 108 41 t73 74t52.5 100t35.5 130q12 63 12 115q0 25 -3.5 47t-11.5 41q-16 36 -50.5 58.5t-91.5 28.5z" />
+<glyph unicode="&#x587;" d="M305 -29q-125 0 -189.5 66t-64.5 200q0 35 4.5 73t12.5 81l226 1165h293l-218 -1120q-12 -60 -12 -103q0 -122 109 -122q84 0 142 67.5t84 198.5l125 643h293l-174 -895h240l-44 -225h-533l32 166q-48 -92 -130.5 -143.5t-195.5 -51.5z" />
+<glyph unicode="&#x589;" d="M553 1063h333l-71 -365h-333zM418 367h333l-72 -367h-333z" />
+<glyph unicode="&#x58a;" d="M336 735q139 -71 296 -71t335 71l-56 -291q-171 -59 -328 -59q-156 0 -303 59z" />
+<glyph unicode="&#xe3f;" d="M416 0h-394l254 1307h394l48 249h141l-48 -251q82 -5 147.5 -22t111.5 -48t70.5 -76.5t24.5 -106.5q0 -19 -2 -36.5t-6 -37.5q-51 -255 -334 -279q274 -26 274 -252q0 -41 -9 -89q-18 -98 -62.5 -164.5t-112 -107.5t-157.5 -61t-199 -24l-58 -302h-141zM571 798l59 304 h-120l-59 -304h120zM713 803q24 3 48.5 10.5t46 23.5t38 43t24.5 69q2 12 3 23t1 19q0 28 -8 47t-22.5 31t-33.5 18.5t-40 9.5zM456 206l75 387h-120l-75 -387h120zM598 210q41 4 75.5 14.5t61 31t45 54t27.5 84.5q6 33 6 59q0 35 -10.5 59t-29.5 40t-44.5 24.5t-56.5 12.5z " />
+<glyph unicode="&#x10d0;" d="M468 0q-124 0 -206 27t-131 74t-69 110.5t-20 137.5q0 54 12 110t45 109q15 24 35.5 47t43.5 44l241 -34q-23 -26 -40 -62t-25 -73q-9 -50 -9 -91q0 -36 8.5 -69.5t29.5 -59t55.5 -41t87.5 -15.5q106 0 180 67.5t98 204.5q6 33 6 62q0 26 -6.5 52t-21 49.5t-38 43.5 t-58.5 34h1q-77 28 -124 65t-73 79t-34.5 87t-8.5 89q0 30 3 58t8 57h262q-4 -18 -5.5 -34.5t-1.5 -30.5q0 -44 17.5 -83.5t58.5 -55.5l-1 1q164 -60 243.5 -153t79.5 -211q0 -23 -2.5 -46.5t-5.5 -43.5q-19 -123 -70.5 -217t-132 -158t-189.5 -97t-243 -33z" />
+<glyph unicode="&#x10d1;" d="M480 0q-211 0 -317.5 92.5t-106.5 277.5q0 41 4.5 84t12.5 81q42 212 170.5 345.5t329.5 182.5l20 105q1 5 1.5 10t0.5 10q0 22 -11 36.5t-26.5 23.5t-33.5 14.5t-33 8.5q-21 5 -46 14t-46.5 28.5t-36.5 54t-15 90.5q0 44 10 94h300q-4 -16 -4 -33q0 -66 66 -79 q48 -18 77 -40.5t44.5 -48.5t21 -53.5t5.5 -54.5q0 -35 -7 -69l-22 -115q85 -33 140 -77.5t86.5 -95.5t44 -105t12.5 -105q0 -30 -3.5 -68t-9.5 -74q-21 -125 -71.5 -224t-130 -168t-186.5 -105.5t-240 -36.5zM524 214q106 0 176 82t99 239q8 42 12 81.5t4 70.5 q0 60 -17.5 106t-52.5 70q-19 13 -41 18.5t-45 5.5q-53 0 -101 -25q-43 -22 -81 -64.5t-68 -114.5q-14 -32 -24.5 -67t-18 -70t-11.5 -68t-4 -61q0 -21 4.5 -55.5t21.5 -67.5q42 -80 147 -80z" />
+<glyph unicode="&#x10d2;" d="M441 -402q-224 0 -338.5 87t-114.5 262q0 32 3.5 64.5t10.5 67.5q45 230 202 350t433 128q17 7 29 13t22 12.5t18 15.5t17 21q22 29 35.5 61t21.5 79q1 5 1 8q0 23 -11.5 37.5t-32.5 25.5q-46 23 -120 23q-67 0 -114 -22q-23 -11 -40 -28.5t-21 -40.5l-1 -47l-191 -129 q-17 29 -24 50.5t-10 42.5q-2 9 -2 16v9q0 23 1.5 39t4.5 33q27 148 141.5 219t311.5 71q181 0 275.5 -59.5t94.5 -180.5q0 -18 -2 -37t-6 -39q-14 -75 -49 -132.5t-98 -105.5q96 -48 146.5 -127.5t50.5 -183.5q0 -25 -3 -58t-8 -64q-19 -113 -68.5 -202t-129 -151 t-188.5 -95t-247 -33zM487 -185q252 0 303 264q5 23 7 44t2 37q0 45 -17.5 80t-47 58.5t-68 35.5t-80.5 12q-46 0 -93 -15t-88.5 -47.5t-72.5 -83t-46 -121.5q-9 -45 -9 -82q0 -36 9 -68.5t32 -58t62.5 -40.5t101.5 -15h5z" />
+<glyph unicode="&#x10d3;" d="M525 -403q1 4 1 13q0 38 -46 75q-26 21 -58.5 35.5t-67.5 23.5q-36 8 -55 9h-21q-31 0 -63 -9.5t-55 -31.5t-34 -57l-141 116q13 20 27 40t37 44q21 23 43 40t45 22q-52 68 -78.5 138t-35.5 139q-3 23 -5.5 54.5t-2.5 52.5q0 5 0.5 29.5t3.5 62t9.5 86t17.5 101.5 q49 233 163 354.5t298 121.5q31 0 54.5 -4t43 -12t36.5 -21t35 -32q45 35 105 52t141 17q97 0 166 -25.5t109 -80.5q18 -25 28.5 -51.5t15 -50.5t5.5 -43t1 -29q0 -44 -4 -85t-13 -87l-25 -129q-26 -136 -68.5 -224.5t-99.5 -142.5q-60 -57 -138 -83t-163 -26 q-68 0 -115 16.5t-85 53.5q-35 34 -54.5 74t-28.5 85q-9 43 -9 89q0 44 8 87l81 410q1 12 -5.5 20.5t-23.5 8.5h-67q-14 0 -30 -9.5t-28 -23.5q-14 -16 -24.5 -37t-15.5 -43l-72 -374q-5 -29 -8 -54.5t-3 -50.5q0 -39 11.5 -90.5t51.5 -105.5q39 -53 93 -88t119 -67 q28 -14 45.5 -22.5t29.5 -14t21.5 -10t22.5 -10.5q66 -32 105.5 -63t56.5 -66q8 -17 13 -35.5t5 -37.5t-5 -44h-300zM752 213q35 0 63.5 17.5t51.5 47.5t40 72.5t27 93.5l34 177q4 18 5.5 35t1.5 31q0 19 -4 46t-17 55t-30 41.5t-28 13.5h-97q-32 0 -40 -36l-57 -297 q-11 -58 -17.5 -103t-6.5 -83q0 -13 3 -38.5t18 -47.5q10 -14 23 -19.5t30 -5.5z" />
+<glyph unicode="&#x10d4;" d="M432 -402q-230 0 -343.5 80t-113.5 249q0 18 2 44t10.5 56t24.5 63t43 66q23 28 63.5 64.5t86.5 70.5l160 -95q-21 -28 -35 -49t-23 -41q-8 -19 -14.5 -41t-12.5 -50q-2 -14 -3.5 -27.5t-1.5 -26.5q0 -33 11 -61t35.5 -48t63 -31.5t93.5 -11.5q108 0 169 46.5t80 144.5 l125 639q4 19 5.5 36t1.5 31q0 31 -7.5 58t-27 47t-53 31.5t-85.5 11.5q-89 0 -141 -38.5t-75 -129.5q-7 -26 -9.5 -46.5t-3.5 -28.5q-1 -10 -1 -15.5v-7.5q0 -32 9 -62l-232 -90q-21 34 -33 61.5t-17 54.5q-2 11 -3 21.5t-1 18.5q0 14 2 37t7 49q34 190 171.5 289t369.5 99 h3q425 0 425 -316q0 -52 -12 -113l-123 -629q-41 -211 -188.5 -310.5t-401.5 -99.5z" />
+<glyph unicode="&#x10d5;" d="M435 -402q-129 0 -215.5 24t-138 66.5t-73 99.5t-21.5 123q0 26 3 55t8 56q6 31 16 57t29 61q18 33 39.5 63t50.5 58l222 -83q-28 -36 -42 -76t-21 -77q-6 -32 -6 -60q0 -32 9.5 -60.5t32 -49.5t60 -33.5t93.5 -12.5q50 0 92.5 10.5t75.5 32t54.5 54t30.5 76.5l18 92 q5 28 5 48q0 26 -8.5 48.5t-27 39.5t-49 27t-74.5 10h-63l41 209h63q86 0 143 45q29 23 49.5 58t31.5 87q6 28 6 54q0 19 -5.5 46.5t-27.5 54.5q-22 26 -56.5 39.5t-88.5 13.5q-91 0 -153.5 -38t-78.5 -115q-6 -32 -6 -56v-6.5t1 -12.5t3 -18t8 -27l-227 -98q-38 42 -55 94 q-10 29 -12 50t-2 27t0.5 20t2.5 27q9 85 53.5 152.5t118.5 115t175 72.5t224 25q214 0 316.5 -79t102.5 -237q0 -21 -2.5 -51.5t-12 -66.5t-27.5 -75t-49 -76q-61 -73 -167 -126q47 -18 76 -41.5t45.5 -50t22 -55.5t5.5 -57q0 -20 -2 -39.5t-6 -40.5l-14 -75 q-37 -198 -187 -298t-409 -100z" />
+<glyph unicode="&#x10d6;" d="M512 0q-128 0 -210 30.5t-129.5 81t-66 116t-18.5 134.5q0 35 4.5 84t16.5 103.5t33 110t53 104.5q62 94 164 146q-35 20 -59.5 45t-40 52.5t-22.5 56t-7 56.5q0 13 1.5 33t4.5 41q11 79 46.5 144.5t95 112.5t143.5 73t192 26q165 0 251 -63t86 -191q0 -42 -11 -97.5 t-40 -110.5q-29 -53 -77 -100q72 -21 117.5 -56t72 -77.5t36 -90t9.5 -93.5q0 -35 -4 -74.5t-11 -76.5q-24 -129 -77.5 -226.5t-133.5 -162.5t-185.5 -98t-233.5 -33zM610 1010q62 0 103.5 45.5t57.5 132.5q7 31 7 58q0 17 -3.5 34.5t-15 31.5t-31.5 22.5t-53 8.5h-6 q-63 0 -97.5 -41.5t-49.5 -122.5q-4 -19 -5.5 -37t-1.5 -30q0 -17 3.5 -35t14 -33t29 -24.5t48.5 -9.5zM569 214q108 0 179.5 80t99.5 229q7 35 9.5 66.5t2.5 55.5q0 20 -4 53.5t-21 67.5q-44 86 -151 86q-54 0 -98.5 -22.5t-81.5 -65.5q-38 -44 -65 -103.5t-42 -137.5 q-11 -58 -11 -111q0 -7 0.5 -19.5t3.5 -28.5t9 -34.5t17 -36.5q47 -79 153 -79z" />
+<glyph unicode="&#x10d7;" d="M322 0q-65 0 -113.5 14t-83.5 38t-58 56.5t-36 69.5t-18.5 77t-5.5 79q0 48 6 101t14 94l6 29q52 253 179 375.5t327 122.5q73 0 122.5 -16.5t84.5 -52.5q46 36 94.5 52.5t113.5 16.5q140 0 213 -71.5t73 -216.5q0 -32 -4 -69t-12 -79l-18 -93q-14 -75 -37 -140t-61 -128 t-92 -126.5t-126 -132.5h-215q67 66 106 117t62 100q22 47 35 100.5t28 130.5l66 339q1 5 1.5 9t0.5 9q0 22 -14.5 30t-38.5 8h-95q-11 0 -19.5 -13t-11.5 -28l-58 -298q-23 -121 -56 -216.5t-84 -161.5q-50 -65 -116 -95.5t-159 -30.5zM369 214q52 0 85 36.5t47 105.5 l83 431q1 4 1 6.5v4.5q0 11 -2.5 18.5t-7.5 12.5q-6 7 -13.5 10.5t-13.5 3.5h-68q-28 0 -51 -14t-41 -38t-30 -56t-19 -68l-60 -309q-2 -12 -3.5 -23t-1.5 -22q0 -19 5.5 -37t17 -31.5t29.5 -22t43 -8.5z" />
+<glyph unicode="&#x10d8;" d="M220 0q-65 61 -94.5 120.5t-39.5 111.5q-5 26 -8 54t-3 48q0 11 1 31t3 43q3 30 8.5 65t12.5 68q54 259 210 392t413 133q137 0 225.5 -35.5t137.5 -98.5q25 -32 39 -67.5t20.5 -66.5t7.5 -55t1 -34q0 -39 -3.5 -77.5t-11.5 -86.5q-14 -80 -40 -156t-61 -142 q-35 -64 -87.5 -125t-137.5 -122h-229q75 76 119.5 145t71.5 135t41.5 130.5t27.5 130.5q6 32 8.5 59.5t2.5 51.5q0 7 -0.5 20t-3 29.5t-7 34.5t-13.5 35q-21 42 -57.5 62.5t-85.5 20.5q-54 0 -103.5 -23t-84.5 -59q-41 -42 -65 -100t-41 -133q-4 -18 -9.5 -46t-10 -58.5 t-7.5 -61.5t-3 -55q0 -11 0.5 -28t1.5 -34q1 -21 6 -49t15 -61.5t25.5 -70.5t38.5 -75h-231v0z" />
+<glyph unicode="&#x10d9;" d="M427 -402q-133 0 -221 24.5t-140.5 68.5t-74 104t-21.5 131q0 53 10.5 98t30.5 86t50 79t58 67q19 20 29.5 28.5t22.5 16.5l166 -124q-16 -19 -23 -29.5t-13 -24.5q-7 -16 -12.5 -34t-11.5 -49q-7 -35 -7 -62q0 -36 10.5 -67t34 -54t61.5 -36t94 -13q50 0 91.5 11.5 t73.5 34.5q65 48 84 146l9 47q5 23 7.5 44t2.5 50q0 22 -3.5 46t-16 43.5t-38 32.5t-68.5 13h-133l43 220h133q85 0 129.5 34t58.5 109q3 12 3 24q0 32 -22 62t-71 52q-53 23 -133.5 35t-186.5 12l44 224q650 0 650 -329q0 -16 -1.5 -34.5t-5.5 -38.5q-18 -95 -77.5 -157 t-177.5 -97q49 -20 81.5 -47.5t51.5 -59.5t27 -67.5t8 -72.5q0 -41 -9 -87l-12 -58q-43 -207 -187.5 -304.5t-397.5 -97.5z" />
+<glyph unicode="&#x10da;" d="M535 -402q-4 85 -37.5 136.5t-90.5 68.5q-18 4 -35.5 6.5t-30.5 2.5q-73 0 -200 -110l-109 165q46 51 92.5 82t101.5 45q-27 44 -49.5 84t-38.5 84.5t-25 98t-9 125.5q0 106 20 206q48 241 197.5 357.5t408.5 116.5q131 0 216.5 -27t136 -74.5t71 -113t20.5 -142.5 q0 -62 -13 -123.5t-45 -117.5q-18 -32 -37 -54.5t-40 -45.5q-10 -11 -18 -21t-14 -22q-5 -11 -11.5 -30t-10.5 -39q-2 -11 -3.5 -28.5t-1.5 -29.5q0 -8 1 -21.5t3 -28.5l-244 -1q-2 27 -5 49.5t-3 41.5q0 17 3 31q9 48 22.5 84t25.5 53q29 39 51 80.5t33 101.5q8 43 8 80 q0 10 -1 24.5t-5 30.5t-11 33t-19 33q-25 32 -65.5 48t-92.5 16q-106 0 -172 -65.5t-93 -202.5q-8 -42 -12.5 -88t-4.5 -88q0 -70 12.5 -127.5t36 -107t58.5 -92t80 -82.5q44 -39 90 -82t83 -89.5t60.5 -95.5t23.5 -101q0 -19 -4 -34h-304v0z" />
+<glyph unicode="&#x10db;" d="M493 0q-218 0 -330 92.5t-112 278.5q0 36 4.5 83t15.5 98.5t29 105t45 103.5q100 185 305 239q51 14 109 20.5t112 6.5q36 0 67.5 -4t58 -14.5t48.5 -29t39 -48.5l44 223q4 23 4 43q0 31 -10.5 57t-33.5 45.5t-61.5 30.5t-93.5 11q-88 0 -140.5 -28t-62.5 -79l-19 -98 h-306l19 98q31 159 169 238t379 79q131 0 220 -22.5t143 -63t77 -96t23 -121.5q0 -40 -10 -90l-133 -687q-21 -109 -69.5 -195t-123.5 -148t-174.5 -95t-231.5 -33zM529 214q102 0 174.5 72t102.5 226q8 38 10.5 70.5t2.5 55.5q0 7 -0.5 19.5t-3 28t-8 32.5t-15.5 32 q-41 64 -153 64q-54 0 -97.5 -14.5t-79.5 -49.5q-41 -38 -65 -93.5t-39 -130.5q-6 -30 -9.5 -57.5t-3.5 -53.5q0 -40 9.5 -76.5t31 -64t56.5 -44t87 -16.5z" />
+<glyph unicode="&#x10dc;" d="M499 0q-126 0 -208.5 29t-131 77.5t-68 113t-19.5 135.5q0 66 15 146l128 657q35 181 149.5 274t315.5 93h523l-43 -222h-542q-40 0 -65 -26t-38 -91l-43 -225q36 31 65.5 51.5t59.5 32.5t62.5 17t73.5 5q97 0 174 -24t131 -70t82.5 -113.5t28.5 -155.5q0 -35 -4 -78.5 t-12 -87.5q-47 -267 -209 -402.5t-425 -135.5zM547 213h3q110 0 183 78.5t104 238.5q7 35 10 65.5t3 56.5q0 36 -7 72t-26 64.5t-52.5 46.5t-87.5 18q-109 0 -183 -78t-105 -237q-7 -35 -10 -65.5t-3 -57.5q0 -36 6.5 -72.5t25.5 -65t51.5 -46.5t85.5 -18h2z" />
+<glyph unicode="&#x10dd;" d="M99 0q-42 66 -62.5 122.5t-28.5 107.5q-4 23 -6 47.5t-2 41.5q0 10 0.5 23.5t1.5 32.5q1 18 4.5 41t8.5 52l16 81q48 244 171 375.5t320 131.5q36 0 64 -4.5t50 -13.5t39.5 -22.5t32.5 -30.5q52 43 98 57t102 14q100 0 163 -30t98 -77t48 -106t13 -116q0 -77 -18 -168 l-18 -91q-25 -127 -81 -233q-32 -60 -76 -117.5t-108 -117.5h-275q66 58 109 112.5t71 106.5t43 100.5t24 96.5l48 247q9 45 9 79q0 16 -2.5 34t-10 33t-21.5 24.5t-36 9.5h-63q-15 0 -28 -11t-17 -40l-76 -404h-226l77 404q3 13 3 22q0 16 -8.5 21.5t-28.5 6.5l-55 1 q-42 1 -76 -45t-51 -135l-47 -241q-8 -43 -11 -76.5t-3 -53.5q0 -37 9 -83.5t32 -95.5q26 -56 71 -113h-291v0z" />
+<glyph unicode="&#x10de;" d="M466 0q-212 0 -327.5 83t-115.5 249q0 54 12 117q5 28 12 52.5t20 50.5q14 26 37.5 54.5t65.5 60.5h242q-18 -33 -31 -59.5t-22 -51.5q-2 -4 -5.5 -15.5t-8.5 -27t-9.5 -33.5t-7.5 -34q-4 -21 -5.5 -43.5t-1.5 -33.5q0 -29 10.5 -56.5t33 -49.5t58.5 -35.5t86 -13.5 q114 0 184.5 71.5t93.5 200.5q4 22 6.5 46.5t2.5 44.5q0 34 -9.5 67.5t-31 59t-58 41.5t-90.5 16h-123l39 204h144q81 0 136 39.5t70 113.5q2 8 2 17q0 20 -15 39.5t-42 33.5q-57 30 -168 42q-291 52 -291 240q0 14 1.5 27.5t3.5 27.5h293q-1 -4 -1 -11q0 -67 168 -95h-2 q339 -39 339 -260q0 -30 -6 -64q-15 -84 -67.5 -153t-149.5 -111q46 -29 75.5 -62t46.5 -67.5t23.5 -69.5t6.5 -68q0 -24 -2.5 -49.5t-6.5 -48.5q-20 -123 -71.5 -214.5t-130.5 -152t-183 -90t-230 -29.5z" />
+<glyph unicode="&#x10df;" d="M429 -402q-128 0 -213 24t-136 66t-72 99.5t-21 124.5q0 26 3 53.5t8 56.5h294q-4 -17 -5.5 -32.5t-1.5 -29.5q0 -31 9 -58.5t30 -48t56.5 -32.5t89.5 -12t104 13t89 40q79 54 100 160l164 841q-20 -2 -34 -3.5t-27.5 -3t-29 -3t-39.5 -3.5q-12 -1 -21.5 -2t-22.5 -2 t-33 -3t-52 -6q-7 -1 -12.5 -1.5t-10.5 -0.5q-5 -1 -9.5 -1t-8.5 -1q-6 -1 -8 -1h-2.5t-2 -0.5t-6.5 -0.5q-5 -1 -9.5 -1t-15.5 -2l-1 -6q51 -25 77.5 -58.5t35.5 -69.5q9 -38 9 -77v-13t-1 -24q-1 -11 -4.5 -37t-8.5 -51q-18 -85 -62.5 -145t-122.5 -100q-80 -41 -198 -62 t-281 -22l45 236q93 0 160.5 5.5t113 17t71 29t33.5 42.5q2 7 3.5 15.5t1.5 22.5q0 94 -72 155t-236 95l35 182l1067 140l-210 -1083q-41 -208 -191.5 -315t-417.5 -107z" />
+<glyph unicode="&#x10e0;" d="M83 0q-45 57 -68 121.5t-31 127.5q-3 26 -4.5 53t-1.5 46q0 23 3 68t13 96l17 87q16 79 48.5 168t87.5 180.5t134 181.5t188 171t249 149.5t317 117.5l-5 -220q-156 -34 -290 -101.5t-251 -179.5q63 0 113.5 -19.5t81.5 -48.5q45 35 102 51.5t126 16.5q91 0 149 -25.5 t90.5 -67.5t44.5 -96t12 -110q0 -42 -4.5 -84t-12.5 -81l-26 -134q-14 -70 -30 -125.5t-42 -110.5q-28 -58 -72.5 -116.5t-112.5 -115.5h-291q77 61 121 114.5t70 104.5q27 52 42 104t24 98l56 279q1 7 1.5 14.5t0.5 17.5q0 14 -1.5 31.5t-6.5 32.5q-7 24 -19 40.5t-29 16.5 h-64q-20 0 -33 -12t-21 -53l-78 -400h-226l80 405q3 15 3 26q0 15 -7 24q-9 10 -35 10h-69q-17 0 -34 -15.5t-34 -41.5q-16 -24 -28 -50.5t-15 -45.5l-49 -254l-10.5 -56t-7 -43.5t-4 -37t-1.5 -36.5q0 -7 0.5 -22.5t4 -37t10.5 -47.5t20 -53q27 -59 80 -113h-275v0z" />
+<glyph unicode="&#x10e1;" d="M527 0q-209 0 -320.5 92t-111.5 276q0 37 4.5 75.5t12.5 81.5l192 992h295l-192 -992q-6 -30 -9.5 -56t-3.5 -54q0 -38 8 -74.5t28.5 -64.5t55 -45t87.5 -17q109 0 181 77.5t104 238.5q2 15 3.5 29t1.5 27q0 34 -9.5 58.5t-23 42t-28 29t-25.5 18.5q-41 27 -62 49t-33 50 q-13 30 -13 65q0 11 1.5 22t3.5 22q8 39 30 78t61 79t97.5 80.5t140.5 82.5l46 -126q-48 -17 -76.5 -37t-45.5 -43t-25 -47t-12 -47q-3 -14 10 -25.5t32 -23.5q37 -23 66 -39t36 -20q37 -21 61.5 -48.5t39 -58t20.5 -63t6 -63.5q0 -20 -2 -45t-6 -51q-18 -123 -68.5 -220.5 t-130.5 -165t-187.5 -103.5t-239.5 -36z" />
+<glyph unicode="&#x10e2;" d="M447 -403q-99 0 -173.5 19t-128 52.5t-88.5 79t-56 98.5t-29 111.5t-8 117.5q0 61 7 127t20 130q30 150 88 269t142 207q83 87 187 139t225 72l48 324h216l-79 -327q235 -35 331 -207q21 -38 33 -76.5t18 -70t7.5 -53t1.5 -26.5q0 -43 -1.5 -77.5t-4 -64.5t-6.5 -57.5 t-10 -57.5q-71 -369 -258 -549t-482 -180zM485 -191q76 0 142.5 34.5t120 101t93 164t61.5 223.5q10 57 15 113t5 101q0 67 -11.5 113.5t-30.5 78t-45 52t-54 35.5l-81 -494h-213l108 493q-59 -23 -108.5 -67.5t-89 -107.5t-68 -143t-46.5 -174q-12 -66 -18 -127.5 t-6 -107.5q0 -140 56.5 -214t169.5 -74z" />
+<glyph unicode="&#x10e3;" d="M475 -403q-209 0 -318.5 81.5t-109.5 247.5q0 49 10 99.5t31 95.5q18 38 48 81t66 80q15 15 34 31.5t37 29.5l130 -109q-35 -51 -48.5 -98t-24.5 -100q-6 -35 -6 -61q0 -35 11.5 -65t35.5 -52.5t60.5 -35.5t86.5 -13q104 0 161 58.5t80 176.5l141 723q3 19 3 33 q0 21 -9 30q-8 8 -23 10.5t-32 2.5q-44 0 -66 -14.5t-37 -43.5t-25.5 -71t-21.5 -97l-44 -170h-158l23 170q12 57 16.5 93.5t4.5 58.5q0 10 -2.5 28t-16.5 31q-15 15 -48 15q-37 0 -61.5 -18t-46.5 -40q-19 -19 -31 -30.5t-21.5 -18t-19 -8.5t-24.5 -2q-24 0 -49.5 4.5 t-44.5 16.5q-18 11 -35.5 32t-37.5 51l110 258q10 -25 22.5 -48.5t26.5 -40.5q16 -20 34.5 -33t36.5 -13t37 16q20 16 44.5 35.5t54.5 35.5q17 9 32.5 12.5t31.5 3.5q27 0 47.5 -9t36.5 -25t29 -38.5t25 -49.5q60 65 120.5 93.5t138.5 28.5q75 0 125.5 -23.5t80.5 -62.5 t43 -89.5t13 -105.5q0 -64 -15 -143l-114 -585q-88 -450 -578 -450z" />
+<glyph unicode="&#x10e4;" d="M493 -402q-99 0 -184.5 21.5t-143.5 74.5q-28 26 -45 55t-26 57.5t-11.5 54.5t-2.5 46q0 26 3 52t8 55l251 -40q-6 -32 -6 -54t8 -46t35 -41t67.5 -20.5t89.5 -3.5h25q46 0 89 10t78 30q32 19 56 48.5t32 67.5l45 232h-89l36 189l90 1l89 466h-146q-11 -2 -21 -13 q-11 -13 -16 -41l-54 -279q-20 -106 -52.5 -188t-81.5 -137t-116 -82.5t-158 -27.5h-3q-327 0 -327 327q0 78 19 173l9 44q45 220 169.5 328.5t318.5 108.5q71 0 123 -15.5t88 -53.5q97 69 232 69q83 0 135 -24.5t81 -64t39 -90.5t10 -103q0 -68 -13 -134t-36 -116 q-19 -40 -51 -83t-74 -81q-21 -20 -41 -35.5t-34 -25.5q31 -24 56.5 -53t42.5 -61q16 -31 20.5 -57t4.5 -43q0 -19 -3 -35l-16 -82q-20 -104 -65.5 -176.5t-118.5 -118.5q-72 -45 -167.5 -65t-213.5 -20h-34zM380 280q53 0 89 42q16 18 28.5 44.5t18.5 58.5l73 377 q1 4 1.5 7.5t0.5 8.5q0 17 -9 25t-23 9l-111 1q-33 0 -64 -42q-17 -23 -28 -51.5t-17 -59.5l-54 -275q-2 -13 -3.5 -24t-1.5 -25q0 -9 3 -28t18 -36q27 -32 79 -32z" />
+<glyph unicode="&#x10e5;" d="M419 -402q-216 0 -335 82.5t-119 247.5q0 50 9.5 97.5t22.5 79.5t35.5 65t52.5 63q14 14 33.5 32t41.5 35l196 -65q-38 -57 -54.5 -105t-25.5 -94q-7 -35 -7 -61q0 -35 10.5 -65.5t34 -53t61 -35t90.5 -12.5q54 0 100 15.5t85 54.5q34 34 61.5 88t41.5 127l54 280 q5 25 9.5 51t8 49.5t6 42.5t3.5 31q2 23 2.5 46.5t0.5 37.5q0 25 -3 52t-11.5 52.5t-23 48.5t-36.5 39q-42 30 -114 30q-68 0 -111 -26.5t-57 -88.5q-5 -20 -6.5 -44.5t-0.5 -45.5q0 -20 3.5 -39t10.5 -39l-284 -87q-19 70 -19 129q0 26 3.5 59.5t11.5 66.5 q19 83 58.5 144.5t97.5 102.5t134 61t168 20q32 0 56 -2.5t43.5 -7t36 -11t34.5 -14.5q30 -14 54 -28t42 -27q3 16 6 30.5t5 28.5q3 17 5 27t6 27l3.5 14t2.5 11.5t2 12t3 16.5q3 18 4.5 26t2.5 12.5t2 8.5t3 13l61 313h272l-276 -1415q-50 -258 -198.5 -381t-408.5 -123z " />
+<glyph unicode="&#x10e6;" d="M569 -402q1 3 1 8q0 32 -9 61t-26 53q-18 26 -41 41.5t-48 25.5q-38 15 -67 15q-36 0 -88.5 -28.5t-127.5 -88.5l-83 163q66 76 128 101q-183 204 -183 423q0 25 2.5 51.5t7.5 52.5l15 76q51 257 173 385.5t313 128.5q61 0 108.5 -15.5t82.5 -55.5q92 71 231 71 q92 0 149 -28t89 -73t43.5 -101.5t11.5 -114.5q0 -45 -5 -89.5t-15 -95.5l-13 -66q-12 -61 -31.5 -114.5t-52.5 -106.5q-32 -52 -74.5 -99t-99.5 -96l-254 -1q48 51 84 93.5t62 80.5q28 41 42.5 75t21.5 69l64 330q4 20 6 35.5t2 28.5q0 48 -28 56q-12 4 -30 4h-87 q-14 0 -24.5 -8.5t-16.5 -38.5l-81 -418h-226l81 416q2 7 2 10v5q0 19 -5.5 26.5t-17.5 7.5h-66q-22 0 -41 -3.5t-35 -17.5t-29 -38.5t-21 -64.5l-43 -223q-12 -62 -12 -118q0 -83 23 -142t56 -100.5t70.5 -68.5t67.5 -45q73 -46 130.5 -88.5t100 -92t69.5 -110.5t40 -144z " />
+<glyph unicode="&#x10e7;" d="M456 -402q-460 0 -460 336q0 58 13 120h311q-9 -44 -9 -79q0 -167 186 -167q97 0 161 46t83 143l49 253q-35 -24 -66.5 -44.5t-64.5 -34.5q-37 -17 -66 -21t-67 -4q-114 0 -204 23t-147 78q-25 25 -40 52t-23 54t-10.5 53t-2.5 48q0 66 13.5 135t36.5 127q23 60 60 111.5 t97 104.5q61 53 143 105h311q-73 -61 -124 -108.5t-86 -85.5q-34 -37 -55.5 -68t-36.5 -63q-11 -25 -20 -54t-15 -64q-5 -31 -7.5 -61t-2.5 -44q0 -11 4 -34t22 -46q20 -25 54.5 -35t86.5 -10q116 0 183 44.5t85 138.5l93 483h293l-201 -1037q-77 -395 -577 -395z" />
+<glyph unicode="&#x10e8;" d="M497 0q-134 0 -222 31.5t-139.5 84t-72 120.5t-20.5 141q0 37 5 84.5t16 98t28.5 102t42.5 97.5q48 89 122.5 147.5t179.5 84.5q25 6 53 11t56 8.5t54.5 5t49.5 1.5q37 0 68 -5t57 -17t48.5 -31t44.5 -47l51 262q7 38 7 70q0 55 -21.5 74t-68.5 19q-26 0 -48 -4.5 t-35 -12.5q-14 -9 -19 -22.5t-8 -30.5l-22 -110h-167l22 112q2 8 2.5 15.5t0.5 12.5q0 13 -6.5 22.5t-25.5 14.5q-8 2 -21 3t-22 1q-29 0 -52 -10.5t-40 -42.5q-15 -27 -26 -67.5t-21 -94.5h-276q83 422 362 422q91 0 147 -42.5t78 -121.5q29 45 60 76t66 50.5t76 28.5t90 9 q66 0 118.5 -15t90 -45.5t57.5 -76t20 -105.5q0 -23 -3 -48t-8 -52l-139 -718q-49 -252 -196 -371t-394 -119zM545 214q100 0 163 79.5t92 232.5q6 32 9 61t3 64q0 1 -0.5 10.5t-3.5 23.5t-9 31t-18 32q-24 32 -64 43.5t-91 11.5q-55 0 -98 -12.5t-77 -43.5 q-33 -30 -59 -81.5t-42 -135.5q-5 -28 -7.5 -52.5t-2.5 -53.5q0 -9 0.5 -23.5t4.5 -32.5t11 -37.5t21 -38.5q30 -42 76 -60t92 -18z" />
+<glyph unicode="&#x10e9;" d="M247 1183q37 189 165 278t349 89q106 0 177.5 -19t115 -53.5t62 -83t18.5 -106.5q0 -30 -9 -75t-44 -99q-14 -22 -38 -52t-50 -62q46 -28 84 -72.5t62 -103.5q23 -56 28 -103t5 -70q0 -26 -3 -52.5t-8 -53.5q-30 -157 -123 -295.5t-246 -249.5h-316q159 127 262 266.5 t131 285.5q11 58 11 112q0 7 -0.5 19.5t-4 28.5t-10 34t-18.5 35q-27 38 -69.5 55t-92.5 17q-106 0 -170 -67.5t-88 -190.5l-116 -595h-294zM497 955q30 30 58.5 49t57.5 29q54 18 146 17l56 -1l42 142q2 14 3.5 27t1.5 29q0 11 -4 31t-24 37q-20 16 -53 22t-59 6 q-75 0 -120 -39t-62 -129z" />
+<glyph unicode="&#x10ea;" d="M486 -401q-152 0 -246.5 36.5t-147 99t-71 144.5t-18.5 173q0 63 6.5 124.5t20.5 130.5l18 92q15 77 42 159t71 173q42 88 99.5 181t135.5 192l208 -121q-58 -69 -97 -132t-69 -129q-31 -67 -51.5 -130t-34.5 -136l-29 -149q-13 -65 -19 -121t-6 -106q0 -75 14 -126.5 t42 -84t70.5 -46.5t100.5 -14q60 0 111 16.5t92 61.5q34 37 62 100t41 149q3 19 5 40.5t2 35.5q0 42 -22 67t-67 25h-232l40 206h225q47 0 78 32.5t44 101.5q3 15 3 28q0 23 -10 39t-24 26.5t-29.5 17t-26.5 11.5q-33 13 -57.5 30.5t-41 40.5t-24.5 53.5t-8 70.5 q0 21 2 42.5t6 44.5h289q-6 -32 -6 -60q0 -12 1.5 -26.5t7.5 -28.5t18 -27t32 -22q21 -9 47.5 -23t50.5 -36t40.5 -54t16.5 -78q0 -9 -1 -20.5t-3 -23.5q-12 -66 -63 -127.5t-136 -112.5q39 -32 63.5 -64.5t39 -63t19.5 -58.5t5 -51q0 -14 -1.5 -31.5t-3.5 -35.5 q-8 -59 -26 -113.5t-44 -102.5t-59.5 -88.5t-70.5 -71.5q-78 -66 -181.5 -98t-242.5 -32z" />
+<glyph unicode="&#x10eb;" d="M474 0q-221 0 -330 87.5t-109 267.5q0 33 3.5 77t11.5 87q23 134 76.5 236.5t132.5 171.5t180 104.5t219 35.5q45 0 81 -6t67 -21q29 -14 53.5 -37t39.5 -56l110 570l274 -1l-196 -1010q-50 -260 -203.5 -383t-409.5 -123zM511 214q51 0 95.5 17t81.5 53t63.5 90.5 t42.5 135.5q8 44 11.5 80.5t3.5 64.5q0 7 -0.5 20t-3 29.5t-8 35t-14.5 35.5q-23 43 -62.5 61t-84.5 18q-108 0 -178.5 -88.5t-97.5 -245.5q-6 -35 -9.5 -70t-3.5 -61q0 -175 164 -175z" />
+<glyph unicode="&#x10ec;" d="M449 0q-73 0 -129.5 10.5t-100 29.5t-74.5 46t-53 61q-21 33 -33 67.5t-18 65.5t-7.5 56.5t-1.5 40.5q0 77 16 163l138 708q16 82 54 136.5t84 88.5q54 39 117.5 58t128.5 19q94 0 156 -41q31 -20 54 -50.5t35 -72.5q109 164 288 164q217 0 217 -252q0 -74 -18 -170h-276 q5 27 8.5 48t5.5 37q3 30 3 49q0 14 -3.5 34t-19.5 34q-8 7 -19.5 10t-31.5 3q-50 0 -73 -17q-12 -9 -17 -22t-8 -30l-22 -112h-167l22 110q3 15 3 25q0 18 -10 28q-5 4 -12.5 7.5t-17.5 5.5t-24.5 3t-29.5 1q-29 0 -51.5 -4t-39.5 -16q-17 -13 -29.5 -37t-20.5 -66 l-58 -302q32 25 62.5 44t63 31.5t70 18.5t84.5 6q103 0 190 -29t141 -91q26 -29 40.5 -60t21 -59.5t8 -51t1.5 -35.5q0 -41 -4 -86t-12 -90q-23 -124 -74.5 -220t-131.5 -161.5t-186.5 -99.5t-238.5 -34zM492 213q53 0 102 17t87 52t63 89.5t42 138.5q7 35 10 63.5t3 57.5 q0 20 -4 48.5t-22 57.5q-22 35 -59 50.5t-96 15.5q-45 0 -90 -11t-83 -44q-39 -34 -64 -88t-41 -134q-6 -30 -9 -56.5t-3 -55.5q0 -7 0.5 -20t3 -29.5t7.5 -35t14 -37.5q21 -44 54.5 -61.5t84.5 -17.5z" />
+<glyph unicode="&#x10ed;" d="M426 -402q-444 0 -444 310q0 28 3.5 58.5t8.5 52.5q6 27 18 54.5t33 57.5t52 64.5t76 76.5l185 -141q-17 -14 -28 -28.5t-21 -33.5q-11 -20 -16 -36t-9 -33q-6 -29 -6 -52q0 -30 10.5 -56t33 -44.5t58.5 -29.5t87 -11q57 0 100.5 13.5t78.5 39.5t58.5 65t32.5 93 q2 9 3 17.5t1 16.5q0 48 -32.5 96t-104.5 90q-84 94 -91 176q-6 -2 -11 -2q-8 -1 -7.5 -1t-4.5 -1q-325 0 -325 250q0 21 2.5 46.5t7.5 52.5q32 169 144.5 261t310.5 92l10 -1l79 406h279l-99 -508q29 -27 46.5 -61.5t17.5 -69.5h189l-45 -232h-192q-14 -32 -41.5 -67 t-61.5 -60l-12 -52v-5q0 -47 120 -126q37 -29 60 -59t35.5 -60.5t17 -60t4.5 -55.5q0 -21 -2 -41t-6 -42q-36 -205 -188 -312.5t-415 -107.5zM537 578q24 0 54.5 13t61.5 40t50.5 59.5t26.5 69.5q4 16 4 35q0 18 -5.5 42t-22.5 48q-20 25 -43.5 37.5t-48.5 12.5 q-26 0 -57 -13t-60 -37q-26 -23 -47.5 -55t-29.5 -70q-3 -20 -3 -36q0 -19 5.5 -44t22.5 -49q18 -26 42 -39.5t50 -13.5z" />
+<glyph unicode="&#x10ee;" d="M526 0q-134 0 -224 37t-143 111q-25 34 -38.5 70t-20 67t-7.5 55t-1 35q0 54 4.5 97.5t13.5 90.5l184 954h292l-109 -563q34 34 65 55.5t62.5 34.5t66 18t76.5 5q97 0 173.5 -23.5t129.5 -70t81 -116t28 -161.5q0 -36 -4.5 -75t-12.5 -84q-51 -266 -205 -401.5 t-411 -135.5zM558 214q53 0 100 20.5t85 60.5t65 99t41 136q6 34 9 69t3 58q0 33 -8 68t-27.5 63.5t-53.5 46.5t-86 18q-51 0 -97 -19.5t-83.5 -59t-65.5 -100.5t-43 -144q-6 -33 -9 -67.5t-3 -56.5q0 -33 7.5 -67t27 -61.5t53 -45.5t85.5 -18z" />
+<glyph unicode="&#x10ef;" d="M425 -402q-221 0 -328 81.5t-107 245.5q0 55 15.5 127t60.5 150q23 39 55.5 81.5t74.5 86.5l182 -136q-37 -51 -54.5 -98.5t-26.5 -95.5q-3 -17 -5 -33t-2 -34q0 -33 8.5 -63t29 -52.5t53.5 -35.5t83 -13h4q109 0 182 52.5t95 163.5q2 14 3.5 27.5t1.5 26.5 q0 53 -29.5 107t-99.5 93q-42 33 -70.5 64.5t-46 61.5t-24.5 58t-7 54q0 17 3 37l57 187l-346 53l50 259l337 -101l37 297h267l-87 -345l361 -79l-50 -260l-352 127l-7 -138q-1 -11 8 -23.5t32 -32.5q22 -20 54 -45t77 -56q39 -34 64.5 -69.5t40.5 -70.5t21.5 -69.5 t6.5 -65.5q0 -20 -2 -49t-7 -55q-17 -100 -65.5 -178t-126.5 -132t-184 -82t-237 -28z" />
+<glyph unicode="&#x10f0;" d="M475 0q-455 0 -455 317q0 26 3 56.5t8 58.5l26 134h293l-26 -134q-6 -35 -6 -63q0 -35 9 -64t31 -49t60 -31t95 -11q110 0 169 40.5t79 115.5q4 14 6.5 31t2.5 35q0 26 -6 40t-17 19q-9 4 -23 4h-279l43 219h280q10 0 21 2t22 10t19.5 23t13.5 42q3 16 3 28q0 23 -11 32 q-8 7 -19 8.5t-21 1.5h-280l43 221h278q8 0 18 2t20 9q16 11 22 24.5t9 27.5q0 2 0.5 2.5t0.5 5.5q0 23 -14.5 36t-37.5 22q-33 13 -72 17.5t-87 12.5q-38 6 -79 18t-75 36.5t-56.5 65.5t-22.5 106q0 37 9 79h228q-1 -3 -1 -9q0 -21 20.5 -38.5t52.5 -31.5 q49 -21 98.5 -28.5t84.5 -12.5q61 -9 106.5 -23.5t75.5 -38.5t45 -58t15 -81q0 -14 -1.5 -29.5t-5.5 -31.5q-11 -61 -49 -108t-104 -78q55 -33 75 -73.5t20 -79.5q0 -8 -1 -17.5t-3 -19.5q-22 -117 -169 -188q104 -83 104 -184q0 -9 -1 -19t-3 -20q-35 -187 -181 -284 t-403 -97z" />
+<glyph unicode="&#x10f1;" d="M452 -402q-244 0 -363.5 88.5t-119.5 259.5q0 30 3.5 66t9.5 72q8 51 22.5 108t31 114t34 110t32.5 97t26.5 74.5t15.5 41.5q26 70 40.5 130.5t16.5 110.5q1 22 1.5 38t0.5 34q0 35 -3.5 92.5t-13.5 142.5h274q10 -75 12 -121t2 -69q0 -46 -4.5 -101t-18.5 -123 q-5 -24 -9.5 -41.5t-9 -33t-10 -30.5t-11.5 -34q-18 -54 -39.5 -122.5t-41.5 -142t-37.5 -147t-27.5 -136.5q-4 -22 -6 -41.5t-2 -38.5q0 -40 11.5 -74.5t39 -60t73 -40t114.5 -14.5q49 0 83.5 8t57 22.5t35.5 35.5t20 48q6 23 7.5 44t1.5 30q0 76 -49 76h-187l41 211h187 q40 0 59.5 22.5t28.5 67.5q4 19 5.5 34.5t1.5 26.5q0 43 -24 52q-12 4 -30 4h-188l41 207h188q36 0 57 24.5t33 84.5q2 12 3.5 21.5t1.5 17.5q0 12 -2.5 20.5t-6.5 13.5q-7 9 -19.5 11t-29.5 2h-187l41 214h187q69 0 89 96v6q0 41 -119 64q-139 36 -139 192q0 40 9 87h215 q-4 -21 10.5 -39t39.5 -33t57.5 -27.5t65.5 -22.5q152 -53 152 -182q0 -9 -1 -21t-3 -24q-12 -68 -54.5 -119.5t-111.5 -78.5q30 -15 48.5 -33.5t28.5 -37.5t13.5 -38.5t3.5 -37.5q0 -14 -1.5 -26t-3.5 -25q-6 -34 -21.5 -66t-37.5 -60t-50 -51t-60 -39q48 -26 69.5 -66 t21.5 -92q0 -28 -6 -58q-13 -63 -57.5 -114t-122.5 -84q52 -32 75.5 -78t23.5 -106q0 -16 -1.5 -34t-5.5 -36q-32 -158 -163 -240.5t-364 -82.5z" />
+<glyph unicode="&#x10f2;" d="M23 22q72 0 127 10t91 32q-54 44 -87 90t-51.5 91t-24.5 86.5t-6 75.5q0 31 3 63.5t8 60.5q21 128 73 227.5t132 168t186.5 104t236.5 35.5q212 0 320 -93.5t108 -277.5q0 -40 -4.5 -83.5t-12.5 -80.5q-31 -153 -118.5 -264.5t-235.5 -201.5q33 -22 81.5 -31.5 t103.5 -9.5h21l-57 -294q-316 81 -437 235q-106 -78 -234 -137t-280 -102zM531 195q116 37 193 117.5t105 217.5q7 34 10 64t3 54q0 38 -8.5 75t-29 66t-54 46.5t-83.5 17.5q-55 0 -102.5 -22.5t-85 -64.5t-64 -101.5t-38.5 -134.5q-5 -28 -7 -55.5t-2 -47.5 q0 -38 8.5 -72.5t28 -64.5t50.5 -54.5t76 -40.5z" />
+<glyph unicode="&#x10f3;" d="M449 -191q109 0 179 56t95 166l7 31q6 33 6 60q0 38 -13 69.5t-41 54.5t-72.5 35.5t-107.5 12.5h-178l38 195h174q114 0 187.5 93.5t105.5 264.5l-361 -21l-38 -197h-294l78 405l1005 32q-45 -224 -139 -386t-236 -262q57 -30 93 -65.5t56.5 -72t28 -74t7.5 -72.5 q0 -44 -8 -87l-6 -31q-21 -108 -80.5 -187t-141.5 -130t-179.5 -76t-193.5 -25q-89 0 -171 20.5t-145 61t-101 99.5t-38 137q0 21 3 48.5t9 56.5l71 147l292 -30l-71 -123q-2 -15 -3.5 -29t-1.5 -27q0 -32 10 -59.5t32 -47.5t57.5 -31.5t85.5 -11.5z" />
+<glyph unicode="&#x10f4;" d="M415 -402q-225 0 -336 82t-111 252q0 29 3 60t10 65l295 1q-9 -42 -9 -78q0 -34 9 -65t30 -55t56.5 -38t88.5 -14q49 0 94.5 12.5t80.5 38.5q34 24 57 61t35 96l11 53q2 11 3 21.5t1 19.5q0 22 -7.5 49t-33.5 51q-53 47 -162 47h-216l44 225h213q48 4 93.5 28t85.5 65 q39 40 70 96t51 131l-53 -9q-26 -5 -55 -9t-68 -8q-16 -2 -30 -3t-27 -1h-9q-131 0 -218 26.5t-140 74.5q-27 25 -43.5 51.5t-25.5 53t-11.5 51t-2.5 44.5q0 41 9 88q39 202 201 296t447 94h6l-42 -208q-310 0 -348 -198q-4 -16 -4 -33q0 -64 55.5 -95.5t152.5 -31.5 q60 0 123.5 12.5t134 39t150 68t170.5 98.5l-68 -350q-34 -175 -121.5 -291t-237.5 -184q61 -20 102 -46t66 -56.5t35.5 -65t10.5 -71.5q0 -15 -1.5 -32.5t-4.5 -33.5l-11 -53q-44 -209 -191.5 -315.5t-406.5 -106.5z" />
+<glyph unicode="&#x10f5;" d="M444 0q-211 0 -318 67.5t-107 204.5q0 37 8 83q32 183 172 281t386 98h202l15 76h-202q-420 0 -420 288q0 21 2.5 45t7.5 50q36 179 174 268.5t383 89.5q210 0 312 -67t102 -205q0 -40 -9 -86l-32 -166h107l-42 -217h-107l-15 -76h107l-48 -245h-107l-26 -134 q-69 -355 -545 -355zM844 1027l32 166q4 17 4 34q0 113 -169 113q-101 0 -156 -37.5t-70 -111.5q-2 -12 -3.5 -23t-1.5 -22q0 -119 162 -119h202zM489 209q100 0 155.5 40.5t71.5 121.5l29 147h-202q-189 0 -220 -157q-3 -20 -3 -37q0 -115 169 -115z" />
+<glyph unicode="&#x10f6;" d="M146 -190q43 0 82 11t69 34q29 21 50.5 54.5t28.5 78.5l158 807q3 15 3 26q0 17 -7 23.5t-20 8.5h-98q-26 1 -48 -33q-12 -19 -20.5 -44.5t-15.5 -60.5l-58 -302q-7 -35 -7 -60q0 -107 96 -107l-42 -217q-352 4 -352 285q0 50 12 112l44 228q39 203 145 307.5t284 104.5 q159 0 223 -88q49 46 114 67t143 21q285 0 285 -273q0 -63 -15 -139l-45 -232q-41 -210 -147.5 -316t-278.5 -106q-35 0 -59 4.5t-42 13.5l-3 -16q-18 -95 -60.5 -170t-108 -126.5t-154 -79t-197.5 -27.5zM737 214q27 0 45 8t30 23.5t19 37.5t13 51l77 395q6 33 6 57 q0 10 -1.5 22t-7 22t-15.5 16.5t-28 6.5h-80q-17 0 -28.5 -14t-17.5 -46l-89 -459q-2 -11 -3 -22t-1 -19q0 -16 3.5 -30t12.5 -25t24.5 -17.5t40.5 -6.5z" />
+<glyph unicode="&#x10f7;" d="M414 -403q-130 0 -216.5 26t-138.5 70.5t-73.5 104.5t-21.5 128q0 27 3 54.5t8 57.5q16 87 46.5 155t69.5 119.5t84 88.5t89 62.5t84 42t70 27.5q76 27 130 47.5t90 40t55.5 41.5t28.5 53q7 25 7 56q0 42 -15 62.5t-57 20.5q-22 0 -53 -6t-57 -20q-27 -14 -46 -35 t-25 -49l-5 -57l-222 -33l-1 72q32 171 148 255.5t308 84.5q97 0 159.5 -20.5t98.5 -55t49.5 -80t13.5 -95.5q0 -29 -3 -60t-8 -53q-46 -222 -412 -355q-148 -35 -228 -110.5t-102 -190.5q-4 -20 -6 -37.5t-2 -35.5q0 -165 200 -165q66 0 115.5 16.5t85.5 47.5t59.5 76 t36.5 102q5 21 7.5 39.5t2.5 35.5q0 25 -7.5 46.5t-29.5 42.5l245 149q43 -60 62.5 -122t19.5 -119q0 -16 -1.5 -38.5t-4.5 -45.5q-14 -102 -63.5 -184t-131.5 -139t-194.5 -87.5t-251.5 -30.5z" />
+<glyph unicode="&#x10f8;" d="M412 -403q-128 0 -214 24.5t-138 67.5t-74 100t-22 123q0 22 2.5 47.5t7.5 52.5l201 1032h294l-112 -573q-1 -8 -1.5 -14.5t-0.5 -13.5q0 -52 45 -81q29 -19 67 -25.5t73 -6.5q52 0 99 12.5t85.5 41.5t65.5 76.5t39 116.5q4 22 6 47.5t2 43.5q0 11 -0.5 20.5t-2.5 20.5 q-7 50 -27 96.5t-58 91.5q-20 24 -47.5 49t-61.5 49l304 98q37 -33 64.5 -65t47.5 -63t34 -61.5t24 -61.5q9 -29 14 -55t6 -43v-39q0 -61 -12 -125q-43 -235 -195.5 -353.5t-405.5 -118.5h-4q-141 0 -223 38l-25 -130q-6 -32 -6 -58q0 -149 193 -149h5q50 0 93 15t77.5 46 t58.5 76.5t36 107.5h294q-47 -235 -198 -346t-410 -111z" />
+<glyph unicode="&#x10f9;" d="M429 -402q-171 0 -253 59.5t-82 184.5q0 43 10 90q21 100 74.5 168.5t145.5 119.5q-81 27 -131 61.5t-78.5 74t-38.5 83t-10 87.5q0 23 2.5 48.5t7.5 51.5q23 118 84.5 204t146 141.5t184.5 82t201 26.5q91 0 176 -21.5t150 -65t104 -108.5t39 -151q0 -26 -3.5 -54 t-9.5 -55q-15 -70 -47.5 -132t-88 -118.5t-136.5 -108.5t-193 -101q-72 -27 -123.5 -54t-86 -55t-53 -56t-25.5 -58q-6 -29 -6 -51q0 -44 19.5 -63.5t63.5 -19.5q49 0 86.5 23t47.5 72l22 111h284l-22 -111q-31 -155 -150 -230t-311 -75zM569 386q249 34 288 239 q4 20 5.5 38t1.5 33q0 88 -50 130t-147 42q-125 0 -202 -65t-94 -178q-2 -14 -3.5 -33t-1.5 -31q0 -32 12 -61t36.5 -52t63 -39t91.5 -23z" />
+<glyph unicode="&#x10fa;" d="M543 -195q5 23 6.5 43t1.5 34t-3 31.5t-15 34.5q-15 21 -39.5 32.5t-52.5 11.5q-42 0 -87.5 -31t-102.5 -103l-193 124q96 111 210 145q-84 88 -119 215q-8 27 -12.5 54t-5.5 47q-1 16 -1.5 31.5t-0.5 26.5q0 23 3 51t10 62q44 221 191.5 336t416.5 117q194 -17 295 -89 t101 -204q0 -23 -2.5 -44t-5.5 -37q-17 -88 -80 -211t-177 -285l-216 98q79 123 124.5 217.5t59.5 163.5q2 14 3.5 27t1.5 25q0 62 -39.5 94t-117.5 32q-104 0 -170.5 -58.5t-89.5 -179.5q-3 -14 -5 -29l-4 -30t-3 -27.5t-1 -20.5q-1 -16 -1 -25v-11q0 -54 11 -96t37 -84 q26 -43 64 -84q84 -26 154.5 -79t121.5 -134l-268 -191v0z" />
+<glyph unicode="&#x10fb;" d="M364 1007h245l-41 -210h-245zM747 652h239l-40 -208h-239zM218 257h242l-40 -208h-242z" />
+<glyph unicode="&#x10fc;" d="M349 930q0 20 3 47t9 57l62 323q37 196 247 196h258l-23 -119l-280 2q-39 0 -51 -59l-21 -108l90 50q196 0 196 -188q0 -20 -2.5 -45t-7.5 -52q-15 -78 -45.5 -134t-69.5 -92.5t-84 -54t-89 -17.5q-38 0 -73 12.5t-61.5 37.5t-42 61t-15.5 83zM557 852q43 0 75 45.5 t49 136.5q4 20 5.5 37t1.5 30q0 45 -17 67t-48 22q-42 0 -72 -40t-45 -122q-9 -51 -9 -86q0 -90 60 -90z" />
+<glyph unicode="&#x1e80;" d="M479 1859h264l143 -264h-178zM143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
+<glyph unicode="&#x1e81;" d="M387 1646h284l209 -376h-198zM96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
+<glyph unicode="&#x1e82;" d="M821 1859h281l-320 -264h-207zM143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
+<glyph unicode="&#x1e83;" d="M849 1646h321l-442 -376h-197zM96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
+<glyph unicode="&#x1e84;" d="M502 1596q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM897 1596q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM143 1493h254l-108 -1096l272 709h238 l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
+<glyph unicode="&#x1e85;" d="M467 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM862 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM96 1120h240l-33 -858l227 565h230 l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
+<glyph unicode="&#x1ebc;" d="M686 1708q-38 0 -64 -30.5t-37 -89.5h-137q25 129 90.5 197.5t161.5 68.5q38 0 70 -12t67 -39l53 -41q31 -27 70 -27q37 0 63 30.5t37 88.5h137q-27 -127 -90.5 -196.5t-161.5 -69.5q-37 0 -68.5 11.5t-68.5 39.5l-49 37q-24 18 -40.5 25t-32.5 7zM29 0l288 1493h932 l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#x1ebd;" d="M1113 1554q-47 -284 -249 -284q-35 0 -67.5 13t-72.5 44l-49 37l-5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q18 130 87 207q33 37 74.5 57t88.5 20q32 0 65 -12q27 -11 76 -49l51 -39q38 -31 70 -31q38 0 64 33t36 96h139zM205 89q-129 119 -129 349 q0 136 44 271q45 132 124 229q86 104 200 157q116 54 250 54q103 0 188.5 -30.5t147.5 -89.5q60 -58 92.5 -137.5t32.5 -178.5q0 -53 -6 -106q-5 -43 -21 -142h-759q-2 -10 -2 -16l-2 -16l-3 -30q0 -98 67 -149q68 -51 200 -51q108 0 214 31q108 32 201 90l-51 -269 q-190 -84 -410 -84q-251 0 -378 118zM876 684q5 14 6 28q1 5 1 13v12q0 85 -51 134t-140 49q-100 0 -171 -59.5t-111 -176.5h466z" />
+<glyph unicode="&#x1ef2;" d="M469 1859h264l143 -264h-178zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#x1ef3;" d="M390 1647h284l209 -376h-198zM-20 -201h117q41 0 73.5 5.5t61 23.5t55.5 52t57 91l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -99 -102 -159t-91.5 -92t-95 -42t-112.5 -10h-240z" />
+<glyph unicode="&#x1ef8;" d="M676 1709q-38 0 -64 -30.5t-37 -89.5h-137q25 129 90.5 197.5t161.5 68.5q38 0 70 -12t67 -39l53 -41q32 -27 70 -27q37 0 63 30.5t37 88.5h137q-27 -127 -90.5 -196.5t-161.5 -69.5q-37 0 -68.5 11.5t-68.5 39.5l-49 37q-24 18 -40.5 25t-32.5 7zM317 0l115 588 l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#x1ef9;" d="M1158 1554q-23 -141 -85 -212.5t-161 -71.5q-38 0 -71 13q-27 10 -72 44l-49 37l-5 4q-42 33 -73 33q-34 0 -60 -34.5t-36 -94.5h-139q18 130 87 207q33 37 74.5 57t89.5 20q34 0 66 -13q15 -6 34 -19t40 -29l51 -39q40 -31 72 -31q38 0 63.5 34t34.5 95h139zM-65 -424 l45 223h117q91 0 137 30q53 33 110 142l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-57 -100 -104 -161t-89 -90q-76 -52 -208 -52h-240z" />
+<glyph unicode="&#x2000;" />
+<glyph unicode="&#x2001;" />
+<glyph unicode="&#x2002;" />
+<glyph unicode="&#x2003;" />
+<glyph unicode="&#x2004;" />
+<glyph unicode="&#x2005;" />
+<glyph unicode="&#x2006;" />
+<glyph unicode="&#x2007;" />
+<glyph unicode="&#x2008;" />
+<glyph unicode="&#x2009;" />
+<glyph unicode="&#x200a;" />
+<glyph unicode="&#x2010;" d="M299 735h629l-56 -291h-628z" />
+<glyph unicode="&#x2011;" d="M299 735h629l-56 -291h-628z" />
+<glyph unicode="&#x2012;" d="M-10 690h1233l-49 -246h-1233z" />
+<glyph unicode="&#x2013;" d="M-10 690h1233l-49 -246h-1233z" />
+<glyph unicode="&#x2014;" d="M-10 690h1233l-49 -246h-1233z" />
+<glyph unicode="&#x2015;" d="M-10 690h1233l-49 -246h-1233z" />
+<glyph unicode="&#x2016;" d="M257 1565h227v-2048h-227v2048zM747 1565h227v-2048h-227v2048z" />
+<glyph unicode="&#x2017;" d="M0 -18h1233v-190h-1233v190zM0 -293h1233v-190h-1233v190z" />
+<glyph unicode="&#x2018;" d="M473 1174l270 382h215l-172 -382l-53 -271h-313z" />
+<glyph unicode="&#x2019;" d="M592 1286l53 270h313l-53 -270l-270 -383h-215z" />
+<glyph unicode="&#x201a;" d="M344 96l53 271h314l-54 -271l-270 -383h-215z" />
+<glyph unicode="&#x201b;" d="M496 1286l56 270h313l-56 -270l17 -383h-215z" />
+<glyph unicode="&#x201c;" d="M248 1174l270 382h215l-172 -382l-53 -271h-313zM768 1174l270 382h215l-172 -382l-53 -271h-313z" />
+<glyph unicode="&#x201d;" d="M319 1286l54 270h313l-53 -270l-271 -383h-215zM840 1286l53 270h313l-53 -270l-270 -383h-215z" />
+<glyph unicode="&#x201e;" d="M94 96l51 271h314l-51 -271l-273 -383h-213zM614 96l52 271h313l-51 -271l-273 -383h-213z" />
+<glyph unicode="&#x201f;" d="M223 1286l56 270h313l-56 -270l17 -383h-215zM743 1286l56 270h313l-55 -270l17 -383h-215z" />
+<glyph unicode="&#x2020;" d="M514 883h-332l43 223h332l76 387h256l-76 -387h332l-43 -223h-332l-209 -1080h-256z" />
+<glyph unicode="&#x2021;" d="M379 190h-330l43 224h332l90 469h-332l45 223h330l76 387h256l-76 -387h334l-45 -223h-332l-90 -469h332l-43 -224h-334l-74 -387h-256z" />
+<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
+<glyph unicode="&#x2023;" d="M256 1200l801 -440l-801 -441v881z" />
+<glyph unicode="&#x2026;" d="M-53 0q-15 0 -22.5 9t-4.5 24l59 307q4 27 32 27h255q28 0 28 -25q0 -5 -1 -8l-61 -307q-5 -27 -32 -27h-253zM357 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27h235q28 0 28 -25q0 -5 -1 -8l-58 -307q-5 -27 -32 -27h-237zM748 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27 h254q15 0 22.5 -9t4.5 -24l-59 -307q-5 -27 -32 -27h-255z" />
+<glyph unicode="&#x202f;" />
+<glyph unicode="&#x2030;" d="M286 856q-60 0 -112 22.5t-90 60.5q-42 42 -63 94t-21 111q0 63 22.5 115.5t59.5 89.5q40 40 93 61.5t112 21.5q61 0 112.5 -22.5t89.5 -61.5q38 -38 60 -90t22 -112t-22 -114t-60 -92q-42 -43 -95 -63.5t-108 -20.5zM285 1018q50 0 88 39q20 21 28.5 43t8.5 46 q0 50 -37 87t-89 37q-51 0 -86 -35q-36 -36 -36 -88q0 -54 36 -91q36 -38 87 -38zM35 664l1044 415l39 -94l-1046 -420zM330 0q-120 0 -202 84q-83 85 -83 206q0 63 21 112t62 90q83 83 201 83q121 0 204 -83q40 -40 61.5 -91t21.5 -113q0 -58 -20 -108t-64 -95 q-84 -85 -202 -85zM946 0q-57 0 -107.5 20.5t-92.5 61.5q-42 42 -63 93.5t-21 109.5v4q0 58 20.5 109.5t61.5 93.5q41 41 92.5 62t109.5 21q60 0 113 -22.5t91 -60.5q42 -42 62.5 -94.5t20.5 -109.5t-20.5 -109t-62.5 -94q-39 -40 -91 -62.5t-113 -22.5zM330 162q50 0 88 39 q20 21 28.5 43t8.5 46q0 50 -37 87t-88 37t-87 -36t-36 -87q0 -54 36 -91q36 -38 87 -38zM946 162q24 0 47.5 10t41.5 28q15 15 25.5 38.5t10.5 52.5q0 48 -37 85q-38 37 -88 38q-23 0 -45.5 -9t-40.5 -27q-16 -16 -26.5 -39.5t-10.5 -50.5q0 -24 9.5 -47.5t26.5 -41.5 q14 -15 37.5 -26t49.5 -11z" />
+<glyph unicode="&#x2031;" d="M286 856q-59 0 -111 22.5t-91 61.5t-61.5 92t-22.5 113t22.5 112.5t61.5 91t91 61t111 22.5q60 0 112 -22.5t90.5 -61.5t60.5 -91t22 -112t-22.5 -112.5t-61 -92t-90.5 -62t-111 -22.5zM285 1018q25 0 48 10.5t40 28t27 40.5t10 49q0 25 -10 47.5t-27 39.5t-40 27t-49 10 t-48 -9.5t-38.5 -26t-26 -39t-9.5 -48.5t9.5 -49.5t26.5 -41t39 -28t48 -10.5zM35 664l1044 415l39 -94l-1046 -420zM254 0q-54 0 -100 22.5t-80.5 61.5t-54 92t-19.5 113t20 112.5t54.5 91t81.5 60.5t101 22q103 0 175 -83l2 -3l3 3q37 42 83.5 63t95.5 21t95.5 -21 t84.5 -63l1 -3l3 3q74 83 176 83q54 0 101 -22.5t81.5 -61t54.5 -90.5t20 -112t-20 -112.5t-54.5 -92t-81 -62t-100.5 -22.5q-102 0 -176 83l-4 4l-1 -3q-75 -84 -180 -84q-104 0 -178 83l-4 4l-2 -3q-75 -84 -178 -84zM253 162q22 0 42.5 10.5t35.5 28.5t24 41t9 48 t-9 47.5t-24.5 39.5t-36 27t-42.5 10t-41.5 -9.5t-34.5 -26.5t-23.5 -39.5t-8.5 -48.5t8.5 -49t23.5 -40.5t34.5 -28t42.5 -10.5zM616 162q22 0 42 10t35 27t24 39.5t9 46.5v4q0 25 -9 48t-24.5 40t-35.5 27t-42 10t-41.5 -10t-34.5 -27.5t-23.5 -40.5t-8.5 -48t8.5 -48 t23 -40t34.5 -27.5t43 -10.5zM978 162q23 0 43 10t35 27.5t24 40t9 48.5t-9 48.5t-24 39.5t-35.5 27t-42.5 11q-22 0 -41 -9.5t-33.5 -25.5t-23 -35.5t-10.5 -40.5v-14v-14q2 -21 10.5 -41.5t23 -36.5t33 -25.5t41.5 -9.5z" />
+<glyph unicode="&#x2034;" d="M479 1493h278l-361 -373h-162zM854 1493h278l-361 -373h-162zM1229 1493h278l-361 -373h-162z" />
+<glyph unicode="&#x2035;" d="M681 1493h278l101 -373h-162z" />
+<glyph unicode="&#x2036;" d="M491 1493h278l101 -373h-162zM871 1493h278l101 -373h-162z" />
+<glyph unicode="&#x2037;" d="M306 1493h278l101 -373h-162zM686 1493h278l101 -373h-162zM1056 1493h278l101 -373h-162z" />
+<glyph unicode="&#x2039;" d="M265 535l25 131l547 393l-50 -252l-317 -227l229 -226l-41 -213z" />
+<glyph unicode="&#x203a;" d="M402 379l322 221l-235 221l47 238l391 -393l-25 -131l-545 -394z" />
+<glyph unicode="&#x203c;" d="M317 1054l71 454h286l-72 -457l-159 -575h-139zM867 1054l71 454h286l-72 -457l-159 -575h-139zM292 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57 q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM842 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5 q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13z" />
+<glyph unicode="&#x203d;" d="M536 1252l-22 -8q-50 -18 -100 -43t-107 -62l52 268q218 113 426 113q87 0 155 -19t115.5 -55t72 -87t24.5 -115q0 -20 -2 -38.5t-6 -38.5q-8 -38 -22.5 -73t-40.5 -70t-64.5 -73t-92.5 -83l-105 -86q-40 -33 -65.5 -58.5t-41.5 -49.5t-25 -48.5t-15 -54.5q-1 -9 -4 -21 t-7 -26l-24 -123h-267zM753 997q39 34 66.5 70t35.5 78q3 16 3 32q0 43 -30 69q-11 9 -24 15zM440 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57 q-26 -24 -59.5 -38t-71.5 -14z" />
+<glyph unicode="&#x203e;" d="M0 1547h1233v-190h-1233v190z" />
+<glyph unicode="&#x203f;" d="M618 -485q-164 0 -332.5 40t-352.5 123v161q179 -69 347.5 -104t335.5 -35q331 0 685 139v-161q-185 -83 -352 -123t-331 -40z" />
+<glyph unicode="&#x2045;" d="M580 1556h507l-38 -190h-242l-122 -628h242l-37 -190h-242l-122 -628h242l-37 -190h-508z" />
+<glyph unicode="&#x2046;" d="M143 -80h242l122 628h-242l37 190h242l122 628h-242l37 190h508l-357 -1826h-506z" />
+<glyph unicode="&#x2047;" d="M154 555q22 74 38.5 122.5t29 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5 t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM770 555q22 74 38.5 122.5t29 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5 q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75 t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM211 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56 q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM842 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
+<glyph unicode="&#x2048;" d="M138 555q23 74 39 122.5t28.5 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5 t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM808 838l129 655h266l-127 -655l-102 -357h-199zM183 -55q-35 0 -59 11.5 t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM792 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5 q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
+<glyph unicode="&#x2049;" d="M696 555q22 74 38.5 122.5t29 80.5t23.5 51.5t24 35.5t28.5 32.5t37.5 42.5q33 39 53 68.5t31.5 51.5t15.5 37.5t6 26.5t3 28.5t1 24.5q0 11 -4 24t-11.5 24.5t-20 19t-28.5 7.5q-26 0 -58 -19q-68 -26 -158 -115l60 309q80 60 149 86.5t137 26.5q64 0 106.5 -21.5 t67.5 -56.5t35.5 -79.5t10.5 -91.5q0 -45 -11.5 -106t-49.5 -139q-19 -39 -41.5 -75t-46.5 -67q-24 -30 -42 -54.5t-32.5 -48t-26.5 -49t-23 -58.5q-17 -49 -24 -72t-9 -31l-10 -47l-24 -123h-267zM262 838l129 655h266l-127 -655l-102 -357h-199zM253 -55q-35 0 -59 11.5 t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM782 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5 q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
+<glyph unicode="&#x204b;" d="M332 1493h520q94 0 169 -23.5t126.5 -67t79 -105t27.5 -137.5q0 -43 -9 -89q-17 -89 -60 -161.5t-108 -126.5t-151 -88t-189 -46l-164 -846h-188l300 1543h-190l-300 -1543h-191z" />
+<glyph unicode="&#x205f;" />
+<glyph unicode="&#x2070;" d="M586 1103q-133 0 -208 65.5t-75 203.5q0 49 9.5 108t27 118t41 113.5t52.5 95.5q56 80 140.5 121.5t192.5 41.5q132 0 208 -65.5t76 -201.5q0 -46 -9 -104t-26.5 -118t-42 -117t-55.5 -100q-55 -78 -137.5 -119.5t-193.5 -41.5zM608 1241q53 0 87.5 31.5t60.5 83.5 q18 37 34 84t27 95t17.5 93t6.5 79q0 63 -23 93.5t-74 30.5q-50 0 -85.5 -28.5t-63.5 -85.5q-17 -35 -32.5 -81t-27 -94t-18 -94.5t-6.5 -81.5q0 -125 97 -125zM674 1466q-36 0 -62 20t-26 49q0 31 26 51.5t62 20.5q18 0 34.5 -5.5t29 -15t20 -22t7.5 -27.5q0 -29 -26.5 -50 t-64.5 -21z" />
+<glyph unicode="&#x2074;" d="M659 1300h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM686 1443l64 330l-314 -330h250z" />
+<glyph unicode="&#x2075;" d="M507 1103q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5 t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
+<glyph unicode="&#x2076;" d="M596 1103q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13q-109 0 -185.5 -60t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132 t-80.5 -105t-126 -69t-165 -25zM609 1237q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60t-13.5 -69.5q0 -57 31.5 -86t84.5 -29z" />
+<glyph unicode="&#x2077;" d="M780 1810h-449l36 145h683l-29 -117l-536 -718h-227z" />
+<glyph unicode="&#x2078;" d="M596 1103q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121 q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM707 1625q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM616 1236q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5 q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
+<glyph unicode="&#x2079;" d="M496 1103q-48 0 -96.5 6.5t-110.5 26.5l36 150q43 -25 93 -37.5t101 -12.5q112 0 186.5 60t108.5 178q-87 -73 -214 -73q-59 0 -106 16t-80 46t-50.5 73.5t-17.5 99.5q0 69 27 130t78.5 106t125.5 71.5t167 26.5q149 0 227.5 -71t78.5 -217q0 -53 -10.5 -111 t-31.5 -114.5t-51 -109t-69 -94.5q-72 -78 -169.5 -114t-222.5 -36zM665 1533q40 0 73.5 16t57.5 42.5t37.5 60.5t13.5 69q0 58 -33 86.5t-84 28.5q-39 0 -71.5 -15.5t-56.5 -41.5t-37.5 -60t-13.5 -71q0 -58 31 -86.5t83 -28.5z" />
+<glyph unicode="&#x207a;" d="M542 961h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
+<glyph unicode="&#x207b;" d="M270 1095h692v-134h-692v134z" />
+<glyph unicode="&#x207c;" d="M284 1221h666v-132h-666v132zM284 966h666v-133h-666v133z" />
+<glyph unicode="&#x207d;" d="M485 517q-52 97 -77 188.5t-25 182.5q0 325 325 650h142q-294 -348 -294 -676q0 -81 17.5 -166t53.5 -179h-142v0z" />
+<glyph unicode="&#x207e;" d="M383 517q294 349 294 676q0 81 -17.5 166t-53.5 179h142q102 -192 102 -371q0 -325 -325 -650h-142v0z" />
+<glyph unicode="&#x208a;" d="M542 293h-272v134h272v241h150v-241h270v-134h-270v-241h-150v241z" />
+<glyph unicode="&#x208b;" d="M270 427h692v-134h-692v134z" />
+<glyph unicode="&#x208c;" d="M284 553h666v-132h-666v132zM284 298h666v-133h-666v133z" />
+<glyph unicode="&#x208d;" d="M485 -151q-52 97 -77 188.5t-25 182.5q0 325 325 650h142q-294 -348 -294 -676q0 -81 17.5 -166t53.5 -179h-142v0z" />
+<glyph unicode="&#x208e;" d="M383 -151q294 349 294 676q0 81 -17.5 166t-53.5 179h142q102 -192 102 -371q0 -325 -325 -650h-142v0z" />
+<glyph unicode="&#x20a0;" d="M674 416q-122 -84 -255 -84q-84 0 -149.5 31t-110.5 88t-69 138t-24 181q0 35 2.5 72t7.5 71q17 130 61 237.5t109 183.5t149 118t182 42q68 0 124.5 -20.5t107.5 -62.5l-32 -232q-45 51 -96 78.5t-109 27.5q-56 0 -103.5 -25.5t-85 -73.5t-63 -117t-36.5 -156 q-3 -24 -5 -51.5t-2 -53.5q0 -126 49 -196t143 -70q114 0 236 105l65 473h542l-29 -218h-342l-29 -209h322l-30 -218h-321l-35 -257h354l-29 -218h-556z" />
+<glyph unicode="&#x20a1;" d="M210 146q-74 85 -108.5 190.5t-34.5 244.5q0 168 48 327.5t143 291.5q56 78 121 135t134.5 96t141.5 60t143 26l33 76h170l-35 -81q28 -5 52.5 -10t38.5 -9q10 -3 18 -6l45 106h171l-70 -164q9 -5 18.5 -10t19.5 -10l-53 -309q-48 43 -96 72l-395 -922q85 0 179.5 36.5 t214.5 114.5l-55 -331q-118 -49 -224.5 -74t-203.5 -25h-15t-15 1l-26 -62h-171l38 89q-27 8 -52.5 18.5t-48.5 24.5l-57 -132h-170zM965 1231q-46 10 -98 10h-17l-374 -875q4 -8 14 -18q16 -19 33.5 -34.5t37.5 -26.5zM651 1174q-60 -42 -111 -111q-132 -179 -132 -445v-10 z" />
+<glyph unicode="&#x20a2;" d="M611 -29q-124 0 -224.5 42t-172 121.5t-110 195t-38.5 261.5q0 79 12 159.5t35 158.5t58 151.5t81 139.5q54 77 120 137t141 100.5t157 61.5t169 21q98 0 194.5 -27t196.5 -84l-51 -309q-81 76 -163.5 108.5t-159.5 32.5q-99 0 -183 -47t-145 -129.5t-95.5 -195 t-34.5 -242.5q0 -98 20 -163.5t60 -115.5q25 -30 54 -51l115 711h267l-28 -173q51 94 129.5 145.5t175.5 51.5q17 0 34.5 -1.5t41.5 -5.5l-46 -291q-28 18 -61 28t-71 10q-103 0 -170 -78t-92 -230l-33 -202q20 5 39 10.5t42 14.5q93 36 210 114l-55 -331q-115 -49 -219 -74 t-200 -25z" />
+<glyph unicode="&#x20a3;" d="M123 260h-117l34 188h117l184 1045h945l-52 -291h-594l-49 -278h559l-53 -291h-558l-33 -185h108l-33 -188h-108l-46 -260h-351z" />
+<glyph unicode="&#x20a4;" d="M20 266h203l32 184h-187l41 239h190l15 87h-193l40 239h193q24 129 68.5 224.5t113.5 157.5t164 92.5t219 30.5q166 0 318 -54l-50 -286q-54 37 -116.5 57t-128.5 20q-111 0 -172.5 -60t-85.5 -182h318l-40 -239h-319l-14 -87h321l-41 -239h-325l-33 -184h488l-46 -266 h-1020z" />
+<glyph unicode="&#x20a5;" d="M466 306l34 278q7 57 10.5 103.5t3.5 76.5q0 37 -5 60q-5 24 -21.5 38.5t-43.5 14.5q-65 0 -110 -85q-44 -84 -64 -241l-67 -551h-225l136 1120h225l-20 -164q107 191 236 191q73 0 121 -54t65 -154l161 371h108l-76 -174q16 5 31.5 8t33.5 3q98 0 148.5 -81.5 t50.5 -230.5q0 -36 -2.5 -75.5t-7.5 -77.5l-84 -682h-225l72 584l4 26l5 41q1 9 2.5 22t2.5 27t1.5 28t0.5 26q0 40 -8 70q-15 53 -64 53q-63 0 -109 -84l-14 -29q-17 -42 -30 -96.5t-21 -117.5l-67 -550h-214l-82 -190h-107z" />
+<glyph unicode="&#x20a6;" d="M7 438h-66l38 194h65l45 229h-66l38 194h65l86 438h430l60 -438h161l86 438h365l-86 -438h66l-38 -194h-65l-45 -229h66l-38 -194h-65l-86 -438h-430l-60 438h-161l-86 -438h-365zM506 632l-31 229h-21l-45 -229h97zM781 632l45 229h-97l31 -229h21z" />
+<glyph unicode="&#x20a7;" d="M1049 -29q-51 0 -106 18q-10 4 -20 7.5t-21 8.5l-1 -5h-138q-75 0 -114 67.5t-39 198.5q0 26 1.5 58t4.5 65l42 475h-21q-9 -49 -23.5 -95t-33.5 -86.5t-43.5 -72.5t-54.5 -53q-57 -39 -142 -39h-117l-46 -518h-177l134 1493h294q54 0 95.5 -27t70.5 -76t44.5 -117.5 t18.5 -152.5h25l28 318h166l-28 -318h168l-1 -10q52 37 128 37q102 0 205 -62l-24 -278q-97 102 -188 102q-47 0 -73.5 -27t-26.5 -78q0 -32 15 -49.5t57 -37.5l30 -12q52 -24 86.5 -53.5t55.5 -68t29.5 -88t8.5 -112.5q0 -96 -18 -172.5t-52.5 -130t-84.5 -81.5t-114 -28z M347 797q62 0 95 64.5t33 175.5q0 177 -92 177h-97l-37 -417h98zM1054 209q105 0 105 107q0 18 -3.5 31.5t-12 24.5t-23 20.5t-36.5 19.5l-30 12q-45 20 -76 48.5t-50.5 69t-28.5 94t-9 122.5q0 56 6 106h-72l-42 -474q-2 -16 -2.5 -27t-0.5 -21q0 -46 14 -66t47 -20h9l6 68 q32 -41 68 -68h2v-1q9 -8 26 -17q26 -14 50.5 -21.5t52.5 -7.5z" />
+<glyph unicode="&#x20a8;" d="M871 -29q-32 0 -59.5 4.5t-59.5 13.5q-11 3 -21 6t-20 7v-2h-216l-58 371q-18 112 -43 153q-26 41 -75 41h-58l-58 -565h-203l153 1493h310q137 0 201 -74t64 -234q0 -49 -6 -104q-15 -140 -59.5 -237t-131.5 -146q21 -9 38 -30.5t29 -50.5q14 -32 25 -81.5t21 -111.5 l19 -118q48 -48 104 -72.5t110 -24.5q64 0 96.5 34t32.5 99q0 20 -3.5 34.5t-13.5 24.5t-26.5 17.5t-42.5 13.5l-32 8q-105 26 -150.5 88t-45.5 178q0 22 1.5 44t3.5 47q34 350 297 350q54 0 109.5 -15t119.5 -47l-28 -272q-113 96 -213 96q-52 0 -83 -25.5t-35 -77.5 q0 -2 -0.5 -9.5t-0.5 -13.5q0 -29 19 -48.5t63 -29.5l32 -9q61 -17 102 -38t66 -52t35.5 -74t10.5 -103q0 -44 -6 -99q-20 -174 -94.5 -266.5t-219.5 -92.5zM374 831q64 0 96.5 46.5t42.5 146.5q3 31 3 57q0 71 -24.5 102t-78.5 31h-85l-40 -383h86z" />
+<glyph unicode="&#x20a9;" d="M111 854h-111l17 146h90l-3 118h-73l17 146h52l-5 229h219l6 -229h241l59 229h221l5 -229h242l59 229h217l-58 -229h52l-17 -146h-72l-31 -118h90l-17 -146h-110l-219 -854h-264l-23 854h-79l-219 -854h-264zM494 1000l30 118h-200l3 -118h167zM692 1000l-3 118h-5 l-31 -118h39zM1020 1000l30 118h-200l3 -118h167zM456 854h-125l11 -446zM982 854h-125l11 -446z" />
+<glyph unicode="&#x20aa;" d="M210 1493h397q314 0 314 -386q0 -54 -6 -113t-17 -128l-58 -345h-176l58 345q9 54 14.5 98t5.5 81q0 87 -35.5 126t-117.5 39h-189l-211 -1238h-238zM685 -28q-159 0 -237 94t-78 289q0 54 6 113t18 130l58 345h176l-58 -345q-9 -53 -14.5 -96t-5.5 -82q0 -44 8 -75.5 t26 -51.5t47 -29.5t71 -9.5h190l210 1239h239l-259 -1522z" />
+<glyph unicode="&#x20ab;" d="M685 -29q-73 0 -131.5 28t-99.5 81.5t-63 132t-22 180.5q0 64 8.5 129t24.5 127t38 119t48 105q73 136 175 206t219 70q58 0 105.5 -17t83 -48.5t57.5 -75t29 -97.5l66 340h-304l37 189h303l23 116h293l-23 -116h146l-37 -189h-146l-243 -1251h-291l31 166 q-66 -97 -148 -146t-179 -49zM816 211q63 0 115.5 40t90.5 104.5t59 146.5t21 165q0 123 -44.5 182.5t-115.5 59.5q-63 0 -114 -42t-87.5 -108.5t-56 -150t-19.5 -165.5q0 -121 41 -176.5t110 -55.5zM417 -218h631l-37 -188h-631z" />
+<glyph unicode="&#x20ac;" d="M651 -29q-119 0 -208 35.5t-149 98.5q-63 67 -94.5 160.5t-31.5 211.5v6h-201l84 187h127q3 28 5.5 44.5t6.5 36.5q3 16 6 30t9 40h-176l84 189h147q94 249 264 379q172 131 400 131q82 0 160 -18q77 -18 151 -54l-64 -328q-29 40 -62 68.5t-63 45.5q-35 20 -73.5 29 t-76.5 9q-51 0 -99 -16.5t-91 -50.5q-42 -33 -78 -81t-65 -114h402l-82 -189h-385q-2 -6 -4 -17t-4.5 -22t-4.5 -21.5t-3 -15.5l-15 -75h346l-82 -187h-278q8 -125 71 -194q64 -70 170 -70q36 0 73.5 7.5t74.5 23.5q35 15 80.5 44t107.5 77l-63 -328q-77 -36 -154 -54 q-80 -18 -162 -18z" />
+<glyph unicode="&#x20ad;" d="M119 712h-95l26 152h95l106 629h285l-91 -545l504 545h331l-580 -629h328l-25 -152h-333l415 -712h-358l-343 588l-99 -588h-285z" />
+<glyph unicode="&#x20ae;" d="M389 350l-111 -58l-29 77l160 83l32 168l-111 -58l-29 77l160 83l94 510h-386l56 261h1066l-56 -261h-375l-51 -288l110 57l29 -77l-158 -82l-33 -168l110 57l29 -77l-159 -82l-111 -572h-305z" />
+<glyph unicode="&#x20af;" d="M140 -29q-38 0 -64.5 16.5t-43 42.5t-24.5 59.5t-8 67.5q0 11 0.5 22t1.5 19q4 46 17.5 88.5t36 75.5t53 52.5t68.5 19.5q16 0 32.5 -4t30.5 -12q9 27 18 68l178 811q-5 -3 -9.5 -6.5t-9.5 -7.5q-9 -9 -17.5 -19.5t-17 -26t-18 -37.5t-19.5 -53l-108 65q10 35 25 71 t33 68.5t37.5 59.5t39.5 45q35 33 81 48.5t100 15.5q112 0 187 -61.5t117 -170.5q17 -46 27 -92.5t15 -87.5t6 -74.5t1 -52.5q0 -63 -9 -170t-41 -248q-14 -64 -32.5 -128t-43.5 -128q-25 -63 -58 -124t-71 -107q-42 -51 -89.5 -78t-95.5 -27q-31 0 -56 10.5t-47 30.5 q-14 13 -23.5 23.5t-16.5 18.5l-29 37q-10 -22 -18 -35q-25 -42 -59.5 -63.5t-76.5 -21.5zM482 181q26 0 50.5 17t47 47.5t42.5 73t38 93.5q14 40 28 89t26 101t21 105t14 101q3 30 5 66.5t2 67.5q0 9 -0.5 30t-3.5 49.5t-8.5 61t-15.5 64.5q-21 67 -59 111t-89 50 l-182 -825q-4 -17 -10 -44t-13 -54.5t-12.5 -50t-7.5 -30.5l18 -27q21 -31 36.5 -49.5t28.5 -29t23.5 -14t20.5 -3.5zM729 -414l164 720q32 140 72.5 247t92.5 165q21 23 47 39t58 16q44 0 77 -31t50 -88q17 -56 17 -133q0 -23 -1.5 -52.5t-4.5 -58.5q-6 -57 -19 -114.5 t-30 -105.5q-38 -108 -90.5 -163.5t-108.5 -55.5q-34 0 -55.5 24.5t-35.5 87.5l-122 -540zM1064 149q17 0 36.5 17t37.5 52q20 39 32 87.5t19 109.5q2 19 3 36t1 29q0 13 -1.5 30t-6 32.5t-12.5 26t-22 10.5q-20 0 -43.5 -25t-44.5 -81q-14 -38 -25 -84.5t-16 -92.5 q-1 -13 -1.5 -24t-0.5 -23q0 -14 1.5 -31.5t6 -32.5t13 -25.5t23.5 -10.5zM146 154q12 0 20 13.5t18 50.5q-14 30 -33 30q-14 0 -22.5 -14t-10.5 -29v-10q0 -19 8 -30t20 -11z" />
+<glyph unicode="&#x20b0;" d="M652 198q117 0 186.5 55t88.5 161q2 10 3 19.5t1 18.5q0 62 -41 114q-69 -61 -141 -88.5t-140 -27.5q-35 0 -61.5 7t-47.5 20t-38 32.5t-33 44.5q-7 11 -16 25t-20 26t-24 20.5t-26 8.5q-24 0 -63.5 -33t-102.5 -111l-174 132q57 73 106.5 124.5t94.5 83.5t87.5 47 t84.5 15q48 0 90 -17.5t71 -50.5q26 -30 45 -50.5t33 -33t24.5 -18.5t20.5 -6q11 0 30.5 6.5t33.5 20.5q-63 69 -93.5 149.5t-30.5 161.5q0 23 2 52t7 58q12 80 43.5 145.5t81.5 112.5t118.5 72.5t154.5 25.5q79 0 132 -21t85 -55.5t45.5 -79t13.5 -92.5q0 -24 -3 -51 t-8 -57q-20 -110 -64.5 -211.5t-110.5 -186.5q55 -66 82 -134.5t27 -145.5q0 -18 -1.5 -35.5t-5.5 -38.5q-20 -110 -70.5 -192.5t-127 -138t-175.5 -83t-216 -27.5zM919 925q35 51 61 115.5t36 123.5q6 36 6 64q0 15 -2.5 33.5t-9 35t-17.5 28t-28 11.5q-19 0 -37 -14 t-33 -38t-26 -55t-17 -65q-6 -35 -6 -66q0 -106 73 -173z" />
+<glyph unicode="&#x20b1;" d="M193 909h-86l15 72h85l18 90h-89l14 72h89l68 350h420q117 0 207 -23t151.5 -67.5t93 -110t31.5 -149.5h84l-16 -72h-71q-2 -23 -5.5 -45t-8.5 -45h72l-15 -72h-76q-37 -112 -105 -190.5t-184 -118.5q-117 -41 -301 -41h-164l-109 -559h-295zM894 1143q-32 102 -220 102 h-121l-20 -102h361zM892 981q5 20 7.5 42.5t3.5 47.5h-383l-18 -90h390zM612 807q179 0 248 102h-371l-20 -102h143z" />
+<glyph unicode="&#x20b2;" d="M470 -22q-104 15 -179.5 63.5t-124.5 122t-73 167t-24 198.5q0 100 21 216q33 184 97 320.5t149.5 229.5t187.5 146t212 71l25 144h155l-24 -137q88 -4 176 -29.5t172 -80.5l-43 -248q-82 63 -164 96t-180 34l-188 -1090q17 1 34.5 2.5t36.5 4.5q31 5 68.5 21t72.5 46 l56 321h-111l35 208h320l-120 -693q-121 -70 -229 -101t-202 -37l-24 -138h-156zM693 1265q-52 -20 -91.5 -48t-75.5 -68q-66 -73 -108 -172.5t-65 -231.5q-8 -49 -12.5 -92t-4.5 -84q0 -137 46.5 -224.5t130.5 -121.5z" />
+<glyph unicode="&#x20b3;" d="M48 357h-70l33 195h126l68 149h-170l32 195h228l273 597h323l76 -597h227l-31 -195h-171l19 -149h127l-33 -195h-69l45 -357h-296l-45 357h-396l-164 -357h-296zM671 896l-16 138l-65 -138h81zM716 552l-20 149h-195l-68 -149h283z" />
+<glyph unicode="&#x20b4;" d="M505 -29q-220 0 -335.5 82t-115.5 249q0 30 3.5 56.5t9.5 61.5l3 18h-129l38 194h174q12 16 20 25.5t13.5 16.5t9.5 11.5t9 9.5q47 49 116.5 91.5t157.5 74.5h-456l38 194h811q7 11 12.5 25t8.5 30q2 8 3 18t1 21q0 60 -49.5 93.5t-144.5 33.5q-96 0 -200 -35t-213 -102 l56 288q111 46 218.5 69.5t209.5 23.5q201 0 307 -88t106 -248q0 -23 -2.5 -48t-7.5 -51q-2 -8 -3.5 -15t-3.5 -15h124l-38 -194h-181q-2 -3 -8.5 -9.5l-17.5 -17.5q-53 -50 -133.5 -93t-203.5 -86l-65 -23h565l-38 -194h-802q-3 -8 -5.5 -17t-4.5 -18q-2 -11 -3 -21.5 t-1 -19.5q0 -71 50 -109t152 -38q104 0 223 41.5t251 124.5l-59 -305q-114 -51 -228.5 -78t-241.5 -27z" />
+<glyph unicode="&#x20b5;" d="M585 -27q-58 4 -121.5 18.5t-124.5 41.5t-115.5 68t-95.5 98.5t-65.5 133.5t-24.5 172q0 37 4 79.5t13 88.5q24 121 71.5 219t112 174t140.5 131t157.5 92t163 56.5t156.5 23.5l36 187h162l-37 -191q29 -4 56.5 -9t53.5 -13q99 -28 182 -83l-60 -309q-66 78 -139 112.5 t-143 41.5l-169 -869q73 7 158 41.5t185 113.5l-60 -309q-54 -28 -108 -48.5t-107 -34.5q-32 -8 -60.5 -13t-57.5 -9l-54 -278h-162zM803 1095q-58 -14 -117 -49q-59 -36 -106 -89t-80 -116t-51 -131.5t-18 -134.5q0 -82 28.5 -157t85.5 -124q39 -33 93 -48z" />
+<glyph unicode="&#x20b7;" d="M122 510h109l-1 -65q23 39 57 60t74 21q38 0 62.5 -21t29.5 -58q17 36 53.5 57.5t78.5 21.5q53 0 84 -32t31 -91l-2 -29l-1 -20l-5 -35l-7 -35l-10 -53q78 23 120.5 74.5t42.5 123.5q0 66 -34.5 110.5t-104.5 74.5l-119 50q-102 43 -162 79.5t-92 76.5q-31 38 -46.5 86 t-15.5 115q0 111 42 202t119 158q79 67 186 103t233 36q105 0 199.5 -20t189.5 -62l-57 -285q-68 62 -158 93.5t-196 31.5q-126 0 -199 -56q-35 -27 -54.5 -63.5t-19.5 -71.5q0 -50 45.5 -93.5t138.5 -83.5l7 -3l116 -51q147 -65 214 -156t67 -227q0 -111 -40.5 -204 t-119.5 -161q-135 -114 -352 -134l-19 -176h-135l18 174q-39 3 -98 11l-21 -185h-135l26 213q-61 18 -94 31l-32 -244h-135zM314 284l4 20q5 25 5 39q1 3 1 12q0 47 -40 47q-22 0 -35 -15t-22 -46l-6 -22q42 -27 90 -49zM549 284q10 41 10 73q0 45 -39 45q-23 0 -36 -15.5 t-22 -46.5q-5 -17 -13 -56l-11 -57q48 -10 98 -12z" />
+<glyph unicode="&#x20b8;" d="M235 1493h1053l-50 -258h-1053zM490 857h-379l51 258h1053l-51 -258h-379l-166 -857h-295z" />
+<glyph unicode="&#x20b9;" d="M445 377l-12 44q-46 169 -153 169h-166l48 248h211q120 0 185 62q16 15 29.5 34t24.5 39h-465l126 195h377q-2 21 -9 39.5t-16 31.5q-41 59 -163 59h-252l126 195h955l-124 -195h-224q17 -51 17 -114v-16h268l-124 -195h-181q-17 -48 -44.5 -92.5t-68.5 -80.5t-96 -61 t-127 -34q42 -9 68 -41q13 -16 26.5 -46.5t28.5 -80.5l166 -537h-324z" />
+<glyph unicode="&#x2116;" d="M-100 0l290 1493h224l19 -820l159 820h205l-290 -1493h-224l-26 779l-152 -779h-205zM1164 737q-98 -127 -201 -127q-57 0 -92.5 34t-60.5 92q-22 53 -22 144q0 82 17 170q18 94 51 176.5t76 138.5q101 127 202 127q56 0 93.5 -34.5t58.5 -93.5q23 -56 23 -145 q0 -79 -18 -169q-18 -95 -51 -176.5t-76 -136.5zM948 951q0 -60 16 -96t44 -36q26 0 53.5 31t51 83.5t35.5 114.5q10 57 10 95q0 60 -16.5 97t-44.5 37q-26 0 -53.5 -31t-50.5 -83.5t-35 -114.5q-10 -50 -10 -97zM686 331l34 173h441l-34 -173h-441z" />
+<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
+<glyph unicode="&#x2126;" d="M-10 211h238q-71 78 -104.5 167.5t-33.5 203.5q0 90 21 200q30 154 90 279t144 213.5t189 137t224 48.5q97 0 172.5 -32.5t127.5 -93t79.5 -148t27.5 -197.5q0 -96 -21 -207q-18 -95 -47 -176t-70.5 -151t-96.5 -130t-125 -114h238l-41 -211h-471l52 268q51 42 90.5 91.5 t70 108t52.5 128t39 152.5q24 120 24 209q0 70 -15 121q-17 59 -51.5 87.5t-84.5 28.5q-53 0 -99 -31t-85 -88.5t-69 -140.5t-50 -186q-21 -108 -21 -196q0 -181 90 -284l-52 -268h-473z" />
+<glyph unicode="&#x2150;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM917 420h-449l36 145h683l-29 -117l-536 -718h-227z" />
+<glyph unicode="&#x2151;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM633 -285q-48 0 -96.5 6.5t-110.5 26.5l36 150q43 -25 93 -37.5t101 -12.5q112 0 186.5 60t108.5 178q-87 -73 -214 -73q-59 0 -106 16t-80 46 t-50.5 73.5t-17.5 99.5q0 69 27 130t78.5 106t125.5 71.5t167 26.5q149 0 227.5 -71t78.5 -217q0 -53 -10.5 -111t-31.5 -114.5t-51 -109t-69 -94.5q-72 -78 -169.5 -114t-222.5 -36zM802 145q40 0 73.5 16t57.5 42.5t37.5 60.5t13.5 69q0 58 -33 86.5t-84 28.5 q-39 0 -71.5 -15.5t-56.5 -41.5t-37.5 -60t-13.5 -71q0 -58 31 -86.5t83 -28.5z" />
+<glyph unicode="&#x2153;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM703 -285q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111 l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86 t-132.5 -54.5t-181 -19z" />
+<glyph unicode="&#x2154;" d="M31 965q42 31 60.5 44t28.5 20.5t19.5 14t33.5 23.5q202 145 301 237.5t99 149.5q0 35 -36.5 59.5t-107.5 24.5q-57 0 -132 -18t-152 -53l31 162q76 23 149 35t139 12q74 0 131 -14.5t96 -40t59 -59.5t20 -74q0 -44 -24.5 -91.5t-75 -101.5t-127.5 -117t-183 -136 q-30 -21 -46.5 -32.5t-26 -18.5t-16 -11.5t-15.5 -10.5h438l-28 -145h-664zM47 618l1059 261l37 -117l-1059 -262zM703 -285q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109 q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86 t-132.5 -54.5t-181 -19z" />
+<glyph unicode="&#x2155;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5 q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
+<glyph unicode="&#x2156;" d="M31 965q42 31 60.5 44t28.5 20.5t19.5 14t33.5 23.5q202 145 301 237.5t99 149.5q0 35 -36.5 59.5t-107.5 24.5q-57 0 -132 -18t-152 -53l31 162q76 23 149 35t139 12q74 0 131 -14.5t96 -40t59 -59.5t20 -74q0 -44 -24.5 -91.5t-75 -101.5t-127.5 -117t-183 -136 q-30 -21 -46.5 -32.5t-26 -18.5t-16 -11.5t-15.5 -10.5h438l-28 -145h-664zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11 t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
+<glyph unicode="&#x2157;" d="M338 809q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9 q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34 t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z " />
+<glyph unicode="&#x2158;" d="M431 1004h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM458 1147l64 330l-314 -330h250zM47 618l1059 261l37 -117l-1059 -262zM644 -285q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67 q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
+<glyph unicode="&#x2159;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13 q-109 0 -185.5 -60t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132t-80.5 -105t-126 -69t-165 -25zM746 -151q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60 t-13.5 -69.5q0 -57 31.5 -86t84.5 -29z" />
+<glyph unicode="&#x215a;" d="M279 809q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104 q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13q-109 0 -185.5 -60 t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132t-80.5 -105t-126 -69t-165 -25zM746 -151q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60t-13.5 -69.5 q0 -57 31.5 -86t84.5 -29z" />
+<glyph unicode="&#x215b;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5 q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25 t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
+<glyph unicode="&#x215c;" d="M338 809q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9 q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89 t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237 q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5 t30.5 -34.5t45.5 -20.5t55 -6.5z" />
+<glyph unicode="&#x215d;" d="M279 809q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5t21.5 -104 q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5 t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47 q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
+<glyph unicode="&#x215e;" d="M522 1514h-449l36 145h683l-29 -117l-536 -718h-227zM47 618l1059 261l37 -117l-1059 -262zM733 -285q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5 t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM844 237q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47 q0 -42 31.5 -68t88.5 -26zM753 -152q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
+<glyph unicode="&#x215f;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262z" />
+<glyph unicode="&#x2189;" d="M328 809q-133 0 -208 65.5t-75 203.5q0 49 9.5 108t27 118t41 113.5t52.5 95.5q56 80 140.5 121.5t192.5 41.5q132 0 208 -65.5t76 -201.5q0 -46 -9 -104t-26.5 -118t-42 -117t-55.5 -100q-55 -78 -137.5 -119.5t-193.5 -41.5zM350 947q53 0 87.5 31.5t60.5 83.5 q18 37 34 84t27 95t17.5 93t6.5 79q0 63 -23 93.5t-74 30.5q-50 0 -85.5 -28.5t-63.5 -85.5q-17 -35 -32.5 -81t-27 -94t-18 -94.5t-6.5 -81.5q0 -125 97 -125zM416 1172q-36 0 -62 20t-26 49q0 31 26 51.5t62 20.5q18 0 34.5 -5.5t29 -15t20 -22t7.5 -27.5q0 -29 -26.5 -50 t-64.5 -21zM47 618l1059 261l37 -117l-1059 -262zM703 -285q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5 q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19z" />
+<glyph unicode="&#x2190;" d="M66 490v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x2191;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
+<glyph unicode="&#x2192;" d="M756 319l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x2193;" d="M254 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x2194;" d="M66 490v142l291 291l120 -120l-130 -130h539l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-539l130 -130l-120 -120z" />
+<glyph unicode="&#x2195;" d="M254 291l120 120l130 -130v539l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-539l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x2196;" d="M341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
+<glyph unicode="&#x2197;" d="M164 136l572 572h-187v187h412l118 -118v-412h-187v187l-572 -572z" />
+<glyph unicode="&#x2198;" d="M548 156h187l-572 572l156 156l572 -572v187h187v-412l-118 -118h-412v187z" />
+<glyph unicode="&#x2199;" d="M154 88v412h187v-187l572 572l156 -156l-572 -572h187v-187h-412z" />
+<glyph unicode="&#x219a;" d="M66 490v142l291 291l120 -120l-130 -130h393l148 240l202 -112l-79 -128h156v-224h-273l-147 -240l-202 112l79 128h-277l130 -130l-120 -120z" />
+<glyph unicode="&#x219b;" d="M756 319l130 130h-393l-148 -240l-202 112l79 128h-156v224h273l147 240l202 -112l-79 -128h277l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x219c;" d="M60 777l118 118h412v-187h-187q-3 -12 -3 -22q0 -26 17 -42.5t45 -32.5q24 -15 47 -15q17 0 34.5 8.5t31 18.5t22.5 19t9 10q17 26 23.5 38t10.5 20q12 27 24.5 45.5t29.5 34.5t41 32.5t60 38.5q18 11 46 17t61 6t53 -5.5t37 -14.5q18 -9 43 -27t50 -43t45 -57t29 -69 l-142 -88q-5 10 -9.5 21t-12 22t-18.5 22t-29 20q-11 6 -24 10t-28 4q-27 0 -57.5 -14.5t-45.5 -47.5q-35 -69 -41 -75q-2 -3 -12.5 -20.5t-28.5 -40.5t-43.5 -47.5t-56.5 -40.5q-24 -13 -49 -18.5t-51 -5.5q-57 0 -102 24t-83 68l-79 91v-187h-187v412z" />
+<glyph unicode="&#x219d;" d="M986 552l-79 -91q-39 -45 -84.5 -68.5t-96.5 -23.5q-30 0 -58.5 7.5t-53.5 20t-45 29t-32 33.5q-3 4 -11.5 17t-17.5 27t-17 25.5t-10 13.5q-11 16 -19.5 31t-21.5 44q-16 33 -45.5 47.5t-54.5 14.5q-31 0 -60.5 -17t-41.5 -38q-5 -8 -10.5 -19t-11.5 -25l-142 88 q9 39 30.5 71.5t46.5 57.5t50 42t40 25q17 9 38 14.5t54 5.5q32 0 59.5 -6t45.5 -17q29 -18 50 -31.5t38 -29.5t32.5 -36.5t34.5 -52.5t25 -43t9 -16q1 -3 10 -12t22.5 -19t30 -17.5t32.5 -7.5q24 0 54 17t48 40q5 7 7.5 13t2.5 17q0 13 -4 25h-187v187h412l118 -118v-412 h-187v187z" />
+<glyph unicode="&#x219e;" d="M66 490v142l291 291l120 -120l-130 -130h90l250 250l120 -120l-130 -130h490v-224h-490l130 -130l-120 -120l-250 250h-90l130 -130l-120 -120z" />
+<glyph unicode="&#x219f;" d="M504 490l-130 -130l-120 120l250 250v90l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-90l250 -250l-120 -120l-130 130v-490h-224v490z" />
+<glyph unicode="&#x21a0;" d="M426 319l130 130h-490v224h490l-130 130l120 120l250 -250h90l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-90l-250 -250z" />
+<glyph unicode="&#x21a1;" d="M254 291l120 120l130 -130v90l-250 250l120 120l130 -130v490h224v-490l130 130l120 -120l-250 -250v-90l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21a2;" d="M66 490v142l291 291l120 -120l-130 -130h450l250 250l120 -120l-242 -242l242 -242l-119 -120l-251 250h-450l130 -130l-120 -120z" />
+<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l120 120l250 -250h450l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-450l-251 -250z" />
+<glyph unicode="&#x21a4;" d="M66 490v142l291 291l120 -120l-130 -130h626v250h194v-724h-194v250h-626l130 -130l-120 -120z" />
+<glyph unicode="&#x21a5;" d="M254 194h250v626l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-626h250v-194h-724v194z" />
+<glyph unicode="&#x21a6;" d="M66 923h194v-250h626l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-626v-250h-194v724z" />
+<glyph unicode="&#x21a7;" d="M254 291l120 120l130 -130v626h-250v194h724v-194h-250v-626l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21a8;" d="M254 194h292l-292 291l120 120l130 -130v345l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-345l130 130l120 -120l-290 -291h290v-194h-724v194z" />
+<glyph unicode="&#x21a9;" d="M66 490v142l291 291l120 -120l-130 -130h524q12 0 26 5t25 16q12 11 16.5 25t4.5 26q0 14 -5 27.5t-16 23.5q-9 9 -22.5 15.5t-28.5 6.5v224q65 0 118 -24t91 -62q46 -46 66.5 -100t20.5 -110q0 -63 -23 -117t-64 -95q-34 -34 -86.5 -59.5t-122.5 -25.5h-524l130 -130 l-120 -120z" />
+<glyph unicode="&#x21aa;" d="M756 319l130 130h-524q-70 0 -122.5 25.5t-86.5 59.5q-41 41 -64 95t-23 117q0 56 20.5 110t66.5 100q38 38 91 62t118 24v-224q-15 0 -28.5 -6.5t-22.5 -15.5q-11 -10 -16 -23.5t-5 -27.5q0 -12 4.5 -26t16.5 -25q11 -11 25 -16t26 -5h524l-130 130l120 120l291 -291 v-142l-291 -291z" />
+<glyph unicode="&#x21ab;" d="M66 490v142l291 291l120 -120l-130 -130h228v72q0 62 22.5 115.5t64.5 95.5t94 64t114 22q65 0 118 -23.5t92 -62.5q46 -46 66.5 -101t20.5 -110q0 -60 -22 -114t-64 -96q-37 -38 -90 -62t-120 -24h-71v-224h-225v224h-228l130 -130l-120 -120zM871 673q11 0 25.5 5 t25.5 16t16 24.5t5 28.5q0 29 -21 49q-10 9 -23 15.5t-27 6.5t-28.5 -6t-23.5 -15q-13 -12 -16.5 -27t-3.5 -25v-72h71z" />
+<glyph unicode="&#x21ac;" d="M756 319l130 130h-228v-224h-225v224h-71q-63 0 -115.5 22t-93.5 63q-38 38 -62.5 92t-24.5 119q0 55 20.5 110t66.5 101q39 39 92 62.5t118 23.5q62 0 114 -22t94 -64t64.5 -95.5t22.5 -115.5v-72h228l-130 130l120 120l291 -291v-142l-291 -291zM433 673v72 q0 10 -3.5 25t-16.5 27q-9 9 -23.5 15t-28.5 6t-27 -6.5t-23 -15.5q-21 -20 -21 -49q0 -15 5 -28.5t16 -24.5t25.5 -16t25.5 -5h71z" />
+<glyph unicode="&#x21ad;" d="M66 490v142l291 291l120 -120l-130 -130q17 -13 30 -28q18 -18 37 -18q11 0 19.5 5t16.5 13q9 12 11 20q13 37 38 66t53 43q30 15 65 15q68 0 118 -59q15 -18 22.5 -33t14.5 -32q5 -13 12 -20.5t16 -12.5q10 -5 20 -5q11 0 19.5 5t16.5 13l15.5 15.5t14.5 12.5l-130 130 l120 120l291 -291v-142l-291 -291l-120 120l130 130q-11 -7 -28 -10t-34 -3q-38 0 -67 15t-55 44q-17 20 -24.5 34.5t-13.5 30.5q-3 8 -8.5 17t-19.5 16q-10 5 -19 5q-19 0 -37 -18q-3 -3 -5.5 -7t-5.5 -13q-9 -32 -35 -62.5t-56 -46.5q-15 -8 -30.5 -11.5t-37.5 -3.5 q-19 0 -36 3t-27 10l130 -130l-120 -120z" />
+<glyph unicode="&#x21ae;" d="M464 217l49 232h-166l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h195l56 270l171 -39l-49 -231h166l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-195l-56 -271z" />
+<glyph unicode="&#x21af;" d="M674 19l-238 335l138 99l107 -150l110 629l-734 -432l171 933l221 -37l-91 -493l724 420l-181 -1058l150 107l99 -139l-336 -238z" />
+<glyph unicode="&#x21b0;" d="M856 937h-392l130 -130l-120 -120l-290 291v142l290 291l120 -120l-130 -130h616v-1161h-224v937z" />
+<glyph unicode="&#x21b1;" d="M154 1161h614l-130 130l120 120l292 -291v-142l-292 -291l-120 120l130 130h-390v-937h-224v1161z" />
+<glyph unicode="&#x21b2;" d="M184 261v142l290 291l120 -120l-130 -130h392v937h224v-1161h-616l130 -130l-120 -120z" />
+<glyph unicode="&#x21b3;" d="M638 90l130 130h-614v1161h224v-937h390l-130 130l120 120l292 -291v-142l-292 -291z" />
+<glyph unicode="&#x21b4;" d="M353 291l120 120l130 -130v631h-417v224h641v-855l130 130l120 -120l-291 -291h-142z" />
+<glyph unicode="&#x21b5;" d="M64 261v142l290 291l120 -120l-130 -130h632v417h224v-641h-856l130 -130l-120 -120z" />
+<glyph unicode="&#x21b6;" d="M50 635l120 120l130 -130v33q0 12 8.5 40.5t25 64t41.5 74.5t58 73q61 63 139.5 95t169.5 32t169 -32t141 -95q60 -60 95.5 -140t35.5 -174h-214q0 44 -16.5 87t-48.5 76q-30 31 -70.5 48t-88.5 17q-94 0 -158 -66q-33 -34 -48 -70.5t-15 -62.5l130 130l120 -120 l-291 -291h-142z" />
+<glyph unicode="&#x21b7;" d="M459 635l120 120l130 -130q0 26 -15 62.5t-48 70.5q-65 66 -160 66q-51 0 -88.5 -17t-67.5 -49q-66 -68 -66 -162h-214q0 94 35.5 174t95.5 140q63 63 141 95t169 32t169.5 -32t139.5 -95q33 -34 58 -73t41.5 -74.5t25 -64t8.5 -40.5v-33l130 130l120 -120l-291 -291 h-142z" />
+<glyph unicode="&#x21b8;" d="M50 1110h1132v-140h-1132v140zM341 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
+<glyph unicode="&#x21b9;" d="M66 1298h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724zM592 90l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
+<glyph unicode="&#x21ba;" d="M593 -39q-111 0 -207 41t-172 116q-79 78 -119 175t-40 209q0 108 38.5 201.5t120.5 178.5l171 -149q-46 -45 -68.5 -102t-22.5 -118q0 -66 24 -122t66 -98q39 -40 93 -65t124 -25q125 0 215 90q49 49 69.5 105.5t20.5 120.5q0 38 -6 69t-17 44l-48 72v-187h-187v412 l118 118h412v-187h-187q12 0 27.5 -16t31 -43.5t30 -64t26 -78t18.5 -85.5t7 -85q0 -98 -40.5 -195t-118.5 -175q-72 -72 -168 -114.5t-211 -42.5z" />
+<glyph unicode="&#x21bb;" d="M640 -39q-115 0 -211 42.5t-168 114.5q-78 78 -118.5 175t-40.5 195q0 61 14.5 127t36 120.5t45.5 89.5t44 35h-187v187h412l118 -118v-412h-187v187l-48 -72q-11 -13 -17 -44t-6 -69q0 -64 20.5 -120.5t69.5 -105.5q90 -90 215 -90q70 0 124 25t93 65q42 42 66 98 t24 122q0 61 -22.5 118t-68.5 102l171 149q82 -85 120.5 -178.5t38.5 -201.5q0 -112 -40 -209t-119 -175q-76 -75 -172 -116t-207 -41z" />
+<glyph unicode="&#x21bc;" d="M66 632l291 291l120 -120l-130 -130h820v-224h-1101v183z" />
+<glyph unicode="&#x21bd;" d="M66 490v183h1101v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21be;" d="M504 1101h184l290 -291l-120 -120l-130 130v-820h-224v1101z" />
+<glyph unicode="&#x21bf;" d="M504 820l-130 -130l-120 120l292 291h182v-1101h-224v820z" />
+<glyph unicode="&#x21c0;" d="M66 673h820l-130 130l120 120l291 -291v-183h-1101v224z" />
+<glyph unicode="&#x21c1;" d="M756 319l130 130h-820v224h1101v-183l-291 -291z" />
+<glyph unicode="&#x21c2;" d="M504 1101h224v-820l130 130l120 -120l-290 -291h-184v1101z" />
+<glyph unicode="&#x21c3;" d="M254 291l120 120l130 -130v820h224v-1101h-182z" />
+<glyph unicode="&#x21c4;" d="M756 574l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291zM66 261v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21c5;" d="M262 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820zM496 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21c6;" d="M66 745v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-120 -120zM756 90l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21c7;" d="M66 261v142l171 171l-171 171v142l291 291l120 -120l-130 -130h820v-224h-820l130 -130l-130 -130h820v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21c8;" d="M262 820l-130 -130l-120 120l292 291h142l171 -171l171 171h142l290 -291l-120 -120l-130 130v-820h-224v820l-130 -130l-130 130v-820h-224v820z" />
+<glyph unicode="&#x21c9;" d="M756 90l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-291 -291z" />
+<glyph unicode="&#x21ca;" d="M12 291l120 120l130 -130v820h224v-820l131 130l129 -130v820h224v-820l130 130l120 -120l-290 -291h-142l-172 171l-170 -171h-142z" />
+<glyph unicode="&#x21cb;" d="M66 887l291 291l120 -120l-130 -130h820v-224h-1101v183zM756 90l130 130h-820v224h1101v-183l-291 -291z" />
+<glyph unicode="&#x21cc;" d="M66 928h820l-130 130l120 120l291 -291v-183h-1101v224zM66 261v183h1101v-224h-820l130 -130l-120 -120z" />
+<glyph unicode="&#x21cd;" d="M66 490v142l291 291l120 -120l-68 -68h379l86 158l97 -59l-54 -99h250v-102h-312l-80 -144h392v-102h-443l-86 -156l-96 58l54 98h-187l68 -68l-120 -120zM649 489l78 144h-420l-72 -72l72 -72h342z" />
+<glyph unicode="&#x21ce;" d="M66 490v142l291 291l120 -120l-68 -68h129v188h157v-188h129l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-129v-188h-157v188h-129l68 -68l-120 -120zM538 489v144h-231l-72 -72l72 -72h231zM926 489l72 72l-72 72h-231v-144h231z" />
+<glyph unicode="&#x21cf;" d="M756 319l68 68h-379l-86 -158l-97 59l54 99h-250v102h312l80 144h-392v102h443l86 156l96 -58l-54 -98h187l-68 68l120 120l291 -291v-142l-291 -291zM926 489l72 72l-72 72h-342l-78 -144h420z" />
+<glyph unicode="&#x21d0;" d="M66 490v142l291 291l120 -120l-68 -68h758v-102h-860l-72 -72l72 -72h860v-102h-758l68 -68l-120 -120z" />
+<glyph unicode="&#x21d1;" d="M442 758l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-758h-102l1 860l-73 72l-72 -72v-860h-102v758z" />
+<glyph unicode="&#x21d2;" d="M756 319l68 68h-758v102h860l72 72l-72 72h-860v102h758l-68 68l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21d3;" d="M254 291l120 120l68 -68v758h102v-860l72 -72l73 72l-1 860h102v-758l68 68l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21d4;" d="M66 490v142l291 291l120 -120l-68 -68h415l-68 68l120 120l291 -291v-142l-291 -291l-120 120l68 68h-415l68 -68l-120 -120zM926 489l72 72l-72 72h-619l-72 -72l72 -72h619z" />
+<glyph unicode="&#x21d5;" d="M254 291l120 120l68 -68v415l-68 -68l-120 120l292 291h142l290 -291l-120 -120l-68 68v-415l68 68l120 -120l-290 -291h-142zM689 241v619l-73 72l-72 -72v-619l72 -72z" />
+<glyph unicode="&#x21d6;" d="M312 477v-112h-187v412l118 118h412v-187h-110l533 -534l-74 -74l-606 608h-86v-86l608 -606l-74 -74z" />
+<glyph unicode="&#x21d7;" d="M313 16l608 606v86h-86l-606 -608l-74 74l533 534h-110v187h412l118 -118v-412h-187v112l-534 -535z" />
+<glyph unicode="&#x21d8;" d="M578 157h112l-535 534l74 74l606 -608h86v86l-608 606l74 74l534 -533v110h187v-412l-118 -118h-412v187z" />
+<glyph unicode="&#x21d9;" d="M125 88v412h187v-110l534 533l74 -74l-608 -606v-86h86l606 608l74 -74l-535 -534h112v-187h-412z" />
+<glyph unicode="&#x21da;" d="M66 490v142l291 291l120 -120h690v-102h-792l-89 -89h881v-102h-881l89 -89h792v-102h-690l-120 -120z" />
+<glyph unicode="&#x21db;" d="M756 319h-690v102h792l89 89h-881v102h881l-89 89h-792v102h690l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21dc;" d="M66 490v142l291 291l120 -120l-130 -130h172l75 -80l194 206l193 -206l76 80h110v-224h-68l-118 -126l-193 218l-194 -218l-118 126h-129l130 -130l-120 -120z" />
+<glyph unicode="&#x21dd;" d="M756 319l130 130h-129l-118 -126l-194 218l-193 -218l-118 126h-68v224h110l76 -80l193 206l194 -206l75 80h172l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21e0;" d="M66 490v142l291 291l120 -120l-130 -130h198v-224h-198l130 -130l-120 -120zM670 673h187v-224h-187v224zM980 673h187v-224h-187v224z" />
+<glyph unicode="&#x21e1;" d="M504 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130l1 -198h-225v198zM505 497h223l1 -187h-225zM505 187h223v-187h-224z" />
+<glyph unicode="&#x21e2;" d="M756 319l130 130h-198v224h198l-130 130l120 120l291 -291v-142l-291 -291zM66 673h187v-224h-187v224zM376 673h187v-224h-187v224z" />
+<glyph unicode="&#x21e3;" d="M504 1101h224v-187h-223zM504 791h224v-187h-223zM254 291l120 120l130 -130v198h224v-198l130 130l120 -120l-290 -291h-142z" />
+<glyph unicode="&#x21e4;" d="M66 923h194v-261l261 261l120 -120l-130 -130h656v-224h-656l130 -130l-120 -120l-261 261v-261h-194v724z" />
+<glyph unicode="&#x21e5;" d="M592 319l130 130h-656v224h656l-130 130l120 120l261 -261v261h194v-724h-194v261l-261 -261z" />
+<glyph unicode="&#x21e6;" d="M5 561l403 423v-231h759v-384h-759v-231zM309 469h768v184h-768v93l-164 -185l164 -185v93z" />
+<glyph unicode="&#x21e7;" d="M424 759h-230l422 403l424 -403h-232v-759h-384v759zM708 90v768h94l-186 164l-184 -164h92v-768h184z" />
+<glyph unicode="&#x21e8;" d="M824 369h-758v384h758v231l404 -423l-404 -423v231zM1088 561l-164 185v-93h-768v-184h768v-93z" />
+<glyph unicode="&#x21e9;" d="M194 403h230v759h384v-759h232l-424 -403zM802 304h-94v768h-184v-768h-92l184 -164z" />
+<glyph unicode="&#x21eb;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM920 90v100h-212v668h94l-186 184l-184 -184h92v-668h-210v-100h606z" />
+<glyph unicode="&#x21ec;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM802 858l-186 184l-184 -184h370zM920 90v100h-212v569h-184v-569h-210v-100h606z" />
+<glyph unicode="&#x21ed;" d="M224 280h200v479h-230l422 403l424 -403h-232v-479h202v-280h-786v280zM582 90v917l-150 -149h92v-668h-210v-100h268zM920 90v110h-212v658h94l-150 149v-917h268z" />
+<glyph unicode="&#x21ee;" d="M424 539h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-539h-384v539zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM708 90v548h94l-186 164l-184 -164h92v-548h184z" />
+<glyph unicode="&#x21ef;" d="M224 280h200v259h-230l233 220h-233l422 403l424 -403h-233l233 -220h-232v-259h202v-280h-786v280zM524 858l92 84l92 -84h94l-186 184l-184 -184h92zM920 90v100h-212v448h94l-186 164l-184 -164h92v-448h-210v-100h606z" />
+<glyph unicode="&#x21f0;" d="M825 374h-479v-201h-280v786h280v-201h479v231l403 -423l-403 -423v231zM256 263v211h668v-93l184 185l-184 185v-93h-668v211h-100v-606h100z" />
+<glyph unicode="&#x21f1;" d="M40 1124h1123v-103h-1020v-1021h-103v1124zM455 552v-187h-187v412l118 118h412v-187h-187l572 -572l-156 -156z" />
+<glyph unicode="&#x21f2;" d="M430 416h186l-572 572l156 156l572 -572v187h188v-412l-118 -118h-412v187zM64 103h1022v1020h102v-1123h-1124v103z" />
+<glyph unicode="&#x21f3;" d="M194 403h230v356h-230l422 403l424 -403h-232v-356h232l-424 -403zM802 304h-94v554h94l-186 164l-184 -164h92v-554h-92l184 -164z" />
+<glyph unicode="&#x21f4;" d="M756 319l130 130h-147q-10 -35 -33 -73.5t-60.5 -70.5t-89.5 -53.5t-119 -21.5q-65 0 -114.5 19.5t-85.5 51t-59 70.5t-34 78h-78v224h78q10 37 34 77t60.5 72t85.5 53t109 21q20 0 46 -3t55.5 -13t62 -27.5t65.5 -45.5q34 -29 51.5 -59t25.5 -75h147l-130 130l120 120 l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x21f5;" d="M12 291l120 120l130 -130v820h224v-820l130 130l120 -120l-290 -291h-142zM746 820l-130 -130l-120 120l292 291h142l290 -291l-120 -120l-130 130v-820h-224v820z" />
+<glyph unicode="&#x21f6;" d="M756 -165l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l130 130h-820v224h820l-130 130l120 120l291 -291v-142l-171 -171l171 -171v-142l-171 -171l171 -171v-142l-291 -291z" />
+<glyph unicode="&#x21f7;" d="M66 490v142l291 291l120 -120l-130 -130h287v250h194v-250h339v-224h-339v-250h-194v250h-287l130 -130l-120 -120z" />
+<glyph unicode="&#x21f8;" d="M404 449h-338v224h338v250h194v-250h288l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-288v-250h-194v250z" />
+<glyph unicode="&#x21f9;" d="M514 449h-167l130 -130l-120 -120l-291 291v142l291 291l120 -120l-130 -130h167v250h205v-250h167l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-167v-260h-205v260z" />
+<glyph unicode="&#x21fa;" d="M66 490v142l291 291l120 -120l-130 -130h217v250h194v-250h88v250h194v-250h127v-224h-127v-250h-194v250h-88v-250h-194v250h-217l130 -130l-120 -120z" />
+<glyph unicode="&#x21fb;" d="M193 449h-127v224h127v250h194v-250h87v250h194v-250h218l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-218v-250h-194v250h-87v-250h-194v250z" />
+<glyph unicode="&#x21fc;" d="M66 490v142l291 291l120 -120l-130 -130h145v263h106v-263h37v263h106v-263h145l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-145v-250h-106v250h-37v-250h-106v250h-145l130 -130l-120 -120z" />
+<glyph unicode="&#x21fd;" d="M5 561l403 423v-311h759v-224h-759v-311zM309 746l-164 -185l164 -185v370z" />
+<glyph unicode="&#x21fe;" d="M825 449h-759v224h759v311l403 -423l-403 -423v311zM1088 561l-164 185v-370z" />
+<glyph unicode="&#x21ff;" d="M5 561l403 423v-311h417v311l403 -423l-403 -423v311h-417v-311zM309 746l-164 -185l164 -185v370zM1088 561l-164 185v-370z" />
+<glyph unicode="&#x2200;" d="M33 1493h295l90 -369h395l92 369h295l-403 -1493h-361zM756 881h-279l139 -611z" />
+<glyph unicode="&#x2201;" d="M639 -29q-148 0 -263 51.5t-193.5 150.5t-119 243t-40.5 329v1q0 185 40.5 329t119 243t193.5 150.5t263 51.5q149 0 262 -51t191 -150q80 -101 121 -248h-375q-5 20 -10.5 38t-12.5 34q-23 54 -68 84t-110 30q-124 0 -176 -114q-53 -117 -53 -395v-5q0 -78 3.5 -138.5 t10.5 -108t17 -83.5t23 -64q26 -55 67 -85t107 -30t111 30t68 84q8 17 13 36t10 36h375q-41 -147 -121 -248q-78 -99 -191 -150t-262 -51z" />
+<glyph unicode="&#x2202;" d="M538 -25q-90 0 -159 29.5t-123 85.5q-56 57 -83.5 129t-27.5 165q0 96 29 178.5t88 148.5q116 131 288 131q50 0 92.5 -10.5t76.5 -32.5q66 -43 112 -137q3 22 6.5 40t7 38.5t7.5 46.5t8 64q5 42 7.5 78t2.5 74q0 54 -6 93t-19 68q-14 30 -32 43.5t-38 13.5 q-30 0 -68 -22.5t-78 -50.5q-49 -34 -87 -53.5t-73 -19.5q-43 0 -71 30q-29 31 -29 71q0 32 20.5 62t65.5 58q43 26 94.5 40t111.5 14q103 0 180 -41t134 -120q59 -81 88 -188.5t29 -250.5q0 -160 -38 -299.5t-119 -254.5q-78 -109 -176.5 -165t-220.5 -56zM535 45 q48 0 91.5 32t77.5 101q33 68 49.5 153.5t16.5 175.5q0 61 -8.5 108.5t-29.5 80.5q-20 32 -48.5 47t-60.5 15q-54 0 -96 -35t-73 -98q-32 -66 -49.5 -151t-17.5 -179q0 -69 9.5 -115t28.5 -75q20 -30 48 -45t62 -15z" />
+<glyph unicode="&#x2203;" d="M163 251h624v380h-624v231h624v390h-624v241h928v-1493h-928v251z" />
+<glyph unicode="&#x2204;" d="M231 0h-68v251h147l104 380h-251v231h318l104 390h-422v241h471l26 95h192l-26 -95h265v-1493h-669l-26 -95h-191zM787 862v390l-114 -390h114zM787 251v380h-182l-104 -380h286z" />
+<glyph unicode="&#x2205;" d="M64 208l119 119q-20 26 -38.5 58t-33 71t-23 85.5t-8.5 100.5q0 224 157 381q159 159 381 159q55 0 101 -9t85 -23.5t71 -33.5t58 -39l119 119l119 -119l-119 -119q19 -26 37 -57.5t32.5 -70.5t23 -85t8.5 -101q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5 q-54 0 -100.5 9t-85 23t-70.5 32.5t-57 37.5l-119 -119zM810 953q-13 8 -26.5 15.5t-27.5 13.5q-65 27 -138 27q-79 0 -146 -30t-114 -77q-54 -54 -80 -121.5t-26 -139.5q0 -73 27 -137q5 -14 12.5 -27t15.5 -26zM617 278q149 0 257 108q107 107 107 257q0 75 -27 140 q-5 13 -11.5 25.5t-14.5 25.5l-502 -502q12 -8 26 -15t25 -12q29 -13 65.5 -20t74.5 -7z" />
+<glyph unicode="&#x2206;" d="M427 1423h258l496 -1423h-1247zM831 221l-275 821l-274 -821h549z" />
+<glyph unicode="&#x2207;" d="M-6 1423h1247l-496 -1423h-258zM891 1202h-549l274 -821z" />
+<glyph unicode="&#x2208;" d="M636 0q-73 0 -141 26.5t-128 76t-109.5 119.5t-85.5 158q-72 175 -72 380q0 105 18.5 202t53.5 182.5t84 156t111 121.5q123 102 269 102h497v-230h-497q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h796v-230h-796q4 -38 14.5 -83.5 t27.5 -92t42.5 -90.5t61.5 -80q71 -71 153 -71h497v-230h-497v0z" />
+<glyph unicode="&#x2209;" d="M239 -117l94 250q-50 48 -92.5 113.5t-73.5 145.5t-49 173t-18 196q0 104 18.5 201t53.5 182.5t84 156t111 121.5q123 102 269 102h218l74 197l215 -80l-43 -117h33v-230h-121l-156 -417h277v-230h-363l-156 -416q5 -1 11 -1h11h497v-230h-497q-33 0 -55.5 4t-48.5 10 q-8 2 -16 2q-31 0 -47 -44t-16 -125q0 -17 0.5 -24t0.5 -20zM612 877l156 417h-132q-41 0 -80 -18t-73 -52.5t-62.5 -83.5t-49.5 -111q-12 -36 -20.5 -74t-13.5 -78h275zM525 647h-188q10 -81 33 -150t54 -121z" />
+<glyph unicode="&#x220a;" d="M636 129q-73 0 -141.5 18t-128.5 51t-109.5 80.5t-85.5 106.5q-72 118 -72 255q0 71 19 137t54 123.5t84.5 105t110.5 81.5q124 68 269 68h498v-224h-498q-140 0 -234 -96q-17 -17 -34 -39.5t-27 -42.5h793v-222h-792q10 -20 25.5 -41t34.5 -41q95 -98 234 -98h498v-222 h-498v0z" />
+<glyph unicode="&#x220b;" d="M100 230h497q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-796v230h796q-5 38 -14.5 83.5t-27 92t-42.5 90.5t-61 80q-71 71 -154 71h-497v230h497q73 0 141 -26.5t128 -75.5t109.5 -119t85.5 -158q72 -176 72 -381q0 -105 -18.5 -202t-53.5 -182.5 t-84.5 -156t-110.5 -121.5q-123 -102 -269 -102h-497v230z" />
+<glyph unicode="&#x220c;" d="M100 -117l44 117h-34v230h120l157 417h-277v230h363l155 416q-5 1 -10.5 1h-10.5h-497v230h497q33 0 55.5 -4t47.5 -10q8 -2 16 -2q32 0 48 44t16 125q0 17 -0.5 24t-0.5 20l215 -80l-94 -250q49 -48 92 -113.5t74 -145.5t49 -173t18 -196q0 -104 -18.5 -201 t-53.5 -182.5t-84.5 -156t-110.5 -121.5q-123 -102 -269 -102h-217l-75 -197zM906 877q-10 81 -33 150t-54 121l-101 -271h188zM607 230q41 0 80 18t73 52.5t62.5 83.5t49.5 111q12 36 20.5 74t13.5 78h-274l-156 -417h131z" />
+<glyph unicode="&#x220d;" d="M99 353h498q75 0 130.5 25t102.5 71q42 42 62 82h-793v222h792q-11 20 -26.5 41t-34.5 41q-95 98 -233 98h-498v222h498q73 0 141.5 -17.5t128.5 -50.5t109.5 -80.5t85.5 -106.5q72 -119 72 -257q0 -70 -18.5 -135.5t-53.5 -123t-84.5 -105t-110.5 -81.5 q-125 -69 -270 -69h-498v224z" />
+<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
+<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-256v1747h-417v-1747h-256v1954z" />
+<glyph unicode="&#x2210;" d="M152 1518h256v-1747h417v1747h256v-1954h-929v1954z" />
+<glyph unicode="&#x2211;" d="M127 -301l494 870l-494 809v140h960v-213h-647l449 -736l-451 -794h666v-211h-977v135z" />
+<glyph unicode="&#x2212;" d="M66 762h1099v-238h-1099v238z" />
+<glyph unicode="&#x2213;" d="M88 1284h1057v-238h-1057v238zM498 354h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354z" />
+<glyph unicode="&#x2215;" d="M852 1493h223l-854 -1683h-221z" />
+<glyph unicode="&#x2217;" d="M528 502l-331 -184l-76 141l332 174l-332 173l76 141l331 -182v344h172v-344l332 182l76 -141l-330 -173l330 -174l-76 -141l-332 184v-344h-172v344z" />
+<glyph unicode="&#x2218;" d="M613 372q-70 0 -130 25.5t-104.5 69.5t-70 104.5t-25.5 131.5t25.5 132t70.5 106t105.5 71t129.5 26q72 0 133 -27t106 -72q47 -48 71 -108t24 -126q0 -67 -25 -128t-71 -107q-48 -48 -109.5 -73t-129.5 -25zM614 534q36 0 67.5 13t54.5 36.5t36.5 54.5t13.5 67t-13 67 t-36 54t-54 36.5t-67 13.5t-67.5 -13.5t-54.5 -36.5t-36.5 -54.5t-13.5 -67.5t13 -67t36 -54t54 -36t67 -13z" />
+<glyph unicode="&#x2219;" d="M441 530q-28 0 -28 25q0 5 1 8l60 305q4 27 32 27h274q28 0 28 -25q0 -5 -1 -8l-61 -305q-5 -27 -32 -27h-273v0z" />
+<glyph unicode="&#x221a;" d="M256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
+<glyph unicode="&#x221b;" d="M370 1043q-148 0 -298 41v154q33 -14 69.5 -24t74 -17t74 -10.5t68.5 -3.5q100 0 146.5 31.5t46.5 88.5q0 61 -48.5 95t-135.5 34h-111v146h111q75 0 117 24.5t42 71.5q0 44 -39 69t-122 25q-24 0 -54.5 -2.5t-65 -7.5t-71 -14t-72.5 -21v152q69 17 138.5 26t132.5 9 q82 0 147 -15t110 -43t69 -68t24 -90q0 -75 -52 -121.5t-151 -62.5q107 -14 167.5 -68.5t60.5 -151.5q0 -121 -96 -184t-282 -63zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187z" />
+<glyph unicode="&#x221c;" d="M444 1238h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM256 721l-143 -51l-64 198l352 123l170 -581l387 1316h216v-208h-52l-460 -1557h-187zM444 1381v330l-250 -330h250z" />
+<glyph unicode="&#x221d;" d="M497 223q-69 0 -127.5 30t-101.5 85t-67 131.5t-24 169.5q0 89 22.5 162.5t64 126.5t100 82.5t130.5 29.5q91 0 163 -50t124 -159q45 108 114.5 158.5t160.5 50.5v-198q-16 0 -37 -13t-46 -42q-24 -28 -43.5 -64t-39.5 -94q14 -34 26 -59.5t22.5 -44.5t20.5 -32.5 t19 -24.5q40 -46 78 -46v-199q-75 0 -143 48.5t-132 156.5q-109 -205 -284 -205zM485 422q53 0 99 52t87 161q-54 125 -91 166t-86 41q-30 0 -54.5 -15.5t-42 -43.5t-27.5 -68t-10 -89q0 -46 9 -83.5t25 -64.5t39 -41.5t52 -14.5z" />
+<glyph unicode="&#x221e;" d="M331 223q-136 0 -228 116q-46 58 -68.5 130t-22.5 165q0 91 21.5 165t65.5 130q45 58 102.5 84.5t126.5 26.5q95 0 166 -52q73 -53 122 -157q46 108 115 158q70 51 170 51q146 0 233 -112q87 -113 87 -295q0 -92 -22.5 -164.5t-67.5 -130.5q-90 -115 -227 -115 q-89 0 -156 49t-132 156q-55 -103 -126 -154t-159 -51zM319 422q54 0 100 52q47 53 87 161q-54 125 -91 166q-20 22 -41.5 31.5t-44.5 9.5q-30 0 -54.5 -15.5t-41.5 -41.5q-18 -28 -28 -68t-10 -89q0 -43 8.5 -82t25.5 -68q33 -56 90 -56zM903 422q29 0 53.5 15t42.5 43 q19 29 28 68.5t9 86.5q0 45 -8 83t-25 67q-16 27 -39 42t-52 15q-55 0 -104 -55q-48 -54 -83 -158q28 -67 49 -104t39 -57q40 -46 90 -46z" />
+<glyph unicode="&#x221f;" d="M88 1306h238v-818h819v-238h-1057v1056z" />
+<glyph unicode="&#x2220;" d="M887 1306h238l-620 -818h640v-238h-1057z" />
+<glyph unicode="&#x2223;" d="M502 1565h227v-2048h-227v2048z" />
+<glyph unicode="&#x2227;" d="M436 1186h361l253 -1186h-298l-136 874l-136 -874h-298z" />
+<glyph unicode="&#x2228;" d="M182 1186h298l136 -874l136 874h298l-253 -1186h-361z" />
+<glyph unicode="&#x2229;" d="M182 602q0 154 25 264.5t78 181.5t135 104.5t196 33.5t196 -33.5t135 -104.5t78 -181.5t25 -264.5v-602h-251v676q0 117 -48 180t-135 63t-135 -63t-48 -180v-676h-251v602z" />
+<glyph unicode="&#x222a;" d="M616 0q-114 0 -196 33.5t-135 104.5t-78 181.5t-25 264.5v602h251v-676q0 -117 48 -180t135 -63t135 63t48 180v676h251v-602q0 -154 -25 -264.5t-78 -181.5t-135 -104.5t-196 -33.5z" />
+<glyph unicode="&#x222b;" d="M291 -373q-52 0 -92.5 13t-67.5 36q-26 21 -42.5 53.5t-16.5 74.5q0 60 39 98q38 37 99 37q55 0 91 -31q19 -17 26.5 -36t8.5 -36q2 -23 1 -40.5t5 -32.5q2 -5 7.5 -10t16.5 -5q28 0 48 40t33.5 119.5t22 199.5t15.5 280q0 10 1 34.5t2 55t2 63t2 59.5q10 255 38.5 435 t84.5 296q51 106 131 165t195 59q101 0 159 -49q27 -23 43 -55t16 -72q0 -33 -10.5 -58t-27.5 -41q-19 -18 -45 -27t-55 -9q-45 0 -76 24q-32 24 -42 69q-4 15 -4.5 26t-2.5 28q-2 15 -7 30.5t-22 15.5q-51 0 -80 -159t-40 -475q-1 -24 -1.5 -40t-1 -34t-1.5 -42t-2 -62 q-5 -136 -12 -247t-18 -196q-8 -61 -22.5 -125.5t-37.5 -125.5q-29 -79 -66.5 -134t-82.5 -92q-45 -38 -97 -57.5t-114 -19.5z" />
+<glyph unicode="&#x222c;" d="M242 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5 t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5zM765 -418q-27 0 -58 4.5t-63 14t-63 23.5t-58 33l81 144q22 -19 52 -28.5t47 -9.5q14 0 23.5 7.5t15.5 26.5t8.5 52t2.5 83v1570q0 72 13.5 132t42.5 103t74 66.5t108 23.5 q27 0 58 -4.5t63 -14t63 -23.5t58 -33l-81 -144q-22 19 -52 28.5t-47 9.5q-14 0 -23.5 -7.5t-15.5 -26.5t-8.5 -52t-2.5 -83v-1570q0 -72 -13.5 -132t-42.5 -103t-74 -66.5t-108 -23.5z" />
+<glyph unicode="&#x222d;" d="M149 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-42.5 -103t-69 -66.5 t-93 -23.5zM522 -418q-42 0 -85.5 16.5t-104.5 58.5l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q45 0 90 -18.5t101 -56.5l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132t-43 -103 t-69.5 -66.5t-93 -23.5zM896 -418q-39 0 -83.5 16t-107.5 59l82 122q7 -8 17.5 -12t18.5 -4q22 0 32 39t10 130v1570q0 72 14.5 132t42.5 103t69 66.5t93 23.5q39 0 83.5 -16t107.5 -59l-82 -122q-7 8 -17.5 12t-18.5 4q-22 0 -32 -39t-10 -130v-1570q0 -72 -14.5 -132 t-42.5 -103t-69 -66.5t-93 -23.5z" />
+<glyph unicode="&#x2234;" d="M448 1187h333v-365h-333v365zM147 470h333v-365h-333v365zM757 470h333v-365h-333v365z" />
+<glyph unicode="&#x2235;" d="M148 1187h333v-365h-333v365zM753 1187h333v-365h-333v365zM452 470h333v-365h-333v365z" />
+<glyph unicode="&#x2236;" d="M448 1187h333v-365h-333v365zM452 470h333v-365h-333v365z" />
+<glyph unicode="&#x2237;" d="M148 1187h333v-365h-333v365zM753 1187h333v-365h-333v365zM147 470h333v-365h-333v365zM757 470h333v-365h-333v365z" />
+<glyph unicode="&#x2238;" d="M450 1267h333v-365h-333v365zM66 762h1099v-238h-1099v238z" />
+<glyph unicode="&#x2239;" d="M850 1187h333v-365h-333v365zM74 760h746v-235h-746v235zM848 470h333v-365h-333v365z" />
+<glyph unicode="&#x223a;" d="M48 1235h333v-365h-333v365zM853 1235h333v-365h-333v365zM66 762h1099v-238h-1099v238zM47 419h333v-365h-333v365zM857 419h333v-365h-333v365z" />
+<glyph unicode="&#x223b;" d="M451 1277h333v-365h-333v365zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14 q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM450 365h333v-365h-333v365z" />
+<glyph unicode="&#x223c;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x223d;" d="M381 468q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14z" />
+<glyph unicode="&#x2241;" d="M344 167l140 412q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l135 397l201 -68l-137 -406q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-137 -404z" />
+<glyph unicode="&#x2242;" d="M88 987h1057v-235h-1057v235zM850 254q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 108 -40t102 -14q72 0 140.5 30.5 t141.5 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
+<glyph unicode="&#x2243;" d="M850 672q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2244;" d="M194 112l103 183h-209v235h338l133 230q-33 17 -79.5 26.5t-97.5 9.5q-42 0 -76.5 -6.5t-65.5 -19.5q-17 -7 -37.5 -17.5t-41 -23.5t-39.5 -27t-34 -29v226q42 36 84 59t82 36.5t77.5 18.5t70.5 5q26 0 49 -3t48 -9t52.5 -15.5t62.5 -22.5l13 -5l38 -18l201 360l144 -83 l-183 -324q11 -2 21.5 -3.5t23.5 -1.5q32 0 68 9.5t71.5 26t70 40t63.5 51.5v-232q-32 -29 -70.5 -50t-89.5 -40q-37 -14 -66 -20.5t-63 -6.5q-35 0 -69.5 6.5t-74.5 20.5l-94 -168h528v-235h-662l-150 -263z" />
+<glyph unicode="&#x2245;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x2246;" d="M850 909q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM239 30l20 30h-171v237h327l150 227h-477v236h634l96 147l176 -117l-19 -30h170v-236h-327l-150 -227h477v-237h-633l-97 -147z" />
+<glyph unicode="&#x2247;" d="M207 -54l47 114h-166v237h262l92 227h-354v236h450l85 210q-41 18 -74 29.5t-62 19t-54.5 10.5t-50.5 3q-79 0 -149 -29t-145 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q4 -2 11.5 -5l15 -6t14 -6t9.5 -4l106 259l218 -89l-78 -192 q30 8 55 19q32 14 68 38t74 57v-234q-75 -60 -145.5 -86.5t-146.5 -27.5l-61 -149h353v-236h-449l-93 -227h542v-237h-638l-82 -202z" />
+<glyph unicode="&#x2248;" d="M850 672q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29q-29 -12 -66.5 -34.5t-78.5 -57.5v229q40 31 78.5 53t72.5 35q36 14 76 20.5t77 6.5q52 0 107.5 -13.5t121.5 -41.5h1 l30 -14q117 -54 212 -54q71 0 139 30t142 95v-234q-75 -58 -146 -86q-33 -13 -69.5 -20.5t-79.5 -7.5zM850 254q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -103 12q-76 0 -148 -29 q-29 -12 -66.5 -34.5t-78.5 -57.5v229q77 61 151 88q37 14 76 20.5t76 6.5q53 0 108.5 -13.5t121.5 -41.5h1l31 -14q56 -26 108 -40t103 -14q38 0 71.5 8t67.5 23q39 17 72.5 39.5t69.5 54.5v-233q-74 -59 -146 -87q-33 -13 -69.5 -20.5t-79.5 -7.5z" />
+<glyph unicode="&#x2249;" d="M293 151l90 226q-183 -11 -295 -121v229q78 61 151 88t154 27q39 0 77 -7l70 173q-16 5 -29.5 9.5t-26.5 7.5q-22 5 -48.5 8.5t-54.5 3.5q-77 0 -147.5 -29t-145.5 -92v229q78 60 151.5 87.5t150.5 27.5q55 0 109.5 -13.5t120.5 -40.5l102 256l219 -90l-93 -235h16 q72 0 139 29.5t142 95.5v-234q-75 -60 -146.5 -87t-146.5 -27q-25 0 -46 3t-44 8l-68 -169q90 -37 170 -37q70 0 139 30.5t142 94.5v-233q-72 -58 -144 -86.5t-149 -28.5q-52 0 -100.5 12.5t-106.5 38.5l-30 13l-103 -257z" />
+<glyph unicode="&#x224a;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234q-69 -55 -141 -84.5 t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x224b;" d="M850 854q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q117 -54 213 -54q71 0 138 29.5t142 95.5v-234q-69 -55 -141 -84.5 t-154 -29.5zM850 437q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM850 25q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 61 151.5 88t150.5 27q49 0 103.5 -12t127.5 -43h1l31 -14q57 -26 107.5 -40t101.5 -14q72 0 141 30.5 t142 94.5v-233q-69 -56 -141 -85.5t-154 -29.5z" />
+<glyph unicode="&#x224c;" d="M381 909q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x224d;" d="M617 728q-200 0 -530 156v229q345 -155 530 -163q186 0 527 163v-229q-327 -156 -527 -156zM88 398q328 156 528 156t529 -156v-229q-344 155 -529 163q-186 0 -528 -163v229z" />
+<glyph unicode="&#x224e;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM615 20q-26 0 -62.5 10t-75 31.5t-75 54.5t-62.5 80q-16 28 -25.5 56t-9.5 45h-217v235h343q1 -27 7.5 -58.5t18.5 -62.5t29.5 -58.5t39.5 -46.5q17 -14 39.5 -24.5t51.5 -10.5q51 -1 92 34.5t69 110.5q11 28 17.5 57.5 t7.5 58.5h342v-235h-217q-14 -69 -48.5 -126t-107.5 -100q-40 -23 -82.5 -37t-74.5 -14z" />
+<glyph unicode="&#x224f;" d="M88 987h217q2 21 11 50.5t27.5 60.5t47.5 61.5t70 53.5q20 11 42.5 20.5t44.5 16t41.5 10.5t34.5 4q26 0 62.5 -11.5t75 -34t73.5 -55.5t58 -75q10 -18 20 -45.5t15 -55.5h217v-235h-342q0 26 -7 57.5t-19.5 62.5t-30 59t-38.5 48q-20 19 -42 27t-49 7q-57 -2 -96 -38.5 t-65 -106.5q-11 -30 -17.5 -60t-7.5 -56h-343v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2250;" d="M450 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2251;" d="M450 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM450 199h333v-365h-333v365z" />
+<glyph unicode="&#x2252;" d="M88 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM812 199h333v-365h-333v365z" />
+<glyph unicode="&#x2253;" d="M813 1448h333v-365h-333v365zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237zM88 199h333v-365h-333v365z" />
+<glyph unicode="&#x2254;" d="M81 1030h236v-322h-236v322zM407 987h745v-235h-745v235zM81 574h236v-321h-236v321zM407 532h745v-237h-745v237z" />
+<glyph unicode="&#x2255;" d="M916 1030h236v-322h-236v322zM81 987h745v-235h-745v235zM916 574h236v-321h-236v321zM81 532h745v-237h-745v237z" />
+<glyph unicode="&#x2256;" d="M88 532h256q-25 62 -25 110q0 51 27 110h-258v235h1057v-235h-256q14 -13 20 -42.5t6 -61.5q0 -28 -5.5 -53t-21.5 -63h257v-237h-1057v237zM693 532q26 24 38.5 53.5t12.5 59.5q0 31 -13 59t-39 48h-143q-52 -48 -52 -111q0 -61 51 -109h145z" />
+<glyph unicode="&#x2257;" d="M614 1082q-64 0 -119 22t-95 61t-63 92t-23 114q0 63 23.5 117t65 94t96.5 63t118 22t118 -24t96 -63t65 -94t24 -115q0 -62 -24 -114.5t-65.5 -91.5t-97 -61t-119.5 -22zM617 1257q25 0 47.5 9t38.5 24.5t25.5 36.5t9.5 45t-9.5 45.5t-26 37.5t-39 25.5t-47.5 9.5 t-47 -9t-38 -25t-25.5 -37.5t-9.5 -45.5t9.5 -45.5t25.5 -37t38 -24.5t48 -9zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2258;" d="M182 1314q209 151 436 151q230 0 432 -151l1 -244q-214 151 -433 160q-214 -1 -436 -160v244zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x2259;" d="M536 1688h162l233 -603h-194l-119 298l-116 -298h-200zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225a;" d="M302 1688h200l116 -298l119 298h194l-233 -603h-162zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225b;" d="M455 1419l-261 190h323l100 306l102 -306h321l-261 -190l102 -307l-264 190l-262 -190zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225c;" d="M561 1820h111l286 -729h-683zM722 1257l-106 274l-105 -274h211zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225d;" d="M257 1073q-32 0 -57.5 12.5t-44.5 35t-29 54.5t-10 70t10 69.5t29 54t44.5 35t57.5 12.5q31 0 57 -13.5t48 -42.5v175h105v-454h-105v48q-41 -56 -105 -56zM915 1333h-52v75h52v23q0 54 29.5 79t92.5 25h80v-68h-58q-22 0 -31 -8t-9 -28v-23h89v-75h-89v-252h-104v252z M676 1073q-91 0 -140 44.5t-49 125.5t48 127t129 46q82 0 128 -46t46 -124v-30h-244q6 -74 92 -74q31 0 65.5 10t70.5 30v-81q-37 -14 -74 -21t-72 -7zM730 1280q0 30 -17 48t-47 18q-29 0 -48 -17t-23 -49h135zM293 1149q34 0 51.5 24.5t17.5 71.5q0 95 -69 95 q-68 0 -68 -95q0 -47 17.5 -71.5t50.5 -24.5zM88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x225e;" d="M180 1627h175v-81q64 94 164 94q57 0 100 -27.5t65 -76.5q68 104 181 104q90 0 139 -58t49 -170v-334h-175v286q1 5 1 14v19q0 58 -17 84.5t-55 26.5q-50 0 -76.5 -42.5t-26.5 -118.5v-269h-175v286q0 91 -15 118q-17 26 -55 26q-51 0 -77.5 -41t-26.5 -119v-270h-175 v549zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
+<glyph unicode="&#x225f;" d="M492 1366q0 21 3.5 38.5t12.5 35t26 37t44 43.5l32 29q54 49 54 97q0 34 -24 53t-68 19q-39 0 -86 -16.5t-98 -49.5v157q60 21 109.5 31t100.5 10q118 0 182.5 -49.5t64.5 -143.5q0 -49 -20 -90.5t-66 -82.5l-32 -28q-17 -16 -27.5 -28t-16.5 -22.5t-8.5 -20t-2.5 -21.5 v-22h-180v24zM492 1268h180v-178h-180v178zM86 987h1058v-235h-1058v235zM86 532h1058v-237h-1058v237z" />
+<glyph unicode="&#x2260;" d="M94 117l146 178h-162v237h321l176 220h-497v235h659l252 305l150 -125l-146 -180h162v-235h-315l-174 -220h489v-237h-659l-252 -305z" />
+<glyph unicode="&#x2261;" d="M88 1222h1057v-235h-1057v235zM88 760h1057v-236h-1057v236zM88 297h1057v-237h-1057v237z" />
+<glyph unicode="&#x2262;" d="M188 -15l34 75h-134v237h241l101 227h-342v236h450l100 227h-550v235h658l80 181l219 -98l-36 -83h136v-235h-244l-102 -227h346v-236h-451l-101 -227h552v-237h-660l-78 -173z" />
+<glyph unicode="&#x2263;" d="M88 1410h1057v-237h-1057v237zM88 987h1057v-237h-1057v237zM88 564h1057v-237h-1057v237zM88 141h1057v-237h-1057v237z" />
+<glyph unicode="&#x2264;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x2265;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x2266;" d="M88 728v235l1057 334v-244l-739 -209l739 -209v-243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
+<glyph unicode="&#x2267;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 343h1057v-238h-1057v238zM88 0h1057v-237h-1057v237z" />
+<glyph unicode="&#x2268;" d="M1145 1053l-739 -209l739 -209v-243l-285 91l150 -128l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150l-161 137l11 13h-146v237h346l89 105h-435v238h635l122 144l-757 241v235l1057 334v-244z" />
+<glyph unicode="&#x2269;" d="M88 635l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM223 -250l11 13h-146v237h346l89 105h-435v238h635l126 149l161 -137l-9 -12h144v-238h-346l-88 -105h434v-237h-634l-127 -150z" />
+<glyph unicode="&#x226d;" d="M230 -31l126 311q-60 -20 -126.5 -48t-141.5 -63v229q106 51 198.5 85t171.5 51l80 199q-184 24 -451 151v229q339 -167 538 -163l179 443l199 -80l-125 -310q60 20 125.5 47.5t140.5 62.5v-229q-108 -51 -200 -84.5t-170 -52.5l-80 -198q185 -24 451 -151v-229 q-340 169 -537 163l-179 -443z" />
+<glyph unicode="&#x226e;" d="M343 52l121 324l-376 148v236l610 239l107 289l155 -58l-56 -149l241 95v-250l-346 -124l-106 -283l452 -161v-249l-527 207l-121 -322zM595 729l-245 -88l188 -67z" />
+<glyph unicode="&#x226f;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
+<glyph unicode="&#x2270;" d="M310 -120l42 120h-264v238h346l87 247l-433 138v235l634 200l100 290l181 -76l-49 -141l191 61v-244l-283 -80l-83 -234l366 -104v-243l-437 139l-65 -188h502v-238h-586l-68 -196zM633 803l-227 -64l185 -52z" />
+<glyph unicode="&#x2271;" d="M168 -120l42 120h-122v238h204l48 129l-252 -80v243l342 97l70 204l-412 117v244l486 -158l106 310l181 -76l-101 -292l385 -118v-235l-575 -183l-71 -202h646v-238h-729l-67 -196zM827 739l-137 39l-32 -87z" />
+<glyph unicode="&#x2272;" d="M88 623v235l1057 334v-244l-739 -209l739 -209v-243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40 t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2273;" d="M88 530l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM850 -78q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14 q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2274;" d="M310 -120l58 165q-72 -2 -138.5 -30t-141.5 -91v229q78 60 151 87.5t154 27.5q25 0 51 -3l77 220l-433 138v235l633 200l101 290l181 -76l-49 -140l191 60v-244l-283 -80l-82 -235l365 -103v-243l-437 139l-75 -218l19 -9q56 -26 109.5 -40t103.5 -14q71 0 138 29.5 t142 95.5v-234q-144 -114 -293 -114q-49 0 -97.5 12t-109.5 39q-17 7 -27.5 12t-18.5 8.5t-16.5 6.5t-20.5 8l-71 -204zM631 803l-225 -64l185 -52z" />
+<glyph unicode="&#x2275;" d="M168 -124l46 132q-62 -29 -126 -84v229q42 32 79.5 54t71.5 34q15 5 32 10t31 8l37 108l-251 -80v243l342 97l71 204l-413 117v244l485 -153l107 305l181 -76l-101 -289l385 -121v-235l-572 -182l-66 -189q55 -14 114 -39h1l30 -14q115 -54 213 -54q71 0 138 29.5 t142 95.5v-234q-75 -60 -146.5 -87t-148.5 -27q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-35 15 -67 27t-61 20q-1 0 -8 1.5t-16 2.5t-16.5 2.5t-10.5 1.5l-84 -242zM827 739l-137 39l-30 -86z" />
+<glyph unicode="&#x2276;" d="M88 832v235l1057 334v-244l-739 -209l739 -209v-243zM88 0l739 209l-739 209v244l1057 -334v-235l-1057 -336v243z" />
+<glyph unicode="&#x2277;" d="M88 739l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 93v235l1057 334v-244l-739 -209l739 -209v-243z" />
+<glyph unicode="&#x2278;" d="M202 -358l52 168l-166 -53v243l247 70l80 256l-327 92v244l393 -124l48 154l-441 140v235l619 195l100 323l224 -70l-52 -166l166 52v-244l-247 -70l-80 -256l327 -92v-243l-392 125l-48 -154l440 -139v-235l-618 -196l-101 -325zM628 1011l-222 -63l186 -53zM827 209 l-186 53l-36 -116z" />
+<glyph unicode="&#x2279;" d="M202 -358l118 377l-232 74v235l363 115l59 187l-422 -134v243l500 141l38 125l-538 152v244l602 -190l117 374l224 -70l-117 -375l231 -73v-235l-363 -115l-58 -188l421 133v-244l-500 -141l-38 -125l538 -152v-243l-602 191l-117 -376z" />
+<glyph unicode="&#x227a;" d="M1143 -95q-115 172 -277 301.5t-366 207.5q-91 35 -195.5 61t-218.5 43v246q106 20 213.5 51t200.5 66q113 42 203.5 90t167 107t142.5 132t130 167v-354q-285 -347 -626 -382q339 -46 626 -382v-354v0z" />
+<glyph unicode="&#x227b;" d="M86 259q287 336 626 382q-341 35 -626 382v354q67 -99 137 -174.5t147.5 -134t166 -103.5t192.5 -84q109 -41 215 -70.5t199 -46.5v-246q-118 -18 -222.5 -44.5t-191.5 -59.5q-204 -78 -366 -207.5t-277 -301.5v354z" />
+<glyph unicode="&#x227c;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM1145 -421q-399 591 -1057 712v235q678 -112 1057 -625v-322z" />
+<glyph unicode="&#x227d;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM88 -99q379 513 1057 625v-235q-658 -121 -1057 -712v322z" />
+<glyph unicode="&#x227e;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x227f;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM850 -206q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5 q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2280;" d="M309 -169l190 583q-90 35 -192.5 61t-220.5 43v246q91 17 194 45.5t220 70.5q46 17 89.5 35.5t85.5 40.5l185 568l223 -73l-82 -253q79 83 142 179v-354q-69 -83 -139 -147.5t-145 -112.5l-69 -211q186 -98 353 -293v-354q-170 254 -431 407l-180 -554zM575 649 q-14 -2 -29 -4t-29 -4l53 -9z" />
+<glyph unicode="&#x2281;" d="M146 -169l82 253q-79 -83 -142 -179v354q69 83 139 147.5t145 112.5l69 211q-186 98 -353 293v354q170 -254 431 -407l180 554l223 -73l-190 -583q90 -35 192.5 -61t220.5 -43v-246q-91 -17 -194 -45.5t-220 -70.5q-46 -17 -89.5 -35.5t-85.5 -40.5l-185 -568zM654 633 q14 2 29 4t29 4l-53 9z" />
+<glyph unicode="&#x2282;" d="M576 138q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569v0z" />
+<glyph unicode="&#x2283;" d="M88 363h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225z" />
+<glyph unicode="&#x2284;" d="M246 -48l94 242q-31 17 -58 38.5t-52 47.5q-72 76 -107 167.5t-35 193.5q0 108 38 200.5t103.5 159.5t154.5 105t191 38h134l99 257l179 -69l-72 -188h230v-225h-318l-216 -556h534v-225h-569q-14 0 -26.5 0.5t-25.5 1.5l-99 -258zM621 919h-46q-55 0 -103 -20t-83 -57 t-55.5 -89t-20.5 -116q0 -59 18.5 -108.5t57.5 -88.5q15 -15 35 -30z" />
+<glyph unicode="&#x2285;" d="M246 -49l72 188h-230v225h318l216 556h-534v225h569q14 0 26.5 -0.5t25.5 -1.5l99 258l179 -70l-94 -242q31 -17 58 -38.5t52 -47.5q72 -76 107 -167.5t35 -193.5q0 -108 -38 -200.5t-103.5 -159.5t-154.5 -105t-191 -38h-134l-99 -257zM658 364q55 0 103 20t83 57 t55.5 89t20.5 116q0 59 -18.5 108.5t-57.5 88.5q-15 15 -35 30l-197 -509h46z" />
+<glyph unicode="&#x2286;" d="M576 315q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20.5t-83 -57t-55.5 -88t-20.5 -113.5q0 -63 20.5 -114t56 -87t83.5 -56t102 -20h570v-225h-569zM88 198h1057v-238h-1057v238z" />
+<glyph unicode="&#x2287;" d="M88 540h570q54 0 102 20t83.5 56t56 87t20.5 114q0 62 -20.5 113.5t-55.5 88t-83 57t-103 20.5h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159t38 -199.5q0 -104 -36 -196t-100.5 -160.5t-154 -108t-197.5 -39.5h-569v225zM88 198h1057v-238h-1057v238z" />
+<glyph unicode="&#x2288;" d="M168 -160l46 120h-126v238h219l61 158q-76 34 -138 101q-70 75 -106 166t-36 195q0 108 38 200.5t103.5 159.5t154.5 105t191 38h166l67 173l179 -69l-40 -104h198v-225h-285l-213 -556h498v-225h-569h-15l-45 -117h629v-238h-721l-75 -196zM654 1096h-79q-55 0 -103 -20 t-83 -57t-55.5 -89t-20.5 -116q0 -121 76 -197q28 -28 61 -46z" />
+<glyph unicode="&#x2289;" d="M168 -160l46 120h-126v238h219l45 117h-264v225h350l216 556h-566v225h570q42 0 81 -6l69 179l179 -69l-69 -178q45 -27 86 -68q72 -73 106.5 -169t34.5 -194q0 -103 -36 -194t-100.5 -159.5t-154 -108t-197.5 -39.5h-96l-45 -117h629v-238h-721l-75 -196zM658 540 q54 0 102 19.5t83.5 56.5t56 88.5t20.5 116.5q0 60 -19 110t-57 88l-10 9l-187 -488h11z" />
+<glyph unicode="&#x228a;" d="M316 -108l54 68h-282v238h472l94 117h-78q-108 0 -197.5 39.5t-154 108t-100.5 160.5t-36 196q0 108 38 199.5t103.5 159t154.5 105.5t191 38h570v-225h-570q-55 0 -103 -20t-83 -57t-55.5 -88t-20.5 -113q0 -63 20.5 -114.5t56.5 -87.5t83.5 -56t101.5 -20h570v-225 h-289l61 -49l-54 -68h282v-238h-472l-173 -216z" />
+<glyph unicode="&#x228b;" d="M316 -108l54 68h-282v238h472l94 117h-566v225h570q54 0 101.5 20t83.5 56t56.5 87.5t20.5 114.5q0 62 -20.5 113t-55.5 88t-83 57t-103 20h-570v225h570q102 0 191 -38t154.5 -105.5t103.5 -159.5t38 -201q0 -100 -34.5 -191t-107.5 -169q-41 -44 -84 -71t-95 -45 l93 -75l-54 -68h282v-238h-472l-173 -216z" />
+<glyph unicode="&#x228d;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t140 17t89 60.5t46.5 119t13.5 191.5v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM489 765h253v-265h-253v265z" />
+<glyph unicode="&#x228e;" d="M616 -29q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v702h238v-682q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t140 17t89 60.5t46.5 119t13.5 191.5v682h238v-702q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5zM550 576h-140v132h140v140h132v-140 h140v-132h-140v-140h-132v140z" />
+<glyph unicode="&#x228f;" d="M88 1196h1057v-235h-822v-640h822v-235h-1057v1110z" />
+<glyph unicode="&#x2290;" d="M88 321h822v640h-822v235h1057v-1110h-1057v235z" />
+<glyph unicode="&#x2291;" d="M88 1302h1057v-235h-822v-448h822v-235h-1057v918zM88 215h1057v-235h-1057v235z" />
+<glyph unicode="&#x2292;" d="M88 619h822v448h-822v235h1057v-918h-1057v235zM88 215h1057v-235h-1057v235z" />
+<glyph unicode="&#x2293;" d="M62 1284h1110v-1284h-236v1049h-640v-1049h-234v1284z" />
+<glyph unicode="&#x2294;" d="M62 1284h236v-1049h640v1049h234v-1284h-1110v1284z" />
+<glyph unicode="&#x2295;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
+<glyph unicode="&#x2296;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM271 727h691v-170h-691v170z" />
+<glyph unicode="&#x2297;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l184 184l-185 185l120 121l185 -186l185 185l120 -120l-185 -185l184 -183l-121 -120l-183 183l-184 -184z" />
+<glyph unicode="&#x2298;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM313 458l489 489l120 -120l-489 -489z" />
+<glyph unicode="&#x2299;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM449 815h333v-365h-333v365z" />
+<glyph unicode="&#x229a;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM614 378q-57 0 -105 20t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 538q22 0 42 8t34.5 22.5t23 33.5t8.5 42 q0 20 -7 39t-24 36q-31 31 -75 31q-23 0 -42.5 -8.5t-34 -22.5t-22.5 -34t-8 -42q0 -23 8 -42t22.5 -33t33.5 -22t41 -8z" />
+<glyph unicode="&#x229b;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM927 889q-7 9 -15 18t-16 17q-26 26 -59 49t-69 38q-32 13 -68 21v-267zM528 1031q-17 -4 -32.5 -8.5t-31.5 -11.5q-35 -15 -68.5 -38.5t-58.5 -48.5q-8 -8 -16.5 -17.5t-15.5 -18.5l223 -123v266zM994 519q18 58 18 125q0 27 -3 53.5t-10 51.5l-221 -116z M453 633l-220 114q-12 -50 -12 -104q0 -65 18 -122zM528 502l-211 -117q5 -5 10 -11t10 -11q25 -25 58.5 -48.5t68.5 -38.5q16 -7 31.5 -11.5t32.5 -8.5v246zM700 255q36 8 68 21q33 14 67 37t61 50q8 8 12 12.5t7 7.5l-215 119v-247z" />
+<glyph unicode="&#x229c;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM299 849h635v-141h-635v141zM299 576h635v-143h-635v143z" />
+<glyph unicode="&#x229d;" d="M617 52q-127 0 -234 47.5t-185 125.5q-87 87 -129.5 194.5t-42.5 223.5q0 125 45.5 231.5t126.5 186.5q42 42 91 74.5t102 55.5q105 44 224 44q118 0 226.5 -44t193.5 -129q79 -79 125.5 -186.5t46.5 -232.5q0 -117 -43 -224.5t-129 -193.5q-78 -78 -184.5 -125.5 t-233.5 -47.5zM616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5 t151.5 -30.5zM399 727h435v-170h-435v170z" />
+<glyph unicode="&#x229e;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM531 557h-260v170h260v262h170v-262h261v-170h-261v-259h-170v259z" />
+<glyph unicode="&#x229f;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM271 727h691v-170h-691v170z" />
+<glyph unicode="&#x22a0;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM268 413l229 229l-231 231l121 120l230 -231l230 230l120 -120l-230 -230l229 -228l-120 -121l-229 229l-229 -229z" />
+<glyph unicode="&#x22a1;" d="M50 1210h1135v-1135h-1135v1135zM1012 245v795h-792v-795h792zM449 815h333v-365h-333v365z" />
+<glyph unicode="&#x22a2;" d="M66 1284h237v-522h862v-238h-862v-524h-237v1284z" />
+<glyph unicode="&#x22a3;" d="M928 522h-862v238h862v524h237v-1284h-237v522z" />
+<glyph unicode="&#x22a4;" d="M498 1046h-432v238h1099v-238h-430v-1046h-237v1046z" />
+<glyph unicode="&#x22b2;" d="M88 524v236l1057 416v-1067zM908 841l-558 -200l558 -199v399z" />
+<glyph unicode="&#x22b3;" d="M88 1176l1057 -416v-236l-1057 -415v1067zM883 641l-558 200v-399z" />
+<glyph unicode="&#x22b4;" d="M88 623v235l1057 334v-905zM908 881l-502 -142l502 -142v284zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x22b5;" d="M88 1192l1057 -334v-235l-1057 -336v905zM827 739l-502 142v-284zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#x22b8;" d="M918 359q-61 0 -109.5 21t-90.5 61q-20 19 -34.5 39.5t-24.5 43.5h-631v238h631q10 23 24 42.5t31 36.5q45 45 98.5 67t110.5 22q58 0 109.5 -22t90 -61t60.5 -92t22 -114q0 -60 -21.5 -111.5t-60 -89.5t-91 -59.5t-114.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43 t10.5 53.5q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
+<glyph unicode="&#x22c2;" d="M90 936q0 168 28.5 284.5t91.5 189t163 105t244 32.5t244 -32.5t163 -105t91 -189t28 -284.5v-1372h-238v1352q0 117 -13.5 192t-46.5 118.5t-88.5 60.5t-139.5 17t-140 -17t-89 -60.5t-46.5 -119t-13.5 -191.5v-1352h-238v1372z" />
+<glyph unicode="&#x22c3;" d="M616 -465q-144 0 -244 32.5t-163 105t-91 189t-28 284.5v1372h238v-1352q0 -117 13.5 -192t46.5 -118.5t88.5 -60.5t139.5 -17t140 17t89 60.5t46.5 119t13.5 191.5v1352h238v-1372q0 -168 -28.5 -284.5t-91.5 -189t-163 -105t-244 -32.5z" />
+<glyph unicode="&#x22c4;" d="M6 732l610 610l611 -610l-611 -610zM1004 732l-388 388l-387 -388l387 -388z" />
+<glyph unicode="&#x22c5;" d="M449 895h333v-365h-333v365z" />
+<glyph unicode="&#x22c6;" d="M467 657l-241 175h298l93 284l93 -284h297l-241 -175l93 -283l-242 175l-242 -175z" />
+<glyph unicode="&#x22cd;" d="M381 672q-75 0 -146.5 27t-146.5 87v234q75 -66 142.5 -95.5t137.5 -29.5q51 0 104.5 14t108.5 40l30 14h1q66 28 121 41.5t110 13.5q77 0 150.5 -27.5t151.5 -87.5v-229q-78 66 -148 93.5t-149 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5 t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x22ce;" d="M482 0q0 900 -484 1284h338q262 -208 280 -508q26 300 280 508h338q-484 -384 -484 -1284h-268v0z" />
+<glyph unicode="&#x22cf;" d="M-2 0q484 384 484 1284h268q0 -900 484 -1284h-338q-262 208 -280 508q-26 -300 -280 -508h-338v0z" />
+<glyph unicode="&#x22d0;" d="M778 -46q-143 0 -268 54t-218.5 147.5t-147.5 218.5t-54 268q0 95 24.5 183t69.5 164.5t107.5 139t139 107.5t164.5 69.5t183 24.5h365v-220h-365q-97 0 -182.5 -36.5t-149 -100t-100 -149t-36.5 -182.5t36.5 -182.5t100 -149t149 -100t182.5 -36.5h365v-220h-365z M778 324q-66 0 -124 25t-101 68t-68 101t-25 124t25 124t68 101t101 68t124 25h365v-220h-365q-42 0 -70 -28t-28 -70t28 -70t70 -28h365v-220h-365z" />
+<glyph unicode="&#x22d1;" d="M90 174h365q97 0 182.5 36.5t149 100t100 149t36.5 182.5t-36.5 182.5t-100 149t-149 100t-182.5 36.5h-365v220h365q95 0 183 -24.5t164.5 -69.5t139 -107.5t107.5 -139t69.5 -164.5t24.5 -183t-24.5 -183t-69.5 -164.5t-107.5 -139t-139 -107.5t-164.5 -69.5 t-183 -24.5h-365v220zM90 544h365q42 0 70 28t28 70t-28 70t-70 28h-365v220h365q66 0 124 -25t101 -68t68 -101t25 -124t-25 -124t-68 -101t-101 -68t-124 -25h-365v220z" />
+<glyph unicode="&#x22da;" d="M88 1020v235l1057 334v-244l-739 -209l739 -209v-243zM88 635h1057v-238h-1057v238zM88 -313l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
+<glyph unicode="&#x22db;" d="M88 927l739 209l-739 209v244l1057 -334v-235l-1057 -336v243zM88 635h1057v-238h-1057v238zM88 -223v235l1057 336v-243l-739 -209l739 -209v-244z" />
+<glyph unicode="&#x22dc;" d="M88 1192h1057v-238h-1057v238zM88 334v235l1057 336v-243l-739 -209l739 -209v-244z" />
+<glyph unicode="&#x22dd;" d="M88 1192h1057v-238h-1057v238zM88 244l739 209l-739 209v243l1057 -336v-235l-1057 -334v244z" />
+<glyph unicode="&#x22de;" d="M88 811q658 121 1057 712v-322q-379 -513 -1057 -625v235zM1145 -421q-405 518 -1057 555v266q640 52 1057 555v-338q-271 -277 -608 -350q335 -75 608 -350v-338z" />
+<glyph unicode="&#x22df;" d="M1145 576q-678 112 -1057 625v322q399 -591 1057 -712v-235zM88 -83q273 275 608 350q-337 73 -608 350v338q417 -503 1057 -555v-266q-652 -37 -1057 -555v338z" />
+<glyph unicode="&#x22e0;" d="M279 -452l139 646q-78 32 -160 56.5t-170 40.5v235q102 -17 196.5 -42.5t182.5 -60.5l40 188q-195 73 -419 91v266q284 16 522 125l119 552l225 -48l-73 -340q72 57 137.5 122.5t126.5 143.5v-338q-156 -158 -333 -249l-39 -181q199 -95 372 -270v-338q-189 228 -424 364 l-41 -191q273 -158 465 -419v-322q-219 323 -515 507l-126 -586zM556 839l-19 -4l17 -4z" />
+<glyph unicode="&#x22e1;" d="M279 -452l74 346q-143 -135 -265 -315v322q74 100 158 184t181 154l55 253q-216 -131 -394 -345v338q208 214 458 306l17 82q-258 92 -475 312v338q222 -285 524 -425l117 547l225 -48l-124 -579q75 -20 153 -32.5t162 -17.5v-266q-107 -8 -207 -29.5t-194 -55.5 l-48 -224q204 92 449 133v-235q-280 -51 -511 -187l-130 -604z" />
+<glyph unicode="&#x22e2;" d="M187 -214l70 194h-169v235h253l61 169h-314v918h644l98 272l216 -78l-70 -194h169v-235h-253l-161 -448h414v-235h-499l-61 -169h560v-235h-644l-98 -272zM487 619l161 448h-325v-448h164z" />
+<glyph unicode="&#x22e3;" d="M187 -214l70 194h-169v235h253l61 169h-314v235h399l161 448h-560v235h644l98 272l216 -78l-70 -194h169v-918h-499l-61 -169h560v-235h-644l-98 -272zM910 619v448h-18l-161 -448h179z" />
+<glyph unicode="&#x22e4;" d="M324 -122l72 102h-308v235h475l119 169h-594v918h1057v-235h-822v-448h822v-235h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
+<glyph unicode="&#x22e5;" d="M324 -122l72 102h-308v235h475l119 169h-594v235h822v448h-822v235h1057v-918h-331l95 -67l-72 -102h308v-235h-475l-163 -231z" />
+<glyph unicode="&#x22e6;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l72 213l-537 171v235l1057 334v-244l-739 -209l739 -209v-243l-317 101l-76 -226q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
+<glyph unicode="&#x22e7;" d="M386 -255l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l74 219l-539 -171v243l739 209l-739 209v244l1057 -334v-235l-426 -135l128 -44l-95 -282q60 -17 113 -17q70 0 137.5 29.5t142.5 95.5v-234 q-144 -114 -292 -114q-43 0 -84 9t-87 27l-95 -281z" />
+<glyph unicode="&#x22e8;" d="M1145 147q-417 503 -1057 555v266q652 37 1057 555v-338q-273 -275 -608 -350q337 -73 608 -350v-338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
+<glyph unicode="&#x22e9;" d="M88 485q271 277 608 350q-335 75 -608 350v338q405 -518 1057 -555v-266q-640 -52 -1057 -555v338zM386 -383l98 288q-53 12 -103 12q-78 0 -148 -29t-145 -92v229q77 60 150 87.5t151 27.5q42 0 80.5 -7.5t83.5 -21.5l93 273l201 -68l-95 -282q60 -17 113 -17 q70 0 137.5 29.5t142.5 95.5v-234q-144 -114 -292 -114q-43 0 -84 9t-87 26l-95 -280z" />
+<glyph unicode="&#x22ef;" d="M57 827h295v-367h-295v367zM469 827h295v-367h-295v367zM881 827h295v-367h-295v367z" />
+<glyph unicode="&#x2304;" d="M146 428h193l277 -410l277 410h193l-470 -698z" />
+<glyph unicode="&#x2308;" d="M599 1556h508l-36 -190h-242l-318 -1636h-266z" />
+<glyph unicode="&#x2309;" d="M686 1366h-242l36 190h508l-354 -1826h-266z" />
+<glyph unicode="&#x230a;" d="M599 1556h266l-318 -1636h242l-36 -190h-508z" />
+<glyph unicode="&#x230b;" d="M162 -80h242l318 1636h266l-354 -1826h-508z" />
+<glyph unicode="&#x2310;" d="M88 899h1057v-237h-819v-300h-238v537z" />
+<glyph unicode="&#x2320;" d="M485 727q0 4 1.5 55.5t5.5 156.5q10 253 38.5 434.5t83.5 296.5q52 109 134 166.5t190 57.5q51 0 91.5 -12.5t69.5 -36t44.5 -55.5t15.5 -71q0 -63 -37.5 -99.5t-97.5 -36.5q-52 0 -81.5 26t-39.5 67q-2 10 -4 25t-3 29q-2 20 -8.5 33t-20.5 13q-47 0 -76.5 -156.5 t-43.5 -477.5q-6 -143 -6 -178v-1476h-256v1239z" />
+<glyph unicode="&#x2321;" d="M288 -490q-51 0 -91.5 12.5t-69.5 36t-44.5 55.5t-15.5 71q0 63 37.5 99.5t97.5 36.5q52 0 81.5 -26t39.5 -67q2 -10 4 -25t3 -29q2 -20 8.5 -33t20.5 -13q47 0 76.5 156.5t43.5 477.5q6 142 6 178v1486h256v-1249q0 -4 -1.5 -55.5t-5.5 -156.5q-10 -253 -38.5 -434.5 t-83.5 -296.5q-52 -109 -134 -166.5t-190 -57.5z" />
+<glyph unicode="&#x239b;" d="M232 -282q0 294 22.5 546t61 466t89.5 391t108 322t116.5 258.5t114.5 199.5h256q-59 -120 -117.5 -246.5t-111.5 -271.5t-98 -313.5t-78.5 -371t-52.5 -445t-19 -535.5v-234h-291v234z" />
+<glyph unicode="&#x239c;" d="M232 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x239d;" d="M744 -492q-51 80 -109 190t-115 253t-109 320.5t-92 393.5t-63.5 472t-23.5 555v234h291v-234q0 -284 16 -518t46.5 -430t73 -361.5t95.5 -313.5t115 -285t131 -276h-256v0z" />
+<glyph unicode="&#x239e;" d="M710 -282q0 293 -19 535.5t-52.5 445t-78.5 371t-98 313.5t-111.5 271.5t-117.5 246.5h256q55 -86 114.5 -199.5t116.5 -258.5t108 -322t89.5 -391t61 -466t22.5 -546v-234h-291v234z" />
+<glyph unicode="&#x239f;" d="M710 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x23a0;" d="M233 -492q69 139 131 276t115 285t95.5 313.5t73 361.5t46.5 430t16 518v234h291v-234q0 -299 -23.5 -555t-63.5 -472t-92 -393.5t-109 -320.5t-115 -253t-109 -190h-256v0z" />
+<glyph unicode="&#x23a1;" d="M232 1901h768v-291h-477v-2126h-291v2417z" />
+<glyph unicode="&#x23a2;" d="M232 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x23a3;" d="M232 1926h291v-2127h477v-291h-768v2418z" />
+<glyph unicode="&#x23a4;" d="M709 1610h-477v291h768v-2417h-291v2126z" />
+<glyph unicode="&#x23a5;" d="M709 1926h291v-2442h-291v2442z" />
+<glyph unicode="&#x23a6;" d="M232 -201h477v2127h291v-2418h-768v291z" />
+<glyph unicode="&#x23a7;" d="M476 1375q0 123 31.5 220.5t91 165.5t146 104t197.5 36h275v-272h-281q-51 0 -85 -8t-55 -34t-29.5 -74.5t-8.5 -129.5v-1917h-282v1909z" />
+<glyph unicode="&#x23a8;" d="M476 181q0 94 -19 165t-65 118.5t-122.5 72t-191.5 26.5l-61 1v283h61q112 0 188.5 23t123 70t66.5 119t20 170v684h282v-696q0 -134 -25.5 -240t-75.5 -179q-42 -61 -100 -93q56 -31 100 -93q51 -73 76 -179t25 -240v-698h-282v686z" />
+<glyph unicode="&#x23a9;" d="M942 -492q-109 0 -195.5 35.5t-146.5 103t-92 165t-32 222.5v1879h282v-1887q0 -81 8.5 -129.5t29.5 -74.5t55 -34t85 -8h281v-272h-275v0z" />
+<glyph unicode="&#x23aa;" d="M476 1913h282v-2437h-282v2437z" />
+<glyph unicode="&#x23ab;" d="M475 1383q0 81 -8.5 129.5t-29.5 74.5t-55 34t-85 8h-281v272h275q111 0 197.5 -36t146 -104t91 -165.5t31.5 -220.5v-1909h-282v1917z" />
+<glyph unicode="&#x23ac;" d="M475 193q0 134 25 240t76 179q43 62 100 93q-59 33 -100 93q-50 73 -75.5 179t-25.5 240v696h282v-684q0 -98 20 -170t66.5 -119t123 -70t188.5 -23h61v-283l-61 -1q-115 -2 -191.5 -26.5t-122.5 -72t-65 -118.5t-19 -165v-686h-282v698z" />
+<glyph unicode="&#x23ad;" d="M16 -220h281q51 0 85 8t55 34t29.5 74.5t8.5 129.5v1887h282v-1879q0 -125 -32 -222.5t-92 -165t-146.5 -103t-195.5 -35.5h-275v272z" />
+<glyph unicode="&#x23ae;" d="M485 1926h256v-2438h-256v2438z" />
+<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
+<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
+<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
+<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
+<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
+<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
+<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
+<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
+<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
+<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
+<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
+<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
+<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
+<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
+<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
+<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
+<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
+<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
+<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
+<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
+<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
+<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
+<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
+<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
+<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
+<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
+<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
+<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
+<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
+<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
+<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
+<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
+<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
+<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
+<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
+<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
+<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
+<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
+<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
+<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
+<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
+<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
+<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
+<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
+<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
+<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
+<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
+<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
+<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
+<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
+<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
+<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
+<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
+<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
+<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
+<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
+<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
+<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
+<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
+<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
+<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
+<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
+<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
+<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
+<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
+<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
+<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
+<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
+<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
+<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
+<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
+<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
+<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
+<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
+<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
+<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
+<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
+<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
+<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
+<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
+<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
+<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
+<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
+<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
+<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
+<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
+<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
+<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
+<glyph unicode="&#x2588;" d="M-20 1921h1273v-2433h-1273v2433z" />
+<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
+<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
+<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
+<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
+<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
+<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
+<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
+<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
+<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
+<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
+<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
+<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
+<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
+<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
+<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
+<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
+<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
+<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
+<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
+<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
+<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
+<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
+<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
+<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
+<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
+<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
+<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
+<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
+<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
+<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
+<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
+<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
+<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
+<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
+<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
+<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
+<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
+<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
+<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
+<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
+<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1056 1028h-879l439 -878z" />
+<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
+<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
+<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
+<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
+<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
+<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
+<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
+<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
+<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
+<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1004 532l-388 388l-387 -388l387 -388z" />
+<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
+<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
+<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
+<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64z" />
+<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-40 -157q-54 16 -110 16t-110 -16zM111 885q42 58 93.5 100.5t106.5 74.5l81 -140q-42 -23 -79 -53.5t-69 -75.5zM988 791q-32 45 -69.5 75.5t-77.5 53.5l80 140q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150l157 -40 q-12 -53 -12 -110q0 -58 12 -110zM1054 422q12 52 12 110q0 57 -12 110l157 40q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l133 94q32 -45 69 -75.5t79 -53.5zM841 144q40 23 75.5 52t71.5 77l133 -93q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l40 157q54 -16 110 -16t110 16l40 -157q-75 -21 -150 -21z" />
+<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q21 8 39 17t39 21q9 5 12 7t5 3t3.5 2.5t7.5 4.5v810q-7 6 -28 17q-29 16 -43.5 23t-34.5 15v-920zM448 991q-19 -8 -38 -17t-38 -20 q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
+<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 79q113 0 225 64t168.5 161t56.5 228t-56.5 228t-168.5 161t-225 64q-112 0 -224 -64t-168.5 -161t-56.5 -228t56.5 -228t168.5 -161t224 -64zM616 286q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5 q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM616 396q18 0 36 6t32 14q67 40 67 116t-67 116q-14 8 -32 14t-36 6q-32 0 -67 -20q-67 -39 -67 -116t67 -116q35 -20 67 -20z" />
+<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
+<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
+<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
+<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h977z" />
+<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-977q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
+<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
+<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
+<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM615 399q71 0 136 26.5t119 80.5q52 52 79.5 117.5t27.5 139.5q0 72 -26.5 136.5t-80.5 116.5q-51 50 -115 77t-137 27q-75 0 -140.5 -27.5t-115.5 -76.5q-51 -51 -78.5 -115.5t-27.5 -139.5q0 -73 26.5 -138.5t77.5 -116.5 q50 -51 115 -79t140 -28z" />
+<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM616 39q-57 0 -120 17.5t-125 52.5q-116 66 -179.5 173t-63.5 250t63.5 250t179.5 173q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5q120 -68 182 -177t62 -246t-62 -246t-182 -177q-62 -35 -125 -52.5 t-120 -17.5z" />
+<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 180 -79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5 q120 -68 182 -177t62 -246h-977z" />
+<glyph unicode="&#x25db;" d="M-20 532h26q0 -179 76.5 -309.5t228.5 -218.5q79 -46 154.5 -67t149.5 -21q154 0 306 88q153 88 229.5 218.5t76.5 309.5h26v-1044h-1273v1044zM616 39q-122 0 -244 71q-244 141 -244 422h977q0 -281 -245 -422q-122 -71 -244 -71z" />
+<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
+<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q77 0 156.5 -24t148.5 -63q143 -81 224 -214t81 -315h-123v0z" />
+<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
+<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
+<glyph unicode="&#x25e0;" d="M6 532q0 351 305 528q79 46 154.5 67t149.5 21q154 0 306 -88q306 -177 306 -528h-161q0 135 -60.5 233t-164.5 157q-52 29 -110 46.5t-114 17.5q-57 0 -115.5 -17.5t-109.5 -46.5q-106 -60 -165.5 -160t-59.5 -230h-161v0z" />
+<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h161q0 -128 57.5 -228.5t166.5 -161.5q57 -32 115 -47.5t111 -15.5q52 0 109.5 15.5t114.5 47.5q105 59 165 157.5t60 232.5h161q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
+<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
+<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
+<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
+<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
+<glyph unicode="&#x25e6;" d="M614 399q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28zM616 471q60 0 111 22.5 t92 63.5q86 86 86 204q0 59 -21.5 110.5t-64.5 93.5q-42 41 -93.5 62t-109.5 21t-109.5 -21t-93.5 -62q-41 -40 -63 -91.5t-22 -111.5q0 -63 23 -115t60 -90q41 -42 93 -64t112 -22z" />
+<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
+<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
+<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
+<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
+<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
+<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
+<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
+<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
+<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
+<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM619 39q57 0 118.5 18t122.5 53q245 141 245 422t-245 422q-48 28 -93.5 43.5t-93.5 23.5v-547h-542q8 -79 35.5 -142.5t68 -111.5t89.5 -82.5t100.5 -56.5t102 -32t92.5 -10zM559 588v433q-95 -14 -187 -67q-219 -126 -241 -366h428z " />
+<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q45 6 95.5 24.5t92.5 42.5q55 31 100 73t77 94.5t49.5 115.5t17.5 137q0 137 -61.5 246.5t-182.5 178.5q-62 35 -125.5 52.5t-120.5 17.5q-42 0 -92 -10.5t-101.5 -33t-101 -57t-89 -83t-66.5 -111.5t-34 -142h542v-545zM559 474 h-428q22 -237 241 -364q92 -53 187 -67v431z" />
+<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142.5t-67 112t-89.5 83t-101.5 56.5t-103 32.5t-94 10.5q-55 0 -116 -17t-125 -54q-244 -141 -244 -422t244 -422q48 -28 94 -44t93 -23v545zM673 43q94 14 187 67q112 64 171.5 155t70.5 209h-429v-431z" />
+<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q41 0 91 10.5t101.5 32.5t101 56t89.5 82.5t67.5 111.5t35.5 142h-543v547q-44 -6 -92 -23t-96 -44q-118 -67 -180.5 -173t-62.5 -247q0 -137 61 -246.5t182 -178.5q62 -35 125.5 -52.5t119.5 -17.5zM1102 588q-23 241 -242 366 q-93 53 -187 67v-433h429z" />
+<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
+<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
+<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
+<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
+<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
+<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
+<glyph unicode="&#x266a;" d="M765 1493h245q120 -139 175.5 -286t55.5 -309q0 -107 -23 -225l-238 -91q17 83 23.5 133.5t6.5 103.5q0 73 -15.5 155.5t-48.5 185.5l-174 -895q-29 -147 -73 -242t-111 -156t-152 -89.5t-205 -28.5q-87 0 -157.5 28.5t-109.5 78.5q-40 49 -40 110q0 17 3 35 q13 68 71.5 125.5t147.5 91.5q87 33 183 33q105 0 185 -41q12 50 13 55z" />
+<glyph unicode="&#x27c2;" d="M66 238h430v1046h237v-1046h432v-238h-1099v238z" />
+<glyph unicode="&#x27c5;" d="M680 -334q-62 0 -95.5 3t-59.5 8q-104 18 -177.5 48.5t-120 71.5t-67.5 92t-21 110q0 67 25 147.5t69.5 175t105.5 203t133 231.5q75 128 128.5 219.5t88.5 152.5t52.5 96t22.5 51q4 15 4 29q0 51 -58 51q-61 0 -103 -65l-196 100q37 45 82.5 79.5t95.5 58t102 35 t101 11.5q63 0 110 -17.5t78.5 -46.5t47 -65.5t14.5 -73.5q-1 -38 -18.5 -89t-52 -121t-86 -161t-119.5 -209t-122 -211.5t-93.5 -168.5t-65 -135t-37.5 -111q-5 -21 -7.5 -41.5t-2.5 -37.5q0 -79 50 -124t159 -55q21 -2 36 -3.5t27 -2.5t22 -2.5t22 -3.5q28 -5 54 -5h13.5 t13.5 1l-44 -225h-111v0z" />
+<glyph unicode="&#x27c6;" d="M115 -109q7 -1 13.5 -1h12.5q14 0 28 1.5t28 3.5q38 4 53.5 6t22 2.5t12.5 1t24 2.5q84 8 142 30t94 62t52 101t16 148q0 55 -5.5 113.5t-16 124.5t-25 141t-32.5 164q-14 70 -25 130t-18.5 113t-11.5 100.5t-4 91.5q0 100 20.5 166.5t61.5 107t102 57.5t142 17 q63 0 112.5 -10t88.5 -32t68 -57t51 -85l-234 -100q-18 65 -78 65q-37 0 -60 -22t-25 -58q-1 -20 4 -58t16 -100.5t29 -151t42 -209.5q32 -160 52.5 -286.5t20.5 -233.5q0 -116 -28 -208.5t-92.5 -162.5t-169 -116.5t-257.5 -71.5q-14 -2 -29 -4t-33.5 -3.5t-42 -2.5 t-54.5 -1h-111z" />
+<glyph unicode="&#x27dc;" d="M311 359q-59 0 -110.5 22.5t-90 61.5t-60.5 91.5t-22 112.5t21.5 112t59.5 90t90 59.5t112 21.5q122 0 204 -82q20 -19 34.5 -39.5t24.5 -43.5h631v-238h-631q-10 -23 -24 -42.5t-31 -36.5q-92 -89 -208 -89zM313 509q28 0 53 11t44 29.5t29.5 43.5t10.5 54 q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43.5 -29.5t54 -10.5z" />
+<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
+<glyph unicode="&#x27e6;" d="M474 1556h683l-23 -120h-281l-308 -1586h281l-23 -120h-683zM425 -150l308 1586h-162l-308 -1586h162z" />
+<glyph unicode="&#x27e7;" d="M99 -150h281l308 1586h-281l23 120h683l-354 -1826h-683zM662 -150l308 1586h-162l-308 -1586h162z" />
+<glyph unicode="&#x27e8;" d="M338 642l462 912h272l-463 -912l109 -912h-272z" />
+<glyph unicode="&#x27e9;" d="M624 642l-109 912h272l108 -912l-462 -912h-272z" />
+<glyph unicode="&#x27ea;" d="M88 642l462 912h272l-463 -912l109 -912h-272zM588 642l462 912h272l-463 -912l109 -912h-272z" />
+<glyph unicode="&#x27eb;" d="M375 642l-109 912h272l108 -912l-462 -912h-272zM875 642l-109 912h272l108 -912l-462 -912h-272z" />
+<glyph unicode="&#x27f5;" d="M-100 490v142l291 291l120 -120l-130 -130h1152v-224h-1152l130 -130l-120 -120z" />
+<glyph unicode="&#x27f6;" d="M922 319l130 130h-1152v224h1152l-130 130l120 120l291 -291v-142l-291 -291z" />
+<glyph unicode="&#x27f7;" d="M-100 490v142l291 291l120 -120l-130 -130h871l-130 130l120 120l291 -291v-142l-291 -291l-120 120l130 130h-871l130 -130l-120 -120z" />
+<glyph unicode="&#x2987;" d="M801 -270q-146 33 -252.5 103.5t-176 166.5t-103 211.5t-33.5 238.5q0 50 5 97.5t14 95.5q29 151 100 296.5t183.5 268.5t266.5 214t350 132zM1000 1373q-51 -13 -102.5 -49t-100.5 -89t-94 -121t-82.5 -145t-66 -160t-44.5 -167q-21 -111 -21 -219q0 -95 15.5 -181 t44.5 -154.5t71 -115t96 -61.5z" />
+<glyph unicode="&#x2988;" d="M432 1554q146 -33 252.5 -103.5t176 -166.5t103 -211.5t33.5 -238.5q0 -50 -5 -97.5t-14 -95.5q-29 -151 -100 -296.5t-183.5 -268.5t-266.5 -214t-350 -132zM233 -89q51 13 102.5 49t100.5 89t94 121t82.5 145t66 160t44.5 167q21 111 21 219q0 95 -15.5 181 t-44.5 154.5t-71 115t-96 61.5z" />
+<glyph unicode="&#x2997;" d="M282 139l188 968l600 501l105 -131l-333 -278l-218 -1122l227 -268l-157 -131z" />
+<glyph unicode="&#x2998;" d="M58 -191l333 278l218 1122l-227 268l157 131l412 -461l-188 -968l-600 -501z" />
+<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
+<glyph unicode="&#x29fa;" d="M248 524h-182v238h182v430h237v-430h263v430h237v-430h180v-238h-180v-432h-237v432h-263v-432h-237v432z" />
+<glyph unicode="&#x29fb;" d="M148 524h-82v238h82v430h217v-430h143v430h217v-430h143v430h217v-430h80v-238h-80v-432h-217v432h-143v-432h-217v432h-143v-432h-217v432z" />
+<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -275q347 0 347 814q0 818 -347 818q-346 0 -346 -818q0 -814 346 -814zM449 711h333v-365h-333v365z" />
+<glyph unicode="&#x2a2f;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
+<glyph unicode="&#x2a6a;" d="M451 1277h333v-365h-333v365zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14 q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5z" />
+<glyph unicode="&#x2a6b;" d="M691 1277h333v-365h-333v365zM850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14 q70 0 137.5 29.5t142.5 95.5v-234q-69 -55 -141 -84.5t-154 -29.5zM210 365h333v-365h-333v365z" />
+<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
+<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
+<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
+<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
+<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
+<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
+<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
+<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
+<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
+<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
+<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
+<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
+<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
+<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
+<glyph unicode="&#x2e18;" d="M747 904q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM446 -400q-87 0 -155 19t-115.5 55t-72 87t-24.5 115 q0 20 2 38.5t6 38.5q7 38 22 73t41 70t64.5 73t92.5 83l105 86q40 33 65.5 58.5t41.5 49.5t25 48.5t15 54.5q1 9 4 21t7 26l24 123h267l-166 -851l22 8q50 18 100 43t107 62l-52 -268q-218 -113 -426 -113zM478 123q-39 -34 -66.5 -70t-35.5 -78q-3 -17 -3 -32q0 -44 30 -69 q10 -9 24 -15z" />
+<glyph unicode="&#x2e1f;" d="M850 468q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-79 0 -149 -27.5t-148 -93.5v229q78 60 151.5 87.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l30 -14q55 -26 108.5 -40t104.5 -14q70 0 137.5 29.5t142.5 95.5v-234 q-69 -55 -141 -84.5t-154 -29.5zM480 0q-30 0 -30 30v305q0 30 30 30h273q30 0 30 -30v-305q0 -30 -30 -30h-273z" />
+<glyph unicode="&#x2e22;" d="M580 1556h507l-38 -190h-242l-140 -723h-265z" />
+<glyph unicode="&#x2e23;" d="M666 1366h-242l37 190h508l-178 -913h-265z" />
+<glyph unicode="&#x2e24;" d="M402 643h265l-141 -723h242l-37 -190h-508z" />
+<glyph unicode="&#x2e25;" d="M143 -80h242l141 723h265l-179 -913h-506z" />
+<glyph unicode="&#x2e2e;" d="M480 524q1 7 2 13.5t2 12.5l3 21q2 13 4.5 24.5t2.5 31.5q0 38 -16 72.5t-56 82.5l-71 86q-60 73 -85.5 128.5t-25.5 105.5q0 16 2 33t5 32q16 82 58.5 147.5t107 111.5t148.5 70t183 24q106 0 200 -28t182 -85l-52 -268q-85 72 -169 106.5t-171 34.5q-92 0 -143.5 -36 t-62.5 -99q-3 -17 -3 -32q0 -38 18.5 -71.5t56.5 -80.5l73 -89q23 -28 40 -53.5t28 -52t16.5 -54.5t5.5 -61q0 -21 -2.5 -45.5t-7.5 -50.5l-30 -154h-267zM513 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5 t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
+<glyph d="M696 1198q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM455 655l112 357h199 l-25 -357l-127 -655h-286z" />
+<glyph d="M739 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM446 -27q-87 0 -155 19t-115.5 55t-72 87t-24.5 115 q0 20 2 38.5t6 38.5q7 38 22 73t41 70t64.5 73t92.5 83l105 86q40 33 65.5 58.5t41.5 49.5t25 48.5t15 54.5q1 9 4 21t7 26l24 123h267l-166 -851l22 8q50 18 100 43t107 62l-52 -268q-218 -113 -426 -113zM478 496q-39 -34 -66.5 -70t-35.5 -78q-3 -17 -3 -32q0 -44 30 -69 q10 -9 24 -15z" />
+<glyph d="M739 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM458 -27q-86 0 -154 21.5t-115.5 61t-73 95.5t-25.5 124 q0 44 11.5 87.5t37.5 87t66.5 88.5t99.5 93l105 86l8 7q66 58 102.5 116t50.5 129l23 123h266l-29 -154q-10 -54 -26 -95.5t-39.5 -77.5t-56.5 -70t-78 -74l-105 -93l-15 -13q-74 -65 -107 -110.5t-33 -87.5q0 -48 38 -78t113 -30q80 0 183.5 36.5t218.5 108.5l-52 -268 q-102 -55 -208 -84t-206 -29z" />
+<glyph horiz-adv-x="0" d="M-442 1635q-137 0 -210 67t-73 193v4h143q10 -60 51 -87.5t120 -27.5q72 0 124.5 30.5t75.5 84.5h154q-40 -130 -138.5 -197t-246.5 -67z" />
+<glyph horiz-adv-x="0" d="M-779 1635q40 130 139 197t247 67t217 -62.5t69 -171.5v-14.5t-1 -15.5h-143q-16 121 -170 121q-153 0 -217 -121h-141v0z" />
+<glyph horiz-adv-x="0" d="M-898 1899h284l148 -264h-197zM-523 1899h284l148 -264h-197z" />
+<glyph horiz-adv-x="0" d="M-530 1899h275l-48 -246h-275z" />
+<glyph horiz-adv-x="0" d="M-546 1899h284l-337 -264h-197zM-171 1899h284l-337 -264h-197z" />
+<glyph horiz-adv-x="0" d="M-714 1870h631l-36 -188h-631z" />
+<glyph d="M436 1280q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM832 1280q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z" />
+<glyph d="M811 1526h281l-320 -264h-207z" />
+<glyph d="M371 1262q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8q-32 11 -70 40l-49 37q-27 21 -41 26 q-8 3 -17 4.5t-17 1.5q-21 0 -36 -9t-26 -23q-15 -18 -23.5 -39.5t-13.5 -48.5h-137v0z" />
+<glyph d="M543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -144 -42 -274.5t-123 -230.5q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207 q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-25 30 -59 44t-72 14q-125 0 -207 -135q-41 -69 -62 -156t-21 -171q0 -54 10 -101t38 -81q21 -26 54 -43t78 -17z" />
+<glyph d="M449 1526h264l143 -264h-178z" />
+<glyph d="M588 1526h348l151 -264h-169l-164 161l-230 -161h-180z" />
+<glyph d="M410 1526h170l149 -162l229 162h181l-244 -264h-348z" />
+<glyph d="M47 618l1059 261l37 -117l-1059 -262z" />
+<glyph d="M659 848h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM686 991l64 330l-314 -330h250z" />
+<glyph d="M720 1262q-72 0 -123.5 17t-88.5 51q-74 68 -74 192v4h143q10 -60 51 -87q41 -28 117 -28q40 0 70 7.5t57 23.5q54 32 76 84h154q-40 -129 -139 -196q-100 -68 -243 -68z" />
+<glyph d="M617 1280q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h214q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-214v0z" />
+<glyph d="M586 -445q-133 0 -208 65.5t-75 203.5q0 49 9.5 108t27 118t41 113.5t52.5 95.5q56 80 140.5 121.5t192.5 41.5q132 0 208 -65.5t76 -201.5q0 -46 -9 -104t-26.5 -118t-42 -117t-55.5 -100q-55 -78 -137.5 -119.5t-193.5 -41.5zM608 -307q53 0 87.5 31.5t60.5 83.5 q18 37 34 84t27 95t17.5 93t6.5 79q0 63 -23 93.5t-74 30.5q-50 0 -85.5 -28.5t-63.5 -85.5q-17 -35 -32.5 -81t-27 -94t-18 -94.5t-6.5 -81.5q0 -125 97 -125zM674 -82q-36 0 -62 20t-26 49q0 31 26 51.5t62 20.5q18 0 34.5 -5.5t29 -15t20 -22t7.5 -27.5q0 -29 -26.5 -50 t-64.5 -21z" />
+<glyph d="M315 -255h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657z" />
+<glyph d="M289 -259q42 31 60.5 44t28.5 20.5t19.5 14t33.5 23.5q202 145 301 237.5t99 149.5q0 35 -36.5 59.5t-107.5 24.5q-57 0 -132 -18t-152 -53l31 162q76 23 149 35t139 12q74 0 131 -14.5t96 -40t59 -59.5t20 -74q0 -44 -24.5 -91.5t-75 -101.5t-127.5 -117t-183 -136 q-30 -21 -46.5 -32.5t-26 -18.5t-16 -11.5t-15.5 -10.5h438l-28 -145h-664z" />
+<glyph d="M566 -425q-150 0 -290 41l31 154q29 -13 64 -23.5t71 -17.5t71.5 -10.5t66.5 -3.5q107 0 164 39.5t57 102.5q0 56 -43.5 81.5t-118.5 25.5h-111l29 146h109q88 0 135 27.5t47 74.5q0 45 -40 67.5t-109 22.5q-49 0 -117.5 -12t-149.5 -35l29 152q73 17 143.5 26t131.5 9 q146 0 225 -49.5t79 -146.5q0 -42 -15.5 -77.5t-45.5 -62.5t-73.5 -44.5t-98.5 -23.5q81 -10 131.5 -56.5t50.5 -134.5q0 -62 -28 -112.5t-81.5 -86t-132.5 -54.5t-181 -19z" />
+<glyph d="M659 -230h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM686 -87l64 330l-314 -330h250z" />
+<glyph d="M507 -425q-68 0 -139 9t-131 26l36 149q51 -22 111 -34t124 -12q61 0 110.5 11.5t84.5 32.5t53.5 51t18.5 67q0 61 -49.5 94.5t-141.5 33.5q-52 0 -110 -11t-115 -32l115 465h576l-37 -145h-405l-38 -154q23 7 49 10.5t58 3.5q68 0 124 -17t95.5 -48.5t61 -77.5 t21.5 -104q0 -71 -32.5 -129.5t-94 -100.5t-149 -65t-196.5 -23z" />
+<glyph d="M596 -427q-149 0 -228 71t-79 217q0 54 11 112t32 114t51 107.5t69 93.5q141 152 391 152q55 0 102.5 -8t104.5 -26l-36 -149q-42 24 -92 37t-101 13q-109 0 -185.5 -60t-109.5 -178q42 34 96 53.5t120 19.5q58 0 105 -16t80 -46.5t51 -75t18 -100.5q0 -71 -28.5 -132 t-80.5 -105t-126 -69t-165 -25zM609 -293q40 0 73.5 16t57.5 42t37.5 60t13.5 70q0 57 -32 85.5t-84 28.5q-40 0 -73.5 -15.5t-57.5 -42t-37.5 -60t-13.5 -69.5q0 -57 31.5 -86t84.5 -29z" />
+<glyph d="M780 265h-449l36 145h683l-29 -117l-536 -718h-227z" />
+<glyph d="M596 -435q-145 0 -226.5 55.5t-81.5 156.5q0 48 18.5 89t53 73t83 55t108.5 35q-78 16 -114 56.5t-36 97.5q0 52 28 97.5t77 79t115 53t141 19.5q64 0 117 -14.5t91 -40.5t59 -63.5t21 -82.5q0 -39 -16 -73.5t-46 -62.5t-73 -47t-98 -26q80 -18 122 -64t42 -121 q0 -61 -28 -111t-78.5 -86t-121.5 -55.5t-157 -19.5zM707 87q32 0 61 9t50.5 25t34 38t12.5 49q0 43 -32.5 67.5t-88.5 24.5q-34 0 -63 -9t-50 -25t-32.5 -38t-11.5 -47q0 -42 31.5 -68t88.5 -26zM616 -302q39 0 72 11t57 30.5t37 46.5t13 58q0 54 -38 82.5t-101 28.5 q-41 0 -74.5 -11.5t-57.5 -31t-37 -46.5t-13 -57q0 -29 11 -49.5t30.5 -34.5t45.5 -20.5t55 -6.5z" />
+<glyph d="M496 -435q-48 0 -96.5 6.5t-110.5 26.5l36 150q43 -25 93 -37.5t101 -12.5q112 0 186.5 60t108.5 178q-87 -73 -214 -73q-59 0 -106 16t-80 46t-50.5 73.5t-17.5 99.5q0 69 27 130t78.5 106t125.5 71.5t167 26.5q149 0 227.5 -71t78.5 -217q0 -53 -10.5 -111 t-31.5 -114.5t-51 -109t-69 -94.5q-72 -78 -169.5 -114t-222.5 -36zM665 -5q40 0 73.5 16t57.5 42.5t37.5 60.5t13.5 69q0 58 -33 86.5t-84 28.5q-39 0 -71.5 -15.5t-56.5 -41.5t-37.5 -60t-13.5 -71q0 -58 31 -86.5t83 -28.5z" />
+<glyph horiz-adv-x="0" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/hack-italic-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/hack-italic-webfont.svg
new file mode 100755
index 0000000..1544287
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/hack-italic-webfont.svg
@@ -0,0 +1,1588 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackitalic" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M647 1053l70 445h265l-70 -445l-157 -567h-121zM606 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5z" />
+<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
+<glyph unicode="#" d="M250 414h-256l39 153h256l84 334h-258l39 154h258l104 415h160l-105 -415h246l105 415h159l-104 -415h256l-39 -154h-256l-84 -334h258l-39 -153h-258l-104 -414h-160l104 414h-245l-105 -414h-160zM694 567l84 334h-246l-83 -334h245z" />
+<glyph unicode="$" d="M373 0q-53 3 -151 26q-51 12 -98 28.5t-93 37.5l35 180q81 -60 176 -93q96 -34 188 -38l90 465q-75 17 -138.5 43t-106.5 65q-38 35 -59 82.5t-21 115.5q0 83 33 156.5t100 131.5t154.5 88t146.5 33l48 235h180l-47 -235q5 -3 49 -9t74 -12q15 -3 34 -7.5t39.5 -10 t40 -11t36.5 -11.5l-32 -173q-32 20 -71 37t-71 27t-76 18.5t-80 12.5l-81 -426q165 -35 253 -117q45 -42 67 -94.5t22 -123.5q0 -88 -34 -163.5t-103 -135.5q-137 -120 -353 -120h30l-59 -303h-181zM633 1184q-108 -7 -184 -76t-76 -167q0 -70 42 -107q20 -18 55.5 -33 t82.5 -27zM553 145q120 0 199 73q38 35 58.5 81t20.5 103q0 44 -12 74.5t-35 50.5q-46 41 -145 61z" />
+<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5 t99.5 66.5t126.5 24.5q33 0 63 -6t59 -18q57 -24 103 -70q25 -25 42.5 -52t28.5 -53q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
+<glyph unicode="&#x26;" d="M408 -29q-94 0 -174 27t-138 80q-57 51 -86.5 122.5t-29.5 161.5q0 81 25 160.5t74 150.5t121.5 133t166.5 114q-17 32 -26 55t-17 51q-7 26 -11 51.5t-4 57.5q0 84 30.5 156t92.5 125q60 51 144 77.5t185 26.5q66 0 128 -12q60 -12 119 -35l-35 -183q-42 38 -103 57 q-31 10 -65 14.5t-67 4.5q-120 0 -187 -57q-34 -29 -51 -68t-17 -84q0 -23 5 -50t17 -62q11 -32 25 -64.5t37 -73.5l307 -557q62 66 99 169q19 52 31 111t18 130h168q-8 -85 -27 -159t-51 -143q-62 -135 -168 -237l123 -221h-199l-59 113q-49 -36 -95 -61.5t-100 -44.5 q-101 -36 -206 -36zM456 129q36 0 70 7.5t71 21.5q35 14 70.5 33.5t73.5 48.5l-309 555q-135 -74 -204 -171q-35 -50 -52.5 -104.5t-17.5 -108.5q0 -65 23 -115.5t62 -86.5q41 -38 95.5 -59t117.5 -21z" />
+<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
+<glyph unicode="(" d="M426 -270q-40 95 -68.5 181t-47.5 165t-28 153t-9 152q0 146 32 296t97 301q63 147 158 291t223 285h159q-118 -152 -206 -301t-149 -305q-120 -306 -120 -608q0 -79 8 -151t22 -146q16 -81 37.5 -156.5t51.5 -156.5h-160v0z" />
+<glyph unicode=")" d="M320 -270q237 302 356 606q60 153 89.5 304.5t29.5 299.5q0 74 -7.5 150.5t-21.5 150.5q-14 73 -37 152.5t-53 160.5h160q79 -190 116 -345q19 -79 28 -153t9 -152q0 -146 -32 -296.5t-97 -300.5q-66 -152 -160.5 -295t-220.5 -282h-159v0z" />
+<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
+<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
+<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 111q0 71 46 111q20 18 48.5 29.5t66.5 11.5q86 0 133 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
+<glyph unicode="-" d="M226 683h822l-33 -164h-822z" />
+<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="/" d="M868 1493h191l-854 -1683h-189z" />
+<glyph unicode="0" d="M480 -29q-194 0 -288 124t-94 369q0 99 14.5 207t41.5 214t64 198t79 161q42 71 90 122.5t106 86.5q52 32 115 49.5t141 17.5q101 0 172 -30.5t119 -93.5q45 -60 70 -150t25 -218q0 -101 -15 -211t-41 -209q-26 -103 -63 -194.5t-80 -164.5q-42 -72 -90 -124t-105 -86 q-54 -32 -118.5 -50t-142.5 -18zM502 135q85 0 153 51q39 29 67 69.5t48 78.5q33 66 63 156.5t53 190.5q23 103 34.5 199t11.5 177q0 84 -12 139.5t-37 90.5t-64 52t-87 17q-42 0 -81 -12.5t-73 -37.5q-36 -26 -65 -64.5t-52 -83.5q-34 -66 -63.5 -153t-52.5 -193 q-24 -110 -35 -208t-11 -175q0 -87 13 -140t39 -86q24 -31 62 -49.5t89 -18.5zM550 401q-8 0 -12 2q-23 8 -32 41t-9 82q0 14 0.5 25.5t1.5 26.5q2 38 5 69t6.5 57t8 48.5t9.5 45.5q3 11 7.5 30.5t12 44t17.5 52t22 54.5q26 57 51.5 83.5t47.5 26.5h4t7 -2q19 -5 31.5 -31 t12.5 -87q-1 -6 -1 -13v-15q-2 -38 -4 -67t-5 -51.5t-6 -40t-7 -32.5q-5 -21 -12 -46.5t-15.5 -53t-18.5 -56t-20 -53.5q-26 -67 -51 -103.5t-51 -36.5z" />
+<glyph unicode="1" d="M156 170h313l221 1141l-352 -76l35 184l352 74h203l-258 -1323h309l-33 -170h-823z" />
+<glyph unicode="2" d="M32 136q4 20 12 33t21 24l285 251l39 35q131 117 231 216t168 182.5t103 153t35 129.5q0 42 -16.5 77.5t-47.5 61.5t-75.5 39.5t-102.5 13.5q-48 0 -99 -9t-99 -24q-50 -16 -109.5 -42t-122.5 -60l41 204q60 26 115 44.5t102 29.5q57 14 105.5 19.5t91.5 5.5 q97 0 173.5 -25t130.5 -71t83.5 -111.5t29.5 -149.5q0 -42 -8 -84t-28 -90q-40 -97 -117 -190q-9 -11 -19.5 -22.5t-24.5 -26t-32 -32t-43 -40.5q-99 -92 -169.5 -152.5t-96.5 -81.5l-330 -274h694l-32 -170h-914z" />
+<glyph unicode="3" d="M383 -29q-57 0 -105 5t-99 14q-54 10 -99.5 22.5t-97.5 32.5l38 201q49 -28 93 -46t93 -32t95.5 -20.5t96.5 -6.5q96 0 168 24t127 70t83.5 105.5t28.5 134.5q0 62 -18.5 106.5t-52.5 73.5q-71 60 -210 60h-153l32 166h154q76 0 140 18.5t111 55.5q45 35 69 86t24 116 q0 53 -16.5 88.5t-45.5 57.5q-62 47 -189 47q-43 0 -87 -5t-93 -15q-56 -11 -104 -25.5t-106 -34.5l37 186l58 14.5t59 14t55.5 12t47.5 8.5q42 7 90 11t90 4q93 0 168 -21.5t129 -65.5q52 -42 80 -103.5t28 -142.5q0 -72 -22 -135.5t-67 -115.5q-42 -49 -104 -84.5 t-147 -52.5q113 -19 178 -102q32 -42 48 -93t16 -120q0 -112 -41.5 -205.5t-125.5 -165.5q-82 -70 -193 -106t-261 -36z" />
+<glyph unicode="4" d="M659 356h-634l36 191l785 946h233l-190 -973h198l-30 -164h-199l-70 -356h-198zM690 520l152 762l-625 -762h473z" />
+<glyph unicode="5" d="M366 -29q-48 0 -98.5 4t-97.5 12q-94 16 -166 48l41 205q46 -28 89 -46.5t83 -29.5q45 -13 90.5 -19t87.5 -6q93 0 173 29t140 87q55 53 88 128t33 162q0 130 -80 203t-224 73q-39 0 -78.5 -5t-81.5 -15t-81 -24.5t-77 -33.5l145 750h756l-33 -170h-571l-72 -367 q46 16 92 24q22 4 44.5 5.5t43.5 1.5q96 0 172 -29t131 -83q57 -55 86 -131.5t29 -169.5q0 -124 -52 -240q-53 -117 -149 -203q-43 -38 -92.5 -68.5t-108.5 -51.5q-57 -20 -120.5 -30t-141.5 -10z" />
+<glyph unicode="6" d="M515 -29q-93 0 -174 28t-139 88q-54 56 -82 141.5t-28 204.5q0 69 9.5 155.5t29.5 176.5q19 87 47 172t60 154q51 111 114.5 191t136.5 131q152 107 357 107q38 0 76 -3.5t72 -11.5q31 -7 66.5 -19t67.5 -26l-36 -186q-59 37 -126 57q-34 10 -70 14.5t-71 4.5 q-100 0 -178.5 -35.5t-141.5 -107.5q-125 -143 -181 -427q36 54 75.5 91.5t86.5 63.5t98 39t112 13q88 0 156.5 -25.5t114.5 -73.5q50 -51 73 -123t23 -162q0 -54 -9 -113t-31 -124q-21 -63 -48 -111.5t-60 -90.5q-77 -97 -177 -145q-47 -23 -102 -35.5t-121 -12.5zM521 129 q67 0 130 32.5t113 101.5q47 66 71.5 149t24.5 171q0 62 -13.5 108t-44.5 78q-29 30 -71.5 45t-91.5 15q-75 0 -138 -33t-110 -93q-49 -63 -73.5 -143.5t-24.5 -165.5q0 -66 15 -114t45 -82q32 -35 76 -52t92 -17z" />
+<glyph unicode="7" d="M952 1323h-708l32 170h936l-16 -94l-805 -1399h-217z" />
+<glyph unicode="8" d="M483 -29q-100 0 -182 25.5t-142 76.5q-54 47 -86 117t-32 164q0 87 28 158.5t77 126.5t120 95t164 59q-57 20 -96 48t-65 63q-29 38 -41.5 82.5t-12.5 94.5q0 90 38 170.5t109 141.5q75 64 169 95.5t195 31.5q87 0 160.5 -22.5t128.5 -67.5q52 -42 81.5 -102t29.5 -137 q0 -70 -25 -135.5t-72 -119.5t-113 -94.5t-144 -59.5q125 -30 190 -113q32 -42 48 -95.5t16 -118.5q0 -103 -38.5 -192.5t-112.5 -155.5q-72 -65 -171.5 -100.5t-220.5 -35.5zM634 866q124 0 208 87q42 44 63 97t21 112q0 50 -15 85.5t-45 62.5q-60 54 -160 54 q-66 0 -118 -21t-90 -59q-82 -81 -82 -203q0 -101 59 -158q58 -57 159 -57zM494 127q72 0 132 23.5t105 68.5q45 46 67.5 106.5t22.5 132.5q0 62 -16.5 107t-49.5 78q-66 66 -183 66q-144 0 -234 -98q-46 -50 -69 -113t-23 -134q0 -60 16.5 -101t50.5 -73t78 -47.5 t103 -15.5z" />
+<glyph unicode="9" d="M343 -29q-76 0 -146 15q-32 7 -65.5 17.5t-68.5 27.5l35 186q29 -19 60.5 -32.5t65.5 -23.5q69 -20 142 -20q194 0 320 144q124 142 180 426q-67 -101 -161 -154q-51 -29 -103.5 -41t-109.5 -12q-87 0 -153.5 25.5t-114.5 74.5q-97 100 -97 285q0 63 10.5 122.5 t29.5 115.5q20 58 47.5 109t59.5 91q37 46 82.5 83.5t95.5 61.5q99 48 224 48q101 0 180.5 -30t133.5 -87q110 -116 110 -344q0 -69 -9.5 -156t-29.5 -177q-20 -91 -47 -172t-60 -153q-52 -112 -114 -190.5t-137 -131.5q-81 -57 -170.5 -82.5t-189.5 -25.5zM551 662 q75 0 138 33t110 93t72.5 140t25.5 169q0 69 -15.5 117.5t-44.5 80.5t-72 49.5t-94 17.5q-72 0 -134.5 -34.5t-109.5 -99.5q-45 -63 -71 -147t-26 -174q0 -57 13 -104.5t45 -80.5q29 -30 71.5 -45t91.5 -15z" />
+<glyph unicode=":" d="M728 776q-28 0 -52.5 9.5t-44.5 31.5q-21 23 -28.5 50t-7.5 56q0 39 15.5 74t46.5 63q27 25 61 39.5t72 14.5q35 0 59 -11.5t41 -29.5q16 -17 25.5 -42.5t9.5 -57.5q0 -38 -14.5 -76t-46.5 -67q-30 -28 -66.5 -41t-69.5 -13zM617 60q-32 0 -58 11t-43 31q-18 20 -26 46.5 t-8 54.5q0 39 15 76t47 66q26 24 60.5 38.5t72.5 14.5q28 0 54 -9t46 -32q16 -17 25.5 -42.5t9.5 -60.5q0 -83 -62 -140q-28 -26 -62 -40t-71 -14z" />
+<glyph unicode=";" d="M723 713q-71 0 -112 50q-32 38 -32 93q0 9 1 18t3 18q7 42 25 73.5t44 53.5q26 23 59 36t68 13t64.5 -12.5t49.5 -35.5q33 -38 33 -94q0 -16 -3 -34q-15 -80 -71 -129q-26 -23 -58.5 -36.5t-70.5 -13.5zM339 -351q275 114 320 351q-14 -3 -23 -4t-19 -1q-33 0 -61 10.5 t-48 30.5q-30 31 -30 84v9q0 5 0.5 11t1.5 13q6 35 22 64t45 52t61 33t64 10q91 0 130 -71q13 -23 19 -52t6 -57q0 -17 -2 -42t-5 -46q-14 -92 -51.5 -170.5t-94.5 -140.5q-56 -61 -134 -111.5t-169 -81.5z" />
+<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
+<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
+<glyph unicode="?" d="M546 583q12 78 53 146q21 35 53 70t86 81l104 89q42 35 65 59t37 44q32 45 39 93q3 18 3 34q0 32 -11.5 60t-34.5 50q-27 26 -68.5 40.5t-96.5 14.5q-80 0 -173 -34q-48 -17 -98.5 -43t-105.5 -60l30 188q49 27 100.5 49t102.5 36t101.5 21t100.5 7q91 0 162 -23t121 -73 q36 -36 56 -83.5t20 -98.5q0 -17 -2 -38t-4 -37q-5 -37 -18.5 -71.5t-37.5 -69.5q-26 -38 -64.5 -77t-87.5 -81l-102 -86q-43 -36 -67.5 -62t-37.5 -46q-11 -17 -20 -40t-12 -43l-8 -47l-12 -80h-190zM542 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5 t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
+<glyph unicode="@" d="M607 -317q-151 0 -267 50t-196 138q-87 95 -130 225t-43 283q0 97 17.5 198t54.5 204q34 94 83 182.5t112 161.5q52 61 117 113t140 88q72 35 149 53t156 18q95 0 171 -26t131 -77q57 -53 84.5 -124t27.5 -155q0 -14 -1 -33t-3 -38t-5.5 -41t-8.5 -45l-137 -723h-144 l21 111q-26 -32 -57.5 -56.5t-64.5 -40.5q-35 -17 -73.5 -25.5t-78.5 -8.5q-71 0 -123 24.5t-91 67.5q-42 46 -62.5 104.5t-20.5 139.5q0 103 33 197t99 173q63 75 141 115.5t172 40.5q85 0 150 -36t93 -97l8 43q2 12 4.5 30t4.5 31t2.5 23t0.5 22q0 59 -18 108t-55 84 q-73 70 -204 70q-72 0 -139.5 -20t-132.5 -58q-63 -38 -120 -92t-107 -128q-40 -60 -72.5 -129.5t-55.5 -145.5q-21 -72 -32.5 -149.5t-11.5 -155.5q0 -128 32 -230.5t96 -175.5q63 -72 152.5 -109.5t197.5 -37.5q30 0 62 3t60 9q21 5 53 14t74 25l45 -131 q-38 -18 -72 -28.5t-65 -17.5q-71 -15 -153 -15zM710 260q63 0 117 28t95 78q40 49 63 114t23 138q0 49 -12 88t-38 68q-50 55 -138 55q-60 0 -114 -26t-96 -77t-64 -116.5t-22 -135.5q0 -48 12 -89t38 -70q50 -55 136 -55z" />
+<glyph unicode="A" d="M639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="B" d="M313 1493h443q204 0 307 -79q52 -40 78 -98t26 -138q0 -151 -92 -255q-92 -105 -248 -124q124 -23 192 -102q34 -40 50 -91t16 -120q0 -109 -39.5 -199.5t-119.5 -156.5q-159 -130 -451 -130h-452zM639 877q152 0 238 73q86 72 86 198q0 95 -55 137q-56 42 -181 42h-244 l-88 -450h244zM506 166q184 0 282 87q49 44 73 107t24 136q0 63 -17 101.5t-51 64.5q-68 51 -211 51h-241l-107 -547h248z" />
+<glyph unicode="C" d="M597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124 q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
+<glyph unicode="D" d="M283 1493h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q184 0 297 63q113 62 180 203q25 52 48 122t41 153q17 80 25.5 153 t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-226 -1161h97z" />
+<glyph unicode="E" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="F" d="M383 1493h879l-33 -170h-676l-86 -450h612l-32 -170h-613l-139 -703h-203z" />
+<glyph unicode="G" d="M564 -29q-122 0 -211.5 34.5t-150.5 100.5q-63 69 -93.5 165t-30.5 217q0 47 4.5 94.5t12.5 98.5q8 46 20.5 103.5t27.5 108.5q17 57 38 110.5t44 101.5q25 50 51 89.5t52 72.5q50 62 110 110.5t128 80.5q130 62 288 62q46 0 86 -5t80 -16q81 -21 156 -61l-41 -207 q-35 34 -70 57t-66 37q-71 31 -153 31q-50 0 -96.5 -10.5t-87.5 -30.5q-42 -20 -82 -52t-72 -71q-45 -54 -83 -130q-21 -42 -38 -85.5t-31 -89.5q-17 -56 -30 -110.5t-21 -103.5q-9 -52 -13.5 -94.5t-4.5 -84.5q0 -174 79 -266q40 -47 95.5 -70t130.5 -23q36 0 65 5t55 14 q29 10 50.5 23t40.5 30l76 393h-217l30 166h410l-133 -670q-86 -61 -190 -93q-51 -16 -103.5 -24t-111.5 -8z" />
+<glyph unicode="H" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
+<glyph unicode="I" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="J" d="M375 -29q-54 0 -102 6t-99 17q-53 12 -101 28.5t-98 38.5l45 236q38 -42 78.5 -71t85.5 -49q44 -20 91 -31t105 -11q142 0 212 73q32 33 60 99.5t50 179.5l164 836h-381l33 170h584l-197 -1006q-29 -150 -72 -247t-104 -154q-63 -59 -149.5 -87t-204.5 -28z" />
+<glyph unicode="K" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
+<glyph unicode="L" d="M369 1493h202l-258 -1323h721l-33 -170h-923z" />
+<glyph unicode="M" d="M229 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
+<glyph unicode="N" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
+<glyph unicode="O" d="M478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265 q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5 q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="P" d="M321 1493h440q103 0 182 -23.5t133 -68.5t80.5 -112.5t26.5 -162.5q0 -120 -41 -217t-119 -166t-186.5 -106t-253.5 -37h-233l-117 -600h-203zM616 766q165 0 264 96q49 48 73.5 111.5t24.5 137.5q0 53 -14 95t-48 70q-62 51 -192 51h-233l-109 -561h234z" />
+<glyph unicode="Q" d="M504 -27h-10q-111 0 -187 30t-126 90t-74.5 152.5t-24.5 226.5q0 66 5.5 121.5t16.5 118.5q5 31 11 60.5t13.5 61t17 66t22.5 75.5q16 50 31 89t32 77q7 15 15.5 32t18 35t19.5 34.5t19 29.5q38 57 88.5 106.5t109.5 81.5q56 31 118 45.5t134 14.5q102 0 176.5 -30 t124.5 -93q48 -60 72.5 -151.5t24.5 -216.5q0 -48 -3.5 -95.5t-10.5 -94.5t-18 -100.5t-25 -109.5q-14 -53 -30.5 -107t-31.5 -95q-16 -43 -34 -82.5t-35 -70.5q-22 -39 -52.5 -81.5t-71.5 -81.5q-31 -30 -68.5 -57t-80.5 -44l236 -280h-236zM498 135q43 0 84 12.5t78 38.5 q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5 t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="R" d="M281 1493h416q206 0 321 -89q59 -46 86 -110.5t27 -149.5q0 -84 -25.5 -160t-77.5 -136q-51 -59 -121 -95.5t-161 -47.5q34 -6 64.5 -23.5t51.5 -43.5q20 -25 44.5 -80.5t52.5 -149.5l121 -408h-201l-106 377q-44 155 -98 205q-28 26 -70.5 37.5t-94.5 11.5h-192 l-123 -631h-203zM570 797q163 0 261 86q97 85 97 226q0 113 -63 166q-62 52 -199 52h-213l-102 -530h219z" />
+<glyph unicode="S" d="M435 -29q-58 0 -108 6t-101 17q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5 q0 101 40.5 192.5t124.5 162.5q83 70 191 105t232 35q48 0 91 -5t88 -15q46 -10 90.5 -24t94.5 -34l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60t-75.5 -91t-27.5 -115q0 -39 12 -67.5t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75 q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5t-197 -103.5t-251 -34.5z" />
+<glyph unicode="T" d="M629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
+<glyph unicode="U" d="M477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51 q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="V" d="M199 1493h198l113 -1303l598 1303h215l-719 -1493h-258z" />
+<glyph unicode="W" d="M145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
+<glyph unicode="X" d="M546 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
+<glyph unicode="Y" d="M508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="Z" d="M32 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
+<glyph unicode="[" d="M682 1636h424l-23 -143h-240l-256 -1620h240l-23 -143h-424z" />
+<glyph unicode="\" d="M356 1493h170l199 -1683h-170z" />
+<glyph unicode="]" d="M366 -127h240l256 1619h-240l23 143h424l-302 -1905h-424z" />
+<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
+<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
+<glyph unicode="`" d="M453 1638h198l197 -376h-143z" />
+<glyph unicode="a" d="M407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5 t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172 q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="b" d="M535 -29q-97 0 -164 43q-66 43 -101 127l-46 -141h-165l303 1556h185l-113 -579q61 83 144 127q82 43 185 43q79 0 144 -25.5t111 -77.5q90 -102 90 -296q0 -66 -10.5 -138.5t-30.5 -144.5q-19 -67 -46.5 -130t-66.5 -122q-78 -116 -184 -178q-56 -32 -115 -48t-120 -16z M540 127q83 0 151 45q35 23 62.5 55t51.5 77q25 46 45 100.5t33 108.5q14 58 21 114t7 106q0 62 -11.5 111.5t-38.5 84.5q-51 64 -151 64q-44 0 -82.5 -12t-70.5 -34t-62.5 -56t-56.5 -79q-26 -46 -44.5 -96t-32.5 -105q-14 -59 -21.5 -116t-7.5 -106q0 -63 12.5 -111.5 t40.5 -83.5q30 -38 70.5 -52.5t84.5 -14.5z" />
+<glyph unicode="c" d="M597 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5 t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-44 -11 -86.5 -16t-90.5 -5z" />
+<glyph unicode="d" d="M462 -29q-85 0 -146.5 27t-105.5 78q-46 53 -68.5 125.5t-22.5 172.5q0 66 10 138t30 145q21 76 49 138.5t60 113.5q39 62 83 105.5t94 72.5t105 44.5t118 15.5q51 0 93 -10.5t79 -32.5q73 -44 114 -127l115 579h184l-303 -1556h-164l7 141q-64 -83 -147 -127 q-82 -43 -184 -43zM518 127q85 0 154 45q35 23 63 55.5t53 77.5q49 87 77 203q14 56 21 112.5t7 106.5q0 132 -53 197q-25 31 -64.5 49t-93.5 18q-42 0 -81 -11.5t-70 -31.5q-32 -21 -61.5 -55t-52.5 -76q-22 -40 -41.5 -93.5t-33.5 -110.5t-20.5 -115.5t-6.5 -109.5 q0 -69 12.5 -117t38.5 -80q51 -64 152 -64z" />
+<glyph unicode="e" d="M558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49 q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69 q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="f" d="M523 977h-299l29 143h297l16 78q21 103 53.5 168.5t81.5 107.5q50 42 119.5 62t163.5 20h221l-31 -153h-208q-94 0 -143 -41q-26 -23 -41.5 -58.5t-26.5 -84.5l-21 -99h385l-26 -143h-385l-191 -977h-184z" />
+<glyph unicode="g" d="M376 -440q-43 0 -82.5 3.5t-79.5 10.5q-78 13 -155 41l37 182q40 -23 76 -39.5t76 -27.5q80 -23 158 -23q148 0 231 80q42 40 70.5 105t48.5 161l24 117q-59 -87 -145 -132q-45 -23 -93 -34.5t-99 -11.5q-79 0 -142.5 27t-108.5 80q-46 54 -68 129.5t-22 169.5 q0 63 10 132t30 138q39 135 112 243q40 60 83 101.5t95 72.5q104 62 216 62q99 0 176 -48q35 -23 63.5 -56t46.5 -78l47 151h164l-203 -1044q-53 -272 -186 -392q-134 -120 -380 -120zM513 145q38 0 74 11t71 34q65 44 112 129q26 46 46 100.5t31 101.5q14 55 20.5 111 t6.5 101q0 126 -56 192q-28 33 -67 49.5t-87 16.5q-84 0 -149.5 -46t-112.5 -122q-50 -81 -77.5 -187.5t-27.5 -214.5q0 -83 15.5 -131.5t40.5 -77.5q29 -32 70 -49.5t90 -17.5z" />
+<glyph unicode="h" d="M387 1556h184l-116 -604q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
+<glyph unicode="i" d="M627 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27 q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="j" d="M811 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM55 -270h233q45 0 83.5 14.5t66.5 44.5q54 58 80 191l192 997h-317l28 143h502l-221 -1140q-19 -97 -53 -177t-89 -133q-101 -96 -282 -96h-254z" />
+<glyph unicode="k" d="M393 1556h191l-170 -874l549 438h241l-520 -422l373 -698h-213l-307 582l-168 -133l-88 -449h-191z" />
+<glyph unicode="l" d="M739 -8q-174 0 -257 64q-41 31 -63 78.5t-22 113.5q0 17 1.5 34t3.5 36t5.5 39.5t8.5 46.5l211 1008h-316l29 144h500l-240 -1156q-4 -18 -5.5 -29t-2 -17.5t-0.5 -9v-4.5q0 -5 -3 -12.5t-3 -32.5q0 -76 44 -111q45 -36 136 -36h211l-31 -156h-207v0z" />
+<glyph unicode="m" d="M203 1120h148l1 -96q43 60 100 92q55 31 120 31q74 0 120 -37q45 -37 56 -104q20 35 46.5 61.5t55.5 43.5q31 18 66.5 27t70.5 9q42 0 78 -13t62 -40q30 -32 40.5 -72.5t10.5 -78.5q0 -20 -2 -52.5t-7 -66.5q-2 -18 -5 -36t-6.5 -38.5t-8 -45t-10.5 -55.5l-127 -649h-168 l125 641q3 15 7.5 38t8.5 45.5t7.5 41.5t4.5 26q5 26 7 50t2 39q0 24 -6 47t-17 37q-22 28 -74 28q-41 0 -68.5 -16t-47.5 -48q-24 -38 -43.5 -105.5t-42.5 -182.5l-125 -641h-168l125 641q3 13 6.5 33t7.5 41.5t8 42.5t6 37q3 20 5.5 44t2.5 42q0 23 -5 44t-18 38 q-23 30 -74 30q-35 0 -63 -13.5t-49 -45.5q-11 -17 -21.5 -42t-21 -60t-21.5 -82.5t-23 -108.5l-125 -641h-168z" />
+<glyph unicode="n" d="M303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
+<glyph unicode="o" d="M510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44 t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="p" d="M299 1120h164l-8 -143q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
+<glyph unicode="q" d="M774 141q-62 -84 -143 -127q-82 -43 -185 -43q-81 0 -145.5 25.5t-110.5 76.5q-44 49 -68 123t-24 176q0 65 10.5 136t30.5 144q20 70 48 135t65 122q39 61 83 104.5t97 73.5q105 60 231 60q57 0 98.5 -11t72.5 -31q68 -43 102 -128l47 143h164l-299 -1546h-184zM496 127 q85 0 154 46q36 24 66 59t52 73q48 84 77 203q14 59 21.5 116t7.5 107q0 63 -12.5 112t-40.5 83q-53 65 -154 65q-84 0 -152 -44q-35 -23 -63 -55t-51 -76q-25 -46 -44 -99.5t-33 -109.5q-29 -118 -29 -221q0 -131 51 -195t150 -64z" />
+<glyph unicode="r" d="M404 1120h164l-20 -219q67 120 174 183q106 63 239 63q35 0 69 -4.5t62 -13.5q25 -8 50.5 -22t46.5 -32l-35 -186q-23 22 -49.5 38.5t-54.5 27.5q-30 11 -64 16.5t-69 5.5q-82 0 -154 -28t-130 -85t-97 -137t-58 -178l-107 -549h-184z" />
+<glyph unicode="s" d="M477 -29q-48 0 -92.5 4.5t-82.5 12.5q-45 9 -92 22.5t-95 30.5l37 190q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172 q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5q-40 -27 -58 -63t-18 -71q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5 l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-72 -56 -169 -83.5t-207 -27.5z" />
+<glyph unicode="t" d="M682 -4q-89 0 -148 15t-97 41q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47q0 -67 39 -93q39 -27 141 -27h207 l-29 -147h-223v0z" />
+<glyph unicode="u" d="M409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5 q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="v" d="M182 1120h178l154 -956l502 956h198l-614 -1120h-238z" />
+<glyph unicode="w" d="M92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
+<glyph unicode="x" d="M524 596l-293 524h196l217 -395l369 395h225l-512 -547l318 -573h-197l-244 444l-417 -444h-226z" />
+<glyph unicode="y" d="M20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5 q-74 -37 -171 -37h-148z" />
+<glyph unicode="z" d="M111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
+<glyph unicode="{" d="M685 -334q-187 0 -268 54q-82 55 -82 178v13q-1 14 0 24.5t3 27.5q4 29 6.5 44.5t4.5 26.5l45 236q2 5 2 7.5t1 4.5q5 25 7.5 45t2.5 45q0 49 -12 79t-37 49q-49 37 -162 37h-92l29 147h91q146 0 208 55q62 54 93 205l50 244q25 124 61 194q36 71 90 111q22 16 49.5 28.5 t67.5 20.5q34 7 83 10.5t118 3.5h82l-29 -143h-85q-69 0 -111 -9.5t-65 -29.5q-25 -22 -44 -70t-33 -120l-51 -252q-15 -75 -37.5 -133.5t-55.5 -98.5q-59 -71 -171 -94q72 -18 113 -69q40 -52 40 -127q1 -13 0.5 -22.5t-3.5 -34.5q-2 -16 -3 -24.5t-2 -14.5t-2.5 -12.5 t-3.5 -18.5l-47 -244q-4 -20 -5.5 -33t-2.5 -26l-1.5 -25.5t-0.5 -13t-0.5 -6.5t-0.5 -5q0 -64 43 -92t140 -28h78l-29 -144h-72v0z" />
+<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
+<glyph unicode="}" d="M64 -190h78q137 0 183 40q22 19 41 63t36 126l51 252q15 75 37 133.5t56 99.5q61 73 172 92q-74 20 -114 70q-20 26 -30 55.5t-10 71.5q0 12 1 25.5t3 31.5q2 21 3.5 34t6.5 36l47 243q0 2 1.5 11t3 19.5t3 19t1.5 10.5q1 12 1.5 25t0.5 22q0 66 -42 95q-43 28 -141 28 h-77l26 143h74q100 0 165 -14t104 -40t60 -67.5t21 -114.5q0 -14 -1 -26.5t-3 -34.5q-2 -19 -3.5 -32t-6.5 -39l-45 -236l-2 -12q-5 -25 -7.5 -48t-2.5 -43q0 -89 49 -126t161 -37h92l-29 -147h-91q-143 0 -207 -55q-32 -27 -56.5 -77t-39.5 -128l-47 -244 q-12 -63 -28 -111.5t-34 -83.5q-36 -71 -90 -110q-25 -18 -53 -29.5t-63 -19.5q-69 -15 -201 -15h-82z" />
+<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M713 1170q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5zM498 655l108 357h162l-39 -357l-127 -655h-233z" />
+<glyph unicode="&#xa2;" d="M510 -27q-88 9 -161 44.5t-124 95.5t-76.5 140.5t-25.5 180.5q0 88 20 175.5t61 168.5q44 88 101 151.5t120 106.5q38 26 75.5 44.5t73.5 31.5q76 27 163 33l56 287h102l-55 -287q58 -3 123 -20q64 -17 124 -48l-32 -172q-50 38 -110 60t-134 28l-170 -870q32 2 66 9.5 t69 18.5t70.5 26.5t73.5 35.5l-33 -172q-20 -9 -41 -16.5t-40.5 -13.5t-35.5 -10.5t-26 -7.5q-30 -8 -65 -13t-67 -7l-55 -286h-102zM709 991q-165 -15 -279 -179q-58 -84 -86.5 -180.5t-28.5 -200.5q0 -75 15 -126t44 -89q28 -36 67.5 -59t99.5 -30z" />
+<glyph unicode="&#xa3;" d="M25 170h237l90 465h-198l26 143h199l47 238q27 137 72 229t110 152q63 59 150 91t199 32q73 0 135 -14q20 -5 58.5 -16.5t78.5 -27.5l-37 -184q-54 43 -114 66q-60 22 -126 22q-71 0 -123.5 -21.5t-90.5 -63.5t-66 -110.5t-49 -175.5l-43 -217h370l-28 -143h-371 l-90 -465h536l-32 -170h-973z" />
+<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
+<glyph unicode="&#xa5;" d="M444 524h-397l23 111h397l6 35l-55 151h-309l22 111h246l-205 561h207l223 -664l459 664h211l-404 -561h252l-22 -111h-312l-110 -151l-10 -35h393l-23 -111h-393l-98 -524h-199z" />
+<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
+<glyph unicode="&#xa7;" d="M411 -201q-40 0 -79.5 4t-71.5 10q-36 7 -78.5 18.5t-81.5 25.5l33 161q37 -18 73.5 -31.5t72.5 -23.5t68.5 -15t67.5 -5q52 0 97.5 12t78.5 35t49.5 54.5t16.5 65.5q0 54 -43.5 107.5t-139.5 119.5l-87 60q-125 86 -165 141q-21 29 -30.5 61t-9.5 68q0 45 15 90.5 t49 90.5q32 42 77 79.5t105 69.5q-42 39 -59 77q-10 21 -14.5 43t-4.5 50q0 74 30.5 137t89.5 111q60 48 139 72t170 24q35 0 70 -3.5t72 -10.5q39 -8 74.5 -18.5t73.5 -24.5l-33 -164q-34 18 -68.5 32.5t-70.5 25.5t-68.5 15.5t-61.5 4.5q-48 0 -90.5 -12t-75.5 -37 t-49.5 -55t-16.5 -61q0 -43 32.5 -86t101.5 -88l48 -32l86 -59q63 -43 104 -79t63 -65t32 -62.5t10 -68.5q0 -47 -16.5 -95t-49.5 -93q-35 -48 -80.5 -83t-99.5 -60q41 -35 62 -80q9 -20 14.5 -46t5.5 -58q0 -73 -30 -137.5t-90 -113.5q-61 -49 -142.5 -73.5t-174.5 -24.5z M678 401q84 51 128 107t44 108q0 30 -14.5 58t-38.5 53q-27 28 -79.5 67t-121.5 83l-80 51q-81 -52 -125 -108q-43 -55 -43 -109t43 -101q20 -22 59.5 -54t108.5 -77z" />
+<glyph unicode="&#xa8;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
+<glyph unicode="&#xaa;" d="M534 698q-61 0 -104.5 17t-71.5 43q-63 60 -63 163q0 71 29 126t82 93q112 79 311 79h174q0 4 1 9q2 11 2.5 24t0.5 21q0 28 -9.5 53.5t-35.5 45.5q-22 17 -55 25t-84 8q-35 0 -69 -4t-68 -12t-69 -21.5t-71 -30.5l23 127q75 29 148 42q37 7 71 10.5t69 3.5 q145 0 218 -62t73 -186q0 -13 -0.5 -27.5t-1.5 -24.5q-1 -7 -3.5 -26t-4.5 -29l-86 -448h-143l22 112q-26 -32 -59 -56.5t-68 -40.5q-39 -18 -79 -26t-79 -8zM581 817q49 0 96 16.5t85 50.5q41 36 66 86.5t36 104.5l6 29h-141q-149 0 -217 -40q-35 -20 -52.5 -52t-17.5 -71 q0 -59 37 -92q18 -16 42.5 -24t59.5 -8zM246 592h676l-23 -123h-676z" />
+<glyph unicode="&#xab;" d="M74 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176zM541 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176z" />
+<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
+<glyph unicode="&#xad;" d="M336 643h522l-33 -164h-522z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
+<glyph unicode="&#xaf;" d="M469 1526h598l-29 -148h-598z" />
+<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
+<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#xb2;" d="M328 1230l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557z" />
+<glyph unicode="&#xb3;" d="M536 1103q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
+<glyph unicode="&#xb4;" d="M907 1638h219l-395 -376h-156z" />
+<glyph unicode="&#xb5;" d="M252 1120h187l-136 -696q-2 -11 -4.5 -27.5t-4.5 -30.5q-3 -27 -3 -47q0 -40 12.5 -76.5t41.5 -62.5q30 -27 71.5 -38t86.5 -11q135 0 218 83q39 39 68.5 101t46.5 152l127 653h186l-168 -862q-1 -4 -2.5 -16.5t-1.5 -14.5q-1 -7 -1.5 -12.5t-0.5 -12.5q0 -29 13 -45 q5 -7 13.5 -11.5t20.5 -4.5q10 0 27 5q5 2 18.5 6.5t28.5 11.5l-29 -148q-19 -11 -41 -20.5t-36 -13.5q-36 -11 -73 -11q-31 0 -56.5 10t-46.5 33q-19 20 -29.5 47t-10.5 68q-52 -82 -122 -120q-71 -38 -166 -38t-156 42q-63 42 -94 124l-109 -563h-176z" />
+<glyph unicode="&#xb6;" d="M506 649q-177 4 -279 99q-102 94 -102 256q0 209 173 349t437 140h406l-328 -1690h-139l303 1567h-191l-303 -1567h-141z" />
+<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="&#xb8;" d="M366 -395q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 39 -17t38 -12q36 -9 68 -9q67 0 105 30q19 15 28 36t9 45q0 17 -4 35.5t-10 34.5q-5 12 -17 38.5t-27 54.5h119q19 -32 32.5 -60t22.5 -51q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54z " />
+<glyph unicode="&#xb9;" d="M369 1230h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553z" />
+<glyph unicode="&#xba;" d="M630 698q-78 0 -136 24t-100 67q-44 45 -65.5 107t-21.5 134q0 46 8.5 93t23.5 89q18 50 43.5 91t45.5 65q29 36 65.5 64.5t76.5 48.5q41 20 83.5 29.5t90.5 9.5q148 0 235 -91q41 -43 63.5 -105t22.5 -140q0 -42 -7.5 -87.5t-24.5 -93.5q-16 -44 -38 -82.5t-49 -70.5 q-30 -36 -65.5 -64.5t-75.5 -48.5q-80 -39 -175 -39zM645 813q53 0 102 26.5t87 80.5q38 53 57.5 121t19.5 138q0 107 -49 166q-26 32 -61 46t-73 14q-57 0 -104.5 -28t-83.5 -79q-38 -54 -57.5 -120.5t-19.5 -136.5q0 -57 12.5 -97.5t37.5 -70.5t59 -45t73 -15zM246 592 h676l-23 -123h-676z" />
+<glyph unicode="&#xbb;" d="M145 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418zM612 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418z" />
+<glyph unicode="&#xbc;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
+<glyph unicode="&#xbd;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM482 -160l203 167q153 125 233 213t80 150q0 20 -9 40.5t-28 36.5q-36 30 -100 30q-23 0 -53 -4.5t-59 -13.5q-27 -8 -64.5 -24t-79.5 -36l24 127 q42 14 78.5 25t68.5 18q31 7 60 10t56 3q62 0 107.5 -14.5t77.5 -40.5q34 -28 51 -66.5t17 -73.5q0 -39 -21.5 -85t-61 -96.5t-97 -103.5t-129.5 -107l-20 -15l-170 -136h395l-23 -114h-557z" />
+<glyph unicode="&#xbe;" d="M313 809q-34 0 -66 3t-64 8t-61.5 12t-61.5 18l24 121q69 -29 119 -42q51 -13 105 -13t98 11.5t76 34.5q34 24 49.5 55.5t15.5 69.5q0 66 -42 98q-44 32 -132 32h-72l21 106h72q98 0 156 40q59 41 59 103q0 53 -43 78q-22 13 -54 19t-72 6q-48 0 -95 -10 q-51 -11 -111 -33l22 115q35 8 68 14.5t64 11.5q61 9 115 9q58 0 105.5 -12t82.5 -38q65 -50 65 -140q0 -80 -57 -138q-27 -28 -65 -47.5t-89 -28.5q72 -12 111 -57q19 -22 29 -51.5t10 -68.5q0 -127 -104 -207q-103 -79 -278 -79zM47 612l1059 258l27 -108l-1063 -258z M799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
+<glyph unicode="&#xbf;" d="M752 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM495 -27q-72 0 -138.5 19t-117.5 62q-48 41 -72 95t-24 118 q0 89 49 169q26 43 69.5 89t109.5 100l104 86q39 32 69 63.5t46 57.5q15 25 27 62.5t18 74.5l20 123h191l-29 -154q-9 -48 -24.5 -88.5t-33.5 -69.5q-21 -34 -58 -73t-93 -86l-106 -89q-85 -71 -120 -127q-36 -56 -36 -113q0 -73 56 -114t153 -41q42 0 84.5 8.5t94.5 27.5 q50 18 98.5 42t105.5 59l-37 -188q-59 -31 -112.5 -52t-96.5 -33q-51 -14 -102 -21t-95 -7z" />
+<glyph unicode="&#xc0;" d="M551 1853h182l147 -264h-139zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc1;" d="M885 1852h208l-307 -264h-160zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc2;" d="M704 1854h213l158 -266h-133l-139 178l-209 -178h-152zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc3;" d="M442 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc4;" d="M500 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM891 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM639 1493h246l166 -1493h-201l-35 389h-520 l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc5;" d="M600 1415q-50 34 -76 89t-26 120q0 59 20.5 109t58.5 88q37 38 87 59t109 21q58 0 107 -21t87 -59q37 -37 58.5 -85.5t21.5 -111.5q0 -43 -10.5 -77.5t-29.5 -64.5q-41 -65 -110 -96l154 -1386h-201l-35 389h-520l-184 -389h-217zM772 1475q33 0 60.5 12t47.5 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -108q0 -65 44 -109q19 -19 46.5 -31t60.5 -12zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc6;" d="M555 1493h752l-33 -170h-338l-86 -442h307l-33 -170h-307l-106 -541h356l-33 -170h-542l75 383h-352l-176 -383h-184zM600 551l150 772h-103l-356 -772h309z" />
+<glyph unicode="&#xc7;" d="M1058 1499q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5 q-23 -5 -48.5 -9.5t-53.5 -6.5q14 -25 23.5 -46t17.5 -40q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5 q-4 9 -11.5 27t-18.5 38q-103 7 -181 41t-132 90q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16z" />
+<glyph unicode="&#xc8;" d="M596 1849h182l147 -264h-139zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xc9;" d="M930 1859h208l-307 -264h-160zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xca;" d="M749 1861h213l158 -266h-133l-139 178l-209 -178h-152zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xcb;" d="M545 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM936 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM344 1493h885l-33 -170h-684l-86 -442h653 l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xcc;" d="M557 1859h182l147 -264h-139zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xcd;" d="M891 1859h208l-307 -264h-160zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xce;" d="M710 1861h213l158 -266h-133l-139 178l-209 -178h-152zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xcf;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xd0;" d="M129 709h-127l29 149h129l123 635h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q99 0 170.5 16.5t126.5 46.5q63 35 104.5 84.5 t74.5 118.5q26 53 49 121t41 154q17 80 25.5 153t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-91 -469h267l-29 -149h-266l-107 -543h97z" />
+<glyph unicode="&#xd1;" d="M438 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
+<glyph unicode="&#xd2;" d="M543 1859h182l147 -264h-139zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd3;" d="M897 1859h208l-307 -264h-160zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd4;" d="M696 1861h213l158 -266h-133l-139 178l-209 -178h-152zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd5;" d="M434 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd6;" d="M492 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM478 -29q-202 0 -299 123q-97 122 -97 379 q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5 q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5 q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
+<glyph unicode="&#xd8;" d="M14 -6l119 170q-14 31 -24 64t-16 65q-13 68 -13 159q0 95 13 197.5t39 209.5q24 98 57.5 187.5t79.5 170.5q40 70 90 128t117 100q62 38 130.5 56.5t143.5 18.5q41 0 78 -5t69 -16q29 -10 60.5 -26.5t58.5 -38.5l84 125l100 -64l-106 -158q16 -34 26 -65.5t17 -66.5 q7 -36 10.5 -75.5t3.5 -90.5q0 -94 -13 -196t-39 -209q-29 -116 -64.5 -204.5t-72.5 -153.5q-45 -80 -96 -136t-110 -93t-129 -56.5t-148 -19.5q-43 0 -79.5 6t-70.5 17q-29 10 -61 26.5t-61 42.5l-94 -133zM905 1274q-13 18 -32.5 34t-41.5 27q-20 10 -47 15.5t-57 5.5 q-54 0 -101.5 -19.5t-89.5 -62.5q-81 -83 -141 -256q-11 -32 -22 -69t-21.5 -76.5t-19.5 -79t-16 -75.5q-14 -71 -21.5 -139t-7.5 -122l2 -38q1 -10 1 -15v-7t0.5 -3.5t0.5 -4.5zM501 135q113 0 194 82q34 35 70 96t71 160q12 33 23 70t21 75t18.5 75.5t14.5 72.5 q27 147 27 270v46q0 3 -0.5 14.5t-1.5 19.5l-616 -887q19 -43 67 -69q23 -13 51.5 -19t60.5 -6z" />
+<glyph unicode="&#xd9;" d="M555 1859h182l147 -264h-139zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xda;" d="M889 1859h208l-307 -264h-160zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xdb;" d="M708 1861h213l158 -266h-133l-139 178l-209 -178h-152zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5 q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xdc;" d="M504 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM895 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM477 -29q-190 0 -293 90q-104 90 -104 254 q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920 h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xdd;" d="M921 1859h208l-307 -264h-160zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#xde;" d="M342 1493l203 -2l-51 -274h241q207 0 316 -88q54 -44 81 -107.5t27 -154.5q0 -111 -40 -203.5t-121 -161.5q-161 -137 -441 -137h-231l-72 -365h-203zM590 522q163 0 263 92q50 46 74.5 107t24.5 132q0 60 -16.5 97t-45.5 60q-61 49 -192 49h-237l-105 -537h234z" />
+<glyph unicode="&#xdf;" d="M599 -29q-38 0 -69.5 3t-67.5 10q-41 7 -70 15.5t-62 20.5l30 164q58 -32 126 -48q68 -17 137 -17q130 0 207 63q36 30 55.5 71.5t19.5 94.5q0 31 -6.5 54t-20.5 43q-17 25 -43.5 48.5t-68.5 55.5l-61 47q-43 33 -71.5 59t-46.5 55q-28 46 -28 110q0 130 102 226 q47 45 115 79t164 53q2 8 3 15t2 15q1 7 1 12v7q0 40 -11 74.5t-40 59.5q-24 20 -61 32t-87 12q-57 0 -105.5 -16.5t-83.5 -50.5q-32 -31 -57.5 -81t-39.5 -124l-219 -1133h-187l221 1137q20 105 61 184.5t101 131.5q63 54 144 78.5t176 24.5q91 0 160 -21t114 -59 q94 -80 94 -232q0 -14 -1 -31t-3 -34t-5.5 -35t-8.5 -36q-174 -21 -274 -88q-101 -68 -101 -163q0 -21 5 -37t16 -32q14 -20 32 -36t48 -39l51 -39q54 -42 93.5 -77.5t62.5 -73.5q40 -65 40 -159q0 -84 -31 -156.5t-98 -128.5q-63 -53 -150.5 -80.5t-202.5 -27.5z" />
+<glyph unicode="&#xe0;" d="M457 1673h198l197 -376h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe1;" d="M911 1673h219l-395 -376h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe2;" d="M721 1673h147l164 -376h-133l-117 241l-225 -241h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19 q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125 q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe3;" d="M894 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12 q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5 t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe4;" d="M473 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM864 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 11v8q0 96 -62 140q-29 21 -75 33t-107 12q-42 0 -88 -6t-96 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe5;" d="M782 1321q-114 0 -194 80t-80 194q0 116 80 196q79 79 194 79q116 0 195 -79q80 -80 80 -196q0 -114 -80 -194t-195 -80zM782 1444q64 0 108 44t44 107q0 64 -44 108t-108 44t-107 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe6;" d="M234 -29q-68 0 -120.5 20t-85.5 52q-41 38 -58 92t-17 117q0 87 30 164.5t91 132.5q120 108 344 108h117l18 88q3 14 4 21.5t2 20.5q1 11 1.5 22.5t0.5 22.5q0 42 -11 71.5t-31 49.5q-19 19 -49 30.5t-70 11.5q-27 0 -56.5 -5.5t-59.5 -15.5q-32 -11 -69 -27t-74 -36 l35 168q44 19 79 31t69 20q35 8 66 12.5t60 4.5q81 0 140 -33q58 -33 90 -96q23 29 54 54t66 42q36 17 74.5 25t75.5 8q59 0 108 -19t85 -58q35 -38 53 -90.5t18 -112.5q0 -21 -2 -49.5t-6 -57.5q-2 -11 -4.5 -30.5t-6.5 -41.5l-8 -44t-7 -40l-17 -90h-495 q-12 -57 -17.5 -88.5t-9.5 -57.5q-4 -28 -6 -47t-2 -36q0 -41 13 -71.5t36 -50.5q49 -44 133 -44q69 0 142 29q70 28 124 79l-34 -172q-28 -20 -61.5 -36.5t-63.5 -26.5q-65 -21 -137 -21q-53 0 -98 11t-79 31t-58 50t-36 68q-47 -80 -117 -120q-35 -20 -76.5 -30t-86.5 -10 zM1024 657l16 74q4 17 6 31.5t3 23.5q1 11 1.5 29t0.5 29q0 39 -9 66.5t-26 46.5q-33 38 -94 38q-35 0 -70 -14t-64 -49t-46 -82t-31 -111l-17 -82h330zM267 123q83 0 134 68q13 18 24.5 41t22 53.5t20 69t19.5 87.5l15 72h-49q-67 0 -107 -3.5t-70 -12.5q-31 -9 -51 -21.5 t-37 -32.5q-18 -20 -28.5 -39.5t-18.5 -42.5q-18 -51 -18 -95q0 -27 8.5 -55t29.5 -50q22 -22 50 -30.5t56 -8.5z" />
+<glyph unicode="&#xe7;" d="M469 813q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-24 -6 -48 -10t-48 -7q14 -24 23.5 -45.5t17.5 -40.5 q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -11 26.5t-18 38.5q-101 5 -174.5 33.5t-124.5 78.5 q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5z" />
+<glyph unicode="&#xe8;" d="M453 1673h198l197 -376h-143zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807 q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xe9;" d="M907 1673h219l-395 -376h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5 h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xea;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44 q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5 q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xeb;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM558 -29q-120 0 -204.5 29t-140.5 83 q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18 q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xec;" d="M383 1646h198l197 -376h-143zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#xed;" d="M828 1673h219l-395 -376h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#xee;" d="M688 1673h147l164 -376h-133l-117 241l-225 -241h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211 l-31 -156h-207z" />
+<glyph unicode="&#xef;" d="M380 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM771 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM749 -4q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#xf0;" d="M516 -29q-193 0 -295 108q-54 57 -78 134.5t-24 175.5q0 125 38 248q20 66 50 125.5t59 101.5q77 112 192 173q58 31 120.5 46t118.5 15q18 0 35 -1.5t40 -3.5l33 -3q-20 37 -45 81q-5 7 -12.5 19.5t-17 26.5t-19.5 28.5t-19 26.5l-297 -94l-30 92l274 86l-141 200h213 l104 -145l287 88l28 -92l-260 -80q62 -86 107 -166.5t73 -153.5q56 -147 56 -306q0 -64 -9 -130t-28 -131q-37 -129 -108 -233q-42 -61 -87.5 -103.5t-102.5 -72.5q-114 -60 -255 -60zM534 127q79 0 149 40.5t123 120.5q53 81 79 186.5t26 227.5q0 36 -2 64t-7 54 q-9 51 -28 87q-37 19 -77 28q-41 9 -83 9q-94 0 -166.5 -41t-123.5 -114q-28 -40 -49 -87t-34.5 -97.5t-20.5 -103t-7 -103.5q0 -67 12.5 -119t44.5 -87q26 -29 67.5 -47t96.5 -18z" />
+<glyph unicode="&#xf1;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184 l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
+<glyph unicode="&#xf2;" d="M453 1673h198l197 -376h-143zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf3;" d="M907 1673h219l-395 -376h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf4;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137 t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230 q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf5;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314 q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126 q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf6;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM510 -29q-92 0 -166 26t-126 83 q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45 t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
+<glyph unicode="&#xf8;" d="M47 -20l129 153q-14 24 -25 52t-18 60t-10.5 67.5t-3.5 78.5q0 69 10 138t30 137q19 63 48 127t67 119t87 101.5t106 75.5q56 29 120.5 43.5t136.5 14.5q79 0 139 -18q59 -18 106 -54l112 137l93 -77l-123 -146q17 -26 29 -56t19 -58q8 -31 11.5 -69.5t3.5 -79.5 q0 -135 -41 -273q-21 -70 -50.5 -132t-64.5 -114q-42 -61 -88.5 -104.5t-103.5 -72.5q-113 -59 -259 -59q-40 0 -72 4.5t-64 14.5q-28 8 -56 21t-57 34l-119 -141zM852 938q-14 13 -31.5 24t-36.5 17q-18 6 -39.5 9t-43.5 3q-88 0 -158 -45t-121 -126t-80 -192.5t-29 -239.5 q0 -20 0.5 -29t1.5 -19q2 -19 2.5 -26.5t1.5 -11.5zM534 127q83 0 153 43t124 129q50 79 79.5 187t29.5 239q0 20 -0.5 34t-1.5 23q-1 10 -2.5 21t-4.5 22l-534 -639q15 -15 31.5 -25.5t37.5 -18.5q19 -7 40 -11t48 -4z" />
+<glyph unicode="&#xf9;" d="M449 1648h198l197 -376h-143zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfa;" d="M903 1648h219l-395 -376h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfb;" d="M713 1648h147l164 -376h-133l-117 241l-225 -241h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25 q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfc;" d="M465 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM856 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM409 -27q-65 0 -117.5 18t-90.5 55 q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5 t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfd;" d="M947 1648h219l-395 -376h-156zM20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43 q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
+<glyph unicode="&#xfe;" d="M385 1567h184l-114 -590q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
+<glyph unicode="&#xff;" d="M509 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM900 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM20 -272h108q83 0 140 47q62 50 118 159 l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
+<glyph unicode="&#x100;" d="M531 1800h598l-29 -148h-598zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x101;" d="M469 1495h598l-29 -148h-598zM404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5 t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
+<glyph unicode="&#x102;" d="M794 1612q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x103;" d="M747 1297q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246 l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77 t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
+<glyph unicode="&#x104;" d="M943 -272q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h-3l-35 389h-520l-184 -389h-217l745 1493h246l166 -1493h-79q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x105;" d="M868 0q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h5l32 166q-72 -93 -168 -144t-214 -51q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172 t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-70zM461 125q67 0 130 26.5t115.5 77t91.5 124.5 t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
+<glyph unicode="&#x106;" d="M1008 1859h208l-307 -264h-160zM597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207q-64 62 -135 94 q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
+<glyph unicode="&#x107;" d="M997 1673h219l-395 -376h-156zM607 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27 q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5 q-44 -11 -86.5 -16t-90.5 -5z" />
+<glyph unicode="&#x108;" d="M547 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM944 53q-168 -82 -347 -82q-113 0 -204 34t-152 98q-126 127 -126 389q0 210 70 421q33 105 78 190.5t106 162.5q107 132 237 192q135 62 287 62q170 0 319 -82l-41 -207q-67 63 -137 94t-150 31 q-95 0 -175 -40t-152 -124q-105 -126 -167 -314q-32 -94 -48 -190t-16 -185q0 -187 78 -277q38 -44 94.5 -67.5t129.5 -23.5q176 0 355 125z" />
+<glyph unicode="&#x109;" d="M447 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM930 51q-149 -80 -333 -80q-221 0 -336 113.5t-115 327.5q0 159 53 297q54 140 145 241q42 48 95 86t110 62q105 49 245 49q175 0 333 -86l-37 -182q-65 58 -135.5 85t-154.5 27q-223 0 -341 -178 q-55 -81 -87 -188t-32 -207q0 -291 275 -291q93 0 184 32.5t170 92.5z" />
+<glyph unicode="&#x10a;" d="M808 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM598 -29q-115 0 -205 32.5t-151.5 98.5t-94 165t-32.5 232q0 102 18.5 208.5t52 207t80.5 190.5t103 161q102 128 234.5 191t288.5 63 q86 0 162.5 -20t157.5 -62l-41 -207q-126 125 -287 125q-97 0 -178 -41.5t-149 -122.5q-51 -61 -93.5 -141.5t-73 -171t-47.5 -186t-17 -185.5q0 -191 77.5 -282t222.5 -91q88 0 178.5 32t178.5 93l-39 -207q-167 -82 -346 -82z" />
+<glyph unicode="&#x10b;" d="M739 1348q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM606 -29q-221 0 -335.5 111.5t-114.5 331.5q0 75 13.5 148.5t39 142.5t62 131t83.5 114q88 97 202 147t249 50q174 0 332 -86l-37 -182q-66 58 -136 85 t-156 27q-115 0 -197 -45.5t-142 -132.5q-28 -41 -50 -88.5t-37.5 -98.5t-23.5 -104t-8 -104q0 -149 68.5 -220t208.5 -71q92 0 180 31t172 94l-39 -201q-73 -39 -156 -59.5t-178 -20.5z" />
+<glyph unicode="&#x10c;" d="M616 1861h136l139 -178l209 178h151l-264 -266h-213zM597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207 q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
+<glyph unicode="&#x10d;" d="M561 1673h131l119 -243l225 243h156l-320 -376h-147zM607 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182 q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5 t-75.5 -22.5q-44 -11 -86.5 -16t-90.5 -5z" />
+<glyph unicode="&#x10e;" d="M484 1861h136l139 -178l209 178h151l-264 -266h-213zM283 1493h303q277 0 410.5 -125.5t133.5 -384.5q0 -75 -10.5 -156.5t-30.5 -164t-49 -161t-65 -147.5q-51 -96 -115 -163.5t-146.5 -109.5t-185.5 -61.5t-233 -19.5h-303zM324 166q93 0 166.5 15.5t131.5 48t102 82.5 t77 120q26 54 48.5 124t39 146t26 152t9.5 142q0 89 -19.5 152t-62.5 102.5t-110.5 58t-164.5 18.5h-114l-226 -1161h97z" />
+<glyph unicode="&#x10f;" d="M460 -29q-161 0 -251 104t-90 304q0 66 10 136.5t29.5 139.5t47 134t62.5 120q75 118 176.5 178t221.5 60q100 0 172.5 -42t115.5 -128l115 579h184l-303 -1556h-164l7 141q-66 -85 -148 -127.5t-185 -42.5zM1316 1552h196l-186 -373h-140zM517 127q89 0 156 45.5 t115 132.5q24 43 43.5 95.5t33 108t21 110.5t7.5 105q0 138 -54.5 202.5t-157.5 64.5q-89 0 -153 -45t-110 -129q-24 -44 -43 -96t-32.5 -108t-20.5 -112.5t-7 -108.5q0 -136 49.5 -200.5t152.5 -64.5z" />
+<glyph unicode="&#x110;" d="M129 709h-127l29 149h129l123 635h303q277 0 410.5 -125.5t133.5 -384.5q0 -75 -10.5 -156.5t-30.5 -164t-49 -161t-65 -147.5q-51 -96 -115 -163.5t-146.5 -109.5t-185.5 -61.5t-233 -19.5h-303zM324 166q93 0 166.5 15.5t131.5 48t102 82.5t77 120q26 54 48.5 124 t39 146t26 152t9.5 142q0 89 -19.5 152t-62.5 102.5t-110.5 58t-164.5 18.5h-114l-91 -469h267l-29 -149h-266l-107 -543h97z" />
+<glyph unicode="&#x111;" d="M462 -29q-85 0 -146.5 27t-105.5 78q-46 53 -68.5 125.5t-22.5 172.5q0 66 10 138t30 145q21 76 49 138.5t60 113.5q39 62 83 105.5t94 72.5t105 44.5t118 15.5q51 0 93 -10.5t79 -32.5q73 -44 114 -127l62 309h-332l25 121h329l31 149h184l-30 -149h192l-22 -121h-193 l-250 -1286h-164l7 141q-64 -83 -147 -127q-82 -43 -184 -43zM518 127q85 0 154 45q35 23 63 55.5t53 77.5q49 87 77 203q14 56 21 112.5t7 106.5q0 132 -53 197q-25 31 -64.5 49t-93.5 18q-42 0 -81 -11.5t-70 -31.5q-32 -21 -61.5 -55t-52.5 -76q-22 -40 -41.5 -93.5 t-33.5 -110.5t-20.5 -115.5t-6.5 -109.5q0 -69 12.5 -117t38.5 -80q51 -64 152 -64z" />
+<glyph unicode="&#x112;" d="M549 1800h598l-29 -148h-598zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x113;" d="M504 1486h598l-29 -148h-598zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73 q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
+<glyph unicode="&#x116;" d="M751 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x117;" d="M678 1349q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132 t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105 t-59 -136.5h606z" />
+<glyph unicode="&#x118;" d="M512 1323l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-96q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h-690l291 1493h885l-33 -170h-684z" />
+<glyph unicode="&#x119;" d="M297 516q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-89 -36 -174 -57q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 51 30.5 104.5t94.5 115.5 q-21 -2 -42.5 -3t-42.5 -1q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807zM707 991q-65 0 -123.5 -23.5t-107 -67t-85.5 -105 t-59 -136.5h606q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17z" />
+<glyph unicode="&#x11a;" d="M586 1861h136l139 -178l209 178h151l-264 -266h-213zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x11b;" d="M526 1673h131l119 -243l225 243h156l-320 -376h-147zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52 q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
+<glyph unicode="&#x11c;" d="M511 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM969 96q-85 -61 -189.5 -93t-215.5 -32q-236 0 -361 134t-125 383q0 82 17 193q24 131 53.5 230t73.5 188q126 256 341 358q134 63 291 63q92 0 166 -21q86 -21 156 -61l-41 -207q-66 63 -137 94t-152 31 q-97 0 -184 -41q-42 -20 -82 -52t-72 -71q-118 -146 -180 -409q-25 -108 -36 -204q-5 -58 -5 -85q0 -175 79 -266q40 -47 95.5 -70t130.5 -23q133 0 211 72l76 393h-217l30 166h410z" />
+<glyph unicode="&#x11d;" d="M397 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM654 -387q-114 -53 -278 -53q-80 0 -163 14.5t-154 40.5l37 182q155 -90 310 -90q148 0 231 80q41 39 69.5 102.5t49.5 163.5l24 117q-57 -86 -145 -132t-192 -46q-79 0 -142.5 27t-108.5 80 q-90 107 -90 299q0 136 40 272t112 241q39 59 82 101t96 73q104 62 216 62q99 0 176 -49t110 -133l47 151h164l-203 -1044q-36 -183 -106 -294.5t-182 -164.5zM353 212q29 -32 70 -49.5t90 -17.5q72 0 136 39.5t104 104.5q43 70 73 157.5t42 185.5q6 56 6 101 q0 123 -55.5 190.5t-154.5 67.5q-138 0 -221 -107.5t-118 -246.5q-28 -105 -28 -216q0 -74 14 -124.5t42 -84.5z" />
+<glyph unicode="&#x11e;" d="M788 1619q-120 0 -190 61q-33 29 -56 72t-34 109h114q17 -62 56 -88q20 -14 48 -20.5t69 -6.5t76 7t62 21q53 28 80 87h121q-33 -112 -125 -177q-94 -65 -221 -65zM564 -29q-122 0 -211.5 34.5t-150.5 100.5q-63 69 -93.5 165t-30.5 217q0 47 4.5 94.5t12.5 98.5 q8 47 20 102.5t28 109.5q17 59 39 114.5t43 97.5q28 56 55.5 96t47.5 66q49 61 109.5 110t128.5 81q130 62 288 62q46 0 86 -5t80 -16q81 -21 156 -61l-41 -207q-35 34 -70 57t-66 37q-71 31 -153 31q-50 0 -96.5 -10.5t-87.5 -30.5q-42 -20 -82 -52t-72 -71 q-45 -54 -83 -130q-20 -41 -37 -84t-32 -91q-18 -58 -30.5 -112t-20.5 -102q-9 -52 -13.5 -94.5t-4.5 -84.5q0 -174 79 -266q40 -47 95.5 -70t130.5 -23q36 0 65 5t55 14q29 10 50.5 23t40.5 30l76 393h-217l30 166h410l-133 -670q-86 -61 -190 -93q-51 -16 -103.5 -24 t-111.5 -8z" />
+<glyph unicode="&#x11f;" d="M748 1297q-132 0 -206 63q-40 35 -56.5 82.5t-16.5 104.5q0 13 0.5 16t0.5 5v5t2 11h120v-17q0 -64 44 -99q43 -34 126 -34t135 37q26 18 47 46.5t35 66.5h119q-15 -68 -45.5 -122.5t-75.5 -91.5q-89 -73 -229 -73zM376 -440q-43 0 -82.5 3.5t-79.5 10.5q-78 13 -155 41 l37 182q40 -23 76 -39.5t76 -27.5q80 -23 158 -23q148 0 231 80q42 40 70.5 105t48.5 161l24 117q-59 -87 -145 -132q-45 -23 -93 -34.5t-99 -11.5q-79 0 -142.5 27t-108.5 80q-46 54 -68 129.5t-22 169.5q0 63 10 132t30 138q39 135 112 243q40 60 83 101.5t95 72.5 q104 62 216 62q99 0 176 -48q35 -23 63.5 -56t46.5 -78l47 151h164l-203 -1044q-53 -272 -186 -392q-134 -120 -380 -120zM513 145q38 0 74 11t71 34q65 44 112 129q26 46 46 100.5t31 101.5q14 55 20.5 111t6.5 101q0 126 -56 192q-28 33 -67 49.5t-87 16.5 q-84 0 -149.5 -46t-112.5 -122q-50 -81 -77.5 -187.5t-27.5 -214.5q0 -83 15.5 -131.5t40.5 -77.5q29 -32 70 -49.5t90 -17.5z" />
+<glyph unicode="&#x120;" d="M783 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM563 -29q-118 0 -208.5 34t-152 100t-93 162t-31.5 220q0 94 17 198t48 208q35 118 80 208t105 165q206 254 524 254q85 0 162.5 -19.5 t161.5 -62.5l-41 -207q-129 125 -290 125q-97 0 -183 -41.5t-154 -122.5q-49 -59 -86 -136t-66 -169q-17 -56 -30 -111t-21.5 -106.5t-13 -98t-4.5 -84.5q0 -168 79 -260t227 -92q66 0 119.5 18.5t90.5 53.5l76 393h-217l30 166h410l-133 -670q-86 -62 -189 -93.5 t-217 -31.5z" />
+<glyph unicode="&#x121;" d="M664 1348q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM378 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44 q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133t30 134t47.5 128t64 115q37 55 81.5 99t95 74.5t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM507 145q166 0 263 174 q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5t-152 66.5q-57 0 -107 -23t-91 -63t-73 -94.5t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
+<glyph unicode="&#x122;" d="M563 -29q-118 0 -208.5 34t-152 100t-93 162t-31.5 220q0 94 17 198t48 208q35 118 80 208t105 165q206 254 524 254q85 0 162.5 -19.5t161.5 -62.5l-41 -207q-129 125 -290 125q-97 0 -183 -41.5t-154 -122.5q-49 -59 -86 -136t-66 -169q-17 -56 -30 -111t-21.5 -106.5 t-13 -98t-4.5 -84.5q0 -168 79 -260t227 -92q66 0 119.5 18.5t90.5 53.5l76 393h-217l30 166h410l-133 -670q-86 -62 -189 -93.5t-217 -31.5zM463 -228h239l-254 -345h-146z" />
+<glyph unicode="&#x123;" d="M804 1614h146l-161 -345h-239zM378 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133t30 134t47.5 128t64 115 q37 55 81.5 99t95 74.5t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM507 145q166 0 263 174q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5t-152 66.5q-57 0 -107 -23 t-91 -63t-73 -94.5t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
+<glyph unicode="&#x124;" d="M467 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM-8 0l291 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
+<glyph unicode="&#x125;" d="M587 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM84 0l303 1556h184l-116 -604q74 96 163 146q46 25 91 37t98 12q136 0 212 -72q38 -35 57.5 -86t19.5 -112q0 -41 -4.5 -82.5t-16.5 -100.5l-135 -694h-184l135 695q3 9 2 9l1 5l11 62q4 17 4 46 q0 44 -11 74.5t-35 52.5q-46 43 -133 43q-129 0 -217.5 -93t-121.5 -261l-123 -633h-184z" />
+<glyph unicode="&#x126;" d="M207 1105h-134l32 164h134l43 224h202l-43 -224h554l43 224h202l-43 -224h135l-32 -164h-135l-215 -1105h-202l138 711h-554l-138 -711h-202zM919 881l44 224h-554l-44 -224h554z" />
+<glyph unicode="&#x127;" d="M291 1270h-125l32 164h125l23 122h184l-23 -122h353l-32 -164h-353l-62 -318q67 97 160.5 146t210.5 49q85 0 137.5 -25t82 -65t39.5 -91.5t10 -103.5q0 -43 -5 -82.5t-14 -85.5l-134 -694h-185l135 695q12 64 12 114q0 33 -6.5 65t-25 57t-52.5 40.5t-89 15.5 q-63 0 -117 -22t-97.5 -66t-75 -110.5t-48.5 -155.5l-123 -633h-184z" />
+<glyph unicode="&#x128;" d="M448 1627q35 109 97 164t143 55q34 0 67 -10.5t68 -36.5l35 -26q36 -27 72 -27q42 0 69.5 27t38.5 73h125q-32 -111 -97 -165t-148 -54q-32 0 -60.5 9.5t-61.5 33.5l-34 25l-2 1q-43 32 -80 32q-69 0 -107 -101h-125zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314 l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x129;" d="M817 1270q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72zM749 -4q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 41.5t8.5 44.5l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -34.5t-3.5 -27.5l-3 -25.5t-1 -18.5q0 -75 44 -110q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#x12a;" d="M531 1800h598l-29 -148h-598zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x12b;" d="M409 1468h598l-29 -148h-598zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#x12e;" d="M865 1323l-223 -1153h314l-33 -170h-313q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h-398l33 170h313l224 1153h-314l33 170h830l-33 -170h-314z" />
+<glyph unicode="&#x12f;" d="M631 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM774 -4q-51 -52 -78 -97t-27 -83q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 53 33 109t103 121 q-109 14 -167 59q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 41.5t8.5 44.5l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -34.5t-3.5 -27.5l-3 -25.5t-1 -18.5q0 -75 44 -110q45 -36 136 -36h211l-31 -156h-182z" />
+<glyph unicode="&#x130;" d="M711 1627q-27 0 -27 24q0 6 1 9l29 145q4 27 32 27h142q15 0 22.5 -9t4.5 -24l-28 -145q-5 -27 -32 -27h-144zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x131;" d="M749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207v0z" />
+<glyph unicode="&#x132;" d="M65 203h558q55 0 107 28q52 27 88.5 73.5t47.5 101.5l177 917h-320l33 170l523 1l-210 -1088q-23 -111 -94 -203q-73 -94 -177 -148.5t-214 -54.5h-558zM316 1493h203l-211 -1087h-203z" />
+<glyph unicode="&#x133;" d="M324 1344q0 7 1 9l34 173q6 30 36 30h144q25 0 25 -21q0 -7 -1 -9l-34 -173q-6 -30 -36 -30h-144q-25 0 -25 21zM1011 1344q0 7 1 9l34 173q6 30 36 30h144q25 0 25 -21q0 -7 -1 -9l-34 -173q-6 -30 -36 -30h-144q-25 0 -25 21zM290 1120h184l-218 -1120h-184zM204 -270 h323q180 0 228 250l194 997h-267l28 143h451l-222 -1140q-37 -195 -146.5 -300.5t-276.5 -105.5h-343z" />
+<glyph unicode="&#x134;" d="M688 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM729 86q-63 -59 -149.5 -87t-204.5 -28q-97 0 -195 22t-205 68l45 236q71 -79 164 -120q48 -21 95 -31.5t101 -10.5q98 0 158.5 31.5t98.5 106.5q38 77 65 214l164 836h-381l33 170h584l-197 -1006 q-29 -149 -72 -246.5t-104 -154.5z" />
+<glyph unicode="&#x135;" d="M518 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM24 -426l31 156h233q96 0 150.5 59.5t79.5 190.5l192 997h-317l28 143h502l-221 -1140q-41 -212 -142 -309t-282 -97h-254z" />
+<glyph unicode="&#x136;" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203zM439 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x137;" d="M393 1556h191l-170 -874l549 438h241l-520 -422l373 -698h-213l-307 582l-168 -133l-88 -449h-191zM477 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x138;" d="M315 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
+<glyph unicode="&#x139;" d="M839 1860h208l-307 -264h-160zM369 1493h202l-258 -1323h721l-33 -170h-923z" />
+<glyph unicode="&#x13a;" d="M889 1901h208l-307 -264h-160zM739 -8q-342 0 -342 253q0 34 5.5 76t13.5 83l211 1008h-316l29 144h500l-240 -1156q-14 -70 -14 -111q0 -69 44.5 -105t135.5 -36h211l-31 -156h-207z" />
+<glyph unicode="&#x13b;" d="M369 1493h202l-258 -1323h721l-33 -170h-923zM443 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x13c;" d="M739 -8q-342 0 -342 253q0 34 5.5 76t13.5 83l211 1008h-316l29 144h500l-240 -1156q-14 -70 -14 -111q0 -69 44.5 -105t135.5 -36h211l-31 -156h-207zM512 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x13d;" d="M369 1493h202l-258 -1323h721l-33 -170h-923zM887 1492h219l-208 -376h-156z" />
+<glyph unicode="&#x13e;" d="M739 -8q-342 0 -342 253q0 34 5.5 76t13.5 83l211 1008h-316l29 144h500l-240 -1156q-14 -70 -14 -111q0 -69 44.5 -105t135.5 -36h211l-31 -156h-207zM1017 1556h219l-208 -376h-156z" />
+<glyph unicode="&#x13f;" d="M368 1493h203l-257 -1323h721l-33 -170h-924zM649 561q0 7 1 9l28 144q6 30 36 30h145q25 0 25 -21q0 -7 -1 -9l-28 -144q-6 -30 -36 -30h-145q-25 0 -25 21z" />
+<glyph unicode="&#x140;" d="M536 18q-62 28 -101.5 92.5t-39.5 161.5q0 51 14 126l197 1014h-295l28 144h479l-225 -1158q-11 -58 -11 -95q0 -66 31 -110.5t111 -44.5h215l-30 -156h-233q-80 0 -140 26zM815 561q0 7 1 9l28 144q6 30 36 30h145q25 0 25 -21q0 -7 -1 -9l-28 -144q-6 -30 -36 -30h-145 q-25 0 -25 21z" />
+<glyph unicode="&#x141;" d="M195 563l-150 -104l-74 100l260 180l140 752h202l-114 -592l297 209l73 -100l-399 -279l-113 -561h721l-32 -168h-924z" />
+<glyph unicode="&#x142;" d="M739 -8q-94 0 -155.5 17t-101.5 47q-85 64 -85 194q0 18 1.5 36.5t3.5 38.5q3 25 6 42t8 37l59 286l-313 -219l-74 99l424 292l115 550h-316l29 144h500l-115 -550l315 217l74 -98l-424 -293l-90 -432q-3 -15 -5.5 -33t-4.5 -31q-2 -15 -3 -25t-1 -20q0 -38 11 -63.5 t34 -43.5q22 -17 54 -26.5t81 -9.5h211l-31 -156h-207v0z" />
+<glyph unicode="&#x143;" d="M907 1866h208l-307 -264h-160zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
+<glyph unicode="&#x144;" d="M900 1685h219l-395 -376h-156zM303 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69 t-75 -111t-47.5 -150l-123 -633h-184z" />
+<glyph unicode="&#x145;" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194zM375 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x146;" d="M303 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184zM416 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x147;" d="M534 1861h136l139 -178l209 178h151l-264 -266h-213zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
+<glyph unicode="&#x148;" d="M519 1673h131l119 -243l225 243h156l-320 -376h-147zM303 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5 q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633h-184z" />
+<glyph unicode="&#x149;" d="M252 1350l40 206h252l-40 -206l-272 -383h-153zM481 1120h166l-15 -168q140 195 369 195q171 0 235 -112q37 -67 37 -171q0 -81 -19 -170l-135 -694h-185l135 694q13 68 13 115q0 91 -43.5 134.5t-132.5 43.5q-129 0 -215.5 -91t-120.5 -263l-123 -633h-184z" />
+<glyph unicode="&#x14a;" d="M377 -270h167q93 0 148 63.5t83 206.5l197 1009q16 80 16 144q0 106 -46.5 155.5t-141.5 49.5q-140 0 -237 -105.5t-138 -315.5l-183 -937h-202l291 1493h182l-19 -198q76 112 178.5 169.5t229.5 57.5q293 0 293 -322q0 -91 -22 -201l-198 -1019q-19 -98 -56.5 -173.5 t-91.5 -127t-123.5 -78.5t-151.5 -27h-205z" />
+<glyph unicode="&#x14b;" d="M379 -270h185q93 0 148.5 62.5t79.5 187.5l139 714q12 64 12 116q0 32 -6 63.5t-24 57t-52 41t-90 15.5q-132 0 -219 -91t-120 -263l-123 -633h-184l218 1120h164l-13 -168q69 97 162 146t209 49q85 0 137.5 -24.5t81.5 -64.5t39.5 -91t10.5 -103q0 -76 -18 -170 l-139 -714q-19 -98 -56.5 -173.5t-91.5 -127t-123.5 -78.5t-151.5 -27h-205z" />
+<glyph unicode="&#x14c;" d="M531 1800h598l-29 -148h-598zM480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188 t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5 q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x14d;" d="M469 1495h598l-29 -148h-598zM514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127 q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x150;" d="M766 1859h186l-280 -264h-154zM1085 1859h186l-280 -264h-154zM480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5 q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83 q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x151;" d="M688 1673h189l-302 -376h-135zM1028 1673h197l-324 -376h-135zM514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5 q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x152;" d="M467 0q-108 0 -190 25.5t-136 77.5q-56 54 -81 134.5t-25 186.5q0 62 8 144.5t25 173.5t39 175t47 150q45 120 100.5 200.5t124.5 128.5q137 97 379 97h594l-33 -170h-358l-87 -442h328l-33 -170h-327l-107 -541h369l-33 -170h-604zM539 170l225 1153h-62 q-119 0 -201 -54q-47 -30 -77 -70.5t-53 -92.5q-6 -14 -12 -28.5t-11.5 -31t-12 -37.5t-13.5 -48q-14 -52 -26 -103.5t-24 -112.5q-11 -53 -18.5 -98.5t-13.5 -90.5q-5 -42 -8 -77.5t-3 -62.5q0 -60 15.5 -107t47.5 -79q33 -32 80.5 -46t104.5 -14h62z" />
+<glyph unicode="&#x153;" d="M288 -29q-140 0 -217 83t-77 238q0 26 2 58t6 64q1 13 3.5 30.5t5.5 37t6.5 39.5t6.5 38q5 28 12 58.5t14.5 59.5t14.5 54.5t12 42.5q12 39 29 82t39 82q28 50 63 88.5t83 67.5q91 53 204 53q84 0 145 -34q62 -34 95 -93q59 64 126 95q69 32 147 32q123 0 193 -76 q35 -38 53 -91t18 -117q0 -26 -2.5 -55.5t-5.5 -53.5q-4 -29 -10.5 -69.5t-14.5 -80.5l-16 -90h-502q-5 -23 -8.5 -40.5t-6.5 -34t-5.5 -33.5t-5.5 -38q-5 -29 -7 -47.5t-2 -35.5q0 -42 12.5 -71t36.5 -51q49 -44 133 -44q70 0 142 29q69 28 125 79l-35 -172 q-34 -23 -64.5 -37.5t-60.5 -24.5q-32 -11 -64.5 -16.5t-71.5 -5.5q-96 0 -164 35t-102 98q-59 -65 -129 -99q-71 -34 -156 -34zM309 123q61 0 110 35q29 20 46 46.5t30 55.5q5 11 9 21t8.5 23t9.5 30.5t12 44.5q13 49 23 93t18 88t15.5 89.5t12.5 85.5q9 67 9 101 q0 36 -9 66t-27 51q-36 42 -104 42q-36 0 -63 -9.5t-48 -24.5q-24 -17 -42 -42t-34 -63q-11 -26 -22 -59t-20 -68q-20 -75 -38 -170q-8 -44 -14.5 -80.5t-12.5 -78.5q-5 -37 -7.5 -64t-2.5 -47q0 -79 37 -122q38 -44 104 -44zM1083 653l15 76q3 16 5.5 33.5t3.5 25.5 q2 14 2.5 27.5t0.5 24.5q0 33 -8 63t-25 50q-18 21 -43.5 29.5t-53.5 8.5q-43 0 -75.5 -17t-57.5 -48q-30 -37 -50 -87t-29 -104l-14 -82h329z" />
+<glyph unicode="&#x154;" d="M839 1860h208l-307 -264h-160zM281 1493h416q207 0 320.5 -89t113.5 -264q0 -85 -27 -159.5t-77 -132t-121.5 -95t-159.5 -48.5q35 -6 65.5 -24t50.5 -43q21 -27 45.5 -83t51.5 -147l121 -408h-201l-106 377q-22 78 -45.5 127.5t-53.5 77.5t-69.5 38.5t-94.5 10.5h-192 l-123 -631h-203zM570 797q81 0 147.5 22t113 63.5t72 99.5t25.5 130q0 111 -63 163t-199 52h-213l-102 -530h219z" />
+<glyph unicode="&#x155;" d="M1045 1673h219l-395 -376h-156zM434 1120h164l-20 -219q67 121 173 183.5t241 62.5q146 0 227 -72l-35 -186q-45 45 -104.5 66.5t-131.5 21.5q-85 0 -157.5 -30t-128.5 -85.5t-95.5 -134.5t-58.5 -178l-107 -549h-184z" />
+<glyph unicode="&#x156;" d="M281 1493h416q207 0 320.5 -89t113.5 -264q0 -85 -27 -159.5t-77 -132t-121.5 -95t-159.5 -48.5q35 -6 65.5 -24t50.5 -43q21 -27 45.5 -83t51.5 -147l121 -408h-201l-106 377q-22 78 -45.5 127.5t-53.5 77.5t-69.5 38.5t-94.5 10.5h-192l-123 -631h-203zM570 797 q81 0 147.5 22t113 63.5t72 99.5t25.5 130q0 111 -63 163t-199 52h-213l-102 -530h219zM440 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x157;" d="M434 1120h164l-20 -219q67 121 173 183.5t241 62.5q146 0 227 -72l-35 -186q-45 45 -104.5 66.5t-131.5 21.5q-85 0 -157.5 -30t-128.5 -85.5t-95.5 -134.5t-58.5 -178l-107 -549h-184zM213 -199h239l-254 -345h-146z" />
+<glyph unicode="&#x158;" d="M438 1861h136l139 -178l209 178h151l-264 -266h-213zM281 1493h416q207 0 320.5 -89t113.5 -264q0 -85 -27 -159.5t-77 -132t-121.5 -95t-159.5 -48.5q35 -6 65.5 -24t50.5 -43q21 -27 45.5 -83t51.5 -147l121 -408h-201l-106 377q-22 78 -45.5 127.5t-53.5 77.5 t-69.5 38.5t-94.5 10.5h-192l-123 -631h-203zM570 797q81 0 147.5 22t113 63.5t72 99.5t25.5 130q0 111 -63 163t-199 52h-213l-102 -530h219z" />
+<glyph unicode="&#x159;" d="M591 1673h131l119 -243l225 243h156l-320 -376h-147zM434 1120h164l-20 -219q67 121 173 183.5t241 62.5q146 0 227 -72l-35 -186q-45 45 -104.5 66.5t-131.5 21.5q-85 0 -157.5 -30t-128.5 -85.5t-95.5 -134.5t-58.5 -178l-107 -549h-184z" />
+<glyph unicode="&#x15a;" d="M907 1866h208l-307 -264h-160zM435 -29q-110 0 -210 22.5t-200 67.5l41 209q101 -72 203 -103.5t200 -31.5q88 0 158.5 23.5t119.5 65.5t75 100t26 128q0 40 -10 69.5t-35.5 53t-68 43.5t-107.5 41l-101 33q-93 30 -156.5 62t-102.5 70.5t-55.5 86.5t-16.5 111 q0 109 44 200.5t122.5 157.5t186 103t234.5 37q87 0 175 -19t190 -59l-39 -205q-163 119 -349 119q-83 0 -151 -22t-117.5 -60.5t-76.5 -91.5t-27 -116q0 -38 11 -66t37.5 -50.5t70 -42.5t108.5 -41l121 -39q86 -28 146 -61.5t97.5 -76.5t54 -96.5t16.5 -120.5 q0 -112 -43 -204t-122.5 -158t-193 -102.5t-255.5 -36.5z" />
+<glyph unicode="&#x15b;" d="M900 1680h219l-395 -376h-156zM476 -29q-87 0 -174 17.5t-187 52.5l37 190q187 -106 353 -106q67 0 122.5 16t95.5 43.5t62 64t22 76.5q0 114 -196 162l-28 7l-67 18q-128 34 -189 96t-61 170q0 84 34 152t97.5 116.5t154 74.5t202.5 26q177 0 323 -66l-35 -180 q-72 45 -149 68.5t-162 23.5q-66 0 -118.5 -14t-89 -38.5t-55.5 -58t-19 -72.5q0 -29 11.5 -52t37.5 -43t68 -37t104 -33q16 -5 22 -6l72 -18q120 -30 176.5 -93t56.5 -163q0 -84 -37.5 -156t-106 -125t-164.5 -83t-213 -30z" />
+<glyph unicode="&#x15c;" d="M454 1595l262 266h213l158 -266h-133l-139 178l-209 -178h-152zM883 109q-168 -138 -448 -138q-206 0 -410 90l41 209q99 -69 198.5 -102t210.5 -33q86 0 152 21.5t118 66.5q103 88 103 221q0 79 -44 129q-24 24 -65 44t-112 42l-101 33q-97 32 -157.5 62.5t-99.5 69.5 t-56.5 86t-17.5 115q0 105 42 195.5t123 159.5q83 69 190.5 104.5t232.5 35.5q168 0 364 -78l-39 -205q-164 119 -349 119q-82 0 -151 -21t-118 -61q-49 -39 -76 -92.5t-27 -113.5q0 -39 12 -67.5t37 -50.5q49 -43 178 -84l121 -39q87 -28 143.5 -59t95.5 -74t57 -95.5 t18 -125.5q0 -112 -41.5 -204t-124.5 -160z" />
+<glyph unicode="&#x15d;" d="M417 1297l320 376h147l164 -376h-133l-117 241l-225 -241h-156zM853 82q-71 -54 -167.5 -82.5t-208.5 -28.5q-92 0 -175 16.5t-187 53.5l37 190q105 -58 183 -79q86 -27 172 -27q132 0 216 60q41 29 62.5 66.5t21.5 77.5q0 56 -44.5 92t-151.5 66l-28 7l-67 18 q-131 34 -190.5 97.5t-59.5 170.5q0 81 33 149t98 118q130 100 358 100q179 0 322 -66l-35 -180q-64 43 -146 67.5t-165 24.5q-133 0 -206 -51q-37 -26 -56.5 -61t-19.5 -73q0 -41 24 -70t72 -50q45 -20 125 -43l15 -4h1l6 -2l72 -18q55 -13 100 -36.5t75 -55.5 q30 -31 44 -69.5t14 -90.5q0 -85 -37 -159t-107 -128z" />
+<glyph unicode="&#x15e;" d="M490 1274q-48 -38 -75.5 -91t-27.5 -115q0 -39 12 -67.5t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5q-63 -52 -142.5 -84t-173.5 -45q15 -28 26 -51t17 -40q9 -24 13 -45.5t4 -41.5 q0 -42 -17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -10.5 26.5t-18.5 37.5h-16q-58 0 -108 6t-101 17 q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5q0 101 40.5 192.5t124.5 162.5 q83 70 191 105t232 35q48 0 91 -5t88 -15q48 -11 91.5 -24.5t93.5 -33.5l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60z" />
+<glyph unicode="&#x15f;" d="M525 942q-40 -27 -58 -63t-18 -71q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-57 -44 -129.5 -70.5t-154.5 -35.5q14 -25 23.5 -46.5t17.5 -40.5q17 -45 17 -87 t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -11 26.5t-18 37.5q-82 3 -149 17q-45 9 -92 22.5t-95 30.5l37 190 q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12 t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5z" />
+<glyph unicode="&#x160;" d="M489 1861h136l139 -178l209 178h151l-264 -266h-213zM435 -29q-58 0 -108 6t-101 17q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33 q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5q0 101 40.5 192.5t124.5 162.5q83 70 191 105t232 35q48 0 91 -5t88 -15q48 -11 91.5 -24.5t93.5 -33.5l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60t-75.5 -91t-27.5 -115q0 -39 12 -67.5 t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5t-197 -103.5t-251 -34.5z" />
+<glyph unicode="&#x161;" d="M471 1673h131l119 -243l225 243h156l-320 -376h-147zM477 -29q-48 0 -92.5 4.5t-82.5 12.5q-45 9 -92 22.5t-95 30.5l37 190q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7 l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5q-40 -27 -58 -63t-18 -71 q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-72 -56 -169 -83.5t-207 -27.5z" />
+<glyph unicode="&#x162;" d="M193 1493h1139l-33 -170h-467l-257 -1323h-72l32 -41q39 -45 49 -74q10 -31 10 -64q0 -15 -4 -40q-17 -83 -86 -131q-71 -45 -188 -45q-90 0 -170 24l25 131q33 -18 67 -25t78 -7q125 0 142 92q5 25 5 43q0 59 -38 137h-53l257 1323h-469z" />
+<glyph unicode="&#x163;" d="M552 325q-1 -2 -1 -7q0 -6 -1 -8q-3 -25 -3 -47q0 -45 17 -71t56 -37q37 -12 107 -12h207l-29 -147h-223q-24 0 -31 1q57 -86 57 -159q0 -23 -4 -40q-8 -40 -30.5 -74t-55.5 -57q-67 -45 -187 -45q-91 0 -171 24l26 131q35 -18 67.5 -25t77.5 -7q124 0 141 92l2 21 q0 27 -13 63.5t-41 92.5q-107 33 -142 108q-20 42 -20 100q0 34 4 62l5 34l8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612l-4 -26l-3 -14v0z" />
+<glyph unicode="&#x164;" d="M508 1861h136l139 -178l209 178h151l-264 -266h-213zM629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
+<glyph unicode="&#x165;" d="M1063 1680h219l-208 -376h-156zM682 -4q-89 0 -148 15t-97 41q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47 q0 -67 39 -93q39 -27 141 -27h207l-29 -147h-223z" />
+<glyph unicode="&#x166;" d="M483 577h-265l33 170h265l112 576h-469l33 170h1139l-33 -170h-467l-112 -576h265l-33 -170h-265l-112 -577h-203z" />
+<glyph unicode="&#x167;" d="M667 -4q-103 0 -171 20t-104 63q-24 29 -34 67t-10 86q0 32 3.5 64t10.5 69l45 237h-229l28 142h229l45 233h-299l28 143h299l62 318h184l-62 -318h418l-28 -143h-418l-45 -233h229l-28 -142h-229l-45 -237q-9 -50 -9 -86q0 -58 22 -87q37 -49 155 -49h207l-29 -147h-225 v0z" />
+<glyph unicode="&#x168;" d="M446 1627q35 109 97 164t143 55q34 0 67 -10.5t68 -36.5l35 -26q36 -27 72 -27q42 0 69.5 27t38.5 73h125q-32 -111 -97 -165t-148 -54q-32 0 -60.5 9.5t-61.5 33.5l-34 25l-2 1q-43 32 -80 32q-69 0 -107 -101h-125zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107 t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920 q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
+<glyph unicode="&#x169;" d="M882 1270q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72zM409 -27q-66 0 -118.5 18.5t-89.5 54.5 t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
+<glyph unicode="&#x16a;" d="M531 1800h598l-29 -148h-598zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5 t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
+<glyph unicode="&#x16b;" d="M469 1469h598l-29 -148h-598zM409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168 q-144 -195 -355 -195z" />
+<glyph unicode="&#x16c;" d="M1139 1861q-33 -112 -126 -177t-220 -65q-120 0 -190 61q-35 32 -57 75.5t-33 105.5h114q17 -62 56 -88q20 -14 48 -20.5t69 -6.5q84 0 137.5 28.5t80.5 86.5h121zM679 2q-94 -31 -202 -31q-190 0 -293.5 90t-103.5 254q0 42 10.5 118t24.5 140l178 920h203l-179 -920 l-2 -12l-6 -29q-30 -148 -30 -219q0 -42 14.5 -76t40.5 -56q52 -46 167 -46q45 0 80 7t68 23q65 30 97.5 73t54.5 123q18 61 49 212l178 920h203l-178 -920q-21 -115 -39.5 -181t-49.5 -139q-46 -99 -116 -159t-169 -92z" />
+<glyph unicode="&#x16d;" d="M1098 1584q-31 -140 -120 -213.5t-230 -73.5q-134 0 -206.5 64.5t-72.5 185.5q0 15 1 16v10l2 11h120v-17q0 -64 43.5 -98.5t126.5 -34.5t136 37t81 113h119zM764 168q-74 -98 -162 -146.5t-193 -48.5q-87 0 -150.5 33.5t-98.5 95.5t-35 146q0 33 5.5 89.5t12.5 88.5 l133 694h185l-135 -694l-5 -36l-6 -35q-4 -25 -4 -57q0 -79 47 -122t131 -43q61 0 116 23.5t99 68.5q88 94 121 262l123 633h185l-218 -1120h-164z" />
+<glyph unicode="&#x16e;" d="M760 1352q-57 0 -107 21.5t-87 58.5t-58.5 87t-21.5 108t21.5 108t58.5 87t87 58t107 21t107.5 -21t87.5 -58t58.5 -87t21.5 -108t-21.5 -108t-58.5 -87t-87.5 -58.5t-107.5 -21.5zM760 1475q32 0 59.5 12t48 32t32.5 47.5t12 59.5t-12 59.5t-32.5 48t-48 32.5t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89 q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
+<glyph unicode="&#x16f;" d="M738 1186q-57 0 -107 21.5t-87 58.5t-58.5 87t-21.5 108t21.5 108t58.5 87t87 58t107 21t107.5 -21t87.5 -58t58.5 -87t21.5 -108t-21.5 -108t-58.5 -87t-87.5 -58.5t-107.5 -21.5zM738 1309q32 0 59.5 12t48 32t32.5 47.5t12 59.5t-12 59.5t-32.5 48t-48 32.5t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5 t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
+<glyph unicode="&#x170;" d="M766 1859h186l-280 -264h-154zM1085 1859h186l-280 -264h-154zM478 -29q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46 q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5z" />
+<glyph unicode="&#x171;" d="M688 1648h189l-302 -376h-135zM1028 1648h197l-324 -376h-135zM409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633 h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
+<glyph unicode="&#x172;" d="M1231 1493l-178 -920q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5h-23q-55 -54 -83.5 -101t-28.5 -86q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5 q-131 28 -200 112.5t-69 214.5q0 44 8.5 106t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120 l178 920h203z" />
+<glyph unicode="&#x173;" d="M409 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195zM850 -397 q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h119q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20z" />
+<glyph unicode="&#x174;" d="M737 1868h213l158 -266h-133l-139 178l-209 -178h-152zM145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
+<glyph unicode="&#x175;" d="M737 1646h147l164 -376h-133l-117 241l-225 -241h-156zM92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
+<glyph unicode="&#x176;" d="M735 1868h213l158 -266h-133l-139 178l-209 -178h-152zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#x177;" d="M777 1646h147l164 -376h-133l-117 241l-225 -241h-156zM20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126 q-60 -79 -136 -114.5t-167 -35.5h-148z" />
+<glyph unicode="&#x178;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM508 670l-313 823h202l236 -651l497 651 h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#x179;" d="M907 1866h208l-307 -264h-160zM23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
+<glyph unicode="&#x17a;" d="M940 1646h219l-395 -376h-156zM111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
+<glyph unicode="&#x17b;" d="M783 1627q-16 0 -25.5 11t-6.5 28l27 143q2 11 10 17t19 6h141q16 0 26 -11t7 -28l-28 -143q-2 -11 -10 -17t-19 -6h-141zM23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
+<glyph unicode="&#x17c;" d="M694 1320q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-6 -27 -32 -27h-145zM111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
+<glyph unicode="&#x17d;" d="M539 1861h136l139 -178l209 178h151l-264 -266h-213zM23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
+<glyph unicode="&#x17e;" d="M501 1646h131l119 -243l225 243h156l-320 -376h-147zM111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
+<glyph unicode="&#x192;" d="M203 -426q-26 0 -53 2.5t-53 7.5q-50 10 -97 33v164q27 -17 51 -28.5t48 -19.5q25 -8 49.5 -12t46.5 -4q53 0 91.5 20t67.5 55t50.5 90.5t35.5 135.5l117 687h-252v143h275l49 330q14 92 45 160t80 118q99 100 248 100q48 0 98 -9q48 -9 100 -27v-164q-15 12 -36 24 t-41 19q-17 6 -39.5 10t-48.5 4q-51 0 -89.5 -16.5t-66.5 -45.5q-30 -32 -48 -78t-28 -114l-45 -311h303v-143h-328l-100 -635q-20 -125 -55.5 -223t-86.5 -158q-98 -115 -288 -115z" />
+<glyph unicode="&#x1a0;" d="M1367 1557q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5q-31 0 -56 7q12 -69 12 -154q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60q-398 0 -398 488 q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q227 0 326 -156q32 -22 57.5 -31.5t49.5 -9.5q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133zM725 333q25 47 47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5 t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5q49 0 90 13.5t75 39t62.5 62t53.5 83.5z" />
+<glyph unicode="&#x1a1;" d="M1218 1137q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-20 -109 -70 -170.5t-135 -66.5q1 -10 1 -19.5v-20.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130 t65.5 115.5q81 118 190.5 177t252.5 59q146 0 240 -61.5t132 -182.5q42 1 69.5 28.5t38.5 80.5q5 28 5 51q0 35 -11 74h133zM418 127q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99 t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x1a4;" d="M433 1327q-54 0 -88.5 -50.5t-55.5 -156.5h-175l22 114q24 121 112.5 190t216.5 69h436q233 0 333 -90t100 -240q0 -54 -12 -117q-42 -220 -192 -333t-402 -113h-234l-117 -600h-202zM760 766q142 0 233.5 74.5t118.5 206.5q7 35 7 67q0 104 -64.5 158.5t-185.5 54.5 h-234l-109 -561h234z" />
+<glyph unicode="&#x1af;" d="M1385 1557q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5q-40 0 -73 13l-121 -624q-21 -107 -42 -184t-46 -134t-56 -97t-71 -72q-73 -58 -164.5 -86.5t-195.5 -28.5q-96 0 -170 23.5t-124.5 67.5t-77 107t-26.5 142q0 44 8.5 106 t26.5 156l178 920h203l-179 -920q-1 -6 -1.5 -8t-1 -5t-1.5 -8.5t-4 -19.5q-15 -74 -22.5 -131t-7.5 -89q0 -85 54.5 -131t162.5 -46q37 0 74.5 6t72 20t63.5 36.5t50 55.5q11 18 22 42.5t23 65.5q11 38 23.5 92t25.5 120l178 920h203l-32 -165q10 -2 19 -3.5t18 -1.5 q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133v0z" />
+<glyph unicode="&#x1b0;" d="M1260 1137q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5q-40 0 -75 13l-151 -777h-164l13 168q-144 -195 -355 -195q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694 q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-41 -211q19 -6 38 -6q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133v0z" />
+<glyph unicode="&#x1e6;" d="M529 1861h136l139 -178l209 178h151l-264 -266h-213zM563 -29q-118 0 -208.5 34t-152 100t-93 162t-31.5 220q0 94 17 198t48 208q35 118 80 208t105 165q206 254 524 254q85 0 162.5 -19.5t161.5 -62.5l-41 -207q-129 125 -290 125q-97 0 -183 -41.5t-154 -122.5 q-49 -59 -86 -136t-66 -169q-17 -56 -30 -111t-21.5 -106.5t-13 -98t-4.5 -84.5q0 -168 79 -260t227 -92q66 0 119.5 18.5t90.5 53.5l76 393h-217l30 166h410l-133 -670q-86 -62 -189 -93.5t-217 -31.5z" />
+<glyph unicode="&#x1e7;" d="M471 1673h131l119 -243l225 243h156l-320 -376h-147zM378 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133 t30 134t47.5 128t64 115q37 55 81.5 99t95 74.5t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM507 145q166 0 263 174q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5 t-152 66.5q-57 0 -107 -23t-91 -63t-73 -94.5t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
+<glyph unicode="&#x1fe;" d="M887 1859h208l-307 -264h-160zM14 -6l119 170q-27 58 -40 128t-13 161q0 95 13.5 198t38 203.5t59 193.5t77.5 169q87 153 207 228t274 75q83 0 148 -21.5t119 -64.5l84 125l100 -64l-106 -158q29 -60 43 -131.5t14 -165.5q0 -97 -14 -200.5t-38.5 -204t-59 -193 t-76.5 -166.5q-90 -159 -212 -232t-271 -73q-81 0 -148.5 22t-124.5 70l-94 -133zM905 1274q-29 39 -74 60.5t-105 21.5q-114 0 -193 -84.5t-138 -253.5q-24 -69 -44 -145.5t-34 -150t-22 -139.5t-8 -114q0 -26 1.5 -45.5t2.5 -34.5zM502 135q57 0 105 20.5t88.5 62.5 t75 105.5t65.5 149.5q24 68 43.5 141.5t33 147.5t20.5 145.5t7 135.5q0 20 -0.5 38t-1.5 35l-616 -887q20 -45 67 -69.5t113 -24.5z" />
+<glyph unicode="&#x1ff;" d="M907 1673h219l-395 -376h-156zM47 -20l129 153q-57 94 -57 256q0 140 39.5 275.5t115.5 246.5q80 116 188.5 176t259.5 60q81 0 141 -18t106 -54l112 137l93 -77l-123 -146q32 -51 47.5 -114.5t15.5 -145.5q0 -71 -11 -142t-31 -138t-49 -128.5t-65 -113.5 q-78 -113 -187.5 -174.5t-259.5 -61.5q-81 0 -141 18.5t-112 55.5l-119 -141zM852 938q-30 28 -68 40.5t-81 12.5q-86 0 -157.5 -45.5t-123 -125.5t-80.5 -191t-29 -241q0 -29 1.5 -48.5t4.5 -37.5zM533 127q84 0 154.5 45.5t122.5 126t81 191t29 241.5q0 29 -2 51.5 t-7 42.5l-534 -639q29 -29 68.5 -44t87.5 -15z" />
+<glyph unicode="&#x218;" d="M435 -29q-110 0 -210 22.5t-200 67.5l41 209q101 -72 203 -103.5t200 -31.5q88 0 158.5 23.5t119.5 65.5t75 100t26 128q0 40 -10 69.5t-35.5 53t-68 43.5t-107.5 41l-101 33q-93 30 -156.5 62t-102.5 70.5t-55.5 86.5t-16.5 111q0 109 44 200.5t122.5 157.5t186 103 t234.5 37q87 0 175 -19t190 -59l-39 -205q-163 119 -349 119q-83 0 -151 -22t-117.5 -60.5t-76.5 -91.5t-27 -116q0 -38 11 -66t37.5 -50.5t70 -42.5t108.5 -41l121 -39q86 -28 146 -61.5t97.5 -76.5t54 -96.5t16.5 -120.5q0 -112 -43 -204t-122.5 -158t-193 -102.5 t-255.5 -36.5zM335 -197h239l-254 -345h-146z" />
+<glyph unicode="&#x219;" d="M476 -29q-87 0 -174 17.5t-187 52.5l37 190q187 -106 353 -106q67 0 122.5 16t95.5 43.5t62 64t22 76.5q0 114 -196 162l-28 7l-67 18q-128 34 -189 96t-61 170q0 84 34 152t97.5 116.5t154 74.5t202.5 26q177 0 323 -66l-35 -180q-72 45 -149 68.5t-162 23.5 q-66 0 -118.5 -14t-89 -38.5t-55.5 -58t-19 -72.5q0 -29 11.5 -52t37.5 -43t68 -37t104 -33q16 -5 22 -6l72 -18q120 -30 176.5 -93t56.5 -163q0 -84 -37.5 -156t-106 -125t-164.5 -83t-213 -30zM389 -197h239l-254 -345h-146z" />
+<glyph unicode="&#x21a;" d="M1333 1493l-33 -170h-469l-256 -1323h-20q38 -67 55 -112t17 -86q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 30 -14.5 69t-43.5 93h-65l258 1323h-469l33 170h1140z" />
+<glyph unicode="&#x21b;" d="M559 365q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47q0 -67 39 -93q39 -27 141 -27h207l-29 -147h-203q34 -60 50 -103.5t16 -78.5q0 -47 -18.5 -84t-52 -63.5t-81.5 -40.5t-108 -14q-91 0 -185 30l25 129q81 -38 145 -38q67 0 104.5 30t37.5 84 q0 53 -56 155q-47 7 -81.5 19.5t-60.5 30.5q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612v0z" />
+<glyph unicode="&#x2b9;" d="M605 1638h190l-206 -498h-145z" />
+<glyph unicode="&#x2bb;" d="M504 1174l270 382h154l-172 -382l-41 -207h-252z" />
+<glyph unicode="&#x2bc;" d="M578 1349l40 207h252l-40 -207l-270 -382h-154z" />
+<glyph unicode="&#x2bd;" d="M688 1218q-200 0 -200 177q0 18 1.5 38t6.5 42l49 254h241l-49 -254h-111q-3 -13 -4 -24.5t-1 -22.5q0 -87 90 -87l-23 -123v0z" />
+<glyph unicode="&#x2be;" d="M615 1007q5 31 11 61.5t12 61.5q36 0 69 14.5t59 39t41.5 57.5t15.5 70q0 53 -34.5 87.5t-91.5 34.5l24 123q51 0 92.5 -16.5t71 -46t46 -70t16.5 -88.5q0 -13 -1.5 -26t-3.5 -27q-11 -57 -42 -107.5t-75 -87.5t-98.5 -58.5t-111.5 -21.5z" />
+<glyph unicode="&#x2bf;" d="M819 1007q-51 0 -92.5 17t-71 46.5t-46 70t-16.5 88.5q0 13 1.5 26t3.5 27q11 57 42 107t75 87t98.5 58.5t111.5 21.5l-24 -123q-36 0 -69 -14.5t-58.5 -39.5t-41 -58t-15.5 -69q0 -53 34 -87.5t91 -34.5q-6 -31 -12 -61.5t-11 -61.5z" />
+<glyph unicode="&#x2c0;" d="M511 1341h40q66 0 112 17.5t76 46.5q28 27 44 64t16 74q0 41 -20 70t-61.5 46.5t-103.5 17.5q-48 0 -99.5 -12t-105.5 -36l18 96q52 20 104.5 29.5t106.5 9.5q75 0 129 -16.5t88.5 -44.5t50.5 -66t16 -80q0 -28 -6 -55q-11 -52 -38.5 -93.5t-66.5 -71.5t-87 -49.5 t-101 -28.5l-71 -365h-127z" />
+<glyph unicode="&#x2c1;" d="M582 1259q-46 8 -83 25t-63.5 42.5t-41 59t-14.5 74.5q0 22 4 42q9 51 37 98.5t75.5 83.5t114 58t153.5 22q54 0 102.5 -9.5t93.5 -29.5l-19 -96q-90 48 -189 48q-56 0 -98.5 -13.5t-73.5 -37t-49.5 -55.5t-24.5 -69q-3 -15 -3 -30q0 -36 21 -67q44 -64 163 -64h39 l-87 -447h-128z" />
+<glyph unicode="&#x2c6;" d="M717 1638h147l164 -376h-133l-117 241l-225 -241h-156z" />
+<glyph unicode="&#x2c7;" d="M471 1638h131l119 -243l225 243h156l-320 -376h-147z" />
+<glyph unicode="&#x2c8;" d="M602 1554h136l-107 -555h-136z" />
+<glyph unicode="&#x2c9;" d="M469 1526h598l-29 -148h-598z" />
+<glyph unicode="&#x2cc;" d="M602 252h136l-107 -555h-136z" />
+<glyph unicode="&#x2cd;" d="M133 -209h598l-29 -148h-598z" />
+<glyph unicode="&#x2ce;" d="M551 -208h198l197 -376h-143z" />
+<glyph unicode="&#x2cf;" d="M809 -208h219l-395 -376h-156z" />
+<glyph unicode="&#x2d0;" d="M541 1059h357l-243 -330zM578 330l114 -330h-357z" />
+<glyph unicode="&#x2d1;" d="M470 1059h357l-243 -330z" />
+<glyph unicode="&#x2d8;" d="M748 1321q-135 0 -206 64q-73 64 -73 182v14.5t1 10.5q0 6 2 16h120v-17q0 -64 44 -99q43 -34 128 -34q81 0 133 37q54 39 82 113h119q-31 -139 -121 -214q-89 -73 -229 -73z" />
+<glyph unicode="&#x2d9;" d="M664 1348q-27 0 -27 24q0 6 1 9l29 144q4 27 32 27h145q27 0 27 -24q0 -6 -1 -9l-29 -144q-5 -27 -32 -27h-145v0z" />
+<glyph unicode="&#x2da;" d="M778 1321q-114 0 -194 80t-80 194q0 116 80 196q79 79 194 79q116 0 195 -79q80 -80 80 -196q0 -114 -80 -194t-195 -80zM778 1444q64 0 108 44t44 107q0 64 -44 108t-108 44t-107 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44z" />
+<glyph unicode="&#x2db;" d="M438 -395q-48 0 -87 10t-66 30q-29 22 -41.5 50.5t-12.5 59.5q0 29 9.5 57.5t28.5 58.5q37 60 114 129h119q-62 -59 -93 -109q-32 -51 -32 -89q0 -36 24 -55q22 -19 70 -19q14 0 30.5 1.5t33.5 5.5q32 7 65 23l-25 -133q-20 -6 -36 -9.5t-33 -5.5q-18 -2 -33.5 -3.5 t-34.5 -1.5z" />
+<glyph unicode="&#x2dc;" d="M890 1307q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18z" />
+<glyph unicode="&#x2dd;" d="M688 1638h189l-302 -376h-135zM1028 1638h197l-324 -376h-135z" />
+<glyph unicode="&#x300;" horiz-adv-x="0" d="M-780 1638h198l197 -376h-143z" />
+<glyph unicode="&#x301;" horiz-adv-x="0" d="M-326 1638h219l-395 -376h-156z" />
+<glyph unicode="&#x302;" horiz-adv-x="0" d="M-516 1638h147l164 -376h-133l-117 241l-225 -241h-156z" />
+<glyph unicode="&#x303;" horiz-adv-x="0" d="M-347 1307q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72z" />
+<glyph unicode="&#x304;" horiz-adv-x="0" d="M-764 1526h598l-29 -148h-598z" />
+<glyph unicode="&#x305;" horiz-adv-x="0" d="M-1233 1547h1233v-80h-1233v80z" />
+<glyph unicode="&#x306;" horiz-adv-x="0" d="M-486 1321q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5z" />
+<glyph unicode="&#x307;" horiz-adv-x="0" d="M-561 1552h205l-41 -204h-205z" />
+<glyph unicode="&#x308;" horiz-adv-x="0" d="M-758 1552h203l-39 -202h-203zM-367 1552h203l-39 -202h-203z" />
+<glyph unicode="&#x309;" horiz-adv-x="0" d="M-711 1374q19 6 38.5 15t37 18.5t31.5 19.5t22 17q15 14 28 40t13 52q0 15 -5.5 28.5t-18.5 24t-34.5 16.5t-54.5 6q-35 0 -76.5 -7.5t-77.5 -24.5l25 131q91 24 179 24q210 0 210 -138q0 -16 -3 -32q-1 -2 -1 -5t-1 -5q-6 -32 -22 -61t-39 -54.5t-50.5 -47t-56.5 -37.5 l-17 -88h-148z" />
+<glyph unicode="&#x30a;" horiz-adv-x="0" d="M-455 1321q-57 0 -107 21.5t-87 58.5t-58.5 87t-21.5 108t21.5 108t58.5 87t87 58t107 21t107.5 -21t87.5 -58t58.5 -87t21.5 -108t-21.5 -108t-58.5 -87t-87.5 -58.5t-107.5 -21.5zM-455 1444q32 0 59.5 12t48 32t32.5 47.5t12 59.5t-12 59.5t-32.5 48t-48 32.5 t-59.5 12t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5z" />
+<glyph unicode="&#x30b;" horiz-adv-x="0" d="M-545 1638h189l-302 -376h-135zM-205 1638h197l-324 -376h-135z" />
+<glyph unicode="&#x30c;" horiz-adv-x="0" d="M-762 1638h131l119 -243l225 243h156l-320 -376h-147z" />
+<glyph unicode="&#x30d;" horiz-adv-x="0" d="M-644 1706h136l-86 -444h-136z" />
+<glyph unicode="&#x30e;" horiz-adv-x="0" d="M-848 1706h136l-86 -444h-136zM-440 1706h136l-86 -444h-136z" />
+<glyph unicode="&#x30f;" horiz-adv-x="0" d="M-849 1638h178l132 -376h-135zM-507 1638h170l117 -376h-137z" />
+<glyph unicode="&#x310;" horiz-adv-x="0" d="M-87 1812q-33 -144 -122.5 -215.5t-228.5 -71.5q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -79 65 -113l15 74h205l-15 -76q41 17 69 49.5t48 82.5h119z" />
+<glyph unicode="&#x311;" horiz-adv-x="0" d="M-817 1321q78 287 370 287q72 0 121.5 -17t80.5 -47.5t44.5 -73.5t13.5 -94q0 -27 -3 -55h-119q1 79 -41.5 114.5t-125.5 35.5q-89 0 -142.5 -38t-79.5 -112h-119v0z" />
+<glyph unicode="&#x312;" horiz-adv-x="0" d="M-510 1312h146l-161 -345h-239z" />
+<glyph unicode="&#x313;" horiz-adv-x="0" d="M-763 1341q111 -3 138 134h-111l49 254h241l-49 -254q-50 -257 -292 -257z" />
+<glyph unicode="&#x314;" horiz-adv-x="0" d="M-545 1218q-200 0 -200 177q0 18 1.5 38t6.5 42l49 254h241l-49 -254h-111q-3 -13 -4 -24.5t-1 -22.5q0 -87 90 -87l-23 -123v0z" />
+<glyph unicode="&#x315;" horiz-adv-x="0" d="M-513 1638h219l-208 -376h-156z" />
+<glyph unicode="&#x316;" horiz-adv-x="0" d="M-682 -208h198l197 -376h-143z" />
+<glyph unicode="&#x317;" horiz-adv-x="0" d="M-424 -208h219l-395 -376h-156z" />
+<glyph unicode="&#x318;" horiz-adv-x="0" d="M-672 -590h-176l26 136h176l34 177h136l-95 -490h-136z" />
+<glyph unicode="&#x319;" horiz-adv-x="0" d="M-667 -277h136l-34 -177h176l-27 -136h-176l-34 -177h-136z" />
+<glyph unicode="&#x31a;" horiz-adv-x="0" d="M-486 1768h-354l26 136h490l-95 -490h-136z" />
+<glyph unicode="&#x31b;" horiz-adv-x="0" d="M-628 764q-56 0 -102.5 26t-98.5 82l23 119q55 -48 94 -68t73 -20q42 0 70 27.5t39 81.5q5 28 5 51q0 35 -11 74h133q1 -14 1.5 -26t0.5 -23q0 -27 -2.5 -48t-5.5 -39q-21 -114 -74.5 -175.5t-144.5 -61.5z" />
+<glyph unicode="&#x31c;" horiz-adv-x="0" d="M-749 -502q-47 0 -81 15t-56 40t-33 58t-11 68q0 55 24.5 102.5t62.5 82t85.5 54t94.5 19.5l-19 -98q-26 0 -52 -11t-47.5 -30t-35 -45t-13.5 -57q0 -39 24.5 -69.5t75.5 -30.5l-19 -98v0z" />
+<glyph unicode="&#x31d;" horiz-adv-x="0" d="M-842 -454h177l34 177h136l-34 -177h177l-27 -136h-490z" />
+<glyph unicode="&#x31e;" horiz-adv-x="0" d="M-638 -413h-177l26 136h490l-26 -136h-177l-35 -177h-136z" />
+<glyph unicode="&#x31f;" horiz-adv-x="0" d="M-682 -590h-177l27 136h177l34 177h136l-34 -177h177l-27 -136h-177l-34 -177h-136z" />
+<glyph unicode="&#x320;" horiz-adv-x="0" d="M-848 -277h490l-27 -136h-490z" />
+<glyph unicode="&#x321;" horiz-adv-x="0" d="M-893 -270h185q94 0 148.5 63t78.5 187l29 148h185l-29 -148q-19 -98 -56.5 -173.5t-91.5 -127t-123.5 -78.5t-151.5 -27h-205z" />
+<glyph unicode="&#x322;" horiz-adv-x="0" d="M-888 -426q-137 0 -207.5 71.5t-70.5 208.5q0 29 3 60t10 66l29 148h185l-29 -148q-5 -27 -7.5 -50.5t-2.5 -44.5q0 -155 141 -155h185l-31 -156h-205v0z" />
+<glyph unicode="&#x323;" horiz-adv-x="0" d="M-905 -209h205l-39 -204h-205z" />
+<glyph unicode="&#x324;" horiz-adv-x="0" d="M-1098 -210h203l-40 -202h-203zM-706 -210h202l-40 -202h-202z" />
+<glyph unicode="&#x325;" horiz-adv-x="0" d="M-863 -502q-41 0 -73.5 13.5t-55 37.5t-35 57t-12.5 72q0 56 24 103.5t63 82t87.5 54t96.5 19.5q40 0 72.5 -13.5t56 -37.5t36 -57t12.5 -72q0 -56 -24 -103t-63 -82t-87.5 -54.5t-97.5 -19.5zM-843 -404q27 0 54 11t49 30t35.5 45t13.5 57q0 43 -27 71.5t-72 28.5 q-26 0 -52.5 -10.5t-48 -30t-35 -46t-13.5 -57.5q0 -43 25.5 -71t70.5 -28z" />
+<glyph unicode="&#x326;" horiz-adv-x="0" d="M-898 -197h239l-254 -345h-146z" />
+<glyph unicode="&#x327;" horiz-adv-x="0" d="M-867 -395q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 30 -14.5 69t-43.5 93h119q38 -67 55 -112t17 -86q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5z" />
+<glyph unicode="&#x328;" horiz-adv-x="0" d="M-787 -395q-98 0 -151.5 40t-53.5 110q0 56 37 115.5t115 129.5h119q-61 -58 -93 -108t-32 -92q0 -35 24 -53.5t72 -18.5q29 0 62 7.5t65 22.5l-25 -133q-69 -20 -139 -20z" />
+<glyph unicode="&#x329;" horiz-adv-x="0" d="M-641 -209h136l-87 -444h-136z" />
+<glyph unicode="&#x32a;" horiz-adv-x="0" d="M-860 -209h551l-64 -330h-137l38 194h-277l-38 -194h-137z" />
+<glyph unicode="&#x32b;" horiz-adv-x="0" d="M-820 -455q-186 0 -186 205q0 35 6 77q1 1 1 5h117q-1 -10 -1.5 -19.5t-0.5 -18.5q0 -112 90 -112q102 0 146 150h118q-1 -8 -1.5 -15.5t-0.5 -15.5q0 -60 26 -89.5t62 -29.5q41 0 83 37.5t65 112.5h118q-36 -148 -111 -217.5t-180 -69.5q-116 0 -159 82 q-76 -82 -192 -82z" />
+<glyph unicode="&#x32c;" horiz-adv-x="0" d="M-1101 -109h139l132 -245l229 245h139l-319 -376h-147z" />
+<glyph unicode="&#x32d;" horiz-adv-x="0" d="M-855 -109h147l173 -376h-139l-134 245l-227 -245h-139z" />
+<glyph unicode="&#x32e;" horiz-adv-x="0" d="M-838 -487q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5z" />
+<glyph unicode="&#x32f;" horiz-adv-x="0" d="M-1168 -485q78 287 370 287q72 0 121.5 -17t80.5 -47.5t44.5 -73.5t13.5 -94q0 -27 -3 -55h-119v13q0 66 -38.5 101.5t-125.5 35.5q-89 0 -143.5 -38t-81.5 -112h-119v0z" />
+<glyph unicode="&#x330;" horiz-adv-x="0" d="M-699 -487q-34 0 -69 13.5t-76 55.5l-47 49q-36 37 -74 37q-42 0 -64 -40t-30 -113h-125q17 134 72.5 208t150.5 74q40 0 74 -15.5t72 -53.5l47 -47q20 -20 35 -29.5t35 -9.5q81 0 98 155h125q-18 -140 -73.5 -212t-150.5 -72z" />
+<glyph unicode="&#x331;" horiz-adv-x="0" d="M-1100 -209h598l-29 -148h-598z" />
+<glyph unicode="&#x332;" horiz-adv-x="0" d="M-1233 -403h1233v-80h-1233v80z" />
+<glyph unicode="&#x333;" horiz-adv-x="0" d="M-1233 -163h1233v-80h-1233v80zM-1233 -403h1233v-80h-1233v80z" />
+<glyph unicode="&#x334;" horiz-adv-x="0" d="M-1139 666q45 30 86 51.5t81.5 35.5t80.5 20.5t83 6.5q25 0 49 -2.5t49.5 -8.5t54 -16.5t62.5 -25.5q6 -3 8.5 -4t4 -2t5 -3t12.5 -6q56 -28 101.5 -41.5t94.5 -13.5q72 0 146 30t161 93l-34 -174q-165 -114 -314 -114q-51 0 -98.5 12.5t-99.5 38.5q-5 2 -6.5 3t-3.5 2 t-6.5 3l-13.5 6q-36 16 -64 26.5t-52.5 17.5t-48 10t-50.5 3q-81 0 -157 -28t-165 -94z" />
+<glyph unicode="&#x335;" horiz-adv-x="0" d="M-1091 616h920v-164h-920v164z" />
+<glyph unicode="&#x336;" horiz-adv-x="0" d="M-1233 616h1233v-164h-1233v164z" />
+<glyph unicode="&#x337;" horiz-adv-x="0" d="M-1297 -20l1273 1232l78 -77l-1274 -1231z" />
+<glyph unicode="&#x338;" horiz-adv-x="0" d="M-1369 0l1395 1559l86 -74l-1391 -1555z" />
+<glyph unicode="&#x339;" horiz-adv-x="0" d="M-950 -404q25 0 51.5 11t48.5 30t35.5 45t13.5 57q0 39 -25 69.5t-76 30.5l19 98q46 0 80.5 -15t57 -40t33.5 -57.5t11 -67.5q0 -56 -24.5 -103t-63 -82t-86.5 -54.5t-94 -19.5z" />
+<glyph unicode="&#x33a;" horiz-adv-x="0" d="M-860 -54h137l-38 -194h277l38 194h137l-64 -330h-551z" />
+<glyph unicode="&#x33b;" horiz-adv-x="0" d="M-839 -209h551l-106 -550h-551zM-505 -623l54 278h-277l-54 -278h277z" />
+<glyph unicode="&#x33c;" horiz-adv-x="0" d="M-1055 -455q36 148 111 217.5t180 69.5q116 0 159 -82q76 82 192 82q186 0 186 -205q0 -35 -6 -77q-1 -1 -1 -5h-117q1 10 1.5 19.5t0.5 18.5q0 112 -90 112q-103 0 -146 -150h-118q1 8 1.5 15.5t0.5 15.5q0 60 -26 89.5t-62 29.5q-41 0 -83 -37.5t-65 -112.5h-118v0z " />
+<glyph unicode="&#x33d;" horiz-adv-x="0" d="M-862 1324l149 125l-100 125l114 97l101 -126l150 126l77 -97l-149 -125l100 -125l-114 -96l-101 125l-150 -125z" />
+<glyph unicode="&#x33e;" horiz-adv-x="0" d="M-787 1328q42 1 71.5 5t49.5 11q45 16 45 44q0 8 -6 20t-23 28l-47 43q-24 24 -33.5 44t-9.5 40q0 5 0.5 10t1.5 10q7 40 32.5 70.5t66.5 50.5t95.5 30.5t119.5 11.5l-22 -110q-82 -1 -121 -15q-45 -17 -45 -45q0 -8 6 -20t23 -28l47 -43q24 -24 33.5 -44t9.5 -40 q0 -5 -0.5 -10t-1.5 -10q-7 -40 -32.5 -70.5t-66.5 -50.5t-95.5 -30.5t-119.5 -11.5z" />
+<glyph unicode="&#x33f;" horiz-adv-x="0" d="M0 1307v-80h-1233v80h1233z" />
+<glyph unicode="&#x358;" horiz-adv-x="0" d="M90 1552h205l-41 -204h-205z" />
+<glyph unicode="&#x361;" horiz-adv-x="0" d="M-1500 1520q47 240 566 300q234 27 351 27q28 0 77 -1t110 -4.5t129.5 -11t136 -21.5t129 -35t108.5 -51t75 -70.5t28 -93.5q0 -22 -4 -39h-118q-101 142 -363 165q-141 13 -224 19t-111 6q-18 0 -68 -1t-119 -6.5t-149.5 -17t-160.5 -32.5t-152 -53.5t-123 -79.5h-118v0 z" />
+<glyph unicode="&#x384;" d="M907 1638h219l-395 -376h-156z" />
+<glyph unicode="&#x385;" d="M1008 1896h219l-395 -376h-156zM439 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM870 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143z" />
+<glyph unicode="&#x386;" d="M457 1638h219l-395 -376h-156zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x388;" d="M207 1638h219l-395 -376h-156zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x389;" d="M157 1638h219l-395 -376h-156zM283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
+<glyph unicode="&#x38a;" d="M207 1638h219l-395 -376h-156zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x38c;" d="M357 1638h219l-395 -376h-156zM480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129 q-85 -128 -196 -188t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5 t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x38e;" d="M-8 1638h219l-395 -376h-156zM496 650q10 49 14.5 102t4.5 108q0 74 -8.5 145.5t-24.5 131t-39.5 102t-54.5 58.5q-72 35 -149 35q-40 0 -82 -9l33 170q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q263 -48 258 -446q191 393 430 446q28 7 59 7q35 0 66 -9.5t54.5 -28 t37 -45.5t13.5 -62q0 -27 -9.5 -59t-30.5 -69q-20 -34 -51 -50.5t-63 -16.5q-25 0 -48 9t-40.5 26.5t-27 43.5t-6.5 61q-43 -26 -83 -69t-76.5 -96.5t-68.5 -115t-57.5 -124.5t-44.5 -125t-30 -117l-126 -650h-203z" />
+<glyph unicode="&#x38f;" d="M383 1638h219l-395 -376h-156zM-33 172h245q-69 94 -102.5 194.5t-33.5 218.5q0 92 21 197q30 154 91.5 279.5t147.5 214t193.5 136.5t229.5 48q101 0 179 -33t131 -94.5t80.5 -149.5t27.5 -198q0 -95 -21 -203q-18 -94 -47.5 -176.5t-72.5 -156.5t-100.5 -142.5 t-131.5 -134.5h248l-34 -172h-463l34 172q67 37 126.5 99.5t108 144t84.5 179t56 204.5q8 47 12.5 90t4.5 82q0 153 -63.5 238t-189.5 85q-76 0 -144 -32.5t-123.5 -95.5t-97.5 -155.5t-66 -211.5q-24 -117 -24 -222q0 -140 40 -245.5t117 -159.5l-34 -172h-463z" />
+<glyph unicode="&#x390;" d="M1008 1896h219l-395 -376h-156zM439 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM870 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM746 -5 q-145 0 -213.5 61t-68.5 193q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110z" />
+<glyph unicode="&#x391;" d="M639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x392;" d="M313 1493h443q204 0 307.5 -79t103.5 -236q0 -76 -24 -141t-68 -114.5t-107 -81.5t-141 -42q136 -27 197 -108t61 -209q0 -110 -41 -199t-119 -152t-191.5 -97t-258.5 -34h-452zM639 877q75 0 135 18.5t102 54t64.5 85.5t22.5 113q0 94 -55.5 136.5t-180.5 42.5h-244 l-88 -450h244zM506 166q92 0 162.5 22.5t118.5 65t73 103t25 135.5q0 116 -65 168.5t-214 52.5h-241l-107 -547h248z" />
+<glyph unicode="&#x393;" d="M360 1493h924l-33 -170h-721l-257 -1323h-203z" />
+<glyph unicode="&#x394;" d="M640 1493h245l167 -1493h-1159zM827 170l-99 1145l-545 -1145h644z" />
+<glyph unicode="&#x395;" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x396;" d="M23 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
+<glyph unicode="&#x397;" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
+<glyph unicode="&#x398;" d="M26 501q0 90 17 175q38 196 146 360.5t260.5 260.5t319.5 96q140 0 240.5 -68.5t153 -188t52.5 -271.5q0 -86 -18 -181q-40 -205 -150 -368t-261.5 -254t-310.5 -91q-138 0 -239.5 68.5t-155.5 189t-54 272.5zM995 685q17 90 17 171q0 158 -69 255t-218 97 q-130 0 -228.5 -74.5t-161 -194.5t-89.5 -260q-17 -90 -17 -167q0 -161 71.5 -258.5t217.5 -97.5q125 0 223 72t162 192t92 265zM403 764h467l-33 -170h-467z" />
+<glyph unicode="&#x399;" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x39a;" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
+<glyph unicode="&#x39b;" d="M640 1493h245l167 -1493h-209l-115 1315l-626 -1315h-209z" />
+<glyph unicode="&#x39c;" d="M229 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
+<glyph unicode="&#x39d;" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
+<glyph unicode="&#x39e;" d="M283 1493h959l-33 -170h-959zM367 881h553l-33 -170h-553zM26 170h959l-33 -170h-959z" />
+<glyph unicode="&#x39f;" d="M480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x3a0;" d="M283 1493h959l-290 -1493h-203l257 1323h-553l-257 -1323h-203z" />
+<glyph unicode="&#x3a1;" d="M342 1493h440q205 0 313.5 -91t108.5 -280q0 -117 -41.5 -213t-119 -165t-188.5 -106.5t-251 -37.5h-233l-117 -600h-203zM637 766q82 0 149 25t114.5 70.5t73 109t25.5 139.5q0 112 -61 164.5t-193 52.5h-233l-109 -561h234z" />
+<glyph unicode="&#x3a3;" d="M9 170l566 577l-342 576l33 170h1013l-33 -170h-802l343 -576l-567 -577h802l-33 -170h-1013z" />
+<glyph unicode="&#x3a4;" d="M629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
+<glyph unicode="&#x3a5;" d="M496 650q10 49 14.5 102t4.5 108q0 74 -8.5 145.5t-24.5 131t-39.5 102t-54.5 58.5q-72 35 -149 35q-40 0 -82 -9l33 170q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q263 -48 258 -446q191 393 430 446q28 7 59 7q35 0 66 -9.5t54.5 -28t37 -45.5t13.5 -62 q0 -27 -9.5 -59t-30.5 -69q-20 -34 -51 -50.5t-63 -16.5q-25 0 -48 9t-40.5 26.5t-27 43.5t-6.5 61q-43 -26 -83 -69t-76.5 -96.5t-68.5 -115t-57.5 -124.5t-44.5 -125t-30 -117l-126 -650h-203z" />
+<glyph unicode="&#x3a6;" d="M255 170h147l22 116q-73 8 -132 29.5t-101 60t-65 95.5t-23 137q0 31 3 65t11 72q23 118 68.5 201.5t108.5 137.5t141.5 83t167.5 38l23 118h-147l33 170h497l-33 -170h-147l-23 -118q73 -8 132.5 -30t101.5 -61t65 -97t23 -137q0 -30 -3 -63.5t-11 -71.5 q-23 -117 -68 -200t-108 -137.5t-142 -83.5t-169 -38l-22 -116h147l-33 -170h-497zM569 1029q-37 -8 -71 -22.5t-59 -35.5q-27 -24 -49.5 -60.5t-38.5 -80t-24.5 -90t-8.5 -89.5q0 -41 8.5 -74.5t25.5 -56.5q17 -21 44.5 -35.5t62.5 -22.5zM662 462q37 8 71 22.5t59 35.5 q27 23 49.5 60t38 80.5t24 90.5t8.5 90q0 41 -8 74.5t-25 55.5q-17 21 -44.5 35.5t-62.5 22.5z" />
+<glyph unicode="&#x3a7;" d="M530 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
+<glyph unicode="&#x3a8;" d="M255 170h147l42 214q-172 32 -239 183q-46 104 -46 260q0 140 36 323l67 343h203l-67 -343q-36 -185 -36 -310q0 -96 21 -159q28 -86 95 -121l181 933h203l-181 -933q81 35 142 121q53 73 94 192t72 277l67 343h203l-67 -343q-39 -202 -98.5 -345.5t-137.5 -237.5 q-128 -152 -309 -183l-42 -214h147l-33 -170h-497z" />
+<glyph unicode="&#x3a9;" d="M74 172h245q-122 132 -178 278q-55 143 -55 333q0 309 144 494q71 91 166.5 137t217.5 46q125 0 221 -47t166 -136q144 -183 144 -494q0 -190 -55 -333q-29 -75 -73.5 -143.5t-105.5 -134.5h248v-172h-463v172q120 76 187 241q33 81 50 176t17 201q0 116 -21.5 210 t-67.5 162q-43 63 -105 97.5t-140 34.5q-82 0 -142.5 -36t-101.5 -96q-44 -65 -66.5 -157t-22.5 -215q0 -106 17 -201t50 -176q35 -85 82 -144.5t105 -96.5v-172h-463v172z" />
+<glyph unicode="&#x3aa;" d="M506 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q16 0 22.5 -9t3.5 -24l-29 -143q-6 -27 -32 -27h-142zM897 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x3ab;" d="M506 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q16 0 22.5 -9t3.5 -24l-29 -143q-6 -27 -32 -27h-142zM897 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM496 650q10 49 14.5 102t4.5 108 q0 74 -8.5 145.5t-24.5 131t-39.5 102t-54.5 58.5q-72 35 -149 35q-40 0 -82 -9l33 170q19 6 42 8.5t49 2.5q29 0 63.5 -3t72.5 -11q263 -48 258 -446q191 393 430 446q28 7 59 7q35 0 66 -9.5t54.5 -28t37 -45.5t13.5 -62q0 -27 -9.5 -59t-30.5 -69q-20 -34 -51 -50.5 t-63 -16.5q-25 0 -48 9t-40.5 26.5t-27 43.5t-6.5 61q-43 -26 -83 -69t-76.5 -96.5t-68.5 -115t-57.5 -124.5t-44.5 -125t-30 -117l-126 -650h-203z" />
+<glyph unicode="&#x3ac;" d="M917 1673h219l-395 -376h-156zM396 -25q-165 0 -256 100.5t-91 291.5q0 87 21 192q30 150 87.5 259.5t131.5 181t159.5 107.5t171.5 39h17q68 0 122 -21.5t90.5 -62t55 -100t16.5 -135.5l156 293h164l-323 -607l-3 -219q0 -24 8 -48.5t20.5 -44.5t29 -32.5t32.5 -12.5h89 l-30 -156h-111q-47 0 -91.5 23t-70.5 61q-16 22 -24 52.5t-9 77.5q-30 -48 -63.5 -91.5t-76.5 -76.5t-97.5 -52t-124.5 -19zM421 127q60 0 121 51t120 162l96 181l1 231q0 65 -12 110.5t-33 74t-49 41.5t-59 13q-52 0 -106.5 -30.5t-96.5 -81.5q-32 -38 -60.5 -94t-50 -121 t-34.5 -134.5t-13 -133.5q0 -45 7 -86.5t23 -75.5q23 -50 61 -78.5t85 -28.5z" />
+<glyph unicode="&#x3ad;" d="M947 1673h219l-395 -376h-156zM544 -29q-109 0 -193.5 21t-139.5 67q-45 38 -64.5 86t-19.5 99q0 35 8 69.5t23 66.5t36 59.5t46 48.5l36 30q67 54 158 74q-14 3 -31 8.5t-29 11.5q-16 8 -35.5 23t-36 37.5t-27.5 52t-11 66.5q0 10 1 20t3 21q11 66 52.5 121.5t106 95 t149 61.5t181.5 22q70 0 152 -12t188 -36l-35 -179q-47 16 -94.5 28t-91.5 19.5t-82.5 10.5t-66.5 2l-31 -1q-38 -2 -76.5 -15t-66.5 -30l-44 -28q-17 -14 -26 -30t-14 -40q-3 -14 -3 -26q0 -17 11 -33t43 -38q38 -26 79 -40t98 -14h127l-32 -163h-126q-55 0 -115.5 -18 t-108.5 -45t-71.5 -58t-30.5 -65q-2 -6 -3.5 -18.5t-1.5 -24.5q0 -53 58 -99q4 -2 7 -5t7 -5q32 -23 77.5 -34t99.5 -11q20 0 34 1.5t30 3.5l128 29l15 3q20 4 45 9.5t50 12t46.5 12.5t35.5 12l-36 -181q-99 -27 -198 -41t-190 -14z" />
+<glyph unicode="&#x3ae;" d="M946 1673h219l-395 -376h-156zM890 694q6 32 9.5 60.5t3.5 54.5q0 93 -43.5 135.5t-130.5 42.5q-129 0 -216.5 -89.5t-121.5 -264.5l-123 -633h-184l218 1120h164l-13 -168q69 97 162 146t208 49q270 0 270 -284q0 -75 -18 -169l-218 -1120h-185z" />
+<glyph unicode="&#x3af;" d="M887 1648h219l-395 -376h-156zM716 -5q-145 0 -213.5 61t-68.5 193q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110z" />
+<glyph unicode="&#x3b0;" d="M1017 1888h219l-395 -376h-156zM449 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM885 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM485 0 q-137 0 -203 62.5t-66 194.5q0 33 4 70t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5t-68 155.5h186q36 -62 58 -141t22 -176 q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
+<glyph unicode="&#x3b1;" d="M396 -25q-165 0 -256 100.5t-91 291.5q0 87 21 192q30 150 87.5 259.5t131.5 181t159.5 107.5t171.5 39h17q68 0 122 -21.5t90.5 -62t55 -100t16.5 -135.5l156 293h164l-323 -607l-3 -219q0 -24 8 -48.5t20.5 -44.5t29 -32.5t32.5 -12.5h89l-30 -156h-111q-47 0 -91.5 23 t-70.5 61q-16 22 -24 52.5t-9 77.5q-30 -48 -63.5 -91.5t-76.5 -76.5t-97.5 -52t-124.5 -19zM421 127q60 0 121 51t120 162l96 181l1 231q0 65 -12 110.5t-33 74t-49 41.5t-59 13q-52 0 -106.5 -30.5t-96.5 -81.5q-32 -38 -60.5 -94t-50 -121t-34.5 -134.5t-13 -133.5 q0 -45 7 -86.5t23 -75.5q23 -50 61 -78.5t85 -28.5z" />
+<glyph unicode="&#x3b2;" d="M258 1113q23 120 75 207.5t121 143.5t149 83t158 27q74 0 142 -22.5t119.5 -65.5t82.5 -105t31 -141q0 -14 -1 -28t-3 -28q-8 -56 -29.5 -113.5t-54 -108t-73.5 -90.5t-88 -62q114 -23 167.5 -87t53.5 -170q0 -23 -2.5 -48t-7.5 -52q-20 -113 -70 -201t-124.5 -148.5 t-171 -92.5t-209.5 -32q-32 0 -63 3.5t-64.5 13t-71.5 27t-84 46.5l-96 -495h-185zM293 342q12 -35 41.5 -64.5t71 -51t90.5 -33.5t100 -12q53 0 105 14.5t94.5 47t73 83.5t41.5 124q2 14 3 27t1 25q0 53 -20 92t-63 65t-109.5 39t-160.5 13h-32t-33 -1l33 170 q7 0 13.5 -0.5t13.5 -0.5q96 0 168 27.5t122 72.5q54 47 80 105t26 113q0 45 -17 80t-45.5 58.5t-66 36t-78.5 12.5q-47 0 -95 -16.5t-89.5 -50.5t-73 -86t-45.5 -124z" />
+<glyph unicode="&#x3b3;" d="M445 0l-139 836q-21 126 -115 126h-49l31 158h70q193 0 225 -176l122 -685l493 861h191l-639 -1120l-83 -426h-190z" />
+<glyph unicode="&#x3b4;" d="M502 -29q-189 0 -288 98t-99 295q0 88 21 195q28 144 80.5 253t127.5 184q16 16 37.5 33.5t50.5 37.5q-8 5 -23 19t-27 30q-18 23 -27.5 49t-9.5 57q0 11 1.5 22.5t3.5 24.5q13 69 55 124.5t107.5 94.5t152 60t188.5 21q38 0 76.5 -3t62.5 -9l144 -36l-34 -173 q-61 24 -136 40t-156 14l-32 -1q-74 -1 -142 -45l-44 -28q-23 -17 -33 -43.5t-10 -49.5q0 -17 5 -29q5 -10 17 -22t32 -23q16 -8 43 -10.5t83 -3.5q195 -5 291 -103.5t96 -287.5q0 -89 -21 -197q-28 -143 -80 -252.5t-127 -184t-171.5 -113t-214.5 -38.5zM531 127 q138 0 232 106t137 326q10 48 14.5 91t4.5 81q0 131 -55 195.5t-164 64.5q-144 0 -236.5 -112t-132.5 -320q-9 -48 -14 -90.5t-5 -80.5q0 -128 54 -194.5t165 -66.5z" />
+<glyph unicode="&#x3b5;" d="M544 -29q-109 0 -193.5 21t-139.5 67q-45 38 -64.5 86t-19.5 99q0 35 8 69.5t23 66.5t36 59.5t46 48.5l36 30q67 54 158 74q-14 3 -31 8.5t-29 11.5q-16 8 -35.5 23t-36 37.5t-27.5 52t-11 66.5q0 10 1 20t3 21q11 66 52.5 121.5t106 95t149 61.5t181.5 22q70 0 152 -12 t188 -36l-35 -179q-47 16 -94.5 28t-91.5 19.5t-82.5 10.5t-66.5 2l-31 -1q-38 -2 -76.5 -15t-66.5 -30l-44 -28q-17 -14 -26 -30t-14 -40q-3 -14 -3 -26q0 -17 11 -33t43 -38q38 -26 79 -40t98 -14h127l-32 -163h-126q-55 0 -115.5 -18t-108.5 -45t-71.5 -58t-30.5 -65 q-2 -6 -3.5 -18.5t-1.5 -24.5q0 -53 58 -99q4 -2 7 -5t7 -5q32 -23 77.5 -34t99.5 -11q20 0 34 1.5t30 3.5l128 29l15 3q20 4 45 9.5t50 12t46.5 12.5t35.5 12l-36 -181q-99 -27 -198 -41t-190 -14z" />
+<glyph unicode="&#x3b6;" d="M595 -430q8 38 15 75.5t14 75.5q34 -3 63 7.5t50.5 27t35 37.5t16.5 39q3 15 3 31q0 44 -24 76t-73 32q-130 0 -226.5 32t-160 89t-94.5 135t-31 169q0 115 48 244.5t142.5 258.5t234.5 251t323 221h-532l36 185h870l-36 -185q-849 -415 -887 -837q-3 -35 -3 -65 q0 -342 346 -342q58 0 104 -16t78 -44.5t49 -68.5t17 -89q0 -27 -6 -57q-12 -57 -41 -108.5t-75.5 -90t-110.5 -61t-145 -22.5z" />
+<glyph unicode="&#x3b7;" d="M890 694q6 32 9.5 60.5t3.5 54.5q0 93 -43.5 135.5t-130.5 42.5q-129 0 -216.5 -89.5t-121.5 -264.5l-123 -633h-184l218 1120h164l-13 -168q69 97 162 146t208 49q270 0 270 -284q0 -75 -18 -169l-218 -1120h-185z" />
+<glyph unicode="&#x3b8;" d="M497 -29q-180 0 -271.5 116t-91.5 342q0 134 33 307q37 190 95.5 330.5t138.5 237.5q161 196 392 196q183 0 274.5 -117t91.5 -343q0 -135 -33 -304q-37 -190 -96.5 -333t-139.5 -239t-179 -144.5t-214 -48.5zM947 828q9 56 14 107t5 98q0 70 -11.5 127.5t-36 97.5 t-63 62t-91.5 22q-70 0 -129 -38t-107 -106t-84.5 -162.5t-61.5 -207.5h565zM528 129q70 0 130 38.5t108 107t84.5 163t60.5 206.5h-565q-9 -56 -14 -107t-5 -97q0 -71 11.5 -128.5t36 -98t62.5 -62.5t91 -22z" />
+<glyph unicode="&#x3b9;" d="M756 -5q-145 0 -213.5 61t-68.5 193q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110v0z" />
+<glyph unicode="&#x3ba;" d="M315 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
+<glyph unicode="&#x3bb;" d="M666 1074l-35 198q-22 126 -177 126h-49l31 158l69 -2q273 -8 303 -173l248 -1381h-195l-153 828l-547 -828h-195z" />
+<glyph unicode="&#x3bc;" d="M262 1120h187l-136 -696q-12 -62 -12 -105q0 -91 54 -139.5t157 -48.5q138 0 219.5 82.5t114.5 253.5l127 653h186l-168 -862q-3 -18 -4.5 -31t-1.5 -24q0 -62 49 -62q7 0 25 5q14 4 47 18l-29 -148q-40 -22 -77 -33.5t-70 -11.5q-67 0 -106.5 42.5t-39.5 115.5 q-54 -82 -122.5 -120t-167.5 -38q-184 0 -248 166l-109 -563h-176z" />
+<glyph unicode="&#x3bd;" d="M225 1120h198l106 -940q72 62 139.5 132.5t122 142t92.5 139t51 123.5q5 17 8 42.5t3 57.5q0 61 -18.5 139t-70.5 164h186q20 -35 35.5 -75.5t26.5 -83.5t16.5 -86.5t5.5 -83.5q0 -42 -6 -76q-11 -62 -44 -128t-80.5 -132.5t-105.5 -131.5t-118.5 -123.5t-119 -109.5 t-107.5 -90h-196z" />
+<glyph unicode="&#x3be;" d="M580 -430q8 38 15 75.5t14 75.5q34 -3 63 7.5t50.5 27t35 37.5t16.5 39q3 15 3 31q0 44 -24 76t-73 32q-150 0 -255 27.5t-171.5 73.5t-97 107t-30.5 128q0 72 32 147t88.5 141t134 119t169.5 82q-61 8 -104.5 28.5t-72 50.5t-42 67t-13.5 78q0 51 20 103.5t56.5 100 t89 86t118.5 61.5h-208l36 185h789l-36 -185q-170 0 -297.5 -24t-212.5 -62.5t-127.5 -87t-42.5 -97.5q0 -42 30.5 -80.5t91 -69t151 -49.5t211.5 -21l-33 -170q-160 -11 -279 -46.5t-198 -85t-118 -108t-39 -115.5q0 -45 24.5 -86t73.5 -72.5t122 -50t170 -19.5 q58 0 104 -16t78 -44.5t49 -68.5t17 -89q0 -27 -6 -57q-12 -57 -41 -108.5t-75.5 -90t-110.5 -61t-145 -22.5z" />
+<glyph unicode="&#x3bf;" d="M514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99 t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x3c0;" d="M1027 -39q-114 0 -160 66q-23 32 -34.5 90t-11.5 151v684h-428v-952h-180v952h-143v148h1073v-148h-141v-704q0 -35 5.5 -60.5t19.5 -42.5q12 -16 30 -24t45 -8q18 0 41 3q10 1 14.5 1.5t6.5 0.5h3.5t4.5 1v-133q-32 -13 -72 -19q-38 -6 -73 -6z" />
+<glyph unicode="&#x3c1;" d="M185 540q31 160 85 275t127 188.5t163.5 108.5t194.5 35q187 0 280 -103t93 -290q0 -45 -5.5 -95t-16.5 -104q-29 -140 -80.5 -249t-122 -183.5t-157.5 -113t-186 -38.5q-105 0 -172.5 43t-95.5 127l-110 -567h-185zM562 127q71 0 126 29t96 80q33 41 60 100.5 t46.5 126.5t30.5 137t11 133q0 44 -5.5 82t-17.5 67q-23 56 -68.5 82.5t-111.5 26.5q-131 0 -221.5 -107t-133.5 -325q-10 -50 -14.5 -94t-4.5 -82q0 -129 52 -192.5t155 -63.5z" />
+<glyph unicode="&#x3c2;" d="M523 -430q7 38 14 75.5t15 75.5q34 -3 62.5 7.5t50 27t35 37.5t17.5 39q3 18 3 36q0 40 -21 68.5t-76 34.5q-39 4 -88 11.5t-100 23t-100 43t-87 72t-61 108.5t-23 154q0 39 4.5 82.5t15.5 93.5q30 142 89.5 251.5t144.5 184.5t192.5 113.5t233.5 38.5q45 0 85 -5 t77 -15.5t72 -27t70 -38.5l-38 -193q-57 62 -124 92.5t-160 30.5q-91 0 -165 -29t-130.5 -84.5t-94.5 -136t-58 -182.5q-15 -78 -15 -138q0 -76 19.5 -127.5t49.5 -84t65.5 -49t67.5 -23.5t56.5 -8t31.5 -2q134 -20 193 -69t59 -131q0 -17 -2.5 -36t-7.5 -39 q-14 -61 -44 -112.5t-76 -89t-109 -59t-143 -21.5z" />
+<glyph unicode="&#x3c3;" d="M491 -29q-190 0 -289.5 99t-99.5 294q0 88 21 195q55 270 202 415.5t386 145.5h515l-36 -184h-241q72 -59 103 -140.5t31 -173.5q0 -68 -15.5 -137.5t-43.5 -135t-66 -124t-84 -103.5q-153 -151 -383 -151zM514 127q72 0 134 30.5t110 87t81 136.5t48 178q3 20 5 38.5 t2 36.5q0 31 -7 60t-23.5 57.5t-44.5 57.5t-70 59q-31 22 -57.5 37.5t-50.5 29.5q-67 -5 -119 -29t-91.5 -70.5t-67 -115t-45.5 -161.5q-18 -95 -18 -169q0 -263 214 -263z" />
+<glyph unicode="&#x3c4;" d="M726 0q-145 0 -213.5 61.5t-68.5 192.5q0 34 4.5 71.5t12.5 80.5l103 530h-361l35 184h914l-35 -184h-365l-106 -541q-15 -77 -15 -125q0 -44 12 -66q27 -48 135 -48h88l-30 -156h-110v0z" />
+<glyph unicode="&#x3c5;" d="M485 0q-137 0 -203 62.5t-66 194.5q0 33 4 70t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5t-68 155.5h186q36 -62 58 -141 t22 -176q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
+<glyph unicode="&#x3c6;" d="M422 -25q-83 0 -148.5 27t-111 79t-69.5 128t-24 175q0 78 17 175q27 147 79 250t119 169.5t144 102t153 47.5l-32 -163q-72 -27 -133 -101q-36 -43 -64.5 -98.5t-48 -116.5t-30 -123.5t-10.5 -120.5q0 -48 7.5 -89.5t23.5 -73.5q26 -52 69 -77.5t91 -25.5l133 687 q29 151 106.5 226.5t191.5 75.5q66 0 121.5 -25.5t95.5 -74.5t62.5 -121t22.5 -166q0 -42 -4.5 -86.5t-14.5 -94.5q-27 -140 -81.5 -248.5t-129 -183t-164.5 -113.5t-188 -39l-78 -402h-183zM637 140q46 0 95.5 22t95.5 72t84.5 130t61.5 196q9 45 13 84t4 74 q0 51 -8.5 90.5t-23.5 71.5q-21 44 -49 67.5t-51 23.5q-26 0 -50.5 -35.5t-38.5 -109.5z" />
+<glyph unicode="&#x3c7;" d="M524 351l-88 485q-23 126 -178 126h-49l30 158h70q257 0 289 -176l69 -380l374 556h191l-524 -780l88 -482q22 -126 179 -126h49l-30 -158h-70q-258 0 -290 176l-69 378l-372 -554h-191z" />
+<glyph unicode="&#x3c8;" d="M413 -25q-62 0 -118 28t-98.5 78.5t-67.5 121t-25 156.5q0 27 2.5 55.5t8.5 57.5l126 648h185l-124 -641q-5 -29 -8 -54.5t-3 -48.5q0 -89 45 -150q23 -32 53 -54t56 -32l190 980h183l-190 -980q33 11 71 34t70 52q51 46 84 107t50 146l124 641h185l-126 -648 q-21 -108 -73.5 -199t-121 -157t-146 -103.5t-149.5 -37.5l-78 -401h-183z" />
+<glyph unicode="&#x3c9;" d="M268 -29q-88 0 -144 47.5t-73 137.5q-9 46 -9 112q0 79 15 181.5t48 215t86 229.5t128 226h190q-54 -83 -92.5 -157t-65.5 -142t-45.5 -133t-32.5 -130q-23 -110 -31 -185.5t-8 -104.5q0 -67 28 -102t66 -35q32 0 66 26.5t60 82.5q9 21 20 53.5t24.5 86t30.5 131 t39 188.5h170q-19 -97 -31.5 -168.5t-20 -123.5t-10.5 -87t-3 -58q0 -6 0.5 -11.5t0.5 -10.5q4 -55 28 -82t56 -27q37 0 77.5 34.5t68.5 104.5q12 31 32.5 100.5t40.5 187.5q12 68 18.5 130t6.5 125q0 72 -9.5 147t-31.5 160h190q23 -76 32.5 -156t9.5 -160q0 -100 -13 -196 t-34 -181t-48 -154.5t-54 -116.5q-51 -88 -126.5 -136.5t-163.5 -48.5q-47 0 -84.5 14t-63.5 38t-41.5 56.5t-18.5 70.5q-17 -36 -44.5 -68.5t-63 -57t-78.5 -39t-92 -14.5z" />
+<glyph unicode="&#x3ca;" d="M459 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM850 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM746 -5q-145 0 -213.5 61t-68.5 193 q0 64 17 152l110 576h-210l28 143h398l-141 -730q-15 -77 -15 -125q0 -33 8 -55t25.5 -35t45.5 -18.5t68 -5.5h88l-30 -156h-110z" />
+<glyph unicode="&#x3cb;" d="M469 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM485 0q-137 0 -203 62.5t-66 194.5q0 33 4 70 t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5t-68 155.5h186q36 -62 58 -141t22 -176q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150 t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
+<glyph unicode="&#x3cc;" d="M937 1673h219l-395 -376h-156zM514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127 q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x3cd;" d="M907 1648h219l-395 -376h-156zM485 0q-137 0 -203 62.5t-66 194.5q0 33 4 70t12 79l110 571h-210l28 143h398l-141 -725q-7 -36 -11 -66t-4 -54q0 -64 28.5 -91.5t94.5 -27.5q84 0 153.5 40t123.5 107t93 154.5t63 182.5q11 43 17.5 87.5t6.5 92.5q0 70 -19 144.5 t-68 155.5h186q36 -62 58 -141t22 -176q0 -39 -4 -80t-13 -85q-15 -74 -43.5 -150t-70.5 -147t-97.5 -133t-123.5 -108.5t-149.5 -73t-174.5 -26.5z" />
+<glyph unicode="&#x3ce;" d="M967 1673h219l-395 -376h-156zM268 -29q-88 0 -144 47.5t-73 137.5q-9 46 -9 112q0 79 15 181.5t48 215t86 229.5t128 226h190q-54 -83 -92.5 -157t-65.5 -142t-45.5 -133t-32.5 -130q-23 -110 -31 -185.5t-8 -104.5q0 -67 28 -102t66 -35q32 0 66 26.5t60 82.5 q9 21 20 53.5t24.5 86t30.5 131t39 188.5h170q-19 -97 -31.5 -168.5t-20 -123.5t-10.5 -87t-3 -58q0 -6 0.5 -11.5t0.5 -10.5q4 -55 28 -82t56 -27q37 0 77.5 34.5t68.5 104.5q12 31 32.5 100.5t40.5 187.5q12 68 18.5 130t6.5 125q0 72 -9.5 147t-31.5 160h190 q23 -76 32.5 -156t9.5 -160q0 -100 -13 -196t-34 -181t-48 -154.5t-54 -116.5q-51 -88 -126.5 -136.5t-163.5 -48.5q-47 0 -84.5 14t-63.5 38t-41.5 56.5t-18.5 70.5q-17 -36 -44.5 -68.5t-63 -57t-78.5 -39t-92 -14.5z" />
+<glyph unicode="&#x3f4;" d="M465 -29q-195 0 -289.5 110.5t-94.5 338.5q0 140 36 325q76 391 237 583t413 192q385 0 385 -452q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM928 881q8 56 12.5 105.5t4.5 93.5q0 66 -11 117.5t-36 86.5t-65 53.5t-98 18.5q-77 0 -135.5 -32.5t-103.5 -94 t-78.5 -149.5t-60.5 -199h571zM497 135q77 0 138 33.5t109 104t86 179.5t68 259h-577q-17 -88 -24.5 -161.5t-7.5 -133.5q0 -85 15 -140q40 -141 193 -141z" />
+<glyph unicode="&#x400;" d="M576 1869h182l147 -264h-139zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x401;" d="M556 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM947 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM344 1493h885l-33 -170h-684l-86 -442 h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x402;" d="M467 -470h-24t-24.5 0.5t-20.5 1t-13 0.5q1 1 33 181l75 -17q6 -1 12 -1.5t21 -0.5q69 0 119.5 17.5t87.5 58.5t62.5 108.5t45.5 167.5l81 416q13 65 13 117q0 94 -44.5 135t-137.5 41q-46 0 -94.5 -10t-99.5 -32q-28 -12 -45 -23t-32 -26q-40 -40 -72 -109t-49 -154 l-78 -401h-203l258 1325h-246l33 170h894l-33 -170h-445l-102 -525q12 11 22 19.5t21 16t24 14.5t31 16q2 1 3.5 2t6.5 3.5t15 7t28 13.5t38.5 16t46.5 13t59.5 10.5t77.5 7.5q13 1 23.5 1.5t25.5 0.5q77 0 134.5 -20t96.5 -64q6 -7 11 -14t9 -15q37 -65 37 -169 q0 -38 -5 -80.5t-14 -90.5l-86 -442q-28 -143 -73 -241.5t-114 -159.5t-165 -88t-225 -27z" />
+<glyph unicode="&#x403;" d="M974 1866h208l-307 -264h-160zM380 1493h924l-33 -170h-721l-257 -1323h-203z" />
+<glyph unicode="&#x404;" d="M589 -29q-95 0 -167 21t-125 57.5t-88.5 86.5t-57 107.5t-30.5 120.5t-9 127q0 115 27 253q37 186 106.5 330.5t166.5 243.5t219 150.5t263 51.5q177 0 314 -82l-41 -207q-128 125 -315 125q-95 0 -167.5 -33t-129.5 -98.5t-101.5 -164t-81.5 -229.5h627l-33 -170h-632 q-8 -44 -12 -90.5t-4 -84.5q0 -36 4.5 -76t16 -79t32.5 -74.5t55 -62.5t81.5 -43t113.5 -16q92 0 183 32.5t175 92.5l-41 -207q-168 -82 -349 -82z" />
+<glyph unicode="&#x405;" d="M435 -29q-110 0 -210 22.5t-200 67.5l41 209q101 -72 203 -103.5t200 -31.5q88 0 158.5 23.5t119.5 65.5t75 100t26 128q0 40 -10 69.5t-35.5 53t-68 43.5t-107.5 41l-101 33q-93 30 -156.5 62t-102.5 70.5t-55.5 86.5t-16.5 111q0 109 44 200.5t122.5 157.5t186 103 t234.5 37q87 0 175 -19t190 -59l-39 -205q-163 119 -349 119q-83 0 -151 -22t-117.5 -60.5t-76.5 -91.5t-27 -116q0 -38 11 -66t37.5 -50.5t70 -42.5t108.5 -41l121 -39q86 -28 146 -61.5t97.5 -76.5t54 -96.5t16.5 -120.5q0 -112 -43 -204t-122.5 -158t-193 -102.5 t-255.5 -36.5z" />
+<glyph unicode="&#x406;" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x407;" d="M523 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM914 1648q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x408;" d="M381 -29q-110 0 -208 23t-198 67l45 236q78 -85 169 -123.5t197 -38.5q70 0 121 18t88 59t62 108.5t45 166.5l164 836h-381l33 170h584l-197 -1006q-28 -141 -69.5 -239.5t-104 -160t-148.5 -89t-202 -27.5z" />
+<glyph unicode="&#x409;" d="M-97 164q47 0 81 6t58.5 21.5t42.5 41.5t32.5 65t29 93t33.5 126q11 43 23 94.5t26 117.5t30.5 149t37.5 189l83 426h544l-117 -600h21q59 0 117.5 -19.5t105 -62.5t75.5 -110t29 -161q0 -26 -5 -74.5t-25.5 -107.5t-62 -123t-113.5 -121q-73 -57 -150 -85.5t-144 -28.5 h-207l257 1323h-172l-49 -250q-19 -98 -38 -195.5t-39 -190t-43 -177.5t-51 -158t-62.5 -132.5t-76.5 -100.5q-32 -31 -62.5 -53.5t-65 -37t-77 -21.5t-98.5 -7zM687 166q45 0 88 18t79 53t62.5 85.5t38.5 115.5q5 26 7.5 55t2.5 47q0 35 -9 68.5t-29.5 60t-52.5 42.5 t-78 16h-21l-109 -561h21z" />
+<glyph unicode="&#x40a;" d="M211 1493h186l-119 -612h395l119 612h186l-117 -600h21q90 0 152.5 -24t102.5 -65t58 -96t18 -117q0 -29 -4 -66.5t-12 -76.5q-24 -113 -76.5 -197.5t-120 -140t-143.5 -83t-148 -27.5h-207l138 711h-395l-138 -711h-186zM741 166q45 0 88 18t79 53t62.5 85.5t38.5 115.5 q5 26 7.5 54t2.5 46q0 34 -8.5 68t-28.5 61t-52 43.5t-80 16.5h-21l-109 -561h21z" />
+<glyph unicode="&#x40b;" d="M292 1325h-246l33 170h894l-33 -170h-445l-102 -525q14 13 26 22t23.5 16.5t23.5 14t26 13.5q17 8 32.5 16t19.5 10q38 19 90 30.5t132 16.5q14 1 24.5 1.5t25.5 0.5q76 0 133.5 -20t96.5 -64q6 -7 11 -14t9 -15q37 -65 37 -173q0 -76 -18 -167l-95 -488h-203l90 462 q6 33 9.5 61.5t3.5 54.5q0 91 -44 134t-138 43q-49 0 -98 -11t-97 -31q-28 -12 -45 -23t-32 -26q-41 -40 -72 -108.5t-48 -154.5l-78 -401h-203z" />
+<glyph unicode="&#x40c;" d="M1004 1852h208l-307 -264h-160zM366 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
+<glyph unicode="&#x40d;" d="M556 1852h182l147 -264h-139zM285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
+<glyph unicode="&#x40e;" d="M814 1613q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM92 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068 q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
+<glyph unicode="&#x40f;" d="M397 0h-394l290 1493h203l-257 -1323h553l257 1323h203l-290 -1493h-394l-62 -322h-171z" />
+<glyph unicode="&#x410;" d="M644 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM806 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x411;" d="M311 1493h902l-32 -166h-699l-88 -450h235q185 -8 295.5 -57.5t144.5 -148.5q9 -26 13.5 -58.5t4.5 -70.5q0 -54 -11 -114.5t-36 -119.5t-64.5 -112t-96.5 -92q-75 -52 -180.5 -78t-235.5 -26h-442zM495 166q88 0 153 15t110 46.5t72.5 81.5t41.5 121q9 45 9 83 q0 105 -68.5 152.5t-211.5 47.5h-239l-106 -547h239z" />
+<glyph unicode="&#x412;" d="M313 1493h443q204 0 307.5 -79t103.5 -236q0 -76 -24 -141t-68 -114.5t-107 -81.5t-141 -42q136 -27 197 -108t61 -209q0 -110 -41 -199t-119 -152t-191.5 -97t-258.5 -34h-452zM639 877q75 0 135 18.5t102 54t64.5 85.5t22.5 113q0 94 -55.5 136.5t-180.5 42.5h-244 l-88 -450h244zM506 166q92 0 162.5 22.5t118.5 65t73 103t25 135.5q0 116 -65 168.5t-214 52.5h-241l-107 -547h248z" />
+<glyph unicode="&#x413;" d="M380 1493h924l-33 -170h-721l-257 -1323h-203z" />
+<glyph unicode="&#x414;" d="M974 170h121l-95 -492h-170l62 322h-827l-62 -322h-170l95 492h77q47 0 140 294q21 68 41.5 140.5t39.5 145t35 143t28 134.5l90 466h852zM995 1323h-446l-57 -297q-20 -107 -55.5 -245.5t-80.5 -296.5q-43 -148 -68 -226.5t-25 -69.5q0 -18 43 -18h465z" />
+<glyph unicode="&#x415;" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x416;" d="M360 891l-170 602h207l168 -595l116 595h187l-116 -595l400 595h207l-404 -602l131 -891h-197l-96 650l-125 -186l-90 -464h-187l90 464l-53 186l-348 -650h-197z" />
+<glyph unicode="&#x417;" d="M412 -29q-95 0 -199 18t-201 56l38 201q91 -52 185.5 -78.5t190.5 -26.5q93 0 168.5 24.5t129 69t82.5 106.5t29 137q0 117 -71 177t-210 60h-153l32 166h154q79 0 142.5 19.5t108.5 55.5t69 86.5t24 113.5q0 100 -61.5 147t-189.5 47q-84 0 -180 -20t-210 -60l37 186 q124 33 220.5 48.5t175.5 15.5q96 0 172 -22t128.5 -64.5t80.5 -105t28 -142.5q0 -74 -23.5 -137.5t-67.5 -114t-107 -85t-142 -50.5q112 -21 177 -100t65 -219q0 -113 -44 -206.5t-125 -161t-196 -104.5t-257 -37z" />
+<glyph unicode="&#x418;" d="M285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
+<glyph unicode="&#x419;" d="M795 1608q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
+<glyph unicode="&#x41a;" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
+<glyph unicode="&#x41b;" d="M-74 164q47 0 82 6t61 21.5t45 41.5t35.5 65t31.5 93t34 126q11 43 23 94.5t26 117.5t30.5 149t37.5 189l83 426h814l-290 -1493h-203l257 1323h-408l-49 -250q-33 -165 -61.5 -312t-62 -269t-78 -216.5t-108.5 -155.5q-32 -30 -63 -52.5t-69 -37.5t-86 -22.5t-114 -7.5z " />
+<glyph unicode="&#x41c;" d="M237 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
+<glyph unicode="&#x41d;" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
+<glyph unicode="&#x41e;" d="M490 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM507 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x41f;" d="M283 1493h959l-290 -1493h-203l257 1323h-553l-257 -1323h-203z" />
+<glyph unicode="&#x420;" d="M342 1493h440q205 0 313.5 -91t108.5 -280q0 -117 -41.5 -213t-119 -165t-188.5 -106.5t-251 -37.5h-233l-117 -600h-203zM637 766q82 0 149 25t114.5 70.5t73 109t25.5 139.5q0 112 -61 164.5t-193 52.5h-233l-109 -561h234z" />
+<glyph unicode="&#x421;" d="M178 915q33 100 80 189.5t103 161.5q101 127 233 190.5t290 63.5q54 0 97 -7h3q13 0 13 14v300q0 10 10 10h187q10 0 10 -10v-390l-41 -206q-127 125 -287 125q-189 0 -327 -164q-50 -60 -93 -140.5t-73 -171.5q-31 -92 -48 -187.5t-17 -184.5q0 -188 76.5 -280.5 t223.5 -92.5q87 0 178 32t179 93l-39 -207q-165 -82 -346 -82q-234 0 -356 131q-127 136 -127 397q0 101 18.5 207.5t52.5 208.5z" />
+<glyph unicode="&#x422;" d="M659 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
+<glyph unicode="&#x423;" d="M92 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
+<glyph unicode="&#x424;" d="M406 152q-68 4 -117.5 14t-84.5 27.5t-58 43t-39 60.5q-12 26 -21.5 57.5t-16.5 66t-10.5 70t-3.5 68.5q0 43 5.5 95.5t15.5 107.5q24 133 68 243.5t113 191t164.5 126t221.5 48.5l24 122h203l-24 -122q88 -3 148.5 -22.5t100 -50t61 -69t31.5 -79.5t11.5 -82.5 t1.5 -77.5q0 -107 -23 -228q-25 -132 -67.5 -242t-110 -190.5t-163.5 -127t-227 -50.5l-29 -152h-203zM612 1207q-87 -14 -141.5 -49t-88.5 -89t-53.5 -124.5t-35.5 -154.5q-11 -57 -17.5 -94.5t-10 -63.5t-4.5 -44.5t-2 -36.5q-1 -16 -1.5 -31t-0.5 -29q0 -31 6 -58.5 t25 -50t54.5 -39.5t95.5 -27zM641 316q76 10 130 43t91.5 87t61 126.5t39.5 160.5q8 43 13.5 82.5t9 71t5.5 54t3 32.5q1 14 1.5 27.5t0.5 25.5q0 37 -7.5 66.5t-27.5 52t-55.5 38t-90.5 24.5z" />
+<glyph unicode="&#x425;" d="M530 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
+<glyph unicode="&#x426;" d="M889 0h-923l290 1493h203l-257 -1323h553l257 1323h203l-257 -1323h134l-95 -492h-170z" />
+<glyph unicode="&#x427;" d="M872 658q-59 -27 -107 -43t-91 -24.5t-82 -11t-80 -2.5q-67 0 -115 5t-82.5 16.5t-59 30t-44.5 46.5q-22 31 -33 66.5t-11 88.5q0 30 3.5 71t11.5 79l100 513h203l-95 -487q-6 -32 -9 -63t-3 -54q0 -40 8 -57.5t20 -28.5q26 -24 69 -32t118 -8q46 0 83.5 3t73.5 13.5 t74.5 30t86.5 51.5l123 632h203l-290 -1493h-203z" />
+<glyph unicode="&#x428;" d="M267 1493h186l-257 -1323h224l257 1323h186l-257 -1323h224l257 1323h186l-290 -1493h-1006z" />
+<glyph unicode="&#x429;" d="M943 0h-970l290 1493h186l-257 -1323h224l257 1323h186l-257 -1323h224l257 1323h186l-257 -1323h134l-95 -492h-170z" />
+<glyph unicode="&#x42a;" d="M414 1323h-261l33 170h463l-117 -600h138q218 0 326 -84.5t108 -245.5q0 -54 -12 -117q-22 -112 -72 -196t-125.5 -139.5t-175.5 -83t-222 -27.5h-340zM529 166q142 0 234 73t118 207q7 35 7 70q0 101 -64.5 156t-185.5 55h-138l-109 -561h138z" />
+<glyph unicode="&#x42b;" d="M211 1493h202l-117 -600h91q87 0 156.5 -22t118 -65t75 -105.5t26.5 -143.5q0 -26 -2.5 -54t-8.5 -57q-22 -111 -73 -194.5t-123 -139.5t-159.5 -84t-182.5 -28h-293zM1077 1493h203l-290 -1493h-203zM246 166q52 0 99 16t86 50.5t67.5 87t42.5 126.5q9 46 9 87 q0 93 -48.5 143.5t-146.5 50.5h-91l-109 -561h91z" />
+<glyph unicode="&#x42c;" d="M342 1493h202l-117 -600h234q218 0 326 -84.5t108 -245.5q0 -54 -12 -117q-22 -112 -72 -196t-125.5 -139.5t-175.5 -83t-222 -27.5h-436zM520 166q142 0 234 73t118 207q7 35 7 70q0 101 -64.5 156t-185.5 55h-234l-109 -561h234z" />
+<glyph unicode="&#x42d;" d="M336 -29q-178 0 -315 82l41 207q63 -63 142.5 -94t165.5 -31q99 0 179 39.5t141.5 110t104.5 166.5t68 210h-632l33 170h627q4 48 6 98.5t2 88.5q0 39 -3.5 79.5t-14 78t-29.5 70.5t-50.5 57.5t-77.5 38.5t-110 14q-186 0 -364 -125l41 207q168 82 348 82q94 0 166 -21 t125.5 -58t89 -87t57.5 -108.5t31 -122t9 -127.5q0 -116 -27 -252q-36 -184 -105 -328t-165.5 -243t-218.5 -150.5t-265 -51.5z" />
+<glyph unicode="&#x42e;" d="M661 -29q-150 0 -219.5 103.5t-69.5 297.5q0 65 7 138t21 156h-111l-130 -666h-203l291 1493h203l-128 -657h111q36 159 85.5 285.5t114.5 215t146.5 136t183.5 47.5q106 0 171.5 -50t93.5 -142q13 -43 19 -97.5t6 -117.5q0 -77 -8.5 -162.5t-24.5 -173.5t-38.5 -175.5 t-50.5 -167.5t-60.5 -149.5t-68.5 -121.5q-63 -91 -148.5 -141.5t-192.5 -50.5zM695 135q54 0 101 36t82 105q22 43 44.5 107.5t43 141t38.5 160.5t31.5 166.5t21 157.5t7.5 135q0 20 -1 38t-3 33q-8 66 -39.5 103.5t-88.5 37.5q-51 0 -97 -34t-84 -107q-23 -45 -46 -111 t-44 -143.5t-38.5 -161t-30.5 -165t-20.5 -156t-7.5 -132.5q0 -20 1 -37.5t3 -32.5q8 -66 39.5 -103.5t87.5 -37.5z" />
+<glyph unicode="&#x42f;" d="M399 666q-100 39 -160 114t-60 179q0 41 11 102q20 106 69.5 186.5t125.5 135t176 82.5t221 28h466l-290 -1493h-203l123 631h-290l-473 -631h-214zM910 797l103 530h-263q-145 0 -233.5 -68t-113.5 -198q-4 -20 -6 -39t-2 -37q0 -188 244 -188h271z" />
+<glyph unicode="&#x430;" d="M404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5 t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
+<glyph unicode="&#x431;" d="M504 -29q-116 0 -190.5 34.5t-117.5 90.5t-60 127.5t-17 145.5q0 38 4 79.5t12 79.5q10 46 14 67t5 26l25 167q12 79 25.5 143t29.5 117t35.5 97t43.5 83q47 77 107 132t126.5 92.5t136 60t136.5 35t127.5 17.5t108.5 8q13 1 24 2t21 2.5t20.5 5t23.5 8.5l43 -142 q-23 -8 -45 -12t-45 -6l-244 -24q-50 -5 -91.5 -16.5t-91.5 -36.5q-109 -54 -177 -124.5t-93 -145.5l-20 -60q71 61 162.5 92t197.5 31q114 0 188 -33.5t116.5 -89t59.5 -126t17 -144.5q0 -48 -5.5 -98t-14.5 -98q-27 -141 -79 -250.5t-127.5 -184t-173.5 -113.5t-217 -39z M534 127q68 0 127.5 26.5t107.5 80t83 134.5t55 191q9 49 13.5 97.5t4.5 83.5q0 121 -54 186t-164 65q-137 0 -234.5 -108t-136.5 -324q-8 -46 -13 -93.5t-5 -85.5q0 -42 8 -87t31.5 -81.5t66 -60.5t110.5 -24z" />
+<glyph unicode="&#x432;" d="M338 1120h397q85 0 146 -19t100.5 -49.5t58 -70t18.5 -80.5q0 -12 -1.5 -24t-3.5 -24q-20 -112 -83 -176t-160 -77q65 -13 103.5 -34t59 -47t26.5 -56.5t6 -63.5q0 -102 -37.5 -177t-102 -124.5t-150.5 -73.5t-182 -24h-413zM661 665q42 0 79 13t64.5 36.5t43.5 57.5 t16 76q0 23 -6 45t-22 39t-44 27.5t-72 10.5h-227l-60 -305h228zM572 150q34 0 68.5 9t65 28.5t54.5 51t38 76.5q12 40 12 74q0 26 -7 48t-21 39q-7 8 -17 15t-25.5 12.5t-38 8.5t-54.5 3h-243l-71 -365h239z" />
+<glyph unicode="&#x433;" d="M394 1120h752l-29 -150h-568l-189 -970h-184z" />
+<glyph unicode="&#x434;" d="M44 150h67q18 0 38 32.5t39.5 83.5t38 114t34 124.5t27.5 114.5t18 85l81 416h748l-189 -970h121l-85 -436h-150l56 286h-723l-56 -286h-150zM761 150l159 820h-380l-52 -270q-2 -10 -9.5 -42t-18.5 -79t-26 -105t-32 -121q-8 -31 -16.5 -60t-15 -51.5t-11.5 -36.5 t-6 -14q-12 -20 -12 -29q0 -12 32 -12h388z" />
+<glyph unicode="&#x435;" d="M556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183 q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
+<glyph unicode="&#x436;" d="M348 716l-160 404h199l171 -432l84 432h168l-84 -432l339 432h199l-318 -404l120 -716h-179l-88 528l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179z" />
+<glyph unicode="&#x437;" d="M426 -22q-94 0 -181.5 14t-178.5 42l34 173q69 -34 156.5 -51.5t185.5 -17.5q95 0 169 16t125 46t77.5 71.5t26.5 92.5q0 76 -72 122t-212 46h-158l28 144h165q69 0 123 11.5t92.5 31.5t62 47t31.5 58q4 13 4 28q0 59 -66.5 95.5t-197.5 36.5q-71 0 -160 -12.5 t-198 -39.5l32 167q220 48 376 48q94 0 169 -16.5t127 -47.5t80 -76t28 -102q0 -22 -5 -50q-20 -97 -97 -160t-200 -88q112 -21 171.5 -78.5t59.5 -149.5q0 -12 -1.5 -25t-3.5 -27q-13 -77 -59 -141.5t-121.5 -110.5t-179 -71.5t-232.5 -25.5z" />
+<glyph unicode="&#x438;" d="M304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
+<glyph unicode="&#x439;" d="M747 1261q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
+<glyph unicode="&#x43a;" d="M325 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
+<glyph unicode="&#x43b;" d="M-39 150h35q46 0 81.5 14t63.5 45t50.5 80t43.5 119q12 39 22.5 81.5t19.5 84t16.5 79.5t13.5 69l78 398h785l-218 -1120h-184l189 970h-417l-48 -245q-15 -76 -33 -161.5t-44.5 -168.5t-63.5 -158.5t-88 -130.5q-25 -27 -52.5 -46.5t-60.5 -33t-73 -20t-90 -6.5h-55z " />
+<glyph unicode="&#x43c;" d="M169 1120h184l241 -691l509 691h184l-218 -1120h-184l144 741l-376 -481h-184l-190 481l-144 -741h-184z" />
+<glyph unicode="&#x43d;" d="M304 1120h184l-89 -455h487l89 455h184l-218 -1120h-184l100 515h-487l-100 -515h-184z" />
+<glyph unicode="&#x43e;" d="M514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99 t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x43f;" d="M304 1120h855l-218 -1120h-184l189 970h-487l-189 -970h-184z" />
+<glyph unicode="&#x440;" d="M299 1120h164l-8 -143q63 84 148 127t188 43q80 0 142.5 -26.5t106 -78t66 -127t22.5 -173.5q0 -66 -10 -136.5t-29.5 -140t-47 -134.5t-62.5 -120q-72 -115 -173.5 -177.5t-227.5 -62.5q-100 0 -170 41.5t-115 128.5l-111 -567h-184zM568 127q86 0 149.5 44t111.5 131 q24 45 43.5 98t33 109t21 112.5t7.5 108.5q0 134 -50.5 197.5t-154.5 63.5q-92 0 -157 -47t-113 -132q-24 -44 -43.5 -95.5t-33 -106t-21 -109t-7.5 -104.5q0 -139 55.5 -204.5t158.5 -65.5z" />
+<glyph unicode="&#x441;" d="M189 705q54 145 145 245q88 97 202 147t249 50q70 0 134 -13h4q12 0 12 13v254q0 10 10 10h162q10 0 10 -10v-340l-37 -182q-66 58 -136 85t-156 27q-113 0 -195.5 -44.5t-143.5 -133.5q-57 -85 -87 -187q-32 -104 -32 -208q0 -149 68 -220t209 -71q185 0 352 125 l-39 -201q-149 -80 -334 -80q-222 0 -336 112t-114 331q0 148 53 291z" />
+<glyph unicode="&#x442;" d="M607 970h-311l29 150h806l-29 -150h-311l-189 -970h-184z" />
+<glyph unicode="&#x443;" d="M20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
+<glyph unicode="&#x444;" d="M405 -29q-108 11 -173.5 44.5t-100.5 81.5t-46.5 105.5t-11.5 116.5q0 39 4 91.5t13.5 112.5t25 124t38.5 126t54.5 118.5t73.5 100.5q123 132 351 155l80 409h184l-80 -409q109 -11 174.5 -44.5t101 -81t46.5 -104t11 -113.5q0 -38 -4 -90.5t-13 -112.5t-25 -125 t-39 -128t-55 -120t-74 -101q-61 -65 -149 -105t-202 -51l-78 -397h-184zM601 982q-68 -14 -116 -38.5t-81.5 -66.5t-57 -106t-43.5 -158q-17 -82 -27 -157t-10 -126q0 -33 6 -64.5t24 -58.5t51.5 -48t87.5 -32zM619 127q66 14 113.5 38.5t82 67.5t58.5 109t45 163 q20 93 28.5 165.5t8.5 115.5q0 33 -6 63.5t-24.5 56t-52 45.5t-87.5 31z" />
+<glyph unicode="&#x445;" d="M515 596l-293 524h196l217 -395l369 395h225l-512 -547l318 -573h-197l-244 444l-417 -444h-226z" />
+<glyph unicode="&#x446;" d="M887 0h-844l218 1120h184l-189 -970h486l189 970h184l-189 -970h140l-85 -436h-150z" />
+<glyph unicode="&#x447;" d="M811 466q-8 -3 -35.5 -13.5t-69.5 -21.5t-96.5 -20t-117.5 -9q-85 0 -144 18t-95.5 50.5t-53 77.5t-16.5 99q0 49 12 108l71 367h184l-71 -367q-6 -30 -6 -56q0 -78 52 -107.5t162 -29.5q60 0 121.5 11t132.5 48l97 501h184l-218 -1122h-184z" />
+<glyph unicode="&#x448;" d="M234 1120h168l-189 -970h240l189 970h168l-189 -970h240l189 970h168l-218 -1120h-984z" />
+<glyph unicode="&#x449;" d="M977 0h-978l218 1120h168l-189 -970h240l189 970h168l-189 -970h240l189 970h168l-189 -970h144l-85 -436h-150z" />
+<glyph unicode="&#x44a;" d="M358 970h-248l29 150h432l-88 -453h256q114 0 189 -21.5t119.5 -59t62 -87.5t17.5 -107q0 -30 -6 -69t-24 -81t-52 -83.5t-90 -76.5q-131 -82 -346 -82h-440zM631 153q259 0 293 181q2 11 3 21.5t1 18.5q0 140 -227 140h-248l-70 -361h248z" />
+<glyph unicode="&#x44b;" d="M213 1120h182l-88 -453h91q105 0 178.5 -20t120 -54.5t68 -82t21.5 -102.5q0 -19 -2 -37.5t-6 -38.5q-32 -168 -164 -250t-346 -82h-273zM1054 1120h184l-218 -1120h-184zM290 153q259 0 293 181q2 11 3 21.5t1 18.5q0 140 -227 140h-83l-70 -361h83z" />
+<glyph unicode="&#x44c;" d="M335 1120h184l-88 -453h256q186 0 287 -65t101 -196q0 -17 -1.5 -35.5t-5.5 -38.5q-31 -164 -160.5 -248t-349.5 -84h-440zM579 153q129 0 201.5 43.5t90.5 135.5q2 11 3.5 21.5t1.5 21.5q0 74 -60 106.5t-166 32.5h-248l-71 -361h248z" />
+<glyph unicode="&#x44d;" d="M421 -29q-92 0 -164.5 21.5t-139.5 64.5l38 191q103 -121 283 -121q88 0 159 27t126 77.5t93.5 122.5t61.5 162h-542l28 144h537q1 10 1 19v18q0 55 -13 108t-46 94.5t-88.5 66.5t-140.5 25q-91 0 -174.5 -30.5t-164.5 -92.5l38 193q42 21 82.5 37t82 27t84.5 16.5 t90 5.5q124 0 209.5 -36t138 -95.5t75.5 -136.5t23 -158q0 -38 -4.5 -78t-12.5 -84q-27 -139 -86.5 -248.5t-145.5 -185t-194.5 -115t-233.5 -39.5z" />
+<glyph unicode="&#x44e;" d="M700 -29q-75 0 -129 32.5t-89.5 86.5t-52 124.5t-16.5 147.5q0 29 2 59.5t6 62.5h-142l-94 -484h-184l218 1120h184l-94 -486h142q33 128 83.5 224.5t113 160.5t135 96t149.5 32q76 0 131 -29t90.5 -80t52.5 -120t17 -149q0 -34 -3.5 -82.5t-13 -105.5t-25.5 -119 t-41 -123.5t-60 -119.5t-82 -107q-66 -68 -142.5 -104.5t-155.5 -36.5zM731 127q43 0 84 30.5t77 88.5t65.5 141t50.5 188q21 103 21 179q0 38 -6 79.5t-20.5 76.5t-38 57.5t-59.5 22.5q-39 0 -79.5 -30t-78 -86t-68.5 -137.5t-52 -183.5q-11 -56 -16 -102.5t-5 -85.5 q0 -32 4 -73.5t17.5 -78t38 -61.5t65.5 -25z" />
+<glyph unicode="&#x44f;" d="M429 479q-25 12 -55 31t-55.5 47t-43 65.5t-17.5 85.5q0 17 2.5 40.5t7.5 49.5q18 86 60 147t100.5 100t129 57t143.5 18h397l-218 -1120h-184l89 455h-193l-347 -455h-181zM814 605l71 365h-227q-29 0 -61.5 -11t-61.5 -33.5t-51.5 -57t-31.5 -81.5q-2 -14 -3.5 -26 t-1.5 -23q0 -30 11.5 -54.5t31 -42t44.5 -27t52 -9.5h228z" />
+<glyph unicode="&#x450;" d="M453 1675h198l197 -376h-143zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73 q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
+<glyph unicode="&#x451;" d="M494 1349q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM885 1349q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM556 -29q-227 0 -342.5 111t-115.5 325 q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5z M938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
+<glyph unicode="&#x452;" d="M480 -261q64 10 127.5 55t118.5 119.5t97.5 177.5t64.5 231q5 30 8.5 60t3.5 56q0 91 -44.5 134t-138.5 43q-141 0 -227.5 -92.5t-119.5 -261.5l-51 -261h-184l190 977h-190l28 143h190l85 436h184l-85 -436h448l-28 -143h-448l-77 -397q66 95 160.5 145t215.5 50 q146 0 218 -73t72 -214q0 -35 -4 -79t-12 -87q-25 -146 -79.5 -273.5t-135 -226t-186 -163t-233.5 -85.5z" />
+<glyph unicode="&#x453;" d="M982 1646h219l-395 -376h-156zM380 1120h752l-29 -150h-568l-189 -970h-184z" />
+<glyph unicode="&#x454;" d="M586 -29q-104 0 -187 28t-140.5 82.5t-88.5 134.5t-31 184q0 76 16 159q27 141 87.5 250.5t146.5 184.5t194.5 114t233.5 39q82 0 154.5 -19t147.5 -67l-38 -193q-61 67 -130 95t-155 28q-91 0 -160 -27t-119.5 -72.5t-85 -105.5t-56.5 -127l537 1l-28 -144h-542 q-4 -25 -5.5 -48.5t-1.5 -46.5q0 -68 17 -122t53 -92.5t91.5 -59t132.5 -20.5q90 0 172.5 29t159.5 92l-38 -191q-83 -43 -164 -64.5t-173 -21.5z" />
+<glyph unicode="&#x455;" d="M476 -29q-87 0 -174 17.5t-187 52.5l37 190q187 -106 353 -106q67 0 122.5 16t95.5 43.5t62 64t22 76.5q0 114 -196 162l-28 7l-67 18q-128 34 -189 96t-61 170q0 84 34 152t97.5 116.5t154 74.5t202.5 26q177 0 323 -66l-35 -180q-72 45 -149 68.5t-162 23.5 q-66 0 -118.5 -14t-89 -38.5t-55.5 -58t-19 -72.5q0 -29 11.5 -52t37.5 -43t68 -37t104 -33q16 -5 22 -6l72 -18q120 -30 176.5 -93t56.5 -163q0 -84 -37.5 -156t-106 -125t-164.5 -83t-213 -30z" />
+<glyph unicode="&#x456;" d="M627 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM749 -8q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 572h-246l29 144h430l-162 -720q-4 -16 -6.5 -35t-3.5 -27 q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#x457;" d="M360 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM751 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM749 -8q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 572h-246l29 144h430l-162 -720q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#x458;" d="M823 1556h184l-45 -233h-184zM55 -270h233q97 0 151 60.5t79 189.5l192 997h-317l28 143h502l-221 -1140q-21 -107 -56 -183.5t-86.5 -126t-121.5 -73t-160 -23.5h-254z" />
+<glyph unicode="&#x459;" d="M-71 150h35q46 0 81.5 14t63.5 45t50.5 80t43.5 119q12 39 22.5 81.5t19.5 84t16.5 79.5t13.5 69l78 398h565l-88 -453h21q82 0 145.5 -19.5t107 -55.5t65.5 -87.5t22 -115.5q0 -25 -5.5 -62.5t-23.5 -79.5t-52.5 -85t-92.5 -80q-65 -42 -140.5 -62t-155.5 -20h-189 l189 970h-229l-48 -245q-15 -76 -33.5 -161.5t-45 -169t-63 -159t-87.5 -130.5q-24 -26 -51.5 -46t-60.5 -33t-73.5 -19.5t-90.5 -6.5h-39zM743 153q208 0 228 104q10 52 15 82.5t5 50.5q0 58 -44 91t-134 33h-13l-70 -361h13z" />
+<glyph unicode="&#x45a;" d="M217 1120h168l-89 -455h364l89 455h168l-88 -453h21q83 0 146.5 -19.5t106 -56t64.5 -88t22 -115.5q0 -25 -5.5 -62t-23.5 -79t-52 -85t-92 -80q-65 -42 -140.5 -62t-155.5 -20h-189l100 515h-364l-100 -515h-168zM742 153q103 0 164.5 44t78.5 137q2 13 3.5 24.5 t1.5 23.5q0 132 -178 132h-13l-70 -361h13z" />
+<glyph unicode="&#x45b;" d="M305 977h-190l27 143h190l85 436h184l-85 -436h448l-27 -143h-448l-77 -397q136 195 368 195q139 0 205.5 -71t66.5 -216q0 -41 -5 -80.5t-14 -85.5l-62 -322h-185l62 322q13 65 13 112q0 181 -175 181q-131 0 -217 -91.5t-119 -262.5l-51 -261h-184z" />
+<glyph unicode="&#x45c;" d="M948 1646h219l-395 -376h-156zM328 1120h190l-91 -465l574 465h224l-523 -422l374 -698h-225l-302 578l-162 -129l-87 -449h-190z" />
+<glyph unicode="&#x45d;" d="M487 1646h198l197 -376h-143zM304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
+<glyph unicode="&#x45e;" d="M777 1261q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205 l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
+<glyph unicode="&#x45f;" d="M446 0h-352l218 1120h184l-189 -970h487l189 970h184l-218 -1120h-352l-56 -286h-151z" />
+<glyph unicode="&#x462;" d="M363 1105h-261l32 164h261l43 224h202l-43 -224h369l-32 -164h-369l-42 -212h138q218 0 326 -84.5t108 -245.5q0 -54 -12 -117q-22 -112 -72 -196t-125.5 -139.5t-175.5 -83t-222 -27.5h-340zM520 166q69 0 127.5 18.5t104 54t76.5 87.5t44 120q7 34 7 69 q0 103 -65 157.5t-185 54.5h-138l-109 -561h138z" />
+<glyph unicode="&#x463;" d="M353 973h-248l29 147h248l84 436h184l-84 -436h425l-29 -147h-425l-59 -306h256q186 0 287 -65t101 -196q0 -17 -1.5 -35.5t-5.5 -38.5q-32 -166 -164 -249t-347 -83h-440zM626 156q128 0 202 45t91 133q2 10 3 19t1 18q0 72 -59 107.5t-168 35.5h-248l-70 -358h248z" />
+<glyph unicode="&#x472;" d="M465 -29q-191 0 -287.5 110.5t-96.5 339.5q0 139 36 324q75 385 234 580t416 195q196 0 290.5 -113t94.5 -339q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM920 828q12 73 18.5 135t6.5 115q0 140 -49 209t-161 69q-77 0 -136 -33t-105.5 -99t-82.5 -165t-66 -231 h575zM498 135q76 0 135.5 32.5t105.5 96.5t81 159t64 221h-574q-11 -66 -16.5 -124t-5.5 -108q0 -135 48 -206t162 -71z" />
+<glyph unicode="&#x473;" d="M502 -29q-192 0 -289 100.5t-97 292.5q0 88 21 195q28 143 79 251.5t129 185.5q80 79 176 115t208 36q193 0 290.5 -100t97.5 -294q0 -88 -21 -194q-56 -286 -207.5 -437t-386.5 -151zM910 611q5 32 7.5 62t2.5 58q0 122 -52.5 191t-167.5 69q-70 0 -126.5 -26.5 t-101 -75.5t-76.5 -119.5t-53 -158.5h567zM532 127q70 0 125 25t96 68.5t70.5 102t49.5 124.5h-557q-3 -32 -3 -60q0 -56 11 -103.5t36.5 -82t67.5 -54.5t104 -20z" />
+<glyph unicode="&#x490;" d="M390 1493h754l63 306h167l-93 -476h-721l-257 -1323h-203z" />
+<glyph unicode="&#x491;" d="M395 1120h568l61 314h185l-98 -498h-568l-182 -936h-184z" />
+<glyph unicode="&#x492;" d="M254 830h-130l33 170h130l96 493h924l-33 -170h-721l-63 -323h547l-33 -170h-547l-161 -830h-203z" />
+<glyph unicode="&#x493;" d="M293 500h-130l33 170h130l88 450h752l-36 -184h-568l-52 -266h416l-33 -170h-416l-97 -500h-184z" />
+<glyph unicode="&#x494;" d="M402 -240h62q65 0 115 16.5t87.5 56.5t64 106t45.5 165l56 290q12 63 12 114q0 203 -198 203h-270l-138 -711h-203l290 1493h924l-33 -170h-721l-86 -442h311q94 0 163.5 -30.5t112.5 -88.5q59 -80 59 -205q0 -68 -16 -147l-60 -306q-27 -137 -71.5 -234t-110 -159.5 t-153 -91.5t-199.5 -29h-76z" />
+<glyph unicode="&#x495;" d="M378 -270h172q57 0 95 12t63 41t41 77t30 120l52 264q8 42 12.5 74t4.5 58q0 38 -11 60t-34 33.5t-59 14.5t-87 3h-260l-95 -487h-184l218 1120h752l-36 -184h-568l-59 -305h250q102 0 171 -10t111.5 -34t61 -64t18.5 -100q0 -36 -5.5 -79t-15.5 -94l-53 -270 q-21 -110 -57 -187t-87.5 -125.5t-121 -71t-157.5 -22.5h-193z" />
+<glyph unicode="&#x496;" d="M903 0h-27l-96 650l-125 -186l-90 -464h-187l90 464l-53 186l-348 -650h-197l477 891l-170 602h207l169 -595l115 595h187l-115 -595l399 595h207l-404 -602l106 -721h58l-96 -492h-170z" />
+<glyph unicode="&#x497;" d="M939 0h-52l-88 528l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179l398 716l-160 404h199l171 -432l84 432h168l-84 -432l339 432h199l-318 -404l95 -566h77l-85 -436h-150z" />
+<glyph unicode="&#x498;" d="M762 799q112 -21 177 -100t65 -219q0 -101 -35.5 -187t-101.5 -151.5t-160 -108t-212 -56.5q32 -57 45.5 -97.5t13.5 -77.5q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5 q0 26 -10.5 58t-32.5 75q-94 0 -196.5 18t-199.5 56l38 201q91 -52 185.5 -78.5t190.5 -26.5q93 0 168.5 24.5t129 69t82.5 106.5t29 137q0 117 -71 177t-210 60h-153l32 166h154q79 0 142.5 19.5t108.5 55.5t69 86.5t24 113.5q0 100 -61.5 147t-189.5 47q-84 0 -180 -20 t-210 -60l37 186q124 33 220.5 48.5t175.5 15.5q96 0 172 -22t128.5 -64.5t80.5 -105t28 -142.5q0 -74 -23.5 -137.5t-67.5 -114t-107 -85t-142 -50.5z" />
+<glyph unicode="&#x499;" d="M1089 855q-20 -97 -97 -160t-200 -88q112 -21 171.5 -78.5t59.5 -149.5q0 -12 -1.5 -25t-3.5 -27q-12 -72 -52.5 -132.5t-106.5 -105.5t-157 -73.5t-203 -35.5q32 -58 46.5 -99t14.5 -79q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5q-43 0 -89.5 7.5t-94.5 22.5 l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 27 -11.5 61t-35.5 80q-81 3 -157.5 17t-156.5 38l34 173q69 -34 156.5 -51.5t185.5 -17.5q95 0 169 16t125 46t77.5 71.5t26.5 92.5q0 76 -72 122t-212 46h-158l28 144h165q69 0 123 11.5t92.5 31.5t62 47 t31.5 58q4 13 4 28q0 59 -66.5 95.5t-197.5 36.5q-71 0 -160 -12.5t-198 -39.5l32 167q220 48 376 48q94 0 169 -16.5t127 -47.5t80 -76t28 -102q0 -22 -5 -50z" />
+<glyph unicode="&#x49a;" d="M868 0h-41l-342 748l-186 -164l-113 -584h-203l290 1493h203l-129 -664l760 664h237l-699 -610l343 -713h116l-93 -482h-203z" />
+<glyph unicode="&#x49b;" d="M885 0h-42l-302 578l-162 -129l-87 -449h-190l218 1120h190l-91 -465l574 465h224l-523 -422l276 -514h134l-90 -460h-183z" />
+<glyph unicode="&#x4a2;" d="M940 0h-202l139 711h-555l-137 -711h-203l291 1493h202l-118 -612h553l118 612h203l-258 -1323h203l-94 -482h-203z" />
+<glyph unicode="&#x4a3;" d="M931 0h-184l98 505h-487l-98 -505h-184l218 1120h184l-87 -445h487l87 445h184l-182 -936h183l-90 -460h-182z" />
+<glyph unicode="&#x4a4;" d="M314 1493h186l-119 -612h364l119 612h546l-33 -170h-360l-257 -1323h-186l138 711h-364l-138 -711h-186z" />
+<glyph unicode="&#x4a5;" d="M265 1120h168l-89 -455h410l89 455h496l-29 -150h-328l-189 -970h-168l100 515h-410l-100 -515h-168z" />
+<glyph unicode="&#x4aa;" d="M866 1356q-97 0 -178 -41.5t-149 -122.5q-51 -61 -93.5 -141.5t-73 -171t-47.5 -186t-17 -185.5q0 -191 77.5 -282t222.5 -91q88 0 178.5 32t178.5 93l-39 -207q-134 -66 -275 -79q31 -56 44.5 -95.5t13.5 -76.5q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5 q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 50 -44 134q-208 13 -321.5 144.5t-113.5 382.5q0 102 18.5 208.5t52 207t80.5 190.5t103 161q102 128 234.5 191t288.5 63q86 0 162.5 -20t157.5 -62l-41 -207q-126 125 -287 125z " />
+<glyph unicode="&#x4ab;" d="M790 991q-115 0 -197 -45.5t-142 -132.5q-28 -41 -50 -88.5t-37.5 -98.5t-23.5 -104t-8 -104q0 -149 68.5 -220t208.5 -71q92 0 180 31t172 94l-39 -201q-60 -32 -126 -51.5t-140 -25.5q30 -56 43.5 -96t13.5 -76q0 -44 -18.5 -80t-52 -62t-82 -40.5t-108.5 -14.5 q-43 0 -89.5 7.5t-94.5 22.5l25 129q40 -19 76.5 -28.5t71.5 -9.5q65 0 102 30.5t37 81.5q0 50 -44 135q-195 13 -296.5 124t-101.5 317q0 75 13.5 148.5t39 142.5t62 131t83.5 114q88 97 202 147t249 50q174 0 332 -86l-37 -182q-66 58 -136 85t-156 27z" />
+<glyph unicode="&#x4ac;" d="M575 0h-204l258 1323h-469l33 170h1140l-33 -170h-469l-223 -1153h203l-94 -482h-203z" />
+<glyph unicode="&#x4ad;" d="M591 0h-184l183 942h-311l35 178h806l-35 -178h-311l-147 -758h183l-90 -460h-182z" />
+<glyph unicode="&#x4ae;" d="M508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#x4af;" d="M401 18l-214 1102h195l159 -876l499 876h195l-642 -1102l-86 -444h-192z" />
+<glyph unicode="&#x4b0;" d="M464 420h-264l33 170h264l15 80l-317 823h215l236 -659l491 659h217l-639 -823l-15 -80h266l-33 -170h-266l-82 -420h-203z" />
+<glyph unicode="&#x4b1;" d="M361 -185h-200l29 150h200l10 53l-213 1102h195l158 -876l500 876h195l-643 -1102l-10 -53h200l-29 -150h-200l-47 -241h-192z" />
+<glyph unicode="&#x4b2;" d="M867 0h-14l-241 643l-520 -643h-218l654 791l-296 702h217l219 -563l443 563h217l-583 -702l255 -621h103l-93 -482h-203z" />
+<glyph unicode="&#x4b3;" d="M866 0h-30l-241 449l-414 -449h-213l554 584l-297 536h204l218 -405l374 405h207l-505 -536l223 -400h139l-90 -460h-183z" />
+<glyph unicode="&#x4ba;" d="M313 1495h203l-132 -683q22 20 45 35.5t53 30.5l52 26q20 10 46.5 18t56.5 14t61 10t59 5l48 2q158 0 232 -84q7 -8 12 -16t8 -13q17 -31 26.5 -74t9.5 -98q0 -74 -18 -168l-97 -500h-203l92 474q13 64 13 117q0 91 -43.5 133.5t-137.5 42.5q-48 0 -97.5 -10.5 t-98.5 -31.5q-52 -22 -76 -49q-88 -91 -121 -263l-80 -413h-203z" />
+<glyph unicode="&#x4bb;" d="M387 1556h184l-116 -604q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184z" />
+<glyph unicode="&#x4c0;" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#x4c1;" d="M782 1619q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM347 891l-170 602h207l168 -595l116 595h187l-116 -595l400 595h207l-404 -602l131 -891h-197l-96 650l-125 -186l-90 -464h-187l90 464 l-53 186l-348 -650h-197z" />
+<glyph unicode="&#x4c2;" d="M737 1271q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM348 716l-160 404h199l171 -432l84 432h168l-84 -432l339 432h199l-318 -404l120 -716h-179l-88 528 l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179z" />
+<glyph unicode="&#x4c3;" d="M375 -240h62q69 0 119 17.5t86.5 58t62 106t44.5 162.5l57 290q12 61 12 112q0 205 -199 205h-151l-143 -127l-114 -584h-203l290 1493h203l-129 -664l760 664h237l-700 -612h24q76 0 138 -20.5t105.5 -61.5t67 -103t23.5 -146q0 -64 -15 -140l-60 -306 q-27 -137 -71.5 -234t-110 -159.5t-153 -91.5t-199.5 -29h-76z" />
+<glyph unicode="&#x4c4;" d="M363 -270h172q57 0 95 12t63 41t41 77t30 120l52 264q8 42 12.5 74t4.5 58q0 38 -11 60t-34 33.5t-59 14.5t-87 3h-221l-47 -38l-87 -449h-190l218 1120h190l-91 -465l574 465h224l-610 -489h58q102 0 171 -10t111.5 -34t61 -64t18.5 -100q0 -36 -5.5 -79t-15.5 -94 l-53 -270q-21 -110 -57 -187t-87.5 -125.5t-121 -71t-157.5 -22.5h-193z" />
+<glyph unicode="&#x4c7;" d="M394 -240h62q70 0 120.5 18.5t87 59t61.5 106t43 160.5l118 607h-553l-138 -711h-203l290 1493h203l-119 -612h553l119 612h203l-270 -1389q-27 -138 -71.5 -235.5t-110 -159.5t-153 -90.5t-199.5 -28.5h-76z" />
+<glyph unicode="&#x4c8;" d="M352 -270h172q55 0 92.5 11.5t63 40t42.5 76.5t31 122l102 525h-487l-98 -505h-184l218 1120h184l-87 -445h487l87 445h184l-222 -1140q-21 -107 -55.5 -183.5t-86 -126t-121.5 -73t-160 -23.5h-193z" />
+<glyph unicode="&#x4cb;" d="M255 0h-203l290 1493h924l-33 -170h-721l-224 -1153h203l-94 -482h-203z" />
+<glyph unicode="&#x4cc;" d="M352 0h-184l218 1120h752l-36 -184h-568l-146 -752h183l-90 -460h-183z" />
+<glyph unicode="&#x4cf;" d="M656 1567h184l-305 -1567h-184z" />
+<glyph unicode="&#x4d0;" d="M800 1613q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM645 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM807 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x4d1;" d="M747 1297q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM404 -29q-75 0 -136.5 21.5t-105 62t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246 l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77 t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
+<glyph unicode="&#x4d2;" d="M506 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM645 1493h246l166 -1493h-201l-35 389h-520 l-184 -389h-217zM807 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#x4d3;" d="M473 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM864 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM404 -29q-75 0 -136.5 21.5t-105 62 t-67 98.5t-23.5 130q0 94 40 172t114.5 134t180.5 87t238 31h246l12 61q2 9 3 19t1 20q0 94 -62.5 139t-179.5 45q-175 0 -397 -102l35 180q109 39 205 58.5t185 19.5q93 0 166.5 -21.5t124 -61t77 -96.5t26.5 -129q0 -34 -6 -85.5t-18 -114.5l-125 -639h-164l12 166 q-72 -93 -168 -144t-214 -51zM461 125q67 0 130 26.5t115.5 77t91.5 124.5t58 169l8 41h-172q-56 0 -98.5 -1.5t-75 -5.5t-58 -10.5t-46.5 -15.5q-68 -29 -109 -87t-41 -136q0 -84 51 -133t146 -49z" />
+<glyph unicode="&#x4d4;" d="M555 1493h752l-33 -170h-338l-86 -442h307l-33 -170h-307l-106 -541h356l-33 -170h-542l75 383h-352l-176 -383h-184zM600 551l150 772h-103l-356 -772h309z" />
+<glyph unicode="&#x4d5;" d="M233 -29q-64 0 -116 19t-88.5 54t-56 84.5t-19.5 111.5q0 100 30.5 177.5t90 131t146 81t198.5 27.5h117l18 88q4 20 6 41.5t2 47.5q0 76 -42 118.5t-120 42.5q-49 0 -115.5 -21t-142.5 -63l35 168q159 68 273 68q82 0 141 -33t90 -96q51 63 120 96t150 33q60 0 109 -20 t83.5 -57t53 -89.5t18.5 -118.5q0 -76 -34 -258l-17 -90h-495q-20 -93 -27 -146q-4 -28 -6 -48.5t-2 -34.5q0 -78 48.5 -122t133.5 -44q70 0 141 28.5t125 79.5l-34 -172q-60 -42 -125.5 -63t-137.5 -21q-106 0 -175.5 41t-94.5 119q-94 -160 -281 -160zM1024 657l16 74 q6 27 8.5 55t2.5 60q0 70 -33.5 109.5t-93.5 39.5q-165 0 -213 -256l-17 -82h330zM260 123q45 0 79.5 15t61 52t47.5 98t39 154l15 72h-49q-63 0 -105.5 -3.5t-72 -12t-49.5 -22t-38 -32.5q-30 -33 -47.5 -82t-17.5 -100q0 -30 10.5 -55.5t28.5 -44t43 -29t55 -10.5z" />
+<glyph unicode="&#x4d6;" d="M792 1612q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61zM324 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x4d7;" d="M761 1299q-134 0 -206 64t-72 182q0 17 0.5 25t2.5 16h120v-17q0 -66 43.5 -99.5t125.5 -33.5q85 0 137 37.5t81 112.5h119q-33 -144 -122.5 -215.5t-228.5 -71.5zM556 -29q-227 0 -342.5 111t-115.5 325q0 78 15.5 156t44.5 151t71 139t95 120q84 87 183.5 131.5 t211.5 44.5q92 0 167 -30t128.5 -84.5t82.5 -132t29 -171.5q0 -36 -5 -86.5t-17 -128.5h-807q-6 -32 -9 -58t-3 -52q0 -133 76 -206t223 -73q90 0 194 28t219 85l-36 -183q-106 -43 -205.5 -64.5t-199.5 -21.5zM938 659q6 27 8 45t2 35q0 59 -17 106t-48.5 79.5t-76 49.5 t-99.5 17q-65 0 -123.5 -23.5t-107 -67t-85.5 -105t-59 -136.5h606z" />
+<glyph unicode="&#x4d8;" d="M465 -29q-195 0 -289.5 110.5t-94.5 338.5q0 140 36 325l16 83h787q12 74 18.5 136.5t6.5 115.5q0 139 -49.5 207.5t-165.5 68.5q-80 0 -172 -32t-178 -93l41 207q85 42 170.5 62t170.5 20q199 0 294.5 -112t95.5 -339q0 -141 -36 -324q-76 -388 -236 -581t-415 -193z M498 135q76 0 135.5 32.5t105.5 96.5t81 159t64 221h-574q-11 -66 -16.5 -124t-5.5 -108q0 -135 48 -206t162 -71z" />
+<glyph unicode="&#x4d9;" d="M475 -29q-92 0 -162.5 26t-118.5 75t-72.5 120.5t-24.5 162.5q0 37 4 76t12 81l17 90h797l2 6q5 29 8 55.5t3 50.5q0 137 -78.5 207t-222.5 70q-90 0 -190.5 -28t-221.5 -85l36 183q114 43 214.5 64.5t194.5 21.5q110 0 195 -29.5t143 -85t88 -135.5t30 -180 q0 -37 -4.5 -76.5t-12.5 -81.5q-27 -133 -85 -241.5t-141 -185.5t-187 -119t-223 -42zM504 127q69 0 129.5 23t110 65.5t87.5 104t62 139.5l-607 -1q-9 -51 -9 -96q0 -115 57.5 -175t169.5 -60z" />
+<glyph unicode="&#x4da;" d="M492 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM465 -29q-195 0 -289.5 110.5t-94.5 338.5 q0 140 36 325l16 83h787q12 74 18.5 136.5t6.5 115.5q0 139 -49.5 207.5t-165.5 68.5q-80 0 -172 -32t-178 -93l41 207q85 42 170.5 62t170.5 20q199 0 294.5 -112t95.5 -339q0 -141 -36 -324q-76 -388 -236 -581t-415 -193zM498 135q76 0 135.5 32.5t105.5 96.5t81 159 t64 221h-574q-11 -66 -16.5 -124t-5.5 -108q0 -135 48 -206t162 -71z" />
+<glyph unicode="&#x4db;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM475 -29q-92 0 -162.5 26t-118.5 75 t-72.5 120.5t-24.5 162.5q0 37 4 76t12 81l17 90h797l2 6q5 29 8 55.5t3 50.5q0 137 -78.5 207t-222.5 70q-90 0 -190.5 -28t-221.5 -85l36 183q114 43 214.5 64.5t194.5 21.5q110 0 195 -29.5t143 -85t88 -135.5t30 -180q0 -37 -4.5 -76.5t-12.5 -81.5q-27 -133 -85 -241.5 t-141 -185.5t-187 -119t-223 -42zM504 127q69 0 129.5 23t110 65.5t87.5 104t62 139.5l-607 -1q-9 -51 -9 -96q0 -115 57.5 -175t169.5 -60z" />
+<glyph unicode="&#x4dc;" d="M526 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM917 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM347 891l-170 602h207l168 -595l116 595 h187l-116 -595l400 595h207l-404 -602l131 -891h-197l-96 650l-125 -186l-90 -464h-187l90 464l-53 186l-348 -650h-197z" />
+<glyph unicode="&#x4dd;" d="M492 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM883 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM348 716l-160 404h199l171 -432l84 432 h168l-84 -432l339 432h199l-318 -404l120 -716h-179l-88 528l-139 -177l-68 -351h-168l68 351l-69 177l-294 -528h-179z" />
+<glyph unicode="&#x4de;" d="M485 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM876 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM382 -29q-95 0 -199 18t-201 56l38 201 q91 -52 185.5 -78.5t190.5 -26.5q93 0 168.5 24.5t129 69t82.5 106.5t29 137q0 117 -71 177t-210 60h-153l32 166h154q79 0 142.5 19.5t108.5 55.5t69 86.5t24 113.5q0 100 -61.5 147t-189.5 47q-84 0 -180 -20t-210 -60l37 186q124 33 220.5 48.5t175.5 15.5q96 0 172 -22 t128.5 -64.5t80.5 -105t28 -142.5q0 -74 -23.5 -137.5t-67.5 -114t-107 -85t-142 -50.5q112 -21 177 -100t65 -219q0 -113 -44 -206.5t-125 -161t-196 -104.5t-257 -37z" />
+<glyph unicode="&#x4df;" d="M457 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM848 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM426 -22q-94 0 -181.5 14t-178.5 42 l34 173q69 -34 156.5 -51.5t185.5 -17.5q95 0 169 16t125 46t77.5 71.5t26.5 92.5q0 76 -72 122t-212 46h-158l28 144h165q69 0 123 11.5t92.5 31.5t62 47t31.5 58q4 13 4 28q0 59 -66.5 95.5t-197.5 36.5q-71 0 -160 -12.5t-198 -39.5l32 167q220 48 376 48q94 0 169 -16.5 t127 -47.5t80 -76t28 -102q0 -22 -5 -50q-20 -97 -97 -160t-200 -88q112 -21 171.5 -78.5t59.5 -149.5q0 -12 -1.5 -25t-3.5 -27q-13 -77 -59 -141.5t-121.5 -110.5t-179 -71.5t-232.5 -25.5z" />
+<glyph unicode="&#x4e0;" d="M474 -28q-250 0 -382.5 91.5t-132.5 267.5q0 25 3 50.5t8 53.5h201q-3 -17 -5 -33.5t-2 -32.5q0 -109 83.5 -168t254.5 -59q93 0 169 18.5t133.5 55t94 91.5t50.5 128q6 31 6 61q0 106 -76.5 163t-225.5 57h-174l33 166l455 441h-737l33 170h969l-32 -168l-462 -441 q58 0 115 -15t107.5 -42.5t91 -65.5t64.5 -84q40 -74 40 -174q0 -52 -12.5 -107.5t-39.5 -109t-69.5 -103t-102.5 -90.5q-175 -121 -458 -121z" />
+<glyph unicode="&#x4e1;" d="M342 -436q-96 0 -190.5 17t-202.5 57l38 195q75 -49 170 -74t204 -25q195 0 307.5 76.5t138.5 216.5q6 31 6 61q0 91 -58 146q-40 38 -102 56t-142 18h-174l33 166l527 499h-667l28 147h874l-32 -168l-504 -476q64 0 122.5 -16.5t108 -45t87.5 -66t60 -79.5 q19 -36 29.5 -80t10.5 -94q0 -52 -12.5 -107.5t-39.5 -109t-69.5 -103t-102.5 -90.5q-91 -63 -204.5 -92t-243.5 -29z" />
+<glyph unicode="&#x4e2;" d="M532 1850h598l-29 -148h-598zM285 1493h195l-239 -1229l743 1229h256l-290 -1493h-195l239 1229l-743 -1229h-256z" />
+<glyph unicode="&#x4e3;" d="M469 1446h598l-29 -148h-598zM304 1120h184l-157 -809l644 809h184l-218 -1120h-184l157 809l-644 -809h-184z" />
+<glyph unicode="&#x4e4;" d="M513 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM904 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM285 1493h195l-239 -1229l743 1229h256 l-290 -1493h-195l239 1229l-743 -1229h-256z" />
+<glyph unicode="&#x4e5;" d="M469 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1310q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM304 1120h184l-157 -809l644 809h184 l-218 -1120h-184l157 809l-644 -809h-184z" />
+<glyph unicode="&#x4e6;" d="M492 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM480 -29q-398 0 -398 488q0 128 23.5 263 t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104 t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x4e7;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM514 -29q-196 0 -296.5 109t-100.5 312 q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99t54.5 121t32.5 133.5t10.5 135 q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x4e8;" d="M465 -29q-191 0 -287.5 110.5t-96.5 339.5q0 139 36 324q75 385 234 580t416 195q196 0 290.5 -113t94.5 -339q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM928 881q8 56 12.5 105.5t4.5 93.5q0 66 -11 117.5t-36 86.5t-65 53.5t-98 18.5q-77 0 -135.5 -32.5 t-103.5 -94t-78.5 -149.5t-60.5 -199h571zM499 135q77 0 138 35t109 106t85 179.5t67 255.5h-577q-17 -88 -24.5 -162t-7.5 -134q0 -84 15 -139q39 -141 195 -141z" />
+<glyph unicode="&#x4e9;" d="M502 -29q-192 0 -289 100.5t-97 292.5q0 88 21 195q28 143 79 251.5t129 185.5q80 79 176 115t208 36q193 0 290.5 -100t97.5 -294q0 -88 -21 -194q-56 -286 -207.5 -437t-386.5 -151zM910 611q5 32 7.5 62t2.5 58q0 122 -52.5 191t-167.5 69q-70 0 -126.5 -26.5 t-101 -75.5t-76.5 -119.5t-53 -158.5h567zM532 127q70 0 125 25t96 68.5t70.5 102t49.5 124.5h-557q-3 -32 -3 -60q0 -56 11 -103.5t36.5 -82t67.5 -54.5t104 -20z" />
+<glyph unicode="&#x4ea;" d="M492 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM465 -29q-191 0 -287.5 110.5t-96.5 339.5 q0 139 36 324q75 385 234 580t416 195q196 0 290.5 -113t94.5 -339q0 -140 -36 -323q-76 -390 -237 -582t-414 -192zM928 881q8 56 12.5 105.5t4.5 93.5q0 66 -11 117.5t-36 86.5t-65 53.5t-98 18.5q-77 0 -135.5 -32.5t-103.5 -94t-78.5 -149.5t-60.5 -199h571zM499 135 q77 0 138 35t109 106t85 179.5t67 255.5h-577q-17 -88 -24.5 -162t-7.5 -134q0 -84 15 -139q39 -141 195 -141z" />
+<glyph unicode="&#x4eb;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM502 -29q-192 0 -289 100.5t-97 292.5 q0 88 21 195q28 143 79 251.5t129 185.5q80 79 176 115t208 36q193 0 290.5 -100t97.5 -294q0 -88 -21 -194q-56 -286 -207.5 -437t-386.5 -151zM910 611q5 32 7.5 62t2.5 58q0 122 -52.5 191t-167.5 69q-70 0 -126.5 -26.5t-101 -75.5t-76.5 -119.5t-53 -158.5h567z M532 127q70 0 125 25t96 68.5t70.5 102t49.5 124.5h-557q-3 -32 -3 -60q0 -56 11 -103.5t36.5 -82t67.5 -54.5t104 -20z" />
+<glyph unicode="&#x4ec;" d="M442 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM833 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM319 -29q-178 0 -315 82l41 207 q63 -63 142.5 -94t165.5 -31q99 0 179 39.5t141.5 110t104.5 166.5t68 210h-632l33 170h627q4 48 6 98.5t2 88.5q0 39 -3.5 79.5t-14 78t-29.5 70.5t-50.5 57.5t-77.5 38.5t-110 14q-186 0 -364 -125l41 207q168 82 348 82q94 0 166 -21t125.5 -58t89 -87t57.5 -108.5 t31 -122t9 -127.5q0 -116 -27 -252q-36 -184 -105 -328t-165.5 -243t-218.5 -150.5t-265 -51.5z" />
+<glyph unicode="&#x4ed;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM416 -29q-92 0 -164.5 21.5t-139.5 64.5 l38 191q103 -121 283 -121q88 0 159 27t126 77.5t93.5 122.5t61.5 162h-542l28 144h537q1 10 1 19v18q0 55 -13 108t-46 94.5t-88.5 66.5t-140.5 25q-91 0 -174.5 -30.5t-164.5 -92.5l38 193q42 21 82.5 37t82 27t84.5 16.5t90 5.5q124 0 209.5 -36t138 -95.5t75.5 -136.5 t23 -158q0 -38 -4.5 -78t-12.5 -84q-27 -139 -86.5 -248.5t-145.5 -185t-194.5 -115t-233.5 -39.5z" />
+<glyph unicode="&#x4ee;" d="M546 1850h598l-29 -148h-598zM87 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
+<glyph unicode="&#x4ef;" d="M489 1438h598l-29 -148h-598zM10 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
+<glyph unicode="&#x4f0;" d="M517 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM908 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM87 172h109q40 0 73.5 12t62 34t54 53.5 t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5t-106 -14h-148z" />
+<glyph unicode="&#x4f1;" d="M489 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM880 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM10 -272h108q42 0 77 12t66 37.5 t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
+<glyph unicode="&#x4f2;" d="M781 1852h186l-280 -264h-154zM1100 1852h186l-280 -264h-154zM87 172h109q40 0 73.5 12t62 34t54 53.5t49.5 70.5q10 16 21.5 35.5t22.5 38.5l-215 1077h217l150 -830l469 830h213l-619 -1068q-46 -80 -92.5 -150t-88.5 -119q-24 -28 -53.5 -55.5t-67 -50t-84.5 -36.5 t-106 -14h-148z" />
+<glyph unicode="&#x4f3;" d="M703 1648h189l-302 -376h-135zM1043 1648h197l-324 -376h-135zM5 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126 q-60 -79 -136 -114.5t-167 -35.5h-148z" />
+<glyph unicode="&#x4f4;" d="M486 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM877 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM866 658q-59 -27 -107 -43t-91 -24.5 t-82 -11t-80 -2.5q-67 0 -115 5t-82.5 16.5t-59 30t-44.5 46.5q-22 31 -33 66.5t-11 88.5q0 30 3.5 71t11.5 79l100 513h203l-95 -487q-6 -32 -9 -63t-3 -54q0 -40 8 -57.5t20 -28.5q26 -24 69 -32t118 -8q46 0 83.5 3t73.5 13.5t74.5 30t86.5 51.5l123 632h203l-290 -1493 h-203z" />
+<glyph unicode="&#x4f5;" d="M469 1322q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1322q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM829 466q-8 -3 -35.5 -13.5t-69.5 -21.5 t-96.5 -20t-117.5 -9q-85 0 -144 18t-95.5 50.5t-53 77.5t-16.5 99q0 49 12 108l71 367h184l-71 -367q-6 -30 -6 -56q0 -78 52 -107.5t162 -29.5q60 0 121.5 11t132.5 48l97 501h184l-218 -1122h-184z" />
+<glyph unicode="&#x4f6;" d="M569 170h203l106 548q-20 -17 -43 -33.5t-55 -32.5l-53 -26q-35 -17 -93 -30.5t-129 -16.5l-48 -2q-160 0 -232 84q-7 8 -12 16t-8 13q-17 31 -26.5 74t-9.5 98q0 73 18 168l90 465h203l-85 -439q-13 -64 -13 -117q0 -91 43.5 -133.5t138.5 -42.5q50 0 98 11t96 31 q30 13 47 24.5t30 24.5q45 45 75 113t46 150l73 378h203l-290 -1495h-203l-61 -312h-203z" />
+<glyph unicode="&#x4f7;" d="M586 184h183l74 382q-39 -52 -104 -87l-51 -27q-95 -50 -209 -50q-138 0 -204 71.5t-66 212.5q0 74 18 169l52 267h185l-52 -267q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -93 43.5 -135.5t130.5 -42.5q130 0 217 90t121 264l40 206h184l-218 -1122h-184l-54 -276h-183z" />
+<glyph unicode="&#x4f8;" d="M493 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM884 1647q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM211 1493h202l-117 -600h91q87 0 156.5 -22 t118 -65t75 -105.5t26.5 -143.5q0 -26 -2.5 -54t-8.5 -57q-22 -111 -73 -194.5t-123 -139.5t-159.5 -84t-182.5 -28h-293zM1077 1493h203l-290 -1493h-203zM246 166q52 0 99 16t86 50.5t67.5 87t42.5 126.5q9 46 9 87q0 93 -48.5 143.5t-146.5 50.5h-91l-109 -561h91z" />
+<glyph unicode="&#x4f9;" d="M469 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM213 1120h182l-88 -453h91 q105 0 178.5 -20t120 -54.5t68 -82t21.5 -102.5q0 -19 -2 -37.5t-6 -38.5q-32 -168 -164 -250t-346 -82h-273zM1054 1120h184l-218 -1120h-184zM290 153q259 0 293 181q2 11 3 21.5t1 18.5q0 140 -227 140h-83l-70 -361h83z" />
+<glyph unicode="&#x510;" d="M512 -29q-108 0 -192 23t-141 67t-87 107.5t-30 144.5q0 49 10 99q29 149 125 248t253 139q-106 29 -159 91.5t-53 156.5q0 17 1.5 35.5t5.5 37.5q17 91 66 164.5t122 126t166 81t199 28.5q78 0 168.5 -16t205.5 -48l-36 -186q-97 41 -189 60.5t-169 19.5 q-144 0 -230 -63t-105 -175q-4 -23 -4 -47q0 -93 66.5 -138.5t187.5 -45.5h154l-32 -166h-154q-74 0 -138 -18.5t-114 -54.5t-84 -88.5t-49 -121.5q-8 -40 -8 -71q0 -103 74.5 -161.5t223.5 -58.5q96 0 200 25.5t216 79.5l-39 -201q-111 -36 -221.5 -55t-209.5 -19z" />
+<glyph unicode="&#x511;" d="M544 -29q-109 0 -193.5 21t-139.5 67q-45 38 -64.5 86t-19.5 99q0 35 8 69.5t23 66.5t36 59.5t46 48.5l36 30q67 54 158 74q-14 3 -31 8.5t-29 11.5q-16 8 -35.5 23t-36 37.5t-27.5 52t-11 66.5q0 10 1 20t3 21q11 66 52.5 121.5t106 95t149 61.5t181.5 22q70 0 152 -12 t188 -36l-35 -179q-47 16 -94.5 28t-91.5 19.5t-82.5 10.5t-66.5 2l-31 -1q-38 -2 -76.5 -15t-66.5 -30l-44 -28q-17 -14 -26 -30t-14 -40q-3 -14 -3 -26q0 -17 11 -33t43 -38q38 -26 79 -40t98 -14h127l-32 -163h-126q-55 0 -115.5 -18t-108.5 -45t-71.5 -58t-30.5 -65 q-2 -6 -3.5 -18.5t-1.5 -24.5q0 -53 58 -99q4 -2 7 -5t7 -5q32 -23 77.5 -34t99.5 -11q20 0 34 1.5t30 3.5l128 29l15 3q20 4 45 9.5t50 12t46.5 12.5t35.5 12l-36 -181q-99 -27 -198 -41t-190 -14z" />
+<glyph unicode="&#x51a;" d="M504 -27h-10q-211 0 -311.5 117.5t-100.5 366.5q0 130 23.5 265t61.5 253q30 94 65 168t72 129q85 128 196 188t251 60q202 0 301 -120.5t99 -359.5q0 -96 -15 -201t-41 -210q-29 -114 -63.5 -202t-69.5 -152q-58 -105 -126 -168t-146 -97l154 -188l-154 -92zM497 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x51b;" d="M774 141q-123 -170 -330 -170q-81 0 -145.5 26.5t-109 77.5t-68 126t-23.5 173q0 66 10.5 136.5t30.5 140.5t48.5 136t64.5 122q74 115 176 176.5t233 61.5q108 0 174 -43.5t101 -126.5l47 143h164l-299 -1546h-184zM494 127q82 0 152.5 43.5t121.5 134.5 q24 42 43.5 94.5t33.5 108.5t21.5 112.5t7.5 107.5q0 135 -53.5 199t-154.5 64q-170 0 -265 -174q-24 -45 -44 -99t-33.5 -111.5t-21 -115t-7.5 -107.5q0 -257 199 -257z" />
+<glyph unicode="&#x51c;" d="M153 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
+<glyph unicode="&#x51d;" d="M92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
+<glyph unicode="&#x531;" d="M893 -60q-80 40 -157 99q-125 -68 -293 -68q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l201 1036h202l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 68.5 -62t133.5 -24q75 0 132 20q-51 54 -87.5 107t-55.5 104l155 92q18 -51 50 -98t77 -92 q23 37 32.5 70.5t14.5 56.5l213 1098h202l-201 -1036q-18 -93 -49.5 -165.5t-76.5 -129.5q27 -18 55.5 -34t57.5 -30l-100 -158v0z" />
+<glyph unicode="&#x532;" d="M181 1036q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q68 -85 68 -224q0 -66 -15 -142l-31 -161h-202l43 223q8 40 8 77q0 26 -5 50.5t-17 45.5q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5q-33 -35 -52.5 -79t-29.5 -94l-93 -477h774 l-33 -170h-774l-87 -451h-201z" />
+<glyph unicode="&#x533;" d="M760 451h-269q-109 0 -187.5 31t-126.5 97q-32 43 -49 101t-17 136q0 76 18 172q27 143 78.5 244t123.5 165t164 93.5t204 29.5q111 0 192.5 -29.5t129.5 -93.5q32 -42 48.5 -100.5t16.5 -133.5q0 -80 -19 -175l-72 -367h125l-33 -170h-125l-87 -451h-202zM793 621 l85 437q5 27 8.5 53t3.5 50q0 28 -5 53t-16 48q-21 42 -69 68t-136 26t-142 -27t-91 -78q-36 -49 -62.5 -118.5t-40.5 -144.5q-8 -42 -12 -81.5t-4 -74.5q0 -68 14 -108q16 -46 63 -74.5t135 -28.5h269z" />
+<glyph unicode="&#x534;" d="M855 1098q4 20 6 39t2 39q0 26 -5 50t-17 45q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5q-32 -34 -52 -78t-30 -95l-43 -223h-202l31 161q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q33 -42 50.5 -97.5t17.5 -127.5q0 -65 -15 -141 l-81 -415h187l-33 -170h-187l-87 -451h-202z" />
+<glyph unicode="&#x535;" d="M449 -29q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l201 1036h202l-72 -373h774l-33 -170h-774l-108 -555q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l43 223h202l-31 -161 q-24 -125 -73.5 -216t-121.5 -151t-164.5 -89.5t-203.5 -29.5z" />
+<glyph unicode="&#x536;" d="M56 331h203l-31 -161h51q51 0 114 24.5t132 70.5t135 109.5t126 147.5q66 92 105 182t61 191q12 55 17.5 104t5.5 92q0 104 -29 162q-27 55 -82.5 79t-136.5 24q-86 0 -148 -25.5t-109 -77.5q-51 -57 -85.5 -145t-59.5 -213l-4 -20h-203l4 20q32 162 91.5 283.5 t150.5 201.5q84 74 185 107t208 33q52 0 101.5 -8t94.5 -24.5t83 -43.5t66 -64q38 -51 60 -128t22 -173q0 -44 -4.5 -90t-15.5 -95q-20 -95 -55.5 -180t-83.5 -162t-101.5 -140.5t-107.5 -113.5t-104 -82.5t-89 -45.5h359l-33 -170h-956z" />
+<glyph unicode="&#x537;" d="M265 1493h203l-73 -373h790l-33 -170h-790l-152 -780h651l-33 -170h-853z" />
+<glyph unicode="&#x538;" d="M181 1036q24 125 73.5 216t121.5 151t164.5 89.5t203.5 29.5t192 -29.5t130 -89.5q33 -42 50.5 -97.5t17.5 -127.5q0 -64 -15 -142l-31 -161h-202l43 223q4 20 6 39t2 38q0 26 -5 50.5t-17 46.5q-20 36 -66.5 61t-135.5 25q-87 0 -143.5 -24t-92.5 -62 q-33 -35 -52.5 -79.5t-29.5 -94.5l-180 -928h774l-33 -170h-975z" />
+<glyph unicode="&#x539;" d="M570 -29q-71 0 -126 25.5t-89 79.5q-22 35 -33.5 81.5t-11.5 106.5q0 33 4 71t12 80q23 118 65 204t98 143t122 85t138 28h138l4 24q11 66 19.5 124.5t8.5 109.5q0 34 -5 63t-16 54q-26 56 -80 81t-148 25q-92 0 -157 -24t-111 -78q-43 -51 -75 -134t-57 -211l-176 -909 h-195l180 934q29 152 86 260t135 180q80 73 181 109.5t220 36.5t206 -37t138 -112q68 -100 68 -261q0 -42 -4.5 -87.5t-14.5 -95.5l-10 -52h131l-34 -175h-131l-56 -285q-20 -105 -60.5 -187t-97.5 -141q-56 -57 -123 -86.5t-143 -29.5zM605 135q34 0 63 14t53 47 q29 39 46 96t30 123l56 285h-138q-35 0 -62.5 -12t-51.5 -46q-11 -15 -21 -35t-21 -53q-10 -30 -20 -69.5t-17.5 -81t-12 -80.5t-4.5 -69q0 -49 11.5 -72.5t30.5 -34.5q22 -12 58 -12z" />
+<glyph unicode="&#x53a;" d="M411 -29q-115 0 -197 35.5t-126 108.5q-29 49 -44 117.5t-15 149.5q0 79 15 162q25 129 82 239.5t134 187.5q149 149 367 149h269l72 373h202l-72 -373h125l-33 -170h-125l-87 -446q-29 -147 -80.5 -246.5t-123.5 -162.5q-74 -65 -167 -94.5t-196 -29.5zM441 135 q149 0 233 95q36 41 56 91.5t32 111.5l101 517h-269q-89 0 -145.5 -32.5t-95.5 -90.5q-37 -54 -63.5 -129.5t-41.5 -154.5q-8 -42 -13.5 -89t-5.5 -92q0 -61 12 -104q17 -58 63.5 -90.5t136.5 -32.5z" />
+<glyph unicode="&#x53b;" d="M292 1493h202l-84 -432q68 42 138 61t151 19q103 0 184.5 -29.5t130.5 -89.5q33 -42 50.5 -98.5t17.5 -128.5q0 -65 -15 -140l-32 -161h-202l44 223q8 38 8 77q0 26 -5 50.5t-17 46.5q-22 38 -70 62t-134 24t-142 -24t-92 -62q-33 -35 -52.5 -79.5t-29.5 -94.5l-140 -717 h-202z" />
+<glyph unicode="&#x53c;" d="M299 1493h203l-258 -1323h721l-33 -170h-924z" />
+<glyph unicode="&#x53d;" d="M658 -29q-106 0 -167 26.5t-89 82.5q-26 51 -26 132q0 45 7 97.5t19 115.5l101 520h-183l-184 -945h-185l289 1493h186l-72 -373h369l-140 -719q-9 -45 -14 -80.5t-5 -64.5q0 -35 10 -63q12 -32 39.5 -45t75.5 -13t79.5 13.5t53.5 44.5q23 32 38 85.5t29 122.5l140 719 h186l-135 -695q-23 -119 -52.5 -204.5t-76.5 -140.5q-48 -57 -119 -83t-174 -26z" />
+<glyph unicode="&#x53e;" d="M474 -29q-102 0 -176.5 22t-127.5 65q-55 45 -80.5 103t-34.5 129q-6 49 -6 101q0 56 6.5 113.5t18.5 116.5q26 126 72.5 242.5t110.5 217.5h-138l80 412h183l-48 -245h52q58 61 125.5 112.5t142.5 87.5q76 37 155 54.5t170 17.5q47 0 93 -4.5t85 -13.5t75 -22.5 t78 -31.5l-42 -215q-93 70 -180.5 97t-169.5 27q-94 0 -173.5 -29t-145.5 -81q165 -4 281.5 -47t184.5 -121q50 -57 76 -137t26 -180q0 -38 -4 -78t-12 -83q-16 -81 -44.5 -161.5t-66.5 -148.5t-89.5 -127t-123.5 -103t-159.5 -67t-193.5 -23zM512 135q84 0 144 17.5 t105 49.5q42 30 71 71.5t50 99.5q3 8 10 28.5t15.5 50t18 67t17.5 81.5q8 45 13 87t5 80q0 20 -1 38t-4 35q-9 57 -36 99.5t-83 73.5q-59 32 -150 50t-223 18h-12q-61 -94 -103 -212.5t-68 -246.5q-9 -45 -16 -86.5t-11 -77t-6 -62.5t-2 -42q0 -43 10 -81t38 -68 q30 -33 81.5 -51.5t136.5 -18.5z" />
+<glyph unicode="&#x53f;" d="M821 431q-63 -38 -132.5 -58.5t-157.5 -20.5q-102 0 -183.5 29.5t-130.5 89.5q-68 83 -68 225q0 64 15 142l128 655h202l-140 -717q-8 -40 -8 -75q0 -26 5 -51t18 -48q11 -19 27.5 -35t40.5 -27t57 -17.5t76 -6.5q87 0 143.5 24t92.5 62q33 35 52.5 79.5t29.5 94.5 l67 344h202l-218 -1120h-202z" />
+<glyph unicode="&#x540;" d="M251 266q-48 21 -88.5 44t-69.5 52q-23 22 -36 47t-13 57q0 35 19.5 77.5t62.5 91.5q32 37 84 82t126 99q64 46 137.5 93.5t152 93.5t161.5 90t167 85l-119 315h238l143 -375q-119 -52 -231 -108t-212 -112q-95 -53 -183 -108t-157 -106q-64 -48 -102 -86 q-23 -23 -33.5 -40.5t-10.5 -32.5q0 -19 19 -38q11 -10 28.5 -22t49.5 -26l647 -289l-40 -204z" />
+<glyph unicode="&#x541;" d="M829 -48q-25 54 -51 102.5t-54 93.5q-103 -84 -214.5 -130.5t-225.5 -46.5q-71 0 -127 19t-91 56q-55 55 -55 149q0 35 7 70q14 73 49 130t84 95q51 39 114.5 59.5t136.5 20.5q101 0 189.5 -38t164.5 -105q73 103 122 216t76 244q24 115 24 204q0 52 -7.5 92t-21.5 69 q-28 57 -84.5 80.5t-133.5 23.5t-141.5 -23t-115.5 -80q-50 -56 -87 -147t-59 -211l-4 -22h-203l4 22q30 165 93.5 285.5t150.5 198.5q84 75 183 108t208 33q110 0 200.5 -33t145.5 -105q40 -53 61 -127t21 -168q0 -90 -21 -193q-17 -85 -46 -167t-64 -154 q-34 -69 -79.5 -140.5t-102.5 -137.5q81 -111 130 -241zM320 133q68 0 148 37t158 109q-54 58 -117.5 93.5t-132.5 35.5q-68 0 -111 -36t-56 -102q-4 -19 -4 -38q0 -48 29 -73.5t86 -25.5z" />
+<glyph unicode="&#x542;" d="M855 1098q4 20 6 39t2 39q0 26 -5 50t-17 45q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5q-32 -34 -52 -78t-30 -95l-43 -223h-202l31 161q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q33 -42 50.5 -97.5t17.5 -127.5q0 -65 -15 -141 l-168 -866h187l-33 -170h-389z" />
+<glyph unicode="&#x543;" d="M215 0q-61 0 -109 13.5t-78 40.5q-22 20 -36 50.5t-14 75.5q0 12 1.5 25.5t3.5 27.5q17 93 84.5 205.5t173.5 249.5q57 74 121 150.5t124 144.5l-194 510h228l128 -338q175 175 333.5 270t311.5 95l-34 -175q-109 0 -245.5 -91t-301.5 -266l313 -824l-32 -164h-778z M795 175l-242 633q-76 -90 -152 -190q-86 -113 -133 -190t-57 -134q-3 -15 -3 -28q0 -43 35 -65q22 -14 55.5 -20t78.5 -6h418z" />
+<glyph unicode="&#x544;" d="M376 -29q-106 0 -188 28t-133 91q-69 84 -69 226q0 64 15 141l201 1036h202l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l213 1098h389l-33 -170h-187l-168 -866q-24 -125 -73.5 -216 t-121.5 -151t-164.5 -89.5t-203.5 -29.5z" />
+<glyph unicode="&#x545;" d="M505 -29q-135 0 -222.5 38.5t-137.5 104.5q-35 46 -51.5 102.5t-16.5 120.5q0 27 3 54t8 56h210q-8 -46 -8 -86q0 -38 8 -71.5t27 -62.5q28 -43 80 -67.5t134 -24.5q79 0 140.5 23t106.5 64q47 42 74 97.5t38 112.5q6 34 6 64q0 86 -46 136q-32 35 -84.5 54t-125.5 19 h-592l33 170h592q66 0 115.5 20.5t87.5 57.5q39 38 59.5 83t29.5 90q7 34 7 66q0 84 -52.5 124t-153.5 40q-118 0 -189.5 -56t-95.5 -180h-210q18 91 65 165t116 127t157 80.5t188 27.5q102 0 179.5 -28t128.5 -79q38 -38 58 -88.5t20 -115.5q0 -20 -1.5 -40.5t-6.5 -42.5 q-23 -118 -94 -204t-171 -117q64 -17 107 -52t66 -84q28 -59 28 -135q0 -42 -9 -90q-18 -97 -66 -182.5t-121 -148.5q-75 -66 -179 -104t-239 -38z" />
+<glyph unicode="&#x546;" d="M562 -29q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l168 866h-187l33 170h389l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l43 223h202l-31 -161q-24 -125 -73.5 -216 t-121.5 -151t-164.5 -89.5t-203.5 -29.5z" />
+<glyph unicode="&#x547;" d="M480 -29q-109 0 -200.5 34t-147.5 110q-40 55 -61.5 135.5t-21.5 177.5q0 41 4 83t12 86q15 78 40 148.5t56 131.5t66.5 112t71.5 91q39 44 77 73.5t74 48t71 27.5t69 11l-82 40q-51 25 -104.5 34t-90.5 9h-45l33 170h123q51 0 112 -13t127 -43l465 -213l-41 -212 l-224 103q-16 8 -35 13t-36 9q-22 5 -45 7.5t-43 2.5q-77 0 -143 -41.5t-117 -107.5q-27 -35 -50.5 -77t-46.5 -97q-21 -50 -37 -104t-27.5 -109t-17.5 -109t-6 -103q0 -94 24.5 -152t86.5 -87q54 -25 138 -25t145 24.5t109 78.5q100 114 145 358l4 22h203l-4 -22 q-29 -163 -91.5 -284.5t-152.5 -200.5q-89 -78 -187.5 -109t-198.5 -31z" />
+<glyph unicode="&#x548;" d="M200 1036q24 125 73.5 216t121.5 151t164.5 89.5t203.5 29.5t192 -29.5t130 -89.5q33 -42 50.5 -97.5t17.5 -127.5q0 -66 -15 -142l-201 -1036h-202l213 1098q4 20 6 39t2 38q0 26 -5 50.5t-17 46.5q-20 36 -66.5 61t-135.5 25q-87 0 -143.5 -24t-92.5 -62 q-33 -35 -52.5 -79.5t-29.5 -94.5l-213 -1098h-201z" />
+<glyph unicode="&#x549;" d="M109 267l42 212l218 -101q29 -14 73 -24t86 -10q77 0 143 38t123 112q27 35 51.5 78.5t45.5 95.5q22 53 38.5 110t27.5 113.5t16.5 109t5.5 97.5q0 97 -28 152t-84 81q-54 25 -138 25q-81 0 -143.5 -24t-111.5 -80q-50 -57 -86 -146.5t-58 -210.5l-4 -22h-203l4 22 q30 166 95.5 288t148.5 196q85 75 183.5 108t204.5 33q111 0 202 -34.5t146 -109.5q38 -52 60 -129.5t22 -174.5q0 -84 -18 -177q-20 -99 -57.5 -194t-84.5 -172q-48 -78 -97 -128.5t-98 -82.5q-51 -34 -99 -50.5t-88 -16.5l213 -99l-41 -210z" />
+<glyph unicode="&#x54a;" d="M1008 917q9 48 15.5 95t6.5 91q0 56 -13 101q-17 60 -62 99t-130 48l-170 -876h-190l170 876q-90 -12 -148.5 -48t-97.5 -93q-41 -59 -65 -136.5t-39 -156.5l-8 -42h-190l11 57q25 131 77 238.5t134 185.5t194 121t265 43q152 0 249.5 -43t146.5 -121q30 -48 43.5 -107.5 t13.5 -128.5q0 -44 -5 -91t-15 -97l-181 -932h-190z" />
+<glyph unicode="&#x54b;" d="M55 332h203l-31 -162h40q60 0 124.5 23t130.5 66q22 48 38.5 96.5t24.5 91.5q7 35 7 69q0 56 -23 92q-21 32 -55.5 44.5t-90.5 14.5q-28 1 -58.5 3t-61 7.5t-59.5 15.5t-53 28q-39 29 -52 68t-13 86q0 31 3.5 60.5t8.5 50.5q12 58 35.5 119.5t57.5 118.5q35 60 84 113 t115 95q66 41 146 64.5t181 23.5q76 0 136.5 -14t106.5 -39t78.5 -59.5t53.5 -74.5q26 -51 38.5 -114t12.5 -132q0 -48 -5.5 -96t-15.5 -96q-26 -126 -80.5 -237.5t-129.5 -208.5t-160.5 -169.5t-169.5 -109.5h359l-33 -170h-956zM710 423q41 45 79.5 101t70.5 116 q32 62 54.5 124.5t36.5 130.5q11 49 17 100.5t6 99.5q0 37 -4.5 70.5t-14.5 60.5q-23 63 -79 96.5t-147 33.5q-93 0 -159.5 -33t-113.5 -88q-22 -26 -40 -56t-32 -60.5t-23.5 -60t-14.5 -54.5q-6 -30 -6 -58q0 -20 3 -36.5t11 -27.5q17 -26 52.5 -32t91.5 -8 q24 -1 51.5 -4.5t55.5 -13t54 -28.5t46 -51q37 -59 37 -145q0 -46 -10 -95q-4 -20 -9.5 -40.5t-12.5 -41.5z" />
+<glyph unicode="&#x54c;" d="M107 1036q24 125 73.5 215.5t121.5 150.5t164.5 89t203.5 29t192 -29t130 -89q33 -42 50.5 -97.5t17.5 -127.5q0 -65 -15 -141l-81 -415h187l-33 -170h-187l-87 -451h-202l213 1098q4 20 6 39t2 39q0 26 -5 50t-17 45q-22 38 -70 61.5t-134 23.5t-142 -23.5t-92 -61.5 q-32 -34 -52 -78t-30 -95l-213 -1098h-201z" />
+<glyph unicode="&#x54d;" d="M468 -29q-111 0 -192 29.5t-130 89.5q-68 83 -68 224q0 65 15 143l201 1036h202l-213 -1098q-8 -40 -8 -76q0 -26 5 -51t17 -47q21 -38 67.5 -62t133.5 -24q86 0 143.5 24t93.5 62q35 37 54 82.5t28 91.5l213 1098h202l-201 -1036q-24 -125 -73.5 -216t-121.5 -151 t-164.5 -89.5t-203.5 -29.5z" />
+<glyph unicode="&#x54e;" d="M707 431q-69 -42 -139 -60.5t-151 -18.5q-102 0 -182.5 29t-130.5 90q-69 84 -69 226q0 64 15 141l55 282h202l-67 -344q-8 -40 -8 -75q0 -26 5 -51t18 -48q11 -19 27.5 -35t40.5 -27t57 -17.5t76 -6.5q87 0 143.5 24t92.5 62q35 37 54 82.5t28 91.5l140 717h202 l-258 -1323h228l-33 -170h-430z" />
+<glyph unicode="&#x54f;" d="M481 -29q-124 0 -214 34.5t-147 97.5q-84 93 -84 238q0 25 2.5 51.5t7.5 54.5h210q-4 -20 -6 -38.5t-2 -35.5q0 -96 54 -157q35 -40 88.5 -60.5t122.5 -20.5q133 0 228 75q47 37 79.5 90.5t43.5 120.5q4 23 4 48q0 41 -13 71t-36 53q-26 26 -67.5 48.5t-104.5 46.5 q-18 7 -35 13t-31.5 11t-25 8.5l-13.5 4.5q-57 19 -107.5 42t-91.5 52q-42 30 -71 68.5t-39 100.5q-4 23 -4 54q0 54 15.5 114t48.5 118q41 71 106 126.5t157 87.5q93 32 205 32q118 0 196.5 -32t124.5 -87q34 -41 50 -90.5t16 -106.5q0 -20 -1.5 -41t-6.5 -43h-210 q6 33 6 64q0 32 -7 58.5t-23 47.5q-50 65 -177 65q-60 0 -109 -15t-89 -47q-39 -32 -62 -74.5t-31 -88.5q-4 -20 -4 -41q0 -46 21.5 -79.5t66.5 -61.5q29 -19 59 -31.5t53 -20.5q60 -22 129.5 -46.5t131.5 -57.5q63 -34 107.5 -80t61.5 -118q9 -38 9 -80q0 -66 -20 -136 t-58 -135q-50 -85 -123.5 -145t-171.5 -93q-101 -34 -219 -34z" />
+<glyph unicode="&#x550;" d="M200 1036q24 125 73.5 216t121.5 151t164.5 89.5t203.5 29.5t192 -29.5t130 -89.5q33 -42 50.5 -97.5t17.5 -127.5q0 -64 -15 -142l-31 -161h-202l43 223q4 20 6 39t2 38q0 26 -5 50.5t-17 46.5q-20 36 -66.5 61t-135.5 25q-87 0 -143.5 -24t-92.5 -62 q-33 -35 -52.5 -79.5t-29.5 -94.5l-213 -1098h-201z" />
+<glyph unicode="&#x551;" d="M506 -29q-132 0 -220.5 37.5t-139.5 105.5q-35 47 -52 103.5t-17 121.5q0 50 11 108h210q-9 -45 -9 -87q0 -79 35 -133q26 -41 76.5 -66.5t136.5 -25.5q84 0 146 25t107 69t72 101t38 117q6 31 6 59q0 78 -47 128q-32 34 -84 52.5t-125 18.5h-594l33 170h273 q-29 17 -47.5 45t-29.5 63q-12 40 -12 82q0 13 1.5 27t3.5 28q14 84 60.5 159.5t115.5 129.5t157.5 82.5t195.5 28.5t185.5 -28.5t126.5 -81.5q72 -78 72 -200q0 -42 -9 -90q-22 -118 -93 -201q-35 -41 -78.5 -70t-92.5 -44q64 -17 106.5 -53t65.5 -86q15 -32 21.5 -65.5 t6.5 -68.5q0 -21 -2 -42t-6 -43q-17 -96 -64 -181t-122 -151t-178.5 -105t-239.5 -39zM680 875q71 0 120.5 21t83.5 54q35 33 58 78.5t32 91.5q6 28 6 60q0 29 -6 55.5t-20 49.5q-10 16 -24.5 29t-37.5 23q-44 19 -117 19q-72 0 -120.5 -18t-83.5 -52q-64 -63 -84 -166 q-3 -17 -5 -34t-2 -34q0 -29 5.5 -55.5t18.5 -46.5q22 -36 66 -55.5t110 -19.5z" />
+<glyph unicode="&#x552;" d="M280 1493h203l-73 -373h760l-34 -175h-760l-184 -945h-202z" />
+<glyph unicode="&#x553;" d="M403 158q-135 5 -215 51t-111 120q-16 39 -23.5 91.5t-7.5 112.5q0 112 23 233q27 142 75 252.5t106 182.5q32 40 70 70t85 51t104.5 33.5t129.5 15.5l24 122h193l-24 -122q133 -5 212.5 -47.5t115.5 -121.5q34 -77 34 -187q0 -55 -7.5 -117.5t-21.5 -132.5 q-27 -140 -68.5 -250t-107.5 -188t-161.5 -121.5t-231.5 -48.5l-31 -157h-193zM606 1203q-75 -3 -128 -26.5t-91 -74.5q-39 -52 -67.5 -134t-51.5 -203q-14 -70 -21 -127t-7 -104q0 -67 16 -111q19 -54 62.5 -79t115.5 -28zM627 316q42 3 74.5 9.5t58 19t46 32.5t39.5 49 q16 24 34 58t35 77t32 94t26 109t15 109.5t4 94.5q0 49 -3.5 83.5t-8.5 50.5q-7 25 -24 43.5t-40.5 31t-53 19t-62.5 7.5z" />
+<glyph unicode="&#x554;" d="M141 244h-190l34 175h190l129 661q18 94 59.5 174t113.5 141q70 60 164.5 92.5t215.5 32.5q126 0 209 -34t127 -93q32 -42 46.5 -97.5t14.5 -115.5q0 -26 -2.5 -51.5t-7.5 -51.5q-18 -98 -63.5 -177t-111.5 -137q-147 -129 -363 -129q-46 0 -84 6.5t-73 20.5 q-29 12 -60 33t-48 51l-64 -326h724l-34 -175h-724l-47 -244h-202zM733 798q75 0 124.5 19t86.5 58q29 31 58.5 83.5t41.5 118.5q6 36 6 70q0 41 -8 74.5t-20 56.5q-10 17 -25.5 32.5t-42.5 26.5q-24 9 -58 14t-73 5q-81 0 -133 -21t-87 -56q-37 -36 -62 -88.5t-36 -110.5 q-4 -20 -5.5 -38.5t-1.5 -37.5q0 -37 7 -69t23 -57q25 -39 75 -59.5t130 -20.5z" />
+<glyph unicode="&#x555;" d="M480 -29q-398 0 -398 488q0 128 23.5 263t61.5 253q31 97 66 170t71 127q84 125 194 186.5t253 61.5q201 0 300.5 -119.5t99.5 -363.5q0 -60 -6 -125.5t-17.5 -132.5t-27.5 -133.5t-36 -129.5q-30 -94 -65 -168t-72 -129q-85 -128 -196 -188t-251 -60zM497 135 q49 0 90 13.5t75 39t62.5 62t53.5 83.5t47 104t40 119.5t33 128t25 131t15.5 127.5t5.5 117q0 66 -9.5 120.5t-33 93.5t-64 60.5t-103.5 21.5q-49 0 -89.5 -13.5t-74 -38.5t-62 -62t-53.5 -83q-38 -71 -68.5 -162t-53 -189.5t-34.5 -196t-12 -179.5q0 -69 10 -124.5 t34 -93.5t64.5 -58.5t101.5 -20.5z" />
+<glyph unicode="&#x556;" d="M479 -29q-63 0 -114 3t-91.5 9.5t-73 16.5t-59.5 24q-61 32 -91 84t-40 121q-3 19 -4 37.5t-1 37.5q0 60 9.5 117.5t18.5 115.5l3 19h194l-3 -19q-12 -62 -19.5 -114t-7.5 -96q0 -24 2.5 -45.5t8.5 -40.5q17 -52 61 -80t129 -28l159 819q-169 0 -250 48.5t-81 154.5 q0 33 7 68q13 66 43.5 118t87.5 87q105 65 309 65h182l-72 -373q121 -5 203.5 -39t119.5 -101q20 -38 31 -93t11 -124q0 -51 -6 -108t-19 -119q-17 -81 -43.5 -161.5t-60.5 -144.5q-35 -66 -84 -119.5t-120 -86.5q-31 -14 -69.5 -25.5t-80.5 -17.5q-43 -6 -92.5 -8t-96.5 -2 zM634 1329q-48 0 -81.5 -3.5t-56.5 -14.5q-24 -11 -38 -32t-21 -56q-2 -9 -3 -17t-1 -16q0 -38 29 -53q20 -11 51.5 -14t79.5 -3zM594 133q84 0 139 27t90 77q34 48 58.5 123t44.5 177q14 69 21.5 125t7.5 101q0 53 -12 89q-18 54 -66.5 75.5t-123.5 21.5z" />
+<glyph unicode="&#x559;" d="M819 1007q-51 0 -92.5 17t-71 46.5t-46 70t-16.5 88.5q0 13 1.5 26t3.5 27q11 57 42 107t75 87t98.5 58.5t111.5 21.5l-24 -123q-36 0 -69 -14.5t-58.5 -39.5t-41 -58t-15.5 -69q0 -53 34 -87.5t91 -34.5q-6 -31 -12 -61.5t-11 -61.5z" />
+<glyph unicode="&#x55a;" d="M568 1341l29 152h211l-29 -152l-226 -319h-129z" />
+<glyph unicode="&#x55b;" d="M810 1645h219l-395 -376h-156z" />
+<glyph unicode="&#x55c;" d="M170 1265q12 60 43 114t76 98t102.5 74.5t121.5 45.5q26 6 55 12.5t61 13.5q63 14 120 38.5t102 64.5t58 103h152q-11 -60 -41 -112.5t-73 -95.5t-96.5 -74t-111.5 -46q-35 -10 -70 -17.5t-70 -14.5q-69 -13 -125.5 -35t-97.5 -60q-41 -39 -54 -109h-152v0z" />
+<glyph unicode="&#x55d;" d="M551 1638h198l197 -376h-143z" />
+<glyph unicode="&#x55e;" d="M737 1256q-49 0 -85.5 11.5t-64.5 33.5q-31 24 -50 61.5t-22 91.5h165q-1 -32 23 -46.5t56 -14.5q26 0 47.5 8.5t35.5 22.5q26 26 35 71q4 17 4 37q0 29 -9.5 50.5t-26.5 38.5q-44 42 -131 42q-23 0 -48 -3t-51 -10l-2 -1q-138 -32 -218.5 -129t-111.5 -255h-158 q22 115 67 205t108 155q64 66 145 109.5t166 63.5q64 15 129 15q72 0 134 -19t104 -55q36 -31 56 -75.5t20 -99.5q0 -33 -7 -64q-11 -51 -36 -95.5t-65 -77.5t-93 -52t-116 -19z" />
+<glyph unicode="&#x55f;" d="M216 1556h140l-33 -169h716l-24 -122h-856z" />
+<glyph unicode="&#x561;" d="M231 -27q-62 0 -103 22t-61 81q-15 45 -15 111q0 54 9.5 123.5t26.5 160.5l126 649h168l-125 -641q-11 -59 -18.5 -102.5t-12.5 -89.5q-2 -18 -3.5 -34t-1.5 -30q0 -45 18.5 -70.5t71.5 -25.5q42 0 72 16t50 45q24 35 44.5 108.5t41.5 182.5l125 641h168l-125 -641 q-17 -89 -25.5 -150.5t-8.5 -99.5q0 -28 5 -46q7 -24 29 -40t64 -16q35 0 60 12.5t42.5 35t29.5 52t22 64.5q21 75 43 188l125 641h167l-218 -1120h-147l-1 96q-49 -65 -104 -94t-118 -29q-69 0 -115 34t-60 107q-49 -72 -106 -106.5t-140 -34.5z" />
+<glyph unicode="&#x562;" d="M330 1120h184l-33 -168q138 195 370 195q139 0 205 -70.5t66 -211.5q0 -38 -5 -80.5t-14 -90.5l-47 -244h-185l47 244q6 32 9.5 61t3.5 54q0 92 -43 135t-131 43q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-95 -490h682l-28 -143h-682l-82 -426h-184z" />
+<glyph unicode="&#x563;" d="M763 139q-63 -85 -146.5 -128.5t-187.5 -43.5q-103 0 -174 41t-112 116q-52 96 -52 239q0 43 4.5 90t14.5 98q27 141 79 250t121 184q72 77 160 117.5t188 40.5q102 0 170 -42.5t97 -127.5l49 147h165l-190 -977h168l-28 -143h-168l-83 -426h-185zM491 123 q137 0 224.5 111.5t128.5 320.5q20 103 20 179q0 125 -51 189t-154 64q-70 0 -126 -28.5t-97 -79.5q-33 -41 -60 -101t-47 -127.5t-31 -138.5t-11 -134q0 -88 23 -146q23 -56 69 -82.5t112 -26.5z" />
+<glyph unicode="&#x564;" d="M849 694q6 32 9.5 61t3.5 54q0 92 -43 135t-131 43q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-123 -633h-184l218 1120h164l-13 -168q138 195 370 195q140 0 205.5 -71t65.5 -211q0 -38 -5 -80.5t-14 -90.5l-107 -551h148l-28 -143h-148l-82 -426h-185z" />
+<glyph unicode="&#x565;" d="M347 -29q-137 0 -202.5 69.5t-65.5 210.5q0 78 19 173l220 1132h184l-85 -436h721l-28 -143h-721l-107 -553q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l46 235h185l-140 -720h-185l33 168q-69 -97 -162 -147t-210 -50z" />
+<glyph unicode="&#x566;" d="M763 139q-63 -85 -146.5 -128.5t-187.5 -43.5q-103 0 -174 41t-112 116q-52 96 -52 239q0 43 4.5 90t14.5 98q27 141 79 250t121 184q72 77 160 117.5t188 40.5q102 0 170 -42.5t97 -127.5l49 147h165l-273 -1401h168l-28 -145h-353zM491 123q137 0 224.5 111.5 t128.5 320.5q20 103 20 179q0 125 -51 189t-154 64q-70 0 -126 -28.5t-97 -79.5q-33 -41 -60 -101t-47 -127.5t-31 -138.5t-11 -134q0 -88 23 -146q23 -56 69 -82.5t112 -26.5z" />
+<glyph unicode="&#x567;" d="M358 1556h184l-85 -436h634l-28 -143h-634l-161 -829h549l-29 -148h-733z" />
+<glyph unicode="&#x568;" d="M330 1120h164l-13 -168q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-135 -694h-185l135 694q6 32 9.5 60.5t3.5 54.5q0 91 -42.5 134.5t-131.5 43.5q-133 0 -219 -91.5t-119 -262.5l-178 -916h682l-27 -143h-866z" />
+<glyph unicode="&#x569;" d="M213 1120h164l-13 -170q45 58 88.5 96t91.5 61t100 31.5t100 8.5q112 0 187.5 -40t121.5 -119q30 -53 46.5 -120t16.5 -152q0 -36 -3 -75.5t-10 -81.5h101l-28 -143h-104q-36 -132 -88 -217t-113 -136t-125.5 -71.5t-130.5 -20.5q-70 0 -123 19.5t-87 56.5 q-51 55 -51 143q0 31 6 64q15 80 53 137t88 94q51 38 111 56t120 18h201q7 38 10 73t3 67q0 108 -39 180q-31 56 -87 86t-145 30q-72 0 -133 -21t-109 -66q-47 -44 -80 -113.5t-53 -175.5l-203 -1045h-183zM641 107q40 0 75.5 16t68.5 53q35 38 63 96t52 144h-196 q-28 0 -55 -10.5t-49 -29.5t-41 -49.5t-27 -72.5q-4 -19 -4 -40q0 -37 16 -63q13 -20 36.5 -32t60.5 -12z" />
+<glyph unicode="&#x56a;" d="M377 -29q-124 0 -201.5 44.5t-116.5 122.5q-23 47 -34.5 105t-11.5 125q0 88 20 191q22 112 65.5 213t115.5 180q70 78 165 123t219 45h277l85 436h185l-85 -436h168l-28 -143h-168l-92 -472q-22 -113 -66.5 -210t-117.5 -171q-72 -72 -166.5 -112.5t-212.5 -40.5z M411 127q72 0 129 31t99 85t74.5 132.5t52.5 183.5l81 418h-275q-60 0 -113.5 -29t-98.5 -83q-46 -55 -79 -130.5t-53 -175.5t-20 -176q0 -83 23 -141q22 -56 66.5 -85.5t113.5 -29.5z" />
+<glyph unicode="&#x56b;" d="M380 1556h184l-117 -604q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-135 -694h-185l135 694q6 32 9.5 61t3.5 54q0 91 -42.5 134.5t-131.5 43.5q-128 0 -215.5 -87.5t-122.5 -266.5l-206 -1059h-183z" />
+<glyph unicode="&#x56c;" d="M477 1120h184l-273 -1403h395l-28 -143h-579z" />
+<glyph unicode="&#x56d;" d="M296 1556h167l-103 -532q48 63 102.5 93t121.5 30q132 0 163 -109q11 -39 11 -92q0 -42 -6.5 -95.5t-19.5 -119.5l-49 -252q-12 -61 -20 -114t-11 -80q-2 -16 -3 -30.5t-1 -27.5q0 -48 19 -74t73 -26q42 0 71 16t47 45q21 35 42.5 107t43.5 184l124 641h167l-217 -1120 h-167l18 96q-48 -63 -102.5 -93t-121.5 -30q-132 0 -163 109q-11 39 -11 92q0 42 6.5 95.5t19.5 119.5l49 252q13 66 20.5 117.5t10.5 77.5q2 16 3 30t1 28q0 47 -19 73t-73 26q-42 0 -71 -16t-47 -45q-23 -38 -45 -116t-41 -175l-207 -1067h-166z" />
+<glyph unicode="&#x56e;" d="M459 -29q-127 0 -207.5 43.5t-123.5 117.5q-29 49 -42.5 107.5t-13.5 125.5q0 80 18 170q26 136 76.5 237t116.5 172t143.5 111.5t161.5 55.5l-236 179l263 289l129 -98l-136 -151l281 -210h271l-33 -170h-90q21 -46 29.5 -96.5t8.5 -100.5q0 -29 -2.5 -59t-6.5 -59 t-8.5 -55t-8.5 -45q-26 -124 -71.5 -224.5t-123.5 -178.5q-76 -77 -173.5 -119t-221.5 -42zM489 127q80 0 141 32.5t106 88.5q48 59 74.5 132.5t43.5 154.5q9 44 16 96.5t7 100.5q0 56 -16 114.5t-58 103.5h-153q-78 0 -139 -32.5t-106 -89.5q-47 -58 -76.5 -134.5 t-45.5 -158.5q-8 -38 -12 -75.5t-4 -72.5q0 -79 24 -139q23 -57 71.5 -89t126.5 -32z" />
+<glyph unicode="&#x56f;" d="M781 168q-69 -97 -161.5 -147t-209.5 -50q-137 0 -203 70t-66 211q0 38 4.5 81t14.5 91l220 1132h184l-220 -1132q-6 -32 -9.5 -60.5t-3.5 -53.5q0 -91 42.5 -135t133.5 -44q129 0 215.5 89t120.5 265l123 635h185l-300 -1546h-185z" />
+<glyph unicode="&#x570;" d="M381 1556h184l-116 -604q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184z" />
+<glyph unicode="&#x571;" d="M390 -30q-86 0 -149 31.5t-101 93.5q-24 40 -37 91.5t-13 111.5q0 61 13 123q18 91 61.5 187.5t111.5 190.5q66 91 151 172t191 150q-56 7 -92.5 29t-59.5 55q-32 46 -32 105q0 19 5 44q7 32 21.5 63.5t37.5 59.5l67 79h199l-74 -85q-21 -24 -33.5 -49t-17.5 -48 q-3 -14 -3 -27q0 -37 23 -66q15 -18 37.5 -28.5t57.5 -10.5q18 0 38 3.5t36 12.5l117 66l-35 -177q-11 -6 -14 -7.5t-5.5 -3t-8.5 -5t-24 -13.5q-7 -4 -11.5 -6.5t-10 -5.5t-12.5 -7t-19 -11q81 -48 129.5 -108.5t71.5 -134.5q24 -77 24 -164q0 -40 -5 -81.5t-13 -86.5 l-100 -513h-184l34 172q-28 -45 -67.5 -82t-86.5 -63q-48 -27 -102.5 -42t-115.5 -15zM477 131q69 0 127.5 26t104.5 77q45 49 72 110.5t39 125.5l16 86q5 29 8.5 59.5t3.5 62.5q0 58 -13 110q-16 60 -53.5 113.5t-104.5 92.5q-69 -54 -130.5 -116t-109.5 -128 q-46 -63 -83 -139t-54 -158q-11 -55 -11 -105q0 -35 5.5 -67t17.5 -58q20 -45 60.5 -68.5t104.5 -23.5z" />
+<glyph unicode="&#x572;" d="M849 694q6 32 9.5 61t3.5 54q0 92 -43 135t-131 43q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-123 -633h-184l218 1120h164l-13 -168q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-190 -977h149l-27 -143h-334z" />
+<glyph unicode="&#x573;" d="M404 -29q-94 0 -154.5 32t-95.5 89q-24 39 -34.5 84.5t-10.5 95.5q0 29 3.5 59t8.5 61q10 58 31 130t49.5 149.5t65 155.5t78.5 150h-145l28 143h210q69 94 147 174.5t164 138.5q87 59 179.5 91t184.5 32q28 0 52.5 -3t34.5 -8l-29 -151q-19 9 -45.5 14t-52.5 5 q-55 0 -113 -21.5t-113 -58.5q-118 -79 -225 -217q120 -10 208 -50t142 -106q81 -99 81 -248q0 -56 -12 -116l-116 -596h-164l13 168q-33 -45 -72 -80.5t-84 -61.5q-46 -26 -99 -40.5t-115 -14.5zM496 131q78 0 134.5 30t98.5 79q43 51 67.5 111.5t35.5 118.5l27 139 q9 45 9 88q0 48 -13 90t-40 75q-40 48 -111 77t-179 36q-37 -59 -70 -127.5t-60.5 -139t-48 -140.5t-31.5 -133q-11 -64 -11 -110q0 -41 8.5 -73t28.5 -57q29 -37 69.5 -50.5t85.5 -13.5z" />
+<glyph unicode="&#x574;" d="M287 -29q-138 0 -203 70t-65 210q0 79 19 173l135 696h184l-135 -696q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l209 1071h353l-28 -143h-168l-275 -1413h-165l13 168q-69 -97 -162 -147t-210 -50z" />
+<glyph unicode="&#x575;" d="M197 -270h234q92 0 148 62.5t80 187.5l222 1140h184l-222 -1140q-38 -196 -147.5 -301t-275.5 -105h-254z" />
+<glyph unicode="&#x576;" d="M455 -29q-138 0 -203 70t-65 210q0 79 19 173l192 989h-168l28 143h352l-220 -1132q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l124 635h185l-218 -1120h-165l13 168q-69 -97 -162 -147t-210 -50z" />
+<glyph unicode="&#x577;" d="M204 -426q-42 0 -73 13.5t-51 37.5q-14 17 -22 39.5t-8 49.5q0 16 3 33q11 52 51.5 106t100.5 111q31 30 69.5 63t78 65.5t76.5 62t64 51.5q78 63 152 126.5t140 134.5q65 69 106.5 133.5t55.5 135.5q6 31 6 60q0 38 -11 71t-34 58q-31 33 -82.5 51t-112.5 18 q-39 0 -78 -8.5t-81 -28.5q-39 -19 -74.5 -46t-63.5 -61l-117 101q86 90 200 143q57 26 116.5 40t130.5 14q99 0 182 -27t134 -80q38 -40 58.5 -96.5t20.5 -122.5q0 -43 -9 -86q-16 -75 -58.5 -149.5t-104.5 -146.5q-55 -64 -125.5 -131t-158.5 -141q-19 -16 -40.5 -33.5 t-41.5 -33.5l-37.5 -30l-27.5 -22q-69 -55 -125.5 -102t-96.5 -89q-20 -21 -29.5 -35.5t-12.5 -29.5q-1 -3 -1 -11q0 -19 9 -35q7 -12 21.5 -21t40.5 -9h539l-27 -143h-652v0z" />
+<glyph unicode="&#x578;" d="M297 1120h164l-12 -168q78 100 164.5 147.5t189.5 47.5q66 0 119 -18.5t90.5 -54t57.5 -86t20 -114.5q0 -35 -5.5 -81.5t-15.5 -98.5l-135 -694h-184l135 695q2 5 3 14q15 70 15 112q0 79 -46 122.5t-134 43.5q-63 0 -117.5 -24t-98 -69t-75 -111t-47.5 -150l-123 -633 h-184z" />
+<glyph unicode="&#x579;" d="M256 -426q-73 0 -111 43q-29 33 -29 85q0 11 1 22t3 23q11 57 41.5 125.5t74.5 140.5q45 72 99.5 146t116.5 143q25 28 55.5 60.5t64.5 65.5t69 64.5t68 58.5q-45 0 -96 16t-93 51q-32 27 -54 66.5t-22 95.5q0 26 6 56q11 57 45 117.5t105 120.5l114 96l101 -113l-37 -30 q-29 -23 -55 -49t-46.5 -53t-32.5 -55t-12 -55q0 -31 16.5 -52.5t39.5 -35.5q58 -36 146 -36q35 0 66.5 5.5t56.5 14.5l41 -113q-89 -62 -170 -131.5t-148 -136.5q-66 -66 -127 -138.5t-109 -142.5q-52 -76 -83.5 -141.5t-31.5 -111.5q0 -25 10 -44q8 -16 22.5 -25.5 t37.5 -9.5h463l-28 -143h-578v0z" />
+<glyph unicode="&#x57a;" d="M913 96q-49 -65 -104 -94t-118 -29q-69 0 -115 34t-60 107q-49 -72 -106 -106.5t-140 -34.5q-62 0 -103 22t-61 81q-15 45 -15 111q0 54 9.5 123.5t26.5 160.5l126 649h168l-125 -641q-6 -32 -10.5 -57.5t-8.5 -48t-6.5 -43.5t-5.5 -43q-2 -18 -3.5 -35t-1.5 -31 q0 -44 18 -69t72 -25q43 0 73 16t49 45q20 31 41 99.5t45 191.5l125 641h168l-125 -641q-18 -95 -26 -155t-8 -95q0 -28 5 -46q8 -29 32.5 -42.5t59.5 -13.5q42 0 68 16.5t44 44.5q10 16 20 38t20 55.5t21.5 81.5t24.5 116l125 641h167l-301 -1546h-167z" />
+<glyph unicode="&#x57b;" d="M210 -426q-38 0 -69 12.5t-51 34.5q-35 36 -35 84q0 7 0.5 13t1.5 13q6 40 27.5 78.5t50.5 73.5t63.5 68t67.5 63q35 32 56 58t36 61q13 29 22 64.5t14 64.5q2 15 3.5 28.5t1.5 26.5q0 35 -8.5 65.5t-23.5 63.5q-11 23 -24 45.5t-20 33.5q-25 41 -45 79.5t-28 84.5 q-4 23 -4 49q0 74 40 148q51 93 148 160q48 33 99.5 55.5t105.5 34.5q27 6 54 9t59 3q98 0 180 -26.5t133 -77.5q40 -40 62 -96t22 -122q0 -20 -2 -39.5t-6 -39.5q-16 -79 -60 -156t-105 -149q-65 -77 -140.5 -146t-144.5 -126q-17 -14 -38.5 -31.5t-42.5 -34.5t-39 -31.5 t-27 -21.5q-75 -59 -129 -103.5t-92 -86.5q-20 -22 -29.5 -37t-13.5 -31q-1 -4 -1 -7.5v-6.5q0 -18 7 -29t15 -17q11 -9 24.5 -12.5t24.5 -3.5h539l-27 -143h-652zM478 188q75 61 152 125t146 135q67 69 114 139.5t63 148.5q6 31 6 61q0 39 -11.5 72.5t-34.5 58.5 q-31 33 -81 49.5t-108 16.5q-101 0 -178 -53q-47 -32 -78.5 -77t-31.5 -104q0 -26 8 -51t22 -55l7.5 -16.5t6 -11.5t8.5 -15t14 -26q20 -35 36 -72.5t23 -79.5q3 -20 3 -37q0 -12 -1.5 -24t-3.5 -24q-9 -44 -29 -83t-52 -77z" />
+<glyph unicode="&#x57c;" d="M238 1120h164l-14 -172q70 102 161 150.5t208 48.5q102 0 165.5 -34.5t96.5 -97.5q39 -75 39 -183q0 -36 -4.5 -75t-12.5 -82q-16 -82 -43 -153t-69 -139q-41 -66 -93 -124.5t-116 -115.5h297l-28 -143h-515l26 132q73 52 129.5 107t98.5 115q42 61 70 130.5t43 147.5 q14 68 14 128q0 35 -5.5 66t-16.5 57q-21 48 -65.5 76t-113.5 28q-66 0 -118 -26t-94 -71q-41 -45 -69 -103.5t-42 -133.5l-127 -653h-184z" />
+<glyph unicode="&#x57d;" d="M403 -27q-66 0 -118.5 18.5t-89.5 54.5t-56.5 88t-19.5 119q0 32 4.5 78.5t13.5 94.5l133 694h185l-135 -694q-6 -32 -10.5 -68t-4.5 -62q0 -78 46.5 -120.5t131.5 -42.5q124 0 213 90.5t123 263.5l123 633h185l-218 -1120h-164l13 168q-144 -195 -355 -195z" />
+<glyph unicode="&#x57e;" d="M695 168q-69 -97 -161.5 -147t-209.5 -50q-269 0 -269 281q0 38 5 81t14 91l135 696h184l-135 -696q-12 -65 -12 -114q0 -92 43 -135.5t132 -43.5q130 0 216 89.5t120 264.5l208 1071h185l-357 -1837h172l-28 -145h-357z" />
+<glyph unicode="&#x57f;" d="M217 -27q-67 0 -106 27.5t-55 79.5q-12 39 -12 94q0 43 6.5 96.5t20.5 122.5l141 727h168l-124 -641q-12 -63 -19.5 -112t-11.5 -82q-2 -16 -3 -30.5t-1 -27.5q0 -48 19 -74t73 -26q42 0 71 16t47 45q21 35 42.5 107t43.5 184l124 641h167l-18 -96q48 63 102.5 93 t122.5 30q129 0 161 -107q6 -20 8.5 -43.5t2.5 -50.5q0 -46 -7 -101t-19 -118l-141 -727h-168l124 641q11 55 18.5 105t12.5 90q2 16 3 30.5t1 27.5q0 47 -19.5 73t-74.5 26q-36 0 -61 -11.5t-42.5 -32t-29.5 -48.5t-22 -62q-10 -32 -20 -73t-20 -92l-131 -674h-167l18 96 q-51 -66 -105.5 -94.5t-119.5 -28.5z" />
+<glyph unicode="&#x580;" d="M335 1120h164l-13 -168q138 195 370 195q137 0 204 -69.5t67 -212.5q0 -38 -5 -80.5t-14 -90.5l-135 -694h-185l135 694q6 32 9.5 60.5t3.5 54.5q0 93 -43.5 135.5t-130.5 42.5q-67 0 -122 -24t-98 -69.5t-72.5 -111.5t-45.5 -149l-205 -1059h-184z" />
+<glyph unicode="&#x581;" d="M412 -440q-86 0 -165 14t-154 41l37 182q73 -45 151 -67.5t162 -22.5q76 0 132.5 20t98 62t69.5 107.5t47 156.5l24 117q-59 -90 -147.5 -134t-189.5 -44q-79 0 -142 27t-107.5 79t-68 128t-23.5 175q0 65 10.5 133t30 134t47.5 128t64 115q37 55 81.5 99t95 74.5 t105.5 46.5t112 16q101 0 176.5 -48.5t109.5 -133.5l47 151h164l-203 -1044q-26 -132 -71 -228.5t-113 -159.5t-162 -93.5t-218 -30.5zM541 145q166 0 263 174q24 43 43 95t32.5 106.5t21 108t7.5 99.5q0 130 -55 196.5t-152 66.5q-57 0 -107 -23t-91 -63t-73 -94.5 t-54 -117t-33.5 -130t-11.5 -134.5q0 -76 14.5 -129.5t41.5 -88t66 -50.5t88 -16z" />
+<glyph unicode="&#x582;" d="M357 1120h184l-190 -977h550l-27 -143h-734z" />
+<glyph unicode="&#x583;" d="M441 96q-51 -66 -105.5 -94.5t-119.5 -28.5q-67 0 -106 27.5t-55 79.5q-12 39 -12 94q0 43 6.5 96.5t20.5 122.5l141 727h168l-124 -641q-12 -63 -19.5 -112t-11.5 -82q-2 -16 -3 -30.5t-1 -27.5q0 -48 19 -74t73 -26q42 0 71 16t47 45q22 35 43.5 108.5t42.5 182.5 l209 1077h167l-103 -532q48 63 102.5 93t122.5 30q129 0 161 -107q6 -20 8.5 -43.5t2.5 -50.5q0 -46 -7 -101t-19 -118l-141 -727h-168l124 641q11 55 18.5 105t12.5 90q2 16 3 30.5t1 27.5q0 47 -19.5 73t-74.5 26q-36 0 -61 -11.5t-42.5 -32t-29.5 -48.5t-22 -62 q-11 -35 -21 -76.5t-19 -88.5l-214 -1100h-167z" />
+<glyph unicode="&#x584;" d="M73 -327h-119l28 143h119l253 1304h165l-8 -143q63 85 147 127.5t186 42.5q103 0 175 -42t112 -116q52 -96 52 -239q0 -90 -21 -195q-26 -136 -76 -243t-122 -184q-71 -76 -158.5 -116.5t-189.5 -40.5q-104 0 -171.5 42.5t-95.5 127.5l-63 -325h754l-28 -143h-754 l-19 -99h-185zM617 127q137 0 223 109q34 42 61 102.5t46.5 128t30 137.5t10.5 133q0 43 -5.5 80t-16.5 66q-20 51 -65 79.5t-116 28.5q-136 0 -224.5 -109.5t-130.5 -322.5q-20 -103 -20 -177q0 -126 51.5 -190.5t155.5 -64.5z" />
+<glyph unicode="&#x585;" d="M514 -29q-196 0 -296.5 109t-100.5 312q0 67 11 136.5t31 137t49.5 130t65.5 115.5q81 118 190.5 177t252.5 59q193 0 295 -106.5t102 -316.5q0 -65 -10 -133.5t-30 -135t-49 -130t-67 -118.5q-80 -116 -189.5 -176t-254.5 -60zM524 127q67 0 122.5 24.5t99.5 67t76.5 99 t54.5 121t32.5 133.5t10.5 135q0 149 -52.5 216.5t-158.5 67.5q-67 0 -122.5 -24.5t-99.5 -67t-76.5 -99t-54.5 -121t-32.5 -133.5t-10.5 -135q0 -149 52.5 -216.5t158.5 -67.5z" />
+<glyph unicode="&#x586;" d="M385 -5q-75 0 -135.5 15t-111.5 43q-49 27 -88 64t-79 93l147 128q28 -50 55 -84t61 -60q35 -27 78 -41.5t100 -14.5l159 814q-99 0 -171.5 22.5t-119.5 62.5q-76 64 -76 166q0 13 1.5 26t3.5 27q12 64 50 122.5t107 100.5q125 77 331 77h175l-86 -441q139 0 229 -35.5 t138 -104.5q32 -45 45.5 -101t13.5 -122q0 -80 -18 -173q-25 -131 -73 -237.5t-125 -184.5t-182 -120t-245 -42l-82 -421h-184zM661 1414q-123 0 -191.5 -39.5t-79.5 -111.5q-1 -6 -1.5 -11.5t-0.5 -10.5q0 -58 52 -92t162 -34zM596 138q97 0 165 33t118 93q51 61 85 142.5 t51 169.5q14 73 14 135q0 43 -7 80t-22 63q-54 98 -245 98z" />
+<glyph unicode="&#x587;" d="M255 -29q-137 0 -202.5 69.5t-65.5 210.5q0 78 19 173l220 1132h184l-220 -1132q-6 -32 -9.5 -60.5t-3.5 -54.5q0 -91 43 -134.5t132 -43.5q134 0 218.5 91.5t117.5 262.5l124 635h185l-190 -977h232l-28 -143h-417l33 168q-69 -97 -162 -147t-210 -50z" />
+<glyph unicode="&#x589;" d="M593 850h211l-49 -254h-211zM477 254h211l-49 -254h-211z" />
+<glyph unicode="&#x58a;" d="M379 643q58 -31 118 -45.5t123 -14.5q67 0 136.5 15.5t143.5 44.5l-31 -164q-74 -29 -143 -44.5t-136 -15.5q-64 0 -124 14.5t-118 45.5z" />
+<glyph unicode="&#xe3f;" d="M438 0h-376l254 1306h376l48 250h100l-48 -251q79 -4 143.5 -21.5t110.5 -49.5t71.5 -79.5t25.5 -111.5q0 -35 -7 -69q-23 -121 -100.5 -189.5t-204.5 -85.5q120 -17 182.5 -85t62.5 -177q0 -35 -8 -78q-17 -90 -61.5 -155.5t-113 -109.5t-158.5 -66.5t-197 -26.5 l-58 -302h-100zM587 767l77 394h-180l-77 -394h180zM688 769q51 4 93 16.5t74 36.5t53.5 61t31.5 91q2 14 3.5 26.5t1.5 23.5q0 68 -45.5 98t-136.5 37zM466 145l93 479h-180l-93 -479h180zM566 146q66 3 118 16.5t90.5 40.5t63.5 69t37 104q4 18 5.5 35t1.5 32 q0 91 -58.5 131.5t-164.5 47.5z" />
+<glyph unicode="&#x10d0;" d="M493 0q-188 0 -279 82t-91 256q0 65 11.5 113t30.5 85t43 66.5t49 57.5h190q-29 -28 -49.5 -51.5t-34.5 -46t-23 -44t-14 -45.5q-5 -23 -8.5 -55.5t-3.5 -59.5q0 -105 54.5 -159t159.5 -54q65 0 122.5 21.5t102.5 64t76 105t43 144.5q3 20 5 44t2 41q0 69 -36.5 122 t-104.5 81q-229 85 -229 294q0 38 8 84h181q-6 -33 -6 -62q0 -109 92 -150q285 -110 285 -351q0 -22 -2 -42.5t-7 -45.5q-45 -249 -188.5 -372t-378.5 -123z" />
+<glyph unicode="&#x10d1;" d="M465 0q-182 0 -276.5 91t-94.5 275q0 40 4.5 84.5t14.5 94.5q85 427 489 511l27 138q3 16 3 30q0 33 -14 54t-35 34t-45 19.5t-43 10.5q-50 11 -78 43.5t-28 101.5q0 15 1.5 33t5.5 38h181q-1 -5 -1.5 -10.5t-0.5 -11.5q0 -70 106 -94q59 -23 90 -64.5t31 -109.5 q0 -15 -1.5 -32.5t-5.5 -35.5l-28 -144q136 -46 206.5 -139.5t70.5 -228.5q0 -31 -3.5 -69.5t-9.5 -74.5q-22 -134 -71 -235.5t-121.5 -170t-167 -103.5t-206.5 -35zM494 145q135 0 226 102.5t124 297.5q7 39 10.5 78.5t3.5 68.5q0 109 -53.5 166.5t-161.5 57.5 q-137 0 -222.5 -93t-120.5 -273q-8 -43 -12.5 -84t-4.5 -76q0 -122 54 -183.5t157 -61.5z" />
+<glyph unicode="&#x10d2;" d="M470 -425q-211 0 -318.5 84.5t-107.5 253.5q0 31 3.5 63t10.5 67q46 233 204 348.5t428 117.5q30 19 56 46t46.5 60t35 70t21.5 76q3 16 3 30q0 57 -47 84.5t-136 27.5q-99 0 -150.5 -34.5t-64.5 -104.5q-5 -28 -5 -53q0 -18 3 -36l-153 -82q-18 45 -18 101q0 23 2.5 46 t5.5 40q23 131 124 198t286 67q167 0 252 -55.5t85 -167.5q0 -15 -1.5 -33t-5.5 -37q-32 -164 -170 -248l-4 -20q117 -45 171.5 -128.5t54.5 -188.5q0 -25 -3 -58.5t-8 -65.5q-18 -108 -64.5 -194.5t-121.5 -147.5t-178.5 -93.5t-235.5 -32.5zM503 -276q327 0 388 319 q5 26 7.5 50.5t2.5 41.5q0 55 -23 98.5t-61.5 73t-89 45t-105.5 15.5q-60 0 -121 -19t-114 -58.5t-93 -101t-57 -145.5q-10 -49 -10 -93q0 -226 272 -226h4z" />
+<glyph unicode="&#x10d3;" d="M638 -425q-57 167 -139 171q-42 2 -65 3t-35 1q-60 0 -126.5 -19t-130.5 -61l-24 105q50 44 136 62l2 11q-171 202 -171 498q0 111 24 236q88 453 430 453h2q90 0 152 -98h20q80 98 248 98q286 0 286 -296q0 -41 -5 -86t-13 -87l-4 -20q-51 -253 -159.5 -379.5 t-282.5 -126.5q-266 0 -266 310q0 95 24 217l45 234q4 16 4 32q0 61 -59 61h-43q-129 0 -190 -316l-21 -109q-19 -98 -19 -177q0 -101 26 -169t65 -113.5t84.5 -73t83.5 -46.5q57 -29 105 -56.5t88 -62t72.5 -81t57.5 -114.5zM808 185q80 0 130.5 61t76.5 195l42 212 q5 23 8 51.5t3 52.5q0 137 -114 137h-71q-61 0 -99 -46t-55 -136l-48 -247q-12 -63 -12 -111q0 -85 36 -127t103 -42z" />
+<glyph unicode="&#x10d4;" d="M486 -425q-197 0 -299.5 73t-102.5 219q0 25 3 54.5t8 55.5q14 69 58.5 130.5t131.5 118.5h188q-90 -63 -135 -123.5t-58 -124.5q-4 -20 -5.5 -37.5t-1.5 -32.5q0 -97 62 -144t183 -47q137 0 213.5 60t99.5 181l131 676q9 49 9 88q0 93 -49 137t-150 44 q-114 0 -183.5 -55t-91.5 -167q-4 -19 -5.5 -37.5t-1.5 -35.5q0 -73 28 -139l-176 -1q-13 23 -19.5 51.5t-6.5 58.5q0 17 2 44t7 54q15 90 54.5 159t100.5 115.5t142.5 70.5t179.5 24h2q346 0 346 -290q0 -30 -3.5 -62t-8.5 -60l-129 -665q-39 -200 -170 -296.5t-353 -96.5z " />
+<glyph unicode="&#x10d5;" d="M475 -425q-392 0 -392 297q0 50 11 111q21 92 147 202h192q-70 -62 -106.5 -111t-45.5 -91q-3 -14 -5.5 -38t-2.5 -45q0 -92 57 -137.5t176 -45.5q134 0 212.5 57t99.5 166l19 98q4 20 6 38t2 36q0 169 -198 169h-73l28 140h74q115 0 182.5 61t89.5 178q4 21 6 39.5 t2 37.5q0 87 -48 126.5t-150 39.5q-116 0 -192 -50.5t-96 -151.5q-4 -19 -5.5 -39t-1.5 -41q0 -30 3 -61.5t10 -66.5h-161q-29 53 -29 124q0 39 9 84q33 166 155.5 255t334.5 89q183 0 271.5 -68t88.5 -208q0 -26 -3 -55t-9 -58q-22 -105 -90 -179t-197 -122l-4 -20 q187 -34 187 -215q0 -40 -9 -86l-15 -79q-36 -190 -169.5 -285t-360.5 -95z" />
+<glyph unicode="&#x10d6;" d="M460 0q-186 0 -279 85.5t-93 256.5q0 38 4.5 78t12.5 85q30 159 99.5 263t178.5 140l4 20q-78 23 -114.5 76.5t-36.5 122.5q0 17 2 43t6 49q13 83 47 146t86.5 105.5t122.5 64t155 21.5q140 0 212 -57.5t72 -172.5q0 -20 -2.5 -44t-7.5 -49q-32 -155 -139 -240l-4 -20 q124 -17 188 -94.5t64 -209.5q0 -35 -4 -78t-12 -87q-21 -121 -68 -215t-118.5 -158t-165.5 -97.5t-210 -33.5zM549 983q93 0 145 56.5t72 161.5q4 20 6 37.5t2 33.5q0 71 -40.5 107.5t-112.5 36.5q-90 0 -141.5 -55t-71.5 -159q-8 -43 -8 -75q0 -72 38.5 -108t110.5 -36z M494 145q71 0 127.5 25t99.5 72t71.5 114t44.5 152q7 38 10.5 70.5t3.5 62.5q0 233 -217 233h-3q-130 0 -218.5 -94.5t-120.5 -274.5q-7 -38 -10.5 -75.5t-3.5 -65.5q0 -106 54 -162.5t162 -56.5z" />
+<glyph unicode="&#x10d7;" d="M320 0q-136 0 -211 80.5t-75 240.5q0 42 5 93.5t16 104.5l6 30q48 242 165 364t303 122q78 0 127.5 -23t77.5 -76h14q52 54 103 76.5t116 22.5q118 0 180.5 -69t62.5 -209q0 -37 -4.5 -80.5t-14.5 -92.5l-13 -67q-68 -350 -340 -517h-162q122 87 199.5 209t109.5 287 l23 117q8 42 12 76.5t4 63.5q0 141 -94 141h-33q-82 0 -118 -182l-43 -220q-25 -127 -62.5 -219.5t-89 -153t-117.5 -90t-147 -29.5zM342 145q81 0 135 58.5t78 184.5l70 361q9 43 9 74q0 71 -49 71l-87 -1h-1q-179 0 -232 -272l-37 -189q-14 -73 -14 -130q0 -157 128 -157z " />
+<glyph unicode="&#x10d8;" d="M294 0q-146 154 -146 383q0 80 18 170q49 249 188.5 370.5t366.5 121.5q190 0 282.5 -83t92.5 -251q0 -76 -17 -164q-33 -174 -120.5 -311t-226.5 -236h-146q127 131 203.5 267.5t103.5 279.5q6 32 10 67t4 68q0 111 -51.5 165.5t-158.5 54.5q-71 0 -128 -24 t-100.5 -69.5t-72.5 -110.5t-45 -147q-15 -78 -15 -155q0 -202 106 -396h-148v0z" />
+<glyph unicode="&#x10d9;" d="M485 -423q-198 0 -298 76.5t-100 227.5q0 26 3 58t9 61q15 72 53 130t106 111h173q-63 -58 -98.5 -121t-46.5 -120q-3 -16 -5.5 -40t-2.5 -46q0 -98 60 -147t175 -49q127 0 207.5 61.5t103.5 190.5l9 50q5 24 7.5 43.5t2.5 42.5q0 94 -47.5 140t-147.5 46h-65l30 152h65 q112 0 179.5 48.5t86.5 149.5q2 11 3 22t1 19q0 95 -93.5 142t-287.5 47l30 154q535 0 535 -301q0 -20 -2 -41.5t-6 -41.5q-20 -101 -95 -166t-221 -91l-4 -20q120 -22 173.5 -86t53.5 -169q0 -26 -2.5 -46t-7.5 -44l-9 -50q-35 -192 -166.5 -292.5t-360.5 -100.5z" />
+<glyph unicode="&#x10da;" d="M619 -425q-1 74 -23.5 118.5t-56 68.5t-73.5 31.5t-76 7.5q-59 0 -106.5 -15t-98.5 -60l-58 95q78 90 194 104l16 14q-144 189 -144 443q0 51 5.5 103.5t15.5 100.5q46 229 180.5 344t367.5 115q196 0 287.5 -83.5t91.5 -258.5q0 -66 -11.5 -116.5t-28 -89t-36 -66 t-35.5 -48.5q-19 -25 -34 -50t-26 -54t-18 -64t-10 -79l-159 -1q4 51 10.5 86.5t15.5 62.5t21 48t26 44q13 21 25.5 40.5t23 42.5t19.5 51t17 67q12 61 12 113q0 214 -220 214q-137 0 -219.5 -79t-115.5 -244q-9 -45 -14.5 -96.5t-5.5 -101.5q0 -78 14.5 -143t42 -122.5 t68 -109t92.5 -100.5q39 -38 78 -76.5t69.5 -77.5t49.5 -78t19 -78q0 -8 -0.5 -13t-1.5 -10h-190v0z" />
+<glyph unicode="&#x10db;" d="M480 0q-194 0 -291.5 89t-97.5 260q0 37 4.5 83t12.5 93q23 130 72.5 227.5t121 163t163 98t199.5 32.5q105 0 163.5 -31t81.5 -94h20l50 258q6 33 6 58q0 45 -21 78.5t-55.5 55.5t-79 33t-90.5 11q-45 0 -88.5 -10t-79 -29t-60.5 -47.5t-32 -65.5l-12 -62h-187l12 62 q29 148 147 221t326 73q399 0 399 -281q0 -22 -2.5 -46.5t-7.5 -50.5l-133 -684q-96 -495 -541 -495zM506 145q132 0 212 86.5t115 263.5q18 91 18 162q0 125 -53 185t-157 60q-70 0 -126.5 -26t-100 -75t-73 -118t-45.5 -156q-8 -42 -11.5 -80.5t-3.5 -67.5 q0 -115 56.5 -174.5t168.5 -59.5z" />
+<glyph unicode="&#x10dc;" d="M459 0q-183 0 -276.5 83.5t-93.5 252.5q0 34 4 72.5t12 81.5l135 694q68 347 400 347h462l-28 -143h-482q-140 0 -175 -176l-57 -294h35q20 28 53.5 52t75.5 41.5t90 27.5t98 10q63 0 123.5 -18t108 -59.5t76 -108t28.5 -162.5q0 -67 -16 -153q-51 -275 -194.5 -411.5 t-378.5 -136.5zM492 146q66 0 123.5 25.5t103.5 76t78.5 125t49.5 172.5q6 36 9.5 72.5t3.5 64.5q0 108 -55.5 165t-164.5 57q-278 0 -349 -379q-15 -81 -15 -144q0 -235 213 -235h3z" />
+<glyph unicode="&#x10dd;" d="M153 0q-119 175 -119 356q0 25 2.5 51.5t7.5 53.5l20 102q45 231 161 351.5t293 120.5q30 0 54.5 -4.5t45.5 -16t38.5 -32t34.5 -51.5h17q27 30 50.5 50t47.5 32t50 17t59 5q67 0 120.5 -19.5t91 -58t57.5 -97t20 -136.5q0 -39 -5 -79t-13 -84l-20 -107 q-20 -110 -89 -226t-188 -228h-179q216 191 257 399l55 281q9 46 9 82q0 132 -119 132h-77q-64 0 -104 -207l-54 -277h-160l54 277q15 78 15 126q0 81 -41 81h-77q-77 0 -123.5 -58t-68.5 -170l-51 -260q-9 -45 -9 -88q0 -166 131 -318h-194v0z" />
+<glyph unicode="&#x10de;" d="M464 0q-183 0 -283 78t-100 234q0 26 3 57.5t10 64.5q18 91 54.5 157.5t99.5 115.5h175q-60 -66 -94 -131.5t-50 -140.5q-10 -49 -10 -86q0 -103 60 -153.5t166 -50.5q134 0 220.5 81.5t114.5 247.5q5 31 8 64t3 56q0 102 -55.5 156t-167.5 54h-63l26 135h82 q214 0 255 200q1 7 1.5 14t0.5 14q0 124 -246 154q-251 48 -251 194q0 19 4 36h172q-1 -3 -1 -8q0 -65 218 -104q291 -36 291 -236q0 -14 -1.5 -31.5t-5.5 -35.5q-20 -103 -80 -168t-157 -95l-4 -20q79 -38 124 -106t45 -161q0 -23 -2.5 -53.5t-7.5 -58.5 q-18 -115 -63 -203.5t-115.5 -148.5t-164.5 -91t-211 -31z" />
+<glyph unicode="&#x10df;" d="M462 -423q-193 0 -290 68t-97 207q0 21 2.5 44t7.5 48h187q-7 -32 -7 -62q0 -165 225 -165q291 0 344 267l182 936l-446 -52l-11 -60q88 -38 127 -100.5t39 -143.5q0 -40 -9 -83q-32 -154 -175 -230t-411 -77l32 167q98 0 167.5 9.5t115 27.5t70.5 44t33 59q3 12 5 30 t2 35q0 205 -301 269l25 130l941 129l-212 -1092q-39 -201 -173.5 -303t-372.5 -102z" />
+<glyph unicode="&#x10e0;" d="M114 0q-64 80 -96 168.5t-32 190.5q0 31 3 64t10 67l20 103q16 84 52 176.5t92.5 186t134.5 183.5t179 169.5t225 143.5t273 105l-3 -148q-379 -83 -665 -435h24l98 61q165 0 218 -98h15q92 98 249 98q250 0 250 -273q0 -72 -18 -166l-28 -142q-24 -124 -96.5 -235.5 t-199.5 -218.5h-197q251 185 294 403l38 193q8 44 12.5 84.5t4.5 71.5q0 142 -92 142h-88q-34 0 -57.5 -43t-39.5 -124l-62 -317h-160l63 317q10 50 10 87q0 80 -51 80h-124q-103 0 -160 -293l-32 -165q-5 -24 -7 -50.5t-2 -49.5q0 -189 155 -336h-210v0z" />
+<glyph unicode="&#x10e1;" d="M467 0q-181 0 -277 86.5t-96 259.5q0 38 4.5 81.5t12.5 87.5l196 1006h182l-196 -1006q-7 -36 -10.5 -71.5t-3.5 -64.5q0 -118 57 -176t160 -58q71 0 129.5 27t102.5 75.5t73 116.5t41 151q3 20 5 42.5t2 39.5q0 62 -27.5 103.5t-70.5 73.5q-14 10 -31 23.5t-32 31.5 t-25 41.5t-10 53.5q0 15 3 30q29 149 259 273l63 -124q-153 -55 -165 -115q-1 -4 -1 -12q0 -23 12 -43.5t29.5 -38.5t37 -33t34.5 -27q25 -20 45.5 -41.5t35.5 -47t23 -57t8 -71.5q0 -24 -2.5 -51t-6.5 -51q-19 -121 -65.5 -216.5t-117.5 -162t-166.5 -101.5t-211.5 -35z " />
+<glyph unicode="&#x10e2;" d="M452 -423q-229 0 -344 115.5t-115 340.5q0 54 6.5 121t19.5 136q29 155 85.5 278.5t138.5 213.5t188 145t233 74l35 257h166l-65 -261q194 -30 290.5 -150t96.5 -324q0 -51 -6 -112t-18 -127q-32 -173 -93.5 -305t-151.5 -221t-207 -135t-259 -46zM479 -283q94 0 175 36 t145.5 108t110.5 179.5t72 249.5q11 60 16.5 116.5t5.5 103.5q0 138 -55.5 237t-170.5 141l-89 -539h-165l118 538q-88 -27 -159 -82t-125.5 -132.5t-92 -174.5t-58.5 -208q-12 -65 -18 -126t-6 -109q0 -166 73.5 -252t222.5 -86z" />
+<glyph unicode="&#x10e3;" d="M515 -423q-201 0 -304 76t-103 229q0 29 3.5 59.5t8.5 55.5q16 76 61 138t132 111h179q-84 -65 -128 -124t-58 -125q-9 -44 -9 -79q0 -99 61 -150t186 -51q133 0 209 59.5t99 180.5l145 746q4 21 6 38.5t2 34.5q0 59 -25.5 88.5t-71.5 29.5q-69 0 -115 -66.5t-73 -204.5 l-48 -193h-133l29 193q8 44 12 80t4 65q0 124 -74 126q-37 -2 -59 -18t-47 -50q-6 -9 -15 -20.5t-22 -22t-29.5 -17.5t-38.5 -7q-73 0 -138 95l86 181q24 -52 43.5 -75t48.5 -23q26 0 45.5 15t39.5 35t42.5 34.5t62.5 14.5q64 0 96 -45t50 -139h20q106 183 243 183h3 q245 0 245 -223q0 -51 -11 -109l-146 -746q-38 -190 -164.5 -285t-349.5 -95z" />
+<glyph unicode="&#x10e4;" d="M523 -425q-366 0 -366 281q0 49 12 108h183q-4 -20 -6 -38.5t-2 -36.5q0 -172 209 -172h47q279 0 321 222l19 101q5 28 8.5 51.5t3.5 46.5q0 39 -10 54t-26 16h-80l29 151h80q27 0 47.5 36t35.5 113l36 182q5 23 8 50.5t3 50.5q0 103 -72 103h-83q-32 0 -51.5 -32 t-30.5 -91l-40 -202q-48 -244 -151 -362t-264 -118h-2q-303 0 -303 276q0 31 3.5 63.5t10.5 68.5l25 128q40 206 154 308t289 102q80 0 125.5 -23.5t72.5 -75.5h17q115 99 255 99q228 0 228 -253q0 -67 -16 -150q-50 -252 -224 -335l-3 -20q120 -77 120 -187 q0 -12 -1.5 -23.5t-3.5 -22.5l-20 -105q-69 -364 -531 -364h-56zM403 215q83 0 133 66.5t75 194.5l49 251q8 43 8 77q0 44 -17.5 67t-52.5 23h-77q-85 0 -135.5 -66.5t-76.5 -195.5l-24 -120q-6 -31 -10 -66t-4 -65q0 -81 33 -123.5t99 -42.5z" />
+<glyph unicode="&#x10e5;" d="M438 -425q-93 0 -166.5 19.5t-125 58t-78.5 96t-27 134.5q0 29 3.5 60.5t8.5 56.5q14 67 56.5 122.5t123.5 109.5l175 -1q-75 -62 -115.5 -117.5t-54.5 -116.5q-4 -17 -6.5 -39t-2.5 -43q0 -99 63.5 -148.5t174.5 -49.5q136 0 218.5 82.5t119.5 267.5l59 296 q28 143 28 250q0 289 -209 289h-3h-7q-94 0 -147.5 -37.5t-73.5 -123.5q-7 -30 -10 -62t-3 -57q0 -94 42 -152h-179q-30 67 -30 153q0 57 13 118q32 149 133.5 227t263.5 78q43 0 78 -7.5t66 -28t59 -57.5t57 -97h17l130 665h173l-282 -1454q-48 -246 -178 -369t-364 -123z " />
+<glyph unicode="&#x10e6;" d="M631 -425q0 47 -13 81.5t-34 58.5t-47 39t-52.5 23t-51 11t-41.5 3q-52 0 -102 -20.5t-104 -63.5l-47 92q74 84 138 85l4 22q-206 214 -206 447q0 28 3 55t8 54l15 80q46 246 159.5 370t278.5 124q73 0 119 -25t75 -79h16q90 104 243 104q126 0 192.5 -70.5t66.5 -211.5 q0 -38 -5 -82t-13 -86l-14 -70q-24 -122 -84.5 -225t-166.5 -196l-140 -1q152 167 186 341l43 219q12 61 12 108q0 132 -100 132h-100q-58 0 -92 -175l-60 -309h-160l60 309q12 60 12 100q0 75 -43 75h-76q-80 0 -128 -67t-73 -195l-27 -138q-7 -36 -10.5 -70.5t-3.5 -66.5 q0 -95 29 -163.5t71 -117.5t88.5 -81t81.5 -54q64 -41 114 -77.5t86.5 -77.5t60 -92t35.5 -120z" />
+<glyph unicode="&#x10e7;" d="M489 -423q-201 0 -302.5 73t-101.5 222q0 47 11 105h188q-4 -20 -6 -38t-2 -35q0 -94 61.5 -141t179.5 -47q265 0 312 241l48 244h-20q-55 -49 -124 -73.5t-167 -24.5q-179 0 -273 83t-94 250q0 36 4 76t12 76q13 64 40.5 122.5t71.5 111t105.5 100.5t144.5 93h216 q-91 -54 -159 -107t-115.5 -105.5t-76 -105.5t-40.5 -109q-6 -27 -9.5 -60t-3.5 -62q0 -112 54.5 -163.5t172.5 -51.5q61 0 113.5 14t93.5 42.5t69 73t40 105.5l101 521h179l-205 -1054q-37 -189 -164.5 -282.5t-353.5 -93.5z" />
+<glyph unicode="&#x10e8;" d="M493 0q-194 0 -297.5 90.5t-103.5 271.5q0 72 17 163q48 255 187.5 388t357.5 133q107 0 166 -33t82 -97h20l56 289q9 48 9 85q0 128 -111 128q-72 0 -114.5 -51.5t-65.5 -158.5l-7 -33h-157l7 35q4 20 6 40t2 36q0 66 -33 99t-82 33q-25 0 -45.5 -10t-37.5 -35.5 t-31.5 -69.5t-27.5 -111h-155q37 190 110.5 277t186.5 87q87 0 140.5 -48t65.5 -145h20q27 53 56.5 90t63.5 60t73.5 33t85.5 10q112 0 174.5 -54.5t62.5 -163.5q0 -44 -11 -102l-146 -759q-46 -239 -174 -358t-350 -119zM516 145q123 0 206.5 89t117.5 281q8 43 11.5 82.5 t3.5 68.5q0 115 -54.5 176.5t-163.5 61.5q-69 0 -125 -26t-99 -74.5t-72 -119t-45 -159.5q-7 -38 -10.5 -74.5t-3.5 -63.5q0 -59 16.5 -104t47 -75.5t73.5 -46.5t97 -16z" />
+<glyph unicode="&#x10e9;" d="M245 1214q34 178 145 260t296 82q171 0 259.5 -66.5t88.5 -200.5q0 -24 -3 -46q-16 -96 -146 -257q158 -78 158 -301q0 -41 -5 -84.5t-13 -84.5q-34 -167 -127.5 -294t-252.5 -222h-178q308 200 372 520q15 76 15 135q0 110 -50 168.5t-157 59.5q-8 1 -16 1h-16 q-131 0 -209 -75t-107 -222l-114 -587h-178zM393 917q71 104 273 104q48 0 102 -6q82 132 97 209v12q0 90 -53 134.5t-150 44.5q-106 0 -164.5 -53t-79.5 -161l-55 -284h30z" />
+<glyph unicode="&#x10ea;" d="M484 -423q-218 0 -325.5 110.5t-107.5 337.5q0 57 7 122t21 137l19 97q63 324 341 680l130 -76q-106 -125 -173.5 -261t-96.5 -282l-31 -158q-12 -62 -19 -124t-7 -118q0 -166 67 -245.5t208 -79.5q78 0 145.5 24.5t120 73t89 120.5t53.5 167q8 46 8 78q0 141 -148 141 h-184l27 136h176q79 0 130.5 45t68.5 139q3 16 3 31q0 27 -9 47.5t-26.5 36.5t-41.5 28.5t-54 23.5q-14 5 -33 14t-35.5 26.5t-28 45t-11.5 69.5q0 28 6 63h183q-4 -19 -4 -39q0 -47 23 -78t78 -54q16 -7 39 -18t43 -30t34.5 -47t14.5 -69q0 -12 -1.5 -22.5t-3.5 -23.5 q-16 -81 -70.5 -139t-146.5 -102l-4 -20q70 -48 108 -111t38 -133q0 -14 -1.5 -32.5t-3.5 -37.5q-14 -111 -64.5 -202t-130.5 -155.5t-187 -100t-233 -35.5z" />
+<glyph unicode="&#x10eb;" d="M466 0q-190 0 -282.5 85t-92.5 251q0 36 4.5 81.5t12.5 91.5q48 266 191.5 401.5t371.5 135.5q103 0 164 -28.5t75 -86.5h20l115 590h178l-195 -1004q-50 -256 -189.5 -386.5t-372.5 -130.5zM490 145q135 0 227 94t126 280q8 41 11.5 82t3.5 70q0 112 -54 172t-159 60 q-134 0 -225 -99.5t-125 -294.5q-7 -38 -10.5 -77t-3.5 -68q0 -106 52 -162.5t157 -56.5z" />
+<glyph unicode="&#x10ec;" d="M93 355q0 32 4.5 77t14.5 95l138 709q30 157 119 238.5t230 81.5q51 0 87 -11t61 -34.5t39.5 -60t20.5 -87.5h20q50 97 122 145t158 48q88 0 129.5 -50t41.5 -156q0 -70 -18 -158h-153q15 76 15 130t-16 75t-54 21q-67 0 -116.5 -52.5t-69.5 -155.5l-7 -35h-157l7 33 q4 18 6.5 41t2.5 43q0 126 -110 126q-143 0 -183 -213l-56 -289h20q21 28 55 52.5t76.5 42t91 27.5t97.5 10q63 0 123 -18.5t106.5 -60.5t75 -109.5t28.5 -165.5q0 -41 -5 -87t-14 -91q-27 -135 -85 -233t-133 -161.5t-160.5 -94t-169.5 -30.5q-76 0 -145.5 24t-122 70 t-83.5 112.5t-31 151.5zM286 390q0 -58 18 -104t48 -77.5t70 -48t84 -16.5q49 0 99.5 21.5t95.5 67t81 115.5t56 168q8 42 12.5 83.5t4.5 75.5q0 113 -50 171t-152 58h-2q-135 0 -222.5 -81.5t-122.5 -257.5q-10 -50 -15 -97t-5 -78z" />
+<glyph unicode="&#x10ed;" d="M428 -423q-196 0 -293 73t-97 217q0 29 3.5 59.5t8.5 55.5q12 56 39.5 102.5t79.5 96.5l123 -105q-23 -20 -37 -44t-22 -65q-8 -40 -8 -69q0 -43 19 -77t51.5 -57t74.5 -35.5t88 -12.5q51 0 102 15.5t95 47.5t76.5 82t45.5 119q6 25 6 51q0 125 -131 208q-77 95 -77 181 q0 8 0.5 16t1.5 16l-93 -19q-256 0 -256 225q0 24 3 49.5t8 53.5q64 333 386 333l75 -9l85 436h157l-99 -511q66 -48 66 -126q0 -19 -3 -38h184l-32 -162h-189q-19 -104 -113 -160l-15 -72q-1 -3 -1 -9q0 -64 141 -161q93 -74 93 -212q0 -42 -9 -90q-36 -196 -170 -299.5 t-367 -103.5zM542 562q80 0 132.5 48t72.5 153q4 19 5.5 35.5t1.5 30.5q0 127 -131 127h-2q-83 0 -135 -46t-72 -147q-4 -20 -6 -36t-2 -33q0 -132 132 -132h4z" />
+<glyph unicode="&#x10ee;" d="M468 0q-185 0 -279 87.5t-94 265.5q0 77 18 172l194 996h171l-118 -607h41q22 29 56.5 54t77 43t90.5 28t97 10q62 0 121 -18.5t104.5 -59.5t73.5 -107t28 -162q0 -40 -5 -86t-13 -91q-48 -260 -192 -392.5t-371 -132.5zM498 145q69 0 126 26t100.5 74.5t73.5 119 t46 160.5q8 41 11.5 82t3.5 70q0 111 -52.5 169t-158.5 58q-140 0 -228.5 -100t-121.5 -281q-8 -42 -11.5 -80t-3.5 -67q0 -112 54 -171.5t161 -59.5z" />
+<glyph unicode="&#x10ef;" d="M443 -423q-184 0 -277.5 80t-93.5 239q0 35 4 74t11 69q7 32 19 63t31 63.5t46 67t63 72.5l127 -89q-48 -59 -70 -100.5t-29 -75.5q-2 -10 -4.5 -24t-4 -29t-2.5 -30t-1 -27q0 -50 18.5 -89.5t50 -67t73 -42t86.5 -14.5q50 0 101.5 18.5t96 57.5t78.5 100t50 146 q6 30 6 62q0 137 -135 268q-115 143 -115 264q0 10 1 20.5t3 21.5l31 160l-304 120l35 180l302 -128l46 232h146l-53 -269l312 -127l-35 -177l-310 134l-24 -125q-1 -3 -1 -11q0 -75 166 -247q60 -71 92.5 -148t32.5 -149q0 -15 -1.5 -37t-4.5 -42q-14 -104 -58.5 -189 t-116 -146.5t-169.5 -95t-219 -33.5z" />
+<glyph unicode="&#x10f0;" d="M464 0q-192 0 -290 74t-98 227q0 53 12 115l19 101h188l-19 -101q-5 -23 -7.5 -44.5t-2.5 -41.5q0 -99 56.5 -144.5t175.5 -45.5q135 0 211 54.5t96 157.5q3 15 5.5 36t2.5 39q0 100 -82 100h-251l29 150h251q51 0 82 31t42 91q2 11 3 21t1 18q0 76 -82 76h-251l30 152 h249q91 0 118 132q1 3 1 10q0 25 -20.5 42t-54 29.5t-75.5 21t-85 15.5q-23 4 -56 11.5t-63 26.5t-51.5 53t-21.5 90q0 27 6 59h166q-1 -5 -1.5 -9.5t-0.5 -10.5q0 -33 23.5 -55t59.5 -36t80.5 -22t86.5 -14q23 -3 56.5 -10t64.5 -24t53 -48t22 -83q0 -13 -1.5 -25t-3.5 -25 q-14 -72 -59.5 -118t-120.5 -69l-4 -20q65 -25 93 -62.5t28 -88.5q0 -8 -1 -18.5t-3 -21.5q-25 -126 -184 -184l-4 -20q64 -43 90.5 -91t26.5 -89q0 -8 -0.5 -23.5t-2.5 -28.5q-9 -84 -51 -150.5t-111.5 -113t-163.5 -71.5t-206 -25z" />
+<glyph unicode="&#x10f1;" d="M456 -423q-229 0 -340.5 86.5t-111.5 252.5q0 56 12 133q9 55 23.5 115t32 119.5t35.5 115t33.5 100.5t27.5 76t16 42q15 39 27.5 77.5t21.5 81.5t14 93t5 110q0 45 -3 90.5t-10 93.5h185q9 -69 9 -140q0 -196 -68 -406q-24 -55 -48 -128t-45.5 -150.5t-39 -153.5 t-28.5 -136q-5 -25 -7.5 -47t-2.5 -47q0 -124 73 -181.5t222 -57.5q63 0 110 10t79.5 30t52 50t29.5 70q9 39 9 75q0 125 -103 125h-136l27 142h136q65 0 106 33.5t55 101.5q6 31 6 58q0 106 -107 106h-138l27 138h138q69 0 109 40.5t54 115.5q2 11 3 21t1 18q0 46 -27 69 t-84 23h-138l28 145h136q134 0 162 142q1 4 1 12q0 73 -165 103q-111 27 -111 148q0 29 6 64h166q-1 -3 -1 -10q0 -21 14 -38t37 -30.5t53 -25.5t62 -23q17 -6 38 -15.5t40 -27t31.5 -44.5t12.5 -68q0 -9 -1 -20.5t-3 -24.5q-14 -78 -69 -130t-149 -69l-4 -20 q78 -19 111.5 -58t33.5 -97q0 -9 -1 -20.5t-3 -23.5q-17 -94 -76 -149t-146 -68l-4 -20q142 -31 142 -163q0 -14 -1.5 -28t-3.5 -30q-32 -146 -217 -194l-4 -20q69 -24 102 -71.5t33 -119.5q0 -16 -1.5 -34t-5.5 -38q-28 -147 -148.5 -223t-336.5 -76z" />
+<glyph unicode="&#x10f2;" d="M114 -60q148 0 246 89q-188 135 -188 362q0 29 3 61.5t10 66.5q27 138 84.5 237t132.5 163.5t161.5 95t170.5 30.5q76 0 146 -24t123.5 -70.5t85 -113.5t31.5 -152q0 -32 -4.5 -75t-14.5 -91q-32 -156 -120.5 -277.5t-255.5 -212.5q71 -89 203 -89h15l-41 -209 q-250 69 -363 263q-115 -97 -231.5 -162.5t-234.5 -100.5zM563 118q73 22 130.5 56.5t101 83.5t73 113.5t46.5 147.5q16 80 16 144q0 121 -55 180t-157 59q-69 0 -127 -26.5t-102.5 -76t-74.5 -120.5t-45 -160q-5 -31 -8 -64t-3 -58q0 -103 52 -175t153 -104z" />
+<glyph unicode="&#x10f3;" d="M501 -283q134 0 215 65t106 198l6 32q9 46 9 85q0 213 -267 213h-116l31 160h114q75 0 134.5 25.5t104 72t74 112.5t43.5 147l13 74l-486 -30l-40 -204h-173l68 349l882 29q-90 -465 -402 -649q210 -95 210 -296q0 -42 -9 -88l-6 -32q-20 -105 -73 -181t-126 -125.5 t-159 -73.5t-171 -24q-78 0 -150.5 19.5t-128 57.5t-88.5 93t-33 127q0 21 3 49t9 58l52 111l177 -20l-39 -91q-4 -21 -6 -40.5t-2 -38.5q0 -184 224 -184z" />
+<glyph unicode="&#x10f4;" d="M425 -425q-391 0 -391 294q0 26 3 53.5t8 57.5h190q-4 -22 -6 -41.5t-2 -38.5q0 -184 225 -184q266 0 319 264l11 55q3 16 4.5 33t1.5 31q0 172 -235 172h-156l30 157h156q278 11 359 425q-130 -37 -275 -37h-8q-392 0 -392 265q0 41 9 89q35 192 169 289.5t363 97.5h3 l-28 -142q-159 0 -248 -62.5t-112 -183.5q-2 -12 -3.5 -23.5t-1.5 -23.5q0 -81 68.5 -122t198.5 -41q126 0 247 41t252 127l-51 -264q-77 -395 -405 -500l-4 -20q125 -26 190 -86t65 -157q0 -14 -1.5 -31.5t-4.5 -33.5l-11 -55q-41 -206 -176.5 -305.5t-360.5 -99.5z" />
+<glyph unicode="&#x10f5;" d="M442 0q-196 0 -296.5 64t-100.5 194q0 19 2 37.5t6 39.5q33 180 165.5 270t356.5 90h273l31 161h-273q-391 0 -391 274q0 43 10 90q34 164 159.5 250.5t357.5 86.5q197 0 291.5 -62.5t94.5 -189.5q0 -20 -2 -42.5t-6 -42.5l-42 -216h114l-29 -148h-114l-31 -161h114 l-35 -178h-114l-35 -182q-32 -164 -155.5 -249.5t-350.5 -85.5zM908 1004l42 216q2 12 3.5 23.5t1.5 23.5q0 148 -233 148q-134 0 -211 -48.5t-97 -148.5q-2 -14 -3.5 -28t-1.5 -27q0 -159 226 -159h273zM473 140q268 0 308 211l38 196h-273q-132 0 -207.5 -52t-94.5 -154 q-2 -13 -3.5 -24.5t-1.5 -23.5q0 -153 234 -153z" />
+<glyph unicode="&#x10f6;" d="M245 -282q183 0 219 231l151 777q5 28 7.5 51t2.5 41q0 86 -53 86l-97 -1h-1q-114 0 -150 -188l-62 -319q-5 -27 -8 -50.5t-3 -44.5q0 -122 96 -122l-28 -148q-258 1 -258 253q0 27 3 59t10 67l47 240q38 197 132.5 296.5t249.5 99.5q183 0 223 -145h16q21 33 52 60 t67.5 46t77 29t81.5 10q46 0 89.5 -14.5t76.5 -46t53 -80t20 -117.5q0 -59 -15 -138l-48 -244q-39 -201 -133.5 -303.5t-241.5 -102.5q-72 0 -104 27t-36 89h-15l-31 -152q-40 -197 -146.5 -292.5t-271.5 -95.5zM833 145q66 0 103 41.5t53 125.5l81 417q4 17 5.5 33.5 t1.5 30.5q0 56 -26 83.5t-83 27.5h-76q-73 0 -105 -167l-74 -381q-4 -21 -6 -39.5t-2 -35.5q0 -69 34 -102.5t94 -33.5z" />
+<glyph unicode="&#x10f7;" d="M461 -423q-426 0 -426 312q0 26 3 53.5t8 57.5q16 87 46 154.5t68 118t81 86.5t84.5 60.5t78.5 39.5t64 25q88 31 151.5 55.5t107.5 49.5t70 54.5t38 71.5q5 18 7 34.5t2 30.5q0 63 -31 93t-100 30q-85 0 -138 -41t-67 -118l-6 -56l-169 -21l3 65q31 161 136.5 237.5 t271.5 76.5q290 0 290 -236q0 -24 -3 -53.5t-8 -54.5q-23 -107 -122 -191.5t-283 -151.5q-168 -40 -260.5 -127t-119.5 -224q-9 -47 -9 -85q0 -207 264 -207q161 0 258.5 74t126.5 223q4 19 5.5 36.5t1.5 32.5q0 71 -37 108l172 92q28 -38 41.5 -84.5t13.5 -95.5 q0 -20 -2 -47.5t-7 -54.5q-17 -104 -66.5 -183t-127 -132.5t-181.5 -80.5t-230 -27z" />
+<glyph unicode="&#x10f8;" d="M476 -423q-198 0 -296 73t-98 218q0 26 3 51t8 54l204 1049h173l-109 -564q-2 -11 -3 -21t-1 -18q0 -38 17 -66.5t48 -47.5t74.5 -28.5t96.5 -9.5q79 0 138 20t101 59t68 95.5t38 129.5q4 23 6 44.5t2 42.5q0 197 -188 343l184 63q94 -90 143 -189.5t49 -202.5 q0 -21 -2 -48t-6 -53q-15 -103 -58 -187t-111.5 -144t-161.5 -92.5t-207 -32.5h-4q-185 0 -253 89h-20l-44 -227q-4 -20 -6 -38t-2 -36q0 -186 247 -186h3q263 0 313 260h187q-40 -201 -171.5 -300.5t-361.5 -99.5z" />
+<glyph unicode="&#x10f9;" d="M490 -425q-154 0 -227 55t-73 170q0 40 9 87q45 231 301 315q-340 75 -340 330q0 40 9 87q22 114 81 197.5t139.5 138t175 80.5t188.5 26q87 0 166.5 -21.5t140.5 -63t97.5 -102.5t36.5 -139q0 -22 -3 -53.5t-9 -62.5q-28 -143 -141 -252.5t-308 -193.5 q-315 -116 -348 -275q-3 -15 -4.5 -31.5t-1.5 -30.5q0 -62 33.5 -91t107.5 -29q83 0 139.5 35.5t70.5 105.5l15 76h178l-15 -76q-28 -142 -134.5 -212t-283.5 -70zM623 326q321 40 372 293q9 46 9 83q0 109 -67 162t-196 53q-159 0 -259 -77t-123 -221q-3 -20 -4.5 -38 t-1.5 -32q0 -89 65.5 -148t204.5 -75z" />
+<glyph unicode="&#x10fa;" d="M636 -134q1 0 -4 8t-12.5 18.5t-15.5 22t-13 17.5q-48 60 -140 60q-131 0 -221 -116l-115 74q87 102 207 126l6 30q-154 130 -154 354q0 71 16 148q45 220 184.5 328t384.5 110q369 -32 369 -278q0 -201 -240 -541l-134 61q190 292 190 446q0 82 -55 125.5t-164 43.5 q-140 0 -227.5 -73t-116.5 -220q-7 -34 -11 -75.5t-4 -82.5q0 -29 4 -62t17.5 -71t40.5 -81t73 -91q171 -42 265 -189l-130 -93v1z" />
+<glyph unicode="&#x10fb;" d="M383 995h192l-34 -176h-192zM777 630h186l-34 -174h-186zM233 224h189l-34 -174h-189z" />
+<glyph unicode="&#x10fc;" d="M371 938q0 20 3 47.5t9 57.5l64 332q18 94 74.5 137.5t146.5 43.5h235l-16 -82l-258 2q-37 0 -57.5 -21.5t-28.5 -59.5l-30 -158l138 79q165 0 165 -172q0 -23 -3 -48t-8 -53q-15 -76 -43.5 -130.5t-64 -89.5t-76 -51.5t-79.5 -16.5q-35 0 -66 12.5t-54 36t-37 57.5 t-14 77zM552 836q64 0 103 55.5t57 151.5q4 20 6 37.5t2 34.5q0 54 -24.5 81t-70.5 27q-58 0 -94.5 -45t-56.5 -141q-5 -25 -7.5 -48t-2.5 -41q0 -112 88 -112z" />
+<glyph unicode="&#x1e80;" d="M530 1866h182l147 -264h-139zM145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
+<glyph unicode="&#x1e81;" d="M430 1646h198l197 -376h-143zM92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
+<glyph unicode="&#x1e82;" d="M874 1866h208l-307 -264h-160zM145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
+<glyph unicode="&#x1e83;" d="M926 1646h219l-395 -376h-156zM92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
+<glyph unicode="&#x1e84;" d="M532 1602q-16 0 -26 11t-7 28l27 140q2 11 10 17t19 6h140q16 0 25.5 -11t6.5 -28l-27 -140q-2 -11 -10 -17t-19 -6h-139zM923 1602q-16 0 -26 11t-7 28l27 140q2 11 10 17t19 6h140q16 0 25.5 -11t6.5 -28l-27 -140q-2 -11 -10 -17t-19 -6h-139zM178 1493h191l-90 -1210 l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
+<glyph unicode="&#x1e85;" d="M469 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM860 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q28 0 28 -25q0 -5 -1 -8l-28 -142q-5 -27 -32 -27h-143zM92 1120h176l15 -905l268 578h162 l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
+<glyph unicode="&#x1ebc;" d="M700 1728q-69 0 -107 -101h-125q35 108 96.5 163.5t143.5 55.5q72 0 135 -47l35 -26q36 -27 72 -27q41 0 68.5 26.5t39.5 73.5h125q-32 -108 -96 -163.5t-149 -55.5q-33 0 -61.5 9.5t-60.5 33.5l-34 25l-2 1q-44 32 -80 32zM53 0l291 1493h885l-33 -170h-684l-86 -442 h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#x1ebd;" d="M1111 1554q-36 -284 -224 -284q-37 0 -71.5 15t-73.5 54l-47 49q-36 37 -74 37q-41 0 -63 -38.5t-31 -114.5h-125q18 137 73.5 209.5t149.5 72.5q41 0 74.5 -15.5t71.5 -53.5l47 -47q22 -22 36.5 -30.5t33.5 -8.5q81 0 98 155h125zM213 83q-115 112 -115 327 q0 154 60 304t166 259q81 85 184 131q99 45 211 45q184 0 296 -114q55 -57 83 -135t28 -171q0 -29 -5 -84l-5 -48l-12 -81h-807q-12 -60 -12 -107q0 -135 77 -209q76 -73 222 -73q87 0 195 29q106 29 218 84l-36 -183q-102 -42 -205 -64q-98 -22 -198 -22q-228 0 -345 112z M938 659q7 33 8 45q2 22 2 37q0 115 -65 183q-64 67 -177 67q-129 0 -229 -90q-48 -44 -86 -105.5t-59 -136.5h606z" />
+<glyph unicode="&#x1ef2;" d="M540 1866h182l147 -264h-139zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#x1ef3;" d="M470 1646h198l197 -376h-143zM20 -272h108q42 0 77 12t66 37.5t59.5 64.5t55.5 92l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-25 -43 -49.5 -86t-46.5 -81.5l-40 -70t-29 -50.5q-79 -138 -128.5 -222t-80.5 -126q-60 -79 -136 -114.5t-167 -35.5h-148z" />
+<glyph unicode="&#x1ef8;" d="M690 1728q-69 0 -107 -101h-125q35 108 96.5 163.5t143.5 55.5q72 0 135 -47l35 -26q36 -27 72 -27q41 0 68.5 26.5t39.5 73.5h125q-32 -108 -96 -163.5t-149 -55.5q-33 0 -61.5 9.5t-60.5 33.5l-34 25l-2 1q-44 32 -80 32zM377 0l131 670l-313 823h202l236 -651l497 651 h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#x1ef9;" d="M1156 1554q-36 -284 -224 -284q-37 0 -71.5 15t-73.5 54l-47 49q-36 37 -74 37q-41 0 -63 -38.5t-31 -114.5h-125q18 137 73.5 209.5t149.5 72.5q41 0 74.5 -15.5t71.5 -53.5l47 -47q22 -22 36.5 -30.5t33.5 -8.5q81 0 98 155h125zM-9 -426l29 154h108q82 0 141.5 48 t116.5 158l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-38 -68 -52 -90q3 5 -29 -50q-4 -8 -8.5 -15t-7.5 -14l-32 -56l-36 -63q-99 -174 -140 -243q-34 -57 -69 -104q-30 -39 -61.5 -67t-70.5 -47q-73 -37 -171 -37h-148z" />
+<glyph unicode="&#x2000;" />
+<glyph unicode="&#x2001;" />
+<glyph unicode="&#x2002;" />
+<glyph unicode="&#x2003;" />
+<glyph unicode="&#x2004;" />
+<glyph unicode="&#x2005;" />
+<glyph unicode="&#x2006;" />
+<glyph unicode="&#x2007;" />
+<glyph unicode="&#x2008;" />
+<glyph unicode="&#x2009;" />
+<glyph unicode="&#x200a;" />
+<glyph unicode="&#x2010;" d="M336 643h522l-33 -164h-522z" />
+<glyph unicode="&#x2011;" d="M336 643h522l-33 -164h-522z" />
+<glyph unicode="&#x2012;" d="M-23 633h1233l-28 -141h-1233z" />
+<glyph unicode="&#x2013;" d="M-23 633h1233l-28 -141h-1233z" />
+<glyph unicode="&#x2014;" d="M-23 633h1233l-28 -141h-1233z" />
+<glyph unicode="&#x2015;" d="M-23 633h1233l-28 -141h-1233z" />
+<glyph unicode="&#x2016;" d="M285 1565h172v-2048h-172v2048zM775 1565h172v-2048h-172v2048z" />
+<glyph unicode="&#x2017;" d="M0 -163h1233v-80h-1233v80zM0 -403h1233v-80h-1233v80z" />
+<glyph unicode="&#x2018;" d="M504 1174l270 382h154l-172 -382l-41 -207h-252z" />
+<glyph unicode="&#x2019;" d="M635 1350l41 206h252l-41 -206l-271 -383h-153z" />
+<glyph unicode="&#x201a;" d="M375 96l41 207h252l-41 -207l-271 -383h-153z" />
+<glyph unicode="&#x201b;" d="M540 1350l42 206h252l-42 -206l17 -383h-153z" />
+<glyph unicode="&#x201c;" d="M285 1174l272 382h154l-174 -382l-39 -207h-252zM743 1174l273 382h153l-172 -382l-41 -207h-251z" />
+<glyph unicode="&#x201d;" d="M393 1350l41 206h252l-41 -206l-270 -383h-154zM852 1350l41 206h252l-41 -206l-270 -383h-154z" />
+<glyph unicode="&#x201e;" d="M156 96l41 207h252l-39 -207l-273 -383h-153zM614 96l41 207h252l-39 -207l-272 -383h-154z" />
+<glyph unicode="&#x201f;" d="M298 1350l42 206h252l-42 -206l17 -383h-154zM757 1350l42 206h252l-42 -206l17 -383h-154z" />
+<glyph unicode="&#x2020;" d="M563 920h-368l30 153h367l82 420h176l-82 -420h367l-31 -153h-367l-217 -1117h-174z" />
+<glyph unicode="&#x2021;" d="M426 223h-367l31 154h367l106 543h-368l30 153h367l82 420h176l-82 -420h367l-31 -153h-367l-104 -543h366l-30 -154h-367l-82 -420h-174z" />
+<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -63 -22.5 -116t-64.5 -94q-44 -43 -98 -64.5t-114 -21.5z" />
+<glyph unicode="&#x2023;" d="M319 1137l674 -376l-674 -376v752z" />
+<glyph unicode="&#x2026;" d="M-33 0q-28 0 -28 25q0 5 1 8l49 243q6 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-49 -243q-6 -27 -32 -27h-192zM377 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192zM787 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27 h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192z" />
+<glyph unicode="&#x202f;" />
+<glyph unicode="&#x2030;" d="M287 856q-63 0 -115 22.5t-90 61.5q-41 42 -61.5 94t-20.5 110q0 61 22 114t61 92q38 38 90.5 60t112.5 22q58 0 110.5 -20.5t93.5 -61.5q36 -36 59.5 -88.5t23.5 -117.5q0 -60 -21.5 -112t-60.5 -92t-91 -62t-113 -22zM287 979q69 0 118 49q48 48 48 117q0 68 -49 117 t-117 49q-69 0 -117 -48q-49 -49 -49 -118q0 -38 13 -66t36 -51t51 -36t66 -13zM35 664l1044 415l39 -96l-1046 -416zM329 0q-62 0 -114 22.5t-89 60.5q-41 42 -61 94.5t-20 111.5q0 60 20.5 111.5t62.5 93.5q42 41 93 61t108 20q63 0 115 -22.5t89 -59.5q41 -41 62 -93 t21 -111t-21 -111.5t-61 -93.5q-38 -38 -90.5 -61t-114.5 -23zM946 0q-59 0 -111.5 21t-92.5 61q-38 38 -60.5 91.5t-22.5 115.5q0 63 22.5 114.5t59.5 88.5q41 41 93 62t111 21q62 0 115 -22.5t91 -60.5q41 -41 61.5 -93.5t20.5 -109.5q0 -59 -21 -111.5t-61 -93.5 q-38 -39 -91 -61.5t-114 -22.5zM329 121q35 0 65.5 13.5t52.5 35.5t35.5 52.5t13.5 65.5q0 33 -12.5 64t-36.5 55q-20 20 -50.5 34t-67.5 14q-32 0 -62 -12t-53 -35q-20 -20 -34 -51t-14 -69q0 -35 12.5 -65t34.5 -53q23 -23 52.5 -36t63.5 -13zM946 121q70 0 118 49 q26 26 37 55.5t11 62.5q0 34 -11.5 63t-37.5 55q-49 49 -117 49q-69 0 -117 -48q-49 -49 -49 -119q0 -33 11.5 -62.5t37.5 -55.5q24 -24 52 -36.5t65 -12.5z" />
+<glyph unicode="&#x2031;" d="M286 856q-60 0 -112 22.5t-91 61.5t-61 91.5t-22 112.5t22 112.5t61 91.5t91.5 61.5t112.5 22.5t112 -22.5t91 -61t61 -91t22 -112.5t-22 -113t-61 -92t-91.5 -61.5t-112.5 -22.5zM287 979q34 0 64.5 13t53 35.5t35.5 52.5t13 64t-13 64t-36 53t-53.5 36.5t-65.5 13.5 q-67 0 -115 -48q-49 -49 -49 -117q0 -35 13 -65.5t35.5 -53t52.5 -35.5t65 -13zM35 664l1044 415l39 -96l-1046 -416zM239 0q-51 0 -94.5 22t-76 60.5t-50.5 91t-18 113.5t18 113.5t50.5 91.5t76.5 61t95 22q45 0 87 -19t80 -64q5 -6 9.5 -12.5t9.5 -13.5q5 7 9.5 13t9.5 13 q69 83 172 83q47 0 88 -19t80 -64q5 -5 8.5 -10l10.5 -15q7 11 12 16.5t7 8.5q34 40 75.5 61.5t92.5 21.5q52 0 96 -22t76.5 -61t51 -91t18.5 -112t-18.5 -113t-51 -92t-77 -61.5t-95.5 -22.5q-52 0 -93 22.5t-75 61.5q-5 5 -8.5 10l-10.5 15q-5 -7 -9 -12.5t-10 -12.5 q-72 -84 -169 -84q-101 0 -171 84q-5 7 -10 13t-9 13q-5 -7 -9.5 -13t-9.5 -13q-71 -84 -168 -84zM237 121q29 0 54.5 13.5t44 36t29.5 53t11 64.5t-11 64t-29.5 53t-44 36.5t-54.5 13.5t-53.5 -13t-43 -35.5t-29 -53t-10.5 -65.5t10.5 -65.5t29 -53t43 -35.5t53.5 -13z M616 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5t-44.5 36t-53.5 13q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13zM994 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5t-44.5 36t-53.5 13 q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13z" />
+<glyph unicode="&#x2034;" d="M591 1493h203l-361 -373h-87zM891 1493h203l-361 -373h-87zM1191 1493h203l-361 -373h-87z" />
+<glyph unicode="&#x2035;" d="M718 1493h203l101 -373h-87z" />
+<glyph unicode="&#x2036;" d="M568 1493h203l101 -373h-87zM868 1493h203l101 -373h-87z" />
+<glyph unicode="&#x2037;" d="M418 1493h203l101 -373h-87zM718 1493h203l101 -373h-87zM1018 1493h203l101 -373h-87z" />
+<glyph unicode="&#x2039;" d="M249 559l17 82l551 418l-43 -211l-351 -264l248 -267l-33 -176z" />
+<glyph unicode="&#x203a;" d="M430 352l351 262l-250 269l35 176l387 -418l-17 -82l-549 -418z" />
+<glyph unicode="&#x203c;" d="M337 1053l70 445h265l-70 -445l-157 -567h-121zM837 1053l70 445h265l-70 -445l-157 -567h-121zM296 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5 q-24 -23 -54.5 -35.5t-70.5 -12.5zM796 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5z" />
+<glyph unicode="&#x203d;" d="M607 1342q-14 -3 -33.5 -9t-33.5 -11q-42 -14 -96.5 -41.5t-110.5 -61.5l37 188q98 54 199.5 83.5t207.5 29.5q85 0 150 -20t109.5 -56t67.5 -87t23 -114q0 -18 -2 -37t-6 -39q-8 -38 -22.5 -73t-40.5 -70.5t-64 -73.5t-92 -82l-105 -86q-41 -33 -66.5 -58.5t-42 -49 t-25 -48t-14.5 -55.5l-33 -170h-190zM768 961q36 30 61.5 54t43 46.5t27.5 45.5t15 50q2 11 3 21.5t1 19.5q0 33 -10 57.5t-27 42.5t-39 29.5t-45 18.5l-84 -430zM440 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13 q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
+<glyph unicode="&#x203e;" d="M0 1547h1233v-80h-1233v80z" />
+<glyph unicode="&#x203f;" d="M614 -485q-168 0 -336 58t-346 178v126q91 -55 173.5 -92.5t167.5 -63.5t167.5 -39t172.5 -13q177 0 345.5 51.5t341.5 156.5v-126q-177 -118 -346.5 -177t-339.5 -59z" />
+<glyph unicode="&#x2045;" d="M621 1556h423l-28 -143h-240l-136 -699h240l-28 -143h-240l-135 -698h240l-27 -143h-426z" />
+<glyph unicode="&#x2046;" d="M176 -127h240l135 698h-240l29 143h240l135 699h-240l29 143h424l-357 -1826h-424z" />
+<glyph unicode="&#x2047;" d="M157 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5 t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM773 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46 t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66 q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM162 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5 t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM782 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
+<glyph unicode="&#x2048;" d="M233 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5 t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM927 1053l70 445h265l-70 -445l-157 -567h-121zM232 -40q-26 0 -48 8.5t-40 28.5 q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM895 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13 q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
+<glyph unicode="&#x2049;" d="M743 555q10 53 23 93.5t31 76.5t42.5 71t59.5 76l75 89q24 28 42 51.5t31 46t22 46t14 52.5q2 11 3 22t1 19q0 48 -27.5 79.5t-87.5 35.5h-9q-49 0 -89 -20q-23 -11 -61 -38.5t-80 -64.5l42 217q39 31 75 53t71 35.5t70.5 19.5t73.5 6h13.5t13.5 -1q62 -3 102 -25.5 t63.5 -56t32.5 -74.5t9 -83q0 -26 -3 -57t-10.5 -64.5t-19 -67.5t-27.5 -66q-19 -35 -45.5 -72t-68.5 -86l-74 -86q-28 -33 -46.5 -58t-30.5 -48t-20 -47.5t-14 -57.5l-33 -170h-194zM257 1053l70 445h265l-70 -445l-157 -567h-121zM225 -40q-26 0 -48 8.5t-40 28.5 q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM742 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13 q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
+<glyph unicode="&#x204b;" d="M367 1493h448q94 0 169 -23t127 -66.5t79.5 -105.5t27.5 -139q0 -42 -9 -88q-17 -92 -62 -166t-113.5 -128t-159 -87t-198.5 -41l-164 -846h-141l304 1567h-191l-304 -1567h-141z" />
+<glyph unicode="&#x205f;" />
+<glyph unicode="&#x2070;" d="M611 653q-131 0 -194.5 67.5t-63.5 208.5q0 57 10 116.5t27.5 117t42 110t54.5 93.5q59 82 134 118t169 36q131 0 195.5 -67t64.5 -207q0 -55 -9.5 -114.5t-27.5 -117.5t-42.5 -111t-54.5 -95q-110 -155 -305 -155zM625 745q57 0 100.5 26.5t78.5 84.5q23 38 43 88 t34.5 104.5t23 109.5t8.5 102q0 90 -32.5 129t-101.5 39q-57 0 -101.5 -25.5t-80.5 -84.5q-23 -38 -43 -88.5t-34.5 -105.5t-23 -110t-8.5 -101q0 -88 33 -128t104 -40zM702 1014q-38 0 -65 21.5t-27 53.5q0 16 7.5 29.5t20 24t29 16.5t34.5 6t34.5 -6t29 -16.5t19.5 -24.5 t7 -30q0 -31 -25.5 -52.5t-63.5 -21.5z" />
+<glyph unicode="&#x2074;" d="M662 1304h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM684 1415l76 391l-342 -391h266z" />
+<glyph unicode="&#x2075;" d="M548 1113q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
+<glyph unicode="&#x2076;" d="M634 1113q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5 q-55 -59 -125 -83.5t-148 -24.5zM639 1201q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z" />
+<glyph unicode="&#x2077;" d="M876 1860h-476l21 95h629l-10 -53l-541 -782h-146z" />
+<glyph unicode="&#x2078;" d="M617 1113q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35 q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM716 1614q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM625 1200q49 0 89.5 13.5t69.5 38t45 58.5t16 74 q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
+<glyph unicode="&#x2079;" d="M543 1113q-54 0 -100.5 8.5t-89.5 24.5l24 104q39 -20 84.5 -31t94.5 -11q135 0 218 81.5t119 237.5q-46 -57 -107 -86.5t-145 -29.5q-115 0 -180 56t-65 160q0 63 25 128t74 117q102 108 275 108q131 0 205.5 -65.5t74.5 -199.5q0 -40 -7 -86.5t-19.5 -94t-31 -94.5 t-40.5 -87q-133 -240 -409 -240zM677 1499q54 0 97.5 20t74.5 53t48 77t17 92q0 75 -40 113t-109 38q-53 0 -96 -21.5t-73 -57t-46.5 -80.5t-16.5 -92q0 -73 38 -107.5t106 -34.5z" />
+<glyph unicode="&#x207a;" d="M564 980h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
+<glyph unicode="&#x207b;" d="M284 1075h666v-95h-666v95z" />
+<glyph unicode="&#x207c;" d="M284 1189h666v-95h-666v95zM284 961h666v-96h-666v96z" />
+<glyph unicode="&#x207d;" d="M502 517q-25 54 -43 102t-30 92.5t-17.5 86.5t-5.5 85q0 164 80.5 331.5t240.5 323.5h100q-149 -169 -224 -338.5t-75 -340.5q0 -82 18.5 -166.5t56.5 -175.5h-101v0z" />
+<glyph unicode="&#x207e;" d="M406 517q149 169 224.5 339t75.5 339q0 164 -76 343h102q48 -106 72 -192.5t24 -174.5q0 -168 -83.5 -335t-238.5 -319h-100v0z" />
+<glyph unicode="&#x208a;" d="M564 312h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
+<glyph unicode="&#x208b;" d="M284 407h666v-95h-666v95z" />
+<glyph unicode="&#x208c;" d="M284 521h666v-95h-666v95zM284 293h666v-96h-666v96z" />
+<glyph unicode="&#x208d;" d="M502 -151q-25 54 -43 102t-30 92.5t-17.5 86.5t-5.5 85q0 164 80.5 331.5t240.5 323.5h100q-149 -169 -224 -338.5t-75 -340.5q0 -82 18.5 -166.5t56.5 -175.5h-101v0z" />
+<glyph unicode="&#x208e;" d="M406 -151q149 169 224.5 339t75.5 339q0 164 -76 343h102q48 -106 72 -192.5t24 -174.5q0 -168 -83.5 -335t-238.5 -319h-100v0z" />
+<glyph unicode="&#x20a0;" d="M639 440q-63 -54 -126.5 -81t-133.5 -27q-74 0 -131 29t-97 84t-60.5 134.5t-20.5 180.5q0 36 3 74t8 79q18 135 58.5 242.5t99 183t134 115.5t162.5 40q139 0 230 -107l-21 -159q-45 74 -99 107.5t-122 33.5q-133 0 -217.5 -117t-113.5 -339q-5 -39 -7.5 -75t-2.5 -68 q0 -156 56 -234.5t162 -78.5q137 0 260 141l70 522h487l-18 -128h-383l-44 -331h367l-17 -128h-367l-54 -405h392l-17 -128h-496z" />
+<glyph unicode="&#x20a1;" d="M228 107q-5 5 -9 10l-8 10q-133 155 -133 435q0 182 51 352.5t145 310.5q49 74 105 129.5t121 92t140 55t163 18.5h10l30 73h122l-37 -87q39 -8 74 -21l14 -6l47 114h122l-69 -167q16 -11 31 -23t31 -25l-34 -213q-23 29 -47.5 53t-49.5 44l-466 -1127h11q115 0 219.5 44 t204.5 134l-39 -239q-195 -103 -397 -103q-17 0 -33 1t-32 3l-26 -64h-121l35 87q-22 7 -42.5 16.5t-40.5 20.5l-52 -125h-121zM744 1354q-57 -5 -110 -25t-102 -59t-93.5 -99.5t-83.5 -146.5q-51 -111 -76.5 -228t-25.5 -237q0 -86 13.5 -150t39.5 -115zM951 1321 q-41 19 -87 28l-477 -1153q36 -27 81 -42z" />
+<glyph unicode="&#x20a2;" d="M587 -29q-121 0 -215.5 40.5t-160 116.5t-99.5 185.5t-34 248.5q0 89 13.5 179t39 175.5t62 164t81.5 145.5q103 152 235 223t293 71q115 0 207.5 -35t175.5 -107l-34 -213q-81 97 -168.5 144t-193.5 47q-142 0 -248.5 -82t-183.5 -250q-51 -112 -76.5 -230.5 t-25.5 -233.5q0 -108 21 -183.5t58.5 -125.5t88 -76.5t110.5 -35.5l141 869h138l-27 -157q55 88 129.5 134.5t162.5 46.5q21 0 43 -3t43 -10l-25 -164q-21 14 -48 21t-55 7q-55 0 -103.5 -25.5t-88 -73t-68 -116t-42.5 -154.5l-62 -374q37 5 78 16t85 31t91.5 50.5 t97.5 75.5l-39 -239q-100 -51 -200 -77t-197 -26z" />
+<glyph unicode="&#x20a3;" d="M218 260h-161l25 148h161l184 1085h748l-29 -170h-572l-75 -440h517l-29 -170h-517l-52 -305h187l-26 -148h-186l-44 -260h-176z" />
+<glyph unicode="&#x20a4;" d="M76 170h216l66 365h-188l26 143h187l26 149h-186l27 143h185l8 46q23 131 65.5 226.5t104.5 157t143.5 91t182.5 29.5q73 0 136 -15t128 -45l-33 -182q-59 41 -117 61.5t-127 20.5q-64 0 -112.5 -19.5t-84.5 -63.5t-61 -114t-43 -170l-4 -23h357l-27 -143h-356l-26 -149 h355l-26 -143h-355l-66 -365h495l-30 -170h-897z" />
+<glyph unicode="&#x20a5;" d="M558 698q2 26 3.5 49.5t1.5 45.5q0 96 -25.5 145t-84.5 49q-42 0 -78.5 -25t-66 -71t-50 -111.5t-29.5 -146.5l-73 -633h-110l130 1120h110l-21 -174q95 201 236 201q37 0 64 -13.5t46 -36t31 -51.5t20 -61l116 325h101l-77 -214q61 51 131 51q51 0 88.5 -30t59.5 -93 q26 -78 26 -191q0 -36 -2.5 -75t-7.5 -82l-78 -676h-110l77 670q5 36 6.5 67t1.5 58q0 35 -3 63t-11 51q-13 39 -36 58.5t-60 19.5q-42 0 -78.5 -24.5t-66 -70.5t-50 -111.5t-29.5 -147.5l-73 -633h-110l34 285l-172 -475h-101z" />
+<glyph unicode="&#x20a6;" d="M125 550h-162l24 123h162l28 147h-162l24 123h162l107 550h272l104 -550h230l107 550h196l-107 -550h162l-24 -123h-162l-28 -147h162l-24 -123h-162l-107 -550h-272l-104 550h-230l-107 -550h-196zM476 943l-39 206l-40 -206h79zM527 673l-27 147h-127l-28 -147h182z M862 673l28 147h-182l27 -147h127zM838 550h-79l39 -206z" />
+<glyph unicode="&#x20a7;" d="M928 -29q-41 0 -89 17q-11 4 -23 9.5t-17 7.5l-1 -5h-85q-158 0 -158 258q0 25 1.5 51.5t4.5 59.5l58 608h-51q-8 -73 -27.5 -141t-53.5 -120.5t-84.5 -84t-119.5 -31.5h-123l-57 -600h-98l141 1493h227q100 0 151 -94.5t51 -278.5h57l30 318h89l-30 -318h179l-5 -47 q62 74 157 74q87 0 167 -60l-17 -174q-71 80 -156 80q-35 0 -63 -13t-47.5 -37t-30 -57t-10.5 -73q0 -32 6.5 -55t19 -40.5t30 -31.5t39.5 -29q5 -3 4 -2.5t6 -3.5l29 -18q45 -26 73.5 -51.5t45.5 -55.5t23.5 -67.5t6.5 -85.5q0 -89 -18 -163t-51 -127t-79 -82.5t-102 -29.5 zM299 766q42 0 74.5 23t54 65.5t33 102.5t11.5 133q0 124 -30.5 180.5t-84.5 56.5h-128l-53 -561h123zM938 125q34 0 61.5 16t47 43t30 62t10.5 74q0 60 -26.5 97t-81.5 68l-9 5l-31 16q-72 37 -101.5 100t-29.5 160q0 48 7.5 105.5t26.5 105.5h-134l-57 -608 q-3 -34 -4.5 -56t-1.5 -39q0 -62 19 -91t59 -29h21l7 77q48 -51 95 -78.5t92 -27.5z" />
+<glyph unicode="&#x20a8;" d="M831 -29q-54 0 -106 18q-24 7 -49 18l1 -7h-125l-67 383q-26 151 -59 199q-34 49 -104 49h-127l-70 -631h-116l166 1493h263q129 0 189.5 -80t60.5 -233q0 -27 -1.5 -56t-5.5 -61q-17 -145 -62 -234t-125 -129q35 -23 62 -94q27 -72 49 -198l32 -180q51 -51 104 -77 t110 -26q75 0 118 43t55 127q3 22 3 42q0 30 -8.5 52t-25.5 38.5t-43 30.5t-61 29l-35 15q-81 31 -118 90.5t-37 153.5q0 17 1 34.5t3 36.5q18 159 91.5 244.5t198.5 85.5q54 0 105 -15.5t88 -44.5l-19 -174q-80 80 -187 80q-74 0 -118 -40t-55 -128q-1 -9 -1.5 -16.5 t-0.5 -15.5q0 -24 6 -43t20.5 -35.5t38 -31t59.5 -28.5l35 -14q87 -35 131 -95t44 -162q0 -17 -1 -36t-4 -39q-10 -78 -35 -140.5t-63.5 -106.5t-90 -67.5t-114.5 -23.5zM360 797q85 0 134.5 67t64.5 199q2 20 3 37.5t1 34.5q0 192 -144 192h-146l-59 -530h146z" />
+<glyph unicode="&#x20a9;" d="M108 896h-104l18 143h81l-5 117h-61l18 143h38l-7 194h133l7 -194h347l56 194h149l6 -194h348l56 194h134l-57 -194h37l-18 -143h-61l-33 -117h79l-18 -143h-103l-261 -896h-166l-29 896h-128l-257 -896h-166zM498 1039l33 117h-300l4 -117h263zM687 1039l-3 117h-45 l-33 -117h81zM1056 1039l34 117h-300l4 -117h262zM457 896h-216l23 -665zM1015 896h-216l24 -665z" />
+<glyph unicode="&#x20aa;" d="M242 1490l403 3q157 1 236 -95t79 -277q0 -49 -6 -103.5t-17 -114.5l-69 -367h-142l63 342q11 63 17 115t6 97q0 126 -48 182.5t-150 56.5h-259l-253 -1358h-141zM664 -29q-157 0 -236 92.5t-79 277.5q0 49 6 103.5t17 116.5l68 367h142l-63 -342q-11 -63 -17 -115 t-6 -97q0 -126 48.5 -182.5t150.5 -56.5h261l250 1358h143l-287 -1522h-398z" />
+<glyph unicode="&#x20ab;" d="M567 -30q-161 0 -251 104t-90 304q0 66 10 136.5t29.5 139.5t47 134t62.5 120q75 118 176.5 178t221.5 60q100 0 172.5 -42t115.5 -128l62 309h-332l25 121h329l31 149h184l-30 -149h192l-22 -121h-193l-250 -1286h-184l27 141q-66 -85 -148 -127.5t-185 -42.5zM624 126 q89 0 156 45.5t115 132.5q24 43 43.5 95.5t33 108t21 110.5t7.5 105q0 138 -54.5 202.5t-157.5 64.5q-89 0 -153 -45t-110 -129q-24 -44 -43 -96t-32.5 -108t-20.5 -112.5t-7 -108.5q0 -136 49.5 -200.5t152.5 -64.5zM240 -210h598l-29 -148h-598z" />
+<glyph unicode="&#x20ac;" d="M612 -29q-114 0 -197 35t-138 99q-60 69 -87.5 168.5t-27.5 224.5v45h-172l49 110h133q4 29 8 55t9 49q8 45 18 83h-158l49 108h140q48 146 113 252t146 176q84 72 183 108t211 36q42 0 79 -5t75 -16q77 -21 147 -61l-39 -207q-72 66 -135 95q-65 30 -138 30 q-137 0 -248 -105q-112 -106 -183 -303h473l-50 -108h-456q-3 -12 -5.5 -20t-4.5 -16.5t-4.5 -20.5t-6.5 -32t-7 -33.5t-5 -24.5t-3.5 -20t-2.5 -20h411l-47 -110h-376v-54q0 -171 73 -262q35 -45 86 -68.5t120 -23.5q40 0 80 8t83 24q83 31 170 93l-39 -207 q-80 -42 -160 -62q-40 -10 -81 -15t-85 -5z" />
+<glyph unicode="&#x20b0;" d="M511 133q61 0 114 16.5t94.5 50.5t70.5 87t42 127q1 7 1.5 13.5t0.5 14.5q0 76 -74 174q-77 -65 -137 -95.5t-114 -30.5q-34 0 -58.5 11t-41.5 26.5t-28.5 33.5t-19.5 33q-15 28 -32 49t-43 21q-30 0 -66.5 -35t-93.5 -113l-109 96q51 69 91.5 115t75 73.5t65 39.5 t61.5 12q41 0 78.5 -18.5t62.5 -59.5q33 -54 53 -80.5t43 -26.5q17 0 44 16.5t58 49.5q-139 140 -139 331q0 47 9 100q15 87 47.5 153.5t77 111.5t98.5 68t112 23q56 0 98 -20.5t69.5 -55t41.5 -80t14 -94.5q0 -20 -2.5 -48t-7.5 -58q-17 -103 -59.5 -206.5t-108.5 -191.5 q54 -66 81 -134.5t27 -143.5q0 -18 -1.5 -37.5t-4.5 -38.5q-14 -93 -54 -174t-105 -140t-155 -93t-205 -34zM782 881q43 57 71 132t41 151q4 21 5.5 40t1.5 33q0 19 -3 40.5t-11 40.5t-22.5 31.5t-37.5 12.5q-24 0 -45 -14.5t-38.5 -41t-31 -63t-20.5 -79.5q-6 -33 -6 -64 q0 -125 96 -219z" />
+<glyph unicode="&#x20b1;" d="M230 919h-100l19 90h99l17 89h-110l19 90h109l59 305h440q103 0 178.5 -22t126.5 -62.5t79 -96.5t35 -124h112l-19 -90h-91q-1 -23 -3.5 -45t-7.5 -44h96l-19 -90h-102q-41 -103 -123 -176q-161 -143 -440 -143h-233l-117 -600h-203zM991 1188q-37 139 -246 139h-233 l-27 -139h506zM986 1009q5 21 8.5 43.5t4.5 45.5h-531l-18 -89h536zM637 766q214 0 310 153h-514l-30 -153h234z" />
+<glyph unicode="&#x20b2;" d="M429 -22q-97 15 -167 61.5t-115 116t-66 157.5t-21 185q0 53 6 117t17 130q31 181 92.5 318t144 232.5t180 149.5t200.5 68l25 143h128l-25 -137q96 -4 183.5 -37.5t162.5 -103.5l-38 -215q-70 96 -155 141.5t-182 49.5l-215 -1217q72 2 135.5 19.5t123.5 56.5l71 401 h-110l30 166h263l-112 -641q-106 -84 -214 -123t-217 -44l-23 -137h-128zM669 1341q-61 -15 -116 -49.5t-102 -90.5q-64 -77 -109.5 -191.5t-71.5 -264.5q-22 -125 -22 -226q0 -72 11.5 -133t37 -108t65.5 -79.5t97 -48.5z" />
+<glyph unicode="&#x20b3;" d="M198 520h-133l22 123h172l103 207h-238l22 123h276l258 520h208l73 -520h277l-22 -123h-238l28 -207h173l-22 -123h-133l72 -520h-191l-62 520h-462l-245 -520h-194zM787 973l-39 321l-152 -321h191zM827 643l-24 207h-265l-98 -207h387z" />
+<glyph unicode="&#x20b4;" d="M501 -29q-210 0 -324.5 83.5t-114.5 244.5q0 50 12 109q8 36 19.5 73t26.5 69h-157l24 123h217l22 21q87 79 233 126h-444l24 123h831q7 5 11 7.5t12 8.5q20 16 36.5 38.5t28 48t18 54t6.5 56.5q0 38 -12.5 72.5t-40.5 61.5q-31 30 -84 48t-129 18q-188 0 -394 -119 l39 205q226 78 397 78q98 0 175 -24.5t130.5 -69.5t82 -109t28.5 -142q0 -23 -2.5 -47t-7.5 -49q-15 -73 -47 -136h155l-24 -123h-233q-55 -45 -134.5 -79.5t-189.5 -58.5l-41 -9h570l-24 -123h-857q-34 -36 -57 -92t-23 -115q0 -38 12.5 -74t41.5 -65q70 -69 223 -69 q105 0 214.5 34t238.5 107l-42 -215q-117 -45 -227 -67.5t-219 -22.5z" />
+<glyph unicode="&#x20b5;" d="M515 -24q-50 7 -89.5 19t-72.5 29t-60 40t-51 52q-65 77 -94.5 169t-29.5 198q0 77 15 160l3 17q18 103 56 190.5t89 159t112.5 127t126.5 95t131 62.5t126 30l44 230l101 2l-43 -226q93 -2 176.5 -36t156.5 -106l-41 -213q-36 52 -72 89.5t-75 60.5t-82.5 34t-94.5 11 l-202 -1039q51 0 99 11t96 34t98 60t106 90l-41 -211q-103 -72 -199.5 -107t-189.5 -37l-52 -272h-100zM744 1159q-50 -12 -93 -34.5t-82 -54.5q-68 -56 -113 -128.5t-72.5 -148t-39.5 -147t-15 -126.5q-1 -9 -1 -18v-17q0 -81 19.5 -143t58.5 -110q29 -35 63.5 -57 t77.5 -33z" />
+<glyph unicode="&#x20b7;" d="M473 1068q0 -39 12 -67.5t37 -50.5q49 -43 178 -84l121 -39q87 -28 143.5 -59t95.5 -74t57 -95.5t18 -125.5q0 -112 -41.5 -204t-124.5 -160q-152 -125 -395 -137l-21 -174h-88l20 174q-68 1 -134 14l-23 -188h-88l27 207q-77 22 -127 44l-36 -251h-88l114 657h78v-50 q46 64 115 64q39 0 63 -19.5t29 -54.5q47 74 126 74q46 0 72.5 -28.5t26.5 -78.5q0 -37 -4 -62l-6 -39l-10 -53l-14 -71q90 5 165 44.5t119 108t44 154.5q0 79 -44 129q-24 24 -65 44t-112 42l-101 33q-97 32 -157.5 62.5t-99.5 69.5t-56.5 86t-17.5 115q0 105 42 195.5 t123 159.5q83 69 190.5 104.5t232.5 35.5q168 0 364 -78l-39 -205q-164 119 -349 119q-82 0 -151 -21t-118 -61q-49 -39 -76 -92.5t-27 -113.5zM303 186l3 18l3 17l9 44l6 42l1 22q0 30 -13 43q-10 16 -38 16q-38 0 -59 -30q-18 -32 -35 -106q60 -39 123 -66zM518 136l13 68 l9 44l6 35q4 19 4 46q0 31 -12 44q-11 15 -38 15q-22 0 -36 -8t-25 -26q-12 -19 -22.5 -53.5t-22.5 -96.5l-9 -46q64 -17 133 -22z" />
+<glyph unicode="&#x20b8;" d="M192 1493h1139l-33 -170h-1139zM572 1033h-469l33 170h1139l-33 -170h-467l-201 -1033h-203z" />
+<glyph unicode="&#x20b9;" d="M554 377q-22 79 -45 128.5t-51.5 77.5t-65 38t-87.5 10h-193l32 166h221q72 0 127.5 19t96 51.5t67 77t41.5 95.5h-536l79 123h475q-1 38 -12.5 75t-39.5 66.5t-75.5 47.5t-119.5 18h-243l79 123h978l-79 -123h-344q70 -78 68 -207h291l-79 -123h-227q-15 -67 -47 -124 t-79.5 -100.5t-109 -72t-136.5 -38.5q37 -9 65.5 -25.5t52.5 -48.5t46 -85.5t48 -137.5l124 -408h-217z" />
+<glyph unicode="&#x2116;" d="M-100 0l290 1493h194l56 -940l182 940h175l-290 -1493h-194l-71 859l-167 -859h-175zM1173 782q-86 -112 -199 -112q-59 0 -96 29t-59 82q-25 59 -25 145q0 64 17 154q36 184 124 300q89 112 199 112q114 0 155 -113q24 -61 24 -145q0 -73 -16 -154q-36 -186 -124 -298z M908 863q24 -76 89 -76q58 0 98.5 49t66.5 119q20 52 34 127q14 69 14 130q0 51 -10 85q-22 78 -89 78q-66 0 -119 -77q-53 -80 -80 -218q-14 -70 -14 -132q0 -51 10 -85zM708 441l24 123h441l-24 -123h-441z" />
+<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
+<glyph unicode="&#x2126;" d="M-33 172h245q-69 94 -102.5 194.5t-33.5 218.5q0 92 21 197q30 154 91.5 279.5t147.5 214t193.5 136.5t229.5 48q101 0 179 -33t131 -94.5t80.5 -149.5t27.5 -198q0 -95 -21 -203q-18 -94 -47.5 -176.5t-72.5 -156.5t-100.5 -142.5t-131.5 -134.5h248l-34 -172h-463 l34 172q67 37 126.5 99.5t108 144t84.5 179t56 204.5q8 47 12.5 90t4.5 82q0 153 -63.5 238t-189.5 85q-76 0 -144 -32.5t-123.5 -95.5t-97.5 -155.5t-66 -211.5q-24 -117 -24 -222q0 -140 40 -245.5t117 -159.5l-34 -172h-463z" />
+<glyph unicode="&#x2150;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM1013 470h-476l21 95h629l-10 -53l-541 -782h-146z" />
+<glyph unicode="&#x2151;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM680 -275q-54 0 -100.5 8.5t-89.5 24.5l24 104q39 -20 84.5 -31t94.5 -11q135 0 218 81.5t119 237.5q-46 -57 -107 -86.5t-145 -29.5q-115 0 -180 56 t-65 160q0 63 25 128t74 117q102 108 275 108q131 0 205.5 -65.5t74.5 -199.5q0 -40 -7 -86.5t-19.5 -94t-31 -94.5t-40.5 -87q-133 -240 -409 -240zM814 111q54 0 97.5 20t74.5 53t48 77t17 92q0 75 -40 113t-109 38q-53 0 -96 -21.5t-73 -57t-46.5 -80.5t-16.5 -92 q0 -73 38 -107.5t106 -34.5z" />
+<glyph unicode="&#x2153;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM673 -285q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5 t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
+<glyph unicode="&#x2154;" d="M70 934l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557zM47 612l1059 258l27 -108l-1063 -258zM673 -285q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10 t-111.5 -33l22 115q145 35 245 35q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
+<glyph unicode="&#x2155;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11 t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
+<glyph unicode="&#x2156;" d="M70 934l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5 t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
+<glyph unicode="&#x2157;" d="M308 809q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5 t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
+<glyph unicode="&#x2158;" d="M434 1008h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM456 1119l76 391l-342 -391h266zM47 612l1059 258l27 -108l-1063 -258zM685 -285q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89 q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
+<glyph unicode="&#x2159;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM771 -285q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104 q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5q-55 -59 -125 -83.5t-148 -24.5zM776 -197q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77 t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z" />
+<glyph unicode="&#x215a;" d="M320 809q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22zM47 612l1059 258l27 -108l-1063 -258zM771 -285q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320 q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5q-55 -59 -125 -83.5t-148 -24.5zM776 -197q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z " />
+<glyph unicode="&#x215b;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5 t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30 q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
+<glyph unicode="&#x215c;" d="M308 809q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5 t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5 t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
+<glyph unicode="&#x215d;" d="M320 809q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5 t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63 q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
+<glyph unicode="&#x215e;" d="M618 1564h-476l21 95h629l-10 -53l-541 -782h-146zM47 612l1059 258l27 -108l-1063 -258zM754 -285q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19 q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM853 216q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50 t-14.5 -63q0 -57 38.5 -89t104.5 -32zM762 -198q49 0 89.5 13.5t69.5 38t45 58.5t16 74q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
+<glyph unicode="&#x215f;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258z" />
+<glyph unicode="&#x2189;" d="M353 809q-131 0 -194.5 67.5t-63.5 208.5q0 57 10 116.5t27.5 117t42 110t54.5 93.5q59 82 134 118t169 36q131 0 195.5 -67t64.5 -207q0 -55 -9.5 -114.5t-27.5 -117.5t-42.5 -111t-54.5 -95q-110 -155 -305 -155zM367 901q57 0 100.5 26.5t78.5 84.5q23 38 43 88 t34.5 104.5t23 109.5t8.5 102q0 90 -32.5 129t-101.5 39q-57 0 -101.5 -25.5t-80.5 -84.5q-23 -38 -43 -88.5t-34.5 -105.5t-23 -110t-8.5 -101q0 -88 33 -128t104 -40zM444 1170q-38 0 -65 21.5t-27 53.5q0 16 7.5 29.5t20 24t29 16.5t34.5 6t34.5 -6t29 -16.5t19.5 -24.5 t7 -30q0 -31 -25.5 -52.5t-63.5 -21.5zM47 612l1059 258l27 -108l-1063 -258zM673 -285q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5 q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
+<glyph unicode="&#x2190;" d="M66 520v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x2191;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
+<glyph unicode="&#x2192;" d="M786 319l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x2193;" d="M284 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x2194;" d="M66 520v82l291 291l90 -90l-160 -160h659l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-659l160 -160l-90 -90z" />
+<glyph unicode="&#x2195;" d="M284 291l90 90l160 -160v659l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-659l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x2196;" d="M311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
+<glyph unicode="&#x2197;" d="M184 116l622 622h-227v127h412l58 -58v-412h-127v227l-622 -622z" />
+<glyph unicode="&#x2198;" d="M579 127h227l-622 622l116 116l622 -622v227h127v-412l-58 -58h-412v127z" />
+<glyph unicode="&#x2199;" d="M184 58v412h127v-227l622 622l116 -116l-622 -622h227v-127h-412z" />
+<glyph unicode="&#x219a;" d="M66 520v82l291 291l90 -90l-160 -160h483l148 250l142 -82l-99 -168h206v-164h-303l-147 -250l-142 82l99 168h-387l160 -160l-90 -90z" />
+<glyph unicode="&#x219b;" d="M173 311l99 168h-206v164h303l147 250l142 -82l-99 -168h387l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-483l-148 -250z" />
+<glyph unicode="&#x219c;" d="M89 807l58 58h412v-127h-267q2 -2 5 -6.5t13.5 -17.5t31.5 -38.5t59 -68.5q18 -21 46.5 -37.5t57.5 -16.5q9 0 22.5 2.5t29 8.5t31 16.5t29.5 27.5q5 7 9 13t7.5 12.5t7.5 15.5t9 21q21 50 55.5 97t88.5 74q46 23 99 23q104 0 183 -92q42 -49 68 -112l-106 -67 q-3 9 -11 23t-20 28.5t-26.5 28t-30.5 22.5q-25 14 -56 14q-29 0 -57 -14t-51 -41q-15 -18 -21 -31t-14 -30q-10 -23 -23.5 -47.5t-31 -47.5t-40 -43t-49.5 -33q-48 -23 -98 -23q-57 0 -103.5 26t-80.5 66l-109 128v-224h-127v412z" />
+<glyph unicode="&#x219d;" d="M1017 619l-109 -128q-36 -43 -82.5 -67.5t-100.5 -24.5t-101 24.5t-83 67.5q-24 29 -36 54t-23 48q-17 38 -35.5 62t-50.5 40q-14 7 -27.5 10.5t-29.5 3.5q-38 0 -63.5 -18t-42.5 -38t-27 -37.5t-11 -22.5l-106 67q25 63 66.5 110.5t85.5 70.5t97 23q57 0 105 -25.5 t80 -64.5q23 -27 37 -55t23 -49q7 -16 13 -30t15 -26t22.5 -23.5t33.5 -22.5q25 -15 56 -15q34 0 62.5 16.5t46.5 37.5q29 34 48.5 57t32 38t19 23.5t9.5 12.5h-267v127h412l58 -58v-412h-127v224z" />
+<glyph unicode="&#x219e;" d="M66 520v82l291 291l90 -90l-160 -160h150l250 250l90 -90l-160 -160h550v-164h-550l160 -160l-90 -90l-250 250h-150l160 -160l-90 -90z" />
+<glyph unicode="&#x219f;" d="M534 550l-160 -160l-90 90l250 250v150l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-150l250 -250l-90 -90l-160 160v-550h-164v550z" />
+<glyph unicode="&#x21a0;" d="M456 319l160 160h-550v164h550l-160 160l90 90l250 -250h150l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-150l-250 -250z" />
+<glyph unicode="&#x21a1;" d="M284 291l90 90l160 -160v150l-250 250l90 90l160 -160v550h164v-550l160 160l90 -90l-250 -250v-150l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21a2;" d="M66 520v82l291 291l90 -90l-160 -160h540l250 250l90 -90l-242 -242l242 -242l-90 -90l-250 250h-540l160 -160l-90 -90z" />
+<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l90 90l250 -250h540l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-540l-250 -250z" />
+<glyph unicode="&#x21a4;" d="M66 520v82l291 291l90 -90l-160 -160h716v250h164v-664h-164v250h-716l160 -160l-90 -90z" />
+<glyph unicode="&#x21a5;" d="M284 164h250v716l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-716h250v-164h-664v164z" />
+<glyph unicode="&#x21a6;" d="M66 893h164v-250h716l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-716v-250h-164v664z" />
+<glyph unicode="&#x21a7;" d="M284 291l90 90l160 -160v716h-250v164h664v-164h-250v-716l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21a8;" d="M284 164h250l-250 250l90 90l160 -160v536l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-536l160 160l90 -90l-250 -250h250v-164h-664v164z" />
+<glyph unicode="&#x21a9;" d="M66 520v82l291 291l90 -90l-160 -160h581q32 0 57 10.5t41 26.5q17 17 27 40.5t10 49.5q0 29 -11 51.5t-26 36.5q-17 17 -41 27t-49 10v164q52 0 106.5 -20t99.5 -64q38 -37 61.5 -90.5t23.5 -116.5q0 -48 -18 -101.5t-68 -102.5q-21 -21 -45 -37t-47 -26.5t-44 -16 t-37 -5.5h-621l160 -160l-90 -90z" />
+<glyph unicode="&#x21aa;" d="M786 319l160 160h-621q-16 0 -37.5 5.5t-45 16.5t-47 27t-44.5 36q-45 45 -65 99t-20 108q0 118 86 203q47 46 98 65.5t107 19.5v-164q-25 0 -49 -10t-41 -27q-15 -14 -26 -36.5t-11 -51.5q0 -26 10 -49.5t27 -40.5q16 -16 41 -26.5t57 -10.5h581l-160 160l90 90 l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21ab;" d="M66 520v82l291 291l90 -90l-160 -160h306v125q0 55 20 109t63 97q35 35 88 60t116 25q61 0 112.5 -24t88.5 -60q43 -42 64.5 -94.5t21.5 -111.5q0 -56 -20 -108t-65 -96q-23 -23 -47.5 -39t-48 -26.5t-43.5 -15.5t-35 -5h-151v-213h-164v213h-306l160 -160l-90 -90z M868 643q59 0 98 37q17 17 27 40.5t10 49.5q0 25 -9.5 48t-27.5 40q-16 15 -39.5 26t-46.5 11t-47.5 -11t-39.5 -26t-25.5 -39.5t-10.5 -50.5v-125h111z" />
+<glyph unicode="&#x21ac;" d="M786 319l160 160h-306v-213h-164v213h-151q-15 0 -35 5t-43.5 15.5t-48 26.5t-47.5 39q-45 44 -65 96t-20 108q0 59 21.5 111.5t64.5 94.5q37 36 88.5 60t112.5 24q63 0 116 -25t88 -60q43 -43 63 -97t20 -109v-125h306l-160 160l90 90l291 -291v-82l-291 -291zM476 643 v125q0 26 -10.5 50.5t-25.5 39.5t-39 26t-47 11t-47 -11t-40 -26q-18 -17 -27.5 -40t-9.5 -48q0 -26 10 -49.5t27 -40.5q39 -37 98 -37h111z" />
+<glyph unicode="&#x21ad;" d="M66 520v82l291 291l90 -90l-160 -160h8q20 -2 34.5 -7.5t26 -14t22 -20.5t23.5 -28q6 -8 13.5 -14t18.5 -6q18 0 33 20q4 6 6.5 12t4.5 12q12 45 34 77t48 49q28 17 58 17q35 0 62.5 -20.5t44.5 -46.5q6 -9 9.5 -16t7 -15.5t7.5 -19t9 -25.5q5 -14 9.5 -22t16.5 -16 q7 -6 17 -6t17.5 5t15.5 15q10 12 17.5 23t17.5 19.5t24.5 14.5t38.5 10l15 3l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-6q-14 1 -20 -4t-14 -15q-26 -33 -48.5 -50t-55.5 -17t-60 17.5t-49 49.5q-14 20 -21.5 39.5t-11.5 36.5q-3 12 -10 22.5t-16 15.5 q-8 6 -17 6q-18 0 -33 -21q-4 -4 -6 -8t-4 -15q-10 -40 -33 -74.5t-50 -51.5q-26 -17 -58 -17q-35 0 -59 18.5t-47 48.5q-8 10 -14 15t-19 4h-7l160 -160l-90 -90z" />
+<glyph unicode="&#x21ae;" d="M466 241l50 238h-229l160 -160l-90 -90l-291 291v82l291 291l90 -90l-160 -160h262l60 270l140 -32l-50 -238h247l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-280l-60 -270z" />
+<glyph unicode="&#x21af;" d="M703 13l-239 336l103 74l132 -185l122 724l-707 -426l151 893l160 -30l-90 -532l707 426l-181 -1082l184 132l74 -104l-335 -239z" />
+<glyph unicode="&#x21b0;" d="M886 967h-482l160 -160l-90 -90l-290 291v82l290 291l90 -90l-160 -160h646v-1131h-164v967z" />
+<glyph unicode="&#x21b1;" d="M184 1131h644l-160 160l90 90l292 -291v-82l-292 -291l-90 90l160 160h-480v-967h-164v1131z" />
+<glyph unicode="&#x21b2;" d="M184 291v82l290 291l90 -90l-160 -160h482v967h164v-1131h-646l160 -160l-90 -90z" />
+<glyph unicode="&#x21b3;" d="M668 90l160 160h-644v1131h164v-967h480l-160 160l90 90l292 -291v-82l-292 -291z" />
+<glyph unicode="&#x21b4;" d="M383 291l90 90l160 -160v721h-447v164h611v-885l160 160l90 -90l-291 -291h-82z" />
+<glyph unicode="&#x21b5;" d="M64 291v82l290 291l90 -90l-160 -160h722v447h164v-611h-886l160 -160l-90 -90z" />
+<glyph unicode="&#x21b6;" d="M81 635l90 90l160 -160l1 24q3 82 35 158t92 135q58 57 130 86t156 29q88 0 159.5 -31t126.5 -85t87.5 -126t33.5 -159h-152q0 58 -21.5 107t-53.5 83q-37 38 -82.5 57t-94.5 19q-54 0 -101 -20.5t-82 -54.5q-22 -21 -35.5 -45t-21 -49.5t-10.5 -51.5t-3 -53v-23l160 160 l90 -90l-291 -291h-82z" />
+<glyph unicode="&#x21b7;" d="M488 635l90 90l160 -160v23q0 38 -4 66.5t-12.5 51t-22 41.5t-32.5 38q-34 34 -75.5 55.5t-101.5 21.5q-55 0 -99.5 -18.5t-82.5 -58.5q-75 -80 -75 -189h-152q1 85 32.5 156.5t88.5 128.5q55 54 126.5 85t159.5 31q84 0 156 -29t130 -86q57 -57 90 -131t37 -162l1 -24 l160 160l90 -90l-291 -291h-82z" />
+<glyph unicode="&#x21b8;" d="M50 1050h1132v-80h-1132v80zM311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
+<glyph unicode="&#x21b9;" d="M66 1238h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664zM622 90l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
+<glyph unicode="&#x21ba;" d="M591 0q-107 0 -198 40.5t-157 106.5q-75 75 -111 167t-36 191q0 202 148 356l119 -115q-52 -51 -76.5 -112t-24.5 -129q0 -72 25.5 -133.5t74.5 -109.5q45 -45 105.5 -72t133.5 -27q70 0 132 26t109 73q46 46 72.5 108.5t26.5 131.5q0 36 -7.5 71.5t-21 68t-31.5 59.5 t-40 45l-33 28v-227h-127v412l58 58h412v-127h-227l29 -29q75 -75 111.5 -165.5t36.5 -190.5q0 -106 -38.5 -197.5t-109.5 -161.5q-66 -65 -156.5 -105.5t-198.5 -40.5z" />
+<glyph unicode="&#x21bb;" d="M642 0q-103 0 -194.5 39t-161.5 108q-69 69 -108.5 159.5t-39.5 197.5q0 102 38 193t111 164l29 29h-227v127h412l58 -58v-412h-127v227l-33 -28q-22 -18 -40 -45t-31.5 -59.5t-21 -68t-7.5 -71.5q0 -69 26.5 -131.5t72.5 -108.5q47 -47 109 -73t132 -26q73 0 133.5 27 t105.5 72q49 48 74.5 109.5t25.5 133.5q0 68 -24.5 129t-76.5 112l119 115q148 -154 148 -356q0 -103 -38 -195t-110 -164q-69 -69 -160 -107.5t-194 -38.5z" />
+<glyph unicode="&#x21bc;" d="M66 602l291 291l90 -90l-160 -160h880v-164h-1101v123z" />
+<glyph unicode="&#x21bd;" d="M66 520v123h1101v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21be;" d="M534 1101h124l290 -291l-90 -90l-160 160v-880h-164v1101z" />
+<glyph unicode="&#x21bf;" d="M534 880l-160 -160l-90 90l292 291h122v-1101h-164v880z" />
+<glyph unicode="&#x21c0;" d="M66 643h880l-160 160l90 90l291 -291v-123h-1101v164z" />
+<glyph unicode="&#x21c1;" d="M786 319l160 160h-880v164h1101v-123l-291 -291z" />
+<glyph unicode="&#x21c2;" d="M534 1101h164v-880l160 160l90 -90l-290 -291h-124v1101z" />
+<glyph unicode="&#x21c3;" d="M327 291l90 90l160 -160v880h164v-1101h-123z" />
+<glyph unicode="&#x21c4;" d="M786 574l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291zM66 291v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21c5;" d="M292 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880zM526 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21c6;" d="M66 775v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90zM786 90l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21c7;" d="M66 291v82l201 201l-201 201v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-160 -160h880v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21c8;" d="M292 880l-160 -160l-90 90l292 291h82l200 -201l202 201h82l290 -291l-90 -90l-160 160v-880h-164v880l-160 -160l-160 160v-880h-164v880z" />
+<glyph unicode="&#x21c9;" d="M786 90l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-291 -291z" />
+<glyph unicode="&#x21ca;" d="M42 291l90 90l160 -160v880h164v-880l160 160l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82l-202 201l-200 -201h-82z" />
+<glyph unicode="&#x21cb;" d="M66 766l291 291l90 -90l-160 -160h880v-164h-1101v123zM786 155l160 160h-880v164h1101v-123l-291 -291z" />
+<glyph unicode="&#x21cc;" d="M66 807h880l-160 160l90 90l291 -291v-123h-1101v164zM66 356v123h1101v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21cd;" d="M66 520v82l291 291l90 -90l-78 -78h419l86 168l97 -59l-54 -109h250v-82h-302l-90 -164h392v-82h-443l-86 -166l-96 58l54 108h-227l78 -78l-90 -90zM649 479l88 164h-450l-82 -82l82 -82h362z" />
+<glyph unicode="&#x21ce;" d="M66 520v82l291 291l90 -90l-78 -78h194l46 218l140 -32l-39 -186h154l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-227l-31 -158l-140 32l27 126h-124l78 -78l-90 -90zM510 479l35 164h-258l-82 -82l82 -82h223zM946 479l82 82l-82 82h-254l-35 -164h289z" />
+<glyph unicode="&#x21cf;" d="M262 288l54 109h-250v82h302l90 164h-392v82h443l86 166l96 -58l-54 -108h227l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-419l-86 -168zM946 479l82 82l-82 82h-362l-88 -164h450z" />
+<glyph unicode="&#x21d0;" d="M66 520v82l291 291l90 -90l-78 -78h798v-82h-880l-82 -82l82 -82h880v-82h-798l78 -78l-90 -90z" />
+<glyph unicode="&#x21d1;" d="M452 798l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-798h-82l1 880l-83 82l-82 -82v-880h-82v798z" />
+<glyph unicode="&#x21d2;" d="M786 319l78 78h-798v82h880l82 82l-82 82h-880v82h798l-78 78l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21d3;" d="M284 291l90 90l78 -78v798h82v-880l82 -82l83 82l-1 880h82v-798l78 78l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21d4;" d="M66 520v82l291 291l90 -90l-78 -78h495l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-495l78 -78l-90 -90zM946 479l82 82l-82 82h-659l-82 -82l82 -82h659z" />
+<glyph unicode="&#x21d5;" d="M284 291l90 90l78 -78v495l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-495l78 78l90 -90l-290 -291h-82zM699 221v659l-83 82l-82 -82v-659l82 -82z" />
+<glyph unicode="&#x21d6;" d="M282 507v-112h-127v412l58 58h412v-127h-110l563 -564l-58 -58l-622 622h-116v-116l622 -622l-58 -58z" />
+<glyph unicode="&#x21d7;" d="M329 0l622 622v116h-116l-622 -622l-58 58l563 564h-110v127h412l58 -58v-412h-127v112l-564 -565z" />
+<glyph unicode="&#x21d8;" d="M608 127h112l-565 564l58 58l622 -622h116v116l-622 622l58 58l564 -563v110h127v-412l-58 -58h-412v127z" />
+<glyph unicode="&#x21d9;" d="M155 58v412h127v-112l564 565l58 -58l-622 -622v-116h116l622 622l58 -58l-563 -564h110v-127h-412z" />
+<glyph unicode="&#x21da;" d="M66 520v82l291 291l90 -90h720v-82h-802l-119 -119h921v-82h-921l119 -119h802v-82h-720l-90 -90z" />
+<glyph unicode="&#x21db;" d="M786 319h-720v82h802l119 119h-921v82h921l-119 119h-802v82h720l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21dc;" d="M66 520v82l291 291l90 -90l-160 -160h129l58 -67l151 173l150 -173l150 173l150 -173l59 67h33v-164l-92 -106l-150 173l-150 -173l-150 173l-151 -173l-91 106h-96l160 -160l-90 -90z" />
+<glyph unicode="&#x21dd;" d="M786 319l160 160h-96l-91 -106l-151 173l-150 -173l-150 173l-150 -173l-92 106v164h33l59 -67l150 173l150 -173l150 173l151 -173l58 67h129l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21e0;" d="M66 520v82l291 291l90 -90l-160 -160h258v-164h-258l160 -160l-90 -90zM670 643h187v-164h-187v164zM980 643h187v-164h-187v164z" />
+<glyph unicode="&#x21e1;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160l1 -258h-165v258zM535 497h163l1 -187h-165zM535 187h163v-187h-164z" />
+<glyph unicode="&#x21e2;" d="M786 319l160 160h-258v164h258l-160 160l90 90l291 -291v-82l-291 -291zM66 643h187v-164h-187v164zM376 643h187v-164h-187v164z" />
+<glyph unicode="&#x21e3;" d="M534 1101h164v-187h-163zM534 791h164v-187h-163zM284 291l90 90l160 -160v258h164v-258l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21e4;" d="M66 893h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664z" />
+<glyph unicode="&#x21e5;" d="M622 319l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
+<glyph unicode="&#x21e6;" d="M25 561l373 373v-201h769v-344h-769v-201zM319 459h778v204h-778v93l-194 -195l194 -195v93z" />
+<glyph unicode="&#x21e7;" d="M444 769h-200l372 373l374 -373h-202v-769h-344v769zM718 70v778h94l-196 194l-194 -194h92v-778h204z" />
+<glyph unicode="&#x21e8;" d="M836 389h-770v344h770v201l372 -373l-372 -373v201zM1108 561l-194 195v-93h-778v-204h778v-93z" />
+<glyph unicode="&#x21e9;" d="M244 373h200v769h344v-769h202l-374 -373zM812 294h-94v778h-204v-778h-92l194 -194z" />
+<glyph unicode="&#x21eb;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM920 70v140h-202v638h94l-196 194l-194 -194h92v-638h-200v-140h606z" />
+<glyph unicode="&#x21ec;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM688 971l-72 71l-71 -71h143zM920 70v140h-202v638h94l-76 74h-240l-74 -74h92v-638h-200v-140h606z" />
+<glyph unicode="&#x21ed;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM582 70v937l-160 -159h92v-638h-200v-140h268zM920 70v140h-202v638h94l-160 159v-937h268z" />
+<glyph unicode="&#x21ee;" d="M444 569h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-569h-344v569zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM718 70v578h94l-196 194l-194 -194h92v-578h204z" />
+<glyph unicode="&#x21ef;" d="M244 280h200v289h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-289h202v-280h-746v280zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM920 70v140h-202v438h94l-196 194l-194 -194h92v-438h-200v-140h606z" />
+<glyph unicode="&#x21f0;" d="M66 934h280v-201h490v201l372 -373l-372 -373v201h-490v-201h-280v746zM276 258v201h638v-93l194 195l-194 195v-93h-637l-1 201h-140v-606h140z" />
+<glyph unicode="&#x21f1;" d="M70 1094h1093v-73h-1020v-1021h-73v1094zM425 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
+<glyph unicode="&#x21f2;" d="M464 356h228l-622 622l116 116l622 -622v227h126v-412l-58 -58h-412v127zM70 73h1020v1020h74v-1093h-1094v73z" />
+<glyph unicode="&#x21f3;" d="M244 373h200v396h-200l372 373l374 -373h-202v-396h202l-374 -373zM812 294h-94v554h94l-196 194l-194 -194h92v-554h-92l194 -194z" />
+<glyph unicode="&#x21f4;" d="M786 319l160 160h-237q-9 -32 -30.5 -66.5t-55.5 -63t-80.5 -47t-106.5 -18.5q-59 0 -104 18t-77.5 46.5t-52.5 63t-29 67.5h-107v164h107q9 33 30 68.5t54 65t78 48t104 18.5q54 0 104.5 -19.5t95.5 -65.5q15 -15 30 -36t30 -53q3 -6 5.5 -12.5t4.5 -13.5h237l-160 160 l90 90l291 -291v-82l-291 -291zM587 643q-11 19 -28 37q-23 23 -51.5 36t-66.5 13q-70 0 -119 -49q-18 -16 -29 -37h294zM437 396q69 0 122 48q8 8 15.5 16.5t12.5 18.5h-293q6 -10 13.5 -19.5t13.5 -16.5q44 -47 116 -47z" />
+<glyph unicode="&#x21f5;" d="M42 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82zM776 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
+<glyph unicode="&#x21f6;" d="M786 -165l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-201 -201l201 -201v-82l-291 -291z" />
+<glyph unicode="&#x21f7;" d="M66 520v82l291 291l90 -90l-160 -160h347v250h164v-250h369v-164h-369v-250h-164v250h-347l160 -160l-90 -90z" />
+<glyph unicode="&#x21f8;" d="M434 479h-368v164h368v250h164v-250h348l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-348v-250h-164v250z" />
+<glyph unicode="&#x21f9;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-247l160 -160l-90 -90z" />
+<glyph unicode="&#x21fa;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h116v250h164v-250h189v-164h-189v-250h-164v250h-116v-250h-164v250h-247l160 -160l-90 -90z" />
+<glyph unicode="&#x21fb;" d="M254 479h-188v164h188v250h164v-250h116v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-116v-250h-164v250z" />
+<glyph unicode="&#x21fc;" d="M66 520v82l291 291l90 -90l-160 -160h167v250h134v-250h56v250h134v-250h168l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-168v-250h-134v250h-56v-250h-134v250h-167l160 -160l-90 -90z" />
+<glyph unicode="&#x21fd;" d="M25 561l373 373v-291h769v-164h-769v-291zM319 756l-194 -195l194 -195v390z" />
+<glyph unicode="&#x21fe;" d="M835 479h-769v164h769v291l373 -373l-373 -373v291zM1108 561l-194 195v-390z" />
+<glyph unicode="&#x21ff;" d="M25 561l373 373v-291h437v291l373 -373l-373 -373v291h-437v-291zM319 756l-194 -195l194 -195v390zM1108 561l-194 195v-390z" />
+<glyph unicode="&#x2200;" d="M37 1493h209l108 -389h523l110 389h209l-457 -1493h-245zM829 942h-426l213 -764z" />
+<glyph unicode="&#x2201;" d="M636 -29q-254 0 -386 198q-69 103 -101 246t-32 328q0 379 131.5 578t388.5 199q84 0 149 -20t114.5 -54t85.5 -78.5t61.5 -93.5t42 -99.5t26.5 -95.5h-202q-9 37 -20.5 69.5t-24.5 58.5q-35 72 -94.5 112.5t-142.5 40.5q-155 0 -233.5 -153t-78.5 -462t78.5 -462 t233.5 -153q83 0 142.5 40.5t94.5 112.5q12 24 24 57.5t21 70.5h202q-11 -48 -28 -99.5t-43 -100.5t-62 -92.5t-86 -76.5t-114.5 -52t-146.5 -19z" />
+<glyph unicode="&#x2202;" d="M545 -25q-72 0 -138 27t-116 80q-51 54 -76 124.5t-25 154.5q0 87 27.5 171.5t82.5 149.5q57 67 129.5 97t148.5 30q95 0 160 -45q29 -20 56 -54t48 -89q8 44 13.5 85.5t9.5 83.5q4 41 5.5 80.5t1.5 68.5q0 66 -8 116.5t-28 85.5q-19 33 -47 49t-62 16q-33 0 -61 -14.5 t-66 -43.5q-34 -26 -59 -42t-50 -16q-7 0 -25 3.5t-35 18.5q-11 11 -17 25t-6 29q0 27 18.5 57.5t53.5 53.5q33 23 78 35.5t96 12.5q87 0 160 -38.5t127 -116.5q51 -75 78.5 -180.5t27.5 -243.5q0 -167 -38.5 -308t-104.5 -243q-69 -106 -161 -163t-198 -57zM543 31 q53 0 99 31.5t81 97.5q34 63 52 147t18 176q0 69 -10.5 114t-32.5 76q-44 62 -122 62q-53 0 -99 -31t-81 -97t-53 -151t-18 -174q0 -71 11 -116t32 -74q22 -30 53.5 -45.5t69.5 -15.5z" />
+<glyph unicode="&#x2203;" d="M178 170h692v492h-692v170h692v491h-692v170h875v-1493h-875v170z" />
+<glyph unicode="&#x2204;" d="M268 0h-90v170h138l139 492h-277v170h324l138 491h-462v170h510l27 96h155l-28 -96h211v-1493h-630l-27 -94h-154zM870 832v491h-75l-138 -491h213zM870 170v492h-261l-138 -492h399z" />
+<glyph unicode="&#x2205;" d="M74 198l117 117q-23 29 -43 63.5t-35 75t-24 87.5t-9 102q0 223 157 380q159 159 380 159q55 0 102.5 -9t88 -25t74.5 -36.5t63 -42.5l117 117l99 -99l-118 -118q45 -56 77.5 -136t32.5 -189q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5q-54 0 -101 9t-87 24 t-74 35t-62 43l-118 -118zM844 968q-17 12 -34 22t-42 21q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-60 -60 -87.5 -133.5t-27.5 -151.5q0 -79 28 -148q8 -20 19 -39t24 -37zM614 246q78 0 152 29.5t131 86.5q59 59 87 132t28 151q0 38 -7 76.5t-21 73.5q-8 18 -18 37.5 t-23 36.5l-552 -552q16 -12 36.5 -23t36.5 -18q35 -15 73.5 -22.5t76.5 -7.5z" />
+<glyph unicode="&#x2206;" d="M452 1423h209l520 -1423h-1247zM925 172l-369 1047l-368 -1047h737z" />
+<glyph unicode="&#x2207;" d="M-6 1423h1247l-520 -1423h-209zM985 1251h-737l368 -1047z" />
+<glyph unicode="&#x2208;" d="M632 0q-69 0 -133 26t-120.5 73.5t-102.5 114.5t-79 150q-34 85 -50.5 177t-16.5 188q0 103 18 198t51 177t78.5 148.5t101.5 113.5q57 48 120.5 73t132.5 25h472v-170h-472q-48 0 -91.5 -21.5t-80 -59t-66 -88.5t-49.5 -111q-15 -45 -26.5 -97t-14.5 -100h798v-170h-798 q4 -54 14.5 -102.5t27.5 -94.5q50 -139 124 -209.5t162 -70.5h472v-170h-472v0z" />
+<glyph unicode="&#x2209;" d="M319 -128l67 221q-60 49 -107.5 118t-80.5 151.5t-50.5 176.5t-17.5 193t17.5 192t49.5 175t78.5 150t104.5 117q116 98 252 98h170l54 177l163 -50l-39 -127h124v-170h-176l-144 -477h318v-170h-370l-144 -473q19 -4 44 -4h472v-170h-472q-49 0 -92 12l-58 -189z M606 817l144 477h-118q-91 0 -164 -71.5t-122 -208.5q-15 -42 -26 -89.5t-16 -107.5h302zM554 647h-250q2 -29 5.5 -54t9 -48.5t12 -46.5t15.5 -48q19 -56 40.5 -97t53.5 -81z" />
+<glyph unicode="&#x220a;" d="M630 165q-69 0 -132.5 16.5t-119 47t-102 74.5t-79.5 99q-35 58 -51 117.5t-16 119.5q0 66 17.5 127.5t50 115t78.5 97.5t103 75q115 63 251 63h472v-170h-472q-66 0 -119.5 -21t-93.5 -53t-65.5 -71.5t-36.5 -75.5h787v-170h-787q11 -36 36.5 -75.5t65.5 -71.5t93.5 -53 t119.5 -21h472v-170h-472v0z" />
+<glyph unicode="&#x220b;" d="M130 170h472q47 0 89.5 20.5t79.5 58t66.5 88.5t50.5 113q14 42 25 93t15 104h-798v170h798q-4 49 -15 104t-30.5 108.5t-47.5 102.5t-67 87q-77 75 -166 75h-472v170h472q68 0 132 -25.5t120 -72.5t103 -114.5t80 -151.5q34 -85 50.5 -176.5t16.5 -188.5 q0 -103 -18 -198t-51 -177t-79 -149t-101 -113q-57 -48 -120.5 -73t-132.5 -25h-472v170z" />
+<glyph unicode="&#x220c;" d="M214 -127l39 127h-123v170h174l146 477h-320v170h370l145 473q-19 4 -43 4h-472v170h472q47 0 92 -12l57 189l163 -49l-67 -221q60 -50 108 -118.5t81 -151t50.5 -176.5t17.5 -194q0 -99 -17.5 -192t-49.5 -174.5t-78.5 -149.5t-104.5 -117q-116 -98 -252 -98h-171 l-54 -177zM928 817q-4 51 -15 103t-28 100.5t-40 92.5t-52 79l-114 -375h249zM602 170q45 0 87.5 19.5t79 56t67 88.5t52.5 116q14 42 25 93t15 104h-301l-145 -477h120z" />
+<glyph unicode="&#x220d;" d="M130 335h472q67 0 120.5 21t93.5 53t65.5 71.5t36.5 75.5h-787v170h787q-11 36 -36.5 75.5t-65.5 71.5t-93.5 53t-120.5 21h-472v170h472q69 0 132.5 -16.5t119 -47.5t102 -74.5t79.5 -98.5q67 -110 67 -237q0 -64 -16.5 -124.5t-48.5 -113.5t-78.5 -98t-105.5 -78 q-115 -64 -251 -64h-472v170z" />
+<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
+<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-155v1822h-619v-1822h-155v1954z" />
+<glyph unicode="&#x2210;" d="M152 1518h155v-1822h619v1822h155v-1954h-929v1954z" />
+<glyph unicode="&#x2211;" d="M143 -344l549 919l-549 848v95h922v-140h-733l522 -803l-522 -874h753v-137h-942v92z" />
+<glyph unicode="&#x2212;" d="M88 727h1057v-170h-1057v170z" />
+<glyph unicode="&#x2213;" d="M88 1171h1057v-170h-1057v170zM532 329h-444v170h444v332h168v-332h445v-170h-445v-329h-168v329z" />
+<glyph unicode="&#x2215;" d="M868 1493h191l-854 -1683h-189z" />
+<glyph unicode="&#x2217;" d="M559 552l-336 -203l-57 98l358 195l-358 194l57 99l336 -203v377h115v-377l336 203l57 -99l-358 -194l358 -195l-57 -98l-336 203v-377h-115v377z" />
+<glyph unicode="&#x2218;" d="M613 327q-67 0 -124.5 24t-99.5 66t-66 99.5t-24 124.5q0 68 24.5 126.5t67.5 102t101 68t125 24.5q66 0 123 -24.5t102 -70.5q48 -48 70 -104.5t22 -118.5q0 -68 -25 -125.5t-68 -100.5t-102 -67t-126 -24zM614 454q40 0 75 14.5t61.5 40t41.5 60t15 73.5t-15 74t-41 61 t-61 41t-75 15q-39 0 -73.5 -15t-60 -40.5t-40.5 -61t-15 -75.5t14.5 -74t40 -59t60 -39.5t73.5 -14.5z" />
+<glyph unicode="&#x2219;" d="M488 559q-28 0 -28 25q0 5 1 8l46 245q4 27 32 27h194q15 0 22.5 -9t4.5 -24l-48 -245q-5 -27 -32 -27h-192v0z" />
+<glyph unicode="&#x221a;" d="M258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
+<glyph unicode="&#x221b;" d="M409 1043q-66 0 -122 10.5t-116 30.5v121q70 -27 125 -40t108 -13q46 0 85.5 10t67.5 29.5t44 48t16 66.5q0 69 -54.5 107t-164.5 38h-66v108h74q94 0 142.5 31.5t48.5 89.5t-47.5 89.5t-130.5 31.5q-100 0 -220 -47v121q69 17 127 26t112 9q71 0 128 -15.5t97.5 -44 t62.5 -68.5t22 -90q0 -71 -43.5 -117t-128.5 -65q193 -44 193 -213q0 -60 -24.5 -107t-71 -80t-113.5 -50t-151 -17zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
+<glyph unicode="&#x221c;" d="M500 1244h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM500 1355v413l-274 -413h274zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
+<glyph unicode="&#x221d;" d="M479 250q-63 0 -117 28t-93 78.5t-61 121.5t-22 158q0 83 20.5 151.5t58.5 117.5t92 76t120 27q92 0 160.5 -57.5t124.5 -186.5q46 118 119.5 181t164.5 63v-140q-57 0 -108.5 -58t-97.5 -183q55 -134 102 -186q47 -50 104 -50v-141q-40 0 -75 11.5t-69 38.5t-68.5 71 t-73.5 110q-32 -60 -63.5 -103.5t-65.5 -72t-71.5 -42t-80.5 -13.5zM465 391q69 0 121.5 62.5t95.5 181.5q-28 67 -52.5 112.5t-49.5 71.5q-46 49 -106 49q-36 0 -66 -17t-51 -49t-33 -77t-12 -101q0 -53 10.5 -95.5t30.5 -73.5t48.5 -47.5t63.5 -16.5z" />
+<glyph unicode="&#x221e;" d="M332 250q-61 0 -114.5 27t-94.5 80t-61.5 122.5t-20.5 152.5q0 80 19.5 150.5t58.5 122.5q37 49 90.5 76t122.5 27q50 0 88 -14.5t71 -42.5q34 -29 64.5 -73.5t60.5 -113.5q24 61 55.5 106.5t65.5 74.5t74.5 46t88.5 17q63 0 115.5 -29t91.5 -80q37 -48 61 -115.5 t24 -157.5q0 -83 -21.5 -152.5t-59.5 -118.5q-40 -52 -93.5 -78.5t-114.5 -26.5q-82 0 -147 50q-34 26 -68.5 70.5t-73.5 110.5q-64 -123 -131 -177q-35 -29 -72.5 -41.5t-78.5 -12.5zM318 391q66 0 119 59q54 60 100 185q-30 72 -55 116.5t-47 67.5q-46 49 -106 49 q-34 0 -64.5 -16.5t-53.5 -49.5q-20 -29 -32.5 -72.5t-12.5 -102.5q0 -51 10.5 -95t31.5 -77q19 -29 46.5 -46.5t63.5 -17.5zM903 391q34 0 64 16t53 51q22 32 33.5 76t11.5 99q0 57 -11.5 100t-30.5 72q-41 63 -113 63q-65 0 -117 -58q-53 -59 -99 -183q32 -75 56 -118 t47 -68q45 -50 106 -50z" />
+<glyph unicode="&#x221f;" d="M126 1269h170v-812h812v-170h-982v982z" />
+<glyph unicode="&#x2220;" d="M918 1269h170l-656 -812h676v-170h-982z" />
+<glyph unicode="&#x2223;" d="M530 1565h172v-2048h-172v2048z" />
+<glyph unicode="&#x2227;" d="M498 1186h237l333 -1186h-191l-261 940l-261 -940h-191z" />
+<glyph unicode="&#x2228;" d="M164 1186h191l261 -940l261 940h191l-333 -1186h-237z" />
+<glyph unicode="&#x2229;" d="M164 580q0 120 6 198t19 130q25 101 84 159.5t153 89.5q87 29 189 29q109 0 197.5 -31t145.5 -86q28 -27 50 -65t36 -94q5 -22 9.5 -50.5t7.5 -67.5t5 -91t2 -121v-580h-172v674q0 13 -0.5 32.5t-2 41.5t-3.5 44t-5 40q-5 30 -11 48.5t-8 22.5q-10 24 -34.5 46t-58.5 38 t-75 25.5t-84 9.5q-38 0 -76 -8t-71.5 -23t-59.5 -37.5t-40 -50.5q-6 -13 -10 -27t-8 -44q-3 -22 -5 -46t-3.5 -46.5t-2.5 -40.5t-1 -27v-672h-173v580z" />
+<glyph unicode="&#x222a;" d="M616 0q-50 0 -98.5 7.5t-93 22t-83 36.5t-67.5 51q-60 60 -85 161q-13 52 -19 130t-6 198v580h173v-672q0 -9 1 -27t2.5 -40.5t3.5 -46.5t5 -46q2 -20 6 -37t12 -34q14 -29 40 -51t59.5 -37t71.5 -23t77 -8q40 0 80 8.5t74 24.5t59.5 38t37.5 49q3 8 8.5 25.5t10.5 44.5 q3 18 5 40t3.5 44t2 41.5t0.5 32.5v674h172v-580q0 -73 -2 -125.5t-5 -91t-7.5 -65.5t-10.5 -48q-14 -54 -37.5 -94.5t-54 -70t-67 -49.5t-76.5 -33q-89 -29 -192 -29z" />
+<glyph unicode="&#x222b;" d="M314 -371q-41 0 -75 10t-60 31q-26 22 -38 50.5t-12 58.5q0 25 8 46.5t26 38.5q35 32 93 32q35 0 59 -15q25 -15 39 -42q6 -12 9 -25.5t6 -33.5t7.5 -31t18.5 -11q27 0 47.5 45t35 132.5t23 216t12.5 294.5q1 31 1 50.5t0.5 36t0.5 34t1 44.5q7 252 32 435.5t75 300.5 t124.5 170t167.5 53q39 0 74.5 -9.5t61.5 -32.5q49 -43 49 -109q0 -51 -32 -83t-87 -32q-42 0 -70 19q-30 20 -40 54q-5 16 -6.5 26.5l-3.5 24.5q-3 19 -7.5 27.5t-16.5 8.5q-103 0 -118 -619q0 -13 -1 -47t-2 -77.5t-2.5 -91t-2.5 -87.5q-5 -127 -14.5 -231.5t-23 -189 t-32 -150t-41.5 -115.5q-47 -102 -118.5 -154.5t-167.5 -52.5z" />
+<glyph unicode="&#x222c;" d="M250 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t44.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5l1 1570q0 49 15.5 101t45.5 95t75.5 71t105.5 28q40 0 91 -14t96 -43l-67 -127q-25 14 -49.5 24t-46.5 10q-18 0 -33 -8.5t-26.5 -28t-17.5 -52.5t-6 -81v-1570 q0 -49 -15.5 -101.5t-46 -95.5t-75.5 -70.5t-105 -27.5zM681 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t45.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5v1570q0 49 15.5 101.5t46 95.5t75.5 70.5t105 27.5q40 0 91 -14t96 -43l-67 -127q-26 15 -50 24.5t-45 9.5 q-18 0 -33.5 -8.5t-26.5 -28.5t-17 -52.5t-6 -80.5l-1 -1570q0 -49 -15.5 -101t-45.5 -95t-75.5 -71t-105.5 -28z" />
+<glyph unicode="&#x222d;" d="M89 -191q16 -7 39.5 -10.5t35.5 -3.5q20 0 28 15.5t8 62.5v1629q0 54 13.5 105t36.5 87q27 42 65 59.5t82 17.5q33 0 67 -8t68 -21l-36 -142q-18 8 -41 11t-34 3q-21 0 -29 -15.5t-8 -62.5v-1629q0 -57 -13 -107t-36 -85q-28 -43 -66 -60t-81 -17q-34 0 -68.5 8.5 t-66.5 20.5zM414 -191q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 54 13 105t36 87q28 43 66 60t81 17q33 0 67.5 -8t67.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -57 -13.5 -107t-36.5 -85q-28 -42 -65 -59.5t-81 -17.5 q-32 0 -66.5 7.5t-69.5 21.5zM738 -191q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 54 13 105t36 87q28 43 66 60t81 17q33 0 67.5 -8t67.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -57 -13.5 -107t-36.5 -85q-28 -42 -65 -59.5 t-81 -17.5q-32 0 -66.5 7.5t-69.5 21.5z" />
+<glyph unicode="&#x2234;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2235;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2236;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2237;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134 q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2238;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170z" />
+<glyph unicode="&#x2239;" d="M937 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM74 727h746v-170h-746v170zM935 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x223a;" d="M118 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM923 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170zM117 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245 q0 -30 -30 -30h-192zM927 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x223b;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5 t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM520 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x223c;" d="M88 671q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5 t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
+<glyph unicode="&#x223d;" d="M383 497q-82 0 -154 29.5t-141 84.5v175q75 -63 143 -93t140 -30q54 0 103 15t104 39q8 4 12 5.5t6.5 3t5 2.5t8.5 4q72 33 128.5 43.5t101.5 10.5q82 0 154.5 -27.5t150.5 -87.5v-174q-78 68 -149 95.5t-148 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5l-33 -14 q-30 -13 -56 -22.5t-50 -16t-48 -9.5t-51 -3z" />
+<glyph unicode="&#x2241;" d="M448 205l88 387q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5 t-95.5 30.5l-83 -364z" />
+<glyph unicode="&#x2242;" d="M88 930h1057v-170h-1057v170zM88 479q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11 q-81 0 -150.5 -30t-143.5 -95v174z" />
+<glyph unicode="&#x2243;" d="M88 848q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5 t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2244;" d="M232 199l89 154h-233v171h337l146 231q-42 19 -88 31t-97 12q-35 0 -71.5 -7t-74.5 -22q-46 -18 -85 -44t-67 -52v172q43 37 86.5 60.5t84 36.5t77 17.5t67.5 4.5q25 0 47.5 -2.5t47 -8.5t52.5 -15.5t64 -23.5l13 -5l29 -16l198 344l113 -100l-167 -288q34 -6 66 -6 q81 0 151 34t128 89v-178q-27 -26 -65.5 -47.5t-80.5 -36.5t-83.5 -23.5t-75.5 -8.5q-31 0 -61 7.5t-77 22.5l-110 -178h554v-171h-648l-152 -254z" />
+<glyph unicode="&#x2245;" d="M88 1052q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
+<glyph unicode="&#x2246;" d="M88 1052q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM293 131l44 61h-249v172h373l139 192h-512v172h635l104 143l113 -82l-44 -61h249v-172h-373l-139 -192h512v-172h-636l-103 -143z" />
+<glyph unicode="&#x2247;" d="M310 55l50 137h-272v172h333l69 192h-402v172h464l75 209q-9 4 -15 6q-39 17 -70.5 28t-58.5 18t-51 9.5t-48 2.5q-82 0 -152.5 -29.5t-143.5 -93.5v174q39 30 76 51.5t74.5 36t77 21t83.5 6.5q24 0 48.5 -2.5t51 -8.5t57 -16.5t67.5 -26.5l58 -25l86 238l155 -56 l-81 -225q5 -1 11 -1h12q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-148.5 -27q-18 0 -33.5 1.5t-32.5 4.5l-56 -156h417v-172h-479l-69 -192h548v-172h-609l-70 -192z" />
+<glyph unicode="&#x2248;" d="M88 848q39 30 78 52.5t73 35.5q36 14 75 20.5t93 6.5q9 0 17 -0.5t18.5 -1.5t23.5 -3.5t32 -6.5q17 -4 30.5 -7.5t27 -8t29.5 -11t38 -15.5q9 -4 12 -5.5t5 -2t4.5 -2t10.5 -5.5q47 -23 103.5 -38.5t107.5 -15.5q68 0 137 30q32 14 69.5 38.5t72.5 54.5v-175 q-75 -58 -146 -86q-33 -13 -69.5 -20.5t-79.5 -7.5q-30 0 -56 4t-50.5 10.5t-48.5 16t-50 20.5q-11 4 -17.5 7t-9.5 4.5l-4 2t-2 0.5q-38 17 -70 28.5t-58 17.5q-53 12 -102 12q-41 0 -79.5 -7.5t-70.5 -21.5q-34 -14 -70.5 -38t-73.5 -56v174zM88 479q40 31 79 54t73 36 q32 12 71.5 19.5t80.5 7.5q100 0 229 -55h1l33 -15q60 -27 108 -41t99 -14q41 0 74 8.5t65 22.5q34 15 68 37t76 57v-176q-38 -29 -75 -51t-71 -36q-36 -14 -74 -21t-74 -7q-49 0 -99 12.5t-107 38.5l-33 15q-15 7 -33 14t-36 13.5t-34.5 12t-28.5 8.5q-19 5 -47 8t-54 3 q-76 0 -146 -30q-71 -30 -145 -95v174z" />
+<glyph unicode="&#x2249;" d="M378 89l99 330q-50 11 -97 11q-78 0 -147.5 -29.5t-144.5 -95.5v174q77 61 150.5 89t151.5 28q35 0 67 -5t67 -15l54 178q-55 22 -100.5 32.5t-94.5 10.5q-81 0 -151.5 -29.5t-143.5 -93.5v174q38 29 74.5 50.5t74 36t77.5 21.5t85 7q25 0 48.5 -2.5t49.5 -8.5t57 -17 t70 -27l93 311l138 -41l-97 -323q57 -15 106 -15q70 0 138 30t143 93v-175q-72 -57 -144 -85.5t-150 -28.5q-68 0 -140 25l-52 -175q115 -53 205 -53q69 0 137.5 30.5t143.5 94.5v-176q-73 -58 -145 -86.5t-148 -28.5q-50 0 -103 12.5t-104 38.5l-31 16l-98 -324z" />
+<glyph unicode="&#x224a;" d="M88 1056q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 687q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1q4 -2 5.5 -2.5t4 -1.5t7.5 -3.5t16 -7.5q55 -25 104 -40t103 -15q72 0 140 30.5t143 94.5v-176q-70 -56 -142.5 -85.5 t-147.5 -29.5q-53 0 -107 14t-103 37q-2 1 -6.5 3t-26.5 12q-40 17 -71.5 28.5t-58.5 18t-50.5 9.5t-47.5 3q-78 0 -148 -28.5t-148 -96.5v174zM88 364h1057v-172h-1057v172z" />
+<glyph unicode="&#x224b;" d="M88 1056q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM88 687q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1q4 -2 5.5 -2.5t4 -1.5t7.5 -3.5t16 -7.5q55 -25 104 -40t103 -15q72 0 140 30.5t143 94.5v-176q-70 -56 -142.5 -85.5 t-147.5 -29.5q-53 0 -107 14t-103 37q-2 1 -6.5 3t-26.5 12q-40 17 -71.5 28.5t-58.5 18t-50.5 9.5t-47.5 3q-78 0 -148 -28.5t-148 -96.5v174zM88 323q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q55 -25 104 -40t103 -15q72 0 140 30.5t143 94.5v-176 q-70 -56 -142.5 -85.5t-147.5 -29.5q-53 0 -107 14t-103 37q-2 1 -6.5 3t-26.5 12q-40 17 -71.5 28.5t-58.5 18t-50.5 9.5t-47.5 3q-78 0 -148 -28.5t-148 -96.5v174z" />
+<glyph unicode="&#x224c;" d="M383 878q-82 0 -154 29.5t-141 84.5v175q75 -63 143 -93t136 -30q50 0 105 14.5t106 39.5l6 3t4.5 2.5t7 3.5l13.5 6q38 18 74 28.5t67 16t56 7.5t41 2q75 0 149 -28t149 -87v-174q-78 68 -149 95.5t-148 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5l-33 -14 q-30 -13 -56 -22.5t-50 -16t-48 -9.5t-51 -3zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
+<glyph unicode="&#x224d;" d="M617 729q-200 0 -530 156v178q345 -155 530 -163q186 0 527 163v-178q-327 -156 -527 -156zM88 399q328 156 528 156t529 -156v-178q-344 155 -529 163q-186 0 -528 -163v178z" />
+<glyph unicode="&#x224e;" d="M88 930h225q0 3 5.5 28.5t21.5 60.5t44.5 74.5t75.5 70.5q34 23 74 36.5t82 13.5q37 0 76 -12t75 -34.5t67 -55.5t52 -75q23 -46 34 -107h225v-168h-342q-2 91 -28 159.5t-66 103.5q-22 20 -44.5 27t-42.5 7q-32 0 -58 -11.5t-46.5 -31t-36 -46t-25.5 -56.5 q-20 -61 -25 -152h-343v168zM617 68q-30 0 -66.5 9.5t-73 30.5t-70.5 54.5t-59 81.5q-13 25 -21 50t-14 58h-225v168h343q7 -190 96 -263q17 -14 39 -24t51 -10q48 0 91.5 34.5t69.5 110.5q20 57 25 152h342v-168h-225q-3 -24 -12.5 -55t-27 -62.5t-44 -62t-63.5 -54.5 q-38 -25 -78.5 -37.5t-77.5 -12.5z" />
+<glyph unicode="&#x224f;" d="M88 930h225q0 3 5.5 28.5t21.5 60.5t44.5 74.5t75.5 70.5q34 23 74 36.5t82 13.5q37 0 76 -12t75 -34.5t67 -55.5t52 -75q23 -46 34 -107h225v-168h-342q-2 91 -28 159.5t-66 103.5q-22 20 -44.5 27t-42.5 7q-32 0 -58 -11.5t-46.5 -31t-36 -46t-25.5 -56.5 q-20 -61 -25 -152h-343v168zM88 522h1057v-170h-1057v170z" />
+<glyph unicode="&#x2250;" d="M521 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2251;" d="M521 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM520 -23q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2252;" d="M118 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM923 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2253;" d="M923 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM117 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2254;" d="M104 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 930h773v-170h-773v170zM104 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 524h773v-172h-773v172z" />
+<glyph unicode="&#x2255;" d="M953 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 930h773v-170h-773v170zM953 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 524h773v-172h-773v172z" />
+<glyph unicode="&#x2256;" d="M88 522h318q-25 62 -25 120q0 61 27 120h-320v168h1057v-168h-311q13 -12 19.5 -44t6.5 -70q0 -32 -5.5 -60t-21.5 -66h312v-170h-1057v170zM693 522q26 24 38.5 55t12.5 63q0 33 -13 64.5t-39 57.5h-143q-52 -48 -52 -120t51 -120h145z" />
+<glyph unicode="&#x2257;" d="M614 1000q-61 0 -113.5 21t-90.5 58t-60 87.5t-22 108.5q0 59 22.5 110.5t61.5 89.5t91.5 60t112.5 22t114 -22t92 -61q42 -40 63 -90t21 -106q0 -59 -22.5 -109.5t-62 -88t-93 -59t-114.5 -21.5zM617 1111q36 0 68 13t55 35t36.5 52t13.5 65t-13.5 65.5t-37 53.5t-55 36 t-67.5 13t-68 -13t-55 -36t-36.5 -53.5t-13.5 -65.5t13.5 -65t36.5 -52t55 -35t68 -13zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2258;" d="M182 1204q209 151 437 151q230 0 432 -151v-178q-214 151 -433 160q-214 -1 -436 -160v178zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2259;" d="M536 1604h162l233 -602h-143l-171 426l-166 -426h-149zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225a;" d="M302 1604h149l166 -426l171 426h143l-233 -602h-162zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225b;" d="M482 1287l-218 158h269l84 256l85 -256h268l-218 -158l85 -256l-220 159l-219 -159zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225c;" d="M566 1711h101l260 -663h-621zM767 1159l-151 390l-150 -390h301zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225d;" d="M238 994q-39 0 -70 15t-53 43t-34 66.5t-12 86.5t12 87t34 66.5t53 43t70 15.5t71.5 -17t53.5 -54v218h67v-560h-67v61q-21 -37 -53.5 -54t-71.5 -17zM970 1356h-63v51h63v28q0 69 31 99t100 30h63v-55h-64q-35 0 -49 -14.5t-14 -51.5v-36h109v-51h-109v-352h-67v352z M701 994q-98 0 -154.5 55t-56.5 155q0 49 14 88t40 67t62 43t80 15q84 0 131 -52t47 -143v-32h-304q4 -69 41 -104.5t106 -35.5q68 0 142 37v-62q-74 -31 -148 -31zM251 1049q53 0 82.5 41.5t29.5 115.5t-29.5 115t-82.5 41t-83 -41q-30 -42 -30 -114q0 -75 30 -116.5 t83 -41.5zM798 1242q-2 55 -30.5 87t-82.5 32t-86 -32.5t-37 -87.5zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225e;" d="M221 1543h89v-85q29 48 71 73t101 25q58 0 99.5 -28t64.5 -91q65 119 187 119q88 0 133.5 -60t45.5 -171v-331h-89v328q0 80 -28 118t-86 38q-67 0 -107.5 -46.5t-40.5 -127.5v-310h-89v328q0 81 -27.5 118.5t-85.5 37.5q-69 0 -109 -46.5t-40 -127.5v-310h-89v549z M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225f;" d="M542 1272q0 28 3.5 48t11.5 37.5t22.5 34.5t35.5 38l45 44q26 26 40 47.5t14 50.5q0 45 -32 72.5t-85 27.5q-42 0 -86.5 -17.5t-93.5 -50.5v94q95 56 193 56q47 0 85 -12.5t65 -36t41.5 -56t14.5 -71.5q0 -41 -18.5 -74t-62.5 -76l-44 -43q-24 -23 -33.5 -36.5 t-13.5 -26.5q-3 -10 -4.5 -25t-1.5 -41v-62h-96v78zM539 1121h102v-127h-102v127zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2260;" d="M125 141l164 211h-201v172h330l184 236h-514v170h647l246 315l125 -102l-164 -213h203v-170h-334l-184 -236h518v-172h-647l-248 -315z" />
+<glyph unicode="&#x2261;" d="M88 1090h1057v-170h-1057v170zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
+<glyph unicode="&#x2262;" d="M272 74l55 118h-239v172h317l88 192h-405v172h485l88 192h-573v170h651l85 184l141 -65l-55 -119h235v-170h-312l-89 -192h401v-172h-480l-90 -192h570v-172h-649l-83 -182z" />
+<glyph unicode="&#x2263;" d="M88 1262h1057v-170h-1057v170zM88 900h1057v-172h-1057v172zM88 536h1057v-172h-1057v172zM88 172h1057v-172h-1057v172z" />
+<glyph unicode="&#x2264;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x2265;" d="M88 438l803 234l-803 231v184l1057 -331v-168l-1057 -332v182zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x2266;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
+<glyph unicode="&#x2267;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
+<glyph unicode="&#x2268;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
+<glyph unicode="&#x2269;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
+<glyph unicode="&#x226d;" d="M235 77l129 258q-125 -41 -276 -114v178q110 52 204 87t175 52l97 193q-190 18 -477 154v178q347 -170 563 -162l194 383l154 -77l-130 -258q121 40 276 114v-178q-216 -104 -378 -138l-98 -194q192 -18 477 -154v-178q-347 170 -563 162l-193 -383z" />
+<glyph unicode="&#x226e;" d="M362 19l119 385l-393 155v166l562 222l114 365l153 -48l-75 -241l303 120v-182l-366 -138l-100 -325l466 -174v-183l-514 203l-116 -373zM590 752l-295 -111l233 -86z" />
+<glyph unicode="&#x226f;" d="M316 19l75 241l-303 -120v182l366 138l100 325l-466 174v183l514 -203l116 373l153 -48l-119 -385l393 -155v-166l-562 -222l-114 -365zM938 642l-233 86l-62 -197z" />
+<glyph unicode="&#x2270;" d="M293 -190l63 190h-268v170h323l95 287l-418 131v168l575 180l115 352l161 -53l-77 -237l283 89v-184l-348 -100l-78 -241l426 -124v-182l-477 150l-78 -236h555v-170h-610l-80 -243zM600 746l-256 -74l211 -62z" />
+<glyph unicode="&#x2271;" d="M205 -190l62 190h-179v170h235l58 178l-293 -92v182l358 104l76 236l-434 125v184l486 -152l116 353l161 -53l-115 -351l409 -128v-168l-565 -177l-78 -241h643v-170h-699l-79 -243zM891 672l-206 60l-42 -132z" />
+<glyph unicode="&#x2272;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 130q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37 q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
+<glyph unicode="&#x2273;" d="M86 438l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 130q42 32 80.5 54t76 35.5t76.5 19.5t81 6q28 0 51 -2.5t47 -9t53 -17t70 -25.5q2 -1 6 -2.5t26 -12.5q50 -24 105 -39t106 -15q68 0 136 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14 t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
+<glyph unicode="&#x2274;" d="M293 -190l88 269q-81 0 -151.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q14 0 24 -0.5t21 -1.5l69 214l-418 131v168l577 181l115 351l161 -53l-77 -236l281 88v-184l-345 -99l-80 -242l425 -124v-182l-477 150l-66 -207q23 -7 53 -23q115 -54 209 -54 q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-148.5 -27q-27 0 -51 3t-48 9.5t-50 16t-56 22.5q-4 2 -5.5 2.5t-4 1.5l-7.5 3t-16 7q-16 7 -31 13.5t-29 11.5l-95 -289zM601 747l-259 -75l213 -62z" />
+<glyph unicode="&#x2275;" d="M205 -190l85 259q-20 -5 -35.5 -10t-24.5 -9q-31 -13 -68.5 -36.5t-75.5 -57.5v174q78 60 141 84t121 29l34 106l-296 -93v182l359 105l78 234l-437 126v184l488 -153l116 354l161 -53l-115 -352l407 -127v-168l-563 -177l-59 -184q12 -2 41 -12.5t59 -23.5 q2 -1 3.5 -1.5t4 -2t8 -4l16.5 -7.5q55 -26 108.5 -40t101.5 -14q69 0 137 30t143 93v-175q-72 -57 -145 -85.5t-151 -28.5q-52 0 -98 12.5t-106 38.5q-4 2 -5.5 2.5t-4 1.5l-7.5 3t-16 7q-20 9 -36 15.5t-32 12.5t-33 11t-39 10l-103 -313zM887 672l-202 59l-42 -130z" />
+<glyph unicode="&#x2276;" d="M86 736v168l1057 331v-184l-801 -231l801 -234v-182zM86 0l801 234l-801 231v184l1057 -331v-168l-1057 -332v182z" />
+<glyph unicode="&#x2277;" d="M86 586l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 150v168l1057 331v-184l-801 -231l801 -234v-182z" />
+<glyph unicode="&#x2278;" d="M259 -352l76 248l-249 -78v182l308 90l80 263l-388 112v184l437 -137l24 79l-461 145v168l616 193l110 360l162 -50l-76 -249l245 77v-184l-306 -88l-80 -264l386 -113v-182l-434 136l-25 -78l459 -144v-168l-613 -193l-109 -357zM644 907l-302 -87l252 -74zM887 234 l-250 72l-50 -160z" />
+<glyph unicode="&#x2279;" d="M259 -352l125 408l-298 94v168l418 131l29 95l-447 -140v182l505 147l48 158l-553 160v184l601 -188l125 410l162 -50l-126 -411l295 -92v-168l-414 -130l-29 -96l443 139v-184l-502 -145l-48 -159l550 -161v-182l-598 188l-124 -406zM887 820l-85 25l-17 -55zM447 264 l-105 -30l88 -26z" />
+<glyph unicode="&#x227a;" d="M1143 -45q-327 453 -1057 603v166q735 149 1057 603v-239q-327 -360 -747 -447q427 -98 747 -447v-239v0z" />
+<glyph unicode="&#x227b;" d="M88 194q319 349 747 447q-420 87 -747 447v239q322 -454 1057 -603v-166q-730 -150 -1057 -603v239z" />
+<glyph unicode="&#x227c;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM1143 -252q-43 51 -99 106.5t-118.5 109t-127 103t-123.5 88.5q-58 38 -117.5 69t-129 56.5t-153 45.5t-189.5 37 v200q184 -28 334 -78.5t277 -121.5t235.5 -162t210.5 -201v-252z" />
+<glyph unicode="&#x227d;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-171 -29 -323.5 -79t-285 -118.5t-245 -155t-203.5 -186.5v239zM86 0q102 110 210.5 201t235.5 162t277 121.5t334 78.5v-200q-106 -16 -190.5 -37t-155 -47t-130 -57t-114.5 -67 q-54 -36 -117.5 -84.5t-127 -103t-121.5 -111t-101 -108.5v252z" />
+<glyph unicode="&#x227e;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM86 60q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5 q55 -24 104 -39t103 -15q72 0 140 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
+<glyph unicode="&#x227f;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM86 60q78 60 150.5 87.5t154.5 27.5q45 0 101.5 -10.5t128.5 -43.5q6 -3 8.5 -4t5 -2.5t6.5 -3t12 -5.5q55 -24 104 -39t103 -15q72 0 140 30 t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
+<glyph unicode="&#x2280;" d="M345 -115l166 546q-97 40 -202.5 71.5t-222.5 55.5v166q329 66 573 193l161 530l163 -50l-104 -342q154 118 264 272v-239q-81 -88 -165.5 -159.5t-175.5 -126.5l-85 -277q231 -118 426 -331v-239q-178 247 -476 404l-160 -524zM592 699q-48 -19 -96.5 -33t-99.5 -25 q85 -20 164 -48z" />
+<glyph unicode="&#x2281;" d="M246 -115l104 342q-154 -118 -264 -272v239q81 88 165.5 159.5t175.5 126.5l85 277q-231 118 -426 331v239q178 -247 476 -404l160 524l162 -50l-166 -546q97 -40 202.5 -71.5t222.5 -55.5v-166q-329 -66 -573 -193l-161 -530zM637 583q48 19 96.5 33t99.5 25 q-85 20 -164 48z" />
+<glyph unicode="&#x2282;" d="M566 163q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579v0z" />
+<glyph unicode="&#x2283;" d="M88 313h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150z" />
+<glyph unicode="&#x2284;" d="M309 -7l70 205q-42 17 -79.5 42.5t-72.5 61.5q-68 69 -103.5 152t-35.5 182q0 102 37 190t101.5 153.5t151.5 102.5t187 37h126l75 223l161 -53l-57 -170h275v-150h-326l-221 -656h547v-150h-579h-20l-75 -223zM639 969h-74q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105 t-25.5 -130.5q0 -66 23.5 -123.5t71.5 -105.5q43 -43 94 -67z" />
+<glyph unicode="&#x2285;" d="M306 -7l57 170h-275v150h326l221 656h-547v150h579h20l75 223l162 -53l-70 -205q42 -17 79.5 -42.5t72.5 -61.5q68 -69 103.5 -152t35.5 -182q0 -102 -37 -190t-101.5 -153.5t-151.5 -102.5t-187 -37h-126l-75 -223zM668 313q69 0 128.5 25.5t103.5 70t69.5 105 t25.5 130.5q0 66 -23.5 123.5t-71.5 105.5q-43 43 -94 67l-212 -627h74z" />
+<glyph unicode="&#x2286;" d="M566 324q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579zM88 170h1057v-170 h-1057v170z" />
+<glyph unicode="&#x2287;" d="M88 474h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150zM88 170h1057v-170 h-1057v170z" />
+<glyph unicode="&#x2288;" d="M261 -159l54 159h-227v170h283l58 172q-57 16 -117 52.5t-110 94t-82 134.5t-32 174q0 102 37 190t101.5 153.5t151.5 102.5t187 37h178l71 214l158 -53l-53 -161h226v-150h-276l-220 -656h496v-150h-547l-50 -154h597v-170h-654l-71 -212zM692 1130h-127 q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105t-25.5 -130.5q0 -66 21.5 -118.5t56 -92t77 -65t83.5 -37.5z" />
+<glyph unicode="&#x2289;" d="M261 -159l53 159h-226v170h283l51 154h-334v150h385l219 655q-6 1 -12 1h-12h-580v150h580q19 0 37.5 -1.5t35.5 -3.5l73 219l158 -53l-73 -218q29 -16 56 -37t51 -45q68 -68 103.5 -152.5t35.5 -183.5q0 -102 -37 -189.5t-101.5 -152.5t-152 -102t-187.5 -37h-68 l-52 -154h598v-170h-655l-70 -212zM668 474q68 0 127.5 25.5t104 69.5t70 104.5t25.5 130.5q0 69 -25 127t-70 103q-23 23 -50 42l-202 -602h20z" />
+<glyph unicode="&#x228a;" d="M358 -102l82 102h-352v170h488l124 154h-134q-101 0 -188 37.5t-151.5 102t-101.5 152t-37 186.5t37 186t101.5 152t151.5 102.5t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104t-25.5 -127.5q0 -69 26 -129t70 -104t103.5 -69.5t127.5 -25.5h580 v-150h-335l65 -53l-81 -101h351v-170h-488l-167 -208z" />
+<glyph unicode="&#x228b;" d="M358 -102l82 102h-352v170h488l124 155q-8 -1 -16.5 -1h-16.5h-579v150h580q67 0 127 25.5t104 69.5t70 104t26 129q0 68 -25.5 127.5t-69.5 104t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102.5t101.5 -153t37 -189q0 -98 -33 -176.5t-84.5 -136.5 t-114 -95t-122.5 -51l84 -68l-81 -101h351v-170h-488l-167 -208z" />
+<glyph unicode="&#x228d;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM539 446q-30 0 -30 30 v166q0 30 30 30h152q30 0 30 -30v-166q0 -30 -30 -30h-152z" />
+<glyph unicode="&#x228e;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM566 509h-170v100h170 v170h101v-170h170v-100h-170v-172h-101v172z" />
+<glyph unicode="&#x228f;" d="M88 1163h1057v-170h-887v-704h887v-170h-1057v1044z" />
+<glyph unicode="&#x2290;" d="M88 289h887v704h-887v170h1057v-1044h-1057v170z" />
+<glyph unicode="&#x2291;" d="M88 1268h1057v-170h-887v-616h887v-170h-1057v956zM88 184h1057v-170h-1057v170z" />
+<glyph unicode="&#x2292;" d="M88 482h887v616h-887v170h1057v-956h-1057v170zM88 184h1057v-170h-1057v170z" />
+<glyph unicode="&#x2293;" d="M94 1284h1044v-1284h-170v1114h-704v-1114h-170v1284z" />
+<glyph unicode="&#x2294;" d="M94 1284h170v-1114h704v1114h170v-1284h-1044v1284z" />
+<glyph unicode="&#x2295;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM546 572h-275v140h275v277 h140v-277h276v-140h-276v-274h-140v274z" />
+<glyph unicode="&#x2296;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM271 712h691v-140h-691v140 z" />
+<glyph unicode="&#x2297;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448l194 194l-196 196 l99 99l196 -196l195 195l99 -99l-195 -195l194 -194l-99 -99l-194 194l-194 -194z" />
+<glyph unicode="&#x2298;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448l488 488l99 -99 l-488 -488z" />
+<glyph unicode="&#x2299;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM489 784h252v-305h-252v305 z" />
+<glyph unicode="&#x229a;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM614 378q-57 0 -105 20 t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 511q28 0 52.5 10t43 28t29 42.5t10.5 52.5q0 54 -39 93q-18 18 -42 28.5t-53 10.5 q-28 0 -52 -10.5t-42 -28.5t-28.5 -42.5t-10.5 -52.5t10 -52t28 -41.5t42 -27.5t52 -10z" />
+<glyph unicode="&#x229b;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M559 1037q-49 -7 -106.5 -31.5t-115.5 -81.5q-9 -10 -17 -19t-16 -19l255 -154v305zM929 886q-8 10 -16 19t-17 19q-58 57 -115.5 81.5t-106.5 31.5v-305zM524 642l-276 150q-27 -69 -27 -150t28 -150zM984 492q28 69 28 150t-27 150l-276 -150zM559 552l-254 -153l16 -18 l16 -18q58 -57 115.5 -81.5t106.5 -31.5v302zM674 250q49 7 106.5 31.5t115.5 81.5l16 18l16 18l-254 153v-302z" />
+<glyph unicode="&#x229c;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5q0 112 41 209t116 171q39 39 84.5 69t90.5 49q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126t30.5 157q0 75 -27 146.5t-89 132.5q-59 58 -128 87q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM299 814h635v-102h-635v102 zM299 571h635v-103h-635v103z" />
+<glyph unicode="&#x229d;" d="M617 106q-112 0 -210.5 42.5t-170.5 114.5t-114 169.5t-42 212.5q0 112 41 208.5t116 170.5q39 38 82 67.5t93 50.5q95 40 201 40q118 0 215 -43t169 -115q78 -78 117 -176t39 -204q0 -109 -40.5 -207.5t-115.5 -173.5t-173 -116t-207 -41zM616 246q76 0 149.5 29.5 t131.5 86.5q59 59 87 132t28 149q0 78 -29 151.5t-86 130.5q-52 52 -124.5 84t-156.5 32q-83 0 -155.5 -32t-124.5 -84q-60 -60 -87.5 -133t-27.5 -148q0 -79 29 -152t86 -130q51 -51 123 -83.5t157 -32.5zM415 712h403v-140h-403v140z" />
+<glyph unicode="&#x229e;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM546 572h-311v140h311v313h140v-313h312v-140h-312v-310h-140v310z" />
+<glyph unicode="&#x229f;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM271 712h691v-140h-691v140z" />
+<glyph unicode="&#x22a0;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM253 376l266 265l-267 267l99 99l267 -267l268 268l99 -99l-268 -268l264 -264l-99 -99l-264 264l-266 -265z" />
+<glyph unicode="&#x22a1;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM489 784h252v-305h-252v305z" />
+<glyph unicode="&#x22a2;" d="M88 1284h168v-557h889v-170h-889v-557h-168v1284z" />
+<glyph unicode="&#x22a3;" d="M977 557h-889v170h889v557h168v-1284h-168v557z" />
+<glyph unicode="&#x22a4;" d="M533 1114h-445v170h1057v-170h-444v-1114h-168v1114z" />
+<glyph unicode="&#x22b2;" d="M88 559v166l1057 418v-1002zM977 898l-682 -257l682 -254v511z" />
+<glyph unicode="&#x22b3;" d="M88 1143l1057 -418v-166l-1057 -418v1002zM938 641l-682 257v-511z" />
+<glyph unicode="&#x22b4;" d="M88 588v168l1057 331v-831zM977 855l-633 -183l633 -185v368zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x22b5;" d="M88 1087l1057 -331v-168l-1057 -332v831zM891 672l-635 183v-368zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x22b8;" d="M920 359q-60 0 -107 19.5t-81 48.5t-55 64t-30 67h-619l1 168h617q9 34 32 70.5t58 66t81 48.5t103 19q60 0 112.5 -22.5t90.5 -61.5t60 -91.5t22 -113.5q0 -60 -21.5 -111.5t-59.5 -89.5t-90.5 -59.5t-113.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43t10.5 53.5 q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
+<glyph unicode="&#x22c2;" d="M131 1023q0 148 27 248.5t85.5 161.5t150.5 87.5t222 26.5t222.5 -26.5t151 -87.5t85.5 -161.5t27 -248.5v-1459h-172v1414q0 122 -18 200.5t-56 124t-97.5 63t-142.5 17.5t-142 -17.5t-97 -63t-56 -124t-18 -200.5v-1414h-172v1459z" />
+<glyph unicode="&#x22c3;" d="M617 -465q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v1459h172v-1414q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v1414h172v-1459q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5z" />
+<glyph unicode="&#x22c4;" d="M105 642l510 510l512 -512l-510 -510zM887 640l-272 272l-270 -270l272 -272z" />
+<glyph unicode="&#x22c5;" d="M489 864h252v-305h-252v305z" />
+<glyph unicode="&#x22c6;" d="M482 666l-217 158h268l84 255l83 -255h268l-217 -158l84 -255l-218 158l-218 -158z" />
+<glyph unicode="&#x22cd;" d="M383 674q-82 0 -154 29.5t-141 84.5v175q75 -63 143 -93t140 -30q54 0 103 15t104 39q8 4 12 5.5t6.5 3t5 2.5t8.5 4q72 33 128.5 43.5t101.5 10.5q82 0 154.5 -27.5t150.5 -87.5v-174q-78 68 -149 95.5t-148 27.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5l-33 -14 q-30 -13 -56 -22.5t-50 -16t-48 -9.5t-51 -3zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x22ce;" d="M532 0q0 892 -540 1284h240q369 -295 384 -596q19 298 382 596h240q-540 -392 -540 -1284h-166v0z" />
+<glyph unicode="&#x22cf;" d="M-8 0q540 391 540 1284h166q0 -893 540 -1284h-240q-369 295 -384 596q-19 -298 -382 -596h-240v0z" />
+<glyph unicode="&#x22d0;" d="M738 -6q-90 0 -173 23t-155 65t-131 101t-101 131t-65 155t-23 173q0 89 23 172t64.5 155t100 131t130.5 101.5t155 65.5t173 23h407v-170h-406q-100 0 -187 -37.5t-151.5 -102t-101.5 -152t-37 -186.5q0 -100 37 -187t101.5 -151.5t151.5 -102t188 -37.5h405v-170h-405z M737 334q-64 0 -120 24t-97.5 65.5t-65.5 97.5t-24 121q0 64 24 120t65 98t97 66t121 24h406v-170h-405q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5q0 -29 10.5 -54t29.5 -44t44 -29.5t54 -10.5h405v-170h-406z" />
+<glyph unicode="&#x22d1;" d="M90 164h406q100 0 187 37.5t151.5 102.5t101.5 152t37 187q0 99 -37 186t-101.5 151.5t-152 102t-187.5 37.5h-405v170h405q90 0 173 -23t155 -65t131 -101t101 -131t65 -155t23 -173q0 -89 -23 -172t-64.5 -155t-100 -131t-130.5 -101.5t-155 -65.5t-173 -23h-407v170z M90 504h405q29 0 54 11t44 29.5t29.5 43.5t10.5 54t-10.5 54t-29.5 44t-44 29.5t-54 10.5h-405v170h406q64 0 120 -24t97.5 -65.5t65.5 -97.5t24 -121q0 -64 -24 -120t-65 -98t-97.5 -66t-120.5 -24h-406v170z" />
+<glyph unicode="&#x22da;" d="M88 1058v168l1057 331v-184l-801 -231l801 -234v-182zM88 640h1057v-170h-1057v170zM88 -263l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
+<glyph unicode="&#x22db;" d="M88 908l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM88 640h1057v-170h-1057v170zM88 -116v168l1057 332v-182l-803 -234l803 -231v-184z" />
+<glyph unicode="&#x22dc;" d="M86 1087h1057v-170h-1057v170zM86 331v168l1057 332v-182l-801 -234l801 -231v-184z" />
+<glyph unicode="&#x22dd;" d="M88 1087h1057v-170h-1057v170zM88 184l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
+<glyph unicode="&#x22de;" d="M86 842q106 16 190.5 37t155 47t130 57t114.5 67q54 36 117.5 84.5t127 103t121.5 111t101 108.5v-252q-102 -110 -210.5 -201t-235.5 -162t-277 -121.5t-334 -78.5v200zM1143 -252q-183 203 -443.5 340.5t-613.5 198.5v166q171 28 323.5 78.5t285 119t244.5 154.5 t204 187v-239q-292 -290 -695 -383q405 -80 695 -383v-239z" />
+<glyph unicode="&#x22df;" d="M1143 642q-184 28 -334 78.5t-277 121.5t-235.5 162t-210.5 201v252q43 -51 99 -106.5t118.5 -109t127 -103t123.5 -88.5q58 -38 117.5 -69t129 -56.5t153 -46t189.5 -36.5v-200zM86 -13q290 303 695 383q-403 93 -695 383v239q91 -101 203.5 -187t245 -154.5t285 -119 t323.5 -78.5v-166q-353 -61 -613.5 -198.5t-443.5 -340.5v239z" />
+<glyph unicode="&#x22e0;" d="M271 -321l186 590q-162 64 -371 94v200q250 -38 429 -109l51 163q-210 90 -480 135v166q92 16 178.5 37.5t163 46t139.5 50.5t109 52l52 29l140 444l162 -51l-77 -245q54 42 101 85.5t89 90.5v-239q-65 -68 -135 -124t-146 -102l-86 -274q201 -100 367 -266v-239 q-85 93 -190 174.5t-233 153.5l-51 -161l7 -4q60 -35 123.5 -78.5t124 -92.5t116.5 -101.5t103 -103.5v-252q-45 53 -101 108.5t-117.5 108.5t-125 101.5t-123.5 88.5q-17 11 -36 23.5t-28 17.5l-179 -568zM653 892q-100 -36 -205 -57q45 -10 87 -22.5t84 -27.5z" />
+<glyph unicode="&#x22e1;" d="M208 -321l87 278q-119 -104 -209 -209v252q139 151 309 273l78 247q-232 -136 -387 -307v239q204 202 462 309l40 127q-283 100 -502 330v239q47 -53 102.5 -102t115.5 -94t123 -84.5t126 -72.5q19 -10 44.5 -22.5t45.5 -20.5l162 516l162 -51l-165 -525 q78 -26 162.5 -46.5t178.5 -36.5v-166q-257 -44 -459 -126l-68 -216q208 105 527 153v-200q-184 -27 -329 -78t-261 -130l-22 -15l-161 -512zM781 835l-29 6l-5 -14z" />
+<glyph unicode="&#x22e2;" d="M227 -102l89 221h-228v1044h646l114 284l158 -63l-89 -221h228v-170h-296l-282 -704h578v-170h-646l-114 -284zM384 289l282 704h-408v-704h126z" />
+<glyph unicode="&#x22e3;" d="M227 -102l89 221h-228v170h296l282 704h-578v170h646l114 284l158 -63l-89 -221h228v-1044h-646l-114 -284zM975 289v704h-126l-282 -704h408z" />
+<glyph unicode="&#x22e4;" d="M358 -88l82 102h-352v170h488l103 128h-591v956h1057v-170h-887v-616h887v-170h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
+<glyph unicode="&#x22e5;" d="M358 -88l82 102h-352v170h488l103 128h-591v170h887v616h-887v170h1057v-956h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
+<glyph unicode="&#x22e6;" d="M467 -244l67 295q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 210l-532 167v168l1057 331v-184l-801 -231l801 -234v-182l-392 123l-50 -223q87 -34 161 -34q70 0 138 30t143 93 v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
+<glyph unicode="&#x22e7;" d="M467 -244l67 295q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 212l-532 -167v182l801 234l-801 231v184l1057 -331v-168l-449 -141l69 -16l-62 -275q87 -34 161 -34q70 0 138 30 t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
+<glyph unicode="&#x22e8;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM446 -406l88 387q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174 q78 60 150.5 87.5t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
+<glyph unicode="&#x22e9;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM446 -406l88 387q-14 5 -24.5 8.5t-27.5 7.5q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5 q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
+<glyph unicode="&#x22ef;" d="M80 795h252v-305h-252v305zM489 795h252v-305h-252v305zM899 795h252v-305h-252v305z" />
+<glyph unicode="&#x2304;" d="M146 428h163l307 -456l307 456h163l-470 -698z" />
+<glyph unicode="&#x2308;" d="M640 1556h424l-27 -143h-240l-327 -1683h-184z" />
+<glyph unicode="&#x2309;" d="M736 1413h-240l27 143h424l-354 -1826h-184z" />
+<glyph unicode="&#x230a;" d="M640 1556h184l-327 -1683h240l-27 -143h-424z" />
+<glyph unicode="&#x230b;" d="M196 -127h240l327 1683h184l-354 -1826h-424z" />
+<glyph unicode="&#x2310;" d="M88 862h1057v-172h-889v-319h-168v491z" />
+<glyph unicode="&#x2320;" d="M513 776q0 36 3 165q7 262 33.5 444.5t73.5 292.5q48 112 122 167t169 55q88 0 137 -42t49 -108q0 -54 -32 -85t-88 -31q-38 0 -66.5 17t-42.5 56q-5 12 -7 28t-3 23q-3 21 -8 28.5t-15 7.5q-50 0 -80.5 -154.5t-38.5 -464.5l-8 -303v-1384h-198v1288z" />
+<glyph unicode="&#x2321;" d="M310 -486q-88 0 -137 42t-49 108q0 54 32 85t88 31q45 0 71.5 -20t37.5 -52q5 -11 7.5 -28t3.5 -24q3 -21 7.5 -28.5t14.5 -7.5q49 0 80 154.5t39 464.5l8 303v1387h198v-1291q0 -36 -3 -165q-7 -263 -33.5 -445t-73.5 -292q-48 -112 -122 -167t-169 -55z" />
+<glyph unicode="&#x239b;" d="M280 -294q0 306 22.5 565.5t61 477.5t89.5 397t108 323.5t116.5 257.5t114.5 199h160q-87 -175 -156 -334.5t-122 -319t-90.5 -325.5t-62 -354.5t-35.5 -406.5t-11 -480v-234h-195v234z" />
+<glyph unicode="&#x239c;" d="M280 1929h195v-2445h-195v2445z" />
+<glyph unicode="&#x239d;" d="M792 -492q-69 108 -134 236.5t-122 280.5t-104 329.5t-81 384.5t-52.5 445t-18.5 511v234h195v-234q0 -286 16.5 -521.5t47 -432.5t73.5 -363t96 -313.5t114.5 -283.5t129.5 -273h-160v0z" />
+<glyph unicode="&#x239e;" d="M758 -294q0 262 -11 480t-35.5 406.5t-62 354.5t-90.5 325.5t-122 319t-156 334.5h160q55 -86 114.5 -199t116.5 -257.5t108 -323.5t89.5 -397t61 -477.5t22.5 -565.5v-234h-195v234z" />
+<glyph unicode="&#x239f;" d="M758 1929h195v-2445h-195v2445z" />
+<glyph unicode="&#x23a0;" d="M281 -492q68 137 129.5 273t114.5 283.5t96 313.5t73.5 363t47 432.5t16.5 521.5v234h195v-234q0 -273 -18.5 -511t-52.5 -445t-81 -384.5t-104 -329.5t-122 -280.5t-134 -236.5h-160v0z" />
+<glyph unicode="&#x23a1;" d="M280 1901h672v-195h-477v-2222h-195v2417z" />
+<glyph unicode="&#x23a2;" d="M280 1929h195v-2445h-195v2445z" />
+<glyph unicode="&#x23a3;" d="M280 1929h195v-2226h477v-195h-672v2421z" />
+<glyph unicode="&#x23a4;" d="M757 1706h-477v195h672v-2417h-195v2222z" />
+<glyph unicode="&#x23a5;" d="M757 1914h195v-2430h-195v2430z" />
+<glyph unicode="&#x23a6;" d="M280 -297h477v2211h195v-2406h-672v195z" />
+<glyph unicode="&#x23a7;" d="M524 1375q0 111 30.5 207.5t85.5 167t132 111t170 40.5h275v-176h-281q-51 0 -92.5 -25t-71 -70t-46 -108t-16.5 -139v-1917h-186v1909z" />
+<glyph unicode="&#x23a8;" d="M524 8q0 147 -9 248.5t-29.5 168t-54.5 103.5t-83.5 55t-116 22t-153.5 6l-61 1v187h61q86 0 152.5 4.5t116.5 23t83.5 56.5t54.5 105t30 168t9 246v524h186v-536q0 -440 -101 -592q-18 -27 -43 -51.5t-57 -41.5q29 -16 54.5 -40t45.5 -53q49 -74 75 -218.5t26 -373.5 v-536h-186v524z" />
+<glyph unicode="&#x23a9;" d="M942 -492q-92 0 -168.5 40t-132 110.5t-86.5 166.5t-31 209v1892h186v-1900q0 -77 16.5 -140t46 -108t71 -69.5t92.5 -24.5h281v-176h-275v0z" />
+<glyph unicode="&#x23aa;" d="M524 1932h186v-2456h-186v2456z" />
+<glyph unicode="&#x23ab;" d="M523 1383q0 76 -16.5 139t-46 108t-71 70t-92.5 25h-281v176h275q93 0 170 -40.5t132 -111t85.5 -167t30.5 -207.5v-1909h-186v1917z" />
+<glyph unicode="&#x23ac;" d="M523 20q0 229 25.5 373.5t75.5 218.5q17 26 43.5 51.5t56.5 41.5q-30 17 -55.5 40.5t-44.5 52.5q-101 152 -101 592v536h186v-524q0 -145 9 -246t30 -168t54.5 -105t83.5 -56.5t116.5 -23t152.5 -4.5h61v-187l-61 -1q-87 -2 -153.5 -6t-116 -22t-83.5 -55t-54.5 -103.5 t-29.5 -168t-9 -248.5v-524h-186v536z" />
+<glyph unicode="&#x23ad;" d="M16 -316h281q51 0 92.5 24.5t71 69.5t46 108t16.5 140v1900h186v-1892q0 -113 -31 -209t-86.5 -166.5t-132 -110.5t-168.5 -40h-275v176z" />
+<glyph unicode="&#x23ae;" d="M513 1929h198v-2441h-198v2441z" />
+<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
+<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
+<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
+<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
+<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
+<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
+<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
+<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
+<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
+<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
+<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
+<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
+<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
+<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
+<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
+<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
+<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
+<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
+<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
+<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
+<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
+<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
+<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
+<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
+<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
+<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
+<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
+<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
+<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
+<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
+<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
+<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
+<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
+<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
+<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
+<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
+<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
+<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
+<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
+<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
+<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
+<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
+<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
+<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
+<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
+<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
+<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
+<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
+<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
+<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
+<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
+<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
+<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
+<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
+<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
+<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
+<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
+<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
+<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
+<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
+<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
+<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
+<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
+<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
+<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
+<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
+<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
+<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
+<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
+<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
+<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
+<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
+<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
+<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
+<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
+<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
+<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
+<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
+<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
+<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
+<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
+<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
+<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
+<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
+<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
+<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
+<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
+<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
+<glyph unicode="&#x2588;" d="M-20 1921h1273v-2433h-1273v2433z" />
+<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
+<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
+<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
+<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
+<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
+<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
+<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
+<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
+<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
+<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
+<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
+<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
+<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
+<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
+<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
+<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
+<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
+<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
+<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
+<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
+<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
+<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
+<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
+<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
+<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
+<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
+<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
+<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
+<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
+<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
+<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
+<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
+<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
+<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
+<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
+<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
+<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
+<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
+<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
+<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
+<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1056 1028h-879l439 -878z" />
+<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
+<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
+<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
+<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
+<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
+<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
+<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
+<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
+<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
+<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1038 532l-422 422l-421 -422l421 -422z" />
+<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
+<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
+<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
+<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-30 -119q-62 17 -120 17t-120 -17zM111 885q42 58 93.5 100.5t106.5 74.5l61 -106q-45 -25 -85.5 -58.5t-74.5 -81.5zM1020 814q-34 48 -74.5 81.5t-85.5 58.5l61 106q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150 l119 -30q-13 -55 -13 -120t13 -120zM1092 412q13 55 13 120t-13 120l119 30q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l101 71q34 -48 74.5 -81.5t85.5 -58.5zM860 110q45 25 83 57t77 83l101 -70q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l30 119q62 -17 120 -17t120 17l30 -119q-75 -21 -150 -21z" />
+<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q10 4 18 7.5t16.5 7.5t18.5 9.5t25 13.5q21 11 28 17v810q-6 3 -7.5 4.5t-3.5 2.5t-5 3t-12 7q-21 12 -39 21t-39 17v-920zM448 991 q-19 -8 -38 -17t-38 -20q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
+<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 286 q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM617 396q32 0 66 20q33 20 50.5 48t17.5 68t-17.5 68t-50.5 48 q-34 20 -66 20q-33 0 -68 -20q-67 -39 -67 -116t67 -116q35 -20 68 -20z" />
+<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
+<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
+<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
+<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 137 -62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250h977z" />
+<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q122 0 244 71q245 141 245 422h-977q0 -145 61.5 -248.5t182.5 -173.5q122 -71 244 -71z" />
+<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
+<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
+<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
+<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM614 465q63 0 117.5 23t95 63.5t63.5 94.5t23 116q0 61 -23 115t-63.5 94t-94.5 63t-117 23q-62 0 -116 -23t-94 -63t-63 -94t-23 -116t23 -116t62.5 -94t93.5 -63t116 -23z" />
+<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM372 110q-119 69 -181.5 172t-62.5 250t62.5 250t181.5 172q124 71 244 71q122 0 244 -71q245 -141 245 -422t-245 -422q-122 -71 -244 -71q-120 0 -244 71z" />
+<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 179 -76.5 309.5t-229.5 218.5q-152 88 -306 88q-74 0 -149.5 -21t-154.5 -67q-152 -88 -228.5 -218.5t-76.5 -309.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5q120 -68 182 -177t62 -246 h-977z" />
+<glyph unicode="&#x25db;" d="M-20 532h26q0 -87 20.5 -165.5t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5t148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5h26v-1044h-1273v1044zM616 39q-57 0 -120 17.5t-125 52.5q-112 63 -177.5 170t-65.5 253h977q0 -137 -62 -246 t-182 -177q-62 -35 -125 -52.5t-120 -17.5z" />
+<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
+<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q150 0 304 -88q306 -176 306 -528h-123v0z" />
+<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
+<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
+<glyph unicode="&#x25e0;" d="M6 532q0 87 20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5h-122q0 137 -62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250h-122v0z " />
+<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h122q0 -145 61.5 -248.5t182.5 -173.5q122 -71 244 -71t244 71q245 141 245 422h122q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
+<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
+<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
+<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
+<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
+<glyph unicode="&#x25e6;" d="M614 465q-62 0 -116 23t-93.5 63t-62.5 94t-23 116t23 116t63 94t94 63t116 23q63 0 117 -23t94.5 -63t63.5 -94t23 -115q0 -62 -23 -116t-63.5 -94.5t-95 -63.5t-117.5 -23zM614 524q50 0 93.5 18.5t76 51t51.5 75.5t19 93q0 49 -18.5 92t-51 75t-76 50.5t-93.5 18.5 t-93 -18.5t-75 -50.5t-50.5 -75t-18.5 -93t18.5 -93t50 -75t74.5 -50.5t93 -18.5z" />
+<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
+<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
+<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
+<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
+<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
+<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
+<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
+<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
+<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
+<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q56 0 119.5 17.5t125.5 52.5q121 69 182.5 178.5t61.5 246.5q0 73 -17.5 136.5t-49.5 116t-77 94.5t-100 73q-42 24 -92.5 42.5t-95.5 24.5v-547h-542q8 -79 35.5 -142t67.5 -111.5t89.5 -82.5t100.5 -56t101 -32.5t91 -10.5z M559 588v433q-47 -7 -93 -23t-94 -44q-219 -126 -241 -366h428z" />
+<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q48 8 93.5 23.5t93.5 43.5q245 141 245 422t-245 422q-64 37 -125 54t-116 17q-43 0 -94 -10.5t-102.5 -32.5t-101 -56.5t-89.5 -83t-67 -112t-34 -142.5h542v-545zM559 474h-428q22 -237 241 -364q92 -53 187 -67v431z" />
+<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142t-67 111.5t-89 83t-100.5 57t-102 33t-92.5 10.5q-57 0 -120.5 -17.5t-125.5 -52.5q-121 -69 -182 -178.5t-61 -246.5q0 -141 62.5 -247t180.5 -173q48 -27 96 -44t92 -23v545zM673 43q51 8 96.5 24.5 t90.5 42.5q220 126 242 364h-429v-431z" />
+<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM613 39q42 0 92.5 10t102 32t101 56.5t90 82.5t68 111t35.5 143h-543v547q-47 -7 -93 -23t-94 -44q-244 -141 -244 -422t244 -422q61 -35 122.5 -53t118.5 -18zM1102 588q-23 241 -242 366q-93 53 -187 67v-433h429z" />
+<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
+<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
+<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
+<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
+<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
+<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
+<glyph unicode="&#x266a;" d="M894 1493h134q106 -123 154 -257.5t48 -288.5q0 -125 -31 -284l-147 -61q19 90 27 154t8 134q0 209 -98 400l-199 -1023q-28 -146 -72.5 -242t-111.5 -157q-67 -62 -151.5 -90.5t-205.5 -28.5q-87 0 -157.5 28.5t-109.5 78.5q-40 49 -40 110q0 17 3 35q13 68 71.5 125.5 t147.5 91.5q87 33 183 33q89 0 160 -28.5t110 -79.5q26 57 39 124z" />
+<glyph unicode="&#x27c2;" d="M88 170h444l1 1114h168l-1 -1114h445v-170h-1057v170z" />
+<glyph unicode="&#x27c5;" d="M675 -334q-29 0 -53 3t-52 8q-101 19 -173 47t-117.5 65.5t-66.5 85.5t-21 108q0 67 24.5 149t68.5 181t105 215t134 251q73 136 128.5 238t92 175t55 119.5t18.5 70.5q0 34 -22 48.5t-51 14.5q-18 0 -34 -6.5t-32.5 -22t-34 -42t-39.5 -66.5l-126 49q24 55 60 96 t78.5 68t88 40.5t87.5 13.5q36 0 68.5 -10t57 -30.5t38.5 -51t14 -70.5q0 -10 -1 -20.5t-3 -21.5q-7 -41 -27.5 -97.5t-56.5 -133.5t-87.5 -177t-119.5 -227q-65 -122 -115.5 -217t-87 -169.5t-59.5 -131t-33 -99.5q-9 -39 -9 -72q0 -84 56 -136.5t168 -83.5q38 -11 68 -16 t45 -4q17 0 30.5 0.5t24.5 1.5l-28 -143h-61v0z" />
+<glyph unicode="&#x27c6;" d="M154 -191q10 -1 23.5 -1.5t30.5 -0.5q34 -2 120 20q96 24 160.5 55t103.5 75t56 105t17 145q0 97 -18 226t-45 303q-26 169 -40.5 297.5t-14.5 219.5q0 74 10 118q11 51 36.5 89t60 63.5t75.5 38.5t82 13q43 0 83 -13.5t72 -40.5t52 -68t23 -96l-146 -49 q-6 41 -13.5 67.5t-17.5 42t-24 21.5t-32 6q-35 0 -63.5 -19.5t-37.5 -59.5q-5 -23 -5 -54q0 -68 18.5 -196t50.5 -337q26 -164 43 -299t17 -247q0 -117 -25 -208.5t-86 -159.5t-164.5 -114.5t-259.5 -73.5q-30 -5 -55 -8t-54 -3h-61z" />
+<glyph unicode="&#x27dc;" d="M313 359q-60 0 -112.5 22.5t-90.5 61.5t-60 91.5t-22 113.5q0 60 21.5 111.5t59.5 89.5t90 59.5t114 21.5q60 0 107 -19.5t81 -48.5t55 -64.5t30 -66.5h619l-1 -168h-617q-9 -33 -31 -69t-56.5 -66t-81.5 -49.5t-105 -19.5zM312 509q29 0 54 11t44 29.5t29.5 43.5 t10.5 54q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43 -29.5t53.5 -10.5z" />
+<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
+<glyph unicode="&#x27e6;" d="M474 1556h640l-19 -100h-240l-316 -1626h240l-19 -100h-640zM439 -170l316 1626h-200l-316 -1626h200z" />
+<glyph unicode="&#x27e7;" d="M138 -170h240l316 1626h-240l19 100h640l-354 -1826h-640zM678 -170l316 1626h-200l-316 -1626h200z" />
+<glyph unicode="&#x27e8;" d="M391 642l459 912h170l-459 -912l104 -912h-170z" />
+<glyph unicode="&#x27e9;" d="M672 642l-104 912h170l104 -912l-459 -912h-170z" />
+<glyph unicode="&#x27ea;" d="M191 642l459 912h170l-459 -912l104 -912h-170zM581 642l459 912h170l-459 -912l104 -912h-170z" />
+<glyph unicode="&#x27eb;" d="M472 642l-104 912h170l104 -912l-459 -912h-170zM872 642l-104 912h170l104 -912l-459 -912h-170z" />
+<glyph unicode="&#x27f5;" d="M-100 520v82l291 291l90 -90l-160 -160h1212v-164h-1212l160 -160l-90 -90z" />
+<glyph unicode="&#x27f6;" d="M952 319l160 160h-1212v164h1212l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x27f7;" d="M-100 520v82l291 291l90 -90l-160 -160h991l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-991l160 -160l-90 -90z" />
+<glyph unicode="&#x2987;" d="M756 -270q-129 33 -219.5 98.5t-148.5 155.5t-84.5 198.5t-26.5 226.5q0 113 23 234q28 147 90 292t161.5 268.5t238 216t320.5 134.5zM975 1373q-51 -13 -103.5 -49t-102.5 -89t-96 -121t-84.5 -144.5t-68 -159.5t-45.5 -167q-11 -54 -15.5 -106t-4.5 -104 q0 -96 16.5 -184t47 -157.5t74.5 -117t98 -63.5z" />
+<glyph unicode="&#x2988;" d="M477 1554q129 -33 219.5 -98.5t148.5 -155.5t84.5 -198.5t26.5 -226.5q0 -113 -23 -234q-28 -147 -90 -292t-161.5 -268.5t-238 -216t-320.5 -134.5zM258 -89q51 13 103.5 49t102.5 89t96 121t84.5 144.5t68 159.5t45.5 167q11 54 15.5 106t4.5 104q0 96 -16.5 184 t-47 157.5t-74.5 117t-98 63.5z" />
+<glyph unicode="&#x2997;" d="M231 159l188 968l576 481l81 -101l-333 -278l-228 -1172l225 -278l-121 -101z" />
+<glyph unicode="&#x2998;" d="M157 -221l333 278l228 1172l-225 278l121 101l388 -481l-188 -968l-576 -481z" />
+<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
+<glyph unicode="&#x29fa;" d="M332 557h-244v170h244v444h168v-444h232v444h168v-444h245v-170h-245v-444h-168v444h-232v-444h-168v444z" />
+<glyph unicode="&#x29fb;" d="M202 557h-114v170h114v444h168v-444h162v444h168v-444h162v444h168v-444h115v-170h-115v-444h-168v444h-162v-444h-168v444h-162v-444h-168v444z" />
+<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -325q397 0 397 865q0 432 -99 649.5t-298 217.5q-396 0 -396 -867q0 -865 396 -865zM489 681h252v-305h-252v305z" />
+<glyph unicode="&#x2a2f;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
+<glyph unicode="&#x2a6a;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5 t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174z" />
+<glyph unicode="&#x2a6b;" d="M761 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5 t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5t-146 -94.5v174zM280 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
+<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
+<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
+<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
+<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
+<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
+<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
+<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
+<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
+<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
+<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
+<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
+<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
+<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
+<glyph unicode="&#x2c7d;" d="M345 1504h132l76 -741l365 741h132l-437 -836h-155z" />
+<glyph unicode="&#x2e18;" d="M785 950q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM492 -400q-85 0 -150 20t-109.5 56t-67.5 87t-23 114q0 18 2 37 t6 39q7 38 22 73t41 70.5t64 73.5t92 82l105 86q40 33 66 58.5t42.5 49t25 48t14.5 55.5l33 170h190l-183 -941q14 3 33.5 9t33.5 11q42 14 96.5 41.5t110.5 61.5l-37 -188q-98 -54 -199.5 -83.5t-207.5 -29.5zM555 204l-54 -45q-36 -30 -61.5 -54t-43 -46.5t-27.5 -45.5 t-15 -50q-2 -11 -3 -21.5t-1 -19.5q0 -33 10 -57.5t27 -42.5t39 -29.5t45 -18.5z" />
+<glyph unicode="&#x2e1f;" d="M88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-75 -60 -146.5 -87t-146.5 -27q-57 0 -105 14t-102 37q-6 3 -8 3.5t-3.5 1.5t-6 2.5t-15.5 6.5q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-81 0 -151 -28.5 t-146 -94.5v174zM520 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2e22;" d="M621 1556h423l-28 -143h-240l-149 -770h-184z" />
+<glyph unicode="&#x2e23;" d="M715 1413h-240l29 143h424l-178 -913h-184z" />
+<glyph unicode="&#x2e24;" d="M443 643h184l-150 -770h240l-27 -143h-426z" />
+<glyph unicode="&#x2e25;" d="M176 -127h240l150 770h184l-179 -913h-424z" />
+<glyph unicode="&#x2e2e;" d="M528 524q8 42 11.5 68.5t3.5 46.5q0 12 -1.5 24t-8 28t-21 37.5t-40.5 53.5l-71 86q-30 36 -51 67.5t-34 60t-19 55.5t-6 55q0 29 6 61q15 81 57.5 146t105.5 111t144 71t174 25q97 0 188.5 -28t174.5 -85l-37 -188q-85 67 -167 102t-163 35q-53 0 -99.5 -14.5t-83 -41 t-61 -63t-32.5 -80.5q-3 -18 -3 -36q0 -39 17.5 -77.5t55.5 -82.5l73 -89q25 -31 43.5 -57.5t30 -51.5t17 -50t5.5 -54q0 -44 -12 -104l-30 -154h-191zM520 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5 t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
+<glyph d="M713 1170q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5zM498 655l108 357h162l-39 -357l-127 -655h-233z" />
+<glyph d="M768 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM492 -27q-85 0 -150 20t-109.5 56t-67.5 87t-23 114q0 18 2 37 t6 39q7 38 22 73t41 70.5t64 73.5t92 82l105 86q40 33 66 58.5t42.5 49t25 48t14.5 55.5l33 170h190l-183 -941q14 3 33.5 9t33.5 11q42 14 96.5 41.5t110.5 61.5l-37 -188q-98 -54 -199.5 -83.5t-207.5 -29.5zM555 577l-54 -45q-36 -30 -61.5 -54t-43 -46.5t-27.5 -45.5 t-15 -50q-2 -11 -3 -21.5t-1 -19.5q0 -33 10 -57.5t27 -42.5t39 -29.5t45 -18.5z" />
+<glyph d="M772 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM497 -27q-81 0 -146 21t-111.5 60t-71.5 93.5t-25 121.5 q0 45 12.5 87.5t40 85t70.5 87.5t105 96l104 86q42 34 69.5 63t45.5 58.5t28 62.5t17 74l20 123h191l-29 -154q-9 -48 -22.5 -86.5t-37 -74.5t-59.5 -73.5t-90 -82.5l-106 -89q-85 -71 -120.5 -127.5t-35.5 -110.5q0 -75 56 -116t149 -41q89 0 185.5 36t201.5 101l-37 -188 q-106 -57 -208.5 -85t-195.5 -28z" />
+<glyph horiz-adv-x="0" d="M-439 1659q-267 0 -267 205q0 9 0.5 18t1.5 19h119q1 -54 45 -82.5t129 -28.5q163 0 215 111h119q-35 -120 -126 -181t-236 -61z" />
+<glyph horiz-adv-x="0" d="M-752 1659q71 242 360 242q72 0 123 -15t83.5 -42t47.5 -64.5t15 -83.5q0 -11 -0.5 -19.5t-1.5 -17.5h-119q-7 111 -171 111q-85 0 -140 -28.5t-78 -82.5h-119v0z" />
+<glyph horiz-adv-x="0" d="M-821 1899h186l146 -264h-154zM-502 1899h186l146 -264h-154z" />
+<glyph horiz-adv-x="0" d="M-500 1872h205l-40 -205h-205z" />
+<glyph horiz-adv-x="0" d="M-467 1899h186l-280 -264h-154zM-148 1899h186l-280 -264h-154z" />
+<glyph horiz-adv-x="0" d="M-702 1840h598l-29 -148h-598z" />
+<glyph d="M449 1294q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM840 1294q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143z" />
+<glyph d="M834 1526h208l-307 -264h-160z" />
+<glyph d="M391 1294q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125v0z" />
+<glyph d="M500 1526h182l147 -264h-139z" />
+<glyph d="M653 1528h213l158 -266h-133l-139 178l-209 -178h-152z" />
+<glyph d="M442 1528h136l139 -178l209 178h151l-264 -266h-213z" />
+<glyph d="M47 612l1059 258l27 -108l-1063 -258z" />
+<glyph d="M662 852h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM684 963l76 391l-342 -391h266z" />
+<glyph d="M731 1286q-120 0 -190 61q-33 29 -56 72t-34 109h114q17 -62 56 -88q20 -14 48 -20.5t69 -6.5t76 7t62 21q53 28 80 87h121q-33 -112 -125 -177q-94 -65 -221 -65z" />
+<glyph d="M654 1294q-27 0 -27 24q0 6 1 9l29 145q4 27 32 27h142q15 0 22.5 -9t4.5 -24l-28 -145q-5 -27 -32 -27h-144v0z" />
+<glyph d="M611 -425q-131 0 -194.5 67.5t-63.5 208.5q0 57 10 116.5t27.5 117t42 110t54.5 93.5q59 82 134 118t169 36q131 0 195.5 -67t64.5 -207q0 -55 -9.5 -114.5t-27.5 -117.5t-42.5 -111t-54.5 -95q-110 -155 -305 -155zM625 -333q57 0 100.5 26.5t78.5 84.5q23 38 43 88 t34.5 104.5t23 109.5t8.5 102q0 90 -32.5 129t-101.5 39q-57 0 -101.5 -25.5t-80.5 -84.5q-23 -38 -43 -88.5t-34.5 -105.5t-23 -110t-8.5 -101q0 -88 33 -128t104 -40zM702 -64q-38 0 -65 21.5t-27 53.5q0 16 7.5 29.5t20 24t29 16.5t34.5 6t34.5 -6t29 -16.5t19.5 -24.5 t7 -30q0 -31 -25.5 -52.5t-63.5 -21.5z" />
+<glyph d="M369 -290h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553z" />
+<glyph d="M328 -300l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557z" />
+<glyph d="M536 -425q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
+<glyph d="M662 -216h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM684 -105l76 391l-342 -391h266z" />
+<glyph d="M548 -415q-66 0 -129 9t-111 27l27 114q57 -28 117 -42t117 -14q64 0 118 17.5t93 48t60.5 71.5t21.5 89q0 75 -54 115t-152 40q-51 0 -106 -11t-106 -32l98 418h508l-23 -95h-383l-49 -204q32 9 62 13t59 4q63 0 115 -16.5t89 -47t57 -73.5t20 -95q0 -72 -36 -135.5 t-99 -111.5q-60 -45 -135.5 -67t-178.5 -22z" />
+<glyph d="M634 -415q-134 0 -207 65t-73 197q0 40 7 87t19.5 95t30.5 95t41 88q66 121 168.5 180.5t239.5 59.5q53 0 100.5 -8.5t89.5 -24.5l-24 -104q-39 20 -84.5 31t-94.5 11q-263 0 -337 -320q49 61 110 89t140 28q115 0 180.5 -55t65.5 -160q0 -64 -25.5 -129.5t-73.5 -116.5 q-55 -59 -125 -83.5t-148 -24.5zM639 -327q53 0 96 21.5t73 57t46 80t16 91.5q0 73 -38 107.5t-107 34.5q-54 0 -98 -20t-74.5 -53.5t-47 -77t-16.5 -89.5q0 -75 40.5 -113.5t109.5 -38.5z" />
+<glyph d="M876 350h-476l21 95h629l-10 -53l-541 -782h-146z" />
+<glyph d="M617 -413q-68 0 -123 14.5t-93.5 42.5t-59 67.5t-20.5 89.5q0 46 18.5 86.5t52 72.5t82 54.5t108.5 33.5q-75 22 -110 63t-35 98q0 51 26.5 95.5t73 78t109 52.5t134.5 19q60 0 109.5 -13.5t85 -37.5t55.5 -58t20 -75q0 -38 -17 -74t-48 -66.5t-75 -53.5t-98 -35 q88 -17 129 -65t41 -119q0 -59 -27 -108.5t-75 -85.5t-115 -56t-148 -20zM716 88q42 0 78.5 13t63 35.5t42 52.5t15.5 63q0 55 -40 85t-107 30q-42 0 -78 -12t-62 -33t-40.5 -50t-14.5 -63q0 -57 38.5 -89t104.5 -32zM625 -326q49 0 89.5 13.5t69.5 38t45 58.5t16 74 q0 68 -44 105t-122 37q-49 0 -89.5 -15t-70 -40.5t-45.5 -60t-16 -74.5q0 -68 45 -102t122 -34z" />
+<glyph d="M543 -412q-54 0 -100.5 8.5t-89.5 24.5l24 104q39 -20 84.5 -31t94.5 -11q135 0 218 81.5t119 237.5q-46 -57 -107 -86.5t-145 -29.5q-115 0 -180 56t-65 160q0 63 25 128t74 117q102 108 275 108q131 0 205.5 -65.5t74.5 -199.5q0 -40 -7 -86.5t-19.5 -94t-31 -94.5 t-40.5 -87q-133 -240 -409 -240zM677 -26q54 0 97.5 20t74.5 53t48 77t17 92q0 75 -40 113t-109 38q-53 0 -96 -21.5t-73 -57t-46.5 -80.5t-16.5 -92q0 -73 38 -107.5t106 -34.5z" />
+<glyph horiz-adv-x="0" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/hack-regular-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/hack-regular-webfont.svg
new file mode 100755
index 0000000..0c1d1dd
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/hack-regular-webfont.svg
@@ -0,0 +1,1570 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackregular" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M481 1053v445h265v-445l-67 -567h-121zM616 -60q-70 0 -116 48q-46 47 -46 125q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48z" />
+<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
+<glyph unicode="#" d="M260 414h-258v153h297l84 334h-266v154h303l104 415h160l-104 -415h245l105 415h160l-105 -415h244v-154h-281l-84 -334h250v-153h-289l-104 -414h-160l105 414h-246l-105 -414h-159zM705 567l83 334h-245l-84 -334h246z" />
+<glyph unicode="$" d="M552 0q-12 2 -62 9.5t-101 18.5q-50 11 -98 26.5t-101 37.5v180q54 -33 102 -55.5t100 -39.5q102 -34 190 -35v458q-90 16 -164.5 45.5t-126.5 76.5q-51 46 -76 105.5t-25 136.5q0 156 106 250t256 107v235h180v-235q1 -2 42.5 -7.5t78.5 -12.5q41 -8 82 -18t83 -23v-173 q-44 23 -90 41t-75 26q-34 10 -76.5 17.5t-74.5 9.5v-431q197 -32 304 -128q108 -98 108 -249q0 -76 -28 -140.5t-88 -118.5q-116 -103 -266 -112v-303h-180v301zM582 1183q-94 -5 -152 -60q-59 -56 -59 -149q0 -46 14 -79t41 -58q55 -50 156 -67v413zM702 146q101 3 162 61 q62 59 62 156q0 46 -13.5 83.5t-42.5 63.5q-55 50 -168 70v-434z" />
+<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5t100 66.5 t126 24.5q65 0 122 -24t103 -70q26 -26 43 -53t28 -52q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
+<glyph unicode="&#x26;" d="M552 -30q-107 0 -197.5 36.5t-156.5 99.5q-64 61 -103 145.5t-39 187.5q0 67 17.5 133.5t52.5 125.5q68 116 208 217q-51 73 -74 141q-24 69 -24 141q0 79 26 136.5t74 99.5q99 87 272 87q65 0 131 -12q29 -5 63 -14t72 -21v-183q-29 20 -61 35t-61 23q-62 18 -128 18 q-101 0 -156 -45q-56 -45 -56 -124q0 -58 29 -122q14 -30 39 -71t67 -97l416 -559q38 49 58 124q10 38 14.5 82.5t4.5 92.5q0 20 -0.5 45.5t-2.5 60.5l-1 7h164v-39q0 -162 -37 -282q-18 -59 -46 -112t-66 -98l170 -229h-213l-78 109q-40 -34 -83 -60t-94 -44 q-42 -15 -93 -25t-108 -10zM585 125q25 0 46.5 3t44.5 9q49 13 90 35q24 13 45 27q11 7 16 10.5t7.5 6t4 3.5t5.5 4l-428 580q-93 -75 -137 -154q-46 -82 -46 -176q0 -72 24.5 -135t74.5 -113q47 -47 111.5 -73.5t141.5 -26.5z" />
+<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
+<glyph unicode="(" d="M595 -270q-78 124 -133 237.5t-92 226.5q-74 227 -74 449q0 221 74 449q38 115 93 228.5t132 233.5h160q-71 -121 -118.5 -231.5t-79.5 -222.5q-34 -118 -50 -230t-16 -227q0 -118 16.5 -229.5t49.5 -226.5t81 -226t117 -231h-160v0z" />
+<glyph unicode=")" d="M478 -270q132 231 199 459q31 107 48 222t17 232q0 112 -16.5 227.5t-48.5 227.5q-31 107 -80.5 222t-118.5 234h160q153 -237 225 -462q74 -228 74 -449q0 -223 -74 -451q-74 -227 -225 -462h-160v0z" />
+<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
+<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
+<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 110q0 33 11 62.5t35 50.5q20 17 50 28.5t66 11.5q85 0 132 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
+<glyph unicode="-" d="M206 683h821v-164h-821v164z" />
+<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="/" d="M889 1493h190l-786 -1683h-191z" />
+<glyph unicode="0" d="M616 -29q-240 0 -361 196q-122 197 -122 578q0 382 122 579q121 196 361 196q118 0 209 -48t153 -148q60 -96 91 -239.5t31 -339.5t-31 -339t-91 -239q-123 -196 -362 -196zM616 131q73 0 125.5 39t86.5 113q69 151 69 462q0 312 -69 462q-34 75 -86 114t-126 39 q-141 0 -210 -152q-35 -75 -52.5 -188.5t-17.5 -274.5q0 -312 70 -462q36 -78 88.5 -115t121.5 -37zM618 396q-15 0 -27.5 11.5t-22 31t-16.5 46t-13 55.5q-5 24 -9 53t-7 58.5t-5 55.5t-2 43q0 12 1 35t3.5 51t6 58.5t9.5 58.5q28 143 78 143q28 0 47.5 -38t33.5 -108 q5 -25 9 -54t7 -57.5t4.5 -54t1.5 -42.5q0 -10 -0.5 -31t-2.5 -48.5t-5.5 -58.5t-8.5 -62q-13 -74 -34.5 -110t-47.5 -36z" />
+<glyph unicode="1" d="M270 170h314v1141l-338 -76v184l336 74h202v-1323h310v-170h-824v170z" />
+<glyph unicode="2" d="M152 134q0 19 5.5 33.5t19.5 28.5q57 60 135 142.5t167 179.5q51 55 82 89t51 56t32.5 36.5t26.5 31.5q27 32 47.5 58.5t37 50t29 45.5t22.5 44q17 38 26 76t9 80q0 60 -18 109.5t-55 84.5q-74 71 -203 71q-90 0 -190 -33t-212 -100v204q52 25 103.5 43.5t99.5 30.5 q50 13 99 19t97 6q104 0 195 -28t159 -88q60 -53 96 -129.5t36 -172.5q0 -51 -11 -99.5t-33 -97.5q-11 -25 -25 -49t-31.5 -49t-39.5 -52.5t-49 -59.5q-29 -34 -69 -79t-93 -102q-38 -41 -70 -73.5t-68.5 -69t-83 -83.5t-113.5 -118h696v-170h-907v134z" />
+<glyph unicode="3" d="M566 -29q-48 0 -100.5 4.5t-106.5 14.5q-46 8 -101 22t-109 33v204q51 -26 100 -47t101 -35q50 -13 98.5 -19.5t98.5 -6.5q166 0 255 75q45 38 67 92t22 121q0 134 -88 210q-43 37 -104 56.5t-138 19.5h-154v166h154q140 0 218 61q77 60 77 173q0 54 -18 98.5t-54 75.5 q-71 61 -210 61q-41 0 -87 -5t-94 -15q-97 -20 -199 -60v186q121 31 216 48q92 16 169 16q105 0 193.5 -27t154.5 -82q62 -52 95.5 -125t33.5 -164q0 -65 -17.5 -116t-50.5 -91q-68 -81 -200 -116q147 -39 225 -138q41 -52 59.5 -115t18.5 -135q0 -100 -34 -181.5 t-103 -140.5q-68 -58 -164.5 -88t-223.5 -30z" />
+<glyph unicode="4" d="M735 356h-633v191l600 946h234v-973h199v-164h-199v-356h-201v356zM735 520v789l-471 -789h471z" />
+<glyph unicode="5" d="M525 -29q-45 0 -100.5 4t-104.5 12q-51 8 -94 20t-83 28v205q93 -50 185 -74q94 -25 185 -25q174 0 263 88q90 88 90 248q0 87 -25 149t-68 103q-42 40 -108 64t-157 24q-37 0 -76.5 -4.5t-77.5 -13.5q-37 -9 -76 -24t-71 -32v750h756v-170h-572v-367q43 16 87 24 q41 7 88 7q121 0 213 -37t155 -100q68 -69 101.5 -162.5t33.5 -206.5q0 -118 -36 -213t-105 -162q-69 -66 -168.5 -100.5t-234.5 -34.5z" />
+<glyph unicode="6" d="M633 -29q-137 0 -228 48.5t-150 139.5q-63 98 -92.5 240t-29.5 325q0 206 36.5 353t108.5 245t177.5 148t242.5 50q41 0 79.5 -4t70.5 -11q40 -8 75.5 -20t67.5 -25v-186q-30 18 -65 33t-69 24q-35 10 -73 14.5t-73 4.5q-195 0 -293 -144q-99 -146 -99 -426 q48 100 133 154q45 28 94 40.5t109 12.5q100 0 183.5 -33t143.5 -99t89 -161t29 -213q0 -122 -30.5 -216.5t-90.5 -160.5t-146.5 -99.5t-199.5 -33.5zM633 129q65 0 115.5 22t84.5 67q68 89 68 261q0 173 -68 262q-35 46 -86 67t-113 21q-70 0 -121 -24.5t-85 -67.5 q-35 -44 -54.5 -108.5t-19.5 -149.5t19.5 -149.5t54.5 -108.5q34 -43 85 -67.5t120 -24.5z" />
+<glyph unicode="7" d="M854 1323h-715v170h940v-86l-534 -1407h-211z" />
+<glyph unicode="8" d="M615 -29q-116 0 -204.5 29.5t-150.5 83.5t-95.5 132.5t-33.5 183.5q0 159 80 260q79 100 229 133q-61 15 -113 46t-88 76q-38 47 -55.5 103t-17.5 119q0 85 30 155.5t91 123.5q59 51 140.5 77.5t188.5 26.5t189 -26.5t141 -77.5q60 -51 90.5 -121.5t30.5 -158.5 q0 -68 -18.5 -122t-53.5 -98t-85.5 -75t-116.5 -48q151 -33 230 -133t79 -258q0 -105 -33.5 -184.5t-95.5 -133.5q-63 -55 -153 -84t-205 -29zM616 868q121 0 186 63q64 63 64 183q0 121 -63 186q-64 64 -187 64q-121 0 -185 -64t-64 -186q0 -120 64 -183t185 -63zM619 129 q66 0 118 19t89 57t55 91.5t18 121.5q0 74 -19.5 127t-54.5 88q-75 76 -209 76q-135 0 -208 -75q-35 -36 -54.5 -89.5t-19.5 -123.5q0 -68 18.5 -122.5t55.5 -92.5q38 -39 91.5 -58t119.5 -19z" />
+<glyph unicode="9" d="M528 -29q-37 0 -75.5 3.5t-73.5 11.5q-32 7 -70 19t-73 26v186q32 -19 66.5 -33t67.5 -23q72 -20 147 -20q193 0 292 145q98 145 98 425q-23 -51 -58 -90t-74 -64q-83 -53 -206 -53q-100 0 -182 33.5t-141 99.5q-119 134 -119 373q0 118 29.5 214.5t92.5 164.5 q60 66 147 98.5t198 32.5q137 0 228 -48.5t150 -139.5q64 -100 93 -243t29 -323q0 -198 -34.5 -347t-109.5 -250q-74 -100 -181 -149t-241 -49zM593 662q70 0 121 24.5t85 67.5q35 44 54 108.5t19 149.5t-19 149.5t-54 108.5q-34 43 -85 67.5t-121 24.5q-62 0 -113 -21 t-86 -67q-68 -89 -68 -262t68 -262q34 -45 84.5 -66.5t114.5 -21.5z" />
+<glyph unicode=":" d="M620 776q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47zM620 60q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode=";" d="M610 703q-72 0 -120 50q-50 48 -50 128q0 78 50 128q48 49 120 49q73 0 121 -49q49 -49 49 -128q0 -80 -49 -128q-48 -50 -121 -50zM394 -361q256 114 265 351q-13 -3 -23 -4t-19 -1q-33 0 -63 10.5t-53 30.5q-46 43 -46 116q0 35 11.5 65.5t36.5 52.5q21 19 52.5 30.5 t69.5 11.5q89 0 139 -71q48 -71 48 -197q0 -180 -97 -310t-273 -194z" />
+<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
+<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
+<glyph unicode="?" d="M494 583q0 78 30 146q17 36 44.5 72t70.5 79l90 89q29 29 51.5 55.5t33.5 47.5q24 43 24 94q0 47 -18 82.5t-47 60.5q-33 28 -76.5 41.5t-96.5 13.5q-82 0 -169 -34q-45 -17 -91.5 -43t-95.5 -60v188q48 29 96.5 50.5t93.5 34.5q46 14 94.5 21t100.5 7q100 0 175.5 -25.5 t126.5 -70.5q54 -48 81.5 -113.5t27.5 -140.5q0 -80 -34 -145q-36 -67 -127 -157l-88 -86q-70 -68 -88 -108q-19 -40 -19 -83v-127h-190v111zM593 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31 q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
+<glyph unicode="@" d="M796 -319q-164 0 -308.5 57t-251.5 175q-101 112 -155 271t-54 363q0 188 46.5 345t140.5 272q96 118 224 174.5t271 56.5q114 0 199.5 -34t145.5 -98t92 -155.5t32 -202.5v-770h-144v111q-37 -62 -102 -97q-65 -34 -147 -34q-80 0 -148.5 31t-119.5 89q-48 54 -76.5 133 t-28.5 178q0 91 26 169t79 139q55 63 123.5 92t141.5 29q42 0 78.5 -9t70.5 -26q67 -35 103 -96v63q0 78 -22.5 142.5t-64.5 109.5q-42 46 -103.5 70t-141.5 24q-112 0 -209.5 -47.5t-170.5 -143.5q-71 -93 -108.5 -222.5t-37.5 -290.5q0 -170 42 -303.5t122 -227.5 q78 -93 189.5 -143.5t248.5 -50.5q29 0 56 2.5t54 7.5t54.5 12.5t56.5 18.5l48 -135q-34 -14 -64 -22.5t-60 -14.5q-31 -6 -60 -9t-67 -3zM803 260q52 0 96 20t76 58t47.5 91t15.5 116t-16 116.5t-48 91.5q-31 37 -75 56.5t-97 19.5q-105 0 -170 -77q-32 -38 -48.5 -89.5 t-16.5 -116.5q0 -66 16.5 -118.5t48.5 -90.5q65 -77 171 -77z" />
+<glyph unicode="A" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="B" d="M166 1493h442q228 0 353 -99q124 -99 124 -281q0 -70 -17 -123.5t-48 -91.5q-32 -38 -81 -63.5t-116 -35.5q148 -23 231 -125q41 -51 62 -117t21 -148q0 -202 -133 -305q-134 -104 -396 -104h-442v1493zM604 877q76 0 127.5 14t84.5 43q65 56 65 177q0 60 -16 100.5 t-48 65.5q-65 50 -213 50h-235v-450h235zM608 166q175 0 251 62q75 61 75 202q0 146 -79 215q-80 68 -247 68h-239v-547h239z" />
+<glyph unicode="C" d="M742 -29q-140 0 -252.5 50t-192.5 153q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247t192 153.5t252 50.5q48 0 92.5 -5.5t80.5 -14.5t79 -25.5t79 -36.5v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459 q0 -306 98 -458t295 -152q45 0 87.5 8t85.5 24q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
+<glyph unicode="D" d="M137 1493h303q342 0 504 -182t162 -566q0 -382 -162 -563q-162 -182 -504 -182h-303v1493zM436 166q255 0 356 126q51 63 76 175t25 280q0 165 -24.5 278.5t-75.5 176.5q-51 64 -141.5 94.5t-215.5 30.5h-96v-1161h96z" />
+<glyph unicode="E" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="F" d="M233 1493h879v-170h-676v-460h613v-170h-613v-693h-203v1493z" />
+<glyph unicode="G" d="M700 -29q-143 0 -253.5 52t-187.5 152q-78 102 -117.5 245t-39.5 324q0 186 41 329.5t119 243.5t189.5 151.5t251.5 51.5q100 0 184 -26q44 -14 85.5 -34.5t80.5 -46.5v-207q-43 41 -85.5 69t-80.5 45q-44 19 -90 27.5t-91 8.5q-97 0 -170 -37t-124 -115 q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -158 24 -270.5t72 -187.5q94 -150 294 -150q32 0 61.5 4t55.5 12q24 8 47 19.5t44 28.5v401h-217v166h410v-643q-81 -75 -182 -113q-102 -39 -222 -39z" />
+<glyph unicode="H" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
+<glyph unicode="I" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="J" d="M502 -29q-103 0 -195 22q-97 23 -198 68v236q91 -81 188 -121q99 -41 202 -41q67 0 118.5 18t80.5 57q56 74 56 277v836h-381v170h583v-1006q0 -144 -25.5 -240.5t-80.5 -157.5t-140.5 -89.5t-207.5 -28.5z" />
+<glyph unicode="K" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
+<glyph unicode="L" d="M215 1493h203v-1323h721v-170h-924v1493z" />
+<glyph unicode="M" d="M86 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
+<glyph unicode="N" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
+<glyph unicode="O" d="M616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141 q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="P" d="M172 1493h436q249 0 379 -113q67 -59 98 -143.5t31 -190.5q0 -220 -128 -333q-63 -56 -158 -84.5t-222 -28.5h-234v-600h-202v1493zM608 766q75 0 129 20t90 54q78 73 78 207q0 133 -78 207q-77 73 -219 73h-234v-561h234z" />
+<glyph unicode="Q" d="M655 -27h-8.5t-11.5 -1t-11.5 -1h-6.5q-125 0 -218.5 46t-157.5 146t-94 245t-30 337q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -293 -68 -473q-33 -88 -85 -152t-123 -100l285 -290h-236zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="R" d="M143 1493h416q246 0 377 -111q66 -56 98.5 -136t32.5 -181q0 -79 -20 -138.5t-60 -106.5q-80 -94 -227 -115q40 -10 74 -29.5t59 -45.5q28 -29 60.5 -81.5t76.5 -140.5l203 -408h-217l-178 377q-39 83 -73.5 134t-64.5 74q-31 24 -72.5 35t-88.5 11h-193v-631h-203v1493z M567 797q145 0 216 65q35 32 53 82t18 115t-18.5 115t-56.5 85q-36 32 -90.5 50t-129.5 18h-213v-530h221z" />
+<glyph unicode="S" d="M584 -29q-53 0 -107 5.5t-106 16.5t-107 29t-106 39v215q58 -37 112 -63.5t106 -43.5q102 -34 205 -34q75 0 135.5 17t103.5 51q44 35 64.5 84t20.5 113q0 56 -14.5 96t-43.5 69q-32 33 -80.5 54t-123.5 38l-108 25q-101 23 -176.5 57t-125.5 85q-94 94 -94 255 q0 102 35 183t100 139q64 57 153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-48 31 -93.5 52.5t-90.5 36.5q-93 30 -186 30q-68 0 -127 -16t-101 -50t-62 -81t-20 -104q0 -51 14.5 -85.5t40.5 -59.5q31 -29 79.5 -50t123.5 -38l106 -24q106 -24 181 -62.5 t124 -91.5q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-66 -56 -162.5 -84t-220.5 -28z" />
+<glyph unicode="T" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
+<glyph unicode="U" d="M616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154 v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="V" d="M57 1493h209l350 -1323l351 1323h209l-437 -1493h-245z" />
+<glyph unicode="W" d="M0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
+<glyph unicode="X" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
+<glyph unicode="Y" d="M514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="Z" d="M110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
+<glyph unicode="[" d="M423 1636h424v-143h-240v-1620h240v-143h-424v1906z" />
+<glyph unicode="\" d="M102 1493h191l786 -1683h-190z" />
+<glyph unicode="]" d="M386 -127h240v1619h-240v143h424v-1905h-424v143z" />
+<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
+<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
+<glyph unicode="`" d="M604 1262l-325 376h198l281 -376h-154z" />
+<glyph unicode="a" d="M513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5 q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106 q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="b" d="M676 -29q-51 0 -93 10.5t-83 33.5q-77 44 -123 126l-18 -141h-166v1556h184v-579q43 82 122 126q77 44 181 44q96 0 176.5 -38t139.5 -116q58 -78 87 -187t29 -245q0 -274 -116 -432q-57 -78 -137 -118t-183 -40zM650 127q133 0 200 109q68 110 68 323t-68 323 q-67 109 -201 109t-203 -109q-69 -110 -69 -323t69 -322q69 -110 204 -110z" />
+<glyph unicode="c" d="M712 -29q-125 0 -227.5 39.5t-174.5 116.5q-73 78 -109.5 186.5t-36.5 245.5q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178 t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
+<glyph unicode="d" d="M559 -29q-106 0 -186 42t-134 116q-58 79 -87 188.5t-29 244.5q0 133 28.5 242.5t87.5 187.5t141 116.5t179 38.5q102 0 178 -43q77 -44 121 -127v579h184v-1556h-166l-18 141q-23 -40 -52 -71.5t-70 -54.5q-76 -44 -177 -44zM585 127q135 0 204 110q69 109 69 322 t-69 323q-32 51 -82 80t-121 29q-134 0 -201 -109q-68 -110 -68 -323t68 -323q35 -57 86 -83t114 -26z" />
+<glyph unicode="e" d="M677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183 q-53 -22 -103 -38t-99 -27q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="f" d="M466 977h-299v143h299v78q0 185 85 271q84 87 263 87h221v-153h-209q-54 0 -86.5 -10.5t-50.5 -29.5q-39 -41 -39 -144v-99h385v-143h-385v-977h-184v977z" />
+<glyph unicode="g" d="M601 -440q-39 0 -78 3.5t-81 10.5q-41 7 -81.5 17t-84.5 24v182q49 -23 94.5 -40t83.5 -28q78 -22 151 -22q74 0 126 20t87 62q68 80 68 256v133q-43 -93 -120 -140q-76 -46 -184 -46q-197 0 -314 157t-117 420t117 421q59 79 136.5 118t178.5 39q52 0 97.5 -10.5 t83.5 -32.5q76 -44 122 -133l18 145h166v-1044q0 -251 -119 -382q-118 -130 -350 -130zM622 145q130 0 197 109t67 315q0 208 -67 315q-35 57 -85.5 82t-112.5 25q-134 0 -205 -107t-71 -316q0 -205 72 -314t205 -109z" />
+<glyph unicode="h" d="M195 1556h184v-604q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1556z" />
+<glyph unicode="i" d="M523 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="j" d="M652 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM238 -270h234q90 0 135 62q45 63 45 188v997h-317v143h501v-1140q0 -95 -22 -171t-67 -130t-109.5 -79.5t-145.5 -25.5h-254v156z" />
+<glyph unicode="k" d="M226 1556h190v-901l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1556z" />
+<glyph unicode="l" d="M821 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v1014h-295v144h479v-1158q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
+<glyph unicode="m" d="M109 1120h151l16 -96q33 60 83 92q49 31 113 31q74 0 126 -35q49 -34 78 -106q35 73 87 107t126 34q69 0 117 -26.5t74 -77.5q55 -104 55 -394v-649h-168v641q0 64 -1.5 112t-5 83.5t-8.5 60t-12 39.5q-11 26 -34 41.5t-65 15.5q-38 0 -64 -14.5t-41 -46.5 q-17 -35 -24 -103.5t-7 -187.5v-641h-168v641q0 73 -2 123.5t-6 84.5t-9.5 54.5t-11.5 33.5q-13 26 -37.5 41t-63.5 15q-42 0 -65.5 -16.5t-35.5 -43.5q-7 -15 -12.5 -38t-9.5 -57.5t-6 -82.5t-2 -114v-641h-167v1120z" />
+<glyph unicode="n" d="M195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
+<glyph unicode="o" d="M616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323 q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="p" d="M190 1120h167l18 -143q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1546zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
+<glyph unicode="q" d="M870 139q-22 -40 -51 -72t-70 -55q-77 -45 -180 -45q-95 0 -175.5 38t-140.5 118q-53 71 -84.5 176t-31.5 252q0 134 28.5 245t87.5 191q58 78 138 117t179 39q102 0 178 -43q38 -22 68.5 -53.5t53.5 -73.5l18 143h167v-1546h-185v569zM599 123q66 0 117 27t86 83 q68 110 68 322q0 213 -68 323q-35 56 -85.5 82.5t-116.5 26.5q-133 0 -200 -109q-68 -110 -68 -323t68 -323q67 -109 199 -109z" />
+<glyph unicode="r" d="M302 1120h167l18 -219q47 119 142 183q94 63 225 63q68 0 128 -17q29 -8 58 -21.5t55 -31.5v-188q-57 46 -120 67q-62 21 -135 21q-171 0 -262 -108q-91 -107 -91 -312v-557h-185v1120z" />
+<glyph unicode="s" d="M590 -29q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105 q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5l74 -14q72 -14 123 -40t85 -64q70 -77 70 -204 q0 -86 -30.5 -149.5t-87.5 -108.5q-61 -48 -142.5 -71t-179.5 -23z" />
+<glyph unicode="t" d="M807 -4q-206 0 -292 83q-85 82 -85 286v612h-299v143h299v293l184 80v-373h418v-143h-418v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-225v0z" />
+<glyph unicode="u" d="M534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="v" d="M100 1120h191l325 -940l326 940h191l-398 -1120h-237z" />
+<glyph unicode="w" d="M0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
+<glyph unicode="x" d="M516 584l-401 536h204l297 -405l295 405h207l-401 -536l440 -584h-213l-328 449l-327 -449h-213z" />
+<glyph unicode="y" d="M184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5 q-69 -39 -161 -39h-148v154z" />
+<glyph unicode="z" d="M203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
+<glyph unicode="{" d="M908 -253q-248 0 -333 74q-85 73 -85 295v239q0 150 -53 209q-54 58 -194 58h-116v143h116q141 0 194 57q53 58 53 207v240q0 222 85 295q83 73 333 73h64v-143h-70q-140 0 -182 -43q-43 -43 -43 -186v-248q0 -158 -45 -228q-22 -34 -61 -58.5t-95 -37.5q111 -27 156 -98 t45 -227v-248q0 -143 43 -186q42 -43 182 -43h70v-144h-64v0z" />
+<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
+<glyph unicode="}" d="M261 -118h68q140 0 184 44q43 43 43 185v248q0 156 45 227t156 98q-110 26 -155 96q-22 34 -34 88.5t-12 139.5v248q0 142 -43 185q-44 44 -184 44h-68v143h62q250 0 333 -73q84 -74 84 -295v-240q0 -78 21 -127.5t63 -79.5q40 -29 97.5 -43t126.5 -14h64v-143h-64 q-71 0 -128 -14.5t-96 -43.5q-42 -31 -63 -81t-21 -128v-239q0 -222 -84 -295q-85 -74 -333 -74h-62v144z" />
+<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M626 1498q69 0 116 -48q23 -23 34.5 -53t11.5 -72q0 -78 -46 -124q-47 -47 -116 -47t-116 47q-46 47 -46 124q0 78 46 125q46 48 116 48zM689 952l67 -567v-445h-265v445l77 567h121z" />
+<glyph unicode="&#xa2;" d="M698 -27q-112 11 -200 54.5t-154 124.5q-63 77 -98.5 181.5t-35.5 224.5q0 122 36.5 227.5t98.5 181.5q61 75 148 121t205 57v287h103v-287q29 -2 61 -7t61 -13t65.5 -20t72.5 -28v-172q-30 18 -65 34.5t-67 27.5q-35 12 -66 18t-62 8v-870q32 2 64 9.5t65 18.5 q31 11 65 26.5t66 35.5v-172q-46 -20 -76.5 -30t-61.5 -18q-65 -17 -122 -20v-286h-103v286zM698 991q-133 -12 -212 -130q-80 -119 -80 -302t80 -301q41 -60 93.5 -92t118.5 -39v864z" />
+<glyph unicode="&#xa3;" d="M139 170h236v465h-199v143h199v238q0 254 110 379q55 63 137.5 94t187.5 31q36 0 72.5 -3.5t68.5 -10.5q24 -5 62.5 -16.5t78.5 -27.5v-184q-34 24 -66.5 40.5t-58.5 25.5q-63 22 -130 22q-135 0 -198 -89q-64 -89 -64 -282v-217h371v-143h-371v-465h537v-170h-973v170z " />
+<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
+<glyph unicode="&#xa5;" d="M514 524h-399v111h399v35l-90 151h-309v111h243l-321 561h215l364 -659l363 659h217l-330 -561h252v-111h-315l-86 -151v-35h401v-111h-401v-524h-203v524z" />
+<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
+<glyph unicode="&#xa7;" d="M595 -195q-39 0 -79 4t-72 10q-36 7 -78.5 18.5t-86.5 25.5v164q89 -40 161 -59t133 -19q101 0 157 42q28 21 42 50.5t14 61.5q0 30 -13 57.5t-40 55t-69 56.5t-99 62l-24 14q-100 58 -168 103t-110 94q-64 76 -64 179q0 89 47 162q46 71 137 120q-60 43 -89 100 q-30 57 -30 124q0 66 25.5 120t74.5 92q52 41 121 59.5t144 18.5q38 0 78.5 -4t72.5 -10q35 -7 75.5 -18.5t80.5 -25.5v-164q-84 40 -154 59t-131 19q-51 0 -87 -10.5t-61 -29.5q-27 -20 -40.5 -48.5t-13.5 -55.5q0 -49 47.5 -99.5t156.5 -112.5l41 -23q60 -33 104.5 -61 t77 -51.5t55.5 -44t39 -39.5q33 -38 49.5 -81.5t16.5 -97.5q0 -89 -45 -159q-46 -70 -139 -123q62 -53 90 -106q14 -26 21.5 -55.5t7.5 -67.5q0 -67 -25.5 -123.5t-76.5 -98.5q-102 -84 -274 -84zM750 410q62 46 92 90q30 45 30 92q0 41 -19.5 78t-51.5 66q-74 69 -316 200 q-32 -24 -54 -45.5t-38 -44.5q-14 -21 -22.5 -43t-8.5 -50q0 -39 18 -73.5t54 -68.5q19 -18 46 -38.5t64.5 -44.5t88 -53t117.5 -65z" />
+<glyph unicode="&#xa8;" d="M492 1552q30 0 30 -30v-142q0 -30 -30 -30h-143q-30 0 -30 30v142q0 30 30 30h143zM883 1552q30 0 30 -30v-142q0 -30 -30 -30h-142q-30 0 -30 30v142q0 30 30 30h142z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
+<glyph unicode="&#xaa;" d="M547 698q-126 0 -202 68q-75 67 -75 183q0 129 93 200q94 70 266 70h182v4q0 44 -14 78t-46 58q-35 26 -79 36t-89 10q-33 0 -62.5 -4.5t-58.5 -12.5q-62 -18 -130 -51v127q34 14 69.5 25t66.5 17q34 7 65.5 10.5t69.5 3.5q177 0 264 -86q44 -43 65.5 -109t21.5 -160 v-448h-129l-14 112q-50 -65 -114 -98q-33 -17 -69.5 -25t-80.5 -8zM576 817q54 0 96 18.5t74 53.5q65 71 65 186v29h-127q-145 0 -206 -34q-62 -35 -62 -112q0 -36 12 -60.5t32 -41.5q43 -39 116 -39zM293 592h668v-123h-668v123z" />
+<glyph unicode="&#xab;" d="M79 559v82l469 418v-191l-301 -268l301 -268v-191zM533 559v82l469 418v-191l-301 -268l301 -268v-191z" />
+<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
+<glyph unicode="&#xad;" d="M356 643h521v-164h-521v164z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
+<glyph unicode="&#xaf;" d="M915 1378h-598v148h598v-148z" />
+<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
+<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#xb2;" d="M322 1230l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5 l-211 -205h410v-114h-571v110z" />
+<glyph unicode="&#xb3;" d="M562 1109q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5z" />
+<glyph unicode="&#xb4;" d="M629 1262h-154l281 376h198z" />
+<glyph unicode="&#xb5;" d="M165 1120h184v-696q0 -78 16 -130t44 -87q60 -76 173 -76q62 0 110 21t80 64q64 85 64 251v653h185v-864q0 -59 16 -87q8 -14 20 -21t26 -7q12 0 27 5q13 4 42 18v-148q-19 -11 -37.5 -20t-34.5 -14q-36 -11 -68 -11q-62 0 -99 40q-38 40 -50 118q-47 -81 -112 -119 q-66 -39 -157 -39q-90 0 -154 38t-108 118v-555h-167v1548z" />
+<glyph unicode="&#xb6;" d="M557 649q-214 16 -333 128q-57 54 -87.5 125.5t-30.5 167.5q0 191 131 307t345 116h448v-1690h-141v1567h-191v-1567h-141v846z" />
+<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="&#xb8;" d="M700 0q55 -61 83 -115q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-23 43 -66 105h118v0z" />
+<glyph unicode="&#xb9;" d="M362 1230h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110z" />
+<glyph unicode="&#xba;" d="M616 698q-94 0 -160 31t-111 80q-47 51 -74 126t-27 173q0 92 25 167.5t76 132.5q47 52 114 82t158 30q90 0 157.5 -30t114.5 -83q100 -112 100 -299q0 -186 -100 -298q-47 -52 -114.5 -82t-158.5 -30zM616 815q49 0 90 19.5t70 58.5q27 36 42.5 90t15.5 127 q0 137 -57 215q-27 37 -66.5 57.5t-93.5 20.5q-103 0 -160 -77q-58 -79 -58 -218q0 -69 14.5 -123.5t43.5 -93.5q58 -76 159 -76zM276 592h676v-123h-676v123z" />
+<glyph unicode="&#xbb;" d="M231 332l301 268l-301 268v191l469 -418v-82l-469 -418v191zM685 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
+<glyph unicode="&#xbc;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
+<glyph unicode="&#xbd;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM523 -160l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5 t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5l-211 -205h410v-114h-571v110z" />
+<glyph unicode="&#xbe;" d="M335 809q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5zM27 612l1060 262l27 -108l-1063 -262z M839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
+<glyph unicode="&#xbf;" d="M656 1252q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM602 -27q-188 0 -298 95q-54 47 -82.5 112t-28.5 144q0 42 8.5 76.5t25.5 67.5t47.5 71t79.5 86 l88 86q30 29 52.5 55t33.5 51q19 41 19 105v5q1 11 1.5 21.5t0.5 20.5v123h190v-154q0 -99 -30 -166q-30 -68 -115 -151l-90 -89q-20 -20 -46 -48t-40 -55q-13 -24 -18 -50.5t-5 -46.5q0 -43 18 -79.5t47 -60.5q33 -28 77.5 -41.5t95.5 -13.5q42 0 83 9t86 26q91 35 187 102 v-188q-50 -30 -98 -51t-91 -34q-48 -14 -98.5 -21t-99.5 -7z" />
+<glyph unicode="&#xc0;" d="M358 1849h184l197 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc1;" d="M691 1856h186l-229 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc2;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc3;" d="M287 1587q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc4;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc5;" d="M465 1399q-30 17 -52.5 41t-37.5 52q-17 31 -25 64.5t-8 68.5q0 59 21.5 109.5t58.5 87.5t87 58t107 21q58 0 108.5 -21.5t87.5 -58.5q35 -35 57 -85t22 -111q0 -72 -32 -131q-31 -58 -91 -95l428 -1399h-209l-110 389h-523l-108 -389h-209zM616 1475q34 0 61 12t47 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM829 551l-213 760l-213 -760h426z" />
+<glyph unicode="&#xc6;" d="M410 1493h751v-170h-338v-442h307v-170h-307v-541h357v-170h-543v383h-352l-101 -383h-184zM637 551v772h-107l-202 -772h309z" />
+<glyph unicode="&#xc7;" d="M741 1356q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-22 -5 -45.5 -9.5t-47.5 -6.5q41 -50 61 -90q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57 q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-129 8 -230.5 59t-173.5 143q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52 q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8z" />
+<glyph unicode="&#xc8;" d="M395 1856h184l197 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xc9;" d="M690 1856h186l-229 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xca;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xcb;" d="M367 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM759 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xcc;" d="M372 1856h184l197 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xcd;" d="M691 1856h186l-229 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xce;" d="M521 1852h189l211 -266h-140l-166 178l-165 -178h-140zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xcf;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xd0;" d="M133 709h-125v149h125v635h303q342 0 504 -182t162 -565t-162 -564q-83 -93 -209.5 -137.5t-294.5 -44.5h-303v709zM436 166q69 0 124 8.5t98 24.5t75.5 39.5t57.5 54.5q52 65 77 175t25 280q0 87 -6.5 157t-19 125t-31.5 96.5t-44 73.5q-53 67 -139.5 97t-216.5 30h-96 v-469h264v-149h-264v-543h96z" />
+<glyph unicode="&#xd1;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
+<glyph unicode="&#xd2;" d="M382 1856h184l197 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd3;" d="M701 1856h186l-229 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd4;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd5;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469 q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd6;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46 t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
+<glyph unicode="&#xd8;" d="M8 0l178 252q-17 39 -28.5 87t-21.5 117q-9 63 -14 131.5t-5 152.5q0 203 30.5 347t93.5 241q64 99 157 145.5t217 46.5q60 0 109.5 -10.5t93.5 -30.5q85 -40 143 -121l139 201l100 -74l-168 -238q21 -41 36.5 -95t26.5 -115q10 -58 15.5 -132.5t5.5 -160.5 q0 -389 -123 -581q-60 -94 -153.5 -143t-227.5 -49q-57 0 -108 9.5t-99 31.5q-90 40 -151 121l-143 -203zM842 1190q-13 42 -34.5 73t-47.5 51q-29 22 -66 32t-79 10q-84 0 -136.5 -38t-84.5 -110q-17 -38 -29.5 -87t-20.5 -112.5t-12 -143.5t-4 -179v-39t0.5 -32t1 -29 t1.5 -30q1 -14 1.5 -32t5.5 -53zM617 135q82 0 135.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 163.5q0 52 -1.5 96.5t-3.5 78.5q-2 33 -5.5 60t-9.5 53l-514 -733q30 -78 96 -123q34 -23 71 -34t79 -11z" />
+<glyph unicode="&#xd9;" d="M377 1852h184l197 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xda;" d="M672 1856h186l-229 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xdb;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30 q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xdc;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95 q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71 q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xdd;" d="M672 1852h186l-229 -264h-154zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="&#xde;" d="M201 1493h202v-270h254q259 0 384 -105q124 -105 124 -324q0 -112 -31.5 -191.5t-92.5 -130.5q-125 -105 -384 -105h-254v-367h-202v1493zM637 532q157 0 237 66q78 66 78 197q0 63 -19 113.5t-59 83.5q-36 30 -95 47.5t-142 17.5h-234v-525h234z" />
+<glyph unicode="&#xdf;" d="M731 -29q-34 0 -70 3t-68 9q-23 5 -60 14t-74 23v164q75 -31 143 -46q66 -15 126 -15q55 0 97.5 12.5t73.5 35.5q35 26 49.5 60t14.5 79q0 32 -7.5 57.5t-26.5 51.5q-25 35 -63.5 64t-87.5 58l-67 39q-47 27 -81 59t-56 64q-23 34 -34.5 68.5t-11.5 79.5q0 60 20 114 t61 97q39 42 97.5 72t139.5 48q-2 107 -62 164q-62 57 -174 57q-121 0 -178 -65q-57 -66 -57 -205v-1133h-187v1137q0 212 105 316q53 52 133.5 77.5t183.5 25.5q209 0 313 -110q106 -112 107 -327q-154 -13 -239 -76q-84 -62 -84 -160q0 -28 7 -48.5t21 -40.5 q17 -24 40 -42.5t54 -38.5l58 -37q79 -50 128.5 -90.5t78.5 -84.5q28 -42 41.5 -91.5t13.5 -103.5q0 -74 -26 -137t-86 -110q-55 -43 -133 -65.5t-173 -22.5z" />
+<glyph unicode="&#xe0;" d="M282 1673h198l281 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe1;" d="M759 1673h198l-325 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe2;" d="M546 1673h147l246 -376h-139l-181 245l-180 -245h-139zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe3;" d="M290 1339q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe4;" d="M352 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM744 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29 q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56 q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5 t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe5;" d="M619 1249q-114 0 -194 80t-80 195t80 195q79 79 194 79q117 0 196 -79t79 -195t-79 -195q-80 -80 -196 -80zM619 1372q64 0 108 44t44 108q0 63 -44 107t-109 44q-63 0 -106 -43q-44 -44 -44 -108t44 -108t107 -44zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5 q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102 t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56 q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe6;" d="M358 -29q-154 0 -235 86q-43 45 -62.5 107.5t-19.5 139.5q0 85 23.5 151t76.5 113q101 89 291 89h117v88q0 120 -49 184t-143 64q-29 0 -61.5 -5.5t-61.5 -15.5q-30 -10 -63.5 -25.5t-64.5 -35.5v168q38 17 74 30.5t69 21.5q64 16 127 16q91 0 152 -31q61 -32 99 -96 q33 61 99 94t156 33q85 0 147.5 -29t98.5 -89q72 -119 72 -425v-90h-491q-1 -8 -1 -16v-16q0 -3 -0.5 -9.5t-0.5 -29.5q0 -98 13.5 -155.5t37.5 -91.5q27 -38 68 -54.5t97 -16.5q75 0 141 26q65 26 114 76v-172q-29 -21 -60.5 -37t-60.5 -26t-65 -15.5t-75 -5.5 q-51 0 -97.5 10.5t-83.5 30.5q-75 41 -107 119q-39 -80 -105 -120q-34 -20 -74.5 -30t-91.5 -10zM1036 657v52q0 78 -10 132t-28 86q-17 30 -48 48t-78 18q-87 0 -125 -68t-38 -225v-43h327zM375 125q94 0 131 67q17 32 27 90t10 160v72h-49q-169 0 -229 -45 q-30 -23 -45 -62.5t-15 -93.5q0 -91 45 -139q45 -49 125 -49z" />
+<glyph unicode="&#xe7;" d="M718 991q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-20 -5 -40.5 -9.5t-43.5 -6.5q40 -48 62 -91q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74 t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-112 6 -204.5 45t-159.5 110q-72 77 -109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5 t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29z" />
+<glyph unicode="&#xe8;" d="M294 1673h198l281 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xe9;" d="M771 1673h198l-325 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xea;" d="M558 1673h147l246 -376h-139l-181 245l-180 -245h-139zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283 q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xeb;" d="M364 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM756 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5 q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5 q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xec;" d="M218 1647h198l281 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xed;" d="M794 1647h198l-325 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xee;" d="M514 1648h147l246 -376h-139l-181 245l-180 -245h-139zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xef;" d="M328 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM720 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187 q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xf0;" d="M617 -29q-116 0 -204.5 37.5t-150.5 110.5q-63 75 -94 179t-31 235q0 132 31.5 237t93.5 179t152.5 110.5t216.5 36.5q18 0 23.5 -0.5t8.5 -0.5q11 -1 14.5 -1t5 -0.5t3.5 -0.5t10 -1l-10.5 14t-17.5 23t-20.5 27t-20.5 26q-18 23 -36.5 44.5t-37.5 43.5l-279 -92l-30 98 l237 80l-182 200h219l127 -145l289 94l33 -98l-250 -80q196 -212 288 -402q46 -96 68.5 -192.5t22.5 -204.5q0 -128 -31 -231t-94 -178q-64 -76 -153 -112t-201 -36zM616 127q138 0 211 106q37 54 55.5 129t18.5 169q0 60 -7.5 112.5t-21.5 103.5t-34 93.5t-45 77.5 q-17 7 -39.5 12.5t-36.5 7.5q-41 6 -79 6q-73 0 -131.5 -25t-97.5 -79t-58 -131.5t-19 -174.5q0 -194 74 -301q73 -106 210 -106z" />
+<glyph unicode="&#xf1;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
+<glyph unicode="&#xf2;" d="M279 1673h198l281 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf3;" d="M756 1673h198l-325 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf4;" d="M543 1673h147l246 -376h-139l-181 245l-180 -245h-139zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112 t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf5;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38z M616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf6;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436 q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
+<glyph unicode="&#xf8;" d="M47 -20l170 200q-23 42 -36 82t-23 87q-11 51 -16 101t-5 109q0 285 123 437q123 151 355 151q49 0 95.5 -6.5t84.5 -20.5q37 -13 72.5 -34t66.5 -50l147 176l93 -77l-164 -195q41 -65 64 -162q11 -49 16.5 -103.5t5.5 -113.5q0 -143 -30.5 -254t-92.5 -186 q-123 -150 -358 -150q-55 0 -98.5 8t-81.5 22q-41 15 -73.5 36t-62.5 53l-160 -186zM817 897q-35 49 -84 71q-51 23 -117 23q-139 0 -213 -107q-36 -52 -55.5 -127t-19.5 -178q0 -28 1.5 -54.5t5.5 -55.5q7 -59 21 -129zM615 127q142 0 214 110q36 55 54 135.5t18 183.5 q0 30 -1.5 56.5t-4.5 54.5q-2 21 -6 49t-12 64l-463 -559q22 -28 42.5 -43.5t44.5 -26.5q25 -11 52 -17.5t62 -6.5z" />
+<glyph unicode="&#xf9;" d="M279 1644h198l281 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfa;" d="M756 1644h198l-325 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfb;" d="M543 1644h147l246 -376h-139l-181 245l-180 -245h-139zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfc;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5 t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfd;" d="M756 1646h198l-325 -376h-154zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-33 -84 -52.5 -135t-31.5 -82.5t-19 -50.5t-14 -40q-25 -70 -45 -121.5t-36.5 -89t-30 -63.5t-23.5 -45q-31 -54 -57 -79.5 t-55 -41.5q-35 -19 -78 -28.5t-84 -9.5h-148v154z" />
+<glyph unicode="&#xfe;" d="M190 1567h185v-590q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1993zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
+<glyph unicode="&#xff;" d="M349 1320q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1320q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195 l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5q-69 -39 -161 -39h-148v154z" />
+<glyph unicode="&#x100;" d="M317 1800h598v-148h-598v148zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x101;" d="M320 1496h598v-148h-598v148zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#x102;" d="M616 1589q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x103;" d="M619 1296q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27 q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5 q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#x104;" d="M1124 -272q31 0 54.5 7.5t54.5 22.5v-133q-22 -6 -38.5 -9.5t-30.5 -6t-27.5 -3.5t-30.5 -1q-113 0 -172 42.5t-59 130.5q0 25 5.5 49.5t18 51t33 56.5t51.5 65h4l-110 389h-523l-108 -389h-209l457 1493h245l457 -1493h-94q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65 t82 -23zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x105;" d="M1078 -269q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49t17.5 50.5t32.5 55.5t50.5 64q-5 13 -12 36t-14 50q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5q-174 0 -275 97 q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63 q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-67q-47 -64 -66.5 -106t-19.5 -75q0 -42 28 -65t82 -23zM877 563h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15 q151 0 238 106q88 108 88 291v41z" />
+<glyph unicode="&#x106;" d="M762 1852h186l-229 -264h-154zM742 -29q-143 0 -255 51.5t-190 151.5q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8q-97 0 -170.5 -38 t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
+<glyph unicode="&#x107;" d="M815 1673h198l-325 -376h-154zM712 -29q-125 0 -227.5 39.5t-174.5 116.5t-109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29q-174 0 -267 -112q-93 -113 -93 -319 q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
+<glyph unicode="&#x108;" d="M582 1852h189l211 -266h-140l-166 178l-165 -178h-140zM297 174q-158 206 -158 570q0 368 159 572q79 100 191 152t253 52q92 0 172 -20t159 -62v-207q-73 61 -159 93t-173 32q-391 0 -391 -611q0 -305 98.5 -457.5t293.5 -152.5q182 0 331 125v-207q-80 -42 -159.5 -62 t-171.5 -20q-143 0 -255 51.5t-190 151.5z" />
+<glyph unicode="&#x109;" d="M578 1673h147l246 -376h-139l-181 245l-180 -245h-139zM310 127q-146 158 -146 432q0 183 66.5 315.5t190 202.5t292.5 70q89 0 161.5 -20t155.5 -66v-193q-75 66 -148 94.5t-164 28.5q-174 0 -267 -112t-93 -319q0 -209 94 -321t269 -112q95 0 168 30q41 15 73.5 36.5 t67.5 54.5v-191q-68 -41 -149 -63.5t-169 -22.5q-126 0 -228 39.5t-174 116.5z" />
+<glyph unicode="&#x10a;" d="M618 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM744 -29q-144 0 -256.5 52t-190 151t-118 242.5t-40.5 326.5q0 184 40.5 328t118.5 244t190.5 152.5t256.5 52.5q89 0 169.5 -20t158.5 -62v-207q-73 60 -156.5 92.5t-176.5 32.5 q-194 0 -292 -152t-98 -459q0 -610 390 -610q91 0 175.5 32t157.5 93v-207q-78 -42 -158.5 -62t-170.5 -20z" />
+<glyph unicode="&#x10b;" d="M587 1348q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM717 -29q-130 0 -232.5 40t-174 116t-109 185t-37.5 247t37.5 247t109 185t174 116t232.5 40q81 0 158 -20.5t155 -65.5v-193q-73 65 -146.5 94t-166.5 29q-174 0 -266.5 -111.5 t-92.5 -320.5q0 -208 93 -320t266 -112q97 0 172 29t141 92v-191q-149 -86 -313 -86z" />
+<glyph unicode="&#x10c;" d="M401 1852h140l165 -178l166 178h140l-211 -266h-189zM742 -29q-143 0 -255 51.5t-190 151.5q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8 q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
+<glyph unicode="&#x10d;" d="M356 1673h139l180 -245l181 245h139l-246 -376h-147zM712 -29q-125 0 -227.5 39.5t-174.5 116.5t-109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29 q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
+<glyph unicode="&#x10e;" d="M233 1852h140l165 -178l166 178h140l-211 -266h-189zM137 1493h303q171 0 296.5 -45t207.5 -137t122 -232.5t40 -331.5q0 -192 -40 -332.5t-122 -232.5t-207.5 -137t-296.5 -45h-303v1493zM436 166q128 0 215.5 29t141 96.5t77 179t23.5 275.5q0 165 -23.5 276.5 t-77.5 179t-141.5 96.5t-214.5 29h-96v-1161h96z" />
+<glyph unicode="&#x10f;" d="M1114 1557h198l-113 -376h-154zM526 -29q-100 0 -180 40.5t-136.5 117t-86.5 185.5t-30 247q0 137 30.5 246t86.5 184.5t136.5 115.5t180.5 40q104 0 180 -43t121 -127v579h184v-1556h-166l-18 141q-46 -84 -122.5 -127t-179.5 -43zM556 127q134 0 203 109t69 323 t-69 323t-203 109t-201.5 -108.5t-67.5 -323.5t67.5 -323.5t201.5 -108.5z" />
+<glyph unicode="&#x110;" d="M133 709h-125v149h125v635h303q171 0 296 -45t207.5 -137t122.5 -232.5t40 -332.5q0 -191 -40 -331.5t-122 -232.5t-207.5 -137t-296.5 -45h-303v709zM436 166q128 0 215.5 29t141 96.5t77 179t23.5 275.5q0 165 -23.5 276.5t-77.5 179t-141.5 96.5t-214.5 29h-96v-469 h264v-149h-264v-543h96z" />
+<glyph unicode="&#x111;" d="M559 -29q-106 0 -186 42t-134 116q-58 79 -87 188.5t-29 244.5q0 133 28.5 242.5t87.5 187.5t141 116.5t179 38.5q102 0 178 -43q77 -44 121 -127v309h-305v121h305v149h184v-149h191v-121h-191v-1286h-166l-18 141q-23 -40 -52 -71.5t-70 -54.5q-76 -44 -177 -44z M585 127q135 0 204 110q69 109 69 322t-69 323q-32 51 -82 80t-121 29q-134 0 -201 -109q-68 -110 -68 -323t68 -323q35 -57 86 -83t114 -26z" />
+<glyph unicode="&#x112;" d="M335 1800h598v-148h-598v148zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x113;" d="M353 1496h598v-148h-598v148zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85 v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
+<glyph unicode="&#x116;" d="M561 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x117;" d="M558 1348q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163 t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
+<glyph unicode="&#x118;" d="M952 0q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49.5t18 50.5t33 56t51.5 65h-636v1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-150z" />
+<glyph unicode="&#x119;" d="M316 516v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-46 -19 -90 -33t-87 -25q-47 -65 -67 -107t-20 -76q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 22 4.5 44.5t14.5 46 t26.5 49.5t41.5 56q-20 -2 -39 -3t-38 -1q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797zM647 991q-136 0 -221.5 -86.5t-102.5 -245.5l606 1q-3 157 -74.5 244 t-207.5 87z" />
+<glyph unicode="&#x11a;" d="M347 1852h140l165 -178l166 178h140l-211 -266h-189zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x11b;" d="M333 1673h139l180 -245l181 245h139l-246 -376h-147zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5 q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
+<glyph unicode="&#x11c;" d="M582 1852h189l211 -266h-140l-166 178l-165 -178h-140zM102 744q0 183 40.5 327t119.5 246q78 100 189.5 151.5t251.5 51.5q193 0 350 -107v-207q-77 74 -166 114q-86 36 -181 36q-98 0 -170.5 -37.5t-123.5 -114.5q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -156 24 -269 q20 -93 56 -166t111.5 -123t198.5 -50q65 0 118.5 17t89.5 47v401h-217v166h410v-643q-164 -152 -404 -152q-187 0 -321.5 92t-205.5 266t-71 415z" />
+<glyph unicode="&#x11d;" d="M573 1673h147l246 -376h-139l-181 245l-180 -245h-139zM276 -385v182q188 -90 329 -90q74 0 126 20t87 62q68 80 68 256v133q-85 -186 -304 -186q-129 0 -227 71q-98 72 -151 202.5t-53 303.5q0 264 117 421q61 79 138 118t177 39q106 0 180.5 -43t122.5 -133l18 145h166 v-1044q0 -252 -119 -382t-350 -130q-153 0 -325 55zM886 569q0 209 -66.5 315.5t-198.5 106.5q-135 0 -205.5 -107.5t-70.5 -315.5q0 -204 72 -313.5t205 -109.5q129 0 196.5 108.5t67.5 315.5z" />
+<glyph unicode="&#x11e;" d="M656 1589q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM700 -29q-143 0 -253.5 52t-187.5 152q-78 102 -117.5 245t-39.5 324t39.5 325t119.5 247q76 97 187 150.5t254 53.5q47 0 94 -6t91 -20t87 -35t79 -46v-207 q-43 41 -85.5 69t-80.5 45q-44 19 -90 27.5t-91 8.5q-97 0 -170 -37t-124 -115q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -158 24 -270.5t72 -187.5q50 -78 122.5 -114t171.5 -36q35 0 64 4t53 12t47 19.5t44 28.5v401h-217v166h410v-643q-81 -75 -182 -113q-102 -39 -222 -39z " />
+<glyph unicode="&#x11f;" d="M644 1298q-144 0 -223 72t-90 215h119q10 -75 59 -113q47 -37 135 -37q86 0 133 37q49 38 62 113h119q-11 -143 -90 -215q-80 -72 -224 -72zM601 -440q-39 0 -78 3.5t-81 10.5q-41 7 -81.5 17t-84.5 24v182q49 -23 94.5 -40t83.5 -28q78 -22 151 -22q74 0 126 20t87 62 q33 40 50.5 101.5t17.5 154.5v133q-43 -93 -120 -140q-76 -46 -184 -46q-197 0 -314 157t-117 420t117 421q59 79 136.5 118t178.5 39q52 0 97.5 -10.5t83.5 -32.5q76 -44 122 -133l18 145h166v-1044q0 -251 -119 -382q-118 -130 -350 -130zM622 145q130 0 197 109t67 315 q0 208 -67 315q-35 57 -85.5 82t-112.5 25q-134 0 -205 -107t-71 -316q0 -205 72 -314t205 -109z" />
+<glyph unicode="&#x120;" d="M618 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM700 -29q-141 0 -252 52t-188 151t-117.5 242.5t-40.5 326.5q0 184 41 328t118.5 244t189 152.5t252.5 52.5q99 0 184 -26.5t166 -80.5v-207q-81 78 -165.5 114t-180.5 36 q-200 0 -297 -152.5t-97 -464.5q0 -307 96 -455.5t296 -148.5q64 0 114 15.5t92 48.5v401h-217v166h410v-643q-81 -75 -182 -113.5t-222 -38.5z" />
+<glyph unicode="&#x121;" d="M571 1348q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM601 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116 t-86.5 182t-30.5 239t30 238.5t86.5 181.5t137 116t181.5 41q103 0 178.5 -43.5t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM620 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
+<glyph unicode="&#x122;" d="M700 -29q-141 0 -252 52t-188 151t-117.5 242.5t-40.5 326.5q0 184 41 328t118.5 244t189 152.5t252.5 52.5q99 0 184 -26.5t166 -80.5v-207q-81 78 -165.5 114t-180.5 36q-200 0 -297 -152.5t-97 -464.5q0 -307 96 -455.5t296 -148.5q64 0 114 15.5t92 48.5v401h-217 v166h410v-643q-81 -75 -182 -113.5t-222 -38.5zM630 -228h239l-187 -345h-146z" />
+<glyph unicode="&#x123;" d="M701 1642h146l-94 -345h-239zM601 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116t-86.5 182t-30.5 239t30 238.5t86.5 181.5t137 116 t181.5 41q103 0 178.5 -43.5t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM620 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
+<glyph unicode="&#x124;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
+<glyph unicode="&#x125;" d="M651 1852h189l211 -266h-140l-166 178l-165 -178h-140zM195 1556h184v-604q101 195 331 195q172 0 257 -112q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-129 0 -198 -91t-69 -263v-633h-184v1556z" />
+<glyph unicode="&#x126;" d="M137 1105h-134v164h134v224h202v-224h554v224h202v-224h135v-164h-135v-1105h-202v711h-554v-711h-202v1105zM893 881v224h-554v-224h554z" />
+<glyph unicode="&#x127;" d="M195 1270h-125v164h125v122h184v-122h353v-164h-353v-318q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1270z" />
+<glyph unicode="&#x128;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x129;" d="M268 1259q0 65 13 117.5t37.5 89t61 56t83.5 19.5q38 0 70 -14t69 -47l57 -55q24 -23 40 -31t30 -8q17 0 31 9t23 28q17 36 19 118h125q0 -65 -13 -117.5t-37.5 -89t-61 -56t-83.5 -19.5q-38 0 -70 14t-69 47l-57 55q-21 20 -37 29.5t-33 9.5t-31 -9t-23 -28 q-19 -39 -20 -118h-124zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#x12a;" d="M335 1800h598v-148h-598v148zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x12b;" d="M268 1468h598v-148h-598v148zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#x12e;" d="M717 1323v-1153h313v-170h-313q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49.5t18 50.5t33 56t51.5 65h-397v170h313v1153h-313v170h829v-170h-313z" />
+<glyph unicode="&#x12f;" d="M526 1323q-33 0 -33 30v173q0 30 33 30h138q33 0 33 -30v-173q0 -30 -33 -30h-138zM972 -261q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 23 4.5 46t15.5 47.5t29 51.5t44 59q-65 6 -118 31t-94 73q-91 106 -91 300v578h-245v144h429 v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-156q-40 -57 -57 -95t-17 -70q0 -42 28 -65t82 -23z" />
+<glyph unicode="&#x130;" d="M543 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x131;" d="M859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
+<glyph unicode="&#x132;" d="M135 203h558q56 0 102 28q47 27 74 74t27 101l-1 917h-320v170l523 1l1 -1088q0 -110 -54 -203q-55 -94 -148.5 -148.5t-203.5 -54.5h-558v203zM135 1493h203v-1087h-203v1087z" />
+<glyph unicode="&#x133;" d="M176 1353v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144q-30 0 -30 30zM863 1353v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144q-30 0 -30 30zM186 1120h184v-1120h-184v1120zM370 -270h323q180 0 180 250v997h-267v143h451v-1140 q0 -195 -88.5 -300.5t-255.5 -105.5h-343v156z" />
+<glyph unicode="&#x134;" d="M761 1852h189l211 -266h-140l-166 178l-165 -178h-140zM109 61v236q182 -162 390 -162q98 0 152.5 32t78.5 107.5t24 212.5v836h-381v170h583v-1006q0 -144 -25.5 -240.5t-80.5 -157.5q-55 -60 -140 -89t-208 -29q-100 0 -194.5 22t-198.5 68z" />
+<glyph unicode="&#x135;" d="M671 1648h147l246 -376h-139l-181 245l-180 -245h-139zM238 -270h234q180 0 180 250v997h-317v143h501v-1140q0 -195 -88.5 -300.5t-255.5 -105.5h-254v156z" />
+<glyph unicode="&#x136;" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493zM608 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x137;" d="M226 1556h190v-901l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1556zM626 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x138;" d="M186 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
+<glyph unicode="&#x139;" d="M412 1856h186l-229 -264h-154zM215 1493h203v-1323h721v-170h-924v1493z" />
+<glyph unicode="&#x13a;" d="M577 1880h186l-229 -264h-154zM801 -8q-166 0 -256 105.5t-90 300.5v1014h-295v144h479v-1158q0 -250 180 -250h215v-156h-233z" />
+<glyph unicode="&#x13b;" d="M215 1493h203v-1323h721v-170h-924v1493zM604 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x13c;" d="M801 -8q-166 0 -256 105.5t-90 300.5v1014h-295v144h479v-1158q0 -250 180 -250h215v-156h-233zM497 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x13d;" d="M215 1493h203v-1323h721v-170h-924v1493zM718 1491h198l-113 -376h-154z" />
+<glyph unicode="&#x13e;" d="M801 -8q-166 0 -256 105.5t-90 300.5v1014h-295v144h479v-1158q0 -250 180 -250h215v-156h-233zM959 1556h198l-113 -376h-154z" />
+<glyph unicode="&#x13f;" d="M215 1493h203v-1323h721v-170h-924v1493zM676 570v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145q-30 0 -30 30z" />
+<glyph unicode="&#x140;" d="M566 98q-91 106 -91 300v1014h-295v144h479v-1158q0 -125 46 -187.5t134 -62.5h215v-156h-233q-82 0 -145 26t-110 80zM849 570v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145q-30 0 -30 30z" />
+<glyph unicode="&#x141;" d="M215 571l-145 -106l-80 110l225 158v760h203v-616l315 219l78 -111l-393 -274v-541h721v-170h-924v571z" />
+<glyph unicode="&#x142;" d="M801 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v292l-299 -209l-80 111l379 264v556h-295v144h479v-575l315 219l80 -110l-395 -275v-417q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
+<glyph unicode="&#x143;" d="M731 1856h186l-229 -264h-154zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
+<glyph unicode="&#x144;" d="M776 1673h198l-325 -376h-154zM195 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120z" />
+<glyph unicode="&#x145;" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493zM544 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x146;" d="M195 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120zM550 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x147;" d="M347 1852h140l165 -178l166 178h140l-211 -266h-189zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
+<glyph unicode="&#x148;" d="M285 1673h139l180 -245l181 245h139l-246 -376h-147zM195 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120z" />
+<glyph unicode="&#x149;" d="M98 1350v206h252v-206l-197 -383h-153zM372 1120h166l18 -168q100 195 331 195q172 0 257 -112q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-129 0 -198 -91t-69 -263v-633h-184v1120z" />
+<glyph unicode="&#x14a;" d="M536 -270h167q45 0 78.5 15t56 47t33.5 83.5t11 124.5v1009q0 180 -58 264.5t-182 84.5q-142 0 -217.5 -108.5t-75.5 -312.5v-937h-202v1493h184l18 -198q54 112 145.5 169.5t218.5 57.5q372 0 372 -523v-1019q0 -196 -89 -301t-255 -105h-205v156z" />
+<glyph unicode="&#x14b;" d="M502 -270h185q179 0 179 250v714q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-714q0 -196 -89 -301t-255 -105h-205v156z" />
+<glyph unicode="&#x14c;" d="M317 1800h598v-148h-598v148zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470 q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#x14d;" d="M317 1495h598v-148h-598v148zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5 q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x150;" d="M541 1859h186l-229 -264h-154zM860 1859h186l-229 -264h-154zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141 q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#x151;" d="M535 1673h170l-224 -376h-137zM868 1673h179l-248 -376h-135zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323 q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x152;" d="M612 0q-158 0 -257.5 43.5t-158.5 123.5q-64 87 -94 229t-30 351q0 111 8 200t24 160t38.5 125t52.5 95q60 82 161 124t256 42h594v-170h-358v-442h328v-170h-328v-541h369v-170h-605zM651 170v1153h-61q-177 0 -246 -115q-34 -57 -52 -168t-18 -295q0 -180 17.5 -291 t52.5 -169q69 -115 246 -115h61z" />
+<glyph unicode="&#x153;" d="M369 -29q-99 0 -163.5 36t-105.5 102q-45 72 -65.5 181.5t-20.5 267.5q0 84 5.5 152.5t16.5 123.5t27 98t36 76q43 70 110 104.5t164 34.5q90 0 153 -31q64 -32 111 -96q17 29 43 53.5t59 41.5t72 24.5t82 7.5q173 0 245 -118q72 -119 72 -425v-90h-491v-84 q0 -162 50 -235q25 -36 64 -54t99 -18q37 0 74 6.5t70 20.5q66 26 112 77v-172q-30 -23 -62.5 -39.5t-58.5 -24.5q-27 -9 -63.5 -14.5t-76.5 -5.5q-51 0 -92 9t-76 25t-65.5 39.5t-56.5 59.5q-30 -38 -58 -61.5t-58 -38.5q-32 -17 -69 -25t-83 -8zM372 123q103 0 144 84 q10 21 17.5 50.5t13 71t8 96t2.5 125.5q0 138 -10 223.5t-31 133.5t-56.5 68t-86.5 20q-55 0 -89 -21.5t-53 -61.5q-10 -21 -17.5 -50t-13 -71t-8 -99.5t-2.5 -133.5q0 -74 2.5 -130t8 -98t13 -72t17.5 -51q22 -46 57.5 -65t83.5 -19zM1047 657v12.5t1 17.5t1 15v7 q0 152 -40 219t-126 67q-87 0 -125 -68q-39 -69 -39 -227v-43h328z" />
+<glyph unicode="&#x154;" d="M631 1856h186l-229 -264h-154zM143 1493h416q123 0 217.5 -28.5t159 -83t98 -133.5t33.5 -179q0 -160 -81 -251t-226 -113q40 -11 72.5 -28t62.5 -49.5t62 -85.5t73 -134l203 -408h-217l-178 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v-631h-203v1493zM567 797 q287 0 287 259q0 136 -75.5 203.5t-219.5 67.5h-213v-530h221z" />
+<glyph unicode="&#x155;" d="M822 1674h198l-325 -376h-154zM302 1120h167l18 -219q45 116 138.5 181t230.5 65q67 0 126 -17t113 -53v-188q-60 46 -120.5 67t-133.5 21q-173 0 -263.5 -107.5t-90.5 -312.5v-557h-185v1120z" />
+<glyph unicode="&#x156;" d="M143 1493h416q123 0 217.5 -28.5t159 -83t98 -133.5t33.5 -179q0 -160 -81 -251t-226 -113q40 -11 72.5 -28t62.5 -49.5t62 -85.5t73 -134l203 -408h-217l-178 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v-631h-203v1493zM567 797q287 0 287 259 q0 136 -75.5 203.5t-219.5 67.5h-213v-530h221zM616 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x157;" d="M302 1120h167l18 -219q45 116 138.5 181t230.5 65q67 0 126 -17t113 -53v-188q-60 46 -120.5 67t-133.5 21q-173 0 -263.5 -107.5t-90.5 -312.5v-557h-185v1120zM322 -199h239l-187 -345h-146z" />
+<glyph unicode="&#x158;" d="M257 1852h140l165 -178l166 178h140l-211 -266h-189zM143 1493h416q123 0 217.5 -28.5t159 -83t98 -133.5t33.5 -179q0 -160 -81 -251t-226 -113q40 -11 72.5 -28t62.5 -49.5t62 -85.5t73 -134l203 -408h-217l-178 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v-631 h-203v1493zM567 797q287 0 287 259q0 136 -75.5 203.5t-219.5 67.5h-213v-530h221z" />
+<glyph unicode="&#x159;" d="M337 1673h139l180 -245l181 245h139l-246 -376h-147zM302 1120h167l18 -219q45 116 138.5 181t230.5 65q67 0 126 -17t113 -53v-188q-60 46 -120.5 67t-133.5 21q-173 0 -263.5 -107.5t-90.5 -312.5v-557h-185v1120z" />
+<glyph unicode="&#x15a;" d="M701 1856h186l-229 -264h-154zM586 -29q-110 0 -215 22.5t-213 67.5v215q115 -73 217 -107t208 -34q153 0 237.5 67.5t84.5 202.5q0 50 -13.5 89.5t-44 70t-81 53t-123.5 39.5l-108 25q-105 24 -180 59.5t-123 84t-70.5 111t-22.5 140.5q0 101 35 183t99.5 139.5 t155.5 89t202 31.5q171 0 381 -78v-205q-185 119 -372 119q-71 0 -128 -17t-97 -49t-61.5 -80t-21.5 -109q0 -45 13 -80t43 -63t79.5 -49t122.5 -37l106 -24q106 -24 182 -62.5t125 -92.5t72 -124.5t23 -157.5q0 -215 -132 -327.5t-380 -112.5z" />
+<glyph unicode="&#x15b;" d="M782 1673h198l-325 -376h-154zM587 -29q-87 0 -177.5 17.5t-196.5 52.5v190q205 -106 375 -106q61 0 108.5 13t80.5 37t50 57t17 73q0 34 -13.5 62t-42.5 50.5t-76 40.5t-113 32l-8 2l-69 14q-82 16 -140 42.5t-94.5 64t-53.5 86.5t-17 111q0 163 108 250t314 87 q173 0 334 -66v-180q-81 46 -159.5 69t-168.5 23q-242 0 -242 -165q0 -35 11.5 -64t34.5 -47q26 -20 83.5 -37.5t145.5 -34.5l74 -14q138 -26 208 -103.5t70 -203.5q0 -83 -30.5 -148.5t-87.5 -111t-139.5 -69.5t-185.5 -24z" />
+<glyph unicode="&#x15c;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM158 61v215q114 -72 216.5 -106.5t206.5 -34.5q154 0 239 68.5t85 196.5q0 56 -14 95.5t-44 69.5q-30 32 -77.5 53t-126.5 39l-108 25q-107 24 -180.5 58.5t-121.5 83.5q-94 94 -94 255q0 101 34.5 182.5 t100.5 139.5t156 88.5t201 30.5q178 0 381 -78v-205q-185 119 -370 119q-71 0 -129 -16.5t-99 -49.5q-82 -66 -82 -185q0 -48 13.5 -83t41.5 -62q30 -29 78 -50t125 -38l106 -24q208 -47 305 -152.5t97 -285.5q0 -215 -131 -327t-383 -112q-110 0 -211 21.5t-215 68.5z" />
+<glyph unicode="&#x15d;" d="M548 1673h147l246 -376h-139l-181 245l-180 -245h-139zM213 41v190q109 -54 197 -79q98 -27 178 -27q121 0 189 50q33 24 50 58.5t17 73.5q0 69 -59 113t-186 70l-8 2l-69 14q-159 32 -232 105t-73 201q0 162 108.5 248.5t313.5 86.5q171 0 334 -66v-180 q-80 47 -160 69.5t-166 22.5q-244 0 -244 -165q0 -35 12 -64q12 -30 35.5 -48.5t75.5 -33.5q54 -19 152 -37l74 -14q141 -29 208 -104q70 -76 70 -204q0 -109 -53.5 -188.5t-152.5 -121.5t-234 -42q-88 0 -179 17.5t-198 52.5z" />
+<glyph unicode="&#x15e;" d="M1001 694q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-47 -40 -110 -65.5t-140 -37.5q22 -26 39 -50.5t27 -44.5q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5 t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-8 17 -20 35.5t-26 40.5h-18q-57 0 -111 5.5t-102 16.5q-53 11 -107.5 29t-105.5 39v215q58 -37 112 -63.5t106 -43.5q54 -18 105 -26t101 -8q75 0 135 17t103 51q40 32 62.5 79.5t22.5 116.5q0 57 -15.5 98t-42.5 69 q-31 32 -82.5 53.5t-121.5 37.5l-108 25q-101 23 -176.5 57t-125.5 85q-46 47 -70 109t-24 146q0 103 35.5 184t99.5 138t153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-50 32 -96 53.5t-88 35.5q-93 30 -186 30q-75 0 -132.5 -17.5t-95.5 -48.5 q-40 -32 -61 -78.5t-21 -106.5q0 -41 11.5 -78t43.5 -67q29 -28 78 -49.5t125 -38.5l106 -24q97 -22 174.5 -59.5t130.5 -94.5z" />
+<glyph unicode="&#x15f;" d="M960 527q70 -77 70 -204q0 -86 -30.5 -149.5t-87.5 -108.5q-80 -63 -196 -83q23 -26 39.5 -51.5t27.5 -45.5q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5 t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-8 17 -20 35.5t-26 40.5h-12q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40 t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5 l74 -14q72 -14 123 -40t85 -64z" />
+<glyph unicode="&#x160;" d="M327 1852h140l165 -178l166 178h140l-211 -266h-189zM584 -29q-57 0 -111 5.5t-102 16.5q-53 11 -107.5 29t-105.5 39v215q58 -37 112 -63.5t106 -43.5q54 -18 105 -26t101 -8q75 0 135 17t103 51q40 32 62.5 79.5t22.5 116.5q0 57 -15.5 98t-42.5 69q-31 32 -82.5 53.5 t-121.5 37.5l-108 25q-101 23 -176.5 57t-125.5 85q-46 47 -70 109t-24 146q0 103 35.5 184t99.5 138t153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-50 32 -96 53.5t-88 35.5q-93 30 -186 30q-75 0 -132.5 -17.5t-95.5 -48.5q-40 -32 -61 -78.5 t-21 -106.5q0 -41 11.5 -78t43.5 -67q29 -28 78 -49.5t125 -38.5l106 -24q97 -22 174.5 -59.5t130.5 -94.5q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-66 -57 -163.5 -84.5t-219.5 -27.5z" />
+<glyph unicode="&#x161;" d="M297 1673h139l180 -245l181 245h139l-246 -376h-147zM590 -29q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40 t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5 l74 -14q72 -14 123 -40t85 -64q70 -77 70 -204q0 -86 -30.5 -149.5t-87.5 -108.5q-61 -48 -142.5 -71t-179.5 -23z" />
+<glyph unicode="&#x162;" d="M719 1323v-1323h-72q4 -5 39 -40q27 -27 41 -43.5t23 -31.5q26 -55 26 -104q0 -40 -15 -74t-45 -57q-61 -45 -179 -45q-91 0 -175 24v131q38 -18 72 -25t79 -7q124 0 124 92q0 40 -15.5 82.5t-52.5 97.5h-53v1323h-469v170h1139v-170h-467z" />
+<glyph unicode="&#x163;" d="M1032 977h-418v-612q0 -84 20.5 -131.5t65.5 -68.5q45 -22 125 -22h207v-147h-254q36 -42 65 -94q26 -55 26 -104q0 -40 -15 -74t-45 -57q-62 -45 -179 -45q-91 0 -175 24v131q38 -18 72 -25t79 -7q124 0 124 92q0 29 -20 69.5t-65 105.5q-114 28 -164.5 111t-50.5 242 v612h-299v143h299v293l184 80v-373h418v-143z" />
+<glyph unicode="&#x164;" d="M317 1852h140l165 -178l166 178h140l-211 -266h-189zM516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
+<glyph unicode="&#x165;" d="M820 1682h198l-113 -376h-154zM807 -4q-206 0 -292 83q-85 82 -85 286v612h-299v143h299v293l184 80v-373h418v-143h-418v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-225z" />
+<glyph unicode="&#x166;" d="M516 577h-265v170h265v576h-469v170h1139v-170h-467v-576h265v-170h-265v-577h-203v577z" />
+<glyph unicode="&#x167;" d="M807 -4q-104 0 -175.5 19.5t-116.5 63.5t-65 114t-20 172v237h-229v142h229v233h-299v143h299v303l184 70v-373h418v-143h-418v-233h229v-142h-229v-237q0 -62 11 -104.5t36 -68.5t65 -37.5t99 -11.5h207v-147h-225v0z" />
+<glyph unicode="&#x168;" d="M287 1633q0 102 50.5 160.5t144.5 58.5q40 0 70.5 -11.5t68.5 -31.5l57 -30q43 -25 72 -25q31 0 51 25t20 67v6h125q-2 -49 -15 -89.5t-37 -69t-59.5 -44.5t-81.5 -16q-32 0 -63.5 9.5t-77.5 33.5l-57 33q-25 14 -40 19.5t-29 5.5q-34 0 -54 -25t-20 -70v-6h-125z M618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-920 q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
+<glyph unicode="&#x169;" d="M287 1257q0 65 13 117.5t37.5 89t61 56t83.5 19.5q38 0 70 -14t69 -47l57 -55q24 -23 40 -31t30 -8q17 0 31 9t23 28q17 36 19 118h125q0 -65 -13 -117.5t-37.5 -89t-61 -56t-83.5 -19.5q-38 0 -70 14t-69 47l-57 55q-21 20 -37 29.5t-33 9.5t-31 -9t-23 -28 q-19 -39 -20 -118h-124zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
+<glyph unicode="&#x16a;" d="M317 1800h598v-148h-598v148zM618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41 q6 46 6 154v1014h202v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
+<glyph unicode="&#x16b;" d="M317 1466h598v-148h-598v148zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
+<glyph unicode="&#x16c;" d="M930 1831q-11 -120 -90 -181t-224 -61q-290 0 -313 242h119q12 -54 62 -82.5t134 -28.5q163 0 193 111h119zM810 2q-89 -31 -194 -31q-100 0 -189 29q-95 35 -154 88q-33 30 -56 68.5t-40 92.5q-30 92 -30 324v920h203v-1012q0 -115 7 -161q7 -53 34.5 -92t83.5 -65 q57 -28 141 -28q101 0 174.5 44.5t86.5 145.5q6 47 6 154v1014h202v-920q0 -131 -8 -213t-31 -147q-24 -69 -86 -125t-150 -86z" />
+<glyph unicode="&#x16d;" d="M937 1585q-11 -143 -90.5 -215t-223.5 -72t-223 72t-90 215h119q20 -150 194 -150q86 0 134 37.5t61 112.5h119zM866 168q-50 -98 -134 -147.5t-198 -49.5q-171 0 -255 112.5t-84 340.5v694h184v-694q0 -151 54 -222q27 -36 67.5 -53.5t97.5 -17.5q130 0 199 91.5 t69 262.5v633h185v-1118h-167z" />
+<glyph unicode="&#x16e;" d="M627 1352q-58 0 -108 21.5t-87 58.5t-58.5 87.5t-21.5 107.5t21.5 107t58.5 87t87 58.5t108 21.5t108 -21.5t87 -58.5t58 -87t21 -107t-21 -107.5t-58 -87.5t-87 -58.5t-108 -21.5zM626 1475q32 0 59.5 12t48 32.5t32.5 48t12 59.5q0 31 -12 59t-32.5 48t-48 32t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5 t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
+<glyph unicode="&#x16f;" d="M632 1204q-58 0 -108 21.5t-87 58.5t-58.5 87.5t-21.5 107.5t21.5 107t58.5 87t87 58.5t108 21.5t108 -21.5t87 -58.5t58 -87t21 -107t-21 -107.5t-58 -87.5t-87 -58.5t-108 -21.5zM631 1327q32 0 59.5 12t48 32.5t32.5 48t12 59.5q0 31 -12 59t-32.5 48t-48 32t-59.5 12 t-59.5 -11.5t-48 -32t-32 -48t-11.5 -59.5t11.5 -60t32 -48.5t48 -32t59.5 -11.5zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
+<glyph unicode="&#x170;" d="M541 1852h186l-229 -264h-154zM860 1852h186l-229 -264h-154zM618 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5 q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29z" />
+<glyph unicode="&#x171;" d="M535 1644h170l-224 -376h-137zM868 1644h179l-248 -376h-135zM534 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
+<glyph unicode="&#x172;" d="M1085 1493v-920q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-32 -11 -67 -18t-73 -9q-44 -61 -62 -101t-18 -72q0 -42 28 -65t82 -23q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5 q0 24 5 47.5t16.5 49t30.5 54t48 61.5q-86 8 -155 37.5t-119 74.5q-36 33 -60 74t-38 89q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41 q6 46 6 154v1014h202z" />
+<glyph unicode="&#x173;" d="M1076 -272q62 0 124 30v-133q-42 -11 -74 -15.5t-69 -4.5q-112 0 -171 42.5t-59 131.5q0 25 5.5 49.5t18 50.5t33 56t51.5 65h-69v168q-49 -97 -133 -147t-199 -50q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633 h185v-1118h3q-48 -65 -68 -107.5t-20 -76.5q0 -42 28 -65t82 -23z" />
+<glyph unicode="&#x174;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
+<glyph unicode="&#x175;" d="M543 1647h147l246 -376h-139l-181 245l-180 -245h-139zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
+<glyph unicode="&#x176;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="&#x177;" d="M555 1647h147l246 -376h-139l-181 245l-180 -245h-139zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64 q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
+<glyph unicode="&#x178;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="&#x179;" d="M653 1852h186l-229 -264h-154zM110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
+<glyph unicode="&#x17a;" d="M842 1649h198l-325 -376h-154zM203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
+<glyph unicode="&#x17b;" d="M547 1647q-30 0 -30 30v145q0 30 30 30h145q30 0 30 -30v-145q0 -30 -30 -30h-145zM110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
+<glyph unicode="&#x17c;" d="M543 1322q-30 0 -30 30v144q0 30 30 30h145q30 0 30 -30v-144q0 -30 -30 -30h-145zM203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
+<glyph unicode="&#x17d;" d="M265 1852h140l165 -178l166 178h140l-211 -266h-189zM110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
+<glyph unicode="&#x17e;" d="M297 1649h139l180 -245l181 245h139l-246 -376h-147zM203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
+<glyph unicode="&#x192;" d="M203 -426q-26 0 -53 2.5t-53 7.5q-50 10 -97 33v164q27 -17 51 -28.5t48 -19.5q25 -8 49.5 -12t46.5 -4q53 0 91.5 20t67.5 55t50.5 90.5t35.5 135.5l117 687h-252v143h275l49 330q14 92 45 160t80 118q99 100 248 100q48 0 98 -9q48 -9 100 -27v-164q-15 12 -36 24 t-41 19q-17 6 -39.5 10t-48.5 4q-51 0 -89.5 -16.5t-66.5 -45.5q-30 -32 -48 -78t-28 -114l-45 -311h303v-143h-328l-100 -635q-20 -125 -55.5 -223t-86.5 -158q-98 -115 -288 -115z" />
+<glyph unicode="&#x1a0;" d="M1171 1557q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-36 0 -73 12q61 -176 61 -451q0 -390 -124 -582t-377 -192q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q220 0 340 -144q45 -29 76.5 -41t58.5 -12q42 0 65 28t23 82q0 62 -30 124h133z M727 276q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141q154 0 222 141z" />
+<glyph unicode="&#x1a1;" d="M1182 1137q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-15 0 -29.5 1.5t-28.5 6.5q21 -96 21 -214q0 -286 -123 -436.5t-357 -150.5q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5q143 0 244.5 -56.5t160.5 -168.5q42 -19 75 -19 q42 0 65 28t23 82q0 62 -30 124h133zM511 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x1a4;" d="M284 1327q-54 0 -79 -50.5t-25 -156.5h-175v114q0 80 34.5 139t98.5 90q63 30 146 30h436q122 0 218 -28.5t161 -84.5q129 -113 129 -335q0 -219 -128.5 -332t-379.5 -113h-234v-600h-202v1327zM720 766q140 0 218.5 74.5t78.5 207.5q0 132 -78 205.5t-219 73.5h-234 v-561h234z" />
+<glyph unicode="&#x1af;" d="M1204 1561q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-26 0 -51 5.5t-52 19.5v-640q0 -63 -1.5 -112t-5.5 -88t-9.5 -69.5t-12.5 -55.5q-16 -53 -42 -93t-59 -70t-71 -51t-77 -34q-87 -29 -189 -29q-109 0 -196.5 31t-147.5 85q-36 33 -60 74t-38 89 q-14 47 -21.5 123.5t-7.5 199.5v920h203v-1012q0 -109 6 -155q3 -21 10 -44t20.5 -44.5t33.5 -40.5t50 -33q29 -14 66.5 -21.5t79.5 -7.5q85 0 149 31t92 88q6 12 11.5 30t8.5 41q6 46 6 154v1014h202v-151q37 -15 66 -15q42 0 65 28t23 82q0 62 -30 124h133v0z" />
+<glyph unicode="&#x1b0;" d="M1174 1137q11 -42 15.5 -74t4.5 -69q0 -112 -42.5 -171t-131.5 -59q-31 0 -60.5 8.5t-64.5 28.5v-801h-167l-18 168q-49 -97 -133 -147t-199 -50q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-189 q51 -26 88 -26q42 0 65 28t23 82q0 62 -30 124h133v0z" />
+<glyph unicode="&#x1e6;" d="M401 1852h140l165 -178l166 178h140l-211 -266h-189zM700 -29q-141 0 -252 52t-188 151t-117.5 242.5t-40.5 326.5q0 184 41 328t118.5 244t189 152.5t252.5 52.5q99 0 184 -26.5t166 -80.5v-207q-81 78 -165.5 114t-180.5 36q-200 0 -297 -152.5t-97 -464.5 q0 -307 96 -455.5t296 -148.5q64 0 114 15.5t92 48.5v401h-217v166h410v-643q-81 -75 -182 -113.5t-222 -38.5z" />
+<glyph unicode="&#x1e7;" d="M325 1673h139l180 -245l181 245h139l-246 -376h-147zM601 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116t-86.5 182t-30.5 239t30 238.5 t86.5 181.5t137 116t181.5 41q103 0 178.5 -43.5t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM620 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
+<glyph unicode="&#x1fe;" d="M691 1856h186l-229 -264h-154zM8 0l178 252q-16 36 -29 88t-22 116t-13.5 137t-4.5 151q0 391 123 583.5t374 192.5q232 0 347 -162l139 201l100 -74l-168 -238q42 -81 63 -209.5t21 -293.5q0 -390 -124 -581.5t-379 -191.5q-238 0 -359 162l-143 -203zM842 1190 q-24 78 -80 122t-147 44q-85 0 -136.5 -38t-83.5 -108q-37 -82 -52 -212t-15 -316q0 -76 2.5 -126.5t7.5 -84.5zM619 135q151 0 219 142q16 33 28.5 76.5t21 101t13 131.5t4.5 169q0 100 -5 168t-15 113l-514 -733q32 -81 96.5 -124.5t151.5 -43.5z" />
+<glyph unicode="&#x1ff;" d="M756 1673h198l-325 -376h-154zM47 -20l170 200q-39 72 -59.5 168.5t-20.5 213.5q0 142 31 251t92 183t151 112.5t207 38.5q98 0 177 -27t139 -84l147 176l93 -77l-164 -195q42 -66 64 -162t22 -218q0 -290 -122.5 -439.5t-357.5 -149.5q-204 0 -317 119l-160 -186z M817 897q-36 50 -86.5 72t-111.5 22q-71 0 -125 -27.5t-91 -79.5t-56 -127.5t-19 -172.5q0 -57 7 -114.5t21 -129.5zM615 127q142 0 214 109.5t72 315.5q0 60 -6 115t-18 113l-463 -559q72 -94 201 -94z" />
+<glyph unicode="&#x218;" d="M586 -29q-110 0 -215 22.5t-213 67.5v215q115 -73 217 -107t208 -34q153 0 237.5 67.5t84.5 202.5q0 50 -13.5 89.5t-44 70t-81 53t-123.5 39.5l-108 25q-105 24 -180 59.5t-123 84t-70.5 111t-22.5 140.5q0 101 35 183t99.5 139.5t155.5 89t202 31.5q171 0 381 -78v-205 q-185 119 -372 119q-71 0 -128 -17t-97 -49t-61.5 -80t-21.5 -109q0 -45 13 -80t43 -63t79.5 -49t122.5 -37l106 -24q106 -24 182 -62.5t125 -92.5t72 -124.5t23 -157.5q0 -215 -132 -327.5t-380 -112.5zM502 -197h239l-187 -345h-146z" />
+<glyph unicode="&#x219;" d="M587 -29q-87 0 -177.5 17.5t-196.5 52.5v190q205 -106 375 -106q61 0 108.5 13t80.5 37t50 57t17 73q0 34 -13.5 62t-42.5 50.5t-76 40.5t-113 32l-8 2l-69 14q-82 16 -140 42.5t-94.5 64t-53.5 86.5t-17 111q0 163 108 250t314 87q173 0 334 -66v-180q-81 46 -159.5 69 t-168.5 23q-242 0 -242 -165q0 -35 11.5 -64t34.5 -47q26 -20 83.5 -37.5t145.5 -34.5l74 -14q138 -26 208 -103.5t70 -203.5q0 -83 -30.5 -148.5t-87.5 -111t-139.5 -69.5t-185.5 -24zM502 -197h239l-187 -345h-146z" />
+<glyph unicode="&#x21a;" d="M719 0h-19q57 -63 83 -114t26 -106q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 31 -19.5 72.5t-68.5 109.5h-66v1323h-469v170h1139v-170h-467v-1323z" />
+<glyph unicode="&#x21b;" d="M614 977v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-194q48 -56 70 -102.5t22 -97.5q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 15 -4 31.5t-13 36.5t-24 44t-36 55q-134 15 -199 78q-85 82 -85 286v612h-299 v143h299v293l184 80v-373h418v-143h-418z" />
+<glyph unicode="&#x2c6;" d="M936 1262h-139l-181 245l-180 -245h-139l246 376h147z" />
+<glyph unicode="&#x2c7;" d="M436 1638l180 -245l181 245h139l-246 -376h-147l-246 376h139z" />
+<glyph unicode="&#x2d8;" d="M422 1608q10 -75 59 -113q47 -37 135 -37q86 0 133 37q49 38 62 113h119q-11 -143 -90 -215q-80 -72 -224 -72t-223 72t-90 215h119v0z" />
+<glyph unicode="&#x2d9;" d="M689 1552q30 0 30 -30v-144q0 -30 -30 -30h-145q-30 0 -30 30v144q0 30 30 30h145v0z" />
+<glyph unicode="&#x2da;" d="M891 1524q0 -116 -79 -195q-80 -80 -196 -80q-114 0 -194 80t-80 195t80 195q79 79 194 79q117 0 196 -79t79 -195zM768 1524q0 63 -44 107t-109 44q-63 0 -106 -43q-44 -44 -44 -108t44 -108t107 -44q64 0 108 44t44 108z" />
+<glyph unicode="&#x2db;" d="M647 0q-45 -62 -66 -105q-22 -43 -22 -75q0 -47 28 -69q28 -23 81 -23q34 0 63 7q16 4 31 9.5t31 13.5v-133q-38 -11 -72 -15q-17 -2 -33 -3.5t-31 -1.5q-123 0 -179 43q-58 43 -58 137q0 47 27 100q13 26 33 55t48 60h119v0z" />
+<glyph unicode="&#x2dc;" d="M555 1425q-22 21 -37 30q-17 9 -31 9q-38 0 -56 -37q-19 -39 -20 -118h-124q2 135 52 208q51 74 142 74q38 0 71 -14q30 -13 69 -47l57 -55q22 -20 38 -29q16 -10 29 -10q39 0 57 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -142 -74q-38 0 -71 14q-30 13 -69 47 l-57 55v0z" />
+<glyph unicode="&#x2dd;" d="M481 1262h-137l191 376h170zM799 1262h-135l204 376h179z" />
+<glyph unicode="&#x300;" horiz-adv-x="0" d="M-954 1638h198l281 -376h-154z" />
+<glyph unicode="&#x301;" horiz-adv-x="0" d="M-758 1262l281 376h198l-325 -376h-154z" />
+<glyph unicode="&#x303;" horiz-adv-x="0" d="M-621 1370l-57 55q-40 39 -68 39q-38 0 -56 -37q-19 -39 -20 -118h-124q1 135 52 208.5t142 73.5q39 0 71 -14t69 -47l57 -55q40 -39 67 -39q39 0 57 37q17 36 19 118h125q-1 -135 -52 -208.5t-142 -73.5q-39 0 -71 14t-69 47z" />
+<glyph unicode="&#x309;" horiz-adv-x="0" d="M-647 1734q229 0 237 -170q1 -3 1 -10q0 -32 -10.5 -61t-28.5 -54.5t-41.5 -47t-49.5 -37.5v-88h-148v108q67 22 116 70q22 19 22 73q0 94 -120 94q-88 0 -154 -32v131q85 24 176 24z" />
+<glyph unicode="&#x323;" horiz-adv-x="0" d="M-720 -413v204h205v-204h-205z" />
+<glyph unicode="&#x384;" d="M756 1638h198l-325 -376h-154z" />
+<glyph unicode="&#x385;" d="M766 1894h198l-325 -376h-154zM272 1326q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM749 1326q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142z" />
+<glyph unicode="&#x386;" d="M-60 1117l281 376h198l-325 -376h-154zM37 0l457 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x388;" d="M55 1493h198l-325 -376h-154zM328 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x389;" d="M-16 1493h198l-325 -376h-154zM257 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
+<glyph unicode="&#x38a;" d="M58 1493h198l-325 -376h-154zM331 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x38c;" d="M676 -29q-253 0 -376 191t-123 583q0 391 123.5 583t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -123.5 -582t-376.5 -192zM103 1493h198l-325 -376h-154zM676 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470 q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#x38e;" d="M519 650q0 60 -8.5 126.5t-24 133t-36.5 128.5t-47 114t-56 90t-62 55q-13 7 -32 13.5t-40 11t-43.5 7.5t-42.5 3q-17 0 -37.5 -2t-40.5 -7v170q18 6 40 8.5t46 2.5q31 0 69.5 -3.5t71.5 -10.5q68 -14 123 -46.5t97.5 -86.5t73.5 -131.5t51 -181.5q60 204 146.5 312 t196.5 134q20 5 34.5 6t24.5 1q39 0 75.5 -12t64.5 -35t44.5 -56.5t16.5 -75.5q0 -17 -3.5 -43t-14.5 -51q-17 -38 -44.5 -52.5t-56.5 -14.5q-26 0 -50.5 9t-45 27t-35 44t-18.5 60q-38 -26 -70 -69t-58 -96.5t-45.5 -115t-33 -124.5t-20.5 -125t-7 -117v-650h-203v650z M-188 1493h198l-325 -376h-154z" />
+<glyph unicode="&#x38f;" d="M90 1460h198l-325 -376h-154zM119 172h245q-60 65 -104 133t-72.5 141.5t-42.5 155.5t-14 176q0 158 37.5 284.5t106.5 215t167 135.5t218 47q121 0 219 -47.5t167 -136t106.5 -214.5t37.5 -284q0 -92 -13.5 -173t-42 -155.5t-73 -143t-105.5 -134.5h248v-172h-463v172 q58 36 105 97t80 141t51 176t18 202q0 121 -23.5 215.5t-67 159t-105 98t-138.5 33.5t-138.5 -33.5t-105 -98t-66.5 -158.5t-23 -215q0 -102 16.5 -196.5t49 -175.5t79.5 -144t109 -101v-172h-463v172z" />
+<glyph unicode="&#x390;" d="M766 1892h198l-325 -376h-154zM272 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM749 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM864 -8q-180 0 -262 96q-82 99 -82 310v579h-210v143h398v-733 q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111z" />
+<glyph unicode="&#x391;" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x392;" d="M166 1493h442q114 0 203 -25t150 -74t92.5 -120t31.5 -164q0 -134 -65.5 -212.5t-196.5 -98.5q73 -11 131 -42.5t98.5 -82t62.5 -118t22 -149.5q0 -201 -132 -304t-397 -103h-442v1493zM604 877q144 0 210.5 55.5t66.5 177.5q0 58 -15 99t-48.5 67.5t-86 38.5t-127.5 12 h-235v-450h235zM608 166q88 0 150 15t101 46.5t57 81.5t18 120q0 147 -78.5 215.5t-247.5 68.5h-239v-547h239z" />
+<glyph unicode="&#x393;" d="M215 1493h924v-170h-721v-1323h-203v1493z" />
+<glyph unicode="&#x394;" d="M494 1493h245l457 -1493h-1159zM938 170l-322 1145l-322 -1145h644z" />
+<glyph unicode="&#x395;" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x396;" d="M110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
+<glyph unicode="&#x397;" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
+<glyph unicode="&#x398;" d="M40 676q0 196 76 360.5t210 260.5t301 96q166 0 295 -95.5t200 -258t71 -355.5q0 -205 -78.5 -368t-212.5 -254t-293 -91q-163 0 -293 94.5t-203 256t-73 354.5zM990 685q0 139 -38 257.5t-121 192t-212 73.5q-130 0 -214 -74.5t-123 -194.5t-39 -260q0 -143 40.5 -261.5 t124.5 -190t208 -71.5q125 0 209 72t124.5 192t40.5 265zM383 764h467v-170h-467v170z" />
+<glyph unicode="&#x399;" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x39a;" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
+<glyph unicode="&#x39b;" d="M494 1493h245l457 -1493h-209l-371 1315l-370 -1315h-209z" />
+<glyph unicode="&#x39c;" d="M87 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
+<glyph unicode="&#x39d;" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
+<glyph unicode="&#x39e;" d="M137 1493h959v-170h-959v170zM340 881h553v-170h-553v170zM137 170h959v-170h-959v170z" />
+<glyph unicode="&#x39f;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q83 0 136.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 162.5t-4.5 161.5t-13.5 128.5t-21.5 100.5t-28.5 77.5 q-35 72 -88.5 106.5t-131.5 34.5q-79 0 -133 -35t-88 -107q-68 -143 -68 -469q0 -165 16.5 -280t51.5 -188q33 -70 86.5 -106t133.5 -36z" />
+<glyph unicode="&#x3a0;" d="M137 1493h959v-1493h-203v1323h-553v-1323h-203v1493z" />
+<glyph unicode="&#x3a1;" d="M172 1493h436q251 0 379.5 -112.5t128.5 -334.5q0 -221 -127.5 -333.5t-380.5 -112.5h-234v-600h-202v1493zM608 766q141 0 219 73.5t78 207.5t-77.5 207t-219.5 73h-234v-561h234z" />
+<glyph unicode="&#x3a3;" d="M120 170l454 577l-454 576v170h1013v-170h-802l455 -576l-455 -577h802v-170h-1013v170z" />
+<glyph unicode="&#x3a4;" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
+<glyph unicode="&#x3a5;" d="M504 650q0 60 -8.5 126.5t-24 133t-36.5 128.5t-47 114t-56 90t-62 55q-13 7 -32 13.5t-40 11t-43.5 7.5t-42.5 3q-17 0 -37.5 -2t-40.5 -7v170q18 6 40 8.5t46 2.5q31 0 69.5 -3.5t71.5 -10.5q68 -14 123 -46.5t97.5 -86.5t73.5 -131.5t51 -181.5q60 204 146.5 312 t196.5 134q20 5 34.5 6t24.5 1q39 0 75.5 -12t64.5 -35t44.5 -56.5t16.5 -75.5q0 -17 -3.5 -43t-14.5 -51q-17 -38 -44.5 -52.5t-56.5 -14.5q-26 0 -50.5 9t-45 27t-35 44t-18.5 60q-38 -26 -70 -69t-58 -96.5t-45.5 -115t-33 -124.5t-20.5 -125t-7 -117v-650h-203v650z" />
+<glyph unicode="&#x3a6;" d="M368 170h147v116q-89 9 -162 38t-125 83.5t-81 137.5t-29 200t29 200t81.5 138t125.5 84t161 38v118h-147v170h497v-170h-147v-118q88 -9 161 -38t125.5 -84t81.5 -138t29 -200t-29 -200t-81 -137.5t-125.5 -83.5t-161.5 -38v-116h147v-170h-497v170zM515 1029 q-77 -17 -118 -58q-68 -68 -68 -226q0 -157 68 -225q41 -42 118 -58v567zM718 462q42 9 72 25t47 33q67 67 67 225q0 159 -67 226q-41 41 -119 58v-567z" />
+<glyph unicode="&#x3a7;" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
+<glyph unicode="&#x3a8;" d="M367 170h147v214q-177 32 -274 183q-123 190 -123 583v343h203v-343q0 -173 20 -286t56 -183q45 -87 118 -121v933h203v-933q73 33 119 121q75 145 75 469v343h203v-343q0 -393 -123 -583q-97 -151 -274 -183v-214h147v-170h-497v170z" />
+<glyph unicode="&#x3a9;" d="M74 172h245q-122 132 -178 278q-55 143 -55 333q0 309 144 494q71 91 166.5 137t217.5 46q125 0 221 -47t166 -136q144 -183 144 -494q0 -190 -55 -333q-29 -75 -73.5 -143.5t-105.5 -134.5h248v-172h-463v172q120 76 187 241q33 81 50 176t17 201q0 116 -21.5 210 t-67.5 162q-43 63 -105 97.5t-140 34.5q-82 0 -142.5 -36t-101.5 -96q-44 -65 -66.5 -157t-22.5 -215q0 -106 17 -201t50 -176q35 -85 82 -144.5t105 -96.5v-172h-463v172z" />
+<glyph unicode="&#x3aa;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM202 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x3ab;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM504 650q0 60 -8.5 126.5t-24 133t-36.5 128.5t-47 114t-56 90t-62 55q-13 7 -32 13.5t-40 11 t-43.5 7.5t-42.5 3q-17 0 -37.5 -2t-40.5 -7v170q18 6 40 8.5t46 2.5q31 0 69.5 -3.5t71.5 -10.5q68 -14 123 -46.5t97.5 -86.5t73.5 -131.5t51 -181.5q60 204 146.5 312t196.5 134q20 5 34.5 6t24.5 1q39 0 75.5 -12t64.5 -35t44.5 -56.5t16.5 -75.5q0 -17 -3.5 -43 t-14.5 -51q-17 -38 -44.5 -52.5t-56.5 -14.5q-26 0 -50.5 9t-45 27t-35 44t-18.5 60q-38 -26 -70 -69t-58 -96.5t-45.5 -115t-33 -124.5t-20.5 -125t-7 -117v-650h-203v650z" />
+<glyph unicode="&#x3ac;" d="M756 1673h198l-325 -376h-154zM508 -25q-101 0 -182 39t-138 113t-87.5 181t-30.5 244q0 153 36.5 265t98.5 184.5t143.5 108t171.5 35.5q68 0 126 -20t103 -59.5t75.5 -99.5t44.5 -139l99 293h164l-205 -607l40 -219q4 -24 17 -49t30 -44.5t35.5 -32t34.5 -12.5h88v-156 h-110q-47 0 -86.5 17t-70 46t-50.5 68t-29 83q-23 -54 -50 -98t-64 -75.5t-87 -48.5t-117 -17zM504 127q63 0 114 53t87 160l61 181l-44 231q-12 65 -33.5 110.5t-49 74t-59.5 41.5t-65 13q-49 0 -94 -27.5t-80 -84.5q-38 -63 -57.5 -149t-19.5 -183q0 -104 21 -183 t55 -131.5t77 -79t87 -26.5z" />
+<glyph unicode="&#x3ad;" d="M756 1675h198l-325 -376h-154zM693 -22q-125 0 -222 24t-164.5 68.5t-102.5 108t-35 142.5q0 59 19.5 107t56 84t88 59.5t116.5 35.5q-120 25 -184 89t-64 160q0 67 31.5 120.5t90.5 91.5t143 58.5t189 20.5q158 0 368 -48v-167q-105 27 -191 39.5t-158 12.5 q-142 0 -216 -42.5t-74 -111.5q0 -68 71.5 -111t207.5 -43h166v-144h-159q-75 0 -134 -14t-100 -40t-62.5 -62.5t-21.5 -81.5q0 -91 90 -143.5t265 -52.5q99 0 189 17.5t168 51.5v-173q-97 -28 -187 -42t-184 -14z" />
+<glyph unicode="&#x3ae;" d="M756 1675h198l-325 -376h-154zM866 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-1120h-185v1120z" />
+<glyph unicode="&#x3af;" d="M756 1648h198l-325 -376h-154zM864 -8q-94 0 -159 25.5t-103 70.5q-41 49 -61.5 128t-20.5 182v579h-210v143h398v-733q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111z" />
+<glyph unicode="&#x3b0;" d="M766 1894h198l-325 -376h-154zM272 1326q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM749 1326q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM608 -6q-90 0 -155.5 23.5t-107.5 73t-62.5 126t-20.5 183.5l-1 571 h-210v143h399v-725q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10q75 0 130.5 40.5t94 108t60 155t29.5 180.5q1 14 1.5 27.5t0.5 27.5q0 47 -7.5 98t-25.5 104.5t-48.5 109.5t-76.5 113h186q70 -90 113.5 -209t43.5 -273q0 -75 -14.5 -151.5t-43.5 -147.5t-72 -132.5 t-101 -107.5t-130.5 -72.5t-159.5 -26.5z" />
+<glyph unicode="&#x3b1;" d="M508 -25q-101 0 -182 39t-138 113t-87.5 181t-30.5 244q0 153 36.5 265t98.5 184.5t143.5 108t171.5 35.5q68 0 126 -20t103 -59.5t75.5 -99.5t44.5 -139l99 293h164l-205 -607l40 -219q4 -24 17 -49t30 -44.5t35.5 -32t34.5 -12.5h88v-156h-110q-47 0 -86.5 17t-70 46 t-50.5 68t-29 83q-23 -54 -50 -98t-64 -75.5t-87 -48.5t-117 -17zM504 127q63 0 114 53t87 160l61 181l-44 231q-12 65 -33.5 110.5t-49 74t-59.5 41.5t-65 13q-49 0 -94 -27.5t-80 -84.5q-38 -63 -57.5 -149t-19.5 -183q0 -104 21 -183t55 -131.5t77 -79t87 -26.5z" />
+<glyph unicode="&#x3b2;" d="M152 1113q0 120 36 206.5t95 142.5t135 82.5t156 26.5q50 0 102 -10t100.5 -31.5t91.5 -54.5t75 -78.5t50.5 -103.5t18.5 -130q0 -53 -10.5 -106t-32 -100.5t-54 -85.5t-75.5 -61q65 -13 117.5 -50.5t89 -90.5t56.5 -118.5t20 -133.5q0 -94 -36.5 -174t-101 -138.5 t-153.5 -91.5t-194 -34q-37 0 -71.5 4.5t-70 15t-74.5 27.5t-85 43v-495h-185v1539zM337 342q20 -35 56 -65t81 -52t95.5 -34.5t100.5 -12.5q52 0 99.5 15t84 47t58 81.5t21.5 118.5q0 138 -96.5 205t-295.5 67q-21 0 -38 -0.5t-34 -1.5v170q88 -3 156 16t114 55.5 t69.5 88.5t23.5 114q0 65 -23.5 108.5t-59 70t-78.5 37.5t-82 11q-48 0 -93 -15.5t-80.5 -48.5t-57 -85t-21.5 -125v-765z" />
+<glyph unicode="&#x3b3;" d="M556 0l-302 836q-45 126 -139 126h-49v158h70q194 0 259 -176l255 -685l326 861h191l-421 -1120v-426h-190v426z" />
+<glyph unicode="&#x3b4;" d="M617 -29q-235 0 -357.5 149.5t-122.5 438.5q0 151 32.5 259t90.5 178q14 17 33 35.5t41 35.5q-8 3 -25 17.5t-34 31.5q-34 35 -48 72t-14 81q0 68 30 123.5t87.5 94.5t140 60.5t187.5 21.5q38 0 77 -3t64 -9l151 -36v-173q-66 24 -144 40t-159 14l-32 -1 q-35 -1 -67.5 -11t-65.5 -34l-39 -28q-27 -24 -27 -71q0 -32 15 -53.5t56 -42.5q18 -8 46 -10.5t83 -3.5q241 -7 360.5 -154t119.5 -432q0 -291 -122 -440.5t-357 -149.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5 t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x3b5;" d="M693 -22q-125 0 -222 24t-164.5 68.5t-102.5 108t-35 142.5q0 59 19.5 107t56 84t88 59.5t116.5 35.5q-120 25 -184 89t-64 160q0 67 31.5 120.5t90.5 91.5t143 58.5t189 20.5q158 0 368 -48v-167q-105 27 -191 39.5t-158 12.5q-142 0 -216 -42.5t-74 -111.5 q0 -68 71.5 -111t207.5 -43h166v-144h-159q-75 0 -134 -14t-100 -40t-62.5 -62.5t-21.5 -81.5q0 -91 90 -143.5t265 -52.5q99 0 189 17.5t168 51.5v-173q-97 -28 -187 -42t-184 -14z" />
+<glyph unicode="&#x3b6;" d="M738 -279q26 -2 51.5 4.5t46 22t33 40t12.5 58.5q0 48 -29 81t-92 44q-30 6 -86.5 12t-124 23t-137.5 48.5t-127.5 88.5t-94 143t-36.5 212q0 117 35 234.5t106 230t178 216.5t251 192h-532v185h870v-185q-362 -195 -544.5 -390t-182.5 -396q0 -27 3 -51q10 -94 35 -160 t58.5 -110t74.5 -70t84.5 -40t87 -19t82.5 -8q141 -11 218 -79t77 -192q0 -59 -19 -111t-58 -91t-99 -61.5t-141 -22.5v151z" />
+<glyph unicode="&#x3b7;" d="M866 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-1120h-185v1120z" />
+<glyph unicode="&#x3b8;" d="M616 -29q-117 0 -206 49.5t-150 146t-92 239t-31 329.5q0 186 31 329t92 240t150 146.5t206 49.5t206.5 -49.5t150 -146.5t92 -240t31.5 -330q0 -372 -123 -567.5t-357 -195.5zM899 828q-3 113 -21.5 207.5t-53 162.5t-86.5 106t-122 38t-121.5 -38t-86 -106t-53 -162.5 t-21.5 -207.5h565zM616 129q70 0 122 38.5t87 107t53 163t21 206.5h-565q3 -112 21 -206.5t52.5 -163t86.5 -107t122 -38.5z" />
+<glyph unicode="&#x3b9;" d="M864 -8q-94 0 -159 25.5t-103 70.5q-41 49 -61.5 128t-20.5 182v579h-210v143h398v-733q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111v0z" />
+<glyph unicode="&#x3ba;" d="M186 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
+<glyph unicode="&#x3bb;" d="M559 1074l-74 198q-25 67 -75 96.5t-126 29.5h-49v158l70 -2q133 -4 219 -45t118 -128l516 -1381h-195l-314 828l-386 -828h-195z" />
+<glyph unicode="&#x3bc;" d="M195 1120h184v-696q0 -143 59.5 -218t171.5 -75q128 0 192 84.5t64 251.5v653h185v-864q0 -60 16 -87.5t49 -27.5q7 0 24 5q13 4 42 18v-148q-38 -23 -72 -34t-68 -11q-125 0 -149 158q-46 -81 -112 -119.5t-156 -38.5q-93 0 -155.5 37.5t-107.5 118.5v-555h-167v1548z " />
+<glyph unicode="&#x3bd;" d="M116 1120h198l289 -940q63 64 117.5 137t95 145.5t64 139t23.5 119.5q0 24 -5.5 64t-16.5 85q-8 29 -18.5 57.5t-26 59t-37.5 63.5t-52 70h186q33 -44 62 -96.5t50 -107.5t33 -109t12 -100q0 -61 -21 -126.5t-55.5 -131.5t-79.5 -130t-93.5 -122t-97 -108.5t-89.5 -88.5 h-196z" />
+<glyph unicode="&#x3be;" d="M763 -279q31 -2 57.5 6t45.5 24.5t29.5 40t10.5 52.5q0 46 -29 82t-92 45q-28 4 -85 8t-126.5 15.5t-143 34.5t-133.5 65.5t-98.5 107t-38.5 160.5q0 71 23 137.5t66.5 123.5t105.5 101.5t140 71.5q-141 17 -210.5 93t-69.5 196q0 106 53.5 174.5t166.5 111.5h-208v185 h789v-185q-158 0 -275.5 -19t-196.5 -54.5t-118 -86.5t-39 -115q0 -56 30.5 -95t95 -65t164 -39.5t238.5 -16.5v-170q-147 -11 -254 -41t-176.5 -75t-103.5 -101t-34 -117q0 -53 22.5 -90.5t59 -63t83 -41.5t95 -26.5t95 -16.5t83.5 -11q82 -12 138.5 -34t91 -54.5t50 -76 t15.5 -99.5q0 -64 -19 -117.5t-58 -92.5t-99 -61t-141 -22v151z" />
+<glyph unicode="&#x3bf;" d="M616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5 q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x3c0;" d="M1037 -39q-114 0 -160 66q-23 32 -34.5 90t-11.5 151v684h-428v-952h-180v952h-143v148h1073v-148h-141v-704q0 -35 5.5 -60.5t19.5 -42.5q12 -16 30 -24t45 -8q18 0 41 3q10 1 14.5 1.5t6.5 0.5h3.5t4.5 1v-133q-32 -13 -72 -19q-38 -6 -73 -6z" />
+<glyph unicode="&#x3c1;" d="M180 540q0 158 31 272.5t89.5 189t142.5 110t190 35.5q116 0 203.5 -40.5t145.5 -116.5t87 -184t29 -244q0 -140 -30 -250t-86 -185.5t-136 -115.5t-180 -40q-105 0 -180.5 43t-120.5 127v-567h-185v966zM637 127q134 0 201 108.5t67 323.5t-67 323.5t-201 108.5 q-135 0 -203.5 -109t-68.5 -323t68.5 -323t203.5 -109z" />
+<glyph unicode="&#x3c2;" d="M696 -279q31 -2 57 6t45 24t30 40t11 54q0 44 -27 79.5t-94 46.5q-27 4 -78.5 9.5t-113 22.5t-125.5 52t-116.5 97.5t-86 158.5t-33.5 236q0 143 37.5 255t108 188.5t171.5 116.5t229 40q88 0 164 -20.5t156 -65.5v-193q-69 62 -142 92.5t-166 30.5q-179 0 -271.5 -112.5 t-92.5 -321.5q0 -101 20 -172t52 -118.5t72 -74.5t80 -41t75.5 -18.5t59.5 -5.5q148 -10 221.5 -84t73.5 -189q0 -59 -19 -110.5t-58 -90t-99 -61t-141 -22.5v151z" />
+<glyph unicode="&#x3c3;" d="M589 -29q-111 0 -198 38t-147.5 112t-92.5 182.5t-32 250.5q0 135 29.5 240.5t89.5 177.5t150 110t210 38h515v-184h-241q206 -162 206 -443q0 -114 -34 -210t-97 -165.5t-153.5 -108t-204.5 -38.5zM594 127q72 0 126 29t90.5 79t54.5 117.5t18 145.5q0 123 -43.5 215.5 t-128.5 156.5q-28 21 -59 38t-61 27q-68 0 -119.5 -19t-86.5 -62.5t-53 -115.5t-18 -178q0 -216 71.5 -324.5t208.5 -108.5z" />
+<glyph unicode="&#x3c4;" d="M864 0q-90 0 -155 23.5t-107 73t-62 126.5t-20 183v530h-360v182h914v-182h-366v-541q0 -145 34 -191q36 -48 144 -48h89v-156h-111v0z" />
+<glyph unicode="&#x3c5;" d="M595 0q-83 0 -145.5 23.5t-104 73t-62.5 126t-21 183.5l-1 571h-210v143h399v-725q0 -63 6.5 -108t23.5 -74.5t47 -43t77 -13.5q85 0 146.5 39.5t102 106.5t62 154.5t27.5 183.5q1 12 1.5 27t0.5 31q0 45 -7.5 95.5t-25.5 104t-48.5 109.5t-76.5 113h186 q73 -94 115 -214.5t42 -260.5q0 -77 -14 -154.5t-42 -149t-71.5 -134t-103 -108.5t-135 -72.5t-168.5 -26.5z" />
+<glyph unicode="&#x3c6;" d="M525 -25q-99 0 -182 39t-142 114.5t-92 186.5t-33 255q0 142 31 242.5t84 166t122.5 101t146.5 48.5v-163q-64 -25 -114 -101q-38 -58 -57 -133.5t-19 -173.5q0 -107 21 -185.5t56 -130.5t81 -77t97 -25v687q0 152 62.5 227t175.5 75q74 0 144.5 -33.5t126 -102.5 t89.5 -175.5t34 -251.5q0 -144 -34 -254t-94 -184.5t-142.5 -112.5t-178.5 -38v-402h-183v401zM708 140q46 0 91.5 23.5t82 74.5t59 133t22.5 199q0 112 -21 186.5t-56 124.5q-31 44 -64 67t-55 23q-26 0 -42.5 -36.5t-16.5 -108.5v-686z" />
+<glyph unicode="&#x3c7;" d="M524 351l-183 485q-47 126 -203 126h-49v158h70q126 0 207.5 -43t115.5 -133l143 -380l266 556h191l-373 -780l182 -482q46 -126 204 -126h49v-158h-70q-126 0 -208 43t-116 133l-142 378l-265 -554h-191z" />
+<glyph unicode="&#x3c8;" d="M525 -25q-72 0 -142.5 37.5t-126.5 103.5t-90.5 157t-34.5 199v648h185v-641q0 -89 21.5 -149t62.5 -104q27 -29 59.5 -51.5t65.5 -34.5v980h183v-980q29 10 62.5 32t62.5 54q41 44 62.5 104t21.5 149v641h185v-648q0 -108 -34.5 -199t-90.5 -157t-126.5 -103.5 t-142.5 -37.5v-401h-183v401z" />
+<glyph unicode="&#x3c9;" d="M369 -29q-83 0 -140.5 38.5t-92.5 111t-50.5 176t-15.5 234.5q0 87 7 161.5t22.5 144t40.5 138.5t61 145h190q-34 -77 -58 -147.5t-39 -142.5t-22 -149.5t-7 -168.5q0 -193 30 -289t95 -96q37 0 69.5 29.5t47.5 83.5q6 22 10.5 57.5t8 90.5t5 131.5t1.5 179.5h170 q0 -106 1.5 -181.5t4.5 -129t8 -88.5t12 -59q14 -53 42 -83.5t62 -30.5q22 0 41 12.5t34 32.5t26.5 45.5t18.5 52.5q3 14 6.5 33t5.5 48t3.5 71.5t1.5 103.5v32q0 287 -126 562h190q36 -76 61 -145t40.5 -138.5t22.5 -144t7 -161.5q0 -131 -15.5 -234.5t-51 -176t-92.5 -111 t-140 -38.5q-51 0 -92.5 14t-72 38.5t-51.5 57t-32 69.5q-11 -37 -32 -69.5t-52 -57t-72 -38.5t-92 -14z" />
+<glyph unicode="&#x3ca;" d="M349 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM864 -8q-94 0 -159 25.5t-103 70.5q-41 49 -61.5 128t-20.5 182v579h-210v143h398v-733 q0 -72 7.5 -118.5t27.5 -73.5t54.5 -37t88.5 -10h89v-156h-111z" />
+<glyph unicode="&#x3cb;" d="M349 1322q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1322q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM595 0q-83 0 -145.5 23.5t-104 73t-62.5 126t-21 183.5l-1 571h-210v143h399v-725q0 -63 6.5 -108 t23.5 -74.5t47 -43t77 -13.5q85 0 146.5 39.5t102 106.5t62 154.5t27.5 183.5q1 12 1.5 27t0.5 31q0 45 -7.5 95.5t-25.5 104t-48.5 109.5t-76.5 113h186q73 -94 115 -214.5t42 -260.5q0 -77 -14 -154.5t-42 -149t-71.5 -134t-103 -108.5t-135 -72.5t-168.5 -26.5z" />
+<glyph unicode="&#x3cc;" d="M756 1675h198l-325 -376h-154zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5 q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x3cd;" d="M756 1648h198l-325 -376h-154zM595 0q-83 0 -145.5 23.5t-104 73t-62.5 126t-21 183.5l-1 571h-210v143h399v-725q0 -63 6.5 -108t23.5 -74.5t47 -43t77 -13.5q85 0 146.5 39.5t102 106.5t62 154.5t27.5 183.5q1 12 1.5 27t0.5 31q0 45 -7.5 95.5t-25.5 104t-48.5 109.5 t-76.5 113h186q73 -94 115 -214.5t42 -260.5q0 -77 -14 -154.5t-42 -149t-71.5 -134t-103 -108.5t-135 -72.5t-168.5 -26.5z" />
+<glyph unicode="&#x3ce;" d="M756 1648h198l-325 -376h-154zM369 -29q-83 0 -140.5 38.5t-92.5 111t-50.5 176t-15.5 234.5q0 87 7 161.5t22.5 144t40.5 138.5t61 145h190q-34 -77 -58 -147.5t-39 -142.5t-22 -149.5t-7 -168.5q0 -193 30 -289t95 -96q37 0 69.5 29.5t47.5 83.5q6 22 10.5 57.5t8 90.5 t5 131.5t1.5 179.5h170q0 -106 1.5 -181.5t4.5 -129t8 -88.5t12 -59q14 -53 42 -83.5t62 -30.5q22 0 41 12.5t34 32.5t26.5 45.5t18.5 52.5q3 14 6.5 33t5.5 48t3.5 71.5t1.5 103.5v32q0 287 -126 562h190q36 -76 61 -145t40.5 -138.5t22.5 -144t7 -161.5 q0 -131 -15.5 -234.5t-51 -176t-92.5 -111t-140 -38.5q-51 0 -92.5 14t-72 38.5t-51.5 57t-32 69.5q-11 -37 -32 -69.5t-52 -57t-72 -38.5t-92 -14z" />
+<glyph unicode="&#x3f4;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM902 881q-6 111 -22.5 199.5t-49.5 149.5t-85 93.5t-129 32.5q-78 0 -130 -33.5t-84.5 -95t-48.5 -149.5t-22 -197h571zM617 135q76 0 130 33.5 t88.5 104t51 179.5t18.5 259h-577q1 -150 17.5 -258.5t51 -179t89 -104.5t131.5 -34z" />
+<glyph unicode="&#x3f6;" d="M450 -29q-52 0 -107 5.5t-102 16.5l-79 18v167l74 -25q38 -13 90 -19.5t103 -6.5q98 0 171 24.5t122.5 70.5t78 113t38.5 152h-677v144h677q-9 84 -37.5 150.5t-78 113t-121 71.5t-165.5 25q-54 0 -106 -7.5t-95 -18.5q-15 -4 -35 -10t-39 -13v163q13 4 23 7t18.5 5 t17.5 4t20 4q57 11 108 16.5t100 5.5q136 0 244.5 -40t184 -116t115.5 -184.5t40 -246.5t-40.5 -247.5t-116 -185.5t-183.5 -116t-243 -40z" />
+<glyph unicode="&#x400;" d="M377 1852h184l197 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x401;" d="M405 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM797 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x402;" d="M658 -470h-24t-24.5 0.5t-20.5 1t-13 0.5l-3 181l78 -17q7 -1 14 -1.5t22 -0.5q67 0 114 17t76 57.5t42 108.5t13 169v416q0 154 -54 223.5t-172 69.5q-50 0 -96 -11t-90 -31q-23 -11 -38.5 -21.5t-29.5 -27.5q-33 -40 -51 -109.5t-18 -153.5v-401h-203v1325h-226v170 h874v-170h-445v-525q22 25 40.5 38.5t44.5 27.5q7 4 11.5 6t9 4.5t10.5 5.5t17 10q62 36 213 47q13 1 23.5 1.5t24.5 0.5q78 0 141.5 -21t106.5 -63q9 -8 16 -16.5t9 -12.5q85 -112 85 -340v-442q0 -143 -25.5 -241t-82.5 -159.5t-148 -88.5t-221 -27z" />
+<glyph unicode="&#x403;" d="M744 1852h186l-229 -264h-154zM215 1493h924v-170h-721v-1323h-203v1493z" />
+<glyph unicode="&#x404;" d="M733 -29q-144 0 -256 52t-189.5 151t-118 242.5t-40.5 326.5q0 184 41 328.5t118.5 244t189.5 152t255 52.5q176 0 330 -82v-207q-152 125 -339 125q-96 0 -163 -34t-111 -100t-68.5 -164t-36.5 -227h627v-170h-632q2 -113 26.5 -209.5t72.5 -167t120.5 -110t171.5 -39.5 q88 0 173 31.5t159 93.5v-207q-154 -82 -330 -82z" />
+<glyph unicode="&#x405;" d="M586 -29q-110 0 -215 22.5t-213 67.5v215q115 -73 217 -107t208 -34q153 0 237.5 67.5t84.5 202.5q0 50 -13.5 89.5t-44 70t-81 53t-123.5 39.5l-108 25q-105 24 -180 59.5t-123 84t-70.5 111t-22.5 140.5q0 101 35 183t99.5 139.5t155.5 89t202 31.5q171 0 381 -78v-205 q-185 119 -372 119q-71 0 -128 -17t-97 -49t-61.5 -80t-21.5 -109q0 -45 13 -80t43 -63t79.5 -49t122.5 -37l106 -24q106 -24 182 -62.5t125 -92.5t72 -124.5t23 -157.5q0 -215 -132 -327.5t-380 -112.5z" />
+<glyph unicode="&#x406;" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x407;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x408;" d="M506 -29q-50 0 -97.5 5t-95.5 15.5t-98.5 28t-105.5 41.5v236q92 -81 187.5 -121.5t207.5 -40.5q69 0 117 17.5t77.5 58t42.5 108t13 168.5v836h-381v170h583v-1006q0 -139 -25 -237t-79.5 -160t-140 -90.5t-205.5 -28.5z" />
+<glyph unicode="&#x409;" d="M0 164q71 0 117.5 16t75.5 56t43.5 108t20.5 172q3 46 4.5 109t3 136t2 151t0.5 155v426h544v-600h21q72 0 143.5 -28.5t129 -84.5t93 -139.5t35.5 -193.5t-36 -193.5t-93 -140t-128.5 -85t-143.5 -28.5h-207v1323h-172v-250v-160q0 -140 -3 -261.5t-16 -222.5 t-38 -179.5t-68 -130.5q-49 -59 -129.5 -89t-198.5 -30v164zM832 166q45 0 84 18t68.5 53t46 87t16.5 120q0 67 -16 119.5t-44.5 89t-68 55.5t-86.5 19h-21v-561h21z" />
+<glyph unicode="&#x40a;" d="M44 1493h186v-612h395v612h186v-600h21q90 0 163.5 -27t126.5 -80.5t82 -133.5t29 -186q0 -121 -36 -209t-93 -145t-128.5 -84.5t-143.5 -27.5h-207v711h-395v-711h-186v1493zM832 166q45 0 84 17.5t68.5 52.5t46 87t16.5 121q0 66 -15.5 118.5t-44 89t-68 56t-87.5 19.5 h-21v-561h21z" />
+<glyph unicode="&#x40b;" d="M180 1325h-216v170h864v-170h-445v-525q22 25 40.5 38.5t44.5 27.5q7 4 11.5 6t9 4.5t10.5 5.5t17 10q62 36 213 47q13 1 23.5 1.5t24.5 0.5q78 0 141.5 -21t106.5 -63q9 -8 16 -16.5t9 -12.5q85 -112 85 -340v-488h-203v462q0 154 -54 223.5t-172 69.5q-50 0 -96 -11 t-90 -31q-23 -11 -38.5 -21.5t-29.5 -27.5q-33 -40 -51 -109.5t-18 -153.5v-401h-203v1325z" />
+<glyph unicode="&#x40c;" d="M699 1851h186l-229 -264h-154zM137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
+<glyph unicode="&#x40d;" d="M377 1851h184l197 -264h-154zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
+<glyph unicode="&#x40e;" d="M636 1609q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148 t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
+<glyph unicode="&#x40f;" d="M531 0h-394v1493h203v-1323h553v1323h203v-1493h-394v-322h-171v322z" />
+<glyph unicode="&#x410;" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x411;" d="M166 1493h902v-166h-699v-450h235q379 -15 480 -206q28 -53 40.5 -120t12.5 -132q0 -211 -130 -315t-399 -104h-442v1493zM608 166q88 0 150 15t101 46.5t57 81.5t18 120q0 147 -78.5 215.5t-247.5 68.5h-239v-547h239z" />
+<glyph unicode="&#x412;" d="M166 1493h442q114 0 203 -25t150 -74t92.5 -120t31.5 -164q0 -134 -65.5 -212.5t-196.5 -98.5q73 -11 131 -42.5t98.5 -82t62.5 -118t22 -149.5q0 -201 -132 -304t-397 -103h-442v1493zM604 877q144 0 210.5 55.5t66.5 177.5q0 58 -15 99t-48.5 67.5t-86 38.5t-127.5 12 h-235v-450h235zM608 166q88 0 150 15t101 46.5t57 81.5t18 120q0 147 -78.5 215.5t-247.5 68.5h-239v-547h239z" />
+<glyph unicode="&#x413;" d="M215 1493h924v-170h-721v-1323h-203v1493z" />
+<glyph unicode="&#x414;" d="M33 170h77q16 0 31 38.5t28 104t23.5 151.5t18.5 181t12 193.5t4 188.5v466h852v-1323h121v-492h-170v322h-827v-322h-170v492zM876 170v1153h-446v-297q0 -75 -4 -163t-10 -176.5t-13.5 -171.5t-14 -148.5t-11.5 -106.5t-7 -46q-6 -14 -6 -22q0 -22 47 -22h465z" />
+<glyph unicode="&#x415;" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x416;" d="M319 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l304 -891h-197l-222 650l-89 -186v-464h-187v464l-89 186l-222 -650h-197z" />
+<glyph unicode="&#x417;" d="M553 -29q-99 0 -206 19t-210 55v201q103 -54 201 -79.5t194 -25.5q169 0 258 74.5t89 210.5q0 68 -23 122t-66 91t-104 56.5t-137 19.5h-154v166h154q140 0 217.5 60.5t77.5 176.5q0 111 -73 171.5t-214 60.5q-76 0 -171.5 -19t-203.5 -61v186q121 32 215 48t172 16 q106 0 194 -28.5t150 -81t96.5 -125.5t34.5 -163q0 -126 -68 -207.5t-200 -115.5q148 -39 225.5 -138t77.5 -251q0 -102 -35.5 -183.5t-103 -138.5t-165.5 -87t-222 -30z" />
+<glyph unicode="&#x418;" d="M139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
+<glyph unicode="&#x419;" d="M616 1609q-290 0 -313 242h119q12 -54 62 -82.5t132 -28.5q165 0 195 111h119q-11 -120 -90 -181t-224 -61zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
+<glyph unicode="&#x41a;" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
+<glyph unicode="&#x41b;" d="M14 164q71 0 119 16t79 56t46.5 108t21.5 172q3 46 4.5 109t3 136t2 151t0.5 155v426h814v-1493h-203v1323h-408v-250v-185q0 -128 -3 -245t-15.5 -217t-37.5 -178.5t-68 -128.5q-102 -119 -355 -119v164z" />
+<glyph unicode="&#x41c;" d="M86 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
+<glyph unicode="&#x41d;" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
+<glyph unicode="&#x41e;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141 z" />
+<glyph unicode="&#x41f;" d="M137 1493h959v-1493h-203v1323h-553v-1323h-203v1493z" />
+<glyph unicode="&#x420;" d="M197 1493h436q251 0 379.5 -112.5t128.5 -334.5q0 -221 -127.5 -333.5t-380.5 -112.5h-234v-600h-202v1493zM633 766q141 0 219 73.5t78 207.5t-77.5 207t-219.5 73h-234v-561h234z" />
+<glyph unicode="&#x421;" d="M298 1315q159 205 453 205q43 0 99 -7h4q12 0 12 13v224q0 10 10 10h187q10 0 10 -10v-519q-152 125 -332 125q-391 0 -391 -611q0 -610 390 -610q90 0 175 32t158 93v-207q-152 -82 -328 -82q-144 0 -256.5 51.5t-190.5 151.5q-159 203 -159 569q0 367 159 572z" />
+<glyph unicode="&#x422;" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
+<glyph unicode="&#x423;" d="M204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
+<glyph unicode="&#x424;" d="M515 152q-129 6 -215.5 55.5t-138.5 132t-73.5 193.5t-21.5 239q0 127 21.5 235t73 187.5t138 126t216.5 50.5v122h203v-122q135 -5 222 -53.5t137.5 -129.5t70 -190.5t19.5 -235.5q0 -134 -21 -244t-72.5 -189.5t-138 -125.5t-217.5 -51v-152h-203v152zM515 1207 q-83 -13 -130.5 -47t-71.5 -89.5t-30 -132.5t-6 -177t6 -177t30 -132t71.5 -89t130.5 -47v891zM718 316q82 13 129.5 47t71.5 89t30.5 132t6.5 177t-6.5 177t-30.5 132.5t-71.5 89.5t-129.5 47v-891z" />
+<glyph unicode="&#x425;" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
+<glyph unicode="&#x426;" d="M1023 0h-923v1493h203v-1323h553v1323h203v-1323h134v-492h-170v322z" />
+<glyph unicode="&#x427;" d="M889 658q-52 -26 -95.5 -42t-84 -24.5t-80.5 -11.5t-85 -3q-55 0 -107 4.5t-97 19.5t-82.5 42t-64 71.5t-41.5 109.5t-15 156v513h203v-487q0 -84 14.5 -132.5t44.5 -73t76.5 -31t111.5 -6.5q46 0 82.5 3t71 13t70 29.5t78.5 52.5v632h203v-1493h-203v658z" />
+<glyph unicode="&#x428;" d="M114 1493h186v-1323h224v1323h186v-1323h224v1323h186v-1493h-1006v1493z" />
+<glyph unicode="&#x429;" d="M1063 0h-970v1493h186v-1323h224v1323h186v-1323h224v1323h186v-1323h134v-492h-170v322z" />
+<glyph unicode="&#x42a;" d="M313 1323h-261v170h463v-600h138q253 0 380.5 -112.5t127.5 -333.5q0 -222 -128.5 -334.5t-379.5 -112.5h-340v1323zM653 166q142 0 219.5 73t77.5 207t-78 207.5t-219 73.5h-138v-561h138z" />
+<glyph unicode="&#x42b;" d="M65 1493h202v-600h91q97 0 179.5 -28.5t143 -84.5t94.5 -139.5t34 -193.5t-34.5 -194t-95 -140t-143 -84.5t-178.5 -28.5h-293v1493zM931 1493h203v-1493h-203v1493zM358 166q51 0 95 15.5t76 49.5t50.5 87t18.5 128q0 134 -60 207.5t-180 73.5h-91v-561h91z" />
+<glyph unicode="&#x42c;" d="M197 1493h202v-600h234q253 0 380.5 -112.5t127.5 -333.5q0 -222 -128.5 -334.5t-379.5 -112.5h-436v1493zM633 166q142 0 219.5 73t77.5 207t-78 207.5t-219 73.5h-234v-561h234z" />
+<glyph unicode="&#x42d;" d="M499 -29q-176 0 -330 82v207q75 -63 161 -94t171 -31q98 0 170 38.5t120 108t73 166.5t28 213h-632v170h627q-15 138 -41 237.5t-69.5 163t-108.5 94t-158 30.5q-97 0 -181 -31t-160 -94v207q154 82 330 82q142 0 254.5 -52.5t190 -152t118.5 -244t41 -328.5 q0 -183 -40.5 -326.5t-118 -242.5t-189.5 -151t-256 -52z" />
+<glyph unicode="&#x42e;" d="M792 -29q-100 0 -172.5 45.5t-121 133.5t-74 217.5t-30.5 298.5h-111v-666h-203v1493h203v-657h111q5 162 30 289t73.5 214.5t121.5 134t174 46.5q202 0 301 -192t99 -583t-99.5 -582.5t-301.5 -191.5zM794 135q55 0 92 35t61 106q24 70 36 184t12 285t-12 285t-36 185 q-23 69 -60 105t-94 36q-107 0 -154 -141q-48 -141 -48 -470q0 -328 48 -469q47 -141 155 -141z" />
+<glyph unicode="&#x42f;" d="M415 666q-54 20 -105.5 50.5t-91.5 77.5t-64.5 113.5t-24.5 157.5q0 103 33 182.5t97.5 134t159.5 83t218 28.5h466v-1493h-203v631h-290l-350 -631h-214zM900 797v530h-263q-144 0 -219.5 -67.5t-75.5 -203.5q0 -259 287 -259h271z" />
+<glyph unicode="&#x430;" d="M513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5 q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106 q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#x431;" d="M617 -29q-116 0 -205.5 37.5t-150.5 109.5t-92.5 176.5t-31.5 237.5q0 28 0.5 39.5t0.5 22.5v11.5t-1 15.5l-7 167q-2 56 -3.5 100.5t-1.5 65.5q0 14 0.5 28t1.5 22q8 71 29 143.5t58 137.5t92.5 120t133.5 92q86 41 189 54.5t224 21.5q26 2 44 4.5t42 13.5l70 -142 q-19 -8 -40.5 -12t-45.5 -6l-240 -24q-44 -5 -86 -17t-86 -35q-45 -24 -83 -56t-66.5 -68t-46 -73.5t-22.5 -73.5l-8 -60q63 65 150.5 94t184.5 29q115 0 203.5 -38t149 -112.5t92 -184.5t31.5 -254q0 -143 -31.5 -252.5t-92 -184t-150 -112.5t-205.5 -38zM618 127 q283 0 283 432t-284 432q-285 0 -285 -430q0 -215 71 -324.5t215 -109.5z" />
+<glyph unicode="&#x432;" d="M239 1120h397q76 0 143.5 -17t118 -52.5t79.5 -88.5t29 -125q0 -44 -12 -84.5t-36 -72.5t-60.5 -53t-85.5 -27q67 -12 113 -35.5t74.5 -58t41.5 -79t13 -98.5q0 -162 -103.5 -245.5t-298.5 -83.5h-413v1120zM651 665q85 0 127 42.5t42 109.5t-42 110t-128 43h-227v-305 h228zM662 150q48 0 84.5 14.5t61 41t37.5 62.5t13 79q0 37 -10.5 68t-33 53.5t-59.5 34.5t-89 12h-243v-365h239z" />
+<glyph unicode="&#x433;" d="M307 1120h752v-150h-568v-970h-184v1120z" />
+<glyph unicode="&#x434;" d="M105 150h67q18 0 31.5 32t23.5 82.5t16 113t9.5 124t5 115.5t1.5 87v416h748v-970h121v-436h-150v286h-723v-286h-150v436zM822 150v820h-380v-270q0 -30 -4.5 -119.5t-14.5 -227.5q-5 -73 -8.5 -111.5t-7.5 -48.5q-7 -18 -7 -27q0 -8 6 -12t28 -4h388z" />
+<glyph unicode="&#x435;" d="M677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5 t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
+<glyph unicode="&#x436;" d="M318 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l259 -716h-179l-191 528l-104 -177v-351h-168v351l-104 177l-191 -528h-179z" />
+<glyph unicode="&#x437;" d="M539 -22q-90 0 -178.5 13.5t-191.5 42.5v173q76 -34 167 -51.5t190 -17.5q175 0 265 52.5t90 143.5q0 45 -22 81.5t-63 62.5t-100 40t-134 14h-158v144h165q137 0 208.5 43t71.5 111q0 69 -74.5 111.5t-216.5 42.5q-71 0 -157 -12.5t-191 -39.5v167q210 48 367 48 q105 0 189 -20.5t143.5 -58.5t91 -91.5t31.5 -120.5q0 -96 -64.5 -160t-184.5 -89q64 -12 116 -35.5t89 -59.5t56.5 -84t19.5 -107q0 -79 -35.5 -142.5t-102.5 -108t-165 -68.5t-222 -24z" />
+<glyph unicode="&#x438;" d="M195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
+<glyph unicode="&#x439;" d="M616 1272q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
+<glyph unicode="&#x43a;" d="M236 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
+<glyph unicode="&#x43b;" d="M50 150h35q45 0 78 14.5t56 46t36.5 80.5t19.5 117q2 26 4 61.5t3.5 77t2 86.5t0.5 89v398h785v-1120h-184v970h-417v-245q0 -80 -1.5 -164.5t-11 -165t-30.5 -152.5t-59 -126q-41 -58 -102.5 -87.5t-159.5 -29.5h-55v150z" />
+<glyph unicode="&#x43c;" d="M61 1120h184l375 -691l375 691h184v-1120h-184v741l-283 -481h-184l-283 481v-741h-184v1120z" />
+<glyph unicode="&#x43d;" d="M189 1120h184v-455h487v455h184v-1120h-184v515h-487v-515h-184v1120z" />
+<glyph unicode="&#x43e;" d="M616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5 q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x43f;" d="M189 1120h855v-1120h-184v970h-487v-970h-184v1120z" />
+<glyph unicode="&#x440;" d="M190 1120h167l18 -143q48 86 124.5 128t177.5 42q100 0 179.5 -40.5t135.5 -116.5t86 -185t30 -247t-30 -246.5t-86 -184.5t-136 -116t-180 -40q-105 0 -180.5 43t-120.5 127v-567h-185v1546zM647 127q134 0 201 108.5t67 323.5t-67 323.5t-201 108.5q-135 0 -203.5 -109 t-68.5 -323t68.5 -323t203.5 -109z" />
+<glyph unicode="&#x441;" d="M302 991q147 156 404 156q28 0 53 -2.5t53 -6.5h4q12 0 12 13v177q0 10 10 10h173q10 0 10 -10v-460q-71 64 -145 93.5t-163 29.5q-178 0 -271 -111.5t-93 -320.5t93.5 -320.5t271.5 -111.5q180 0 307 121v-191q-80 -45 -157 -65.5t-163 -20.5q-125 0 -226 40t-173 116 t-109.5 185.5t-37.5 246.5t37.5 246.5t109.5 185.5z" />
+<glyph unicode="&#x442;" d="M525 970h-311v150h806v-150h-311v-970h-184v970z" />
+<glyph unicode="&#x443;" d="M194 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47 q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
+<glyph unicode="&#x444;" d="M525 -29q-110 11 -189.5 48t-131 107t-76 177t-24.5 257q0 149 24 255t75.5 176.5t131 107.5t190.5 48v409h184v-409q111 -11 190.5 -48t131 -107.5t75.5 -176.5t24 -255q0 -150 -24.5 -257t-76 -177t-131 -107t-189.5 -48v-397h-184v397zM525 982q-60 -12 -103 -34 t-70 -67.5t-40 -122t-13 -199.5t13 -201t40 -125.5t70 -70.5t103 -35v855zM709 127q60 12 103 35t70 70.5t40 125.5t13 201t-13 199.5t-40 122t-70 67.5t-103 34v-855z" />
+<glyph unicode="&#x445;" d="M516 584l-401 536h204l297 -405l295 405h207l-401 -536l440 -584h-213l-328 449l-327 -449h-213z" />
+<glyph unicode="&#x446;" d="M1028 0h-844v1120h184v-970h486v970h184v-970h140v-436h-150v286z" />
+<glyph unicode="&#x447;" d="M837 466q-8 -3 -33 -13.5t-64.5 -21.5t-92.5 -20t-116 -9q-84 0 -152 19.5t-115.5 62t-73 109.5t-25.5 162v367h184v-367q0 -65 19.5 -103t53 -58t77 -26t91.5 -6q69 0 127 11.5t120 47.5v501h184v-1122h-184v466z" />
+<glyph unicode="&#x448;" d="M125 1120h168v-970h240v970h168v-970h240v970h168v-1120h-984v1120z" />
+<glyph unicode="&#x449;" d="M1083 0h-978v1120h168v-970h240v970h168v-970h240v970h168v-970h144v-436h-150v286z" />
+<glyph unicode="&#x44a;" d="M308 970h-248v150h432v-453h256q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82h-440v970zM740 156q124 0 191 43.5t67 133.5q0 91 -68 136t-190 45h-248v-358h248z" />
+<glyph unicode="&#x44b;" d="M104 1120h182v-453h91q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82h-273v1120zM945 1120h184v-1120h-184v1120zM369 154q124 0 191 44t67 135q0 92 -68 137.5t-190 45.5h-83v-362h83z" />
+<glyph unicode="&#x44c;" d="M225 1120h184v-453h256q104 0 186.5 -20.5t140 -62.5t88 -105.5t30.5 -148.5q0 -166 -115.5 -248t-329.5 -82h-440v1120zM657 153q257 0 257 180q0 94 -64.5 137.5t-192.5 43.5h-248v-361h248z" />
+<glyph unicode="&#x44d;" d="M545 -29q-85 0 -162 20t-158 66v191q62 -60 138 -90.5t170 -30.5q90 0 156 28t110.5 79t68 123t28.5 159h-542v144h537q-9 66 -32 126t-65 105.5t-106 72.5t-154 27q-91 0 -165 -30t-144 -93v193q82 46 158.5 66t160.5 20q127 0 228 -40t172 -116t109 -185t38 -247 t-38 -247t-109 -185t-172 -116t-227 -40z" />
+<glyph unicode="&#x44e;" d="M828 -29q-78 0 -145 35.5t-117 101.5t-82 161t-40 215h-142v-484h-184v1120h184v-486h142q8 127 40 223t82 160.5t115.5 97t142.5 32.5q80 0 150 -36t122 -109t82 -184t30 -260q0 -153 -31 -263.5t-83.5 -182.5t-121.5 -106.5t-144 -34.5zM689 243q27 -59 62.5 -88 t73.5 -29q39 0 75.5 31.5t62.5 94.5q23 57 36.5 139t13.5 183q0 198 -56 308q-26 53 -60 80.5t-70 27.5q-38 0 -72.5 -30.5t-62.5 -91.5q-27 -60 -41.5 -139.5t-14.5 -177.5t14 -176t39 -132z" />
+<glyph unicode="&#x44f;" d="M450 479q-25 10 -63 30t-73.5 56t-61 91.5t-25.5 138.5q0 86 29.5 147.5t80.5 101t118 58t142 18.5h397v-1120h-184v455h-193l-258 -455h-181zM810 605v365h-227q-28 0 -58 -10.5t-55 -32.5t-41 -57t-16 -83t16 -82.5t41 -56.5t55 -32.5t57 -10.5h228z" />
+<glyph unicode="&#x450;" d="M250 1673h198l281 -376h-154zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85 v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
+<glyph unicode="&#x451;" d="M385 1347q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM777 1347q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5 q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
+<glyph unicode="&#x452;" d="M661 -261q60 11 113.5 53t93.5 113.5t63.5 171.5t23.5 227q0 76 -10.5 134t-36 97.5t-68.5 59.5t-109 20q-144 0 -213 -91t-69 -263v-261h-184v977h-190v143h190v436h184v-436h448v-143h-448v-397q49 97 133 146t206 49q186 0 273 -119t87 -360q0 -146 -31 -269 t-92 -216.5t-152 -154t-212 -82.5v165z" />
+<glyph unicode="&#x453;" d="M887 1645h198l-325 -376h-154zM307 1120h752v-150h-568v-970h-184v1120z" />
+<glyph unicode="&#x454;" d="M711 -29q-126 0 -227 40t-172 116t-109 185t-38 247t38 247t109 185t172 116t228 40q84 0 160 -20t159 -66v-193q-68 61 -141 92t-168 31q-91 0 -154.5 -27t-105.5 -72.5t-65 -105.5t-32 -127l537 1v-144h-542q5 -87 28.5 -159t68 -123t110.5 -79t156 -28q94 0 170 30.5 t138 90.5v-191q-81 -46 -158 -66t-162 -20z" />
+<glyph unicode="&#x455;" d="M587 -29q-87 0 -177.5 17.5t-196.5 52.5v190q205 -106 375 -106q61 0 108.5 13t80.5 37t50 57t17 73q0 34 -13.5 62t-42.5 50.5t-76 40.5t-113 32l-8 2l-69 14q-82 16 -140 42.5t-94.5 64t-53.5 86.5t-17 111q0 163 108 250t314 87q173 0 334 -66v-180q-81 46 -159.5 69 t-168.5 23q-242 0 -242 -165q0 -35 11.5 -64t34.5 -47q26 -20 83.5 -37.5t145.5 -34.5l74 -14q138 -26 208 -103.5t70 -203.5q0 -83 -30.5 -148.5t-87.5 -111t-139.5 -69.5t-185.5 -24z" />
+<glyph unicode="&#x456;" d="M495 1323q-32 0 -32 30v173q0 30 32 30h130q32 0 32 -30v-173q0 -30 -32 -30h-130zM657 398q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722z" />
+<glyph unicode="&#x457;" d="M258 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM650 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM657 398q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233q-80 0 -143.5 25t-111.5 81 q-91 106 -91 300v578h-245v144h429v-722z" />
+<glyph unicode="&#x458;" d="M674 1323q-32 0 -32 30v173q0 30 32 30h130q32 0 32 -30v-173q0 -30 -32 -30h-130zM238 -270h234q180 0 180 250v997h-317v143h501v-1140q0 -196 -89 -301t-255 -105h-254v156z" />
+<glyph unicode="&#x459;" d="M16 150h35q45 0 78 14.5t56 46t36.5 80.5t19.5 117q2 26 4 61.5t3.5 77t2 86.5t0.5 89v398h565v-453h21q79 0 151 -20.5t126.5 -62.5t86.5 -105t32 -148q0 -83 -31 -145.5t-85 -103.5t-126 -61.5t-154 -20.5h-189v970h-229v-245v-69q0 -59 -2.5 -132.5t-13.5 -149 t-33 -146.5t-60 -123q-17 -23 -38 -42t-51 -33t-70.5 -22t-95.5 -8h-39v150zM829 153q208 0 208 181q0 180 -208 180h-13v-361h13z" />
+<glyph unicode="&#x45a;" d="M106 1120h168v-455h364v455h168v-453h21q79 0 151 -20.5t126.5 -62.5t86.5 -105t32 -148q0 -83 -31 -145.5t-85 -103.5t-126 -61.5t-154 -20.5h-189v515h-364v-515h-168v1120zM819 153q208 0 208 181q0 180 -208 180h-13v-361h13z" />
+<glyph unicode="&#x45b;" d="M255 977h-190v143h190v436h184v-436h448v-143h-448v-397q49 97 133 146t199 49q172 0 256 -112t84 -341v-322h-185v322q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-261h-184v977z" />
+<glyph unicode="&#x45c;" d="M804 1647h198l-325 -376h-154zM236 1120h190v-465l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1120z" />
+<glyph unicode="&#x45d;" d="M343 1647h198l281 -376h-154zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
+<glyph unicode="&#x45e;" d="M626 1270q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM194 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5 t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
+<glyph unicode="&#x45f;" d="M541 0h-352v1120h184v-970h487v970h184v-1120h-352v-286h-151v286z" />
+<glyph unicode="&#x462;" d="M293 1105h-261v164h261v224h202v-224h369v-164h-369v-212h138q253 0 380.5 -112.5t127.5 -333.5q0 -222 -128.5 -334.5t-379.5 -112.5h-340v1105zM633 166q142 0 219.5 73t77.5 207t-78 207.5t-219 73.5h-138v-561h138z" />
+<glyph unicode="&#x463;" d="M298 973h-248v147h248v436h184v-436h425v-147h-425v-306h256q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82h-440v973zM730 156q124 0 191 43.5t67 133.5q0 91 -68 136t-190 45h-248v-358h248z" />
+<glyph unicode="&#x472;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM904 828q-4 132 -21 231t-50.5 165t-86.5 99t-130 33t-129.5 -33t-86.5 -99t-50.5 -165t-20.5 -231h575zM617 135q75 0 127.5 31.5t86.5 95.5 t50.5 159t21.5 223h-573q4 -122 20.5 -217t49.5 -160t86 -98.5t131 -33.5z" />
+<glyph unicode="&#x473;" d="M616 -29q-233 0 -356 150.5t-123 438.5q0 284 123 436q60 73 147 112t208 39q235 0 358 -151t123 -437q0 -288 -122.5 -438t-357.5 -150zM900 611q-4 88 -22.5 158.5t-53 119.5t-86.5 75.5t-122 26.5t-121.5 -26.5t-86 -75.5t-53 -119.5t-22.5 -158.5h567zM616 127 q70 0 120 25t83 68.5t51 102t25 124.5h-557q7 -66 25 -124.5t51 -102t82.5 -68.5t119.5 -25z" />
+<glyph unicode="&#x490;" d="M215 1493h754l3 306h167v-476h-721v-1323h-203v1493z" />
+<glyph unicode="&#x491;" d="M317 1120h568v314h185l-1 -498h-568v-936h-184v1120z" />
+<glyph unicode="&#x492;" d="M225 830h-130v170h130v493h924v-170h-721v-323h547v-170h-547v-830h-203v830z" />
+<glyph unicode="&#x493;" d="M317 500h-130v170h130v450h752v-184h-568v-266h416v-170h-416v-500h-184v500z" />
+<glyph unicode="&#x494;" d="M589 -240h62q67 0 113.5 17.5t76 57.5t42.5 106t13 163v290q0 317 -248 317h-270v-711h-203v1493h924v-170h-721v-442h311q188 0 299 -119q57 -61 84 -146.5t27 -205.5v-306q0 -134 -25 -231t-78 -160t-135 -93t-196 -30h-76v170z" />
+<glyph unicode="&#x495;" d="M539 -270h172q55 0 90 11.5t55.5 40t28 76.5t7.5 122v264q0 85 -9.5 133.5t-34 73t-67.5 30.5t-110 6h-260v-487h-184v1120h752v-184h-568v-305h250q130 0 211.5 -16.5t126.5 -59.5t61 -117t16 -188v-270q0 -107 -20 -183.5t-62 -126t-107 -73t-155 -23.5h-193v156z" />
+<glyph unicode="&#x496;" d="M1048 0h-27l-222 650l-89 -186v-464h-187v464l-89 186l-222 -650h-197l304 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l246 -721h58v-492h-170v322z" />
+<glyph unicode="&#x497;" d="M1048 0h-52l-191 528l-104 -177v-351h-168v351l-104 177l-191 -528h-179l259 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l205 -566h77v-436h-150v286z" />
+<glyph unicode="&#x498;" d="M1079 410q0 -92 -29 -167.5t-84 -131t-135 -90t-183 -45.5q45 -54 66.5 -100t21.5 -96q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 28 -15 63t-53 90q-94 2 -194.5 21t-197.5 53v201q103 -54 201 -79.5t194 -25.5 q169 0 258 74.5t89 210.5q0 68 -23 122t-66 91t-104 56.5t-137 19.5h-154v166h154q140 0 217.5 60.5t77.5 176.5q0 111 -73 171.5t-214 60.5q-76 0 -171.5 -19t-203.5 -61v186q121 32 215 48t172 16q106 0 194 -28.5t150 -81t96.5 -125.5t34.5 -163q0 -126 -68 -207.5 t-200 -115.5q148 -39 225.5 -138t77.5 -251z" />
+<glyph unicode="&#x499;" d="M1064 321q0 -70 -27.5 -127.5t-81 -101t-131 -71.5t-176.5 -38q48 -57 71 -104.5t23 -98.5q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 29 -15.5 65.5t-56.5 94.5q-87 1 -174.5 14t-187.5 42v173q76 -34 167 -51.5 t190 -17.5q175 0 265 52.5t90 143.5q0 45 -22 81.5t-63 62.5t-100 40t-134 14h-158v144h165q137 0 208.5 43t71.5 111q0 69 -74.5 111.5t-216.5 42.5q-71 0 -157 -12.5t-191 -39.5v167q210 48 367 48q105 0 189 -20.5t143.5 -58.5t91 -91.5t31.5 -120.5q0 -96 -64.5 -160 t-184.5 -89q64 -12 116 -35.5t89 -59.5t56.5 -84t19.5 -107z" />
+<glyph unicode="&#x49a;" d="M1012 0h-31l-487 748l-154 -164v-584h-203v1493h203v-664l631 664h237l-581 -610l483 -713h114v-492h-212v322z" />
+<glyph unicode="&#x49b;" d="M986 0h-29l-414 578l-137 -129v-449h-190v1120h190v-465l483 465h224l-441 -422l376 -514h134v-470h-196v286z" />
+<glyph unicode="&#x4a2;" d="M1020 0h-203v711h-553v-711h-203v1493h203v-612h553v612h203v-1323h213v-492h-213v322z" />
+<glyph unicode="&#x4a3;" d="M1038 0h-184v505h-487v-505h-184v1120h184v-445h487v445h184v-936h195v-470h-195v286z" />
+<glyph unicode="&#x4a4;" d="M213 1493h186v-612h364v612h470v-170h-284v-1323h-186v711h-364v-711h-186v1493z" />
+<glyph unicode="&#x4a5;" d="M185 1120h168v-455h410v455h470v-150h-302v-970h-168v515h-410v-515h-168v1120z" />
+<glyph unicode="&#x4aa;" d="M740 1356q-194 0 -292 -152t-98 -459q0 -610 390 -610q91 0 175.5 32t157.5 93v-207q-120 -65 -251 -78q45 -54 66 -99.5t21 -95.5q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 29 -15 64t-53 90q-134 7 -239 62.5 t-177 154t-109.5 238t-37.5 316.5q0 184 40.5 328t118.5 244t190.5 152.5t256.5 52.5q89 0 169.5 -20t158.5 -62v-207q-73 60 -156.5 92.5t-176.5 32.5z" />
+<glyph unicode="&#x4ab;" d="M723 991q-179 0 -271.5 -112t-92.5 -319q0 -209 93 -321t272 -112q88 0 164.5 29t142.5 92v-191q-60 -35 -118 -54t-118 -27q45 -54 66.5 -100t21.5 -96q0 -85 -60 -130t-180 -45q-86 0 -174 24v131q31 -17 70.5 -24.5t76.5 -7.5q66 0 97 23.5t31 66.5q0 28 -15 63 t-53 91q-119 6 -213.5 48.5t-160.5 117.5t-101.5 181.5t-35.5 239.5q0 138 38 247t109 185t172 116t228 40q84 0 160 -20t159 -66v-193q-71 64 -145 93.5t-163 29.5z" />
+<glyph unicode="&#x4ac;" d="M719 0h-203v1323h-469v170h1139v-170h-467v-1153h213v-492h-213v322z" />
+<glyph unicode="&#x4ad;" d="M709 0h-184v942h-311v178h806v-178h-311v-758h195v-470h-195v286z" />
+<glyph unicode="&#x4ae;" d="M514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="&#x4af;" d="M520 18l-428 1102h195l329 -876l329 876h195l-428 -1102v-444h-192v444z" />
+<glyph unicode="&#x4b0;" d="M514 420h-264v170h264v80l-477 823h215l364 -659l363 659h217l-479 -823v-80h266v-170h-266v-420h-203v420z" />
+<glyph unicode="&#x4b1;" d="M520 -185h-200v150h200v53l-428 1102h195l329 -876l329 876h195l-428 -1102v-53h200v-150h-200v-241h-192v241z" />
+<glyph unicode="&#x4b2;" d="M1002 0h-5l-366 643l-395 -643h-218l500 791l-432 702h217l328 -563l334 563h217l-447 -702l377 -621h102v-492h-212v322z" />
+<glyph unicode="&#x4b3;" d="M982 0h-18l-328 449l-327 -449h-213l440 584l-401 536h204l297 -405l295 405h207l-401 -536l301 -400h140v-470h-196v286z" />
+<glyph unicode="&#x4ba;" d="M160 1495h203v-683q34 38 85 66l48 26q19 10 44.5 18.5t54 14.5t58 9.5t56.5 4.5l48 2q85 0 146 -22.5t102 -61.5q9 -8 16 -16.5t9 -12.5q85 -112 85 -340v-500h-203v474q0 154 -54 223.5t-172 69.5q-50 0 -96 -11t-90 -31q-23 -11 -38.5 -21.5t-29.5 -27.5 q-33 -40 -51 -109.5t-18 -153.5v-413h-203v1495z" />
+<glyph unicode="&#x4bb;" d="M195 1556h184v-604q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1556z" />
+<glyph unicode="&#x4c0;" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#x4c1;" d="M616 1609q-290 0 -313 242h119q12 -54 62 -82.5t132 -28.5q165 0 195 111h119q-11 -120 -90 -181t-224 -61zM319 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l304 -891h-197l-222 650l-89 -186v-464h-187v464l-89 186l-222 -650h-197z" />
+<glyph unicode="&#x4c2;" d="M616 1321q-290 0 -313 287h119q22 -150 194 -150q167 0 195 150h119q-23 -287 -314 -287zM318 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l259 -716h-179l-191 528l-104 -177v-351h-168v351l-104 177l-191 -528h-179z" />
+<glyph unicode="&#x4c3;" d="M551 -240h62q67 0 113.5 17.5t76 57.5t42.5 106t13 163v290q0 317 -248 317h-151l-119 -127v-584h-203v1493h203v-664l631 664h237l-581 -612h24q91 0 166.5 -29t129.5 -87.5t84 -147t30 -207.5v-306q0 -134 -25 -231t-78 -160t-135 -93t-196 -30h-76v170z" />
+<glyph unicode="&#x4c4;" d="M534 -270h172q55 0 90 11.5t55.5 40t28 76.5t7.5 122v264q0 85 -9.5 133.5t-34 73t-67.5 30.5t-110 6h-221l-39 -38v-449h-190v1120h190v-465l483 465h224l-515 -489h58q130 0 211.5 -16.5t126.5 -59.5t61 -117t16 -188v-270q0 -107 -20 -183.5t-62 -126t-107 -73 t-155 -23.5h-193v156z" />
+<glyph unicode="&#x4c7;" d="M586 -240h62q67 0 113.5 17.5t76 57.5t42.5 106t13 163v607h-553v-711h-203v1493h203v-612h553v612h203v-1389q0 -135 -25 -232t-78 -160t-135 -92.5t-196 -29.5h-76v170z" />
+<glyph unicode="&#x4c8;" d="M523 -270h172q55 0 90 11.5t55.5 40t28 76.5t7.5 122v525h-487v-505h-184v1120h184v-445h487v445h184v-1140q0 -107 -20 -183.5t-62 -126t-107 -73t-155 -23.5h-193v156z" />
+<glyph unicode="&#x4cb;" d="M669 170h213v548q-17 -20 -37 -35t-49 -31l-47 -26q-18 -10 -43.5 -18.5t-54 -14.5t-58.5 -9.5t-57 -4.5l-48 -2q-160 0 -248 84q-8 8 -15 16t-11 13q-40 54 -62 136.5t-22 203.5v465h203v-439q0 -153 53 -223t168 -70q44 0 95 10t96 31q25 12 40.5 24t26.5 26 q31 37 50.5 104t19.5 159v378h203v-1495h-203v-322h-213v492z" />
+<glyph unicode="&#x4cc;" d="M652 184h195v382q-27 -51 -87 -87q1 1 -7 -4t-39 -23q-43 -25 -91.5 -37.5t-106.5 -12.5q-173 0 -257 112t-84 341v267h185v-267q0 -151 52.5 -222t165.5 -71q131 0 200 91t69 263v206h184v-1122h-184v-286h-195v470z" />
+<glyph unicode="&#x4cf;" d="M455 1567h184v-1567h-184v1567z" />
+<glyph unicode="&#x4d0;" d="M616 1609q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x4d1;" d="M616 1298q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM520 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27 q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5 q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM558 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#x4d2;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#x4d3;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM520 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29 q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56 q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM558 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5 t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#x4d4;" d="M410 1493h751v-170h-338v-442h307v-170h-307v-541h357v-170h-543v383h-352l-101 -383h-184zM637 551v772h-107l-202 -772h309z" />
+<glyph unicode="&#x4d5;" d="M357 -29q-155 0 -235.5 86.5t-80.5 245.5q0 177 99.5 265.5t291.5 88.5h117v88q0 121 -49.5 184.5t-144.5 63.5q-56 0 -121 -21.5t-128 -60.5v168q78 35 143 51.5t128 16.5q177 0 250 -127q32 57 94.5 92t165.5 35q85 0 144.5 -28t97 -92t54.5 -168t17 -255v-90h-491 q-1 -15 -1.5 -33t-0.5 -40q0 -85 11.5 -145t37.5 -98t67.5 -55.5t100.5 -17.5q75 0 140 25.5t114 76.5v-172q-113 -84 -262 -84q-109 0 -182.5 42t-104.5 118q-41 -83 -107 -121.5t-165 -38.5zM1036 657v52q0 75 -9.5 129t-29 88.5t-51 50.5t-74.5 16q-44 0 -74.5 -16.5 t-50.5 -51.5t-29 -91t-9 -134v-43h327zM375 125q94 0 131 67q17 32 27 90t10 160v72h-49q-82 0 -137.5 -10.5t-89 -33.5t-48 -60t-14.5 -90q0 -100 44 -147.5t126 -47.5z" />
+<glyph unicode="&#x4d6;" d="M634 1609q-290 0 -313 242h119q12 -54 61.5 -82.5t134.5 -28.5q163 0 193 111h119q-11 -120 -90 -181t-224 -61zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#x4d7;" d="M631 1298q-290 0 -313 287h119q11 -72 56.5 -111t136.5 -39q86 0 134 37t62 113h119q-23 -287 -314 -287zM677 -29q-130 0 -232.5 40.5t-174 116.5t-109 184t-37.5 243t37.5 244.5t106 187t164.5 119t213 41.5q111 0 198 -37.5t147 -107.5t91.5 -170t31.5 -226v-90h-797 v-6q0 -92 24.5 -163t71 -120t114.5 -74.5t154 -25.5q90 0 185.5 28t204.5 85v-183q-106 -43 -202.5 -64.5t-190.5 -21.5zM929 660q-3 157 -74.5 244t-207.5 87t-221.5 -86.5t-102.5 -245.5z" />
+<glyph unicode="&#x4d8;" d="M615 -29q-252 0 -375 191t-123 583v83h787v8q0 121 -16.5 217t-52 163.5t-92 103.5t-136.5 36q-38 0 -79.5 -8.5t-83.5 -24.5t-82 -39t-76 -53v207q78 42 160 62t165 20q256 0 380.5 -191t124.5 -583q0 -391 -123.5 -583t-377.5 -192zM621 135q73 0 124.5 32t85 95.5 t50.5 159t22 222.5h-571q0 -249 70 -379t219 -130z" />
+<glyph unicode="&#x4d9;" d="M610 -29q-111 0 -198 37.5t-147 107.5t-91.5 170t-31.5 226v90h797v6q0 91 -24.5 162.5t-71 120.5t-114.5 74.5t-154 25.5q-90 0 -185.5 -28t-204.5 -85v183q106 43 202.5 64.5t190.5 21.5q130 0 232.5 -40.5t173.5 -116.5t109 -184t38 -243t-37.5 -244.5t-106 -187 t-164.5 -119t-213 -41.5zM608 127q136 0 221.5 86.5t102.5 245.5h-606q0 -163 75 -247.5t207 -84.5z" />
+<glyph unicode="&#x4da;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM615 -29q-252 0 -375 191t-123 583v83h787v8q0 121 -16.5 217t-52 163.5t-92 103.5t-136.5 36 q-38 0 -79.5 -8.5t-83.5 -24.5t-82 -39t-76 -53v207q78 42 160 62t165 20q256 0 380.5 -191t124.5 -583q0 -391 -123.5 -583t-377.5 -192zM621 135q73 0 124.5 32t85 95.5t50.5 159t22 222.5h-571q0 -249 70 -379t219 -130z" />
+<glyph unicode="&#x4db;" d="M369 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM761 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM610 -29q-111 0 -198 37.5t-147 107.5t-91.5 170t-31.5 226v90h797v6q0 91 -24.5 162.5t-71 120.5 t-114.5 74.5t-154 25.5q-90 0 -185.5 -28t-204.5 -85v183q106 43 202.5 64.5t190.5 21.5q130 0 232.5 -40.5t173.5 -116.5t109 -184t38 -243t-37.5 -244.5t-106 -187t-164.5 -119t-213 -41.5zM608 127q136 0 221.5 86.5t102.5 245.5h-606q0 -163 75 -247.5t207 -84.5z" />
+<glyph unicode="&#x4dc;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM319 891l-287 602h207l284 -595v595h187v-595l284 595h207l-287 -602l304 -891h-197l-222 650 l-89 -186v-464h-187v464l-89 186l-222 -650h-197z" />
+<glyph unicode="&#x4dd;" d="M349 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM318 716l-239 404h199l255 -432v432h168v-432l255 432h199l-239 -404l259 -716h-179l-191 528 l-104 -177v-351h-168v351l-104 177l-191 -528h-179z" />
+<glyph unicode="&#x4de;" d="M332 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM724 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM553 -29q-99 0 -206 19t-210 55v201q103 -54 201 -79.5t194 -25.5q169 0 258 74.5t89 210.5 q0 68 -23 122t-66 91t-104 56.5t-137 19.5h-154v166h154q140 0 217.5 60.5t77.5 176.5q0 111 -73 171.5t-214 60.5q-76 0 -171.5 -19t-203.5 -61v186q121 32 215 48t172 16q106 0 194 -28.5t150 -81t96.5 -125.5t34.5 -163q0 -126 -68 -207.5t-200 -115.5 q148 -39 225.5 -138t77.5 -251q0 -102 -35.5 -183.5t-103 -138.5t-165.5 -87t-222 -30z" />
+<glyph unicode="&#x4df;" d="M334 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM726 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM539 -22q-90 0 -178.5 13.5t-191.5 42.5v173q76 -34 167 -51.5t190 -17.5q175 0 265 52.5t90 143.5 q0 45 -22 81.5t-63 62.5t-100 40t-134 14h-158v144h165q137 0 208.5 43t71.5 111q0 69 -74.5 111.5t-216.5 42.5q-71 0 -157 -12.5t-191 -39.5v167q210 48 367 48q105 0 189 -20.5t143.5 -58.5t91 -91.5t31.5 -120.5q0 -96 -64.5 -160t-184.5 -89q64 -12 116 -35.5t89 -59.5 t56.5 -84t19.5 -107q0 -79 -35.5 -142.5t-102.5 -108t-165 -68.5t-222 -24z" />
+<glyph unicode="&#x4e0;" d="M615 -28q-142 0 -252 31t-185 90t-113.5 145t-38.5 197h202q0 -144 99 -218.5t289 -74.5q191 0 290.5 74.5t99.5 215.5q0 69 -24 122t-69 89t-110 54.5t-147 18.5h-174v166l370 441h-738v170h970v-168l-376 -441q52 0 109.5 -13t113 -39t106 -65t89.5 -90 q43 -57 61.5 -116.5t18.5 -131.5q0 -108 -39 -193t-114 -143.5t-185 -89.5t-253 -31z" />
+<glyph unicode="&#x4e1;" d="M551 -436q-49 0 -97 4t-98 13t-102 23t-109 34v195q85 -49 184.5 -74t208.5 -25q191 0 290 75t99 215q0 68 -24 121t-69 89t-110 55t-147 19h-174v166l430 499h-667v147h874v-168l-411 -476q48 0 103.5 -11.5t111 -36t108 -64t95.5 -95.5q42 -55 61.5 -114t19.5 -133 q0 -109 -39.5 -194t-114 -143.5t-181.5 -89.5t-242 -31z" />
+<glyph unicode="&#x4e2;" d="M317 1852h598v-148h-598v148zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
+<glyph unicode="&#x4e3;" d="M317 1468h598v-148h-598v148zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
+<glyph unicode="&#x4e4;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM139 1493h195v-1229l504 1229h256v-1493h-195v1229l-504 -1229h-256v1493z" />
+<glyph unicode="&#x4e5;" d="M349 1322q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1322q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM195 1120h184v-809l487 809h184v-1120h-184v809l-487 -809h-184v1120z" />
+<glyph unicode="&#x4e6;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583 q0 -390 -124 -582t-377 -192zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#x4e7;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5 t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x4e8;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM902 881q-6 111 -22.5 199.5t-49.5 149.5t-85 93.5t-129 32.5q-78 0 -130 -33.5t-84.5 -95t-48.5 -149.5t-22 -197h571zM617 135q76 0 130 33.5 t88.5 104t51 179.5t18.5 259h-577q1 -150 17.5 -258.5t51 -179t89 -104.5t131.5 -34z" />
+<glyph unicode="&#x4e9;" d="M616 -29q-233 0 -356 150.5t-123 438.5q0 284 123 436q60 73 147 112t208 39q235 0 358 -151t123 -437q0 -288 -122.5 -438t-357.5 -150zM900 611q-4 88 -22.5 158.5t-53 119.5t-86.5 75.5t-122 26.5t-121.5 -26.5t-86 -75.5t-53 -119.5t-22.5 -158.5h567zM616 127 q70 0 120 25t83 68.5t51 102t25 124.5h-557q7 -66 25 -124.5t51 -102t82.5 -68.5t119.5 -25z" />
+<glyph unicode="&#x4ea;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583 q0 -390 -124 -582t-377 -192zM902 881q-6 111 -22.5 199.5t-49.5 149.5t-85 93.5t-129 32.5q-78 0 -130 -33.5t-84.5 -95t-48.5 -149.5t-22 -197h571zM617 135q76 0 130 33.5t88.5 104t51 179.5t18.5 259h-577q1 -150 17.5 -258.5t51 -179t89 -104.5t131.5 -34z" />
+<glyph unicode="&#x4eb;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-233 0 -356 150.5t-123 438.5q0 284 123 436q60 73 147 112t208 39q235 0 358 -151 t123 -437q0 -288 -122.5 -438t-357.5 -150zM900 611q-4 88 -22.5 158.5t-53 119.5t-86.5 75.5t-122 26.5t-121.5 -26.5t-86 -75.5t-53 -119.5t-22.5 -158.5h567zM616 127q70 0 120 25t83 68.5t51 102t25 124.5h-557q7 -66 25 -124.5t51 -102t82.5 -68.5t119.5 -25z" />
+<glyph unicode="&#x4ec;" d="M336 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM728 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM509 -29q-176 0 -330 82v207q75 -63 161 -94t171 -31q98 0 170 38.5t120 108t73 166.5t28 213h-632 v170h627q-15 138 -41 237.5t-69.5 163t-108.5 94t-158 30.5q-97 0 -181 -31t-160 -94v207q154 82 330 82q142 0 254.5 -52.5t190 -152t118.5 -244t41 -328.5q0 -183 -40.5 -326.5t-118 -242.5t-189.5 -151t-256 -52z" />
+<glyph unicode="&#x4ed;" d="M329 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM721 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM535 -29q-85 0 -162 20t-158 66v191q62 -60 138 -90.5t170 -30.5q90 0 156 28t110.5 79t68 123 t28.5 159h-542v144h537q-9 66 -32 126t-65 105.5t-106 72.5t-154 27q-91 0 -165 -30t-144 -93v193q82 46 158.5 66t160.5 20q127 0 228 -40t172 -116t109 -185t38 -247t-38 -247t-109 -185t-172 -116t-227 -40z" />
+<glyph unicode="&#x4ee;" d="M337 1852h598v-148h-598v148zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
+<glyph unicode="&#x4ef;" d="M317 1468h598v-148h-598v148zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5 t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
+<glyph unicode="&#x4f0;" d="M369 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM761 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217 l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32t-93.5 -11.5h-148v172z" />
+<glyph unicode="&#x4f1;" d="M349 1312q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1312q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195 l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
+<glyph unicode="&#x4f2;" d="M561 1852h186l-229 -264h-154zM880 1852h186l-229 -264h-154zM204 172h109q40 0 71.5 12t55.5 34.5t43 54t36 69.5q7 16 12.5 30.5l16.5 43.5l-424 1077h217l311 -830l308 830h213l-412 -1068q-30 -78 -62.5 -148t-65.5 -121q-23 -35 -50.5 -63.5t-61.5 -49t-75.5 -32 t-93.5 -11.5h-148v172z" />
+<glyph unicode="&#x4f3;" d="M535 1648h170l-224 -376h-137zM868 1648h179l-248 -376h-135zM184 -272h109q45 0 76 13.5t51 33.5q11 11 23.5 30t26.5 48.5t30.5 70t36.5 94.5l-433 1102h195l332 -876l327 876h195l-295 -760q-19 -48 -30.5 -78.5t-20 -51.5t-14 -37t-12.5 -34t-16 -43t-24 -64 q-26 -69 -46 -120.5t-35.5 -89.5t-28 -65t-24.5 -47q-44 -75 -109.5 -115.5t-165.5 -40.5h-148v154z" />
+<glyph unicode="&#x4f4;" d="M339 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM731 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM879 658q-52 -26 -95.5 -42t-84 -24.5t-80.5 -11.5t-85 -3q-55 0 -107 4.5t-97 19.5t-82.5 42 t-64 71.5t-41.5 109.5t-15 156v513h203v-487q0 -84 14.5 -132.5t44.5 -73t76.5 -31t111.5 -6.5q46 0 82.5 3t71 13t70 29.5t78.5 52.5v632h203v-1493h-203v658z" />
+<glyph unicode="&#x4f5;" d="M359 1323q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM751 1323q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM837 466q-8 -3 -33 -13.5t-64.5 -21.5t-92.5 -20t-116 -9q-84 0 -152 19.5t-115.5 62t-73 109.5 t-25.5 162v367h184v-367q0 -64 19 -102t52 -58.5t77 -26.5t93 -6q37 0 69 2.5t61.5 9.5t58 18.5t58.5 28.5v501h184v-1122h-184v466z" />
+<glyph unicode="&#x4f6;" d="M418 0h-203v1493h924v-170h-721v-1153h213v-492h-213v322z" />
+<glyph unicode="&#x4f7;" d="M476 0h-184v1120h752v-184h-568v-752h195v-470h-195v286z" />
+<glyph unicode="&#x4f8;" d="M366 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM758 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM82 1493h202v-600h91q97 0 179.5 -28.5t143 -84.5t94.5 -139.5t34 -193.5t-34.5 -194t-95 -140 t-143 -84.5t-178.5 -28.5h-293v1493zM948 1493h203v-1493h-203v1493zM375 166q51 0 95 15.5t76 49.5t50.5 87t18.5 128q0 134 -60 207.5t-180 73.5h-91v-561h91z" />
+<glyph unicode="&#x4f9;" d="M349 1321q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1321q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM104 1120h182v-453h91q105 0 187.5 -20.5t140 -62.5t88 -105t30.5 -148q0 -167 -116 -249t-330 -82 h-273v1120zM945 1120h184v-1120h-184v1120zM369 154q124 0 191 44t67 135q0 92 -68 137.5t-190 45.5h-83v-362h83z" />
+<glyph unicode="&#x510;" d="M663 -29q-125 0 -222.5 30t-165 87t-103 138.5t-35.5 183.5q0 152 77.5 251t225.5 138q-132 34 -200 114.5t-68 206.5q0 90 34.5 163.5t96.5 126t149.5 81.5t194.5 29q78 0 172 -16t215 -48v-186q-108 42 -203.5 61t-171.5 19q-141 0 -214 -60.5t-73 -171.5 q0 -116 77.5 -176.5t217.5 -60.5h154v-166h-154q-76 0 -137 -19.5t-104 -56.5t-66 -91t-23 -122q0 -136 89 -210.5t258 -74.5q96 0 194 25.5t201 79.5v-201q-103 -36 -210 -55t-206 -19z" />
+<glyph unicode="&#x511;" d="M693 -22q-125 0 -222 24t-164.5 68.5t-102.5 108t-35 142.5q0 59 19.5 107t56 84t88 59.5t116.5 35.5q-120 25 -184 89t-64 160q0 67 31.5 120.5t90.5 91.5t143 58.5t189 20.5q158 0 368 -48v-167q-105 27 -191 39.5t-158 12.5q-142 0 -216 -42.5t-74 -111.5 q0 -68 71.5 -111t207.5 -43h166v-144h-159q-75 0 -134 -14t-100 -40t-62.5 -62.5t-21.5 -81.5q0 -91 90 -143.5t265 -52.5q99 0 189 17.5t168 51.5v-173q-97 -28 -187 -42t-184 -14z" />
+<glyph unicode="&#x51a;" d="M655 -27h-8.5t-11.5 -1t-10 -1h-5q-254 0 -378.5 193t-124.5 583q0 388 123.5 580.5t376.5 192.5q252 0 375.5 -192.5t123.5 -583.5q0 -293 -68.5 -472.5t-207.5 -251.5l200 -190l-151 -100zM616 135q83 0 136.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 162.5 t-4.5 161.5t-13.5 128.5t-21.5 100.5t-28.5 77.5q-35 72 -88.5 106.5t-131.5 34.5q-79 0 -133 -35t-88 -107q-68 -143 -68 -469q0 -165 16.5 -280t51.5 -188q33 -70 86.5 -106t133.5 -36z" />
+<glyph unicode="&#x51b;" d="M865 139q-46 -85 -121.5 -128.5t-180.5 -43.5q-99 0 -179 40t-136 116t-86 184.5t-30 246.5q0 137 30 246.5t86 185.5t136 116.5t179 40.5q103 0 179.5 -43t122.5 -127l18 143h167v-1546h-185v569zM595 123q134 0 202 109t68 323t-68 323t-202 109t-201 -108.5 t-67 -323.5t67 -323.5t201 -108.5z" />
+<glyph unicode="&#x51c;" d="M0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
+<glyph unicode="&#x51d;" d="M0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
+<glyph unicode="&#x531;" d="M1044 -60q-45 20 -88 45t-88 54q-113 -68 -281 -68q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-1098q0 -45 9.5 -90.5t38.5 -83.5t81 -62t138 -24q74 0 128 20q-61 54 -108.5 107t-75.5 104l137 92q28 -51 69 -98t95 -92q13 31 17.5 63t4.5 64 v1098h202v-1036q0 -93 -17.5 -165.5t-51.5 -129.5q31 -18 62.5 -34t63.5 -30l-70 -158v0z" />
+<glyph unicode="&#x532;" d="M128 1036q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-161h-202v223q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-477h774v-170h-774v-451h-202v1036 z" />
+<glyph unicode="&#x533;" d="M821 451h-269q-221 0 -340 128q-61 66 -94 166t-33 246q0 140 31.5 241t91.5 165t146 93.5t198 29.5q111 0 198 -29.5t148 -93.5q60 -64 92.5 -164.5t32.5 -244.5v-367h125v-170h-125v-451h-202v451zM821 621v437q0 55 -10 108.5t-39 95.5t-82 68t-139 26t-137.5 -27 t-79.5 -76t-37.5 -116.5t-9.5 -148.5t9.5 -148.5t37.5 -115.5q28 -49 79.5 -76t138.5 -27h269z" />
+<glyph unicode="&#x534;" d="M790 1098q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-223h-202v161q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-415h187v-170h-187v-451h-202v1098 z" />
+<glyph unicode="&#x535;" d="M596 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-373h774v-170h-774v-555q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v223h202v-161q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
+<glyph unicode="&#x536;" d="M140 331h203v-161h51q52 0 109.5 24.5t116.5 70.5q61 48 116.5 112.5t97.5 144.5q48 90 70 187t22 213q0 96 -17 182.5t-59 147.5q-38 54 -94 79t-142 25q-83 0 -141.5 -24t-97.5 -79t-57.5 -142.5t-18.5 -215.5v-20h-203v20q0 173 40 291.5t109 193.5t162.5 107.5 t204.5 32.5q114 0 206 -33.5t163 -107.5q78 -81 117 -199.5t39 -268.5q0 -105 -18.5 -193t-52.5 -167q-31 -72 -72.5 -137t-87.5 -116q-45 -51 -88.5 -83t-79.5 -45h359v-170h-957v331z" />
+<glyph unicode="&#x537;" d="M120 1493h203v-373h790v-170h-790v-780h651v-170h-854v1493z" />
+<glyph unicode="&#x538;" d="M128 1036q0 125 32 216t93 151q60 60 146.5 89.5t196.5 29.5q109 0 197 -29t149 -90q60 -60 92 -151t32 -216v-161h-202v223q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-928h774v-170h-976v1036z" />
+<glyph unicode="&#x539;" d="M750 -29q-70 0 -129.5 25.5t-104.5 79.5t-70 137.5t-25 201.5t25 204t70 143t105.5 85t132.5 28h138v24q0 128 -14 212t-48 139q-35 56 -95 81q-59 25 -153 25q-92 0 -152 -24t-96 -78t-50.5 -139t-14.5 -206v-909h-196v934q0 290 135 440q66 73 160 109.5t213 36.5 q122 0 216 -38t158 -111q65 -74 99.5 -184.5t34.5 -259.5v-52h131v-175h-131v-285q0 -108 -24.5 -189.5t-69.5 -138.5q-47 -60 -109 -88t-136 -28zM752 135q35 0 61.5 13.5t44.5 47.5q17 32 25.5 85t8.5 134v285h-138q-36 0 -61 -13t-42 -45t-24 -87q-4 -28 -6 -62.5 t-2 -79.5q0 -82 8 -136t25 -86q18 -34 44.5 -45t55.5 -11z" />
+<glyph unicode="&#x53a;" d="M542 -29q-118 0 -203.5 36t-145.5 108t-91.5 176.5t-31.5 247.5q0 147 33.5 254.5t93.5 179.5q61 72 147.5 109.5t192.5 37.5h269v373h202v-373h125v-170h-125v-446q0 -140 -31.5 -241.5t-93.5 -167.5q-61 -65 -148.5 -94.5t-192.5 -29.5zM541 135q81 0 134 26t82 68 t39 95.5t10 108.5v517h-269q-87 0 -138.5 -32.5t-79.5 -89.5q-26 -54 -36.5 -126t-10.5 -160q0 -81 9.5 -154t37.5 -130t79.5 -90t142.5 -33z" />
+<glyph unicode="&#x53b;" d="M187 1493h202v-432q60 42 126.5 61t147.5 19q103 0 190 -29.5t148 -89.5q60 -60 92 -151t32 -216v-161h-202v223q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-717h-202v1493z" />
+<glyph unicode="&#x53c;" d="M184 1493h203v-1323h721v-170h-924v1493z" />
+<glyph unicode="&#x53d;" d="M806 -29q-111 0 -175 28t-101 81q-39 56 -53.5 140.5t-14.5 204.5v520h-183v-945h-186v1493h186v-373h369v-719q0 -75 6.5 -126t24.5 -82t48.5 -44.5t78.5 -13.5q49 0 78 14t44 44q15 31 20.5 82t5.5 126v719h186v-695q0 -120 -13 -204.5t-49 -140.5 q-37 -56 -101.5 -82.5t-170.5 -26.5z" />
+<glyph unicode="&#x53e;" d="M626 -29q-79 0 -143 13t-116 37.5t-91.5 59t-69.5 78.5q-60 88 -83 204.5t-23 247.5q0 139 23 252.5t69 217.5h-138v412h183v-245h52q96 128 229 200q66 35 141 53.5t170 18.5q47 0 94 -4.5t88 -13.5q42 -9 81.5 -23t81.5 -31v-215q-108 70 -200 97t-174 27 q-94 0 -167.5 -29t-130.5 -81q168 -4 292 -47.5t207 -120.5q85 -79 131 -198t46 -288q0 -82 -11.5 -158.5t-36.5 -143.5q-26 -72 -68.5 -130.5t-101.5 -99.5q-63 -44 -145.5 -67t-188.5 -23zM632 135q83 0 140 17.5t95 49.5t58.5 75t30.5 95q5 25 7.5 53.5t4 56.5t2 53.5 t0.5 45.5q0 70 -5 136.5t-25 122.5q-20 54 -56.5 97.5t-99.5 75.5q-64 32 -157.5 50t-227.5 18h-12q-43 -97 -61.5 -214t-18.5 -246v-36q0 -54 1.5 -104.5t9.5 -97.5q9 -57 27.5 -101.5t53.5 -76.5q36 -33 92 -51.5t141 -18.5z" />
+<glyph unicode="&#x53f;" d="M883 431q-54 -36 -119 -57.5t-157 -21.5q-106 0 -191 30.5t-144 88.5q-61 60 -93 151t-32 216v655h202v-717q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v344h202v-1120h-202v431z" />
+<glyph unicode="&#x540;" d="M320 266q-60 24 -102 47t-74 49q-34 28 -53.5 59.5t-19.5 72.5q0 61 52.5 140.5t173.5 181.5q52 44 115 90.5t133.5 93t146 91.5t153.5 87l-181 315h238l217 -375q-111 -53 -212 -109.5t-188 -110.5q-89 -56 -166.5 -111t-131.5 -103q-29 -26 -49.5 -46.5t-36.5 -39.5 q-31 -38 -31 -64q0 -14 7.5 -25t20.5 -22q15 -12 39 -25t48 -23l703 -289v-204z" />
+<glyph unicode="&#x541;" d="M982 -48q-35 54 -71 102.5t-72 93.5q-88 -84 -190 -130.5t-216 -46.5q-69 0 -128.5 18.5t-104.5 56.5q-43 37 -66.5 92t-23.5 127t23.5 128.5t66.5 96.5q42 39 102 59.5t133 20.5q103 0 198.5 -38.5t183.5 -104.5q55 107 81.5 221.5t26.5 252.5q0 115 -18.5 205.5 t-56.5 145.5q-40 58 -102 81t-137 23q-80 0 -139 -24t-98 -79t-57.5 -142.5t-18.5 -215.5v-22h-203v22q0 173 40 291.5t109 193.5q69 74 163 107t202 33q110 0 206 -33t166 -105q72 -74 113.5 -193.5t41.5 -287.5q0 -180 -47.5 -331.5t-127.5 -274.5q51 -55 95 -115t82 -126 zM438 133q68 0 140 37t137 109q-69 62 -139.5 95.5t-135.5 33.5q-68 0 -104 -36.5t-36 -102.5q0 -65 35 -100.5t103 -35.5z" />
+<glyph unicode="&#x542;" d="M790 1098q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-223h-202v161q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-866h187v-170h-389v1098z" />
+<glyph unicode="&#x543;" d="M363 0q-56 0 -107 12t-91 42q-37 28 -58 72t-21 112q0 43 9.5 89.5t30 100.5t52.5 118t77 141q46 79 95 156t93 140l-293 510h228l194 -338q141 175 281 270t293 95v-175q-109 0 -228 -91t-250 -266l473 -824v-164h-778zM909 175l-365 633q-29 -45 -57.5 -92t-57.5 -98 q-66 -115 -96.5 -192.5t-30.5 -130.5q0 -69 49 -94.5t140 -25.5h418z" />
+<glyph unicode="&#x544;" d="M554 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-1098q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v1098h389v-170h-187v-866q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
+<glyph unicode="&#x545;" d="M656 -29q-135 0 -230 38.5t-158 104.5t-92 151t-29 182h210q0 -66 16.5 -122t52.5 -98q35 -41 90.5 -66.5t140.5 -25.5q80 0 137 23t94 64q35 38 53 91.5t18 116.5q0 130 -78 202q-39 35 -95.5 54t-129.5 19h-592v170h592q66 0 112.5 21t76.5 57q29 35 42 79.5t13 95.5 q0 116 -62.5 172t-182.5 56q-117 0 -177.5 -56.5t-60.5 -179.5h-210q0 91 32 165t92 127t142 80.5t182 27.5q102 0 185 -28t143 -79q57 -49 92 -121t35 -166q0 -60 -14.5 -111t-40.5 -93q-55 -86 -148 -117q69 -17 118 -52.5t81 -83.5t47.5 -105t15.5 -123q0 -88 -28.5 -174 t-93.5 -154q-63 -66 -159.5 -104t-231.5 -38z" />
+<glyph unicode="&#x546;" d="M709 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v866h-187v170h389v-1098q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v223h202v-161q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
+<glyph unicode="&#x547;" d="M625 -29q-111 0 -206 34.5t-167 109.5t-114 193.5t-42 288.5q0 165 37.5 285.5t96.5 199.5q57 76 126 116t136 42l-90 40q-57 25 -111.5 34t-91.5 9h-45v170h123q51 0 114 -13t135 -43l507 -213v-212l-244 103q-13 6 -32.5 11.5t-42.5 10.5t-46.5 7.5t-43.5 2.5 q-145 0 -231 -150q-23 -39 -38 -82t-26 -91q-22 -100 -22 -230q0 -246 77 -354q39 -55 98.5 -80t141.5 -25t140 24.5t96 78.5q38 55 56 142t18 216v22h203v-22q0 -174 -40 -292t-109 -193q-69 -74 -163 -107t-200 -33z" />
+<glyph unicode="&#x548;" d="M147 1036q0 125 32 216t93 151q60 60 146.5 89.5t196.5 29.5q109 0 197 -29t149 -90q60 -60 92 -151t32 -216v-1036h-202v1098q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-1098h-202v1036z" />
+<glyph unicode="&#x549;" d="M200 267v212l238 -101q16 -7 36 -13t42 -10.5t44.5 -7.5t43.5 -3q78 0 137.5 39.5t99.5 110.5q20 35 36 79.5t27 94.5q22 98 22 229q0 246 -77 354q-39 55 -98 80t-142 25q-80 0 -138.5 -24t-96.5 -79q-39 -55 -57 -142.5t-18 -215.5v-22h-203v22q0 173 40 291.5 t109 193.5q69 74 163 107t200 33q111 0 206.5 -34.5t167.5 -109.5q71 -75 113 -193.5t42 -288.5q0 -112 -18 -203t-49 -163t-70.5 -124t-84.5 -86t-89.5 -50.5t-84.5 -16.5l232 -99v-210z" />
+<glyph unicode="&#x54a;" d="M958 917q0 79 -8.5 153t-37.5 134q-29 59 -81.5 98.5t-139.5 48.5v-876h-190v876q-87 -12 -138.5 -48t-80.5 -93t-38 -131t-9 -162v-42h-190v57q0 131 31 238.5t98 185.5t170.5 121t256.5 43q152 0 257.5 -43t170.5 -121t92 -185.5t27 -238.5v-932h-190v917z" />
+<glyph unicode="&#x54b;" d="M139 332h203v-162h40q60 0 120.5 23t117.5 66q12 52 19 99t7 89q0 51 -11 91.5t-35 69.5q-17 20 -37.5 31.5t-41.5 17.5t-41.5 7.5t-37.5 2.5q-61 2 -124 10.5t-118 43.5q-38 24 -59 56t-32 70q-9 32 -11 62t-2 51q0 75 10.5 139.5t34.5 124.5q25 62 64 115t95 93 q57 41 132.5 64.5t178.5 23.5q150 0 249 -51t160 -136q31 -44 53.5 -94.5t36 -105t20 -110.5t6.5 -111q0 -140 -34.5 -255.5t-88.5 -208.5q-56 -95 -128.5 -168.5t-147.5 -109.5h359v-170h-957v332zM776 423q35 52 63 106.5t47 114.5t29 127t10 145q0 40 -3 82.5t-10 83 t-18.5 77.5t-28.5 67q-35 63 -97.5 96.5t-153.5 33.5q-66 0 -112.5 -16t-79.5 -42q-37 -29 -59.5 -65t-35.5 -72q-26 -73 -26 -164q0 -34 5.5 -64.5t24.5 -50.5q24 -27 63.5 -33t88.5 -7q23 -1 51.5 -4t58 -13t59.5 -29t56 -51q37 -46 55.5 -107t18.5 -133q0 -40 -6 -82z " />
+<glyph unicode="&#x54c;" d="M98 1036q0 125 32 215.5t93 150.5q60 59 144.5 88.5t198.5 29.5q112 0 198.5 -29t147.5 -89q60 -60 92 -150.5t32 -215.5v-415h187v-170h-187v-451h-202v1098q0 45 -9.5 90t-38.5 83t-81.5 61.5t-138.5 23.5t-137.5 -23.5t-80.5 -61.5t-38.5 -83t-9.5 -90v-1098h-202 v1036z" />
+<glyph unicode="&#x54d;" d="M615 -29q-110 0 -196.5 29.5t-146.5 89.5q-61 60 -93 151t-32 216v1036h202v-1098q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v1098h202v-1036q0 -125 -32 -216t-92 -151q-61 -61 -149 -90t-197 -29z" />
+<glyph unicode="&#x54e;" d="M769 431q-54 -36 -119 -57.5t-157 -21.5q-106 0 -191 30.5t-144 88.5q-61 60 -93 151t-32 216v282h202v-344q0 -45 9.5 -90.5t38.5 -83.5t80.5 -62t137.5 -24t138.5 24t81.5 62t38.5 83.5t9.5 90.5v717h202v-1323h228v-170h-430v431z" />
+<glyph unicode="&#x54f;" d="M631 -29q-122 0 -219.5 34.5t-166.5 97.5t-104.5 149.5t-35.5 194.5h210q0 -146 91 -231q87 -81 225 -81q134 0 214 75q38 35 60.5 87t22.5 118q0 74 -30.5 123t-88.5 84q-54 33 -122.5 56t-140.5 47q-78 26 -142.5 54t-119.5 73q-54 45 -87 108t-33 160q0 81 26.5 153.5 t82.5 127.5t139 87t199 32t202 -32t143 -87t84.5 -127.5t27.5 -153.5h-210q0 52 -14 95.5t-44 74.5t-76 48t-112 17q-64 0 -110.5 -16.5t-76.5 -45.5q-32 -32 -46.5 -74t-14.5 -85q0 -58 22 -96t57 -64q38 -29 87.5 -49t102.5 -38q37 -13 54 -18.5t25 -8.5t13.5 -4.5 t20.5 -6.5q53 -17 110.5 -42.5t104.5 -57.5q48 -33 86 -77.5t59 -107.5q21 -62 21 -141q0 -99 -32.5 -181t-95.5 -142q-63 -61 -155 -95t-213 -34z" />
+<glyph unicode="&#x550;" d="M147 1036q0 125 32 216t93 151q60 60 146.5 89.5t196.5 29.5q109 0 197 -29t149 -90q60 -60 92 -151t32 -216v-161h-202v223q0 45 -9.5 90.5t-38.5 83.5t-81.5 62t-138.5 24t-137.5 -24t-80.5 -62t-38.5 -83.5t-9.5 -90.5v-1098h-202v1036z" />
+<glyph unicode="&#x551;" d="M656 -29q-131 0 -226 37t-161 106t-94 154t-28 179h210q0 -65 15.5 -120.5t52.5 -99.5t93.5 -68t137.5 -24q86 0 143.5 26t92.5 68q35 43 51 99.5t16 112.5q0 65 -20 112t-58 81t-94 52.5t-129 18.5h-594v170h273q-32 17 -56 45.5t-41 62.5t-25.5 69.5t-8.5 77.5 q0 78 30.5 151.5t89.5 127.5q55 51 137 81t194 30q107 0 191 -28.5t143 -81.5t89 -127t30 -162q0 -61 -14.5 -111t-40.5 -91q-55 -83 -148 -114q69 -17 118 -53.5t81 -85.5t47.5 -105t15.5 -121q0 -89 -29 -174t-92 -151q-64 -68 -161 -106t-231 -38zM656 875q69 0 115 20.5 t75 54.5t41.5 77t12.5 94q0 44 -10.5 88.5t-38.5 76.5q-14 16 -33.5 29.5t-40.5 21.5q-23 9 -51 14t-66 5q-75 0 -121.5 -19t-73.5 -51q-26 -32 -37.5 -74t-11.5 -93q0 -47 10.5 -91.5t37.5 -77.5q27 -34 74.5 -54.5t117.5 -20.5z" />
+<glyph unicode="&#x552;" d="M155 1493h203v-373h760v-175h-760v-945h-203v1493z" />
+<glyph unicode="&#x553;" d="M518 158q-132 6 -219 48t-140 123q-48 74 -68.5 179t-20.5 255q0 142 19.5 251.5t70.5 187.5q51 79 137 121.5t221 47.5v122h193v-122q135 -5 222 -48t138 -121t71 -187.5t20 -249.5t-20 -250t-71 -188t-138 -121.5t-222 -48.5v-157h-193v158zM518 1203 q-73 -3 -121.5 -26.5t-77.5 -74.5q-30 -52 -42 -134.5t-12 -201.5q0 -120 12 -203.5t43 -139.5q29 -54 76.5 -79t121.5 -28v887zM711 316q73 3 122 28.5t78 79.5t41 137t12 204t-12 203t-41 134q-29 51 -78 74.5t-122 26.5v-887z" />
+<glyph unicode="&#x554;" d="M227 244h-191v175h191v661q0 96 27.5 175.5t85.5 139.5q60 61 148 93t208 32q126 0 214 -33.5t145 -93.5t84 -140t27 -177t-27 -176t-85 -139q-56 -57 -140.5 -92t-197.5 -35q-45 0 -84.5 6.5t-77.5 20.5q-84 32 -125 84v-326h724v-175h-724v-244h-202v244zM706 798 q78 0 127 20.5t77 54.5q29 36 41 88t12 116t-12 114.5t-42 87.5q-30 38 -81 57q-54 20 -130 20q-78 0 -129.5 -20t-82.5 -56t-43.5 -86.5t-12.5 -110.5q0 -66 14.5 -116.5t46.5 -88.5t84.5 -59t130.5 -21z" />
+<glyph unicode="&#x555;" d="M615 -29q-251 0 -374.5 190.5t-123.5 582.5t123.5 584t375.5 192q253 0 376.5 -192t123.5 -583q0 -390 -124 -582t-377 -192zM616 135q83 0 136.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 162.5t-4.5 161.5t-13.5 128.5t-21.5 100.5t-28.5 77.5 q-35 72 -88.5 106.5t-131.5 34.5q-79 0 -133 -35t-88 -107q-68 -143 -68 -469q0 -165 16.5 -280t51.5 -188q33 -70 86.5 -106t133.5 -36z" />
+<glyph unicode="&#x556;" d="M628 -29q-122 0 -205.5 12t-143.5 41q-67 32 -108 84.5t-63 120.5t-29.5 145.5t-7.5 162.5v19h194v-19q0 -54 2 -97.5t6.5 -79.5t12.5 -65t21 -54q26 -51 75.5 -79.5t135.5 -28.5v819q-197 0 -287 66t-90 205q0 69 21.5 120t69.5 85q93 65 297 65h182v-373 q69 -3 123 -13.5t96.5 -28.5t74.5 -42.5t57 -56.5q57 -74 78.5 -184.5t21.5 -254.5q0 -88 -8.5 -166t-31.5 -145q-23 -65 -63.5 -118.5t-103.5 -86.5q-59 -31 -141 -43q-42 -6 -91 -8t-95 -2zM518 1329q-48 0 -81 -3.5t-54 -14.5t-31 -32t-10 -56t10 -55t31 -31t54 -14 t81 -3v209zM711 133q82 0 132 26.5t77 77.5t35.5 125.5t8.5 179.5q0 104 -8.5 181.5t-35.5 128.5t-77 74t-132 23v-816z" />
+<glyph unicode="&#x559;" d="M754 1007q-58 0 -108 21.5t-87 58.5t-58 87.5t-21 107.5t21 107t58 87t87 58.5t108 21.5v-123q-32 0 -59.5 -12t-48 -32t-32.5 -48t-12 -59q0 -32 12 -59.5t32.5 -48t48 -32.5t59.5 -12v-123z" />
+<glyph unicode="&#x55a;" d="M552 1341v152h211v-152l-164 -319h-129z" />
+<glyph unicode="&#x55b;" d="M659 1645h198l-325 -376h-154z" />
+<glyph unicode="&#x55c;" d="M225 1265q0 60 20.5 114t57.5 98q42 49 93.5 77.5t107.5 42.5q6 2 30.5 7.5t80.5 18.5q28 6 56.5 15.5t55 22.5t49.5 29t41 36q17 19 27 42.5t11 60.5h152q0 -57 -19 -110.5t-55 -98.5q-38 -48 -86.5 -75.5t-99.5 -43.5q-29 -9 -66.5 -17.5t-66.5 -14.5t-59 -14 t-57 -19.5t-49.5 -26t-38.5 -34.5q-14 -18 -23.5 -44.5t-9.5 -65.5h-152v0z" />
+<glyph unicode="&#x55d;" d="M377 1638h198l281 -376h-154z" />
+<glyph unicode="&#x55e;" d="M792 1256q-42 0 -82 10t-77 35q-34 23 -61 59.5t-41 93.5h165q5 -29 30.5 -45t60.5 -16q26 0 45.5 8.5t31.5 22.5q21 25 21 73q0 40 -15 71.5t-41 52.5q-53 42 -139 42q-23 0 -48 -3t-49 -10l-2 -1q-130 -32 -192.5 -129.5t-62.5 -254.5h-158q0 120 27.5 207t78.5 153 q54 69 124.5 111t151.5 62q61 15 127 15q69 0 133 -17.5t117 -56.5q52 -38 84.5 -97t32.5 -138q0 -59 -18 -103t-49 -74q-34 -33 -83 -52t-112 -19z" />
+<glyph unicode="&#x55f;" d="M188 1556h140v-169h716v-122h-856v291z" />
+<glyph unicode="&#x561;" d="M344 -27q-62 0 -108 22t-77 81q-14 27 -24.5 63t-17.5 83.5t-10.5 109t-3.5 139.5v649h168v-641q0 -119 6 -192q3 -37 8 -66.5t17.5 -50.5t34 -32t57.5 -11q45 0 69.5 16t38.5 45q16 32 23.5 100t7.5 191v641h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33 q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-1120h-167v96q-68 -123 -198 -123q-68 0 -120.5 33.5t-81.5 107.5q-35 -72 -85.5 -106.5t-132.5 -34.5z" />
+<glyph unicode="&#x562;" d="M193 1120h184v-168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-244h-185v244q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-490h682v-143h-682v-426h-184v1546z" />
+<glyph unicode="&#x563;" d="M806 139q-45 -85 -120.5 -128.5t-179.5 -43.5q-100 0 -180 40.5t-137 116.5q-57 77 -86.5 184t-29.5 244q0 138 29.5 247t86.5 186t137 117.5t180 40.5q102 0 178 -42.5t122 -127.5l18 147h167v-977h168v-143h-168v-426h-185v565zM536 123q135 0 202.5 108.5t67.5 323.5 t-67.5 323.5t-202.5 108.5q-134 0 -201 -108q-67 -109 -67 -324q0 -432 268 -432z" />
+<glyph unicode="&#x564;" d="M855 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-633h-184v1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-551h148v-143h-148v-426h-185v1120z" />
+<glyph unicode="&#x565;" d="M522 -29q-173 0 -255.5 112t-82.5 341v1132h184v-436h721v-143h-721v-553q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v235h185v-720h-185v168q-49 -97 -132.5 -147t-200.5 -50z" />
+<glyph unicode="&#x566;" d="M836 139q-45 -85 -120.5 -128.5t-179.5 -43.5q-100 0 -180 40.5t-137 116.5q-57 77 -86.5 184t-29.5 244q0 138 29.5 247t86.5 186t137 117.5t180 40.5q102 0 178 -42.5t122 -127.5l18 147h167v-1401h168v-145h-353v565zM566 123q135 0 202.5 108.5t67.5 323.5 t-67.5 323.5t-202.5 108.5q-134 0 -201 -108q-67 -109 -67 -324q0 -432 268 -432z" />
+<glyph unicode="&#x567;" d="M227 1556h184v-436h634v-143h-634v-829h549v-148h-733v1556z" />
+<glyph unicode="&#x568;" d="M183 1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-916h682v-143h-866v1546z" />
+<glyph unicode="&#x569;" d="M106 1120h166l18 -170q34 58 70.5 96t79.5 61q77 40 190 40q117 0 200 -41.5t142 -117.5q61 -79 94.5 -187.5t38.5 -241.5h101v-143h-104q-11 -131 -46.5 -216.5t-86.5 -136.5t-111.5 -71.5t-126.5 -20.5q-69 0 -126 19.5t-99 56.5t-63.5 89t-21.5 119q0 77 26.5 134.5 t70.5 95.5t100 56t116 18h201q-2 109 -25.5 188t-62.5 132q-86 116 -256 116q-71 0 -128.5 -21t-95.5 -66t-57.5 -116t-19.5 -173v-1045h-184v1546zM731 107q40 0 72.5 16t58.5 53q26 38 43.5 96t24.5 144h-196q-26 0 -51 -10t-45 -30q-20 -21 -32.5 -51.5t-12.5 -70.5 q0 -30 8 -56.5t25 -46.5q16 -19 41 -31.5t64 -12.5z" />
+<glyph unicode="&#x56a;" d="M551 -29q-123 0 -208.5 44t-141.5 123q-57 81 -82.5 188t-25.5 228q0 120 25 220t80 178q55 77 141.5 122.5t209.5 45.5h277v436h185v-436h168v-143h-168v-472q0 -115 -26.5 -212t-83.5 -169t-144.5 -112.5t-205.5 -40.5zM555 127q67 0 119 29t87 87q33 56 49 135t16 181 v418h-275q-60 0 -107.5 -29t-82.5 -83t-54 -131t-19 -182q0 -94 16 -173.5t49 -136.5q67 -115 202 -115z" />
+<glyph unicode="&#x56b;" d="M188 1556h184v-604q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-1059h-184v1982z" />
+<glyph unicode="&#x56c;" d="M407 1120h184v-1403h395v-143h-579v1546z" />
+<glyph unicode="&#x56d;" d="M104 1556h167v-532q35 62 83.5 92.5t117.5 30.5q67 0 112.5 -28t71.5 -81q26 -54 35 -130.5t9 -176.5v-252q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-1120h-167v96q-35 -62 -83.5 -92.5 t-117.5 -30.5q-67 0 -112 28t-71 81q-26 54 -35.5 130.5t-9.5 176.5v252q0 73 -2 124t-6 85t-9.5 54t-11.5 33q-13 26 -37.5 41t-64.5 15q-43 0 -65.5 -17t-34.5 -44q-17 -37 -23.5 -108t-6.5 -183v-1067h-167v1982z" />
+<glyph unicode="&#x56e;" d="M615 -29q-126 0 -215 43.5t-147 117.5q-60 75 -88 177.5t-28 226.5q0 135 30.5 236t83.5 172t122 111.5t150 55.5l-271 179l207 289l148 -98l-106 -151l321 -210h271v-170h-90q32 -48 51.5 -105t28.5 -111q4 -27 7 -54t4 -51t1.5 -43t0.5 -30q0 -138 -27.5 -243.5 t-87.5 -180.5q-57 -72 -148 -116.5t-218 -44.5zM614 127q78 0 134 32t91 89q31 52 46.5 127t15.5 186q0 12 -0.5 33.5t-2.5 47t-5.5 54.5t-10.5 56q-13 53 -40 104.5t-73 93.5h-153q-78 0 -132.5 -32.5t-88.5 -89.5t-49.5 -132.5t-15.5 -160.5q0 -83 15 -157t49 -130 q35 -59 89.5 -90t130.5 -31z" />
+<glyph unicode="&#x56f;" d="M859 168q-49 -97 -132.5 -147t-200.5 -50q-173 0 -255.5 112t-82.5 341v1132h184v-1132q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v635h185v-1546h-185v594z" />
+<glyph unicode="&#x570;" d="M189 1556h184v-604q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1556z" />
+<glyph unicode="&#x571;" d="M540 -30q-89 0 -158 32.5t-117 92.5t-73.5 142t-25.5 182q0 196 97.5 371t280.5 331q-57 7 -99 29.5t-70 54.5t-41.5 70.5t-13.5 79.5q0 32 8.5 63t26.5 59l51 79h199l-57 -85q-32 -49 -32 -97q0 -55 38 -93q18 -18 43 -28.5t57 -10.5t65 11q27 18 55 36t57 35v-177 q-21 -13 -41.5 -26.5t-41.5 -27.5q90 -53 150 -116.5t95 -135.5q35 -73 49 -155t14 -173v-513h-184v172q-20 -45 -51.5 -81.5t-73.5 -63.5q-40 -26 -92 -41.5t-115 -15.5zM594 131q72 0 126 27.5t88 74.5q32 44 48 105t16 132v86q0 51 -10 111.5t-37 120.5t-74.5 113.5 t-122.5 92.5q-61 -57 -108.5 -116.5t-83.5 -127.5q-37 -69 -58 -143t-21 -159q0 -65 13.5 -123t42.5 -102q30 -46 74 -69t107 -23z" />
+<glyph unicode="&#x572;" d="M865 694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-633h-184v1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-977h149v-143h-334v1120z" />
+<glyph unicode="&#x573;" d="M553 -29q-96 0 -162 32.5t-111 88.5q-46 57 -68.5 132.5t-22.5 185.5q0 61 7 131.5t21 144.5t34.5 148t47.5 143h-145v143h210q51 94 113 174t137 139t161.5 91t180.5 32q27 0 51 -3q11 -2 20 -3.5t17 -4.5v-151q-20 9 -48 14t-54 5q-57 0 -110.5 -22.5t-99.5 -57.5 q-49 -38 -96.5 -93.5t-86.5 -123.5q121 -10 216.5 -49.5t163.5 -106.5t104 -158t36 -206v-596h-166l-18 168q-24 -45 -55 -80.5t-72 -61.5t-91.5 -40.5t-113.5 -14.5zM614 131q78 0 129 30t83 79q32 48 45.5 108.5t13.5 121.5v139q0 76 -22.5 140.5t-71.5 112.5t-126 77 t-186 36q-26 -61 -45.5 -127.5t-32.5 -134.5t-20 -134.5t-7 -127.5q0 -53 5 -93t14.5 -70.5t23 -52.5t30.5 -40q63 -64 167 -64z" />
+<glyph unicode="&#x574;" d="M482 -29q-173 0 -255.5 112t-82.5 341v696h184v-696q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v1071h353v-143h-168v-1413h-167l-18 168q-49 -97 -132.5 -147t-200.5 -50z" />
+<glyph unicode="&#x575;" d="M217 -270h234q180 0 180 250v1140h184v-1140q0 -197 -88.5 -301.5t-255.5 -104.5h-254v156z" />
+<glyph unicode="&#x576;" d="M530 -29q-173 0 -255.5 112t-82.5 341v989h-168v143h352v-1132q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v635h185v-1120h-167l-18 168q-49 -97 -132.5 -147t-200.5 -50z" />
+<glyph unicode="&#x577;" d="M352 -426q-42 0 -76 13.5t-58 37.5q-24 23 -37 54.5t-13 65.5q0 54 31 109t79 110t111.5 117t129.5 125q69 66 130.5 130t111.5 131q51 68 80 134t29 139q0 51 -17 99t-59 85q-38 34 -92 52t-117 18q-47 0 -83 -10t-68 -27q-35 -19 -65.5 -46t-52.5 -61l-136 101 q72 92 172.5 144.5t241.5 52.5q97 0 183 -27t149 -81q64 -55 96 -130.5t32 -163.5q0 -85 -28 -158.5t-77 -147.5q-51 -76 -111 -143t-121 -129l-24.5 -24.5t-31.5 -31t-34.5 -33t-32.5 -30.5l-54 -52t-51.5 -50.5t-45 -47t-34.5 -41.5q-29 -39 -29 -65q0 -8 3.5 -21 t13.5 -25t26 -21t42 -9h539v-143h-652v0z" />
+<glyph unicode="&#x578;" d="M189 1120h166l18 -168q49 97 133 146t199 49q172 0 256 -112t84 -341v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -91t-69 -263v-633h-184v1120z" />
+<glyph unicode="&#x579;" d="M412 -426q-34 0 -63.5 10t-55.5 33q-24 22 -37.5 53t-13.5 80q0 55 17 123t47 140t72 147.5t88 141.5q48 69 102 133.5t107 115.5q-45 0 -99.5 16t-102.5 51t-80.5 88.5t-32.5 129.5q0 60 24.5 121.5t79.5 116.5l95 96l123 -113l-31 -30q-47 -45 -76.5 -93t-29.5 -95 q0 -41 21.5 -68t52.5 -44q33 -19 73.5 -27.5t80.5 -8.5q35 0 65.5 5.5t53.5 14.5l63 -113q-112 -91 -206.5 -197.5t-163.5 -213.5q-35 -53 -62 -104t-45.5 -97.5t-28.5 -87t-10 -71.5q0 -46 24 -77q11 -15 27 -24t37 -9h463v-143h-578v0z" />
+<glyph unicode="&#x57a;" d="M957 96q-68 -123 -198 -123q-68 0 -120.5 33.5t-81.5 107.5q-35 -72 -85.5 -106.5t-132.5 -34.5q-62 0 -108 22t-77 81q-14 27 -24.5 63t-17.5 83.5t-10.5 109t-3.5 139.5v649h168v-641q0 -119 6 -192q3 -37 8 -66.5t17.5 -50.5t34 -32t57.5 -11q45 0 69.5 16t38.5 45 q16 32 23.5 100t7.5 191v641h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-1546h-167v522z" />
+<glyph unicode="&#x57b;" d="M363 -426q-38 0 -71.5 13t-57.5 33t-39 49.5t-15 69.5q0 39 14.5 76t37 71.5t49.5 66.5t53 61q21 23 39.5 49t29.5 70q8 29 9.5 55.5t1.5 44.5q0 33 -3 60t-10 52t-19 49.5t-31 51.5q-14 21 -30 41.5t-30 37.5q-38 47 -63 84t-42 79q-8 20 -13 43t-5 53q0 76 35 143.5 t97 118.5q57 47 135.5 74.5t174.5 27.5q41 0 83.5 -6t84 -18.5t80.5 -32.5t74 -48q66 -54 99.5 -126.5t33.5 -163.5q0 -88 -29 -163.5t-76 -147.5q-48 -74 -108 -141t-124 -131q-27 -27 -59 -58t-64 -61l-66.5 -63t-50 -49t-38 -40.5t-30.5 -37.5q-14 -20 -21.5 -36.5 t-7.5 -33.5q0 -20 9.5 -34.5t22.5 -23.5t27.5 -12.5t25.5 -3.5h539v-143h-652zM512 188q63 61 128.5 126t119.5 134t87.5 140t33.5 152q0 60 -20.5 107.5t-58.5 80.5q-39 34 -90 50t-108 16q-54 0 -97 -13.5t-75 -39.5q-36 -29 -56 -68t-20 -81q0 -29 12 -61.5t42 -77.5 q16 -23 30.5 -43t18.5 -25q26 -35 50 -74.5t38 -77.5q15 -41 15 -85q0 -80 -50 -160z" />
+<glyph unicode="&#x57c;" d="M182 1120h166l18 -172q49 100 130 149.5t199 49.5q103 0 173.5 -34.5t115.5 -97.5t66.5 -150t21.5 -188q0 -79 -13 -152.5t-42 -141.5q-27 -64 -68 -123t-95 -117h297v-143h-515v132q63 52 109 106.5t76 115.5q29 58 44 125t15 154q0 68 -12 133t-45 117q-32 50 -80.5 77 t-117.5 27q-68 0 -115 -26t-79 -71t-48.5 -106t-16.5 -131v-653h-184v1120z" />
+<glyph unicode="&#x57d;" d="M528 -29q-172 0 -255.5 112t-83.5 341v694h184v-694q0 -151 53.5 -222t165.5 -71q131 0 199.5 91t68.5 263v633h185v-1118h-167l-18 168q-49 -97 -133 -147t-199 -50z" />
+<glyph unicode="&#x57e;" d="M853 168q-49 -97 -132.5 -147t-200.5 -50q-173 0 -255.5 112t-82.5 341v696h184v-696q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v1071h185v-1837h172v-145h-357v594z" />
+<glyph unicode="&#x57f;" d="M333 -27q-130 0 -183 107q-26 54 -36 132t-10 181v727h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v641h167v-96q37 66 86 94.5t115 28.5q129 0 182 -107q26 -54 36 -132t10 -181v-727 h-168v641q0 71 -2 121.5t-6 85t-9 55.5t-11 34q-14 29 -41.5 42.5t-63.5 13.5q-34 0 -55.5 -11.5t-34.5 -32.5t-19.5 -49t-10.5 -61q-4 -32 -6 -73t-2 -92v-674h-167v96q-37 -66 -86 -94.5t-114 -28.5z" />
+<glyph unicode="&#x580;" d="M188 1120h166l18 -168q49 97 133 146t199 49q173 0 256.5 -111.5t83.5 -341.5v-694h-185v694q0 151 -52.5 222t-165.5 71q-131 0 -200 -90t-69 -264v-1059h-184v1546z" />
+<glyph unicode="&#x581;" d="M597 -440q-76 0 -158.5 14t-166.5 41v182q50 -23 94.5 -40t84.5 -28t77.5 -16.5t74.5 -5.5q145 0 212 82.5t67 255.5v133q-42 -91 -117 -138.5t-184 -47.5q-100 0 -180.5 41t-136.5 116t-86.5 182t-30.5 239t30 238.5t86.5 181.5t137 116t181.5 41q103 0 178.5 -43.5 t121.5 -132.5l18 145h166v-1044q0 -254 -118.5 -383t-350.5 -129zM616 145q132 0 199 108t67 316t-67 315t-200 107q-132 0 -203 -106.5t-71 -314.5q0 -209 71.5 -317t203.5 -108z" />
+<glyph unicode="&#x582;" d="M309 1120h184v-977h550v-143h-734v1120z" />
+<glyph unicode="&#x583;" d="M533 96q-37 -66 -86 -94.5t-114 -28.5q-130 0 -183 107q-26 54 -36 132t-10 181v727h168v-641q0 -74 2 -124.5t6 -84.5t9.5 -54t11.5 -33q13 -26 37.5 -41t64.5 -15q43 0 65.5 17t34.5 44q17 37 23.5 108t6.5 183v1077h167v-532q37 66 86 94.5t115 28.5q129 0 182 -107 q26 -54 36 -132t10 -181v-727h-168v641q0 71 -2 121.5t-6 85t-9 55.5t-11 34q-14 29 -41.5 42.5t-63.5 13.5q-34 0 -55.5 -11.5t-34.5 -32.5t-19.5 -49t-10.5 -61q-4 -32 -6 -73t-2 -92v-1100h-167v522z" />
+<glyph unicode="&#x584;" d="M199 -327h-120v143h120v1304h167l18 -143q46 85 122 127.5t178 42.5q100 0 180 -40.5t137 -117.5t86.5 -186t29.5 -248q0 -134 -28.5 -241.5t-86.5 -185.5q-57 -76 -136.5 -116.5t-182.5 -40.5q-208 0 -299 170v-325h754v-143h-754v-99h-185v99zM656 127q134 0 201 109 q67 107 67 323q0 432 -268 432q-136 0 -204 -108.5t-68 -323.5t68 -323.5t204 -108.5z" />
+<glyph unicode="&#x585;" d="M616 -29q-235 0 -357 149.5t-122 437.5q0 143 31 253t92 184.5t150 113t206 38.5t206.5 -38.5t150 -113t92 -184.5t31.5 -253q0 -286 -123 -436.5t-357 -150.5zM616 127q142 0 213.5 109t71.5 323q0 215 -71.5 323.5t-213.5 108.5q-141 0 -212.5 -108.5t-71.5 -323.5 q0 -214 71.5 -323t212.5 -109z" />
+<glyph unicode="&#x586;" d="M481 -5q-80 0 -142.5 16t-115.5 42q-56 28 -103.5 66.5t-94.5 90.5l123 128q33 -45 68.5 -81.5t75.5 -62.5q43 -29 88.5 -42.5t100.5 -13.5v814q-99 0 -176 22.5t-132 62.5t-84 96t-29 125q0 68 28.5 124.5t85.5 96.5q112 77 316 77h175v-441q139 0 235.5 -35.5 t158.5 -104.5t90 -168.5t28 -228.5t-28 -236t-89 -185t-158 -120t-237 -42v-421h-184v421zM481 1414q-125 0 -183 -39.5t-58 -106.5q0 -72 61 -112.5t180 -40.5v299zM665 138q94 0 157.5 33t102.5 92q38 59 54.5 138.5t16.5 176.5q0 88 -14 158t-52 118t-101.5 73t-163.5 25 v-814z" />
+<glyph unicode="&#x587;" d="M450 -29q-173 0 -255.5 112t-82.5 341v1132h184v-1132q0 -151 53.5 -222t165.5 -71q132 0 200 90.5t68 263.5v635h185v-977h232v-143h-417v168q-49 -97 -132.5 -147t-200.5 -50z" />
+<glyph unicode="&#x589;" d="M541 596q-30 0 -30 30v194q0 30 30 30h151q30 0 30 -30v-194q0 -30 -30 -30h-151zM541 0q-30 0 -30 30v194q0 30 30 30h151q30 0 30 -30v-194q0 -30 -30 -30h-151z" />
+<glyph unicode="&#x58a;" d="M356 643q64 -31 127 -45.5t127 -14.5q66 0 132.5 15.5t134.5 44.5v-164q-68 -29 -134.5 -44t-133.5 -15q-63 0 -126.5 14.5t-126.5 44.5v164z" />
+<glyph unicode="&#xe3f;" d="M560 0h-376v1306h376v250h100v-251q90 -5 165 -26.5t129 -62t84.5 -101.5t30.5 -144q0 -121 -64.5 -188t-187.5 -84q145 -20 224 -110t79 -233q0 -173 -120 -260t-340 -95v-302h-100v301zM560 767v394h-180v-394h180zM660 769q46 4 85.5 15.5t67.5 34.5t44 60t16 92 q0 51 -14 85.5t-41.5 56t-67 32.5t-90.5 14v-390zM560 145v479h-180v-479h180zM660 146q66 3 115.5 16.5t82.5 40.5t49.5 69t16.5 103q0 65 -18.5 110.5t-52.5 74.5t-83 43.5t-110 18.5v-476z" />
+<glyph unicode="&#x10d0;" d="M609 0q-112 0 -196 30t-140.5 86.5t-84.5 137.5t-28 184q0 31 3 58t12 53t24.5 52.5t40.5 58.5h190q-26 -31 -42 -55.5t-26 -48t-13.5 -48.5t-3.5 -55q0 -71 17 -127.5t51 -97t85 -62t119 -21.5q136 0 204 84.5t68 236.5q0 116 -43.5 188.5t-145.5 113.5 q-293 102 -294 378h181q2 -161 127 -212q97 -37 166 -81t112 -100.5t63 -126t20 -157.5q0 -109 -29 -196t-87.5 -147.5t-145.5 -93t-204 -32.5z" />
+<glyph unicode="&#x10d1;" d="M621 0q-230 0 -346 138t-116 393q0 117 24.5 205t73 152t121.5 105t170 63v138q0 41 -14.5 66.5t-38 41.5t-52.5 24.5t-57 15.5q-71 17 -106 67t-35 149h181q0 -89 126 -116q161 -57 161 -242v-144q92 -32 160.5 -77.5t113.5 -110t67 -149.5t22 -195q0 -126 -28.5 -223.5 t-85 -164t-142 -101.5t-199.5 -35zM620 145q136 0 202 101t66 292q0 193 -66.5 285.5t-204.5 92.5q-272 0 -272 -374q0 -193 69 -295t206 -102z" />
+<glyph unicode="&#x10d2;" d="M638 -425q-137 0 -236.5 39t-164 103.5t-95.5 146t-31 167.5q0 88 32.5 173t99.5 152t168.5 109t239.5 44q25 19 45 44.5t34.5 54t22.5 59.5t8 61q0 35 -11.5 66.5t-37.5 55.5t-67 38.5t-101 14.5q-88 0 -133 -34.5t-45 -106.5q0 -42 15 -87l-137 -82q-23 38 -34.5 84.5 t-11.5 97.5q0 137 86 203.5t270 66.5q193 0 291 -72.5t98 -220.5q0 -81 -30 -143.5t-92 -104.5v-20q151 -56 225.5 -164t74.5 -280q0 -116 -33 -203t-95 -145.5t-151.5 -87.5t-203.5 -29zM616 -276q163 0 245 80t82 225q0 89 -28 152.5t-74 104.5t-104.5 60.5t-119.5 19.5 t-120 -19.5t-105 -60.5t-74.5 -105t-28.5 -153q0 -144 81.5 -224t245.5 -80z" />
+<glyph unicode="&#x10d3;" d="M780 -425q-51 94 -125 135t-155 41q-63 0 -123.5 -21.5t-111.5 -59.5l-44 105q41 44 124 62v11q-146 139 -218 324t-72 399q0 235 85 349.5t241 114.5q28 0 52 -4.5t46 -15.5t44 -30t47 -48h20q60 98 229 98q359 0 359 -469v-20q0 -506 -343 -506q-345 0 -345 527v234 q0 93 -73 93h-43q-129 0 -129 -316v-109q0 -127 23 -219t65 -157.5t100.5 -110t128.5 -77.5q80 -38 141 -68.5t110 -66t89.5 -81.5t79.5 -113zM831 185q81 0 119.5 61.5t38.5 194.5v212q0 241 -149 241h-71q-119 0 -119 -182v-247q0 -141 46.5 -210.5t134.5 -69.5z" />
+<glyph unicode="&#x10d4;" d="M631 -425q-117 0 -205.5 26.5t-147.5 76t-88.5 121t-29.5 161.5q0 41 7 76t23 66.5t43 61.5t68 62h188q-36 -30 -63 -59t-45 -60t-27 -65.5t-9 -75.5q0 -117 72 -183t218 -66q264 0 264 241v676q0 137 -59.5 203t-182.5 66q-113 0 -172.5 -55t-59.5 -167q0 -111 62 -212 l-176 -1q-30 40 -43 94t-13 108q0 94 34 164.5t90.5 117.5t128 70t146.5 23q79 0 154.5 -25.5t134.5 -76.5t95.5 -128.5t36.5 -181.5v-665q0 -198 -109.5 -295.5t-334.5 -97.5z" />
+<glyph unicode="&#x10d5;" d="M624 -425q-117 0 -204.5 26.5t-145.5 76t-87 120t-29 159.5q0 32 4.5 58.5t16.5 52.5t32.5 54t53.5 63h192q-34 -38 -56 -66.5t-34.5 -53.5t-17 -49t-4.5 -52q0 -115 68.5 -181t211.5 -66q127 0 196 55.5t69 167.5v98q0 243 -237 243h-73v140h73q57 0 99 20.5t70.5 54.5 t42.5 78t14 92q0 44 -12.5 86.5t-42 76t-76.5 54t-116 20.5q-51 0 -95 -12.5t-75.5 -37.5t-49.5 -63t-18 -88q0 -39 11.5 -93t34.5 -116h-161q-60 82 -60 208q0 172 109 258t311 86q217 0 322 -96t105 -273q0 -62 -13 -110.5t-41 -86.5t-71 -68.5t-104 -55.5v-20 q237 -44 237 -301v-79q0 -191 -115 -285.5t-335 -94.5z" />
+<glyph unicode="&#x10d6;" d="M640 0q-457 0 -457 503q0 331 200 405v20q-107 32 -153 105t-46 191q0 165 84 248.5t257 83.5q171 0 256 -81t85 -236q0 -82 -23.5 -142.5t-69.5 -103.5v-20q326 -45 326 -468q0 -505 -459 -505zM533 983q90 0 133 55t43 151q0 61 -15.5 104t-40.5 70t-57.5 39.5 t-65.5 12.5q-34 0 -66.5 -13t-57.5 -40.5t-40 -69.5t-15 -100q0 -98 45.5 -153.5t136.5 -55.5zM641 145q136 0 204.5 91.5t68.5 256.5q0 100 -23 172.5t-61.5 119t-87 68.5t-99.5 22t-100 -22t-87 -68.5t-61.5 -119.5t-23.5 -174q0 -165 67.5 -255.5t202.5 -90.5z" />
+<glyph unicode="&#x10d7;" d="M409 0q-174 0 -269 130t-95 389v30q0 242 94 364t280 122q74 0 129 -22t95 -77h14q43 56 90.5 77.5t107.5 21.5q151 0 232 -112.5t81 -338.5v-67q0 -350 -239 -517h-162q212 174 212 496v117q0 281 -132 281h-33q-83 0 -83 -182v-220q0 -254 -79 -373t-243 -119zM405 145 q165 0 165 243v361q0 75 -16.5 110t-51.5 35l-87 -1q-91 -1 -135.5 -66.5t-44.5 -205.5v-189q0 -148 41.5 -217.5t128.5 -69.5z" />
+<glyph unicode="&#x10d8;" d="M396 0q-124 108 -180 244.5t-56 306.5q0 494 459 494q455 0 455 -491q0 -174 -58 -312.5t-182 -241.5h-146q49 63 86.5 133.5t63 143.5t38.5 146.5t13 141.5q0 71 -15 132.5t-47.5 107t-84 71.5t-124.5 26q-129 0 -200.5 -87.5t-71.5 -262.5q0 -284 198 -552h-148v0z" />
+<glyph unicode="&#x10d9;" d="M630 -423q-236 0 -354 106.5t-118 300.5q0 39 5.5 73t18.5 65t34.5 60t53.5 59h173q-25 -29 -43.5 -58t-30.5 -59t-18 -63t-6 -71q0 -130 71 -201t213 -71q259 0 259 252v50q0 272 -238 272h-65v152h65q115 0 171.5 50t56.5 141q0 121 -102.5 179t-319.5 58v154 q301 0 451.5 -96.5t150.5 -277.5q0 -54 -14 -97t-45.5 -76t-82.5 -56.5t-124 -37.5v-20q139 -24 211.5 -109.5t72.5 -235.5v-50q0 -393 -446 -393z" />
+<glyph unicode="&#x10da;" d="M762 -425q-12 56 -40 98.5t-66.5 71t-83.5 42.5t-91 14q-53 0 -100.5 -18.5t-81.5 -56.5l-77 95q61 90 174 104l13 14q-125 130 -187 293.5t-62 341.5q0 238 113 354.5t339 116.5q233 0 347.5 -117.5t114.5 -334.5q0 -42 -4 -70.5t-11.5 -51.5t-18.5 -43.5t-25 -44.5 q-16 -28 -30 -66.5t-14 -104.5q0 -20 1.5 -38t3.5 -38l-159 -1q-6 48 -6 90q0 30 2.5 52t7 39.5t10 31.5t12.5 28q10 21 18.5 41t14.5 43.5t9.5 51.5t3.5 66q0 166 -67.5 246t-206.5 80t-204.5 -84t-65.5 -262q0 -127 29 -226t73.5 -175.5t98 -133t103.5 -96.5 q57 -47 111.5 -92.5t97 -90t68.5 -87t26 -82.5h-190v0z" />
+<glyph unicode="&#x10db;" d="M616 0q-234 0 -352 130.5t-118 394.5q0 260 115.5 390.5t336.5 130.5q105 0 170 -30t101 -95h20v258q0 62 -24.5 107t-64 74t-89.5 42.5t-101 13.5q-45 0 -88 -10.5t-76 -30t-53 -48t-20 -64.5v-62h-187v62q0 294 415 294q463 0 463 -378v-684q0 -249 -111.5 -372 t-336.5 -123zM628 145q121 0 184.5 88.5t63.5 272.5q0 196 -69 296t-194 100q-72 0 -125 -32t-87 -85t-50.5 -120.5t-16.5 -137.5q0 -72 17 -140.5t53 -122t91.5 -86.5t132.5 -33z" />
+<glyph unicode="&#x10dc;" d="M607 0q-221 0 -334.5 122.5t-113.5 367.5v694q-2 347 332 347h462v-143h-482q-141 0 -141 -176v-294h35q35 66 95 97t167 31q219 0 333 -127t114 -388q0 -259 -116 -395t-351 -136zM609 146q141 0 210.5 98.5t69.5 289.5q0 187 -68.5 278.5t-205.5 91.5 q-140 0 -208.5 -93t-68.5 -285q0 -380 271 -380z" />
+<glyph unicode="&#x10dd;" d="M254 0q-199 224 -199 461v102q0 118 24.5 206.5t71 147.5t113 88.5t150.5 29.5q36 0 63 -5.5t49.5 -18t43 -32.5t41.5 -48h17q22 31 42.5 51.5t42 32t46 16t54.5 4.5q85 0 152.5 -29.5t115 -88.5t72.5 -148t25 -208v-107q0 -236 -188 -454h-179q179 193 179 399v281 q0 215 -153 214h-75q-64 0 -64 -207v-277h-160v277q0 207 -66 207h-77q-148 0 -148 -228v-260q0 -110 49.5 -209.5t151.5 -196.5h-194v0z" />
+<glyph unicode="&#x10de;" d="M619 0q-220 0 -339.5 107.5t-119.5 321.5q0 189 101 278h175q-91 -125 -91 -276q0 -143 72.5 -214.5t203.5 -71.5q137 0 202 79.5t65 244.5q0 170 -68 252.5t-208 82.5h-63v135h82q52 0 92.5 13.5t68 36.5t41.5 53t14 63q0 34 -16.5 69t-51 65t-87 51.5t-124.5 30.5 q-292 54 -292 230h172q0 -71 239 -112q171 -20 257 -94t86 -210q0 -96 -44.5 -163t-141.5 -99v-20q61 -29 104.5 -65.5t72 -84.5t42 -109t13.5 -137q0 -223 -112.5 -340t-344.5 -117z" />
+<glyph unicode="&#x10df;" d="M607 -423q-223 0 -335 91t-113 276h187q-2 -227 263 -227q145 0 218 66.5t73 200.5v936l-435 -52v-60q110 -43 165.5 -126t55.5 -192q0 -159 -127.5 -237t-399.5 -79v167q100 0 169 9t111 29t60.5 51t18.5 75q0 51 -23 99.5t-68.5 90t-112.5 72.5t-155 48v130l916 129 v-1092q0 -405 -468 -405z" />
+<glyph unicode="&#x10e0;" d="M265 0q-210 210 -210 490v103q0 84 18 176.5t56 186t99 183.5t146 169.5t197 143.5t253 105l25 -148q-363 -83 -580 -435h24l86 61q165 0 237 -98h15q35 48 93 73t137 25q159 0 238 -109t79 -330v-142q0 -245 -208 -454h-197q216 184 216 403v193q0 298 -132 298h-88 q-65 0 -65 -167v-317h-160l1 317q2 167 -73 167h-124q-103 0 -103 -293v-165q0 -251 230 -436h-210v0z" />
+<glyph unicode="&#x10e1;" d="M618 0q-226 0 -342.5 129t-116.5 386v1006h182v-1006q0 -186 70.5 -278t206.5 -92q137 0 204 92t67 259q0 51 -6.5 90.5t-22.5 72.5t-41.5 60t-64.5 52q-24 16 -48.5 33t-44 39t-31.5 49.5t-12 63.5q0 73 53 142t153 129l87 -124q-77 -30 -109.5 -59t-32.5 -58 q0 -22 14.5 -43.5t37 -41.5t49.5 -39t52 -35q43 -28 72 -60.5t47 -72.5t26 -88.5t8 -109.5q0 -239 -113.5 -367.5t-343.5 -128.5z" />
+<glyph unicode="&#x10e2;" d="M598 -423q-131 0 -233.5 44.5t-173.5 133t-108.5 221.5t-37.5 309q0 319 126 496.5t380 219.5l-15 257h166l-15 -261q123 -20 216.5 -89t156.5 -170t95 -224.5t32 -252.5t-33.5 -252t-104.5 -219t-183 -154.5t-268 -58.5zM618 -283q193 0 290.5 144t97.5 423 q0 246 -77 396t-242 208l15 -539h-165l14 538q-163 -57 -240.5 -207t-77.5 -398q0 -281 95.5 -423t289.5 -142z" />
+<glyph unicode="&#x10e3;" d="M658 -423q-119 0 -208.5 27.5t-149.5 79.5t-90 127t-30 170q0 44 7 81t24 69t44.5 60t69.5 55h179q-39 -36 -65.5 -67.5t-42.5 -63t-23 -64t-7 -68.5q0 -124 73.5 -195t220.5 -71q260 0 260 240v746q0 46 -10.5 81.5t-27.5 60t-39 37t-45 12.5q-26 0 -51 -16t-44.5 -49 t-32 -84.5t-12.5 -121.5l-10 -193h-133l-9 193q0 269 -110 271q-37 -2 -55.5 -18t-37.5 -50q-6 -11 -13.5 -23t-18 -22t-25.5 -16t-35 -6q-73 0 -156 95l50 181q34 -53 58.5 -75.5t52.5 -22.5t44.5 16t30.5 34q18 24 40 36.5t57 12.5q28 0 52 -9t46 -30.5t42.5 -57 t40.5 -87.5h20q22 54 45.5 89.5t50.5 56.5t59 29t70 8q65 0 117.5 -20.5t89.5 -62t57 -104t20 -145.5v-746q0 -380 -440 -380z" />
+<glyph unicode="&#x10e4;" d="M655 -425q-430 0 -430 389h183q0 -247 249 -247h47q278 0 278 222v101q0 166 -57 168h-80v151h80q54 1 54 149v182q0 204 -100 204h-83q-59 0 -59 -123v-202q0 -123 -31 -213.5t-81 -150t-114.5 -88.5t-130.5 -29q-63 0 -123.5 26.5t-107.5 78t-75.5 128t-28.5 176.5v128 q0 205 94.5 307.5t269.5 102.5q75 0 126 -21.5t90 -77.5h17q96 99 236 99q145 0 217.5 -101.5t72.5 -290.5q0 -137 -39 -219.5t-119 -126.5v-20q161 -92 161 -233v-105q0 -364 -460 -364h-56zM409 215q159 0 159 261v251q0 167 -94 167h-77q-162 0 -162 -262v-120 q0 -149 44 -223t130 -74z" />
+<glyph unicode="&#x10e5;" d="M598 -425q-115 0 -202.5 29t-146.5 82t-89 127.5t-30 166.5q0 41 6.5 74t22 62.5t41.5 57.5t64 58l176 -1q-35 -35 -59 -65.5t-38.5 -59.5t-21 -59t-6.5 -64q0 -60 18.5 -109t54 -84t88.5 -54t122 -19q143 0 206.5 86.5t64.5 263.5l1 296q1 274 -72.5 407t-233.5 133 q-88 0 -134 -42.5t-46 -140.5q0 -32 5 -67.5t15.5 -69.5t26 -63.5t35.5 -49.5h-179q-37 57 -53.5 126.5t-16.5 137.5q0 84 23 143.5t61 97t88.5 54.5t106.5 17q52 0 103.5 -13.5t98 -38.5t86.5 -60t68 -78h17l1 665h173v-1454q0 -253 -109.5 -372.5t-335.5 -119.5z" />
+<glyph unicode="&#x10e6;" d="M773 -425q-8 46 -33.5 85t-62.5 67.5t-82.5 44t-94.5 15.5q-51 0 -102 -19t-96 -61l-65 92q58 84 122 85v22q-304 261 -304 556v80q0 248 88 371t253 123q76 0 126.5 -26t88.5 -78h16q71 104 224 104q160 0 243.5 -113t83.5 -337v-70q0 -245 -169 -421l-140 -1 q120 166 120 341v219q0 240 -134 240h-100q-58 0 -58 -175v-309h-160v309q0 175 -65 175h-76q-151 0 -151 -262v-138q0 -125 31.5 -213t80.5 -150t107 -103t112 -71q78 -44 139.5 -81.5t110.5 -80t85.5 -95t64.5 -126.5z" />
+<glyph unicode="&#x10e7;" d="M628 -423q-234 0 -352 99.5t-118 300.5h188q0 -131 71.5 -196t211.5 -65q266 0 266 241v244h-20q-46 -50 -110 -74t-159 -24q-111 0 -195 32t-140.5 92t-84.5 145t-28 190q0 77 15.5 140t49.5 117t86.5 102t127.5 94h216q-85 -59 -143.5 -111.5t-95 -106.5t-53 -112 t-16.5 -127q0 -72 17 -128.5t52 -96.5t89 -61t128 -21q60 0 109 14.5t83.5 44t53 73.5t18.5 103v521h179v-1054q0 -190 -111 -283t-335 -93z" />
+<glyph unicode="&#x10e8;" d="M662 0q-130 0 -225 46t-157 120.5t-92 169.5t-30 194q0 98 29 191t86 165t142 116t198 44q93 0 160 -32t102 -98h20v289q0 213 -142 213q-141 0 -141 -210v-33h-157v35q0 52 -11 91t-30 65t-45 39t-57 13q-28 0 -47.5 -11.5t-31.5 -38t-17.5 -69.5t-5.5 -107h-155 q0 187 55.5 275.5t170.5 88.5q85 0 148 -47t95 -146h20q16 50 37 86.5t50.5 60t67.5 35t89 11.5q142 0 214 -82.5t72 -237.5l2 -759q1 -233 -104 -355t-310 -122zM637 145q131 0 192 88t61 272q0 203 -69.5 301t-207.5 98q-136 0 -201.5 -93t-65.5 -273q0 -200 76.5 -296.5 t214.5 -96.5z" />
+<glyph unicode="&#x10e9;" d="M160 1214q0 172 91.5 257t283.5 85q181 0 286.5 -78t119.5 -235q2 -96 -96 -257q60 -26 103.5 -71.5t72 -105t42 -131t13.5 -149.5q0 -177 -69.5 -305t-210.5 -224h-178q68 50 118.5 114.5t84.5 136.5t50.5 146.5t16.5 145.5q0 70 -16.5 132t-49 108t-81.5 73t-114 27 q-8 1 -16.5 1h-16.5q-258 0 -258 -297v-587h-178zM366 917q51 104 253 104q47 0 103 -6q56 135 56 209q-14 93 -75.5 142t-165.5 49q-103 0 -152 -51.5t-49 -162.5v-284h30z" />
+<glyph unicode="&#x10ea;" d="M636 -423q-278 0 -414 173.5t-136 533.5v97q0 324 209 680l145 -76q-82 -126 -123.5 -262.5t-41.5 -280.5v-158q0 -289 89 -428t272 -139q76 0 137.5 24t104.5 70.5t66 116t23 160.5q0 120 -42.5 176.5t-139.5 56.5h-184v136h176q83 0 123 47t40 127q0 39 -10 66 t-29.5 46.5t-50 34.5t-70.5 30q-22 8 -46.5 20t-45.5 35.5t-36 62t-16 100.5h183q0 -67 33 -106.5t97 -64.5q22 -9 51 -22.5t55 -37t43.5 -59.5t17.5 -90q0 -81 -44 -140t-127 -102v-20q55 -35 93.5 -70.5t62.5 -75.5t34.5 -87t10.5 -106q0 -107 -32.5 -193t-97 -147.5 t-160 -94.5t-220.5 -33z" />
+<glyph unicode="&#x10eb;" d="M593 0q-230 0 -342.5 127.5t-112.5 387.5q0 264 113 397.5t343 133.5q106 0 172 -28.5t91 -86.5h20v590h178v-1004q0 -260 -114 -388.5t-348 -128.5zM592 145q277 0 277 376q0 192 -70 287t-204 95q-137 0 -203.5 -97.5t-66.5 -289.5q0 -189 65 -280t202 -91z" />
+<glyph unicode="&#x10ec;" d="M589 0q-205 0 -316.5 132t-111.5 395v709q0 161 75 240.5t213 79.5q98 0 154.5 -45t89.5 -148h20q30 95 92.5 144t149.5 49q115 0 170 -88.5t55 -275.5h-153q0 64 -5.5 107t-17.5 69.5t-31.5 38t-47.5 11.5q-62 0 -102.5 -52t-40.5 -156v-35h-157v33q0 210 -141 210 q-142 0 -142 -213v-289h20q35 66 103.5 98t159.5 32q112 0 196 -44t140 -117t84.5 -166t28.5 -192q0 -98 -28.5 -193t-88 -169t-151 -119.5t-217.5 -45.5zM889 522q0 97 -24 169t-63 119.5t-89.5 71t-102.5 23.5q-48 0 -95 -20.5t-84.5 -64t-60.5 -110.5t-23 -161t23.5 -169 t62.5 -127t89.5 -79.5t104.5 -27.5q49 0 96 23.5t84 70.5t59.5 117.5t22.5 164.5z" />
+<glyph unicode="&#x10ed;" d="M618 -423q-230 0 -344 101t-114 284q0 36 4.5 64.5t14 54t25 50t37.5 50.5l143 -105q-38 -36 -38 -110q0 -62 23 -108.5t60.5 -77.5t86 -47t99.5 -16t100 16t87.5 48.5t62 81t23.5 113.5q0 84 -43 148t-133 115q-113 112 -116 213l-89 -19q-309 0 -309 328q0 333 321 333 l77 -9v436h157v-511q93 -58 95 -164h184v-162h-189q0 -105 -82 -160l-1 -72q2 -66 173 -170q71 -49 107 -124.5t36 -184.5q0 -194 -114 -295t-344 -101zM540 562q85 0 125 51q20 26 30 63.5t10 79.5q0 52 -14.5 90t-37.5 63t-53.5 36.5t-61.5 11.5t-61 -11.5t-53 -36.5 t-37.5 -63.5t-14.5 -93.5q0 -90 41.5 -140t126.5 -50z" />
+<glyph unicode="&#x10ee;" d="M638 0q-459 0 -459 525v996h171v-607h41q42 73 104.5 102.5t158.5 29.5q212 0 327 -130.5t115 -393.5q0 -260 -114 -391t-344 -131zM639 145q270 0 270 379q0 380 -270 380q-274 0 -274 -380q0 -379 274 -379z" />
+<glyph unicode="&#x10ef;" d="M613 -423q-114 0 -199 30t-142 86.5t-85 137.5t-28 183q0 43 5.5 79t18 69.5t33 67.5t50.5 75l144 -89q-20 -33 -32.5 -59t-19.5 -47.5t-9.5 -41.5t-2.5 -41q0 -73 23.5 -130.5t61.5 -97t86.5 -60.5t99.5 -21t100 21t87 61.5t61 98t23 131.5q0 47 -10.5 89.5t-34 83.5 t-60 82t-88.5 84q-171 173 -171 306v160l-327 120v180l327 -128v232h146v-269l336 -127v-177l-336 134v-125q0 -72 215 -258q52 -52 88.5 -99t59.5 -95t33 -98.5t10 -108.5q0 -101 -29 -182.5t-87 -138.5t-145 -87.5t-202 -30.5z" />
+<glyph unicode="&#x10f0;" d="M604 0q-464 0 -464 416v101h188v-101q-2 -276 267 -276q77 0 130 20t86 52.5t47.5 72.5t14.5 80q0 32 -8.5 61t-23 51.5t-35 36t-44.5 13.5h-251v150h251q25 0 44 10.5t31.5 27t19 38t6.5 43.5t-6.5 43.5t-19 38t-31.5 26.5t-44 10h-251v152h249q23 0 40 9.5t28.5 25.5 t17.5 37t6 44q0 29 -11 49t-39.5 34.5t-78.5 26t-127 24.5q-27 4 -67 14t-77 35t-63 70.5t-26 120.5h166q0 -38 23.5 -63.5t62.5 -41.5t88.5 -25.5t101.5 -16.5q26 -3 66 -11.5t77 -30t63.5 -62t26.5 -107.5q0 -145 -144 -191v-20q78 -27 116 -75t38 -114q0 -128 -148 -186 v-20q43 -27 73 -53.5t49 -56t27.5 -64t8.5 -76.5q0 -80 -28.5 -143t-85.5 -107.5t-142 -68t-198 -23.5z" />
+<glyph unicode="&#x10f1;" d="M660 -423q-143 0 -242.5 32t-161.5 97t-90 163.5t-28 232.5q0 48 3.5 108t10 127.5t17 139t24.5 140.5q8 40 13 75t5 85q0 91 -17 185.5t-51 200.5h185q58 -180 58 -377q0 -40 -2.5 -82.5t-8.5 -86.5q-14 -58 -23.5 -131t-15.5 -146.5t-8.5 -140t-2.5 -109.5 q0 -76 11.5 -144t48 -119t105.5 -81t184 -30q127 0 184 42t57 137q0 37 -8.5 70t-25 58t-41.5 39t-59 14h-136v142h136q134 0 134 142q0 74 -33 115.5t-99 41.5h-138v138h138q66 0 99 38.5t33 112.5q0 70 -32 103t-102 33h-136v145h136q65 0 99.5 31.5t34.5 73.5 q0 22 -11 45.5t-33.5 44.5t-58 37t-83.5 25q-145 34 -146 212h166q0 -23 15 -40.5t41 -32.5t60.5 -28t72.5 -26q17 -6 43.5 -17t52 -33.5t43.5 -58.5t18 -91q0 -80 -44 -131t-135 -68v-20q91 -21 135 -70.5t44 -133.5q0 -41 -11 -76.5t-33 -63.5t-55.5 -46.5t-79.5 -25.5 v-20q89 -17 134 -75t45 -139q0 -78 -43 -126.5t-136 -74.5v-20q88 -28 133.5 -94t45.5 -167q0 -153 -107.5 -227t-327.5 -74z" />
+<glyph unicode="&#x10f2;" d="M201 -60q149 0 229 89q-270 169 -270 492q0 129 39.5 227.5t104.5 164.5t147.5 99.5t168.5 33.5q85 0 167 -33t146.5 -99t103.5 -163.5t39 -226.5q0 -165 -69 -286.5t-212 -208.5q91 -94 235 -89v-209q-264 69 -414 263q-192 -192 -415 -263v209zM616 118q72 23 123.5 59 t84.5 86.5t49 116.5t16 150q0 180 -68.5 276t-205.5 96q-136 0 -203 -95.5t-67 -273.5q0 -83 15 -149.5t48 -117.5t84.5 -87.5t123.5 -60.5z" />
+<glyph unicode="&#x10f3;" d="M618 -283q268 0 268 263v32q0 299 -318 298h-114v160h114q148 0 218 93.5t68 263.5l-1 74l-480 -30v-204h-173v349l876 29q0 -465 -276 -649q276 -113 276 -384v-32q0 -101 -40 -176.5t-104.5 -126t-147 -76t-168.5 -25.5t-168 25t-146.5 75.5t-103.5 126.5t-39 177 l31 111l180 -20l-21 -91q2 -263 269 -263z" />
+<glyph unicode="&#x10f4;" d="M609 -425q-458 0 -458 405h190q0 -264 267 -264q269 0 269 264v55q0 236 -275 236h-156v157h156q276 10 276 425q-64 -20 -133 -28.5t-140 -8.5q-232 0 -343 89t-111 270q0 184 113 283.5t346 98.5v-142q-156 0 -234 -61.5t-78 -175.5q0 -112 75.5 -165.5t224.5 -53.5 q133 0 245 42t224 126v-264q0 -200 -76 -323t-232 -177v-20q309 -62 309 -308v-55q0 -405 -459 -405z" />
+<glyph unicode="&#x10f5;" d="M565 0q-451 0 -451 341q0 173 112.5 263.5t339.5 90.5h273v161h-273q-227 0 -339.5 92t-112.5 266t113 258.5t340 84.5q224 0 333 -82.5t109 -254.5v-216h114v-148h-114v-161h114v-178h-114v-182q0 -170 -109.5 -252.5t-334.5 -82.5zM839 1004v216q0 195 -267 195 q-137 0 -202.5 -49.5t-65.5 -152.5t65.5 -156t196.5 -53h273zM571 140q268 0 268 211v196h-273q-132 0 -197 -51.5t-65 -152.5q0 -203 267 -203z" />
+<glyph unicode="&#x10f6;" d="M360 -282q183 0 174 231v777q0 178 -77 178l-97 -1q-60 -1 -87.5 -47t-27.5 -141v-319q0 -217 128 -217v-148q-318 3 -318 379v240q0 396 305 396q184 0 251 -145h16q61 145 245 145q153 0 229.5 -99t76.5 -297v-244q0 -204 -77 -305t-220 -101q-70 0 -108.5 26.5 t-53.5 89.5h-15v-152q-10 -388 -344 -388v142zM864 145q65 0 95 39.5t30 127.5v417q0 175 -136 175h-76q-73 0 -73 -167v-381q0 -106 42 -158.5t118 -52.5z" />
+<glyph unicode="&#x10f7;" d="M623 -423q-143 0 -242 36t-160 96.5t-88 139.5t-27 164q0 75 19.5 144t60 129.5t102.5 111t146 86.5q35 15 72.5 28t73.5 27.5t68 32t56.5 41.5t39 55.5t14.5 74.5q0 34 -10 63.5t-30 51t-51 33.5t-74 12q-76 0 -122.5 -40t-46.5 -119l5 -56l-165 -21l-10 65 q0 158 88 236t254 78q91 0 157.5 -22.5t109.5 -60.5t63.5 -88t20.5 -106q0 -59 -22 -118t-64.5 -113t-106 -100.5t-145.5 -78.5q-80 -20 -138.5 -58.5t-97 -88t-57.5 -105.5t-19 -111q0 -54 18.5 -104.5t58 -89.5t100.5 -62.5t147 -23.5q73 0 131.5 18.5t99 55.5t62.5 93 t22 130q0 123 -64 177l154 92q49 -54 74.5 -125t25.5 -161q0 -104 -34.5 -182.5t-99.5 -131t-158.5 -79t-210.5 -26.5z" />
+<glyph unicode="&#x10f8;" d="M638 -423q-459 0 -459 396v1049h173v-564q0 -48 19.5 -83.5t55.5 -59.5t85.5 -36t109.5 -12q148 0 216.5 72t68.5 218q0 72 -16 133t-49 115t-82.5 102t-115.5 94l171 63q66 -53 118 -119t88 -138t55 -147.5t19 -147.5q0 -81 -26 -153.5t-80.5 -126.5t-140 -85.5 t-204.5 -31.5h-2q-184 0 -270 89h-20v-227q0 -65 23.5 -114t62 -81.5t88.5 -49t102 -16.5t102 16.5t89.5 49t63.5 81.5t24 114h187q-1 -400 -456 -400z" />
+<glyph unicode="&#x10f9;" d="M628 -425q-181 0 -267.5 76t-86.5 228q0 125 59 202t180 121q-211 44 -311.5 150t-100.5 266q0 111 43.5 193.5t114.5 138t161.5 83t185.5 27.5t186.5 -28t163 -82.5t115 -136t43.5 -188.5q0 -140 -86.5 -251.5t-275.5 -200.5q-84 -34 -140 -67.5t-90.5 -68.5t-49 -73.5 t-14.5 -82.5q0 -77 41.5 -121t131.5 -44q39 0 72 9t57 26.5t37.5 44t13.5 61.5v76h178v-76q0 -141 -94.5 -211.5t-266.5 -70.5zM612 326q166 22 240.5 97t74.5 206q0 140 -78.5 214t-237.5 74q-160 0 -239.5 -74.5t-79.5 -213.5t80 -211.5t240 -91.5z" />
+<glyph unicode="&#x10fa;" d="M751 -134q0 1 -6 8.5t-15 17.5t-19 21t-18 19q-28 27 -63.5 43.5t-88.5 16.5q-69 0 -117 -29.5t-81 -86.5l-130 74q67 102 183 126v30q-119 87 -177.5 213t-58.5 284q0 225 121 333t363 110q431 -35 431 -355q0 -184 -143 -464l-145 61q108 240 108 385q0 112 -64 171 t-196 59q-146 0 -214.5 -75.5t-68.5 -238.5q0 -136 49.5 -243t159.5 -199q177 -42 302 -189l-112 -93v1z" />
+<glyph unicode="&#x10fb;" d="M321 819q-30 0 -30 30v116q0 30 30 30h132q30 0 30 -30v-116q0 -30 -30 -30h-132zM786 456q-30 0 -30 30v114q0 30 30 30h126q30 0 30 -30v-114q0 -30 -30 -30h-126zM321 50q-30 0 -30 30v114q0 30 30 30h129q30 0 30 -30v-114q0 -30 -30 -30h-129z" />
+<glyph unicode="&#x10fc;" d="M606 757q-96 0 -148.5 71t-52.5 215v332q0 181 185 181h235v-82l-258 2q-70 0 -70 -81v-158l123 79q52 0 90.5 -23.5t64.5 -62.5t39 -89.5t13 -103.5q0 -52 -13 -102.5t-40 -90t-68.5 -63.5t-99.5 -24zM618 836q57 0 86.5 53.5t29.5 145.5q0 96 -30 142t-84 46 q-33 0 -56.5 -16.5t-38 -43.5t-21 -61.5t-6.5 -70.5q0 -37 7 -72t21.5 -62.5t37 -44t54.5 -16.5z" />
+<glyph unicode="&#x1e80;" d="M377 1852h184l197 -264h-154zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
+<glyph unicode="&#x1e81;" d="M215 1647h198l281 -376h-154zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
+<glyph unicode="&#x1e82;" d="M672 1856h186l-229 -264h-154zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
+<glyph unicode="&#x1e83;" d="M820 1647h198l-325 -376h-154zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
+<glyph unicode="&#x1e84;" d="M350 1650q-13 0 -22 9t-9 22v140q0 13 9 22t22 9h141q13 0 22 -9t9 -22v-140q0 -13 -9 -22t-22 -9h-141zM742 1650q-13 0 -22 9t-9 22v140q0 13 9 22t22 9h140q13 0 22 -9t9 -22v-140q0 -13 -9 -22t-22 -9h-140zM0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197 l-223 -1493h-191l-203 887l-202 -887h-191z" />
+<glyph unicode="&#x1e85;" d="M349 1320q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1320q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z " />
+<glyph unicode="&#x1ebc;" d="M442 1633h-125q0 100 52 160q51 59 137 59q29 0 66 -8q27 -7 79 -35l57 -30q41 -25 72 -25t51 26t20 66v6h125q0 -65 -24 -115t-66.5 -77t-98.5 -27q-29 0 -63 8q-28 7 -82 35l-57 33q-16 10 -41 20q-14 5 -29 5q-34 0 -53 -25q-20 -26 -20 -70v-6zM197 0v1493h886v-170 h-684v-442h654v-170h-654v-541h703v-170h-905z" />
+<glyph unicode="&#x1ebd;" d="M452 1377q-18 -37 -20 -118h-124q0 131 51 207q24 36 60.5 55.5t83.5 19.5q38 0 70 -14t69 -47l57 -55q23 -22 39 -30.5t31 -8.5q36 0 54 37q18 38 19 118h125q0 -131 -50 -206q-51 -76 -145 -76q-38 0 -70 14t-69 47l-57 55q-22 21 -37.5 30t-32.5 9q-36 0 -54 -37z M271 127q-147 158 -147 431q0 268 143 429q72 80 169.5 120t212.5 40q217 0 341 -144q123 -143 123 -397v-90h-797v-6q0 -182 96 -283q95 -100 268 -100q90 0 185.5 28t204.5 85v-183q-103 -42 -202 -65q-90 -21 -191 -21q-129 0 -231.5 39.5t-174.5 116.5zM929 660 q-4 164 -76 247q-36 42 -89 63t-119 21q-89 0 -158 -40t-111.5 -114.5t-52.5 -177.5z" />
+<glyph unicode="&#x1ef2;" d="M377 1852h184l197 -264h-154zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="&#x1ef3;" d="M227 1647h198l281 -376h-154zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-26 -67 -41 -106t-24 -62t-13 -34.5t-8.5 -23.5t-11 -30t-19.5 -52q-33 -87 -54.5 -142.5t-36.5 -91t-24.5 -55t-17.5 -33.5 q-43 -75 -112.5 -115.5t-163.5 -40.5h-148v154z" />
+<glyph unicode="&#x1ef8;" d="M422 1633h-125q0 100 52 160q51 59 137 59q29 0 66 -8q27 -7 79 -35l57 -30q41 -25 72 -25t51 26t20 66v6h125q0 -65 -24 -115t-66.5 -77t-98.5 -27q-29 0 -63 8q-28 7 -82 35l-57 33q-16 10 -41 20q-14 5 -29 5q-34 0 -53 -25q-20 -26 -20 -70v-6zM514 0v670l-477 823 h215l364 -659l363 659h217l-479 -823v-670h-203z" />
+<glyph unicode="&#x1ef9;" d="M461 1404q-18 -37 -20 -118h-124q2 135 52.5 208.5t140.5 73.5q39 0 70.5 -13.5t70.5 -47.5l57 -55q22 -19 38 -29q10 -6 16 -8t14 -2q38 0 56 37q18 38 19 118h125q-2 -135 -52.5 -208.5t-140.5 -73.5q-39 0 -70.5 13.5t-70.5 47.5l-57 55q-20 19 -38 30q-15 9 -30 9 q-38 0 -56 -37zM184 -426v154h109q80 0 127 47q19 19 50 79q26 51 67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-44 -112 -84 -217q-24 -63 -33 -91q-47 -134 -81 -210q-18 -41 -34 -71.5t-20 -37.5q-29 -51 -54.5 -77.5t-57.5 -43.5q-35 -18 -77.5 -28t-84.5 -10 h-148z" />
+<glyph unicode="&#x2000;" />
+<glyph unicode="&#x2001;" />
+<glyph unicode="&#x2002;" />
+<glyph unicode="&#x2003;" />
+<glyph unicode="&#x2004;" />
+<glyph unicode="&#x2005;" />
+<glyph unicode="&#x2006;" />
+<glyph unicode="&#x2007;" />
+<glyph unicode="&#x2008;" />
+<glyph unicode="&#x2009;" />
+<glyph unicode="&#x200a;" />
+<glyph unicode="&#x2010;" d="M356 643h521v-164h-521v164z" />
+<glyph unicode="&#x2011;" d="M356 643h521v-164h-521v164z" />
+<glyph unicode="&#x2012;" d="M0 633h1233v-141h-1233v141z" />
+<glyph unicode="&#x2013;" d="M0 633h1233v-141h-1233v141z" />
+<glyph unicode="&#x2014;" d="M0 633h1233v-141h-1233v141z" />
+<glyph unicode="&#x2015;" d="M0 633h1233v-141h-1233v141z" />
+<glyph unicode="&#x2016;" d="M285 1565h172v-2048h-172v2048zM775 1565h172v-2048h-172v2048z" />
+<glyph unicode="&#x2017;" d="M0 -163h1233v-80h-1233v80zM0 -403h1233v-80h-1233v80z" />
+<glyph unicode="&#x2018;" d="M463 1174l196 382h154l-98 -382v-207h-252v207z" />
+<glyph unicode="&#x2019;" d="M561 1350v206h252v-206l-197 -383h-153z" />
+<glyph unicode="&#x201a;" d="M502 96v207h252v-207l-197 -383h-154z" />
+<glyph unicode="&#x201b;" d="M463 1350v206h252v-206l98 -383h-153z" />
+<glyph unicode="&#x201c;" d="M211 1174l199 382h153l-98 -382v-207h-254v207zM672 1174l196 382h154l-98 -382v-207h-252v207z" />
+<glyph unicode="&#x201d;" d="M309 1350v206h252v-206l-196 -383h-154zM768 1350v206h252v-206l-197 -383h-153z" />
+<glyph unicode="&#x201e;" d="M309 96v207h252v-207l-196 -383h-154zM768 96v207h252v-207l-197 -383h-153z" />
+<glyph unicode="&#x201f;" d="M211 1350v206h252v-206l98 -383h-153zM670 1350v206h252v-206l98 -383h-154z" />
+<glyph unicode="&#x2020;" d="M528 920h-366v153h366v420h177v-420h366v-153h-366v-1117h-177v1117z" />
+<glyph unicode="&#x2021;" d="M528 223h-366v154h366v543h-366v153h366v420h177v-420h366v-153h-366v-543h366v-154h-366v-420h-177v420z" />
+<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -60 -21.5 -113t-65.5 -97q-44 -43 -98 -64.5t-114 -21.5z" />
+<glyph unicode="&#x2023;" d="M319 1137l674 -376l-674 -376v752z" />
+<glyph unicode="&#x2026;" d="M110 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM519 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM929 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x202f;" />
+<glyph unicode="&#x2030;" d="M287 856q-63 0 -115 22.5t-90 61.5q-41 42 -61.5 94t-20.5 110q0 61 22 114t61 92q38 38 90.5 60t112.5 22q58 0 110.5 -20.5t93.5 -61.5q36 -36 59.5 -88.5t23.5 -117.5q0 -60 -21.5 -112t-60.5 -92t-91 -62t-113 -22zM287 979q69 0 118 49q48 48 48 117q0 68 -49 117 t-117 49q-69 0 -117 -48q-49 -49 -49 -118q0 -38 13 -66t36 -51t51 -36t66 -13zM35 664l1044 415l39 -96l-1046 -416zM329 0q-62 0 -114 22.5t-89 60.5q-41 42 -61 94.5t-20 111.5q0 60 20.5 111.5t62.5 93.5q42 41 93 61t108 20q63 0 115 -22.5t89 -59.5q41 -41 62 -93 t21 -111t-21 -111.5t-61 -93.5q-38 -38 -90.5 -61t-114.5 -23zM945 0q-60 0 -112 21.5t-92 62.5q-41 42 -61.5 94t-20.5 110q0 63 22 114.5t60 89.5q41 41 93 62t111 21q62 0 115 -22.5t91 -60.5q41 -41 61.5 -93.5t20.5 -109.5q0 -59 -21 -111.5t-61 -93.5 q-37 -38 -89.5 -61t-116.5 -23zM329 121q35 0 65.5 13.5t52.5 35.5t35.5 52.5t13.5 65.5q0 33 -12.5 64t-36.5 55q-20 20 -50.5 34t-67.5 14q-32 0 -62 -12t-53 -35q-20 -20 -34 -51t-14 -69q0 -35 12.5 -65t34.5 -53q23 -23 52.5 -36t63.5 -13zM946 121q37 0 67.5 13.5 t51.5 35.5q24 25 35.5 56t11.5 62q0 32 -12 63t-37 56q-20 20 -50.5 34t-66.5 14t-66.5 -13.5t-51.5 -34.5q-22 -22 -35 -52.5t-13 -66.5q0 -31 11 -61.5t37 -56.5q23 -23 53 -36t65 -13z" />
+<glyph unicode="&#x2031;" d="M286 856q-60 0 -112 22.5t-91 61.5t-61 91.5t-22 112.5t22 112.5t61 91.5t91.5 61.5t112.5 22.5t112 -22.5t91 -61t61 -91t22 -112.5t-22 -113t-61 -92t-91.5 -61.5t-112.5 -22.5zM287 979q34 0 64.5 13t53 35.5t35.5 52.5t13 64t-13 64t-36 53t-53.5 36.5t-65.5 13.5 q-67 0 -115 -48q-49 -49 -49 -117q0 -35 13 -65.5t35.5 -53t52.5 -35.5t65 -13zM35 664l1044 415l39 -96l-1046 -416zM239 0q-51 0 -94.5 22t-76 60.5t-50.5 91t-18 113.5t18 113.5t50.5 91.5t76.5 61t95 22q98 0 167 -83q8 -9 10 -13t9 -13q5 7 9.5 13.5t9.5 12.5 q35 42 77.5 62.5t96.5 20.5q31 0 55 -7t43.5 -18.5t35.5 -26.5t32 -31q5 -5 8 -9.5t11 -15.5q9 14 19 25q34 39 76 61t93 22t95 -22t76.5 -60.5t51 -91t18.5 -112.5t-18.5 -113t-51 -92t-77 -61.5t-95.5 -22.5q-52 0 -93 22.5t-75 61.5q-6 7 -10 12.5t-9 12.5q-3 -6 -8 -12 t-11 -13q-35 -40 -73.5 -62t-93.5 -22q-103 0 -173 84q-8 9 -10 13t-9 13q-5 -7 -9.5 -13t-9.5 -13q-71 -84 -168 -84zM237 121q28 0 53.5 13.5t44.5 36t30 53t11 64.5t-11 64t-29.5 53t-44 36.5t-54.5 13.5t-53.5 -13t-43 -35.5t-29 -53t-10.5 -65.5t10.5 -65.5t29 -53 t43.5 -35.5t53 -13zM616 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5t-44.5 36t-53.5 13q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13zM994 121q29 0 54 13t44 35.5t29.5 52.5t10.5 65t-11 65.5t-30 53.5 t-44.5 36t-53.5 13q-29 0 -54 -13t-43.5 -35.5t-29.5 -53t-11 -65.5t11 -65.5t29.5 -53t44 -35.5t54.5 -13z" />
+<glyph unicode="&#x2034;" d="M302 1493h202l-288 -373h-88zM602 1493h202l-288 -373h-88zM902 1493h202l-288 -373h-88z" />
+<glyph unicode="&#x2035;" d="M428 1493h204l172 -373h-86z" />
+<glyph unicode="&#x2036;" d="M278 1493h204l172 -373h-86zM578 1493h204l172 -373h-86z" />
+<glyph unicode="&#x2037;" d="M128 1493h204l172 -373h-86zM428 1493h204l172 -373h-86zM728 1493h204l172 -373h-86z" />
+<glyph unicode="&#x2039;" d="M256 559v82l469 418v-191l-301 -268l301 -268v-191z" />
+<glyph unicode="&#x203a;" d="M510 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
+<glyph unicode="&#x203c;" d="M271 1053v445h265v-445l-67 -567h-121zM761 1053v445h265v-445l-67 -567h-121zM406 -60q-70 0 -116 48q-46 47 -46 125q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48zM896 -60q-70 0 -116 48q-46 47 -46 125 q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48z" />
+<glyph unicode="&#x203d;" d="M494 1342q-19 -5 -35 -10t-28 -10q-43 -17 -90.5 -43t-96.5 -60v188q95 58 191 85.5t193 27.5q95 0 171.5 -25t130 -71t82 -111t28.5 -145q0 -37 -7.5 -71t-25.5 -69.5t-49 -74.5t-79 -85l-88 -86q-36 -35 -57 -61t-32 -49t-14.5 -47t-3.5 -54v-170h-190v941zM729 961 q28 28 49 51.5t34 46t19.5 46t6.5 51.5q0 45 -14.5 78t-37 55.5t-50 36t-52.5 20.5v-430zM593 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
+<glyph unicode="&#x203e;" d="M0 1547h1233v-80h-1233v80z" />
+<glyph unicode="&#x203f;" d="M614 -485q-168 0 -336 58t-346 178v126q173 -106 341 -156q85 -26 167.5 -39t172.5 -13q177 0 345.5 51.5t341.5 156.5v-126q-177 -118 -346.5 -177t-339.5 -59z" />
+<glyph unicode="&#x2044;" d="M915 1866h190l-786 -1683h-191z" />
+<glyph unicode="&#x2045;" d="M463 1556h424v-143h-240v-699h240v-143h-240v-698h240v-143h-424v1826z" />
+<glyph unicode="&#x2046;" d="M346 -127h240v698h-240v143h240v699h-240v143h424v-1826h-424v143z" />
+<glyph unicode="&#x2047;" d="M168 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86 l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM776 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1 q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM269 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31 q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM881 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
+<glyph unicode="&#x2048;" d="M168 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86 l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM781 1053v445h265v-445l-67 -567h-121zM273 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110 q-43 -43 -103 -43zM915 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
+<glyph unicode="&#x2049;" d="M776 555q0 50 4.5 90.5t15.5 77.5t29 72.5t45 76.5l59 89q39 59 54.5 102.5t15.5 87.5q0 82 -41.5 122t-107.5 40q-53 0 -100 -29t-108 -94v217q32 30 63 52t63.5 35.5t68.5 20t78 6.5h8t14 -1q128 -11 196 -99t68 -251q0 -38 -4.5 -72.5t-16.5 -69.5t-32 -74t-51 -86 l-57 -86q-23 -35 -36.5 -60.5t-21 -49t-10 -47.5t-2.5 -54v-170h-194v154zM208 838v655h203v-655l-21 -357h-161zM312 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110 q-43 -43 -103 -43zM881 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
+<glyph unicode="&#x204b;" d="M203 1493h448q107 0 195 -30t150.5 -85.5t96.5 -134t34 -175.5q0 -91 -30.5 -165t-88.5 -127.5t-142 -86t-190 -40.5v-846h-141v1567h-191v-1567h-141v1690z" />
+<glyph unicode="&#x205f;" />
+<glyph unicode="&#x2070;" d="M616 1120q-151 0 -225 109t-74 324q0 217 75 325.5t224 108.5q150 0 225.5 -108.5t75.5 -325.5q0 -215 -75.5 -324t-225.5 -109zM616 1209q88 0 131.5 84.5t43.5 259.5q0 176 -43.5 260.5t-131.5 84.5t-131 -84.5t-43 -260.5q0 -175 43 -259.5t131 -84.5zM615 1481 q-36 0 -58 21q-23 21 -23 53t23.5 54.5t57.5 22.5q37 0 60.5 -22.5t23.5 -54.5q0 -33 -24.5 -53.5t-59.5 -20.5z" />
+<glyph unicode="&#x2074;" d="M655 1306h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM655 1417v413l-274 -413h274z" />
+<glyph unicode="&#x2075;" d="M563 1084q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
+<glyph unicode="&#x2076;" d="M640 1102q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM638 1190q167 0 167 196t-167 196 q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
+<glyph unicode="&#x2077;" d="M761 1860h-444v95h584v-48l-332 -787h-131z" />
+<glyph unicode="&#x2078;" d="M616 1108q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5 q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM616 1609q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM616 1196q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120 t46.5 -120.5t128.5 -42.5z" />
+<glyph unicode="&#x2079;" d="M551 1113q-45 0 -91 8.5t-89 24.5v104q40 -20 83.5 -31t91.5 -11q242 0 242 319q-29 -57 -81.5 -86.5t-121.5 -29.5q-137 0 -209 74t-72 212q0 136 75 209.5t213 73.5q162 0 237 -104.5t75 -329.5q0 -212 -90 -322.5t-263 -110.5zM595 1499q81 0 126 51.5t45 145.5 q0 93 -45 144.5t-126 51.5q-168 0 -168 -196q0 -197 168 -197z" />
+<glyph unicode="&#x207a;" d="M564 980h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
+<glyph unicode="&#x207b;" d="M284 1075h666v-95h-666v95z" />
+<glyph unicode="&#x207c;" d="M284 1189h666v-95h-666v95zM284 961h666v-96h-666v96z" />
+<glyph unicode="&#x207d;" d="M660 517q-94 134 -141 259.5t-47 251.5t47 251.5t141 258.5h102q-168 -254 -168 -510q0 -129 41.5 -255t126.5 -256h-102v0z" />
+<glyph unicode="&#x207e;" d="M472 517q167 258 167 512t-167 509h101q96 -133 142 -258.5t46 -251.5q0 -127 -46 -252.5t-142 -258.5h-101v0z" />
+<glyph unicode="&#x208a;" d="M564 312h-280v95h280v249h106v-249h280v-95h-280v-249h-106v249z" />
+<glyph unicode="&#x208b;" d="M284 407h666v-95h-666v95z" />
+<glyph unicode="&#x208c;" d="M284 521h666v-95h-666v95zM284 293h666v-96h-666v96z" />
+<glyph unicode="&#x208d;" d="M660 -151q-94 134 -141 259.5t-47 251.5t47 251.5t141 258.5h102q-168 -254 -168 -510q0 -129 41.5 -255t126.5 -256h-102v0z" />
+<glyph unicode="&#x208e;" d="M472 -151q167 258 167 512t-167 509h101q96 -133 142 -258.5t46 -251.5q0 -127 -46 -252.5t-142 -258.5h-101v0z" />
+<glyph unicode="&#x20a0;" d="M687 428q-60 -55 -126 -83t-143 -28q-94 0 -169.5 41t-128.5 118.5t-81.5 188t-28.5 248.5t28.5 248.5t81.5 188t128.5 118.5t170.5 41q152 0 268 -110v-163q-113 144 -263 144q-142 0 -218 -119t-76 -348t76 -348t218 -119q150 0 263 144v535h531v-131h-418v-339h401 v-131h-401v-416h428v-131h-541v451z" />
+<glyph unicode="&#x20a1;" d="M318 140q-18 18 -33 39q-81 104 -121.5 245t-40.5 319q0 182 40.5 322t113.5 237.5t173.5 151.5t220.5 64l19 75h142l-20 -78q60 -8 115 -27l28 105h141l-43 -165q18 -11 35.5 -23.5t34.5 -26.5v-213q-54 61 -111 101l-290 -1129h16q217 0 385 189v-211 q-176 -144 -391 -144q-16 0 -28 0.5t-24 1.5l-16 -63h-141l22 87q-59 18 -111 48l-34 -135h-141zM887 1330q-28 10 -57 15.5t-60 7.5l-290 -1131q47 -39 107 -61zM625 1341q-66 -16 -118.5 -51t-93.5 -92q-113 -158 -113 -453q0 -236 74 -386z" />
+<glyph unicode="&#x20a2;" d="M706 -28q-141 0 -254.5 53.5t-192.5 153.5t-121.5 243.5t-42.5 323.5t42.5 323t121.5 243.5t192.5 154t256.5 53.5q227 0 400 -142v-213q-84 94 -179.5 141.5t-213.5 47.5q-106 0 -188 -39.5t-138.5 -117t-85.5 -191.5t-29 -263q0 -146 27 -252t73 -177.5t108 -111.5 t133 -55v861h140v-157q86 181 283 181q18 0 35.5 -2t38.5 -7l1 -170q-47 31 -112 31q-118 0 -182 -90.5t-64 -262.5v-393q89 7 178.5 50t174.5 138v-211q-177 -143 -402 -143z" />
+<glyph unicode="&#x20a3;" d="M233 313h-233v69h233v1111h858v-170h-656v-440h592v-170h-592v-331h247v-69h-247v-313h-202v313z" />
+<glyph unicode="&#x20a4;" d="M139 170h236v322h-191v143h191v143h-199v143h199v95q0 255 105.5 379.5t326.5 124.5q81 0 153.5 -15.5t151.5 -44.5v-182q-39 21 -74.5 36.5t-69.5 25.5t-68.5 15t-71.5 5q-70 0 -118 -18.5t-78 -61.5t-43.5 -113.5t-13.5 -173.5v-72h391v-143h-391v-143h399v-143h-399 v-322h557v-170h-993v170z" />
+<glyph unicode="&#x20a5;" d="M537 647q0 66 -2 114t-6 82.5t-9.5 56.5t-12.5 37q-13 26 -36 41t-65 15q-44 0 -66 -17.5t-34 -43.5q-7 -15 -12.5 -37t-9.5 -56.5t-6 -82.5t-2 -115v-641h-167v1120h149l18 -96q35 63 84 93t115 30q37 0 65.5 -8.5t50 -22t37 -31t26.5 -35.5l66 260h106l-48 -188 q47 25 111 25t113 -25t78 -79q55 -104 55 -394v-649h-168v641q0 64 -1.5 112t-5 83.5t-8.5 60t-12 39.5q-11 26 -34 41.5t-65 15.5q-38 0 -64 -14.5t-41 -46.5q-17 -35 -24 -103.5t-7 -187.5v-641h-168v176l-93 -366h-105z" />
+<glyph unicode="&#x20a6;" d="M162 550h-162v123h162v147h-162v123h162v550h272l211 -550h230v550h196v-550h162v-123h-162v-147h162v-123h-162v-550h-272l-211 550h-230v-550h-196v550zM437 943l-79 206v-206h79zM541 673l-57 147h-126v-147h183zM875 673v147h-183l57 -147h126zM875 550h-79l79 -206 v206z" />
+<glyph unicode="&#x20a7;" d="M999 -29q-89 0 -196 70v1h-90q-105 0 -146 80t-41 289v608h-38q-3 -200 -65 -309.5t-187 -109.5h-126v-600h-100v1493h226q63 0 107 -26.5t73 -71.5t45.5 -105t22.5 -128h42v318h92v-318h189v-143h-189v-608q0 -138 19 -176q19 -39 76 -39h90v35q54 -57 102.5 -81.5 t95.5 -24.5q63 0 98 44t35 136q0 39 -7 65.5t-23 46.5t-42 36t-63 34l-32 15q-85 36 -122.5 110.5t-37.5 202.5q0 161 55 246.5t164 85.5q45 0 89.5 -15t82.5 -45v-174q-39 40 -80 60t-88 20q-135 0 -135 -170q0 -31 5 -54.5t19 -43t37.5 -36.5t61.5 -34l31 -14 q46 -21 80 -49t56 -66.5t32.5 -89t10.5 -117.5q0 -168 -61 -258t-168 -90zM236 766q70 0 108.5 72.5t38.5 208.5q0 135 -38.5 207.5t-108.5 72.5h-126v-561h126z" />
+<glyph unicode="&#x20a8;" d="M928 -29q-33 0 -61 5t-58 13q-20 5 -31.5 9t-25.5 9l2 -7h-139l-122 383q-24 74 -45.5 122t-45.5 76t-53.5 39t-68.5 11h-141v-631h-129v1493h292q165 0 245 -107t80 -315q0 -154 -42 -244t-122 -127q46 -25 83.5 -97.5t76.5 -194.5l58 -180q63 -51 125 -77t126 -26 q83 0 127.5 44t44.5 135q0 39 -9.5 66t-30 47.5t-53.5 36.5t-81 33l-41 15q-55 18 -94.5 45t-64.5 65.5t-36.5 88.5t-11.5 114q0 161 70.5 246.5t210.5 85.5q59 0 118 -15.5t105 -44.5v-174q-51 40 -104 60t-113 20q-173 0 -173 -169q0 -29 6 -53t23.5 -44t48 -38t79.5 -34 l41 -14q61 -21 105 -49.5t72 -67.5t41 -89.5t13 -115.5q0 -84 -20.5 -149t-58.5 -109t-93.5 -67t-124.5 -23zM302 797q94 0 141.5 67t47.5 199t-47.5 198t-141.5 66h-163v-530h163z" />
+<glyph unicode="&#x20a9;" d="M89 896h-89v143h68l-18 117h-50v143h29l-29 194h197l23 -194h305l30 194h140l30 -194h288l23 194h197l-29 -194h29v-143h-50l-17 -117h67v-143h-89l-134 -896h-191l-191 887h-14l-200 -887h-191zM475 1039l18 117h-257l14 -117h225zM633 1039l-17 117l-19 -117h36z M983 1039l13 117h-259l18 -117h228zM450 896h-183l73 -615zM966 896h-185l112 -617z" />
+<glyph unicode="&#x20aa;" d="M42 1490l419 3q202 1 310 -147t108 -443v-367h-149v342q0 120 -15.5 205.5t-48 140t-83.5 80t-122 25.5h-270v-1358h-149v1519zM775 -29q-206 0 -312 149t-106 441v367h149v-342q0 -120 15 -205.5t47.5 -140t83.5 -80t123 -25.5h273v1358h143l-1 -1522h-415z" />
+<glyph unicode="&#x20ab;" d="M678 -29q-100 0 -180 40.5t-136.5 117t-86.5 185.5t-30 247q0 137 30.5 246t86.5 184.5t136.5 115.5t180.5 40q104 0 180 -43t121 -127v309h-305v121h305v149h184v-149h191v-121h-191v-1286h-166l-18 141q-46 -84 -122.5 -127t-179.5 -43zM708 127q134 0 203 109t69 323 t-69 323t-203 109t-201.5 -108.5t-67.5 -323.5t67.5 -323.5t201.5 -108.5zM440 -209h598v-148h-598v148z" />
+<glyph unicode="&#x20ac;" d="M755 -29q-118 0 -207 37.5t-155 106.5t-112.5 174t-69.5 254h-174l49 110h117q-1 6 -1 14t-1 18l-2 62l2 65q0 5 1 15.5t1 12.5h-166l49 108h125q24 143 71 250t114 178q136 144 359 144q84 0 159 -20q72 -19 147 -62v-207q-33 31 -70 54.5t-75 40.5q-78 34 -160 34 q-144 0 -231 -104q-87 -103 -111 -308h481l-49 -108h-442q-1 -9 -1.5 -19.5t-0.5 -22.5v-6.5t-0.5 -9t-0.5 -15v-25.5v-24.5t0.5 -13t0.5 -6.5v-3v-20.5t1 -21.5h361l-49 -110h-301q22 -202 110 -307q87 -105 233 -105q81 0 159 34q42 18 77 41.5t68 53.5v-207 q-73 -43 -146 -62q-75 -20 -160 -20z" />
+<glyph unicode="&#x20ad;" d="M180 737h-138v115h138v641h172v-631l572 631h221l-582 -641h388v-115h-386l626 -737h-227l-612 719v-719h-172v737z" />
+<glyph unicode="&#x20ae;" d="M516 442l-208 -161l-77 110l285 217v136l-209 -162l-77 110l286 217v414h-469v170h1139v-170h-467v-271l229 161l80 -111l-309 -216v-136l230 162l80 -111l-310 -217v-584h-203v442z" />
+<glyph unicode="&#x20af;" d="M166 -29q-27 0 -52 17t-43.5 48t-29.5 73t-11 93q0 45 9 85.5t25.5 70.5t39.5 48t52 18q17 0 36.5 -7t39.5 -21q5 26 7.5 45.5t4.5 44.5l95 845q-26 -10 -44 -34t-28 -51q-11 -31 -20 -87l-92 53q15 87 41 147t61 97q32 34 72 49t88 15q103 0 181.5 -61.5t129.5 -170.5 q44 -94 66 -218.5t22 -262.5q0 -52 -3.5 -113t-11 -126t-19.5 -131.5t-30 -129.5q-18 -65 -42.5 -124t-59.5 -107q-37 -51 -80 -78t-91 -27q-27 0 -52.5 9.5t-51.5 32.5q-12 10 -25.5 24t-25.5 26.5t-21 23t-13 15.5l-8 10q-5 -20 -10 -33.5t-10 -23.5q-38 -84 -96 -84z M483 151q28 0 52.5 19t45 52t37.5 77.5t31 95.5q12 47 21.5 99t16 105t10 105.5t3.5 100.5q0 113 -16.5 204.5t-45.5 157.5q-37 85 -86 125t-103 46l-94 -869q-8 -69 -13.5 -111.5t-10.5 -76.5l21 -27q43 -55 72 -79t59 -24zM772 -414l85 720q18 152 49 248.5t68 145.5 q22 29 45 41t46 12q41 0 72 -30t51 -80q34 -86 34 -228q0 -120 -23.5 -219.5t-70.5 -162.5q-24 -32 -48 -47.5t-46 -15.5q-29 0 -57.5 27t-44.5 78l-62 -530zM1032 149q19 0 35 18t28 50q11 27 20.5 79t9.5 114q0 39 -4 72.5t-11 53.5q-14 43 -45 43q-9 0 -22.5 -7 t-26.5 -27.5t-24 -57t-17 -95.5q-2 -16 -3.5 -41.5t-1.5 -49.5q0 -29 3.5 -56.5t11 -48.5t19 -34t28.5 -13zM159 142q14 0 23.5 15t18.5 47q-21 34 -47 34q-20 0 -27 -14t-7 -29q0 -24 12.5 -38.5t26.5 -14.5z" />
+<glyph unicode="&#x20b0;" d="M682 133q67 0 122 17.5t94 50.5t60.5 82t21.5 112q0 30 -5.5 55t-19 50.5t-36.5 53t-58 62.5q-74 -68 -134 -97t-115 -29q-38 0 -68 11.5t-52.5 27.5t-38 34t-25.5 31q-27 35 -50 52.5t-47 17.5q-15 0 -30.5 -8t-33 -25.5t-37.5 -45.5t-45 -69l-139 96q41 66 75.5 111.5 t67 74t64.5 41.5t68 13q44 0 90 -18.5t81 -59.5q24 -28 42.5 -48.5t33 -33.5t26 -19t23.5 -6q18 0 44.5 15.5t55.5 50.5q-115 91 -171 197.5t-56 236.5q0 85 22.5 150.5t63 110.5t95 68.5t119.5 23.5q60 0 114.5 -21.5t96.5 -66.5t66.5 -114.5t24.5 -165.5 q0 -98 -26.5 -199.5t-80.5 -186.5q47 -43 81 -85.5t56.5 -86.5t33 -92.5t10.5 -103.5q0 -89 -28.5 -167t-87.5 -136t-150.5 -91t-217.5 -33v162zM834 881q17 26 29.5 58t21 67.5t13 72.5t4.5 73q0 103 -31.5 156.5t-80.5 53.5q-26 0 -46.5 -15t-34.5 -40.5t-21.5 -61 t-7.5 -75.5q0 -91 38 -160t116 -129z" />
+<glyph unicode="&#x20b1;" d="M197 882h-91v115h91v115h-91v116h91v265h436q386 0 480 -265h120v-116h-95q2 -15 3.5 -30.5t1.5 -29.5t-1 -27.5t-3 -27.5h94v-115h-114q-19 -62 -55 -113.5t-94.5 -89t-141.5 -58.5t-195 -21h-234v-600h-202v882zM875 1228q-77 99 -242 99h-234v-99h476zM927 997 q3 25 3 50q0 17 -1.5 33t-3.5 32h-526v-115h528zM633 766q176 0 253 116h-487v-116h234z" />
+<glyph unicode="&#x20b2;" d="M581 -22q-111 15 -207.5 68.5t-168 148t-112 231t-40.5 319.5t40.5 320t112 231.5t168 148t207.5 68.5v143h140v-137q106 -4 209.5 -37.5t197.5 -103.5v-215q-96 96 -197.5 141.5t-209.5 49.5v-1217q78 2 145.5 19.5t124.5 56.5v401h-120v166h290v-641 q-100 -84 -211 -123t-229 -44v-137h-140v143zM581 1341q-67 -16 -120 -51t-92 -89q-111 -153 -111 -456q0 -302 111 -455q39 -54 92 -89t120 -51v1191z" />
+<glyph unicode="&#x20b3;" d="M203 520h-133v123h172l67 207h-239v123h278l165 520h208l165 -520h276v-123h-237l65 -207h172v-123h-133l164 -520h-191l-154 520h-461l-155 -520h-193zM712 973l-96 321l-95 -321h191zM810 643l-62 207h-264l-61 -207h387z" />
+<glyph unicode="&#x20b4;" d="M651 -29q-248 0 -380 112t-132 325q0 77 18 142h-157v123h217l18 21q29 34 82.5 68t125.5 58h-443v123h831q10 7 19 16q27 27 41 62.5t14 83.5q0 60 -21.5 106.5t-61.5 78.5t-97.5 49t-128.5 17q-186 0 -371 -119v205q210 78 381 78q111 0 202 -31.5t155.5 -89t99.5 -139 t35 -181.5q0 -75 -21 -136h156v-123h-233q-48 -46 -120.5 -80t-177.5 -58l-39 -9h570v-123h-857q-22 -29 -33 -67.5t-11 -83.5q0 -128 84 -196t239 -68q105 0 207 34t217 107v-215q-108 -45 -213 -67.5t-215 -22.5z" />
+<glyph unicode="&#x20b5;" d="M642 -24q-62 8 -124 31.5t-118.5 62.5t-106 94.5t-85.5 127t-57 159.5t-21 192v17q0 107 21.5 196t58.5 160t86.5 125t106.5 92t118 60.5t120 30.5v230l101 2v-226q94 -2 183.5 -36t177.5 -106v-213q-45 52 -88.5 89.5t-87 60.5t-89 34t-96.5 11v-1039q51 0 96.5 11 t89 34t87 60t88.5 90v-211q-90 -72 -180 -107t-181 -37v-272h-100v277zM641 1159q-89 -22 -158 -89q-42 -41 -69.5 -91.5t-43.5 -105t-22.5 -110.5t-6.5 -107q0 -38 2.5 -73.5t6.5 -62.5q13 -92 48 -166t84 -122q31 -30 72.5 -54.5t87.5 -35.5z" />
+<glyph unicode="&#x20b7;" d="M130 455h78v-50q46 64 115 64q39 0 63 -19.5t29 -54.5q23 37 55 55.5t71 18.5q46 0 72.5 -28.5t26.5 -78.5q0 -34 -4 -62l-6 -39l-10 -53l-14 -71q134 7 225 86q103 88 103 221q0 80 -44 129q-24 24 -65 44t-112 42l-101 33q-94 31 -155.5 61.5t-101.5 70.5 q-39 39 -56.5 86t-17.5 115q0 104 42 195t123 160q83 69 190.5 104.5t232.5 35.5q168 0 364 -78l-39 -205q-164 119 -349 119q-82 0 -151 -21t-118 -61q-49 -39 -76 -92.5t-27 -113.5q0 -39 12 -67.5t37 -50.5q50 -44 178 -84l121 -39q87 -28 143.5 -59t95.5 -74t57 -95.5 t18 -125.5q0 -112 -41.5 -204t-124.5 -160q-152 -125 -395 -137l-21 -174h-88l20 174q-71 2 -134 14l-23 -188h-88l27 207q-68 19 -127 44l-36 -251h-88zM306 204l3 17l9 44l6 42l1 22q0 30 -13 43q-10 16 -38 16q-38 0 -59 -30q-17 -30 -35 -106q60 -39 123 -66zM531 204 q7 38 9 44l6 35q4 21 4 46q0 31 -12 44q-11 15 -38 15q-22 0 -36 -8t-25 -26q-12 -19 -22.5 -53.5t-22.5 -96.5l-9 -46q66 -18 133 -22z" />
+<glyph unicode="&#x20b8;" d="M47 1493h1139v-170h-1139v170zM516 1033h-469v170h1139v-170h-467v-1033h-203v1033z" />
+<glyph unicode="&#x20b9;" d="M626 377q-39 82 -72.5 132t-68 77t-72.5 36t-86 9h-193v166h221q72 0 124 19t86 51.5t52 77t23 95.5h-536l55 123h475q-8 38 -27 75t-52.5 66.5t-84.5 47.5t-123 18h-243l55 123h978l-55 -123h-345q87 -81 109 -207h291l-55 -123h-227q-3 -67 -24 -124t-59.5 -100.5 t-94.5 -72t-129 -38.5q39 -10 70.5 -26.5t62 -48.5t63 -85t74.5 -137l203 -408h-217z" />
+<glyph unicode="&#x2116;" d="M9 0v1493h194l238 -940v940h175v-1493h-194l-238 859v-859h-175zM1130 782q-65 -112 -177 -112q-59 0 -102 29t-75 82q-66 109 -66 299q0 186 66 300q67 112 177 112q114 0 177 -113q66 -112 66 -299q0 -185 -66 -298zM849 863q39 -76 104 -76q58 0 88.5 49t43.5 119 q10 51 10 127q0 136 -38 215q-38 78 -104 78t-104 -77q-38 -81 -38 -218q0 -138 38 -217zM731 441v123h441v-123h-441z" />
+<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
+<glyph unicode="&#x2126;" d="M74 172h245q-60 65 -104 133t-72.5 141.5t-42.5 155.5t-14 176q0 158 37.5 284.5t106.5 215t167 135.5t218 47q121 0 219 -47.5t167 -136t106.5 -214.5t37.5 -284q0 -92 -13.5 -173t-42 -155.5t-73 -143t-105.5 -134.5h248v-172h-463v172q58 36 105 97t80 141t51 176 t18 202q0 121 -23.5 215.5t-67 159t-105 98t-138.5 33.5t-138.5 -33.5t-105 -98t-66.5 -158.5t-23 -215q0 -102 16.5 -196.5t49 -175.5t79.5 -144t109 -101v-172h-463v172z" />
+<glyph unicode="&#x2150;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM962 470h-444v95h584v-48l-332 -787h-131z" />
+<glyph unicode="&#x2151;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM752 -275q-45 0 -91 8.5t-89 24.5v104q40 -20 83.5 -31t91.5 -11q242 0 242 319q-29 -57 -81.5 -86.5t-121.5 -29.5q-137 0 -209 74t-72 212q0 136 75 209.5 t213 73.5q162 0 237 -104.5t75 -329.5q0 -212 -90 -322.5t-263 -110.5zM796 111q81 0 126 51.5t45 145.5q0 93 -45 144.5t-126 51.5q-168 0 -168 -196q0 -197 168 -197z" />
+<glyph unicode="&#x2153;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM758 -285q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5 q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5z" />
+<glyph unicode="&#x2154;" d="M64 934l231 226q51 49 86.5 88t55.5 70q40 61 40 112q0 30 -13 55.5t-37 43.5t-57.5 28t-74.5 10q-99 0 -225 -72v125q66 28 125.5 42t119.5 14q71 0 129 -17.5t99 -49t63.5 -75.5t22.5 -98q0 -58 -37 -116q-38 -60 -156 -177l-211 -205h410v-114h-571v110zM27 612 l1060 262l27 -108l-1063 -262zM758 -285q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9 q72 0 130 -15.5t98.5 -43.5t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5z" />
+<glyph unicode="&#x2155;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204 q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
+<glyph unicode="&#x2156;" d="M64 934l231 226q51 49 86.5 88t55.5 70q40 61 40 112q0 30 -13 55.5t-37 43.5t-57.5 28t-74.5 10q-99 0 -225 -72v125q66 28 125.5 42t119.5 14q71 0 129 -17.5t99 -49t63.5 -75.5t22.5 -98q0 -58 -37 -116q-38 -60 -156 -177l-211 -205h410v-114h-571v110zM27 612 l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5 t-104 -56.5t-137.5 -19.5z" />
+<glyph unicode="&#x2157;" d="M299 809q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5 t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5zM27 612l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5 q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
+<glyph unicode="&#x2158;" d="M397 1010h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM397 1121v413l-274 -413h274zM27 612l1060 262l27 -108l-1063 -262zM764 -285q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41 v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
+<glyph unicode="&#x2159;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM841 -285q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117 q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM839 -197q167 0 167 196t-167 196q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
+<glyph unicode="&#x215a;" d="M305 809q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z M27 612l1060 262l27 -108l-1063 -262zM841 -285q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM839 -197 q167 0 167 196t-167 196q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
+<glyph unicode="&#x215b;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15 t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5 q0 -67 39.5 -102.5t114.5 -35.5zM817 -198q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
+<glyph unicode="&#x215c;" d="M299 809q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5 t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5zM27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68 t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5 t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM817 -198q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
+<glyph unicode="&#x215d;" d="M305 809q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z M27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68 q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM817 -198q85 0 130.5 42.5t45.5 120.5t-46 120 t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
+<glyph unicode="&#x215e;" d="M503 1564h-444v95h584v-48l-332 -787h-131zM27 612l1060 262l27 -108l-1063 -262zM817 -286q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5 t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM817 215q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5z M817 -198q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120t46.5 -120.5t128.5 -42.5z" />
+<glyph unicode="&#x215f;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262z" />
+<glyph unicode="&#x2190;" d="M66 520v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x2191;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
+<glyph unicode="&#x2192;" d="M786 319l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x2193;" d="M284 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x2194;" d="M66 520v82l291 291l90 -90l-160 -160h659l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-659l160 -160l-90 -90z" />
+<glyph unicode="&#x2195;" d="M284 291l90 90l160 -160v659l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-659l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x2196;" d="M311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
+<glyph unicode="&#x2197;" d="M184 116l622 622h-227v127h412l58 -58v-412h-127v227l-622 -622z" />
+<glyph unicode="&#x2198;" d="M579 127h227l-622 622l116 116l622 -622v227h127v-412l-58 -58h-412v127z" />
+<glyph unicode="&#x2199;" d="M184 58v412h127v-227l622 622l116 -116l-622 -622h227v-127h-412z" />
+<glyph unicode="&#x219a;" d="M66 520v82l291 291l90 -90l-160 -160h483l148 250l142 -82l-99 -168h206v-164h-303l-147 -250l-142 82l99 168h-387l160 -160l-90 -90z" />
+<glyph unicode="&#x219b;" d="M173 311l99 168h-206v164h303l147 250l142 -82l-99 -168h387l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-483l-148 -250z" />
+<glyph unicode="&#x219c;" d="M89 807l58 58h412v-127h-267q3 -4 9.5 -12.5t19 -23.5t32 -38t48.5 -57q18 -21 46.5 -37.5t63.5 -16.5q27 0 53 13t52 43q8 9 13 16t8.5 14t6 14.5t6.5 16.5q9 22 22 46.5t31 47.5t40.5 43t50.5 34q46 23 98 23q60 0 106 -26.5t78 -64.5q20 -23 38 -53.5t30 -59.5 l-106 -67q-3 9 -11 22.5t-19.5 28.5t-26.5 28.5t-31 22.5q-25 14 -56 14q-27 0 -55 -13t-52 -41q-14 -17 -22.5 -32.5t-13.5 -29.5q-8 -18 -20 -41.5t-30 -47.5t-41 -45.5t-53 -36.5q-48 -23 -98 -23q-57 0 -103.5 26t-80.5 66l-109 128v-224h-127v412z" />
+<glyph unicode="&#x219d;" d="M1017 619l-109 -128q-36 -43 -82.5 -67.5t-102.5 -24.5q-103 0 -181 92q-26 31 -39 56.5t-21 45.5q-18 45 -40.5 68t-45.5 34q-14 7 -27.5 10.5t-29.5 3.5q-35 0 -60 -16t-45 -39q-15 -17 -26 -35t-13 -26l-106 67q11 28 27 55t36 51t42.5 43.5t46.5 31.5q44 23 98 23 q55 0 100.5 -23t83.5 -68q24 -29 37.5 -55t22.5 -48q7 -17 13.5 -31t15.5 -26t22 -22.5t33 -22.5q25 -15 56 -15q34 0 62.5 16.5t46.5 37.5q37 43 58.5 68.5t32 38.5t13.5 17.5t5 6.5h-267v127h412l58 -58v-412h-127v224z" />
+<glyph unicode="&#x219e;" d="M66 520v82l291 291l90 -90l-160 -160h150l250 250l90 -90l-160 -160h550v-164h-550l160 -160l-90 -90l-250 250h-150l160 -160l-90 -90z" />
+<glyph unicode="&#x219f;" d="M534 550l-160 -160l-90 90l250 250v150l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-150l250 -250l-90 -90l-160 160v-550h-164v550z" />
+<glyph unicode="&#x21a0;" d="M456 319l160 160h-550v164h550l-160 160l90 90l250 -250h150l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-150l-250 -250z" />
+<glyph unicode="&#x21a1;" d="M284 291l90 90l160 -160v150l-250 250l90 90l160 -160v550h164v-550l160 160l90 -90l-250 -250v-150l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21a2;" d="M66 520v82l291 291l90 -90l-160 -160h540l250 250l90 -90l-242 -242l242 -242l-90 -90l-250 250h-540l160 -160l-90 -90z" />
+<glyph unicode="&#x21a3;" d="M66 319l242 242l-242 242l90 90l250 -250h540l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-540l-250 -250z" />
+<glyph unicode="&#x21a4;" d="M66 520v82l291 291l90 -90l-160 -160h716v250h164v-664h-164v250h-716l160 -160l-90 -90z" />
+<glyph unicode="&#x21a5;" d="M284 164h250v716l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-716h250v-164h-664v164z" />
+<glyph unicode="&#x21a6;" d="M66 893h164v-250h716l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-716v-250h-164v664z" />
+<glyph unicode="&#x21a7;" d="M284 291l90 90l160 -160v716h-250v164h664v-164h-250v-716l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21a8;" d="M284 164h250l-250 250l90 90l160 -160v536l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-536l160 160l90 -90l-250 -250h250v-164h-664v164z" />
+<glyph unicode="&#x21a9;" d="M66 520v82l291 291l90 -90l-160 -160h581q32 0 57 10.5t41 26.5q17 17 27 40.5t10 49.5q0 29 -11 51.5t-26 36.5q-17 17 -41 27t-49 10v164q56 0 107 -19.5t98 -65.5q86 -85 86 -203q0 -54 -20 -108t-65 -99q-21 -20 -44.5 -36t-47 -27t-45 -16.5t-37.5 -5.5h-621 l160 -160l-90 -90z" />
+<glyph unicode="&#x21aa;" d="M786 319l160 160h-621q-16 0 -37 5.5t-44 16t-47 26.5t-45 37q-50 49 -68 102.5t-18 101.5q0 63 23.5 116.5t61.5 90.5q45 44 99.5 64t106.5 20v-164q-25 0 -49 -10t-41 -27q-15 -14 -26 -36.5t-11 -51.5q0 -26 10 -49.5t27 -40.5q16 -16 41 -26.5t57 -10.5h581l-160 160 l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21ab;" d="M66 520v82l291 291l90 -90l-160 -160h306v125q0 55 20 109t63 97q35 35 88 60t116 25q61 0 112.5 -24t88.5 -60q43 -42 64.5 -94.5t21.5 -111.5q0 -56 -20 -108t-65 -96q-23 -23 -47.5 -39t-48 -26.5t-43.5 -15.5t-35 -5h-151v-213h-164v213h-306l160 -160l-90 -90z M868 643q59 0 98 37q17 17 27 40.5t10 49.5q0 25 -9.5 48t-27.5 40q-16 15 -39.5 26t-46.5 11t-47.5 -11t-39.5 -26t-25.5 -39.5t-10.5 -50.5v-125h111z" />
+<glyph unicode="&#x21ac;" d="M786 319l160 160h-306v-213h-164v213h-151q-15 0 -35 5t-43.5 15.5t-48 26.5t-47.5 39q-45 44 -65 96t-20 108q0 59 21.5 111.5t64.5 94.5q37 36 88.5 60t112.5 24q63 0 116 -25t88 -60q43 -43 63 -97t20 -109v-125h306l-160 160l90 90l291 -291v-82l-291 -291zM476 643 v125q0 27 -10 50t-27 40t-40 27t-45 10q-23 0 -47 -11t-40 -26q-18 -17 -27.5 -40t-9.5 -48q0 -26 10 -49.5t27 -40.5q39 -37 98 -37h111z" />
+<glyph unicode="&#x21ad;" d="M66 520v82l291 291l90 -90l-160 -160h8q19 -2 33 -6.5t25.5 -13t22.5 -20.5t25 -30q6 -8 13.5 -14t18.5 -6q18 0 33 20q4 6 6.5 12t4.5 12q11 42 33 75.5t49 50.5q28 17 58 17q35 0 62.5 -20.5t44.5 -46.5q11 -17 19 -37t14 -39q6 -18 11 -24.5t15 -13.5q7 -6 17 -6 t17.5 5t15.5 15q12 14 20 25t17 19t22.5 13.5t38.5 9.5l15 3l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-6q-14 1 -20 -4t-14 -15q-20 -26 -43.5 -46.5t-60.5 -20.5q-33 0 -60 17.5t-49 49.5q-25 38 -33 76q-3 12 -10 22.5t-16 15.5q-8 6 -17 6q-18 0 -33 -21 q-5 -5 -6.5 -10.5t-3.5 -12.5q-10 -40 -33 -74.5t-50 -51.5q-26 -17 -58 -17q-35 0 -59 18.5t-47 48.5q-8 10 -14 15t-19 4h-7l160 -160l-90 -90z" />
+<glyph unicode="&#x21ae;" d="M466 241l50 238h-229l160 -160l-90 -90l-291 291v82l291 291l90 -90l-160 -160h262l60 270l140 -32l-50 -238h247l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-280l-60 -270z" />
+<glyph unicode="&#x21af;" d="M703 13l-239 336l103 74l132 -185l122 724l-707 -426l151 893l160 -30l-90 -532l707 426l-181 -1082l184 132l74 -104l-335 -239z" />
+<glyph unicode="&#x21b0;" d="M886 967h-482l160 -160l-90 -90l-290 291v82l290 291l90 -90l-160 -160h646v-1131h-164v967z" />
+<glyph unicode="&#x21b1;" d="M184 1131h644l-160 160l90 90l292 -291v-82l-292 -291l-90 90l160 160h-480v-967h-164v1131z" />
+<glyph unicode="&#x21b2;" d="M184 291v82l290 291l90 -90l-160 -160h482v967h164v-1131h-646l160 -160l-90 -90z" />
+<glyph unicode="&#x21b3;" d="M668 90l160 160h-644v1131h164v-967h480l-160 160l90 90l292 -291v-82l-292 -291z" />
+<glyph unicode="&#x21b4;" d="M383 291l90 90l160 -160v721h-447v164h611v-885l160 160l90 -90l-291 -291h-82z" />
+<glyph unicode="&#x21b5;" d="M64 291v82l290 291l90 -90l-160 -160h722v447h164v-611h-886l160 -160l-90 -90z" />
+<glyph unicode="&#x21b6;" d="M81 635l90 90l160 -160l1 24q4 88 37 162t90 131q58 57 130 86t156 29q88 0 159.5 -31t126.5 -85q57 -57 88.5 -128.5t32.5 -156.5h-152q0 56 -20.5 105.5t-54.5 84.5q-27 29 -72 52.5t-106 23.5q-52 0 -99 -20t-83 -55q-44 -44 -57 -95.5t-13 -103.5v-23l160 160l90 -90 l-291 -291h-82z" />
+<glyph unicode="&#x21b7;" d="M488 635l90 90l160 -160v23q0 36 -3.5 63.5t-12 50.5t-22 43t-33.5 40q-37 37 -79 57t-99 20q-109 0 -181 -77q-75 -80 -75 -189h-152q1 87 33.5 159t87.5 126t126.5 85t159.5 31q84 0 156 -29t130 -86q60 -59 92 -135t35 -158l1 -24l160 160l90 -90l-291 -291h-82z" />
+<glyph unicode="&#x21b8;" d="M50 1050h1132v-80h-1132v80zM311 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
+<glyph unicode="&#x21b9;" d="M66 1238h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664zM622 90l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
+<glyph unicode="&#x21ba;" d="M591 0q-103 0 -194 38.5t-160 107.5q-72 72 -110 164t-38 195q0 202 148 356l119 -115q-52 -51 -76.5 -112t-24.5 -129q0 -72 25.5 -133.5t74.5 -109.5q45 -45 105.5 -72t133.5 -27q70 0 132 26t109 73q46 46 72.5 108.5t26.5 131.5q0 36 -7.5 71.5t-21 68t-31.5 59.5 t-40 45l-33 28v-227h-127v412l58 58h412v-127h-227l29 -29q75 -75 111.5 -165.5t36.5 -190.5q0 -104 -37.5 -195t-109.5 -163q-70 -69 -161.5 -108t-194.5 -39z" />
+<glyph unicode="&#x21bb;" d="M642 0q-103 0 -194.5 39t-161.5 108q-69 69 -108.5 159.5t-39.5 197.5q0 102 38 193t111 164l29 29h-227v127h412l58 -58v-412h-127v227l-33 -28q-22 -18 -40 -45t-31.5 -59.5t-21 -68t-7.5 -71.5q0 -69 26.5 -131.5t72.5 -108.5q47 -47 109 -73t132 -26q73 0 133.5 27 t105.5 72q49 48 74.5 109.5t25.5 133.5q0 68 -24.5 129t-76.5 112l119 115q148 -154 148 -356q0 -103 -38 -195t-110 -164q-69 -69 -160 -107.5t-194 -38.5z" />
+<glyph unicode="&#x21bc;" d="M66 602l291 291l90 -90l-160 -160h880v-164h-1101v123z" />
+<glyph unicode="&#x21bd;" d="M66 520v123h1101v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21be;" d="M534 1101h124l290 -291l-90 -90l-160 160v-880h-164v1101z" />
+<glyph unicode="&#x21bf;" d="M534 880l-160 -160l-90 90l292 291h122v-1101h-164v880z" />
+<glyph unicode="&#x21c0;" d="M66 643h880l-160 160l90 90l291 -291v-123h-1101v164z" />
+<glyph unicode="&#x21c1;" d="M786 319l160 160h-880v164h1101v-123l-291 -291z" />
+<glyph unicode="&#x21c2;" d="M534 1101h164v-880l160 160l90 -90l-290 -291h-124v1101z" />
+<glyph unicode="&#x21c3;" d="M327 291l90 90l160 -160v880h164v-1101h-123z" />
+<glyph unicode="&#x21c4;" d="M786 574l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291zM66 291v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21c5;" d="M292 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880zM526 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21c6;" d="M66 775v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-90 -90zM786 90l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21c7;" d="M66 291v82l201 201l-201 201v82l291 291l90 -90l-160 -160h880v-164h-880l160 -160l-160 -160h880v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21c8;" d="M292 880l-160 -160l-90 90l292 291h82l200 -201l202 201h82l290 -291l-90 -90l-160 160v-880h-164v880l-160 -160l-160 160v-880h-164v880z" />
+<glyph unicode="&#x21c9;" d="M786 90l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-291 -291z" />
+<glyph unicode="&#x21ca;" d="M42 291l90 90l160 -160v880h164v-880l160 160l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82l-202 201l-200 -201h-82z" />
+<glyph unicode="&#x21cb;" d="M66 766l291 291l90 -90l-160 -160h880v-164h-1101v123zM786 155l160 160h-880v164h1101v-123l-291 -291z" />
+<glyph unicode="&#x21cc;" d="M66 807h880l-160 160l90 90l291 -291v-123h-1101v164zM66 356v123h1101v-164h-880l160 -160l-90 -90z" />
+<glyph unicode="&#x21cd;" d="M66 520v82l291 291l90 -90l-78 -78h419l86 168l97 -59l-54 -109h250v-82h-302l-90 -164h392v-82h-443l-86 -166l-96 58l54 108h-227l78 -78l-90 -90zM649 479l88 164h-450l-82 -82l82 -82h362z" />
+<glyph unicode="&#x21ce;" d="M66 520v82l291 291l90 -90l-78 -78h194l46 218l140 -32l-39 -186h154l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-227l-31 -158l-140 32l27 126h-124l78 -78l-90 -90zM510 479l35 164h-258l-82 -82l82 -82h223zM946 479l82 82l-82 82h-254l-35 -164h289z" />
+<glyph unicode="&#x21cf;" d="M262 288l54 109h-250v82h302l90 164h-392v82h443l86 166l96 -58l-54 -108h227l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-419l-86 -168zM946 479l82 82l-82 82h-362l-88 -164h450z" />
+<glyph unicode="&#x21d0;" d="M66 520v82l291 291l90 -90l-78 -78h798v-82h-880l-82 -82l82 -82h880v-82h-798l78 -78l-90 -90z" />
+<glyph unicode="&#x21d1;" d="M452 798l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-798h-82l1 880l-83 82l-82 -82v-880h-82v798z" />
+<glyph unicode="&#x21d2;" d="M786 319l78 78h-798v82h880l82 82l-82 82h-880v82h798l-78 78l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21d3;" d="M284 291l90 90l78 -78v798h82v-880l82 -82l83 82l-1 880h82v-798l78 78l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21d4;" d="M66 520v82l291 291l90 -90l-78 -78h495l-78 78l90 90l291 -291v-82l-291 -291l-90 90l78 78h-495l78 -78l-90 -90zM946 479l82 82l-82 82h-659l-82 -82l82 -82h659z" />
+<glyph unicode="&#x21d5;" d="M284 291l90 90l78 -78v495l-78 -78l-90 90l292 291h82l290 -291l-90 -90l-78 78v-495l78 78l90 -90l-290 -291h-82zM699 221v659l-83 82l-82 -82v-659l82 -82z" />
+<glyph unicode="&#x21d6;" d="M282 507v-112h-127v412l58 58h412v-127h-110l563 -564l-58 -58l-622 622h-116v-116l622 -622l-58 -58z" />
+<glyph unicode="&#x21d7;" d="M329 0l622 622v116h-116l-622 -622l-58 58l563 564h-110v127h412l58 -58v-412h-127v112l-564 -565z" />
+<glyph unicode="&#x21d8;" d="M608 127h112l-565 564l58 58l622 -622h116v116l-622 622l58 58l564 -563v110h127v-412l-58 -58h-412v127z" />
+<glyph unicode="&#x21d9;" d="M155 58v412h127v-112l564 565l58 -58l-622 -622v-116h116l622 622l58 -58l-563 -564h110v-127h-412z" />
+<glyph unicode="&#x21da;" d="M66 520v82l291 291l90 -90h720v-82h-802l-119 -119h921v-82h-921l119 -119h802v-82h-720l-90 -90z" />
+<glyph unicode="&#x21db;" d="M786 319h-720v82h802l119 119h-921v82h921l-119 119h-802v82h720l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21dc;" d="M66 520v82l291 291l90 -90l-160 -160h129l58 -67l151 173l150 -173l150 173l150 -173l59 67h33v-164l-92 -106l-150 173l-150 -173l-150 173l-151 -173l-91 106h-96l160 -160l-90 -90z" />
+<glyph unicode="&#x21dd;" d="M786 319l160 160h-96l-91 -106l-151 173l-150 -173l-150 173l-150 -173l-92 106v164h33l59 -67l150 173l150 -173l150 173l151 -173l58 67h129l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x21e0;" d="M66 520v82l291 291l90 -90l-160 -160h258v-164h-258l160 -160l-90 -90zM670 643h187v-164h-187v164zM980 643h187v-164h-187v164z" />
+<glyph unicode="&#x21e1;" d="M534 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160l1 -258h-165v258zM535 497h163l1 -187h-165zM535 187h163v-187h-164z" />
+<glyph unicode="&#x21e2;" d="M786 319l160 160h-258v164h258l-160 160l90 90l291 -291v-82l-291 -291zM66 643h187v-164h-187v164zM376 643h187v-164h-187v164z" />
+<glyph unicode="&#x21e3;" d="M534 1101h164v-187h-163zM534 791h164v-187h-163zM284 291l90 90l160 -160v258h164v-258l160 160l90 -90l-290 -291h-82z" />
+<glyph unicode="&#x21e4;" d="M66 893h164v-291l291 291l90 -90l-160 -160h716v-164h-716l160 -160l-90 -90l-291 291v-291h-164v664z" />
+<glyph unicode="&#x21e5;" d="M622 319l160 160h-716v164h716l-160 160l90 90l291 -291v291h164v-664h-164v291l-291 -291z" />
+<glyph unicode="&#x21e6;" d="M25 561l373 373v-201h769v-344h-769v-201zM319 459h778v204h-778v93l-194 -195l194 -195v93z" />
+<glyph unicode="&#x21e7;" d="M444 769h-200l372 373l374 -373h-202v-769h-344v769zM718 70v778h94l-196 194l-194 -194h92v-778h204z" />
+<glyph unicode="&#x21e8;" d="M836 389h-770v344h770v201l372 -373l-372 -373v201zM1108 561l-194 195v-93h-778v-204h778v-93z" />
+<glyph unicode="&#x21e9;" d="M244 373h200v769h344v-769h202l-374 -373zM812 294h-94v778h-204v-778h-92l194 -194z" />
+<glyph unicode="&#x21eb;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM920 70v140h-202v638h94l-196 194l-194 -194h92v-638h-200v-140h606z" />
+<glyph unicode="&#x21ec;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM688 971l-72 71l-71 -71h143zM920 70v140h-202v638h94l-76 74h-240l-74 -74h92v-638h-200v-140h606z" />
+<glyph unicode="&#x21ed;" d="M244 280h200v489h-200l372 373l374 -373h-202v-489h202v-280h-746v280zM582 70v937l-160 -159h92v-638h-200v-140h268zM920 70v140h-202v638h94l-160 159v-937h268z" />
+<glyph unicode="&#x21ee;" d="M444 569h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-569h-344v569zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM718 70v578h94l-196 194l-194 -194h92v-578h204z" />
+<glyph unicode="&#x21ef;" d="M244 280h200v289h-200l200 200h-200l372 373l374 -373h-202l202 -200h-202v-289h202v-280h-746v280zM522 848l94 94l94 -94h102l-196 194l-194 -194h100zM920 70v140h-202v438h94l-196 194l-194 -194h92v-438h-200v-140h606z" />
+<glyph unicode="&#x21f0;" d="M66 934h280v-201h490v201l372 -373l-372 -373v201h-490v-201h-280v746zM276 258v201h638v-93l194 195l-194 195v-93h-637l-1 201h-140v-606h140z" />
+<glyph unicode="&#x21f1;" d="M70 1094h1093v-73h-1020v-1021h-73v1094zM425 622v-227h-127v412l58 58h412v-127h-227l622 -622l-116 -116z" />
+<glyph unicode="&#x21f2;" d="M464 356h228l-622 622l116 116l622 -622v227h126v-412l-58 -58h-412v127zM70 73h1020v1020h74v-1093h-1094v73z" />
+<glyph unicode="&#x21f3;" d="M244 373h200v396h-200l372 373l374 -373h-202v-396h202l-374 -373zM812 294h-94v554h94l-196 194l-194 -194h92v-554h-92l194 -194z" />
+<glyph unicode="&#x21f4;" d="M786 319l160 160h-237q-9 -32 -30.5 -66.5t-55.5 -63t-80.5 -47t-106.5 -18.5q-59 0 -104 18t-77.5 46.5t-52.5 63t-29 67.5h-107v164h107q9 33 30 68.5t54 65t78 48t104 18.5q61 0 109.5 -21.5t89.5 -62.5q17 -17 31.5 -37.5t29.5 -52.5q4 -8 5.5 -12.5l4.5 -13.5h237 l-160 160l90 90l291 -291v-82l-291 -291zM587 643q-11 19 -28 37q-23 23 -51.5 36t-66.5 13q-70 0 -119 -49q-18 -16 -29 -37h294zM437 396q69 0 122 48q8 8 15.5 16.5t12.5 18.5h-293q8 -12 14.5 -20.5t12.5 -15.5q44 -47 116 -47z" />
+<glyph unicode="&#x21f5;" d="M42 291l90 90l160 -160v880h164v-880l160 160l90 -90l-290 -291h-82zM776 880l-160 -160l-90 90l292 291h82l290 -291l-90 -90l-160 160v-880h-164v880z" />
+<glyph unicode="&#x21f6;" d="M786 -165l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l160 160h-880v164h880l-160 160l90 90l291 -291v-82l-201 -201l201 -201v-82l-201 -201l201 -201v-82l-291 -291z" />
+<glyph unicode="&#x21f7;" d="M66 520v82l291 291l90 -90l-160 -160h347v250h164v-250h369v-164h-369v-250h-164v250h-347l160 -160l-90 -90z" />
+<glyph unicode="&#x21f8;" d="M434 479h-368v164h368v250h164v-250h348l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-348v-250h-164v250z" />
+<glyph unicode="&#x21f9;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-247l160 -160l-90 -90z" />
+<glyph unicode="&#x21fa;" d="M66 520v82l291 291l90 -90l-160 -160h247v250h164v-250h116v250h164v-250h189v-164h-189v-250h-164v250h-116v-250h-164v250h-247l160 -160l-90 -90z" />
+<glyph unicode="&#x21fb;" d="M254 479h-188v164h188v250h164v-250h116v250h164v-250h248l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-248v-250h-164v250h-116v-250h-164v250z" />
+<glyph unicode="&#x21fc;" d="M66 520v82l291 291l90 -90l-160 -160h167v250h134v-250h56v250h134v-250h168l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-168v-250h-134v250h-56v-250h-134v250h-167l160 -160l-90 -90z" />
+<glyph unicode="&#x21fd;" d="M25 561l373 373v-291h769v-164h-769v-291zM319 756l-194 -195l194 -195v390z" />
+<glyph unicode="&#x21fe;" d="M835 479h-769v164h769v291l373 -373l-373 -373v291zM1108 561l-194 195v-390z" />
+<glyph unicode="&#x21ff;" d="M25 561l373 373v-291h437v291l373 -373l-373 -373v291h-437v-291zM319 756l-194 -195l194 -195v390zM1108 561l-194 195v-390z" />
+<glyph unicode="&#x2200;" d="M37 1493h209l108 -389h523l110 389h209l-457 -1493h-245zM829 942h-426l213 -764z" />
+<glyph unicode="&#x2201;" d="M636 -29q-254 0 -386 198q-69 103 -101 246t-32 328q0 379 131.5 578t388.5 199q84 0 149 -20t114.5 -54t85.5 -78.5t61.5 -93.5t42 -99.5t26.5 -95.5h-202q-9 37 -21 70.5t-24 57.5q-35 72 -94.5 112.5t-142.5 40.5q-155 0 -233.5 -153t-78.5 -462t78.5 -462t233.5 -153 q83 0 142.5 40.5t94.5 112.5q13 26 24.5 58.5t20.5 69.5h202q-11 -48 -28 -99.5t-43 -100.5t-62 -92.5t-86 -76.5t-114.5 -52t-146.5 -19z" />
+<glyph unicode="&#x2202;" d="M545 -25q-72 0 -138 27t-116 80q-51 54 -76 124.5t-25 154.5q0 87 27.5 171.5t82.5 149.5q57 67 129.5 97t148.5 30q95 0 160 -45q29 -20 56 -54t48 -89q8 44 13.5 85.5t9.5 83.5q4 41 5.5 80.5t1.5 68.5q0 66 -8 116.5t-28 85.5q-19 33 -47 49t-62 16q-33 0 -61 -14.5 t-66 -43.5q-34 -26 -59 -42t-50 -16q-7 0 -25 3.5t-35 18.5q-11 11 -17 25t-6 29q0 27 18.5 57.5t53.5 53.5q33 23 78 35.5t96 12.5q87 0 160 -38.5t127 -116.5q51 -75 78.5 -180.5t27.5 -243.5q0 -167 -38.5 -308t-104.5 -243q-69 -106 -161 -163t-198 -57zM543 31 q53 0 99 31.5t81 97.5q34 63 52 147t18 176q0 69 -10.5 114t-32.5 76q-44 62 -122 62q-53 0 -99 -31t-81 -97t-53 -151t-18 -174q0 -71 11 -116t32 -74q22 -30 53.5 -45.5t69.5 -15.5z" />
+<glyph unicode="&#x2203;" d="M178 170h692v492h-692v170h692v491h-692v170h875v-1493h-875v170z" />
+<glyph unicode="&#x2204;" d="M268 0h-90v170h138l139 492h-277v170h324l138 491h-462v170h510l27 96h155l-28 -96h211v-1493h-630l-27 -94h-154zM870 832v491h-75l-138 -491h213zM870 170v492h-261l-138 -492h399z" />
+<glyph unicode="&#x2205;" d="M74 198l117 117q-23 29 -43 63.5t-35 75t-24 87.5t-9 102q0 223 157 380q159 159 380 159q55 0 102.5 -9t88 -25t74.5 -36.5t63 -42.5l117 117l99 -99l-118 -118q45 -56 77.5 -136t32.5 -189q0 -223 -157 -380q-75 -75 -170 -116.5t-211 -41.5q-54 0 -101 9t-87 24 t-74 35t-62 43l-118 -118zM844 968q-18 13 -36 23.5t-40 19.5q-71 30 -149 30t-151.5 -29.5t-131.5 -86.5q-60 -60 -87.5 -133.5t-27.5 -151.5q0 -79 28 -148q8 -20 19 -39t24 -37zM614 246q78 0 152 29.5t131 86.5q59 59 87 132t28 151q0 38 -7 76.5t-21 73.5 q-7 17 -18 37.5t-23 36.5l-552 -552q17 -13 37 -23.5t36 -17.5q35 -15 73.5 -22.5t76.5 -7.5z" />
+<glyph unicode="&#x2206;" d="M512 1423h209l520 -1423h-1247zM985 172l-369 1047l-368 -1047h737z" />
+<glyph unicode="&#x2207;" d="M-6 1423h1247l-520 -1423h-209zM985 1251h-737l368 -1047z" />
+<glyph unicode="&#x2208;" d="M632 0q-69 0 -133.5 26t-120.5 73.5t-102 115t-79 150.5q-34 85 -50.5 176t-16.5 188q0 100 17 194t49.5 175.5t78.5 149.5t105 118q116 98 252 98h472v-170h-472q-48 0 -91.5 -21.5t-80 -59t-66 -88.5t-49.5 -111q-14 -42 -26 -95t-15 -102h798v-170h-798q4 -51 14 -99 t28 -98q50 -139 124 -209.5t162 -70.5h472v-170h-472v0z" />
+<glyph unicode="&#x2209;" d="M319 -128l67 221q-60 49 -107.5 118t-80.5 151.5t-50.5 176.5t-17.5 193t17.5 192t49.5 175t78.5 150t104.5 117q116 98 252 98h170l54 177l163 -50l-39 -127h124v-170h-176l-144 -477h318v-170h-370l-144 -473q19 -4 44 -4h472v-170h-472q-49 0 -92 12l-58 -189z M606 817l144 477h-118q-91 0 -164 -71.5t-122 -208.5q-18 -51 -28 -98.5t-14 -98.5h302zM554 647h-250q5 -58 15 -103t27 -94q10 -30 20.5 -54.5t21.5 -45.5t23.5 -40t28.5 -38z" />
+<glyph unicode="&#x220a;" d="M630 165q-69 0 -132.5 16.5t-119 47t-102 74.5t-79.5 99q-35 58 -51 117.5t-16 119.5q0 66 17.5 127.5t50 115t78.5 97.5t103 75q115 63 251 63h472v-170h-472q-66 0 -119.5 -21t-93.5 -53t-65.5 -71.5t-36.5 -75.5h787v-170h-787q11 -36 36.5 -75.5t65.5 -71.5t93.5 -53 t119.5 -21h472v-170h-472v0z" />
+<glyph unicode="&#x220b;" d="M130 170h472q47 0 89.5 20.5t79.5 58t66.5 88.5t50.5 113q13 38 24.5 89.5t15.5 107.5h-798v170h798q-4 51 -15.5 106t-31 108.5t-47.5 101.5t-66 86q-77 75 -166 75h-472v170h472q68 0 132 -25.5t120 -72.5t103 -114.5t80 -151.5q34 -85 50.5 -176.5t16.5 -188.5 q0 -101 -17.5 -194.5t-49.5 -175.5t-78.5 -150t-104.5 -117q-116 -98 -252 -98h-472v170z" />
+<glyph unicode="&#x220c;" d="M214 -127l39 127h-123v170h174l146 477h-320v170h370l145 473q-19 4 -43 4h-472v170h472q47 0 92 -12l57 189l163 -49l-67 -221q60 -50 108 -118.5t81 -151t50.5 -176.5t17.5 -194q0 -99 -17.5 -192t-49.5 -174.5t-78.5 -149.5t-104.5 -117q-116 -98 -252 -98h-171 l-54 -177zM928 817q-4 51 -15 103t-28 100.5t-40 92.5t-52 79l-114 -375h249zM602 170q45 0 87.5 19.5t79 56t67 88.5t52.5 116q13 38 24.5 89.5t15.5 107.5h-301l-145 -477h120z" />
+<glyph unicode="&#x220d;" d="M130 335h472q67 0 120.5 21t93.5 53t65.5 71.5t36.5 75.5h-787v170h787q-11 36 -36.5 75.5t-65.5 71.5t-93.5 53t-120.5 21h-472v170h472q69 0 132.5 -16.5t119 -47.5t102 -74.5t79.5 -98.5q67 -110 67 -237q0 -64 -16.5 -124.5t-48.5 -113.5t-78.5 -98t-105.5 -78 q-115 -64 -251 -64h-472v170z" />
+<glyph unicode="&#x220e;" d="M250 1284h733v-1284h-733v1284z" />
+<glyph unicode="&#x220f;" d="M152 1518h929v-1954h-155v1822h-619v-1822h-155v1954z" />
+<glyph unicode="&#x2210;" d="M152 1518h155v-1822h619v1822h155v-1954h-929v1954z" />
+<glyph unicode="&#x2211;" d="M143 -344l549 919l-549 848v95h922v-140h-733l522 -803l-522 -874h753v-137h-942v92z" />
+<glyph unicode="&#x2212;" d="M88 727h1057v-170h-1057v170z" />
+<glyph unicode="&#x2213;" d="M88 1171h1057v-170h-1057v170zM532 329h-444v170h444v332h168v-332h445v-170h-445v-329h-168v329z" />
+<glyph unicode="&#x2215;" d="M889 1493h190l-786 -1683h-191z" />
+<glyph unicode="&#x2217;" d="M559 552l-336 -203l-57 98l358 195l-358 194l57 99l336 -203v377h115v-377l336 203l57 -99l-358 -194l358 -195l-57 -98l-336 203v-377h-115v377z" />
+<glyph unicode="&#x2218;" d="M613 327q-67 0 -124.5 24t-99.5 66t-66 99.5t-24 124.5q0 68 24.5 126.5t67.5 102t101 68t125 24.5q66 0 123 -24.5t102 -70.5q48 -48 70 -104.5t22 -118.5q0 -68 -25 -125.5t-68 -100.5t-102 -67t-126 -24zM614 454q40 0 75 14.5t61.5 40t41.5 60t15 73.5t-15 74t-41 61 t-61 41t-75 15q-39 0 -73.5 -15t-60 -40.5t-40.5 -61t-15 -75.5t14.5 -74t40 -59t60 -39.5t73.5 -14.5z" />
+<glyph unicode="&#x2219;" d="M519 559q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192v0z" />
+<glyph unicode="&#x221a;" d="M258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
+<glyph unicode="&#x221b;" d="M409 1043q-66 0 -122 10.5t-116 30.5v121q70 -27 125 -40t108 -13q47 0 86.5 10t67.5 29.5t43.5 48.5t15.5 66q0 69 -54.5 107t-164.5 38h-66v108h74q94 0 142.5 31.5t48.5 89.5t-47.5 89.5t-130.5 31.5q-100 0 -220 -47v121q69 17 127 26t112 9q71 0 128 -15.5t97.5 -44 t62.5 -68.5t22 -90q0 -71 -43.5 -117t-128.5 -65q193 -44 193 -213q0 -60 -24.5 -107t-71 -80t-113.5 -50t-151 -17zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
+<glyph unicode="&#x221c;" d="M500 1244h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM500 1355v413l-274 -413h274zM258 786l-158 -53l-41 125l291 98l219 -731l467 1471h148v-131h-47l-506 -1604h-127z" />
+<glyph unicode="&#x221d;" d="M479 250q-63 0 -117 28t-93 78.5t-61 121.5t-22 158q0 83 20.5 151.5t58.5 117.5t92 76t120 27q92 0 160.5 -57.5t124.5 -186.5q46 118 119.5 181t164.5 63v-140q-57 0 -108.5 -58t-97.5 -183q16 -41 30.5 -70.5t27 -51.5t23.5 -37.5t21 -26.5q47 -50 104 -50v-141 q-40 0 -75 11.5t-69 38.5t-68.5 71t-73.5 110q-32 -60 -63.5 -103.5t-65.5 -72t-71.5 -42t-80.5 -13.5zM465 391q69 0 121.5 62.5t95.5 181.5q-30 72 -55 116.5t-47 67.5q-46 49 -106 49q-36 0 -66 -17t-51 -49t-33 -77t-12 -101q0 -53 10.5 -95.5t30.5 -73.5t48.5 -47.5 t63.5 -16.5z" />
+<glyph unicode="&#x221e;" d="M332 250q-61 0 -114.5 27t-94.5 80t-61.5 122.5t-20.5 152.5q0 80 19.5 150.5t58.5 122.5q37 49 90.5 76t122.5 27q50 0 88 -14.5t71 -42.5q34 -29 64.5 -73.5t60.5 -113.5q24 61 55.5 106.5t65.5 74.5t74.5 46t88.5 17q63 0 115.5 -29t91.5 -80q37 -48 61 -115.5 t24 -157.5q0 -83 -21.5 -152.5t-59.5 -118.5q-40 -52 -93.5 -78.5t-114.5 -26.5q-82 0 -147 50q-34 26 -68.5 70.5t-73.5 110.5q-64 -123 -131 -177q-35 -29 -72.5 -41.5t-78.5 -12.5zM318 391q66 0 119 59q54 60 100 185q-30 72 -55 116.5t-47 67.5q-46 49 -106 49 q-34 0 -64.5 -16.5t-53.5 -49.5q-20 -29 -32.5 -72.5t-12.5 -102.5q0 -51 10.5 -95t31.5 -77q19 -29 46.5 -46.5t63.5 -17.5zM903 391q34 0 64 16t53 51q22 32 33.5 75.5t11.5 100.5q0 105 -42 170q-42 64 -112 64q-66 0 -118 -58q-53 -59 -99 -183q32 -75 56 -118t47 -68 q45 -50 106 -50z" />
+<glyph unicode="&#x221f;" d="M126 1269h170v-812h812v-170h-982v982z" />
+<glyph unicode="&#x2220;" d="M918 1269h170l-656 -812h676v-170h-982z" />
+<glyph unicode="&#x2223;" d="M530 1565h172v-2048h-172v2048z" />
+<glyph unicode="&#x2227;" d="M498 1186h237l333 -1186h-191l-261 940l-261 -940h-191z" />
+<glyph unicode="&#x2228;" d="M164 1186h191l261 -940l261 940h191l-333 -1186h-237z" />
+<glyph unicode="&#x2229;" d="M164 580q0 120 6 198t19 130q25 103 85.5 161t151.5 88q87 29 189 29q109 0 197.5 -31t145.5 -86q28 -27 50 -65t36 -94q5 -22 9.5 -50.5t7.5 -67.5t5 -91t2 -121v-580h-172v674q0 13 -0.5 32.5t-2 41.5t-3.5 44t-5 40q-5 27 -10.5 44.5t-8.5 25.5q-12 27 -37.5 49 t-59.5 38t-74 24.5t-80 8.5q-39 0 -77 -8t-71.5 -23t-59.5 -37.5t-40 -50.5q-8 -17 -12 -34t-6 -37q-3 -22 -5 -46t-3.5 -46.5t-2.5 -40.5t-1 -27v-672h-173v580z" />
+<glyph unicode="&#x222a;" d="M616 0q-50 0 -98.5 7.5t-93 22t-83 36.5t-67.5 51q-60 60 -85 161q-13 52 -19 130t-6 198v580h173v-672q0 -9 1 -27t2.5 -40.5t3.5 -46.5t5 -46q4 -30 8 -44t10 -27q14 -29 40 -51t59.5 -37t71.5 -23t76 -8q43 0 84 9.5t75 25.5t58.5 38t34.5 46q2 4 8 22.5t11 48.5 q3 18 5 40t3.5 44t2 41.5t0.5 32.5v674h172v-580q0 -73 -2 -125.5t-5 -91t-7.5 -65.5t-10.5 -48q-14 -52 -36 -91.5t-52 -69.5t-67 -51t-80 -35q-89 -29 -192 -29z" />
+<glyph unicode="&#x222b;" d="M314 -371q-41 0 -75 10t-60 31q-26 22 -38 50.5t-12 58.5q0 25 8 46.5t26 38.5q35 32 93 32q35 0 59 -15q25 -15 39 -42q6 -12 9 -25.5t6 -33.5t7.5 -31t18.5 -11q27 0 47.5 45t35 132.5t23 216t12.5 294.5q1 31 1 50.5t0.5 36t0.5 34t1 44.5q7 252 32 435.5t75 300.5 t124.5 170t167.5 53q39 0 74.5 -9.5t61.5 -32.5q49 -43 49 -109q0 -51 -32 -83t-87 -32q-42 0 -70 19q-16 11 -25 24t-15 30q-4 11 -6 25.5t-4 25.5q-3 19 -7.5 27.5t-16.5 8.5q-51 0 -81 -154t-37 -465q0 -13 -1 -47t-2 -77.5t-2.5 -91t-2.5 -87.5q-5 -127 -14.5 -231.5 t-23 -189t-32 -150t-41.5 -115.5q-47 -102 -118.5 -154.5t-167.5 -52.5z" />
+<glyph unicode="&#x222c;" d="M250 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t44.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5l1 1570q0 49 15.5 101t45.5 95t75.5 71t105.5 28q40 0 91 -14t96 -43l-67 -127q-25 14 -49.5 24t-46.5 10q-18 0 -33 -8.5t-26.5 -28t-17.5 -52.5t-6 -81v-1570 q0 -49 -15.5 -101.5t-46 -95.5t-75.5 -70.5t-105 -27.5zM681 -388q-40 0 -91 14t-96 43l67 127q28 -15 52.5 -24.5t45.5 -9.5q19 0 34 9t25.5 29t16 52.5t5.5 79.5v1570q0 49 15.5 101.5t46 95.5t75.5 70.5t105 27.5q40 0 91 -14t96 -43l-67 -127q-25 14 -49.5 24t-46.5 10 q-18 0 -33 -8.5t-26 -28t-17 -52.5t-6 -81l-1 -1570q0 -49 -15.5 -101t-45.5 -95t-75.5 -71t-105.5 -28z" />
+<glyph unicode="&#x222d;" d="M178 -361q-32 0 -60.5 7t-64.5 21l36 142q16 -7 39.5 -10.5t35.5 -3.5q20 0 28 15.5t8 62.5v1629q0 55 12 104t37 85.5t64 57.5t94 21q32 0 60.5 -7t64.5 -21l-36 -142q-18 8 -41 11t-34 3q-21 0 -29 -15.5t-8 -62.5v-1629q0 -56 -11.5 -105t-36.5 -85t-64 -57t-94 -21z M503 -361q-32 0 -60.5 7t-64.5 21l36 142q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 55 11.5 104t36.5 85.5t64 57.5t94 21q32 0 60.5 -7t64.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -56 -12 -105t-37 -85t-64 -57t-94 -21z M827 -361q-32 0 -60.5 7t-64.5 21l36 142q18 -8 41 -11t34 -3q21 0 29 15.5t8 62.5v1629q0 55 11.5 104t36.5 85.5t64 57.5t94 21q32 0 60.5 -7t64.5 -21l-36 -142q-16 7 -39.5 10.5t-35.5 3.5q-20 0 -28 -15.5t-8 -62.5v-1629q0 -56 -12 -105t-37 -85t-64 -57t-94 -21z" />
+<glyph unicode="&#x2234;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2235;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2236;" d="M518 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM522 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2237;" d="M218 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM823 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM217 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM827 134 q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2238;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170z" />
+<glyph unicode="&#x2239;" d="M937 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM74 727h746v-170h-746v170zM935 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x223a;" d="M118 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM923 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 727h1057v-170h-1057v170zM117 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245 q0 -30 -30 -30h-192zM927 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x223b;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM520 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x223c;" d="M88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
+<glyph unicode="&#x223d;" d="M381 497q-75 0 -146.5 27t-146.5 87v175q75 -63 143 -93t137 -30q94 0 210 54l32 15q68 32 125 43t105 11q81 0 154 -27.5t151 -87.5v-174q-76 66 -146 94.5t-151 28.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5t-6 -2.5t-3.5 -1.5t-8 -3.5 q-54 -23 -102 -37t-105 -14z" />
+<glyph unicode="&#x2241;" d="M448 205l88 387q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5 t-95.5 30.5l-83 -364z" />
+<glyph unicode="&#x2242;" d="M88 930h1057v-170h-1057v170zM88 479q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11 q-81 0 -150.5 -30t-143.5 -95v174z" />
+<glyph unicode="&#x2243;" d="M88 848q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 524 h1057v-172h-1057v172z" />
+<glyph unicode="&#x2244;" d="M232 199l89 154h-233v171h337l146 231q-44 20 -92.5 31t-98.5 11q-76 0 -140 -27q-18 -8 -38.5 -18.5t-41 -23.5t-39 -27t-33.5 -28v172q42 36 84 59t82 36.5t77.5 18.5t70.5 5q26 0 49 -3t48 -9t52.5 -15.5t62.5 -22.5l13 -5l29 -16l198 344l113 -100l-167 -288 q34 -6 66 -6q81 0 151 34t128 89v-178q-27 -26 -65.5 -47.5t-80.5 -36.5t-83.5 -23.5t-75.5 -8.5q-31 0 -61 7.5t-77 22.5l-110 -178h554v-171h-648l-152 -254z" />
+<glyph unicode="&#x2245;" d="M88 1052q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18 t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
+<glyph unicode="&#x2246;" d="M88 1052q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18 t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM293 131l44 61h-249v172h373l139 192h-512v172h635l104 143l113 -82l-44 -61h249v-172h-373l-139 -192h512v-172h-636l-103 -143z" />
+<glyph unicode="&#x2247;" d="M310 55l50 137h-272v172h333l69 192h-402v172h464l75 209q-9 4 -15 6q-39 17 -70.5 28t-58.5 18t-51 9.5t-48 2.5q-82 0 -152.5 -29.5t-143.5 -93.5v174q39 30 76 51.5t74.5 36t77 21t83.5 6.5q24 0 48.5 -2.5t51 -8.5t57 -16.5t67.5 -26.5l58 -25l86 238l155 -56 l-81 -225q5 -1 11 -1h12q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-148.5 -27q-18 0 -33.5 1.5t-32.5 4.5l-56 -156h417v-172h-479l-69 -192h548v-172h-609l-70 -192z" />
+<glyph unicode="&#x2248;" d="M88 848q39 30 78 52.5t73 35.5q36 14 75 20.5t93 6.5q9 0 17 -0.5t18.5 -1.5t23.5 -3.5t32 -6.5q17 -4 30.5 -7.5t27 -8t29.5 -11t38 -15.5q9 -4 12 -5.5t5 -2t4.5 -2t10.5 -5.5q47 -23 103.5 -38.5t107.5 -15.5q68 0 137 30q32 14 69.5 38.5t72.5 54.5v-175 q-75 -58 -146 -86q-36 -14 -73.5 -21t-75.5 -7q-56 0 -103 14t-102 37l-33 14q-24 10 -41 17t-31 12.5t-27 9t-29 7.5q-53 12 -102 12q-41 0 -79.5 -7.5t-70.5 -21.5q-31 -13 -68.5 -36.5t-75.5 -57.5v174zM88 479q40 31 79 54t73 36q32 12 71.5 19.5t80.5 7.5 q100 0 229 -55h1l33 -15q60 -27 108 -41t99 -14q41 0 74 8.5t65 22.5q34 15 68 37t76 57v-176q-38 -29 -75 -51t-71 -36q-36 -14 -74 -21t-74 -7q-49 0 -99 12.5t-107 38.5l-33 15q-15 7 -33 14t-36 13.5t-34.5 12t-28.5 8.5q-19 5 -47 8t-54 3q-76 0 -146 -30 q-71 -30 -145 -95v174z" />
+<glyph unicode="&#x2249;" d="M378 89l99 330q-50 11 -97 11q-78 0 -147.5 -29.5t-144.5 -95.5v174q77 61 150.5 89t151.5 28q35 0 67 -5t67 -15l54 178q-55 22 -100.5 32.5t-94.5 10.5q-81 0 -151.5 -29.5t-143.5 -93.5v174q38 29 74.5 50.5t74 36t77.5 21.5t85 7q25 0 48.5 -2.5t49.5 -8.5t57 -17 t70 -27l93 311l138 -41l-97 -323q57 -15 106 -15q70 0 138 30t143 93v-175q-72 -57 -144 -85.5t-150 -28.5q-68 0 -140 25l-52 -175q115 -53 205 -53q69 0 137.5 30.5t143.5 94.5v-176q-73 -58 -145 -86.5t-148 -28.5q-50 0 -103 12.5t-104 38.5l-31 16l-98 -324z" />
+<glyph unicode="&#x224a;" d="M88 1056q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 687 q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11q-81 0 -150.5 -30t-143.5 -95v174zM88 364 h1057v-172h-1057v172z" />
+<glyph unicode="&#x224b;" d="M88 1056q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM88 687 q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11q-81 0 -150.5 -30t-143.5 -95v174zM88 323 q78 62 151.5 89.5t150.5 27.5q55 0 110 -13.5t121 -41.5h1l33 -15q61 -28 109.5 -41.5t96.5 -13.5q72 0 140.5 30.5t143.5 94.5v-176q-70 -56 -142 -85.5t-150 -29.5q-51 0 -101 12.5t-107 38.5l-33 15q-81 37 -135.5 48t-94.5 11q-81 0 -150.5 -30t-143.5 -95v174z" />
+<glyph unicode="&#x224c;" d="M381 878q-75 0 -146.5 27t-146.5 87v175q75 -63 143 -93t140 -30q51 0 99 14t108 40l32 14q42 18 75.5 29t60.5 17t48.5 7.5t39.5 1.5q40 0 78 -6t76 -19.5t76.5 -35.5t80.5 -54v-174q-76 66 -146 94.5t-151 28.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5 q-11 -5 -15.5 -6.5t-6 -2.5t-3.5 -1.5t-8 -3.5q-54 -23 -102 -37t-105 -14zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
+<glyph unicode="&#x224d;" d="M617 729q-200 0 -530 156v178q345 -155 530 -163q186 0 527 163v-178q-327 -156 -527 -156zM88 399q328 156 528 156t529 -156v-178q-344 155 -529 163q-186 0 -528 -163v178z" />
+<glyph unicode="&#x224e;" d="M88 930h225q2 10 7.5 35.5t20.5 58.5t43.5 69.5t76.5 69.5q35 24 72.5 37.5t79.5 13.5q40 0 80.5 -12.5t77 -36t66.5 -56t49 -71.5q11 -22 20 -50t14 -58h225v-168h-342q-3 97 -28.5 162t-66.5 101q-22 20 -43.5 27.5t-47.5 6.5q-54 -2 -95.5 -37.5t-65.5 -107.5 q-20 -61 -25 -152h-343v168zM617 68q-30 0 -66.5 9.5t-73 30.5t-70.5 54.5t-59 81.5q-15 29 -22.5 54.5t-12.5 53.5h-225v168h343q3 -92 28 -161t67 -102q17 -14 41 -24t52 -10q48 0 90.5 35.5t68.5 109.5q11 30 17 66.5t8 85.5h342v-168h-225q-2 -12 -8.5 -39t-22.5 -61 t-44 -69.5t-72 -64.5q-37 -24 -77.5 -37t-78.5 -13z" />
+<glyph unicode="&#x224f;" d="M88 930h225q2 10 7.5 35.5t20.5 58.5t43.5 69.5t76.5 69.5q35 24 72.5 37.5t79.5 13.5q40 0 80.5 -12.5t77 -36t66.5 -56t49 -71.5q11 -22 20 -50t14 -58h225v-168h-342q-3 97 -28.5 162t-66.5 101q-22 20 -43.5 27.5t-47.5 6.5q-54 -2 -95.5 -37.5t-65.5 -107.5 q-20 -61 -25 -152h-343v168zM88 522h1057v-170h-1057v170z" />
+<glyph unicode="&#x2250;" d="M521 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2251;" d="M521 1305q-30 0 -30 -30v30h30zM743 1275q0 30 -30 30h30v-30zM491 1030q0 -30 30 -30h-30v30zM713 1000q30 0 30 30v-30h-30zM1145 930v-170h-1057v170h1057zM88 524h1057v-172h-1057v172zM712 282q30 0 30 -30v-245q0 -30 -30 -30h-192q-30 0 -30 30v245q0 30 30 30 h192z" />
+<glyph unicode="&#x2252;" d="M118 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM923 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2253;" d="M923 1000q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172zM117 -20q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2254;" d="M104 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 930h773v-170h-773v170zM104 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM386 524h773v-172h-773v172z" />
+<glyph unicode="&#x2255;" d="M953 709q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 930h773v-170h-773v170zM953 302q-30 0 -30 30v212q0 30 30 30h176q30 0 30 -30v-212q0 -30 -30 -30h-176zM74 524h773v-172h-773v172z" />
+<glyph unicode="&#x2256;" d="M88 522h318q-25 62 -25 120q0 61 27 120h-320v168h1057v-168h-311q13 -12 19.5 -44t6.5 -70q0 -32 -5.5 -60t-21.5 -66h312v-170h-1057v170zM693 522q26 24 38.5 55t12.5 63q0 33 -13 64.5t-39 57.5h-143q-52 -48 -52 -120t51 -120h145z" />
+<glyph unicode="&#x2257;" d="M614 1000q-61 0 -113.5 21t-90.5 58t-60 87.5t-22 108.5q0 59 22.5 110.5t61.5 89.5t91.5 60t112.5 22t114 -22t92 -61q42 -40 63 -90t21 -106q0 -59 -22.5 -109.5t-62 -88t-93 -59t-114.5 -21.5zM617 1111q36 0 68 13t55 35t36.5 52t13.5 65t-13.5 65.5t-37 53.5t-55 36 t-67.5 13t-68 -13t-55 -36t-36.5 -53.5t-13.5 -65.5t13.5 -65t36.5 -52t55 -35t68 -13zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2258;" d="M182 1204q209 151 437 151q230 0 432 -151v-178q-214 151 -433 160q-214 -1 -436 -160v178zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2259;" d="M536 1604h162l233 -602h-143l-171 426l-166 -426h-149zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225a;" d="M302 1604h149l166 -426l171 426h143l-233 -602h-162zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225b;" d="M482 1287l-218 158h269l84 256l85 -256h268l-218 -158l85 -256l-220 159l-219 -159zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225c;" d="M566 1711h101l260 -663h-621zM767 1159l-151 390l-150 -390h301zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225d;" d="M238 994q-39 0 -70 15t-53 43t-34 66.5t-12 86.5t12 87t34 66.5t53 43t70 15.5t71.5 -17t53.5 -54v218h67v-560h-61l-6 61q-21 -37 -53.5 -54t-71.5 -17zM970 1356h-63v51h63v28q0 69 31 99t100 30h63v-55h-64q-35 0 -49 -14.5t-14 -51.5v-36h109v-51h-109v-352h-67v352z M701 994q-98 0 -154.5 55t-56.5 155q0 49 14 88t40 67t62 43t80 15q84 0 131 -52t47 -143v-32h-304q4 -69 41 -104.5t106 -35.5q68 0 142 37v-62q-74 -31 -148 -31zM251 1049q53 0 82.5 41.5t29.5 115.5t-29.5 115t-82.5 41t-83 -41q-30 -42 -30 -114q0 -75 30 -116.5 t83 -41.5zM798 1242q-2 55 -30.5 87t-82.5 32t-86 -32.5t-37 -87.5zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225e;" d="M221 1543h81l8 -85q29 48 71 73t101 25q58 0 99.5 -28t64.5 -91q65 119 187 119q88 0 133.5 -60t45.5 -171v-331h-89v328q0 80 -28 118t-86 38q-67 0 -107.5 -46.5t-40.5 -127.5v-310h-89v328q0 81 -27.5 118.5t-85.5 37.5q-69 0 -109 -46.5t-40 -127.5v-310h-89v549z M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x225f;" d="M542 1272q0 28 3.5 48t11.5 37.5t22.5 34.5t35.5 38l45 44q26 26 40 47.5t14 50.5q0 45 -32 72.5t-85 27.5q-42 0 -86.5 -17.5t-93.5 -50.5v94q95 56 193 56q47 0 85 -12.5t65 -36t41.5 -56t14.5 -71.5q0 -41 -18.5 -74t-62.5 -76l-44 -43q-14 -13 -22 -22.5t-13 -16.5 t-7.5 -12.5t-4.5 -11.5q-3 -10 -4.5 -25t-1.5 -41v-62h-96v78zM569 994q-30 0 -30 30v67q0 30 30 30h42q30 0 30 -30v-67q0 -30 -30 -30h-42zM88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x2260;" d="M125 141l164 211h-201v172h330l184 236h-514v170h647l246 315l125 -102l-164 -213h203v-170h-334l-184 -236h518v-172h-647l-248 -315z" />
+<glyph unicode="&#x2261;" d="M88 1090h1057v-170h-1057v170zM88 728h1057v-172h-1057v172zM88 364h1057v-172h-1057v172z" />
+<glyph unicode="&#x2262;" d="M272 74l55 118h-239v172h317l88 192h-405v172h485l88 192h-573v170h651l85 184l141 -65l-55 -119h235v-170h-312l-89 -192h401v-172h-480l-90 -192h570v-172h-649l-83 -182z" />
+<glyph unicode="&#x2263;" d="M88 1262h1057v-170h-1057v170zM88 900h1057v-172h-1057v172zM88 536h1057v-172h-1057v172zM88 172h1057v-172h-1057v172z" />
+<glyph unicode="&#x2264;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x2265;" d="M88 438l803 234l-803 231v184l1057 -331v-168l-1057 -332v182zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x2266;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
+<glyph unicode="&#x2267;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 266h1057v-170h-1057v170zM86 0h1057v-172h-1057v172z" />
+<glyph unicode="&#x2268;" d="M86 684v168l1057 331v-184l-801 -231l801 -234v-182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
+<glyph unicode="&#x2269;" d="M86 534l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM249 -213l39 41h-202v172h368l91 96h-459v170h621l154 161l123 -117l-42 -44h201v-170h-363l-91 -96h454v-172h-620l-153 -159z" />
+<glyph unicode="&#x226d;" d="M235 77l129 258q-125 -41 -276 -114v178q110 52 204 87t175 52l97 193q-190 18 -477 154v178q347 -170 563 -162l194 383l154 -77l-130 -258q121 40 276 114v-178q-216 -104 -378 -138l-98 -194q192 -18 477 -154v-178q-347 170 -563 162l-193 -383z" />
+<glyph unicode="&#x226e;" d="M362 19l119 385l-393 155v166l562 222l114 365l153 -48l-75 -241l303 120v-182l-366 -138l-100 -325l466 -174v-183l-514 203l-116 -373zM590 752l-295 -111l233 -86z" />
+<glyph unicode="&#x226f;" d="M316 19l75 241l-303 -120v182l366 138l100 325l-466 174v183l514 -203l116 373l153 -48l-119 -385l393 -155v-166l-562 -222l-114 -365zM938 642l-233 86l-62 -197z" />
+<glyph unicode="&#x2270;" d="M293 -190l63 190h-268v170h323l95 287l-418 131v168l575 180l115 352l161 -53l-77 -237l283 89v-184l-348 -100l-78 -241l426 -124v-182l-477 150l-78 -236h555v-170h-610l-80 -243zM600 746l-256 -74l211 -62z" />
+<glyph unicode="&#x2271;" d="M205 -190l62 190h-179v170h235l58 178l-293 -92v182l358 104l76 236l-434 125v184l486 -152l116 353l161 -53l-115 -351l409 -128v-168l-565 -177l-78 -241h643v-170h-699l-79 -243zM891 672l-206 60l-42 -132z" />
+<glyph unicode="&#x2272;" d="M86 588v168l1057 331v-184l-801 -231l801 -234v-182zM86 130q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3 t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
+<glyph unicode="&#x2273;" d="M86 438l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 130q42 32 80.5 54t76.5 35.5t75.5 19.5t78.5 6q18 0 39.5 -1.5t48.5 -7.5t60.5 -17t75.5 -29l32 -14q61 -27 109.5 -40.5t97.5 -13.5q72 0 140 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5 q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
+<glyph unicode="&#x2274;" d="M293 -190l88 269q-81 0 -151.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q14 0 24 -0.5t21 -1.5l69 214l-418 131v168l577 181l115 351l161 -53l-77 -236l281 88v-184l-345 -99l-80 -242l425 -124v-182l-477 150l-66 -207q23 -7 53 -23q115 -54 209 -54 q70 0 138 30t143 93v-175q-75 -60 -146.5 -87t-149.5 -27q-29 0 -53 3.5t-48 10t-49 16t-54 21.5l-33 14q-2 1 -4.5 2t-8.5 3.5t-17 7t-30 12.5l-95 -289zM601 747l-259 -75l213 -62z" />
+<glyph unicode="&#x2275;" d="M205 -190l85 259q-34 -8 -60 -19q-34 -14 -70.5 -38t-73.5 -56v174q78 60 141 84t121 29l34 106l-296 -93v182l359 105l78 234l-437 126v184l488 -153l116 354l161 -53l-115 -352l407 -127v-168l-563 -177l-59 -184q5 -1 18.5 -5.5t29 -10t30 -11.5t22.5 -9l32 -15 q115 -54 210 -54q69 0 137 30t143 93v-175q-72 -57 -145 -85.5t-151 -28.5q-52 0 -98 12.5t-106 38.5l-33 14q-26 11 -43.5 18t-31.5 12.5t-29 9.5t-36 9l-103 -313zM887 672l-202 59l-42 -130z" />
+<glyph unicode="&#x2276;" d="M86 736v168l1057 331v-184l-801 -231l801 -234v-182zM86 0l801 234l-801 231v184l1057 -331v-168l-1057 -332v182z" />
+<glyph unicode="&#x2277;" d="M86 586l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM86 150v168l1057 331v-184l-801 -231l801 -234v-182z" />
+<glyph unicode="&#x2278;" d="M259 -352l76 248l-249 -78v182l308 90l80 263l-388 112v184l437 -137l24 79l-461 145v168l616 193l110 360l162 -50l-76 -249l245 77v-184l-306 -88l-80 -264l386 -113v-182l-434 136l-25 -78l459 -144v-168l-613 -193l-109 -357zM644 907l-302 -87l252 -74zM887 234 l-250 72l-50 -160z" />
+<glyph unicode="&#x2279;" d="M259 -352l125 408l-298 94v168l418 131l29 95l-447 -140v182l505 147l48 158l-553 160v184l601 -188l125 410l162 -50l-126 -411l295 -92v-168l-414 -130l-29 -96l443 139v-184l-502 -145l-48 -159l550 -161v-182l-598 188l-124 -406zM887 820l-85 25l-17 -55zM447 264 l-105 -30l88 -26z" />
+<glyph unicode="&#x227a;" d="M1143 -45q-327 453 -1057 603v166q735 149 1057 603v-239q-327 -360 -747 -447q427 -98 747 -447v-239v0z" />
+<glyph unicode="&#x227b;" d="M88 194q319 349 747 447q-420 87 -747 447v239q322 -454 1057 -603v-166q-730 -150 -1057 -603v239z" />
+<glyph unicode="&#x227c;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM1143 -252q-43 52 -101 108.5t-121.5 111t-127 103t-117.5 84.5q-55 36 -114.5 67t-130 57t-155 47t-190.5 37v200 q184 -28 334 -78.5t277 -121.5t235.5 -162t210.5 -201v-252z" />
+<glyph unicode="&#x227d;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-171 -29 -323.5 -79t-285 -118.5t-245 -155t-203.5 -186.5v239zM86 0q102 110 210.5 201t235.5 162t277 121.5t334 78.5v-200q-106 -17 -189.5 -37t-153 -45.5t-129 -56.5 t-117.5 -69q-59 -39 -123.5 -88.5t-127 -103t-118.5 -109t-99 -106.5v252z" />
+<glyph unicode="&#x227e;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM86 60q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175 q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
+<glyph unicode="&#x227f;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM86 60q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5 q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
+<glyph unicode="&#x2280;" d="M345 -115l166 546q-97 40 -202.5 71.5t-222.5 55.5v166q329 66 573 193l161 530l163 -50l-104 -342q154 118 264 272v-239q-81 -88 -165.5 -159.5t-175.5 -126.5l-85 -277q231 -118 426 -331v-239q-178 247 -476 404l-160 -524zM592 699q-48 -19 -96.5 -33t-99.5 -25 q85 -20 164 -48z" />
+<glyph unicode="&#x2281;" d="M246 -115l104 342q-154 -118 -264 -272v239q81 88 165.5 159.5t175.5 126.5l85 277q-231 118 -426 331v239q178 -247 476 -404l160 524l162 -50l-166 -546q97 -40 202.5 -71.5t222.5 -55.5v-166q-329 -66 -573 -193l-161 -530zM637 583q48 19 96.5 33t99.5 25 q-85 20 -164 48z" />
+<glyph unicode="&#x2282;" d="M566 163q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579v0z" />
+<glyph unicode="&#x2283;" d="M88 313h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150z" />
+<glyph unicode="&#x2284;" d="M309 -7l70 205q-45 19 -82.5 45t-69.5 59q-68 69 -103.5 152t-35.5 182q0 102 37 190t101.5 153.5t151.5 102.5t187 37h126l75 223l161 -53l-57 -170h275v-150h-326l-221 -656h547v-150h-599l-75 -223zM639 969h-74q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105 t-25.5 -130.5q0 -66 23.5 -123.5t71.5 -105.5q23 -23 46.5 -39.5t47.5 -27.5z" />
+<glyph unicode="&#x2285;" d="M306 -7l57 170h-275v150h326l221 656h-547v150h599l75 223l162 -53l-70 -205q45 -19 82.5 -45t69.5 -59q68 -69 103.5 -152t35.5 -182q0 -102 -37 -190t-101.5 -153.5t-151.5 -102.5t-187 -37h-126l-75 -223zM668 313q69 0 128.5 25.5t103.5 70t69.5 105t25.5 130.5 q0 66 -23.5 123.5t-71.5 105.5q-23 23 -46.5 39.5t-47.5 27.5l-212 -627h74z" />
+<glyph unicode="&#x2286;" d="M566 324q-101 0 -188 37.5t-151.5 102t-101.5 151.5t-37 187q0 99 37 186.5t101.5 152t151.5 102t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104.5t-25.5 -128q0 -69 25.5 -128.5t70 -103.5t104 -69.5t127.5 -25.5h580v-150h-579zM88 170h1057v-170 h-1057v170z" />
+<glyph unicode="&#x2287;" d="M88 474h580q68 0 127.5 25.5t104 69.5t70 103.5t25.5 128.5q0 68 -25.5 128t-69.5 104.5t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102t101.5 -152t37 -186.5q0 -100 -37 -187t-101.5 -151.5t-152 -102t-187.5 -37.5h-579v150zM88 170h1057v-170 h-1057v170z" />
+<glyph unicode="&#x2288;" d="M261 -159l54 159h-227v170h283l58 172q-57 16 -117 52.5t-110 94t-82 134.5t-32 174q0 102 37 190t101.5 153.5t151.5 102.5t187 37h178l71 214l158 -53l-53 -161h226v-150h-276l-220 -656h496v-150h-547l-50 -154h597v-170h-654l-71 -212zM692 1130h-127 q-69 0 -128.5 -25.5t-103.5 -70t-69.5 -105t-25.5 -130.5q0 -66 21.5 -118.5t56 -92t77 -65t83.5 -37.5z" />
+<glyph unicode="&#x2289;" d="M261 -159l53 159h-226v170h283l51 154h-334v150h385l219 655q-6 1 -12 1h-12h-580v150h580q19 0 37.5 -1.5t35.5 -3.5l73 219l158 -53l-73 -218q56 -31 107 -82q70 -71 104.5 -155t34.5 -180q0 -102 -37 -190t-101.5 -153t-152 -102t-187.5 -37h-68l-52 -154h598v-170 h-655l-70 -212zM668 474q68 0 127.5 25.5t104 69.5t70 104.5t25.5 130.5q0 69 -25 127t-70 103q-23 23 -50 42l-202 -602h20z" />
+<glyph unicode="&#x228a;" d="M358 -102l82 102h-352v170h488l124 154h-134q-101 0 -188 37.5t-151.5 102t-101.5 152t-37 186.5t37 186t101.5 152t151.5 102.5t187 37.5h580v-150h-580q-69 0 -128.5 -26t-103.5 -70.5t-69.5 -104t-25.5 -127.5q0 -69 26 -129t70 -104t103.5 -69.5t127.5 -25.5h580 v-150h-335l65 -53l-81 -101h351v-170h-488l-167 -208z" />
+<glyph unicode="&#x228b;" d="M358 -102l82 102h-352v170h488l124 155q-8 -1 -16.5 -1h-16.5h-579v150h580q67 0 127 25.5t104 69.5t70 104t26 129q0 68 -25.5 127.5t-69.5 104t-103.5 70.5t-128.5 26h-580v150h580q100 0 187 -37.5t151.5 -102.5t101.5 -153t37 -189q0 -98 -33 -176.5t-84.5 -136.5 t-114 -95t-122.5 -51l84 -68l-81 -101h351v-170h-488l-167 -208z" />
+<glyph unicode="&#x228d;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM539 446q-30 0 -30 30 v166q0 30 30 30h152q30 0 30 -30v-166q0 -30 -30 -30h-152z" />
+<glyph unicode="&#x228e;" d="M617 -29q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v789h172v-744q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v744h172v-789q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5zM566 509h-170v100h170 v170h101v-170h170v-100h-170v-172h-101v172z" />
+<glyph unicode="&#x228f;" d="M88 1163h1057v-170h-887v-704h887v-170h-1057v1044z" />
+<glyph unicode="&#x2290;" d="M88 289h887v704h-887v170h1057v-1044h-1057v170z" />
+<glyph unicode="&#x2291;" d="M88 1268h1057v-170h-887v-616h887v-170h-1057v956zM88 184h1057v-170h-1057v170z" />
+<glyph unicode="&#x2292;" d="M88 482h887v616h-887v170h1057v-956h-1057v170zM88 184h1057v-170h-1057v170z" />
+<glyph unicode="&#x2293;" d="M94 1284h1044v-1284h-170v1114h-704v-1114h-170v1284z" />
+<glyph unicode="&#x2294;" d="M94 1284h170v-1114h704v1114h170v-1284h-1044v1284z" />
+<glyph unicode="&#x2295;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM546 572 h-275v140h275v277h140v-277h276v-140h-276v-274h-140v274z" />
+<glyph unicode="&#x2296;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM271 712h691 v-140h-691v140z" />
+<glyph unicode="&#x2297;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448 l194 194l-196 196l99 99l196 -196l195 195l99 -99l-195 -195l194 -194l-99 -99l-194 194l-194 -194z" />
+<glyph unicode="&#x2298;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM324 448 l488 488l99 -99l-488 -488z" />
+<glyph unicode="&#x2299;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM489 784h252 v-305h-252v305z" />
+<glyph unicode="&#x229a;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM614 378 q-57 0 -105 20t-83.5 55.5t-55.5 83.5t-20 104q0 57 20.5 106.5t56.5 85.5t84.5 57t104.5 21q55 0 104 -20.5t86 -59.5q38 -37 57.5 -84.5t19.5 -101.5q0 -57 -21 -106t-57 -84.5t-85 -56t-106 -20.5zM615 511q28 0 52.5 10t43 28t29 42.5t10.5 52.5q0 54 -39 93 q-18 18 -42 28.5t-53 10.5q-28 0 -52 -10.5t-42 -28.5t-28.5 -42.5t-10.5 -52.5t10 -52t28 -41.5t42 -27.5t52 -10z" />
+<glyph unicode="&#x229b;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M559 1037q-49 -7 -106.5 -31.5t-115.5 -81.5q-9 -10 -17 -19t-16 -19l255 -154v305zM929 886q-8 10 -16 19t-17 19q-58 57 -115.5 81.5t-106.5 31.5v-305zM524 642l-276 150q-27 -69 -27 -150t28 -150zM984 492q28 69 28 150t-27 150l-276 -150zM559 552l-254 -153l16 -18 l16 -18q58 -57 115.5 -81.5t106.5 -31.5v302zM674 250q49 7 106.5 31.5t115.5 81.5l16 18l16 18l-254 153v-302z" />
+<glyph unicode="&#x229c;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM299 814h635 v-102h-635v102zM299 571h635v-103h-635v103z" />
+<glyph unicode="&#x229d;" d="M617 106q-114 0 -212 43t-169 114q-78 78 -117 176.5t-39 204.5t39 203.5t117 175.5q38 38 83 68.5t93 50.5q50 21 99.5 30.5t101.5 9.5q118 0 215 -43t169 -115q78 -78 117 -176t39 -205q0 -104 -38.5 -202.5t-117.5 -177.5q-70 -70 -167.5 -113.5t-212.5 -43.5z M616 246q79 0 152 30.5t129 85.5q54 54 84.5 126.5t30.5 157.5q0 76 -27.5 147t-88.5 131q-32 32 -64.5 52.5t-63.5 34.5q-71 30 -149 30t-152 -29.5t-131 -86.5q-58 -58 -86.5 -131.5t-28.5 -151.5q0 -84 30.5 -155t85.5 -125q56 -55 127.5 -85.5t151.5 -30.5zM415 712h403 v-140h-403v140z" />
+<glyph unicode="&#x229e;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM546 572h-311v140h311v313h140v-313h312v-140h-312v-310h-140v310z" />
+<glyph unicode="&#x229f;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM271 712h691v-140h-691v140z" />
+<glyph unicode="&#x22a0;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM253 376l266 265l-267 267l99 99l267 -267l268 268l99 -99l-268 -268l264 -264l-99 -99l-264 264l-266 -265z" />
+<glyph unicode="&#x22a1;" d="M80 1180h1075v-1075h-1075v1075zM1012 245v795h-792v-795h792zM489 784h252v-305h-252v305z" />
+<glyph unicode="&#x22a2;" d="M88 1284h168v-557h889v-170h-889v-557h-168v1284z" />
+<glyph unicode="&#x22a3;" d="M977 557h-889v170h889v557h168v-1284h-168v557z" />
+<glyph unicode="&#x22a4;" d="M533 1114h-445v170h1057v-170h-444v-1114h-168v1114z" />
+<glyph unicode="&#x22b2;" d="M88 559v166l1057 418v-1002zM977 898l-682 -257l682 -254v511z" />
+<glyph unicode="&#x22b3;" d="M88 1143l1057 -418v-166l-1057 -418v1002zM938 641l-682 257v-511z" />
+<glyph unicode="&#x22b4;" d="M88 588v168l1057 331v-831zM977 855l-633 -183l633 -185v368zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x22b5;" d="M88 1087l1057 -331v-168l-1057 -332v831zM891 672l-635 183v-368zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#x22b8;" d="M920 359q-60 0 -107 19.5t-81 48.5t-55 64t-30 67h-619l1 168h617q9 34 32 70.5t58 66t81 48.5t103 19q60 0 112.5 -22.5t90.5 -61.5t60 -91.5t22 -113.5q0 -60 -21.5 -111.5t-59.5 -89.5t-90.5 -59.5t-113.5 -21.5zM920 507q29 0 54 10.5t43.5 29t29 43t10.5 53.5 q0 28 -10.5 53t-29 44t-43.5 29.5t-53 10.5q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5t10.5 -52.5t29 -43t43.5 -29t54 -10.5z" />
+<glyph unicode="&#x22c2;" d="M131 1023q0 148 27 248.5t85.5 161.5t150.5 87.5t222 26.5t222.5 -26.5t151 -87.5t85.5 -161.5t27 -248.5v-1459h-172v1414q0 122 -18 200.5t-56 124t-97.5 63t-142.5 17.5t-142 -17.5t-97 -63t-56 -124t-18 -200.5v-1414h-172v1459z" />
+<glyph unicode="&#x22c3;" d="M617 -465q-131 0 -223 26.5t-150.5 87.5t-85.5 161.5t-27 248.5v1459h172v-1414q0 -122 18 -200.5t56 -124t97.5 -63t142.5 -17.5q82 0 141.5 17.5t97.5 63t56 124t18 200.5v1414h172v-1459q0 -148 -27 -248.5t-85.5 -161.5t-150.5 -87.5t-222 -26.5z" />
+<glyph unicode="&#x22c4;" d="M105 642l510 510l512 -512l-510 -510zM887 640l-272 272l-270 -270l272 -272z" />
+<glyph unicode="&#x22c5;" d="M519 559q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192v0z" />
+<glyph unicode="&#x22c6;" d="M482 666l-217 158h268l84 255l83 -255h268l-217 -158l84 -255l-218 158l-218 -158z" />
+<glyph unicode="&#x22cd;" d="M381 674q-75 0 -146.5 27t-146.5 87v175q75 -63 143 -93t137 -30q94 0 210 54l32 15q68 32 125 43t105 11q81 0 154 -27.5t151 -87.5v-174q-76 66 -146 94.5t-151 28.5q-31 0 -58 -4t-53 -11.5t-54 -18t-62 -24.5q-11 -5 -15.5 -6.5t-6 -2.5t-3.5 -1.5t-8 -3.5 q-54 -23 -102 -37t-105 -14zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x22ce;" d="M532 0q0 892 -540 1284h240q369 -295 384 -596q19 298 382 596h240q-540 -392 -540 -1284h-166v0z" />
+<glyph unicode="&#x22cf;" d="M-8 0q540 391 540 1284h166q0 -893 540 -1284h-240q-369 295 -384 596q-19 -298 -382 -596h-240v0z" />
+<glyph unicode="&#x22d0;" d="M738 -6q-90 0 -173 23t-155 65t-131 101t-101 131t-65 155t-23 173q0 89 23 172t64.5 155t100 131t130.5 101.5t155 65.5t173 23h407v-170h-406q-100 0 -187 -37.5t-151.5 -102t-101.5 -152t-37 -186.5q0 -100 37 -187t101.5 -151.5t151.5 -102t188 -37.5h405v-170h-405z M737 334q-64 0 -120 24t-97.5 65.5t-65.5 97.5t-24 121q0 64 24 120t65 98t97 66t121 24h406v-170h-405q-29 0 -54 -11t-44 -29.5t-29.5 -44t-10.5 -53.5q0 -29 10.5 -54t29.5 -44t44 -29.5t54 -10.5h405v-170h-406z" />
+<glyph unicode="&#x22d1;" d="M90 164h406q100 0 187 37.5t151.5 102.5t101.5 152t37 187q0 99 -37 186t-101.5 151.5t-152 102t-187.5 37.5h-405v170h405q90 0 173 -23t155 -65t131 -101t101 -131t65 -155t23 -173q0 -89 -23 -172t-64.5 -155t-100 -131t-130.5 -101.5t-155 -65.5t-173 -23h-407v170z M90 504h405q29 0 54 11t44 29.5t29.5 43.5t10.5 54t-10.5 54t-29.5 44t-44 29.5t-54 10.5h-405v170h406q64 0 120 -24t97.5 -65.5t65.5 -97.5t24 -121q0 -64 -24 -120t-65 -98t-97.5 -66t-120.5 -24h-406v170z" />
+<glyph unicode="&#x22da;" d="M88 1058v168l1057 331v-184l-801 -231l801 -234v-182zM88 640h1057v-170h-1057v170zM88 -263l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
+<glyph unicode="&#x22db;" d="M88 908l801 234l-801 231v184l1057 -331v-168l-1057 -332v182zM88 640h1057v-170h-1057v170zM88 -116v168l1057 332v-182l-803 -234l803 -231v-184z" />
+<glyph unicode="&#x22dc;" d="M86 1087h1057v-170h-1057v170zM86 331v168l1057 332v-182l-801 -234l801 -231v-184z" />
+<glyph unicode="&#x22dd;" d="M88 1087h1057v-170h-1057v170zM88 184l803 231l-803 234v182l1057 -332v-168l-1057 -331v184z" />
+<glyph unicode="&#x22de;" d="M86 842q106 16 189.5 36.5t153 46t129 56.5t117.5 69q59 39 123.5 88.5t127 103t118.5 109t99 106.5v-252q-102 -110 -210.5 -201t-235.5 -162t-277 -121.5t-334 -78.5v200zM1143 -252q-183 203 -443.5 340.5t-613.5 198.5v166q171 28 323.5 78.5t285 119t244.5 154.5 t204 187v-239q-292 -290 -695 -383q405 -80 695 -383v-239z" />
+<glyph unicode="&#x22df;" d="M1143 642q-184 28 -334 78.5t-277 121.5t-235.5 162t-210.5 201v252q43 -52 101 -108.5t121.5 -111t127 -103t117.5 -84.5q55 -36 114.5 -67t130 -57t155 -47t190.5 -37v-200zM86 -13q290 303 695 383q-403 93 -695 383v239q91 -101 203.5 -187t245 -154.5t285 -119 t323.5 -78.5v-166q-353 -61 -613.5 -198.5t-443.5 -340.5v239z" />
+<glyph unicode="&#x22e0;" d="M271 -321l186 590q-162 64 -371 94v200q250 -38 429 -109l51 163q-210 90 -480 135v166q89 15 174.5 36t162 45.5t141.5 51.5t112 53l52 29l140 444l162 -51l-77 -245q54 42 101 85.5t89 90.5v-239q-65 -68 -135 -124t-146 -102l-86 -274q201 -100 367 -266v-239 q-85 93 -190 174.5t-233 153.5l-51 -161l7 -4q58 -33 119.5 -75.5t122 -91t118 -101.5t107.5 -108v-252q-83 98 -203.5 204t-263.5 203l-27 18t-15 9.5t-10.5 6t-11.5 7.5l-179 -568zM653 892q-100 -36 -205 -57q45 -10 87 -22.5t84 -27.5z" />
+<glyph unicode="&#x22e1;" d="M208 -321l87 278q-119 -104 -209 -209v252q139 151 309 273l78 247q-232 -136 -387 -307v239q204 202 462 309l40 127q-283 100 -502 330v239q45 -50 98.5 -98.5t113.5 -93.5t124.5 -86t130.5 -75q19 -10 43.5 -22t46.5 -21l162 516l162 -51l-165 -525 q78 -26 162.5 -46.5t178.5 -36.5v-166q-257 -44 -459 -126l-68 -216q208 105 527 153v-200q-191 -29 -335 -80.5t-255 -127.5l-22 -15l-161 -512zM781 835l-29 6l-5 -14z" />
+<glyph unicode="&#x22e2;" d="M227 -102l89 221h-228v1044h646l114 284l158 -63l-89 -221h228v-170h-296l-282 -704h578v-170h-646l-114 -284zM384 289l282 704h-408v-704h126z" />
+<glyph unicode="&#x22e3;" d="M227 -102l89 221h-228v170h296l282 704h-578v170h646l114 284l158 -63l-89 -221h228v-1044h-646l-114 -284zM975 289v704h-126l-282 -704h408z" />
+<glyph unicode="&#x22e4;" d="M358 -88l82 102h-352v170h488l103 128h-591v956h1057v-170h-887v-616h887v-170h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
+<glyph unicode="&#x22e5;" d="M358 -88l82 102h-352v170h488l103 128h-591v170h887v616h-887v170h1057v-956h-302l32 -26l-82 -102h352v-170h-488l-167 -208z" />
+<glyph unicode="&#x22e6;" d="M467 -244l67 295q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 210l-532 167v168l1057 331v-184l-801 -231l801 -234v-182l-392 123l-50 -223q87 -34 161 -34q70 0 138 30t143 93v-175 q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
+<glyph unicode="&#x22e7;" d="M467 -244l67 295q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t154.5 27.5q60 0 105 -11t74 -23l48 212l-532 -167v182l801 234l-801 231v184l1057 -331v-168l-449 -141l69 -16l-62 -275q87 -34 161 -34q70 0 138 30t143 93 v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-62 -272z" />
+<glyph unicode="&#x22e8;" d="M1143 213q-92 100 -204 186.5t-244.5 155t-285 118.5t-323.5 79v166q353 61 613.5 198.5t443.5 340.5v-239q-290 -303 -695 -383q403 -93 695 -383v-239zM446 -406l88 387q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5 t153.5 27.5q57 0 104 -11t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
+<glyph unicode="&#x22e9;" d="M86 452q292 290 695 383q-405 80 -695 383v239q183 -203 443.5 -340.5t613.5 -198.5v-166q-343 -57 -607 -196t-450 -343v239zM446 -406l88 387q-17 6 -29 10t-23 6q-53 12 -103 12q-79 0 -149.5 -29.5t-143.5 -93.5v174q78 60 150.5 87.5t153.5 27.5q57 0 104 -11 t76 -23l78 343l136 -31l-83 -367q87 -34 161 -34q70 0 138 30t143 93v-175q-69 -55 -141 -84.5t-151 -29.5q-46 0 -90.5 10.5t-95.5 30.5l-83 -364z" />
+<glyph unicode="&#x22ef;" d="M110 490q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM519 490q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM929 490q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2304;" d="M146 428h163l307 -456l307 456h163l-470 -698z" />
+<glyph unicode="&#x2308;" d="M463 1556h424v-143h-240v-1683h-184v1826z" />
+<glyph unicode="&#x2309;" d="M586 1413h-240v143h424v-1826h-184v1683z" />
+<glyph unicode="&#x230a;" d="M463 1556h184v-1683h240v-143h-424v1826z" />
+<glyph unicode="&#x230b;" d="M346 -127h240v1683h184v-1826h-424v143z" />
+<glyph unicode="&#x2310;" d="M88 862h1057v-172h-889v-319h-168v491z" />
+<glyph unicode="&#x2320;" d="M513 776q0 36 3 165q7 263 33.5 445t73.5 292q48 112 122 167t169 55q88 0 137 -42t49 -108q0 -54 -32 -85t-89 -31q-44 0 -69.5 19t-38.5 54q-5 14 -6.5 25t-3.5 26q-3 22 -8.5 29t-14.5 7q-50 0 -80.5 -154.5t-38.5 -464.5l-8 -303v-1384h-198v1288z" />
+<glyph unicode="&#x2321;" d="M310 -486q-88 0 -137 42t-49 108q0 54 32 85t86 31q48 0 75.5 -22t36.5 -51q2 -8 5 -22t5 -29q3 -19 7 -27.5t15 -8.5q49 0 80 154.5t39 464.5l8 303v1387h198v-1291q0 -36 -3 -165q-7 -263 -33.5 -445t-73.5 -292q-48 -112 -122 -167t-169 -55z" />
+<glyph unicode="&#x239b;" d="M280 -294q0 306 22.5 565.5t61 477.5t89.5 397t108 323.5t116.5 257.5t114.5 199h160q-87 -175 -156 -334.5t-122 -319t-90.5 -325.5t-62 -354.5t-35.5 -406.5t-11 -480v-234h-195v234z" />
+<glyph unicode="&#x239c;" d="M280 1929h195v-2445h-195v2445z" />
+<glyph unicode="&#x239d;" d="M792 -492q-69 108 -134 236.5t-122 280.5t-104 329.5t-81 384.5t-52.5 445t-18.5 511v234h195v-234q0 -286 16.5 -521.5t47 -432.5t73.5 -363t96 -313.5t114.5 -283.5t129.5 -273h-160v0z" />
+<glyph unicode="&#x239e;" d="M758 -294q0 262 -11 480t-35.5 406.5t-62 354.5t-90.5 325.5t-122 319t-156 334.5h160q55 -86 114.5 -199t116.5 -257.5t108 -323.5t89.5 -397t61 -477.5t22.5 -565.5v-234h-195v234z" />
+<glyph unicode="&#x239f;" d="M758 1929h195v-2445h-195v2445z" />
+<glyph unicode="&#x23a0;" d="M281 -492q68 137 129.5 273t114.5 283.5t96 313.5t73.5 363t47 432.5t16.5 521.5v234h195v-234q0 -273 -18.5 -511t-52.5 -445t-81 -384.5t-104 -329.5t-122 -280.5t-134 -236.5h-160v0z" />
+<glyph unicode="&#x23a1;" d="M280 1901h672v-195h-477v-2222h-195v2417z" />
+<glyph unicode="&#x23a2;" d="M280 1929h195v-2445h-195v2445z" />
+<glyph unicode="&#x23a3;" d="M280 1929h195v-2226h477v-195h-672v2421z" />
+<glyph unicode="&#x23a4;" d="M757 1706h-477v195h672v-2417h-195v2222z" />
+<glyph unicode="&#x23a5;" d="M757 1914h195v-2430h-195v2430z" />
+<glyph unicode="&#x23a6;" d="M280 -297h477v2211h195v-2406h-672v195z" />
+<glyph unicode="&#x23a7;" d="M524 1375q0 111 30.5 207.5t85.5 167t132 111t170 40.5h275v-176h-281q-51 0 -92.5 -25t-71 -70t-46 -108t-16.5 -139v-1917h-186v1909z" />
+<glyph unicode="&#x23a8;" d="M524 8q0 147 -9 248.5t-29.5 168t-54.5 103.5t-83.5 55t-116 22t-153.5 6l-61 1v187h61q86 0 152.5 4.5t116.5 23t83.5 56.5t54.5 105t30 168t9 246v524h186v-536q0 -440 -101 -592q-19 -29 -44.5 -52.5t-55.5 -40.5q30 -16 56.5 -41.5t43.5 -51.5q49 -74 75 -218.5 t26 -373.5v-536h-186v524z" />
+<glyph unicode="&#x23a9;" d="M942 -492q-92 0 -168.5 40t-132 110.5t-86.5 166.5t-31 209v1892h186v-1900q0 -77 16.5 -140t46 -108t71 -69.5t92.5 -24.5h281v-176h-275v0z" />
+<glyph unicode="&#x23aa;" d="M524 1932h186v-2456h-186v2456z" />
+<glyph unicode="&#x23ab;" d="M523 1383q0 76 -16.5 139t-46 108t-71 70t-92.5 25h-281v176h275q93 0 170 -40.5t132 -111t85.5 -167t30.5 -207.5v-1909h-186v1917z" />
+<glyph unicode="&#x23ac;" d="M523 20q0 229 25.5 373.5t75.5 218.5q20 29 45.5 53t54.5 40q-32 17 -57 41.5t-43 51.5q-101 152 -101 592v536h186v-524q0 -145 9 -246t30 -168t54.5 -105t83.5 -56.5t116.5 -23t152.5 -4.5h61v-187l-61 -1q-87 -2 -153.5 -6t-116 -22t-83.5 -55t-54.5 -103.5 t-29.5 -168t-9 -248.5v-524h-186v536z" />
+<glyph unicode="&#x23ad;" d="M16 -316h281q51 0 92.5 24.5t71 69.5t46 108t16.5 140v1900h186v-1892q0 -113 -31 -209t-86.5 -166.5t-132 -110.5t-168.5 -40h-275v176z" />
+<glyph unicode="&#x23ae;" d="M513 1929h198v-2441h-198v2441z" />
+<glyph unicode="&#x2500;" d="M-20 790h1273v-172h-1273v172z" />
+<glyph unicode="&#x2501;" d="M-20 876h1273v-344h-1273v344z" />
+<glyph unicode="&#x2502;" d="M536 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2503;" d="M456 1921h320v-2433h-320v2433z" />
+<glyph unicode="&#x2504;" d="M60 790h291v-172h-291v172zM471 790h291v-172h-291v172zM882 790h291v-172h-291v172z" />
+<glyph unicode="&#x2505;" d="M60 876h291v-344h-291v344zM471 876h291v-344h-291v344zM882 876h291v-344h-291v344z" />
+<glyph unicode="&#x2506;" d="M536 1811h160v-618h-160v618zM536 1013h160v-618h-160v618zM536 215h160v-618h-160v618z" />
+<glyph unicode="&#x2507;" d="M456 1811h320v-618h-320v618zM456 1013h320v-618h-320v618zM456 215h320v-618h-320v618z" />
+<glyph unicode="&#x2508;" d="M60 790h188v-172h-188v172zM368 790h188v-172h-188v172zM676 790h188v-172h-188v172zM984 790h189v-172h-189v172z" />
+<glyph unicode="&#x2509;" d="M60 876h188v-344h-188v344zM368 876h188v-344h-188v344zM676 876h188v-344h-188v344zM984 876h189v-344h-189v344z" />
+<glyph unicode="&#x250a;" d="M536 1810h160v-418h-160v418zM536 1212h160v-418h-160v418zM536 614h160v-418h-160v418zM536 16h160v-418h-160v418z" />
+<glyph unicode="&#x250b;" d="M456 1810h320v-418h-320v418zM456 1212h320v-418h-320v418zM456 614h320v-418h-320v418zM456 16h320v-418h-320v418z" />
+<glyph unicode="&#x250c;" d="M536 790h717v-172h-557v-1130h-160v1302z" />
+<glyph unicode="&#x250d;" d="M536 876h717v-344h-557v-1044h-160v1388z" />
+<glyph unicode="&#x250e;" d="M456 790h797v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x250f;" d="M456 876h797v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2510;" d="M536 618h-556v172h716v-1302h-160v1130z" />
+<glyph unicode="&#x2511;" d="M536 532h-556v344h716v-1388h-160v1044z" />
+<glyph unicode="&#x2512;" d="M456 618h-476v172h796v-1302h-320v1130z" />
+<glyph unicode="&#x2513;" d="M456 532h-476v344h796v-1388h-320v1044z" />
+<glyph unicode="&#x2514;" d="M536 1921h160v-1131h557v-172h-717v1303z" />
+<glyph unicode="&#x2515;" d="M536 1921h160v-1045h557v-344h-717v1389z" />
+<glyph unicode="&#x2516;" d="M456 1921h320v-1131h477v-172h-797v1303z" />
+<glyph unicode="&#x2517;" d="M456 1921h320v-1045h477v-344h-797v1389z" />
+<glyph unicode="&#x2518;" d="M-20 790h556v1131h160v-1303h-716v172z" />
+<glyph unicode="&#x2519;" d="M-20 876h556v1045h160v-1389h-716v344z" />
+<glyph unicode="&#x251a;" d="M-20 790h476v1131h320v-1303h-796v172z" />
+<glyph unicode="&#x251b;" d="M-20 876h476v1045h320v-1389h-796v344z" />
+<glyph unicode="&#x251c;" d="M536 1921h160v-1131h557v-172h-557v-1130h-160v2433z" />
+<glyph unicode="&#x251d;" d="M536 1921h160v-1045h557v-344h-557v-1044h-160v2433z" />
+<glyph unicode="&#x251e;" d="M536 618h-80v1303h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x251f;" d="M456 790h80v1131h160v-1131h557v-172h-477v-1130h-320v1302z" />
+<glyph unicode="&#x2520;" d="M456 1921h320v-1131h477v-172h-477v-1130h-320v2433z" />
+<glyph unicode="&#x2521;" d="M536 532h-80v1389h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2522;" d="M456 876h80v1045h160v-1045h557v-344h-477v-1044h-320v1388z" />
+<glyph unicode="&#x2523;" d="M456 1921h320v-1045h477v-344h-477v-1044h-320v2433z" />
+<glyph unicode="&#x2524;" d="M536 618h-556v172h556v1131h160v-2433h-160v1130z" />
+<glyph unicode="&#x2525;" d="M536 532h-556v344h556v1045h160v-2433h-160v1044z" />
+<glyph unicode="&#x2526;" d="M536 618h-556v172h476v1131h320v-1303h-80v-1130h-160v1130z" />
+<glyph unicode="&#x2527;" d="M456 618h-476v172h556v1131h160v-1131h80v-1302h-320v1130z" />
+<glyph unicode="&#x2528;" d="M456 618h-476v172h476v1131h320v-2433h-320v1130z" />
+<glyph unicode="&#x2529;" d="M536 532h-556v344h476v1045h320v-1389h-80v-1044h-160v1044z" />
+<glyph unicode="&#x252a;" d="M456 532h-476v344h556v1045h160v-1045h80v-1388h-320v1044z" />
+<glyph unicode="&#x252b;" d="M456 532h-476v344h476v1045h320v-2433h-320v1044z" />
+<glyph unicode="&#x252c;" d="M536 618h-556v172h1273v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x252d;" d="M536 532h-556v344h716v-86h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x252e;" d="M536 618h-556v172h556v86h717v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x252f;" d="M536 532h-556v344h1273v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2530;" d="M456 618h-476v172h1273v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2531;" d="M456 532h-476v344h796v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2532;" d="M456 618h-476v172h476v86h797v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2533;" d="M456 532h-476v344h1273v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2534;" d="M-20 790h556v1131h160v-1131h557v-172h-1273v172z" />
+<glyph unicode="&#x2535;" d="M-20 876h556v1045h160v-1131h557v-172h-557v-86h-716v344z" />
+<glyph unicode="&#x2536;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-717v86z" />
+<glyph unicode="&#x2537;" d="M-20 876h556v1045h160v-1045h557v-344h-1273v344z" />
+<glyph unicode="&#x2538;" d="M-20 790h476v1131h320v-1131h477v-172h-1273v172z" />
+<glyph unicode="&#x2539;" d="M-20 876h476v1045h320v-1131h477v-172h-477v-86h-796v344z" />
+<glyph unicode="&#x253a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-797v86z" />
+<glyph unicode="&#x253b;" d="M-20 876h476v1045h320v-1045h477v-344h-1273v344z" />
+<glyph unicode="&#x253c;" d="M536 618h-556v172h556v1131h160v-1131h557v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x253d;" d="M536 532h-556v344h556v1045h160v-1131h557v-172h-557v-1130h-160v1044z" />
+<glyph unicode="&#x253e;" d="M536 618h-556v172h556v1131h160v-1045h557v-344h-557v-1044h-160v1130z" />
+<glyph unicode="&#x253f;" d="M536 532h-556v344h556v1045h160v-1045h557v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2540;" d="M536 618h-556v172h476v1131h320v-1131h477v-172h-557v-1130h-160v1130z" />
+<glyph unicode="&#x2541;" d="M456 618h-476v172h556v1131h160v-1131h557v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2542;" d="M456 618h-476v172h476v1131h320v-1131h477v-172h-477v-1130h-320v1130z" />
+<glyph unicode="&#x2543;" d="M536 532h-556v344h476v1045h320v-1131h477v-172h-477v-86h-80v-1044h-160v1044z" />
+<glyph unicode="&#x2544;" d="M536 532h-80v86h-476v172h476v1131h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2545;" d="M456 532h-476v344h556v1045h160v-1045h80v-86h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x2546;" d="M456 618h-476v172h476v86h80v1045h160v-1045h557v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x2547;" d="M536 532h-556v344h476v1045h320v-1045h477v-344h-557v-1044h-160v1044z" />
+<glyph unicode="&#x2548;" d="M456 532h-476v344h556v1045h160v-1045h557v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x2549;" d="M456 532h-476v344h476v1045h320v-1131h477v-172h-477v-1130h-320v1044z" />
+<glyph unicode="&#x254a;" d="M456 618h-476v172h476v1131h320v-1045h477v-344h-477v-1044h-320v1130z" />
+<glyph unicode="&#x254b;" d="M456 532h-476v344h476v1045h320v-1045h477v-344h-477v-1044h-320v1044z" />
+<glyph unicode="&#x254c;" d="M60 790h496v-172h-496v172zM677 790h496v-172h-496v172z" />
+<glyph unicode="&#x254d;" d="M60 876h496v-344h-496v344zM677 876h496v-344h-496v344z" />
+<glyph unicode="&#x254e;" d="M536 1729h160v-853h-160v853zM536 532h160v-852h-160v852z" />
+<glyph unicode="&#x254f;" d="M456 1729h320v-853h-320v853zM456 532h320v-852h-320v852z" />
+<glyph unicode="&#x2550;" d="M-20 962h1273v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2551;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2552;" d="M536 962h717v-172h-557v-172h557v-172h-557v-958h-160v1474z" />
+<glyph unicode="&#x2553;" d="M376 790h877v-172h-397v-1130h-160v1130h-160v-1130h-160v1302z" />
+<glyph unicode="&#x2554;" d="M376 962h877v-172h-717v-1302h-160v1474zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2555;" d="M536 446h-556v172h556v172h-556v172h716v-1474h-160v958z" />
+<glyph unicode="&#x2556;" d="M376 618h-396v172h876v-1302h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2557;" d="M696 790h-716v172h876v-1474h-160v1302zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2558;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-717v1475z" />
+<glyph unicode="&#x2559;" d="M376 1921h160v-1131h160v1131h160v-1131h397v-172h-877v1303z" />
+<glyph unicode="&#x255a;" d="M376 1921h160v-1303h717v-172h-877v1475zM696 1921h160v-959h397v-172h-557v1131z" />
+<glyph unicode="&#x255b;" d="M-20 618h556v172h-556v172h556v959h160v-1475h-716v172z" />
+<glyph unicode="&#x255c;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1303h-876v172z" />
+<glyph unicode="&#x255d;" d="M-20 618h716v1303h160v-1475h-876v172zM-20 962h396v959h160v-1131h-556v172z" />
+<glyph unicode="&#x255e;" d="M536 1921h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v2433z" />
+<glyph unicode="&#x255f;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-1131h397v-172h-397v-1130h-160v2433z" />
+<glyph unicode="&#x2560;" d="M376 1921h160v-2433h-160v2433zM696 1921h160v-959h397v-172h-557v1131zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2561;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-2433h-160v958z" />
+<glyph unicode="&#x2562;" d="M376 618h-396v172h396v1131h160v-2433h-160v1130zM696 1921h160v-2433h-160v2433z" />
+<glyph unicode="&#x2563;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-2433h-160v2433zM376 446h-396v172h556v-1130h-160v958z" />
+<glyph unicode="&#x2564;" d="M-20 962h1273v-172h-1273v172zM536 446h-556v172h1273v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x2565;" d="M376 618h-396v172h1273v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x2566;" d="M-20 962h1273v-172h-1273v172zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x2567;" d="M-20 962h556v959h160v-959h557v-172h-1273v172zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x2568;" d="M-20 790h396v1131h160v-1131h160v1131h160v-1131h397v-172h-1273v172z" />
+<glyph unicode="&#x2569;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM-20 618h1273v-172h-1273v172z" />
+<glyph unicode="&#x256a;" d="M536 446h-556v172h556v172h-556v172h556v959h160v-959h557v-172h-557v-172h557v-172h-557v-958h-160v958z" />
+<glyph unicode="&#x256b;" d="M376 618h-396v172h396v1131h160v-1131h160v1131h160v-1131h397v-172h-397v-1130h-160v1130h-160v-1130h-160v1130z" />
+<glyph unicode="&#x256c;" d="M-20 962h396v959h160v-1131h-556v172zM696 1921h160v-959h397v-172h-557v1131zM376 446h-396v172h556v-1130h-160v958zM696 618h557v-172h-397v-958h-160v1130z" />
+<glyph unicode="&#x256d;" d="M536 368q0 82 21 158.5t63.5 135t106.5 93.5t149 35h377v-172h-377q-180 0 -180 -250v-880h-160v880z" />
+<glyph unicode="&#x256e;" d="M536 368q0 250 -180 250h-376v172h376q84 0 147.5 -34.5t106.5 -92.5t64.5 -134.5t21.5 -160.5v-880h-160v880z" />
+<glyph unicode="&#x256f;" d="M-20 790h376q180 0 180 250v881h160v-881q0 -84 -21.5 -160.5t-64.5 -134.5t-106.5 -92.5t-147.5 -34.5h-376v172z" />
+<glyph unicode="&#x2570;" d="M876 618q-84 0 -147.5 34.5t-106.5 92.5t-64.5 134.5t-21.5 160.5v881h160v-881q0 -250 180 -250h377v-172h-377v0z" />
+<glyph unicode="&#x2571;" d="M1144 1901h178l-1233 -2393h-178z" />
+<glyph unicode="&#x2572;" d="M-89 1901h178l1233 -2393h-178z" />
+<glyph unicode="&#x2573;" d="M528 704l-617 1197h178l527 -1024l528 1024h178l-616 -1197l616 -1196h-178l-528 1024l-527 -1024h-178z" />
+<glyph unicode="&#x2574;" d="M-20 790h636v-172h-636v172z" />
+<glyph unicode="&#x2575;" d="M536 1921h160v-1217h-160v1217z" />
+<glyph unicode="&#x2576;" d="M616 790h637v-172h-637v172z" />
+<glyph unicode="&#x2577;" d="M536 704h160v-1216h-160v1216z" />
+<glyph unicode="&#x2578;" d="M-20 532v344l636 -1v-344z" />
+<glyph unicode="&#x2579;" d="M456 1921h320v-1217h-320v1217z" />
+<glyph unicode="&#x257a;" d="M616 876h637v-344h-637v344z" />
+<glyph unicode="&#x257b;" d="M456 704h320v-1216h-320v1216z" />
+<glyph unicode="&#x257c;" d="M636 618h-656v172h656v86h617v-344h-617v86z" />
+<glyph unicode="&#x257d;" d="M456 704h80v1217h160v-1217h80v-1216h-320v1216z" />
+<glyph unicode="&#x257e;" d="M-20 876h656v-86h617v-172h-617v-86h-656v344z" />
+<glyph unicode="&#x257f;" d="M536 704h-80v1217h320v-1217h-80v-1216h-160v1216z" />
+<glyph unicode="&#x2580;" d="M-20 1920h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2581;" d="M-20 -193h1273v-319h-1273v319z" />
+<glyph unicode="&#x2582;" d="M-20 106h1273v-618h-1273v618z" />
+<glyph unicode="&#x2583;" d="M-20 405h1273v-917h-1273v917z" />
+<glyph unicode="&#x2584;" d="M-20 704h1273v-1216h-1273v1216z" />
+<glyph unicode="&#x2585;" d="M-20 1004h1273v-1516h-1273v1516z" />
+<glyph unicode="&#x2586;" d="M-20 1303h1273v-1815h-1273v1815z" />
+<glyph unicode="&#x2587;" d="M-20 1602h1273v-2114h-1273v2114z" />
+<glyph unicode="&#x2588;" d="M358 1125h517v-1135h-517v1135z" />
+<glyph unicode="&#x2589;" d="M-20 1921h1114v-2433h-1114v2433z" />
+<glyph unicode="&#x258a;" d="M-20 1921h954v-2433h-954v2433z" />
+<glyph unicode="&#x258b;" d="M-20 1921h795v-2433h-795v2433z" />
+<glyph unicode="&#x258c;" d="M-20 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x258d;" d="M-20 1921h477v-2433h-477v2433z" />
+<glyph unicode="&#x258e;" d="M-20 1921h318v-2433h-318v2433z" />
+<glyph unicode="&#x258f;" d="M-20 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2590;" d="M617 1921h636v-2433h-636v2433z" />
+<glyph unicode="&#x2591;" d="M0 1901h154v-221h-154v221zM617 1901h154v-221h-154v221zM309 1591h154v-221h-154v221zM925 1591h155v-221h-155v221zM0 1280h154v-221h-154v221zM617 1280h154v-221h-154v221zM309 971h154v-222h-154v222zM925 971h155v-222h-155v222zM0 660h154v-222h-154v222zM617 660 h154v-222h-154v222zM309 350h154v-221h-154v221zM925 350h155v-221h-155v221zM0 39h154v-221h-154v221zM617 39h154v-221h-154v221zM309 -271h154v-221h-154v221zM925 -271h155v-221h-155v221z" />
+<glyph unicode="&#x2592;" d="M0 1900h204v-239h-204v239zM412 1900h205v-239h-205v239zM822 1900h206v-239h-206v239zM204 1661h208v-239h-208v239zM617 1661h205v-239h-205v239zM1028 1661h205v-239h-205v239zM0 1422h204v-239h-204v239zM412 1422h205v-239h-205v239zM822 1422h206v-239h-206v239z M204 1183h208v-240h-208v240zM617 1183h205v-240h-205v240zM1028 1183h205v-240h-205v240zM0 943h204v-239h-204v239zM412 943h205v-239h-205v239zM822 943h206v-239h-206v239zM204 704h208v-239h-208v239zM617 704h205v-239h-205v239zM1028 704h205v-239h-205v239zM0 465 h204v-239h-204v239zM412 465h205v-239h-205v239zM822 465h206v-239h-206v239zM204 226h208v-240h-208v240zM617 226h205v-240h-205v240zM1028 226h205v-240h-205v240zM0 -14h204v-239h-204v239zM412 -14h205v-239h-205v239zM822 -14h206v-239h-206v239zM204 -253h208v-239 h-208v239zM617 -253h205v-239h-205v239zM1028 -253h205v-239h-205v239z" />
+<glyph unicode="&#x2593;" d="M0 -182h153v221h-153v399h153v222h-153v399h153v221h-153v400h153v221h463v-221h154v221h463v-2393h-154v221h-155v-221h-462v221h-154v-221h-308v310zM462 1370v221h-154v-221h154zM1079 1370v221h-155v-221h155zM770 1059v221h-154v-221h154zM462 749v222h-154v-222 h154zM1079 749v222h-155v-222h155zM770 438v222h-154v-222h154zM462 129v221h-154v-221h154zM1079 129v221h-155v-221h155zM770 -182v221h-154v-221h154z" />
+<glyph unicode="&#x2594;" d="M-20 1921h1273v-319h-1273v319z" />
+<glyph unicode="&#x2595;" d="M1094 1921h158v-2433h-158v2433z" />
+<glyph unicode="&#x2596;" d="M-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2597;" d="M617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x2598;" d="M-20 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x2599;" d="M-20 1920h637v-1216h637v-1216h-1274v2432z" />
+<glyph unicode="&#x259a;" d="M-20 1920h637v-1216h-637v1216zM617 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259b;" d="M-20 1920h1274v-1216h-637v-1216h-637v2432z" />
+<glyph unicode="&#x259c;" d="M617 704h-637v1216h1274v-2432h-637v1216z" />
+<glyph unicode="&#x259d;" d="M617 1920h637v-1216h-637v1216z" />
+<glyph unicode="&#x259e;" d="M617 1920h637v-1216h-637v1216zM-20 704h637v-1216h-637v1216z" />
+<glyph unicode="&#x259f;" d="M-20 704h637v1216h637v-2432h-1274v1216z" />
+<glyph unicode="&#x25a0;" d="M6 1142h1221v-1220h-1221v1220z" />
+<glyph unicode="&#x25a1;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993z" />
+<glyph unicode="&#x25a2;" d="M348 -78q-342 0 -342 342v536q0 342 342 342h537q342 0 342 -342v-536q0 -342 -342 -342h-537zM885 36q228 0 228 228v536q0 228 -228 228h-537q-228 0 -228 -228v-536q0 -228 228 -228h537z" />
+<glyph unicode="&#x25a3;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v992h-993v-992h993zM219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25a4;" d="M6 1142h1221v-1220h-1221v1220zM1113 922v106h-993v-106h993zM1113 701v107h-993v-107h993zM1113 480v107h-993v-107h993zM1113 260v106h-993v-106h993zM1113 36v110h-993v-110h993z" />
+<glyph unicode="&#x25a5;" d="M6 1142h1221v-1220h-1221v1220zM226 36v992h-106v-992h106zM448 36v992h-108v-992h108zM668 36v992h-106v-992h106zM888 36v992h-106v-992h106zM1112 36v992h-110v-992h110z" />
+<glyph unicode="&#x25a6;" d="M6 1142h1221v-1220h-1221v1220zM226 922v106h-106v-106h106zM448 922v106h-108v-106h108zM668 922v106h-106v-106h106zM888 922v106h-106v-106h106zM1112 922v106h-110v-106h110zM226 701v107h-106v-107h106zM448 701v107h-108v-107h108zM668 701v107h-106v-107h106z M888 701v107h-106v-107h106zM1112 701v107h-110v-107h110zM226 480v107h-106v-107h106zM448 480v107h-108v-107h108zM668 480v107h-106v-107h106zM888 480v107h-106v-107h106zM1112 480v107h-110v-107h110zM226 260v106h-106v-106h106zM448 260v106h-108v-106h108zM668 260 v106h-106v-106h106zM888 260v106h-106v-106h106zM1112 260v106h-110v-106h110zM226 36v110h-106v-110h106zM448 36v110h-108v-110h108zM668 36v110h-106v-110h106zM888 36v110h-106v-110h106zM1112 36v110h-110v-110h110z" />
+<glyph unicode="&#x25a7;" d="M6 1142h1221v-1220h-1221v1220zM1113 36v76l-916 916h-77v-74l919 -918h74zM1113 425l-604 603h-151l755 -754v151zM1113 725l-304 303h-138l442 -442v139zM1113 1028h-142l142 -142v142zM877 36l-757 757v-150l608 -608zM566 36l-446 446v-139l308 -307h138zM266 36 l-146 146v-146h146z" />
+<glyph unicode="&#x25a8;" d="M6 1142h1221v-1220h-1221v1220zM562 1028h-138l-304 -303v-139zM262 1028h-142v-142zM875 1028h-151l-604 -603v-151zM194 36l919 918v74h-77l-916 -916v-76h74zM1113 643v150l-757 -757l149 -1zM805 36l308 307v139l-446 -446h138zM1113 36v146l-146 -146h146z" />
+<glyph unicode="&#x25a9;" d="M6 1142h1221v-1220h-1221v1220zM230 996l-33 32h-77v-74l34 -34zM536 1002l-27 26h-85l-33 -33l69 -69zM842 995l-33 33h-85l-27 -26l76 -76zM1113 954v74h-77l-32 -32l75 -76zM692 845l-76 76l-75 -76l75 -75zM380 846l-70 69l-75 -76l69 -69zM998 839l-75 76l-69 -69 l75 -76zM536 689l-76 76l-75 -76l75 -75zM848 689l-75 76l-76 -76l76 -75zM224 690l-70 69l-34 -34v-82l28 -29zM1113 643v82l-34 34l-69 -69l74 -76zM380 533l-76 76l-75 -75l76 -76zM1004 534l-75 75l-76 -76l75 -75zM692 533l-76 75l-75 -75l75 -75zM224 378l-75 75 l-29 -28v-82l35 -34zM1113 343v82l-29 28l-75 -75l69 -69zM536 377l-76 75l-74 -74l75 -76zM848 378l-76 74l-75 -75l75 -75zM380 222l-75 75l-69 -69l75 -75zM997 228l-69 69l-75 -75l69 -69zM692 222l-76 74l-74 -74l74 -76zM194 36l36 36l-75 75l-35 -35v-76h74zM1113 36 v76l-35 35l-75 -75l36 -36h74zM506 36l30 30l-75 75l-69 -69l36 -36h78zM805 36l36 36l-69 69l-75 -75l30 -30h78z" />
+<glyph unicode="&#x25aa;" d="M219 929h794v-794h-794v794z" />
+<glyph unicode="&#x25ab;" d="M219 929h794v-794h-794v794zM899 249v566h-566v-566h566z" />
+<glyph unicode="&#x25ac;" d="M6 824h1221v-584h-1221v584z" />
+<glyph unicode="&#x25ad;" d="M6 824h1221v-584h-1221v584zM1113 354v356h-993v-356h993z" />
+<glyph unicode="&#x25ae;" d="M324 1142h584v-1220h-584v1220z" />
+<glyph unicode="&#x25af;" d="M324 1142h584v-1220h-584v1220zM794 36v992h-356v-992h356z" />
+<glyph unicode="&#x25b0;" d="M314 824h913l-308 -584h-913z" />
+<glyph unicode="&#x25b1;" d="M314 824h913l-308 -584h-913zM865 354l188 356h-685l-188 -356h685z" />
+<glyph unicode="&#x25b2;" d="M616 1142l611 -1220h-1221z" />
+<glyph unicode="&#x25b3;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879z" />
+<glyph unicode="&#x25b4;" d="M616 929l397 -794h-794z" />
+<glyph unicode="&#x25b5;" d="M616 929l397 -794h-794zM842 249l-226 452l-226 -452h452z" />
+<glyph unicode="&#x25b6;" d="M6 1142l1221 -610l-1221 -610v1220z" />
+<glyph unicode="&#x25b7;" d="M6 1142l1221 -610l-1221 -610v1220zM999 532l-879 440v-880z" />
+<glyph unicode="&#x25b8;" d="M219 929l794 -397l-794 -397v794z" />
+<glyph unicode="&#x25b9;" d="M219 929l794 -397l-794 -397v794zM785 532l-452 226v-452z" />
+<glyph unicode="&#x25ba;" d="M6 929l1221 -397l-1221 -397v794z" />
+<glyph unicode="&#x25bb;" d="M6 929l1221 -397l-1221 -397v794zM942 532l-822 226v-452z" />
+<glyph unicode="&#x25bc;" d="M6 1142h1221l-611 -1220z" />
+<glyph unicode="&#x25bd;" d="M6 1142h1221l-611 -1220zM1021 1013h-809l404 -808z" />
+<glyph unicode="&#x25be;" d="M219 929h794l-397 -794z" />
+<glyph unicode="&#x25bf;" d="M219 929h794l-397 -794zM842 815h-452l226 -452z" />
+<glyph unicode="&#x25c0;" d="M6 532l1221 610v-1220z" />
+<glyph unicode="&#x25c1;" d="M6 532l1221 610v-1220zM1113 972l-879 -440l879 -440v880z" />
+<glyph unicode="&#x25c2;" d="M219 532l794 397v-794z" />
+<glyph unicode="&#x25c3;" d="M219 532l794 397v-794zM899 758l-452 -226l452 -226v452z" />
+<glyph unicode="&#x25c4;" d="M6 532l1221 397v-794z" />
+<glyph unicode="&#x25c5;" d="M6 532l1221 397v-794zM1113 758l-822 -226l822 -226v452z" />
+<glyph unicode="&#x25c6;" d="M6 532l610 610l611 -610l-611 -610z" />
+<glyph unicode="&#x25c7;" d="M6 532l610 610l611 -610l-611 -610zM1038 532l-422 422l-421 -422l421 -422z" />
+<glyph unicode="&#x25c8;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458l458 -458zM250 532l366 366l366 -366l-366 -366z" />
+<glyph unicode="&#x25c9;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 132 q-46 0 -97 14t-101 42q-100 57 -149 145.5t-49 198.5t49 198.5t149 145.5q50 28 101 42t97 14q45 0 96.5 -14t102.5 -42q92 -51 145 -138.5t53 -205.5t-53 -205.5t-145 -138.5q-51 -28 -102.5 -42t-96.5 -14z" />
+<glyph unicode="&#x25ca;" d="M117 592l499 1061l500 -1061l-500 -1069zM1001 592l-385 817l-385 -817l385 -825z" />
+<glyph unicode="&#x25cb;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25cc;" d="M466 1127q75 21 150 21t150 -21l-30 -119q-62 17 -120 17t-120 -17zM111 885q42 58 93.5 100.5t106.5 74.5l61 -106q-45 -25 -85.5 -58.5t-74.5 -81.5zM1020 814q-34 48 -74.5 81.5t-85.5 58.5l61 106q55 -32 106.5 -74.5t93.5 -100.5zM22 382q-16 68 -16 150t16 150 l119 -30q-13 -55 -13 -120t13 -120zM1092 412q13 55 13 120t-13 120l119 30q16 -68 16 -150t-16 -150zM311 4q-55 32 -106.5 74.5t-93.5 100.5l101 71q34 -48 74.5 -81.5t85.5 -58.5zM860 110q45 25 83 57t77 83l101 -70q-49 -65 -97 -104.5t-103 -71.5zM616 -84 q-75 0 -150 21l30 119q62 -17 120 -17t120 17l30 -119q-75 -21 -150 -21z" />
+<glyph unicode="&#x25cd;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q26 0 52 3v980q-26 3 -52 3q-14 0 -27 -1t-27 -3v-978q14 -2 27 -3t27 -1zM782 72q21 8 39 17t39 21q9 5 12 7t5 3t3.5 2.5t7.5 4.5v810q-7 6 -28 17q-29 16 -43.5 23t-34.5 15v-920zM448 991q-19 -8 -38 -17t-38 -20 q-8 -5 -16 -9.5t-16 -9.5v-806q8 -5 16 -9.5t16 -9.5q19 -11 38 -20t38 -17v918zM1002 226q103 124 103 306t-103 306v-612zM226 832q-98 -122 -98 -300t98 -300v600z" />
+<glyph unicode="&#x25ce;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5t-120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5zM616 286 q-27 0 -59 8.5t-64 26.5q-59 33 -90 87.5t-31 123.5t31 123.5t90 87.5q32 18 64 26.5t59 8.5q29 0 61.5 -9t61.5 -26q55 -31 88.5 -83.5t33.5 -127.5t-33.5 -127.5t-88.5 -83.5q-29 -17 -61.5 -26t-61.5 -9zM616 396q18 0 36 6t32 14q67 40 67 116t-67 116q-14 8 -32 14 t-36 6q-32 0 -67 -20q-67 -39 -67 -116t67 -116q35 -20 67 -20z" />
+<glyph unicode="&#x25cf;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5z" />
+<glyph unicode="&#x25d0;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246t-62 246t-182 177q-62 35 -125 52.5t-120 17.5v-986z" />
+<glyph unicode="&#x25d1;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 1025q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5t61.5 -248.5t182.5 -173.5q122 -71 244 -71v986z" />
+<glyph unicode="&#x25d2;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM1105 532q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h977z" />
+<glyph unicode="&#x25d3;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-977q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25d4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q57 0 120 17.5t125 52.5q120 68 182 177t62 246h-489v493q-57 0 -120 -17.5t-125 -52.5q-116 -66 -179.5 -173t-63.5 -250t63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5z" />
+<glyph unicode="&#x25d5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 532v493q-122 0 -244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h488z" />
+<glyph unicode="&#x25d6;" d="M922 -84q-71 0 -150.5 21.5t-155.5 64.5q-151 85 -227.5 221.5t-76.5 308.5t76.5 308.5t227.5 221.5q76 43 155.5 64.5t150.5 21.5v-1232v0z" />
+<glyph unicode="&#x25d7;" d="M312 1148q150 0 304 -88q157 -90 231.5 -223t74.5 -306q0 -178 -75.5 -306.5t-230.5 -218.5t-304 -90v1232z" />
+<glyph unicode="&#x25d8;" d="M-20 1576h1273v-1596h-1273v1596zM614 465q63 0 117.5 23t95 63.5t63.5 94.5t23 116q0 61 -23 115t-63.5 94t-94.5 63t-117 23q-62 0 -116 -23t-94 -63t-63 -94t-23 -116t23 -116t62.5 -94t93.5 -63t116 -23z" />
+<glyph unicode="&#x25d9;" d="M-20 1576h1273v-2088h-1273v2088zM617 -84q70 0 148.5 21.5t156.5 65.5q146 82 225.5 215.5t79.5 313.5t-79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5t20.5 -165.5 t59.5 -146t95.5 -123t128.5 -95.5q77 -43 157 -64.5t150 -21.5zM616 39q-57 0 -120 17.5t-125 52.5q-116 66 -179.5 173t-63.5 250t63.5 250t179.5 173q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5q120 -68 182 -177t62 -246t-62 -246t-182 -177q-62 -35 -125 -52.5 t-120 -17.5z" />
+<glyph unicode="&#x25da;" d="M-20 1576h1273v-1044h-26q0 180 -79.5 313.5t-225.5 215.5q-78 44 -156.5 65.5t-148.5 21.5t-150 -21.5t-157 -64.5q-72 -41 -128.5 -96t-95.5 -122.5t-59.5 -146t-20.5 -165.5h-26v1044zM128 532q0 146 65.5 253t177.5 170q62 35 125 52.5t120 17.5t120 -17.5t125 -52.5 q120 -68 182 -177t62 -246h-977z" />
+<glyph unicode="&#x25db;" d="M-20 532h26q0 -179 76.5 -309.5t228.5 -218.5q79 -46 154.5 -67t149.5 -21q154 0 306 88q153 88 229.5 218.5t76.5 309.5h26v-1044h-1273v1044zM616 39q-122 0 -244 71q-244 141 -244 422h977q0 -281 -245 -422q-122 -71 -244 -71z" />
+<glyph unicode="&#x25dc;" d="M311 532q0 179 76.5 309.5t228.5 218.5q75 44 150.5 66t154.5 22l1 -123q-122 0 -244 -71q-118 -68 -181 -171t-63 -251h-123v0z" />
+<glyph unicode="&#x25dd;" d="M799 532q0 281 -244 422q-124 71 -243 71v123q77 0 156.5 -24t148.5 -63q143 -81 224 -214t81 -315h-123v0z" />
+<glyph unicode="&#x25de;" d="M312 39q119 0 243 71q244 141 244 422h123q0 -181 -76.5 -309t-229.5 -217q-155 -90 -304 -90v123z" />
+<glyph unicode="&#x25df;" d="M921 -84q-79 0 -154.5 22t-150.5 66q-152 88 -228.5 218.5t-76.5 309.5h123q0 -148 63 -251t181 -171q122 -71 244 -71l-1 -123v0z" />
+<glyph unicode="&#x25e0;" d="M6 532q0 179 76.5 309.5t228.5 218.5q79 46 154.5 67t149.5 21q154 0 306 -88q153 -88 229.5 -218.5t76.5 -309.5h-122q0 281 -245 422q-122 71 -244 71t-244 -71q-121 -70 -182.5 -173.5t-61.5 -248.5h-122v0z" />
+<glyph unicode="&#x25e1;" d="M615 -84q-74 0 -149.5 21t-154.5 67q-152 88 -228.5 218.5t-76.5 309.5h122q0 -143 63.5 -250t179.5 -173q62 -35 125 -52.5t120 -17.5t120 17.5t125 52.5q120 68 182 177t62 246h122q0 -179 -76.5 -309.5t-229.5 -218.5q-152 -88 -306 -88z" />
+<glyph unicode="&#x25e2;" d="M1227 1142v-1220h-1221z" />
+<glyph unicode="&#x25e3;" d="M6 1142l1221 -1220h-1221v1220z" />
+<glyph unicode="&#x25e4;" d="M6 1142h1221l-1221 -1220v1220z" />
+<glyph unicode="&#x25e5;" d="M6 1142h1221v-1220z" />
+<glyph unicode="&#x25e6;" d="M614 465q-62 0 -116 23t-93.5 63t-62.5 94t-23 116t23 116t63 94t94 63t116 23q63 0 117 -23t94.5 -63t63.5 -94t23 -115q0 -62 -23 -116t-63.5 -94.5t-95 -63.5t-117.5 -23zM614 524q50 0 93.5 18.5t76 51t51.5 75.5t19 93q0 49 -18.5 92t-51 75t-76 50.5t-93.5 18.5 t-93 -18.5t-75 -50.5t-50.5 -75t-18.5 -93t18.5 -93t50 -75t74.5 -50.5t93 -18.5z" />
+<glyph unicode="&#x25e7;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e8;" d="M6 1142h1221v-1220h-1221v1220zM616 36v992h-496v-992h496z" />
+<glyph unicode="&#x25e9;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992l-992 -992h992z" />
+<glyph unicode="&#x25ea;" d="M6 1142h1221v-1220h-1221v1220zM1113 1028h-993v-992z" />
+<glyph unicode="&#x25eb;" d="M6 1142h1221v-1220h-1221v1220zM559 36v992h-439v-992h439zM1112 36v992h-439v-992h439z" />
+<glyph unicode="&#x25ec;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878l-439 -878h879zM615 229q-28 0 -52.5 10t-42.5 28t-28 42.5t-10 52.5t10.5 52.5t28.5 42.5t42.5 28t52.5 10t52.5 -10t42.5 -28t28.5 -42.5t10.5 -52.5q0 -27 -10.5 -51.5t-29 -42.5t-43 -28.5t-52.5 -10.5z" />
+<glyph unicode="&#x25ed;" d="M616 1142l611 -1220h-1221zM1056 36l-440 878v-878h440z" />
+<glyph unicode="&#x25ee;" d="M616 1142l611 -1220h-1221zM616 36v878l-439 -878h439z" />
+<glyph unicode="&#x25ef;" d="M615 -110q-78 0 -156.5 21.5t-160.5 69.5q-155 90 -236.5 226t-81.5 325t81.5 325t236.5 226q82 48 160.5 69.5t156.5 21.5q161 0 319 -91q156 -90 237.5 -226t81.5 -325t-81.5 -325t-237.5 -226q-158 -91 -319 -91zM616 18q63 0 129.5 19t126.5 53q121 68 187.5 180.5 t66.5 261.5t-66.5 261.5t-187.5 180.5q-60 34 -126.5 53t-129.5 19q-57 0 -122.5 -17t-132.5 -55q-59 -33 -106 -78t-80 -100.5t-50.5 -121.5t-17.5 -142q0 -152 68.5 -264t185.5 -178q67 -38 132.5 -55t122.5 -17z" />
+<glyph unicode="&#x25f0;" d="M6 1142h1221v-1220h-1221v1220zM559 588v440h-439v-440h439zM1112 36v992h-439v-554h-553v-438h992z" />
+<glyph unicode="&#x25f1;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v992h-992v-440h553v-552h439zM559 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f2;" d="M6 1142h1221v-1220h-1221v1220zM559 36v552h553v440h-992v-992h439zM1112 36v438h-439v-438h439z" />
+<glyph unicode="&#x25f3;" d="M6 1142h1221v-1220h-1221v1220zM1112 36v438h-553v554h-439v-992h992zM1112 588v440h-439v-440h439z" />
+<glyph unicode="&#x25f4;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM619 39q57 0 118.5 18t122.5 53q245 141 245 422t-245 422q-48 28 -93.5 43.5t-93.5 23.5v-547h-542q8 -79 35.5 -142.5t68 -111.5t89.5 -82.5t100.5 -56.5t102 -32t92.5 -10zM559 588v433q-95 -14 -187 -67q-219 -126 -241 -366h428z " />
+<glyph unicode="&#x25f5;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM673 43q45 6 95.5 24.5t92.5 42.5q55 31 100 73t77 94.5t49.5 115.5t17.5 137q0 137 -61.5 246.5t-182.5 178.5q-62 35 -125.5 52.5t-120.5 17.5q-42 0 -92 -10.5t-101.5 -33t-101 -57t-89 -83t-66.5 -111.5t-34 -142h542v-545zM559 474 h-428q22 -237 241 -364q92 -53 187 -67v431z" />
+<glyph unicode="&#x25f6;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM559 588h543q-7 79 -34 142.5t-67 112t-89.5 83t-101.5 56.5t-103 32.5t-94 10.5q-55 0 -116 -17t-125 -54q-244 -141 -244 -422t244 -422q48 -28 94 -44t93 -23v545zM673 43q94 14 187 67q112 64 171.5 155t70.5 209h-429v-431z" />
+<glyph unicode="&#x25f7;" d="M617 -84q-70 0 -150 21.5t-157 64.5q-72 40 -128.5 95.5t-95.5 123t-59.5 146t-20.5 165.5t20.5 165.5t59.5 146t95.5 122.5t128.5 96q77 43 157 64.5t150 21.5t148.5 -21.5t156.5 -65.5q146 -82 225.5 -215.5t79.5 -313.5t-79.5 -313.5t-225.5 -215.5 q-78 -44 -156.5 -65.5t-148.5 -21.5zM616 39q41 0 91 10.5t101.5 32.5t101 56t89.5 82.5t67.5 111.5t35.5 142h-543v547q-44 -6 -92 -23t-96 -44q-118 -67 -180.5 -173t-62.5 -247q0 -137 61 -246.5t182 -178.5q62 -35 125.5 -52.5t119.5 -17.5zM1102 588q-23 241 -242 366 q-93 53 -187 67v-433h429z" />
+<glyph unicode="&#x25f8;" d="M6 1142h1221l-1221 -1220v1220zM942 1028h-822v-822z" />
+<glyph unicode="&#x25f9;" d="M6 1142h1221v-1220zM1113 1028h-822l822 -822v822z" />
+<glyph unicode="&#x25fa;" d="M6 1142l1221 -1220h-1221v1220zM942 36l-822 822v-822h822z" />
+<glyph unicode="&#x25fb;" d="M97 1051h1038v-1038h-1038v1038zM1021 127v810h-810v-810h810z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph unicode="&#x25fd;" d="M175 973h882v-882h-882v882zM943 205v654h-654v-654h654z" />
+<glyph unicode="&#x25fe;" d="M175 973h882v-882h-882v882z" />
+<glyph unicode="&#x25ff;" d="M1227 1142v-1220h-1221zM1113 36v822l-822 -822h822z" />
+<glyph unicode="&#x266a;" d="M1154 956q25 -132 25 -293l-135 -61q0 140 -11 231t-51 205q-44 123 -135 252v-1023q0 -147 -25.5 -242.5t-80.5 -156.5q-57 -63 -135.5 -91t-198.5 -28q-95 0 -176 33.5t-129 91.5t-48 127q0 68 47 125.5t129 91.5q81 33 177 33q89 0 165.5 -28.5t125.5 -79.5 q15 60 15 124v1226h134q130 -123 205 -259t102 -278z" />
+<glyph unicode="&#x2756;" d="M358 879l260 261l260 -261l-260 -259zM44 569l259 259l260 -259l-260 -260zM670 569l260 258l259 -258l-259 -261zM358 254l260 260l260 -260l-260 -260z" />
+<glyph unicode="&#x2768;" d="M993 -101q-152 0 -286 56t-246 168q-107 107 -164 239.5t-57 290.5q0 157 56.5 291t164.5 242q112 112 247.5 168t284.5 56v-39q-90 0 -170 -51.5t-148 -158.5t-100.5 -233t-32.5 -273q0 -148 32.5 -274t99.5 -232t147.5 -159t171.5 -53v-38v0z" />
+<glyph unicode="&#x2769;" d="M240 -62q91 0 171.5 52.5t147.5 158.5t99.5 232.5t32.5 266.5q0 74 -9 146.5t-25.5 139.5t-41.5 125t-56 102q-42 59 -97 99t-105 65q-58 29 -117 47v38q152 0 287.5 -57.5t244.5 -166.5q57 -57 98.5 -120.5t69 -130t40.5 -136t13 -139.5q0 -78 -15.5 -154.5t-44 -146.5 t-69.5 -130.5t-92 -105.5q-35 -30 -76 -56t-85 -47.5t-88.5 -39t-85.5 -30.5q-97 -32 -197 -51v39z" />
+<glyph unicode="&#x276a;" d="M601 -121q-121 192 -181.5 375.5t-60.5 366.5q0 182 59.5 365t182.5 375h273q-108 -187 -161 -369.5t-53 -369.5q0 -189 52.5 -372.5t161.5 -370.5h-273v0z" />
+<glyph unicode="&#x276b;" d="M366 -121q105 181 156.5 359t51.5 361t-51 359t-157 358h265q120 -187 178 -363.5t58 -352.5q0 -179 -59 -357t-177 -364h-265v0z" />
+<glyph unicode="&#x276c;" d="M324 617l372 748h213l-374 -748l374 -747h-213z" />
+<glyph unicode="&#x276d;" d="M697 617l-372 748h212l372 -748l-372 -747h-213z" />
+<glyph unicode="&#x276e;" d="M211 578l481 748h330l-490 -748l490 -747h-330z" />
+<glyph unicode="&#x276f;" d="M701 578l-490 748h330l481 -748l-481 -747h-330z" />
+<glyph unicode="&#x2770;" d="M206 649l418 840h403l-420 -840l420 -839h-403z" />
+<glyph unicode="&#x2771;" d="M625 650l-418 840h402l418 -840l-418 -840h-403z" />
+<glyph unicode="&#x2772;" d="M457 -51v1218l232 231l87 -87l-196 -195v-1116l196 -195l-87 -87z" />
+<glyph unicode="&#x2773;" d="M457 -189l196 195v1116l-196 195l87 87l232 -231v-1218l-232 -231z" />
+<glyph unicode="&#x2774;" d="M801 -328q-89 0 -146.5 14.5t-91.5 52t-47 102t-13 163.5v215q0 68 -9 114t-29.5 74.5t-54.5 40.5t-85 12h-44v128h44q51 0 85 12t55 40t29.5 73.5t8.5 112.5v216q0 99 13 163.5t47 101.5t91.5 51.5t146.5 14.5h151v-129h-49q-50 0 -81.5 -8.5t-49 -31t-24 -63 t-6.5 -103.5v-223q0 -71 -7.5 -121t-25 -84t-45 -54.5t-66.5 -32.5q39 -12 66.5 -33t45 -55t25 -84t7.5 -120v-223q0 -63 6.5 -103.5t24 -63t49 -31t81.5 -8.5h49v-130h-151v0z" />
+<glyph unicode="&#x2775;" d="M250 -204h53q55 0 89.5 8.5t54 31.5t26.5 63.5t7 104.5v226q0 71 8 121.5t26.5 85t48.5 56t73 33.5q-42 11 -72 31.5t-48.5 55t-27 85.5t-8.5 123v225q0 64 -7 105t-26.5 64t-54 31.5t-89.5 8.5h-53v130h165q97 0 160 -14.5t100 -52.5t51.5 -103t14.5 -165v-219 q0 -68 9.5 -113.5t32 -74t60 -40.5t93.5 -12h47v-130h-47q-56 0 -93 -12t-60 -40.5t-32.5 -75t-9.5 -115.5v-217q0 -101 -14.5 -166t-51.5 -102.5t-100 -52.5t-160 -15h-165v131z" />
+<glyph unicode="&#x2794;" d="M837 565h-753v170h753l-262 262h227l347 -347l-347 -347h-227z" />
+<glyph unicode="&#x2798;" d="M513 208l271 186l-668 605l148 149l606 -668l186 270l61 -604z" />
+<glyph unicode="&#x2799;" d="M815 680l-731 -35v170l731 -35l-48 261l382 -311l-382 -311z" />
+<glyph unicode="&#x279a;" d="M116 342l668 605l-271 186l604 62l-61 -604l-186 270l-606 -668z" />
+<glyph unicode="&#x279b;" d="M578 659h-532v92h532l-128 242q266 -192 737 -288q-471 -96 -737 -288z" />
+<glyph unicode="&#x279c;" d="M766 298q-39 0 -66 27q-28 29 -28 66q0 20 7.5 37t20.5 30l139 140h-672q-36 0 -65 27q-28 26 -28 66t28 66q14 13 30 20.5t35 7.5h672l-139 139q-13 13 -20.5 30.5t-7.5 36.5q0 38 28 66q13 13 29.5 20.5t36.5 7.5t37 -8t29 -20l300 -300q13 -14 21 -30q7 -15 7 -36 q0 -19 -8 -36t-20 -30l-300 -300q-12 -12 -29 -19.5t-37 -7.5z" />
+<glyph unicode="&#x279d;" d="M838 722h-754v56h754v283l311 -311l-311 -311v283z" />
+<glyph unicode="&#x279e;" d="M854 626h-808v168h808v250l333 -334l-333 -334v250z" />
+<glyph unicode="&#x279f;" d="M850 552h-301v300h301v178l329 -328l-329 -329v179zM54 852h45v-300h-45v300zM159 852h90v-300h-90v300zM309 852h180v-300h-180v300z" />
+<glyph unicode="&#x27a0;" d="M838 510h-285v427h285v98q131 -218 311 -311q-181 -95 -311 -312v98zM84 937h42v-427h-42v427zM183 937h85v-427h-85v427zM325 937h171v-427h-171v427z" />
+<glyph unicode="&#x27a1;" d="M838 558h-754v284h754v169l311 -311l-311 -311v169z" />
+<glyph unicode="&#x27a2;" d="M434 710l-338 338l1041 -338l-1041 -338zM948 710l-627 203l203 -203h424z" />
+<glyph unicode="&#x27a3;" d="M443 740l-320 320l987 -320l-987 -320zM931 740h-403l-192 -193z" />
+<glyph unicode="&#x27a4;" d="M372 750l-249 462l987 -462l-987 -462z" />
+<glyph unicode="&#x27a5;" d="M850 545h-616q-36 0 -68 14t-58 39q-54 54 -54 127v360q0 -73 54 -127q26 -25 58 -39t68 -14h616v149l329 -329l-329 -329v149z" />
+<glyph unicode="&#x27a6;" d="M54 755q0 73 54 127q26 25 58 39t68 14h616v149l329 -329l-329 -329v149h-616q-36 0 -68 -14t-58 -39q-54 -54 -54 -127v360z" />
+<glyph unicode="&#x27a7;" d="M613 530h-277v450h277v268l284 -493l-284 -493v268z" />
+<glyph unicode="&#x27a8;" d="M738 485h-684v420h684v119q108 -230 441 -329q-333 -99 -441 -329v119z" />
+<glyph unicode="&#x27a9;" d="M607 532h-506v356h506v169h178l347 -347l-347 -347h-178v169zM954 710l-290 290v-169h-506v-242h506v-169z" />
+<glyph unicode="&#x27aa;" d="M607 472h-506v356h506v169h178l347 -347l-347 -347h-178v169zM1060 650l-290 290v-169h-505v-242h505v-169z" />
+<glyph unicode="&#x27ab;" d="M554 326l15 27h-515v142l205 356h597l99 169h71l153 -365v-143l-519 -328h-106v142zM1108 673l-122 290l-98 -169h-598l-140 -242h598l-98 -169z" />
+<glyph unicode="&#x27ac;" d="M838 361h-552l-189 308v123h476l-15 23v123h99l479 -284v-123l-142 -316h-65zM1070 515l-422 251l90 -146h-552l129 -210h552l90 -146z" />
+<glyph unicode="&#x27ad;" d="M600 338h-399l-75 150v494h458v119h82l366 -366l75 -150l-366 -366h-82zM950 735l-306 306v-119h-458v-374h458v-119z" />
+<glyph unicode="&#x27ae;" d="M581 259h-496v536l81 163h432l64 128h90l396 -397l-81 -162l-396 -397h-90v129zM978 527l-332 331v-128h-496v-406h496v-129z" />
+<glyph unicode="&#x27af;" d="M696 408v44h-608l-37 76l112 247l-112 247h645v119h83l366 -366l37 -75l-366 -366h-82zM1062 775l-306 306v-119h-609l85 -187l-85 -187h609v-119z" />
+<glyph unicode="&#x27b1;" d="M698 374h-656l114 251l-114 251l38 77h618v44l38 76h83l372 -372l-38 -76l-372 -372h-83v121zM1069 625l-310 311v-121h-620l87 -190l-87 -190h620v-121z" />
+<glyph unicode="&#x27b2;" d="M586 189q-100 0 -188.5 36.5t-166.5 112.5q-50 49 -84 110h487v-129l372 372l-372 372v-128h-489q16 29 40 60t55.5 61t69.5 56.5t83 45.5q91 38 193 38q99 0 187.5 -36.5t166.5 -112.5q73 -72 110.5 -161.5t37.5 -194.5q0 -100 -36 -187.5t-112 -165.5 q-70 -72 -160.5 -110.5t-193.5 -38.5z" />
+<glyph unicode="&#x27b3;" d="M221 533v57l-133 199h384l133 -199h278v198q62 -67 127 -123.5t135 -102.5q-70 -47 -135 -103.5t-127 -123.5v198h-278l-133 -199h-384zM307 590l-114 171h-43l114 -171h43zM392 590l-114 171h-43l114 -171h43zM477 590l-114 171h-42l114 -171h42zM562 590l-113 171h-43 l114 -171h42zM193 362l114 171h-43l-114 -171h43zM278 362l114 171h-43l-114 -171h43zM363 362l114 171h-42l-114 -171h42zM449 362l113 171h-42l-114 -171h43z" />
+<glyph unicode="&#x27b4;" d="M393 955v230l345 -345v-229zM116 908h230l346 -344h-230zM1117 186q-114 34 -249 34q-54 0 -111 -6l143 143l-207 207l46 46l207 -207l142 143q-6 -57 -6 -111q0 -132 35 -249z" />
+<glyph unicode="&#x27b5;" d="M909 642h-256v56h256v177q111 -135 240 -205q-129 -70 -240 -205v177zM84 841h426l142 -143h-426zM226 640h426l-142 -142h-426z" />
+<glyph unicode="&#x27b6;" d="M692 752l207 207l-142 143q57 -6 110 -6q135 0 249 34q-34 -115 -34 -249q0 -27 1.5 -54.5t3.5 -56.5l-142 143l-207 -207zM462 751h230l-345 -344h-230zM394 360l345 344v-230l-345 -344v230z" />
+<glyph unicode="&#x27b7;" d="M1154 186q-125 36 -269 36q-58 0 -118 -6q63 61 140 96q17 7 31 11t25 5l-266 265q-25 26 -57 38.5t-66 12.5t-67 -13t-57 -38l-371 371q31 32 69 47t80 15q38 0 78 -15.5t69 -46.5q-29 31 -45 70.5t-16 77.5q0 42 16 81t45 69l371 -372q-28 -29 -38.5 -59.5t-10.5 -63.5 q0 -35 12 -68q14 -32 37 -56l266 -265q3 17 17 54q31 79 95 141q-6 -62 -6 -121q0 -142 36 -266z" />
+<glyph unicode="&#x27b8;" d="M932 394q0 78 28 146q12 30 23 44h-328q-63 0 -108 -45q-21 -20 -33 -48.5t-12 -59.5h-459q0 37 14 71t40 59q24 24 58 39t71 15q-37 0 -71 15t-58 39q-54 54 -54 130h459q0 -31 12 -59.5t33 -48.5q45 -45 108 -45h328q-11 14 -23 44q-28 68 -28 146q119 -145 258 -221 q-139 -76 -258 -221z" />
+<glyph unicode="&#x27b9;" d="M393 176q-28 27 -42.5 63.5t-14.5 75.5q0 35 14.5 71.5t42.5 65.5q-28 -29 -65 -43t-73 -14q-39 0 -74.5 14.5t-63.5 42.5l345 344q22 -22 52.5 -34.5t62.5 -12.5q66 0 115 47l246 247q-20 1 -51 15q-74 31 -131 89q55 -6 110 -6q136 0 250 34q-34 -114 -34 -248 q0 -54 6 -112q-58 58 -88 131q-7 16 -11 28.5t-6 21.5l-246 -246q-25 -27 -35.5 -55t-10.5 -59t11.5 -61.5t34.5 -53.5l-344 -345v0z" />
+<glyph unicode="&#x27ba;" d="M1179 652q-137 37 -238.5 70.5t-169.5 63.5q-44 19 -62 61q-8 22 -8 43q0 49 33 80q33 33 80 33q23 0 42.5 -8.5t36.5 -24.5q13 -11 25 -36q90 -194 261 -282zM204 500q-31 0 -59.5 12.5t-46.5 31.5q-23 24 -33 49q-11 28 -11 58q0 31 12 59t32 47q22 21 48.5 33t57.5 12 q29 0 57 -11q133 -51 361 -85.5t556 -54.5q-671 -42 -917 -141q-26 -10 -57 -10zM814 298q-24 0 -44 9t-36 24q-33 31 -33 81q0 22 8.5 43t24.5 36q16 16 37 25q93 37 194.5 70t213.5 64q-170 -89 -261 -282q-9 -22 -25.5 -37t-36.5 -25q-21 -8 -42 -8z" />
+<glyph unicode="&#x27bb;" d="M920 367q-61 63 -61 144q0 42 15.5 77t45.5 67q-30 32 -45.5 67t-15.5 77q0 81 61 144q80 -196 284 -288q-204 -92 -284 -288zM285 451q-21 0 -41.5 5.5t-38.5 14t-33 19t-24 20.5q-11 14 -21.5 31t-20.5 36q-22 46 -77 78q53 32 77 78q13 25 25 43t25 30.5t26.5 21 t29.5 16.5q34 15 73 15q43 0 88 -16.5t87 -42.5q134 -84 458 -145q-324 -61 -458 -145q-45 -28 -89 -43.5t-86 -15.5z" />
+<glyph unicode="&#x27bc;" d="M70 446q-12 0 -22 10t-10 24q0 6 2 12l93 185q3 4 3 13q0 8 -3 13l-93 185q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h498q6 0 12 -2.5t10 -7.5q2 -1 7 -11l73 -146q5 -10 18 -18q8 -2 12 -2h229q6 0 12.5 3t10.5 7q10 10 10 22q0 4 -3 13l-22 81l-1.5 7.5t-0.5 4.5 q0 14 10 24q5 4 10.5 6.5t12.5 2.5q6 0 12.5 -3t9.5 -6l195 -195q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-195 -195q-3 -3 -9.5 -6t-12.5 -3q-7 0 -12.5 2.5t-10.5 6.5q-10 10 -10 24q0 2 0.5 4.5l1.5 7.5l22 81q3 9 3 13q0 12 -10 22q-4 4 -10.5 7t-12.5 3h-229q-6 0 -12 -3 t-11 -7q-4 -4 -7 -10l-73 -146q-4 -9 -7.5 -12t-10.5 -6q-5 -3 -11 -3h-498v0z" />
+<glyph unicode="&#x27bd;" d="M838 357q-7 0 -12.5 3t-10.5 7q-10 10 -10 23q0 3 0.5 6t1.5 7l71 178q3 6 3 13q0 5 -2.5 11.5t-7.5 10.5q-4 4 -10.5 7t-12.5 3h-75q-6 0 -12 -3t-10 -7q-6 -6 -8 -10l-97 -195q-4 -8 -8 -11.5t-10 -6.5q-5 -3 -12 -3h-537q-13 0 -23 10t-10 24q0 7 3 12l117 234 q2 6 2 13t-2 13l-126 250q-2 6 -2 13q0 13 10 23q5 4 10.5 7t11.5 3h538q16 0 23 -10q2 -1 7 -11l105 -211q5 -10 18 -18q8 -2 12 -2h75q6 0 12.5 3t10.5 7q5 4 7.5 10.5t2.5 11.5q0 7 -3 13l-71 178q-1 4 -1.5 7t-0.5 6q0 13 10 23q5 4 10.5 7t12.5 3q6 0 12 -3t10 -7 l325 -292q5 -5 8 -11q2 -8 2 -13q0 -14 -10 -24l-325 -292q-4 -4 -10 -7t-12 -3z" />
+<glyph unicode="&#x27be;" d="M50 756h612q-32 51 -52.5 98.5t-34.5 90.5h79q5 -14 10.5 -29t12.5 -29q44 -103 126 -202h-753v71zM782 285q62 140 182 256q14 14 35 30t48 36q-56 39 -83 66q-120 115 -182 255l-8 17h82q54 -115 161 -222q32 -30 73 -59t93 -57q-103 -56 -187.5 -137t-139.5 -202h-82z M575 268q14 45 34.5 91.5t52.5 98.5h-612v71h753q-82 -99 -126 -202q-7 -14 -12.5 -29t-10.5 -30h-79z" />
+<glyph unicode="&#x27c2;" d="M88 170h444l1 1114h168l-1 -1114h445v-170h-1057v170z" />
+<glyph unicode="&#x27c5;" d="M861 -334q-20 0 -48.5 2.5t-58.5 7.5q-120 18 -204.5 55t-138 90t-78 120.5t-24.5 146.5q0 63 14 136t38.5 158.5t58.5 184t74 212.5q85 242 131.5 386.5t46.5 197.5q0 42 -25.5 62t-60.5 20q-20 0 -35 -7t-28 -22.5t-25.5 -42t-25.5 -65.5l-136 49q13 55 41 95.5 t65 67.5t80.5 40.5t86.5 13.5q42 0 80.5 -12.5t68 -38t47 -64.5t17.5 -92q0 -79 -42 -236t-126 -395q-41 -115 -73.5 -210.5t-56 -174.5t-36 -142.5t-12.5 -114.5q0 -56 16 -97.5t49.5 -73t85.5 -54.5t124 -42q83 -22 117 -20q17 0 30.5 0.5t23.5 1.5v-143h-61v0z" />
+<glyph unicode="&#x27c6;" d="M311 -191q10 -1 24 -1.5t31 -0.5q17 -1 47.5 4.5t68.5 15.5q73 19 125 42.5t85.5 55t49 73t15.5 96.5q0 51 -12.5 114.5t-36 142.5t-56.5 174.5t-73 210.5q-84 238 -126 395t-42 236q0 53 17.5 92t47 64.5t68 38t80.5 12.5q43 0 86.5 -13.5t80.5 -40.5t65 -67.5t41 -95.5 l-136 -49q-14 39 -26 65t-25 42t-28.5 23t-35.5 7q-36 0 -60.5 -20.5t-24.5 -62.5q0 -27 11 -73.5t33.5 -117t56 -167.5t78.5 -225q40 -114 74 -213t58.5 -184.5t38 -158.5t13.5 -135q0 -80 -25 -148t-79 -120.5t-138.5 -89t-202.5 -54.5q-30 -5 -58.5 -7.5t-48.5 -2.5h-61 v143z" />
+<glyph unicode="&#x27dc;" d="M313 359q-60 0 -112.5 22.5t-90.5 61.5t-60 91.5t-22 113.5q0 60 21.5 111.5t59.5 89.5t90 59.5t114 21.5q60 0 107 -19.5t81 -48.5t55 -64.5t30 -66.5h619l-1 -168h-617q-9 -33 -31 -69t-56.5 -66t-81.5 -49.5t-105 -19.5zM312 509q29 0 54 11t44 29.5t29.5 43.5 t10.5 54q0 28 -10.5 52.5t-29 43t-43.5 29t-54 10.5t-54 -10.5t-43.5 -29t-29 -43.5t-10.5 -53q0 -29 10.5 -53.5t29 -43.5t43 -29.5t53.5 -10.5z" />
+<glyph unicode="&#x27e0;" d="M117 592l499 1061l500 -1061l-500 -1069zM977 649l-361 760l-360 -760h721zM977 535h-721l360 -768z" />
+<glyph unicode="&#x27e6;" d="M297 1556h640v-100h-240v-1626h240v-100h-640v1826zM597 -170v1626h-200v-1626h200z" />
+<glyph unicode="&#x27e7;" d="M296 -170h240v1626h-240v100h640v-1826h-640v100zM836 -170v1626h-200v-1626h200z" />
+<glyph unicode="&#x27e8;" d="M391 642l281 912h170l-281 -912l281 -912h-170z" />
+<glyph unicode="&#x27e9;" d="M672 642l-281 912h170l281 -912l-281 -912h-170z" />
+<glyph unicode="&#x27ea;" d="M191 642l281 912h170l-281 -912l281 -912h-170zM581 642l281 912h170l-281 -912l281 -912h-170z" />
+<glyph unicode="&#x27eb;" d="M472 642l-281 912h170l281 -912l-281 -912h-170zM872 642l-281 912h170l281 -912l-281 -912h-170z" />
+<glyph unicode="&#x27f5;" d="M-100 520v82l291 291l90 -90l-160 -160h1212v-164h-1212l160 -160l-90 -90z" />
+<glyph unicode="&#x27f6;" d="M952 319l160 160h-1212v164h1212l-160 160l90 90l291 -291v-82l-291 -291z" />
+<glyph unicode="&#x27f7;" d="M-100 520v82l291 291l90 -90l-160 -160h991l-160 160l90 90l291 -291v-82l-291 -291l-90 90l160 160h-991l160 -160l-90 -90z" />
+<glyph unicode="&#x2987;" d="M933 -270q-112 27 -202 77t-160.5 117.5t-121.5 150.5t-84 176t-49 193t-16 202q0 100 15.5 199t48 190.5t83 174t120.5 150t161 117.5t205 77v-1824zM833 1373q-48 -13 -93.5 -49t-85 -89t-72.5 -121t-57 -144.5t-37 -159.5t-13 -167t13 -167t37 -160t57 -145 t72.5 -121.5t85 -89.5t93.5 -49v1462z" />
+<glyph unicode="&#x2988;" d="M300 1554q111 -27 201.5 -77t161 -117.5t121.5 -150.5t84 -176t49 -193t16 -202q0 -100 -15.5 -199t-48 -190.5t-83 -174t-120.5 -150t-161.5 -117.5t-204.5 -77v1824zM400 -89q48 13 93.5 49t85 89t72.5 121t57 144.5t37 159.5t13 167t-13 167t-37 160t-57 145 t-72.5 121.5t-85 89.5t-93.5 49v-1462z" />
+<glyph unicode="&#x2997;" d="M400 159v968l482 481l101 -101l-279 -278v-1172l279 -278l-101 -101z" />
+<glyph unicode="&#x2998;" d="M250 -221l279 278v1172l-279 278l101 101l482 -481v-968l-482 -481z" />
+<glyph unicode="&#x29eb;" d="M117 592l499 1061l500 -1061l-500 -1069z" />
+<glyph unicode="&#x29fa;" d="M332 557h-244v170h244v444h168v-444h232v444h168v-444h245v-170h-245v-444h-168v444h-232v-444h-168v444z" />
+<glyph unicode="&#x29fb;" d="M202 557h-114v170h114v444h168v-444h162v444h168v-444h162v444h168v-444h115v-170h-115v-444h-168v444h-162v-444h-168v444h-162v-444h-168v444z" />
+<glyph unicode="&#x2a00;" d="M616 -465q-536 0 -536 1005q0 1007 536 1007q537 0 537 -1007q0 -1005 -537 -1005zM616 -325q397 0 397 865q0 432 -99 649.5t-298 217.5q-396 0 -396 -867q0 -865 396 -865zM519 376q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2a2f;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
+<glyph unicode="&#x2a6a;" d="M521 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174z" />
+<glyph unicode="&#x2a6b;" d="M761 851q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14 q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM280 134q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x2b05;" d="M84 700l311 311v-169h754v-284h-754v-169z" />
+<glyph unicode="&#x2b06;" d="M474 921h-169l311 312l312 -312h-169v-754h-285v754z" />
+<glyph unicode="&#x2b07;" d="M305 479h169v754h285v-754h169l-311 -312z" />
+<glyph unicode="&#x2b08;" d="M139 424l534 533l-120 120h440v-441l-119 120l-534 -533z" />
+<glyph unicode="&#x2b09;" d="M359 756l-119 -120v441h440l-120 -120l534 -533l-201 -201z" />
+<glyph unicode="&#x2b0a;" d="M773 342l-533 534l201 201l533 -534l120 120v-440h-441z" />
+<glyph unicode="&#x2b0b;" d="M139 663l120 -120l533 534l201 -201l-533 -534l120 -119h-441v440z" />
+<glyph unicode="&#x2b0c;" d="M84 700l311 311v-169h443v169l311 -311l-311 -311v169h-443v-169z" />
+<glyph unicode="&#x2b0d;" d="M305 479h169v442h-169l312 312l311 -312h-169v-442h169l-311 -312z" />
+<glyph unicode="&#x2b16;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458v-916z" />
+<glyph unicode="&#x2b17;" d="M6 532l610 610l611 -610l-611 -610zM616 990l-458 -458l458 -458v916z" />
+<glyph unicode="&#x2b18;" d="M6 532l610 610l611 -610l-611 -610zM1075 532h-917l458 -458z" />
+<glyph unicode="&#x2b19;" d="M6 532l610 610l611 -610l-611 -610zM1075 532l-459 458l-458 -458h917z" />
+<glyph unicode="&#x2b1a;" d="M6 1142h200v-114h-86v-86h-114v200zM360 1142h180v-114h-180v114zM694 1142h174v-114h-174v114zM1112 1028h-90v114h205v-200h-115v86zM6 788h114v-179h-114v179zM1112 788h115v-179h-115v179zM6 454h114v-174h-114v174zM1112 454h115v-174h-115v174zM6 126h114v-90h86 v-114h-200v204zM1022 36h90v90h115v-204h-205v114zM360 36h180v-114h-180v114zM694 36h174v-114h-174v114z" />
+<glyph unicode="&#x2e18;" d="M648 840q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM605 -400q-95 0 -171.5 25t-130 71t-82 111t-28.5 145q0 37 7.5 71t25.5 69.5t49 74t79 85.5 l88 86q36 34 57 60.5t32 49.5t14.5 47t3.5 54v170h190v-941q19 5 35 10t28 10q43 17 90.5 43t96.5 60v-188q-95 -58 -191 -85.5t-193 -27.5zM549 204l-45 -45q-29 -29 -49.5 -52t-33.5 -45.5t-19.5 -46t-6.5 -51.5q0 -45 14.5 -78t37 -55.5t49.5 -36t53 -20.5v430z" />
+<glyph unicode="&#x2e1f;" d="M88 671q78 60 151 87.5t154 27.5q48 0 105 -11t125 -43l32 -15q115 -54 210 -54q69 0 137 30t143 93v-175q-69 -55 -141 -84.5t-154 -29.5q-27 0 -51 3t-48 9.5t-50 16t-56 22.5l-33 14q-34 14 -62 24.5t-54 18t-53 11.5t-58 4q-77 0 -148 -27.5t-149 -95.5v174zM490 439 h252v-305h-252v305z" />
+<glyph unicode="&#x2e22;" d="M463 1556h424v-143h-240v-587h-184v730z" />
+<glyph unicode="&#x2e23;" d="M586 1413h-240v143h424v-730h-184v587z" />
+<glyph unicode="&#x2e24;" d="M463 460h184v-587h240v-143h-424v730z" />
+<glyph unicode="&#x2e25;" d="M346 -127h240v587h184v-730h-424v143z" />
+<glyph unicode="&#x2e2e;" d="M574 524q0 52 -3 82t-9 51q-7 22 -27.5 51t-66.5 74l-88 86q-44 43 -75 80t-50.5 72.5t-28 72t-8.5 77.5q0 78 29 142.5t83 110.5t130 71.5t170 25.5q100 0 197 -28.5t188 -84.5v-188q-97 67 -186.5 102t-171.5 35q-53 0 -96 -14.5t-74.5 -40.5t-48.5 -63t-17 -82 q0 -54 26.5 -97.5t81.5 -97.5l90 -89q45 -44 73 -79t44.5 -70.5t22.5 -75t6 -92.5v-154h-191v123zM669 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z " />
+<glyph unicode="&#xe0a0;" d="M279 1783h245v-1001l-245 -158v1159zM279 159q0 160 70 260q25 35 64 71t85 65l136 87q40 26 69 59t44 64q34 69 34 185v292h-185l260 303l257 -303h-185v-341q0 -81 -10.5 -145.5t-36.5 -115.5q-23 -47 -59 -84t-82 -68l-68 -46q-42 -29 -68.5 -53t-43.5 -56t-26.5 -72 t-9.5 -102v-426h-245v426z" />
+<glyph unicode="&#xe0a1;" d="M267 803v980h168v-837h384v-143h-552zM998 -267h-181l-268 636l20 -424v-212h-170v980h179l270 -638l-22 466v172h172v-980z" />
+<glyph unicode="&#xe0a2;" d="M276 -267q-178 0 -178 181v881q0 194 155 194v390q0 94 29 167t78 127q102 110 257 110t257 -110q49 -54 78 -127t29 -167v-390q155 0 155 -194v-881q0 -181 -181 -181h-679zM617 1618q-44 0 -78.5 -17t-60.5 -49q-50 -62 -50 -173v-390h378v390q0 56 -13.5 98.5 t-39.5 74.5t-59 49t-77 17zM688 449q86 44 86 141q0 34 -10.5 61.5t-33.5 51.5q-24 23 -51.5 35t-61.5 12t-61.5 -12t-51.5 -35q-23 -24 -35 -52t-12 -63q0 -96 87 -139v-415h144v415z" />
+<glyph unicode="&#xe0b0;" d="M-20 -488v2489l1136 -1244z" />
+<glyph unicode="&#xe0b1;" d="M1220 705l-937 -1027l-89 89l855 938l-855 939l89 87z" />
+<glyph unicode="&#xe0b2;" d="M1253 2001v-2489l-1136 1245z" />
+<glyph unicode="&#xe0b3;" d="M937 -322l-937 1027l937 1026l86 -87l-854 -939l854 -938z" />
+<glyph unicode="&#xfeff;" />
+<glyph d="M626 1498q69 0 116 -48q23 -23 34.5 -53t11.5 -72q0 -78 -46 -124q-47 -47 -116 -47t-116 47q-46 47 -46 124q0 78 46 125q46 48 116 48zM689 952l67 -567v-445h-265v445l77 567h121z" />
+<glyph d="M645 1230q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM605 -27q-95 0 -171.5 25t-130 71t-82 111t-28.5 145q0 37 7.5 71t25.5 69.5t49 74t79 85.5 l88 86q36 34 57 60.5t32 49.5t14.5 47t3.5 54v170h190v-941q19 5 35 10t28 10q43 17 90.5 43t96.5 60v-188q-95 -58 -191 -85.5t-193 -27.5zM549 577l-45 -45q-29 -29 -49.5 -52t-33.5 -45.5t-19.5 -46t-6.5 -51.5q0 -45 14.5 -78t37 -55.5t49.5 -36t53 -20.5v430z" />
+<glyph d="M646 1230q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM605 -27q-95 0 -171.5 25t-130 71t-82 111t-28.5 145q0 37 7.5 71t25.5 69.5t49 74t79 85.5 l88 86q33 33 54 57.5t32 47.5t15 48t4 58v5q1 11 1.5 21.5t0.5 20.5v123h190v-154q0 -52 -7.5 -93t-24.5 -77.5t-45 -71.5t-68 -75l-90 -89q-29 -29 -49.5 -52.5t-34 -46t-19.5 -45.5t-6 -50q0 -45 17 -82.5t48.5 -63.5t75 -40.5t97.5 -14.5q82 0 170 34.5t186 102.5v-188 q-95 -58 -191 -85.5t-193 -27.5z" />
+<glyph d="M492 1497q30 0 30 -30v-143q0 -30 -30 -30h-143q-30 0 -30 30v143q0 30 30 30h143zM883 1497q30 0 30 -30v-143q0 -30 -30 -30h-142q-30 0 -30 30v143q0 30 30 30h142z" />
+<glyph d="M629 1262h-154l197 264h186z" />
+<glyph d="M555 1370q-13 7 -22.5 12t-17.5 8q-18 5 -28 5q-36 0 -55 -25q-20 -26 -20 -70v-6h-125q0 102 52 160q51 59 136 59q18 0 34.5 -2t32.5 -6q15 -4 34.5 -12.5t44.5 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -100 -53 -159q-51 -60 -135 -60 q-32 0 -64 8q-15 4 -35.5 12.5t-46.5 22.5l-57 33v0z" />
+<glyph d="M604 1262l-227 264h184l197 -264h-154z" />
+<glyph d="M922 1262h-140l-166 178l-165 -178h-140l211 266h189z" />
+<glyph d="M451 1528l165 -178l166 178h140l-211 -266h-189l-211 266h140z" />
+<glyph d="M1087 874l27 -108l-1063 -262l-24 108z" />
+<glyph d="M793 965h116v-111h-116v-186h-138v186h-387v121l363 528h162v-538zM655 965v413l-274 -413h274z" />
+<glyph d="M422 1528q12 -53 62 -82t132 -29q83 0 132 28q48 27 63 83h119q-11 -119 -90 -180q-80 -62 -224 -62t-223 61q-80 62 -90 181h119v0z" />
+<glyph d="M689 1499q30 0 30 -30v-145q0 -30 -30 -30h-145q-30 0 -30 30v145q0 30 30 30h145v0z" />
+<glyph d="M616 -433q-151 0 -225 109t-74 324q0 217 75 325.5t224 108.5q150 0 225.5 -108.5t75.5 -325.5q0 -215 -75.5 -324t-225.5 -109zM616 -344q88 0 131.5 84.5t43.5 259.5q0 176 -43.5 260.5t-131.5 84.5t-131 -84.5t-43 -260.5q0 -175 43 -259.5t131 -84.5zM615 -72 q-36 0 -58 21q-23 21 -23 53t23.5 54.5t57.5 22.5q37 0 60.5 -22.5t23.5 -54.5q0 -33 -24.5 -53.5t-59.5 -20.5z" />
+<glyph d="M362 -290h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110z" />
+<glyph d="M322 -300l231 226q51 49 86.5 88t55.5 70q40 61 40 112q0 30 -13 55.5t-37 43.5t-57.5 28t-74.5 10q-99 0 -225 -72v125q66 28 125.5 42t119.5 14q71 0 129 -17.5t99 -49t63.5 -75.5t22.5 -98q0 -58 -37 -116q-38 -60 -156 -177l-211 -205h410v-114h-571v110z" />
+<glyph d="M557 -440q-58 0 -114.5 10.5t-116.5 30.5v121q69 -27 125.5 -40t101.5 -13q102 0 160.5 40t58.5 109q0 150 -219 150h-66v108h74q94 0 142.5 31.5t48.5 91.5q0 57 -47.5 88t-135.5 31q-45 0 -100 -12t-115 -35v121q69 17 127 26t109 9q72 0 130 -15.5t98.5 -43.5 t62.5 -68.5t22 -89.5q0 -72 -43.5 -118t-128.5 -65q94 -21 143.5 -74.5t49.5 -134.5q0 -125 -94.5 -191.5t-272.5 -66.5z" />
+<glyph d="M655 -240h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM655 -129v413l-274 -413h274z" />
+<glyph d="M563 -415q-148 0 -244 36v114q52 -26 112 -40.5t120 -14.5q105 0 160.5 49t55.5 140q0 90 -58 139.5t-161 49.5q-100 0 -190 -41v418h470v-95h-355v-204q50 17 108 17q72 0 129.5 -20t98 -56.5t62.5 -89t22 -118.5t-23 -118.5t-65.5 -89.5t-104 -56.5t-137.5 -19.5z" />
+<glyph d="M640 -405q-161 0 -236 104t-75 329q0 214 89.5 324t261.5 110q46 0 92 -8.5t89 -24.5v-104q-39 20 -83 31t-92 11q-120 0 -181 -80.5t-61 -239.5q64 117 203 117q136 0 209 -73.5t73 -211.5q0 -136 -75.5 -210t-213.5 -74zM638 -317q167 0 167 196t-167 196 q-81 0 -126.5 -51.5t-45.5 -144.5t45.5 -144.5t126.5 -51.5z" />
+<glyph d="M761 349h-444v95h584v-48l-332 -787h-131z" />
+<glyph d="M616 -422q-71 0 -126.5 16.5t-94.5 47t-59.5 75t-20.5 100.5q0 91 49 146.5t143 74.5q-81 18 -125.5 68t-44.5 122q0 49 19.5 89t55.5 68.5t87.5 43.5t116.5 15t117 -15t88 -43.5t55.5 -68.5t19.5 -89q0 -72 -44.5 -122t-125.5 -68q94 -19 143 -74.5t49 -145.5 q0 -57 -20.5 -101.5t-59.5 -75t-95 -47t-127 -16.5zM616 79q76 0 115.5 35.5t39.5 102.5q0 69 -38.5 104.5t-116.5 35.5q-75 0 -114.5 -35.5t-39.5 -104.5q0 -67 39.5 -102.5t114.5 -35.5zM616 -334q85 0 130.5 42.5t45.5 120.5t-46 120t-130 42q-85 0 -130 -42t-45 -120 t46.5 -120.5t128.5 -42.5z" />
+<glyph d="M551 -414q-45 0 -91 8.5t-89 24.5v104q40 -20 83.5 -31t91.5 -11q242 0 242 319q-29 -57 -81.5 -86.5t-121.5 -29.5q-137 0 -209 74t-72 212q0 136 75 209.5t213 73.5q162 0 237 -104.5t75 -329.5q0 -212 -90 -322.5t-263 -110.5zM595 -28q81 0 126 51.5t45 145.5 q0 93 -45 144.5t-126 51.5q-168 0 -168 -196q0 -197 168 -197z" />
+<glyph horiz-adv-x="0" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-bold-latin-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-bold-latin-webfont.svg
new file mode 100755
index 0000000..3c84205
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-bold-latin-webfont.svg
@@ -0,0 +1,241 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackbold" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph unicode="&#xd;" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M470 1052v456h285v-456l-68 -576h-139zM615 -72q-38 0 -69.5 14t-54.5 37q-50 50 -50 134q0 82 50 131q11 11 14 13.5t7 6.5q4 3 10 7t13 7q2 1 10.5 4.5t14.5 5.5l26 6q6 1 14.5 1.5t16.5 0.5q34 0 66.5 -13t56.5 -38q25 -25 37 -58.5t12 -74.5q0 -24 -5 -49 q-2 -13 -5.5 -22t-11.5 -23q-6 -11 -11 -18t-17 -20q-14 -15 -26.5 -23.5t-29.5 -15.5q-17 -8 -34 -10.5t-34 -2.5z" />
+<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
+<glyph unicode="#" d="M209 373h-207v215h260l74 293h-219v215h274l94 374h222l-95 -374h203l94 374h224l-97 -374h193v-215h-246l-74 -293h205v-215h-258l-94 -373h-221l94 373h-205l-94 -373h-221zM688 588l74 293h-205l-74 -293h205z" />
+<glyph unicode="$" d="M512 0q-45 3 -142 26q-95 22 -198 66v262q103 -61 200 -94q51 -17 95 -25t86 -9v329q-197 39 -293 135q-96 94 -96 253q0 166 102 265t247 111v237h221l1 -237q32 -5 108 -18q34 -6 72.5 -15.5t83.5 -23.5v-256q-33 22 -68.5 37.5t-69.5 26.5q-39 12 -80 19.5t-87 10.5 v-307q199 -32 298 -134q51 -52 75.5 -121t24.5 -152q0 -86 -27 -152.5t-81 -119.5q-61 -59 -134.5 -84t-114.5 -30l-1 -301h-221zM553 1100q-61 -7 -93 -41q-14 -14 -23 -37t-9 -55q0 -57 32 -95q33 -39 93 -55v283zM694 226q36 5 59 18t39 31q35 40 35 101t-34 101 q-16 18 -40 31t-59 20v-302z" />
+<glyph unicode="%" d="M352 793q-133 0 -226 93q-45 45 -69 100.5t-24 125.5q0 134 93 227t226 93q69 0 125.5 -24t101.5 -69t69 -101.5t24 -125.5q0 -133 -93 -226q-45 -45 -101.5 -69t-125.5 -24zM352 975q58 0 98 40q39 39 39 97q0 57 -40 97t-97 40t-97 -39q-40 -40 -40 -98q0 -33 11 -56 t29 -41q40 -40 97 -40zM48 561l1143 436v-114l-1139 -432zM898 0q-71 0 -129 26.5t-97 65.5q-48 48 -70 107.5t-22 121.5q0 63 23 120.5t69 104.5q43 44 100.5 68.5t125.5 24.5t125 -24t102 -68q43 -42 68.5 -100t25.5 -127q0 -65 -24 -123.5t-69 -103.5q-42 -42 -101 -67.5 t-127 -25.5zM898 182q58 0 98 40t40 97t-41 98q-20 20 -45 30t-52 10q-57 0 -97 -40q-20 -20 -29.5 -45.5t-9.5 -52.5q0 -30 11 -55.5t28 -42.5q39 -39 97 -39z" />
+<glyph unicode="&#x26;" d="M537 -29q-221 0 -361 131q-139 130 -139 340q0 78 18 142t53 122q36 60 87.5 111t121.5 96q-27 43 -45 79t-29 66q-12 33 -18 64.5t-6 66.5q0 76 27 138t82 106q109 87 315 87q38 0 73 -3t70 -8q40 -6 71.5 -13.5t66.5 -18.5v-256q-28 16 -64 31.5t-65 23.5t-63.5 13 t-68.5 5q-38 0 -69 -7t-51 -21q-41 -29 -41 -80q0 -20 7 -43.5t24 -57.5q16 -32 39 -71t59 -94l313 -480q22 39 32 87q11 52 11 106q0 14 -0.5 30t-1.5 29q-1 15 -2 25.5t-4 27.5h235v-51q0 -147 -34 -253q-35 -111 -107 -195l162 -246h-317l-48 72q-39 -26 -77 -43.5 t-82 -31.5q-42 -13 -83 -19.5t-91 -6.5zM580 207q15 0 27 1.5t29 5.5q14 3 26.5 6.5t30.5 11.5l8 4q10 5 16.5 8.5t11 6l9 5t10.5 6.5l-308 469q-66 -44 -99 -102q-34 -59 -34 -135q0 -66 22 -116.5t56 -86.5q79 -84 195 -84z" />
+<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
+<glyph unicode="(" d="M596 -270q-74 107 -134 220.5t-102 235.5q-77 225 -77 457q0 231 78 458q38 110 94.5 221t140.5 232h228q-64 -116 -113.5 -232t-82.5 -231q-64 -222 -64 -448q0 -224 64 -447q65 -227 196 -466h-228v0z" />
+<glyph unicode=")" d="M409 -270q131 239 196 466q64 223 64 447q0 226 -64 448q-32 110 -80.5 226t-115.5 237h228q159 -229 236 -453q39 -114 58 -230.5t19 -229.5q0 -230 -77 -455q-40 -117 -98.5 -229t-137.5 -227h-228v0z" />
+<glyph unicode="*" d="M216 455l239 366l-358 155l51 148l369 -120l19 416h156l19 -416l369 120l51 -148l-358 -155l239 -366l-133 -95l-265 350l-265 -350z" />
+<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
+<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-11 -35 -28 -70t-43 -70q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
+<glyph unicode="-" d="M221 746h791v-291h-791v291z" />
+<glyph unicode="." d="M612 -42q-39 0 -69 13.5t-55 38.5q-52 52 -52 131q0 82 52 134q51 51 125 51q36 0 68 -12.5t58 -38.5q51 -51 51 -134q0 -80 -51 -131q-52 -52 -127 -52z" />
+<glyph unicode="/" d="M899 1493h221l-786 -1683h-221z" />
+<glyph unicode="0" d="M617 -29q-248 0 -371 194q-123 193 -123 580q0 388 123 582q123 193 370 193q248 0 371 -193q123 -194 123 -582t-123 -581t-370 -193zM616 221q103 0 150 125q47 126 47 399q0 274 -47 400q-47 125 -150 125q-102 0 -149 -125q-47 -126 -47 -400q0 -273 47 -399 q47 -125 149 -125zM617 460q-8 0 -14.5 10t-11.5 26.5t-8.5 37.5t-6.5 44q-2 19 -4.5 43t-4 48t-2.5 45t-1 35q0 10 0.5 28.5t2 41.5t3 48t4.5 48q13 117 41 117q15 0 26 -33.5t17 -85.5q2 -21 4 -45t3.5 -47t2.5 -44t1 -34q0 -9 -0.5 -26t-1.5 -39.5t-2.5 -48t-4.5 -50.5 q-7 -60 -18 -89.5t-25 -29.5z" />
+<glyph unicode="1" d="M188 260h330v969l-307 -76v266l309 74h285v-1233h330v-260h-947v260z" />
+<glyph unicode="2" d="M115 216q0 19 6 33.5t19 28.5l135 144q84 90 140 149.5t94.5 101t63.5 69.5t48 54q37 43 64 78.5t44 72.5q33 67 33 135q0 45 -14.5 84.5t-45.5 67.5t-75 41t-97 13q-81 0 -177 -31q-98 -31 -206 -92v275q60 22 114 37t96 23q50 10 100 15t100 5q109 0 203.5 -26.5 t165.5 -83.5q64 -52 99.5 -127t35.5 -179q0 -44 -7 -82t-23 -79q-17 -42 -42.5 -85.5t-58.5 -85.5q-18 -22 -42.5 -49.5t-59.5 -64t-81.5 -84t-107.5 -108.5q-55 -56 -91.5 -87.5t-62 -51t-44 -33.5t-37.5 -34h659v-260h-948v216z" />
+<glyph unicode="3" d="M555 -29q-53 0 -109 4.5t-111 14.5q-51 9 -104 22.5t-106 32.5v274q46 -23 96.5 -41t106.5 -30q57 -13 112 -19t101 -6q66 0 118 13t89 42q36 29 52.5 69t16.5 88q0 51 -17.5 95t-52.5 76q-33 29 -82.5 45.5t-115.5 16.5h-158v260h158q109 0 171 44q32 23 46 54t14 69 q0 82 -60 129q-29 23 -71.5 34.5t-101.5 11.5q-39 0 -84.5 -5t-93.5 -16q-45 -10 -96 -25.5t-103 -35.5v268q105 32 203 48q51 8 98.5 12t92.5 4q238 0 369 -103q132 -104 132 -284q0 -64 -17.5 -118t-58.5 -99q-77 -86 -217 -111q160 -28 244 -127q42 -49 63 -114t21 -150 q0 -106 -34.5 -189t-103.5 -140t-171 -85.5t-236 -28.5z" />
+<glyph unicode="4" d="M694 322h-592v286l566 885h309v-918h164v-253h-164v-322h-283v322zM694 575v590l-377 -590h377z" />
+<glyph unicode="5" d="M533 -29q-43 0 -92 4t-98 12q-50 8 -100.5 20.5t-99.5 27.5v266q45 -22 85 -36t86 -25q45 -11 87 -16t87 -5q158 0 238 67q81 67 81 189q0 66 -22 113.5t-58 79.5t-90.5 50.5t-128.5 18.5q-35 0 -74.5 -4.5t-79.5 -14.5q-41 -10 -83.5 -26t-77.5 -33v834h811v-260h-572 v-277q10 4 32 10.5t45 10.5q18 3 43 4.5t46 1.5q106 0 199 -35.5t160 -103.5q65 -66 101 -159t36 -208q0 -119 -39 -212t-110 -158t-173 -100.5t-239 -35.5z" />
+<glyph unicode="6" d="M644 -31q-131 0 -227.5 44.5t-160.5 139.5q-66 97 -95.5 241t-29.5 330q0 198 35 348.5t116 253.5q76 96 189.5 144t259.5 48q41 0 76 -3.5t73 -11.5q73 -15 150 -45v-268q-40 23 -77.5 40t-73.5 28q-72 22 -141 22q-159 0 -242 -107t-88 -318q23 32 54 57.5t66 40.5 q32 14 75.5 23t98.5 9q99 0 177.5 -31.5t132.5 -94.5q54 -62 82 -153.5t28 -210.5q0 -121 -30.5 -220.5t-92.5 -168.5q-63 -70 -152 -103.5t-203 -33.5zM643 207q45 0 83 16.5t65 53.5q51 69 51 200q0 130 -51 201q-24 33 -61 51.5t-88 18.5q-50 0 -85.5 -18t-59.5 -51 q-51 -71 -51 -201q0 -69 13.5 -119t37.5 -83q26 -36 63.5 -52.5t82.5 -16.5z" />
+<glyph unicode="7" d="M758 1233h-623v260h944v-209l-506 -1284h-301z" />
+<glyph unicode="8" d="M617 -29q-123 0 -212 30.5t-149 86.5q-64 59 -95.5 142t-31.5 184q0 76 18 134.5t53 107.5q71 97 197 135q-113 39 -172 123q-29 42 -44 92.5t-15 114.5q0 91 30 164t91 127q121 108 329 108t330 -108q121 -108 121 -292q0 -123 -58 -205q-58 -84 -169 -124 q122 -37 194 -136q35 -49 52.5 -107.5t17.5 -133.5q0 -101 -31.5 -184t-95.5 -142q-128 -117 -360 -117zM616 903q88 0 139 52q50 52 50 138q0 89 -50 139q-23 23 -58 36.5t-81 13.5q-86 0 -137 -51t-51 -138q0 -86 51 -138q27 -28 61 -40t76 -12zM616 209q48 0 89 15.5 t72 47.5q29 29 45 72t16 96q0 50 -15 91t-46 73q-28 29 -68 45.5t-93 16.5q-48 0 -88.5 -15t-71.5 -47q-61 -62 -61 -165q0 -51 15 -93.5t46 -74.5q27 -28 68 -45t92 -17z" />
+<glyph unicode="9" d="M502 -39q-40 0 -75.5 3.5t-72.5 11.5q-38 8 -75.5 19t-75.5 25v269q40 -23 77.5 -40t74.5 -28q70 -22 140 -22q76 0 137.5 26t104.5 81q40 51 63 130t25 188q-25 -34 -53.5 -57t-66.5 -40t-79.5 -25t-92.5 -8q-100 0 -179 32t-134 96q-54 63 -81.5 153.5t-27.5 207.5 q0 122 30.5 220t91.5 167q122 137 357 137q139 0 233 -47.5t154 -135.5q68 -100 96.5 -245t28.5 -323q0 -110 -10 -200.5t-29 -164t-47 -132t-64 -104.5q-78 -100 -193 -147t-257 -47zM589 741q96 0 147 70q50 70 50 200q0 69 -13.5 119.5t-36.5 82.5q-26 35 -63 52t-84 17 q-51 0 -86.5 -18.5t-59.5 -50.5q-52 -70 -52 -201t52 -201q26 -35 61.5 -52.5t84.5 -17.5z" />
+<glyph unicode=":" d="M619 752q-39 0 -70.5 14.5t-53.5 36.5q-27 27 -39.5 61t-12.5 72q0 43 14 76.5t37 56.5q26 26 59 38.5t68 12.5t67 -12.5t58 -38.5q23 -23 37 -56.5t14 -75.5t-14 -76.5t-37 -57.5t-56 -37t-71 -14zM620 36q-74 0 -125 51q-52 52 -52 133t52 133q51 51 125 51 q36 0 68 -12.5t58 -38.5q23 -23 37 -56.5t14 -76.5q0 -42 -13.5 -75.5t-37.5 -57.5q-26 -26 -58 -38.5t-68 -12.5z" />
+<glyph unicode=";" d="M609 695q-41 0 -74 15t-56 38q-29 29 -41.5 65t-12.5 75q0 45 15 80.5t38 59.5q27 26 61.5 39.5t72.5 13.5q76 0 131 -53q24 -25 38.5 -59.5t14.5 -79.5t-14.5 -80.5t-38.5 -60.5q-25 -24 -59.5 -38.5t-74.5 -14.5zM373 -346l15 7q55 23 103 57.5t80 74.5q29 36 48 83.5 t23 102.5q-10 -2 -13 -2h-10q-35 0 -69.5 11t-59.5 34q-26 23 -38.5 55.5t-12.5 72.5q0 81 54 128q14 12 28.5 20.5t31.5 15.5q14 5 32 8t39 3q23 0 45 -4.5t42 -15.5q40 -19 65 -58q14 -21 23.5 -42.5t15.5 -47.5q7 -26 10 -55t3 -61q0 -94 -25.5 -174t-73.5 -145 q-93 -129 -281 -200l-14 -5z" />
+<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
+<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
+<glyph unicode="?" d="M479 583q0 83 31 152q17 37 45 74.5t73 81.5l90 89q11 11 25.5 26t25.5 29q23 27 32 44q5 8 9.5 19.5t7.5 22.5q2 6 3.5 18.5t1.5 25.5q0 8 -0.5 20t-2.5 20q-1 4 -4 15.5t-7 19.5q-4 9 -8.5 15.5t-10.5 14.5t-12 14t-15 14q-14 11 -25 17.5t-20 10.5q-5 2 -21.5 8 t-33.5 9q-30 6 -64 6q-11 0 -26 -0.5t-26 -2.5t-25 -4.5t-29 -6.5q-14 -4 -30.5 -9.5t-26.5 -9.5q-39 -15 -87 -41t-96 -60l-24 -17v225l7 5q96 58 194 87q96 28 202 28q98 0 173 -25q76 -26 135 -75q27 -23 49 -52.5t37 -64.5q29 -69 29 -149q0 -82 -36 -151 q-17 -32 -46.5 -70t-83.5 -91l-87 -86q-22 -21 -32.5 -32.5t-22.5 -25.5q-10 -12 -17.5 -24.5t-12.5 -20.5q-8 -16 -13 -38t-5 -39v-142h-220v126zM592 -50q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5 t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47z" />
+<glyph unicode="@" d="M767 -319q-171 0 -309.5 58t-243.5 175q-208 232 -208 632q0 192 46.5 346t140.5 271t217.5 174.5t272.5 57.5q118 0 204 -34t146 -97q126 -132 126 -359v-770h-196v82q-22 -30 -44 -48t-45 -29q-51 -25 -125 -25q-163 0 -263 118q-101 119 -101 313q0 99 25.5 176 t74.5 134q100 117 263 117q34 0 66.5 -5.5t60.5 -18.5q26 -12 49 -31t39 -41v41q0 136 -74 210q-76 74 -210 74q-108 0 -194.5 -47.5t-148.5 -134.5q-61 -85 -96 -206t-35 -270q0 -161 41 -284t110 -206q78 -93 182 -137t219 -44q40 0 81 5.5t79 17.5q36 11 72.5 29.5 t71.5 41.5l92 -176q-42 -29 -88 -50t-88 -33q-44 -13 -96.5 -20t-113.5 -7zM782 303q89 0 140 64t51 178q0 112 -51 177q-51 64 -140 64q-50 0 -83 -17.5t-56 -46.5q-51 -65 -51 -177q0 -114 51 -178q23 -29 56 -46.5t83 -17.5z" />
+<glyph unicode="A" d="M436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="B" d="M125 1495h481q250 0 375 -94q125 -95 125 -283q0 -143 -74 -225q-73 -80 -217 -94q88 -8 152 -37.5t106 -77.5q86 -98 86 -275q0 -215 -130 -312t-423 -97h-481v1495zM606 913q60 0 98 10t62 31q23 20 35 50.5t12 80.5q0 44 -11 77t-37 56q-21 18 -57.5 30t-101.5 12 h-196v-347h196zM606 236q141 0 198 48q56 48 56 167q0 121 -59 174t-195 53h-196v-442h196z" />
+<glyph unicode="C" d="M759 -29q-149 0 -264 49.5t-195 149.5q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129 q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-38 -9 -78.5 -13.5t-85.5 -4.5z" />
+<glyph unicode="D" d="M137 1493h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v1493zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-961h80z" />
+<glyph unicode="E" d="M168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="F" d="M182 1493h930v-260h-635v-332h578v-260h-578v-641h-295v1493z" />
+<glyph unicode="G" d="M720 -29q-143 0 -255 50.5t-190 150.5q-75 96 -116.5 238t-41.5 337q0 186 39.5 330t120.5 244q160 199 455 199q51 0 94.5 -6t87.5 -19q85 -25 163 -74v-327q-62 80 -142 121q-80 40 -176 40q-170 0 -252 -126q-83 -128 -83 -382q0 -125 20 -220.5t60 -161.5 q38 -62 95.5 -95.5t138.5 -33.5q20 0 41 2t38 7q22 5 33 11t22 14v285h-202v248h460v-684q-84 -72 -187 -110q-52 -19 -106 -28.5t-117 -9.5z" />
+<glyph unicode="H" d="M137 1493h295v-569h369v569h295v-1493h-295v664h-369v-664h-295v1493z" />
+<glyph unicode="I" d="M172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="J" d="M524 -29q-58 0 -106 6.5t-100 19.5q-51 13 -102 31.5t-107 45.5v342q43 -45 89 -78t95 -56q96 -46 197 -46q115 0 169 58t54 185v754h-361v260h656v-1014q0 -273 -114 -390q-58 -60 -153.5 -89t-216.5 -29z" />
+<glyph unicode="K" d="M117 1493h295v-590l462 590h334l-471 -588l488 -905h-328l-354 672l-131 -166v-506h-295v1493z" />
+<glyph unicode="L" d="M225 1493h295v-1233h631v-260h-926v1493z" />
+<glyph unicode="M" d="M86 1493h352l178 -655l177 655h354v-1493h-254v1196l-158 -653h-235l-160 653v-1196h-254v1493z" />
+<glyph unicode="N" d="M119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
+<glyph unicode="O" d="M616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388 q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="P" d="M166 1493h405q308 0 445 -110q135 -110 135 -357q0 -248 -135 -357q-137 -110 -445 -110h-110v-559h-295v1493zM582 807q146 0 204 49t58 170t-58 170t-204 49h-121v-438h121z" />
+<glyph unicode="Q" d="M656 -23l-23 -5q-5 -1 -7 -1h-4q-137 0 -234.5 50.5t-162.5 145.5q-133 196 -133 577q0 192 33 336.5t100 244.5q70 103 169.5 149t221.5 46q131 0 229 -49.5t164 -146.5q132 -197 132 -579q0 -263 -63 -440t-183 -254l286 -332h-342zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5q-52 -119 -52 -388q0 -270 52 -389q52 -121 165 -121z" />
+<glyph unicode="R" d="M133 1493h426q288 0 414 -102q63 -51 94 -134.5t31 -192.5q0 -84 -18.5 -144t-56.5 -106q-36 -44 -88.5 -71.5t-127.5 -37.5q23 -5 43 -16t34 -25q15 -15 34.5 -46t44.5 -81l270 -537h-324l-180 377l-21 44q-42 86 -86 127.5t-100 41.5h-94v-590h-295v1493zM567 838 q121 0 174 48q24 22 38 59t14 97q0 110 -52 156q-53 47 -174 47h-139v-407h139z" />
+<glyph unicode="S" d="M582 -29q-60 0 -117 6t-114 20q-114 27 -216 79v305q62 -44 117 -74t112 -51q111 -41 216 -41q57 0 99 12.5t72 37.5q60 49 60 138q0 68 -40 118q-21 26 -50.5 45.5t-65.5 33.5l-145 55q-115 44 -189 88.5t-113 90.5q-79 92 -79 251q0 204 130 319q131 116 356 116 q54 0 107 -6t100 -17t99.5 -28.5t104.5 -41.5v-288q-94 67 -193 102t-195 35q-107 0 -163 -43q-57 -44 -57 -122q0 -63 42 -103q20 -20 59.5 -41t113.5 -49l127 -48q181 -68 265 -174q85 -109 85 -281q0 -221 -134 -332q-135 -112 -394 -112z" />
+<glyph unicode="T" d="M469 1235h-379v258h1053v-258h-379v-1235h-295v1235z" />
+<glyph unicode="U" d="M616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="V" d="M57 1493h297l262 -1247l263 1247h297l-355 -1493h-409z" />
+<glyph unicode="W" d="M0 1493h258l107 -1096l129 709h245l150 -709l84 1096h260l-172 -1493h-275l-170 784l-159 -784h-273z" />
+<glyph unicode="X" d="M465 758l-426 735h305l272 -475l273 475h305l-424 -735l436 -758h-305l-285 494l-284 -494h-305z" />
+<glyph unicode="Y" d="M469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="Z" d="M94 244l671 989h-649v260h1010v-244l-692 -989h706v-260h-1046v244z" />
+<glyph unicode="[" d="M384 1636h503v-190h-238v-1531h238v-185h-503v1906z" />
+<glyph unicode="\" d="M111 1493h223l786 -1683h-223z" />
+<glyph unicode="]" d="M344 -83h243v1528h-243v190h505v-1905h-505v187z" />
+<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
+<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
+<glyph unicode="`" d="M199 1638h282l283 -376h-197z" />
+<glyph unicode="a" d="M494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14 t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290 q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="b" d="M740 -29q-103 0 -177 49q-75 49 -121 146l-29 -166h-263v1556h292v-595q54 94 126 140q35 23 75.5 34.5t91.5 11.5q96 0 172 -38.5t129 -113.5q51 -72 79 -180.5t28 -254.5q0 -137 -26 -247.5t-80 -188.5q-54 -77 -128.5 -115t-168.5 -38zM647 211q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
+<glyph unicode="c" d="M702 -29q-263 0 -408 156q-146 157 -146 432q0 276 147 434q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33 t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26t-85 -16.5t-95 -5.5z" />
+<glyph unicode="d" d="M492 -29q-93 0 -167.5 38t-128.5 115q-106 153 -106 436t108 435q51 72 126 112t174 40q48 0 89 -10.5t79 -35.5q71 -47 125 -140v595h292v-1556h-263l-29 166q-23 -49 -54 -85.5t-67 -60.5q-74 -49 -178 -49zM586 211q94 0 150 92q55 91 55 254t-55 254q-56 92 -150 92 q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
+<glyph unicode="e" d="M665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63 q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="f" d="M426 895h-272v225h272v78q0 202 84 280t312 78h241v-225h-229q-67 0 -89 -24q-12 -12 -19 -36t-7 -53v-98h344v-225h-344v-895h-293v895z" />
+<glyph unicode="g" d="M578 -424q-44 0 -89.5 3t-90.5 10q-90 13 -183 42v269q42 -23 85 -40t84 -28q43 -11 87 -16.5t85 -5.5q68 0 113.5 14.5t74.5 43.5q59 59 59 183v121q-44 -80 -114 -119q-71 -39 -172 -39q-194 0 -306 150q-57 75 -85 176.5t-28 232.5q0 263 113 420q57 78 132 117 t169 39q98 0 173 -45t118 -127l29 143h264v-1036q0 -269 -121 -389q-122 -119 -397 -119zM596 246q93 0 150 91q28 45 42.5 103.5t14.5 136.5q0 74 -14 134.5t-43 107.5q-57 90 -150 90q-92 0 -148 -90q-57 -90 -57 -241q0 -152 57 -242q56 -90 148 -90z" />
+<glyph unicode="h" d="M172 1556h291v-604q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 121 -34 173q-17 26 -45.5 39t-65.5 13q-82 0 -127 -70q-45 -71 -45 -196v-641h-291v1556z" />
+<glyph unicode="i" d="M451 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="j" d="M614 1253q-30 0 -30 30v282q0 30 30 30h233q30 0 30 -30v-282q0 -30 -30 -30h-233zM170 -199h234q99 0 139 55q41 56 41 187v852h-297v225h590v-1077q0 -252 -90 -360q-44 -52 -119 -79.5t-182 -27.5h-316v225z" />
+<glyph unicode="k" d="M174 1556h293v-817l352 381h355l-424 -418l448 -702h-324l-307 524l-100 -96v-428h-293v1556z" />
+<glyph unicode="l" d="M788 -8q-209 0 -300 108q-91 107 -91 359v872h-297v225h590v-1097q0 -131 41 -187q40 -55 139 -55h234v-225h-316v0z" />
+<glyph unicode="m" d="M82 1120h184l29 -116q26 67 80 105q25 17 56.5 27.5t67.5 10.5q68 0 123 -40q56 -41 68 -99q33 70 84 105q50 34 128 34q73 0 122.5 -26t75.5 -74q29 -53 42 -156.5t13 -259.5v-631h-240v719q0 66 -4.5 105t-14.5 61q-19 43 -69 43q-29 0 -45 -12t-25 -32 q-10 -21 -15 -61.5t-5 -103.5v-719h-237v719q0 121 -20 166q-19 43 -70 43q-50 0 -69 -42q-19 -41 -19 -167v-719h-240v1120z" />
+<glyph unicode="n" d="M172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116v-641h-291v1120z" />
+<glyph unicode="o" d="M617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259 q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="p" d="M150 1120h263l29 -168q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1546zM647 215 q95 0 149 92q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
+<glyph unicode="q" d="M791 158q-53 -92 -125 -140q-36 -24 -76 -35.5t-91 -11.5q-93 0 -169 37t-132 115q-54 76 -81 185t-27 250q0 283 106 436q54 77 128.5 115t167.5 38q104 0 178 -49q36 -24 67 -60.5t54 -85.5l29 168h263v-1546h-292v584zM586 215q94 0 150 92q55 91 55 254t-55 254 q-56 92 -150 92q-95 0 -149 -92t-54 -254q0 -163 54 -254q54 -92 149 -92z" />
+<glyph unicode="r" d="M241 1120h264l29 -174q44 97 132 149q45 26 97 39t108 13q30 0 62 -3.5t59 -10.5q29 -8 58 -19.5t51 -23.5v-279q-48 44 -112 66q-32 11 -67.5 16.5t-73.5 5.5q-94 0 -163 -32q-70 -32 -108 -94q-10 -16 -19 -39t-14 -54q-5 -29 -7.5 -67t-2.5 -97v-516h-293v1120z" />
+<glyph unicode="s" d="M616 -29q-51 0 -105.5 4.5t-105.5 12.5t-105.5 22t-109.5 31v256q98 -56 198 -84q51 -14 98.5 -21.5t98.5 -7.5q99 0 153 30q26 15 39.5 36.5t13.5 56.5q0 23 -7.5 42t-31.5 37t-66.5 34t-110.5 31l-81 18q-168 38 -245 119q-77 82 -77 215q0 164 117 254t330 90 q48 0 98 -4t91 -11t91 -19.5t92 -27.5v-256q-41 26 -84.5 46.5t-83.5 32.5t-85.5 19t-94.5 7q-45 0 -81 -6.5t-62 -21.5q-26 -14 -38.5 -35.5t-12.5 -44.5q0 -45 51 -77t163 -58l11 -3l84 -20q79 -19 138 -49t97 -73t56 -101.5t18 -127.5q0 -173 -113 -259 q-57 -44 -142.5 -65.5t-195.5 -21.5z" />
+<glyph unicode="t" d="M827 -4q-253 0 -341 81q-89 80 -89 298v520h-286v225h286v306l293 130v-436h383v-225h-383v-534q0 -74 37 -107q20 -18 50.5 -25.5t70.5 -7.5h225v-225h-246v0z" />
+<glyph unicode="u" d="M481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="v" d="M80 1120h297l239 -874l240 874h297l-356 -1120h-361z" />
+<glyph unicode="w" d="M0 1120h244l133 -858l121 565h237l119 -565l135 858h244l-203 -1120h-278l-136 582l-135 -582h-278z" />
+<glyph unicode="x" d="M469 584l-381 536h342l186 -334l187 334h342l-377 -536l410 -584h-342l-220 377l-219 -377h-342z" />
+<glyph unicode="y" d="M137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
+<glyph unicode="z" d="M162 229l590 672h-566v219h895v-229l-589 -672h589v-219h-919v229z" />
+<glyph unicode="{" d="M853 -334q-248 0 -333 74q-85 73 -85 295v215q0 70 -12.5 124.5t-40.5 84.5q-27 29 -77 43t-117 14h-92v191h92q140 0 194 57q53 58 53 209v215q0 222 85 295q83 73 333 73h150v-190h-123q-105 0 -139 -42q-35 -43 -35 -185v-209q0 -165 -49 -232q-49 -66 -175 -86 q125 -21 175 -89q49 -67 49 -232v-205q0 -143 35 -187q34 -42 139 -42h123v-191h-150v0z" />
+<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
+<glyph unicode="}" d="M230 -143h121q104 0 140 43t36 186v205q0 165 49 232q26 35 70.5 57t103.5 32q-127 20 -174 86q-49 67 -49 232v209q0 140 -35 184q-19 23 -56 33t-85 10h-121v190h150q249 0 332 -73q83 -74 83 -295v-215q0 -81 14.5 -130.5t40.5 -77.5t73 -43t122 -15h92v-191h-92 q-141 0 -195 -58q-55 -58 -55 -208v-215q0 -221 -83 -295q-85 -74 -332 -74h-150v191z" />
+<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M615 1508q17 0 34 -2.5t34 -10.5q17 -7 29.5 -15.5t26.5 -23.5q12 -13 17 -20t11 -18q8 -14 11.5 -23t5.5 -22q5 -25 5 -49q0 -41 -12 -74.5t-37 -58.5q-24 -25 -56.5 -38t-66.5 -13q-8 0 -16.5 0.5t-14.5 1.5l-26 6q-6 2 -14.5 5.5t-10.5 4.5q-7 3 -13 7t-10 7 q-4 4 -7 6.5t-14 13.5q-50 49 -50 131q0 84 50 134q23 23 54.5 37t69.5 14zM687 960l68 -576v-456h-285v456l78 576h139z" />
+<glyph unicode="&#xa2;" d="M655 -25q-235 22 -371 179q-137 158 -137 408q0 130 35 232t102 179q136 156 371 172v287h142v-287q61 -5 120 -21q35 -10 62.5 -21.5t56.5 -25.5v-268q-29 22 -60.5 39.5t-55.5 27.5q-26 11 -58.5 19t-64.5 12v-692q33 2 64.5 10t59.5 19q29 12 58 28.5t57 38.5v-268 q-29 -16 -55.5 -27t-56.5 -19q-63 -18 -127 -22v-288h-142v288zM655 907q-113 -13 -175 -103q-30 -44 -46 -104.5t-16 -139.5q0 -75 15.5 -136.5t47.5 -109.5q63 -93 174 -99v692z" />
+<glyph unicode="&#xa3;" d="M119 260h235v334h-198v225h198v197q0 255 113 380q112 124 343 124q44 0 85 -4t70 -10t65.5 -17.5t71.5 -26.5v-274q-30 22 -63.5 38.5t-58.5 24.5q-32 11 -66 16t-66 5q-56 0 -94 -16.5t-63 -49.5q-50 -68 -50 -211v-176h336v-225h-336v-334h481v-260h-1003v260z" />
+<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
+<glyph unicode="&#xa5;" d="M469 438h-412v189h408l-86 151h-322v187h224l-273 528h318l290 -600l291 600h318l-273 -528h224v-187h-322l-86 -151h408v-189h-412v-438h-295v438z" />
+<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
+<glyph unicode="&#xa7;" d="M602 -195q-39 0 -85.5 3.5t-87.5 10.5t-85.5 18.5t-85.5 25.5v229q45 -16 85 -26.5t81 -18.5q39 -8 75.5 -12t71.5 -4q46 0 75.5 7.5t49.5 21.5t30.5 34t10.5 40q0 21 -12 41.5t-37.5 43.5t-66 49t-98.5 58l-37 20q-83 45 -142.5 88t-98 86t-57 86.5t-18.5 89.5 q0 38 13 79.5t39 76.5q24 32 61.5 58.5t87.5 43.5q-72 50 -103 110q-32 61 -32 141q0 143 104 229t277 86q72 0 152 -15q43 -8 82 -19.5t79 -25.5v-225q-86 30 -151 45q-31 7 -63.5 10.5t-58.5 3.5q-73 0 -116 -29q-23 -16 -33 -36.5t-10 -40.5q0 -23 12.5 -44t37.5 -42.5 t63 -45.5t90 -52q9 -5 13 -7l6 -3l3 -1.5t6 -3.5q57 -31 100 -55t75.5 -44.5t56 -40t41.5 -40.5q59 -71 59 -171q0 -90 -47 -154t-150 -111q70 -49 103 -111q32 -61 32 -144q0 -71 -25.5 -129.5t-78.5 -100.5q-50 -40 -123 -61.5t-170 -21.5zM711 473q27 17 48 36.5t32 34.5 q12 17 18 36t6 33q0 46 -67 103.5t-198 123.5l-32 16q-54 -35 -79 -70t-25 -74q0 -56 49 -99q12 -11 31 -23.5t48.5 -29.5t70.5 -38.5t98 -48.5z" />
+<glyph unicode="&#xa8;" d="M331 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1339q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
+<glyph unicode="&#xaa;" d="M537 698q-128 0 -205 68q-76 68 -76 187q0 67 24 117.5t69 82.5q91 66 280 66h157v26q0 27 -12.5 45t-32.5 29q-21 11 -55 17.5t-85 6.5q-38 0 -76.5 -4t-73.5 -12q-71 -16 -136 -51v188q27 11 66 22.5t81 19.5q37 7 74.5 10.5t76.5 3.5q188 0 277 -86t89 -269v-448h-174 l-19 92q-49 -57 -110 -84q-62 -27 -139 -27zM593 866q42 0 78 14.5t61 37.5q27 26 40.5 59.5t13.5 71.5v30h-102q-109 0 -159 -26t-50 -83q0 -22 7.5 -42t22.5 -34q14 -13 35.5 -20.5t52.5 -7.5zM293 598h688v-170h-688v170z" />
+<glyph unicode="&#xab;" d="M59 535v131l469 393v-238l-277 -221l277 -221v-238zM513 535v131l469 393v-238l-276 -221l276 -221v-238z" />
+<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
+<glyph unicode="&#xad;" d="M301 735h631v-291h-631v291z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
+<glyph unicode="&#xaf;" d="M301 1556h631v-188h-631v188z" />
+<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
+<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#xb2;" d="M274 1261q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79 t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
+<glyph unicode="&#xb3;" d="M588 1113q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64z" />
+<glyph unicode="&#xb4;" d="M752 1638h282l-368 -376h-197z" />
+<glyph unicode="&#xb5;" d="M154 1120h287v-680q0 -113 41 -171q20 -28 49.5 -43t72.5 -15q81 0 122 57q40 56 40 172v680h289v-776q0 -69 14 -102q13 -31 44 -31q8 0 13.5 1.5t13.5 4.5q9 4 13.5 6.5t14.5 9.5v-217q-25 -13 -42.5 -20.5t-37.5 -13.5q-19 -5 -36.5 -8t-37.5 -3q-39 0 -66.5 10.5 t-48.5 27.5q-26 21 -42.5 50t-30.5 70q-38 -78 -92 -118q-55 -40 -126 -40q-58 0 -99 23q-42 23 -68 72l2 -494h-289v1548z" />
+<glyph unicode="&#xb6;" d="M496 649q-107 14 -183.5 47.5t-131.5 87.5q-111 109 -111 286q0 192 130 307q131 116 345 116h520v-1690h-191v1543h-190v-1543h-188v846z" />
+<glyph unicode="&#xb7;" d="M614 344q-73 0 -138.5 28t-115.5 79q-51 51 -77.5 116.5t-26.5 138.5q0 75 27.5 139.5t78.5 115.5q50 49 116 76.5t139 27.5q72 0 137 -27t116 -76q54 -53 80.5 -118.5t26.5 -135.5q0 -72 -28 -139.5t-79 -118.5q-50 -50 -116.5 -78t-139.5 -28z" />
+<glyph unicode="&#xb8;" d="M573 -401q-23 0 -51 1.5t-51 4.5q-18 2 -32 4.5t-25.5 5t-22.5 5t-24 5.5v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-11 20 -27.5 45.5t-39.5 55.5h140q30 -32 51.5 -62t33.5 -53q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-114.5 -12.5z" />
+<glyph unicode="&#xb9;" d="M313 1265h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145z" />
+<glyph unicode="&#xba;" d="M637 698q-87 0 -151.5 28.5t-112.5 82.5t-73.5 127t-25.5 171q0 189 99 302q97 111 264 111q166 0 264 -111q98 -112 98 -302q0 -94 -23.5 -167.5t-73.5 -130.5q-98 -111 -265 -111zM637 874q35 0 64.5 15.5t51.5 47.5q42 61 42 171q0 109 -42 172q-20 30 -49 46.5 t-67 16.5q-41 0 -69 -18t-46 -44q-43 -64 -43 -173t42 -171q19 -28 48 -45.5t68 -17.5zM293 598h688v-170h-688v170z" />
+<glyph unicode="&#xbb;" d="M253 379l276 221l-276 221v238l469 -393v-131l-469 -394v238zM707 379l277 221l-277 221v238l469 -393v-131l-469 -394v238z" />
+<glyph unicode="&#xbc;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
+<glyph unicode="&#xbd;" d="M55 969h226v543l-220 -43v149l222 41h194v-690h226v-145h-648v145zM47 618l1059 263l37 -119l-1059 -262zM475 -129q26 22 61 51t80 67q159 133 236.5 217t77.5 131q0 17 -10 38t-33 37q-44 30 -117 30q-30 0 -63 -4.5t-62 -12.5t-69 -21.5t-76 -30.5v164 q32 10 72.5 19.5t73.5 14.5q28 5 65.5 8t76.5 3q81 0 146.5 -15.5t111.5 -47.5q47 -32 70 -74t23 -82q0 -36 -20 -79t-62.5 -95t-110 -113.5t-162.5 -135.5q-28 -22 -36.5 -28.5t-11.5 -8.5t-8 -6.5t-27 -21.5h440v-145h-666v141z" />
+<glyph unicode="&#xbe;" d="M361 809q-40 0 -77 3t-75 8q-76 11 -149 30v154q30 -12 65.5 -22.5t77.5 -18.5q38 -7 77.5 -10.5t72.5 -3.5q50 0 82.5 8t56.5 24q47 32 47 89q0 60 -49 94t-135 34h-111v146h111q74 0 117 25q42 25 42 70q0 19 -8.5 37.5t-30.5 32.5q-20 13 -47.5 19t-68.5 6 q-29 0 -63 -3t-69 -8t-69 -14t-68 -20v152q32 8 67 14.5t72 11.5q35 5 69 7t66 2q76 0 142 -13.5t114 -44.5q45 -29 68 -69t23 -91q0 -73 -52 -119t-151 -63q111 -15 170 -71q58 -55 58 -149q0 -120 -96 -183q-97 -64 -279 -64zM47 618l1059 263l37 -119l-1059 -262z M823 -90h-393v162l375 493h204v-512h109v-143h-109v-180h-186v180zM823 53v330l-250 -330h250z" />
+<glyph unicode="&#xbf;" d="M667 1222q-67 0 -114 47t-47 120q0 37 12 68t35 54q24 23 54 34t60 11q16 0 33 -3q4 -1 12.5 -3t16.5 -6q7 -3 15 -7.5t12 -6.5t10.5 -7.5t14.5 -13.5q10 -10 19 -23t16 -30q12 -30 12 -66q0 -74 -47 -121t-114 -47zM606 -27q-99 0 -179 23t-137 71t-85.5 113t-28.5 143 q0 42 8.5 77t25.5 68q17 32 47.5 70.5t80.5 86.5l88 86q66 64 85 106q19 41 19 105q0 3 1 6q1 11 1 21v20v123h267v-154q0 -100 -31 -169q-17 -38 -44.5 -74t-66.5 -74l-90 -89q-20 -20 -33.5 -34.5t-23 -25.5t-15.5 -20t-11 -18q-23 -43 -23 -87q0 -32 11.5 -57.5 t34.5 -42.5t57.5 -25.5t77.5 -8.5q45 0 88 9t89 27q48 19 92 44t95 61v-268q-49 -28 -97 -48.5t-101 -35.5q-50 -14 -98 -21.5t-104 -7.5z" />
+<glyph unicode="&#xc0;" d="M283 1852h284l199 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc1;" d="M668 1852h284l-286 -264h-197zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc2;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc3;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q14 -5 35.5 -15t39.5 -22l60 -39q6 -4 16 -9.5t25 -11.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9t-1 -8v-5q0 -108 -53 -173q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34q-2 1 -4.5 3t-7.5 4q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc4;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM436 1493h361l403 -1493h-295l-92 369h-395l-90 -369h-295zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc5;" d="M418 1421q-45 39 -65 86q-11 24 -16 51.5t-5 55.5q0 63 23 115t60 89q35 35 87 59t115 24q56 0 108 -21t94 -63q36 -36 59 -87.5t23 -114.5q0 -29 -5 -57t-16 -51q-21 -48 -65 -86l385 -1421h-295l-92 369h-395l-90 -369h-295zM618 1485q53 0 92 39q38 38 38 92t-39 93 q-40 38 -92 38q-29 0 -52.5 -10.5t-40.5 -27.5q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q20 -20 44.5 -29.5t50.5 -9.5zM756 612l-140 611l-139 -611h279z" />
+<glyph unicode="&#xc6;" d="M358 1493h803v-260h-291v-311h260v-260h-260v-402h310v-260h-564v362h-282l-86 -362h-248zM616 598v635h-79l-148 -635h227z" />
+<glyph unicode="&#xc7;" d="M774 1255q-160 0 -243 -128q-83 -130 -83 -382t83 -380q82 -129 243 -129q77 0 149 33q35 16 69.5 39.5t77.5 62.5v-328q-71 -36 -147 -54q-21 -5 -42.5 -8.5t-44.5 -5.5q21 -26 36.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5q-26 -20 -69.5 -32.5 t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 40.5q-253 20 -393 196q-159 199 -159 575t159 576q80 100 195 149.5t264 49.5q45 0 85.5 -4.5 t79.5 -13.5q79 -18 146 -54v-328q-45 42 -80.5 65.5t-67.5 37.5q-38 17 -74.5 24.5t-73.5 7.5z" />
+<glyph unicode="&#xc8;" d="M314 1842h284l199 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xc9;" d="M699 1841h284l-286 -264h-197zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xca;" d="M492 1852h309l223 -264h-178l-199 161l-198 -161h-178zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xcb;" d="M362 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM757 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM168 1493h930v-260h-635v-322h575v-260h-575v-391h635v-260h-930v1493z" />
+<glyph unicode="&#xcc;" d="M283 1852h284l199 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xcd;" d="M668 1852h284l-286 -264h-197zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xce;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xcf;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM172 260h297v973h-297v260h889v-260h-297v-973h297v-260h-889v260z" />
+<glyph unicode="&#xd0;" d="M137 664h-137v237h137v592h316q366 0 527 -174q79 -86 120 -227.5t41 -344.5q0 -395 -161 -571t-527 -176h-316v664zM512 266q174 0 248 110t74 372q0 260 -74 370q-73 109 -248 109h-80v-326h211v-237h-211v-398h80z" />
+<glyph unicode="&#xd1;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q17 -6 36.5 -15.5t38.5 -21.5l60 -39q8 -5 19 -10.5t22 -10.5q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q0 -2 -0.5 -3.5t-0.5 -13.5q0 -50 -13.5 -93.5t-39.5 -75.5 q-29 -35 -65 -50t-77 -15q-36 0 -72 11q-20 6 -38.5 15t-39.5 23l-54 34l-8 5l-4 2q-22 12 -39.5 19t-33.5 7q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM119 1493h317l416 -1085v1085h260v-1493h-315l-418 1085v-1085h-260v1493z" />
+<glyph unicode="&#xd2;" d="M283 1852h284l199 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd3;" d="M668 1852h284l-286 -264h-197zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121 q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd4;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5 zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd5;" d="M268 1618q0 55 14.5 98.5t39.5 72.5q28 33 65.5 49t78.5 16q37 0 73 -12q15 -5 34.5 -14t40.5 -23l60 -39q8 -5 17.5 -10t23.5 -11q10 -4 18 -6t17 -2q36 0 56 30q19 29 19 87h140v-6t-1 -9q-1 -4 -1 -7v-5q0 -109 -53 -174q-29 -35 -65 -50t-77 -15q-36 0 -72 11 q-20 6 -38.5 15t-39.5 23l-54 34l-12 7q-21 11 -38.5 18.5t-34.5 7.5q-32 0 -51 -30q-20 -31 -20 -80v-6h-140v30zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5 q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390q52 -121 165 -121z" />
+<glyph unicode="&#xd6;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-135 0 -231.5 50.5t-159.5 144.5q-133 197 -133 579q0 191 33 335.5t100 244.5 q69 102 169 148.5t222 46.5q131 0 229 -49.5t164 -146.5q132 -197 132 -579t-132 -578q-64 -95 -161.5 -145.5t-231.5 -50.5zM616 236q114 0 166 121q52 119 52 389q0 269 -52 388q-52 121 -166 121q-59 0 -99 -30.5t-66 -90.5t-39 -153.5t-13 -233.5q0 -271 52 -390 q52 -121 165 -121z" />
+<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
+<glyph unicode="&#xd8;" d="M-6 51l168 238q-19 49 -31 95.5t-21 106.5q-8 54 -13 114t-5 138q0 385 133 581q66 98 162 147t229 49q105 0 186 -31q44 -17 79.5 -40t64.5 -52l113 162l162 -115l-158 -223q40 -97 59 -213q10 -60 14.5 -125.5t4.5 -137.5q0 -382 -132 -578q-69 -102 -168 -149 t-226 -47q-57 0 -102.5 8.5t-87.5 25.5t-78 40.5t-71 58.5l-120 -167zM772 1153q-26 51 -65 77q-38 25 -90 25q-59 0 -99 -30.5t-66 -89.5q-53 -121 -53 -379v-127zM618 236q60 0 99 31.5t64 89.5q13 30 22.5 68.5t16.5 90t10.5 117t3.5 148.5l-1 23q-1 14 -1 20.5 t-0.5 13.5t-1 17.5t-1.5 32.5l-378 -534q11 -28 28.5 -50.5t37.5 -36.5q43 -31 101 -31z" />
+<glyph unicode="&#xd9;" d="M283 1852h284l199 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="&#xda;" d="M668 1852h284l-286 -264h-197zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="&#xdb;" d="M461 1852h309l223 -264h-178l-199 161l-198 -161h-178zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442 q-122 -138 -389 -138z" />
+<glyph unicode="&#xdc;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM616 -29q-267 0 -388 138q-122 139 -122 442v942h295v-1016q0 -57 15 -101.5t42 -74.5 q29 -32 69.5 -47.5t88.5 -15.5t88.5 15.5t69.5 47.5q27 30 42 74.5t15 101.5v1016h295v-942q0 -305 -121 -442q-122 -138 -389 -138z" />
+<glyph unicode="&#xdd;" d="M668 1852h284l-286 -264h-197zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="&#xde;" d="M162 1493h295v-238h110q309 0 445 -109q68 -55 101.5 -144.5t33.5 -210.5q0 -242 -137 -350q-70 -56 -180.5 -82.5t-262.5 -26.5h-110v-332h-295v1493zM578 575q146 0 204 49t58 169q0 122 -58 171q-59 50 -204 50h-121v-439h121z" />
+<glyph unicode="&#xdf;" d="M759 -29q-32 0 -64.5 3t-61.5 9q-26 5 -60.5 15t-68.5 22v250q29 -16 58 -27.5t58 -19.5q27 -8 53.5 -12t55.5 -4q42 0 70 9t48 25t31 38t11 49q0 42 -29 80.5t-86 83.5q-8 6 -11 8t-6 4.5t-8.5 6.5t-19.5 15l-86 68q-29 23 -51.5 51.5t-37.5 60.5q-30 63 -30 141 q0 125 74 211q39 45 91.5 72.5t119.5 43.5q-5 39 -20.5 67t-37.5 44q-25 18 -60 27t-77 9q-46 0 -83 -11.5t-63 -38.5q-48 -51 -48 -149v-1122h-293v1126q0 212 121 321q63 57 150 83t196 26q117 0 198.5 -29t135.5 -89q106 -118 106 -365v-14q-72 -4 -115.5 -17.5 t-72.5 -33.5q-32 -23 -49 -53.5t-17 -65.5q0 -21 6.5 -40t21 -37.5t36.5 -39t52 -44.5q13 -11 15.5 -12.5t3.5 -2.5l97 -74q45 -34 73.5 -67t48.5 -71q19 -36 29.5 -78t10.5 -93q0 -79 -27 -146.5t-84 -116.5q-57 -48 -135 -72t-169 -24z" />
+<glyph unicode="&#xe0;" d="M199 1673h282l283 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe1;" d="M752 1673h282l-368 -376h-197zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250 q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5 q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe2;" d="M496 1672h241l256 -376h-178l-199 225l-198 -225h-178zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5 t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5 q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5 q45 -45 124 -45z" />
+<glyph unicode="&#xe3;" d="M768 1317q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5 q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35 q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42 q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe4;" d="M331 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203 v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5 q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10z M576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe5;" d="M617 1249q-57 0 -109.5 21t-93.5 62q-35 35 -58.5 87.5t-23.5 115.5q0 64 24 115.5t59 86.5q41 41 92.5 61.5t108.5 20.5q62 0 113.5 -22.5t88.5 -59.5q36 -36 59.5 -88t23.5 -115q0 -57 -20.5 -108t-61.5 -93q-42 -42 -93.5 -63t-108.5 -21zM617 1403q54 0 93 39 q38 38 38 92t-39 93q-40 38 -93 38q-54 0 -92 -38q-39 -39 -39 -93q0 -55 38 -93q16 -16 40 -27t54 -11zM494 -29q-91 0 -164.5 25t-127.5 76q-107 101 -107 282q0 96 30.5 169t96.5 121q127 93 393 93h203v49q0 37 -13.5 64t-37.5 44q-26 19 -65.5 27.5t-91.5 8.5 q-48 0 -98.5 -6.5t-99.5 -19.5q-48 -13 -100 -34.5t-106 -50.5v250q42 17 94.5 33.5t102.5 25.5q41 8 100 14t125 6q70 0 126.5 -8t102 -23t80 -36t60.5 -46q27 -27 48 -62t35.5 -82.5t21.5 -108t7 -138.5q0 -19 -0.5 -50t-1 -68t-1 -76.5t-1 -74.5t-1 -62t-0.5 -39 q0 -21 0.5 -42t1.5 -35q2 -20 3.5 -39.5t3.5 -32.5q3 -20 7 -38.5t7 -28.5q5 -15 12.5 -31t15.5 -27h-290q-9 15 -16.5 31t-11.5 27q-3 10 -7 28.5t-6 38.5q-55 -73 -142 -114q-42 -20 -86.5 -30t-101.5 -10zM576 174q56 0 101 21.5t77 66.5q64 86 64 244v20h-117 q-165 0 -229 -42q-65 -42 -65 -142q0 -41 11 -70.5t34 -52.5q45 -45 124 -45z" />
+<glyph unicode="&#xe6;" d="M346 -29q-158 0 -245 92q-87 93 -87 263q0 185 101 277q100 91 305 91h76v51q0 93 -39 140t-114 47q-32 0 -64 -7.5t-61 -19.5t-66 -32.5t-76 -49.5v246q75 40 144 59t137 19q46 0 86 -7.5t72 -23.5q62 -31 97 -96q28 61 95 94q66 33 158 33q91 0 151.5 -29.5t97.5 -89.5 q18 -29 31.5 -67t23 -89t14.5 -117t5 -149v-127h-451q0 -143 50 -219q23 -35 58 -55.5t87 -20.5q34 0 63 8t57 22q26 13 55.5 33t63.5 54v-244q-50 -44 -112 -65q-32 -11 -68.5 -16t-74.5 -5q-55 0 -99 10.5t-82 31.5q-75 42 -117 122q-20 -42 -47 -73t-59 -51 q-65 -40 -166 -40zM963 690v23q0 126 -25 172q-26 47 -88 47t-88 -47q-25 -46 -25 -172v-23h226zM365 184q63 0 94 43q30 43 30 131v125h-73q-86 0 -131 -39t-45 -115q0 -69 32 -107t93 -38z" />
+<glyph unicode="&#xe7;" d="M761 909q-75 0 -128.5 -23.5t-90.5 -67.5q-77 -92 -77 -259t77 -258q76 -90 220 -90q84 0 159 29q32 12 68.5 33t71.5 53v-269q-40 -23 -78.5 -38t-80.5 -26q-50 -12 -101 -18q22 -26 37.5 -49t25.5 -41q27 -51 27 -106q0 -46 -16.5 -79.5t-45.5 -55.5 q-26 -20 -69.5 -32.5t-116.5 -12.5q-24 0 -49.5 1.5t-50.5 4.5q-38 5 -59.5 10t-44.5 10v156q23 -8 44.5 -14.5t42.5 -11.5q42 -9 78 -9q57 0 91 23q32 23 32 61q0 28 -21 69q-8 16 -19.5 34.5t-27.5 39.5q-110 8 -195.5 46.5t-149.5 107.5q-146 157 -146 432q0 276 147 434 q147 156 404 156q92 0 176 -21q83 -21 166 -65v-268q-32 28 -68.5 49.5t-71.5 35.5t-76 21.5t-84 7.5z" />
+<glyph unicode="&#xe8;" d="M238 1673h282l283 -376h-197zM675 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM854 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xe9;" d="M781 1672h282l-368 -376h-197zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56 v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xea;" d="M525 1673h241l256 -376h-178l-199 225l-198 -225h-178zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65 q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xeb;" d="M360 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM755 1349q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM665 -29q-146 0 -252.5 37.5t-181.5 113.5q-149 152 -149 432q0 140 35.5 247t107.5 187 q142 159 392 159q118 0 216 -35.5t169 -111.5t104 -181.5t33 -234.5v-119h-759q2 -133 78 -197q77 -65 229 -65q101 0 200 29q46 14 97 36t108 56v-269q-102 -42 -208 -63q-54 -11 -109.5 -16t-109.5 -5zM844 685q-2 117 -59 176q-27 28 -69.5 43.5t-98.5 15.5 q-103 0 -163 -61q-60 -62 -71 -175z" />
+<glyph unicode="&#xec;" d="M159 1683h282l283 -376h-197zM822 -12q-209 0 -300 108q-91 107 -91 359v440h-247v225h540v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#xed;" d="M694 1673h282l-368 -376h-197zM802 -12q-209 0 -300 108q-91 107 -91 359v440h-227v225h520v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#xee;" d="M440 1673h241l256 -376h-178l-199 225l-198 -225h-178zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55h234v-225h-316z" />
+<glyph unicode="&#xef;" d="M261 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM656 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM812 -12q-209 0 -300 108q-91 107 -91 359v440h-237v225h530v-665q0 -131 41 -187q40 -55 139 -55 h234v-225h-316z" />
+<glyph unicode="&#xf0;" d="M613 -29q-125 0 -219 41t-158 112q-69 77 -103.5 181t-34.5 229q0 239 129 379q61 66 148 103t199 37q41 0 73 -6t58 -19l-160 219l-312 -119l-55 117l283 109l-158 202h293l92 -116l297 127l66 -123l-277 -117l166 -227q51 -70 86 -135t57 -128q43 -126 43 -278 q0 -137 -34 -246t-101 -186t-162.5 -116.5t-215.5 -39.5zM613 209q57 0 98.5 24.5t67.5 66.5q29 45 43 111t14 145q0 26 -1.5 52.5t-4.5 48.5q-2 17 -7.5 46.5t-11.5 56.5q-33 18 -56 27t-42 14q-51 14 -96 14q-52 0 -95 -18.5t-73 -53.5q-29 -35 -44.5 -86t-15.5 -122 q0 -72 15.5 -133t44.5 -104q59 -89 164 -89z" />
+<glyph unicode="&#xf1;" d="M768 1297q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5zM172 1120h262l29 -168q32 93 106 144q75 51 182 51q158 0 239 -105q81 -107 81 -315v-727h-291v682q0 123 -34 175q-17 26 -45.5 39t-64.5 13q-43 0 -73.5 -18t-53.5 -53q-22 -34 -34 -81t-12 -116 v-641h-291v1120z" />
+<glyph unicode="&#xf2;" d="M199 1596h282l283 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf3;" d="M752 1596h282l-368 -299h-197zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209 q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf4;" d="M496 1596h241l256 -299h-178l-199 147l-198 -147h-178zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187 q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf5;" d="M768 1297q-21 0 -36.5 3.5t-30.5 8.5q-23 8 -40 18t-43 27l-67 45q-44 29 -72 29q-31 0 -51 -32t-20 -89v-8h-140v33q0 114 54 183t143 69q37 0 72 -13q20 -8 38 -19t39 -26l62 -43q14 -10 22.5 -14t17.5 -8q19 -8 35 -8q36 0 55 31t19 89v9h140v-8t-1 -9t-1 -8.5v-5.5 q0 -117 -53 -185q-26 -33 -61 -51t-81 -18zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42 zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf6;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM617 -29q-128 0 -222 43.5t-157 114.5q-70 79 -105 189t-35 242q0 134 35.5 242.5t104.5 186.5 t164.5 118t213.5 40q123 0 218 -41.5t161 -115.5t103 -181.5t37 -249.5q0 -134 -35 -242t-104 -187q-66 -75 -161.5 -117t-217.5 -42zM616 209q106 0 166 92q60 93 60 259q0 164 -60 257q-31 48 -73 70t-93 22q-56 0 -96.5 -24.5t-68.5 -67.5q-60 -93 -60 -257 q0 -166 60 -259q60 -92 165 -92z" />
+<glyph unicode="&#xf7;" d="M491 889q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249zM66 762h1099v-238h-1099v238zM491 86q-30 0 -30 30v249q0 30 30 30h249q30 0 30 -30v-249q0 -30 -30 -30h-249z" />
+<glyph unicode="&#xf8;" d="M25 2l163 197q-44 72 -67 162t-23 198q0 135 35.5 243.5t104.5 186.5q70 79 166 118.5t211 39.5q42 0 83.5 -5t76.5 -16q33 -10 69.5 -27t70.5 -40l148 176l139 -121l-160 -188q25 -41 42.5 -85.5t27.5 -82.5q11 -42 17 -93t6 -108q0 -131 -35 -239.5t-104 -187.5 q-66 -75 -161 -117t-215 -42q-45 0 -84.5 6t-77.5 17t-72 27t-71 40l-151 -178zM745 860q-25 25 -57 37t-70 12q-106 0 -166 -92q-61 -92 -61 -258q0 -18 0.5 -32.5t1.5 -27.5q1 -12 1.5 -21t4.5 -29zM617 209q106 0 165 93q30 48 45 113t15 138q0 17 -0.5 35t-1.5 29 q-1 9 -3.5 26.5t-5.5 31.5l-348 -413q31 -26 64 -40q32 -13 70 -13z" />
+<glyph unicode="&#xf9;" d="M199 1646h282l283 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="&#xfa;" d="M752 1646h282l-368 -376h-197zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="&#xfb;" d="M496 1646h241l256 -376h-178l-199 225l-198 -225h-178zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z " />
+<glyph unicode="&#xfc;" d="M331 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1347q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM481 -29q-75 0 -135.5 25t-103.5 81q-82 106 -82 314v729h293v-684q0 -121 34 -173q17 -26 45.5 -39 t65.5 -13q38 0 70 16t56 54q44 71 44 196v643h293v-1120h-264l-29 166q-32 -93 -105 -144q-75 -51 -182 -51z" />
+<glyph unicode="&#xfd;" d="M762 1646h282l-368 -376h-197zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
+<glyph unicode="&#xfe;" d="M150 1556h292v-604q46 97 121 146q74 49 177 49q94 0 168.5 -38t128.5 -115q54 -78 80 -188.5t26 -247.5q0 -146 -28 -254.5t-79 -180.5q-55 -78 -132.5 -115t-168.5 -37q-47 0 -88.5 10.5t-79.5 36.5q-32 21 -65.5 56.5t-59.5 83.5v-584h-292v1982zM647 215q95 0 149 92 q54 91 54 254q0 162 -54 254t-149 92q-94 0 -150 -92q-55 -91 -55 -254t55 -254q56 -92 150 -92z" />
+<glyph unicode="&#xff;" d="M341 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM736 1320q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM137 -201h119q42 0 76.5 7t55.5 23q23 17 45.5 57t39.5 85l22 60l-426 1089h308l256 -727l245 727 h308l-465 -1241q-32 -85 -67.5 -141t-73.5 -90t-88 -53t-113 -19h-242v223z" />
+<glyph unicode="&#x152;" d="M633 0q-324 0 -444 156q-62 80 -91.5 226t-29.5 363q0 437 121 592q62 80 174 118t270 38h573v-260h-332v-311h302v-260h-302v-402h343v-260h-584zM621 260v973h-52q-63 0 -105.5 -23.5t-63.5 -65.5q-23 -45 -34.5 -140.5t-11.5 -258.5q0 -82 3 -146t9 -112.5t14.5 -83 t19.5 -56.5q23 -46 66.5 -66.5t102.5 -20.5h52z" />
+<glyph unicode="&#x153;" d="M374 -29q-101 0 -167.5 36t-107.5 102q-45 72 -65 185t-20 266q0 156 20.5 268t64.5 183q42 69 110 102.5t168 33.5q95 0 156 -29q62 -29 104 -96q28 60 93 93q64 32 158 32q86 0 149 -29.5t100 -89.5q73 -118 73 -422v-127h-450q0 -143 50 -219q49 -76 145 -76 q33 0 62 8t57 22q29 14 58.5 34.5t61.5 52.5v-244q-50 -44 -111 -65q-62 -21 -144 -21q-102 0 -172 37q-71 37 -118 111q-21 -37 -47.5 -65t-61.5 -47q-68 -36 -166 -36zM385 184q45 0 68.5 18t36.5 49q7 18 13 44t9.5 62.5t5.5 86t2 114.5q0 71 -2 122t-6 87.5t-9.5 60.5 t-12.5 40q-14 34 -39.5 50t-66.5 16q-38 0 -64 -15.5t-41 -50.5q-17 -38 -24 -111.5t-7 -196.5q0 -68 2 -118.5t6 -87t9.5 -62t13.5 -42.5q14 -31 38 -48.5t68 -17.5zM985 690v35q0 57 -5.5 97t-19.5 65q-25 47 -87 47q-34 0 -55 -12.5t-33 -35.5q-11 -22 -18 -60.5 t-7 -112.5v-23h225z" />
+<glyph unicode="&#x178;" d="M331 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM726 1606q-30 0 -30 30v186q0 30 30 30h176q30 0 30 -30v-186q0 -30 -30 -30h-176zM469 588l-461 905h318l290 -600l291 600h318l-461 -905v-588h-295v588z" />
+<glyph unicode="&#x2c6;" d="M496 1638h241l256 -376h-178l-199 225l-198 -225h-178z" />
+<glyph unicode="&#x2dc;" d="M768 1307q-36 0 -69 12t-81 45l-67 45q-22 14 -39 21.5t-33 7.5q-19 0 -31.5 -8.5t-20.5 -22.5q-19 -31 -19 -90v-8h-140q0 71 13.5 123.5t38.5 87.5q23 33 59 53t86 20q37 0 72 -13q20 -8 38 -18.5t39 -25.5l62 -43q13 -9 21 -13.5t19 -9.5q19 -8 35 -8q35 0 55 32 q19 31 19 89v8h140q0 -137 -51 -210q-24 -35 -60.5 -54.5t-85.5 -19.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="990" />
+<glyph unicode="&#x2001;" horiz-adv-x="1980" />
+<glyph unicode="&#x2002;" horiz-adv-x="990" />
+<glyph unicode="&#x2003;" horiz-adv-x="1980" />
+<glyph unicode="&#x2004;" horiz-adv-x="660" />
+<glyph unicode="&#x2005;" horiz-adv-x="495" />
+<glyph unicode="&#x2006;" horiz-adv-x="330" />
+<glyph unicode="&#x2007;" horiz-adv-x="330" />
+<glyph unicode="&#x2008;" horiz-adv-x="247" />
+<glyph unicode="&#x2009;" horiz-adv-x="396" />
+<glyph unicode="&#x200a;" horiz-adv-x="110" />
+<glyph unicode="&#x2010;" d="M221 746h791v-291h-791v291z" />
+<glyph unicode="&#x2011;" d="M221 746h791v-291h-791v291z" />
+<glyph unicode="&#x2012;" d="M221 746h791v-291h-791v291z" />
+<glyph unicode="&#x2013;" d="M0 690h1233v-246h-1233v246z" />
+<glyph unicode="&#x2014;" d="M0 690h1233v-246h-1233v246z" />
+<glyph unicode="&#x2018;" d="M432 1174l197 382h215l-99 -382v-271h-313v271z" />
+<glyph unicode="&#x2019;" d="M530 1286v270h314v-270l-197 -383h-215z" />
+<glyph unicode="&#x201a;" d="M461 96v271h313v-271l-196 -383h-216z" />
+<glyph unicode="&#x201c;" d="M152 1174l196 382h215l-98 -382v-271h-313v271zM672 1174l196 382h213l-96 -382v-271h-313v271z" />
+<glyph unicode="&#x201d;" d="M248 1286v270h313v-270l-196 -383h-215zM768 1286v270h313v-270l-196 -383h-215z" />
+<glyph unicode="&#x201e;" d="M248 96v271h313v-271l-196 -383h-215zM768 96v271h313v-271l-196 -383h-215z" />
+<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-28 12 -59 32.5t-57 46.5q-25 26 -44 55.5t-33 61.5t-20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q31 -13 60.5 -32.5t54.5 -44.5q24 -24 44.5 -53t35.5 -64q27 -65 27 -137 q0 -74 -27 -138q-12 -29 -31.5 -59t-48.5 -59t-57.5 -47.5t-58.5 -31.5q-29 -12 -64 -20t-76 -8z" />
+<glyph unicode="&#x2026;" d="M87 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM499 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235zM911 0q-30 0 -30 30v307q0 30 30 30h235q30 0 30 -30v-307q0 -30 -30 -30h-235z" />
+<glyph unicode="&#x202f;" horiz-adv-x="396" />
+<glyph unicode="&#x2039;" d="M256 535v131l469 393v-238l-276 -221l276 -221v-238z" />
+<glyph unicode="&#x203a;" d="M510 379l278 221l-278 221v238l469 -393v-131l-469 -394v238z" />
+<glyph unicode="&#x205f;" horiz-adv-x="495" />
+<glyph unicode="&#x20ac;" d="M779 -29q-234 0 -380 131q-147 132 -190 381h-203l84 187h96q-1 7 -1 14.5v15.5v2.5t-0.5 6t-0.5 13v23.5v23.5t0.5 13t0.5 5.5v3v15.5t1 15.5h-180l84 189h119q43 248 190 380q73 66 168 98t211 32q44 0 82.5 -4.5t75.5 -13.5q73 -18 141 -54v-328q-74 78 -144 114 q-71 36 -147 36q-57 0 -101 -18t-76 -47q-32 -30 -58 -78t-43 -117h442l-84 -189h-382q-1 -8 -1.5 -16.5t-0.5 -17.5q0 -5 -0.5 -12t-0.5 -33t0.5 -31t0.5 -8v-16.5t1 -16.5h316l-84 -187h-207q24 -126 96 -194q38 -35 82 -51.5t97 -16.5q79 0 150 36q70 36 144 114v-328 q-66 -36 -139 -54q-74 -18 -159 -18z" />
+<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-bolditalic-latin-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-bolditalic-latin-webfont.svg
new file mode 100755
index 0000000..4aa1f74
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-bolditalic-latin-webfont.svg
@@ -0,0 +1,241 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackbold_italic" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph unicode="&#xd;" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M637 1054l71 454h286l-72 -457l-159 -575h-139zM612 -65q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70 t-71.5 -48q-33 -13 -74 -13z" />
+<glyph unicode="&#x22;" d="M231 1493h256v-555h-256v555zM743 1493h256v-555h-256v555z" />
+<glyph unicode="#" d="M199 373h-240l53 215h242l72 293h-240l53 215h242l94 374h221l-94 -374h205l94 374h221l-94 -374h240l-54 -215h-241l-72 -293h240l-54 -215h-241l-94 -373h-222l95 373h-205l-94 -373h-222zM678 588l74 293h-203l-74 -293h203z" />
+<glyph unicode="$" d="M361 0q-3 1 -46.5 7.5t-88.5 17.5q-51 13 -94 29t-93 38l51 262q45 -31 89 -54t89 -40q87 -32 186 -37l68 346q-94 22 -150.5 52t-94.5 70q-39 42 -58.5 92.5t-19.5 116.5q0 85 32 159t96 134q127 118 290 126l48 237h221l-47 -237q-5 -2 33.5 -7t70.5 -11 q33 -6 71 -15.5t78 -23.5l-50 -250q-32 21 -66 36t-65 25q-72 22 -163 25l-64 -314q182 -48 263 -132q41 -42 61 -95t20 -122q0 -89 -32.5 -164.5t-98.5 -135.5q-68 -62 -156.5 -94.5t-157.5 -40.5l-58 -301h-221zM624 1099q-83 -9 -123 -54q-22 -24 -32 -52t-10 -58 q0 -25 6.5 -42t19.5 -31q26 -29 86 -41zM578 227q91 10 141 59q23 23 36 50.5t13 64.5q0 52 -28 83q-29 31 -103 48z" />
+<glyph unicode="%" d="M353 778q-67 0 -130.5 22.5t-113.5 70.5q-43 42 -69.5 102t-26.5 132q0 70 25.5 130t70.5 104q47 46 110.5 69.5t140.5 23.5h9.5t15.5 -1q7 -1 16.5 -2t17.5 -3t14 -3t19 -5q18 -5 24 -7.5t8 -3.5q13 -5 21 -8.5t14.5 -6.5t12 -6.5t13.5 -8.5q29 -18 52 -40t42.5 -48 t33.5 -58q27 -60 27 -128t-25 -125t-76 -105q-22 -20 -50 -38.5t-63 -32.5q-63 -24 -133 -24zM351 943q36 0 68 12q11 4 25.5 11.5t31.5 23.5q26 24 39 52q13 27 13 61q0 69 -51 116q-26 23 -58.5 35t-67.5 12t-68 -11.5t-57 -34.5t-36 -53.5t-12 -62.5q0 -33 12 -62.5 t35 -52.5q22 -21 54.5 -33.5t71.5 -12.5zM22 570l1210 448v-145l-1210 -442v139zM898 0q-71 0 -134 24q-28 11 -56 27.5t-56 42.5q-15 14 -29.5 31.5t-25.5 36.5q-23 37 -33 77q-11 42 -11 88q0 72 27 131t74 103q48 45 110.5 69t135.5 24q72 0 131 -25q30 -13 60 -32.5 t49 -38.5q9 -9 12.5 -13t6.5 -7q1 -2 7.5 -10t8.5 -10q5 -8 6 -9t1 -1.5t1 -2t6 -9.5l14 -22q2 -4 5.5 -12t5.5 -11q8 -17 12.5 -32.5t7.5 -28.5q3 -14 4.5 -31.5t1.5 -33.5q0 -64 -24.5 -124t-71.5 -106q-43 -42 -105.5 -68.5t-140.5 -26.5zM900 165q74 0 124 47 q25 23 37 52t12 61q0 33 -12.5 63.5t-36.5 53.5q-20 20 -51.5 33.5t-73.5 13.5q-35 0 -67 -11.5t-57 -34.5q-50 -47 -50 -117q0 -12 1.5 -21.5t4.5 -20.5t6.5 -20t9.5 -19q4 -6 11.5 -16t16.5 -18q13 -12 26.5 -20t29.5 -14q31 -12 69 -12z" />
+<glyph unicode="&#x26;" d="M387 -29q-92 0 -170.5 26t-136.5 80q-59 55 -86 128.5t-27 156.5q0 161 99 304q51 73 120.5 133.5t163.5 113.5q-14 31 -22.5 56t-15.5 52q-6 24 -9.5 46t-3.5 51q0 88 33 163t100 130q66 54 158 81.5t204 27.5q37 0 71 -3t68 -8q33 -5 65 -13t67 -19l-49 -256 q-54 35 -118 54q-32 10 -64.5 14.5t-64.5 4.5q-48 0 -81 -9t-55 -26q-47 -36 -47 -101q0 -36 19 -93q11 -35 24.5 -67t34.5 -78l221 -480q42 58 66 135q23 75 28 170h235q-10 -156 -71 -282q-60 -125 -168 -217l115 -246h-316l-35 72q-43 -25 -86.5 -44t-88.5 -32 q-88 -25 -177 -25zM473 207q42 0 89 14q23 7 45.5 17t45.5 24l-217 469q-91 -53 -137 -126q-24 -38 -35.5 -80.5t-11.5 -84.5q0 -49 15.5 -91.5t47.5 -75.5t72.5 -49.5t85.5 -16.5z" />
+<glyph unicode="'" d="M487 1493h256v-555h-256v555z" />
+<glyph unicode="(" d="M440 -270q-39 82 -70 166t-52 171q-40 163 -40 326q0 149 32.5 292t97.5 289t159 288t227 292h225q-234 -314 -350 -613q-117 -302 -117 -595q0 -71 7 -145t21 -151q15 -81 36.5 -161t48.5 -159h-225v0z" />
+<glyph unicode=")" d="M243 -270q233 313 350 614t117 595q0 71 -7 144.5t-21 151.5q-29 155 -85 319h225q82 -173 122 -336q20 -83 30 -164.5t10 -161.5q0 -146 -32 -291t-97 -291q-64 -144 -161 -289t-226 -291h-225v0z" />
+<glyph unicode="*" d="M230 467l240 368l-361 157l46 130l371 -122l20 420h136l20 -420l371 122l46 -130l-361 -157l240 -368l-117 -84l-267 353l-267 -353z" />
+<glyph unicode="+" d="M498 524h-432v238h432v430h237v-430h430v-238h-430v-432h-237v432z" />
+<glyph unicode="," d="M380 -275l14 6q102 44 168 121t74 182q-7 -1 -12.5 -1.5t-14.5 -0.5q-32 0 -62.5 10.5t-54.5 32.5q-23 20 -36 49t-13 72q0 14 1.5 25.5t4.5 22.5q4 14 8.5 24t8.5 17t11 16.5t17 17.5q14 12 27 20t30 14q15 5 31 8t36 3q17 0 30.5 -2t27.5 -6q27 -8 50 -25q12 -9 21 -19 t17 -23q25 -35 37 -85t12 -111q0 -88 -24 -164q-12 -38 -30.5 -74.5t-40.5 -65.5q-49 -67 -115.5 -112.5t-151.5 -77.5l-13 -5z" />
+<glyph unicode="-" d="M259 746h789l-56 -291h-788z" />
+<glyph unicode="." d="M614 -42q-76 0 -127 51q-24 24 -37.5 57.5t-13.5 76.5q0 79 51 132q51 51 125 51q76 0 127 -51t51 -134q0 -80 -51 -132q-51 -51 -125 -51z" />
+<glyph unicode="/" d="M852 1493h223l-854 -1683h-221z" />
+<glyph unicode="0" d="M504 -29q-108 0 -183.5 31.5t-125.5 95.5q-48 62 -72.5 154t-24.5 225q0 57 4 103.5t11 94.5q8 59 18 108t24 103q28 106 64.5 196.5t79.5 160.5q16 26 32 48t30 38q33 39 70 70q36 30 77 53q61 34 129.5 51t148.5 17q112 0 187 -32.5t123 -93.5q50 -63 74.5 -156 t24.5 -215q0 -93 -14 -200.5t-43 -216.5q-27 -103 -64.5 -195.5t-79.5 -160.5q-19 -31 -43 -63t-52 -60q-25 -25 -54 -47.5t-60 -39.5q-122 -69 -281 -69zM529 165q22 0 40.5 3t37.5 9q16 5 35 14t36 21q32 22 62.5 58t53.5 81q7 13 16 31.5t19 40.5q9 20 16.5 40t14.5 39 q5 14 9 24.5t7 20.5t6 19.5t7 22.5q5 16 12 43t13 53q5 22 9 39.5t7 32.5t5.5 29.5t5.5 29.5q6 35 10 64.5t6 58.5t3.5 58.5t1.5 53.5q0 17 -0.5 32.5t-1.5 27.5t-2 23t-4 26q-1 5 -4 19t-5 22q-2 6 -6 17.5t-8 18.5q-2 5 -6 11.5t-11 15.5q-11 15 -26 27t-34 20t-42 11.5 t-46 3.5q-42 0 -80.5 -12t-71.5 -35q-38 -26 -67 -62.5t-50 -74.5q-35 -63 -67 -151t-54 -184q-24 -103 -35.5 -201.5t-11.5 -172.5q0 -76 12 -125.5t38 -81.5q49 -61 150 -61zM572 410q-1 0 -1.5 1t-1.5 1h-4q-48 15 -44 131v12q0 3 0.5 6t1.5 7v13v4.5t1 9.5q4 33 6 52.5 t4 32.5t3.5 22.5t3.5 22.5q1 6 3.5 18t5 24.5t5 23t3.5 13.5q4 15 6.5 23.5t4 13t2 5.5t0.5 2q2 8 8 26.5t10 30.5q6 17 14.5 37.5t13.5 31.5q9 21 21 41t25.5 35.5t27 24.5t25.5 9h5q2 0 6 -2q53 -15 48 -128v-1q-1 -4 -1 -12v-14q-2 -32 -12 -102q-5 -25 -9 -46.5 t-7 -32.5q-4 -17 -11 -42t-16 -52t-18.5 -54.5t-18.5 -49.5q-14 -35 -26.5 -60t-25.5 -43q-14 -19 -27.5 -27t-27.5 -8h-3z" />
+<glyph unicode="1" d="M94 260h330l188 969l-321 -76l51 266l326 74h282l-239 -1233h309l-51 -260h-926z" />
+<glyph unicode="2" d="M13 218q4 19 11.5 31.5t21.5 25.5l251 225q28 25 46 40.5t32.5 28.5t29.5 26t37 33q108 97 184.5 174t125 138.5t70.5 110t22 87.5q0 32 -14 61t-42 49t-66.5 30t-86.5 10q-42 0 -89.5 -7.5t-98.5 -21.5q-45 -13 -102 -35t-120 -53l51 267q55 20 110 35.5t106 25.5 q54 11 107 16t98 5q95 0 176 -23t141 -71q56 -44 88.5 -105.5t32.5 -134.5q0 -131 -113.5 -291t-340.5 -353l-40 -34l-317 -248h647l-51 -260h-949z" />
+<glyph unicode="3" d="M421 -29q-51 0 -103.5 4.5t-111.5 14.5q-63 11 -120 24.5t-117 30.5l54 270q50 -24 100.5 -41.5t99.5 -28.5q52 -12 105 -18t102 -6q88 0 144.5 18.5t94.5 50.5t59.5 79.5t21.5 107.5q0 95 -64 143q-32 24 -76.5 36t-95.5 12h-158l52 260h157q123 0 202 56q40 29 58.5 64 t18.5 76q0 70 -57 108q-26 17 -66.5 27.5t-98.5 10.5q-82 0 -181 -21q-51 -11 -103 -26t-107 -35l54 268q54 17 103.5 28.5t97.5 19.5t94.5 12t86.5 4q106 0 189.5 -25t141.5 -71q62 -49 92 -116t30 -144q0 -66 -22.5 -124t-71.5 -109t-115 -81.5t-147 -44.5 q135 -36 200 -118q33 -42 49.5 -94.5t16.5 -122.5q0 -110 -41 -203t-122 -161t-193.5 -101.5t-252.5 -33.5z" />
+<glyph unicode="4" d="M612 322h-594l58 286l735 885h309l-178 -918h164l-49 -253h-164l-62 -322h-282zM662 575l110 578l-483 -578h373z" />
+<glyph unicode="5" d="M387 -29q-47 0 -94.5 4t-95.5 12q-97 17 -191 48l51 266q69 -40 156 -61q43 -11 88 -16t90 -5q90 0 157.5 20t116.5 59q50 40 74.5 93.5t24.5 117.5q0 108 -71 168t-195 60q-73 0 -158 -20q-80 -19 -162 -58l162 834h811l-51 -260h-572l-53 -277q31 13 69 19q36 6 78 6 q99 0 179 -30.5t135 -85.5q56 -56 85.5 -136t29.5 -184q0 -127 -44.5 -233.5t-133.5 -184.5q-88 -78 -210.5 -117t-275.5 -39z" />
+<glyph unicode="6" d="M544 -33q-107 0 -191.5 31.5t-142.5 94.5q-57 63 -85.5 156t-28.5 231q0 100 15 203t46 208q30 103 72.5 192.5t96.5 163.5q49 67 106 118t131 86q71 34 151 50.5t167 16.5q42 0 75 -3.5t68 -11.5q68 -15 145 -45l-51 -268q-38 27 -68 41.5t-62 25.5q-35 11 -70 17t-72 6 q-157 0 -263 -108q-54 -54 -92 -134.5t-61 -183.5q61 66 136 98q76 33 166 33q165 0 263 -111q48 -54 72.5 -129.5t24.5 -179.5q0 -131 -39.5 -236t-114.5 -190q-76 -85 -171.5 -128.5t-222.5 -43.5zM551 207q52 0 98 25.5t81 73.5t54 111.5t19 132.5q0 48 -10.5 84 t-34.5 63q-47 51 -122 51q-56 0 -102 -27.5t-78 -72.5q-36 -51 -54.5 -114t-18.5 -126q0 -50 11 -86t34 -62q21 -24 51.5 -38.5t71.5 -14.5z" />
+<glyph unicode="7" d="M844 1233h-633l51 260h963l-41 -209l-756 -1284h-319z" />
+<glyph unicode="8" d="M502 -29q-106 0 -187 26t-137 74q-115 100 -115 281q0 85 25.5 157t73.5 130t116 99t156 61q-51 14 -90 37.5t-67 60.5q-26 34 -40 77.5t-14 100.5q0 88 36 169t111 147q69 60 160 94.5t200 34.5q90 0 164 -24.5t131 -73.5q54 -47 83 -112t29 -149q0 -145 -89 -248 q-88 -101 -239 -127q108 -28 170 -113q30 -42 45.5 -93t15.5 -119q0 -104 -36.5 -194.5t-111.5 -159.5q-69 -63 -166.5 -99.5t-223.5 -36.5zM653 903q44 0 86 15t74 45q64 60 64 153q0 79 -46 124q-47 44 -126 44q-94 0 -157 -61q-29 -28 -46 -67t-17 -86q0 -35 11 -66 t34 -54q24 -25 55 -36t68 -11zM528 209q54 0 100 19t81 57q34 37 51.5 86t17.5 103q0 49 -14 84t-39 59q-24 23 -60 37t-86 14q-112 0 -182 -75q-35 -37 -53 -86t-18 -102q0 -44 13.5 -81t42.5 -64q28 -26 65 -38.5t81 -12.5z" />
+<glyph unicode="9" d="M345 -31q-42 0 -75.5 3.5t-68.5 11.5q-31 7 -67.5 17.5t-78.5 27.5l51 268q30 -21 62.5 -38.5t68.5 -28.5q35 -11 70 -17t72 -6q156 0 262 109q58 60 94.5 140t59.5 177q-63 -66 -137 -98q-38 -17 -78.5 -25t-85.5 -8q-92 0 -156 31t-106 79q-52 60 -74.5 138.5 t-22.5 168.5q0 130 41 241.5t110 189.5q75 85 177 127.5t222 42.5q109 0 192.5 -33t137.5 -93q113 -123 113 -386q0 -99 -15 -204t-45 -208t-72.5 -193t-96.5 -165q-52 -72 -108.5 -120t-127.5 -82q-73 -35 -152.5 -51t-165.5 -16zM589 739q106 0 179 100q36 50 55 111 t19 128q0 48 -10.5 84.5t-34.5 64.5q-46 53 -122 53q-107 0 -179 -101q-36 -51 -54 -114t-18 -130q0 -54 11 -86.5t34 -58.5q20 -23 48.5 -37t71.5 -14z" />
+<glyph unicode=":" d="M734 747q-40 0 -68 13t-46 33q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14zM620 35q-40 0 -68 13t-46 33 q-17 20 -28 48t-11 63q0 31 9 61.5t26.5 57t42.5 47t57 32.5q17 6 34.5 9.5t37.5 3.5q37 0 66 -12t49 -34q21 -23 29.5 -54.5t8.5 -60.5q0 -23 -4 -40t-10 -32q-17 -43 -48 -73.5t-73 -47.5q-34 -14 -72 -14z" />
+<glyph unicode=";" d="M724 698q-38 0 -70.5 13.5t-55.5 39.5q-19 23 -26.5 52t-7.5 60v4.5t1 7.5l2 20q4 20 9.5 38t16.5 38q19 34 48 60q29 24 63 38.5t76 14.5q38 0 70 -13.5t55 -39.5q18 -22 27.5 -49t9.5 -62v-4.5t-1 -7.5l-2 -19q-6 -29 -12 -45t-16 -33q-10 -18 -21 -32t-27 -28 q-17 -15 -32.5 -23.5t-32.5 -16.5q-33 -13 -74 -13zM320 -342l13 6q129 54 205 134.5t101 182.5q-5 -1 -10 -1h-10q-79 0 -122 46q-35 37 -35 93v10q0 6 0.5 12.5t1.5 14.5q6 39 25 71t48 55q18 16 42 25q20 12 45 16q11 2 23 3.5t26 1.5q48 0 84 -19t59 -61 q14 -26 20.5 -56.5t6.5 -59.5q0 -17 -2 -42.5t-5 -47.5q-13 -90 -51 -171t-98 -148q-31 -34 -65.5 -61.5t-74.5 -53.5q-50 -32 -92 -51t-79 -32l-16 -5z" />
+<glyph unicode="&#x3c;" d="M88 524v236l1057 416v-250l-795 -285l795 -283v-249z" />
+<glyph unicode="=" d="M88 987h1057v-235h-1057v235zM88 532h1057v-237h-1057v237z" />
+<glyph unicode="&#x3e;" d="M88 358l795 283l-795 285v250l1057 -416v-236l-1057 -415v249z" />
+<glyph unicode="?" d="M531 585q12 83 55 152q24 39 57.5 75t84.5 79l104 89q36 31 61.5 56.5t38.5 44.5q28 40 36 86q1 3 1 9q1 3 1 8t1 8v7q0 29 -10.5 54.5t-30.5 44.5q-25 24 -66 38q-20 7 -43 10t-46 3q-43 0 -85.5 -9.5t-83.5 -24.5q-49 -18 -98.5 -43.5t-101.5 -57.5l-28 -17l36 228l7 3 q13 8 34.5 18.5t34.5 16.5q16 8 34.5 15.5t34.5 13.5q17 7 31 11.5t37 10.5q48 13 97 21t109 8q105 0 175 -26t119 -74q16 -15 26 -28.5t18 -29.5q18 -32 27 -68q5 -18 7 -37t2 -33t-2 -35.5t-4 -38.5q-10 -76 -59 -148q-14 -21 -28 -37.5t-33 -36.5q-23 -25 -44 -44 t-49 -42l-102 -86q-5 -4 -13.5 -11.5t-18 -16.5t-18.5 -17.5t-16 -15.5q-11 -11 -21 -23.5t-15 -20.5q-12 -18 -19.5 -38.5t-10.5 -38.5l-8 -47l-14 -93h-220zM556 -55q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5 t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14z" />
+<glyph unicode="@" d="M599 -319q-137 0 -250.5 48.5t-195.5 142.5q-84 96 -125.5 225.5t-41.5 289.5q0 163 44 322q23 81 55.5 156t72.5 139q115 185 284 289q81 50 170.5 76t186.5 26t176.5 -26t136.5 -76q61 -54 89 -123.5t28 -146.5q0 -13 -0.5 -31t-2.5 -32q-1 -10 -3.5 -24t-8.5 -44 l-147 -757h-197l17 82q-42 -48 -99 -75q-35 -17 -66 -22t-58 -5q-66 0 -120 22.5t-93 65.5q-42 46 -61 108t-19 137q0 109 34.5 206t92.5 167q65 78 146.5 115t165.5 37q35 0 66 -6t57 -18q27 -13 47.5 -32t33.5 -40q5 17 8.5 34t5.5 34t3 32.5t1 26.5q0 50 -16 87t-45 62 t-72.5 39t-100.5 14q-58 0 -116.5 -15.5t-115.5 -47.5t-107 -78t-94 -104q-51 -67 -84.5 -136.5t-54.5 -134.5q-48 -149 -48 -302q0 -113 28 -210t89 -169q58 -69 138.5 -104.5t180.5 -35.5q79 0 160 24t162 72l63 -174q-105 -56 -202 -84q-43 -12 -93.5 -19t-104.5 -7z M724 301q51 0 96 24t78 67q35 46 53 105t18 119q0 45 -10 74.5t-30 51.5q-41 44 -112 44q-51 0 -95.5 -22.5t-79.5 -66.5q-35 -45 -53 -101.5t-18 -114.5q0 -38 8.5 -73t31.5 -61q17 -20 45.5 -33t67.5 -13z" />
+<glyph unicode="A" d="M582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="B" d="M270 1495h482q210 0 319 -83q107 -83 107 -248q0 -159 -95 -259t-270 -119q66 -5 122 -28t94 -62q39 -40 58 -95t19 -121q0 -48 -9.5 -98.5t-28.5 -97.5q-18 -45 -45 -85t-62 -72q-74 -67 -190 -97t-310 -30h-481zM639 913q122 0 183 55q29 26 45 64.5t16 90.5 q0 40 -10.5 64.5t-32.5 40.5q-44 32 -133 32h-197l-68 -347h197zM508 236q157 0 230 67q37 34 55 85t18 113q0 54 -13.5 85t-39.5 51q-53 41 -164 41h-197l-86 -442h197z" />
+<glyph unicode="C" d="M598 -29q-110 0 -205.5 33t-161.5 104q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q130 57 283 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5 q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-81 -18 -165 -18z " />
+<glyph unicode="D" d="M283 1493h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -57t-12 -52.5q-20 -81 -44 -146t-46 -110q-29 -60 -62 -103.5t-62 -72.5q-45 -44 -102.5 -77.5t-123.5 -53.5q-127 -40 -349 -40h-330zM434 266 q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-186 -961h96z" />
+<glyph unicode="E" d="M317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="F" d="M338 1493h930l-51 -260h-635l-62 -332h578l-51 -260h-578l-127 -641h-295z" />
+<glyph unicode="G" d="M611 -29q-128 0 -220.5 38t-155.5 106q-70 76 -101.5 181t-31.5 232q0 96 17.5 204.5t54.5 216.5q32 94 80.5 183t112.5 162q45 51 101.5 94.5t126.5 74.5q130 57 281 57q42 0 81.5 -4.5t79.5 -13.5q32 -8 73 -21t82 -33l-66 -328q-51 67 -120 102q-70 35 -149 35 q-39 0 -73 -8t-63 -21q-30 -14 -58.5 -34.5t-57.5 -52.5q-23 -25 -41 -52t-35 -58q-16 -29 -31 -63t-29 -77q-15 -45 -28 -94.5t-21 -94.5q-17 -94 -17 -169q0 -82 18.5 -136.5t45.5 -87.5q34 -42 80.5 -60t100.5 -18q19 0 34.5 2t32.5 7q12 3 26 8t29 16l57 291h-206 l49 248h460l-139 -709q-72 -60 -168 -91q-99 -32 -212 -32z" />
+<glyph unicode="H" d="M283 1493h295l-111 -569h369l110 569h295l-291 -1493h-295l129 664h-368l-129 -664h-295z" />
+<glyph unicode="I" d="M78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="J" d="M411 -29q-55 0 -111 6.5t-108 19.5q-46 11 -100.5 31.5t-111.5 49.5l65 344q78 -96 167 -143q88 -48 194 -48q112 0 169 54q29 27 49.5 74t34.5 120l148 754h-361l52 260h655l-199 -1014q-17 -88 -35.5 -150.5t-38.5 -105.5q-20 -42 -46.5 -77t-61.5 -64t-74.5 -49 t-83.5 -34q-46 -14 -97 -21t-106 -7z" />
+<glyph unicode="K" d="M270 1493h295l-108 -557l563 557h348l-606 -604l338 -889h-303l-254 670l-172 -170l-95 -500h-294z" />
+<glyph unicode="L" d="M371 1493h295l-240 -1233h631l-51 -260h-926z" />
+<glyph unicode="M" d="M231 1493h353l49 -655l297 655h360l-289 -1493h-253l237 1198l-293 -655h-219l-47 655l-231 -1198h-252z" />
+<glyph unicode="N" d="M266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
+<glyph unicode="O" d="M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 60.5 198t74.5 160q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q13 37 22 69t20 78q15 63 25.5 115t18.5 101q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-13 -52 -24.5 -107.5t-19.5 -106.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="P" d="M305 1493h420q236 0 360 -91q63 -47 93 -114t30 -159q0 -51 -9 -107t-27 -113q-19 -59 -42.5 -101.5t-52.5 -76.5q-77 -90 -194 -131t-301 -41h-164l-109 -559h-295zM610 807q75 0 129.5 18t89.5 50q36 34 54 84.5t18 111.5q0 98 -52 136q-53 38 -177 38h-121l-84 -438 h143z" />
+<glyph unicode="Q" d="M535 -29h-27q-109 0 -192 31.5t-140 92.5q-60 65 -87.5 158.5t-27.5 220.5q0 88 12.5 190t37.5 206t59 195t74 161q38 66 87 122t117 97q60 36 131 55.5t153 19.5q106 0 187.5 -32t137.5 -91q62 -66 88 -156.5t26 -216.5q0 -83 -11.5 -183.5t-37.5 -213.5 q-23 -100 -56.5 -195t-75.5 -170q-21 -37 -43 -66.5t-45 -54.5q-53 -56 -126 -102l239 -320h-344zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q11 21 23 50t23 60q21 60 42 147q16 65 26 116.5t18 99.5q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10 t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-16 -64 -26 -114.5t-18 -99.5q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="R" d="M294 1493h410q231 0 344 -87q54 -42 83 -108t29 -165q0 -90 -24.5 -164t-73.5 -131q-98 -114 -279 -133q60 -9 95 -45q34 -36 61 -123l164 -537h-301l-106 376l-8 27q-31 101 -68.5 144t-89.5 43h-117l-115 -590h-295zM585 838q70 0 121 16.5t84 47.5q35 32 52 79t17 103 q0 86 -46 123q-47 38 -138 38h-133l-80 -407h123z" />
+<glyph unicode="S" d="M469 -29q-58 0 -113.5 6.5t-112.5 19.5q-60 14 -118 33.5t-121 45.5l59 305q49 -41 97.5 -70.5t105.5 -52.5q53 -21 104.5 -32t108.5 -11q132 0 209 59q76 58 76 155q0 35 -9 62t-26 49q-35 45 -104 74l-119 50q-98 41 -159 78t-95 78q-29 35 -45.5 82.5t-16.5 118.5 q0 117 44.5 207.5t116.5 152.5q78 67 184.5 103t234.5 36q48 0 101 -5t100 -15t95 -26t93 -36l-57 -285q-69 63 -159 94q-46 16 -96.5 23.5t-98.5 7.5q-69 0 -117 -15t-82 -41q-37 -29 -55.5 -65.5t-18.5 -69.5q0 -52 46.5 -95t137.5 -82l7 -3l116 -51q75 -33 128 -72 t86 -84q34 -46 50.5 -101.5t16.5 -125.5q0 -107 -39 -201t-121 -164q-78 -66 -187.5 -101.5t-246.5 -35.5z" />
+<glyph unicode="T" d="M563 1235h-383l49 258h1059l-51 -258h-379l-240 -1235h-294z" />
+<glyph unicode="U" d="M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 18 3.5 30t3 23.5t4 23.5t6.5 30l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-75 -73 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="V" d="M203 1493h291l24 -1251l506 1251h301l-645 -1493h-412z" />
+<glyph unicode="W" d="M143 1493h254l-108 -1096l272 709h238l12 -709l297 1096h262l-461 -1493h-270l-12 784l-318 -784h-268z" />
+<glyph unicode="X" d="M471 782l-287 711h291l187 -463l360 463h321l-573 -737l301 -756h-291l-200 512l-400 -512h-323z" />
+<glyph unicode="Y" d="M432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="Z" d="M4 244l858 989h-643l52 260h1009l-49 -244l-876 -989h700l-51 -260h-1047z" />
+<glyph unicode="[" d="M649 1651h455l-28 -173h-240l-251 -1590h240l-28 -173h-455z" />
+<glyph unicode="\" d="M340 1493h203l198 -1683h-202z" />
+<glyph unicode="]" d="M373 -112h240l251 1589h-240l28 173h455l-307 -1935h-455z" />
+<glyph unicode="^" d="M494 1493h245l437 -557h-242l-318 301l-317 -301h-242z" />
+<glyph unicode="_" d="M94 -190h1044v-200h-1044v200z" />
+<glyph unicode="`" d="M371 1638h284l209 -376h-198z" />
+<glyph unicode="a" d="M379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19 t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66 t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="b" d="M651 -29q-58 0 -102.5 17t-78.5 46t-57 71t-32 102l-70 -207h-264l303 1556h293l-119 -604q63 96 146 146q42 25 86.5 37t91.5 12q71 0 130.5 -27t102.5 -82q45 -57 64.5 -135t19.5 -171q0 -58 -7.5 -123t-22.5 -130q-13 -54 -34.5 -116t-51.5 -119q-34 -63 -78 -114.5 t-95 -86.5t-108.5 -53.5t-116.5 -18.5zM599 209q57 0 106.5 37.5t86.5 104.5q38 69 58 155.5t20 175.5q0 60 -10 100.5t-31 68.5q-42 56 -115 56q-53 0 -104.5 -33t-93.5 -105q-39 -67 -60.5 -153t-21.5 -172q0 -63 11.5 -105t32.5 -70q22 -29 53 -44.5t68 -15.5z" />
+<glyph unicode="c" d="M621 -29q-105 0 -197 28.5t-161 94.5t-98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145 t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-42 -8 -82.5 -12t-79.5 -4z" />
+<glyph unicode="d" d="M382 -29q-144 0 -230 110q-43 55 -64.5 129.5t-21.5 175.5q0 60 7.5 124t23.5 129t39 126.5t48 108.5q32 61 76 112.5t98 89.5q104 73 223 73q111 0 185 -63q34 -29 57 -73t31 -102l125 645h293l-303 -1556h-262l2 166q-66 -96 -148 -145q-83 -50 -179 -50zM517 211 q57 0 107 34.5t92 104.5t62.5 153t20.5 171q0 66 -11.5 106.5t-33.5 69.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102.5t31.5 -66.5q42 -56 113 -56z" />
+<glyph unicode="e" d="M583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q115 54 250 54q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759 q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="f" d="M456 895h-273l43 225h273l16 78q23 114 56.5 182t77.5 103q46 36 126.5 54.5t204.5 18.5h240l-43 -225h-230q-66 0 -94 -27q-14 -14 -25.5 -41.5t-19.5 -66.5l-16 -76h344l-43 -225h-344l-174 -895h-293z" />
+<glyph unicode="g" d="M386 -424q-99 0 -190 15q-46 8 -90 19t-88 25l54 265q76 -46 158 -68q42 -11 83.5 -16.5t82.5 -5.5q66 0 115 14.5t84 43.5q39 32 60 77.5t33 105.5l27 133q-54 -83 -131 -125q-77 -43 -175 -43q-76 0 -137.5 25t-110.5 80q-48 54 -70.5 123t-22.5 163q0 65 10.5 135 t31.5 141q23 76 52 137.5t63 111.5q71 103 171 161t206 58q105 0 172 -55t88 -158l64 182h264l-203 -1036q-26 -135 -72 -233.5t-119 -159.5q-137 -115 -410 -115zM521 246q55 0 106 33.5t93 99.5q42 67 62.5 148t20.5 162q0 51 -9 93.5t-32 72.5q-22 29 -51 41.5t-62 12.5 q-57 0 -108.5 -34.5t-90.5 -97.5q-42 -66 -62.5 -148.5t-20.5 -163.5q0 -51 9 -93t31 -71q41 -55 114 -55z" />
+<glyph unicode="h" d="M362 1556h291l-116 -604q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5 q-29 30 -83 30q-45 0 -80 -19t-62 -52q-30 -37 -50.5 -89t-33.5 -118l-121 -629h-293z" />
+<glyph unicode="i" d="M615 1323q-28 0 -28 25q0 5 1 8l56 282q4 27 32 27h233q28 0 28 -25q0 -5 -1 -8l-56 -282q-5 -27 -32 -27h-233zM732 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q3 23 6 39.5t8 39.5l120 524h-236l43 225h528l-166 -763 q-3 -12 -4 -17.5t-1 -8v-4.5t-1 -6q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="j" d="M763 1323q-15 0 -22.5 9t-4.5 24l55 282q4 27 32 27h233q15 0 22.5 -9t4.5 -24l-55 -282q-5 -27 -32 -27h-233zM22 -199h231q100 0 151 53q29 30 46.5 79t29.5 110l166 852h-297l43 225h590l-209 -1077q-10 -50 -18.5 -87.5t-16.5 -66t-15 -49t-14 -36.5 q-30 -71 -77 -118q-30 -30 -66 -50.5t-75 -33.5q-40 -13 -90.5 -19.5t-116.5 -6.5h-307z" />
+<glyph unicode="k" d="M363 1556h293l-152 -782l404 346h370l-505 -418l313 -702h-311l-222 524l-116 -96l-82 -428h-293z" />
+<glyph unicode="l" d="M690 -10q-107 0 -177 14t-113 43q-41 27 -63 70.5t-22 108.5q0 17 1.5 33t3.5 31q2 10 5.5 33.5t8.5 45.5l203 962h-306l43 225h598l-249 -1201q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297 v0z" />
+<glyph unicode="m" d="M184 1120h192l-1 -116q41 69 102 106q59 37 129 37t113 -37q43 -38 51 -102q31 64 96 102q64 37 138 37q48 0 85 -14.5t63 -40.5q29 -30 41.5 -71.5t12.5 -89.5q0 -17 -1.5 -40.5t-3.5 -47.5q-3 -27 -9.5 -62t-11.5 -62l-140 -719h-239l139 719q5 23 8 41t6 41q2 15 3 27 t1 20q0 23 -5 37t-12 22q-18 21 -52 21q-48 0 -76 -45q-15 -24 -27.5 -64.5t-23.5 -99.5l-139 -719h-240l141 719q2 12 6.5 35.5t6.5 39.5q2 17 3 29.5t1 21.5q0 41 -18 62t-52 21q-47 0 -74 -43q-16 -25 -28 -65.5t-23 -100.5l-139 -719h-240z" />
+<glyph unicode="n" d="M276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q4 20 5.5 34t2.5 19q1 13 1.5 25.5t0.5 22.5q0 29 -6.5 53t-22.5 41q-29 30 -83 30 q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
+<glyph unicode="o" d="M543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5 t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="p" d="M264 1120h264l-4 -168q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
+<glyph unicode="q" d="M709 166q-64 -96 -146 -145q-83 -50 -178 -50q-70 0 -129.5 27.5t-102.5 82.5t-64 132t-21 174q0 58 7.5 122.5t23.5 129.5q31 129 88 235q35 64 76.5 114.5t95.5 88.5q104 72 221 72q57 0 104 -16.5t80 -45.5t57 -73t33 -103l68 209h264l-301 -1546h-291zM519 211 q116 0 198 139q41 69 61.5 151.5t20.5 172.5q0 59 -10 101.5t-35 74.5q-45 59 -120 59q-113 0 -192 -141q-40 -72 -60 -158t-20 -174q0 -64 10.5 -102t31.5 -66t49 -42.5t66 -14.5z" />
+<glyph unicode="r" d="M343 1120h264l-6 -174q62 96 161 149q98 52 217 52q63 0 119 -15q55 -15 99 -42l-53 -275q-26 23 -53.5 39t-53.5 25q-30 11 -65.5 15.5t-71.5 4.5q-78 0 -141 -21t-110 -67q-44 -43 -77 -116t-53 -179l-100 -516h-295z" />
+<glyph unicode="s" d="M501 -29q-53 0 -108 4.5t-100 12.5q-48 8 -100.5 22t-102.5 31l51 256q48 -31 90.5 -50.5t90.5 -34.5q46 -14 91.5 -22t96.5 -8q110 0 172 38q61 37 61 106q0 27 -8.5 42.5t-22.5 26.5q-20 16 -61 32.5t-102 33.5l-88 24q-55 15 -101 41.5t-78 65.5q-27 33 -42 75.5 t-15 99.5q0 88 35 158.5t100 119.5t157.5 75.5t207.5 26.5q46 0 95 -4t89 -11t91 -19.5t94 -27.5l-50 -254q-76 53 -162 80q-44 14 -88.5 20.5t-88.5 6.5q-51 0 -87.5 -9t-64.5 -26q-55 -35 -55 -93q0 -46 37 -73q20 -14 59.5 -30t105.5 -35l74 -21q66 -19 112.5 -46.5 t74.5 -60.5q29 -34 44 -79.5t15 -105.5q0 -91 -35 -162.5t-101 -121.5q-70 -53 -168 -78.5t-215 -25.5z" />
+<glyph unicode="t" d="M707 -5q-106 0 -176 14t-113 43q-46 30 -66 75t-20 102q0 17 1.5 30.5t3.5 30.5q2 12 5 36t8 48l101 521h-287l43 225h287l61 318h293l-62 -318h383l-43 -225h-383l-104 -535q-1 -5 -2.5 -13t-3.5 -22q-1 -8 -1.5 -13.5t-0.5 -11.5q0 -43 30 -61q29 -19 109 -19h225 l-43 -225h-245v0z" />
+<glyph unicode="u" d="M372 -29q-128 0 -197 71q-69 70 -69 202q0 14 1 30t3 34q1 3 4 28.5t9 54.5l143 729h291l-131 -684q-2 -13 -3.5 -24.5t-3.5 -28.5q-2 -16 -2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120 h-264l4 166q-24 -50 -56.5 -83.5t-72.5 -58.5q-46 -29 -91.5 -41t-95.5 -12z" />
+<glyph unicode="v" d="M172 1120h283l80 -878l389 878h307l-551 -1120h-369z" />
+<glyph unicode="w" d="M96 1120h240l-33 -858l227 565h230l22 -565l291 858h252l-418 -1120h-280l-19 590l-239 -590h-279z" />
+<glyph unicode="x" d="M436 594l-258 526h301l148 -317l268 317h332l-477 -553l278 -567h-299l-170 356l-303 -356h-332z" />
+<glyph unicode="y" d="M-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
+<glyph unicode="z" d="M94 229l707 672h-551l43 219h895l-45 -229l-707 -672h576l-43 -219h-920z" />
+<glyph unicode="{" d="M644 -334q-105 0 -171 14t-108 40t-63.5 68.5t-21.5 110.5q0 13 1 24t3 28q0 3 1.5 12t3.5 20.5t4 25t5 26.5l43 215q1 4 2.5 13t3.5 20.5t4 23.5t3 21q2 17 3 28.5t1 20.5q0 42 -15.5 67.5t-47.5 41.5q-27 14 -73 22t-109 8h-62l37 191h91q143 0 207 55t94 211l41 215 q22 115 56.5 188t80.5 108q93 72 353 72h149l-36 -190h-123q-56 0 -91.5 -11t-57.5 -32q-23 -22 -40 -65.5t-31 -118.5l-38 -209q-14 -78 -38 -138t-57 -96q-61 -67 -192 -84q96 -21 137 -64q20 -20 30.5 -48.5t10.5 -71.5q0 -11 -1 -29t-3 -35q-2 -13 -4.5 -30t-7.5 -43 l-41 -205q-3 -13 -4.5 -21t-3 -15t-2.5 -15.5t-3 -22.5l-3 -25.5t-1 -18.5q0 -32 8.5 -52.5t25.5 -33.5q34 -25 114 -25h121l-37 -191h-148v0z" />
+<glyph unicode="|" d="M502 1565h227v-2048h-227v2048z" />
+<glyph unicode="}" d="M56 -143h123q48 0 86.5 11t60.5 32q45 43 72 186l39 205q15 79 38.5 138t56.5 95q62 68 192 88q-95 16 -136 58q-42 42 -42 122q0 11 1 26.5t3 33.5q2 11 5 34.5t7 43.5l41 209q5 18 7.5 35t5.5 40q2 15 3 22t1 11t-0.5 5t-0.5 5q0 28 -8 50t-25 35q-33 24 -114 24h-121 l37 190h147q204 0 287 -48q42 -24 62 -65t20 -92q0 -49 -20 -149l-3 -15l-41 -215q-3 -16 -5.5 -32.5t-4.5 -28.5q-2 -16 -3 -26.5t-1 -20.5q0 -53 18.5 -80t44.5 -42q62 -35 178 -35h62l-37 -191h-92q-141 0 -206 -58q-67 -59 -95 -208l-41 -215q-42 -222 -142 -295 q-100 -74 -347 -74h-150z" />
+<glyph unicode="~" d="M1165 873q-2 -67 -6.5 -123.5t-12.5 -104.5t-20.5 -88.5t-31.5 -73.5l1 3q-80 -162 -265 -162q-88 0 -152 38q-59 35 -133 138q-69 97 -97 119q-13 8 -23.5 13t-20.5 5q-43 0 -59 -40v1q-29 -68 -38 -268h-239q6 254 71 387q92 160 260 160q82 0 147 -40q33 -20 69 -54.5 t69 -80.5l-1 1q51 -69 94 -112q27 -27 50 -27q51 0 73 75.5t24 233.5h241z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M696 1198q-38 0 -65 12.5t-44 30.5q-22 25 -30 55.5t-8 56.5q0 31 9.5 61t27 55t42 44.5t53.5 30.5q33 12 73 12q43 0 68.5 -14.5t41.5 -31.5q20 -23 28.5 -50t8.5 -57q0 -21 -4 -40.5t-10 -33.5q-16 -39 -45.5 -70t-71.5 -48q-33 -13 -74 -13zM455 655l112 357h199 l-25 -357l-127 -655h-286z" />
+<glyph unicode="&#xa2;" d="M506 -25q-195 23 -298 141q-52 60 -78 138.5t-26 183.5q0 77 14 148.5t41 140.5q29 72 69 134t87 110q37 38 83 71t105 57q51 21 109 33t121 13l55 287h142l-55 -287q27 -2 55.5 -7t54.5 -13q57 -17 117 -48l-53 -264q-23 20 -48.5 36.5t-51.5 27.5q-52 22 -119 30 l-135 -692q32 2 64.5 9.5t64.5 18.5q34 12 65 28t63 36l-51 -264q-61 -31 -125 -48q-65 -17 -129 -20l-55 -288h-141zM688 907q-136 -15 -229 -145q-46 -64 -70 -139t-24 -160q0 -60 13 -102.5t39 -75.5q25 -32 57.5 -50t77.5 -20z" />
+<glyph unicode="&#xa3;" d="M29 260h235l64 334h-199l45 225h199l37 197q26 137 71 232.5t108 153.5q64 60 156 89t207 29q80 0 150 -16q73 -17 143 -48l-53 -266q-29 20 -61 36.5t-58 25.5t-58 14.5t-63 5.5q-105 0 -168 -67q-31 -33 -54.5 -84.5t-37.5 -125.5l-33 -176h336l-43 -225h-338l-63 -334 h481l-51 -260h-1004z" />
+<glyph unicode="&#xa4;" d="M186 305l170 170q-14 27 -20 43.5t-13 40.5q-5 20 -8.5 38.5t-3.5 44.5t3.5 47t8.5 40q5 17 12.5 36t22.5 42l-172 170l131 131l166 -172q20 12 42 21.5t41 14.5q42 11 86 11q21 0 41 -3t40 -8t41.5 -14t44.5 -20l172 170l127 -129l-170 -170q11 -20 20 -41t14 -41 q11 -44 11 -86q0 -21 -3 -44.5t-8 -42.5q-5 -16 -14 -37t-22 -40l172 -170l-131 -131l-170 172q-22 -14 -38.5 -21.5t-37.5 -13.5q-19 -5 -39.5 -8.5t-45.5 -3.5q-23 0 -43 3t-41 8t-42.5 13t-44.5 19l-170 -168zM654 467q73 0 123 51q50 52 50 124q0 36 -13 68.5t-36 55.5 q-24 24 -57 36.5t-68 12.5t-66.5 -12t-56.5 -36q-23 -22 -37 -54t-14 -70q0 -35 12.5 -67t37.5 -58q23 -24 55 -37.5t70 -13.5z" />
+<glyph unicode="&#xa5;" d="M383 438h-412l37 189h408l-58 151h-321l37 187h223l-170 528h317l174 -600l408 600h317l-374 -528h223l-37 -187h-321l-115 -151h407l-36 -189h-412l-86 -438h-293z" />
+<glyph unicode="&#xa6;" d="M502 1432h227v-758h-227v758zM502 408h227v-758h-227v758z" />
+<glyph unicode="&#xa7;" d="M458 -195q-79 0 -167 15q-91 15 -187 45l46 229q35 -16 72.5 -28.5t80.5 -21.5q82 -17 150 -17q91 0 137 34q23 17 35 41.5t12 48.5q0 39 -34.5 80t-117.5 97l-18 12l-100 68q-52 35 -88.5 65t-60.5 65q-18 26 -29 57.5t-11 73.5q0 95 61 171q30 38 74 70t101 57 q-51 40 -75 90q-12 25 -18 52.5t-6 62.5q0 154 118 251q56 46 131 71.5t175 25.5q73 0 153 -15q81 -15 167 -45l-45 -229q-34 17 -68.5 30t-64.5 21q-33 8 -65.5 12t-62.5 4q-87 0 -133 -34q-47 -35 -47 -95q0 -44 31 -79q20 -23 53.5 -47.5t85.5 -57.5l105 -67 q95 -60 142 -127q23 -32 32.5 -65.5t9.5 -69.5q0 -86 -55 -160q-29 -38 -71 -73t-99 -69q24 -23 40.5 -47t26.5 -47q21 -50 21 -111q0 -77 -30.5 -140.5t-88.5 -109.5q-57 -45 -137.5 -69.5t-180.5 -24.5zM682 451q55 38 88 83q17 24 24 44.5t7 40.5q0 35 -19 66 q-9 15 -22.5 29.5t-30.5 26.5l-80 54q-2 0 -12 7.5t-29 20.5l-78 54q-29 -21 -51.5 -44t-37.5 -44q-17 -24 -24 -44.5t-7 -40.5q0 -35 18 -65t55 -55l78 -54l51 -34q15 -10 24 -15.5t15.5 -10t13.5 -9t17 -10.5z" />
+<glyph unicode="&#xa8;" d="M449 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM844 1339q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q51 0 95.5 8.5t90.5 28.5q38 17 78 43t78 64q34 34 62 74.5t46 83.5q36 85 36 185q0 54 -9.5 98t-26.5 86q-19 45 -46.5 85t-60.5 74t-74 62t-83 45 q-48 20 -92.5 28t-90.5 8q-56 0 -101.5 -9.5t-86.5 -26.5q-42 -18 -82 -45t-75 -62t-62.5 -77t-44.5 -82q-36 -84 -36 -185q0 -99 36 -184q19 -45 45.5 -83.5t61.5 -73.5q38 -38 76.5 -64.5t80.5 -43.5q46 -20 90.5 -28.5t94.5 -8.5zM637 399q-81 0 -150 22.5t-120 70.5 t-76 111.5t-25 137.5q0 82 27.5 145t73.5 105q47 43 115 67.5t154 24.5q26 0 55.5 -2t53.5 -6q23 -4 51.5 -11t51.5 -15v-168q-53 32 -97 45q-23 7 -46.5 10.5t-49.5 3.5q-49 0 -85.5 -13t-62.5 -39q-54 -53 -54 -147q0 -95 53 -146q52 -52 152 -52q29 0 53 4t47 11 t43.5 16.5t46.5 27.5v-168q-28 -8 -55 -14.5t-53 -11.5q-53 -9 -103 -9z" />
+<glyph unicode="&#xaa;" d="M511 698q-111 0 -173 61q-64 61 -64 167q0 71 27 128t85 99q112 80 319 80h135l6 35q2 4 2 7v11q0 40 -36 61q-19 11 -45.5 16t-58.5 5t-64 -5t-69 -15q-36 -10 -73 -23.5t-84 -34.5l33 174q79 28 152 42q35 7 69.5 10.5t70.5 3.5q67 0 125.5 -12.5t100.5 -38.5 q44 -27 63 -65.5t19 -85.5q0 -10 -1 -28t-3 -35q-2 -19 -6.5 -44.5t-8.5 -45.5l-88 -448h-207l19 88q-25 -29 -50 -47.5t-57 -32.5q-63 -27 -138 -27zM598 838q38 0 73.5 16.5t63.5 48.5q26 29 46 75t30 109h-80q-122 0 -180 -36q-29 -18 -44 -45.5t-15 -62.5q0 -47 29 -76 q14 -14 32.5 -21.5t44.5 -7.5zM246 598h688l-35 -170h-688z" />
+<glyph unicode="&#xab;" d="M78 535l24 131l547 393l-47 -238l-319 -221l233 -221l-45 -238zM532 535l25 131l545 393l-45 -238l-320 -221l234 -221l-45 -238z" />
+<glyph unicode="&#xac;" d="M907 662h-819v237h1057v-537h-238v300z" />
+<glyph unicode="&#xad;" d="M299 735h629l-56 -291h-628z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM616 256q99 0 185 36t157 107q32 32 60 72t48 87q18 43 27 88t9 96q0 50 -8.5 95t-27.5 90t-46.5 85t-60.5 74q-32 33 -73 61t-84 46q-48 20 -92.5 28t-92.5 8 q-59 0 -102.5 -9.5t-82.5 -26.5q-35 -15 -76 -40.5t-83 -67.5q-37 -38 -63 -78.5t-43 -79.5q-20 -48 -28 -94t-8 -91q0 -51 9 -96t27 -88q16 -38 42 -78.5t65 -79.5q71 -71 158 -108q85 -36 184 -36zM360 1055h246q133 0 198 -44q32 -22 48 -55.5t16 -77.5q0 -66 -39 -108 q-18 -20 -44 -34t-66 -21q23 -8 39.5 -20t26.5 -22q11 -11 24.5 -30.5t26.5 -46.5l79 -166h-172l-63 133q-13 27 -26.5 48.5t-28.5 33.5q-12 10 -30 17t-40 8h-31v-240h-164v625zM588 780q57 0 86 20q28 19 28 61t-28 63q-29 20 -86 20h-64v-164h64z" />
+<glyph unicode="&#xaf;" d="M459 1556h631l-37 -188h-631z" />
+<glyph unicode="&#xb0;" d="M613 854q-71 0 -131 25t-104 69q-47 47 -71 107.5t-24 129.5t23.5 130t71.5 109t108.5 72t129.5 24q68 0 128 -25q29 -12 57 -31t51 -42t42 -52t30 -57q24 -59 24 -125q0 -69 -25 -129q-12 -29 -29.5 -56t-41.5 -51q-23 -23 -51.5 -41.5t-57.5 -30.5q-31 -13 -63 -19.5 t-67 -6.5zM614 1016q72 0 122 50t50 121q0 72 -49 121q-50 50 -121 50q-72 0 -122 -50t-50 -123q0 -71 49 -120t121 -49z" />
+<glyph unicode="&#xb1;" d="M498 694h-410v236h410v354h237v-354h410v-236h-410v-354h-237v354zM88 238h1057v-238h-1057v238z" />
+<glyph unicode="&#xb2;" d="M289 1261q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q109 78 185 138.5t124 106.5t69.5 80t21.5 58q0 16 -9 33.5t-27 30.5q-35 24 -104 24q-30 0 -64.5 -4.5t-71.5 -13.5q-38 -9 -77 -22.5t-75 -30.5l31 162q38 11 75 20t74 15q73 12 145 12q69 0 124.5 -12.5 t97.5 -41.5q41 -29 59.5 -67t18.5 -74q0 -41 -23.5 -86t-73.5 -98.5t-127.5 -116t-185.5 -138.5q-13 -9 -18 -12.5t-12.5 -8.5t-23 -16t-50.5 -36h438l-28 -145h-664z" />
+<glyph unicode="&#xb3;" d="M569 1103q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5z" />
+<glyph unicode="&#xb4;" d="M887 1638h321l-442 -376h-197z" />
+<glyph unicode="&#xb5;" d="M246 1120h289l-132 -680q-2 -8 -4.5 -20.5t-4.5 -31.5q-3 -24 -3 -42q0 -64 34 -98q17 -17 40.5 -26t55.5 -9q81 0 132 56q52 56 74 171l131 680h289l-150 -776q-2 -17 -3.5 -27t-2.5 -15t-1 -6.5v-2.5q-2 -10 -2.5 -16t-0.5 -13q0 -23 11 -37t30 -14q12 0 27 6 q5 2 14.5 7t20.5 12l-43 -222q-28 -14 -47 -21.5t-39 -12.5t-39 -8t-39 -3q-38 0 -64 10t-44 28q-38 38 -50 120q-52 -79 -114 -118q-29 -19 -61 -29.5t-71 -10.5q-59 0 -96 24q-38 24 -53 71l-97 -494h-288z" />
+<glyph unicode="&#xb6;" d="M457 649q-171 18 -263 104q-46 43 -69 99t-23 134q0 103 40.5 194t122.5 166q162 147 407 147h518l-328 -1690h-190l301 1543h-191l-299 -1543h-190z" />
+<glyph unicode="&#xb7;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
+<glyph unicode="&#xb8;" d="M349 -401q-26 0 -54.5 2t-45.5 4q-6 1 -19.5 3t-28.5 5t-29.5 6t-21.5 6l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-6 16 -17 39t-27 51h141q36 -49 54 -94q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5 q-37 -29 -90.5 -44t-120.5 -15z" />
+<glyph unicode="&#xb9;" d="M315 1265h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657z" />
+<glyph unicode="&#xba;" d="M634 698q-78 0 -137 21t-103 63q-45 42 -66 101t-21 144q0 103 30 193t90 160q119 140 313 140q154 0 241 -84q43 -42 64.5 -100t21.5 -145q0 -100 -29.5 -190.5t-89.5 -162.5q-62 -73 -140.5 -106.5t-173.5 -33.5zM649 862q45 0 82.5 25.5t64.5 69.5q30 49 45 110 t15 121q0 38 -7 71t-27 56q-17 20 -41.5 30.5t-52.5 10.5q-46 0 -83.5 -25.5t-64.5 -69.5q-32 -51 -46 -112.5t-14 -116.5q0 -47 9 -77t25 -50q17 -20 41 -31.5t54 -11.5zM254 598h688l-33 -170h-688z" />
+<glyph unicode="&#xbb;" d="M127 379l322 221l-234 221l45 238l393 -393l-26 -131l-545 -394zM582 379l321 221l-233 221l45 238l393 -393l-27 -131l-544 -394z" />
+<glyph unicode="&#xbc;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
+<glyph unicode="&#xbd;" d="M57 969h236l106 543l-229 -43l29 149l229 41h197l-135 -690h227l-29 -145h-657zM47 618l1059 261l37 -117l-1059 -262zM443 -129q34 25 51.5 37.5t29.5 21t24.5 17.5t36.5 26q107 77 183 137t124 106.5t70.5 80.5t22.5 59q0 16 -9 33.5t-27 30.5q-35 24 -104 24 q-30 0 -64.5 -4.5t-71.5 -13.5q-41 -10 -78 -23t-74 -30l31 162q38 11 75 20t74 15q73 12 144 12t128 -13t96 -41q40 -29 58.5 -67.5t18.5 -73.5q0 -80 -99.5 -186.5t-310.5 -252.5q-12 -8 -21.5 -14.5t-20.5 -14.5t-25.5 -18t-36.5 -26h438l-28 -145h-664z" />
+<glyph unicode="&#xbe;" d="M342 809q-40 0 -76.5 3t-73.5 8q-36 5 -70.5 12t-72.5 18l31 154q35 -15 67 -24.5t68 -16.5q37 -7 75 -10.5t71 -3.5q55 0 92.5 10.5t65.5 30.5q29 22 42 49t13 56q0 52 -43 77q-44 26 -119 26h-111l29 146h109q89 0 135 28q47 28 47 77q0 42 -40 64q-41 23 -109 23 q-49 0 -118 -12q-32 -6 -69.5 -14.5t-79.5 -20.5l29 152q37 8 73 14.5t71 11.5q70 9 134 9q73 0 127.5 -12.5t94.5 -38.5q79 -51 79 -143q0 -42 -15 -78t-45 -64q-29 -27 -72.5 -44.5t-100.5 -23.5q84 -9 133 -58q25 -25 37 -55.5t12 -72.5q0 -63 -27 -114.5t-82 -88.5 t-133 -55.5t-178 -18.5zM47 618l1059 261l37 -117l-1059 -262zM796 -90h-389l31 162l467 493h205l-101 -512h109l-27 -143h-108l-35 -180h-188zM823 53l64 330l-314 -330h250z" />
+<glyph unicode="&#xbf;" d="M732 1222q-35 0 -59 11.5t-41 30.5q-16 18 -26 43t-10 53v30q0 10 4.5 24.5t10.5 26.5q8 16 22 37t37 39t51 28.5t62 10.5q47 0 81 -21t50 -66q9 -26 9 -56q0 -48 -17 -82t-43 -57q-26 -24 -59.5 -38t-71.5 -14zM454 -27q-85 0 -150 20.5t-115 62.5q-99 82 -99 216 q0 96 49 178q25 42 67.5 88.5t98.5 92.5l105 86l8 7q66 58 102.5 116t50.5 129l23 123h266l-29 -154q-10 -52 -24.5 -91.5t-36.5 -74.5q-26 -42 -60.5 -77.5t-78.5 -73.5l-105 -93l-15 -13q-68 -59 -104 -105.5t-36 -88.5q0 -20 9 -42.5t28 -38.5t45 -23.5t64 -7.5 q46 0 93 10t96 27t103.5 43.5t114.5 64.5l-52 -268q-100 -55 -208 -84t-210 -29z" />
+<glyph unicode="&#xc0;" d="M500 1852h264l143 -264h-178zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc1;" d="M862 1852h281l-320 -264h-207zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc2;" d="M639 1852h348l151 -264h-169l-164 161l-230 -161h-180zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc3;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-14 11 -22.5 16 t-19.5 10q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM582 1493h360l113 -1493h-293l-14 369h-400l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc4;" d="M487 1613q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM883 1613q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM582 1493h360l113 -1493h-293l-14 369h-400 l-162 -369h-299zM737 612l-20 607l-264 -607h284z" />
+<glyph unicode="&#xc5;" d="M547 1421q-36 36 -57 89q-21 52 -21 108q0 115 84 199q40 40 88.5 62t111.5 22q117 0 201 -84t84 -199q0 -32 -6 -61.5t-17 -53.5q-12 -28 -29.5 -52t-37.5 -42l107 -1409h-295l-21 369h-395l-162 -369h-295zM754 1485q54 0 93 39q38 38 38 92t-39 93q-40 38 -92 38 q-54 0 -92 -38q-39 -39 -39 -93q0 -29 10.5 -52t27.5 -40q39 -39 93 -39zM729 612l-20 611l-258 -611h278z" />
+<glyph unicode="&#xc6;" d="M502 1493h809l-51 -260h-291l-60 -311h260l-51 -260h-260l-78 -402h310l-52 -260h-563l72 362h-283l-155 -362h-259zM592 598l125 635h-80l-272 -635h227z" />
+<glyph unicode="&#xc7;" d="M1038 1502q35 -8 75.5 -21.5t79.5 -32.5l-64 -328q-50 69 -122 103q-37 17 -77.5 25.5t-76.5 8.5q-41 0 -82.5 -11t-81.5 -36q-42 -26 -74.5 -62.5t-56.5 -73.5q-35 -54 -62.5 -117t-48.5 -138q-23 -81 -33 -151.5t-10 -130.5q0 -71 14.5 -129t48.5 -100q63 -77 184 -77 q78 0 159 34q43 18 85.5 44.5t88.5 61.5l-64 -328q-40 -19 -80 -32.5t-77 -21.5q-22 -5 -43.5 -8.5t-43.5 -5.5q22 -35 36 -69q18 -47 18 -91q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156 q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 28t-18 36q-91 8 -167.5 41t-132.5 93q-67 72 -96.5 176t-29.5 233q0 102 17.5 212t53.5 219q35 105 82.5 192t108.5 156q48 54 104 96t123 71q66 29 139.5 43t149.5 14 q42 0 78.5 -4.5t76.5 -13.5z" />
+<glyph unicode="&#xc8;" d="M527 1853h264l143 -264h-178zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xc9;" d="M899 1852h281l-320 -264h-207zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xca;" d="M666 1853h348l151 -264h-169l-164 161l-230 -161h-180zM317 1493h932l-51 -260h-635l-63 -322h575l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xcb;" d="M514 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM910 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM317 1493h932l-51 -260h-635l-63 -322h575 l-49 -260h-575l-76 -391h635l-52 -260h-929z" />
+<glyph unicode="&#xcc;" d="M496 1853h264l143 -264h-178zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xcd;" d="M858 1853h281l-320 -264h-207zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xce;" d="M645 1853h348l151 -264h-169l-164 161l-230 -161h-180zM78 260h297l188 973h-297l51 260h889l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xcf;" d="M493 1606q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM889 1606q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM78 260h297l188 973h-297l51 260h889 l-51 -260h-297l-188 -973h297l-52 -260h-888z" />
+<glyph unicode="&#xd0;" d="M151 664h-137l47 237h135l117 592h315q139 0 247 -30t180 -93q70 -61 105 -155t35 -219q0 -36 -3 -85.5t-10 -96.5q-3 -21 -7.5 -47t-10 -54.5t-11.5 -56.5t-12 -53q-20 -81 -44 -146t-46 -110q-30 -62 -62 -104.5t-62 -71.5q-48 -47 -105.5 -79t-120.5 -52 q-69 -21 -154.5 -30.5t-194.5 -9.5h-330zM464 266q112 0 189 44q42 23 70 56t50 76q24 48 46.5 114.5t38.5 138.5q17 75 24.5 144.5t7.5 120.5q0 73 -15.5 122t-46.5 81q-63 64 -192 64h-82l-63 -326h211l-45 -237h-211l-78 -398h96z" />
+<glyph unicode="&#xd1;" d="M452 1588q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM266 1493h303l215 -1085l211 1085h260l-288 -1493h-293l-225 1085l-211 -1085h-263z" />
+<glyph unicode="&#xd2;" d="M510 1852h264l143 -264h-178zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd3;" d="M872 1852h281l-320 -264h-207zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5 q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174 q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd4;" d="M629 1852h348l151 -264h-169l-164 161l-230 -161h-180zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94 q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112 t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45 t68.5 -14z" />
+<glyph unicode="&#xd5;" d="M422 1589q26 129 91 197q32 34 71.5 51.5t88.5 17.5q38 0 71 -12q14 -5 30.5 -14.5t36.5 -24.5l53 -41q13 -12 34 -20q17 -7 34 -7q40 0 65 31q27 32 37 88h137q-25 -127 -91 -197q-65 -69 -159 -69q-20 0 -36.5 3t-32.5 8t-31 13.5t-39 26.5l-49 37q-16 12 -22.5 16.5 t-19.5 9.5q-10 4 -17.5 5t-13.5 1q-21 0 -37 -9t-27 -22q-16 -19 -25 -45.5t-12 -43.5h-137zM500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18 q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5 t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175 q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd6;" d="M487 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM883 1606q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M500 -29q-102 0 -185.5 31t-141.5 96q-59 66 -85.5 160.5t-26.5 217.5q0 88 12.5 189.5t37.5 204.5q26 109 61 199t74 159q35 63 83.5 119t117.5 98q65 39 137.5 57t147.5 18q103 0 186 -31t140 -94q64 -70 88.5 -167.5t24.5 -212.5q0 -85 -11.5 -184.5t-37.5 -208.5 q-23 -99 -56 -189.5t-78 -168.5q-42 -74 -90.5 -127t-111.5 -91q-64 -38 -136 -56.5t-150 -18.5zM525 233q60 0 110 36q24 17 45.5 43t40.5 61q13 24 24 51t22 59q14 39 22.5 71.5t19.5 75.5q14 57 25 112t19 104q15 99 15 174q0 121 -40 180q-41 60 -120 60 q-34 0 -61.5 -10t-48.5 -25q-24 -17 -46 -44t-40 -60q-14 -25 -23.5 -50t-19.5 -54q-7 -21 -12.5 -38.5t-10.5 -34.5t-10 -37t-12 -47q-14 -58 -25 -109t-19 -105q-15 -101 -15 -175q0 -121 40 -179q21 -31 51.5 -45t68.5 -14z" />
+<glyph unicode="&#xd7;" d="M119 313l330 330l-330 328l168 168l327 -328l330 328l168 -168l-330 -328l330 -330l-168 -166l-330 328l-327 -328z" />
+<glyph unicode="&#xd8;" d="M-141 51l219 244q-5 21 -7.5 37t-4.5 34q-2 19 -3.5 37t-1.5 51q0 94 12 200t37 211q23 100 57 193t77 169q39 69 89 124.5t114 93.5t137 56.5t148 18.5q104 0 187 -33q82 -33 144 -98l154 170l139 -115l-205 -227q6 -32 9.5 -56.5t5.5 -47.5q2 -25 3.5 -45t1.5 -46 t-1.5 -63t-5.5 -72q-2 -14 -4 -32.5t-5 -39l-6 -41t-6 -37.5q-5 -30 -12.5 -64t-15.5 -68t-17 -66t-18 -59q-17 -52 -39.5 -107t-51.5 -108q-42 -74 -93.5 -129t-109.5 -90q-63 -38 -135.5 -56.5t-150.5 -18.5q-110 0 -196 37q-88 38 -144 109l-160 -180zM852 1153 q-9 27 -23.5 47.5t-31.5 32.5q-20 15 -44 21t-47 6q-65 0 -112.5 -39t-83.5 -108q-38 -72 -70.5 -189t-60.5 -295zM525 233q127 0 204 153q38 76 70.5 203.5t58.5 299.5l-483 -535q18 -60 57 -90q18 -14 40 -22.5t53 -8.5z" />
+<glyph unicode="&#xd9;" d="M496 1852h264l143 -264h-178zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xda;" d="M868 1854h281l-320 -264h-207zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46 q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xdb;" d="M645 1855h348l151 -264h-169l-164 161l-230 -161h-180zM497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45 q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xdc;" d="M493 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l38 186q6 27 32 27h175q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM889 1608q-27 0 -27 26q0 4 0.5 4.5t0.5 2.5l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177z M497 -29q-106 0 -190 24.5t-144 74.5q-62 51 -90 122t-28 162q0 21 1.5 42t4.5 48q2 19 3.5 31.5t3.5 23.5t4 22.5t6 29.5l184 942h295l-199 -1016q0 -3 -1 -6q-4 -23 -5.5 -40t-1.5 -31q0 -79 46 -124t132 -45q52 0 95.5 15t75.5 46q64 61 89 185l199 1016h295l-185 -942 q-17 -85 -34 -150.5t-41 -121.5q-21 -49 -46.5 -86.5t-57.5 -69.5q-76 -74 -179 -113q-52 -20 -109 -29.5t-123 -9.5z" />
+<glyph unicode="&#xdd;" d="M868 1852h281l-320 -264h-207zM432 588l-287 905h293l187 -649l411 649h322l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#xde;" d="M307 1493h295l-47 -227h127q235 0 360 -92q63 -47 93 -114t30 -158q0 -51 -9 -107t-27 -112q-19 -58 -42.5 -100.5t-52.5 -76.5q-44 -52 -91.5 -82t-102.5 -50q-59 -21 -130.5 -31.5t-170.5 -10.5h-164l-64 -332h-295zM569 580q147 0 217 67q36 34 54 83.5t18 112.5 q0 55 -13 87t-39 50q-26 19 -68.5 28.5t-106.5 9.5h-121l-86 -438h145z" />
+<glyph unicode="&#xdf;" d="M666 -29q-40 0 -70 3.5t-61 9.5q-39 8 -67.5 16t-61.5 20l49 250q29 -16 57 -27.5t55 -19.5q51 -16 102 -16q42 0 77.5 10t61.5 30t39 46t13 54q0 41 -27.5 84.5t-83.5 99.5l-6 6l-69 71q-45 46 -65 97q-21 51 -21 112q0 132 92 227q91 93 260 130v16q0 29 -10.5 55 t-34.5 45q-46 35 -125 35q-95 0 -152 -51t-77 -152l-219 -1122h-293l219 1126q21 109 64 188.5t109 134.5q131 110 346 110q97 0 170.5 -21.5t122.5 -65.5t73 -109.5t24 -147.5q0 -29 -3 -64t-8 -86l-1 -6q-73 -4 -128 -19.5t-91 -38.5t-57 -56t-21 -70q0 -33 21.5 -70 t74.5 -90l82 -82q59 -60 88 -121q14 -29 21.5 -62t7.5 -76q0 -86 -32 -161t-96 -131q-128 -111 -349 -111z" />
+<glyph unicode="&#xe0;" d="M402 1673h284l209 -376h-198zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe1;" d="M918 1673h321l-442 -376h-197zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59 q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155 h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe2;" d="M699 1673h243l183 -376h-176l-152 225l-240 -225h-190zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe3;" d="M911 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250 q115 40 214 59q51 10 98 14.5t98 4.5q109 0 189 -19.5t135 -56.5q60 -40 86 -95.5t26 -127.5q0 -18 -1.5 -41t-5.5 -51q-2 -14 -4 -27t-4 -26.5t-5 -29t-7 -34.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70 q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe4;" d="M480 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM875 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM379 -29q-75 0 -137 21t-107 66 q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5 q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46 t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe5;" d="M778 1249q-57 0 -108.5 21t-93.5 63q-41 42 -61.5 93t-20.5 108q0 63 23.5 115t59.5 88q37 37 88.5 59.5t113.5 22.5q57 0 108.5 -20.5t92.5 -61.5q35 -35 59 -86.5t24 -115.5q0 -63 -23.5 -115.5t-58.5 -87.5q-41 -41 -93.5 -62t-109.5 -21zM779 1403q25 0 49.5 9.5 t44.5 29.5q37 39 37 93q0 53 -39 92q-17 17 -40 27.5t-52 10.5q-55 0 -93 -38q-39 -39 -39 -93q0 -55 38 -93q17 -17 41.5 -27.5t52.5 -10.5zM379 -29q-75 0 -137 21t-107 66q-47 46 -67.5 108t-20.5 134q0 102 39 184.5t117 139.5q155 113 448 113h193l8 49q2 10 2 12v17 q0 57 -51 87t-146 30q-85 0 -187 -28q-50 -14 -103.5 -34.5t-118.5 -50.5l47 250q115 40 214 59q51 10 98 14.5t98 4.5q104 0 185.5 -19t138.5 -57q60 -40 86 -96.5t26 -129.5q0 -18 -1.5 -39.5t-5.5 -49.5q-4 -29 -8 -53.5t-12 -63.5l-123 -639h-262l-4 125 q-70 -79 -153 -115q-44 -20 -93 -29.5t-100 -9.5zM501 172q54 0 103.5 23t89.5 70q38 44 66.5 110t42.5 155h-113q-173 0 -255 -52q-42 -26 -62.5 -66t-20.5 -91q0 -36 10.5 -62t30.5 -46t45.5 -30.5t62.5 -10.5z" />
+<glyph unicode="&#xe6;" d="M246 -29q-127 0 -202 79q-38 40 -56.5 92.5t-18.5 124.5q0 92 30.5 169t91.5 137q121 117 325 117h108l11 58q3 17 3.5 21.5t1.5 8.5q1 5 1 12.5v9.5q0 36 -8.5 60t-25.5 40q-35 32 -98 32q-54 0 -122 -25q-37 -14 -75 -32.5t-81 -43.5l47 238q40 20 77.5 34.5t74.5 24.5 q36 10 71.5 14.5t67.5 4.5q84 0 142 -35q30 -18 50 -42t33 -56q53 65 122 99q68 34 154 34q126 0 193 -70q68 -71 68 -204q0 -24 -2 -51t-6 -61q-7 -58 -15 -99.5t-10 -55.5l-22 -129h-451q-3 -19 -6.5 -43t-4.5 -32q-3 -27 -3 -45q0 -42 11.5 -75t31.5 -55q42 -47 113 -47 q54 0 124 29q31 13 65.5 33t67.5 47l-47 -238q-57 -40 -125 -60q-34 -10 -71.5 -15t-74.5 -5q-52 0 -90.5 10.5t-73.5 32.5q-68 44 -99 121q-62 -83 -134 -123q-39 -22 -78.5 -31.5t-84.5 -9.5zM991 688l12 67q4 16 6 34q1 8 1 19.5v25.5q0 50 -20 75q-20 23 -64 23 q-57 0 -91 -42q-19 -23 -33 -57.5t-22 -72.5l-14 -72h225zM296 180q66 0 106 52t61 169l14 78h-74q-98 0 -156 -51q-30 -26 -44.5 -61.5t-14.5 -73.5q0 -28 7.5 -48t21.5 -35q28 -30 79 -30z" />
+<glyph unicode="&#xe7;" d="M809 909q-89 0 -158 -33t-118 -90q-54 -63 -80.5 -145t-26.5 -175q0 -69 15 -115.5t46 -78.5t77 -47.5t106 -15.5q38 0 75 6.5t77 19.5q37 12 78.5 30.5t91.5 47.5l-56 -276q-78 -34 -158 -50q-18 -4 -36.5 -6.5t-36.5 -4.5q23 -35 37 -70q18 -47 18 -91 q0 -47 -18.5 -87.5t-56.5 -69.5q-37 -29 -90 -44t-122 -15q-26 0 -53 2t-46 4q-22 3 -37 5.5t-26 5.5t-19 5t-17 4l28 156q22 -8 43 -14.5t41 -11.5q40 -9 77 -9q34 0 60.5 7t43.5 20q36 27 36 76q0 28 -13 61q-5 12 -12 27.5t-17 35.5q-89 6 -166.5 35t-137.5 86 q-69 66 -98.5 156.5t-29.5 197.5q0 71 12 140t35 133.5t57 122.5t79 106q90 97 212.5 147t266.5 50q50 0 98 -5.5t86 -14.5q41 -10 82 -26t79 -38l-53 -268q-60 57 -129 86q-66 28 -146 28z" />
+<glyph unicode="&#xe8;" d="M391 1674h284l209 -376h-198zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xe9;" d="M867 1673h321l-442 -376h-197zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56 q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49 q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xea;" d="M668 1673h243l183 -376h-176l-152 225l-240 -225h-190zM583 -29q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181 q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134 q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xeb;" d="M439 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM834 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM583 -29 q-250 0 -378 118q-66 61 -97.5 148.5t-31.5 200.5q0 137 44 271q23 68 53.5 124t70.5 105q43 52 93.5 91.5t106.5 65.5q54 26 116.5 40t133.5 14q102 0 188 -30t148 -90q58 -56 91.5 -135t33.5 -181q0 -20 -1.5 -50t-4.5 -56q-2 -20 -8 -60.5t-13 -81.5h-759q-2 -8 -2.5 -16 t-1.5 -16l-3 -30q0 -55 18 -90.5t49 -58.5q67 -51 200 -51q52 0 106 7.5t108 23.5q108 31 201 90l-51 -269q-95 -42 -198 -63q-104 -21 -212 -21zM876 684q4 13 6 28q1 7 1 13v12q0 84 -51 134q-50 49 -140 49q-100 0 -171 -59t-111 -177h466z" />
+<glyph unicode="&#xec;" d="M306 1648h284l209 -376h-198zM737 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xed;" d="M862 1648h321l-442 -376h-197zM697 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5 q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xee;" d="M596 1673h243l183 -376h-176l-152 225l-240 -225h-190zM700 -8q-107 0 -177 14t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12 q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xef;" d="M395 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-175zM790 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q14 0 18 -6.5t8 -17.5q1 -5 0 -9l-37 -186q-5 -27 -32 -27h-176zM718 -8q-107 0 -177 14 t-113 43q-47 31 -66 76.5t-19 103.5q0 17 1.5 31.5t3.5 31.5q2 18 5.5 37.5t8.5 41.5l120 524h-236l43 225h528l-166 -763q-3 -12 -4 -17.5t-1 -8.5v-4.5t-1 -5.5q-2 -8 -2.5 -14t-0.5 -12q0 -17 7 -32.5t24 -26.5q31 -19 109 -19h278l-45 -225h-297z" />
+<glyph unicode="&#xf0;" d="M538 -29q-112 0 -195.5 30.5t-140.5 84.5q-63 60 -91.5 143.5t-28.5 190.5q0 129 39.5 245.5t119.5 207.5q74 84 176.5 132t233.5 48q42 0 75 -6q17 -3 32.5 -7.5t29.5 -11.5q-6 15 -10.5 25t-10 22t-13.5 28l-21 42q-23 44 -35 65.5t-20 32.5l-330 -123l-41 115l307 115 l-125 206h279l74 -120l323 118l41 -112l-303 -113q120 -182 179 -349q29 -81 44 -163t15 -171q0 -144 -41 -269t-123 -219q-78 -90 -188 -138.5t-251 -48.5zM560 207q60 0 113 31t94 94q39 60 60 143.5t21 176.5q0 17 -0.5 36t-1.5 30q-1 8 -3.5 27t-4.5 33q-19 11 -40 18.5 t-39 12.5q-20 5 -42.5 7.5t-40.5 2.5q-68 0 -122.5 -29t-93.5 -80q-43 -57 -64 -128.5t-21 -144.5q0 -60 13 -101.5t36 -68.5q22 -26 56 -43t80 -17z" />
+<glyph unicode="&#xf1;" d="M880 1297q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM276 1120h264l-3 -168q25 48 59 84t73 60q82 51 188 51q61 0 110 -17t84 -52q33 -33 51 -82t18 -116q0 -14 -1 -31t-3 -36q-2 -12 -5.5 -37t-8.5 -48l-141 -728h-293l133 682q1 4 2 12.5t2.5 17t2.5 15.5t1 8 q1 13 1.5 26t0.5 23q0 29 -6.5 52.5t-22.5 40.5q-29 30 -83 30q-83 0 -141 -72q-60 -73 -85 -206l-121 -629h-293z" />
+<glyph unicode="&#xf2;" d="M371 1673h284l209 -376h-198zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf3;" d="M887 1673h321l-442 -376h-197zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5 t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf4;" d="M668 1675h243l183 -376h-176l-152 225l-240 -225h-190zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf5;" d="M880 1299q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -3 2.5t-2 1.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2q20 0 35.5 9 t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72zM543 -29q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229 q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf6;" d="M449 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM844 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -26q0 -4 -0.5 -4.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM543 -29 q-114 0 -197.5 33.5t-137.5 86.5q-64 63 -92 151t-28 200q0 142 41.5 274t124.5 233q80 97 190 148.5t245 51.5q100 0 187 -29.5t149 -89.5q63 -62 91.5 -151t28.5 -203q0 -145 -42 -276t-123 -229q-85 -103 -196.5 -151.5t-240.5 -48.5zM563 207q58 0 110 33.5t94 102.5 q38 63 60.5 148t22.5 181q0 69 -12 111.5t-34 69.5q-26 32 -61 45t-71 13q-124 0 -206 -135q-21 -36 -37 -76.5t-26 -83t-15 -85.5t-5 -83q0 -53 10 -100t38 -81q21 -26 54 -43t78 -17z" />
+<glyph unicode="&#xf7;" d="M461 1198h309v-309h-309v309zM66 762h1099v-238h-1099v238zM461 395h309v-309h-309v309z" />
+<glyph unicode="&#xf8;" d="M-82 2l211 207q-11 27 -17.5 49t-12.5 50q-5 26 -8 53.5t-3 68.5q0 153 42 287t123 233q83 100 194.5 149.5t240.5 49.5q45 0 88 -6t82 -19q76 -25 143 -75l193 186l117 -121l-207 -201q10 -25 18 -50.5t13 -52.5q5 -28 7.5 -53.5t2.5 -60.5q0 -155 -41.5 -290.5 t-123.5 -235.5q-79 -96 -189.5 -147.5t-249.5 -51.5q-47 0 -90 6t-81 19q-76 25 -137 76l-198 -189zM801 856q-26 29 -56 42t-71 13q-63 0 -110.5 -29.5t-85.5 -88.5q-39 -61 -62 -145t-33 -195zM562 207q120 0 196 121q39 63 61.5 147.5t30.5 194.5l-416 -404 q14 -17 26.5 -26.5t29.5 -17.5q31 -15 72 -15z" />
+<glyph unicode="&#xf9;" d="M381 1648h284l209 -376h-198zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfa;" d="M897 1648h321l-442 -376h-197zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207 l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfb;" d="M678 1648h243l183 -376h-176l-152 225l-240 -225h-190zM370 -29q-61 0 -110.5 18t-84.5 53q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9 q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfc;" d="M459 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-175zM854 1347q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM370 -29q-61 0 -110.5 18t-84.5 53 q-69 70 -69 202q0 14 1 30t3 34q2 12 5 36t8 47l143 729h291l-131 -684q-2 -11 -3.5 -24t-3.5 -29t-2.5 -26t-0.5 -21q0 -35 7.5 -56t21.5 -37q13 -14 32.5 -23t51.5 -9q44 0 78 18t61 53q58 74 84 207l122 631h291l-217 -1120h-264l4 166q-24 -51 -60 -86.5t-68 -55.5 q-47 -29 -95 -41t-95 -12z" />
+<glyph unicode="&#xfd;" d="M922 1648h321l-442 -376h-197zM-20 -201h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
+<glyph unicode="&#xfe;" d="M348 1556h293l-117 -604q70 97 153 147q39 23 83.5 35.5t93.5 12.5q145 0 230 -109q43 -55 64 -129.5t21 -174.5q0 -60 -7.5 -124t-23.5 -130t-38.5 -126t-48.5 -110q-69 -129 -174 -201t-223 -72q-110 0 -183 62t-92 174l-123 -633h-293zM601 209q60 0 109 39t84 102 q38 69 59 156.5t21 176.5q0 60 -10 100t-31 68q-42 56 -115 56q-56 0 -107 -34.5t-92 -103.5q-40 -68 -61.5 -153t-21.5 -172q0 -55 10 -99t34 -76q21 -28 52 -44t69 -16z" />
+<glyph unicode="&#xff;" d="M484 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h177q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-175zM879 1320q-15 0 -22.5 9t-4.5 24l36 186q4 27 32 27h178q27 0 27 -24q0 -6 -0.5 -6.5t-0.5 -2.5l-37 -186q-5 -27 -32 -27h-176zM-20 -201 h117q90 0 137 30q24 15 52 50t58 92l39 74l-217 1075h297l127 -700l383 700h309l-706 -1241q-56 -98 -103 -160t-90 -91q-38 -26 -91.5 -39t-116.5 -13h-240z" />
+<glyph unicode="&#x152;" d="M474 0q-133 0 -219 23.5t-138 67.5q-53 45 -79.5 119.5t-26.5 191.5q0 66 8.5 147t25.5 175t41 187t52 172q35 99 80 177.5t116 134.5q64 51 141 74.5t171 23.5h686l-52 -260h-331l-60 -311h301l-51 -260h-301l-78 -402h342l-51 -260h-577zM506 260l189 973h-51 q-48 0 -82.5 -13t-60.5 -34q-30 -25 -51.5 -61t-39.5 -86q-10 -27 -21 -64t-22 -79.5t-21.5 -88.5t-18.5 -90q-15 -80 -23.5 -153t-8.5 -124q0 -52 9.5 -84.5t29.5 -53.5q18 -20 47 -31t74 -11h51z" />
+<glyph unicode="&#x153;" d="M296 -29q-72 0 -132 20.5t-102 62.5q-40 40 -61 101.5t-21 153.5q0 57 8 132t24 154q17 84 39 155.5t48 130.5q29 66 66 115t89 84q50 33 109 50t122 17q39 0 75.5 -7t67.5 -23t55.5 -39.5t41.5 -51.5q48 58 117 90q68 31 151 31q67 0 117 -18t83 -51q35 -35 52 -86 t17 -114q0 -26 -2.5 -59t-5.5 -58q-4 -29 -10.5 -71t-14.5 -84l-23 -127h-450q-5 -26 -7.5 -46t-4.5 -33q-3 -26 -3 -44q0 -38 11 -70.5t32 -55.5q20 -22 50 -34t67 -12q55 0 123 28q33 14 64.5 32t66.5 45l-47 -238q-57 -41 -126 -60q-71 -20 -147 -20q-52 0 -91.5 10.5 t-72.5 30.5q-68 41 -87 109q-25 -38 -55.5 -65.5t-65.5 -46.5q-36 -19 -76.5 -28.5t-90.5 -9.5zM319 184q27 0 48 8t38 24q20 18 33.5 44t26.5 62q10 25 23 81q7 29 14.5 68t17.5 88q4 19 8 41t8 43t7 38.5t5 27.5q4 23 6.5 48t2.5 47q0 31 -6 56t-20 42q-26 32 -79 32 q-55 0 -90 -32q-17 -16 -30 -39.5t-28 -65.5q-9 -26 -15.5 -48t-14.5 -55t-15 -62.5t-15 -72.5q-8 -41 -13.5 -71.5t-10.5 -70.5q-5 -33 -7 -53.5t-2 -41.5q0 -73 26 -105q25 -33 82 -33zM1022 690l10 66q4 19 6 40q1 10 1.5 19t0.5 19q0 51 -20 76q-20 24 -63 24 q-57 0 -91 -42q-17 -21 -32 -55.5t-23 -76.5l-14 -70h225z" />
+<glyph unicode="&#x178;" d="M489 1607q-27 0 -27 24q0 6 1 9l38 186q6 27 32 27h175q27 0 27 -24q0 -6 -1 -9l-37 -186q-5 -27 -32 -27h-176zM885 1607q-27 0 -27 24q0 6 1 9l37 186q4 27 32 27h175q15 0 22.5 -9t4.5 -24l-36 -186q-5 -27 -32 -27h-177zM432 588l-287 905h293l187 -649l411 649h322 l-633 -905l-115 -588h-293z" />
+<glyph unicode="&#x2c6;" d="M668 1638h243l183 -376h-176l-152 225l-240 -225h-190z" />
+<glyph unicode="&#x2dc;" d="M880 1307q-20 0 -35.5 3t-32.5 10t-35 17.5t-38 26.5l-49 37q-3 3 -1.5 1.5t-3.5 2.5q-17 13 -35 23t-38 10q-35 0 -60 -34t-36 -95h-139q19 130 87 207q34 38 75 57.5t86 19.5q17 0 35 -3t32 -9t33.5 -19t42.5 -30l51 -39q10 -8 19 -13.5t18 -9.5t17 -6t17 -2 q20 0 35.5 9t27.5 25q25 33 36 95h139q-22 -140 -85 -212t-163 -72z" />
+<glyph unicode="&#x2000;" horiz-adv-x="986" />
+<glyph unicode="&#x2001;" horiz-adv-x="1972" />
+<glyph unicode="&#x2002;" horiz-adv-x="986" />
+<glyph unicode="&#x2003;" horiz-adv-x="1972" />
+<glyph unicode="&#x2004;" horiz-adv-x="657" />
+<glyph unicode="&#x2005;" horiz-adv-x="493" />
+<glyph unicode="&#x2006;" horiz-adv-x="328" />
+<glyph unicode="&#x2007;" horiz-adv-x="328" />
+<glyph unicode="&#x2008;" horiz-adv-x="246" />
+<glyph unicode="&#x2009;" horiz-adv-x="394" />
+<glyph unicode="&#x200a;" horiz-adv-x="109" />
+<glyph unicode="&#x2010;" d="M259 746h789l-56 -291h-788z" />
+<glyph unicode="&#x2011;" d="M259 746h789l-56 -291h-788z" />
+<glyph unicode="&#x2012;" d="M259 746h789l-56 -291h-788z" />
+<glyph unicode="&#x2013;" d="M-10 690h1233l-49 -246h-1233z" />
+<glyph unicode="&#x2014;" d="M-10 690h1233l-49 -246h-1233z" />
+<glyph unicode="&#x2018;" d="M473 1174l270 382h215l-172 -382l-53 -271h-313z" />
+<glyph unicode="&#x2019;" d="M592 1286l53 270h313l-53 -270l-270 -383h-215z" />
+<glyph unicode="&#x201a;" d="M344 96l53 271h314l-54 -271l-270 -383h-215z" />
+<glyph unicode="&#x201c;" d="M248 1174l270 382h215l-172 -382l-53 -271h-313zM768 1174l270 382h215l-172 -382l-53 -271h-313z" />
+<glyph unicode="&#x201d;" d="M319 1286l54 270h313l-53 -270l-271 -383h-215zM840 1286l53 270h313l-53 -270l-270 -383h-215z" />
+<glyph unicode="&#x201e;" d="M94 96l51 271h314l-51 -271l-273 -383h-213zM614 96l52 271h313l-51 -271l-273 -383h-213z" />
+<glyph unicode="&#x2022;" d="M614 399q-72 0 -138 28q-26 11 -58 31.5t-58 47.5q-25 26 -44.5 56t-32.5 61q-14 32 -20.5 67.5t-6.5 71.5q0 74 28 140q14 32 34 61.5t44 52.5q25 24 56 44.5t62 33.5q29 12 64 19t73 7q72 0 138 -27q65 -27 115 -77q25 -25 45.5 -55t34.5 -62q27 -65 27 -137 q0 -74 -27 -138q-11 -27 -31 -58t-49 -60q-26 -26 -54 -45.5t-62 -33.5q-29 -12 -64 -20t-76 -8z" />
+<glyph unicode="&#x2026;" d="M-53 0q-15 0 -22.5 9t-4.5 24l59 307q4 27 32 27h255q28 0 28 -25q0 -5 -1 -8l-61 -307q-5 -27 -32 -27h-253zM357 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27h235q28 0 28 -25q0 -5 -1 -8l-58 -307q-5 -27 -32 -27h-237zM748 0q-28 0 -28 25q0 5 1 8l60 307q4 27 32 27 h254q15 0 22.5 -9t4.5 -24l-59 -307q-5 -27 -32 -27h-255z" />
+<glyph unicode="&#x202f;" horiz-adv-x="394" />
+<glyph unicode="&#x2039;" d="M265 535l25 131l547 393l-50 -252l-317 -227l229 -226l-41 -213z" />
+<glyph unicode="&#x203a;" d="M402 379l322 221l-235 221l47 238l391 -393l-25 -131l-545 -394z" />
+<glyph unicode="&#x205f;" horiz-adv-x="493" />
+<glyph unicode="&#x20ac;" d="M651 -29q-119 0 -208 35.5t-149 98.5q-63 67 -94.5 160.5t-31.5 211.5v6h-201l84 187h127q3 28 5.5 44.5t6.5 36.5q3 16 6 30t9 40h-176l84 189h147q94 249 264 379q172 131 400 131q82 0 160 -18q77 -18 151 -54l-64 -328q-29 40 -62 68.5t-63 45.5q-35 20 -73.5 29 t-76.5 9q-51 0 -99 -16.5t-91 -50.5q-42 -33 -78 -81t-65 -114h402l-82 -189h-385q-2 -6 -4 -17t-4.5 -22t-4.5 -21.5t-3 -15.5l-15 -75h346l-82 -187h-278q8 -125 71 -194q64 -70 170 -70q36 0 73.5 7.5t74.5 23.5q35 15 80.5 44t107.5 77l-63 -328q-77 -36 -154 -54 q-80 -18 -162 -18z" />
+<glyph unicode="&#x2122;" d="M141 1360h-141v133h438v-133h-141v-445h-156v445zM522 1493h207l100 -227l89 227h208v-578h-153v437l-107 -256h-75l-117 256v-437h-152v578z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-italic-latin-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-italic-latin-webfont.svg
new file mode 100755
index 0000000..8f31418
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-italic-latin-webfont.svg
@@ -0,0 +1,241 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackitalic" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph unicode="&#xd;" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M647 1053l70 445h265l-70 -445l-157 -567h-121zM606 -60q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5z" />
+<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
+<glyph unicode="#" d="M250 414h-256l39 153h256l84 334h-258l39 154h258l104 415h160l-105 -415h246l105 415h159l-104 -415h256l-39 -154h-256l-84 -334h258l-39 -153h-258l-104 -414h-160l104 414h-245l-105 -414h-160zM694 567l84 334h-246l-83 -334h245z" />
+<glyph unicode="$" d="M373 0q-53 3 -151 26q-51 12 -98 28.5t-93 37.5l35 180q81 -60 176 -93q96 -34 188 -38l90 465q-75 17 -138.5 43t-106.5 65q-38 35 -59 82.5t-21 115.5q0 83 33 156.5t100 131.5t154.5 88t146.5 33l48 235h180l-47 -235q5 -3 49 -9t74 -12q15 -3 34 -7.5t39.5 -10 t40 -11t36.5 -11.5l-32 -173q-32 20 -71 37t-71 27t-76 18.5t-80 12.5l-81 -426q165 -35 253 -117q45 -42 67 -94.5t22 -123.5q0 -88 -34 -163.5t-103 -135.5q-137 -120 -353 -120h30l-59 -303h-181zM633 1184q-108 -7 -184 -76t-76 -167q0 -70 42 -107q20 -18 55.5 -33 t82.5 -27zM553 145q120 0 199 73q38 35 58.5 81t20.5 103q0 44 -12 74.5t-35 50.5q-46 41 -145 61z" />
+<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5 t99.5 66.5t126.5 24.5q33 0 63 -6t59 -18q57 -24 103 -70q25 -25 42.5 -52t28.5 -53q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
+<glyph unicode="&#x26;" d="M408 -29q-94 0 -174 27t-138 80q-57 51 -86.5 122.5t-29.5 161.5q0 81 25 160.5t74 150.5t121.5 133t166.5 114q-17 32 -26 55t-17 51q-7 26 -11 51.5t-4 57.5q0 84 30.5 156t92.5 125q60 51 144 77.5t185 26.5q66 0 128 -12q60 -12 119 -35l-35 -183q-42 38 -103 57 q-31 10 -65 14.5t-67 4.5q-120 0 -187 -57q-34 -29 -51 -68t-17 -84q0 -23 5 -50t17 -62q11 -32 25 -64.5t37 -73.5l307 -557q62 66 99 169q19 52 31 111t18 130h168q-8 -85 -27 -159t-51 -143q-62 -135 -168 -237l123 -221h-199l-59 113q-49 -36 -95 -61.5t-100 -44.5 q-101 -36 -206 -36zM456 129q36 0 70 7.5t71 21.5q35 14 70.5 33.5t73.5 48.5l-309 555q-135 -74 -204 -171q-35 -50 -52.5 -104.5t-17.5 -108.5q0 -65 23 -115.5t62 -86.5q41 -38 95.5 -59t117.5 -21z" />
+<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
+<glyph unicode="(" d="M426 -270q-40 95 -68.5 181t-47.5 165t-28 153t-9 152q0 146 32 296t97 301q63 147 158 291t223 285h159q-118 -152 -206 -301t-149 -305q-120 -306 -120 -608q0 -79 8 -151t22 -146q16 -81 37.5 -156.5t51.5 -156.5h-160v0z" />
+<glyph unicode=")" d="M320 -270q237 302 356 606q60 153 89.5 304.5t29.5 299.5q0 74 -7.5 150.5t-21.5 150.5q-14 73 -37 152.5t-53 160.5h160q79 -190 116 -345q19 -79 28 -153t9 -152q0 -146 -32 -296.5t-97 -300.5q-66 -152 -160.5 -295t-220.5 -282h-159v0z" />
+<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
+<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
+<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 111q0 71 46 111q20 18 48.5 29.5t66.5 11.5q86 0 133 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
+<glyph unicode="-" d="M226 683h822l-33 -164h-822z" />
+<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="/" d="M868 1493h191l-854 -1683h-189z" />
+<glyph unicode="0" d="M480 -29q-194 0 -288 124t-94 369q0 99 14.5 207t41.5 214t64 198t79 161q42 71 90 122.5t106 86.5q52 32 115 49.5t141 17.5q101 0 172 -30.5t119 -93.5q45 -60 70 -150t25 -218q0 -101 -15 -211t-41 -209q-26 -103 -63 -194.5t-80 -164.5q-42 -72 -90 -124t-105 -86 q-54 -32 -118.5 -50t-142.5 -18zM502 135q85 0 153 51q39 29 67 69.5t48 78.5q33 66 63 156.5t53 190.5q23 103 34.5 199t11.5 177q0 84 -12 139.5t-37 90.5t-64 52t-87 17q-42 0 -81 -12.5t-73 -37.5q-36 -26 -65 -64.5t-52 -83.5q-34 -66 -63.5 -153t-52.5 -193 q-24 -110 -35 -208t-11 -175q0 -87 13 -140t39 -86q24 -31 62 -49.5t89 -18.5zM550 401q-8 0 -12 2q-23 8 -32 41t-9 82q0 14 0.5 25.5t1.5 26.5q2 38 5 69t6.5 57t8 48.5t9.5 45.5q3 11 7.5 30.5t12 44t17.5 52t22 54.5q26 57 51.5 83.5t47.5 26.5h4t7 -2q19 -5 31.5 -31 t12.5 -87q-1 -6 -1 -13v-15q-2 -38 -4 -67t-5 -51.5t-6 -40t-7 -32.5q-5 -21 -12 -46.5t-15.5 -53t-18.5 -56t-20 -53.5q-26 -67 -51 -103.5t-51 -36.5z" />
+<glyph unicode="1" d="M156 170h313l221 1141l-352 -76l35 184l352 74h203l-258 -1323h309l-33 -170h-823z" />
+<glyph unicode="2" d="M32 136q4 20 12 33t21 24l285 251l39 35q131 117 231 216t168 182.5t103 153t35 129.5q0 42 -16.5 77.5t-47.5 61.5t-75.5 39.5t-102.5 13.5q-48 0 -99 -9t-99 -24q-50 -16 -109.5 -42t-122.5 -60l41 204q60 26 115 44.5t102 29.5q57 14 105.5 19.5t91.5 5.5 q97 0 173.5 -25t130.5 -71t83.5 -111.5t29.5 -149.5q0 -42 -8 -84t-28 -90q-40 -97 -117 -190q-9 -11 -19.5 -22.5t-24.5 -26t-32 -32t-43 -40.5q-99 -92 -169.5 -152.5t-96.5 -81.5l-330 -274h694l-32 -170h-914z" />
+<glyph unicode="3" d="M383 -29q-57 0 -105 5t-99 14q-54 10 -99.5 22.5t-97.5 32.5l38 201q49 -28 93 -46t93 -32t95.5 -20.5t96.5 -6.5q96 0 168 24t127 70t83.5 105.5t28.5 134.5q0 62 -18.5 106.5t-52.5 73.5q-71 60 -210 60h-153l32 166h154q76 0 140 18.5t111 55.5q45 35 69 86t24 116 q0 53 -16.5 88.5t-45.5 57.5q-62 47 -189 47q-43 0 -87 -5t-93 -15q-56 -11 -104 -25.5t-106 -34.5l37 186l58 14.5t59 14t55.5 12t47.5 8.5q42 7 90 11t90 4q93 0 168 -21.5t129 -65.5q52 -42 80 -103.5t28 -142.5q0 -72 -22 -135.5t-67 -115.5q-42 -49 -104 -84.5 t-147 -52.5q113 -19 178 -102q32 -42 48 -93t16 -120q0 -112 -41.5 -205.5t-125.5 -165.5q-82 -70 -193 -106t-261 -36z" />
+<glyph unicode="4" d="M659 356h-634l36 191l785 946h233l-190 -973h198l-30 -164h-199l-70 -356h-198zM690 520l152 762l-625 -762h473z" />
+<glyph unicode="5" d="M366 -29q-48 0 -98.5 4t-97.5 12q-94 16 -166 48l41 205q46 -28 89 -46.5t83 -29.5q45 -13 90.5 -19t87.5 -6q93 0 173 29t140 87q55 53 88 128t33 162q0 130 -80 203t-224 73q-39 0 -78.5 -5t-81.5 -15t-81 -24.5t-77 -33.5l145 750h756l-33 -170h-571l-72 -367 q46 16 92 24q22 4 44.5 5.5t43.5 1.5q96 0 172 -29t131 -83q57 -55 86 -131.5t29 -169.5q0 -124 -52 -240q-53 -117 -149 -203q-43 -38 -92.5 -68.5t-108.5 -51.5q-57 -20 -120.5 -30t-141.5 -10z" />
+<glyph unicode="6" d="M515 -29q-93 0 -174 28t-139 88q-54 56 -82 141.5t-28 204.5q0 69 9.5 155.5t29.5 176.5q19 87 47 172t60 154q51 111 114.5 191t136.5 131q152 107 357 107q38 0 76 -3.5t72 -11.5q31 -7 66.5 -19t67.5 -26l-36 -186q-59 37 -126 57q-34 10 -70 14.5t-71 4.5 q-100 0 -178.5 -35.5t-141.5 -107.5q-125 -143 -181 -427q36 54 75.5 91.5t86.5 63.5t98 39t112 13q88 0 156.5 -25.5t114.5 -73.5q50 -51 73 -123t23 -162q0 -54 -9 -113t-31 -124q-21 -63 -48 -111.5t-60 -90.5q-77 -97 -177 -145q-47 -23 -102 -35.5t-121 -12.5zM521 129 q67 0 130 32.5t113 101.5q47 66 71.5 149t24.5 171q0 62 -13.5 108t-44.5 78q-29 30 -71.5 45t-91.5 15q-75 0 -138 -33t-110 -93q-49 -63 -73.5 -143.5t-24.5 -165.5q0 -66 15 -114t45 -82q32 -35 76 -52t92 -17z" />
+<glyph unicode="7" d="M952 1323h-708l32 170h936l-16 -94l-805 -1399h-217z" />
+<glyph unicode="8" d="M483 -29q-100 0 -182 25.5t-142 76.5q-54 47 -86 117t-32 164q0 87 28 158.5t77 126.5t120 95t164 59q-57 20 -96 48t-65 63q-29 38 -41.5 82.5t-12.5 94.5q0 90 38 170.5t109 141.5q75 64 169 95.5t195 31.5q87 0 160.5 -22.5t128.5 -67.5q52 -42 81.5 -102t29.5 -137 q0 -70 -25 -135.5t-72 -119.5t-113 -94.5t-144 -59.5q125 -30 190 -113q32 -42 48 -95.5t16 -118.5q0 -103 -38.5 -192.5t-112.5 -155.5q-72 -65 -171.5 -100.5t-220.5 -35.5zM634 866q124 0 208 87q42 44 63 97t21 112q0 50 -15 85.5t-45 62.5q-60 54 -160 54 q-66 0 -118 -21t-90 -59q-82 -81 -82 -203q0 -101 59 -158q58 -57 159 -57zM494 127q72 0 132 23.5t105 68.5q45 46 67.5 106.5t22.5 132.5q0 62 -16.5 107t-49.5 78q-66 66 -183 66q-144 0 -234 -98q-46 -50 -69 -113t-23 -134q0 -60 16.5 -101t50.5 -73t78 -47.5 t103 -15.5z" />
+<glyph unicode="9" d="M343 -29q-76 0 -146 15q-32 7 -65.5 17.5t-68.5 27.5l35 186q29 -19 60.5 -32.5t65.5 -23.5q69 -20 142 -20q194 0 320 144q124 142 180 426q-67 -101 -161 -154q-51 -29 -103.5 -41t-109.5 -12q-87 0 -153.5 25.5t-114.5 74.5q-97 100 -97 285q0 63 10.5 122.5 t29.5 115.5q20 58 47.5 109t59.5 91q37 46 82.5 83.5t95.5 61.5q99 48 224 48q101 0 180.5 -30t133.5 -87q110 -116 110 -344q0 -69 -9.5 -156t-29.5 -177q-20 -91 -47 -172t-60 -153q-52 -112 -114 -190.5t-137 -131.5q-81 -57 -170.5 -82.5t-189.5 -25.5zM551 662 q75 0 138 33t110 93t72.5 140t25.5 169q0 69 -15.5 117.5t-44.5 80.5t-72 49.5t-94 17.5q-72 0 -134.5 -34.5t-109.5 -99.5q-45 -63 -71 -147t-26 -174q0 -57 13 -104.5t45 -80.5q29 -30 71.5 -45t91.5 -15z" />
+<glyph unicode=":" d="M728 776q-28 0 -52.5 9.5t-44.5 31.5q-21 23 -28.5 50t-7.5 56q0 39 15.5 74t46.5 63q27 25 61 39.5t72 14.5q35 0 59 -11.5t41 -29.5q16 -17 25.5 -42.5t9.5 -57.5q0 -38 -14.5 -76t-46.5 -67q-30 -28 -66.5 -41t-69.5 -13zM617 60q-32 0 -58 11t-43 31q-18 20 -26 46.5 t-8 54.5q0 39 15 76t47 66q26 24 60.5 38.5t72.5 14.5q28 0 54 -9t46 -32q16 -17 25.5 -42.5t9.5 -60.5q0 -83 -62 -140q-28 -26 -62 -40t-71 -14z" />
+<glyph unicode=";" d="M723 713q-71 0 -112 50q-32 38 -32 93q0 9 1 18t3 18q7 42 25 73.5t44 53.5q26 23 59 36t68 13t64.5 -12.5t49.5 -35.5q33 -38 33 -94q0 -16 -3 -34q-15 -80 -71 -129q-26 -23 -58.5 -36.5t-70.5 -13.5zM339 -351q275 114 320 351q-14 -3 -23 -4t-19 -1q-33 0 -61 10.5 t-48 30.5q-30 31 -30 84v9q0 5 0.5 11t1.5 13q6 35 22 64t45 52t61 33t64 10q91 0 130 -71q13 -23 19 -52t6 -57q0 -17 -2 -42t-5 -46q-14 -92 -51.5 -170.5t-94.5 -140.5q-56 -61 -134 -111.5t-169 -81.5z" />
+<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
+<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
+<glyph unicode="?" d="M546 583q12 78 53 146q21 35 53 70t86 81l104 89q42 35 65 59t37 44q32 45 39 93q3 18 3 34q0 32 -11.5 60t-34.5 50q-27 26 -68.5 40.5t-96.5 14.5q-80 0 -173 -34q-48 -17 -98.5 -43t-105.5 -60l30 188q49 27 100.5 49t102.5 36t101.5 21t100.5 7q91 0 162 -23t121 -73 q36 -36 56 -83.5t20 -98.5q0 -17 -2 -38t-4 -37q-5 -37 -18.5 -71.5t-37.5 -69.5q-26 -38 -64.5 -77t-87.5 -81l-102 -86q-43 -36 -67.5 -62t-37.5 -46q-11 -17 -20 -40t-12 -43l-8 -47l-12 -80h-190zM542 -40q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5 t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14z" />
+<glyph unicode="@" d="M607 -317q-151 0 -267 50t-196 138q-87 95 -130 225t-43 283q0 97 17.5 198t54.5 204q34 94 83 182.5t112 161.5q52 61 117 113t140 88q72 35 149 53t156 18q95 0 171 -26t131 -77q57 -53 84.5 -124t27.5 -155q0 -14 -1 -33t-3 -38t-5.5 -41t-8.5 -45l-137 -723h-144 l21 111q-26 -32 -57.5 -56.5t-64.5 -40.5q-35 -17 -73.5 -25.5t-78.5 -8.5q-71 0 -123 24.5t-91 67.5q-42 46 -62.5 104.5t-20.5 139.5q0 103 33 197t99 173q63 75 141 115.5t172 40.5q85 0 150 -36t93 -97l8 43q2 12 4.5 30t4.5 31t2.5 23t0.5 22q0 59 -18 108t-55 84 q-73 70 -204 70q-72 0 -139.5 -20t-132.5 -58q-63 -38 -120 -92t-107 -128q-40 -60 -72.5 -129.5t-55.5 -145.5q-21 -72 -32.5 -149.5t-11.5 -155.5q0 -128 32 -230.5t96 -175.5q63 -72 152.5 -109.5t197.5 -37.5q30 0 62 3t60 9q21 5 53 14t74 25l45 -131 q-38 -18 -72 -28.5t-65 -17.5q-71 -15 -153 -15zM710 260q63 0 117 28t95 78q40 49 63 114t23 138q0 49 -12 88t-38 68q-50 55 -138 55q-60 0 -114 -26t-96 -77t-64 -116.5t-22 -135.5q0 -48 12 -89t38 -70q50 -55 136 -55z" />
+<glyph unicode="A" d="M639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="B" d="M313 1493h443q204 0 307 -79q52 -40 78 -98t26 -138q0 -151 -92 -255q-92 -105 -248 -124q124 -23 192 -102q34 -40 50 -91t16 -120q0 -109 -39.5 -199.5t-119.5 -156.5q-159 -130 -451 -130h-452zM639 877q152 0 238 73q86 72 86 198q0 95 -55 137q-56 42 -181 42h-244 l-88 -450h244zM506 166q184 0 282 87q49 44 73 107t24 136q0 63 -17 101.5t-51 64.5q-68 51 -211 51h-241l-107 -547h248z" />
+<glyph unicode="C" d="M597 -29q-118 0 -207 35t-149 97q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124 q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5q-38 -9 -84 -14.5t-94 -5.5z" />
+<glyph unicode="D" d="M283 1493h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q184 0 297 63q113 62 180 203q25 52 48 122t41 153q17 80 25.5 153 t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-226 -1161h97z" />
+<glyph unicode="E" d="M344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="F" d="M383 1493h879l-33 -170h-676l-86 -450h612l-32 -170h-613l-139 -703h-203z" />
+<glyph unicode="G" d="M564 -29q-122 0 -211.5 34.5t-150.5 100.5q-63 69 -93.5 165t-30.5 217q0 47 4.5 94.5t12.5 98.5q8 46 20.5 103.5t27.5 108.5q17 57 38 110.5t44 101.5q25 50 51 89.5t52 72.5q50 62 110 110.5t128 80.5q130 62 288 62q46 0 86 -5t80 -16q81 -21 156 -61l-41 -207 q-35 34 -70 57t-66 37q-71 31 -153 31q-50 0 -96.5 -10.5t-87.5 -30.5q-42 -20 -82 -52t-72 -71q-45 -54 -83 -130q-21 -42 -38 -85.5t-31 -89.5q-17 -56 -30 -110.5t-21 -103.5q-9 -52 -13.5 -94.5t-4.5 -84.5q0 -174 79 -266q40 -47 95.5 -70t130.5 -23q36 0 65 5t55 14 q29 10 50.5 23t40.5 30l76 393h-217l30 166h410l-133 -670q-86 -61 -190 -93q-51 -16 -103.5 -24t-111.5 -8z" />
+<glyph unicode="H" d="M283 1493h202l-118 -612h553l118 612h203l-291 -1493h-202l139 711h-555l-137 -711h-203z" />
+<glyph unicode="I" d="M90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="J" d="M375 -29q-54 0 -102 6t-99 17q-53 12 -101 28.5t-98 38.5l45 236q38 -42 78.5 -71t85.5 -49q44 -20 91 -31t105 -11q142 0 212 73q32 33 60 99.5t50 179.5l164 836h-381l33 170h584l-197 -1006q-29 -150 -72 -247t-104 -154q-63 -59 -149.5 -87t-204.5 -28z" />
+<glyph unicode="K" d="M283 1493h202l-127 -647l742 647h254l-703 -619l428 -874h-219l-360 741l-193 -168l-112 -573h-203z" />
+<glyph unicode="L" d="M369 1493h202l-258 -1323h721l-33 -170h-923z" />
+<glyph unicode="M" d="M229 1493h269l110 -756l414 756h270l-291 -1493h-186l258 1327l-434 -795h-141l-115 795l-256 -1327h-186z" />
+<glyph unicode="N" d="M285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
+<glyph unicode="O" d="M478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265 q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5 q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="P" d="M321 1493h440q103 0 182 -23.5t133 -68.5t80.5 -112.5t26.5 -162.5q0 -120 -41 -217t-119 -166t-186.5 -106t-253.5 -37h-233l-117 -600h-203zM616 766q165 0 264 96q49 48 73.5 111.5t24.5 137.5q0 53 -14 95t-48 70q-62 51 -192 51h-233l-109 -561h234z" />
+<glyph unicode="Q" d="M504 -27h-10q-111 0 -187 30t-126 90t-74.5 152.5t-24.5 226.5q0 66 5.5 121.5t16.5 118.5q5 31 11 60.5t13.5 61t17 66t22.5 75.5q16 50 31 89t32 77q7 15 15.5 32t18 35t19.5 34.5t19 29.5q38 57 88.5 106.5t109.5 81.5q56 31 118 45.5t134 14.5q102 0 176.5 -30 t124.5 -93q48 -60 72.5 -151.5t24.5 -216.5q0 -48 -3.5 -95.5t-10.5 -94.5t-18 -100.5t-25 -109.5q-14 -53 -30.5 -107t-31.5 -95q-16 -43 -34 -82.5t-35 -70.5q-22 -39 -52.5 -81.5t-71.5 -81.5q-31 -30 -68.5 -57t-80.5 -44l236 -280h-236zM498 135q43 0 84 12.5t78 38.5 q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5 t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="R" d="M281 1493h416q206 0 321 -89q59 -46 86 -110.5t27 -149.5q0 -84 -25.5 -160t-77.5 -136q-51 -59 -121 -95.5t-161 -47.5q34 -6 64.5 -23.5t51.5 -43.5q20 -25 44.5 -80.5t52.5 -149.5l121 -408h-201l-106 377q-44 155 -98 205q-28 26 -70.5 37.5t-94.5 11.5h-192 l-123 -631h-203zM570 797q163 0 261 86q97 85 97 226q0 113 -63 166q-62 52 -199 52h-213l-102 -530h219z" />
+<glyph unicode="S" d="M435 -29q-58 0 -108 6t-101 17q-103 23 -201 67l41 209q97 -68 199 -102q51 -17 103.5 -25t106.5 -8q86 0 152 21.5t118 66.5q103 88 103 221q0 44 -11 75t-33 54q-26 26 -68.5 45.5t-108.5 40.5l-101 33q-81 26 -147 57t-110 75q-37 37 -55.5 84.5t-18.5 116.5 q0 101 40.5 192.5t124.5 162.5q83 70 191 105t232 35q48 0 91 -5t88 -15q46 -10 90.5 -24t94.5 -34l-39 -205q-82 59 -168 89q-87 30 -181 30q-85 0 -153 -22t-116 -60t-75.5 -91t-27.5 -115q0 -39 12 -67.5t37 -50.5t68.5 -42.5t109.5 -41.5l121 -39q85 -27 142 -58t97 -75 q38 -42 56.5 -94.5t18.5 -126.5q0 -110 -41 -202.5t-125 -161.5t-197 -103.5t-251 -34.5z" />
+<glyph unicode="T" d="M629 1323h-469l33 170h1140l-33 -170h-469l-256 -1323h-204z" />
+<glyph unicode="U" d="M477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51 q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="V" d="M199 1493h198l113 -1303l598 1303h215l-719 -1493h-258z" />
+<glyph unicode="W" d="M145 1493h191l-90 -1210l329 800h211l15 -802l377 1212h198l-510 -1493h-194l-31 870l-371 -870h-188z" />
+<glyph unicode="X" d="M546 797l-288 696h200l224 -532l440 532h231l-596 -719l324 -774h-201l-254 612l-506 -612h-231z" />
+<glyph unicode="Y" d="M508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="Z" d="M32 154l976 1169h-727l33 170h969l-29 -154l-979 -1169h774l-34 -170h-1012z" />
+<glyph unicode="[" d="M682 1636h424l-23 -143h-240l-256 -1620h240l-23 -143h-424z" />
+<glyph unicode="\" d="M356 1493h170l199 -1683h-170z" />
+<glyph unicode="]" d="M366 -127h240l256 1619h-240l23 143h424l-302 -1905h-424z" />
+<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
+<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
+<glyph unicode="`" d="M453 1638h198l197 -376h-143z" />
+<glyph unicode="a" d="M407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5 t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172 q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="b" d="M535 -29q-97 0 -164 43q-66 43 -101 127l-46 -141h-165l303 1556h185l-113 -579q61 83 144 127q82 43 185 43q79 0 144 -25.5t111 -77.5q90 -102 90 -296q0 -66 -10.5 -138.5t-30.5 -144.5q-19 -67 -46.5 -130t-66.5 -122q-78 -116 -184 -178q-56 -32 -115 -48t-120 -16z M540 127q83 0 151 45q35 23 62.5 55t51.5 77q25 46 45 100.5t33 108.5q14 58 21 114t7 106q0 62 -11.5 111.5t-38.5 84.5q-51 64 -151 64q-44 0 -82.5 -12t-70.5 -34t-62.5 -56t-56.5 -79q-26 -46 -44.5 -96t-32.5 -105q-14 -59 -21.5 -116t-7.5 -106q0 -63 12.5 -111.5 t40.5 -83.5q30 -38 70.5 -52.5t84.5 -14.5z" />
+<glyph unicode="c" d="M597 -29q-115 0 -198 29.5t-138 83.5q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5 t-66.5 -78.5q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-44 -11 -86.5 -16t-90.5 -5z" />
+<glyph unicode="d" d="M462 -29q-85 0 -146.5 27t-105.5 78q-46 53 -68.5 125.5t-22.5 172.5q0 66 10 138t30 145q21 76 49 138.5t60 113.5q39 62 83 105.5t94 72.5t105 44.5t118 15.5q51 0 93 -10.5t79 -32.5q73 -44 114 -127l115 579h184l-303 -1556h-164l7 141q-64 -83 -147 -127 q-82 -43 -184 -43zM518 127q85 0 154 45q35 23 63 55.5t53 77.5q49 87 77 203q14 56 21 112.5t7 106.5q0 132 -53 197q-25 31 -64.5 49t-93.5 18q-42 0 -81 -11.5t-70 -31.5q-32 -21 -61.5 -55t-52.5 -76q-22 -40 -41.5 -93.5t-33.5 -110.5t-20.5 -115.5t-6.5 -109.5 q0 -69 12.5 -117t38.5 -80q51 -64 152 -64z" />
+<glyph unicode="e" d="M558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49 q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69 q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="f" d="M523 977h-299l29 143h297l16 78q21 103 53.5 168.5t81.5 107.5q50 42 119.5 62t163.5 20h221l-31 -153h-208q-94 0 -143 -41q-26 -23 -41.5 -58.5t-26.5 -84.5l-21 -99h385l-26 -143h-385l-191 -977h-184z" />
+<glyph unicode="g" d="M376 -440q-43 0 -82.5 3.5t-79.5 10.5q-78 13 -155 41l37 182q40 -23 76 -39.5t76 -27.5q80 -23 158 -23q148 0 231 80q42 40 70.5 105t48.5 161l24 117q-59 -87 -145 -132q-45 -23 -93 -34.5t-99 -11.5q-79 0 -142.5 27t-108.5 80q-46 54 -68 129.5t-22 169.5 q0 63 10 132t30 138q39 135 112 243q40 60 83 101.5t95 72.5q104 62 216 62q99 0 176 -48q35 -23 63.5 -56t46.5 -78l47 151h164l-203 -1044q-53 -272 -186 -392q-134 -120 -380 -120zM513 145q38 0 74 11t71 34q65 44 112 129q26 46 46 100.5t31 101.5q14 55 20.5 111 t6.5 101q0 126 -56 192q-28 33 -67 49.5t-87 16.5q-84 0 -149.5 -46t-112.5 -122q-50 -81 -77.5 -187.5t-27.5 -214.5q0 -83 15.5 -131.5t40.5 -77.5q29 -32 70 -49.5t90 -17.5z" />
+<glyph unicode="h" d="M387 1556h184l-116 -604q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
+<glyph unicode="i" d="M627 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27 q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="j" d="M811 1323q-15 0 -22.5 9t-4.5 24l34 173q4 27 32 27h124q15 0 22.5 -9t4.5 -24l-34 -173q-5 -27 -32 -27h-124zM55 -270h233q45 0 83.5 14.5t66.5 44.5q54 58 80 191l192 997h-317l28 143h502l-221 -1140q-19 -97 -53 -177t-89 -133q-101 -96 -282 -96h-254z" />
+<glyph unicode="k" d="M393 1556h191l-170 -874l549 438h241l-520 -422l373 -698h-213l-307 582l-168 -133l-88 -449h-191z" />
+<glyph unicode="l" d="M739 -8q-174 0 -257 64q-41 31 -63 78.5t-22 113.5q0 17 1.5 34t3.5 36t5.5 39.5t8.5 46.5l211 1008h-316l29 144h500l-240 -1156q-4 -18 -5.5 -29t-2 -17.5t-0.5 -9v-4.5q0 -5 -3 -12.5t-3 -32.5q0 -76 44 -111q45 -36 136 -36h211l-31 -156h-207v0z" />
+<glyph unicode="m" d="M203 1120h148l1 -96q43 60 100 92q55 31 120 31q74 0 120 -37q45 -37 56 -104q20 35 46.5 61.5t55.5 43.5q31 18 66.5 27t70.5 9q42 0 78 -13t62 -40q30 -32 40.5 -72.5t10.5 -78.5q0 -20 -2 -52.5t-7 -66.5q-2 -18 -5 -36t-6.5 -38.5t-8 -45t-10.5 -55.5l-127 -649h-168 l125 641q3 15 7.5 38t8.5 45.5t7.5 41.5t4.5 26q5 26 7 50t2 39q0 24 -6 47t-17 37q-22 28 -74 28q-41 0 -68.5 -16t-47.5 -48q-24 -38 -43.5 -105.5t-42.5 -182.5l-125 -641h-168l125 641q3 13 6.5 33t7.5 41.5t8 42.5t6 37q3 20 5.5 44t2.5 42q0 23 -5 44t-18 38 q-23 30 -74 30q-35 0 -63 -13.5t-49 -45.5q-11 -17 -21.5 -42t-21 -60t-21.5 -82.5t-23 -108.5l-125 -641h-168z" />
+<glyph unicode="n" d="M303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5 t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
+<glyph unicode="o" d="M510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44 t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="p" d="M299 1120h164l-8 -143q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
+<glyph unicode="q" d="M774 141q-62 -84 -143 -127q-82 -43 -185 -43q-81 0 -145.5 25.5t-110.5 76.5q-44 49 -68 123t-24 176q0 65 10.5 136t30.5 144q20 70 48 135t65 122q39 61 83 104.5t97 73.5q105 60 231 60q57 0 98.5 -11t72.5 -31q68 -43 102 -128l47 143h164l-299 -1546h-184zM496 127 q85 0 154 46q36 24 66 59t52 73q48 84 77 203q14 59 21.5 116t7.5 107q0 63 -12.5 112t-40.5 83q-53 65 -154 65q-84 0 -152 -44q-35 -23 -63 -55t-51 -76q-25 -46 -44 -99.5t-33 -109.5q-29 -118 -29 -221q0 -131 51 -195t150 -64z" />
+<glyph unicode="r" d="M404 1120h164l-20 -219q67 120 174 183q106 63 239 63q35 0 69 -4.5t62 -13.5q25 -8 50.5 -22t46.5 -32l-35 -186q-23 22 -49.5 38.5t-54.5 27.5q-30 11 -64 16.5t-69 5.5q-82 0 -154 -28t-130 -85t-97 -137t-58 -178l-107 -549h-184z" />
+<glyph unicode="s" d="M477 -29q-48 0 -92.5 4.5t-82.5 12.5q-45 9 -92 22.5t-95 30.5l37 190q48 -26 93 -46t90 -33q45 -14 86.5 -20.5t85.5 -6.5q132 0 216 60q42 30 63 67.5t21 76.5q0 26 -10 48.5t-33 42t-60.5 36t-92.5 31.5l-28 7l-67 18q-65 17 -111.5 40.5t-77.5 55.5q-61 64 -61 172 q0 79 32.5 147.5t98.5 119.5q62 48 151.5 74t206.5 26q43 0 85 -4t83 -12t79 -20.5t75 -29.5l-35 -180q-35 23 -74.5 40.5t-74.5 28.5q-77 23 -162 23q-62 0 -115 -12.5t-91 -38.5q-40 -27 -58 -63t-18 -71q0 -36 17.5 -61t47.5 -43t70 -32t86 -27q15 -5 16 -4.5t6 -1.5 l72 -18q51 -13 97 -36t78 -56q29 -31 43.5 -69t14.5 -91q0 -85 -37 -159t-107 -128q-72 -56 -169 -83.5t-207 -27.5z" />
+<glyph unicode="t" d="M682 -4q-89 0 -148 15t-97 41q-40 28 -59.5 69t-19.5 101q0 12 1 28.5t3 33.5q2 13 5 34t8 47l119 612h-299l28 143h299l62 318h184l-61 -318h417l-28 -143h-418l-119 -612q-3 -17 -4.5 -26t-2.5 -14t-1 -7.5t-1 -7.5q-3 -26 -3 -47q0 -67 39 -93q39 -27 141 -27h207 l-29 -147h-223v0z" />
+<glyph unicode="u" d="M409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5 q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="v" d="M182 1120h178l154 -956l502 956h198l-614 -1120h-238z" />
+<glyph unicode="w" d="M92 1120h176l15 -905l268 578h162l49 -578l362 905h191l-486 -1120h-165l-60 623l-297 -623h-166z" />
+<glyph unicode="x" d="M524 596l-293 524h196l217 -395l369 395h225l-512 -547l318 -573h-197l-244 444l-417 -444h-226z" />
+<glyph unicode="y" d="M20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5 q-74 -37 -171 -37h-148z" />
+<glyph unicode="z" d="M111 168l784 805h-604l28 147h814l-33 -168l-785 -805h629l-29 -147h-837z" />
+<glyph unicode="{" d="M685 -334q-187 0 -268 54q-82 55 -82 178v13q-1 14 0 24.5t3 27.5q4 29 6.5 44.5t4.5 26.5l45 236q2 5 2 7.5t1 4.5q5 25 7.5 45t2.5 45q0 49 -12 79t-37 49q-49 37 -162 37h-92l29 147h91q146 0 208 55q62 54 93 205l50 244q25 124 61 194q36 71 90 111q22 16 49.5 28.5 t67.5 20.5q34 7 83 10.5t118 3.5h82l-29 -143h-85q-69 0 -111 -9.5t-65 -29.5q-25 -22 -44 -70t-33 -120l-51 -252q-15 -75 -37.5 -133.5t-55.5 -98.5q-59 -71 -171 -94q72 -18 113 -69q40 -52 40 -127q1 -13 0.5 -22.5t-3.5 -34.5q-2 -16 -3 -24.5t-2 -14.5t-2.5 -12.5 t-3.5 -18.5l-47 -244q-4 -20 -5.5 -33t-2.5 -26l-1.5 -25.5t-0.5 -13t-0.5 -6.5t-0.5 -5q0 -64 43 -92t140 -28h78l-29 -144h-72v0z" />
+<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
+<glyph unicode="}" d="M64 -190h78q137 0 183 40q22 19 41 63t36 126l51 252q15 75 37 133.5t56 99.5q61 73 172 92q-74 20 -114 70q-20 26 -30 55.5t-10 71.5q0 12 1 25.5t3 31.5q2 21 3.5 34t6.5 36l47 243q0 2 1.5 11t3 19.5t3 19t1.5 10.5q1 12 1.5 25t0.5 22q0 66 -42 95q-43 28 -141 28 h-77l26 143h74q100 0 165 -14t104 -40t60 -67.5t21 -114.5q0 -14 -1 -26.5t-3 -34.5q-2 -19 -3.5 -32t-6.5 -39l-45 -236l-2 -12q-5 -25 -7.5 -48t-2.5 -43q0 -89 49 -126t161 -37h92l-29 -147h-91q-143 0 -207 -55q-32 -27 -56.5 -77t-39.5 -128l-47 -244 q-12 -63 -28 -111.5t-34 -83.5q-36 -71 -90 -110q-25 -18 -53 -29.5t-63 -19.5q-69 -15 -201 -15h-82z" />
+<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M713 1170q-33 0 -58 9.5t-43 31.5q-21 25 -28 55t-7 53q0 41 16 76t45 64q29 28 63 41.5t70 13.5q31 0 58 -10t46 -30q22 -24 28 -52.5t6 -43.5q0 -43 -18 -85.5t-53 -74.5q-24 -23 -54.5 -35.5t-70.5 -12.5zM498 655l108 357h162l-39 -357l-127 -655h-233z" />
+<glyph unicode="&#xa2;" d="M510 -27q-88 9 -161 44.5t-124 95.5t-76.5 140.5t-25.5 180.5q0 88 20 175.5t61 168.5q44 88 101 151.5t120 106.5q38 26 75.5 44.5t73.5 31.5q76 27 163 33l56 287h102l-55 -287q58 -3 123 -20q64 -17 124 -48l-32 -172q-50 38 -110 60t-134 28l-170 -870q32 2 66 9.5 t69 18.5t70.5 26.5t73.5 35.5l-33 -172q-20 -9 -41 -16.5t-40.5 -13.5t-35.5 -10.5t-26 -7.5q-30 -8 -65 -13t-67 -7l-55 -286h-102zM709 991q-165 -15 -279 -179q-58 -84 -86.5 -180.5t-28.5 -200.5q0 -75 15 -126t44 -89q28 -36 67.5 -59t99.5 -30z" />
+<glyph unicode="&#xa3;" d="M25 170h237l90 465h-198l26 143h199l47 238q27 137 72 229t110 152q63 59 150 91t199 32q73 0 135 -14q20 -5 58.5 -16.5t78.5 -27.5l-37 -184q-54 43 -114 66q-60 22 -126 22q-71 0 -123.5 -21.5t-90.5 -63.5t-66 -110.5t-49 -175.5l-43 -217h370l-28 -143h-371 l-90 -465h536l-32 -170h-973z" />
+<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
+<glyph unicode="&#xa5;" d="M444 524h-397l23 111h397l6 35l-55 151h-309l22 111h246l-205 561h207l223 -664l459 664h211l-404 -561h252l-22 -111h-312l-110 -151l-10 -35h393l-23 -111h-393l-98 -524h-199z" />
+<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
+<glyph unicode="&#xa7;" d="M411 -201q-40 0 -79.5 4t-71.5 10q-36 7 -78.5 18.5t-81.5 25.5l33 161q37 -18 73.5 -31.5t72.5 -23.5t68.5 -15t67.5 -5q52 0 97.5 12t78.5 35t49.5 54.5t16.5 65.5q0 54 -43.5 107.5t-139.5 119.5l-87 60q-125 86 -165 141q-21 29 -30.5 61t-9.5 68q0 45 15 90.5 t49 90.5q32 42 77 79.5t105 69.5q-42 39 -59 77q-10 21 -14.5 43t-4.5 50q0 74 30.5 137t89.5 111q60 48 139 72t170 24q35 0 70 -3.5t72 -10.5q39 -8 74.5 -18.5t73.5 -24.5l-33 -164q-34 18 -68.5 32.5t-70.5 25.5t-68.5 15.5t-61.5 4.5q-48 0 -90.5 -12t-75.5 -37 t-49.5 -55t-16.5 -61q0 -43 32.5 -86t101.5 -88l48 -32l86 -59q63 -43 104 -79t63 -65t32 -62.5t10 -68.5q0 -47 -16.5 -95t-49.5 -93q-35 -48 -80.5 -83t-99.5 -60q41 -35 62 -80q9 -20 14.5 -46t5.5 -58q0 -73 -30 -137.5t-90 -113.5q-61 -49 -142.5 -73.5t-174.5 -24.5z M678 401q84 51 128 107t44 108q0 30 -14.5 58t-38.5 53q-27 28 -79.5 67t-121.5 83l-80 51q-81 -52 -125 -108q-43 -55 -43 -109t43 -101q20 -22 59.5 -54t108.5 -77z" />
+<glyph unicode="&#xa8;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5q-55 23 -106 57.5t-95 78.5q-42 42 -77.5 93.5t-58.5 107.5q-45 106 -45 233q0 63 11.5 122t34.5 114q23 54 56.5 104t79.5 97q47 48 97 81t102 54q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
+<glyph unicode="&#xaa;" d="M534 698q-61 0 -104.5 17t-71.5 43q-63 60 -63 163q0 71 29 126t82 93q112 79 311 79h174q0 4 1 9q2 11 2.5 24t0.5 21q0 28 -9.5 53.5t-35.5 45.5q-22 17 -55 25t-84 8q-35 0 -69 -4t-68 -12t-69 -21.5t-71 -30.5l23 127q75 29 148 42q37 7 71 10.5t69 3.5 q145 0 218 -62t73 -186q0 -13 -0.5 -27.5t-1.5 -24.5q-1 -7 -3.5 -26t-4.5 -29l-86 -448h-143l22 112q-26 -32 -59 -56.5t-68 -40.5q-39 -18 -79 -26t-79 -8zM581 817q49 0 96 16.5t85 50.5q41 36 66 86.5t36 104.5l6 29h-141q-149 0 -217 -40q-35 -20 -52.5 -52t-17.5 -71 q0 -59 37 -92q18 -16 42.5 -24t59.5 -8zM246 592h676l-23 -123h-676z" />
+<glyph unicode="&#xab;" d="M74 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176zM541 559l16 82l549 418l-43 -211l-350 -264l250 -267l-35 -176z" />
+<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
+<glyph unicode="&#xad;" d="M336 643h522l-33 -164h-522z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
+<glyph unicode="&#xaf;" d="M469 1526h598l-29 -148h-598z" />
+<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
+<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#xb2;" d="M328 1230l203 167q157 128 235 215t78 148q0 18 -7.5 37t-24.5 34.5t-43.5 25.5t-64.5 10q-48 0 -109 -18.5t-144 -59.5l24 127q85 29 146.5 42.5t115.5 13.5q63 0 110.5 -16.5t79.5 -43.5t48 -61t16 -70q0 -80 -78.5 -181t-230.5 -215l-20 -15l-170 -136h395l-23 -114 h-557z" />
+<glyph unicode="&#xb3;" d="M536 1103q-63 0 -126 10.5t-123 30.5l24 121q67 -29 119 -42t106 -13t98 12t75 34.5t48 54.5t17 73q0 127 -174 127h-72l21 106h72q49 0 88.5 10.5t67.5 29.5t43.5 45.5t15.5 57.5q0 52 -42.5 77.5t-122.5 25.5q-50 0 -98.5 -10t-111.5 -33l22 115q145 35 245 35 q125 0 190 -49.5t65 -137.5q0 -83 -56 -140.5t-155 -76.5q74 -13 112 -58t38 -120q0 -64 -27 -116.5t-77.5 -90t-122 -58t-159.5 -20.5z" />
+<glyph unicode="&#xb4;" d="M907 1638h219l-395 -376h-156z" />
+<glyph unicode="&#xb5;" d="M252 1120h187l-136 -696q-2 -11 -4.5 -27.5t-4.5 -30.5q-3 -27 -3 -47q0 -40 12.5 -76.5t41.5 -62.5q30 -27 71.5 -38t86.5 -11q135 0 218 83q39 39 68.5 101t46.5 152l127 653h186l-168 -862q-1 -4 -2.5 -16.5t-1.5 -14.5q-1 -7 -1.5 -12.5t-0.5 -12.5q0 -29 13 -45 q5 -7 13.5 -11.5t20.5 -4.5q10 0 27 5q5 2 18.5 6.5t28.5 11.5l-29 -148q-19 -11 -41 -20.5t-36 -13.5q-36 -11 -73 -11q-31 0 -56.5 10t-46.5 33q-19 20 -29.5 47t-10.5 68q-52 -82 -122 -120q-71 -38 -166 -38t-156 42q-63 42 -94 124l-109 -563h-176z" />
+<glyph unicode="&#xb6;" d="M506 649q-177 4 -279 99q-102 94 -102 256q0 209 173 349t437 140h406l-328 -1690h-139l303 1567h-191l-303 -1567h-141z" />
+<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="&#xb8;" d="M366 -395q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 39 -17t38 -12q36 -9 68 -9q67 0 105 30q19 15 28 36t9 45q0 17 -4 35.5t-10 34.5q-5 12 -17 38.5t-27 54.5h119q19 -32 32.5 -60t22.5 -51q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54z " />
+<glyph unicode="&#xb9;" d="M369 1230h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553z" />
+<glyph unicode="&#xba;" d="M630 698q-78 0 -136 24t-100 67q-44 45 -65.5 107t-21.5 134q0 46 8.5 93t23.5 89q18 50 43.5 91t45.5 65q29 36 65.5 64.5t76.5 48.5q41 20 83.5 29.5t90.5 9.5q148 0 235 -91q41 -43 63.5 -105t22.5 -140q0 -42 -7.5 -87.5t-24.5 -93.5q-16 -44 -38 -82.5t-49 -70.5 q-30 -36 -65.5 -64.5t-75.5 -48.5q-80 -39 -175 -39zM645 813q53 0 102 26.5t87 80.5q38 53 57.5 121t19.5 138q0 107 -49 166q-26 32 -61 46t-73 14q-57 0 -104.5 -28t-83.5 -79q-38 -54 -57.5 -120.5t-19.5 -136.5q0 -57 12.5 -97.5t37.5 -70.5t59 -45t73 -15zM246 592 h676l-23 -123h-676z" />
+<glyph unicode="&#xbb;" d="M145 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418zM612 352l350 262l-250 269l35 176l387 -418l-14 -82l-551 -418z" />
+<glyph unicode="&#xbc;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
+<glyph unicode="&#xbd;" d="M111 934h206l117 611l-231 -41l22 116l238 39h137l-141 -725h205l-21 -110h-553zM47 612l1059 258l27 -108l-1063 -258zM482 -160l203 167q153 125 233 213t80 150q0 20 -9 40.5t-28 36.5q-36 30 -100 30q-23 0 -53 -4.5t-59 -13.5q-27 -8 -64.5 -24t-79.5 -36l24 127 q42 14 78.5 25t68.5 18q31 7 60 10t56 3q62 0 107.5 -14.5t77.5 -40.5q34 -28 51 -66.5t17 -73.5q0 -39 -21.5 -85t-61 -96.5t-97 -103.5t-129.5 -107l-20 -15l-170 -136h395l-23 -114h-557z" />
+<glyph unicode="&#xbe;" d="M313 809q-34 0 -66 3t-64 8t-61.5 12t-61.5 18l24 121q69 -29 119 -42q51 -13 105 -13t98 11.5t76 34.5q34 24 49.5 55.5t15.5 69.5q0 66 -42 98q-44 32 -132 32h-72l21 106h72q98 0 156 40q59 41 59 103q0 53 -43 78q-22 13 -54 19t-72 6q-48 0 -95 -10 q-51 -11 -111 -33l22 115q35 8 68 14.5t64 11.5q61 9 115 9q58 0 105.5 -12t82.5 -38q65 -50 65 -140q0 -80 -57 -138q-27 -28 -65 -47.5t-89 -28.5q72 -12 111 -57q19 -22 29 -51.5t10 -68.5q0 -127 -104 -207q-103 -79 -278 -79zM47 612l1059 258l27 -108l-1063 -258z M799 -86h-386l23 121l465 530h162l-105 -540h117l-20 -111h-119l-33 -184h-139zM821 25l76 391l-342 -391h266z" />
+<glyph unicode="&#xbf;" d="M752 1252q-26 0 -48 8.5t-40 28.5q-19 22 -26 46t-7 50q0 40 15.5 70.5t39.5 52.5t55.5 35t64.5 13q23 0 48 -8.5t43 -28.5q15 -17 23 -41t8 -52q0 -34 -13 -66.5t-41 -58.5q-23 -21 -54.5 -35t-67.5 -14zM495 -27q-72 0 -138.5 19t-117.5 62q-48 41 -72 95t-24 118 q0 89 49 169q26 43 69.5 89t109.5 100l104 86q39 32 69 63.5t46 57.5q15 25 27 62.5t18 74.5l20 123h191l-29 -154q-9 -48 -24.5 -88.5t-33.5 -69.5q-21 -34 -58 -73t-93 -86l-106 -89q-85 -71 -120 -127q-36 -56 -36 -113q0 -73 56 -114t153 -41q42 0 84.5 8.5t94.5 27.5 q50 18 98.5 42t105.5 59l-37 -188q-59 -31 -112.5 -52t-96.5 -33q-51 -14 -102 -21t-95 -7z" />
+<glyph unicode="&#xc0;" d="M551 1853h182l147 -264h-139zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc1;" d="M885 1852h208l-307 -264h-160zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc2;" d="M704 1854h213l158 -266h-133l-139 178l-209 -178h-152zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc3;" d="M442 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM639 1493h246l166 -1493h-201l-35 389h-520l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc4;" d="M500 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM891 1620q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM639 1493h246l166 -1493h-201l-35 389h-520 l-184 -389h-217zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc5;" d="M600 1415q-50 34 -76 89t-26 120q0 59 20.5 109t58.5 88q37 38 87 59t109 21q58 0 107 -21t87 -59q37 -37 58.5 -85.5t21.5 -111.5q0 -43 -10.5 -77.5t-29.5 -64.5q-41 -65 -110 -96l154 -1386h-201l-35 389h-520l-184 -389h-217zM772 1475q33 0 60.5 12t47.5 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -108q0 -65 44 -109q19 -19 46.5 -31t60.5 -12zM801 551l-66 774l-364 -774h430z" />
+<glyph unicode="&#xc6;" d="M555 1493h752l-33 -170h-338l-86 -442h307l-33 -170h-307l-106 -541h356l-33 -170h-542l75 383h-352l-176 -383h-184zM600 551l150 772h-103l-356 -772h309z" />
+<glyph unicode="&#xc7;" d="M1058 1499q80 -21 154 -61l-41 -207q-64 62 -135 94q-69 31 -152 31q-95 0 -175 -40t-152 -124q-51 -60 -93.5 -140t-73.5 -174q-33 -100 -48.5 -196t-15.5 -179q0 -187 78 -277q34 -39 89 -65t135 -26q86 0 177 32q89 31 178 93l-39 -207q-42 -20 -84 -35.5t-85 -26.5 q-23 -5 -48.5 -9.5t-53.5 -6.5q14 -25 23.5 -46t17.5 -40q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5 q-4 9 -11.5 27t-18.5 38q-103 7 -181 41t-132 90q-62 64 -94 159.5t-32 229.5q0 99 17.5 206t52.5 215q35 110 80.5 195.5t103.5 157.5q56 69 114 115t123 77q130 62 287 62q46 0 85.5 -5t79.5 -16z" />
+<glyph unicode="&#xc8;" d="M596 1849h182l147 -264h-139zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xc9;" d="M930 1859h208l-307 -264h-160zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xca;" d="M749 1861h213l158 -266h-133l-139 178l-209 -178h-152zM344 1493h885l-33 -170h-684l-86 -442h653l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xcb;" d="M545 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM936 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM344 1493h885l-33 -170h-684l-86 -442h653 l-32 -170h-654l-104 -541h702l-33 -170h-905z" />
+<glyph unicode="&#xcc;" d="M557 1859h182l147 -264h-139zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xcd;" d="M891 1859h208l-307 -264h-160zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xce;" d="M710 1861h213l158 -266h-133l-139 178l-209 -178h-152zM90 170h313l224 1153h-314l33 170h830l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xcf;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM90 170h313l224 1153h-314l33 170h830 l-33 -170h-314l-223 -1153h314l-33 -170h-830z" />
+<glyph unicode="&#xd0;" d="M129 709h-127l29 149h129l123 635h303q273 0 409 -124q69 -63 102 -157.5t33 -225.5q0 -74 -10.5 -157t-31.5 -170q-22 -90 -51.5 -167.5t-61.5 -137.5q-53 -98 -118.5 -165t-140.5 -107q-155 -82 -421 -82h-303zM324 166q99 0 170.5 16.5t126.5 46.5q63 35 104.5 84.5 t74.5 118.5q26 53 49 121t41 154q17 80 25.5 153t8.5 133q0 95 -20 157.5t-62 100.5q-82 76 -275 76h-114l-91 -469h267l-29 -149h-266l-107 -543h97z" />
+<glyph unicode="&#xd1;" d="M438 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM285 1493h256l264 -1229l239 1229h195l-291 -1493h-256l-264 1229l-240 -1229h-194z" />
+<glyph unicode="&#xd2;" d="M543 1859h182l147 -264h-139zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd3;" d="M897 1859h208l-307 -264h-160zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119 t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5 q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd4;" d="M696 1861h213l158 -266h-133l-139 178l-209 -178h-152zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd5;" d="M434 1627q34 107 97 164q31 28 67.5 41.5t77.5 13.5q20 0 35.5 -3t31.5 -8q33 -11 66 -36l35 -26q19 -14 36 -20q8 -3 16 -5t20 -2q23 0 39 7t30 20q29 27 39 73h125q-31 -108 -95 -164q-29 -26 -67 -40.5t-84 -14.5q-20 0 -34 3t-28 8q-16 6 -29.5 13.5t-29.5 18.5 l-34 25l-2 1q-43 32 -81 32q-34 0 -60 -25q-26 -24 -46 -76h-125zM478 -29q-202 0 -299 123q-97 122 -97 379q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94 q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93 t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38 q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd6;" d="M492 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM883 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM478 -29q-202 0 -299 123q-97 122 -97 379 q0 64 5.5 120t16.5 119q12 70 26.5 131t37.5 132q16 50 31 89t32 77q20 43 37.5 73.5t34.5 56.5q86 128 198 189q51 28 112 44t140 16q100 0 175 -29t126 -94q97 -122 97 -373q0 -60 -5.5 -119t-16.5 -124q-22 -128 -66 -265q-16 -50 -30.5 -88.5t-31.5 -76.5 q-14 -29 -33 -64.5t-40 -67.5q-39 -59 -89.5 -107t-107.5 -80q-109 -61 -253 -61zM498 135q43 0 84 12.5t78 38.5q40 29 68.5 67t49.5 78q19 36 36.5 79t32.5 89t28 93t23 92q23 103 34.5 202.5t11.5 180.5q0 86 -13 137.5t-39 84.5q-26 32 -65.5 49.5t-92.5 17.5 q-44 0 -85 -12.5t-77 -38.5q-35 -26 -64.5 -63t-52.5 -82q-35 -66 -67 -157.5t-55 -194.5q-23 -100 -34.5 -197.5t-11.5 -181.5q0 -44 3.5 -78.5t10 -61.5t16.5 -48t23 -38q29 -36 69.5 -52t88.5 -16z" />
+<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
+<glyph unicode="&#xd8;" d="M14 -6l119 170q-14 31 -24 64t-16 65q-13 68 -13 159q0 95 13 197.5t39 209.5q24 98 57.5 187.5t79.5 170.5q40 70 90 128t117 100q62 38 130.5 56.5t143.5 18.5q41 0 78 -5t69 -16q29 -10 60.5 -26.5t58.5 -38.5l84 125l100 -64l-106 -158q16 -34 26 -65.5t17 -66.5 q7 -36 10.5 -75.5t3.5 -90.5q0 -94 -13 -196t-39 -209q-29 -116 -64.5 -204.5t-72.5 -153.5q-45 -80 -96 -136t-110 -93t-129 -56.5t-148 -19.5q-43 0 -79.5 6t-70.5 17q-29 10 -61 26.5t-61 42.5l-94 -133zM905 1274q-13 18 -32.5 34t-41.5 27q-20 10 -47 15.5t-57 5.5 q-54 0 -101.5 -19.5t-89.5 -62.5q-81 -83 -141 -256q-11 -32 -22 -69t-21.5 -76.5t-19.5 -79t-16 -75.5q-14 -71 -21.5 -139t-7.5 -122l2 -38q1 -10 1 -15v-7t0.5 -3.5t0.5 -4.5zM501 135q113 0 194 82q34 35 70 96t71 160q12 33 23 70t21 75t18.5 75.5t14.5 72.5 q27 147 27 270v46q0 3 -0.5 14.5t-1.5 19.5l-616 -887q19 -43 67 -69q23 -13 51.5 -19t60.5 -6z" />
+<glyph unicode="&#xd9;" d="M555 1859h182l147 -264h-139zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xda;" d="M889 1859h208l-307 -264h-160zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7 t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xdb;" d="M708 1861h213l158 -266h-133l-139 178l-209 -178h-152zM477 -29q-190 0 -293 90q-104 90 -104 254q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5 q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xdc;" d="M504 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM895 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM477 -29q-190 0 -293 90q-104 90 -104 254 q0 24 2 46t7 56q3 23 5.5 40.5t5.5 35t6.5 36.5t8.5 44l178 920h203l-179 -920q-1 -7 -3 -17t-5 -24q-15 -74 -22.5 -131.5t-7.5 -87.5q0 -43 14.5 -76.5t40.5 -55.5q53 -46 167 -46q45 0 80 7t68 23t60 38t47 51q11 16 21.5 39.5t23.5 67.5q11 36 23 89.5t26 122.5l178 920 h203l-178 -920q-12 -64 -23.5 -113.5t-22.5 -88t-22 -67t-21 -51.5q-25 -54 -56 -94.5t-70 -72.5q-35 -29 -77 -50t-85 -35q-92 -30 -199 -30z" />
+<glyph unicode="&#xdd;" d="M921 1859h208l-307 -264h-160zM508 670l-313 823h202l236 -651l497 651h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#xde;" d="M342 1493l203 -2l-51 -274h241q207 0 316 -88q54 -44 81 -107.5t27 -154.5q0 -111 -40 -203.5t-121 -161.5q-161 -137 -441 -137h-231l-72 -365h-203zM590 522q163 0 263 92q50 46 74.5 107t24.5 132q0 60 -16.5 97t-45.5 60q-61 49 -192 49h-237l-105 -537h234z" />
+<glyph unicode="&#xdf;" d="M599 -29q-38 0 -69.5 3t-67.5 10q-41 7 -70 15.5t-62 20.5l30 164q58 -32 126 -48q68 -17 137 -17q130 0 207 63q36 30 55.5 71.5t19.5 94.5q0 31 -6.5 54t-20.5 43q-17 25 -43.5 48.5t-68.5 55.5l-61 47q-43 33 -71.5 59t-46.5 55q-28 46 -28 110q0 130 102 226 q47 45 115 79t164 53q2 8 3 15t2 15q1 7 1 12v7q0 40 -11 74.5t-40 59.5q-24 20 -61 32t-87 12q-57 0 -105.5 -16.5t-83.5 -50.5q-32 -31 -57.5 -81t-39.5 -124l-219 -1133h-187l221 1137q20 105 61 184.5t101 131.5q63 54 144 78.5t176 24.5q91 0 160 -21t114 -59 q94 -80 94 -232q0 -14 -1 -31t-3 -34t-5.5 -35t-8.5 -36q-174 -21 -274 -88q-101 -68 -101 -163q0 -21 5 -37t16 -32q14 -20 32 -36t48 -39l51 -39q54 -42 93.5 -77.5t62.5 -73.5q40 -65 40 -159q0 -84 -31 -156.5t-98 -128.5q-63 -53 -150.5 -80.5t-202.5 -27.5z" />
+<glyph unicode="&#xe0;" d="M457 1673h198l197 -376h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe1;" d="M911 1673h219l-395 -376h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45 l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80 q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe2;" d="M721 1673h147l164 -376h-133l-117 241l-225 -241h-156zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19 q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125 q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe3;" d="M894 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM407 -29q-74 0 -135.5 20.5t-107.5 62.5q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12 q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5 t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe4;" d="M473 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM864 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 11v8q0 96 -62 140q-29 21 -75 33t-107 12q-42 0 -88 -6t-96 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe5;" d="M782 1321q-114 0 -194 80t-80 194q0 116 80 196q79 79 194 79q116 0 195 -79q80 -80 80 -196q0 -114 -80 -194t-195 -80zM782 1444q64 0 108 44t44 107q0 64 -44 108t-108 44t-107 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM407 -29q-74 0 -135.5 20.5t-107.5 62.5 q-48 43 -70 100t-22 126q0 92 39 172t115 138t182 87.5t237 29.5h246l12 61l3 19q1 5 1 10v7q0 57 -18 89.5t-45 52.5q-29 21 -73 33t-106 12q-43 0 -89.5 -6t-96.5 -19q-51 -13 -103 -32t-108 -45l35 180q54 20 105 34.5t100 24.5t95.5 14.5t89.5 4.5q92 0 166 -20t126 -62 q49 -39 75.5 -96.5t26.5 -129.5q0 -33 -6 -85q-4 -32 -8.5 -59.5t-9.5 -55.5l-125 -639h-164l12 166q-72 -94 -170 -144q-50 -26 -101 -38.5t-108 -12.5zM461 125q72 0 134.5 27t115.5 80q56 56 92 130t53 160l8 41h-172q-60 0 -104 -1.5t-73 -5.5t-55 -11t-46 -15 q-26 -11 -55 -30.5t-54 -57.5q-41 -62 -41 -135q0 -48 15.5 -80.5t36.5 -52.5q24 -23 59.5 -36t85.5 -13z" />
+<glyph unicode="&#xe6;" d="M234 -29q-68 0 -120.5 20t-85.5 52q-41 38 -58 92t-17 117q0 87 30 164.5t91 132.5q120 108 344 108h117l18 88q3 14 4 21.5t2 20.5q1 11 1.5 22.5t0.5 22.5q0 42 -11 71.5t-31 49.5q-19 19 -49 30.5t-70 11.5q-27 0 -56.5 -5.5t-59.5 -15.5q-32 -11 -69 -27t-74 -36 l35 168q44 19 79 31t69 20q35 8 66 12.5t60 4.5q81 0 140 -33q58 -33 90 -96q23 29 54 54t66 42q36 17 74.5 25t75.5 8q59 0 108 -19t85 -58q35 -38 53 -90.5t18 -112.5q0 -21 -2 -49.5t-6 -57.5q-2 -11 -4.5 -30.5t-6.5 -41.5l-8 -44t-7 -40l-17 -90h-495 q-12 -57 -17.5 -88.5t-9.5 -57.5q-4 -28 -6 -47t-2 -36q0 -41 13 -71.5t36 -50.5q49 -44 133 -44q69 0 142 29q70 28 124 79l-34 -172q-28 -20 -61.5 -36.5t-63.5 -26.5q-65 -21 -137 -21q-53 0 -98 11t-79 31t-58 50t-36 68q-47 -80 -117 -120q-35 -20 -76.5 -30t-86.5 -10 zM1024 657l16 74q4 17 6 31.5t3 23.5q1 11 1.5 29t0.5 29q0 39 -9 66.5t-26 46.5q-33 38 -94 38q-35 0 -70 -14t-64 -49t-46 -82t-31 -111l-17 -82h330zM267 123q83 0 134 68q13 18 24.5 41t22 53.5t20 69t19.5 87.5l15 72h-49q-67 0 -107 -3.5t-70 -12.5q-31 -9 -51 -21.5 t-37 -32.5q-18 -20 -28.5 -39.5t-18.5 -42.5q-18 -51 -18 -95q0 -27 8.5 -55t29.5 -50q22 -22 50 -30.5t56 -8.5z" />
+<glyph unicode="&#xe7;" d="M469 813q-26 -38 -48.5 -85.5t-38.5 -101.5q-32 -108 -32 -208q0 -69 16.5 -124.5t51.5 -93.5q32 -35 82.5 -54t124.5 -19q45 0 91.5 7.5t91.5 23.5q47 17 90 41t81 53l-39 -201q-43 -23 -80.5 -36.5t-75.5 -22.5q-24 -6 -48 -10t-48 -7q14 -24 23.5 -45.5t17.5 -40.5 q17 -45 17 -87t-17.5 -78.5t-52.5 -64.5q-69 -54 -191 -54q-20 0 -43.5 1.5t-46.5 5.5q-45 7 -94 23l25 129q20 -10 41.5 -17.5t35.5 -11.5q34 -9 69 -9q31 0 58 7.5t46 22.5t28 36t9 45q0 17 -4 35.5t-10 34.5q-3 9 -11 26.5t-18 38.5q-101 5 -174.5 33.5t-124.5 78.5 q-58 57 -86.5 139.5t-28.5 188.5q0 75 13.5 151.5t39.5 145.5t63 130t82 111q48 53 102.5 90t102.5 58q110 49 245 49q88 0 171 -21q38 -10 80 -26.5t82 -38.5l-37 -182q-65 58 -136 85t-154 27q-111 0 -196 -44q-42 -22 -78.5 -55.5t-66.5 -78.5z" />
+<glyph unicode="&#xe8;" d="M453 1673h198l197 -376h-143zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807 q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xe9;" d="M907 1673h219l-395 -376h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5 h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5 t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xea;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM558 -29q-120 0 -204.5 29t-140.5 83q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44 q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5 q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xeb;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM558 -29q-120 0 -204.5 29t-140.5 83 q-115 112 -115 327q0 154 60 304t166 259q45 47 90 78t94 53q51 23 102.5 34t108.5 11q95 0 169 -30t127 -84q55 -57 83 -135.5t28 -170.5q0 -21 -1.5 -40t-3.5 -44q-2 -16 -5.5 -48.5t-11.5 -80.5h-807q-6 -30 -9 -58q-3 -26 -3 -49q0 -135 77 -209q38 -37 94 -55t128 -18 q47 0 94.5 7.5t100.5 21.5q105 29 218 84l-36 -183q-57 -23 -105 -38t-100 -26q-50 -11 -97 -16.5t-101 -5.5zM938 659q3 14 5 25t3 20q1 8 1.5 16.5t0.5 20.5q0 115 -65 183q-32 34 -77.5 50.5t-99.5 16.5q-60 0 -118 -21t-111 -69q-46 -42 -84.5 -103t-60.5 -139h606z" />
+<glyph unicode="&#xec;" d="M383 1646h198l197 -376h-143zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#xed;" d="M828 1673h219l-395 -376h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#xee;" d="M688 1673h147l164 -376h-133l-117 241l-225 -241h-156zM749 -4q-174 0 -257 64q-85 64 -85 192q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211 l-31 -156h-207z" />
+<glyph unicode="&#xef;" d="M380 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM771 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM749 -4q-174 0 -257 64q-85 64 -85 192 q0 17 1.5 33.5t3.5 36.5t5.5 42t8.5 44l133 568h-246l29 144h430l-162 -716q-4 -16 -6.5 -35t-3.5 -27q-2 -16 -3 -25.5t-1 -19.5q0 -74 44 -109q45 -36 136 -36h211l-31 -156h-207z" />
+<glyph unicode="&#xf0;" d="M516 -29q-193 0 -295 108q-54 57 -78 134.5t-24 175.5q0 125 38 248q20 66 50 125.5t59 101.5q77 112 192 173q58 31 120.5 46t118.5 15q18 0 35 -1.5t40 -3.5l33 -3q-20 37 -45 81q-5 7 -12.5 19.5t-17 26.5t-19.5 28.5t-19 26.5l-297 -94l-30 92l274 86l-141 200h213 l104 -145l287 88l28 -92l-260 -80q62 -86 107 -166.5t73 -153.5q56 -147 56 -306q0 -64 -9 -130t-28 -131q-37 -129 -108 -233q-42 -61 -87.5 -103.5t-102.5 -72.5q-114 -60 -255 -60zM534 127q79 0 149 40.5t123 120.5q53 81 79 186.5t26 227.5q0 36 -2 64t-7 54 q-9 51 -28 87q-37 19 -77 28q-41 9 -83 9q-94 0 -166.5 -41t-123.5 -114q-28 -40 -49 -87t-34.5 -97.5t-20.5 -103t-7 -103.5q0 -67 12.5 -119t44.5 -87q26 -29 67.5 -47t96.5 -18z" />
+<glyph unicode="&#xf1;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM303 1120h164l-12 -168q74 96 163 146q43 24 88 36.5t101 12.5q66 0 120 -18t92 -54q38 -35 57.5 -86.5t19.5 -111.5q0 -17 -1.5 -40.5t-3.5 -43.5t-5.5 -42t-10.5 -57l-135 -694h-184 l135 695q3 9 2 8.5t1 5.5q4 21 6.5 35.5t4.5 26.5t3 22.5t1 23.5q0 44 -11.5 74.5t-34.5 52.5q-46 43 -133 43q-129 0 -217 -93q-89 -94 -122 -261l-123 -633h-184z" />
+<glyph unicode="&#xf2;" d="M453 1673h198l197 -376h-143zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf3;" d="M907 1673h219l-395 -376h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109 q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124 t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf4;" d="M717 1673h147l164 -376h-133l-117 241l-225 -241h-156zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137 t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230 q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf5;" d="M890 1297q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18zM510 -29q-92 0 -166 26t-126 83q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314 q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126 q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf6;" d="M469 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM860 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM510 -29q-92 0 -166 26t-126 83 q-47 51 -74 129t-27 187q0 130 41 267q19 63 47.5 126t68.5 121q81 118 190 177q112 60 253 60q91 0 166.5 -26t128.5 -81q102 -107 102 -314q0 -135 -41 -273q-23 -75 -53 -137t-62 -109q-42 -61 -88.5 -104.5t-103.5 -72.5t-121.5 -44t-134.5 -15zM533 127q87 0 157.5 45 t121.5 126q27 42 47 91.5t33.5 103.5t20.5 111t7 114q0 72 -12.5 123t-43.5 86q-30 34 -71.5 49t-90.5 15q-90 0 -159.5 -45t-120.5 -126q-50 -79 -79.5 -188t-29.5 -230q0 -72 12.5 -124t43.5 -87q29 -32 71.5 -48t92.5 -16z" />
+<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
+<glyph unicode="&#xf8;" d="M47 -20l129 153q-14 24 -25 52t-18 60t-10.5 67.5t-3.5 78.5q0 69 10 138t30 137q19 63 48 127t67 119t87 101.5t106 75.5q56 29 120.5 43.5t136.5 14.5q79 0 139 -18q59 -18 106 -54l112 137l93 -77l-123 -146q17 -26 29 -56t19 -58q8 -31 11.5 -69.5t3.5 -79.5 q0 -135 -41 -273q-21 -70 -50.5 -132t-64.5 -114q-42 -61 -88.5 -104.5t-103.5 -72.5q-113 -59 -259 -59q-40 0 -72 4.5t-64 14.5q-28 8 -56 21t-57 34l-119 -141zM852 938q-14 13 -31.5 24t-36.5 17q-18 6 -39.5 9t-43.5 3q-88 0 -158 -45t-121 -126t-80 -192.5t-29 -239.5 q0 -20 0.5 -29t1.5 -19q2 -19 2.5 -26.5t1.5 -11.5zM534 127q83 0 153 43t124 129q50 79 79.5 187t29.5 239q0 20 -0.5 34t-1.5 23q-1 10 -2.5 21t-4.5 22l-534 -639q15 -15 31.5 -25.5t37.5 -18.5q19 -7 40 -11t48 -4z" />
+<glyph unicode="&#xf9;" d="M449 1648h198l197 -376h-143zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfa;" d="M903 1648h219l-395 -376h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5 q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfb;" d="M713 1648h147l164 -376h-133l-117 241l-225 -241h-156zM409 -27q-65 0 -117.5 18t-90.5 55q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25 q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfc;" d="M465 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM856 1350q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM409 -27q-65 0 -117.5 18t-90.5 55 q-39 38 -57.5 89.5t-18.5 112.5q0 18 1.5 39.5t3.5 44.5q3 30 5.5 49.5t7.5 44.5l133 694h185l-135 -694q-1 -6 -2.5 -16t-3 -20.5t-3 -19.5l-2.5 -15q-2 -17 -3 -32t-1 -25q0 -37 11 -68.5t36 -54.5q23 -21 56.5 -31.5t74.5 -10.5q60 0 115 22.5t100 69.5q45 48 75 114.5 t46 147.5l123 633h185l-218 -1120h-164l13 168q-74 -98 -162 -146q-47 -26 -94.5 -37.5t-98.5 -11.5z" />
+<glyph unicode="&#xfd;" d="M947 1648h219l-395 -376h-156zM20 -272h108q83 0 140 47q62 50 118 159l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43 q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
+<glyph unicode="&#xfe;" d="M385 1567h184l-114 -590q61 82 147 126t186 44q76 0 141 -25t111 -79q45 -52 66.5 -127t21.5 -172q0 -64 -9.5 -135.5t-29.5 -143.5q-21 -77 -50 -141.5t-60 -112.5q-38 -60 -82 -104t-95 -75q-101 -61 -224 -61q-100 0 -170 42q-72 43 -115 128l-111 -567h-184zM567 127 q43 0 81 12t70 33q34 23 61 54.5t50 74.5q24 45 44 99.5t33 108.5q14 58 21 115t7 107q0 73 -13.5 120.5t-37.5 76.5q-27 33 -66.5 48t-88.5 15q-83 0 -152 -45q-37 -24 -64.5 -56t-52.5 -77q-26 -46 -45 -97.5t-32 -104.5q-14 -57 -21 -114.5t-7 -104.5q0 -69 14 -117.5 t41 -80.5q28 -33 68 -50t90 -17z" />
+<glyph unicode="&#xff;" d="M509 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM900 1320q-15 0 -22.5 9t-4.5 24l28 142q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -142q-5 -27 -32 -27h-143zM20 -272h108q83 0 140 47q62 50 118 159 l43 84l-217 1102h183l172 -862l483 862h205l-439 -760q-33 -58 -52 -90t-29.5 -50.5t-16 -28.5t-12.5 -22.5t-19.5 -34t-35.5 -62.5q-51 -90 -84.5 -148t-56 -95.5t-38 -60.5t-30.5 -43q-27 -35 -58.5 -64.5t-73.5 -49.5q-74 -37 -171 -37h-148z" />
+<glyph unicode="&#x152;" d="M467 0q-108 0 -190 25.5t-136 77.5q-56 54 -81 134.5t-25 186.5q0 62 8 144.5t25 173.5t39 175t47 150q45 120 100.5 200.5t124.5 128.5q137 97 379 97h594l-33 -170h-358l-87 -442h328l-33 -170h-327l-107 -541h369l-33 -170h-604zM539 170l225 1153h-62 q-119 0 -201 -54q-47 -30 -77 -70.5t-53 -92.5q-6 -14 -12 -28.5t-11.5 -31t-12 -37.5t-13.5 -48q-14 -52 -26 -103.5t-24 -112.5q-11 -53 -18.5 -98.5t-13.5 -90.5q-5 -42 -8 -77.5t-3 -62.5q0 -60 15.5 -107t47.5 -79q33 -32 80.5 -46t104.5 -14h62z" />
+<glyph unicode="&#x153;" d="M288 -29q-140 0 -217 83t-77 238q0 26 2 58t6 64q1 13 3.5 30.5t5.5 37t6.5 39.5t6.5 38q5 28 12 58.5t14.5 59.5t14.5 54.5t12 42.5q12 39 29 82t39 82q28 50 63 88.5t83 67.5q91 53 204 53q84 0 145 -34q62 -34 95 -93q59 64 126 95q69 32 147 32q123 0 193 -76 q35 -38 53 -91t18 -117q0 -26 -2.5 -55.5t-5.5 -53.5q-4 -29 -10.5 -69.5t-14.5 -80.5l-16 -90h-502q-5 -23 -8.5 -40.5t-6.5 -34t-5.5 -33.5t-5.5 -38q-5 -29 -7 -47.5t-2 -35.5q0 -42 12.5 -71t36.5 -51q49 -44 133 -44q70 0 142 29q69 28 125 79l-35 -172 q-34 -23 -64.5 -37.5t-60.5 -24.5q-32 -11 -64.5 -16.5t-71.5 -5.5q-96 0 -164 35t-102 98q-59 -65 -129 -99q-71 -34 -156 -34zM309 123q61 0 110 35q29 20 46 46.5t30 55.5q5 11 9 21t8.5 23t9.5 30.5t12 44.5q13 49 23 93t18 88t15.5 89.5t12.5 85.5q9 67 9 101 q0 36 -9 66t-27 51q-36 42 -104 42q-36 0 -63 -9.5t-48 -24.5q-24 -17 -42 -42t-34 -63q-11 -26 -22 -59t-20 -68q-20 -75 -38 -170q-8 -44 -14.5 -80.5t-12.5 -78.5q-5 -37 -7.5 -64t-2.5 -47q0 -79 37 -122q38 -44 104 -44zM1083 653l15 76q3 16 5.5 33.5t3.5 25.5 q2 14 2.5 27.5t0.5 24.5q0 33 -8 63t-25 50q-18 21 -43.5 29.5t-53.5 8.5q-43 0 -75.5 -17t-57.5 -48q-30 -37 -50 -87t-29 -104l-14 -82h329z" />
+<glyph unicode="&#x178;" d="M506 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h144q27 0 27 -24q0 -6 -1 -9l-29 -143q-6 -27 -32 -27h-142zM897 1627q-15 0 -22.5 9t-4.5 24l28 143q4 27 32 27h143q15 0 22.5 -9t4.5 -24l-28 -143q-5 -27 -32 -27h-143zM508 670l-313 823h202l236 -651l497 651 h218l-635 -823l-129 -670h-207z" />
+<glyph unicode="&#x2c6;" d="M717 1638h147l164 -376h-133l-117 241l-225 -241h-156z" />
+<glyph unicode="&#x2dc;" d="M890 1307q-43 0 -76 15q-15 7 -33.5 19.5t-39.5 34.5l-47 49q-5 5 -15.5 14t-20.5 14q-17 9 -37 9q-15 0 -32 -7t-31 -30q-25 -38 -32 -116h-125q16 135 74 209q57 73 147 73q43 0 76 -15q17 -8 35.5 -22t36.5 -32l47 -47q14 -14 20 -19t17 -11q16 -9 34 -9q20 0 37 10.5 t28 28.5t19.5 47.5t12.5 68.5h125q-8 -63 -26 -117.5t-47 -92.5t-66 -56t-81 -18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="986" />
+<glyph unicode="&#x2001;" horiz-adv-x="1972" />
+<glyph unicode="&#x2002;" horiz-adv-x="986" />
+<glyph unicode="&#x2003;" horiz-adv-x="1972" />
+<glyph unicode="&#x2004;" horiz-adv-x="657" />
+<glyph unicode="&#x2005;" horiz-adv-x="493" />
+<glyph unicode="&#x2006;" horiz-adv-x="328" />
+<glyph unicode="&#x2007;" horiz-adv-x="328" />
+<glyph unicode="&#x2008;" horiz-adv-x="246" />
+<glyph unicode="&#x2009;" horiz-adv-x="394" />
+<glyph unicode="&#x200a;" horiz-adv-x="109" />
+<glyph unicode="&#x2010;" d="M226 683h822l-33 -164h-822z" />
+<glyph unicode="&#x2011;" d="M226 683h822l-33 -164h-822z" />
+<glyph unicode="&#x2012;" d="M226 683h822l-33 -164h-822z" />
+<glyph unicode="&#x2013;" d="M-23 633h1233l-28 -141h-1233z" />
+<glyph unicode="&#x2014;" d="M-23 633h1233l-28 -141h-1233z" />
+<glyph unicode="&#x2018;" d="M504 1174l270 382h154l-172 -382l-41 -207h-252z" />
+<glyph unicode="&#x2019;" d="M635 1350l41 206h252l-41 -206l-271 -383h-153z" />
+<glyph unicode="&#x201a;" d="M375 96l41 207h252l-41 -207l-271 -383h-153z" />
+<glyph unicode="&#x201c;" d="M285 1174l272 382h154l-174 -382l-39 -207h-252zM743 1174l273 382h153l-172 -382l-41 -207h-251z" />
+<glyph unicode="&#x201d;" d="M393 1350l41 206h252l-41 -206l-270 -383h-154zM852 1350l41 206h252l-41 -206l-270 -383h-154z" />
+<glyph unicode="&#x201e;" d="M156 96l41 207h252l-39 -207l-273 -383h-153zM614 96l41 207h252l-39 -207l-272 -383h-154z" />
+<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -63 -22.5 -116t-64.5 -94q-44 -43 -98 -64.5t-114 -21.5z" />
+<glyph unicode="&#x2026;" d="M-33 0q-28 0 -28 25q0 5 1 8l49 243q6 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-49 -243q-6 -27 -32 -27h-192zM377 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192zM787 0q-28 0 -28 25q0 5 1 8l48 243q4 27 32 27 h192q28 0 28 -25q0 -5 -1 -8l-48 -243q-5 -27 -32 -27h-192z" />
+<glyph unicode="&#x202f;" horiz-adv-x="394" />
+<glyph unicode="&#x2039;" d="M249 559l17 82l551 418l-43 -211l-351 -264l248 -267l-33 -176z" />
+<glyph unicode="&#x203a;" d="M430 352l351 262l-250 269l35 176l387 -418l-17 -82l-549 -418z" />
+<glyph unicode="&#x205f;" horiz-adv-x="493" />
+<glyph unicode="&#x20ac;" d="M612 -29q-114 0 -197 35t-138 99q-60 69 -87.5 168.5t-27.5 224.5v45h-172l49 110h133q4 29 8 55t9 49q8 45 18 83h-158l49 108h140q48 146 113 252t146 176q84 72 183 108t211 36q42 0 79 -5t75 -16q77 -21 147 -61l-39 -207q-72 66 -135 95q-65 30 -138 30 q-137 0 -248 -105q-112 -106 -183 -303h473l-50 -108h-456q-3 -12 -5.5 -20t-4.5 -16.5t-4.5 -20.5t-6.5 -32t-7 -33.5t-5 -24.5t-3.5 -20t-2.5 -20h411l-47 -110h-376v-54q0 -171 73 -262q35 -45 86 -68.5t120 -23.5q40 0 80 8t83 24q83 31 170 93l-39 -207 q-80 -42 -160 -62q-40 -10 -81 -15t-85 -5z" />
+<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-regular-latin-webfont.svg b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-regular-latin-webfont.svg
new file mode 100755
index 0000000..3a9a01b
--- /dev/null
+++ b/pagure/static/vendor/hack_fonts/fonts/svg/latin/hack-regular-latin-webfont.svg
@@ -0,0 +1,241 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="hackregular" horiz-adv-x="1233" >
+<font-face units-per-em="2048" ascent="1556" descent="-492" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph unicode="&#xd;" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="0" />
+<glyph unicode=" " />
+<glyph unicode="!" d="M481 1053v445h265v-445l-67 -567h-121zM616 -60q-70 0 -116 48q-46 47 -46 125q0 77 46 124q47 47 116 47t116 -47q46 -46 46 -124q0 -42 -11.5 -72t-34.5 -53q-47 -48 -116 -48z" />
+<glyph unicode="&#x22;" d="M338 1493h174v-555h-174v555zM721 1493h174v-555h-174v555z" />
+<glyph unicode="#" d="M260 414h-258v153h297l84 334h-266v154h303l104 415h160l-104 -415h245l105 415h160l-105 -415h244v-154h-281l-84 -334h250v-153h-289l-104 -414h-160l105 414h-246l-105 -414h-159zM705 567l83 334h-245l-84 -334h246z" />
+<glyph unicode="$" d="M552 0q-12 2 -62 9.5t-101 18.5q-50 11 -98 26.5t-101 37.5v180q54 -33 102 -55.5t100 -39.5q102 -34 190 -35v458q-90 16 -164.5 45.5t-126.5 76.5q-51 46 -76 105.5t-25 136.5q0 156 106 250t256 107v235h180v-235q1 -2 42.5 -7.5t78.5 -12.5q41 -8 82 -18t83 -23v-173 q-44 23 -90 41t-75 26q-34 10 -76.5 17.5t-74.5 9.5v-431q197 -32 304 -128q108 -98 108 -249q0 -76 -28 -140.5t-88 -118.5q-116 -103 -266 -112v-303h-180v301zM582 1183q-94 -5 -152 -60q-59 -56 -59 -149q0 -46 14 -79t41 -58q55 -50 156 -67v413zM702 146q101 3 162 61 q62 59 62 156q0 46 -13.5 83.5t-42.5 63.5q-55 50 -168 70v-434z" />
+<glyph unicode="%" d="M351 793q-68 0 -126 24.5t-100 66.5q-45 45 -68.5 103.5t-23.5 124.5q0 71 25 129t67 100t100 66.5t127 24.5q64 0 123 -24q58 -24 103 -69q23 -23 41 -49.5t29 -53.5q24 -59 24 -123q0 -66 -24 -125t-68 -103q-42 -42 -101 -67t-128 -25zM351 928q37 0 71 13.5t61 39.5 q23 23 38.5 56.5t15.5 75.5q0 76 -54 130q-55 53 -130 53q-77 0 -131 -52q-25 -24 -39.5 -58t-14.5 -74q0 -79 53 -132q22 -22 55 -37t75 -15zM42 560l1150 436v-113l-1150 -430v107zM879 0q-136 0 -228 92q-45 46 -67.5 103.5t-22.5 122.5q0 71 25 129.5t67 100.5t100 66.5 t126 24.5q65 0 122 -24t103 -70q26 -26 43 -53t28 -52q25 -57 25 -121q0 -63 -22.5 -121t-70.5 -106q-47 -46 -104.5 -69t-123.5 -23zM879 135q77 0 131 54q53 53 53 130t-54 131t-130 54q-77 0 -130 -53t-53 -132q0 -78 53 -131t130 -53z" />
+<glyph unicode="&#x26;" d="M552 -30q-107 0 -197.5 36.5t-156.5 99.5q-64 61 -103 145.5t-39 187.5q0 67 17.5 133.5t52.5 125.5q68 116 208 217q-51 73 -74 141q-24 69 -24 141q0 79 26 136.5t74 99.5q99 87 272 87q65 0 131 -12q29 -5 63 -14t72 -21v-183q-29 20 -61 35t-61 23q-62 18 -128 18 q-101 0 -156 -45q-56 -45 -56 -124q0 -58 29 -122q14 -30 39 -71t67 -97l416 -559q38 49 58 124q10 38 14.5 82.5t4.5 92.5q0 20 -0.5 45.5t-2.5 60.5l-1 7h164v-39q0 -162 -37 -282q-18 -59 -46 -112t-66 -98l170 -229h-213l-78 109q-40 -34 -83 -60t-94 -44 q-42 -15 -93 -25t-108 -10zM585 125q25 0 46.5 3t44.5 9q49 13 90 35q24 13 45 27q11 7 16 10.5t7.5 6t4 3.5t5.5 4l-428 580q-93 -75 -137 -154q-46 -82 -46 -176q0 -72 24.5 -135t74.5 -113q47 -47 111.5 -73.5t141.5 -26.5z" />
+<glyph unicode="'" d="M528 1493h174v-555h-174v555z" />
+<glyph unicode="(" d="M595 -270q-78 124 -133 237.5t-92 226.5q-74 227 -74 449q0 221 74 449q38 115 93 228.5t132 233.5h160q-71 -121 -118.5 -231.5t-79.5 -222.5q-34 -118 -50 -230t-16 -227q0 -118 16.5 -229.5t49.5 -226.5t81 -226t117 -231h-160v0z" />
+<glyph unicode=")" d="M478 -270q132 231 199 459q31 107 48 222t17 232q0 112 -16.5 227.5t-48.5 227.5q-31 107 -80.5 222t-118.5 234h160q153 -237 225 -462q74 -228 74 -449q0 -223 -74 -451q-74 -227 -225 -462h-160v0z" />
+<glyph unicode="*" d="M250 486l242 371l-364 158l36 103l376 -123l20 425h108l20 -425l376 123l36 -103l-364 -158l242 -371l-94 -67l-270 357l-270 -357z" />
+<glyph unicode="+" d="M532 557h-444v170h444v444h168v-444h445v-170h-445v-444h-168v444z" />
+<glyph unicode="," d="M400 -283q244 109 252 334q-12 -2 -21.5 -3t-18.5 -1q-32 0 -60 9.5t-50 29.5q-44 39 -44 110q0 33 11 62.5t35 50.5q20 17 50 28.5t66 11.5q85 0 132 -68q46 -67 46 -188q0 -171 -92 -295q-92 -123 -260 -185z" />
+<glyph unicode="-" d="M206 683h821v-164h-821v164z" />
+<glyph unicode="." d="M613 -27q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="/" d="M889 1493h190l-786 -1683h-191z" />
+<glyph unicode="0" d="M616 -29q-240 0 -361 196q-122 197 -122 578q0 382 122 579q121 196 361 196q118 0 209 -48t153 -148q60 -96 91 -239.5t31 -339.5t-31 -339t-91 -239q-123 -196 -362 -196zM616 131q73 0 125.5 39t86.5 113q69 151 69 462q0 312 -69 462q-34 75 -86 114t-126 39 q-141 0 -210 -152q-35 -75 -52.5 -188.5t-17.5 -274.5q0 -312 70 -462q36 -78 88.5 -115t121.5 -37zM618 396q-15 0 -27.5 11.5t-22 31t-16.5 46t-13 55.5q-5 24 -9 53t-7 58.5t-5 55.5t-2 43q0 12 1 35t3.5 51t6 58.5t9.5 58.5q28 143 78 143q28 0 47.5 -38t33.5 -108 q5 -25 9 -54t7 -57.5t4.5 -54t1.5 -42.5q0 -10 -0.5 -31t-2.5 -48.5t-5.5 -58.5t-8.5 -62q-13 -74 -34.5 -110t-47.5 -36z" />
+<glyph unicode="1" d="M270 170h314v1141l-338 -76v184l336 74h202v-1323h310v-170h-824v170z" />
+<glyph unicode="2" d="M152 134q0 19 5.5 33.5t19.5 28.5q57 60 135 142.5t167 179.5q51 55 82 89t51 56t32.5 36.5t26.5 31.5q27 32 47.5 58.5t37 50t29 45.5t22.5 44q17 38 26 76t9 80q0 60 -18 109.5t-55 84.5q-74 71 -203 71q-90 0 -190 -33t-212 -100v204q52 25 103.5 43.5t99.5 30.5 q50 13 99 19t97 6q104 0 195 -28t159 -88q60 -53 96 -129.5t36 -172.5q0 -51 -11 -99.5t-33 -97.5q-11 -25 -25 -49t-31.5 -49t-39.5 -52.5t-49 -59.5q-29 -34 -69 -79t-93 -102q-38 -41 -70 -73.5t-68.5 -69t-83 -83.5t-113.5 -118h696v-170h-907v134z" />
+<glyph unicode="3" d="M566 -29q-48 0 -100.5 4.5t-106.5 14.5q-46 8 -101 22t-109 33v204q51 -26 100 -47t101 -35q50 -13 98.5 -19.5t98.5 -6.5q166 0 255 75q45 38 67 92t22 121q0 134 -88 210q-43 37 -104 56.5t-138 19.5h-154v166h154q140 0 218 61q77 60 77 173q0 54 -18 98.5t-54 75.5 q-71 61 -210 61q-41 0 -87 -5t-94 -15q-97 -20 -199 -60v186q121 31 216 48q92 16 169 16q105 0 193.5 -27t154.5 -82q62 -52 95.5 -125t33.5 -164q0 -65 -17.5 -116t-50.5 -91q-68 -81 -200 -116q147 -39 225 -138q41 -52 59.5 -115t18.5 -135q0 -100 -34 -181.5 t-103 -140.5q-68 -58 -164.5 -88t-223.5 -30z" />
+<glyph unicode="4" d="M735 356h-633v191l600 946h234v-973h199v-164h-199v-356h-201v356zM735 520v789l-471 -789h471z" />
+<glyph unicode="5" d="M525 -29q-45 0 -100.5 4t-104.5 12q-51 8 -94 20t-83 28v205q93 -50 185 -74q94 -25 185 -25q174 0 263 88q90 88 90 248q0 87 -25 149t-68 103q-42 40 -108 64t-157 24q-37 0 -76.5 -4.5t-77.5 -13.5q-37 -9 -76 -24t-71 -32v750h756v-170h-572v-367q43 16 87 24 q41 7 88 7q121 0 213 -37t155 -100q68 -69 101.5 -162.5t33.5 -206.5q0 -118 -36 -213t-105 -162q-69 -66 -168.5 -100.5t-234.5 -34.5z" />
+<glyph unicode="6" d="M633 -29q-137 0 -228 48.5t-150 139.5q-63 98 -92.5 240t-29.5 325q0 206 36.5 353t108.5 245t177.5 148t242.5 50q41 0 79.5 -4t70.5 -11q40 -8 75.5 -20t67.5 -25v-186q-30 18 -65 33t-69 24q-35 10 -73 14.5t-73 4.5q-195 0 -293 -144q-99 -146 -99 -426 q48 100 133 154q45 28 94 40.5t109 12.5q100 0 183.5 -33t143.5 -99t89 -161t29 -213q0 -122 -30.5 -216.5t-90.5 -160.5t-146.5 -99.5t-199.5 -33.5zM633 129q65 0 115.5 22t84.5 67q68 89 68 261q0 173 -68 262q-35 46 -86 67t-113 21q-70 0 -121 -24.5t-85 -67.5 q-35 -44 -54.5 -108.5t-19.5 -149.5t19.5 -149.5t54.5 -108.5q34 -43 85 -67.5t120 -24.5z" />
+<glyph unicode="7" d="M854 1323h-715v170h940v-86l-534 -1407h-211z" />
+<glyph unicode="8" d="M615 -29q-116 0 -204.5 29.5t-150.5 83.5t-95.5 132.5t-33.5 183.5q0 159 80 260q79 100 229 133q-61 15 -113 46t-88 76q-38 47 -55.5 103t-17.5 119q0 85 30 155.5t91 123.5q59 51 140.5 77.5t188.5 26.5t189 -26.5t141 -77.5q60 -51 90.5 -121.5t30.5 -158.5 q0 -68 -18.5 -122t-53.5 -98t-85.5 -75t-116.5 -48q151 -33 230 -133t79 -258q0 -105 -33.5 -184.5t-95.5 -133.5q-63 -55 -153 -84t-205 -29zM616 868q121 0 186 63q64 63 64 183q0 121 -63 186q-64 64 -187 64q-121 0 -185 -64t-64 -186q0 -120 64 -183t185 -63zM619 129 q66 0 118 19t89 57t55 91.5t18 121.5q0 74 -19.5 127t-54.5 88q-75 76 -209 76q-135 0 -208 -75q-35 -36 -54.5 -89.5t-19.5 -123.5q0 -68 18.5 -122.5t55.5 -92.5q38 -39 91.5 -58t119.5 -19z" />
+<glyph unicode="9" d="M528 -29q-37 0 -75.5 3.5t-73.5 11.5q-32 7 -70 19t-73 26v186q32 -19 66.5 -33t67.5 -23q72 -20 147 -20q193 0 292 145q98 145 98 425q-23 -51 -58 -90t-74 -64q-83 -53 -206 -53q-100 0 -182 33.5t-141 99.5q-119 134 -119 373q0 118 29.5 214.5t92.5 164.5 q60 66 147 98.5t198 32.5q137 0 228 -48.5t150 -139.5q64 -100 93 -243t29 -323q0 -198 -34.5 -347t-109.5 -250q-74 -100 -181 -149t-241 -49zM593 662q70 0 121 24.5t85 67.5q35 44 54 108.5t19 149.5t-19 149.5t-54 108.5q-34 43 -85 67.5t-121 24.5q-62 0 -113 -21 t-86 -67q-68 -89 -68 -262t68 -262q34 -45 84.5 -66.5t114.5 -21.5z" />
+<glyph unicode=":" d="M620 776q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47zM620 60q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode=";" d="M610 703q-72 0 -120 50q-50 48 -50 128q0 78 50 128q48 49 120 49q73 0 121 -49q49 -49 49 -128q0 -80 -49 -128q-48 -50 -121 -50zM394 -361q256 114 265 351q-13 -3 -23 -4t-19 -1q-33 0 -63 10.5t-53 30.5q-46 43 -46 116q0 35 11.5 65.5t36.5 52.5q21 19 52.5 30.5 t69.5 11.5q89 0 139 -71q48 -71 48 -197q0 -180 -97 -310t-273 -194z" />
+<glyph unicode="&#x3c;" d="M88 559v166l1057 418v-182l-850 -320l850 -317v-183z" />
+<glyph unicode="=" d="M88 930h1057v-170h-1057v170zM88 524h1057v-172h-1057v172z" />
+<glyph unicode="&#x3e;" d="M88 324l850 317l-850 320v182l1057 -418v-166l-1057 -418v183z" />
+<glyph unicode="?" d="M494 583q0 78 30 146q17 36 44.5 72t70.5 79l90 89q29 29 51.5 55.5t33.5 47.5q24 43 24 94q0 47 -18 82.5t-47 60.5q-33 28 -76.5 41.5t-96.5 13.5q-82 0 -169 -34q-45 -17 -91.5 -43t-95.5 -60v188q48 29 96.5 50.5t93.5 34.5q46 14 94.5 21t100.5 7q100 0 175.5 -25.5 t126.5 -70.5q54 -48 81.5 -113.5t27.5 -140.5q0 -80 -34 -145q-36 -67 -127 -157l-88 -86q-70 -68 -88 -108q-19 -40 -19 -83v-127h-190v111zM593 -40q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31 q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43z" />
+<glyph unicode="@" d="M796 -319q-164 0 -308.5 57t-251.5 175q-101 112 -155 271t-54 363q0 188 46.5 345t140.5 272q96 118 224 174.5t271 56.5q114 0 199.5 -34t145.5 -98t92 -155.5t32 -202.5v-770h-144v111q-37 -62 -102 -97q-65 -34 -147 -34q-80 0 -148.5 31t-119.5 89q-48 54 -76.5 133 t-28.5 178q0 91 26 169t79 139q55 63 123.5 92t141.5 29q42 0 78.5 -9t70.5 -26q67 -35 103 -96v63q0 78 -22.5 142.5t-64.5 109.5q-42 46 -103.5 70t-141.5 24q-112 0 -209.5 -47.5t-170.5 -143.5q-71 -93 -108.5 -222.5t-37.5 -290.5q0 -170 42 -303.5t122 -227.5 q78 -93 189.5 -143.5t248.5 -50.5q29 0 56 2.5t54 7.5t54.5 12.5t56.5 18.5l48 -135q-34 -14 -64 -22.5t-60 -14.5q-31 -6 -60 -9t-67 -3zM803 260q52 0 96 20t76 58t47.5 91t15.5 116t-16 116.5t-48 91.5q-31 37 -75 56.5t-97 19.5q-105 0 -170 -77q-32 -38 -48.5 -89.5 t-16.5 -116.5q0 -66 16.5 -118.5t48.5 -90.5q65 -77 171 -77z" />
+<glyph unicode="A" d="M494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="B" d="M166 1493h442q228 0 353 -99q124 -99 124 -281q0 -70 -17 -123.5t-48 -91.5q-32 -38 -81 -63.5t-116 -35.5q148 -23 231 -125q41 -51 62 -117t21 -148q0 -202 -133 -305q-134 -104 -396 -104h-442v1493zM604 877q76 0 127.5 14t84.5 43q65 56 65 177q0 60 -16 100.5 t-48 65.5q-65 50 -213 50h-235v-450h235zM608 166q175 0 251 62q75 61 75 202q0 146 -79 215q-80 68 -247 68h-239v-547h239z" />
+<glyph unicode="C" d="M742 -29q-140 0 -252.5 50t-192.5 153q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247t192 153.5t252 50.5q48 0 92.5 -5.5t80.5 -14.5t79 -25.5t79 -36.5v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459 q0 -306 98 -458t295 -152q45 0 87.5 8t85.5 24q83 31 157 93v-207q-78 -41 -158 -62q-39 -10 -83.5 -15t-89.5 -5z" />
+<glyph unicode="D" d="M137 1493h303q342 0 504 -182t162 -566q0 -382 -162 -563q-162 -182 -504 -182h-303v1493zM436 166q255 0 356 126q51 63 76 175t25 280q0 165 -24.5 278.5t-75.5 176.5q-51 64 -141.5 94.5t-215.5 30.5h-96v-1161h96z" />
+<glyph unicode="E" d="M197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="F" d="M233 1493h879v-170h-676v-460h613v-170h-613v-693h-203v1493z" />
+<glyph unicode="G" d="M700 -29q-143 0 -253.5 52t-187.5 152q-78 102 -117.5 245t-39.5 324q0 186 41 329.5t119 243.5t189.5 151.5t251.5 51.5q100 0 184 -26q44 -14 85.5 -34.5t80.5 -46.5v-207q-43 41 -85.5 69t-80.5 45q-44 19 -90 27.5t-91 8.5q-97 0 -170 -37t-124 -115 q-50 -77 -74.5 -190.5t-24.5 -270.5q0 -158 24 -270.5t72 -187.5q94 -150 294 -150q32 0 61.5 4t55.5 12q24 8 47 19.5t44 28.5v401h-217v166h410v-643q-81 -75 -182 -113q-102 -39 -222 -39z" />
+<glyph unicode="H" d="M137 1493h203v-612h553v612h203v-1493h-203v711h-553v-711h-203v1493z" />
+<glyph unicode="I" d="M201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="J" d="M502 -29q-103 0 -195 22q-97 23 -198 68v236q91 -81 188 -121q99 -41 202 -41q67 0 118.5 18t80.5 57q56 74 56 277v836h-381v170h583v-1006q0 -144 -25.5 -240.5t-80.5 -157.5t-140.5 -89.5t-207.5 -28.5z" />
+<glyph unicode="K" d="M137 1493h203v-664l631 664h237l-581 -610l598 -883h-244l-487 748l-154 -164v-584h-203v1493z" />
+<glyph unicode="L" d="M215 1493h203v-1323h721v-170h-924v1493z" />
+<glyph unicode="M" d="M86 1493h270l258 -760l260 760h271v-1493h-187v1319l-266 -787h-153l-267 787v-1319h-186v1493z" />
+<glyph unicode="N" d="M139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
+<glyph unicode="O" d="M616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141 q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="P" d="M172 1493h436q249 0 379 -113q67 -59 98 -143.5t31 -190.5q0 -220 -128 -333q-63 -56 -158 -84.5t-222 -28.5h-234v-600h-202v1493zM608 766q75 0 129 20t90 54q78 73 78 207q0 133 -78 207q-77 73 -219 73h-234v-561h234z" />
+<glyph unicode="Q" d="M655 -27h-8.5t-11.5 -1t-11.5 -1h-6.5q-125 0 -218.5 46t-157.5 146t-94 245t-30 337q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -293 -68 -473q-33 -88 -85 -152t-123 -100l285 -290h-236zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="R" d="M143 1493h416q246 0 377 -111q66 -56 98.5 -136t32.5 -181q0 -79 -20 -138.5t-60 -106.5q-80 -94 -227 -115q40 -10 74 -29.5t59 -45.5q28 -29 60.5 -81.5t76.5 -140.5l203 -408h-217l-178 377q-39 83 -73.5 134t-64.5 74q-31 24 -72.5 35t-88.5 11h-193v-631h-203v1493z M567 797q145 0 216 65q35 32 53 82t18 115t-18.5 115t-56.5 85q-36 32 -90.5 50t-129.5 18h-213v-530h221z" />
+<glyph unicode="S" d="M584 -29q-53 0 -107 5.5t-106 16.5t-107 29t-106 39v215q58 -37 112 -63.5t106 -43.5q102 -34 205 -34q75 0 135.5 17t103.5 51q44 35 64.5 84t20.5 113q0 56 -14.5 96t-43.5 69q-32 33 -80.5 54t-123.5 38l-108 25q-101 23 -176.5 57t-125.5 85q-94 94 -94 255 q0 102 35 183t100 139q64 57 153.5 88t203.5 31q43 0 88 -4.5t93 -14.5q93 -19 200 -59v-205q-48 31 -93.5 52.5t-90.5 36.5q-93 30 -186 30q-68 0 -127 -16t-101 -50t-62 -81t-20 -104q0 -51 14.5 -85.5t40.5 -59.5q31 -29 79.5 -50t123.5 -38l106 -24q106 -24 181 -62.5 t124 -91.5q97 -104 97 -284q0 -114 -35 -194.5t-96 -132.5q-66 -56 -162.5 -84t-220.5 -28z" />
+<glyph unicode="T" d="M516 1323h-469v170h1139v-170h-467v-1323h-203v1323z" />
+<glyph unicode="U" d="M616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154 v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="V" d="M57 1493h209l350 -1323l351 1323h209l-437 -1493h-245z" />
+<glyph unicode="W" d="M0 1493h197l143 -1212l170 802h211l172 -804l143 1214h197l-223 -1493h-191l-203 887l-202 -887h-191z" />
+<glyph unicode="X" d="M518 791l-432 702h217l328 -563l334 563h217l-447 -702l479 -791h-217l-366 643l-395 -643h-218z" />
+<glyph unicode="Y" d="M514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="Z" d="M110 154l759 1169h-737v170h969v-154l-780 -1169h802v-170h-1013v154z" />
+<glyph unicode="[" d="M423 1636h424v-143h-240v-1620h240v-143h-424v1906z" />
+<glyph unicode="\" d="M102 1493h191l786 -1683h-190z" />
+<glyph unicode="]" d="M386 -127h240v1619h-240v143h424v-1905h-424v143z" />
+<glyph unicode="^" d="M528 1493h177l456 -557h-178l-367 395l-366 -395h-178z" />
+<glyph unicode="_" d="M94 -190h1044v-120h-1044v120z" />
+<glyph unicode="`" d="M604 1262l-325 376h198l281 -376h-154z" />
+<glyph unicode="a" d="M513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5 q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106 q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="b" d="M676 -29q-51 0 -93 10.5t-83 33.5q-77 44 -123 126l-18 -141h-166v1556h184v-579q43 82 122 126q77 44 181 44q96 0 176.5 -38t139.5 -116q58 -78 87 -187t29 -245q0 -274 -116 -432q-57 -78 -137 -118t-183 -40zM650 127q133 0 200 109q68 110 68 323t-68 323 q-67 109 -201 109t-203 -109q-69 -110 -69 -323t69 -322q69 -110 204 -110z" />
+<glyph unicode="c" d="M712 -29q-125 0 -227.5 39.5t-174.5 116.5q-73 78 -109.5 186.5t-36.5 245.5q0 143 38.5 251t108.5 182q74 78 175.5 116.5t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178 t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-35 -10 -76.5 -15.5t-89.5 -5.5z" />
+<glyph unicode="d" d="M559 -29q-106 0 -186 42t-134 116q-58 79 -87 188.5t-29 244.5q0 133 28.5 242.5t87.5 187.5t141 116.5t179 38.5q102 0 178 -43q77 -44 121 -127v579h184v-1556h-166l-18 141q-23 -40 -52 -71.5t-70 -54.5q-76 -44 -177 -44zM585 127q135 0 204 110q69 109 69 322 t-69 323q-32 51 -82 80t-121 29q-134 0 -201 -109q-68 -110 -68 -323t68 -323q35 -57 86 -83t114 -26z" />
+<glyph unicode="e" d="M677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183 q-53 -22 -103 -38t-99 -27q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="f" d="M466 977h-299v143h299v78q0 185 85 271q84 87 263 87h221v-153h-209q-54 0 -86.5 -10.5t-50.5 -29.5q-39 -41 -39 -144v-99h385v-143h-385v-977h-184v977z" />
+<glyph unicode="g" d="M601 -440q-39 0 -78 3.5t-81 10.5q-41 7 -81.5 17t-84.5 24v182q49 -23 94.5 -40t83.5 -28q78 -22 151 -22q74 0 126 20t87 62q68 80 68 256v133q-43 -93 -120 -140q-76 -46 -184 -46q-197 0 -314 157t-117 420t117 421q59 79 136.5 118t178.5 39q52 0 97.5 -10.5 t83.5 -32.5q76 -44 122 -133l18 145h166v-1044q0 -251 -119 -382q-118 -130 -350 -130zM622 145q130 0 197 109t67 315q0 208 -67 315q-35 57 -85.5 82t-112.5 25q-134 0 -205 -107t-71 -316q0 -205 72 -314t205 -109z" />
+<glyph unicode="h" d="M195 1556h184v-604q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1556z" />
+<glyph unicode="i" d="M523 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="j" d="M652 1323q-30 0 -30 30v173q0 30 30 30h144q30 0 30 -30v-173q0 -30 -30 -30h-144zM238 -270h234q90 0 135 62q45 63 45 188v997h-317v143h501v-1140q0 -95 -22 -171t-67 -130t-109.5 -79.5t-145.5 -25.5h-254v156z" />
+<glyph unicode="k" d="M226 1556h190v-901l483 465h224l-441 -422l510 -698h-225l-414 578l-137 -129v-449h-190v1556z" />
+<glyph unicode="l" d="M821 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v1014h-295v144h479v-1158q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233v0z" />
+<glyph unicode="m" d="M109 1120h151l16 -96q33 60 83 92q49 31 113 31q74 0 126 -35q49 -34 78 -106q35 73 87 107t126 34q69 0 117 -26.5t74 -77.5q55 -104 55 -394v-649h-168v641q0 64 -1.5 112t-5 83.5t-8.5 60t-12 39.5q-11 26 -34 41.5t-65 15.5q-38 0 -64 -14.5t-41 -46.5 q-17 -35 -24 -103.5t-7 -187.5v-641h-168v641q0 73 -2 123.5t-6 84.5t-9.5 54.5t-11.5 33.5q-13 26 -37.5 41t-63.5 15q-42 0 -65.5 -16.5t-35.5 -43.5q-7 -15 -12.5 -38t-9.5 -57.5t-6 -82.5t-2 -114v-641h-167v1120z" />
+<glyph unicode="n" d="M195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
+<glyph unicode="o" d="M616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323 q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="p" d="M190 1120h167l18 -143q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1546zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
+<glyph unicode="q" d="M870 139q-22 -40 -51 -72t-70 -55q-77 -45 -180 -45q-95 0 -175.5 38t-140.5 118q-53 71 -84.5 176t-31.5 252q0 134 28.5 245t87.5 191q58 78 138 117t179 39q102 0 178 -43q38 -22 68.5 -53.5t53.5 -73.5l18 143h167v-1546h-185v569zM599 123q66 0 117 27t86 83 q68 110 68 322q0 213 -68 323q-35 56 -85.5 82.5t-116.5 26.5q-133 0 -200 -109q-68 -110 -68 -323t68 -323q67 -109 199 -109z" />
+<glyph unicode="r" d="M302 1120h167l18 -219q47 119 142 183q94 63 225 63q68 0 128 -17q29 -8 58 -21.5t55 -31.5v-188q-57 46 -120 67q-62 21 -135 21q-171 0 -262 -108q-91 -107 -91 -312v-557h-185v1120z" />
+<glyph unicode="s" d="M590 -29q-44 0 -90.5 4.5t-89.5 12.5q-39 8 -91.5 22t-105.5 31v190q64 -32 109 -49.5t88 -29.5q46 -13 89 -20t89 -7q121 0 189 50q35 26 51 61t16 71q0 70 -59 113.5t-186 69.5l-8 2l-69 14q-75 15 -133.5 40t-98.5 65q-73 73 -73 201q0 81 27.5 143t81.5 105 q57 46 136 66.5t177 20.5q43 0 86 -4t85 -12q38 -8 79.5 -20.5t83.5 -29.5v-180q-80 46 -159 69q-40 11 -80.5 17t-86.5 6q-58 0 -104.5 -10t-77.5 -30q-62 -41 -62 -125q0 -35 11.5 -64t34.5 -47t76.5 -35.5t152.5 -36.5l74 -14q72 -14 123 -40t85 -64q70 -77 70 -204 q0 -86 -30.5 -149.5t-87.5 -108.5q-61 -48 -142.5 -71t-179.5 -23z" />
+<glyph unicode="t" d="M807 -4q-206 0 -292 83q-85 82 -85 286v612h-299v143h299v293l184 80v-373h418v-143h-418v-612q0 -123 47 -173q46 -49 164 -49h207v-147h-225v0z" />
+<glyph unicode="u" d="M534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="v" d="M100 1120h191l325 -940l326 940h191l-398 -1120h-237z" />
+<glyph unicode="w" d="M0 1120h182l195 -905l160 578h157l162 -578l195 905h182l-262 -1120h-176l-179 614l-178 -614h-176z" />
+<glyph unicode="x" d="M516 584l-401 536h204l297 -405l295 405h207l-401 -536l440 -584h-213l-328 449l-327 -449h-213z" />
+<glyph unicode="y" d="M184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5 q-69 -39 -161 -39h-148v154z" />
+<glyph unicode="z" d="M203 170l643 805h-619v147h813v-168l-643 -804h643v-150h-837v170z" />
+<glyph unicode="{" d="M908 -253q-248 0 -333 74q-85 73 -85 295v239q0 150 -53 209q-54 58 -194 58h-116v143h116q141 0 194 57q53 58 53 207v240q0 222 85 295q83 73 333 73h64v-143h-70q-140 0 -182 -43q-43 -43 -43 -186v-248q0 -158 -45 -228q-22 -34 -61 -58.5t-95 -37.5q111 -27 156 -98 t45 -227v-248q0 -143 43 -186q42 -43 182 -43h70v-144h-64v0z" />
+<glyph unicode="|" d="M530 1565h172v-2048h-172v2048z" />
+<glyph unicode="}" d="M261 -118h68q140 0 184 44q43 43 43 185v248q0 156 45 227t156 98q-110 26 -155 96q-22 34 -34 88.5t-12 139.5v248q0 142 -43 185q-44 44 -184 44h-68v143h62q250 0 333 -73q84 -74 84 -295v-240q0 -78 21 -127.5t63 -79.5q40 -29 97.5 -43t126.5 -14h64v-143h-64 q-71 0 -128 -14.5t-96 -43.5q-42 -31 -63 -81t-21 -128v-239q0 -222 -84 -295q-85 -74 -333 -74h-62v144z" />
+<glyph unicode="~" d="M1151 840q-4 -112 -17.5 -194t-50.5 -147q-72 -145 -237 -145q-79 0 -137 34q-52 33 -126 134q-78 108 -115 137q-40 29 -77 29q-77 0 -109 -72q-35 -84 -42 -255h-156q5 208 68 340q82 143 234 143q73 0 132 -35q30 -18 64.5 -51.5t66.5 -78.5q54 -74 105 -125 q21 -22 42 -33t46 -11q80 0 115.5 81.5t37.5 248.5h156z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa1;" d="M626 1498q69 0 116 -48q23 -23 34.5 -53t11.5 -72q0 -78 -46 -124q-47 -47 -116 -47t-116 47q-46 47 -46 124q0 78 46 125q46 48 116 48zM689 952l67 -567v-445h-265v445l77 567h121z" />
+<glyph unicode="&#xa2;" d="M698 -27q-112 11 -200 54.5t-154 124.5q-63 77 -98.5 181.5t-35.5 224.5q0 122 36.5 227.5t98.5 181.5q61 75 148 121t205 57v287h103v-287q29 -2 61 -7t61 -13t65.5 -20t72.5 -28v-172q-30 18 -65 34.5t-67 27.5q-35 12 -66 18t-62 8v-870q32 2 64 9.5t65 18.5 q31 11 65 26.5t66 35.5v-172q-46 -20 -76.5 -30t-61.5 -18q-65 -17 -122 -20v-286h-103v286zM698 991q-133 -12 -212 -130q-80 -119 -80 -302t80 -301q41 -60 93.5 -92t118.5 -39v864z" />
+<glyph unicode="&#xa3;" d="M139 170h236v465h-199v143h199v238q0 254 110 379q55 63 137.5 94t187.5 31q36 0 72.5 -3.5t68.5 -10.5q24 -5 62.5 -16.5t78.5 -27.5v-184q-34 24 -66.5 40.5t-58.5 25.5q-63 22 -130 22q-135 0 -198 -89q-64 -89 -64 -282v-217h371v-143h-371v-465h537v-170h-973v170z " />
+<glyph unicode="&#xa4;" d="M205 285l166 166q-19 31 -28 52.5t-17 45.5t-11.5 45.5t-3.5 47.5q0 28 4 50.5t12 45.5q16 48 46 91l-168 166l94 95l166 -168q46 31 92 46q45 15 94 15q23 0 48 -3.5t47 -10.5t48 -19t50 -26l166 166l90 -93l-166 -166q15 -25 27.5 -51t17.5 -44q7 -22 10.5 -47.5 t3.5 -48.5q0 -49 -15 -94q-15 -47 -46 -91l168 -166l-94 -94l-166 167q-46 -31 -91 -46q-47 -15 -97 -15q-26 0 -47.5 3.5t-47.5 11.5t-46.5 16.5t-49.5 25.5l-164 -163zM653 426q44 0 83 15.5t70 46.5q30 31 46 70.5t16 84.5t-16 84t-45 68q-30 30 -69.5 45.5t-84.5 15.5 q-43 0 -82 -15t-70 -45q-29 -28 -46 -67t-17 -87q0 -89 62 -153q30 -30 68.5 -46.5t84.5 -16.5z" />
+<glyph unicode="&#xa5;" d="M514 524h-399v111h399v35l-90 151h-309v111h243l-321 561h215l364 -659l363 659h217l-330 -561h252v-111h-315l-86 -151v-35h401v-111h-401v-524h-203v524z" />
+<glyph unicode="&#xa6;" d="M530 1432h172v-758h-172v758zM530 408h172v-758h-172v758z" />
+<glyph unicode="&#xa7;" d="M595 -195q-39 0 -79 4t-72 10q-36 7 -78.5 18.5t-86.5 25.5v164q89 -40 161 -59t133 -19q101 0 157 42q28 21 42 50.5t14 61.5q0 30 -13 57.5t-40 55t-69 56.5t-99 62l-24 14q-100 58 -168 103t-110 94q-64 76 -64 179q0 89 47 162q46 71 137 120q-60 43 -89 100 q-30 57 -30 124q0 66 25.5 120t74.5 92q52 41 121 59.5t144 18.5q38 0 78.5 -4t72.5 -10q35 -7 75.5 -18.5t80.5 -25.5v-164q-84 40 -154 59t-131 19q-51 0 -87 -10.5t-61 -29.5q-27 -20 -40.5 -48.5t-13.5 -55.5q0 -49 47.5 -99.5t156.5 -112.5l41 -23q60 -33 104.5 -61 t77 -51.5t55.5 -44t39 -39.5q33 -38 49.5 -81.5t16.5 -97.5q0 -89 -45 -159q-46 -70 -139 -123q62 -53 90 -106q14 -26 21.5 -55.5t7.5 -67.5q0 -67 -25.5 -123.5t-76.5 -98.5q-102 -84 -274 -84zM750 410q62 46 92 90q30 45 30 92q0 41 -19.5 78t-51.5 66q-74 69 -316 200 q-32 -24 -54 -45.5t-38 -44.5q-14 -21 -22.5 -43t-8.5 -50q0 -39 18 -73.5t54 -68.5q19 -18 46 -38.5t64.5 -44.5t88 -53t117.5 -65z" />
+<glyph unicode="&#xa8;" d="M492 1552q30 0 30 -30v-142q0 -30 -30 -30h-143q-30 0 -30 30v142q0 30 30 30h143zM883 1552q30 0 30 -30v-142q0 -30 -30 -30h-142q-30 0 -30 30v142q0 30 30 30h142z" />
+<glyph unicode="&#xa9;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM638 369q-92 0 -163.5 26t-121.5 74t-76.5 117t-26.5 155q0 85 26.5 155t77.5 120 q50 48 122 74t162 26q30 0 59 -3t58 -8q28 -5 53.5 -13t55.5 -21v-108q-59 29 -113 42q-28 7 -56.5 10t-53.5 3q-57 0 -105 -17.5t-83 -55.5q-32 -35 -50 -87.5t-18 -118.5q0 -63 17.5 -114.5t52.5 -86.5t84.5 -53t117.5 -18q31 0 56 3.5t50 9.5t51 15.5t50 22.5v-104 q-26 -11 -53 -20t-56 -14t-57.5 -8t-59.5 -3z" />
+<glyph unicode="&#xaa;" d="M547 698q-126 0 -202 68q-75 67 -75 183q0 129 93 200q94 70 266 70h182v4q0 44 -14 78t-46 58q-35 26 -79 36t-89 10q-33 0 -62.5 -4.5t-58.5 -12.5q-62 -18 -130 -51v127q34 14 69.5 25t66.5 17q34 7 65.5 10.5t69.5 3.5q177 0 264 -86q44 -43 65.5 -109t21.5 -160 v-448h-129l-14 112q-50 -65 -114 -98q-33 -17 -69.5 -25t-80.5 -8zM576 817q54 0 96 18.5t74 53.5q65 71 65 186v29h-127q-145 0 -206 -34q-62 -35 -62 -112q0 -36 12 -60.5t32 -41.5q43 -39 116 -39zM293 592h668v-123h-668v123z" />
+<glyph unicode="&#xab;" d="M79 559v82l469 418v-191l-301 -268l301 -268v-191zM533 559v82l469 418v-191l-301 -268l301 -268v-191z" />
+<glyph unicode="&#xac;" d="M977 690h-889v172h1057v-491h-168v319z" />
+<glyph unicode="&#xad;" d="M356 643h521v-164h-521v164z" />
+<glyph unicode="&#xae;" d="M616 125q-66 0 -123 11.5t-111 34.5t-105 57t-96 79q-44 44 -78 94.5t-57 105.5q-23 54 -34.5 111t-11.5 123q0 128 46 236q23 54 57 104.5t79 96.5q43 44 92.5 78t106.5 57q109 45 235 45t236 -45q57 -23 107 -57.5t92 -77.5q49 -50 82.5 -101.5t53.5 -99.5 q46 -108 46 -235q0 -128 -45 -234q-22 -52 -56.5 -104t-79.5 -97q-42 -42 -93 -77t-108 -59q-108 -46 -235 -46zM617 227q104 0 195 38q47 20 89.5 49t77.5 64q34 34 64.5 78t49.5 90q37 89 37 195q0 54 -9.5 103t-28.5 95q-38 92 -113 167q-74 74 -165 112q-90 37 -198 37 q-107 0 -196 -37q-92 -38 -166 -112q-76 -76 -113 -167q-39 -93 -39 -197q0 -54 9.5 -101.5t29.5 -94.5q24 -57 54 -97.5t59 -69.5q38 -38 78.5 -66t88.5 -48q45 -19 93.5 -28.5t102.5 -9.5zM362 1100h238q148 0 219 -49q72 -50 72 -148q0 -38 -11 -67t-33 -52 q-44 -47 -124 -61q10 -2 22 -12t26 -26q6 -8 15 -19t18 -24l18 -26t16 -24l114 -186h-143l-107 174q-24 39 -44.5 65t-34.5 36q-29 21 -76 21h-55v-296h-130v694zM594 784q89 0 127 27q37 27 37 89q0 29 -8.5 52.5t-28.5 37.5q-38 26 -127 26h-102v-232h102z" />
+<glyph unicode="&#xaf;" d="M915 1378h-598v148h598v-148z" />
+<glyph unicode="&#xb0;" d="M612 885q-63 0 -121 22.5t-103 67.5q-40 40 -64.5 97t-24.5 127q0 67 23.5 125t67.5 103q43 44 100.5 68.5t124.5 24.5q30 0 62.5 -5.5t62.5 -18.5q29 -12 56 -31.5t47 -39.5q24 -25 41.5 -53t26.5 -50q23 -55 23 -120q0 -66 -24 -124.5t-68 -101.5q-43 -42 -102.5 -66.5 t-127.5 -24.5zM614 1012q41 0 77 15t61 40q29 29 42 64t13 70q0 38 -14.5 73t-41.5 62q-23 23 -58 39t-77 16q-40 0 -74.5 -14.5t-59.5 -39.5q-27 -27 -41.5 -63t-14.5 -75q0 -41 14.5 -74.5t40.5 -59.5q27 -26 61 -39.5t72 -13.5z" />
+<glyph unicode="&#xb1;" d="M532 672h-444v170h444v329h168v-329h445v-170h-445v-332h-168v332zM88 170h1057v-170h-1057v170z" />
+<glyph unicode="&#xb2;" d="M322 1230l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5 l-211 -205h410v-114h-571v110z" />
+<glyph unicode="&#xb3;" d="M562 1109q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5z" />
+<glyph unicode="&#xb4;" d="M629 1262h-154l281 376h198z" />
+<glyph unicode="&#xb5;" d="M165 1120h184v-696q0 -78 16 -130t44 -87q60 -76 173 -76q62 0 110 21t80 64q64 85 64 251v653h185v-864q0 -59 16 -87q8 -14 20 -21t26 -7q12 0 27 5q13 4 42 18v-148q-19 -11 -37.5 -20t-34.5 -14q-36 -11 -68 -11q-62 0 -99 40q-38 40 -50 118q-47 -81 -112 -119 q-66 -39 -157 -39q-90 0 -154 38t-108 118v-555h-167v1548z" />
+<glyph unicode="&#xb6;" d="M557 649q-214 16 -333 128q-57 54 -87.5 125.5t-30.5 167.5q0 191 131 307t345 116h448v-1690h-141v1567h-191v-1567h-141v846z" />
+<glyph unicode="&#xb7;" d="M616 576q-68 0 -115 47t-47 122t47 122t115 47t115 -47t47 -122t-47 -122t-115 -47z" />
+<glyph unicode="&#xb8;" d="M700 0q55 -61 83 -115q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-23 43 -66 105h118v0z" />
+<glyph unicode="&#xb9;" d="M362 1230h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110z" />
+<glyph unicode="&#xba;" d="M616 698q-94 0 -160 31t-111 80q-47 51 -74 126t-27 173q0 92 25 167.5t76 132.5q47 52 114 82t158 30q90 0 157.5 -30t114.5 -83q100 -112 100 -299q0 -186 -100 -298q-47 -52 -114.5 -82t-158.5 -30zM616 815q49 0 90 19.5t70 58.5q27 36 42.5 90t15.5 127 q0 137 -57 215q-27 37 -66.5 57.5t-93.5 20.5q-103 0 -160 -77q-58 -79 -58 -218q0 -69 14.5 -123.5t43.5 -93.5q58 -76 159 -76zM276 592h676v-123h-676v123z" />
+<glyph unicode="&#xbb;" d="M231 332l301 268l-301 268v191l469 -418v-82l-469 -418v191zM685 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
+<glyph unicode="&#xbc;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
+<glyph unicode="&#xbd;" d="M104 934h205v611l-223 -41v116l229 39h138v-725h204v-110h-553v110zM27 612l1060 262l27 -108l-1063 -262zM523 -160l231 226q31 30 53.5 53t38.5 41.5t28 33.5t22 30q40 61 40 113q0 60 -50 98t-130 38q-52 0 -107 -18q-57 -18 -120 -54v125q67 29 126 42q30 7 60 10.5 t62 3.5q139 0 225 -66q44 -34 65 -78t21 -94q0 -35 -10 -62.5t-27 -54.5q-23 -35 -61 -78.5t-95 -99.5l-211 -205h410v-114h-571v110z" />
+<glyph unicode="&#xbe;" d="M335 809q-35 0 -63 3t-57 8q-32 6 -59 13t-57 17v121q35 -14 66 -23.5t60 -16.5q53 -13 104 -13q47 0 87.5 10.5t70.5 30.5q26 18 42 46t16 66q0 35 -14.5 62.5t-40.5 45.5q-56 38 -164 38h-66v108h74q92 0 142 32q49 31 49 90q0 58 -48 89q-24 16 -58 23.5t-74 7.5 q-26 0 -50.5 -3t-52.5 -9q-55 -12 -115 -35v121q35 8 67 14.5t61 11.5q58 9 110 9q142 0 227 -59q84 -59 84 -157q0 -71 -44 -118q-43 -46 -128 -66q94 -21 144 -75q49 -53 49 -136q0 -121 -95 -189q-48 -34 -116 -50.5t-151 -16.5zM27 612l1060 262l27 -108l-1063 -262z M839 -84h-387v121l363 528h162v-538h116v-111h-116v-186h-138v186zM839 27v413l-274 -413h274z" />
+<glyph unicode="&#xbf;" d="M656 1252q-62 0 -104 42q-22 22 -32.5 50.5t-10.5 60.5t10.5 60t31.5 49q17 17 43.5 29.5t60.5 12.5q32 0 58 -11t46 -31q42 -42 42 -109q0 -68 -42 -110q-43 -43 -103 -43zM602 -27q-188 0 -298 95q-54 47 -82.5 112t-28.5 144q0 42 8.5 76.5t25.5 67.5t47.5 71t79.5 86 l88 86q30 29 52.5 55t33.5 51q19 41 19 105v5q1 11 1.5 21.5t0.5 20.5v123h190v-154q0 -99 -30 -166q-30 -68 -115 -151l-90 -89q-20 -20 -46 -48t-40 -55q-13 -24 -18 -50.5t-5 -46.5q0 -43 18 -79.5t47 -60.5q33 -28 77.5 -41.5t95.5 -13.5q42 0 83 9t86 26q91 35 187 102 v-188q-50 -30 -98 -51t-91 -34q-48 -14 -98.5 -21t-99.5 -7z" />
+<glyph unicode="&#xc0;" d="M358 1849h184l197 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc1;" d="M691 1856h186l-229 -264h-154zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc2;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc3;" d="M287 1587q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc4;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM494 1493h245l457 -1493h-209l-110 389h-523l-108 -389h-209zM829 551l-213 764l-213 -764h426z" />
+<glyph unicode="&#xc5;" d="M465 1399q-30 17 -52.5 41t-37.5 52q-17 31 -25 64.5t-8 68.5q0 59 21.5 109.5t58.5 87.5t87 58t107 21q58 0 108.5 -21.5t87.5 -58.5q35 -35 57 -85t22 -111q0 -72 -32 -131q-31 -58 -91 -95l428 -1399h-209l-110 389h-523l-108 -389h-209zM616 1475q34 0 61 12t47 32 q44 44 44 107q0 34 -12 61t-32 47q-23 23 -51.5 33.5t-57.5 10.5q-63 0 -106 -43q-44 -44 -44 -109q0 -63 44 -107t107 -44zM829 551l-213 760l-213 -760h426z" />
+<glyph unicode="&#xc6;" d="M410 1493h751v-170h-338v-442h307v-170h-307v-541h357v-170h-543v383h-352l-101 -383h-184zM637 551v772h-107l-202 -772h309z" />
+<glyph unicode="&#xc7;" d="M741 1356q-97 0 -170.5 -38t-122.5 -114q-98 -152 -98 -459q0 -306 98 -458q47 -72 119.5 -112t174.5 -40q89 0 174 32q83 31 157 93v-207q-78 -41 -158 -62q-22 -5 -45.5 -9.5t-47.5 -6.5q41 -50 61 -90q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74t-45 -57 q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-129 8 -230.5 59t-173.5 143q-79 102 -118.5 245.5t-39.5 324.5t39.5 325t119.5 247q78 100 189.5 152t254.5 52 q45 0 89.5 -5t83.5 -15q38 -10 79 -26t79 -36v-207q-73 61 -159 93q-43 16 -85.5 24t-87.5 8z" />
+<glyph unicode="&#xc8;" d="M395 1856h184l197 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xc9;" d="M690 1856h186l-229 -264h-154zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xca;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xcb;" d="M367 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM759 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM197 1493h886v-170h-684v-442h654v-170h-654v-541h703v-170h-905v1493z" />
+<glyph unicode="&#xcc;" d="M372 1856h184l197 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xcd;" d="M691 1856h186l-229 -264h-154zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xce;" d="M521 1852h189l211 -266h-140l-166 178l-165 -178h-140zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xcf;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM201 170h313v1153h-313v170h829v-170h-313v-1153h313v-170h-829v170z" />
+<glyph unicode="&#xd0;" d="M133 709h-125v149h125v635h303q342 0 504 -182t162 -565t-162 -564q-83 -93 -209.5 -137.5t-294.5 -44.5h-303v709zM436 166q69 0 124 8.5t98 24.5t75.5 39.5t57.5 54.5q52 65 77 175t25 280q0 87 -6.5 157t-19 125t-31.5 96.5t-44 73.5q-53 67 -139.5 97t-216.5 30h-96 v-469h264v-149h-264v-543h96z" />
+<glyph unicode="&#xd1;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM139 1493h256l504 -1229v1229h195v-1493h-256l-504 1229v-1229h-195v1493z" />
+<glyph unicode="&#xd2;" d="M382 1856h184l197 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd3;" d="M701 1856h186l-229 -264h-154zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470 q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd4;" d="M540 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141 q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd5;" d="M287 1633q0 48 12 88t40 72q51 59 137 59q32 0 66 -8q15 -4 34 -12.5t45 -22.5l57 -30q21 -13 40 -19q16 -6 32 -6q31 0 51 26t20 66v6h125q-1 -99 -53 -159q-51 -60 -136 -60q-31 0 -63 8q-14 4 -32.5 11.5t-49.5 23.5l-57 33q-23 13 -41 20q-8 3 -16 4t-13 1 q-15 0 -29 -6t-24 -19q-20 -26 -20 -70v-6h-125zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469 q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd6;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-253 0 -376 191q-123 190 -123 583q0 392 124 583q62 96 154.5 144t220.5 48q123 0 218 -46 t159 -146q123 -192 123 -583q0 -390 -123 -582q-64 -100 -159 -146t-218 -46zM616 135q154 0 222 141q67 138 67 469q0 330 -67 470q-68 141 -222 141q-153 0 -220 -141q-68 -142 -68 -470q0 -327 68 -469q67 -141 220 -141z" />
+<glyph unicode="&#xd7;" d="M150 293l350 348l-350 350l116 117l350 -350l351 350l116 -117l-350 -350l348 -348l-116 -119l-349 350l-348 -350z" />
+<glyph unicode="&#xd8;" d="M8 0l178 252q-17 39 -28.5 87t-21.5 117q-9 63 -14 131.5t-5 152.5q0 203 30.5 347t93.5 241q64 99 157 145.5t217 46.5q60 0 109.5 -10.5t93.5 -30.5q85 -40 143 -121l139 201l100 -74l-168 -238q21 -41 36.5 -95t26.5 -115q10 -58 15.5 -132.5t5.5 -160.5 q0 -389 -123 -581q-60 -94 -153.5 -143t-227.5 -49q-57 0 -108 9.5t-99 31.5q-90 40 -151 121l-143 -203zM842 1190q-13 42 -34.5 73t-47.5 51q-29 22 -66 32t-79 10q-84 0 -136.5 -38t-84.5 -110q-17 -38 -29.5 -87t-20.5 -112.5t-12 -143.5t-4 -179v-39t0.5 -32t1 -29 t1.5 -30q1 -14 1.5 -32t5.5 -53zM617 135q82 0 135.5 37t85.5 105q16 33 28.5 76.5t21 101t13 130t4.5 163.5q0 52 -1.5 96.5t-3.5 78.5q-2 33 -5.5 60t-9.5 53l-514 -733q30 -78 96 -123q34 -23 71 -34t79 -11z" />
+<glyph unicode="&#xd9;" d="M377 1852h184l197 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xda;" d="M672 1856h186l-229 -264h-154zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89 q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xdb;" d="M522 1852h189l211 -266h-140l-166 178l-165 -178h-140zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30 q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xdc;" d="M349 1647q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1647q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM616 -29q-54 0 -100.5 7.5t-88.5 21.5q-39 14 -80.5 36.5t-73.5 51.5q-31 28 -55 66t-41 95 q-8 25 -13.5 56t-9 70t-5.5 87.5t-2 110.5v920h203v-1012q0 -109 6 -155q6 -47 21 -72q32 -59 93 -89q60 -30 146 -30q87 0 147 30q62 31 93 89q8 15 13 31t8 40q6 46 6 154v1014h202v-920q0 -66 -2 -116.5t-5.5 -89t-9 -67.5t-11.5 -51q-14 -50 -39 -90t-59 -71 q-33 -30 -73.5 -52t-79.5 -36q-37 -13 -84 -21t-106 -8z" />
+<glyph unicode="&#xdd;" d="M672 1852h186l-229 -264h-154zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="&#xde;" d="M201 1493h202v-270h254q259 0 384 -105q124 -105 124 -324q0 -112 -31.5 -191.5t-92.5 -130.5q-125 -105 -384 -105h-254v-367h-202v1493zM637 532q157 0 237 66q78 66 78 197q0 63 -19 113.5t-59 83.5q-36 30 -95 47.5t-142 17.5h-234v-525h234z" />
+<glyph unicode="&#xdf;" d="M731 -29q-34 0 -70 3t-68 9q-23 5 -60 14t-74 23v164q75 -31 143 -46q66 -15 126 -15q55 0 97.5 12.5t73.5 35.5q35 26 49.5 60t14.5 79q0 32 -7.5 57.5t-26.5 51.5q-25 35 -63.5 64t-87.5 58l-67 39q-47 27 -81 59t-56 64q-23 34 -34.5 68.5t-11.5 79.5q0 60 20 114 t61 97q39 42 97.5 72t139.5 48q-2 107 -62 164q-62 57 -174 57q-121 0 -178 -65q-57 -66 -57 -205v-1133h-187v1137q0 212 105 316q53 52 133.5 77.5t183.5 25.5q209 0 313 -110q106 -112 107 -327q-154 -13 -239 -76q-84 -62 -84 -160q0 -28 7 -48.5t21 -40.5 q17 -24 40 -42.5t54 -38.5l58 -37q79 -50 128.5 -90.5t78.5 -84.5q28 -42 41.5 -91.5t13.5 -103.5q0 -74 -26 -137t-86 -110q-55 -43 -133 -65.5t-173 -22.5z" />
+<glyph unicode="&#xe0;" d="M282 1673h198l281 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe1;" d="M759 1673h198l-325 -376h-154zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5 q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5 t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe2;" d="M546 1673h147l246 -376h-139l-181 245l-180 -245h-139zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe3;" d="M290 1339q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19 q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62 q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe4;" d="M352 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM744 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5q0 185 126 283q124 97 368 97h247v29 q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102t6 -82q5 -42 11.5 -79t11.5 -56 q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5 t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe5;" d="M619 1249q-114 0 -194 80t-80 195t80 195q79 79 194 79q117 0 196 -79t79 -195t-79 -195q-80 -80 -196 -80zM619 1372q64 0 108 44t44 108q0 63 -44 107t-109 44q-63 0 -106 -43q-44 -44 -44 -108t44 -108t107 -44zM513 -29q-174 0 -275 97q-48 46 -75 108.5t-27 150.5 q0 185 126 283q124 97 368 97h247v29q0 64 -17 114t-51 81q-33 30 -87 45t-126 15q-95 0 -191 -27q-97 -27 -187 -79v184q42 16 93 32t103 27q91 19 183 19q71 0 129 -10.5t108 -31.5q46 -20 87.5 -50.5t70.5 -70.5q21 -29 34 -61t20 -63q16 -73 16 -221v-229q2 -58 3 -102 t6 -82q5 -42 11.5 -79t11.5 -56q7 -31 16 -58.5t11 -32.5h-185q-5 12 -12.5 35.5t-14.5 51.5q-5 22 -9.5 44.5t-6.5 38.5q-29 -50 -74.5 -89t-89.5 -62q-48 -25 -101.5 -36.5t-114.5 -11.5zM551 125q151 0 238 106q88 108 88 291v41h-233q-160 0 -242 -56 q-43 -29 -62.5 -71.5t-19.5 -98.5q0 -52 16 -90.5t45 -65.5q29 -26 70.5 -41t99.5 -15z" />
+<glyph unicode="&#xe6;" d="M358 -29q-154 0 -235 86q-43 45 -62.5 107.5t-19.5 139.5q0 85 23.5 151t76.5 113q101 89 291 89h117v88q0 120 -49 184t-143 64q-29 0 -61.5 -5.5t-61.5 -15.5q-30 -10 -63.5 -25.5t-64.5 -35.5v168q38 17 74 30.5t69 21.5q64 16 127 16q91 0 152 -31q61 -32 99 -96 q33 61 99 94t156 33q85 0 147.5 -29t98.5 -89q72 -119 72 -425v-90h-491q-1 -8 -1 -16v-16q0 -3 -0.5 -9.5t-0.5 -29.5q0 -98 13.5 -155.5t37.5 -91.5q27 -38 68 -54.5t97 -16.5q75 0 141 26q65 26 114 76v-172q-29 -21 -60.5 -37t-60.5 -26t-65 -15.5t-75 -5.5 q-51 0 -97.5 10.5t-83.5 30.5q-75 41 -107 119q-39 -80 -105 -120q-34 -20 -74.5 -30t-91.5 -10zM1036 657v52q0 78 -10 132t-28 86q-17 30 -48 48t-78 18q-87 0 -125 -68t-38 -225v-43h327zM375 125q94 0 131 67q17 32 27 90t10 160v72h-49q-169 0 -229 -45 q-30 -23 -45 -62.5t-15 -93.5q0 -91 45 -139q45 -49 125 -49z" />
+<glyph unicode="&#xe7;" d="M718 991q-174 0 -267 -112q-93 -113 -93 -319q0 -96 21.5 -178t71.5 -142q94 -113 270 -113q50 0 91.5 8t76.5 22q45 17 77.5 39.5t63.5 51.5v-191q-34 -20 -74 -37t-78 -28q-20 -5 -40.5 -9.5t-43.5 -6.5q40 -48 62 -91q11 -23 18.5 -48.5t7.5 -55.5q0 -40 -15 -74 t-45 -57q-29 -22 -73 -33.5t-106 -11.5q-44 0 -87 6q-46 6 -88 18v131q17 -8 35 -14.5t37 -10.5t40.5 -5.5t38.5 -1.5q64 0 94 24t30 68q0 32 -22 75q-16 32 -47 77q-112 6 -204.5 45t-159.5 110q-72 77 -109 186t-37 246q0 143 38.5 251t108.5 182q74 78 175.5 116.5 t226.5 38.5q46 0 85 -5t77 -16q76 -21 155 -65v-193q-37 32 -73 56t-73 38q-75 29 -166 29z" />
+<glyph unicode="&#xe8;" d="M294 1673h198l281 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xe9;" d="M771 1673h198l-325 -376h-154zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26 t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xea;" d="M558 1673h147l246 -376h-139l-181 245l-180 -245h-139zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283 q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xeb;" d="M364 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM756 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM677 -29q-129 0 -231.5 39.5t-174.5 116.5t-109.5 185.5t-37.5 245.5q0 141 38 247.5t105 181.5 q73 81 171 120.5t211 39.5q112 0 196.5 -37t144.5 -107t91.5 -169.5t31.5 -227.5v-90h-797v-6q0 -183 96 -283q46 -48 111.5 -74t156.5 -26t185 28q97 29 205 85v-183q-53 -22 -107 -39t-95 -26q-48 -11 -96 -16t-95 -5zM929 660q-2 86 -22.5 147.5t-53.5 99.5 q-36 42 -89 63t-119 21q-135 0 -220 -88q-86 -89 -102 -244z" />
+<glyph unicode="&#xec;" d="M218 1647h198l281 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xed;" d="M794 1647h198l-325 -376h-154zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xee;" d="M514 1648h147l246 -376h-139l-181 245l-180 -245h-139zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xef;" d="M328 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM720 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM859 -8q-80 0 -143.5 25t-111.5 81q-91 106 -91 300v578h-245v144h429v-722q0 -125 46 -187 q24 -33 57.5 -48t76.5 -15h215v-156h-233z" />
+<glyph unicode="&#xf0;" d="M617 -29q-116 0 -204.5 37.5t-150.5 110.5q-63 75 -94 179t-31 235q0 132 31.5 237t93.5 179t152.5 110.5t216.5 36.5q18 0 23.5 -0.5t8.5 -0.5q11 -1 14.5 -1t5 -0.5t3.5 -0.5t10 -1l-10.5 14t-17.5 23t-20.5 27t-20.5 26q-18 23 -36.5 44.5t-37.5 43.5l-279 -92l-30 98 l237 80l-182 200h219l127 -145l289 94l33 -98l-250 -80q196 -212 288 -402q46 -96 68.5 -192.5t22.5 -204.5q0 -128 -31 -231t-94 -178q-64 -76 -153 -112t-201 -36zM616 127q138 0 211 106q37 54 55.5 129t18.5 169q0 60 -7.5 112.5t-21.5 103.5t-34 93.5t-45 77.5 q-17 7 -39.5 12.5t-36.5 7.5q-41 6 -79 6q-73 0 -131.5 -25t-97.5 -79t-58 -131.5t-19 -174.5q0 -194 74 -301q73 -106 210 -106z" />
+<glyph unicode="&#xf1;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM195 1120h166l18 -168q50 97 133 146t198 49q90 0 153 -29t104 -83q84 -113 84 -341v-694h-185v694q0 151 -53 222t-167 71q-66 0 -114.5 -23t-82.5 -68q-70 -91 -70 -263v-633h-184v1120z" />
+<glyph unicode="&#xf2;" d="M279 1673h198l281 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf3;" d="M756 1673h198l-325 -376h-154zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127 q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf4;" d="M543 1673h147l246 -376h-139l-181 245l-180 -245h-139zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112 t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf5;" d="M287 1286q2 135 52 208q51 74 141 74q39 0 72 -14q30 -13 69 -47l57 -55q11 -10 21.5 -17.5t16.5 -11.5q10 -6 16 -8t14 -2q38 0 56 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -141 -74q-39 0 -72 14q-30 13 -69 47l-57 55q-13 12 -22.5 19t-15.5 11q-9 5 -15.5 7 t-14.5 2q-38 0 -56 -37q-19 -39 -20 -118h-124zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38z M616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf6;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM616 -29q-115 0 -204.5 37.5t-151.5 112.5q-63 78 -93 188.5t-30 250.5q0 284 123 436 q123 151 356 151q120 0 208.5 -38.5t148.5 -112.5q123 -152 123 -435q0 -143 -30.5 -254t-92.5 -186q-60 -74 -149.5 -112t-207.5 -38zM616 127q141 0 213 110q72 109 72 322t-72 323q-72 109 -213 109q-140 0 -212 -109q-72 -110 -72 -323t72 -322q72 -110 212 -110z" />
+<glyph unicode="&#xf7;" d="M524 889q-30 0 -30 30v186q0 30 30 30h185q30 0 30 -30v-186q0 -30 -30 -30h-185zM88 727h1057v-170h-1057v170zM524 150q-30 0 -30 30v185q0 30 30 30h185q30 0 30 -30v-185q0 -30 -30 -30h-185z" />
+<glyph unicode="&#xf8;" d="M47 -20l170 200q-23 42 -36 82t-23 87q-11 51 -16 101t-5 109q0 285 123 437q123 151 355 151q49 0 95.5 -6.5t84.5 -20.5q37 -13 72.5 -34t66.5 -50l147 176l93 -77l-164 -195q41 -65 64 -162q11 -49 16.5 -103.5t5.5 -113.5q0 -143 -30.5 -254t-92.5 -186 q-123 -150 -358 -150q-55 0 -98.5 8t-81.5 22q-41 15 -73.5 36t-62.5 53l-160 -186zM817 897q-35 49 -84 71q-51 23 -117 23q-139 0 -213 -107q-36 -52 -55.5 -127t-19.5 -178q0 -28 1.5 -54.5t5.5 -55.5q7 -59 21 -129zM615 127q142 0 214 110q36 55 54 135.5t18 183.5 q0 30 -1.5 56.5t-4.5 54.5q-2 21 -6 49t-12 64l-463 -559q22 -28 42.5 -43.5t44.5 -26.5q25 -11 52 -17.5t62 -6.5z" />
+<glyph unicode="&#xf9;" d="M279 1644h198l281 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfa;" d="M756 1644h198l-325 -376h-154zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfb;" d="M543 1644h147l246 -376h-139l-181 245l-180 -245h-139zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfc;" d="M349 1350q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1350q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM534 -29q-171 0 -255 113q-84 112 -84 340v694h184v-694q0 -152 54 -222q26 -34 65.5 -52.5 t99.5 -18.5q130 0 199 92q69 91 69 262v633h185v-1118h-167l-18 168q-50 -98 -133 -147q-85 -50 -199 -50z" />
+<glyph unicode="&#xfd;" d="M756 1646h198l-325 -376h-154zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195l-295 -760q-33 -84 -52.5 -135t-31.5 -82.5t-19 -50.5t-14 -40q-25 -70 -45 -121.5t-36.5 -89t-30 -63.5t-23.5 -45q-31 -54 -57 -79.5 t-55 -41.5q-35 -19 -78 -28.5t-84 -9.5h-148v154z" />
+<glyph unicode="&#xfe;" d="M190 1567h185v-590q47 84 123 127t177 43q100 0 180 -39t138 -118t86.5 -187.5t28.5 -245.5q0 -275 -116 -430q-116 -156 -318 -156q-57 0 -99 11.5t-79 32.5q-78 45 -121 126v-567h-185v1993zM647 127q134 0 201 109t67 323t-67 323t-201 109t-203 -109 q-69 -110 -69 -323t69 -322q69 -110 203 -110z" />
+<glyph unicode="&#xff;" d="M349 1320q-30 0 -30 30v142q0 30 30 30h143q30 0 30 -30v-142q0 -30 -30 -30h-143zM741 1320q-30 0 -30 30v142q0 30 30 30h142q30 0 30 -30v-142q0 -30 -30 -30h-142zM184 -272h109q45 0 76 13.5t51 33.5q22 23 50 79t67 164l-433 1102h195l332 -876l327 876h195 l-295 -760q-24 -62 -37.5 -96t-21 -53.5t-11.5 -30t-9 -24.5t-13.5 -37t-24.5 -67q-30 -81 -51.5 -136t-37.5 -91.5t-26.5 -58t-17.5 -34.5q-22 -38 -49 -67.5t-66 -51.5q-69 -39 -161 -39h-148v154z" />
+<glyph unicode="&#x152;" d="M612 0q-158 0 -257.5 43.5t-158.5 123.5q-64 87 -94 229t-30 351q0 111 8 200t24 160t38.5 125t52.5 95q60 82 161 124t256 42h594v-170h-358v-442h328v-170h-328v-541h369v-170h-605zM651 170v1153h-61q-177 0 -246 -115q-34 -57 -52 -168t-18 -295q0 -180 17.5 -291 t52.5 -169q69 -115 246 -115h61z" />
+<glyph unicode="&#x153;" d="M369 -29q-99 0 -163.5 36t-105.5 102q-45 72 -65.5 181.5t-20.5 267.5q0 84 5.5 152.5t16.5 123.5t27 98t36 76q43 70 110 104.5t164 34.5q90 0 153 -31q64 -32 111 -96q17 29 43 53.5t59 41.5t72 24.5t82 7.5q173 0 245 -118q72 -119 72 -425v-90h-491v-84 q0 -162 50 -235q25 -36 64 -54t99 -18q37 0 74 6.5t70 20.5q66 26 112 77v-172q-30 -23 -62.5 -39.5t-58.5 -24.5q-27 -9 -63.5 -14.5t-76.5 -5.5q-51 0 -92 9t-76 25t-65.5 39.5t-56.5 59.5q-30 -38 -58 -61.5t-58 -38.5q-32 -17 -69 -25t-83 -8zM372 123q103 0 144 84 q10 21 17.5 50.5t13 71t8 96t2.5 125.5q0 138 -10 223.5t-31 133.5t-56.5 68t-86.5 20q-55 0 -89 -21.5t-53 -61.5q-10 -21 -17.5 -50t-13 -71t-8 -99.5t-2.5 -133.5q0 -74 2.5 -130t8 -98t13 -72t17.5 -51q22 -46 57.5 -65t83.5 -19zM1047 657v12.5t1 17.5t1 15v7 q0 152 -40 219t-126 67q-87 0 -125 -68q-39 -69 -39 -227v-43h328z" />
+<glyph unicode="&#x178;" d="M349 1649q-30 0 -30 30v143q0 30 30 30h143q30 0 30 -30v-143q0 -30 -30 -30h-143zM741 1649q-30 0 -30 30v143q0 30 30 30h142q30 0 30 -30v-143q0 -30 -30 -30h-142zM514 670l-477 823h215l364 -659l363 659h217l-479 -823v-670h-203v670z" />
+<glyph unicode="&#x2c6;" d="M936 1262h-139l-181 245l-180 -245h-139l246 376h147z" />
+<glyph unicode="&#x2dc;" d="M555 1425q-22 21 -37 30q-17 9 -31 9q-38 0 -56 -37q-19 -39 -20 -118h-124q2 135 52 208q51 74 142 74q38 0 71 -14q30 -13 69 -47l57 -55q22 -20 38 -29q16 -10 29 -10q39 0 57 37q17 36 19 118h125q-2 -135 -52 -208q-51 -74 -142 -74q-38 0 -71 14q-30 13 -69 47 l-57 55v0z" />
+<glyph unicode="&#x2000;" horiz-adv-x="988" />
+<glyph unicode="&#x2001;" horiz-adv-x="1976" />
+<glyph unicode="&#x2002;" horiz-adv-x="988" />
+<glyph unicode="&#x2003;" horiz-adv-x="1976" />
+<glyph unicode="&#x2004;" horiz-adv-x="658" />
+<glyph unicode="&#x2005;" horiz-adv-x="494" />
+<glyph unicode="&#x2006;" horiz-adv-x="329" />
+<glyph unicode="&#x2007;" horiz-adv-x="329" />
+<glyph unicode="&#x2008;" horiz-adv-x="247" />
+<glyph unicode="&#x2009;" horiz-adv-x="395" />
+<glyph unicode="&#x200a;" horiz-adv-x="109" />
+<glyph unicode="&#x2010;" d="M206 683h821v-164h-821v164z" />
+<glyph unicode="&#x2011;" d="M206 683h821v-164h-821v164z" />
+<glyph unicode="&#x2012;" d="M206 683h821v-164h-821v164z" />
+<glyph unicode="&#x2013;" d="M0 633h1233v-141h-1233v141z" />
+<glyph unicode="&#x2014;" d="M0 633h1233v-141h-1233v141z" />
+<glyph unicode="&#x2018;" d="M463 1174l196 382h154l-98 -382v-207h-252v207z" />
+<glyph unicode="&#x2019;" d="M561 1350v206h252v-206l-197 -383h-153z" />
+<glyph unicode="&#x201a;" d="M502 96v207h252v-207l-197 -383h-154z" />
+<glyph unicode="&#x201c;" d="M211 1174l199 382h153l-98 -382v-207h-254v207zM672 1174l196 382h154l-98 -382v-207h-252v207z" />
+<glyph unicode="&#x201d;" d="M309 1350v206h252v-206l-196 -383h-154zM768 1350v206h252v-206l-197 -383h-153z" />
+<glyph unicode="&#x201e;" d="M309 96v207h252v-207l-196 -383h-154zM768 96v207h252v-207l-197 -383h-153z" />
+<glyph unicode="&#x2022;" d="M614 465q-61 0 -114.5 22t-95.5 64q-42 43 -63.5 96.5t-21.5 113.5q0 63 22 116.5t63 94.5q39 39 93 62t118 23q63 0 116.5 -22t95.5 -63q38 -38 62 -91.5t24 -119.5q0 -60 -21.5 -113t-65.5 -97q-44 -43 -98 -64.5t-114 -21.5z" />
+<glyph unicode="&#x2026;" d="M110 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM519 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192zM929 0q-30 0 -30 30v245q0 30 30 30h192q30 0 30 -30v-245q0 -30 -30 -30h-192z" />
+<glyph unicode="&#x202f;" horiz-adv-x="395" />
+<glyph unicode="&#x2039;" d="M256 559v82l469 418v-191l-301 -268l301 -268v-191z" />
+<glyph unicode="&#x203a;" d="M510 332l301 268l-301 268v191l469 -418v-82l-469 -418v191z" />
+<glyph unicode="&#x205f;" horiz-adv-x="494" />
+<glyph unicode="&#x20ac;" d="M755 -29q-118 0 -207 37.5t-155 106.5t-112.5 174t-69.5 254h-174l49 110h117q-1 6 -1 14t-1 18l-2 62l2 65q0 5 1 15.5t1 12.5h-166l49 108h125q24 143 71 250t114 178q136 144 359 144q84 0 159 -20q72 -19 147 -62v-207q-33 31 -70 54.5t-75 40.5q-78 34 -160 34 q-144 0 -231 -104q-87 -103 -111 -308h481l-49 -108h-442q-1 -9 -1.5 -19.5t-0.5 -22.5v-6.5t-0.5 -9t-0.5 -15v-25.5v-24.5t0.5 -13t0.5 -6.5v-3v-20.5t1 -21.5h361l-49 -110h-301q22 -202 110 -307q87 -105 233 -105q81 0 159 34q42 18 77 41.5t68 53.5v-207 q-73 -43 -146 -62q-75 -20 -160 -20z" />
+<glyph unicode="&#x2122;" d="M162 1399h-162v94h438v-94h-162v-484h-114v484zM522 1493h170l137 -256l125 256h172v-578h-114v482l-156 -301h-55l-166 301v-482h-113v578z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+</font>
+</defs></svg>
\ No newline at end of file
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-bold-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-bold-webfont.ttf
new file mode 100755
index 0000000..ecd9950
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-bold-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-bolditalic-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-bolditalic-webfont.ttf
new file mode 100755
index 0000000..c17383a
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-bolditalic-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-italic-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-italic-webfont.ttf
new file mode 100755
index 0000000..1266f84
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-italic-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-regular-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-regular-webfont.ttf
new file mode 100755
index 0000000..16c1a01
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/hack-regular-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf
new file mode 100755
index 0000000..16325d5
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-bold-latin-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf
new file mode 100755
index 0000000..b233262
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-bolditalic-latin-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf
new file mode 100755
index 0000000..7878678
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-italic-latin-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf
new file mode 100755
index 0000000..0566ead
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/web-ttf/latin/hack-regular-latin-webfont.ttf differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/hack-bold-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/hack-bold-webfont.woff
new file mode 100755
index 0000000..0eee5ab
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/hack-bold-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/hack-bolditalic-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/hack-bolditalic-webfont.woff
new file mode 100755
index 0000000..486912c
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/hack-bolditalic-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/hack-italic-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/hack-italic-webfont.woff
new file mode 100755
index 0000000..6121166
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/hack-italic-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/hack-regular-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/hack-regular-webfont.woff
new file mode 100755
index 0000000..334f02e
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/hack-regular-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-bold-latin-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-bold-latin-webfont.woff
new file mode 100755
index 0000000..247cdeb
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-bold-latin-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-bolditalic-latin-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-bolditalic-latin-webfont.woff
new file mode 100755
index 0000000..08c1a0a
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-bolditalic-latin-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-italic-latin-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-italic-latin-webfont.woff
new file mode 100755
index 0000000..c200b42
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-italic-latin-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-regular-latin-webfont.woff b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-regular-latin-webfont.woff
new file mode 100755
index 0000000..9e20c8e
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff/latin/hack-regular-latin-webfont.woff differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/hack-bold-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-bold-webfont.woff2
new file mode 100755
index 0000000..e581886
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-bold-webfont.woff2 differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/hack-bolditalic-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-bolditalic-webfont.woff2
new file mode 100755
index 0000000..2cee731
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-bolditalic-webfont.woff2 differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/hack-italic-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-italic-webfont.woff2
new file mode 100755
index 0000000..0aa5119
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-italic-webfont.woff2 differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/hack-regular-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-regular-webfont.woff2
new file mode 100755
index 0000000..3889738
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/hack-regular-webfont.woff2 differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-bold-latin-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-bold-latin-webfont.woff2
new file mode 100755
index 0000000..34e13e7
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-bold-latin-webfont.woff2 differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2
new file mode 100755
index 0000000..7c7d5a1
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-bolditalic-latin-webfont.woff2 differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-italic-latin-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-italic-latin-webfont.woff2
new file mode 100755
index 0000000..6e96597
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-italic-latin-webfont.woff2 differ
diff --git a/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-regular-latin-webfont.woff2 b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-regular-latin-webfont.woff2
new file mode 100755
index 0000000..f608ee1
Binary files /dev/null and b/pagure/static/vendor/hack_fonts/fonts/woff2/latin/hack-regular-latin-webfont.woff2 differ
diff --git a/pagure/static/vendor/jdenticon/jdenticon-1.3.2.js b/pagure/static/vendor/jdenticon/jdenticon-1.3.2.js
new file mode 100644
index 0000000..c56ee80
--- /dev/null
+++ b/pagure/static/vendor/jdenticon/jdenticon-1.3.2.js
@@ -0,0 +1,801 @@
+/**
+ * Jdenticon 1.3.2
+ * http://jdenticon.com
+ *  
+ * Built: 2015-10-10T11:55:57.451Z
+ *
+ * Copyright (c) 2014-2015 Daniel Mester Pirttijärvi
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty.  In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ * 
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ * 
+ * 1. The origin of this software must not be misrepresented; you must not
+ *    claim that you wrote the original software. If you use this software
+ *    in a product, an acknowledgment in the product documentation would be
+ *    appreciated but is not required.
+ * 
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ *    misrepresented as being the original software.
+ * 
+ * 3. This notice may not be removed or altered from any source distribution.
+ * 
+ */
+
+/*jslint bitwise: true */
+
+(function (global, name, factory) {
+    var jQuery = global["jQuery"],
+        jdenticon = factory(global, jQuery);
+
+    // Node.js
+    if (typeof module !== "undefined" && "exports" in module) {
+        module["exports"] = jdenticon;
+    }
+    // RequireJS
+    else if (typeof define === "function" && define["amd"]) {
+        define([], function () { return jdenticon; });
+    }
+    // No module loader
+    else {
+        global[name] = jdenticon;
+    }
+})(this, "jdenticon", function (global, jQuery) {
+    "use strict";
+
+
+
+    
+    /**
+     * Represents a point.
+     * @private
+     * @constructor
+     */
+    function Point(x, y) {
+        this.x = x;
+        this.y = y;
+    };
+    
+    
+    /**
+     * Translates and rotates a point before being passed on to the canvas context. This was previously done by the canvas context itself, 
+     * but this caused a rendering issue in Chrome on sizes > 256 where the rotation transformation of inverted paths was not done properly.
+     * @param {number} x The x-coordinate of the upper left corner of the transformed rectangle.
+     * @param {number} y The y-coordinate of the upper left corner of the transformed rectangle.
+     * @param {number} size The size of the transformed rectangle.
+     * @param {number} rotation Rotation specified as 0 = 0 rad, 1 = 0.5π rad, 2 = π rad, 3 = 1.5π rad
+     * @private
+     * @constructor
+     */
+    function Transform(x, y, size, rotation) {
+        this._x = x;
+        this._y = y;
+        this._size = size;
+        this._rotation = rotation;
+    }
+    Transform.prototype = {
+        /**
+         * Transforms the specified point based on the translation and rotation specification for this Transform.
+         * @param {number} x x-coordinate
+         * @param {number} y y-coordinate
+         * @param {number=} w The width of the transformed rectangle. If greater than 0, this will ensure the returned point is of the upper left corner of the transformed rectangle.
+         * @param {number=} h The height of the transformed rectangle. If greater than 0, this will ensure the returned point is of the upper left corner of the transformed rectangle.
+         */
+        transformPoint: function (x, y, w, h) {
+            var right = this._x + this._size,
+                bottom = this._y + this._size;
+            return this._rotation === 1 ? new Point(right - y - (h || 0), this._y + x) :
+                   this._rotation === 2 ? new Point(right - x - (w || 0), bottom - y - (h || 0)) :
+                   this._rotation === 3 ? new Point(this._x + y, bottom - x - (w || 0)) :
+                   new Point(this._x + x, this._y + y);
+        }
+    };
+    Transform.noTransform = new Transform(0, 0, 0, 0);
+    
+    
+    
+    /**
+     * Provides helper functions for rendering common basic shapes.
+     * @private
+     * @constructor
+     */
+    function Graphics(renderer) {
+        this._renderer = renderer;
+        this._transform = Transform.noTransform;
+    }
+    Graphics.prototype = {
+        /**
+         * Adds a polygon to the underlying renderer.
+         * @param {Array} points The points of the polygon clockwise on the format [ x0, y0, x1, y1, ..., xn, yn ]
+         * @param {boolean=} invert Specifies if the polygon will be inverted.
+         */
+        addPolygon: function (points, invert) {
+            var di = invert ? -2 : 2, 
+                transform = this._transform,
+                transformedPoints = [],
+                i;
+            
+            for (i = invert ? points.length - 2 : 0; i < points.length && i >= 0; i += di) {
+                transformedPoints.push(transform.transformPoint(points[i], points[i + 1]));
+            }
+            
+            this._renderer.addPolygon(transformedPoints);
+        },
+        
+        /**
+         * Adds a polygon to the underlying renderer.
+         * Source: http://stackoverflow.com/a/2173084
+         * @param {number} x The x-coordinate of the upper left corner of the rectangle holding the entire ellipse.
+         * @param {number} y The y-coordinate of the upper left corner of the rectangle holding the entire ellipse.
+         * @param {number} size The size of the ellipse.
+         * @param {boolean=} invert Specifies if the ellipse will be inverted.
+         */
+        addCircle: function (x, y, size, invert) {
+            var p = this._transform.transformPoint(x, y, size, size);
+            this._renderer.addCircle(p, size, invert);
+        },
+
+        /**
+         * Adds a rectangle to the underlying renderer.
+         * @param {number} x The x-coordinate of the upper left corner of the rectangle.
+         * @param {number} y The y-coordinate of the upper left corner of the rectangle.
+         * @param {number} w The width of the rectangle.
+         * @param {number} h The height of the rectangle.
+         * @param {boolean=} invert Specifies if the rectangle will be inverted.
+         */
+        addRectangle: function (x, y, w, h, invert) {
+            this.addPolygon([
+                x, y, 
+                x + w, y,
+                x + w, y + h,
+                x, y + h
+            ], invert);
+        },
+
+        /**
+         * Adds a right triangle to the underlying renderer.
+         * @param {number} x The x-coordinate of the upper left corner of the rectangle holding the triangle.
+         * @param {number} y The y-coordinate of the upper left corner of the rectangle holding the triangle.
+         * @param {number} w The width of the triangle.
+         * @param {number} h The height of the triangle.
+         * @param {number} r The rotation of the triangle (clockwise). 0 = right corner of the triangle in the lower left corner of the bounding rectangle.
+         * @param {boolean=} invert Specifies if the triangle will be inverted.
+         */
+        addTriangle: function (x, y, w, h, r, invert) {
+            var points = [
+                x + w, y, 
+                x + w, y + h, 
+                x, y + h,
+                x, y
+            ];
+            points.splice(((r || 0) % 4) * 2, 2);
+            this.addPolygon(points, invert);
+        },
+
+        /**
+         * Adds a rhombus to the underlying renderer.
+         * @param {number} x The x-coordinate of the upper left corner of the rectangle holding the rhombus.
+         * @param {number} y The y-coordinate of the upper left corner of the rectangle holding the rhombus.
+         * @param {number} w The width of the rhombus.
+         * @param {number} h The height of the rhombus.
+         * @param {boolean=} invert Specifies if the rhombus will be inverted.
+         */
+        addRhombus: function (x, y, w, h, invert) {
+            this.addPolygon([
+                x + w / 2, y,
+                x + w, y + h / 2,
+                x + w / 2, y + h,
+                x, y + h / 2
+            ], invert);
+        }
+    };
+    
+    
+    
+    
+    var shapes = {
+        center: [
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var k = cell * 0.42;
+                g.addPolygon([
+                    0, 0,
+                    cell, 0,
+                    cell, cell - k * 2,
+                    cell - k, cell,
+                    0, cell
+                ]);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var w = 0 | (cell * 0.5), 
+                    h = 0 | (cell * 0.8);
+                g.addTriangle(cell - w, 0, w, h, 2);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) { 
+                var s = 0 | (cell / 3);
+                g.addRectangle(s, s, cell - s, cell - s);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) { 
+                var inner = 0 | (cell * 0.1),
+                    outer = 0 | (cell * 0.25);
+                g.addRectangle(outer, outer, cell - inner - outer, cell - inner - outer);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) { 
+                var m = 0 | (cell * 0.15),
+                    s = 0 | (cell * 0.5);
+                g.addCircle(cell - s - m, cell - s - m, s);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var inner = cell * 0.1,
+                    outer = inner * 4;
+
+                g.addRectangle(0, 0, cell, cell);
+                g.addPolygon([
+                    outer, outer,
+                    cell - inner, outer,
+                    outer + (cell - outer - inner) / 2, cell - inner
+                ], true);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                g.addPolygon([
+                    0, 0,
+                    cell, 0,
+                    cell, cell * 0.7,
+                    cell * 0.4, cell * 0.4,
+                    cell * 0.7, cell,
+                    0, cell
+                ]);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                g.addTriangle(cell / 2, cell / 2, cell / 2, cell / 2, 3);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                g.addRectangle(0, 0, cell, cell / 2);
+                g.addRectangle(0, cell / 2, cell / 2, cell / 2);
+                g.addTriangle(cell / 2, cell / 2, cell / 2, cell / 2, 1);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var inner = 0 | (cell * 0.14),
+                    outer = 0 | (cell * 0.35);
+                g.addRectangle(0, 0, cell, cell);
+                g.addRectangle(outer, outer, cell - outer - inner, cell - outer - inner, true);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var inner = cell * 0.12,
+                    outer = inner * 3;
+
+                g.addRectangle(0, 0, cell, cell);
+                g.addCircle(outer, outer, cell - inner - outer, true);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                g.addTriangle(cell / 2, cell / 2, cell / 2, cell / 2, 3);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var m = cell * 0.25;
+                g.addRectangle(0, 0, cell, cell);
+                g.addRhombus(m, m, cell - m, cell - m, true);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var m = cell * 0.4, s = cell * 1.2;
+                if (!index) {
+                    g.addCircle(m, m, s);
+                }
+            }
+        ],
+        
+        outer: [
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                g.addTriangle(0, 0, cell, cell, 0);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                g.addTriangle(0, cell / 2, cell, cell / 2, 0);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                g.addRhombus(0, 0, cell, cell);
+            },
+            /** @param {Graphics} g */
+            function (g, cell, index) {
+                var m = cell / 6;
+                g.addCircle(m, m, cell - 2 * m);
+            }
+        ]
+    };
+
+    
+    
+    
+    function decToHex(v) {
+        v |= 0; // Ensure integer value
+        return v < 0 ? "00" :
+            v < 16 ? "0" + v.toString(16) :
+            v < 256 ? v.toString(16) :
+            "ff";
+    }
+    
+    function hueToRgb(m1, m2, h) {
+        h = h < 0 ? h + 6 : h > 6 ? h - 6 : h;
+        return decToHex(255 * (
+            h < 1 ? m1 + (m2 - m1) * h :
+            h < 3 ? m2 :
+            h < 4 ? m1 + (m2 - m1) * (4 - h) :
+            m1));
+    }
+        
+    /**
+     * Functions for converting colors to hex-rgb representations.
+     * @private
+     */
+    var color = {
+        /**
+         * @param {number} r Red channel [0, 255]
+         * @param {number} g Green channel [0, 255]
+         * @param {number} b Blue channel [0, 255]
+         */
+        rgb: function (r, g, b) {
+            return "#" + decToHex(r) + decToHex(g) + decToHex(b);
+        },
+        /**
+         * @param h Hue [0, 1]
+         * @param s Saturation [0, 1]
+         * @param l Lightness [0, 1]
+         */
+        hsl: function (h, s, l) {
+            // Based on http://www.w3.org/TR/2011/REC-css3-color-20110607/#hsl-color
+            if (s == 0) {
+                var partialHex = decToHex(l * 255);
+                return "#" + partialHex + partialHex + partialHex;
+            }
+            else {
+                var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s,
+                    m1 = l * 2 - m2;
+                return "#" +
+                    hueToRgb(m1, m2, h * 6 + 2) +
+                    hueToRgb(m1, m2, h * 6) +
+                    hueToRgb(m1, m2, h * 6 - 2);
+            }
+        },
+        // This function will correct the lightness for the "dark" hues
+        correctedHsl: function (h, s, l) {
+            // The corrector specifies the perceived middle lightnesses for each hue
+            var correctors = [ 0.55, 0.5, 0.5, 0.46, 0.6, 0.55, 0.55 ],
+                corrector = correctors[(h * 6 + 0.5) | 0];
+            
+            // Adjust the input lightness relative to the corrector
+            l = l < 0.5 ? l * corrector * 2 : corrector + (l - 0.5) * (1 - corrector) * 2;
+            
+            return color.hsl(h, s, l);
+        }
+    };
+
+    
+    
+    
+    /**
+     * Gets a set of identicon color candidates for a specified hue and config.
+     */
+    function colorTheme(hue, config) {
+        return [
+            // Dark gray
+            color.hsl(0, 0, config.grayscaleLightness(0)),
+            // Mid color
+            color.correctedHsl(hue, config.saturation, config.colorLightness(0.5)),
+            // Light gray
+            color.hsl(0, 0, config.grayscaleLightness(1)),
+            // Light color
+            color.correctedHsl(hue, config.saturation, config.colorLightness(1)),
+            // Dark color
+            color.correctedHsl(hue, config.saturation, config.colorLightness(0))
+        ];
+    }
+
+    
+    
+         
+    /**
+     * Draws an identicon to a specified renderer.
+     */
+    function iconGenerator(renderer, hash, x, y, size, padding, config) {
+        var undefined;
+        
+        // Calculate padding
+        padding = (size * (padding === undefined ? 0.08 : padding)) | 0;
+        size -= padding * 2;
+        
+        // Sizes smaller than 30 px are not supported. If really needed, apply a scaling transformation 
+        // to the context before passing it to this function.
+        if (size < 30) {
+            throw new Error("Jdenticon cannot render identicons smaller than 30 pixels.");
+        }
+        if (!/^[0-9a-f]{11,}$/i.test(hash)) {
+            throw new Error("Invalid hash passed to Jdenticon.");
+        }
+        
+        var graphics = new Graphics(renderer);
+        
+        // Calculate cell size and ensure it is an integer
+        var cell = 0 | (size / 4);
+        
+        // Since the cell size is integer based, the actual icon will be slightly smaller than specified => center icon
+        x += 0 | (padding + size / 2 - cell * 2);
+        y += 0 | (padding + size / 2 - cell * 2);
+
+        function renderShape(colorIndex, shapes, index, rotationIndex, positions) {
+            var r = rotationIndex ? parseInt(hash.charAt(rotationIndex), 16) : 0,
+                shape = shapes[parseInt(hash.charAt(index), 16) % shapes.length],
+                i;
+            
+            renderer.beginShape(availableColors[selectedColorIndexes[colorIndex]]);
+            
+            for (i = 0; i < positions.length; i++) {
+                graphics._transform = new Transform(x + positions[i][0] * cell, y + positions[i][1] * cell, cell, r++ % 4);
+                shape(graphics, cell, i);
+            }
+            
+            renderer.endShape();
+        }
+
+        // AVAILABLE COLORS
+        var hue = parseInt(hash.substr(-7), 16) / 0xfffffff,
+        
+            // Available colors for this icon
+            availableColors = colorTheme(hue, config),
+
+            // The index of the selected colors
+            selectedColorIndexes = [],
+            index;
+
+        function isDuplicate(values) {
+            if (values.indexOf(index) >= 0) {
+                for (var i = 0; i < values.length; i++) {
+                    if (selectedColorIndexes.indexOf(values[i]) >= 0) {
+                        return true;
+                    }
+                }
+            }
+        }
+
+        for (var i = 0; i < 3; i++) {
+            index = parseInt(hash.charAt(8 + i), 16) % availableColors.length;
+            if (isDuplicate([0, 4]) || // Disallow dark gray and dark color combo
+                isDuplicate([2, 3])) { // Disallow light gray and light color combo
+                index = 1;
+            }
+            selectedColorIndexes.push(index);
+        }
+
+        // ACTUAL RENDERING
+        // Sides
+        renderShape(0, shapes.outer, 2, 3, [[1, 0], [2, 0], [2, 3], [1, 3], [0, 1], [3, 1], [3, 2], [0, 2]]);
+        // Corners
+        renderShape(1, shapes.outer, 4, 5, [[0, 0], [3, 0], [3, 3], [0, 3]]);
+        // Center
+        renderShape(2, shapes.center, 1, null, [[1, 1], [2, 1], [2, 2], [1, 2]]);
+    };
+
+    
+    
+    /**
+     * Represents an SVG path element.
+     * @private
+     * @constructor
+     */
+    function SvgPath() {
+        /**
+         * This property holds the data string (path.d) of the SVG path.
+         */
+        this.dataString = "";
+    }
+    SvgPath.prototype = {
+        /**
+         * Adds a polygon with the current fill color to the SVG path.
+         * @param points An array of Point objects.
+         */
+        addPolygon: function (points) {
+            var dataString = "M" + points[0].x + " " + points[0].y;
+            for (var i = 1; i < points.length; i++) {
+                dataString += "L" + points[i].x + " " + points[i].y;
+            }
+            this.dataString += dataString + "Z";
+        },
+        /**
+         * Adds a circle with the current fill color to the SVG path.
+         * @param {Point} point The upper left corner of the circle bounding box.
+         * @param {number} diameter The diameter of the circle.
+         * @param {boolean} counterClockwise True if the circle is drawn counter-clockwise (will result in a hole if rendered on a clockwise path).
+         */
+        addCircle: function (point, diameter, counterClockwise) {
+            var sweepFlag = counterClockwise ? 0 : 1,
+                radius = diameter / 2;
+            this.dataString += 
+                "M" + (point.x) + " " + (point.y + radius) +
+                "a" + radius + "," + radius + " 0 1," + sweepFlag + " " + diameter + ",0" + 
+                "a" + radius + "," + radius + " 0 1," + sweepFlag + " " + (-diameter) + ",0";
+        }
+    };
+    
+    
+    
+    /**
+     * Renderer producing SVG output.
+     * @private
+     * @constructor
+     */
+    function SvgRenderer(width, height) {
+        this._pathsByColor = { };
+        this._size = { w: width, h: height };
+    }
+    SvgRenderer.prototype = {
+        /**
+         * Marks the beginning of a new shape of the specified color. Should be ended with a call to endShape.
+         * @param {string} color Fill color on format #xxxxxx.
+         */
+        beginShape: function (color) {
+            this._path = this._pathsByColor[color] || (this._pathsByColor[color] = new SvgPath());
+        },
+        /**
+         * Marks the end of the currently drawn shape.
+         */
+        endShape: function () { },
+        /**
+         * Adds a polygon with the current fill color to the SVG.
+         * @param points An array of Point objects.
+         */
+        addPolygon: function (points) {
+            this._path.addPolygon(points);
+        },
+        /**
+         * Adds a circle with the current fill color to the SVG.
+         * @param {Point} point The upper left corner of the circle bounding box.
+         * @param {number} diameter The diameter of the circle.
+         * @param {boolean} counterClockwise True if the circle is drawn counter-clockwise (will result in a hole if rendered on a clockwise path).
+         */
+        addCircle: function (point, diameter, counterClockwise) {
+            this._path.addCircle(point, diameter, counterClockwise);
+        },
+        /**
+         * Gets the rendered image as an SVG string.
+         * @param {boolean=} fragment If true, the container svg element is not included in the result.
+         */
+        toSvg: function (fragment) {
+            var svg = fragment ? '' : 
+                '<svg xmlns="http://www.w3.org/2000/svg" width="' + 
+                this._size.w + '" height="' + this._size.h + '" viewBox="0 0 ' + 
+                this._size.w + ' ' + this._size.h + '" preserveAspectRatio="xMidYMid meet">';
+            
+            for (var color in this._pathsByColor) {
+                svg += '<path fill="' + color + '" d="' + this._pathsByColor[color].dataString + '"/>';
+            }
+
+            return fragment ? svg : 
+                svg + '</svg>';
+        }
+    };
+    
+    
+    
+    /**
+     * Renderer redirecting drawing commands to a canvas context.
+     * @private
+     * @constructor
+     */
+    function CanvasRenderer(ctx, width, height) {
+        this._ctx = ctx;
+        ctx.clearRect(0, 0, width, height);
+    }
+    CanvasRenderer.prototype = {
+        /**
+         * Marks the beginning of a new shape of the specified color. Should be ended with a call to endShape.
+         * @param {string} color Fill color on format #xxxxxx.
+         */
+        beginShape: function (color) {
+            this._ctx.fillStyle = color;
+            this._ctx.beginPath();
+        },
+        /**
+         * Marks the end of the currently drawn shape. This causes the queued paths to be rendered on the canvas.
+         */
+        endShape: function () {
+            this._ctx.fill();
+        },
+        /**
+         * Adds a polygon to the rendering queue.
+         * @param points An array of Point objects.
+         */
+        addPolygon: function (points) {
+            var ctx = this._ctx, i;
+            ctx.moveTo(points[0].x, points[0].y);
+            for (i = 1; i < points.length; i++) {
+                ctx.lineTo(points[i].x, points[i].y);
+            }
+            ctx.closePath();
+        },
+        /**
+         * Adds a circle to the rendering queue.
+         * @param {Point} point The upper left corner of the circle bounding box.
+         * @param {number} diameter The diameter of the circle.
+         * @param {boolean} counterClockwise True if the circle is drawn counter-clockwise (will result in a hole if rendered on a clockwise path).
+         */
+        addCircle: function (point, diameter, counterClockwise) {
+            var ctx = this._ctx,
+                radius = diameter / 2;
+            ctx.arc(point.x + radius, point.y + radius, radius, 0, Math.PI * 2, counterClockwise);
+            ctx.closePath();
+        }
+    };
+    
+    
+    
+         
+    
+    
+    var /** @const */
+        HASH_ATTRIBUTE = "data-jdenticon-hash",
+        supportsQuerySelectorAll = "document" in global && "querySelectorAll" in document;
+    
+    /**
+     * Gets the normalized current Jdenticon color configuration. Missing fields have default values.
+     */
+    function getCurrentConfig() {
+        var configObject = jdenticon["config"] || global["jdenticon_config"] || { },
+            lightnessConfig = configObject["lightness"] || { },
+            saturation = configObject["saturation"];
+        
+        /**
+         * Creates a lightness range.
+         */
+        function lightness(configName, defaultMin, defaultMax) {
+            var range = lightnessConfig[configName] instanceof Array ? lightnessConfig[configName] : [defaultMin, defaultMax];
+            
+            /**
+             * Gets a lightness relative the specified value in the specified lightness range.
+             */
+            return function (value) {
+                value = range[0] + value * (range[1] - range[0]);
+                return value < 0 ? 0 : value > 1 ? 1 : value;
+            };
+        }
+            
+        return {
+            saturation: typeof saturation == "number" ? saturation : 0.5,
+            colorLightness: lightness("color", 0.4, 0.8),
+            grayscaleLightness: lightness("grayscale", 0.3, 0.9)
+        }
+    }
+    
+    /**
+     * Updates the identicon in the specified canvas or svg elements.
+     * @param {string=} hash Optional hash to be rendered. If not specified, the hash specified by the data-jdenticon-hash is used.
+     * @param {number=} padding Optional padding in percents. Extra padding might be added to center the rendered identicon.
+     */
+    function update(el, hash, padding) {
+        if (typeof(el) === "string") {
+            if (supportsQuerySelectorAll) {
+                var elements = document.querySelectorAll(el);
+                for (var i = 0; i < elements.length; i++) {
+                    update(elements[i], hash, padding);
+                }
+            }
+            return;
+        }
+        if (!el || !el["tagName"]) {
+            // No element found
+            return;
+        }
+        hash = hash || el.getAttribute(HASH_ATTRIBUTE);
+        if (!hash) {
+            // No hash specified
+            return;
+        }
+        
+        var isSvg = el["tagName"].toLowerCase() == "svg",
+            isCanvas = el["tagName"].toLowerCase() == "canvas";
+        
+        // Ensure we have a supported element
+        if (!isSvg && !(isCanvas && "getContext" in el)) {
+            return;
+        }
+        
+        var width = Number(el.getAttribute("width")) || el.clientWidth || 0,
+            height = Number(el.getAttribute("height")) || el.clientHeight || 0,
+            renderer = isSvg ? new SvgRenderer(width, height) : new CanvasRenderer(el.getContext("2d"), width, height),
+            size = Math.min(width, height);
+        
+        // Draw icon
+        iconGenerator(renderer, hash, 0, 0, size, padding, getCurrentConfig());
+        
+        // SVG needs postprocessing
+        if (isSvg) {
+            // Parse svg to a temporary span element.
+            // Simply using innerHTML does unfortunately not work on IE.
+            var wrapper = document.createElement("span");
+            wrapper.innerHTML = renderer.toSvg(false);
+            
+            // Then replace the content of the target element with the parsed svg.
+            while (el.firstChild) {
+                el.removeChild(el.firstChild);
+            }
+            var newNodes = wrapper.firstChild.childNodes;
+            while (newNodes.length) {
+                el.appendChild(newNodes[0]);
+            }
+            
+            // Set viewBox attribute to ensure the svg scales nicely.
+            el.setAttribute("viewBox", "0 0 " + width + " " + height);
+        }
+    }
+    
+    /**
+     * Draws an identicon to a context.
+     */
+    function drawIcon(ctx, hash, size) {
+        if (!ctx) {
+            throw new Error("No canvas specified.");
+        }
+        
+        var renderer = new CanvasRenderer(ctx, size, size);
+        iconGenerator(renderer, hash, 0, 0, size, 0, getCurrentConfig());
+    }
+    
+    /**
+     * Draws an identicon to a context.
+     * @param {number=} padding Optional padding in percents. Extra padding might be added to center the rendered identicon.
+     */
+    function toSvg(hash, size, padding) {
+        var renderer = new SvgRenderer(size, size);
+        iconGenerator(renderer, hash, 0, 0, size, padding, getCurrentConfig());
+        return renderer.toSvg();
+    }
+
+    /**
+     * Updates all canvas elements with the data-jdenticon-hash attribute.
+     */
+    function jdenticon() {
+        if (supportsQuerySelectorAll) {
+            update("svg[" + HASH_ATTRIBUTE + "],canvas[" + HASH_ATTRIBUTE + "]");
+        }
+    }
+    
+    // Public API
+    jdenticon["drawIcon"] = drawIcon;
+    jdenticon["toSvg"] = toSvg;
+    jdenticon["update"] = update;
+    jdenticon["version"] = "1.3.2";
+    
+    // Basic jQuery plugin
+    if (jQuery) {
+        jQuery["fn"]["jdenticon"] = function (hash, padding) {
+            this["each"](function (index, el) {
+                update(el, hash, padding);
+            });
+            return this;
+        };
+    }
+    
+    // Schedule to render all identicons on the page once it has been loaded.
+    if (typeof setTimeout === "function") {
+        setTimeout(jdenticon, 0);
+    }
+    
+    return jdenticon;
+
+});
\ No newline at end of file
diff --git a/pagure/static/vendor/jdenticon/jdenticon-1.3.2.min.js b/pagure/static/vendor/jdenticon/jdenticon-1.3.2.min.js
new file mode 100644
index 0000000..610d18e
--- /dev/null
+++ b/pagure/static/vendor/jdenticon/jdenticon-1.3.2.min.js
@@ -0,0 +1,13 @@
+// Jdenticon 1.3.2 | jdenticon.com | zlib licensed | (c) 2014-2015 Daniel Mester Pirttijärvi
+(function(k,g,h){var l=h(k,k.jQuery);"undefined"!==typeof module&&"exports"in module?module.exports=l:"function"===typeof define&&define.amd?define([],function(){return l}):k[g]=l})(this,"jdenticon",function(k,g){function h(b,a){this.x=b;this.y=a}function l(b,a,c,d){this.o=b;this.s=a;this.f=c;this.l=d}function A(b){this.C=b;this.m=l.O}function m(b){b|=0;return 0>b?"00":16>b?"0"+b.toString(16):256>b?b.toString(16):"ff"}function q(b,a,c){c=0>c?c+6:6<c?c-6:c;return m(255*(1>c?b+(a-b)*c:3>c?a:4>c?b+(a-
+b)*(4-c):b))}function D(b,a){return[n.w(0,0,a.H(0)),n.v(b,a.A,a.u(.5)),n.w(0,0,a.H(1)),n.v(b,a.A,a.u(1)),n.v(b,a.A,a.u(0))]}function r(b,a,c,d,t){var f=0,u=0;function v(c,d,t,e,g){e=e?parseInt(a.charAt(e),16):0;d=d[parseInt(a.charAt(t),16)%d.length];b.F(n[m[c]]);for(c=0;c<g.length;c++)k.m=new l(f+g[c][0]*h,u+g[c][1]*h,h,e++%4),d(k,h,c);b.G()}function e(a){if(0<=a.indexOf(g))for(var b=0;b<a.length;b++)if(0<=m.indexOf(a[b]))return!0}d=c*(void 0===d?.08:d)|0;c-=2*d;if(30>c)throw Error("Jdenticon cannot render identicons smaller than 30 pixels.");
+if(!/^[0-9a-f]{11,}$/i.test(a))throw Error("Invalid hash passed to Jdenticon.");var k=new A(b),h=0|c/4,f=f+(0|d+c/2-2*h),u=u+(0|d+c/2-2*h),n=D(parseInt(a.substr(-7),16)/268435455,t),m=[],g;for(c=0;3>c;c++){g=parseInt(a.charAt(8+c),16)%n.length;if(e([0,4])||e([2,3]))g=1;m.push(g)}v(0,w.J,2,3,[[1,0],[2,0],[2,3],[1,3],[0,1],[3,1],[3,2],[0,2]]);v(1,w.J,4,5,[[0,0],[3,0],[3,3],[0,3]]);v(2,w.N,1,null,[[1,1],[2,1],[2,2],[1,2]])}function B(){this.i=""}function x(b,a){this.j={};this.f={M:b,I:a}}function y(b,
+a,c){this.h=b;b.clearRect(0,0,a,c)}function z(){function b(a,b,f){var e=c[a]instanceof Array?c[a]:[b,f];return function(a){a=e[0]+a*(e[1]-e[0]);return 0>a?0:1<a?1:a}}var a=e.config||k.jdenticon_config||{},c=a.lightness||{},a=a.saturation;return{A:"number"==typeof a?a:.5,u:b("color",.4,.8),H:b("grayscale",.3,.9)}}function p(b,a,c){if("string"===typeof b){if(C){b=document.querySelectorAll(b);for(var d=0;d<b.length;d++)p(b[d],a,c)}}else if(b&&b.tagName&&(a=a||b.getAttribute("data-jdenticon-hash"))){var e=
+"svg"==b.tagName.toLowerCase(),d="canvas"==b.tagName.toLowerCase();if(e||d&&"getContext"in b){var d=Number(b.getAttribute("width"))||b.clientWidth||0,f=Number(b.getAttribute("height"))||b.clientHeight||0,g=e?new x(d,f):new y(b.getContext("2d"),d,f);r(g,a,Math.min(d,f),c,z());if(e){a=document.createElement("span");for(a.innerHTML=g.K(!1);b.firstChild;)b.removeChild(b.firstChild);for(a=a.firstChild.childNodes;a.length;)b.appendChild(a[0]);b.setAttribute("viewBox","0 0 "+d+" "+f)}}}}function e(){C&&
+p("svg[data-jdenticon-hash],canvas[data-jdenticon-hash]")}l.prototype={L:function(b,a,c,d){var e=this.o+this.f,f=this.s+this.f;return 1===this.l?new h(e-a-(d||0),this.s+b):2===this.l?new h(e-b-(c||0),f-a-(d||0)):3===this.l?new h(this.o+a,f-b-(c||0)):new h(this.o+b,this.s+a)}};l.O=new l(0,0,0,0);A.prototype={a:function(b,a){var c=a?-2:2,d=this.m,e=[],f;for(f=a?b.length-2:0;f<b.length&&0<=f;f+=c)e.push(d.L(b[f],b[f+1]));this.C.a(e)},b:function(b,a,c,d){this.C.b(this.m.L(b,a,c,c),c,d)},c:function(b,
+a,c,d,e){this.a([b,a,b+c,a,b+c,a+d,b,a+d],e)},g:function(b,a,c,d,e,f){b=[b+c,a,b+c,a+d,b,a+d,b,a];b.splice((e||0)%4*2,2);this.a(b,f)},D:function(b,a,c,d,e){this.a([b+c/2,a,b+c,a+d/2,b+c/2,a+d,b,a+d/2],e)}};var w={N:[function(b,a){var c=.42*a;b.a([0,0,a,0,a,a-2*c,a-c,a,0,a])},function(b,a){var c=0|.5*a;b.g(a-c,0,c,0|.8*a,2)},function(b,a){var c=0|a/3;b.c(c,c,a-c,a-c)},function(b,a){var c=0|.1*a,d=0|.25*a;b.c(d,d,a-c-d,a-c-d)},function(b,a){var c=0|.15*a,d=0|.5*a;b.b(a-d-c,a-d-c,d)},function(b,a){var c=
+.1*a,d=4*c;b.c(0,0,a,a);b.a([d,d,a-c,d,d+(a-d-c)/2,a-c],!0)},function(b,a){b.a([0,0,a,0,a,.7*a,.4*a,.4*a,.7*a,a,0,a])},function(b,a){b.g(a/2,a/2,a/2,a/2,3)},function(b,a){b.c(0,0,a,a/2);b.c(0,a/2,a/2,a/2);b.g(a/2,a/2,a/2,a/2,1)},function(b,a){var c=0|.14*a,d=0|.35*a;b.c(0,0,a,a);b.c(d,d,a-d-c,a-d-c,!0)},function(b,a){var c=.12*a,d=3*c;b.c(0,0,a,a);b.b(d,d,a-c-d,!0)},function(b,a){b.g(a/2,a/2,a/2,a/2,3)},function(b,a){var c=.25*a;b.c(0,0,a,a);b.D(c,c,a-c,a-c,!0)},function(b,a,c){var d=.4*a;c||b.b(d,
+d,1.2*a)}],J:[function(b,a){b.g(0,0,a,a,0)},function(b,a){b.g(0,a/2,a,a/2,0)},function(b,a){b.D(0,0,a,a)},function(b,a){var c=a/6;b.b(c,c,a-2*c)}]},n={P:function(b,a,c){return"#"+m(b)+m(a)+m(c)},w:function(b,a,c){if(0==a)return b=m(255*c),"#"+b+b+b;a=.5>=c?c*(a+1):c+a-c*a;c=2*c-a;return"#"+q(c,a,6*b+2)+q(c,a,6*b)+q(c,a,6*b-2)},v:function(b,a,c){var d=[.55,.5,.5,.46,.6,.55,.55][6*b+.5|0];return n.w(b,a,.5>c?c*d*2:d+(c-.5)*(1-d)*2)}};B.prototype={a:function(b){for(var a="M"+b[0].x+" "+b[0].y,c=1;c<
+b.length;c++)a+="L"+b[c].x+" "+b[c].y;this.i+=a+"Z"},b:function(b,a,c){c=c?0:1;var d=a/2;this.i+="M"+b.x+" "+(b.y+d)+"a"+d+","+d+" 0 1,"+c+" "+a+",0a"+d+","+d+" 0 1,"+c+" "+-a+",0"}};x.prototype={F:function(b){this.B=this.j[b]||(this.j[b]=new B)},G:function(){},a:function(b){this.B.a(b)},b:function(b,a,c){this.B.b(b,a,c)},K:function(b){var a=b?"":'<svg xmlns="http://www.w3.org/2000/svg" width="'+this.f.M+'" height="'+this.f.I+'" viewBox="0 0 '+this.f.M+" "+this.f.I+'" preserveAspectRatio="xMidYMid meet">',
+c;for(c in this.j)a+='<path fill="'+c+'" d="'+this.j[c].i+'"/>';return b?a:a+"</svg>"}};y.prototype={F:function(b){this.h.fillStyle=b;this.h.beginPath()},G:function(){this.h.fill()},a:function(b){var a=this.h,c;a.moveTo(b[0].x,b[0].y);for(c=1;c<b.length;c++)a.lineTo(b[c].x,b[c].y);a.closePath()},b:function(b,a,c){var d=this.h;a/=2;d.arc(b.x+a,b.y+a,a,0,2*Math.PI,c);d.closePath()}};var C="document"in k&&"querySelectorAll"in document;e.drawIcon=function(b,a,c){if(!b)throw Error("No canvas specified.");
+b=new y(b,c,c);r(b,a,c,0,z())};e.toSvg=function(b,a,c){var d=new x(a,a);r(d,b,a,c,z());return d.K()};e.update=p;e.version="1.3.2";g&&(g.fn.jdenticon=function(b,a){this.each(function(c,d){p(d,b,a)});return this});"function"===typeof setTimeout&&setTimeout(e,0);return e});
\ No newline at end of file
diff --git a/pagure/static/vendor/jdenticon/jdenticon.js b/pagure/static/vendor/jdenticon/jdenticon.js
new file mode 120000
index 0000000..068295f
--- /dev/null
+++ b/pagure/static/vendor/jdenticon/jdenticon.js
@@ -0,0 +1 @@
+jdenticon-1.3.2.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jdenticon/jdenticon.min.js b/pagure/static/vendor/jdenticon/jdenticon.min.js
new file mode 120000
index 0000000..077f64e
--- /dev/null
+++ b/pagure/static/vendor/jdenticon/jdenticon.min.js
@@ -0,0 +1 @@
+jdenticon-1.3.2.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery-ui/jquery-ui-1.12.0.js b/pagure/static/vendor/jquery-ui/jquery-ui-1.12.0.js
new file mode 100644
index 0000000..20142e4
--- /dev/null
+++ b/pagure/static/vendor/jquery-ui/jquery-ui-1.12.0.js
@@ -0,0 +1,18686 @@
+/*! jQuery UI - v1.12.0 - 2016-07-08
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function( factory ) {
+	if ( typeof define === "function" && define.amd ) {
+
+		// AMD. Register as an anonymous module.
+		define([ "jquery" ], factory );
+	} else {
+
+		// Browser globals
+		factory( jQuery );
+	}
+}(function( $ ) {
+
+$.ui = $.ui || {};
+
+var version = $.ui.version = "1.12.0";
+
+
+/*!
+ * jQuery UI Widget 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Widget
+//>>group: Core
+//>>description: Provides a factory for creating stateful widgets with a common API.
+//>>docs: http://api.jqueryui.com/jQuery.widget/
+//>>demos: http://jqueryui.com/widget/
+
+
+
+var widgetUuid = 0;
+var widgetSlice = Array.prototype.slice;
+
+$.cleanData = ( function( orig ) {
+	return function( elems ) {
+		var events, elem, i;
+		for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
+			try {
+
+				// Only trigger remove when necessary to save time
+				events = $._data( elem, "events" );
+				if ( events && events.remove ) {
+					$( elem ).triggerHandler( "remove" );
+				}
+
+			// Http://bugs.jquery.com/ticket/8235
+			} catch ( e ) {}
+		}
+		orig( elems );
+	};
+} )( $.cleanData );
+
+$.widget = function( name, base, prototype ) {
+	var existingConstructor, constructor, basePrototype;
+
+	// ProxiedPrototype allows the provided prototype to remain unmodified
+	// so that it can be used as a mixin for multiple widgets (#8876)
+	var proxiedPrototype = {};
+
+	var namespace = name.split( "." )[ 0 ];
+	name = name.split( "." )[ 1 ];
+	var fullName = namespace + "-" + name;
+
+	if ( !prototype ) {
+		prototype = base;
+		base = $.Widget;
+	}
+
+	if ( $.isArray( prototype ) ) {
+		prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
+	}
+
+	// Create selector for plugin
+	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
+		return !!$.data( elem, fullName );
+	};
+
+	$[ namespace ] = $[ namespace ] || {};
+	existingConstructor = $[ namespace ][ name ];
+	constructor = $[ namespace ][ name ] = function( options, element ) {
+
+		// Allow instantiation without "new" keyword
+		if ( !this._createWidget ) {
+			return new constructor( options, element );
+		}
+
+		// Allow instantiation without initializing for simple inheritance
+		// must use "new" keyword (the code above always passes args)
+		if ( arguments.length ) {
+			this._createWidget( options, element );
+		}
+	};
+
+	// Extend with the existing constructor to carry over any static properties
+	$.extend( constructor, existingConstructor, {
+		version: prototype.version,
+
+		// Copy the object used to create the prototype in case we need to
+		// redefine the widget later
+		_proto: $.extend( {}, prototype ),
+
+		// Track widgets that inherit from this widget in case this widget is
+		// redefined after a widget inherits from it
+		_childConstructors: []
+	} );
+
+	basePrototype = new base();
+
+	// We need to make the options hash a property directly on the new instance
+	// otherwise we'll modify the options hash on the prototype that we're
+	// inheriting from
+	basePrototype.options = $.widget.extend( {}, basePrototype.options );
+	$.each( prototype, function( prop, value ) {
+		if ( !$.isFunction( value ) ) {
+			proxiedPrototype[ prop ] = value;
+			return;
+		}
+		proxiedPrototype[ prop ] = ( function() {
+			function _super() {
+				return base.prototype[ prop ].apply( this, arguments );
+			}
+
+			function _superApply( args ) {
+				return base.prototype[ prop ].apply( this, args );
+			}
+
+			return function() {
+				var __super = this._super;
+				var __superApply = this._superApply;
+				var returnValue;
+
+				this._super = _super;
+				this._superApply = _superApply;
+
+				returnValue = value.apply( this, arguments );
+
+				this._super = __super;
+				this._superApply = __superApply;
+
+				return returnValue;
+			};
+		} )();
+	} );
+	constructor.prototype = $.widget.extend( basePrototype, {
+
+		// TODO: remove support for widgetEventPrefix
+		// always use the name + a colon as the prefix, e.g., draggable:start
+		// don't prefix for widgets that aren't DOM-based
+		widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
+	}, proxiedPrototype, {
+		constructor: constructor,
+		namespace: namespace,
+		widgetName: name,
+		widgetFullName: fullName
+	} );
+
+	// If this widget is being redefined then we need to find all widgets that
+	// are inheriting from it and redefine all of them so that they inherit from
+	// the new version of this widget. We're essentially trying to replace one
+	// level in the prototype chain.
+	if ( existingConstructor ) {
+		$.each( existingConstructor._childConstructors, function( i, child ) {
+			var childPrototype = child.prototype;
+
+			// Redefine the child widget using the same prototype that was
+			// originally used, but inherit from the new version of the base
+			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
+				child._proto );
+		} );
+
+		// Remove the list of existing child constructors from the old constructor
+		// so the old child constructors can be garbage collected
+		delete existingConstructor._childConstructors;
+	} else {
+		base._childConstructors.push( constructor );
+	}
+
+	$.widget.bridge( name, constructor );
+
+	return constructor;
+};
+
+$.widget.extend = function( target ) {
+	var input = widgetSlice.call( arguments, 1 );
+	var inputIndex = 0;
+	var inputLength = input.length;
+	var key;
+	var value;
+
+	for ( ; inputIndex < inputLength; inputIndex++ ) {
+		for ( key in input[ inputIndex ] ) {
+			value = input[ inputIndex ][ key ];
+			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
+
+				// Clone objects
+				if ( $.isPlainObject( value ) ) {
+					target[ key ] = $.isPlainObject( target[ key ] ) ?
+						$.widget.extend( {}, target[ key ], value ) :
+
+						// Don't extend strings, arrays, etc. with objects
+						$.widget.extend( {}, value );
+
+				// Copy everything else by reference
+				} else {
+					target[ key ] = value;
+				}
+			}
+		}
+	}
+	return target;
+};
+
+$.widget.bridge = function( name, object ) {
+	var fullName = object.prototype.widgetFullName || name;
+	$.fn[ name ] = function( options ) {
+		var isMethodCall = typeof options === "string";
+		var args = widgetSlice.call( arguments, 1 );
+		var returnValue = this;
+
+		if ( isMethodCall ) {
+			this.each( function() {
+				var methodValue;
+				var instance = $.data( this, fullName );
+
+				if ( options === "instance" ) {
+					returnValue = instance;
+					return false;
+				}
+
+				if ( !instance ) {
+					return $.error( "cannot call methods on " + name +
+						" prior to initialization; " +
+						"attempted to call method '" + options + "'" );
+				}
+
+				if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
+					return $.error( "no such method '" + options + "' for " + name +
+						" widget instance" );
+				}
+
+				methodValue = instance[ options ].apply( instance, args );
+
+				if ( methodValue !== instance && methodValue !== undefined ) {
+					returnValue = methodValue && methodValue.jquery ?
+						returnValue.pushStack( methodValue.get() ) :
+						methodValue;
+					return false;
+				}
+			} );
+		} else {
+
+			// Allow multiple hashes to be passed on init
+			if ( args.length ) {
+				options = $.widget.extend.apply( null, [ options ].concat( args ) );
+			}
+
+			this.each( function() {
+				var instance = $.data( this, fullName );
+				if ( instance ) {
+					instance.option( options || {} );
+					if ( instance._init ) {
+						instance._init();
+					}
+				} else {
+					$.data( this, fullName, new object( options, this ) );
+				}
+			} );
+		}
+
+		return returnValue;
+	};
+};
+
+$.Widget = function( /* options, element */ ) {};
+$.Widget._childConstructors = [];
+
+$.Widget.prototype = {
+	widgetName: "widget",
+	widgetEventPrefix: "",
+	defaultElement: "<div>",
+
+	options: {
+		classes: {},
+		disabled: false,
+
+		// Callbacks
+		create: null
+	},
+
+	_createWidget: function( options, element ) {
+		element = $( element || this.defaultElement || this )[ 0 ];
+		this.element = $( element );
+		this.uuid = widgetUuid++;
+		this.eventNamespace = "." + this.widgetName + this.uuid;
+
+		this.bindings = $();
+		this.hoverable = $();
+		this.focusable = $();
+		this.classesElementLookup = {};
+
+		if ( element !== this ) {
+			$.data( element, this.widgetFullName, this );
+			this._on( true, this.element, {
+				remove: function( event ) {
+					if ( event.target === element ) {
+						this.destroy();
+					}
+				}
+			} );
+			this.document = $( element.style ?
+
+				// Element within the document
+				element.ownerDocument :
+
+				// Element is window or document
+				element.document || element );
+			this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
+		}
+
+		this.options = $.widget.extend( {},
+			this.options,
+			this._getCreateOptions(),
+			options );
+
+		this._create();
+
+		if ( this.options.disabled ) {
+			this._setOptionDisabled( this.options.disabled );
+		}
+
+		this._trigger( "create", null, this._getCreateEventData() );
+		this._init();
+	},
+
+	_getCreateOptions: function() {
+		return {};
+	},
+
+	_getCreateEventData: $.noop,
+
+	_create: $.noop,
+
+	_init: $.noop,
+
+	destroy: function() {
+		var that = this;
+
+		this._destroy();
+		$.each( this.classesElementLookup, function( key, value ) {
+			that._removeClass( value, key );
+		} );
+
+		// We can probably remove the unbind calls in 2.0
+		// all event bindings should go through this._on()
+		this.element
+			.off( this.eventNamespace )
+			.removeData( this.widgetFullName );
+		this.widget()
+			.off( this.eventNamespace )
+			.removeAttr( "aria-disabled" );
+
+		// Clean up events and states
+		this.bindings.off( this.eventNamespace );
+	},
+
+	_destroy: $.noop,
+
+	widget: function() {
+		return this.element;
+	},
+
+	option: function( key, value ) {
+		var options = key;
+		var parts;
+		var curOption;
+		var i;
+
+		if ( arguments.length === 0 ) {
+
+			// Don't return a reference to the internal hash
+			return $.widget.extend( {}, this.options );
+		}
+
+		if ( typeof key === "string" ) {
+
+			// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
+			options = {};
+			parts = key.split( "." );
+			key = parts.shift();
+			if ( parts.length ) {
+				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
+				for ( i = 0; i < parts.length - 1; i++ ) {
+					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
+					curOption = curOption[ parts[ i ] ];
+				}
+				key = parts.pop();
+				if ( arguments.length === 1 ) {
+					return curOption[ key ] === undefined ? null : curOption[ key ];
+				}
+				curOption[ key ] = value;
+			} else {
+				if ( arguments.length === 1 ) {
+					return this.options[ key ] === undefined ? null : this.options[ key ];
+				}
+				options[ key ] = value;
+			}
+		}
+
+		this._setOptions( options );
+
+		return this;
+	},
+
+	_setOptions: function( options ) {
+		var key;
+
+		for ( key in options ) {
+			this._setOption( key, options[ key ] );
+		}
+
+		return this;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "classes" ) {
+			this._setOptionClasses( value );
+		}
+
+		this.options[ key ] = value;
+
+		if ( key === "disabled" ) {
+			this._setOptionDisabled( value );
+		}
+
+		return this;
+	},
+
+	_setOptionClasses: function( value ) {
+		var classKey, elements, currentElements;
+
+		for ( classKey in value ) {
+			currentElements = this.classesElementLookup[ classKey ];
+			if ( value[ classKey ] === this.options.classes[ classKey ] ||
+					!currentElements ||
+					!currentElements.length ) {
+				continue;
+			}
+
+			// We are doing this to create a new jQuery object because the _removeClass() call
+			// on the next line is going to destroy the reference to the current elements being
+			// tracked. We need to save a copy of this collection so that we can add the new classes
+			// below.
+			elements = $( currentElements.get() );
+			this._removeClass( currentElements, classKey );
+
+			// We don't use _addClass() here, because that uses this.options.classes
+			// for generating the string of classes. We want to use the value passed in from
+			// _setOption(), this is the new value of the classes option which was passed to
+			// _setOption(). We pass this value directly to _classes().
+			elements.addClass( this._classes( {
+				element: elements,
+				keys: classKey,
+				classes: value,
+				add: true
+			} ) );
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
+
+		// If the widget is becoming disabled, then nothing is interactive
+		if ( value ) {
+			this._removeClass( this.hoverable, null, "ui-state-hover" );
+			this._removeClass( this.focusable, null, "ui-state-focus" );
+		}
+	},
+
+	enable: function() {
+		return this._setOptions( { disabled: false } );
+	},
+
+	disable: function() {
+		return this._setOptions( { disabled: true } );
+	},
+
+	_classes: function( options ) {
+		var full = [];
+		var that = this;
+
+		options = $.extend( {
+			element: this.element,
+			classes: this.options.classes || {}
+		}, options );
+
+		function processClassString( classes, checkOption ) {
+			var current, i;
+			for ( i = 0; i < classes.length; i++ ) {
+				current = that.classesElementLookup[ classes[ i ] ] || $();
+				if ( options.add ) {
+					current = $( $.unique( current.get().concat( options.element.get() ) ) );
+				} else {
+					current = $( current.not( options.element ).get() );
+				}
+				that.classesElementLookup[ classes[ i ] ] = current;
+				full.push( classes[ i ] );
+				if ( checkOption && options.classes[ classes[ i ] ] ) {
+					full.push( options.classes[ classes[ i ] ] );
+				}
+			}
+		}
+
+		if ( options.keys ) {
+			processClassString( options.keys.match( /\S+/g ) || [], true );
+		}
+		if ( options.extra ) {
+			processClassString( options.extra.match( /\S+/g ) || [] );
+		}
+
+		return full.join( " " );
+	},
+
+	_removeClass: function( element, keys, extra ) {
+		return this._toggleClass( element, keys, extra, false );
+	},
+
+	_addClass: function( element, keys, extra ) {
+		return this._toggleClass( element, keys, extra, true );
+	},
+
+	_toggleClass: function( element, keys, extra, add ) {
+		add = ( typeof add === "boolean" ) ? add : extra;
+		var shift = ( typeof element === "string" || element === null ),
+			options = {
+				extra: shift ? keys : extra,
+				keys: shift ? element : keys,
+				element: shift ? this.element : element,
+				add: add
+			};
+		options.element.toggleClass( this._classes( options ), add );
+		return this;
+	},
+
+	_on: function( suppressDisabledCheck, element, handlers ) {
+		var delegateElement;
+		var instance = this;
+
+		// No suppressDisabledCheck flag, shuffle arguments
+		if ( typeof suppressDisabledCheck !== "boolean" ) {
+			handlers = element;
+			element = suppressDisabledCheck;
+			suppressDisabledCheck = false;
+		}
+
+		// No element argument, shuffle and use this.element
+		if ( !handlers ) {
+			handlers = element;
+			element = this.element;
+			delegateElement = this.widget();
+		} else {
+			element = delegateElement = $( element );
+			this.bindings = this.bindings.add( element );
+		}
+
+		$.each( handlers, function( event, handler ) {
+			function handlerProxy() {
+
+				// Allow widgets to customize the disabled handling
+				// - disabled as an array instead of boolean
+				// - disabled class as method for disabling individual parts
+				if ( !suppressDisabledCheck &&
+						( instance.options.disabled === true ||
+						$( this ).hasClass( "ui-state-disabled" ) ) ) {
+					return;
+				}
+				return ( typeof handler === "string" ? instance[ handler ] : handler )
+					.apply( instance, arguments );
+			}
+
+			// Copy the guid so direct unbinding works
+			if ( typeof handler !== "string" ) {
+				handlerProxy.guid = handler.guid =
+					handler.guid || handlerProxy.guid || $.guid++;
+			}
+
+			var match = event.match( /^([\w:-]*)\s*(.*)$/ );
+			var eventName = match[ 1 ] + instance.eventNamespace;
+			var selector = match[ 2 ];
+
+			if ( selector ) {
+				delegateElement.on( eventName, selector, handlerProxy );
+			} else {
+				element.on( eventName, handlerProxy );
+			}
+		} );
+	},
+
+	_off: function( element, eventName ) {
+		eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
+			this.eventNamespace;
+		element.off( eventName ).off( eventName );
+
+		// Clear the stack to avoid memory leaks (#10056)
+		this.bindings = $( this.bindings.not( element ).get() );
+		this.focusable = $( this.focusable.not( element ).get() );
+		this.hoverable = $( this.hoverable.not( element ).get() );
+	},
+
+	_delay: function( handler, delay ) {
+		function handlerProxy() {
+			return ( typeof handler === "string" ? instance[ handler ] : handler )
+				.apply( instance, arguments );
+		}
+		var instance = this;
+		return setTimeout( handlerProxy, delay || 0 );
+	},
+
+	_hoverable: function( element ) {
+		this.hoverable = this.hoverable.add( element );
+		this._on( element, {
+			mouseenter: function( event ) {
+				this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
+			},
+			mouseleave: function( event ) {
+				this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
+			}
+		} );
+	},
+
+	_focusable: function( element ) {
+		this.focusable = this.focusable.add( element );
+		this._on( element, {
+			focusin: function( event ) {
+				this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
+			},
+			focusout: function( event ) {
+				this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
+			}
+		} );
+	},
+
+	_trigger: function( type, event, data ) {
+		var prop, orig;
+		var callback = this.options[ type ];
+
+		data = data || {};
+		event = $.Event( event );
+		event.type = ( type === this.widgetEventPrefix ?
+			type :
+			this.widgetEventPrefix + type ).toLowerCase();
+
+		// The original event may come from any element
+		// so we need to reset the target on the new event
+		event.target = this.element[ 0 ];
+
+		// Copy original event properties over to the new event
+		orig = event.originalEvent;
+		if ( orig ) {
+			for ( prop in orig ) {
+				if ( !( prop in event ) ) {
+					event[ prop ] = orig[ prop ];
+				}
+			}
+		}
+
+		this.element.trigger( event, data );
+		return !( $.isFunction( callback ) &&
+			callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
+			event.isDefaultPrevented() );
+	}
+};
+
+$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
+	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
+		if ( typeof options === "string" ) {
+			options = { effect: options };
+		}
+
+		var hasOptions;
+		var effectName = !options ?
+			method :
+			options === true || typeof options === "number" ?
+				defaultEffect :
+				options.effect || defaultEffect;
+
+		options = options || {};
+		if ( typeof options === "number" ) {
+			options = { duration: options };
+		}
+
+		hasOptions = !$.isEmptyObject( options );
+		options.complete = callback;
+
+		if ( options.delay ) {
+			element.delay( options.delay );
+		}
+
+		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
+			element[ method ]( options );
+		} else if ( effectName !== method && element[ effectName ] ) {
+			element[ effectName ]( options.duration, options.easing, callback );
+		} else {
+			element.queue( function( next ) {
+				$( this )[ method ]();
+				if ( callback ) {
+					callback.call( element[ 0 ] );
+				}
+				next();
+			} );
+		}
+	};
+} );
+
+var widget = $.widget;
+
+
+/*!
+ * jQuery UI Position 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * http://api.jqueryui.com/position/
+ */
+
+//>>label: Position
+//>>group: Core
+//>>description: Positions elements relative to other elements.
+//>>docs: http://api.jqueryui.com/position/
+//>>demos: http://jqueryui.com/position/
+
+
+( function() {
+var cachedScrollbarWidth, supportsOffsetFractions,
+	max = Math.max,
+	abs = Math.abs,
+	round = Math.round,
+	rhorizontal = /left|center|right/,
+	rvertical = /top|center|bottom/,
+	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
+	rposition = /^\w+/,
+	rpercent = /%$/,
+	_position = $.fn.position;
+
+// Support: IE <=9 only
+supportsOffsetFractions = function() {
+	var element = $( "<div>" )
+			.css( "position", "absolute" )
+			.appendTo( "body" )
+			.offset( {
+				top: 1.5,
+				left: 1.5
+			} ),
+		support = element.offset().top === 1.5;
+
+	element.remove();
+
+	supportsOffsetFractions = function() {
+		return support;
+	};
+
+	return support;
+};
+
+function getOffsets( offsets, width, height ) {
+	return [
+		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
+		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
+	];
+}
+
+function parseCss( element, property ) {
+	return parseInt( $.css( element, property ), 10 ) || 0;
+}
+
+function getDimensions( elem ) {
+	var raw = elem[ 0 ];
+	if ( raw.nodeType === 9 ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: 0, left: 0 }
+		};
+	}
+	if ( $.isWindow( raw ) ) {
+		return {
+			width: elem.width(),
+			height: elem.height(),
+			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
+		};
+	}
+	if ( raw.preventDefault ) {
+		return {
+			width: 0,
+			height: 0,
+			offset: { top: raw.pageY, left: raw.pageX }
+		};
+	}
+	return {
+		width: elem.outerWidth(),
+		height: elem.outerHeight(),
+		offset: elem.offset()
+	};
+}
+
+$.position = {
+	scrollbarWidth: function() {
+		if ( cachedScrollbarWidth !== undefined ) {
+			return cachedScrollbarWidth;
+		}
+		var w1, w2,
+			div = $( "<div " +
+				"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" +
+				"<div style='height:100px;width:auto;'></div></div>" ),
+			innerDiv = div.children()[ 0 ];
+
+		$( "body" ).append( div );
+		w1 = innerDiv.offsetWidth;
+		div.css( "overflow", "scroll" );
+
+		w2 = innerDiv.offsetWidth;
+
+		if ( w1 === w2 ) {
+			w2 = div[ 0 ].clientWidth;
+		}
+
+		div.remove();
+
+		return ( cachedScrollbarWidth = w1 - w2 );
+	},
+	getScrollInfo: function( within ) {
+		var overflowX = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-x" ),
+			overflowY = within.isWindow || within.isDocument ? "" :
+				within.element.css( "overflow-y" ),
+			hasOverflowX = overflowX === "scroll" ||
+				( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ),
+			hasOverflowY = overflowY === "scroll" ||
+				( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight );
+		return {
+			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
+			height: hasOverflowX ? $.position.scrollbarWidth() : 0
+		};
+	},
+	getWithinInfo: function( element ) {
+		var withinElement = $( element || window ),
+			isWindow = $.isWindow( withinElement[ 0 ] ),
+			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,
+			hasOffset = !isWindow && !isDocument;
+		return {
+			element: withinElement,
+			isWindow: isWindow,
+			isDocument: isDocument,
+			offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },
+			scrollLeft: withinElement.scrollLeft(),
+			scrollTop: withinElement.scrollTop(),
+			width: withinElement.outerWidth(),
+			height: withinElement.outerHeight()
+		};
+	}
+};
+
+$.fn.position = function( options ) {
+	if ( !options || !options.of ) {
+		return _position.apply( this, arguments );
+	}
+
+	// Make a copy, we don't want to modify arguments
+	options = $.extend( {}, options );
+
+	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
+		target = $( options.of ),
+		within = $.position.getWithinInfo( options.within ),
+		scrollInfo = $.position.getScrollInfo( within ),
+		collision = ( options.collision || "flip" ).split( " " ),
+		offsets = {};
+
+	dimensions = getDimensions( target );
+	if ( target[ 0 ].preventDefault ) {
+
+		// Force left top to allow flipping
+		options.at = "left top";
+	}
+	targetWidth = dimensions.width;
+	targetHeight = dimensions.height;
+	targetOffset = dimensions.offset;
+
+	// Clone to reuse original targetOffset later
+	basePosition = $.extend( {}, targetOffset );
+
+	// Force my and at to have valid horizontal and vertical positions
+	// if a value is missing or invalid, it will be converted to center
+	$.each( [ "my", "at" ], function() {
+		var pos = ( options[ this ] || "" ).split( " " ),
+			horizontalOffset,
+			verticalOffset;
+
+		if ( pos.length === 1 ) {
+			pos = rhorizontal.test( pos[ 0 ] ) ?
+				pos.concat( [ "center" ] ) :
+				rvertical.test( pos[ 0 ] ) ?
+					[ "center" ].concat( pos ) :
+					[ "center", "center" ];
+		}
+		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
+		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
+
+		// Calculate offsets
+		horizontalOffset = roffset.exec( pos[ 0 ] );
+		verticalOffset = roffset.exec( pos[ 1 ] );
+		offsets[ this ] = [
+			horizontalOffset ? horizontalOffset[ 0 ] : 0,
+			verticalOffset ? verticalOffset[ 0 ] : 0
+		];
+
+		// Reduce to just the positions without the offsets
+		options[ this ] = [
+			rposition.exec( pos[ 0 ] )[ 0 ],
+			rposition.exec( pos[ 1 ] )[ 0 ]
+		];
+	} );
+
+	// Normalize collision option
+	if ( collision.length === 1 ) {
+		collision[ 1 ] = collision[ 0 ];
+	}
+
+	if ( options.at[ 0 ] === "right" ) {
+		basePosition.left += targetWidth;
+	} else if ( options.at[ 0 ] === "center" ) {
+		basePosition.left += targetWidth / 2;
+	}
+
+	if ( options.at[ 1 ] === "bottom" ) {
+		basePosition.top += targetHeight;
+	} else if ( options.at[ 1 ] === "center" ) {
+		basePosition.top += targetHeight / 2;
+	}
+
+	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
+	basePosition.left += atOffset[ 0 ];
+	basePosition.top += atOffset[ 1 ];
+
+	return this.each( function() {
+		var collisionPosition, using,
+			elem = $( this ),
+			elemWidth = elem.outerWidth(),
+			elemHeight = elem.outerHeight(),
+			marginLeft = parseCss( this, "marginLeft" ),
+			marginTop = parseCss( this, "marginTop" ),
+			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) +
+				scrollInfo.width,
+			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) +
+				scrollInfo.height,
+			position = $.extend( {}, basePosition ),
+			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
+
+		if ( options.my[ 0 ] === "right" ) {
+			position.left -= elemWidth;
+		} else if ( options.my[ 0 ] === "center" ) {
+			position.left -= elemWidth / 2;
+		}
+
+		if ( options.my[ 1 ] === "bottom" ) {
+			position.top -= elemHeight;
+		} else if ( options.my[ 1 ] === "center" ) {
+			position.top -= elemHeight / 2;
+		}
+
+		position.left += myOffset[ 0 ];
+		position.top += myOffset[ 1 ];
+
+		// If the browser doesn't support fractions, then round for consistent results
+		if ( !supportsOffsetFractions() ) {
+			position.left = round( position.left );
+			position.top = round( position.top );
+		}
+
+		collisionPosition = {
+			marginLeft: marginLeft,
+			marginTop: marginTop
+		};
+
+		$.each( [ "left", "top" ], function( i, dir ) {
+			if ( $.ui.position[ collision[ i ] ] ) {
+				$.ui.position[ collision[ i ] ][ dir ]( position, {
+					targetWidth: targetWidth,
+					targetHeight: targetHeight,
+					elemWidth: elemWidth,
+					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
+					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
+					my: options.my,
+					at: options.at,
+					within: within,
+					elem: elem
+				} );
+			}
+		} );
+
+		if ( options.using ) {
+
+			// Adds feedback as second argument to using callback, if present
+			using = function( props ) {
+				var left = targetOffset.left - position.left,
+					right = left + targetWidth - elemWidth,
+					top = targetOffset.top - position.top,
+					bottom = top + targetHeight - elemHeight,
+					feedback = {
+						target: {
+							element: target,
+							left: targetOffset.left,
+							top: targetOffset.top,
+							width: targetWidth,
+							height: targetHeight
+						},
+						element: {
+							element: elem,
+							left: position.left,
+							top: position.top,
+							width: elemWidth,
+							height: elemHeight
+						},
+						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
+						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
+					};
+				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
+					feedback.horizontal = "center";
+				}
+				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
+					feedback.vertical = "middle";
+				}
+				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
+					feedback.important = "horizontal";
+				} else {
+					feedback.important = "vertical";
+				}
+				options.using.call( this, props, feedback );
+			};
+		}
+
+		elem.offset( $.extend( position, { using: using } ) );
+	} );
+};
+
+$.ui.position = {
+	fit: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
+				outerWidth = within.width,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = withinOffset - collisionPosLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
+				newOverRight;
+
+			// Element is wider than within
+			if ( data.collisionWidth > outerWidth ) {
+
+				// Element is initially over the left side of within
+				if ( overLeft > 0 && overRight <= 0 ) {
+					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth -
+						withinOffset;
+					position.left += overLeft - newOverRight;
+
+				// Element is initially over right side of within
+				} else if ( overRight > 0 && overLeft <= 0 ) {
+					position.left = withinOffset;
+
+				// Element is initially over both left and right sides of within
+				} else {
+					if ( overLeft > overRight ) {
+						position.left = withinOffset + outerWidth - data.collisionWidth;
+					} else {
+						position.left = withinOffset;
+					}
+				}
+
+			// Too far left -> align with left edge
+			} else if ( overLeft > 0 ) {
+				position.left += overLeft;
+
+			// Too far right -> align with right edge
+			} else if ( overRight > 0 ) {
+				position.left -= overRight;
+
+			// Adjust based on position and margin
+			} else {
+				position.left = max( position.left - collisionPosLeft, position.left );
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
+				outerHeight = data.within.height,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = withinOffset - collisionPosTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
+				newOverBottom;
+
+			// Element is taller than within
+			if ( data.collisionHeight > outerHeight ) {
+
+				// Element is initially over the top of within
+				if ( overTop > 0 && overBottom <= 0 ) {
+					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
+						withinOffset;
+					position.top += overTop - newOverBottom;
+
+				// Element is initially over bottom of within
+				} else if ( overBottom > 0 && overTop <= 0 ) {
+					position.top = withinOffset;
+
+				// Element is initially over both top and bottom of within
+				} else {
+					if ( overTop > overBottom ) {
+						position.top = withinOffset + outerHeight - data.collisionHeight;
+					} else {
+						position.top = withinOffset;
+					}
+				}
+
+			// Too far up -> align with top
+			} else if ( overTop > 0 ) {
+				position.top += overTop;
+
+			// Too far down -> align with bottom edge
+			} else if ( overBottom > 0 ) {
+				position.top -= overBottom;
+
+			// Adjust based on position and margin
+			} else {
+				position.top = max( position.top - collisionPosTop, position.top );
+			}
+		}
+	},
+	flip: {
+		left: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.left + within.scrollLeft,
+				outerWidth = within.width,
+				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
+				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
+				overLeft = collisionPosLeft - offsetLeft,
+				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
+				myOffset = data.my[ 0 ] === "left" ?
+					-data.elemWidth :
+					data.my[ 0 ] === "right" ?
+						data.elemWidth :
+						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					data.at[ 0 ] === "right" ?
+						-data.targetWidth :
+						0,
+				offset = -2 * data.offset[ 0 ],
+				newOverRight,
+				newOverLeft;
+
+			if ( overLeft < 0 ) {
+				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -
+					outerWidth - withinOffset;
+				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			} else if ( overRight > 0 ) {
+				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +
+					atOffset + offset - offsetLeft;
+				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
+					position.left += myOffset + atOffset + offset;
+				}
+			}
+		},
+		top: function( position, data ) {
+			var within = data.within,
+				withinOffset = within.offset.top + within.scrollTop,
+				outerHeight = within.height,
+				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
+				collisionPosTop = position.top - data.collisionPosition.marginTop,
+				overTop = collisionPosTop - offsetTop,
+				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
+				top = data.my[ 1 ] === "top",
+				myOffset = top ?
+					-data.elemHeight :
+					data.my[ 1 ] === "bottom" ?
+						data.elemHeight :
+						0,
+				atOffset = data.at[ 1 ] === "top" ?
+					data.targetHeight :
+					data.at[ 1 ] === "bottom" ?
+						-data.targetHeight :
+						0,
+				offset = -2 * data.offset[ 1 ],
+				newOverTop,
+				newOverBottom;
+			if ( overTop < 0 ) {
+				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -
+					outerHeight - withinOffset;
+				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			} else if ( overBottom > 0 ) {
+				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +
+					offset - offsetTop;
+				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
+					position.top += myOffset + atOffset + offset;
+				}
+			}
+		}
+	},
+	flipfit: {
+		left: function() {
+			$.ui.position.flip.left.apply( this, arguments );
+			$.ui.position.fit.left.apply( this, arguments );
+		},
+		top: function() {
+			$.ui.position.flip.top.apply( this, arguments );
+			$.ui.position.fit.top.apply( this, arguments );
+		}
+	}
+};
+
+} )();
+
+var position = $.ui.position;
+
+
+/*!
+ * jQuery UI :data 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: :data Selector
+//>>group: Core
+//>>description: Selects elements which have data stored under the specified key.
+//>>docs: http://api.jqueryui.com/data-selector/
+
+
+var data = $.extend( $.expr[ ":" ], {
+	data: $.expr.createPseudo ?
+		$.expr.createPseudo( function( dataName ) {
+			return function( elem ) {
+				return !!$.data( elem, dataName );
+			};
+		} ) :
+
+		// Support: jQuery <1.8
+		function( elem, i, match ) {
+			return !!$.data( elem, match[ 3 ] );
+		}
+} );
+
+/*!
+ * jQuery UI Disable Selection 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: disableSelection
+//>>group: Core
+//>>description: Disable selection of text content within the set of matched elements.
+//>>docs: http://api.jqueryui.com/disableSelection/
+
+// This file is deprecated
+
+
+var disableSelection = $.fn.extend( {
+	disableSelection: ( function() {
+		var eventType = "onselectstart" in document.createElement( "div" ) ?
+			"selectstart" :
+			"mousedown";
+
+		return function() {
+			return this.on( eventType + ".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			} );
+		};
+	} )(),
+
+	enableSelection: function() {
+		return this.off( ".ui-disableSelection" );
+	}
+} );
+
+
+/*!
+ * jQuery UI Effects 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Effects Core
+//>>group: Effects
+// jscs:disable maximumLineLength
+//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/category/effects-core/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var dataSpace = "ui-effects-",
+	dataSpaceStyle = "ui-effects-style",
+	dataSpaceAnimated = "ui-effects-animated",
+
+	// Create a local jQuery because jQuery Color relies on it and the
+	// global may not exist with AMD and a custom build (#10199)
+	jQuery = $;
+
+$.effects = {
+	effect: {}
+};
+
+/*!
+ * jQuery Color Animations v2.1.2
+ * https://github.com/jquery/jquery-color
+ *
+ * Copyright 2014 jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ * Date: Wed Jan 16 08:47:09 2013 -0600
+ */
+( function( jQuery, undefined ) {
+
+	var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " +
+		"borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",
+
+	// Plusequals test for += 100 -= 100
+	rplusequals = /^([\-+])=\s*(\d+\.?\d*)/,
+
+	// A set of RE's that can match strings and generate color tuples.
+	stringParsers = [ {
+			re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ],
+					execResult[ 3 ],
+					execResult[ 4 ]
+				];
+			}
+		}, {
+			re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ] * 2.55,
+					execResult[ 2 ] * 2.55,
+					execResult[ 3 ] * 2.55,
+					execResult[ 4 ]
+				];
+			}
+		}, {
+
+			// This regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+
+			// This regex ignores A-F because it's compared against an already lowercased string
+			re: /#([a-f0-9])([a-f0-9])([a-f0-9])/,
+			parse: function( execResult ) {
+				return [
+					parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ),
+					parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ),
+					parseInt( execResult[ 3 ] + execResult[ 3 ], 16 )
+				];
+			}
+		}, {
+			re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,
+			space: "hsla",
+			parse: function( execResult ) {
+				return [
+					execResult[ 1 ],
+					execResult[ 2 ] / 100,
+					execResult[ 3 ] / 100,
+					execResult[ 4 ]
+				];
+			}
+		} ],
+
+	// JQuery.Color( )
+	color = jQuery.Color = function( color, green, blue, alpha ) {
+		return new jQuery.Color.fn.parse( color, green, blue, alpha );
+	},
+	spaces = {
+		rgba: {
+			props: {
+				red: {
+					idx: 0,
+					type: "byte"
+				},
+				green: {
+					idx: 1,
+					type: "byte"
+				},
+				blue: {
+					idx: 2,
+					type: "byte"
+				}
+			}
+		},
+
+		hsla: {
+			props: {
+				hue: {
+					idx: 0,
+					type: "degrees"
+				},
+				saturation: {
+					idx: 1,
+					type: "percent"
+				},
+				lightness: {
+					idx: 2,
+					type: "percent"
+				}
+			}
+		}
+	},
+	propTypes = {
+		"byte": {
+			floor: true,
+			max: 255
+		},
+		"percent": {
+			max: 1
+		},
+		"degrees": {
+			mod: 360,
+			floor: true
+		}
+	},
+	support = color.support = {},
+
+	// Element for support tests
+	supportElem = jQuery( "<p>" )[ 0 ],
+
+	// Colors = jQuery.Color.names
+	colors,
+
+	// Local aliases of functions called often
+	each = jQuery.each;
+
+// Determine rgba support immediately
+supportElem.style.cssText = "background-color:rgba(1,1,1,.5)";
+support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1;
+
+// Define cache name and alpha properties
+// for rgba and hsla spaces
+each( spaces, function( spaceName, space ) {
+	space.cache = "_" + spaceName;
+	space.props.alpha = {
+		idx: 3,
+		type: "percent",
+		def: 1
+	};
+} );
+
+function clamp( value, prop, allowEmpty ) {
+	var type = propTypes[ prop.type ] || {};
+
+	if ( value == null ) {
+		return ( allowEmpty || !prop.def ) ? null : prop.def;
+	}
+
+	// ~~ is an short way of doing floor for positive numbers
+	value = type.floor ? ~~value : parseFloat( value );
+
+	// IE will pass in empty strings as value for alpha,
+	// which will hit this case
+	if ( isNaN( value ) ) {
+		return prop.def;
+	}
+
+	if ( type.mod ) {
+
+		// We add mod before modding to make sure that negatives values
+		// get converted properly: -10 -> 350
+		return ( value + type.mod ) % type.mod;
+	}
+
+	// For now all property types without mod have min and max
+	return 0 > value ? 0 : type.max < value ? type.max : value;
+}
+
+function stringParse( string ) {
+	var inst = color(),
+		rgba = inst._rgba = [];
+
+	string = string.toLowerCase();
+
+	each( stringParsers, function( i, parser ) {
+		var parsed,
+			match = parser.re.exec( string ),
+			values = match && parser.parse( match ),
+			spaceName = parser.space || "rgba";
+
+		if ( values ) {
+			parsed = inst[ spaceName ]( values );
+
+			// If this was an rgba parse the assignment might happen twice
+			// oh well....
+			inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ];
+			rgba = inst._rgba = parsed._rgba;
+
+			// Exit each( stringParsers ) here because we matched
+			return false;
+		}
+	} );
+
+	// Found a stringParser that handled it
+	if ( rgba.length ) {
+
+		// If this came from a parsed string, force "transparent" when alpha is 0
+		// chrome, (and maybe others) return "transparent" as rgba(0,0,0,0)
+		if ( rgba.join() === "0,0,0,0" ) {
+			jQuery.extend( rgba, colors.transparent );
+		}
+		return inst;
+	}
+
+	// Named colors
+	return colors[ string ];
+}
+
+color.fn = jQuery.extend( color.prototype, {
+	parse: function( red, green, blue, alpha ) {
+		if ( red === undefined ) {
+			this._rgba = [ null, null, null, null ];
+			return this;
+		}
+		if ( red.jquery || red.nodeType ) {
+			red = jQuery( red ).css( green );
+			green = undefined;
+		}
+
+		var inst = this,
+			type = jQuery.type( red ),
+			rgba = this._rgba = [];
+
+		// More than 1 argument specified - assume ( red, green, blue, alpha )
+		if ( green !== undefined ) {
+			red = [ red, green, blue, alpha ];
+			type = "array";
+		}
+
+		if ( type === "string" ) {
+			return this.parse( stringParse( red ) || colors._default );
+		}
+
+		if ( type === "array" ) {
+			each( spaces.rgba.props, function( key, prop ) {
+				rgba[ prop.idx ] = clamp( red[ prop.idx ], prop );
+			} );
+			return this;
+		}
+
+		if ( type === "object" ) {
+			if ( red instanceof color ) {
+				each( spaces, function( spaceName, space ) {
+					if ( red[ space.cache ] ) {
+						inst[ space.cache ] = red[ space.cache ].slice();
+					}
+				} );
+			} else {
+				each( spaces, function( spaceName, space ) {
+					var cache = space.cache;
+					each( space.props, function( key, prop ) {
+
+						// If the cache doesn't exist, and we know how to convert
+						if ( !inst[ cache ] && space.to ) {
+
+							// If the value was null, we don't need to copy it
+							// if the key was alpha, we don't need to copy it either
+							if ( key === "alpha" || red[ key ] == null ) {
+								return;
+							}
+							inst[ cache ] = space.to( inst._rgba );
+						}
+
+						// This is the only case where we allow nulls for ALL properties.
+						// call clamp with alwaysAllowEmpty
+						inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true );
+					} );
+
+					// Everything defined but alpha?
+					if ( inst[ cache ] &&
+							jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) {
+
+						// Use the default of 1
+						inst[ cache ][ 3 ] = 1;
+						if ( space.from ) {
+							inst._rgba = space.from( inst[ cache ] );
+						}
+					}
+				} );
+			}
+			return this;
+		}
+	},
+	is: function( compare ) {
+		var is = color( compare ),
+			same = true,
+			inst = this;
+
+		each( spaces, function( _, space ) {
+			var localCache,
+				isCache = is[ space.cache ];
+			if ( isCache ) {
+				localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || [];
+				each( space.props, function( _, prop ) {
+					if ( isCache[ prop.idx ] != null ) {
+						same = ( isCache[ prop.idx ] === localCache[ prop.idx ] );
+						return same;
+					}
+				} );
+			}
+			return same;
+		} );
+		return same;
+	},
+	_space: function() {
+		var used = [],
+			inst = this;
+		each( spaces, function( spaceName, space ) {
+			if ( inst[ space.cache ] ) {
+				used.push( spaceName );
+			}
+		} );
+		return used.pop();
+	},
+	transition: function( other, distance ) {
+		var end = color( other ),
+			spaceName = end._space(),
+			space = spaces[ spaceName ],
+			startColor = this.alpha() === 0 ? color( "transparent" ) : this,
+			start = startColor[ space.cache ] || space.to( startColor._rgba ),
+			result = start.slice();
+
+		end = end[ space.cache ];
+		each( space.props, function( key, prop ) {
+			var index = prop.idx,
+				startValue = start[ index ],
+				endValue = end[ index ],
+				type = propTypes[ prop.type ] || {};
+
+			// If null, don't override start value
+			if ( endValue === null ) {
+				return;
+			}
+
+			// If null - use end
+			if ( startValue === null ) {
+				result[ index ] = endValue;
+			} else {
+				if ( type.mod ) {
+					if ( endValue - startValue > type.mod / 2 ) {
+						startValue += type.mod;
+					} else if ( startValue - endValue > type.mod / 2 ) {
+						startValue -= type.mod;
+					}
+				}
+				result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop );
+			}
+		} );
+		return this[ spaceName ]( result );
+	},
+	blend: function( opaque ) {
+
+		// If we are already opaque - return ourself
+		if ( this._rgba[ 3 ] === 1 ) {
+			return this;
+		}
+
+		var rgb = this._rgba.slice(),
+			a = rgb.pop(),
+			blend = color( opaque )._rgba;
+
+		return color( jQuery.map( rgb, function( v, i ) {
+			return ( 1 - a ) * blend[ i ] + a * v;
+		} ) );
+	},
+	toRgbaString: function() {
+		var prefix = "rgba(",
+			rgba = jQuery.map( this._rgba, function( v, i ) {
+				return v == null ? ( i > 2 ? 1 : 0 ) : v;
+			} );
+
+		if ( rgba[ 3 ] === 1 ) {
+			rgba.pop();
+			prefix = "rgb(";
+		}
+
+		return prefix + rgba.join() + ")";
+	},
+	toHslaString: function() {
+		var prefix = "hsla(",
+			hsla = jQuery.map( this.hsla(), function( v, i ) {
+				if ( v == null ) {
+					v = i > 2 ? 1 : 0;
+				}
+
+				// Catch 1 and 2
+				if ( i && i < 3 ) {
+					v = Math.round( v * 100 ) + "%";
+				}
+				return v;
+			} );
+
+		if ( hsla[ 3 ] === 1 ) {
+			hsla.pop();
+			prefix = "hsl(";
+		}
+		return prefix + hsla.join() + ")";
+	},
+	toHexString: function( includeAlpha ) {
+		var rgba = this._rgba.slice(),
+			alpha = rgba.pop();
+
+		if ( includeAlpha ) {
+			rgba.push( ~~( alpha * 255 ) );
+		}
+
+		return "#" + jQuery.map( rgba, function( v ) {
+
+			// Default to 0 when nulls exist
+			v = ( v || 0 ).toString( 16 );
+			return v.length === 1 ? "0" + v : v;
+		} ).join( "" );
+	},
+	toString: function() {
+		return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString();
+	}
+} );
+color.fn.parse.prototype = color.fn;
+
+// Hsla conversions adapted from:
+// https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021
+
+function hue2rgb( p, q, h ) {
+	h = ( h + 1 ) % 1;
+	if ( h * 6 < 1 ) {
+		return p + ( q - p ) * h * 6;
+	}
+	if ( h * 2 < 1 ) {
+		return q;
+	}
+	if ( h * 3 < 2 ) {
+		return p + ( q - p ) * ( ( 2 / 3 ) - h ) * 6;
+	}
+	return p;
+}
+
+spaces.hsla.to = function( rgba ) {
+	if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) {
+		return [ null, null, null, rgba[ 3 ] ];
+	}
+	var r = rgba[ 0 ] / 255,
+		g = rgba[ 1 ] / 255,
+		b = rgba[ 2 ] / 255,
+		a = rgba[ 3 ],
+		max = Math.max( r, g, b ),
+		min = Math.min( r, g, b ),
+		diff = max - min,
+		add = max + min,
+		l = add * 0.5,
+		h, s;
+
+	if ( min === max ) {
+		h = 0;
+	} else if ( r === max ) {
+		h = ( 60 * ( g - b ) / diff ) + 360;
+	} else if ( g === max ) {
+		h = ( 60 * ( b - r ) / diff ) + 120;
+	} else {
+		h = ( 60 * ( r - g ) / diff ) + 240;
+	}
+
+	// Chroma (diff) == 0 means greyscale which, by definition, saturation = 0%
+	// otherwise, saturation is based on the ratio of chroma (diff) to lightness (add)
+	if ( diff === 0 ) {
+		s = 0;
+	} else if ( l <= 0.5 ) {
+		s = diff / add;
+	} else {
+		s = diff / ( 2 - add );
+	}
+	return [ Math.round( h ) % 360, s, l, a == null ? 1 : a ];
+};
+
+spaces.hsla.from = function( hsla ) {
+	if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) {
+		return [ null, null, null, hsla[ 3 ] ];
+	}
+	var h = hsla[ 0 ] / 360,
+		s = hsla[ 1 ],
+		l = hsla[ 2 ],
+		a = hsla[ 3 ],
+		q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s,
+		p = 2 * l - q;
+
+	return [
+		Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ),
+		Math.round( hue2rgb( p, q, h ) * 255 ),
+		Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ),
+		a
+	];
+};
+
+each( spaces, function( spaceName, space ) {
+	var props = space.props,
+		cache = space.cache,
+		to = space.to,
+		from = space.from;
+
+	// Makes rgba() and hsla()
+	color.fn[ spaceName ] = function( value ) {
+
+		// Generate a cache for this space if it doesn't exist
+		if ( to && !this[ cache ] ) {
+			this[ cache ] = to( this._rgba );
+		}
+		if ( value === undefined ) {
+			return this[ cache ].slice();
+		}
+
+		var ret,
+			type = jQuery.type( value ),
+			arr = ( type === "array" || type === "object" ) ? value : arguments,
+			local = this[ cache ].slice();
+
+		each( props, function( key, prop ) {
+			var val = arr[ type === "object" ? key : prop.idx ];
+			if ( val == null ) {
+				val = local[ prop.idx ];
+			}
+			local[ prop.idx ] = clamp( val, prop );
+		} );
+
+		if ( from ) {
+			ret = color( from( local ) );
+			ret[ cache ] = local;
+			return ret;
+		} else {
+			return color( local );
+		}
+	};
+
+	// Makes red() green() blue() alpha() hue() saturation() lightness()
+	each( props, function( key, prop ) {
+
+		// Alpha is included in more than one space
+		if ( color.fn[ key ] ) {
+			return;
+		}
+		color.fn[ key ] = function( value ) {
+			var vtype = jQuery.type( value ),
+				fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ),
+				local = this[ fn ](),
+				cur = local[ prop.idx ],
+				match;
+
+			if ( vtype === "undefined" ) {
+				return cur;
+			}
+
+			if ( vtype === "function" ) {
+				value = value.call( this, cur );
+				vtype = jQuery.type( value );
+			}
+			if ( value == null && prop.empty ) {
+				return this;
+			}
+			if ( vtype === "string" ) {
+				match = rplusequals.exec( value );
+				if ( match ) {
+					value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 );
+				}
+			}
+			local[ prop.idx ] = value;
+			return this[ fn ]( local );
+		};
+	} );
+} );
+
+// Add cssHook and .fx.step function for each named hook.
+// accept a space separated string of properties
+color.hook = function( hook ) {
+	var hooks = hook.split( " " );
+	each( hooks, function( i, hook ) {
+		jQuery.cssHooks[ hook ] = {
+			set: function( elem, value ) {
+				var parsed, curElem,
+					backgroundColor = "";
+
+				if ( value !== "transparent" && ( jQuery.type( value ) !== "string" ||
+						( parsed = stringParse( value ) ) ) ) {
+					value = color( parsed || value );
+					if ( !support.rgba && value._rgba[ 3 ] !== 1 ) {
+						curElem = hook === "backgroundColor" ? elem.parentNode : elem;
+						while (
+							( backgroundColor === "" || backgroundColor === "transparent" ) &&
+							curElem && curElem.style
+						) {
+							try {
+								backgroundColor = jQuery.css( curElem, "backgroundColor" );
+								curElem = curElem.parentNode;
+							} catch ( e ) {
+							}
+						}
+
+						value = value.blend( backgroundColor && backgroundColor !== "transparent" ?
+							backgroundColor :
+							"_default" );
+					}
+
+					value = value.toRgbaString();
+				}
+				try {
+					elem.style[ hook ] = value;
+				} catch ( e ) {
+
+					// Wrapped to prevent IE from throwing errors on "invalid" values like
+					// 'auto' or 'inherit'
+				}
+			}
+		};
+		jQuery.fx.step[ hook ] = function( fx ) {
+			if ( !fx.colorInit ) {
+				fx.start = color( fx.elem, hook );
+				fx.end = color( fx.end );
+				fx.colorInit = true;
+			}
+			jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) );
+		};
+	} );
+
+};
+
+color.hook( stepHooks );
+
+jQuery.cssHooks.borderColor = {
+	expand: function( value ) {
+		var expanded = {};
+
+		each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) {
+			expanded[ "border" + part + "Color" ] = value;
+		} );
+		return expanded;
+	}
+};
+
+// Basic color names only.
+// Usage of any of the other color names requires adding yourself or including
+// jquery.color.svg-names.js.
+colors = jQuery.Color.names = {
+
+	// 4.1. Basic color keywords
+	aqua: "#00ffff",
+	black: "#000000",
+	blue: "#0000ff",
+	fuchsia: "#ff00ff",
+	gray: "#808080",
+	green: "#008000",
+	lime: "#00ff00",
+	maroon: "#800000",
+	navy: "#000080",
+	olive: "#808000",
+	purple: "#800080",
+	red: "#ff0000",
+	silver: "#c0c0c0",
+	teal: "#008080",
+	white: "#ffffff",
+	yellow: "#ffff00",
+
+	// 4.2.3. "transparent" color keyword
+	transparent: [ null, null, null, 0 ],
+
+	_default: "#ffffff"
+};
+
+} )( jQuery );
+
+/******************************************************************************/
+/****************************** CLASS ANIMATIONS ******************************/
+/******************************************************************************/
+( function() {
+
+var classAnimationActions = [ "add", "remove", "toggle" ],
+	shorthandStyles = {
+		border: 1,
+		borderBottom: 1,
+		borderColor: 1,
+		borderLeft: 1,
+		borderRight: 1,
+		borderTop: 1,
+		borderWidth: 1,
+		margin: 1,
+		padding: 1
+	};
+
+$.each(
+	[ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ],
+	function( _, prop ) {
+		$.fx.step[ prop ] = function( fx ) {
+			if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) {
+				jQuery.style( fx.elem, prop, fx.end );
+				fx.setAttr = true;
+			}
+		};
+	}
+);
+
+function getElementStyles( elem ) {
+	var key, len,
+		style = elem.ownerDocument.defaultView ?
+			elem.ownerDocument.defaultView.getComputedStyle( elem, null ) :
+			elem.currentStyle,
+		styles = {};
+
+	if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) {
+		len = style.length;
+		while ( len-- ) {
+			key = style[ len ];
+			if ( typeof style[ key ] === "string" ) {
+				styles[ $.camelCase( key ) ] = style[ key ];
+			}
+		}
+
+	// Support: Opera, IE <9
+	} else {
+		for ( key in style ) {
+			if ( typeof style[ key ] === "string" ) {
+				styles[ key ] = style[ key ];
+			}
+		}
+	}
+
+	return styles;
+}
+
+function styleDifference( oldStyle, newStyle ) {
+	var diff = {},
+		name, value;
+
+	for ( name in newStyle ) {
+		value = newStyle[ name ];
+		if ( oldStyle[ name ] !== value ) {
+			if ( !shorthandStyles[ name ] ) {
+				if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) {
+					diff[ name ] = value;
+				}
+			}
+		}
+	}
+
+	return diff;
+}
+
+// Support: jQuery <1.8
+if ( !$.fn.addBack ) {
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+$.effects.animateClass = function( value, duration, easing, callback ) {
+	var o = $.speed( duration, easing, callback );
+
+	return this.queue( function() {
+		var animated = $( this ),
+			baseClass = animated.attr( "class" ) || "",
+			applyClassChange,
+			allAnimations = o.children ? animated.find( "*" ).addBack() : animated;
+
+		// Map the animated objects to store the original styles.
+		allAnimations = allAnimations.map( function() {
+			var el = $( this );
+			return {
+				el: el,
+				start: getElementStyles( this )
+			};
+		} );
+
+		// Apply class change
+		applyClassChange = function() {
+			$.each( classAnimationActions, function( i, action ) {
+				if ( value[ action ] ) {
+					animated[ action + "Class" ]( value[ action ] );
+				}
+			} );
+		};
+		applyClassChange();
+
+		// Map all animated objects again - calculate new styles and diff
+		allAnimations = allAnimations.map( function() {
+			this.end = getElementStyles( this.el[ 0 ] );
+			this.diff = styleDifference( this.start, this.end );
+			return this;
+		} );
+
+		// Apply original class
+		animated.attr( "class", baseClass );
+
+		// Map all animated objects again - this time collecting a promise
+		allAnimations = allAnimations.map( function() {
+			var styleInfo = this,
+				dfd = $.Deferred(),
+				opts = $.extend( {}, o, {
+					queue: false,
+					complete: function() {
+						dfd.resolve( styleInfo );
+					}
+				} );
+
+			this.el.animate( this.diff, opts );
+			return dfd.promise();
+		} );
+
+		// Once all animations have completed:
+		$.when.apply( $, allAnimations.get() ).done( function() {
+
+			// Set the final class
+			applyClassChange();
+
+			// For each animated element,
+			// clear all css properties that were animated
+			$.each( arguments, function() {
+				var el = this.el;
+				$.each( this.diff, function( key ) {
+					el.css( key, "" );
+				} );
+			} );
+
+			// This is guarnteed to be there if you use jQuery.speed()
+			// it also handles dequeuing the next anim...
+			o.complete.call( animated[ 0 ] );
+		} );
+	} );
+};
+
+$.fn.extend( {
+	addClass: ( function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return speed ?
+				$.effects.animateClass.call( this,
+					{ add: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	} )( $.fn.addClass ),
+
+	removeClass: ( function( orig ) {
+		return function( classNames, speed, easing, callback ) {
+			return arguments.length > 1 ?
+				$.effects.animateClass.call( this,
+					{ remove: classNames }, speed, easing, callback ) :
+				orig.apply( this, arguments );
+		};
+	} )( $.fn.removeClass ),
+
+	toggleClass: ( function( orig ) {
+		return function( classNames, force, speed, easing, callback ) {
+			if ( typeof force === "boolean" || force === undefined ) {
+				if ( !speed ) {
+
+					// Without speed parameter
+					return orig.apply( this, arguments );
+				} else {
+					return $.effects.animateClass.call( this,
+						( force ? { add: classNames } : { remove: classNames } ),
+						speed, easing, callback );
+				}
+			} else {
+
+				// Without force parameter
+				return $.effects.animateClass.call( this,
+					{ toggle: classNames }, force, speed, easing );
+			}
+		};
+	} )( $.fn.toggleClass ),
+
+	switchClass: function( remove, add, speed, easing, callback ) {
+		return $.effects.animateClass.call( this, {
+			add: add,
+			remove: remove
+		}, speed, easing, callback );
+	}
+} );
+
+} )();
+
+/******************************************************************************/
+/*********************************** EFFECTS **********************************/
+/******************************************************************************/
+
+( function() {
+
+if ( $.expr && $.expr.filters && $.expr.filters.animated ) {
+	$.expr.filters.animated = ( function( orig ) {
+		return function( elem ) {
+			return !!$( elem ).data( dataSpaceAnimated ) || orig( elem );
+		};
+	} )( $.expr.filters.animated );
+}
+
+if ( $.uiBackCompat !== false ) {
+	$.extend( $.effects, {
+
+		// Saves a set of properties in a data storage
+		save: function( element, set ) {
+			var i = 0, length = set.length;
+			for ( ; i < length; i++ ) {
+				if ( set[ i ] !== null ) {
+					element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] );
+				}
+			}
+		},
+
+		// Restores a set of previously saved properties from a data storage
+		restore: function( element, set ) {
+			var val, i = 0, length = set.length;
+			for ( ; i < length; i++ ) {
+				if ( set[ i ] !== null ) {
+					val = element.data( dataSpace + set[ i ] );
+					element.css( set[ i ], val );
+				}
+			}
+		},
+
+		setMode: function( el, mode ) {
+			if ( mode === "toggle" ) {
+				mode = el.is( ":hidden" ) ? "show" : "hide";
+			}
+			return mode;
+		},
+
+		// Wraps the element around a wrapper that copies position properties
+		createWrapper: function( element ) {
+
+			// If the element is already wrapped, return it
+			if ( element.parent().is( ".ui-effects-wrapper" ) ) {
+				return element.parent();
+			}
+
+			// Wrap the element
+			var props = {
+					width: element.outerWidth( true ),
+					height: element.outerHeight( true ),
+					"float": element.css( "float" )
+				},
+				wrapper = $( "<div></div>" )
+					.addClass( "ui-effects-wrapper" )
+					.css( {
+						fontSize: "100%",
+						background: "transparent",
+						border: "none",
+						margin: 0,
+						padding: 0
+					} ),
+
+				// Store the size in case width/height are defined in % - Fixes #5245
+				size = {
+					width: element.width(),
+					height: element.height()
+				},
+				active = document.activeElement;
+
+			// Support: Firefox
+			// Firefox incorrectly exposes anonymous content
+			// https://bugzilla.mozilla.org/show_bug.cgi?id=561664
+			try {
+				active.id;
+			} catch ( e ) {
+				active = document.body;
+			}
+
+			element.wrap( wrapper );
+
+			// Fixes #7595 - Elements lose focus when wrapped.
+			if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+				$( active ).trigger( "focus" );
+			}
+
+			// Hotfix for jQuery 1.4 since some change in wrap() seems to actually
+			// lose the reference to the wrapped element
+			wrapper = element.parent();
+
+			// Transfer positioning properties to the wrapper
+			if ( element.css( "position" ) === "static" ) {
+				wrapper.css( { position: "relative" } );
+				element.css( { position: "relative" } );
+			} else {
+				$.extend( props, {
+					position: element.css( "position" ),
+					zIndex: element.css( "z-index" )
+				} );
+				$.each( [ "top", "left", "bottom", "right" ], function( i, pos ) {
+					props[ pos ] = element.css( pos );
+					if ( isNaN( parseInt( props[ pos ], 10 ) ) ) {
+						props[ pos ] = "auto";
+					}
+				} );
+				element.css( {
+					position: "relative",
+					top: 0,
+					left: 0,
+					right: "auto",
+					bottom: "auto"
+				} );
+			}
+			element.css( size );
+
+			return wrapper.css( props ).show();
+		},
+
+		removeWrapper: function( element ) {
+			var active = document.activeElement;
+
+			if ( element.parent().is( ".ui-effects-wrapper" ) ) {
+				element.parent().replaceWith( element );
+
+				// Fixes #7595 - Elements lose focus when wrapped.
+				if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) {
+					$( active ).trigger( "focus" );
+				}
+			}
+
+			return element;
+		}
+	} );
+}
+
+$.extend( $.effects, {
+	version: "1.12.0",
+
+	define: function( name, mode, effect ) {
+		if ( !effect ) {
+			effect = mode;
+			mode = "effect";
+		}
+
+		$.effects.effect[ name ] = effect;
+		$.effects.effect[ name ].mode = mode;
+
+		return effect;
+	},
+
+	scaledDimensions: function( element, percent, direction ) {
+		if ( percent === 0 ) {
+			return {
+				height: 0,
+				width: 0,
+				outerHeight: 0,
+				outerWidth: 0
+			};
+		}
+
+		var x = direction !== "horizontal" ? ( ( percent || 100 ) / 100 ) : 1,
+			y = direction !== "vertical" ? ( ( percent || 100 ) / 100 ) : 1;
+
+		return {
+			height: element.height() * y,
+			width: element.width() * x,
+			outerHeight: element.outerHeight() * y,
+			outerWidth: element.outerWidth() * x
+		};
+
+	},
+
+	clipToBox: function( animation ) {
+		return {
+			width: animation.clip.right - animation.clip.left,
+			height: animation.clip.bottom - animation.clip.top,
+			left: animation.clip.left,
+			top: animation.clip.top
+		};
+	},
+
+	// Injects recently queued functions to be first in line (after "inprogress")
+	unshift: function( element, queueLength, count ) {
+		var queue = element.queue();
+
+		if ( queueLength > 1 ) {
+			queue.splice.apply( queue,
+				[ 1, 0 ].concat( queue.splice( queueLength, count ) ) );
+		}
+		element.dequeue();
+	},
+
+	saveStyle: function( element ) {
+		element.data( dataSpaceStyle, element[ 0 ].style.cssText );
+	},
+
+	restoreStyle: function( element ) {
+		element[ 0 ].style.cssText = element.data( dataSpaceStyle ) || "";
+		element.removeData( dataSpaceStyle );
+	},
+
+	mode: function( element, mode ) {
+		var hidden = element.is( ":hidden" );
+
+		if ( mode === "toggle" ) {
+			mode = hidden ? "show" : "hide";
+		}
+		if ( hidden ? mode === "hide" : mode === "show" ) {
+			mode = "none";
+		}
+		return mode;
+	},
+
+	// Translates a [top,left] array into a baseline value
+	getBaseline: function( origin, original ) {
+		var y, x;
+
+		switch ( origin[ 0 ] ) {
+		case "top":
+			y = 0;
+			break;
+		case "middle":
+			y = 0.5;
+			break;
+		case "bottom":
+			y = 1;
+			break;
+		default:
+			y = origin[ 0 ] / original.height;
+		}
+
+		switch ( origin[ 1 ] ) {
+		case "left":
+			x = 0;
+			break;
+		case "center":
+			x = 0.5;
+			break;
+		case "right":
+			x = 1;
+			break;
+		default:
+			x = origin[ 1 ] / original.width;
+		}
+
+		return {
+			x: x,
+			y: y
+		};
+	},
+
+	// Creates a placeholder element so that the original element can be made absolute
+	createPlaceholder: function( element ) {
+		var placeholder,
+			cssPosition = element.css( "position" ),
+			position = element.position();
+
+		// Lock in margins first to account for form elements, which
+		// will change margin if you explicitly set height
+		// see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380
+		// Support: Safari
+		element.css( {
+			marginTop: element.css( "marginTop" ),
+			marginBottom: element.css( "marginBottom" ),
+			marginLeft: element.css( "marginLeft" ),
+			marginRight: element.css( "marginRight" )
+		} )
+		.outerWidth( element.outerWidth() )
+		.outerHeight( element.outerHeight() );
+
+		if ( /^(static|relative)/.test( cssPosition ) ) {
+			cssPosition = "absolute";
+
+			placeholder = $( "<" + element[ 0 ].nodeName + ">" ).insertAfter( element ).css( {
+
+				// Convert inline to inline block to account for inline elements
+				// that turn to inline block based on content (like img)
+				display: /^(inline|ruby)/.test( element.css( "display" ) ) ?
+					"inline-block" :
+					"block",
+				visibility: "hidden",
+
+				// Margins need to be set to account for margin collapse
+				marginTop: element.css( "marginTop" ),
+				marginBottom: element.css( "marginBottom" ),
+				marginLeft: element.css( "marginLeft" ),
+				marginRight: element.css( "marginRight" ),
+				"float": element.css( "float" )
+			} )
+			.outerWidth( element.outerWidth() )
+			.outerHeight( element.outerHeight() )
+			.addClass( "ui-effects-placeholder" );
+
+			element.data( dataSpace + "placeholder", placeholder );
+		}
+
+		element.css( {
+			position: cssPosition,
+			left: position.left,
+			top: position.top
+		} );
+
+		return placeholder;
+	},
+
+	removePlaceholder: function( element ) {
+		var dataKey = dataSpace + "placeholder",
+				placeholder = element.data( dataKey );
+
+		if ( placeholder ) {
+			placeholder.remove();
+			element.removeData( dataKey );
+		}
+	},
+
+	// Removes a placeholder if it exists and restores
+	// properties that were modified during placeholder creation
+	cleanUp: function( element ) {
+		$.effects.restoreStyle( element );
+		$.effects.removePlaceholder( element );
+	},
+
+	setTransition: function( element, list, factor, value ) {
+		value = value || {};
+		$.each( list, function( i, x ) {
+			var unit = element.cssUnit( x );
+			if ( unit[ 0 ] > 0 ) {
+				value[ x ] = unit[ 0 ] * factor + unit[ 1 ];
+			}
+		} );
+		return value;
+	}
+} );
+
+// Return an effect options object for the given parameters:
+function _normalizeArguments( effect, options, speed, callback ) {
+
+	// Allow passing all options as the first parameter
+	if ( $.isPlainObject( effect ) ) {
+		options = effect;
+		effect = effect.effect;
+	}
+
+	// Convert to an object
+	effect = { effect: effect };
+
+	// Catch (effect, null, ...)
+	if ( options == null ) {
+		options = {};
+	}
+
+	// Catch (effect, callback)
+	if ( $.isFunction( options ) ) {
+		callback = options;
+		speed = null;
+		options = {};
+	}
+
+	// Catch (effect, speed, ?)
+	if ( typeof options === "number" || $.fx.speeds[ options ] ) {
+		callback = speed;
+		speed = options;
+		options = {};
+	}
+
+	// Catch (effect, options, callback)
+	if ( $.isFunction( speed ) ) {
+		callback = speed;
+		speed = null;
+	}
+
+	// Add options to effect
+	if ( options ) {
+		$.extend( effect, options );
+	}
+
+	speed = speed || options.duration;
+	effect.duration = $.fx.off ? 0 :
+		typeof speed === "number" ? speed :
+		speed in $.fx.speeds ? $.fx.speeds[ speed ] :
+		$.fx.speeds._default;
+
+	effect.complete = callback || options.complete;
+
+	return effect;
+}
+
+function standardAnimationOption( option ) {
+
+	// Valid standard speeds (nothing, number, named speed)
+	if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) {
+		return true;
+	}
+
+	// Invalid strings - treat as "normal" speed
+	if ( typeof option === "string" && !$.effects.effect[ option ] ) {
+		return true;
+	}
+
+	// Complete callback
+	if ( $.isFunction( option ) ) {
+		return true;
+	}
+
+	// Options hash (but not naming an effect)
+	if ( typeof option === "object" && !option.effect ) {
+		return true;
+	}
+
+	// Didn't match any standard API
+	return false;
+}
+
+$.fn.extend( {
+	effect: function( /* effect, options, speed, callback */ ) {
+		var args = _normalizeArguments.apply( this, arguments ),
+			effectMethod = $.effects.effect[ args.effect ],
+			defaultMode = effectMethod.mode,
+			queue = args.queue,
+			queueName = queue || "fx",
+			complete = args.complete,
+			mode = args.mode,
+			modes = [],
+			prefilter = function( next ) {
+				var el = $( this ),
+					normalizedMode = $.effects.mode( el, mode ) || defaultMode;
+
+				// Sentinel for duck-punching the :animated psuedo-selector
+				el.data( dataSpaceAnimated, true );
+
+				// Save effect mode for later use,
+				// we can't just call $.effects.mode again later,
+				// as the .show() below destroys the initial state
+				modes.push( normalizedMode );
+
+				// See $.uiBackCompat inside of run() for removal of defaultMode in 1.13
+				if ( defaultMode && ( normalizedMode === "show" ||
+						( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) {
+					el.show();
+				}
+
+				if ( !defaultMode || normalizedMode !== "none" ) {
+					$.effects.saveStyle( el );
+				}
+
+				if ( $.isFunction( next ) ) {
+					next();
+				}
+			};
+
+		if ( $.fx.off || !effectMethod ) {
+
+			// Delegate to the original method (e.g., .show()) if possible
+			if ( mode ) {
+				return this[ mode ]( args.duration, complete );
+			} else {
+				return this.each( function() {
+					if ( complete ) {
+						complete.call( this );
+					}
+				} );
+			}
+		}
+
+		function run( next ) {
+			var elem = $( this );
+
+			function cleanup() {
+				elem.removeData( dataSpaceAnimated );
+
+				$.effects.cleanUp( elem );
+
+				if ( args.mode === "hide" ) {
+					elem.hide();
+				}
+
+				done();
+			}
+
+			function done() {
+				if ( $.isFunction( complete ) ) {
+					complete.call( elem[ 0 ] );
+				}
+
+				if ( $.isFunction( next ) ) {
+					next();
+				}
+			}
+
+			// Override mode option on a per element basis,
+			// as toggle can be either show or hide depending on element state
+			args.mode = modes.shift();
+
+			if ( $.uiBackCompat !== false && !defaultMode ) {
+				if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) {
+
+					// Call the core method to track "olddisplay" properly
+					elem[ mode ]();
+					done();
+				} else {
+					effectMethod.call( elem[ 0 ], args, done );
+				}
+			} else {
+				if ( args.mode === "none" ) {
+
+					// Call the core method to track "olddisplay" properly
+					elem[ mode ]();
+					done();
+				} else {
+					effectMethod.call( elem[ 0 ], args, cleanup );
+				}
+			}
+		}
+
+		// Run prefilter on all elements first to ensure that
+		// any showing or hiding happens before placeholder creation,
+		// which ensures that any layout changes are correctly captured.
+		return queue === false ?
+			this.each( prefilter ).each( run ) :
+			this.queue( queueName, prefilter ).queue( queueName, run );
+	},
+
+	show: ( function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "show";
+				return this.effect.call( this, args );
+			}
+		};
+	} )( $.fn.show ),
+
+	hide: ( function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "hide";
+				return this.effect.call( this, args );
+			}
+		};
+	} )( $.fn.hide ),
+
+	toggle: ( function( orig ) {
+		return function( option ) {
+			if ( standardAnimationOption( option ) || typeof option === "boolean" ) {
+				return orig.apply( this, arguments );
+			} else {
+				var args = _normalizeArguments.apply( this, arguments );
+				args.mode = "toggle";
+				return this.effect.call( this, args );
+			}
+		};
+	} )( $.fn.toggle ),
+
+	cssUnit: function( key ) {
+		var style = this.css( key ),
+			val = [];
+
+		$.each( [ "em", "px", "%", "pt" ], function( i, unit ) {
+			if ( style.indexOf( unit ) > 0 ) {
+				val = [ parseFloat( style ), unit ];
+			}
+		} );
+		return val;
+	},
+
+	cssClip: function( clipObj ) {
+		if ( clipObj ) {
+			return this.css( "clip", "rect(" + clipObj.top + "px " + clipObj.right + "px " +
+				clipObj.bottom + "px " + clipObj.left + "px)" );
+		}
+		return parseClip( this.css( "clip" ), this );
+	},
+
+	transfer: function( options, done ) {
+		var element = $( this ),
+			target = $( options.to ),
+			targetFixed = target.css( "position" ) === "fixed",
+			body = $( "body" ),
+			fixTop = targetFixed ? body.scrollTop() : 0,
+			fixLeft = targetFixed ? body.scrollLeft() : 0,
+			endPosition = target.offset(),
+			animation = {
+				top: endPosition.top - fixTop,
+				left: endPosition.left - fixLeft,
+				height: target.innerHeight(),
+				width: target.innerWidth()
+			},
+			startPosition = element.offset(),
+			transfer = $( "<div class='ui-effects-transfer'></div>" )
+				.appendTo( "body" )
+				.addClass( options.className )
+				.css( {
+					top: startPosition.top - fixTop,
+					left: startPosition.left - fixLeft,
+					height: element.innerHeight(),
+					width: element.innerWidth(),
+					position: targetFixed ? "fixed" : "absolute"
+				} )
+				.animate( animation, options.duration, options.easing, function() {
+					transfer.remove();
+					if ( $.isFunction( done ) ) {
+						done();
+					}
+				} );
+	}
+} );
+
+function parseClip( str, element ) {
+		var outerWidth = element.outerWidth(),
+			outerHeight = element.outerHeight(),
+			clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,
+			values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ];
+
+		return {
+			top: parseFloat( values[ 1 ] ) || 0,
+			right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ),
+			bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ),
+			left: parseFloat( values[ 4 ] ) || 0
+		};
+}
+
+$.fx.step.clip = function( fx ) {
+	if ( !fx.clipInit ) {
+		fx.start = $( fx.elem ).cssClip();
+		if ( typeof fx.end === "string" ) {
+			fx.end = parseClip( fx.end, fx.elem );
+		}
+		fx.clipInit = true;
+	}
+
+	$( fx.elem ).cssClip( {
+		top: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top,
+		right: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right,
+		bottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom,
+		left: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left
+	} );
+};
+
+} )();
+
+/******************************************************************************/
+/*********************************** EASING ***********************************/
+/******************************************************************************/
+
+( function() {
+
+// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
+
+var baseEasings = {};
+
+$.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) {
+	baseEasings[ name ] = function( p ) {
+		return Math.pow( p, i + 2 );
+	};
+} );
+
+$.extend( baseEasings, {
+	Sine: function( p ) {
+		return 1 - Math.cos( p * Math.PI / 2 );
+	},
+	Circ: function( p ) {
+		return 1 - Math.sqrt( 1 - p * p );
+	},
+	Elastic: function( p ) {
+		return p === 0 || p === 1 ? p :
+			-Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 );
+	},
+	Back: function( p ) {
+		return p * p * ( 3 * p - 2 );
+	},
+	Bounce: function( p ) {
+		var pow2,
+			bounce = 4;
+
+		while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {}
+		return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 );
+	}
+} );
+
+$.each( baseEasings, function( name, easeIn ) {
+	$.easing[ "easeIn" + name ] = easeIn;
+	$.easing[ "easeOut" + name ] = function( p ) {
+		return 1 - easeIn( 1 - p );
+	};
+	$.easing[ "easeInOut" + name ] = function( p ) {
+		return p < 0.5 ?
+			easeIn( p * 2 ) / 2 :
+			1 - easeIn( p * -2 + 2 ) / 2;
+	};
+} );
+
+} )();
+
+var effect = $.effects;
+
+
+/*!
+ * jQuery UI Effects Blind 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Blind Effect
+//>>group: Effects
+//>>description: Blinds the element.
+//>>docs: http://api.jqueryui.com/blind-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectBlind = $.effects.define( "blind", "hide", function( options, done ) {
+	var map = {
+			up: [ "bottom", "top" ],
+			vertical: [ "bottom", "top" ],
+			down: [ "top", "bottom" ],
+			left: [ "right", "left" ],
+			horizontal: [ "right", "left" ],
+			right: [ "left", "right" ]
+		},
+		element = $( this ),
+		direction = options.direction || "up",
+		start = element.cssClip(),
+		animate = { clip: $.extend( {}, start ) },
+		placeholder = $.effects.createPlaceholder( element );
+
+	animate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ];
+
+	if ( options.mode === "show" ) {
+		element.cssClip( animate.clip );
+		if ( placeholder ) {
+			placeholder.css( $.effects.clipToBox( animate ) );
+		}
+
+		animate.clip = start;
+	}
+
+	if ( placeholder ) {
+		placeholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing );
+	}
+
+	element.animate( animate, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+} );
+
+
+/*!
+ * jQuery UI Effects Bounce 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Bounce Effect
+//>>group: Effects
+//>>description: Bounces an element horizontally or vertically n times.
+//>>docs: http://api.jqueryui.com/bounce-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectBounce = $.effects.define( "bounce", function( options, done ) {
+	var upAnim, downAnim, refValue,
+		element = $( this ),
+
+		// Defaults:
+		mode = options.mode,
+		hide = mode === "hide",
+		show = mode === "show",
+		direction = options.direction || "up",
+		distance = options.distance,
+		times = options.times || 5,
+
+		// Number of internal animations
+		anims = times * 2 + ( show || hide ? 1 : 0 ),
+		speed = options.duration / anims,
+		easing = options.easing,
+
+		// Utility:
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ),
+		i = 0,
+
+		queuelen = element.queue().length;
+
+	$.effects.createPlaceholder( element );
+
+	refValue = element.css( ref );
+
+	// Default distance for the BIGGEST bounce is the outer Distance / 3
+	if ( !distance ) {
+		distance = element[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3;
+	}
+
+	if ( show ) {
+		downAnim = { opacity: 1 };
+		downAnim[ ref ] = refValue;
+
+		// If we are showing, force opacity 0 and set the initial position
+		// then do the "first" animation
+		element
+			.css( "opacity", 0 )
+			.css( ref, motion ? -distance * 2 : distance * 2 )
+			.animate( downAnim, speed, easing );
+	}
+
+	// Start at the smallest distance if we are hiding
+	if ( hide ) {
+		distance = distance / Math.pow( 2, times - 1 );
+	}
+
+	downAnim = {};
+	downAnim[ ref ] = refValue;
+
+	// Bounces up/down/left/right then back to 0 -- times * 2 animations happen here
+	for ( ; i < times; i++ ) {
+		upAnim = {};
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		element
+			.animate( upAnim, speed, easing )
+			.animate( downAnim, speed, easing );
+
+		distance = hide ? distance * 2 : distance / 2;
+	}
+
+	// Last Bounce when Hiding
+	if ( hide ) {
+		upAnim = { opacity: 0 };
+		upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance;
+
+		element.animate( upAnim, speed, easing );
+	}
+
+	element.queue( done );
+
+	$.effects.unshift( element, queuelen, anims + 1 );
+} );
+
+
+/*!
+ * jQuery UI Effects Clip 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Clip Effect
+//>>group: Effects
+//>>description: Clips the element on and off like an old TV.
+//>>docs: http://api.jqueryui.com/clip-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectClip = $.effects.define( "clip", "hide", function( options, done ) {
+	var start,
+		animate = {},
+		element = $( this ),
+		direction = options.direction || "vertical",
+		both = direction === "both",
+		horizontal = both || direction === "horizontal",
+		vertical = both || direction === "vertical";
+
+	start = element.cssClip();
+	animate.clip = {
+		top: vertical ? ( start.bottom - start.top ) / 2 : start.top,
+		right: horizontal ? ( start.right - start.left ) / 2 : start.right,
+		bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom,
+		left: horizontal ? ( start.right - start.left ) / 2 : start.left
+	};
+
+	$.effects.createPlaceholder( element );
+
+	if ( options.mode === "show" ) {
+		element.cssClip( animate.clip );
+		animate.clip = start;
+	}
+
+	element.animate( animate, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+
+} );
+
+
+/*!
+ * jQuery UI Effects Drop 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Drop Effect
+//>>group: Effects
+//>>description: Moves an element in one direction and hides it at the same time.
+//>>docs: http://api.jqueryui.com/drop-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectDrop = $.effects.define( "drop", "hide", function( options, done ) {
+
+	var distance,
+		element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+		direction = options.direction || "left",
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=",
+		oppositeMotion = ( motion === "+=" ) ? "-=" : "+=",
+		animation = {
+			opacity: 0
+		};
+
+	$.effects.createPlaceholder( element );
+
+	distance = options.distance ||
+		element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2;
+
+	animation[ ref ] = motion + distance;
+
+	if ( show ) {
+		element.css( animation );
+
+		animation[ ref ] = oppositeMotion + distance;
+		animation.opacity = 1;
+	}
+
+	// Animate
+	element.animate( animation, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+} );
+
+
+/*!
+ * jQuery UI Effects Explode 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Explode Effect
+//>>group: Effects
+// jscs:disable maximumLineLength
+//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/explode-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectExplode = $.effects.define( "explode", "hide", function( options, done ) {
+
+	var i, j, left, top, mx, my,
+		rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3,
+		cells = rows,
+		element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+
+		// Show and then visibility:hidden the element before calculating offset
+		offset = element.show().css( "visibility", "hidden" ).offset(),
+
+		// Width and height of a piece
+		width = Math.ceil( element.outerWidth() / cells ),
+		height = Math.ceil( element.outerHeight() / rows ),
+		pieces = [];
+
+	// Children animate complete:
+	function childComplete() {
+		pieces.push( this );
+		if ( pieces.length === rows * cells ) {
+			animComplete();
+		}
+	}
+
+	// Clone the element for each row and cell.
+	for ( i = 0; i < rows; i++ ) { // ===>
+		top = offset.top + i * height;
+		my = i - ( rows - 1 ) / 2;
+
+		for ( j = 0; j < cells; j++ ) { // |||
+			left = offset.left + j * width;
+			mx = j - ( cells - 1 ) / 2;
+
+			// Create a clone of the now hidden main element that will be absolute positioned
+			// within a wrapper div off the -left and -top equal to size of our pieces
+			element
+				.clone()
+				.appendTo( "body" )
+				.wrap( "<div></div>" )
+				.css( {
+					position: "absolute",
+					visibility: "visible",
+					left: -j * width,
+					top: -i * height
+				} )
+
+				// Select the wrapper - make it overflow: hidden and absolute positioned based on
+				// where the original was located +left and +top equal to the size of pieces
+				.parent()
+					.addClass( "ui-effects-explode" )
+					.css( {
+						position: "absolute",
+						overflow: "hidden",
+						width: width,
+						height: height,
+						left: left + ( show ? mx * width : 0 ),
+						top: top + ( show ? my * height : 0 ),
+						opacity: show ? 0 : 1
+					} )
+					.animate( {
+						left: left + ( show ? 0 : mx * width ),
+						top: top + ( show ? 0 : my * height ),
+						opacity: show ? 1 : 0
+					}, options.duration || 500, options.easing, childComplete );
+		}
+	}
+
+	function animComplete() {
+		element.css( {
+			visibility: "visible"
+		} );
+		$( pieces ).remove();
+		done();
+	}
+} );
+
+
+/*!
+ * jQuery UI Effects Fade 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Fade Effect
+//>>group: Effects
+//>>description: Fades the element.
+//>>docs: http://api.jqueryui.com/fade-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectFade = $.effects.define( "fade", "toggle", function( options, done ) {
+	var show = options.mode === "show";
+
+	$( this )
+		.css( "opacity", show ? 0 : 1 )
+		.animate( {
+			opacity: show ? 1 : 0
+		}, {
+			queue: false,
+			duration: options.duration,
+			easing: options.easing,
+			complete: done
+		} );
+} );
+
+
+/*!
+ * jQuery UI Effects Fold 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Fold Effect
+//>>group: Effects
+//>>description: Folds an element first horizontally and then vertically.
+//>>docs: http://api.jqueryui.com/fold-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectFold = $.effects.define( "fold", "hide", function( options, done ) {
+
+	// Create element
+	var element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+		hide = mode === "hide",
+		size = options.size || 15,
+		percent = /([0-9]+)%/.exec( size ),
+		horizFirst = !!options.horizFirst,
+		ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ],
+		duration = options.duration / 2,
+
+		placeholder = $.effects.createPlaceholder( element ),
+
+		start = element.cssClip(),
+		animation1 = { clip: $.extend( {}, start ) },
+		animation2 = { clip: $.extend( {}, start ) },
+
+		distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ],
+
+		queuelen = element.queue().length;
+
+	if ( percent ) {
+		size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ];
+	}
+	animation1.clip[ ref[ 0 ] ] = size;
+	animation2.clip[ ref[ 0 ] ] = size;
+	animation2.clip[ ref[ 1 ] ] = 0;
+
+	if ( show ) {
+		element.cssClip( animation2.clip );
+		if ( placeholder ) {
+			placeholder.css( $.effects.clipToBox( animation2 ) );
+		}
+
+		animation2.clip = start;
+	}
+
+	// Animate
+	element
+		.queue( function( next ) {
+			if ( placeholder ) {
+				placeholder
+					.animate( $.effects.clipToBox( animation1 ), duration, options.easing )
+					.animate( $.effects.clipToBox( animation2 ), duration, options.easing );
+			}
+
+			next();
+		} )
+		.animate( animation1, duration, options.easing )
+		.animate( animation2, duration, options.easing )
+		.queue( done );
+
+	$.effects.unshift( element, queuelen, 4 );
+} );
+
+
+/*!
+ * jQuery UI Effects Highlight 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Highlight Effect
+//>>group: Effects
+//>>description: Highlights the background of an element in a defined color for a custom duration.
+//>>docs: http://api.jqueryui.com/highlight-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectHighlight = $.effects.define( "highlight", "show", function( options, done ) {
+	var element = $( this ),
+		animation = {
+			backgroundColor: element.css( "backgroundColor" )
+		};
+
+	if ( options.mode === "hide" ) {
+		animation.opacity = 0;
+	}
+
+	$.effects.saveStyle( element );
+
+	element
+		.css( {
+			backgroundImage: "none",
+			backgroundColor: options.color || "#ffff99"
+		} )
+		.animate( animation, {
+			queue: false,
+			duration: options.duration,
+			easing: options.easing,
+			complete: done
+		} );
+} );
+
+
+/*!
+ * jQuery UI Effects Size 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Size Effect
+//>>group: Effects
+//>>description: Resize an element to a specified width and height.
+//>>docs: http://api.jqueryui.com/size-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectSize = $.effects.define( "size", function( options, done ) {
+
+	// Create element
+	var baseline, factor, temp,
+		element = $( this ),
+
+		// Copy for children
+		cProps = [ "fontSize" ],
+		vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ],
+		hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ],
+
+		// Set options
+		mode = options.mode,
+		restore = mode !== "effect",
+		scale = options.scale || "both",
+		origin = options.origin || [ "middle", "center" ],
+		position = element.css( "position" ),
+		pos = element.position(),
+		original = $.effects.scaledDimensions( element ),
+		from = options.from || original,
+		to = options.to || $.effects.scaledDimensions( element, 0 );
+
+	$.effects.createPlaceholder( element );
+
+	if ( mode === "show" ) {
+		temp = from;
+		from = to;
+		to = temp;
+	}
+
+	// Set scaling factor
+	factor = {
+		from: {
+			y: from.height / original.height,
+			x: from.width / original.width
+		},
+		to: {
+			y: to.height / original.height,
+			x: to.width / original.width
+		}
+	};
+
+	// Scale the css box
+	if ( scale === "box" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			from = $.effects.setTransition( element, vProps, factor.from.y, from );
+			to = $.effects.setTransition( element, vProps, factor.to.y, to );
+		}
+
+		// Horizontal props scaling
+		if ( factor.from.x !== factor.to.x ) {
+			from = $.effects.setTransition( element, hProps, factor.from.x, from );
+			to = $.effects.setTransition( element, hProps, factor.to.x, to );
+		}
+	}
+
+	// Scale the content
+	if ( scale === "content" || scale === "both" ) {
+
+		// Vertical props scaling
+		if ( factor.from.y !== factor.to.y ) {
+			from = $.effects.setTransition( element, cProps, factor.from.y, from );
+			to = $.effects.setTransition( element, cProps, factor.to.y, to );
+		}
+	}
+
+	// Adjust the position properties based on the provided origin points
+	if ( origin ) {
+		baseline = $.effects.getBaseline( origin, original );
+		from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top;
+		from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left;
+		to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top;
+		to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left;
+	}
+	element.css( from );
+
+	// Animate the children if desired
+	if ( scale === "content" || scale === "both" ) {
+
+		vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps );
+		hProps = hProps.concat( [ "marginLeft", "marginRight" ] );
+
+		// Only animate children with width attributes specified
+		// TODO: is this right? should we include anything with css width specified as well
+		element.find( "*[width]" ).each( function() {
+			var child = $( this ),
+				childOriginal = $.effects.scaledDimensions( child ),
+				childFrom = {
+					height: childOriginal.height * factor.from.y,
+					width: childOriginal.width * factor.from.x,
+					outerHeight: childOriginal.outerHeight * factor.from.y,
+					outerWidth: childOriginal.outerWidth * factor.from.x
+				},
+				childTo = {
+					height: childOriginal.height * factor.to.y,
+					width: childOriginal.width * factor.to.x,
+					outerHeight: childOriginal.height * factor.to.y,
+					outerWidth: childOriginal.width * factor.to.x
+				};
+
+			// Vertical props scaling
+			if ( factor.from.y !== factor.to.y ) {
+				childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom );
+				childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo );
+			}
+
+			// Horizontal props scaling
+			if ( factor.from.x !== factor.to.x ) {
+				childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom );
+				childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo );
+			}
+
+			if ( restore ) {
+				$.effects.saveStyle( child );
+			}
+
+			// Animate children
+			child.css( childFrom );
+			child.animate( childTo, options.duration, options.easing, function() {
+
+				// Restore children
+				if ( restore ) {
+					$.effects.restoreStyle( child );
+				}
+			} );
+		} );
+	}
+
+	// Animate
+	element.animate( to, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: function() {
+
+			var offset = element.offset();
+
+			if ( to.opacity === 0 ) {
+				element.css( "opacity", from.opacity );
+			}
+
+			if ( !restore ) {
+				element
+					.css( "position", position === "static" ? "relative" : position )
+					.offset( offset );
+
+				// Need to save style here so that automatic style restoration
+				// doesn't restore to the original styles from before the animation.
+				$.effects.saveStyle( element );
+			}
+
+			done();
+		}
+	} );
+
+} );
+
+
+/*!
+ * jQuery UI Effects Scale 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Scale Effect
+//>>group: Effects
+//>>description: Grows or shrinks an element and its content.
+//>>docs: http://api.jqueryui.com/scale-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectScale = $.effects.define( "scale", function( options, done ) {
+
+	// Create element
+	var el = $( this ),
+		mode = options.mode,
+		percent = parseInt( options.percent, 10 ) ||
+			( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== "effect" ? 0 : 100 ) ),
+
+		newOptions = $.extend( true, {
+			from: $.effects.scaledDimensions( el ),
+			to: $.effects.scaledDimensions( el, percent, options.direction || "both" ),
+			origin: options.origin || [ "middle", "center" ]
+		}, options );
+
+	// Fade option to support puff
+	if ( options.fade ) {
+		newOptions.from.opacity = 1;
+		newOptions.to.opacity = 0;
+	}
+
+	$.effects.effect.size.call( this, newOptions, done );
+} );
+
+
+/*!
+ * jQuery UI Effects Puff 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Puff Effect
+//>>group: Effects
+//>>description: Creates a puff effect by scaling the element up and hiding it at the same time.
+//>>docs: http://api.jqueryui.com/puff-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectPuff = $.effects.define( "puff", "hide", function( options, done ) {
+	var newOptions = $.extend( true, {}, options, {
+		fade: true,
+		percent: parseInt( options.percent, 10 ) || 150
+	} );
+
+	$.effects.effect.scale.call( this, newOptions, done );
+} );
+
+
+/*!
+ * jQuery UI Effects Pulsate 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Pulsate Effect
+//>>group: Effects
+//>>description: Pulsates an element n times by changing the opacity to zero and back.
+//>>docs: http://api.jqueryui.com/pulsate-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectPulsate = $.effects.define( "pulsate", "show", function( options, done ) {
+	var element = $( this ),
+		mode = options.mode,
+		show = mode === "show",
+		hide = mode === "hide",
+		showhide = show || hide,
+
+		// Showing or hiding leaves off the "last" animation
+		anims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ),
+		duration = options.duration / anims,
+		animateTo = 0,
+		i = 1,
+		queuelen = element.queue().length;
+
+	if ( show || !element.is( ":visible" ) ) {
+		element.css( "opacity", 0 ).show();
+		animateTo = 1;
+	}
+
+	// Anims - 1 opacity "toggles"
+	for ( ; i < anims; i++ ) {
+		element.animate( { opacity: animateTo }, duration, options.easing );
+		animateTo = 1 - animateTo;
+	}
+
+	element.animate( { opacity: animateTo }, duration, options.easing );
+
+	element.queue( done );
+
+	$.effects.unshift( element, queuelen, anims + 1 );
+} );
+
+
+/*!
+ * jQuery UI Effects Shake 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Shake Effect
+//>>group: Effects
+//>>description: Shakes an element horizontally or vertically n times.
+//>>docs: http://api.jqueryui.com/shake-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectShake = $.effects.define( "shake", function( options, done ) {
+
+	var i = 1,
+		element = $( this ),
+		direction = options.direction || "left",
+		distance = options.distance || 20,
+		times = options.times || 3,
+		anims = times * 2 + 1,
+		speed = Math.round( options.duration / anims ),
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		positiveMotion = ( direction === "up" || direction === "left" ),
+		animation = {},
+		animation1 = {},
+		animation2 = {},
+
+		queuelen = element.queue().length;
+
+	$.effects.createPlaceholder( element );
+
+	// Animation
+	animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance;
+	animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2;
+	animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2;
+
+	// Animate
+	element.animate( animation, speed, options.easing );
+
+	// Shakes
+	for ( ; i < times; i++ ) {
+		element
+			.animate( animation1, speed, options.easing )
+			.animate( animation2, speed, options.easing );
+	}
+
+	element
+		.animate( animation1, speed, options.easing )
+		.animate( animation, speed / 2, options.easing )
+		.queue( done );
+
+	$.effects.unshift( element, queuelen, anims + 1 );
+} );
+
+
+/*!
+ * jQuery UI Effects Slide 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Slide Effect
+//>>group: Effects
+//>>description: Slides an element in and out of the viewport.
+//>>docs: http://api.jqueryui.com/slide-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effectsEffectSlide = $.effects.define( "slide", "show", function( options, done ) {
+	var startClip, startRef,
+		element = $( this ),
+		map = {
+			up: [ "bottom", "top" ],
+			down: [ "top", "bottom" ],
+			left: [ "right", "left" ],
+			right: [ "left", "right" ]
+		},
+		mode = options.mode,
+		direction = options.direction || "left",
+		ref = ( direction === "up" || direction === "down" ) ? "top" : "left",
+		positiveMotion = ( direction === "up" || direction === "left" ),
+		distance = options.distance ||
+			element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ),
+		animation = {};
+
+	$.effects.createPlaceholder( element );
+
+	startClip = element.cssClip();
+	startRef = element.position()[ ref ];
+
+	// Define hide animation
+	animation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef;
+	animation.clip = element.cssClip();
+	animation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ];
+
+	// Reverse the animation if we're showing
+	if ( mode === "show" ) {
+		element.cssClip( animation.clip );
+		element.css( ref, animation[ ref ] );
+		animation.clip = startClip;
+		animation[ ref ] = startRef;
+	}
+
+	// Actually animate
+	element.animate( animation, {
+		queue: false,
+		duration: options.duration,
+		easing: options.easing,
+		complete: done
+	} );
+} );
+
+
+/*!
+ * jQuery UI Effects Transfer 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Transfer Effect
+//>>group: Effects
+//>>description: Displays a transfer effect from one element to another.
+//>>docs: http://api.jqueryui.com/transfer-effect/
+//>>demos: http://jqueryui.com/effect/
+
+
+
+var effect;
+if ( $.uiBackCompat !== false ) {
+	effect = $.effects.define( "transfer", function( options, done ) {
+		$( this ).transfer( options, done );
+	} );
+}
+var effectsEffectTransfer = effect;
+
+
+/*!
+ * jQuery UI Focusable 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: :focusable Selector
+//>>group: Core
+//>>description: Selects elements which can be focused.
+//>>docs: http://api.jqueryui.com/focusable-selector/
+
+
+
+// Selectors
+$.ui.focusable = function( element, hasTabindex ) {
+	var map, mapName, img, focusableIfVisible, fieldset,
+		nodeName = element.nodeName.toLowerCase();
+
+	if ( "area" === nodeName ) {
+		map = element.parentNode;
+		mapName = map.name;
+		if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+			return false;
+		}
+		img = $( "img[usemap='#" + mapName + "']" );
+		return img.length > 0 && img.is( ":visible" );
+	}
+
+	if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) {
+		focusableIfVisible = !element.disabled;
+
+		if ( focusableIfVisible ) {
+
+			// Form controls within a disabled fieldset are disabled.
+			// However, controls within the fieldset's legend do not get disabled.
+			// Since controls generally aren't placed inside legends, we skip
+			// this portion of the check.
+			fieldset = $( element ).closest( "fieldset" )[ 0 ];
+			if ( fieldset ) {
+				focusableIfVisible = !fieldset.disabled;
+			}
+		}
+	} else if ( "a" === nodeName ) {
+		focusableIfVisible = element.href || hasTabindex;
+	} else {
+		focusableIfVisible = hasTabindex;
+	}
+
+	return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) );
+};
+
+// Support: IE 8 only
+// IE 8 doesn't resolve inherit to visible/hidden for computed values
+function visible( element ) {
+	var visibility = element.css( "visibility" );
+	while ( visibility === "inherit" ) {
+		element = element.parent();
+		visibility = element.css( "visibility" );
+	}
+	return visibility !== "hidden";
+}
+
+$.extend( $.expr[ ":" ], {
+	focusable: function( element ) {
+		return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
+	}
+} );
+
+var focusable = $.ui.focusable;
+
+
+
+
+// Support: IE8 Only
+// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
+// with a string, so we need to find the proper form.
+var form = $.fn.form = function() {
+	return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
+};
+
+
+/*!
+ * jQuery UI Form Reset Mixin 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Form Reset Mixin
+//>>group: Core
+//>>description: Refresh input widgets when their form is reset
+//>>docs: http://api.jqueryui.com/form-reset-mixin/
+
+
+
+var formResetMixin = $.ui.formResetMixin = {
+	_formResetHandler: function() {
+		var form = $( this );
+
+		// Wait for the form reset to actually happen before refreshing
+		setTimeout( function() {
+			var instances = form.data( "ui-form-reset-instances" );
+			$.each( instances, function() {
+				this.refresh();
+			} );
+		} );
+	},
+
+	_bindFormResetHandler: function() {
+		this.form = this.element.form();
+		if ( !this.form.length ) {
+			return;
+		}
+
+		var instances = this.form.data( "ui-form-reset-instances" ) || [];
+		if ( !instances.length ) {
+
+			// We don't use _on() here because we use a single event handler per form
+			this.form.on( "reset.ui-form-reset", this._formResetHandler );
+		}
+		instances.push( this );
+		this.form.data( "ui-form-reset-instances", instances );
+	},
+
+	_unbindFormResetHandler: function() {
+		if ( !this.form.length ) {
+			return;
+		}
+
+		var instances = this.form.data( "ui-form-reset-instances" );
+		instances.splice( $.inArray( this, instances ), 1 );
+		if ( instances.length ) {
+			this.form.data( "ui-form-reset-instances", instances );
+		} else {
+			this.form
+				.removeData( "ui-form-reset-instances" )
+				.off( "reset.ui-form-reset" );
+		}
+	}
+};
+
+
+/*!
+ * jQuery UI Support for jQuery core 1.7.x 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ *
+ */
+
+//>>label: jQuery 1.7 Support
+//>>group: Core
+//>>description: Support version 1.7.x of jQuery core
+
+
+
+// Support: jQuery 1.7 only
+// Not a great way to check versions, but since we only support 1.7+ and only
+// need to detect <1.8, this is a simple check that should suffice. Checking
+// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0
+// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting
+// 1.7 anymore). See #11197 for why we're not using feature detection.
+if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) {
+
+	// Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight()
+	// Unlike jQuery Core 1.8+, these only support numeric values to set the
+	// dimensions in pixels
+	$.each( [ "Width", "Height" ], function( i, name ) {
+		var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+			type = name.toLowerCase(),
+			orig = {
+				innerWidth: $.fn.innerWidth,
+				innerHeight: $.fn.innerHeight,
+				outerWidth: $.fn.outerWidth,
+				outerHeight: $.fn.outerHeight
+			};
+
+		function reduce( elem, size, border, margin ) {
+			$.each( side, function() {
+				size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
+				if ( border ) {
+					size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
+				}
+				if ( margin ) {
+					size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
+				}
+			} );
+			return size;
+		}
+
+		$.fn[ "inner" + name ] = function( size ) {
+			if ( size === undefined ) {
+				return orig[ "inner" + name ].call( this );
+			}
+
+			return this.each( function() {
+				$( this ).css( type, reduce( this, size ) + "px" );
+			} );
+		};
+
+		$.fn[ "outer" + name ] = function( size, margin ) {
+			if ( typeof size !== "number" ) {
+				return orig[ "outer" + name ].call( this, size );
+			}
+
+			return this.each( function() {
+				$( this ).css( type, reduce( this, size, true, margin ) + "px" );
+			} );
+		};
+	} );
+
+	$.fn.addBack = function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter( selector )
+		);
+	};
+}
+
+;
+/*!
+ * jQuery UI Keycode 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Keycode
+//>>group: Core
+//>>description: Provide keycodes as keynames
+//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/
+
+
+var keycode = $.ui.keyCode = {
+	BACKSPACE: 8,
+	COMMA: 188,
+	DELETE: 46,
+	DOWN: 40,
+	END: 35,
+	ENTER: 13,
+	ESCAPE: 27,
+	HOME: 36,
+	LEFT: 37,
+	PAGE_DOWN: 34,
+	PAGE_UP: 33,
+	PERIOD: 190,
+	RIGHT: 39,
+	SPACE: 32,
+	TAB: 9,
+	UP: 38
+};
+
+
+
+
+// Internal use only
+var escapeSelector = $.ui.escapeSelector = ( function() {
+	var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;
+	return function( selector ) {
+		return selector.replace( selectorEscape, "\\$1" );
+	};
+} )();
+
+
+/*!
+ * jQuery UI Labels 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: labels
+//>>group: Core
+//>>description: Find all the labels associated with a given input
+//>>docs: http://api.jqueryui.com/labels/
+
+
+
+var labels = $.fn.labels = function() {
+	var ancestor, selector, id, labels, ancestors;
+
+	// Check control.labels first
+	if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
+		return this.pushStack( this[ 0 ].labels );
+	}
+
+	// Support: IE <= 11, FF <= 37, Android <= 2.3 only
+	// Above browsers do not support control.labels. Everything below is to support them
+	// as well as document fragments. control.labels does not work on document fragments
+	labels = this.eq( 0 ).parents( "label" );
+
+	// Look for the label based on the id
+	id = this.attr( "id" );
+	if ( id ) {
+
+		// We don't search against the document in case the element
+		// is disconnected from the DOM
+		ancestor = this.eq( 0 ).parents().last();
+
+		// Get a full set of top level ancestors
+		ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
+
+		// Create a selector for the label based on the id
+		selector = "label[for='" + $.ui.escapeSelector( id ) + "']";
+
+		labels = labels.add( ancestors.find( selector ).addBack( selector ) );
+
+	}
+
+	// Return whatever we have found for labels
+	return this.pushStack( labels );
+};
+
+
+/*!
+ * jQuery UI Scroll Parent 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: scrollParent
+//>>group: Core
+//>>description: Get the closest ancestor element that is scrollable.
+//>>docs: http://api.jqueryui.com/scrollParent/
+
+
+
+var scrollParent = $.fn.scrollParent = function( includeHidden ) {
+	var position = this.css( "position" ),
+		excludeStaticParent = position === "absolute",
+		overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
+		scrollParent = this.parents().filter( function() {
+			var parent = $( this );
+			if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
+				return false;
+			}
+			return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) +
+				parent.css( "overflow-x" ) );
+		} ).eq( 0 );
+
+	return position === "fixed" || !scrollParent.length ?
+		$( this[ 0 ].ownerDocument || document ) :
+		scrollParent;
+};
+
+
+/*!
+ * jQuery UI Tabbable 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: :tabbable Selector
+//>>group: Core
+//>>description: Selects elements which can be tabbed to.
+//>>docs: http://api.jqueryui.com/tabbable-selector/
+
+
+
+var tabbable = $.extend( $.expr[ ":" ], {
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" ),
+			hasTabindex = tabIndex != null;
+		return ( !hasTabindex || tabIndex >= 0 ) && $.ui.focusable( element, hasTabindex );
+	}
+} );
+
+
+/*!
+ * jQuery UI Unique ID 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: uniqueId
+//>>group: Core
+//>>description: Functions to generate and remove uniqueId's
+//>>docs: http://api.jqueryui.com/uniqueId/
+
+
+
+var uniqueId = $.fn.extend( {
+	uniqueId: ( function() {
+		var uuid = 0;
+
+		return function() {
+			return this.each( function() {
+				if ( !this.id ) {
+					this.id = "ui-id-" + ( ++uuid );
+				}
+			} );
+		};
+	} )(),
+
+	removeUniqueId: function() {
+		return this.each( function() {
+			if ( /^ui-id-\d+$/.test( this.id ) ) {
+				$( this ).removeAttr( "id" );
+			}
+		} );
+	}
+} );
+
+
+/*!
+ * jQuery UI Accordion 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Accordion
+//>>group: Widgets
+// jscs:disable maximumLineLength
+//>>description: Displays collapsible content panels for presenting information in a limited amount of space.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/accordion/
+//>>demos: http://jqueryui.com/accordion/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/accordion.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsAccordion = $.widget( "ui.accordion", {
+	version: "1.12.0",
+	options: {
+		active: 0,
+		animate: {},
+		classes: {
+			"ui-accordion-header": "ui-corner-top",
+			"ui-accordion-header-collapsed": "ui-corner-all",
+			"ui-accordion-content": "ui-corner-bottom"
+		},
+		collapsible: false,
+		event: "click",
+		header: "> li > :first-child, > :not(li):even",
+		heightStyle: "auto",
+		icons: {
+			activeHeader: "ui-icon-triangle-1-s",
+			header: "ui-icon-triangle-1-e"
+		},
+
+		// Callbacks
+		activate: null,
+		beforeActivate: null
+	},
+
+	hideProps: {
+		borderTopWidth: "hide",
+		borderBottomWidth: "hide",
+		paddingTop: "hide",
+		paddingBottom: "hide",
+		height: "hide"
+	},
+
+	showProps: {
+		borderTopWidth: "show",
+		borderBottomWidth: "show",
+		paddingTop: "show",
+		paddingBottom: "show",
+		height: "show"
+	},
+
+	_create: function() {
+		var options = this.options;
+
+		this.prevShow = this.prevHide = $();
+		this._addClass( "ui-accordion", "ui-widget ui-helper-reset" );
+		this.element.attr( "role", "tablist" );
+
+		// Don't allow collapsible: false and active: false / null
+		if ( !options.collapsible && ( options.active === false || options.active == null ) ) {
+			options.active = 0;
+		}
+
+		this._processPanels();
+
+		// handle negative values
+		if ( options.active < 0 ) {
+			options.active += this.headers.length;
+		}
+		this._refresh();
+	},
+
+	_getCreateEventData: function() {
+		return {
+			header: this.active,
+			panel: !this.active.length ? $() : this.active.next()
+		};
+	},
+
+	_createIcons: function() {
+		var icon, children,
+			icons = this.options.icons;
+
+		if ( icons ) {
+			icon = $( "<span>" );
+			this._addClass( icon, "ui-accordion-header-icon", "ui-icon " + icons.header );
+			icon.prependTo( this.headers );
+			children = this.active.children( ".ui-accordion-header-icon" );
+			this._removeClass( children, icons.header )
+				._addClass( children, null, icons.activeHeader )
+				._addClass( this.headers, "ui-accordion-icons" );
+		}
+	},
+
+	_destroyIcons: function() {
+		this._removeClass( this.headers, "ui-accordion-icons" );
+		this.headers.children( ".ui-accordion-header-icon" ).remove();
+	},
+
+	_destroy: function() {
+		var contents;
+
+		// Clean up main element
+		this.element.removeAttr( "role" );
+
+		// Clean up headers
+		this.headers
+			.removeAttr( "role aria-expanded aria-selected aria-controls tabIndex" )
+			.removeUniqueId();
+
+		this._destroyIcons();
+
+		// Clean up content panels
+		contents = this.headers.next()
+			.css( "display", "" )
+			.removeAttr( "role aria-hidden aria-labelledby" )
+			.removeUniqueId();
+
+		if ( this.options.heightStyle !== "content" ) {
+			contents.css( "height", "" );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		if ( key === "event" ) {
+			if ( this.options.event ) {
+				this._off( this.headers, this.options.event );
+			}
+			this._setupEvents( value );
+		}
+
+		this._super( key, value );
+
+		// Setting collapsible: false while collapsed; open first panel
+		if ( key === "collapsible" && !value && this.options.active === false ) {
+			this._activate( 0 );
+		}
+
+		if ( key === "icons" ) {
+			this._destroyIcons();
+			if ( value ) {
+				this._createIcons();
+			}
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.element.attr( "aria-disabled", value );
+
+		// Support: IE8 Only
+		// #5332 / #6059 - opacity doesn't cascade to positioned elements in IE
+		// so we need to add the disabled class to the headers and panels
+		this._toggleClass( null, "ui-state-disabled", !!value );
+		this._toggleClass( this.headers.add( this.headers.next() ), null, "ui-state-disabled",
+			!!value );
+	},
+
+	_keydown: function( event ) {
+		if ( event.altKey || event.ctrlKey ) {
+			return;
+		}
+
+		var keyCode = $.ui.keyCode,
+			length = this.headers.length,
+			currentIndex = this.headers.index( event.target ),
+			toFocus = false;
+
+		switch ( event.keyCode ) {
+		case keyCode.RIGHT:
+		case keyCode.DOWN:
+			toFocus = this.headers[ ( currentIndex + 1 ) % length ];
+			break;
+		case keyCode.LEFT:
+		case keyCode.UP:
+			toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
+			break;
+		case keyCode.SPACE:
+		case keyCode.ENTER:
+			this._eventHandler( event );
+			break;
+		case keyCode.HOME:
+			toFocus = this.headers[ 0 ];
+			break;
+		case keyCode.END:
+			toFocus = this.headers[ length - 1 ];
+			break;
+		}
+
+		if ( toFocus ) {
+			$( event.target ).attr( "tabIndex", -1 );
+			$( toFocus ).attr( "tabIndex", 0 );
+			$( toFocus ).trigger( "focus" );
+			event.preventDefault();
+		}
+	},
+
+	_panelKeyDown: function( event ) {
+		if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
+			$( event.currentTarget ).prev().trigger( "focus" );
+		}
+	},
+
+	refresh: function() {
+		var options = this.options;
+		this._processPanels();
+
+		// Was collapsed or no panel
+		if ( ( options.active === false && options.collapsible === true ) ||
+				!this.headers.length ) {
+			options.active = false;
+			this.active = $();
+
+		// active false only when collapsible is true
+		} else if ( options.active === false ) {
+			this._activate( 0 );
+
+		// was active, but active panel is gone
+		} else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+
+			// all remaining panel are disabled
+			if ( this.headers.length === this.headers.find( ".ui-state-disabled" ).length ) {
+				options.active = false;
+				this.active = $();
+
+			// activate previous panel
+			} else {
+				this._activate( Math.max( 0, options.active - 1 ) );
+			}
+
+		// was active, active panel still exists
+		} else {
+
+			// make sure active index is correct
+			options.active = this.headers.index( this.active );
+		}
+
+		this._destroyIcons();
+
+		this._refresh();
+	},
+
+	_processPanels: function() {
+		var prevHeaders = this.headers,
+			prevPanels = this.panels;
+
+		this.headers = this.element.find( this.options.header );
+		this._addClass( this.headers, "ui-accordion-header ui-accordion-header-collapsed",
+			"ui-state-default" );
+
+		this.panels = this.headers.next().filter( ":not(.ui-accordion-content-active)" ).hide();
+		this._addClass( this.panels, "ui-accordion-content", "ui-helper-reset ui-widget-content" );
+
+		// Avoid memory leaks (#10056)
+		if ( prevPanels ) {
+			this._off( prevHeaders.not( this.headers ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	_refresh: function() {
+		var maxHeight,
+			options = this.options,
+			heightStyle = options.heightStyle,
+			parent = this.element.parent();
+
+		this.active = this._findActive( options.active );
+		this._addClass( this.active, "ui-accordion-header-active", "ui-state-active" )
+			._removeClass( this.active, "ui-accordion-header-collapsed" );
+		this._addClass( this.active.next(), "ui-accordion-content-active" );
+		this.active.next().show();
+
+		this.headers
+			.attr( "role", "tab" )
+			.each( function() {
+				var header = $( this ),
+					headerId = header.uniqueId().attr( "id" ),
+					panel = header.next(),
+					panelId = panel.uniqueId().attr( "id" );
+				header.attr( "aria-controls", panelId );
+				panel.attr( "aria-labelledby", headerId );
+			} )
+			.next()
+				.attr( "role", "tabpanel" );
+
+		this.headers
+			.not( this.active )
+				.attr( {
+					"aria-selected": "false",
+					"aria-expanded": "false",
+					tabIndex: -1
+				} )
+				.next()
+					.attr( {
+						"aria-hidden": "true"
+					} )
+					.hide();
+
+		// Make sure at least one header is in the tab order
+		if ( !this.active.length ) {
+			this.headers.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active.attr( {
+				"aria-selected": "true",
+				"aria-expanded": "true",
+				tabIndex: 0
+			} )
+				.next()
+					.attr( {
+						"aria-hidden": "false"
+					} );
+		}
+
+		this._createIcons();
+
+		this._setupEvents( options.event );
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			this.element.siblings( ":visible" ).each( function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			} );
+
+			this.headers.each( function() {
+				maxHeight -= $( this ).outerHeight( true );
+			} );
+
+			this.headers.next()
+				.each( function() {
+					$( this ).height( Math.max( 0, maxHeight -
+						$( this ).innerHeight() + $( this ).height() ) );
+				} )
+				.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.headers.next()
+				.each( function() {
+					var isVisible = $( this ).is( ":visible" );
+					if ( !isVisible ) {
+						$( this ).show();
+					}
+					maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
+					if ( !isVisible ) {
+						$( this ).hide();
+					}
+				} )
+				.height( maxHeight );
+		}
+	},
+
+	_activate: function( index ) {
+		var active = this._findActive( index )[ 0 ];
+
+		// Trying to activate the already active panel
+		if ( active === this.active[ 0 ] ) {
+			return;
+		}
+
+		// Trying to collapse, simulate a click on the currently active header
+		active = active || this.active[ 0 ];
+
+		this._eventHandler( {
+			target: active,
+			currentTarget: active,
+			preventDefault: $.noop
+		} );
+	},
+
+	_findActive: function( selector ) {
+		return typeof selector === "number" ? this.headers.eq( selector ) : $();
+	},
+
+	_setupEvents: function( event ) {
+		var events = {
+			keydown: "_keydown"
+		};
+		if ( event ) {
+			$.each( event.split( " " ), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			} );
+		}
+
+		this._off( this.headers.add( this.headers.next() ) );
+		this._on( this.headers, events );
+		this._on( this.headers.next(), { keydown: "_panelKeyDown" } );
+		this._hoverable( this.headers );
+		this._focusable( this.headers );
+	},
+
+	_eventHandler: function( event ) {
+		var activeChildren, clickedChildren,
+			options = this.options,
+			active = this.active,
+			clicked = $( event.currentTarget ),
+			clickedIsActive = clicked[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : clicked.next(),
+			toHide = active.next(),
+			eventData = {
+				oldHeader: active,
+				oldPanel: toHide,
+				newHeader: collapsing ? $() : clicked,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if (
+
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.headers.index( clicked );
+
+		// When the call to ._toggle() comes after the class changes
+		// it causes a very odd bug in IE 8 (see #6720)
+		this.active = clickedIsActive ? $() : clicked;
+		this._toggle( eventData );
+
+		// Switch classes
+		// corner classes on the previously active header stay after the animation
+		this._removeClass( active, "ui-accordion-header-active", "ui-state-active" );
+		if ( options.icons ) {
+			activeChildren = active.children( ".ui-accordion-header-icon" );
+			this._removeClass( activeChildren, null, options.icons.activeHeader )
+				._addClass( activeChildren, null, options.icons.header );
+		}
+
+		if ( !clickedIsActive ) {
+			this._removeClass( clicked, "ui-accordion-header-collapsed" )
+				._addClass( clicked, "ui-accordion-header-active", "ui-state-active" );
+			if ( options.icons ) {
+				clickedChildren = clicked.children( ".ui-accordion-header-icon" );
+				this._removeClass( clickedChildren, null, options.icons.header )
+					._addClass( clickedChildren, null, options.icons.activeHeader );
+			}
+
+			this._addClass( clicked.next(), "ui-accordion-content-active" );
+		}
+	},
+
+	_toggle: function( data ) {
+		var toShow = data.newPanel,
+			toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
+
+		// Handle activating a panel during the animation for another activation
+		this.prevShow.add( this.prevHide ).stop( true, true );
+		this.prevShow = toShow;
+		this.prevHide = toHide;
+
+		if ( this.options.animate ) {
+			this._animate( toShow, toHide, data );
+		} else {
+			toHide.hide();
+			toShow.show();
+			this._toggleComplete( data );
+		}
+
+		toHide.attr( {
+			"aria-hidden": "true"
+		} );
+		toHide.prev().attr( {
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		} );
+
+		// if we're switching panels, remove the old header from the tab order
+		// if we're opening from collapsed state, remove the previous header from the tab order
+		// if we're collapsing, then keep the collapsing header in the tab order
+		if ( toShow.length && toHide.length ) {
+			toHide.prev().attr( {
+				"tabIndex": -1,
+				"aria-expanded": "false"
+			} );
+		} else if ( toShow.length ) {
+			this.headers.filter( function() {
+				return parseInt( $( this ).attr( "tabIndex" ), 10 ) === 0;
+			} )
+				.attr( "tabIndex", -1 );
+		}
+
+		toShow
+			.attr( "aria-hidden", "false" )
+			.prev()
+				.attr( {
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				} );
+	},
+
+	_animate: function( toShow, toHide, data ) {
+		var total, easing, duration,
+			that = this,
+			adjust = 0,
+			boxSizing = toShow.css( "box-sizing" ),
+			down = toShow.length &&
+				( !toHide.length || ( toShow.index() < toHide.index() ) ),
+			animate = this.options.animate || {},
+			options = down && animate.down || animate,
+			complete = function() {
+				that._toggleComplete( data );
+			};
+
+		if ( typeof options === "number" ) {
+			duration = options;
+		}
+		if ( typeof options === "string" ) {
+			easing = options;
+		}
+
+		// fall back from options to animation in case of partial down settings
+		easing = easing || options.easing || animate.easing;
+		duration = duration || options.duration || animate.duration;
+
+		if ( !toHide.length ) {
+			return toShow.animate( this.showProps, duration, easing, complete );
+		}
+		if ( !toShow.length ) {
+			return toHide.animate( this.hideProps, duration, easing, complete );
+		}
+
+		total = toShow.show().outerHeight();
+		toHide.animate( this.hideProps, {
+			duration: duration,
+			easing: easing,
+			step: function( now, fx ) {
+				fx.now = Math.round( now );
+			}
+		} );
+		toShow
+			.hide()
+			.animate( this.showProps, {
+				duration: duration,
+				easing: easing,
+				complete: complete,
+				step: function( now, fx ) {
+					fx.now = Math.round( now );
+					if ( fx.prop !== "height" ) {
+						if ( boxSizing === "content-box" ) {
+							adjust += fx.now;
+						}
+					} else if ( that.options.heightStyle !== "content" ) {
+						fx.now = Math.round( total - toHide.outerHeight() - adjust );
+						adjust = 0;
+					}
+				}
+			} );
+	},
+
+	_toggleComplete: function( data ) {
+		var toHide = data.oldPanel,
+			prev = toHide.prev();
+
+		this._removeClass( toHide, "ui-accordion-content-active" );
+		this._removeClass( prev, "ui-accordion-header-active" )
+			._addClass( prev, "ui-accordion-header-collapsed" );
+
+		// Work around for rendering bug in IE (#5421)
+		if ( toHide.length ) {
+			toHide.parent()[ 0 ].className = toHide.parent()[ 0 ].className;
+		}
+		this._trigger( "activate", null, data );
+	}
+} );
+
+
+
+var safeActiveElement = $.ui.safeActiveElement = function( document ) {
+	var activeElement;
+
+	// Support: IE 9 only
+	// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
+	try {
+		activeElement = document.activeElement;
+	} catch ( error ) {
+		activeElement = document.body;
+	}
+
+	// Support: IE 9 - 11 only
+	// IE may return null instead of an element
+	// Interestingly, this only seems to occur when NOT in an iframe
+	if ( !activeElement ) {
+		activeElement = document.body;
+	}
+
+	// Support: IE 11 only
+	// IE11 returns a seemingly empty object in some cases when accessing
+	// document.activeElement from an <iframe>
+	if ( !activeElement.nodeName ) {
+		activeElement = document.body;
+	}
+
+	return activeElement;
+};
+
+
+/*!
+ * jQuery UI Menu 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Menu
+//>>group: Widgets
+//>>description: Creates nestable menus.
+//>>docs: http://api.jqueryui.com/menu/
+//>>demos: http://jqueryui.com/menu/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/menu.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsMenu = $.widget( "ui.menu", {
+	version: "1.12.0",
+	defaultElement: "<ul>",
+	delay: 300,
+	options: {
+		icons: {
+			submenu: "ui-icon-caret-1-e"
+		},
+		items: "> *",
+		menus: "ul",
+		position: {
+			my: "left top",
+			at: "right top"
+		},
+		role: "menu",
+
+		// Callbacks
+		blur: null,
+		focus: null,
+		select: null
+	},
+
+	_create: function() {
+		this.activeMenu = this.element;
+
+		// Flag used to prevent firing of the click handler
+		// as the event bubbles up through nested menus
+		this.mouseHandled = false;
+		this.element
+			.uniqueId()
+			.attr( {
+				role: this.options.role,
+				tabIndex: 0
+			} );
+
+		this._addClass( "ui-menu", "ui-widget ui-widget-content" );
+		this._on( {
+
+			// Prevent focus from sticking to links inside menu after clicking
+			// them (focus should always stay on UL during navigation).
+			"mousedown .ui-menu-item": function( event ) {
+				event.preventDefault();
+			},
+			"click .ui-menu-item": function( event ) {
+				var target = $( event.target );
+				var active = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
+				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
+					this.select( event );
+
+					// Only set the mouseHandled flag if the event will bubble, see #9469.
+					if ( !event.isPropagationStopped() ) {
+						this.mouseHandled = true;
+					}
+
+					// Open submenu on click
+					if ( target.has( ".ui-menu" ).length ) {
+						this.expand( event );
+					} else if ( !this.element.is( ":focus" ) &&
+							active.closest( ".ui-menu" ).length ) {
+
+						// Redirect focus to the menu
+						this.element.trigger( "focus", [ true ] );
+
+						// If the active item is on the top level, let it stay active.
+						// Otherwise, blur the active item since it is no longer visible.
+						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
+							clearTimeout( this.timer );
+						}
+					}
+				}
+			},
+			"mouseenter .ui-menu-item": function( event ) {
+
+				// Ignore mouse events while typeahead is active, see #10458.
+				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
+				// is over an item in the menu
+				if ( this.previousFilter ) {
+					return;
+				}
+
+				var actualTarget = $( event.target ).closest( ".ui-menu-item" ),
+					target = $( event.currentTarget );
+
+				// Ignore bubbled events on parent items, see #11641
+				if ( actualTarget[ 0 ] !== target[ 0 ] ) {
+					return;
+				}
+
+				// Remove ui-state-active class from siblings of the newly focused menu item
+				// to avoid a jump caused by adjacent elements both having a class with a border
+				this._removeClass( target.siblings().children( ".ui-state-active" ),
+					null, "ui-state-active" );
+				this.focus( event, target );
+			},
+			mouseleave: "collapseAll",
+			"mouseleave .ui-menu": "collapseAll",
+			focus: function( event, keepActiveItem ) {
+
+				// If there's already an active item, keep it active
+				// If not, activate the first item
+				var item = this.active || this.element.find( this.options.items ).eq( 0 );
+
+				if ( !keepActiveItem ) {
+					this.focus( event, item );
+				}
+			},
+			blur: function( event ) {
+				this._delay( function() {
+					var notContained = !$.contains(
+						this.element[ 0 ],
+						$.ui.safeActiveElement( this.document[ 0 ] )
+					);
+					if ( notContained ) {
+						this.collapseAll( event );
+					}
+				} );
+			},
+			keydown: "_keydown"
+		} );
+
+		this.refresh();
+
+		// Clicks outside of a menu collapse any open menus
+		this._on( this.document, {
+			click: function( event ) {
+				if ( this._closeOnDocumentClick( event ) ) {
+					this.collapseAll( event );
+				}
+
+				// Reset the mouseHandled flag
+				this.mouseHandled = false;
+			}
+		} );
+	},
+
+	_destroy: function() {
+		var items = this.element.find( ".ui-menu-item" )
+				.removeAttr( "role aria-disabled" ),
+			submenus = items.children( ".ui-menu-item-wrapper" )
+				.removeUniqueId()
+				.removeAttr( "tabIndex role aria-haspopup" );
+
+		// Destroy (sub)menus
+		this.element
+			.removeAttr( "aria-activedescendant" )
+			.find( ".ui-menu" ).addBack()
+				.removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " +
+					"tabIndex" )
+				.removeUniqueId()
+				.show();
+
+		submenus.children().each( function() {
+			var elem = $( this );
+			if ( elem.data( "ui-menu-submenu-caret" ) ) {
+				elem.remove();
+			}
+		} );
+	},
+
+	_keydown: function( event ) {
+		var match, prev, character, skip,
+			preventDefault = true;
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.PAGE_UP:
+			this.previousPage( event );
+			break;
+		case $.ui.keyCode.PAGE_DOWN:
+			this.nextPage( event );
+			break;
+		case $.ui.keyCode.HOME:
+			this._move( "first", "first", event );
+			break;
+		case $.ui.keyCode.END:
+			this._move( "last", "last", event );
+			break;
+		case $.ui.keyCode.UP:
+			this.previous( event );
+			break;
+		case $.ui.keyCode.DOWN:
+			this.next( event );
+			break;
+		case $.ui.keyCode.LEFT:
+			this.collapse( event );
+			break;
+		case $.ui.keyCode.RIGHT:
+			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+				this.expand( event );
+			}
+			break;
+		case $.ui.keyCode.ENTER:
+		case $.ui.keyCode.SPACE:
+			this._activate( event );
+			break;
+		case $.ui.keyCode.ESCAPE:
+			this.collapse( event );
+			break;
+		default:
+			preventDefault = false;
+			prev = this.previousFilter || "";
+			character = String.fromCharCode( event.keyCode );
+			skip = false;
+
+			clearTimeout( this.filterTimer );
+
+			if ( character === prev ) {
+				skip = true;
+			} else {
+				character = prev + character;
+			}
+
+			match = this._filterMenuItems( character );
+			match = skip && match.index( this.active.next() ) !== -1 ?
+				this.active.nextAll( ".ui-menu-item" ) :
+				match;
+
+			// If no matches on the current filter, reset to the last character pressed
+			// to move down the menu to the first item that starts with that character
+			if ( !match.length ) {
+				character = String.fromCharCode( event.keyCode );
+				match = this._filterMenuItems( character );
+			}
+
+			if ( match.length ) {
+				this.focus( event, match );
+				this.previousFilter = character;
+				this.filterTimer = this._delay( function() {
+					delete this.previousFilter;
+				}, 1000 );
+			} else {
+				delete this.previousFilter;
+			}
+		}
+
+		if ( preventDefault ) {
+			event.preventDefault();
+		}
+	},
+
+	_activate: function( event ) {
+		if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
+			if ( this.active.children( "[aria-haspopup='true']" ).length ) {
+				this.expand( event );
+			} else {
+				this.select( event );
+			}
+		}
+	},
+
+	refresh: function() {
+		var menus, items, newSubmenus, newItems, newWrappers,
+			that = this,
+			icon = this.options.icons.submenu,
+			submenus = this.element.find( this.options.menus );
+
+		this._toggleClass( "ui-menu-icons", null, !!this.element.find( ".ui-icon" ).length );
+
+		// Initialize nested menus
+		newSubmenus = submenus.filter( ":not(.ui-menu)" )
+			.hide()
+			.attr( {
+				role: this.options.role,
+				"aria-hidden": "true",
+				"aria-expanded": "false"
+			} )
+			.each( function() {
+				var menu = $( this ),
+					item = menu.prev(),
+					submenuCaret = $( "<span>" ).data( "ui-menu-submenu-caret", true );
+
+				that._addClass( submenuCaret, "ui-menu-icon", "ui-icon " + icon );
+				item
+					.attr( "aria-haspopup", "true" )
+					.prepend( submenuCaret );
+				menu.attr( "aria-labelledby", item.attr( "id" ) );
+			} );
+
+		this._addClass( newSubmenus, "ui-menu", "ui-widget ui-widget-content ui-front" );
+
+		menus = submenus.add( this.element );
+		items = menus.find( this.options.items );
+
+		// Initialize menu-items containing spaces and/or dashes only as dividers
+		items.not( ".ui-menu-item" ).each( function() {
+			var item = $( this );
+			if ( that._isDivider( item ) ) {
+				that._addClass( item, "ui-menu-divider", "ui-widget-content" );
+			}
+		} );
+
+		// Don't refresh list items that are already adapted
+		newItems = items.not( ".ui-menu-item, .ui-menu-divider" );
+		newWrappers = newItems.children()
+			.not( ".ui-menu" )
+				.uniqueId()
+				.attr( {
+					tabIndex: -1,
+					role: this._itemRole()
+				} );
+		this._addClass( newItems, "ui-menu-item" )
+			._addClass( newWrappers, "ui-menu-item-wrapper" );
+
+		// Add aria-disabled attribute to any disabled menu item
+		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
+
+		// If the active item has been removed, blur the menu
+		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
+			this.blur();
+		}
+	},
+
+	_itemRole: function() {
+		return {
+			menu: "menuitem",
+			listbox: "option"
+		}[ this.options.role ];
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			var icons = this.element.find( ".ui-menu-icon" );
+			this._removeClass( icons, null, this.options.icons.submenu )
+				._addClass( icons, null, value.submenu );
+		}
+		this._super( key, value );
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.element.attr( "aria-disabled", String( value ) );
+		this._toggleClass( null, "ui-state-disabled", !!value );
+	},
+
+	focus: function( event, item ) {
+		var nested, focused, activeParent;
+		this.blur( event, event && event.type === "focus" );
+
+		this._scrollIntoView( item );
+
+		this.active = item.first();
+
+		focused = this.active.children( ".ui-menu-item-wrapper" );
+		this._addClass( focused, null, "ui-state-active" );
+
+		// Only update aria-activedescendant if there's a role
+		// otherwise we assume focus is managed elsewhere
+		if ( this.options.role ) {
+			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
+		}
+
+		// Highlight active parent menu item, if any
+		activeParent = this.active
+			.parent()
+				.closest( ".ui-menu-item" )
+					.children( ".ui-menu-item-wrapper" );
+		this._addClass( activeParent, null, "ui-state-active" );
+
+		if ( event && event.type === "keydown" ) {
+			this._close();
+		} else {
+			this.timer = this._delay( function() {
+				this._close();
+			}, this.delay );
+		}
+
+		nested = item.children( ".ui-menu" );
+		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
+			this._startOpening( nested );
+		}
+		this.activeMenu = item.parent();
+
+		this._trigger( "focus", event, { item: item } );
+	},
+
+	_scrollIntoView: function( item ) {
+		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
+		if ( this._hasScroll() ) {
+			borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
+			paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
+			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
+			scroll = this.activeMenu.scrollTop();
+			elementHeight = this.activeMenu.height();
+			itemHeight = item.outerHeight();
+
+			if ( offset < 0 ) {
+				this.activeMenu.scrollTop( scroll + offset );
+			} else if ( offset + itemHeight > elementHeight ) {
+				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
+			}
+		}
+	},
+
+	blur: function( event, fromFocus ) {
+		if ( !fromFocus ) {
+			clearTimeout( this.timer );
+		}
+
+		if ( !this.active ) {
+			return;
+		}
+
+		this._removeClass( this.active.children( ".ui-menu-item-wrapper" ),
+			null, "ui-state-active" );
+
+		this._trigger( "blur", event, { item: this.active } );
+		this.active = null;
+	},
+
+	_startOpening: function( submenu ) {
+		clearTimeout( this.timer );
+
+		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
+		// shift in the submenu position when mousing over the caret icon
+		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
+			return;
+		}
+
+		this.timer = this._delay( function() {
+			this._close();
+			this._open( submenu );
+		}, this.delay );
+	},
+
+	_open: function( submenu ) {
+		var position = $.extend( {
+			of: this.active
+		}, this.options.position );
+
+		clearTimeout( this.timer );
+		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
+			.hide()
+			.attr( "aria-hidden", "true" );
+
+		submenu
+			.show()
+			.removeAttr( "aria-hidden" )
+			.attr( "aria-expanded", "true" )
+			.position( position );
+	},
+
+	collapseAll: function( event, all ) {
+		clearTimeout( this.timer );
+		this.timer = this._delay( function() {
+
+			// If we were passed an event, look for the submenu that contains the event
+			var currentMenu = all ? this.element :
+				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
+
+			// If we found no valid submenu ancestor, use the main menu to close all
+			// sub menus anyway
+			if ( !currentMenu.length ) {
+				currentMenu = this.element;
+			}
+
+			this._close( currentMenu );
+
+			this.blur( event );
+
+			// Work around active item staying active after menu is blurred
+			this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" );
+
+			this.activeMenu = currentMenu;
+		}, this.delay );
+	},
+
+	// With no arguments, closes the currently active menu - if nothing is active
+	// it closes all menus.  If passed an argument, it will search for menus BELOW
+	_close: function( startMenu ) {
+		if ( !startMenu ) {
+			startMenu = this.active ? this.active.parent() : this.element;
+		}
+
+		startMenu.find( ".ui-menu" )
+			.hide()
+			.attr( "aria-hidden", "true" )
+			.attr( "aria-expanded", "false" );
+	},
+
+	_closeOnDocumentClick: function( event ) {
+		return !$( event.target ).closest( ".ui-menu" ).length;
+	},
+
+	_isDivider: function( item ) {
+
+		// Match hyphen, em dash, en dash
+		return !/[^\-\u2014\u2013\s]/.test( item.text() );
+	},
+
+	collapse: function( event ) {
+		var newItem = this.active &&
+			this.active.parent().closest( ".ui-menu-item", this.element );
+		if ( newItem && newItem.length ) {
+			this._close();
+			this.focus( event, newItem );
+		}
+	},
+
+	expand: function( event ) {
+		var newItem = this.active &&
+			this.active
+				.children( ".ui-menu " )
+					.find( this.options.items )
+						.first();
+
+		if ( newItem && newItem.length ) {
+			this._open( newItem.parent() );
+
+			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
+			this._delay( function() {
+				this.focus( event, newItem );
+			} );
+		}
+	},
+
+	next: function( event ) {
+		this._move( "next", "first", event );
+	},
+
+	previous: function( event ) {
+		this._move( "prev", "last", event );
+	},
+
+	isFirstItem: function() {
+		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
+	},
+
+	isLastItem: function() {
+		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
+	},
+
+	_move: function( direction, filter, event ) {
+		var next;
+		if ( this.active ) {
+			if ( direction === "first" || direction === "last" ) {
+				next = this.active
+					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
+					.eq( -1 );
+			} else {
+				next = this.active
+					[ direction + "All" ]( ".ui-menu-item" )
+					.eq( 0 );
+			}
+		}
+		if ( !next || !next.length || !this.active ) {
+			next = this.activeMenu.find( this.options.items )[ filter ]();
+		}
+
+		this.focus( event, next );
+	},
+
+	nextPage: function( event ) {
+		var item, base, height;
+
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isLastItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.nextAll( ".ui-menu-item" ).each( function() {
+				item = $( this );
+				return item.offset().top - base - height < 0;
+			} );
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items )
+				[ !this.active ? "first" : "last" ]() );
+		}
+	},
+
+	previousPage: function( event ) {
+		var item, base, height;
+		if ( !this.active ) {
+			this.next( event );
+			return;
+		}
+		if ( this.isFirstItem() ) {
+			return;
+		}
+		if ( this._hasScroll() ) {
+			base = this.active.offset().top;
+			height = this.element.height();
+			this.active.prevAll( ".ui-menu-item" ).each( function() {
+				item = $( this );
+				return item.offset().top - base + height > 0;
+			} );
+
+			this.focus( event, item );
+		} else {
+			this.focus( event, this.activeMenu.find( this.options.items ).first() );
+		}
+	},
+
+	_hasScroll: function() {
+		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
+	},
+
+	select: function( event ) {
+
+		// TODO: It should never be possible to not have an active item at this
+		// point, but the tests don't trigger mouseenter before click.
+		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
+		var ui = { item: this.active };
+		if ( !this.active.has( ".ui-menu" ).length ) {
+			this.collapseAll( event, true );
+		}
+		this._trigger( "select", event, ui );
+	},
+
+	_filterMenuItems: function( character ) {
+		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
+			regex = new RegExp( "^" + escapedCharacter, "i" );
+
+		return this.activeMenu
+			.find( this.options.items )
+
+				// Only match on items, not dividers or other content (#10571)
+				.filter( ".ui-menu-item" )
+					.filter( function() {
+						return regex.test(
+							$.trim( $( this ).children( ".ui-menu-item-wrapper" ).text() ) );
+					} );
+	}
+} );
+
+
+/*!
+ * jQuery UI Autocomplete 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Autocomplete
+//>>group: Widgets
+//>>description: Lists suggested words as the user is typing.
+//>>docs: http://api.jqueryui.com/autocomplete/
+//>>demos: http://jqueryui.com/autocomplete/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/autocomplete.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.autocomplete", {
+	version: "1.12.0",
+	defaultElement: "<input>",
+	options: {
+		appendTo: null,
+		autoFocus: false,
+		delay: 300,
+		minLength: 1,
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null,
+
+		// Callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		response: null,
+		search: null,
+		select: null
+	},
+
+	requestIndex: 0,
+	pending: 0,
+
+	_create: function() {
+
+		// Some browsers only repeat keydown events, not keypress events,
+		// so we use the suppressKeyPress flag to determine if we've already
+		// handled the keydown event. #7269
+		// Unfortunately the code for & in keypress is the same as the up arrow,
+		// so we use the suppressKeyPressRepeat flag to avoid handling keypress
+		// events when we know the keydown event was used to modify the
+		// search term. #7799
+		var suppressKeyPress, suppressKeyPressRepeat, suppressInput,
+			nodeName = this.element[ 0 ].nodeName.toLowerCase(),
+			isTextarea = nodeName === "textarea",
+			isInput = nodeName === "input";
+
+		// Textareas are always multi-line
+		// Inputs are always single-line, even if inside a contentEditable element
+		// IE also treats inputs as contentEditable
+		// All other element types are determined by whether or not they're contentEditable
+		this.isMultiLine = isTextarea || !isInput && this._isContentEditable( this.element );
+
+		this.valueMethod = this.element[ isTextarea || isInput ? "val" : "text" ];
+		this.isNewMenu = true;
+
+		this._addClass( "ui-autocomplete-input" );
+		this.element.attr( "autocomplete", "off" );
+
+		this._on( this.element, {
+			keydown: function( event ) {
+				if ( this.element.prop( "readOnly" ) ) {
+					suppressKeyPress = true;
+					suppressInput = true;
+					suppressKeyPressRepeat = true;
+					return;
+				}
+
+				suppressKeyPress = false;
+				suppressInput = false;
+				suppressKeyPressRepeat = false;
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					suppressKeyPress = true;
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					suppressKeyPress = true;
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					suppressKeyPress = true;
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					suppressKeyPress = true;
+					this._keyEvent( "next", event );
+					break;
+				case keyCode.ENTER:
+
+					// when menu is open and has focus
+					if ( this.menu.active ) {
+
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
+						event.preventDefault();
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.TAB:
+					if ( this.menu.active ) {
+						this.menu.select( event );
+					}
+					break;
+				case keyCode.ESCAPE:
+					if ( this.menu.element.is( ":visible" ) ) {
+						if ( !this.isMultiLine ) {
+							this._value( this.term );
+						}
+						this.close( event );
+
+						// Different browsers have different default behavior for escape
+						// Single press can mean undo or clear
+						// Double press in IE means clear the whole form
+						event.preventDefault();
+					}
+					break;
+				default:
+					suppressKeyPressRepeat = true;
+
+					// search timeout should be triggered before the input value is changed
+					this._searchTimeout( event );
+					break;
+				}
+			},
+			keypress: function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+						event.preventDefault();
+					}
+					return;
+				}
+				if ( suppressKeyPressRepeat ) {
+					return;
+				}
+
+				// Replicate some key handlers to allow them to repeat in Firefox and Opera
+				var keyCode = $.ui.keyCode;
+				switch ( event.keyCode ) {
+				case keyCode.PAGE_UP:
+					this._move( "previousPage", event );
+					break;
+				case keyCode.PAGE_DOWN:
+					this._move( "nextPage", event );
+					break;
+				case keyCode.UP:
+					this._keyEvent( "previous", event );
+					break;
+				case keyCode.DOWN:
+					this._keyEvent( "next", event );
+					break;
+				}
+			},
+			input: function( event ) {
+				if ( suppressInput ) {
+					suppressInput = false;
+					event.preventDefault();
+					return;
+				}
+				this._searchTimeout( event );
+			},
+			focus: function() {
+				this.selectedItem = null;
+				this.previous = this._value();
+			},
+			blur: function( event ) {
+				if ( this.cancelBlur ) {
+					delete this.cancelBlur;
+					return;
+				}
+
+				clearTimeout( this.searching );
+				this.close( event );
+				this._change( event );
+			}
+		} );
+
+		this._initSource();
+		this.menu = $( "<ul>" )
+			.appendTo( this._appendTo() )
+			.menu( {
+
+				// disable ARIA support, the live region takes care of that
+				role: null
+			} )
+			.hide()
+			.menu( "instance" );
+
+		this._addClass( this.menu.element, "ui-autocomplete", "ui-front" );
+		this._on( this.menu.element, {
+			mousedown: function( event ) {
+
+				// prevent moving focus out of the text field
+				event.preventDefault();
+
+				// IE doesn't prevent moving focus even with event.preventDefault()
+				// so we set a flag to know when we should ignore the blur event
+				this.cancelBlur = true;
+				this._delay( function() {
+					delete this.cancelBlur;
+
+					// Support: IE 8 only
+					// Right clicking a menu item or selecting text from the menu items will
+					// result in focus moving out of the input. However, we've already received
+					// and ignored the blur event because of the cancelBlur flag set above. So
+					// we restore focus to ensure that the menu closes properly based on the user's
+					// next actions.
+					if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
+						this.element.trigger( "focus" );
+					}
+				} );
+			},
+			menufocus: function( event, ui ) {
+				var label, item;
+
+				// support: Firefox
+				// Prevent accidental activation of menu items in Firefox (#7024 #9118)
+				if ( this.isNewMenu ) {
+					this.isNewMenu = false;
+					if ( event.originalEvent && /^mouse/.test( event.originalEvent.type ) ) {
+						this.menu.blur();
+
+						this.document.one( "mousemove", function() {
+							$( event.target ).trigger( event.originalEvent );
+						} );
+
+						return;
+					}
+				}
+
+				item = ui.item.data( "ui-autocomplete-item" );
+				if ( false !== this._trigger( "focus", event, { item: item } ) ) {
+
+					// use value to match what will end up in the input, if it was a key event
+					if ( event.originalEvent && /^key/.test( event.originalEvent.type ) ) {
+						this._value( item.value );
+					}
+				}
+
+				// Announce the value in the liveRegion
+				label = ui.item.attr( "aria-label" ) || item.value;
+				if ( label && $.trim( label ).length ) {
+					this.liveRegion.children().hide();
+					$( "<div>" ).text( label ).appendTo( this.liveRegion );
+				}
+			},
+			menuselect: function( event, ui ) {
+				var item = ui.item.data( "ui-autocomplete-item" ),
+					previous = this.previous;
+
+				// Only trigger when focus was lost (click on menu)
+				if ( this.element[ 0 ] !== $.ui.safeActiveElement( this.document[ 0 ] ) ) {
+					this.element.trigger( "focus" );
+					this.previous = previous;
+
+					// #6109 - IE triggers two focus events and the second
+					// is asynchronous, so we need to reset the previous
+					// term synchronously and asynchronously :-(
+					this._delay( function() {
+						this.previous = previous;
+						this.selectedItem = item;
+					} );
+				}
+
+				if ( false !== this._trigger( "select", event, { item: item } ) ) {
+					this._value( item.value );
+				}
+
+				// reset the term after the select event
+				// this allows custom select handling to work properly
+				this.term = this._value();
+
+				this.close( event );
+				this.selectedItem = item;
+			}
+		} );
+
+		this.liveRegion = $( "<div>", {
+			role: "status",
+			"aria-live": "assertive",
+			"aria-relevant": "additions"
+		} )
+			.appendTo( this.document[ 0 ].body );
+
+		this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
+
+		// Turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		} );
+	},
+
+	_destroy: function() {
+		clearTimeout( this.searching );
+		this.element.removeAttr( "autocomplete" );
+		this.menu.element.remove();
+		this.liveRegion.remove();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "source" ) {
+			this._initSource();
+		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( this._appendTo() );
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
+	},
+
+	_isEventTargetInWidget: function( event ) {
+		var menuElement = this.menu.element[ 0 ];
+
+		return event.target === this.element[ 0 ] ||
+			event.target === menuElement ||
+			$.contains( menuElement, event.target );
+	},
+
+	_closeOnClickOutside: function( event ) {
+		if ( !this._isEventTargetInWidget( event ) ) {
+			this.close();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front, dialog" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_initSource: function() {
+		var array, url,
+			that = this;
+		if ( $.isArray( this.options.source ) ) {
+			array = this.options.source;
+			this.source = function( request, response ) {
+				response( $.ui.autocomplete.filter( array, request.term ) );
+			};
+		} else if ( typeof this.options.source === "string" ) {
+			url = this.options.source;
+			this.source = function( request, response ) {
+				if ( that.xhr ) {
+					that.xhr.abort();
+				}
+				that.xhr = $.ajax( {
+					url: url,
+					data: request,
+					dataType: "json",
+					success: function( data ) {
+						response( data );
+					},
+					error: function() {
+						response( [] );
+					}
+				} );
+			};
+		} else {
+			this.source = this.options.source;
+		}
+	},
+
+	_searchTimeout: function( event ) {
+		clearTimeout( this.searching );
+		this.searching = this._delay( function() {
+
+			// Search if the value has changed, or if the user retypes the same value (see #7434)
+			var equalValues = this.term === this._value(),
+				menuVisible = this.menu.element.is( ":visible" ),
+				modifierKey = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
+
+			if ( !equalValues || ( equalValues && !menuVisible && !modifierKey ) ) {
+				this.selectedItem = null;
+				this.search( null, event );
+			}
+		}, this.options.delay );
+	},
+
+	search: function( value, event ) {
+		value = value != null ? value : this._value();
+
+		// Always save the actual value, not the one passed as an argument
+		this.term = this._value();
+
+		if ( value.length < this.options.minLength ) {
+			return this.close( event );
+		}
+
+		if ( this._trigger( "search", event ) === false ) {
+			return;
+		}
+
+		return this._search( value );
+	},
+
+	_search: function( value ) {
+		this.pending++;
+		this._addClass( "ui-autocomplete-loading" );
+		this.cancelSearch = false;
+
+		this.source( { term: value }, this._response() );
+	},
+
+	_response: function() {
+		var index = ++this.requestIndex;
+
+		return $.proxy( function( content ) {
+			if ( index === this.requestIndex ) {
+				this.__response( content );
+			}
+
+			this.pending--;
+			if ( !this.pending ) {
+				this._removeClass( "ui-autocomplete-loading" );
+			}
+		}, this );
+	},
+
+	__response: function( content ) {
+		if ( content ) {
+			content = this._normalize( content );
+		}
+		this._trigger( "response", null, { content: content } );
+		if ( !this.options.disabled && content && content.length && !this.cancelSearch ) {
+			this._suggest( content );
+			this._trigger( "open" );
+		} else {
+
+			// use ._close() instead of .close() so we don't cancel future searches
+			this._close();
+		}
+	},
+
+	close: function( event ) {
+		this.cancelSearch = true;
+		this._close( event );
+	},
+
+	_close: function( event ) {
+
+		// Remove the handler that closes the menu on outside clicks
+		this._off( this.document, "mousedown" );
+
+		if ( this.menu.element.is( ":visible" ) ) {
+			this.menu.element.hide();
+			this.menu.blur();
+			this.isNewMenu = true;
+			this._trigger( "close", event );
+		}
+	},
+
+	_change: function( event ) {
+		if ( this.previous !== this._value() ) {
+			this._trigger( "change", event, { item: this.selectedItem } );
+		}
+	},
+
+	_normalize: function( items ) {
+
+		// assume all items have the right format when the first item is complete
+		if ( items.length && items[ 0 ].label && items[ 0 ].value ) {
+			return items;
+		}
+		return $.map( items, function( item ) {
+			if ( typeof item === "string" ) {
+				return {
+					label: item,
+					value: item
+				};
+			}
+			return $.extend( {}, item, {
+				label: item.label || item.value,
+				value: item.value || item.label
+			} );
+		} );
+	},
+
+	_suggest: function( items ) {
+		var ul = this.menu.element.empty();
+		this._renderMenu( ul, items );
+		this.isNewMenu = true;
+		this.menu.refresh();
+
+		// Size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend( {
+			of: this.element
+		}, this.options.position ) );
+
+		if ( this.options.autoFocus ) {
+			this.menu.next();
+		}
+
+		// Listen for interactions outside of the widget (#6642)
+		this._on( this.document, {
+			mousedown: "_closeOnClickOutside"
+		} );
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+
+			// Firefox wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping (#7513)
+			ul.width( "" ).outerWidth() + 1,
+			this.element.outerWidth()
+		) );
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this;
+		$.each( items, function( index, item ) {
+			that._renderItemData( ul, item );
+		} );
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-autocomplete-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		return $( "<li>" )
+			.append( $( "<div>" ).text( item.label ) )
+			.appendTo( ul );
+	},
+
+	_move: function( direction, event ) {
+		if ( !this.menu.element.is( ":visible" ) ) {
+			this.search( null, event );
+			return;
+		}
+		if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
+				this.menu.isLastItem() && /^next/.test( direction ) ) {
+
+			if ( !this.isMultiLine ) {
+				this._value( this.term );
+			}
+
+			this.menu.blur();
+			return;
+		}
+		this.menu[ direction ]( event );
+	},
+
+	widget: function() {
+		return this.menu.element;
+	},
+
+	_value: function() {
+		return this.valueMethod.apply( this.element, arguments );
+	},
+
+	_keyEvent: function( keyEvent, event ) {
+		if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+			this._move( keyEvent, event );
+
+			// Prevents moving cursor to beginning/end of the text field in some browsers
+			event.preventDefault();
+		}
+	},
+
+	// Support: Chrome <=50
+	// We should be able to just use this.element.prop( "isContentEditable" )
+	// but hidden elements always report false in Chrome.
+	// https://code.google.com/p/chromium/issues/detail?id=313082
+	_isContentEditable: function( element ) {
+		if ( !element.length ) {
+			return false;
+		}
+
+		var editable = element.prop( "contentEditable" );
+
+		if ( editable === "inherit" ) {
+		  return this._isContentEditable( element.parent() );
+		}
+
+		return editable === "true";
+	}
+} );
+
+$.extend( $.ui.autocomplete, {
+	escapeRegex: function( value ) {
+		return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
+	},
+	filter: function( array, term ) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex( term ), "i" );
+		return $.grep( array, function( value ) {
+			return matcher.test( value.label || value.value || value );
+		} );
+	}
+} );
+
+// Live region extension, adding a `messages` option
+// NOTE: This is an experimental API. We are still investigating
+// a full solution for string manipulation and internationalization.
+$.widget( "ui.autocomplete", $.ui.autocomplete, {
+	options: {
+		messages: {
+			noResults: "No search results.",
+			results: function( amount ) {
+				return amount + ( amount > 1 ? " results are" : " result is" ) +
+					" available, use up and down arrow keys to navigate.";
+			}
+		}
+	},
+
+	__response: function( content ) {
+		var message;
+		this._superApply( arguments );
+		if ( this.options.disabled || this.cancelSearch ) {
+			return;
+		}
+		if ( content && content.length ) {
+			message = this.options.messages.results( content.length );
+		} else {
+			message = this.options.messages.noResults;
+		}
+		this.liveRegion.children().hide();
+		$( "<div>" ).text( message ).appendTo( this.liveRegion );
+	}
+} );
+
+var widgetsAutocomplete = $.ui.autocomplete;
+
+
+/*!
+ * jQuery UI Controlgroup 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Controlgroup
+//>>group: Widgets
+//>>description: Visually groups form control widgets
+//>>docs: http://api.jqueryui.com/controlgroup/
+//>>demos: http://jqueryui.com/controlgroup/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/controlgroup.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+var controlgroupCornerRegex = /ui-corner-([a-z]){2,6}/g;
+
+var widgetsControlgroup = $.widget( "ui.controlgroup", {
+	version: "1.12.0",
+	defaultElement: "<div>",
+	options: {
+		direction: "horizontal",
+		disabled: null,
+		onlyVisible: true,
+		items: {
+			"button": "input[type=button], input[type=submit], input[type=reset], button, a",
+			"controlgroupLabel": ".ui-controlgroup-label",
+			"checkboxradio": "input[type='checkbox'], input[type='radio']",
+			"selectmenu": "select",
+			"spinner": ".ui-spinner-input"
+		}
+	},
+
+	_create: function() {
+		this._enhance();
+	},
+
+	// To support the enhanced option in jQuery Mobile, we isolate DOM manipulation
+	_enhance: function() {
+		this.element.attr( "role", "toolbar" );
+		this.refresh();
+	},
+
+	_destroy: function() {
+		this._callChildMethod( "destroy" );
+		this.childWidgets.removeData( "ui-controlgroup-data" );
+		this.element.removeAttr( "role" );
+		if ( this.options.items.controlgroupLabel ) {
+			this.element
+				.find( this.options.items.controlgroupLabel )
+				.find( ".ui-controlgroup-label-contents" )
+				.contents().unwrap();
+		}
+	},
+
+	_initWidgets: function() {
+		var that = this,
+			childWidgets = [];
+
+		// First we iterate over each of the items options
+		$.each( this.options.items, function( widget, selector ) {
+			var labels;
+			var options = {};
+
+			// Make sure the widget has a selector set
+			if ( !selector ) {
+				return;
+			}
+
+			if ( widget === "controlgroupLabel" ) {
+				labels = that.element.find( selector );
+				labels.each( function() {
+					var element = $( this );
+
+					if ( element.children( ".ui-controlgroup-label-contents" ).length ) {
+						return;
+					}
+					element.contents()
+						.wrapAll( "<span class='ui-controlgroup-label-contents'></span>" );
+				} );
+				that._addClass( labels, null, "ui-widget ui-widget-content ui-state-default" );
+				childWidgets = childWidgets.concat( labels.get() );
+				return;
+			}
+
+			// Make sure the widget actually exists
+			if ( !$.fn[ widget ] ) {
+				return;
+			}
+
+			// We assume everything is in the middle to start because we can't determine
+			// first / last elements until all enhancments are done.
+			if ( that[ "_" + widget + "Options" ] ) {
+				options = that[ "_" + widget + "Options" ]( "middle" );
+			}
+
+			// Find instances of this widget inside controlgroup and init them
+			that.element
+				.find( selector )
+				.each( function() {
+					var element = $( this );
+					var instance = element[ widget ]( "instance" );
+
+					// We need to clone the default options for this type of widget to avoid
+					// polluting the variable options which has a wider scope than a single widget.
+					var instanceOptions = $.widget.extend( {}, options );
+
+					// If the button is the child of a spinner ignore it
+					// TODO: Find a more generic solution
+					if ( widget === "button" && element.parent( ".ui-spinner" ).length ) {
+						return;
+					}
+
+					// Create the widget if it doesn't exist
+					if ( !instance ) {
+						instance = element[ widget ]()[ widget ]( "instance" );
+					}
+					if ( instance ) {
+						instanceOptions.classes =
+							that._resolveClassesValues( instanceOptions.classes, instance );
+					}
+					element[ widget ]( instanceOptions );
+
+					// Store an instance of the controlgroup to be able to reference
+					// from the outermost element for changing options and refresh
+					var widgetElement = element[ widget ]( "widget" );
+					$.data( widgetElement[ 0 ], "ui-controlgroup-data",
+						instance ? instance : element[ widget ]( "instance" ) );
+
+					childWidgets.push( widgetElement[ 0 ] );
+				} );
+		} );
+
+		this.childWidgets = $( $.unique( childWidgets ) );
+		this._addClass( this.childWidgets, "ui-controlgroup-item" );
+	},
+
+	_callChildMethod: function( method ) {
+		this.childWidgets.each( function() {
+			var element = $( this ),
+				data = element.data( "ui-controlgroup-data" );
+			if ( data && data[ method ] ) {
+				data[ method ]();
+			}
+		} );
+	},
+
+	_updateCornerClass: function( element, position ) {
+		var remove = "ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all";
+		var add = this._buildSimpleOptions( position, "label" ).classes.label;
+
+		this._removeClass( element, null, remove );
+		this._addClass( element, null, add );
+	},
+
+	_buildSimpleOptions: function( position, key ) {
+		var direction = this.options.direction === "vertical";
+		var result = {
+			classes: {}
+		};
+		result.classes[ key ] = {
+			"middle": "",
+			"first": "ui-corner-" + ( direction ? "top" : "left" ),
+			"last": "ui-corner-" + ( direction ? "bottom" : "right" ),
+			"only": "ui-corner-all"
+		}[ position ];
+
+		return result;
+	},
+
+	_spinnerOptions: function( position ) {
+		var options = this._buildSimpleOptions( position, "ui-spinner" );
+
+		options.classes[ "ui-spinner-up" ] = "";
+		options.classes[ "ui-spinner-down" ] = "";
+
+		return options;
+	},
+
+	_buttonOptions: function( position ) {
+		return this._buildSimpleOptions( position, "ui-button" );
+	},
+
+	_checkboxradioOptions: function( position ) {
+		return this._buildSimpleOptions( position, "ui-checkboxradio-label" );
+	},
+
+	_selectmenuOptions: function( position ) {
+		var direction = this.options.direction === "vertical";
+		return {
+			width: direction ? "auto" : false,
+			classes: {
+				middle: {
+					"ui-selectmenu-button-open": "",
+					"ui-selectmenu-button-closed": ""
+				},
+				first: {
+					"ui-selectmenu-button-open": "ui-corner-" + ( direction ? "top" : "tl" ),
+					"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "top" : "left" )
+				},
+				last: {
+					"ui-selectmenu-button-open": direction ? "" : "ui-corner-tr",
+					"ui-selectmenu-button-closed": "ui-corner-" + ( direction ? "bottom" : "right" )
+				},
+				only: {
+					"ui-selectmenu-button-open": "ui-corner-top",
+					"ui-selectmenu-button-closed": "ui-corner-all"
+				}
+
+			}[ position ]
+		};
+	},
+
+	_resolveClassesValues: function( classes, instance ) {
+		var result = {};
+		$.each( classes, function( key ) {
+			var current = instance.options.classes[ key ] || "";
+			current = current.replace( controlgroupCornerRegex, "" ).trim();
+			result[ key ] = ( current + " " + classes[ key ] ).replace( /\s+/g, " " );
+		} );
+		return result;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "direction" ) {
+			this._removeClass( "ui-controlgroup-" + this.options.direction );
+		}
+
+		this._super( key, value );
+		if ( key === "disabled" ) {
+			this._callChildMethod( value ? "disable" : "enable" );
+			return;
+		}
+
+		this.refresh();
+	},
+
+	refresh: function() {
+		var children,
+			that = this;
+
+		this._addClass( "ui-controlgroup ui-controlgroup-" + this.options.direction );
+
+		if ( this.options.direction === "horizontal" ) {
+			this._addClass( null, "ui-helper-clearfix" );
+		}
+		this._initWidgets();
+
+		children = this.childWidgets;
+
+		// We filter here because we need to track all childWidgets not just the visible ones
+		if ( this.options.onlyVisible ) {
+			children = children.filter( ":visible" );
+		}
+
+		if ( children.length ) {
+
+			// We do this last because we need to make sure all enhancment is done
+			// before determining first and last
+			$.each( [ "first", "last" ], function( index, value ) {
+				var instance = children[ value ]().data( "ui-controlgroup-data" );
+
+				if ( instance && that[ "_" + instance.widgetName + "Options" ] ) {
+					var options = that[ "_" + instance.widgetName + "Options" ](
+						children.length === 1 ? "only" : value
+					);
+					options.classes = that._resolveClassesValues( options.classes, instance );
+					instance.element[ instance.widgetName ]( options );
+				} else {
+					that._updateCornerClass( children[ value ](), value );
+				}
+			} );
+
+			// Finally call the refresh method on each of the child widgets.
+			this._callChildMethod( "refresh" );
+		}
+	}
+} );
+
+/*!
+ * jQuery UI Checkboxradio 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Checkboxradio
+//>>group: Widgets
+//>>description: Enhances a form with multiple themeable checkboxes or radio buttons.
+//>>docs: http://api.jqueryui.com/checkboxradio/
+//>>demos: http://jqueryui.com/checkboxradio/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/button.css
+//>>css.structure: ../../themes/base/checkboxradio.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.checkboxradio", [ $.ui.formResetMixin, {
+	version: "1.12.0",
+	options: {
+		disabled: null,
+		label: null,
+		icon: true,
+		classes: {
+			"ui-checkboxradio-label": "ui-corner-all",
+			"ui-checkboxradio-icon": "ui-corner-all"
+		}
+	},
+
+	_getCreateOptions: function() {
+		var disabled, labels;
+		var that = this;
+		var options = this._super() || {};
+
+		// We read the type here, because it makes more sense to throw a element type error first,
+		// rather then the error for lack of a label. Often if its the wrong type, it
+		// won't have a label (e.g. calling on a div, btn, etc)
+		this._readType();
+
+		labels = this.element.labels();
+
+		// If there are multiple labels, use the last one
+		this.label = $( labels[ labels.length - 1 ] );
+		if ( !this.label.length ) {
+			$.error( "No label found for checkboxradio widget" );
+		}
+
+		this.originalLabel = "";
+
+		// We need to get the label text but this may also need to make sure it does not contain the
+		// input itself.
+		this.label.contents().not( this.element ).each( function() {
+
+			// The label contents could be text, html, or a mix. We concat each element to get a
+			// string representation of the label, without the input as part of it.
+			that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;
+		} );
+
+		// Set the label option if we found label text
+		if ( this.originalLabel ) {
+			options.label = this.originalLabel;
+		}
+
+		disabled = this.element[ 0 ].disabled;
+		if ( disabled != null ) {
+			options.disabled = disabled;
+		}
+		return options;
+	},
+
+	_create: function() {
+		var checked = this.element[ 0 ].checked;
+
+		this._bindFormResetHandler();
+
+		if ( this.options.disabled == null ) {
+			this.options.disabled = this.element[ 0 ].disabled;
+		}
+
+		this._setOption( "disabled", this.options.disabled );
+		this._addClass( "ui-checkboxradio", "ui-helper-hidden-accessible" );
+		this._addClass( this.label, "ui-checkboxradio-label", "ui-button ui-widget" );
+
+		if ( this.type === "radio" ) {
+			this._addClass( this.label, "ui-checkboxradio-radio-label" );
+		}
+
+		if ( this.options.label && this.options.label !== this.originalLabel ) {
+			this._updateLabel();
+		} else if ( this.originalLabel ) {
+			this.options.label = this.originalLabel;
+		}
+
+		this._enhance();
+
+		if ( checked ) {
+			this._addClass( this.label, "ui-checkboxradio-checked", "ui-state-active" );
+			if ( this.icon ) {
+				this._addClass( this.icon, null, "ui-state-hover" );
+			}
+		}
+
+		this._on( {
+			change: "_toggleClasses",
+			focus: function() {
+				this._addClass( this.label, null, "ui-state-focus ui-visual-focus" );
+			},
+			blur: function() {
+				this._removeClass( this.label, null, "ui-state-focus ui-visual-focus" );
+			}
+		} );
+	},
+
+	_readType: function() {
+		var nodeName = this.element[ 0 ].nodeName.toLowerCase();
+		this.type = this.element[ 0 ].type;
+		if ( nodeName !== "input" || !/radio|checkbox/.test( this.type ) ) {
+			$.error( "Can't create checkboxradio on element.nodeName=" + nodeName +
+				" and element.type=" + this.type );
+		}
+	},
+
+	// Support jQuery Mobile enhanced option
+	_enhance: function() {
+		this._updateIcon( this.element[ 0 ].checked );
+	},
+
+	widget: function() {
+		return this.label;
+	},
+
+	_getRadioGroup: function() {
+		var group;
+		var name = this.element[ 0 ].name;
+		var nameSelector = "input[name='" + $.ui.escapeSelector( name ) + "']";
+
+		if ( !name ) {
+			return $( [] );
+		}
+
+		if ( this.form.length ) {
+			group = $( this.form[ 0 ].elements ).filter( nameSelector );
+		} else {
+
+			// Not inside a form, check all inputs that also are not inside a form
+			group = $( nameSelector ).filter( function() {
+				return $( this ).form().length === 0;
+			} );
+		}
+
+		return group.not( this.element );
+	},
+
+	_toggleClasses: function() {
+		var checked = this.element[ 0 ].checked;
+		this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
+
+		if ( this.options.icon && this.type === "checkbox" ) {
+			this._toggleClass( this.icon, null, "ui-icon-check ui-state-checked", checked )
+				._toggleClass( this.icon, null, "ui-icon-blank", !checked );
+		}
+
+		if ( this.type === "radio" ) {
+			this._getRadioGroup()
+				.each( function() {
+					var instance = $( this ).checkboxradio( "instance" );
+
+					if ( instance ) {
+						instance._removeClass( instance.label,
+							"ui-checkboxradio-checked", "ui-state-active" );
+					}
+				} );
+		}
+	},
+
+	_destroy: function() {
+		this._unbindFormResetHandler();
+
+		if ( this.icon ) {
+			this.icon.remove();
+			this.iconSpace.remove();
+		}
+	},
+
+	_setOption: function( key, value ) {
+
+		// We don't allow the value to be set to nothing
+		if ( key === "label" && !value ) {
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "disabled" ) {
+			this._toggleClass( this.label, null, "ui-state-disabled", value );
+			this.element[ 0 ].disabled = value;
+
+			// Don't refresh when setting disabled
+			return;
+		}
+		this.refresh();
+	},
+
+	_updateIcon: function( checked ) {
+		var toAdd = "ui-icon ui-icon-background ";
+
+		if ( this.options.icon ) {
+			if ( !this.icon ) {
+				this.icon = $( "<span>" );
+				this.iconSpace = $( "<span> </span>" );
+				this._addClass( this.iconSpace, "ui-checkboxradio-icon-space" );
+			}
+
+			if ( this.type === "checkbox" ) {
+				toAdd += checked ? "ui-icon-check ui-state-checked" : "ui-icon-blank";
+				this._removeClass( this.icon, null, checked ? "ui-icon-blank" : "ui-icon-check" );
+			} else {
+				toAdd += "ui-icon-blank";
+			}
+			this._addClass( this.icon, "ui-checkboxradio-icon", toAdd );
+			if ( !checked ) {
+				this._removeClass( this.icon, null, "ui-icon-check ui-state-checked" );
+			}
+			this.icon.prependTo( this.label ).after( this.iconSpace );
+		} else if ( this.icon !== undefined ) {
+			this.icon.remove();
+			this.iconSpace.remove();
+			delete this.icon;
+		}
+	},
+
+	_updateLabel: function() {
+
+		// Remove the contents of the label ( minus the icon, icon space, and input )
+		this.label.contents().not( this.element.add( this.icon ).add( this.iconSpace ) ).remove();
+		this.label.append( this.options.label );
+	},
+
+	refresh: function() {
+		var checked = this.element[ 0 ].checked,
+			isDisabled = this.element[ 0 ].disabled;
+
+		this._updateIcon( checked );
+		this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
+		if ( this.options.label !== null ) {
+			this._updateLabel();
+		}
+
+		if ( isDisabled !== this.options.disabled ) {
+			this._setOptions( { "disabled": isDisabled } );
+		}
+	}
+
+} ] );
+
+var widgetsCheckboxradio = $.ui.checkboxradio;
+
+
+/*!
+ * jQuery UI Button 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Button
+//>>group: Widgets
+//>>description: Enhances a form with themeable buttons.
+//>>docs: http://api.jqueryui.com/button/
+//>>demos: http://jqueryui.com/button/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/button.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.button", {
+	version: "1.12.0",
+	defaultElement: "<button>",
+	options: {
+		classes: {
+			"ui-button": "ui-corner-all"
+		},
+		disabled: null,
+		icon: null,
+		iconPosition: "beginning",
+		label: null,
+		showLabel: true
+	},
+
+	_getCreateOptions: function() {
+		var disabled,
+
+			// This is to support cases like in jQuery Mobile where the base widget does have
+			// an implementation of _getCreateOptions
+			options = this._super() || {};
+
+		this.isInput = this.element.is( "input" );
+
+		disabled = this.element[ 0 ].disabled;
+		if ( disabled != null ) {
+			options.disabled = disabled;
+		}
+
+		this.originalLabel = this.isInput ? this.element.val() : this.element.html();
+		if ( this.originalLabel ) {
+			options.label = this.originalLabel;
+		}
+
+		return options;
+	},
+
+	_create: function() {
+		if ( !this.option.showLabel & !this.options.icon ) {
+			this.options.showLabel = true;
+		}
+
+		// We have to check the option again here even though we did in _getCreateOptions,
+		// because null may have been passed on init which would override what was set in
+		// _getCreateOptions
+		if ( this.options.disabled == null ) {
+			this.options.disabled = this.element[ 0 ].disabled || false;
+		}
+
+		this.hasTitle = !!this.element.attr( "title" );
+
+		// Check to see if the label needs to be set or if its already correct
+		if ( this.options.label && this.options.label !== this.originalLabel ) {
+			if ( this.isInput ) {
+				this.element.val( this.options.label );
+			} else {
+				this.element.html( this.options.label );
+			}
+		}
+		this._addClass( "ui-button", "ui-widget" );
+		this._setOption( "disabled", this.options.disabled );
+		this._enhance();
+
+		if ( this.element.is( "a" ) ) {
+			this._on( {
+				"keyup": function( event ) {
+					if ( event.keyCode === $.ui.keyCode.SPACE ) {
+						event.preventDefault();
+
+						// Support: PhantomJS <= 1.9, IE 8 Only
+						// If a native click is available use it so we actually cause navigation
+						// otherwise just trigger a click event
+						if ( this.element[ 0 ].click ) {
+							this.element[ 0 ].click();
+						} else {
+							this.element.trigger( "click" );
+						}
+					}
+				}
+			} );
+		}
+	},
+
+	_enhance: function() {
+		if ( !this.element.is( "button" ) ) {
+			this.element.attr( "role", "button" );
+		}
+
+		if ( this.options.icon ) {
+			this._updateIcon( "icon", this.options.icon );
+			this._updateTooltip();
+		}
+	},
+
+	_updateTooltip: function() {
+		this.title = this.element.attr( "title" );
+
+		if ( !this.options.showLabel && !this.title ) {
+			this.element.attr( "title", this.options.label );
+		}
+	},
+
+	_updateIcon: function( option, value ) {
+		var icon = option !== "iconPosition",
+			position = icon ? this.options.iconPosition : value,
+			displayBlock = position === "top" || position === "bottom";
+
+		// Create icon
+		if ( !this.icon ) {
+			this.icon = $( "<span>" );
+
+			this._addClass( this.icon, "ui-button-icon", "ui-icon" );
+
+			if ( !this.options.showLabel ) {
+				this._addClass( "ui-button-icon-only" );
+			}
+		} else if ( icon ) {
+
+			// If we are updating the icon remove the old icon class
+			this._removeClass( this.icon, null, this.options.icon );
+		}
+
+		// If we are updating the icon add the new icon class
+		if ( icon ) {
+			this._addClass( this.icon, null, value );
+		}
+
+		this._attachIcon( position );
+
+		// If the icon is on top or bottom we need to add the ui-widget-icon-block class and remove
+		// the iconSpace if there is one.
+		if ( displayBlock ) {
+			this._addClass( this.icon, null, "ui-widget-icon-block" );
+			if ( this.iconSpace ) {
+				this.iconSpace.remove();
+			}
+		} else {
+
+			// Position is beginning or end so remove the ui-widget-icon-block class and add the
+			// space if it does not exist
+			if ( !this.iconSpace ) {
+				this.iconSpace = $( "<span> </span>" );
+				this._addClass( this.iconSpace, "ui-button-icon-space" );
+			}
+			this._removeClass( this.icon, null, "ui-wiget-icon-block" );
+			this._attachIconSpace( position );
+		}
+	},
+
+	_destroy: function() {
+		this.element.removeAttr( "role" );
+
+		if ( this.icon ) {
+			this.icon.remove();
+		}
+		if ( this.iconSpace ) {
+			this.iconSpace.remove();
+		}
+		if ( !this.hasTitle ) {
+			this.element.removeAttr( "title" );
+		}
+	},
+
+	_attachIconSpace: function( iconPosition ) {
+		this.icon[ /^(?:end|bottom)/.test( iconPosition ) ? "before" : "after" ]( this.iconSpace );
+	},
+
+	_attachIcon: function( iconPosition ) {
+		this.element[ /^(?:end|bottom)/.test( iconPosition ) ? "append" : "prepend" ]( this.icon );
+	},
+
+	_setOptions: function( options ) {
+		var newShowLabel = options.showLabel === undefined ?
+				this.options.showLabel :
+				options.showLabel,
+			newIcon = options.icon === undefined ? this.options.icon : options.icon;
+
+		if ( !newShowLabel && !newIcon ) {
+			options.showLabel = true;
+		}
+		this._super( options );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icon" ) {
+			if ( value ) {
+				this._updateIcon( key, value );
+			} else if ( this.icon ) {
+				this.icon.remove();
+				if ( this.iconSpace ) {
+					this.iconSpace.remove();
+				}
+			}
+		}
+
+		if ( key === "iconPosition" ) {
+			this._updateIcon( key, value );
+		}
+
+		// Make sure we can't end up with a button that has neither text nor icon
+		if ( key === "showLabel" ) {
+				this._toggleClass( "ui-button-icon-only", null, !value );
+				this._updateTooltip();
+		}
+
+		if ( key === "label" ) {
+			if ( this.isInput ) {
+				this.element.val( value );
+			} else {
+
+				// If there is an icon, append it, else nothing then append the value
+				// this avoids removal of the icon when setting label text
+				this.element.html( value );
+				if ( this.icon ) {
+					this._attachIcon( this.options.iconPosition );
+					this._attachIconSpace( this.options.iconPosition );
+				}
+			}
+		}
+
+		this._super( key, value );
+
+		if ( key === "disabled" ) {
+			this._toggleClass( null, "ui-state-disabled", value );
+			this.element[ 0 ].disabled = value;
+			if ( value ) {
+				this.element.blur();
+			}
+		}
+	},
+
+	refresh: function() {
+
+		// Make sure to only check disabled if its an element that supports this otherwise
+		// check for the disabled class to determine state
+		var isDisabled = this.element.is( "input, button" ) ?
+			this.element[ 0 ].disabled : this.element.hasClass( "ui-button-disabled" );
+
+		if ( isDisabled !== this.options.disabled ) {
+			this._setOptions( { disabled: isDisabled } );
+		}
+
+		this._updateTooltip();
+	}
+} );
+
+// DEPRECATED
+if ( $.uiBackCompat !== false ) {
+
+	// Text and Icons options
+	$.widget( "ui.button", $.ui.button, {
+		options: {
+			text: true,
+			icons: {
+				primary: null,
+				secondary: null
+			}
+		},
+
+		_create: function() {
+			if ( this.options.showLabel && !this.options.text ) {
+				this.options.showLabel = this.options.text;
+			}
+			if ( !this.options.showLabel && this.options.text ) {
+				this.options.text = this.options.showLabel;
+			}
+			if ( !this.options.icon && ( this.options.icons.primary ||
+					this.options.icons.secondary ) ) {
+				if ( this.options.icons.primary ) {
+					this.options.icon = this.options.icons.primary;
+				} else {
+					this.options.icon = this.options.icons.secondary;
+					this.options.iconPosition = "end";
+				}
+			} else if ( this.options.icon ) {
+				this.options.icons.primary = this.options.icon;
+			}
+			this._super();
+		},
+
+		_setOption: function( key, value ) {
+			if ( key === "text" ) {
+				this._super( "showLabel", value );
+				return;
+			}
+			if ( key === "showLabel" ) {
+				this.options.text = value;
+			}
+			if ( key === "icon" ) {
+				this.options.icons.primary = value;
+			}
+			if ( key === "icons" ) {
+				if ( value.primary ) {
+					this._super( "icon", value.primary );
+					this._super( "iconPosition", "beginning" );
+				} else if ( value.secondary ) {
+					this._super( "icon", value.secondary );
+					this._super( "iconPosition", "end" );
+				}
+			}
+			this._superApply( arguments );
+		}
+	} );
+
+	$.fn.button = ( function( orig ) {
+		return function() {
+			if ( !this.length || ( this.length && this[ 0 ].tagName !== "INPUT" ) ||
+					( this.length && this[ 0 ].tagName === "INPUT" && (
+						this.attr( "type" ) !== "checkbox" && this.attr( "type" ) !== "radio"
+					) ) ) {
+				return orig.apply( this, arguments );
+			}
+			if ( !$.ui.checkboxradio ) {
+				$.error( "Checkboxradio widget missing" );
+			}
+			if ( arguments.length === 0 ) {
+				return this.checkboxradio( {
+					"icon": false
+				} );
+			}
+			return this.checkboxradio.apply( this, arguments );
+		};
+	} )( $.fn.button );
+
+	$.fn.buttonset = function() {
+		if ( !$.ui.controlgroup ) {
+			$.error( "Controlgroup widget missing" );
+		}
+		if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" && arguments[ 2 ] ) {
+			return this.controlgroup.apply( this,
+				[ arguments[ 0 ], "items.button", arguments[ 2 ] ] );
+		}
+		if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" ) {
+			return this.controlgroup.apply( this, [ arguments[ 0 ], "items.button" ] );
+		}
+		if ( typeof arguments[ 0 ] === "object" && arguments[ 0 ].items ) {
+			arguments[ 0 ].items = {
+				button: arguments[ 0 ].items
+			};
+		}
+		return this.controlgroup.apply( this, arguments );
+	};
+}
+
+var widgetsButton = $.ui.button;
+
+
+// jscs:disable maximumLineLength
+/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */
+/*!
+ * jQuery UI Datepicker 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Datepicker
+//>>group: Widgets
+//>>description: Displays a calendar from an input or inline for selecting dates.
+//>>docs: http://api.jqueryui.com/datepicker/
+//>>demos: http://jqueryui.com/datepicker/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/datepicker.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.extend( $.ui, { datepicker: { version: "1.12.0" } } );
+
+var datepicker_instActive;
+
+function datepicker_getZindex( elem ) {
+	var position, value;
+	while ( elem.length && elem[ 0 ] !== document ) {
+
+		// Ignore z-index if position is set to a value where z-index is ignored by the browser
+		// This makes behavior of this function consistent across browsers
+		// WebKit always returns auto if the element is positioned
+		position = elem.css( "position" );
+		if ( position === "absolute" || position === "relative" || position === "fixed" ) {
+
+			// IE returns 0 when zIndex is not specified
+			// other browsers return a string
+			// we ignore the case of nested elements with an explicit value of 0
+			// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
+			value = parseInt( elem.css( "zIndex" ), 10 );
+			if ( !isNaN( value ) && value !== 0 ) {
+				return value;
+			}
+		}
+		elem = elem.parent();
+	}
+
+	return 0;
+}
+/* Date picker manager.
+   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
+   Settings for (groups of) date pickers are maintained in an instance object,
+   allowing multiple different settings on the same page. */
+
+function Datepicker() {
+	this._curInst = null; // The current instance in use
+	this._keyEvent = false; // If the last event was a key event
+	this._disabledInputs = []; // List of date picker inputs that have been disabled
+	this._datepickerShowing = false; // True if the popup picker is showing , false if not
+	this._inDialog = false; // True if showing within a "dialog", false if not
+	this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division
+	this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class
+	this._appendClass = "ui-datepicker-append"; // The name of the append marker class
+	this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class
+	this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class
+	this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class
+	this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class
+	this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class
+	this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class
+	this.regional = []; // Available regional settings, indexed by language code
+	this.regional[ "" ] = { // Default regional settings
+		closeText: "Done", // Display text for close link
+		prevText: "Prev", // Display text for previous month link
+		nextText: "Next", // Display text for next month link
+		currentText: "Today", // Display text for current month link
+		monthNames: [ "January","February","March","April","May","June",
+			"July","August","September","October","November","December" ], // Names of months for drop-down and formatting
+		monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], // For formatting
+		dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], // For formatting
+		dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], // For formatting
+		dayNamesMin: [ "Su","Mo","Tu","We","Th","Fr","Sa" ], // Column headings for days starting at Sunday
+		weekHeader: "Wk", // Column header for week of the year
+		dateFormat: "mm/dd/yy", // See format options on parseDate
+		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
+		isRTL: false, // True if right-to-left language, false if left-to-right
+		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
+		yearSuffix: "" // Additional text to append to the year in the month headers
+	};
+	this._defaults = { // Global defaults for all the date picker instances
+		showOn: "focus", // "focus" for popup on focus,
+			// "button" for trigger button, or "both" for either
+		showAnim: "fadeIn", // Name of jQuery animation for popup
+		showOptions: {}, // Options for enhanced animations
+		defaultDate: null, // Used when field is blank: actual date,
+			// +/-number for offset from today, null for today
+		appendText: "", // Display text following the input box, e.g. showing the format
+		buttonText: "...", // Text for trigger button
+		buttonImage: "", // URL for trigger button image
+		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
+		hideIfNoPrevNext: false, // True to hide next/previous month links
+			// if not applicable, false to just disable them
+		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
+		gotoCurrent: false, // True if today link goes back to current selection instead
+		changeMonth: false, // True if month can be selected directly, false if only prev/next
+		changeYear: false, // True if year can be selected directly, false if only prev/next
+		yearRange: "c-10:c+10", // Range of years to display in drop-down,
+			// either relative to today's year (-nn:+nn), relative to currently displayed year
+			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
+		showOtherMonths: false, // True to show dates in other months, false to leave blank
+		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
+		showWeek: false, // True to show week of the year, false to not show it
+		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
+			// takes a Date and returns the number of the week for it
+		shortYearCutoff: "+10", // Short year values < this are in the current century,
+			// > this are in the previous century,
+			// string value starting with "+" for current year + value
+		minDate: null, // The earliest selectable date, or null for no limit
+		maxDate: null, // The latest selectable date, or null for no limit
+		duration: "fast", // Duration of display/closure
+		beforeShowDay: null, // Function that takes a date and returns an array with
+			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
+			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
+		beforeShow: null, // Function that takes an input field and
+			// returns a set of custom settings for the date picker
+		onSelect: null, // Define a callback function when a date is selected
+		onChangeMonthYear: null, // Define a callback function when the month or year is changed
+		onClose: null, // Define a callback function when the datepicker is closed
+		numberOfMonths: 1, // Number of months to show at a time
+		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
+		stepMonths: 1, // Number of months to step back/forward
+		stepBigMonths: 12, // Number of months to step back/forward for the big links
+		altField: "", // Selector for an alternate field to store selected dates into
+		altFormat: "", // The date format to use for the alternate field
+		constrainInput: true, // The input is constrained by the current date format
+		showButtonPanel: false, // True to show button panel, false to not show it
+		autoSize: false, // True to size the input for the date format, false to leave as is
+		disabled: false // The initial disabled state
+	};
+	$.extend( this._defaults, this.regional[ "" ] );
+	this.regional.en = $.extend( true, {}, this.regional[ "" ] );
+	this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en );
+	this.dpDiv = datepicker_bindHover( $( "<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) );
+}
+
+$.extend( Datepicker.prototype, {
+	/* Class name added to elements to indicate already configured with a date picker. */
+	markerClassName: "hasDatepicker",
+
+	//Keep track of the maximum number of rows displayed (see #7043)
+	maxRows: 4,
+
+	// TODO rename to "widget" when switching to widget factory
+	_widgetDatepicker: function() {
+		return this.dpDiv;
+	},
+
+	/* Override the default settings for all instances of the date picker.
+	 * @param  settings  object - the new settings to use as defaults (anonymous object)
+	 * @return the manager object
+	 */
+	setDefaults: function( settings ) {
+		datepicker_extendRemove( this._defaults, settings || {} );
+		return this;
+	},
+
+	/* Attach the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 * @param  settings  object - the new settings to use for this date picker instance (anonymous)
+	 */
+	_attachDatepicker: function( target, settings ) {
+		var nodeName, inline, inst;
+		nodeName = target.nodeName.toLowerCase();
+		inline = ( nodeName === "div" || nodeName === "span" );
+		if ( !target.id ) {
+			this.uuid += 1;
+			target.id = "dp" + this.uuid;
+		}
+		inst = this._newInst( $( target ), inline );
+		inst.settings = $.extend( {}, settings || {} );
+		if ( nodeName === "input" ) {
+			this._connectDatepicker( target, inst );
+		} else if ( inline ) {
+			this._inlineDatepicker( target, inst );
+		}
+	},
+
+	/* Create a new instance object. */
+	_newInst: function( target, inline ) {
+		var id = target[ 0 ].id.replace( /([^A-Za-z0-9_\-])/g, "\\\\$1" ); // escape jQuery meta chars
+		return { id: id, input: target, // associated target
+			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
+			drawMonth: 0, drawYear: 0, // month being drawn
+			inline: inline, // is datepicker inline or not
+			dpDiv: ( !inline ? this.dpDiv : // presentation div
+			datepicker_bindHover( $( "<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) ) ) };
+	},
+
+	/* Attach the date picker to an input field. */
+	_connectDatepicker: function( target, inst ) {
+		var input = $( target );
+		inst.append = $( [] );
+		inst.trigger = $( [] );
+		if ( input.hasClass( this.markerClassName ) ) {
+			return;
+		}
+		this._attachments( input, inst );
+		input.addClass( this.markerClassName ).on( "keydown", this._doKeyDown ).
+			on( "keypress", this._doKeyPress ).on( "keyup", this._doKeyUp );
+		this._autoSize( inst );
+		$.data( target, "datepicker", inst );
+
+		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
+		if ( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+	},
+
+	/* Make attachments based on settings. */
+	_attachments: function( input, inst ) {
+		var showOn, buttonText, buttonImage,
+			appendText = this._get( inst, "appendText" ),
+			isRTL = this._get( inst, "isRTL" );
+
+		if ( inst.append ) {
+			inst.append.remove();
+		}
+		if ( appendText ) {
+			inst.append = $( "<span class='" + this._appendClass + "'>" + appendText + "</span>" );
+			input[ isRTL ? "before" : "after" ]( inst.append );
+		}
+
+		input.off( "focus", this._showDatepicker );
+
+		if ( inst.trigger ) {
+			inst.trigger.remove();
+		}
+
+		showOn = this._get( inst, "showOn" );
+		if ( showOn === "focus" || showOn === "both" ) { // pop-up date picker when in the marked field
+			input.on( "focus", this._showDatepicker );
+		}
+		if ( showOn === "button" || showOn === "both" ) { // pop-up date picker when button clicked
+			buttonText = this._get( inst, "buttonText" );
+			buttonImage = this._get( inst, "buttonImage" );
+			inst.trigger = $( this._get( inst, "buttonImageOnly" ) ?
+				$( "<img/>" ).addClass( this._triggerClass ).
+					attr( { src: buttonImage, alt: buttonText, title: buttonText } ) :
+				$( "<button type='button'></button>" ).addClass( this._triggerClass ).
+					html( !buttonImage ? buttonText : $( "<img/>" ).attr(
+					{ src:buttonImage, alt:buttonText, title:buttonText } ) ) );
+			input[ isRTL ? "before" : "after" ]( inst.trigger );
+			inst.trigger.on( "click", function() {
+				if ( $.datepicker._datepickerShowing && $.datepicker._lastInput === input[ 0 ] ) {
+					$.datepicker._hideDatepicker();
+				} else if ( $.datepicker._datepickerShowing && $.datepicker._lastInput !== input[ 0 ] ) {
+					$.datepicker._hideDatepicker();
+					$.datepicker._showDatepicker( input[ 0 ] );
+				} else {
+					$.datepicker._showDatepicker( input[ 0 ] );
+				}
+				return false;
+			} );
+		}
+	},
+
+	/* Apply the maximum length for the date format. */
+	_autoSize: function( inst ) {
+		if ( this._get( inst, "autoSize" ) && !inst.inline ) {
+			var findMax, max, maxI, i,
+				date = new Date( 2009, 12 - 1, 20 ), // Ensure double digits
+				dateFormat = this._get( inst, "dateFormat" );
+
+			if ( dateFormat.match( /[DM]/ ) ) {
+				findMax = function( names ) {
+					max = 0;
+					maxI = 0;
+					for ( i = 0; i < names.length; i++ ) {
+						if ( names[ i ].length > max ) {
+							max = names[ i ].length;
+							maxI = i;
+						}
+					}
+					return maxI;
+				};
+				date.setMonth( findMax( this._get( inst, ( dateFormat.match( /MM/ ) ?
+					"monthNames" : "monthNamesShort" ) ) ) );
+				date.setDate( findMax( this._get( inst, ( dateFormat.match( /DD/ ) ?
+					"dayNames" : "dayNamesShort" ) ) ) + 20 - date.getDay() );
+			}
+			inst.input.attr( "size", this._formatDate( inst, date ).length );
+		}
+	},
+
+	/* Attach an inline date picker to a div. */
+	_inlineDatepicker: function( target, inst ) {
+		var divSpan = $( target );
+		if ( divSpan.hasClass( this.markerClassName ) ) {
+			return;
+		}
+		divSpan.addClass( this.markerClassName ).append( inst.dpDiv );
+		$.data( target, "datepicker", inst );
+		this._setDate( inst, this._getDefaultDate( inst ), true );
+		this._updateDatepicker( inst );
+		this._updateAlternate( inst );
+
+		//If disabled option is true, disable the datepicker before showing it (see ticket #5665)
+		if ( inst.settings.disabled ) {
+			this._disableDatepicker( target );
+		}
+
+		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
+		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
+		inst.dpDiv.css( "display", "block" );
+	},
+
+	/* Pop-up the date picker in a "dialog" box.
+	 * @param  input element - ignored
+	 * @param  date	string or Date - the initial date to display
+	 * @param  onSelect  function - the function to call when a date is selected
+	 * @param  settings  object - update the dialog date picker instance's settings (anonymous object)
+	 * @param  pos int[2] - coordinates for the dialog's position within the screen or
+	 *					event - with x/y coordinates or
+	 *					leave empty for default (screen centre)
+	 * @return the manager object
+	 */
+	_dialogDatepicker: function( input, date, onSelect, settings, pos ) {
+		var id, browserWidth, browserHeight, scrollX, scrollY,
+			inst = this._dialogInst; // internal instance
+
+		if ( !inst ) {
+			this.uuid += 1;
+			id = "dp" + this.uuid;
+			this._dialogInput = $( "<input type='text' id='" + id +
+				"' style='position: absolute; top: -100px; width: 0px;'/>" );
+			this._dialogInput.on( "keydown", this._doKeyDown );
+			$( "body" ).append( this._dialogInput );
+			inst = this._dialogInst = this._newInst( this._dialogInput, false );
+			inst.settings = {};
+			$.data( this._dialogInput[ 0 ], "datepicker", inst );
+		}
+		datepicker_extendRemove( inst.settings, settings || {} );
+		date = ( date && date.constructor === Date ? this._formatDate( inst, date ) : date );
+		this._dialogInput.val( date );
+
+		this._pos = ( pos ? ( pos.length ? pos : [ pos.pageX, pos.pageY ] ) : null );
+		if ( !this._pos ) {
+			browserWidth = document.documentElement.clientWidth;
+			browserHeight = document.documentElement.clientHeight;
+			scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
+			scrollY = document.documentElement.scrollTop || document.body.scrollTop;
+			this._pos = // should use actual width/height below
+				[ ( browserWidth / 2 ) - 100 + scrollX, ( browserHeight / 2 ) - 150 + scrollY ];
+		}
+
+		// Move input on screen for focus, but hidden behind dialog
+		this._dialogInput.css( "left", ( this._pos[ 0 ] + 20 ) + "px" ).css( "top", this._pos[ 1 ] + "px" );
+		inst.settings.onSelect = onSelect;
+		this._inDialog = true;
+		this.dpDiv.addClass( this._dialogClass );
+		this._showDatepicker( this._dialogInput[ 0 ] );
+		if ( $.blockUI ) {
+			$.blockUI( this.dpDiv );
+		}
+		$.data( this._dialogInput[ 0 ], "datepicker", inst );
+		return this;
+	},
+
+	/* Detach a datepicker from its control.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_destroyDatepicker: function( target ) {
+		var nodeName,
+			$target = $( target ),
+			inst = $.data( target, "datepicker" );
+
+		if ( !$target.hasClass( this.markerClassName ) ) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		$.removeData( target, "datepicker" );
+		if ( nodeName === "input" ) {
+			inst.append.remove();
+			inst.trigger.remove();
+			$target.removeClass( this.markerClassName ).
+				off( "focus", this._showDatepicker ).
+				off( "keydown", this._doKeyDown ).
+				off( "keypress", this._doKeyPress ).
+				off( "keyup", this._doKeyUp );
+		} else if ( nodeName === "div" || nodeName === "span" ) {
+			$target.removeClass( this.markerClassName ).empty();
+		}
+
+		if ( datepicker_instActive === inst ) {
+			datepicker_instActive = null;
+		}
+	},
+
+	/* Enable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_enableDatepicker: function( target ) {
+		var nodeName, inline,
+			$target = $( target ),
+			inst = $.data( target, "datepicker" );
+
+		if ( !$target.hasClass( this.markerClassName ) ) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if ( nodeName === "input" ) {
+			target.disabled = false;
+			inst.trigger.filter( "button" ).
+				each( function() { this.disabled = false; } ).end().
+				filter( "img" ).css( { opacity: "1.0", cursor: "" } );
+		} else if ( nodeName === "div" || nodeName === "span" ) {
+			inline = $target.children( "." + this._inlineClass );
+			inline.children().removeClass( "ui-state-disabled" );
+			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
+				prop( "disabled", false );
+		}
+		this._disabledInputs = $.map( this._disabledInputs,
+			function( value ) { return ( value === target ? null : value ); } ); // delete entry
+	},
+
+	/* Disable the date picker to a jQuery selection.
+	 * @param  target	element - the target input field or division or span
+	 */
+	_disableDatepicker: function( target ) {
+		var nodeName, inline,
+			$target = $( target ),
+			inst = $.data( target, "datepicker" );
+
+		if ( !$target.hasClass( this.markerClassName ) ) {
+			return;
+		}
+
+		nodeName = target.nodeName.toLowerCase();
+		if ( nodeName === "input" ) {
+			target.disabled = true;
+			inst.trigger.filter( "button" ).
+				each( function() { this.disabled = true; } ).end().
+				filter( "img" ).css( { opacity: "0.5", cursor: "default" } );
+		} else if ( nodeName === "div" || nodeName === "span" ) {
+			inline = $target.children( "." + this._inlineClass );
+			inline.children().addClass( "ui-state-disabled" );
+			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
+				prop( "disabled", true );
+		}
+		this._disabledInputs = $.map( this._disabledInputs,
+			function( value ) { return ( value === target ? null : value ); } ); // delete entry
+		this._disabledInputs[ this._disabledInputs.length ] = target;
+	},
+
+	/* Is the first field in a jQuery collection disabled as a datepicker?
+	 * @param  target	element - the target input field or division or span
+	 * @return boolean - true if disabled, false if enabled
+	 */
+	_isDisabledDatepicker: function( target ) {
+		if ( !target ) {
+			return false;
+		}
+		for ( var i = 0; i < this._disabledInputs.length; i++ ) {
+			if ( this._disabledInputs[ i ] === target ) {
+				return true;
+			}
+		}
+		return false;
+	},
+
+	/* Retrieve the instance data for the target control.
+	 * @param  target  element - the target input field or division or span
+	 * @return  object - the associated instance data
+	 * @throws  error if a jQuery problem getting data
+	 */
+	_getInst: function( target ) {
+		try {
+			return $.data( target, "datepicker" );
+		}
+		catch ( err ) {
+			throw "Missing instance data for this datepicker";
+		}
+	},
+
+	/* Update or retrieve the settings for a date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 * @param  name	object - the new settings to update or
+	 *				string - the name of the setting to change or retrieve,
+	 *				when retrieving also "all" for all instance settings or
+	 *				"defaults" for all global defaults
+	 * @param  value   any - the new value for the setting
+	 *				(omit if above is an object or to retrieve a value)
+	 */
+	_optionDatepicker: function( target, name, value ) {
+		var settings, date, minDate, maxDate,
+			inst = this._getInst( target );
+
+		if ( arguments.length === 2 && typeof name === "string" ) {
+			return ( name === "defaults" ? $.extend( {}, $.datepicker._defaults ) :
+				( inst ? ( name === "all" ? $.extend( {}, inst.settings ) :
+				this._get( inst, name ) ) : null ) );
+		}
+
+		settings = name || {};
+		if ( typeof name === "string" ) {
+			settings = {};
+			settings[ name ] = value;
+		}
+
+		if ( inst ) {
+			if ( this._curInst === inst ) {
+				this._hideDatepicker();
+			}
+
+			date = this._getDateDatepicker( target, true );
+			minDate = this._getMinMaxDate( inst, "min" );
+			maxDate = this._getMinMaxDate( inst, "max" );
+			datepicker_extendRemove( inst.settings, settings );
+
+			// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
+			if ( minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined ) {
+				inst.settings.minDate = this._formatDate( inst, minDate );
+			}
+			if ( maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined ) {
+				inst.settings.maxDate = this._formatDate( inst, maxDate );
+			}
+			if ( "disabled" in settings ) {
+				if ( settings.disabled ) {
+					this._disableDatepicker( target );
+				} else {
+					this._enableDatepicker( target );
+				}
+			}
+			this._attachments( $( target ), inst );
+			this._autoSize( inst );
+			this._setDate( inst, date );
+			this._updateAlternate( inst );
+			this._updateDatepicker( inst );
+		}
+	},
+
+	// Change method deprecated
+	_changeDatepicker: function( target, name, value ) {
+		this._optionDatepicker( target, name, value );
+	},
+
+	/* Redraw the date picker attached to an input field or division.
+	 * @param  target  element - the target input field or division or span
+	 */
+	_refreshDatepicker: function( target ) {
+		var inst = this._getInst( target );
+		if ( inst ) {
+			this._updateDatepicker( inst );
+		}
+	},
+
+	/* Set the dates for a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  date	Date - the new date
+	 */
+	_setDateDatepicker: function( target, date ) {
+		var inst = this._getInst( target );
+		if ( inst ) {
+			this._setDate( inst, date );
+			this._updateDatepicker( inst );
+			this._updateAlternate( inst );
+		}
+	},
+
+	/* Get the date(s) for the first entry in a jQuery selection.
+	 * @param  target element - the target input field or division or span
+	 * @param  noDefault boolean - true if no default date is to be used
+	 * @return Date - the current date
+	 */
+	_getDateDatepicker: function( target, noDefault ) {
+		var inst = this._getInst( target );
+		if ( inst && !inst.inline ) {
+			this._setDateFromField( inst, noDefault );
+		}
+		return ( inst ? this._getDate( inst ) : null );
+	},
+
+	/* Handle keystrokes. */
+	_doKeyDown: function( event ) {
+		var onSelect, dateStr, sel,
+			inst = $.datepicker._getInst( event.target ),
+			handled = true,
+			isRTL = inst.dpDiv.is( ".ui-datepicker-rtl" );
+
+		inst._keyEvent = true;
+		if ( $.datepicker._datepickerShowing ) {
+			switch ( event.keyCode ) {
+				case 9: $.datepicker._hideDatepicker();
+						handled = false;
+						break; // hide on tab out
+				case 13: sel = $( "td." + $.datepicker._dayOverClass + ":not(." +
+									$.datepicker._currentClass + ")", inst.dpDiv );
+						if ( sel[ 0 ] ) {
+							$.datepicker._selectDay( event.target, inst.selectedMonth, inst.selectedYear, sel[ 0 ] );
+						}
+
+						onSelect = $.datepicker._get( inst, "onSelect" );
+						if ( onSelect ) {
+							dateStr = $.datepicker._formatDate( inst );
+
+							// Trigger custom callback
+							onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );
+						} else {
+							$.datepicker._hideDatepicker();
+						}
+
+						return false; // don't submit the form
+				case 27: $.datepicker._hideDatepicker();
+						break; // hide on escape
+				case 33: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+							-$.datepicker._get( inst, "stepBigMonths" ) :
+							-$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						break; // previous month/year on page up/+ ctrl
+				case 34: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+							+$.datepicker._get( inst, "stepBigMonths" ) :
+							+$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						break; // next month/year on page down/+ ctrl
+				case 35: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._clearDate( event.target );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // clear on ctrl or command +end
+				case 36: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._gotoToday( event.target );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // current on ctrl or command +home
+				case 37: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, ( isRTL ? +1 : -1 ), "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+
+						// -1 day on ctrl or command +left
+						if ( event.originalEvent.altKey ) {
+							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+								-$.datepicker._get( inst, "stepBigMonths" ) :
+								-$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						}
+
+						// next month/year on alt +left on Mac
+						break;
+				case 38: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, -7, "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // -1 week on ctrl or command +up
+				case 39: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, ( isRTL ? -1 : +1 ), "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+
+						// +1 day on ctrl or command +right
+						if ( event.originalEvent.altKey ) {
+							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
+								+$.datepicker._get( inst, "stepBigMonths" ) :
+								+$.datepicker._get( inst, "stepMonths" ) ), "M" );
+						}
+
+						// next month/year on alt +right
+						break;
+				case 40: if ( event.ctrlKey || event.metaKey ) {
+							$.datepicker._adjustDate( event.target, +7, "D" );
+						}
+						handled = event.ctrlKey || event.metaKey;
+						break; // +1 week on ctrl or command +down
+				default: handled = false;
+			}
+		} else if ( event.keyCode === 36 && event.ctrlKey ) { // display the date picker on ctrl+home
+			$.datepicker._showDatepicker( this );
+		} else {
+			handled = false;
+		}
+
+		if ( handled ) {
+			event.preventDefault();
+			event.stopPropagation();
+		}
+	},
+
+	/* Filter entered characters - based on date format. */
+	_doKeyPress: function( event ) {
+		var chars, chr,
+			inst = $.datepicker._getInst( event.target );
+
+		if ( $.datepicker._get( inst, "constrainInput" ) ) {
+			chars = $.datepicker._possibleChars( $.datepicker._get( inst, "dateFormat" ) );
+			chr = String.fromCharCode( event.charCode == null ? event.keyCode : event.charCode );
+			return event.ctrlKey || event.metaKey || ( chr < " " || !chars || chars.indexOf( chr ) > -1 );
+		}
+	},
+
+	/* Synchronise manual entry and field/alternate field. */
+	_doKeyUp: function( event ) {
+		var date,
+			inst = $.datepicker._getInst( event.target );
+
+		if ( inst.input.val() !== inst.lastVal ) {
+			try {
+				date = $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
+					( inst.input ? inst.input.val() : null ),
+					$.datepicker._getFormatConfig( inst ) );
+
+				if ( date ) { // only if valid
+					$.datepicker._setDateFromField( inst );
+					$.datepicker._updateAlternate( inst );
+					$.datepicker._updateDatepicker( inst );
+				}
+			}
+			catch ( err ) {
+			}
+		}
+		return true;
+	},
+
+	/* Pop-up the date picker for a given input field.
+	 * If false returned from beforeShow event handler do not show.
+	 * @param  input  element - the input field attached to the date picker or
+	 *					event - if triggered by focus
+	 */
+	_showDatepicker: function( input ) {
+		input = input.target || input;
+		if ( input.nodeName.toLowerCase() !== "input" ) { // find from button/image trigger
+			input = $( "input", input.parentNode )[ 0 ];
+		}
+
+		if ( $.datepicker._isDisabledDatepicker( input ) || $.datepicker._lastInput === input ) { // already here
+			return;
+		}
+
+		var inst, beforeShow, beforeShowSettings, isFixed,
+			offset, showAnim, duration;
+
+		inst = $.datepicker._getInst( input );
+		if ( $.datepicker._curInst && $.datepicker._curInst !== inst ) {
+			$.datepicker._curInst.dpDiv.stop( true, true );
+			if ( inst && $.datepicker._datepickerShowing ) {
+				$.datepicker._hideDatepicker( $.datepicker._curInst.input[ 0 ] );
+			}
+		}
+
+		beforeShow = $.datepicker._get( inst, "beforeShow" );
+		beforeShowSettings = beforeShow ? beforeShow.apply( input, [ input, inst ] ) : {};
+		if ( beforeShowSettings === false ) {
+			return;
+		}
+		datepicker_extendRemove( inst.settings, beforeShowSettings );
+
+		inst.lastVal = null;
+		$.datepicker._lastInput = input;
+		$.datepicker._setDateFromField( inst );
+
+		if ( $.datepicker._inDialog ) { // hide cursor
+			input.value = "";
+		}
+		if ( !$.datepicker._pos ) { // position below input
+			$.datepicker._pos = $.datepicker._findPos( input );
+			$.datepicker._pos[ 1 ] += input.offsetHeight; // add the height
+		}
+
+		isFixed = false;
+		$( input ).parents().each( function() {
+			isFixed |= $( this ).css( "position" ) === "fixed";
+			return !isFixed;
+		} );
+
+		offset = { left: $.datepicker._pos[ 0 ], top: $.datepicker._pos[ 1 ] };
+		$.datepicker._pos = null;
+
+		//to avoid flashes on Firefox
+		inst.dpDiv.empty();
+
+		// determine sizing offscreen
+		inst.dpDiv.css( { position: "absolute", display: "block", top: "-1000px" } );
+		$.datepicker._updateDatepicker( inst );
+
+		// fix width for dynamic number of date pickers
+		// and adjust position before showing
+		offset = $.datepicker._checkOffset( inst, offset, isFixed );
+		inst.dpDiv.css( { position: ( $.datepicker._inDialog && $.blockUI ?
+			"static" : ( isFixed ? "fixed" : "absolute" ) ), display: "none",
+			left: offset.left + "px", top: offset.top + "px" } );
+
+		if ( !inst.inline ) {
+			showAnim = $.datepicker._get( inst, "showAnim" );
+			duration = $.datepicker._get( inst, "duration" );
+			inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 );
+			$.datepicker._datepickerShowing = true;
+
+			if ( $.effects && $.effects.effect[ showAnim ] ) {
+				inst.dpDiv.show( showAnim, $.datepicker._get( inst, "showOptions" ), duration );
+			} else {
+				inst.dpDiv[ showAnim || "show" ]( showAnim ? duration : null );
+			}
+
+			if ( $.datepicker._shouldFocusInput( inst ) ) {
+				inst.input.trigger( "focus" );
+			}
+
+			$.datepicker._curInst = inst;
+		}
+	},
+
+	/* Generate the date picker content. */
+	_updateDatepicker: function( inst ) {
+		this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
+		datepicker_instActive = inst; // for delegate hover events
+		inst.dpDiv.empty().append( this._generateHTML( inst ) );
+		this._attachHandlers( inst );
+
+		var origyearshtml,
+			numMonths = this._getNumberOfMonths( inst ),
+			cols = numMonths[ 1 ],
+			width = 17,
+			activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" );
+
+		if ( activeCell.length > 0 ) {
+			datepicker_handleMouseover.apply( activeCell.get( 0 ) );
+		}
+
+		inst.dpDiv.removeClass( "ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4" ).width( "" );
+		if ( cols > 1 ) {
+			inst.dpDiv.addClass( "ui-datepicker-multi-" + cols ).css( "width", ( width * cols ) + "em" );
+		}
+		inst.dpDiv[ ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ? "add" : "remove" ) +
+			"Class" ]( "ui-datepicker-multi" );
+		inst.dpDiv[ ( this._get( inst, "isRTL" ) ? "add" : "remove" ) +
+			"Class" ]( "ui-datepicker-rtl" );
+
+		if ( inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {
+			inst.input.trigger( "focus" );
+		}
+
+		// Deffered render of the years select (to avoid flashes on Firefox)
+		if ( inst.yearshtml ) {
+			origyearshtml = inst.yearshtml;
+			setTimeout( function() {
+
+				//assure that inst.yearshtml didn't change.
+				if ( origyearshtml === inst.yearshtml && inst.yearshtml ) {
+					inst.dpDiv.find( "select.ui-datepicker-year:first" ).replaceWith( inst.yearshtml );
+				}
+				origyearshtml = inst.yearshtml = null;
+			}, 0 );
+		}
+	},
+
+	// #6694 - don't focus the input if it's already focused
+	// this breaks the change event in IE
+	// Support: IE and jQuery <1.9
+	_shouldFocusInput: function( inst ) {
+		return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
+	},
+
+	/* Check positioning to remain on screen. */
+	_checkOffset: function( inst, offset, isFixed ) {
+		var dpWidth = inst.dpDiv.outerWidth(),
+			dpHeight = inst.dpDiv.outerHeight(),
+			inputWidth = inst.input ? inst.input.outerWidth() : 0,
+			inputHeight = inst.input ? inst.input.outerHeight() : 0,
+			viewWidth = document.documentElement.clientWidth + ( isFixed ? 0 : $( document ).scrollLeft() ),
+			viewHeight = document.documentElement.clientHeight + ( isFixed ? 0 : $( document ).scrollTop() );
+
+		offset.left -= ( this._get( inst, "isRTL" ) ? ( dpWidth - inputWidth ) : 0 );
+		offset.left -= ( isFixed && offset.left === inst.input.offset().left ) ? $( document ).scrollLeft() : 0;
+		offset.top -= ( isFixed && offset.top === ( inst.input.offset().top + inputHeight ) ) ? $( document ).scrollTop() : 0;
+
+		// Now check if datepicker is showing outside window viewport - move to a better place if so.
+		offset.left -= Math.min( offset.left, ( offset.left + dpWidth > viewWidth && viewWidth > dpWidth ) ?
+			Math.abs( offset.left + dpWidth - viewWidth ) : 0 );
+		offset.top -= Math.min( offset.top, ( offset.top + dpHeight > viewHeight && viewHeight > dpHeight ) ?
+			Math.abs( dpHeight + inputHeight ) : 0 );
+
+		return offset;
+	},
+
+	/* Find an object's position on the screen. */
+	_findPos: function( obj ) {
+		var position,
+			inst = this._getInst( obj ),
+			isRTL = this._get( inst, "isRTL" );
+
+		while ( obj && ( obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden( obj ) ) ) {
+			obj = obj[ isRTL ? "previousSibling" : "nextSibling" ];
+		}
+
+		position = $( obj ).offset();
+		return [ position.left, position.top ];
+	},
+
+	/* Hide the date picker from view.
+	 * @param  input  element - the input field attached to the date picker
+	 */
+	_hideDatepicker: function( input ) {
+		var showAnim, duration, postProcess, onClose,
+			inst = this._curInst;
+
+		if ( !inst || ( input && inst !== $.data( input, "datepicker" ) ) ) {
+			return;
+		}
+
+		if ( this._datepickerShowing ) {
+			showAnim = this._get( inst, "showAnim" );
+			duration = this._get( inst, "duration" );
+			postProcess = function() {
+				$.datepicker._tidyDialog( inst );
+			};
+
+			// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
+			if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
+				inst.dpDiv.hide( showAnim, $.datepicker._get( inst, "showOptions" ), duration, postProcess );
+			} else {
+				inst.dpDiv[ ( showAnim === "slideDown" ? "slideUp" :
+					( showAnim === "fadeIn" ? "fadeOut" : "hide" ) ) ]( ( showAnim ? duration : null ), postProcess );
+			}
+
+			if ( !showAnim ) {
+				postProcess();
+			}
+			this._datepickerShowing = false;
+
+			onClose = this._get( inst, "onClose" );
+			if ( onClose ) {
+				onClose.apply( ( inst.input ? inst.input[ 0 ] : null ), [ ( inst.input ? inst.input.val() : "" ), inst ] );
+			}
+
+			this._lastInput = null;
+			if ( this._inDialog ) {
+				this._dialogInput.css( { position: "absolute", left: "0", top: "-100px" } );
+				if ( $.blockUI ) {
+					$.unblockUI();
+					$( "body" ).append( this.dpDiv );
+				}
+			}
+			this._inDialog = false;
+		}
+	},
+
+	/* Tidy up after a dialog display. */
+	_tidyDialog: function( inst ) {
+		inst.dpDiv.removeClass( this._dialogClass ).off( ".ui-datepicker-calendar" );
+	},
+
+	/* Close date picker if clicked elsewhere. */
+	_checkExternalClick: function( event ) {
+		if ( !$.datepicker._curInst ) {
+			return;
+		}
+
+		var $target = $( event.target ),
+			inst = $.datepicker._getInst( $target[ 0 ] );
+
+		if ( ( ( $target[ 0 ].id !== $.datepicker._mainDivId &&
+				$target.parents( "#" + $.datepicker._mainDivId ).length === 0 &&
+				!$target.hasClass( $.datepicker.markerClassName ) &&
+				!$target.closest( "." + $.datepicker._triggerClass ).length &&
+				$.datepicker._datepickerShowing && !( $.datepicker._inDialog && $.blockUI ) ) ) ||
+			( $target.hasClass( $.datepicker.markerClassName ) && $.datepicker._curInst !== inst ) ) {
+				$.datepicker._hideDatepicker();
+		}
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustDate: function( id, offset, period ) {
+		var target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		if ( this._isDisabledDatepicker( target[ 0 ] ) ) {
+			return;
+		}
+		this._adjustInstDate( inst, offset +
+			( period === "M" ? this._get( inst, "showCurrentAtPos" ) : 0 ), // undo positioning
+			period );
+		this._updateDatepicker( inst );
+	},
+
+	/* Action for current link. */
+	_gotoToday: function( id ) {
+		var date,
+			target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		if ( this._get( inst, "gotoCurrent" ) && inst.currentDay ) {
+			inst.selectedDay = inst.currentDay;
+			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
+			inst.drawYear = inst.selectedYear = inst.currentYear;
+		} else {
+			date = new Date();
+			inst.selectedDay = date.getDate();
+			inst.drawMonth = inst.selectedMonth = date.getMonth();
+			inst.drawYear = inst.selectedYear = date.getFullYear();
+		}
+		this._notifyChange( inst );
+		this._adjustDate( target );
+	},
+
+	/* Action for selecting a new month/year. */
+	_selectMonthYear: function( id, select, period ) {
+		var target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		inst[ "selected" + ( period === "M" ? "Month" : "Year" ) ] =
+		inst[ "draw" + ( period === "M" ? "Month" : "Year" ) ] =
+			parseInt( select.options[ select.selectedIndex ].value, 10 );
+
+		this._notifyChange( inst );
+		this._adjustDate( target );
+	},
+
+	/* Action for selecting a day. */
+	_selectDay: function( id, month, year, td ) {
+		var inst,
+			target = $( id );
+
+		if ( $( td ).hasClass( this._unselectableClass ) || this._isDisabledDatepicker( target[ 0 ] ) ) {
+			return;
+		}
+
+		inst = this._getInst( target[ 0 ] );
+		inst.selectedDay = inst.currentDay = $( "a", td ).html();
+		inst.selectedMonth = inst.currentMonth = month;
+		inst.selectedYear = inst.currentYear = year;
+		this._selectDate( id, this._formatDate( inst,
+			inst.currentDay, inst.currentMonth, inst.currentYear ) );
+	},
+
+	/* Erase the input field and hide the date picker. */
+	_clearDate: function( id ) {
+		var target = $( id );
+		this._selectDate( target, "" );
+	},
+
+	/* Update the input field with the selected date. */
+	_selectDate: function( id, dateStr ) {
+		var onSelect,
+			target = $( id ),
+			inst = this._getInst( target[ 0 ] );
+
+		dateStr = ( dateStr != null ? dateStr : this._formatDate( inst ) );
+		if ( inst.input ) {
+			inst.input.val( dateStr );
+		}
+		this._updateAlternate( inst );
+
+		onSelect = this._get( inst, "onSelect" );
+		if ( onSelect ) {
+			onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );  // trigger custom callback
+		} else if ( inst.input ) {
+			inst.input.trigger( "change" ); // fire the change event
+		}
+
+		if ( inst.inline ) {
+			this._updateDatepicker( inst );
+		} else {
+			this._hideDatepicker();
+			this._lastInput = inst.input[ 0 ];
+			if ( typeof( inst.input[ 0 ] ) !== "object" ) {
+				inst.input.trigger( "focus" ); // restore focus
+			}
+			this._lastInput = null;
+		}
+	},
+
+	/* Update any alternate field to synchronise with the main field. */
+	_updateAlternate: function( inst ) {
+		var altFormat, date, dateStr,
+			altField = this._get( inst, "altField" );
+
+		if ( altField ) { // update alternate field too
+			altFormat = this._get( inst, "altFormat" ) || this._get( inst, "dateFormat" );
+			date = this._getDate( inst );
+			dateStr = this.formatDate( altFormat, date, this._getFormatConfig( inst ) );
+			$( altField ).val( dateStr );
+		}
+	},
+
+	/* Set as beforeShowDay function to prevent selection of weekends.
+	 * @param  date  Date - the date to customise
+	 * @return [boolean, string] - is this date selectable?, what is its CSS class?
+	 */
+	noWeekends: function( date ) {
+		var day = date.getDay();
+		return [ ( day > 0 && day < 6 ), "" ];
+	},
+
+	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
+	 * @param  date  Date - the date to get the week for
+	 * @return  number - the number of the week within the year that contains this date
+	 */
+	iso8601Week: function( date ) {
+		var time,
+			checkDate = new Date( date.getTime() );
+
+		// Find Thursday of this week starting on Monday
+		checkDate.setDate( checkDate.getDate() + 4 - ( checkDate.getDay() || 7 ) );
+
+		time = checkDate.getTime();
+		checkDate.setMonth( 0 ); // Compare with Jan 1
+		checkDate.setDate( 1 );
+		return Math.floor( Math.round( ( time - checkDate ) / 86400000 ) / 7 ) + 1;
+	},
+
+	/* Parse a string value into a date object.
+	 * See formatDate below for the possible formats.
+	 *
+	 * @param  format string - the expected format of the date
+	 * @param  value string - the date in the above format
+	 * @param  settings Object - attributes include:
+	 *					shortYearCutoff  number - the cutoff year for determining the century (optional)
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  Date - the extracted date value or null if value is blank
+	 */
+	parseDate: function( format, value, settings ) {
+		if ( format == null || value == null ) {
+			throw "Invalid arguments";
+		}
+
+		value = ( typeof value === "object" ? value.toString() : value + "" );
+		if ( value === "" ) {
+			return null;
+		}
+
+		var iFormat, dim, extra,
+			iValue = 0,
+			shortYearCutoffTemp = ( settings ? settings.shortYearCutoff : null ) || this._defaults.shortYearCutoff,
+			shortYearCutoff = ( typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp :
+				new Date().getFullYear() % 100 + parseInt( shortYearCutoffTemp, 10 ) ),
+			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
+			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
+			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
+			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
+			year = -1,
+			month = -1,
+			day = -1,
+			doy = -1,
+			literal = false,
+			date,
+
+			// Check whether a format character is doubled
+			lookAhead = function( match ) {
+				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
+				if ( matches ) {
+					iFormat++;
+				}
+				return matches;
+			},
+
+			// Extract a number from the string value
+			getNumber = function( match ) {
+				var isDoubled = lookAhead( match ),
+					size = ( match === "@" ? 14 : ( match === "!" ? 20 :
+					( match === "y" && isDoubled ? 4 : ( match === "o" ? 3 : 2 ) ) ) ),
+					minSize = ( match === "y" ? size : 1 ),
+					digits = new RegExp( "^\\d{" + minSize + "," + size + "}" ),
+					num = value.substring( iValue ).match( digits );
+				if ( !num ) {
+					throw "Missing number at position " + iValue;
+				}
+				iValue += num[ 0 ].length;
+				return parseInt( num[ 0 ], 10 );
+			},
+
+			// Extract a name from the string value and convert to an index
+			getName = function( match, shortNames, longNames ) {
+				var index = -1,
+					names = $.map( lookAhead( match ) ? longNames : shortNames, function( v, k ) {
+						return [ [ k, v ] ];
+					} ).sort( function( a, b ) {
+						return -( a[ 1 ].length - b[ 1 ].length );
+					} );
+
+				$.each( names, function( i, pair ) {
+					var name = pair[ 1 ];
+					if ( value.substr( iValue, name.length ).toLowerCase() === name.toLowerCase() ) {
+						index = pair[ 0 ];
+						iValue += name.length;
+						return false;
+					}
+				} );
+				if ( index !== -1 ) {
+					return index + 1;
+				} else {
+					throw "Unknown name at position " + iValue;
+				}
+			},
+
+			// Confirm that a literal character matches the string value
+			checkLiteral = function() {
+				if ( value.charAt( iValue ) !== format.charAt( iFormat ) ) {
+					throw "Unexpected literal at position " + iValue;
+				}
+				iValue++;
+			};
+
+		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
+			if ( literal ) {
+				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
+					literal = false;
+				} else {
+					checkLiteral();
+				}
+			} else {
+				switch ( format.charAt( iFormat ) ) {
+					case "d":
+						day = getNumber( "d" );
+						break;
+					case "D":
+						getName( "D", dayNamesShort, dayNames );
+						break;
+					case "o":
+						doy = getNumber( "o" );
+						break;
+					case "m":
+						month = getNumber( "m" );
+						break;
+					case "M":
+						month = getName( "M", monthNamesShort, monthNames );
+						break;
+					case "y":
+						year = getNumber( "y" );
+						break;
+					case "@":
+						date = new Date( getNumber( "@" ) );
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "!":
+						date = new Date( ( getNumber( "!" ) - this._ticksTo1970 ) / 10000 );
+						year = date.getFullYear();
+						month = date.getMonth() + 1;
+						day = date.getDate();
+						break;
+					case "'":
+						if ( lookAhead( "'" ) ) {
+							checkLiteral();
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						checkLiteral();
+				}
+			}
+		}
+
+		if ( iValue < value.length ) {
+			extra = value.substr( iValue );
+			if ( !/^\s+/.test( extra ) ) {
+				throw "Extra/unparsed characters found in date: " + extra;
+			}
+		}
+
+		if ( year === -1 ) {
+			year = new Date().getFullYear();
+		} else if ( year < 100 ) {
+			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
+				( year <= shortYearCutoff ? 0 : -100 );
+		}
+
+		if ( doy > -1 ) {
+			month = 1;
+			day = doy;
+			do {
+				dim = this._getDaysInMonth( year, month - 1 );
+				if ( day <= dim ) {
+					break;
+				}
+				month++;
+				day -= dim;
+			} while ( true );
+		}
+
+		date = this._daylightSavingAdjust( new Date( year, month - 1, day ) );
+		if ( date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day ) {
+			throw "Invalid date"; // E.g. 31/02/00
+		}
+		return date;
+	},
+
+	/* Standard date formats. */
+	ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
+	COOKIE: "D, dd M yy",
+	ISO_8601: "yy-mm-dd",
+	RFC_822: "D, d M y",
+	RFC_850: "DD, dd-M-y",
+	RFC_1036: "D, d M y",
+	RFC_1123: "D, d M yy",
+	RFC_2822: "D, d M yy",
+	RSS: "D, d M y", // RFC 822
+	TICKS: "!",
+	TIMESTAMP: "@",
+	W3C: "yy-mm-dd", // ISO 8601
+
+	_ticksTo1970: ( ( ( 1970 - 1 ) * 365 + Math.floor( 1970 / 4 ) - Math.floor( 1970 / 100 ) +
+		Math.floor( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ),
+
+	/* Format a date object into a string value.
+	 * The format can be combinations of the following:
+	 * d  - day of month (no leading zero)
+	 * dd - day of month (two digit)
+	 * o  - day of year (no leading zeros)
+	 * oo - day of year (three digit)
+	 * D  - day name short
+	 * DD - day name long
+	 * m  - month of year (no leading zero)
+	 * mm - month of year (two digit)
+	 * M  - month name short
+	 * MM - month name long
+	 * y  - year (two digit)
+	 * yy - year (four digit)
+	 * @ - Unix timestamp (ms since 01/01/1970)
+	 * ! - Windows ticks (100ns since 01/01/0001)
+	 * "..." - literal text
+	 * '' - single quote
+	 *
+	 * @param  format string - the desired format of the date
+	 * @param  date Date - the date value to format
+	 * @param  settings Object - attributes include:
+	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
+	 *					dayNames		string[7] - names of the days from Sunday (optional)
+	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
+	 *					monthNames		string[12] - names of the months (optional)
+	 * @return  string - the date in the above format
+	 */
+	formatDate: function( format, date, settings ) {
+		if ( !date ) {
+			return "";
+		}
+
+		var iFormat,
+			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
+			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
+			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
+			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
+
+			// Check whether a format character is doubled
+			lookAhead = function( match ) {
+				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
+				if ( matches ) {
+					iFormat++;
+				}
+				return matches;
+			},
+
+			// Format a number, with leading zero if necessary
+			formatNumber = function( match, value, len ) {
+				var num = "" + value;
+				if ( lookAhead( match ) ) {
+					while ( num.length < len ) {
+						num = "0" + num;
+					}
+				}
+				return num;
+			},
+
+			// Format a name, short or long as requested
+			formatName = function( match, value, shortNames, longNames ) {
+				return ( lookAhead( match ) ? longNames[ value ] : shortNames[ value ] );
+			},
+			output = "",
+			literal = false;
+
+		if ( date ) {
+			for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
+				if ( literal ) {
+					if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
+						literal = false;
+					} else {
+						output += format.charAt( iFormat );
+					}
+				} else {
+					switch ( format.charAt( iFormat ) ) {
+						case "d":
+							output += formatNumber( "d", date.getDate(), 2 );
+							break;
+						case "D":
+							output += formatName( "D", date.getDay(), dayNamesShort, dayNames );
+							break;
+						case "o":
+							output += formatNumber( "o",
+								Math.round( ( new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime() - new Date( date.getFullYear(), 0, 0 ).getTime() ) / 86400000 ), 3 );
+							break;
+						case "m":
+							output += formatNumber( "m", date.getMonth() + 1, 2 );
+							break;
+						case "M":
+							output += formatName( "M", date.getMonth(), monthNamesShort, monthNames );
+							break;
+						case "y":
+							output += ( lookAhead( "y" ) ? date.getFullYear() :
+								( date.getFullYear() % 100 < 10 ? "0" : "" ) + date.getFullYear() % 100 );
+							break;
+						case "@":
+							output += date.getTime();
+							break;
+						case "!":
+							output += date.getTime() * 10000 + this._ticksTo1970;
+							break;
+						case "'":
+							if ( lookAhead( "'" ) ) {
+								output += "'";
+							} else {
+								literal = true;
+							}
+							break;
+						default:
+							output += format.charAt( iFormat );
+					}
+				}
+			}
+		}
+		return output;
+	},
+
+	/* Extract all possible characters from the date format. */
+	_possibleChars: function( format ) {
+		var iFormat,
+			chars = "",
+			literal = false,
+
+			// Check whether a format character is doubled
+			lookAhead = function( match ) {
+				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
+				if ( matches ) {
+					iFormat++;
+				}
+				return matches;
+			};
+
+		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
+			if ( literal ) {
+				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
+					literal = false;
+				} else {
+					chars += format.charAt( iFormat );
+				}
+			} else {
+				switch ( format.charAt( iFormat ) ) {
+					case "d": case "m": case "y": case "@":
+						chars += "0123456789";
+						break;
+					case "D": case "M":
+						return null; // Accept anything
+					case "'":
+						if ( lookAhead( "'" ) ) {
+							chars += "'";
+						} else {
+							literal = true;
+						}
+						break;
+					default:
+						chars += format.charAt( iFormat );
+				}
+			}
+		}
+		return chars;
+	},
+
+	/* Get a setting value, defaulting if necessary. */
+	_get: function( inst, name ) {
+		return inst.settings[ name ] !== undefined ?
+			inst.settings[ name ] : this._defaults[ name ];
+	},
+
+	/* Parse existing date and initialise date picker. */
+	_setDateFromField: function( inst, noDefault ) {
+		if ( inst.input.val() === inst.lastVal ) {
+			return;
+		}
+
+		var dateFormat = this._get( inst, "dateFormat" ),
+			dates = inst.lastVal = inst.input ? inst.input.val() : null,
+			defaultDate = this._getDefaultDate( inst ),
+			date = defaultDate,
+			settings = this._getFormatConfig( inst );
+
+		try {
+			date = this.parseDate( dateFormat, dates, settings ) || defaultDate;
+		} catch ( event ) {
+			dates = ( noDefault ? "" : dates );
+		}
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		inst.currentDay = ( dates ? date.getDate() : 0 );
+		inst.currentMonth = ( dates ? date.getMonth() : 0 );
+		inst.currentYear = ( dates ? date.getFullYear() : 0 );
+		this._adjustInstDate( inst );
+	},
+
+	/* Retrieve the default date shown on opening. */
+	_getDefaultDate: function( inst ) {
+		return this._restrictMinMax( inst,
+			this._determineDate( inst, this._get( inst, "defaultDate" ), new Date() ) );
+	},
+
+	/* A date may be specified as an exact value or a relative one. */
+	_determineDate: function( inst, date, defaultDate ) {
+		var offsetNumeric = function( offset ) {
+				var date = new Date();
+				date.setDate( date.getDate() + offset );
+				return date;
+			},
+			offsetString = function( offset ) {
+				try {
+					return $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
+						offset, $.datepicker._getFormatConfig( inst ) );
+				}
+				catch ( e ) {
+
+					// Ignore
+				}
+
+				var date = ( offset.toLowerCase().match( /^c/ ) ?
+					$.datepicker._getDate( inst ) : null ) || new Date(),
+					year = date.getFullYear(),
+					month = date.getMonth(),
+					day = date.getDate(),
+					pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
+					matches = pattern.exec( offset );
+
+				while ( matches ) {
+					switch ( matches[ 2 ] || "d" ) {
+						case "d" : case "D" :
+							day += parseInt( matches[ 1 ], 10 ); break;
+						case "w" : case "W" :
+							day += parseInt( matches[ 1 ], 10 ) * 7; break;
+						case "m" : case "M" :
+							month += parseInt( matches[ 1 ], 10 );
+							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
+							break;
+						case "y": case "Y" :
+							year += parseInt( matches[ 1 ], 10 );
+							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
+							break;
+					}
+					matches = pattern.exec( offset );
+				}
+				return new Date( year, month, day );
+			},
+			newDate = ( date == null || date === "" ? defaultDate : ( typeof date === "string" ? offsetString( date ) :
+				( typeof date === "number" ? ( isNaN( date ) ? defaultDate : offsetNumeric( date ) ) : new Date( date.getTime() ) ) ) );
+
+		newDate = ( newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate );
+		if ( newDate ) {
+			newDate.setHours( 0 );
+			newDate.setMinutes( 0 );
+			newDate.setSeconds( 0 );
+			newDate.setMilliseconds( 0 );
+		}
+		return this._daylightSavingAdjust( newDate );
+	},
+
+	/* Handle switch to/from daylight saving.
+	 * Hours may be non-zero on daylight saving cut-over:
+	 * > 12 when midnight changeover, but then cannot generate
+	 * midnight datetime, so jump to 1AM, otherwise reset.
+	 * @param  date  (Date) the date to check
+	 * @return  (Date) the corrected date
+	 */
+	_daylightSavingAdjust: function( date ) {
+		if ( !date ) {
+			return null;
+		}
+		date.setHours( date.getHours() > 12 ? date.getHours() + 2 : 0 );
+		return date;
+	},
+
+	/* Set the date(s) directly. */
+	_setDate: function( inst, date, noChange ) {
+		var clear = !date,
+			origMonth = inst.selectedMonth,
+			origYear = inst.selectedYear,
+			newDate = this._restrictMinMax( inst, this._determineDate( inst, date, new Date() ) );
+
+		inst.selectedDay = inst.currentDay = newDate.getDate();
+		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
+		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
+		if ( ( origMonth !== inst.selectedMonth || origYear !== inst.selectedYear ) && !noChange ) {
+			this._notifyChange( inst );
+		}
+		this._adjustInstDate( inst );
+		if ( inst.input ) {
+			inst.input.val( clear ? "" : this._formatDate( inst ) );
+		}
+	},
+
+	/* Retrieve the date(s) directly. */
+	_getDate: function( inst ) {
+		var startDate = ( !inst.currentYear || ( inst.input && inst.input.val() === "" ) ? null :
+			this._daylightSavingAdjust( new Date(
+			inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
+			return startDate;
+	},
+
+	/* Attach the onxxx handlers.  These are declared statically so
+	 * they work with static code transformers like Caja.
+	 */
+	_attachHandlers: function( inst ) {
+		var stepMonths = this._get( inst, "stepMonths" ),
+			id = "#" + inst.id.replace( /\\\\/g, "\\" );
+		inst.dpDiv.find( "[data-handler]" ).map( function() {
+			var handler = {
+				prev: function() {
+					$.datepicker._adjustDate( id, -stepMonths, "M" );
+				},
+				next: function() {
+					$.datepicker._adjustDate( id, +stepMonths, "M" );
+				},
+				hide: function() {
+					$.datepicker._hideDatepicker();
+				},
+				today: function() {
+					$.datepicker._gotoToday( id );
+				},
+				selectDay: function() {
+					$.datepicker._selectDay( id, +this.getAttribute( "data-month" ), +this.getAttribute( "data-year" ), this );
+					return false;
+				},
+				selectMonth: function() {
+					$.datepicker._selectMonthYear( id, this, "M" );
+					return false;
+				},
+				selectYear: function() {
+					$.datepicker._selectMonthYear( id, this, "Y" );
+					return false;
+				}
+			};
+			$( this ).on( this.getAttribute( "data-event" ), handler[ this.getAttribute( "data-handler" ) ] );
+		} );
+	},
+
+	/* Generate the HTML for the current state of the date picker. */
+	_generateHTML: function( inst ) {
+		var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
+			controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
+			monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
+			selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,
+			cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,
+			printDate, dRow, tbody, daySettings, otherMonth, unselectable,
+			tempDate = new Date(),
+			today = this._daylightSavingAdjust(
+				new Date( tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() ) ), // clear time
+			isRTL = this._get( inst, "isRTL" ),
+			showButtonPanel = this._get( inst, "showButtonPanel" ),
+			hideIfNoPrevNext = this._get( inst, "hideIfNoPrevNext" ),
+			navigationAsDateFormat = this._get( inst, "navigationAsDateFormat" ),
+			numMonths = this._getNumberOfMonths( inst ),
+			showCurrentAtPos = this._get( inst, "showCurrentAtPos" ),
+			stepMonths = this._get( inst, "stepMonths" ),
+			isMultiMonth = ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ),
+			currentDate = this._daylightSavingAdjust( ( !inst.currentDay ? new Date( 9999, 9, 9 ) :
+				new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ),
+			minDate = this._getMinMaxDate( inst, "min" ),
+			maxDate = this._getMinMaxDate( inst, "max" ),
+			drawMonth = inst.drawMonth - showCurrentAtPos,
+			drawYear = inst.drawYear;
+
+		if ( drawMonth < 0 ) {
+			drawMonth += 12;
+			drawYear--;
+		}
+		if ( maxDate ) {
+			maxDraw = this._daylightSavingAdjust( new Date( maxDate.getFullYear(),
+				maxDate.getMonth() - ( numMonths[ 0 ] * numMonths[ 1 ] ) + 1, maxDate.getDate() ) );
+			maxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw );
+			while ( this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 ) ) > maxDraw ) {
+				drawMonth--;
+				if ( drawMonth < 0 ) {
+					drawMonth = 11;
+					drawYear--;
+				}
+			}
+		}
+		inst.drawMonth = drawMonth;
+		inst.drawYear = drawYear;
+
+		prevText = this._get( inst, "prevText" );
+		prevText = ( !navigationAsDateFormat ? prevText : this.formatDate( prevText,
+			this._daylightSavingAdjust( new Date( drawYear, drawMonth - stepMonths, 1 ) ),
+			this._getFormatConfig( inst ) ) );
+
+		prev = ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ?
+			"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
+			" title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" :
+			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" ) );
+
+		nextText = this._get( inst, "nextText" );
+		nextText = ( !navigationAsDateFormat ? nextText : this.formatDate( nextText,
+			this._daylightSavingAdjust( new Date( drawYear, drawMonth + stepMonths, 1 ) ),
+			this._getFormatConfig( inst ) ) );
+
+		next = ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ?
+			"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
+			" title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" :
+			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" ) );
+
+		currentText = this._get( inst, "currentText" );
+		gotoDate = ( this._get( inst, "gotoCurrent" ) && inst.currentDay ? currentDate : today );
+		currentText = ( !navigationAsDateFormat ? currentText :
+			this.formatDate( currentText, gotoDate, this._getFormatConfig( inst ) ) );
+
+		controls = ( !inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
+			this._get( inst, "closeText" ) + "</button>" : "" );
+
+		buttonPanel = ( showButtonPanel ) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + ( isRTL ? controls : "" ) +
+			( this._isInRange( inst, gotoDate ) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
+			">" + currentText + "</button>" : "" ) + ( isRTL ? "" : controls ) + "</div>" : "";
+
+		firstDay = parseInt( this._get( inst, "firstDay" ), 10 );
+		firstDay = ( isNaN( firstDay ) ? 0 : firstDay );
+
+		showWeek = this._get( inst, "showWeek" );
+		dayNames = this._get( inst, "dayNames" );
+		dayNamesMin = this._get( inst, "dayNamesMin" );
+		monthNames = this._get( inst, "monthNames" );
+		monthNamesShort = this._get( inst, "monthNamesShort" );
+		beforeShowDay = this._get( inst, "beforeShowDay" );
+		showOtherMonths = this._get( inst, "showOtherMonths" );
+		selectOtherMonths = this._get( inst, "selectOtherMonths" );
+		defaultDate = this._getDefaultDate( inst );
+		html = "";
+
+		for ( row = 0; row < numMonths[ 0 ]; row++ ) {
+			group = "";
+			this.maxRows = 4;
+			for ( col = 0; col < numMonths[ 1 ]; col++ ) {
+				selectedDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, inst.selectedDay ) );
+				cornerClass = " ui-corner-all";
+				calender = "";
+				if ( isMultiMonth ) {
+					calender += "<div class='ui-datepicker-group";
+					if ( numMonths[ 1 ] > 1 ) {
+						switch ( col ) {
+							case 0: calender += " ui-datepicker-group-first";
+								cornerClass = " ui-corner-" + ( isRTL ? "right" : "left" ); break;
+							case numMonths[ 1 ] - 1: calender += " ui-datepicker-group-last";
+								cornerClass = " ui-corner-" + ( isRTL ? "left" : "right" ); break;
+							default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break;
+						}
+					}
+					calender += "'>";
+				}
+				calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
+					( /all|left/.test( cornerClass ) && row === 0 ? ( isRTL ? next : prev ) : "" ) +
+					( /all|right/.test( cornerClass ) && row === 0 ? ( isRTL ? prev : next ) : "" ) +
+					this._generateMonthYearHeader( inst, drawMonth, drawYear, minDate, maxDate,
+					row > 0 || col > 0, monthNames, monthNamesShort ) + // draw month headers
+					"</div><table class='ui-datepicker-calendar'><thead>" +
+					"<tr>";
+				thead = ( showWeek ? "<th class='ui-datepicker-week-col'>" + this._get( inst, "weekHeader" ) + "</th>" : "" );
+				for ( dow = 0; dow < 7; dow++ ) { // days of the week
+					day = ( dow + firstDay ) % 7;
+					thead += "<th scope='col'" + ( ( dow + firstDay + 6 ) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "" ) + ">" +
+						"<span title='" + dayNames[ day ] + "'>" + dayNamesMin[ day ] + "</span></th>";
+				}
+				calender += thead + "</tr></thead><tbody>";
+				daysInMonth = this._getDaysInMonth( drawYear, drawMonth );
+				if ( drawYear === inst.selectedYear && drawMonth === inst.selectedMonth ) {
+					inst.selectedDay = Math.min( inst.selectedDay, daysInMonth );
+				}
+				leadDays = ( this._getFirstDayOfMonth( drawYear, drawMonth ) - firstDay + 7 ) % 7;
+				curRows = Math.ceil( ( leadDays + daysInMonth ) / 7 ); // calculate the number of rows to generate
+				numRows = ( isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows ); //If multiple months, use the higher number of rows (see #7043)
+				this.maxRows = numRows;
+				printDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 - leadDays ) );
+				for ( dRow = 0; dRow < numRows; dRow++ ) { // create date picker rows
+					calender += "<tr>";
+					tbody = ( !showWeek ? "" : "<td class='ui-datepicker-week-col'>" +
+						this._get( inst, "calculateWeek" )( printDate ) + "</td>" );
+					for ( dow = 0; dow < 7; dow++ ) { // create date picker days
+						daySettings = ( beforeShowDay ?
+							beforeShowDay.apply( ( inst.input ? inst.input[ 0 ] : null ), [ printDate ] ) : [ true, "" ] );
+						otherMonth = ( printDate.getMonth() !== drawMonth );
+						unselectable = ( otherMonth && !selectOtherMonths ) || !daySettings[ 0 ] ||
+							( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate );
+						tbody += "<td class='" +
+							( ( dow + firstDay + 6 ) % 7 >= 5 ? " ui-datepicker-week-end" : "" ) + // highlight weekends
+							( otherMonth ? " ui-datepicker-other-month" : "" ) + // highlight days from other months
+							( ( printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent ) || // user pressed key
+							( defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime() ) ?
+
+							// or defaultDate is current printedDate and defaultDate is selectedDate
+							" " + this._dayOverClass : "" ) + // highlight selected day
+							( unselectable ? " " + this._unselectableClass + " ui-state-disabled" : "" ) +  // highlight unselectable days
+							( otherMonth && !showOtherMonths ? "" : " " + daySettings[ 1 ] + // highlight custom dates
+							( printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "" ) + // highlight selected day
+							( printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "" ) ) + "'" + // highlight today (if different)
+							( ( !otherMonth || showOtherMonths ) && daySettings[ 2 ] ? " title='" + daySettings[ 2 ].replace( /'/g, "&#39;" ) + "'" : "" ) + // cell title
+							( unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'" ) + ">" + // actions
+							( otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months
+							( unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" +
+							( printDate.getTime() === today.getTime() ? " ui-state-highlight" : "" ) +
+							( printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "" ) + // highlight selected day
+							( otherMonth ? " ui-priority-secondary" : "" ) + // distinguish dates from other months
+							"' href='#'>" + printDate.getDate() + "</a>" ) ) + "</td>"; // display selectable date
+						printDate.setDate( printDate.getDate() + 1 );
+						printDate = this._daylightSavingAdjust( printDate );
+					}
+					calender += tbody + "</tr>";
+				}
+				drawMonth++;
+				if ( drawMonth > 11 ) {
+					drawMonth = 0;
+					drawYear++;
+				}
+				calender += "</tbody></table>" + ( isMultiMonth ? "</div>" +
+							( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? "<div class='ui-datepicker-row-break'></div>" : "" ) : "" );
+				group += calender;
+			}
+			html += group;
+		}
+		html += buttonPanel;
+		inst._keyEvent = false;
+		return html;
+	},
+
+	/* Generate the month and year header. */
+	_generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate,
+			secondary, monthNames, monthNamesShort ) {
+
+		var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,
+			changeMonth = this._get( inst, "changeMonth" ),
+			changeYear = this._get( inst, "changeYear" ),
+			showMonthAfterYear = this._get( inst, "showMonthAfterYear" ),
+			html = "<div class='ui-datepicker-title'>",
+			monthHtml = "";
+
+		// Month selection
+		if ( secondary || !changeMonth ) {
+			monthHtml += "<span class='ui-datepicker-month'>" + monthNames[ drawMonth ] + "</span>";
+		} else {
+			inMinYear = ( minDate && minDate.getFullYear() === drawYear );
+			inMaxYear = ( maxDate && maxDate.getFullYear() === drawYear );
+			monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
+			for ( month = 0; month < 12; month++ ) {
+				if ( ( !inMinYear || month >= minDate.getMonth() ) && ( !inMaxYear || month <= maxDate.getMonth() ) ) {
+					monthHtml += "<option value='" + month + "'" +
+						( month === drawMonth ? " selected='selected'" : "" ) +
+						">" + monthNamesShort[ month ] + "</option>";
+				}
+			}
+			monthHtml += "</select>";
+		}
+
+		if ( !showMonthAfterYear ) {
+			html += monthHtml + ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" );
+		}
+
+		// Year selection
+		if ( !inst.yearshtml ) {
+			inst.yearshtml = "";
+			if ( secondary || !changeYear ) {
+				html += "<span class='ui-datepicker-year'>" + drawYear + "</span>";
+			} else {
+
+				// determine range of years to display
+				years = this._get( inst, "yearRange" ).split( ":" );
+				thisYear = new Date().getFullYear();
+				determineYear = function( value ) {
+					var year = ( value.match( /c[+\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) :
+						( value.match( /[+\-].*/ ) ? thisYear + parseInt( value, 10 ) :
+						parseInt( value, 10 ) ) );
+					return ( isNaN( year ) ? thisYear : year );
+				};
+				year = determineYear( years[ 0 ] );
+				endYear = Math.max( year, determineYear( years[ 1 ] || "" ) );
+				year = ( minDate ? Math.max( year, minDate.getFullYear() ) : year );
+				endYear = ( maxDate ? Math.min( endYear, maxDate.getFullYear() ) : endYear );
+				inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
+				for ( ; year <= endYear; year++ ) {
+					inst.yearshtml += "<option value='" + year + "'" +
+						( year === drawYear ? " selected='selected'" : "" ) +
+						">" + year + "</option>";
+				}
+				inst.yearshtml += "</select>";
+
+				html += inst.yearshtml;
+				inst.yearshtml = null;
+			}
+		}
+
+		html += this._get( inst, "yearSuffix" );
+		if ( showMonthAfterYear ) {
+			html += ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" ) + monthHtml;
+		}
+		html += "</div>"; // Close datepicker_header
+		return html;
+	},
+
+	/* Adjust one of the date sub-fields. */
+	_adjustInstDate: function( inst, offset, period ) {
+		var year = inst.selectedYear + ( period === "Y" ? offset : 0 ),
+			month = inst.selectedMonth + ( period === "M" ? offset : 0 ),
+			day = Math.min( inst.selectedDay, this._getDaysInMonth( year, month ) ) + ( period === "D" ? offset : 0 ),
+			date = this._restrictMinMax( inst, this._daylightSavingAdjust( new Date( year, month, day ) ) );
+
+		inst.selectedDay = date.getDate();
+		inst.drawMonth = inst.selectedMonth = date.getMonth();
+		inst.drawYear = inst.selectedYear = date.getFullYear();
+		if ( period === "M" || period === "Y" ) {
+			this._notifyChange( inst );
+		}
+	},
+
+	/* Ensure a date is within any min/max bounds. */
+	_restrictMinMax: function( inst, date ) {
+		var minDate = this._getMinMaxDate( inst, "min" ),
+			maxDate = this._getMinMaxDate( inst, "max" ),
+			newDate = ( minDate && date < minDate ? minDate : date );
+		return ( maxDate && newDate > maxDate ? maxDate : newDate );
+	},
+
+	/* Notify change of month/year. */
+	_notifyChange: function( inst ) {
+		var onChange = this._get( inst, "onChangeMonthYear" );
+		if ( onChange ) {
+			onChange.apply( ( inst.input ? inst.input[ 0 ] : null ),
+				[ inst.selectedYear, inst.selectedMonth + 1, inst ] );
+		}
+	},
+
+	/* Determine the number of months to show. */
+	_getNumberOfMonths: function( inst ) {
+		var numMonths = this._get( inst, "numberOfMonths" );
+		return ( numMonths == null ? [ 1, 1 ] : ( typeof numMonths === "number" ? [ 1, numMonths ] : numMonths ) );
+	},
+
+	/* Determine the current maximum date - ensure no time components are set. */
+	_getMinMaxDate: function( inst, minMax ) {
+		return this._determineDate( inst, this._get( inst, minMax + "Date" ), null );
+	},
+
+	/* Find the number of days in a given month. */
+	_getDaysInMonth: function( year, month ) {
+		return 32 - this._daylightSavingAdjust( new Date( year, month, 32 ) ).getDate();
+	},
+
+	/* Find the day of the week of the first of a month. */
+	_getFirstDayOfMonth: function( year, month ) {
+		return new Date( year, month, 1 ).getDay();
+	},
+
+	/* Determines if we should allow a "next/prev" month display change. */
+	_canAdjustMonth: function( inst, offset, curYear, curMonth ) {
+		var numMonths = this._getNumberOfMonths( inst ),
+			date = this._daylightSavingAdjust( new Date( curYear,
+			curMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) );
+
+		if ( offset < 0 ) {
+			date.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) );
+		}
+		return this._isInRange( inst, date );
+	},
+
+	/* Is the given date in the accepted range? */
+	_isInRange: function( inst, date ) {
+		var yearSplit, currentYear,
+			minDate = this._getMinMaxDate( inst, "min" ),
+			maxDate = this._getMinMaxDate( inst, "max" ),
+			minYear = null,
+			maxYear = null,
+			years = this._get( inst, "yearRange" );
+			if ( years ) {
+				yearSplit = years.split( ":" );
+				currentYear = new Date().getFullYear();
+				minYear = parseInt( yearSplit[ 0 ], 10 );
+				maxYear = parseInt( yearSplit[ 1 ], 10 );
+				if ( yearSplit[ 0 ].match( /[+\-].*/ ) ) {
+					minYear += currentYear;
+				}
+				if ( yearSplit[ 1 ].match( /[+\-].*/ ) ) {
+					maxYear += currentYear;
+				}
+			}
+
+		return ( ( !minDate || date.getTime() >= minDate.getTime() ) &&
+			( !maxDate || date.getTime() <= maxDate.getTime() ) &&
+			( !minYear || date.getFullYear() >= minYear ) &&
+			( !maxYear || date.getFullYear() <= maxYear ) );
+	},
+
+	/* Provide the configuration settings for formatting/parsing. */
+	_getFormatConfig: function( inst ) {
+		var shortYearCutoff = this._get( inst, "shortYearCutoff" );
+		shortYearCutoff = ( typeof shortYearCutoff !== "string" ? shortYearCutoff :
+			new Date().getFullYear() % 100 + parseInt( shortYearCutoff, 10 ) );
+		return { shortYearCutoff: shortYearCutoff,
+			dayNamesShort: this._get( inst, "dayNamesShort" ), dayNames: this._get( inst, "dayNames" ),
+			monthNamesShort: this._get( inst, "monthNamesShort" ), monthNames: this._get( inst, "monthNames" ) };
+	},
+
+	/* Format the given date for display. */
+	_formatDate: function( inst, day, month, year ) {
+		if ( !day ) {
+			inst.currentDay = inst.selectedDay;
+			inst.currentMonth = inst.selectedMonth;
+			inst.currentYear = inst.selectedYear;
+		}
+		var date = ( day ? ( typeof day === "object" ? day :
+			this._daylightSavingAdjust( new Date( year, month, day ) ) ) :
+			this._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
+		return this.formatDate( this._get( inst, "dateFormat" ), date, this._getFormatConfig( inst ) );
+	}
+} );
+
+/*
+ * Bind hover events for datepicker elements.
+ * Done via delegate so the binding only occurs once in the lifetime of the parent div.
+ * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
+ */
+function datepicker_bindHover( dpDiv ) {
+	var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
+	return dpDiv.on( "mouseout", selector, function() {
+			$( this ).removeClass( "ui-state-hover" );
+			if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
+				$( this ).removeClass( "ui-datepicker-prev-hover" );
+			}
+			if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
+				$( this ).removeClass( "ui-datepicker-next-hover" );
+			}
+		} )
+		.on( "mouseover", selector, datepicker_handleMouseover );
+}
+
+function datepicker_handleMouseover() {
+	if ( !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? datepicker_instActive.dpDiv.parent()[ 0 ] : datepicker_instActive.input[ 0 ] ) ) {
+		$( this ).parents( ".ui-datepicker-calendar" ).find( "a" ).removeClass( "ui-state-hover" );
+		$( this ).addClass( "ui-state-hover" );
+		if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
+			$( this ).addClass( "ui-datepicker-prev-hover" );
+		}
+		if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
+			$( this ).addClass( "ui-datepicker-next-hover" );
+		}
+	}
+}
+
+/* jQuery extend now ignores nulls! */
+function datepicker_extendRemove( target, props ) {
+	$.extend( target, props );
+	for ( var name in props ) {
+		if ( props[ name ] == null ) {
+			target[ name ] = props[ name ];
+		}
+	}
+	return target;
+}
+
+/* Invoke the datepicker functionality.
+   @param  options  string - a command, optionally followed by additional parameters or
+					Object - settings for attaching new datepicker functionality
+   @return  jQuery object */
+$.fn.datepicker = function( options ) {
+
+	/* Verify an empty collection wasn't passed - Fixes #6976 */
+	if ( !this.length ) {
+		return this;
+	}
+
+	/* Initialise the date picker. */
+	if ( !$.datepicker.initialized ) {
+		$( document ).on( "mousedown", $.datepicker._checkExternalClick );
+		$.datepicker.initialized = true;
+	}
+
+	/* Append datepicker main container to body if not exist. */
+	if ( $( "#" + $.datepicker._mainDivId ).length === 0 ) {
+		$( "body" ).append( $.datepicker.dpDiv );
+	}
+
+	var otherArgs = Array.prototype.slice.call( arguments, 1 );
+	if ( typeof options === "string" && ( options === "isDisabled" || options === "getDate" || options === "widget" ) ) {
+		return $.datepicker[ "_" + options + "Datepicker" ].
+			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
+	}
+	if ( options === "option" && arguments.length === 2 && typeof arguments[ 1 ] === "string" ) {
+		return $.datepicker[ "_" + options + "Datepicker" ].
+			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
+	}
+	return this.each( function() {
+		typeof options === "string" ?
+			$.datepicker[ "_" + options + "Datepicker" ].
+				apply( $.datepicker, [ this ].concat( otherArgs ) ) :
+			$.datepicker._attachDatepicker( this, options );
+	} );
+};
+
+$.datepicker = new Datepicker(); // singleton instance
+$.datepicker.initialized = false;
+$.datepicker.uuid = new Date().getTime();
+$.datepicker.version = "1.12.0";
+
+var widgetsDatepicker = $.datepicker;
+
+
+
+
+// This file is deprecated
+var ie = $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
+
+/*!
+ * jQuery UI Mouse 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Mouse
+//>>group: Widgets
+//>>description: Abstracts mouse-based interactions to assist in creating certain widgets.
+//>>docs: http://api.jqueryui.com/mouse/
+
+
+
+var mouseHandled = false;
+$( document ).on( "mouseup", function() {
+	mouseHandled = false;
+} );
+
+var widgetsMouse = $.widget( "ui.mouse", {
+	version: "1.12.0",
+	options: {
+		cancel: "input, textarea, button, select, option",
+		distance: 1,
+		delay: 0
+	},
+	_mouseInit: function() {
+		var that = this;
+
+		this.element
+			.on( "mousedown." + this.widgetName, function( event ) {
+				return that._mouseDown( event );
+			} )
+			.on( "click." + this.widgetName, function( event ) {
+				if ( true === $.data( event.target, that.widgetName + ".preventClickEvent" ) ) {
+					$.removeData( event.target, that.widgetName + ".preventClickEvent" );
+					event.stopImmediatePropagation();
+					return false;
+				}
+			} );
+
+		this.started = false;
+	},
+
+	// TODO: make sure destroying one instance of mouse doesn't mess with
+	// other instances of mouse
+	_mouseDestroy: function() {
+		this.element.off( "." + this.widgetName );
+		if ( this._mouseMoveDelegate ) {
+			this.document
+				.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+				.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
+		}
+	},
+
+	_mouseDown: function( event ) {
+
+		// don't let more than one widget handle mouseStart
+		if ( mouseHandled ) {
+			return;
+		}
+
+		this._mouseMoved = false;
+
+		// We may have missed mouseup (out of window)
+		( this._mouseStarted && this._mouseUp( event ) );
+
+		this._mouseDownEvent = event;
+
+		var that = this,
+			btnIsLeft = ( event.which === 1 ),
+
+			// event.target.nodeName works around a bug in IE 8 with
+			// disabled inputs (#7620)
+			elIsCancel = ( typeof this.options.cancel === "string" && event.target.nodeName ?
+				$( event.target ).closest( this.options.cancel ).length : false );
+		if ( !btnIsLeft || elIsCancel || !this._mouseCapture( event ) ) {
+			return true;
+		}
+
+		this.mouseDelayMet = !this.options.delay;
+		if ( !this.mouseDelayMet ) {
+			this._mouseDelayTimer = setTimeout( function() {
+				that.mouseDelayMet = true;
+			}, this.options.delay );
+		}
+
+		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
+			this._mouseStarted = ( this._mouseStart( event ) !== false );
+			if ( !this._mouseStarted ) {
+				event.preventDefault();
+				return true;
+			}
+		}
+
+		// Click event may never have fired (Gecko & Opera)
+		if ( true === $.data( event.target, this.widgetName + ".preventClickEvent" ) ) {
+			$.removeData( event.target, this.widgetName + ".preventClickEvent" );
+		}
+
+		// These delegates are required to keep context
+		this._mouseMoveDelegate = function( event ) {
+			return that._mouseMove( event );
+		};
+		this._mouseUpDelegate = function( event ) {
+			return that._mouseUp( event );
+		};
+
+		this.document
+			.on( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.on( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		event.preventDefault();
+
+		mouseHandled = true;
+		return true;
+	},
+
+	_mouseMove: function( event ) {
+
+		// Only check for mouseups outside the document if you've moved inside the document
+		// at least once. This prevents the firing of mouseup in the case of IE<9, which will
+		// fire a mousemove event if content is placed under the cursor. See #7778
+		// Support: IE <9
+		if ( this._mouseMoved ) {
+
+			// IE mouseup check - mouseup happened when mouse was out of window
+			if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) &&
+					!event.button ) {
+				return this._mouseUp( event );
+
+			// Iframe mouseup check - mouseup occurred in another document
+			} else if ( !event.which ) {
+
+				// Support: Safari <=8 - 9
+				// Safari sets which to 0 if you press any of the following keys
+				// during a drag (#14461)
+				if ( event.originalEvent.altKey || event.originalEvent.ctrlKey ||
+						event.originalEvent.metaKey || event.originalEvent.shiftKey ) {
+					this.ignoreMissingWhich = true;
+				} else if ( !this.ignoreMissingWhich ) {
+					return this._mouseUp( event );
+				}
+			}
+		}
+
+		if ( event.which || event.button ) {
+			this._mouseMoved = true;
+		}
+
+		if ( this._mouseStarted ) {
+			this._mouseDrag( event );
+			return event.preventDefault();
+		}
+
+		if ( this._mouseDistanceMet( event ) && this._mouseDelayMet( event ) ) {
+			this._mouseStarted =
+				( this._mouseStart( this._mouseDownEvent, event ) !== false );
+			( this._mouseStarted ? this._mouseDrag( event ) : this._mouseUp( event ) );
+		}
+
+		return !this._mouseStarted;
+	},
+
+	_mouseUp: function( event ) {
+		this.document
+			.off( "mousemove." + this.widgetName, this._mouseMoveDelegate )
+			.off( "mouseup." + this.widgetName, this._mouseUpDelegate );
+
+		if ( this._mouseStarted ) {
+			this._mouseStarted = false;
+
+			if ( event.target === this._mouseDownEvent.target ) {
+				$.data( event.target, this.widgetName + ".preventClickEvent", true );
+			}
+
+			this._mouseStop( event );
+		}
+
+		if ( this._mouseDelayTimer ) {
+			clearTimeout( this._mouseDelayTimer );
+			delete this._mouseDelayTimer;
+		}
+
+		this.ignoreMissingWhich = false;
+		mouseHandled = false;
+		event.preventDefault();
+	},
+
+	_mouseDistanceMet: function( event ) {
+		return ( Math.max(
+				Math.abs( this._mouseDownEvent.pageX - event.pageX ),
+				Math.abs( this._mouseDownEvent.pageY - event.pageY )
+			) >= this.options.distance
+		);
+	},
+
+	_mouseDelayMet: function( /* event */ ) {
+		return this.mouseDelayMet;
+	},
+
+	// These are placeholder methods, to be overriden by extending plugin
+	_mouseStart: function( /* event */ ) {},
+	_mouseDrag: function( /* event */ ) {},
+	_mouseStop: function( /* event */ ) {},
+	_mouseCapture: function( /* event */ ) { return true; }
+} );
+
+
+
+
+// $.ui.plugin is deprecated. Use $.widget() extensions instead.
+var plugin = $.ui.plugin = {
+	add: function( module, option, set ) {
+		var i,
+			proto = $.ui[ module ].prototype;
+		for ( i in set ) {
+			proto.plugins[ i ] = proto.plugins[ i ] || [];
+			proto.plugins[ i ].push( [ option, set[ i ] ] );
+		}
+	},
+	call: function( instance, name, args, allowDisconnected ) {
+		var i,
+			set = instance.plugins[ name ];
+
+		if ( !set ) {
+			return;
+		}
+
+		if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode ||
+				instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
+			return;
+		}
+
+		for ( i = 0; i < set.length; i++ ) {
+			if ( instance.options[ set[ i ][ 0 ] ] ) {
+				set[ i ][ 1 ].apply( instance.element, args );
+			}
+		}
+	}
+};
+
+
+
+var safeBlur = $.ui.safeBlur = function( element ) {
+
+	// Support: IE9 - 10 only
+	// If the <body> is blurred, IE will switch windows, see #9420
+	if ( element && element.nodeName.toLowerCase() !== "body" ) {
+		$( element ).trigger( "blur" );
+	}
+};
+
+
+/*!
+ * jQuery UI Draggable 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Draggable
+//>>group: Interactions
+//>>description: Enables dragging functionality for any element.
+//>>docs: http://api.jqueryui.com/draggable/
+//>>demos: http://jqueryui.com/draggable/
+//>>css.structure: ../../themes/base/draggable.css
+
+
+
+$.widget( "ui.draggable", $.ui.mouse, {
+	version: "1.12.0",
+	widgetEventPrefix: "drag",
+	options: {
+		addClasses: true,
+		appendTo: "parent",
+		axis: false,
+		connectToSortable: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		iframeFix: false,
+		opacity: false,
+		refreshPositions: false,
+		revert: false,
+		revertDuration: 500,
+		scope: "default",
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		snap: false,
+		snapMode: "both",
+		snapTolerance: 20,
+		stack: false,
+		zIndex: false,
+
+		// Callbacks
+		drag: null,
+		start: null,
+		stop: null
+	},
+	_create: function() {
+
+		if ( this.options.helper === "original" ) {
+			this._setPositionRelative();
+		}
+		if ( this.options.addClasses ) {
+			this._addClass( "ui-draggable" );
+		}
+		this._setHandleClassName();
+
+		this._mouseInit();
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+		if ( key === "handle" ) {
+			this._removeHandleClassName();
+			this._setHandleClassName();
+		}
+	},
+
+	_destroy: function() {
+		if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) {
+			this.destroyOnClear = true;
+			return;
+		}
+		this._removeHandleClassName();
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function( event ) {
+		var o = this.options;
+
+		this._blurActiveElement( event );
+
+		// Among others, prevent a drag on a resizable-handle
+		if ( this.helper || o.disabled ||
+				$( event.target ).closest( ".ui-resizable-handle" ).length > 0 ) {
+			return false;
+		}
+
+		//Quit if we're not on a valid handle
+		this.handle = this._getHandle( event );
+		if ( !this.handle ) {
+			return false;
+		}
+
+		this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix );
+
+		return true;
+
+	},
+
+	_blockFrames: function( selector ) {
+		this.iframeBlocks = this.document.find( selector ).map( function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css( "position", "absolute" )
+				.appendTo( iframe.parent() )
+				.outerWidth( iframe.outerWidth() )
+				.outerHeight( iframe.outerHeight() )
+				.offset( iframe.offset() )[ 0 ];
+		} );
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_blurActiveElement: function( event ) {
+		var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
+			target = $( event.target );
+
+		// Only blur if the event occurred on an element that is:
+		// 1) within the draggable handle
+		// 2) but not within the currently focused element
+		// See #10527, #12472
+		if ( this._getHandle( event ) && target.closest( activeElement ).length ) {
+			return;
+		}
+
+		// Blur any element that currently has focus, see #4261
+		$.ui.safeBlur( activeElement );
+	},
+
+	_mouseStart: function( event ) {
+
+		var o = this.options;
+
+		//Create and append the visible helper
+		this.helper = this._createHelper( event );
+
+		this._addClass( this.helper, "ui-draggable-dragging" );
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		//If ddmanager is used for droppables, set the global draggable
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.current = this;
+		}
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Store the helper's css position
+		this.cssPosition = this.helper.css( "position" );
+		this.scrollParent = this.helper.scrollParent( true );
+		this.offsetParent = this.helper.offsetParent();
+		this.hasFixedAncestor = this.helper.parents().filter( function() {
+				return $( this ).css( "position" ) === "fixed";
+			} ).length > 0;
+
+		//The element's absolute position on the page minus margins
+		this.positionAbs = this.element.offset();
+		this._refreshOffsets( event );
+
+		//Generate the original position
+		this.originalPosition = this.position = this._generatePosition( event, false );
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );
+
+		//Set a containment if given in the options
+		this._setContainment();
+
+		//Trigger event + callbacks
+		if ( this._trigger( "start", event ) === false ) {
+			this._clear();
+			return false;
+		}
+
+		//Recache the helper size
+		this._cacheHelperProportions();
+
+		//Prepare the droppable offsets
+		if ( $.ui.ddmanager && !o.dropBehaviour ) {
+			$.ui.ddmanager.prepareOffsets( this, event );
+		}
+
+		// Execute the drag once - this causes the helper not to be visible before getting its
+		// correct position
+		this._mouseDrag( event, true );
+
+		// If the ddmanager is used for droppables, inform the manager that dragging has started
+		// (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStart( this, event );
+		}
+
+		return true;
+	},
+
+	_refreshOffsets: function( event ) {
+		this.offset = {
+			top: this.positionAbs.top - this.margins.top,
+			left: this.positionAbs.left - this.margins.left,
+			scroll: false,
+			parent: this._getParentOffset(),
+			relative: this._getRelativeOffset()
+		};
+
+		this.offset.click = {
+			left: event.pageX - this.offset.left,
+			top: event.pageY - this.offset.top
+		};
+	},
+
+	_mouseDrag: function( event, noPropagation ) {
+
+		// reset any necessary cached properties (see #5009)
+		if ( this.hasFixedAncestor ) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		//Compute the helpers position
+		this.position = this._generatePosition( event, true );
+		this.positionAbs = this._convertPositionTo( "absolute" );
+
+		//Call plugins and callbacks and use the resulting position if something is returned
+		if ( !noPropagation ) {
+			var ui = this._uiHash();
+			if ( this._trigger( "drag", event, ui ) === false ) {
+				this._mouseUp( new $.Event( "mouseup", event ) );
+				return false;
+			}
+			this.position = ui.position;
+		}
+
+		this.helper[ 0 ].style.left = this.position.left + "px";
+		this.helper[ 0 ].style.top = this.position.top + "px";
+
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.drag( this, event );
+		}
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+
+		//If we are using droppables, inform the manager about the drop
+		var that = this,
+			dropped = false;
+		if ( $.ui.ddmanager && !this.options.dropBehaviour ) {
+			dropped = $.ui.ddmanager.drop( this, event );
+		}
+
+		//if a drop comes from outside (a sortable)
+		if ( this.dropped ) {
+			dropped = this.dropped;
+			this.dropped = false;
+		}
+
+		if ( ( this.options.revert === "invalid" && !dropped ) ||
+				( this.options.revert === "valid" && dropped ) ||
+				this.options.revert === true || ( $.isFunction( this.options.revert ) &&
+				this.options.revert.call( this.element, dropped ) )
+		) {
+			$( this.helper ).animate(
+				this.originalPosition,
+				parseInt( this.options.revertDuration, 10 ),
+				function() {
+					if ( that._trigger( "stop", event ) !== false ) {
+						that._clear();
+					}
+				}
+			);
+		} else {
+			if ( this._trigger( "stop", event ) !== false ) {
+				this._clear();
+			}
+		}
+
+		return false;
+	},
+
+	_mouseUp: function( event ) {
+		this._unblockFrames();
+
+		// If the ddmanager is used for droppables, inform the manager that dragging has stopped
+		// (see #5003)
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.dragStop( this, event );
+		}
+
+		// Only need to focus if the event occurred on the draggable itself, see #10527
+		if ( this.handleElement.is( event.target ) ) {
+
+			// The interaction is over; whether or not the click resulted in a drag,
+			// focus the element
+			this.element.trigger( "focus" );
+		}
+
+		return $.ui.mouse.prototype._mouseUp.call( this, event );
+	},
+
+	cancel: function() {
+
+		if ( this.helper.is( ".ui-draggable-dragging" ) ) {
+			this._mouseUp( new $.Event( "mouseup", { target: this.element[ 0 ] } ) );
+		} else {
+			this._clear();
+		}
+
+		return this;
+
+	},
+
+	_getHandle: function( event ) {
+		return this.options.handle ?
+			!!$( event.target ).closest( this.element.find( this.options.handle ) ).length :
+			true;
+	},
+
+	_setHandleClassName: function() {
+		this.handleElement = this.options.handle ?
+			this.element.find( this.options.handle ) : this.element;
+		this._addClass( this.handleElement, "ui-draggable-handle" );
+	},
+
+	_removeHandleClassName: function() {
+		this._removeClass( this.handleElement, "ui-draggable-handle" );
+	},
+
+	_createHelper: function( event ) {
+
+		var o = this.options,
+			helperIsFunction = $.isFunction( o.helper ),
+			helper = helperIsFunction ?
+				$( o.helper.apply( this.element[ 0 ], [ event ] ) ) :
+				( o.helper === "clone" ?
+					this.element.clone().removeAttr( "id" ) :
+					this.element );
+
+		if ( !helper.parents( "body" ).length ) {
+			helper.appendTo( ( o.appendTo === "parent" ?
+				this.element[ 0 ].parentNode :
+				o.appendTo ) );
+		}
+
+		// Http://bugs.jqueryui.com/ticket/9446
+		// a helper function can return the original element
+		// which wouldn't have been set to relative in _create
+		if ( helperIsFunction && helper[ 0 ] === this.element[ 0 ] ) {
+			this._setPositionRelative();
+		}
+
+		if ( helper[ 0 ] !== this.element[ 0 ] &&
+				!( /(fixed|absolute)/ ).test( helper.css( "position" ) ) ) {
+			helper.css( "position", "absolute" );
+		}
+
+		return helper;
+
+	},
+
+	_setPositionRelative: function() {
+		if ( !( /^(?:r|a|f)/ ).test( this.element.css( "position" ) ) ) {
+			this.element[ 0 ].style.position = "relative";
+		}
+	},
+
+	_adjustOffsetFromHelper: function( obj ) {
+		if ( typeof obj === "string" ) {
+			obj = obj.split( " " );
+		}
+		if ( $.isArray( obj ) ) {
+			obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };
+		}
+		if ( "left" in obj ) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ( "right" in obj ) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ( "top" in obj ) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ( "bottom" in obj ) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_isRootNode: function( element ) {
+		return ( /(html|body)/i ).test( element.tagName ) || element === this.document[ 0 ];
+	},
+
+	_getParentOffset: function() {
+
+		//Get the offsetParent and cache its position
+		var po = this.offsetParent.offset(),
+			document = this.document[ 0 ];
+
+		// This is a special case where we need to modify a offset calculated on start, since the
+		// following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the
+		// next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't
+		// the document, which means that the scroll is included in the initial calculation of the
+		// offset of the parent, and never recalculated upon drag
+		if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== document &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		if ( this._isRootNode( this.offsetParent[ 0 ] ) ) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ),
+			left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 )
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+		if ( this.cssPosition !== "relative" ) {
+			return { top: 0, left: 0 };
+		}
+
+		var p = this.element.position(),
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) +
+				( !scrollIsRootNode ? this.scrollParent.scrollTop() : 0 ),
+			left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) +
+				( !scrollIsRootNode ? this.scrollParent.scrollLeft() : 0 )
+		};
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: ( parseInt( this.element.css( "marginLeft" ), 10 ) || 0 ),
+			top: ( parseInt( this.element.css( "marginTop" ), 10 ) || 0 ),
+			right: ( parseInt( this.element.css( "marginRight" ), 10 ) || 0 ),
+			bottom: ( parseInt( this.element.css( "marginBottom" ), 10 ) || 0 )
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var isUserScrollable, c, ce,
+			o = this.options,
+			document = this.document[ 0 ];
+
+		this.relativeContainer = null;
+
+		if ( !o.containment ) {
+			this.containment = null;
+			return;
+		}
+
+		if ( o.containment === "window" ) {
+			this.containment = [
+				$( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left,
+				$( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top,
+				$( window ).scrollLeft() + $( window ).width() -
+					this.helperProportions.width - this.margins.left,
+				$( window ).scrollTop() +
+					( $( window ).height() || document.body.parentNode.scrollHeight ) -
+					this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment === "document" ) {
+			this.containment = [
+				0,
+				0,
+				$( document ).width() - this.helperProportions.width - this.margins.left,
+				( $( document ).height() || document.body.parentNode.scrollHeight ) -
+					this.helperProportions.height - this.margins.top
+			];
+			return;
+		}
+
+		if ( o.containment.constructor === Array ) {
+			this.containment = o.containment;
+			return;
+		}
+
+		if ( o.containment === "parent" ) {
+			o.containment = this.helper[ 0 ].parentNode;
+		}
+
+		c = $( o.containment );
+		ce = c[ 0 ];
+
+		if ( !ce ) {
+			return;
+		}
+
+		isUserScrollable = /(scroll|auto)/.test( c.css( "overflow" ) );
+
+		this.containment = [
+			( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) +
+				( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ),
+			( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) +
+				( parseInt( c.css( "paddingTop" ), 10 ) || 0 ),
+			( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
+				( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) -
+				this.helperProportions.width -
+				this.margins.left -
+				this.margins.right,
+			( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
+				( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) -
+				( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) -
+				this.helperProportions.height -
+				this.margins.top -
+				this.margins.bottom
+		];
+		this.relativeContainer = c;
+	},
+
+	_convertPositionTo: function( d, pos ) {
+
+		if ( !pos ) {
+			pos = this.position;
+		}
+
+		var mod = d === "absolute" ? 1 : -1,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] );
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pos.top	+
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top * mod -
+				( ( this.cssPosition === "fixed" ?
+					-this.offset.scroll.top :
+					( scrollIsRootNode ? 0 : this.offset.scroll.top ) ) * mod )
+			),
+			left: (
+
+				// The absolute mouse position
+				pos.left +
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left * mod	-
+				( ( this.cssPosition === "fixed" ?
+					-this.offset.scroll.left :
+					( scrollIsRootNode ? 0 : this.offset.scroll.left ) ) * mod )
+			)
+		};
+
+	},
+
+	_generatePosition: function( event, constrainPosition ) {
+
+		var containment, co, top, left,
+			o = this.options,
+			scrollIsRootNode = this._isRootNode( this.scrollParent[ 0 ] ),
+			pageX = event.pageX,
+			pageY = event.pageY;
+
+		// Cache the scroll
+		if ( !scrollIsRootNode || !this.offset.scroll ) {
+			this.offset.scroll = {
+				top: this.scrollParent.scrollTop(),
+				left: this.scrollParent.scrollLeft()
+			};
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		// If we are not dragging yet, we won't check for options
+		if ( constrainPosition ) {
+			if ( this.containment ) {
+				if ( this.relativeContainer ) {
+					co = this.relativeContainer.offset();
+					containment = [
+						this.containment[ 0 ] + co.left,
+						this.containment[ 1 ] + co.top,
+						this.containment[ 2 ] + co.left,
+						this.containment[ 3 ] + co.top
+					];
+				} else {
+					containment = this.containment;
+				}
+
+				if ( event.pageX - this.offset.click.left < containment[ 0 ] ) {
+					pageX = containment[ 0 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top < containment[ 1 ] ) {
+					pageY = containment[ 1 ] + this.offset.click.top;
+				}
+				if ( event.pageX - this.offset.click.left > containment[ 2 ] ) {
+					pageX = containment[ 2 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top > containment[ 3 ] ) {
+					pageY = containment[ 3 ] + this.offset.click.top;
+				}
+			}
+
+			if ( o.grid ) {
+
+				//Check for grid elements set to 0 to prevent divide by 0 error causing invalid
+				// argument errors in IE (see ticket #6950)
+				top = o.grid[ 1 ] ? this.originalPageY + Math.round( ( pageY -
+					this.originalPageY ) / o.grid[ 1 ] ) * o.grid[ 1 ] : this.originalPageY;
+				pageY = containment ? ( ( top - this.offset.click.top >= containment[ 1 ] ||
+					top - this.offset.click.top > containment[ 3 ] ) ?
+						top :
+						( ( top - this.offset.click.top >= containment[ 1 ] ) ?
+							top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top;
+
+				left = o.grid[ 0 ] ? this.originalPageX +
+					Math.round( ( pageX - this.originalPageX ) / o.grid[ 0 ] ) * o.grid[ 0 ] :
+					this.originalPageX;
+				pageX = containment ? ( ( left - this.offset.click.left >= containment[ 0 ] ||
+					left - this.offset.click.left > containment[ 2 ] ) ?
+						left :
+						( ( left - this.offset.click.left >= containment[ 0 ] ) ?
+							left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left;
+			}
+
+			if ( o.axis === "y" ) {
+				pageX = this.originalPageX;
+			}
+
+			if ( o.axis === "x" ) {
+				pageY = this.originalPageY;
+			}
+		}
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pageY -
+
+				// Click offset (relative to the element)
+				this.offset.click.top -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top +
+				( this.cssPosition === "fixed" ?
+					-this.offset.scroll.top :
+					( scrollIsRootNode ? 0 : this.offset.scroll.top ) )
+			),
+			left: (
+
+				// The absolute mouse position
+				pageX -
+
+				// Click offset (relative to the element)
+				this.offset.click.left -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left +
+				( this.cssPosition === "fixed" ?
+					-this.offset.scroll.left :
+					( scrollIsRootNode ? 0 : this.offset.scroll.left ) )
+			)
+		};
+
+	},
+
+	_clear: function() {
+		this._removeClass( this.helper, "ui-draggable-dragging" );
+		if ( this.helper[ 0 ] !== this.element[ 0 ] && !this.cancelHelperRemoval ) {
+			this.helper.remove();
+		}
+		this.helper = null;
+		this.cancelHelperRemoval = false;
+		if ( this.destroyOnClear ) {
+			this.destroy();
+		}
+	},
+
+	// From now on bulk stuff - mainly helpers
+
+	_trigger: function( type, event, ui ) {
+		ui = ui || this._uiHash();
+		$.ui.plugin.call( this, type, [ event, ui, this ], true );
+
+		// Absolute position and offset (see #6884 ) have to be recalculated after plugins
+		if ( /^(drag|start|stop)/.test( type ) ) {
+			this.positionAbs = this._convertPositionTo( "absolute" );
+			ui.offset = this.positionAbs;
+		}
+		return $.Widget.prototype._trigger.call( this, type, event, ui );
+	},
+
+	plugins: {},
+
+	_uiHash: function() {
+		return {
+			helper: this.helper,
+			position: this.position,
+			originalPosition: this.originalPosition,
+			offset: this.positionAbs
+		};
+	}
+
+} );
+
+$.ui.plugin.add( "draggable", "connectToSortable", {
+	start: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		} );
+
+		draggable.sortables = [];
+		$( draggable.options.connectToSortable ).each( function() {
+			var sortable = $( this ).sortable( "instance" );
+
+			if ( sortable && !sortable.options.disabled ) {
+				draggable.sortables.push( sortable );
+
+				// RefreshPositions is called at drag start to refresh the containerCache
+				// which is used in drag. This ensures it's initialized and synchronized
+				// with any changes that might have happened on the page since initialization.
+				sortable.refreshPositions();
+				sortable._trigger( "activate", event, uiSortable );
+			}
+		} );
+	},
+	stop: function( event, ui, draggable ) {
+		var uiSortable = $.extend( {}, ui, {
+			item: draggable.element
+		} );
+
+		draggable.cancelHelperRemoval = false;
+
+		$.each( draggable.sortables, function() {
+			var sortable = this;
+
+			if ( sortable.isOver ) {
+				sortable.isOver = 0;
+
+				// Allow this sortable to handle removing the helper
+				draggable.cancelHelperRemoval = true;
+				sortable.cancelHelperRemoval = false;
+
+				// Use _storedCSS To restore properties in the sortable,
+				// as this also handles revert (#9675) since the draggable
+				// may have modified them in unexpected ways (#8809)
+				sortable._storedCSS = {
+					position: sortable.placeholder.css( "position" ),
+					top: sortable.placeholder.css( "top" ),
+					left: sortable.placeholder.css( "left" )
+				};
+
+				sortable._mouseStop( event );
+
+				// Once drag has ended, the sortable should return to using
+				// its original helper, not the shared helper from draggable
+				sortable.options.helper = sortable.options._helper;
+			} else {
+
+				// Prevent this Sortable from removing the helper.
+				// However, don't set the draggable to remove the helper
+				// either as another connected Sortable may yet handle the removal.
+				sortable.cancelHelperRemoval = true;
+
+				sortable._trigger( "deactivate", event, uiSortable );
+			}
+		} );
+	},
+	drag: function( event, ui, draggable ) {
+		$.each( draggable.sortables, function() {
+			var innermostIntersecting = false,
+				sortable = this;
+
+			// Copy over variables that sortable's _intersectsWith uses
+			sortable.positionAbs = draggable.positionAbs;
+			sortable.helperProportions = draggable.helperProportions;
+			sortable.offset.click = draggable.offset.click;
+
+			if ( sortable._intersectsWith( sortable.containerCache ) ) {
+				innermostIntersecting = true;
+
+				$.each( draggable.sortables, function() {
+
+					// Copy over variables that sortable's _intersectsWith uses
+					this.positionAbs = draggable.positionAbs;
+					this.helperProportions = draggable.helperProportions;
+					this.offset.click = draggable.offset.click;
+
+					if ( this !== sortable &&
+							this._intersectsWith( this.containerCache ) &&
+							$.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) {
+						innermostIntersecting = false;
+					}
+
+					return innermostIntersecting;
+				} );
+			}
+
+			if ( innermostIntersecting ) {
+
+				// If it intersects, we use a little isOver variable and set it once,
+				// so that the move-in stuff gets fired only once.
+				if ( !sortable.isOver ) {
+					sortable.isOver = 1;
+
+					// Store draggable's parent in case we need to reappend to it later.
+					draggable._parent = ui.helper.parent();
+
+					sortable.currentItem = ui.helper
+						.appendTo( sortable.element )
+						.data( "ui-sortable-item", true );
+
+					// Store helper option to later restore it
+					sortable.options._helper = sortable.options.helper;
+
+					sortable.options.helper = function() {
+						return ui.helper[ 0 ];
+					};
+
+					// Fire the start events of the sortable with our passed browser event,
+					// and our own helper (so it doesn't create a new one)
+					event.target = sortable.currentItem[ 0 ];
+					sortable._mouseCapture( event, true );
+					sortable._mouseStart( event, true, true );
+
+					// Because the browser event is way off the new appended portlet,
+					// modify necessary variables to reflect the changes
+					sortable.offset.click.top = draggable.offset.click.top;
+					sortable.offset.click.left = draggable.offset.click.left;
+					sortable.offset.parent.left -= draggable.offset.parent.left -
+						sortable.offset.parent.left;
+					sortable.offset.parent.top -= draggable.offset.parent.top -
+						sortable.offset.parent.top;
+
+					draggable._trigger( "toSortable", event );
+
+					// Inform draggable that the helper is in a valid drop zone,
+					// used solely in the revert option to handle "valid/invalid".
+					draggable.dropped = sortable.element;
+
+					// Need to refreshPositions of all sortables in the case that
+					// adding to one sortable changes the location of the other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					} );
+
+					// Hack so receive/update callbacks work (mostly)
+					draggable.currentItem = draggable.element;
+					sortable.fromOutside = draggable;
+				}
+
+				if ( sortable.currentItem ) {
+					sortable._mouseDrag( event );
+
+					// Copy the sortable's position because the draggable's can potentially reflect
+					// a relative position, while sortable is always absolute, which the dragged
+					// element has now become. (#8809)
+					ui.position = sortable.position;
+				}
+			} else {
+
+				// If it doesn't intersect with the sortable, and it intersected before,
+				// we fake the drag stop of the sortable, but make sure it doesn't remove
+				// the helper by using cancelHelperRemoval.
+				if ( sortable.isOver ) {
+
+					sortable.isOver = 0;
+					sortable.cancelHelperRemoval = true;
+
+					// Calling sortable's mouseStop would trigger a revert,
+					// so revert must be temporarily false until after mouseStop is called.
+					sortable.options._revert = sortable.options.revert;
+					sortable.options.revert = false;
+
+					sortable._trigger( "out", event, sortable._uiHash( sortable ) );
+					sortable._mouseStop( event, true );
+
+					// Restore sortable behaviors that were modfied
+					// when the draggable entered the sortable area (#9481)
+					sortable.options.revert = sortable.options._revert;
+					sortable.options.helper = sortable.options._helper;
+
+					if ( sortable.placeholder ) {
+						sortable.placeholder.remove();
+					}
+
+					// Restore and recalculate the draggable's offset considering the sortable
+					// may have modified them in unexpected ways. (#8809, #10669)
+					ui.helper.appendTo( draggable._parent );
+					draggable._refreshOffsets( event );
+					ui.position = draggable._generatePosition( event, true );
+
+					draggable._trigger( "fromSortable", event );
+
+					// Inform draggable that the helper is no longer in a valid drop zone
+					draggable.dropped = false;
+
+					// Need to refreshPositions of all sortables just in case removing
+					// from one sortable changes the location of other sortables (#9675)
+					$.each( draggable.sortables, function() {
+						this.refreshPositions();
+					} );
+				}
+			}
+		} );
+	}
+} );
+
+$.ui.plugin.add( "draggable", "cursor", {
+	start: function( event, ui, instance ) {
+		var t = $( "body" ),
+			o = instance.options;
+
+		if ( t.css( "cursor" ) ) {
+			o._cursor = t.css( "cursor" );
+		}
+		t.css( "cursor", o.cursor );
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if ( o._cursor ) {
+			$( "body" ).css( "cursor", o._cursor );
+		}
+	}
+} );
+
+$.ui.plugin.add( "draggable", "opacity", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+		if ( t.css( "opacity" ) ) {
+			o._opacity = t.css( "opacity" );
+		}
+		t.css( "opacity", o.opacity );
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+		if ( o._opacity ) {
+			$( ui.helper ).css( "opacity", o._opacity );
+		}
+	}
+} );
+
+$.ui.plugin.add( "draggable", "scroll", {
+	start: function( event, ui, i ) {
+		if ( !i.scrollParentNotHidden ) {
+			i.scrollParentNotHidden = i.helper.scrollParent( false );
+		}
+
+		if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] &&
+				i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) {
+			i.overflowOffset = i.scrollParentNotHidden.offset();
+		}
+	},
+	drag: function( event, ui, i  ) {
+
+		var o = i.options,
+			scrolled = false,
+			scrollParent = i.scrollParentNotHidden[ 0 ],
+			document = i.document[ 0 ];
+
+		if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) {
+			if ( !o.axis || o.axis !== "x" ) {
+				if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY <
+						o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed;
+				} else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) {
+					scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed;
+				}
+			}
+
+			if ( !o.axis || o.axis !== "y" ) {
+				if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX <
+						o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed;
+				} else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) {
+					scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed;
+				}
+			}
+
+		} else {
+
+			if ( !o.axis || o.axis !== "x" ) {
+				if ( event.pageY - $( document ).scrollTop() < o.scrollSensitivity ) {
+					scrolled = $( document ).scrollTop( $( document ).scrollTop() - o.scrollSpeed );
+				} else if ( $( window ).height() - ( event.pageY - $( document ).scrollTop() ) <
+						o.scrollSensitivity ) {
+					scrolled = $( document ).scrollTop( $( document ).scrollTop() + o.scrollSpeed );
+				}
+			}
+
+			if ( !o.axis || o.axis !== "y" ) {
+				if ( event.pageX - $( document ).scrollLeft() < o.scrollSensitivity ) {
+					scrolled = $( document ).scrollLeft(
+						$( document ).scrollLeft() - o.scrollSpeed
+					);
+				} else if ( $( window ).width() - ( event.pageX - $( document ).scrollLeft() ) <
+						o.scrollSensitivity ) {
+					scrolled = $( document ).scrollLeft(
+						$( document ).scrollLeft() + o.scrollSpeed
+					);
+				}
+			}
+
+		}
+
+		if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {
+			$.ui.ddmanager.prepareOffsets( i, event );
+		}
+
+	}
+} );
+
+$.ui.plugin.add( "draggable", "snap", {
+	start: function( event, ui, i ) {
+
+		var o = i.options;
+
+		i.snapElements = [];
+
+		$( o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap )
+			.each( function() {
+				var $t = $( this ),
+					$o = $t.offset();
+				if ( this !== i.element[ 0 ] ) {
+					i.snapElements.push( {
+						item: this,
+						width: $t.outerWidth(), height: $t.outerHeight(),
+						top: $o.top, left: $o.left
+					} );
+				}
+			} );
+
+	},
+	drag: function( event, ui, inst ) {
+
+		var ts, bs, ls, rs, l, r, t, b, i, first,
+			o = inst.options,
+			d = o.snapTolerance,
+			x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
+			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
+
+		for ( i = inst.snapElements.length - 1; i >= 0; i-- ) {
+
+			l = inst.snapElements[ i ].left - inst.margins.left;
+			r = l + inst.snapElements[ i ].width;
+			t = inst.snapElements[ i ].top - inst.margins.top;
+			b = t + inst.snapElements[ i ].height;
+
+			if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d ||
+					!$.contains( inst.snapElements[ i ].item.ownerDocument,
+					inst.snapElements[ i ].item ) ) {
+				if ( inst.snapElements[ i ].snapping ) {
+					( inst.options.snap.release &&
+						inst.options.snap.release.call(
+							inst.element,
+							event,
+							$.extend( inst._uiHash(), { snapItem: inst.snapElements[ i ].item } )
+						) );
+				}
+				inst.snapElements[ i ].snapping = false;
+				continue;
+			}
+
+			if ( o.snapMode !== "inner" ) {
+				ts = Math.abs( t - y2 ) <= d;
+				bs = Math.abs( b - y1 ) <= d;
+				ls = Math.abs( l - x2 ) <= d;
+				rs = Math.abs( r - x1 ) <= d;
+				if ( ts ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: t - inst.helperProportions.height,
+						left: 0
+					} ).top;
+				}
+				if ( bs ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: b,
+						left: 0
+					} ).top;
+				}
+				if ( ls ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: l - inst.helperProportions.width
+					} ).left;
+				}
+				if ( rs ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: r
+					} ).left;
+				}
+			}
+
+			first = ( ts || bs || ls || rs );
+
+			if ( o.snapMode !== "outer" ) {
+				ts = Math.abs( t - y1 ) <= d;
+				bs = Math.abs( b - y2 ) <= d;
+				ls = Math.abs( l - x1 ) <= d;
+				rs = Math.abs( r - x2 ) <= d;
+				if ( ts ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: t,
+						left: 0
+					} ).top;
+				}
+				if ( bs ) {
+					ui.position.top = inst._convertPositionTo( "relative", {
+						top: b - inst.helperProportions.height,
+						left: 0
+					} ).top;
+				}
+				if ( ls ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: l
+					} ).left;
+				}
+				if ( rs ) {
+					ui.position.left = inst._convertPositionTo( "relative", {
+						top: 0,
+						left: r - inst.helperProportions.width
+					} ).left;
+				}
+			}
+
+			if ( !inst.snapElements[ i ].snapping && ( ts || bs || ls || rs || first ) ) {
+				( inst.options.snap.snap &&
+					inst.options.snap.snap.call(
+						inst.element,
+						event,
+						$.extend( inst._uiHash(), {
+							snapItem: inst.snapElements[ i ].item
+						} ) ) );
+			}
+			inst.snapElements[ i ].snapping = ( ts || bs || ls || rs || first );
+
+		}
+
+	}
+} );
+
+$.ui.plugin.add( "draggable", "stack", {
+	start: function( event, ui, instance ) {
+		var min,
+			o = instance.options,
+			group = $.makeArray( $( o.stack ) ).sort( function( a, b ) {
+				return ( parseInt( $( a ).css( "zIndex" ), 10 ) || 0 ) -
+					( parseInt( $( b ).css( "zIndex" ), 10 ) || 0 );
+			} );
+
+		if ( !group.length ) { return; }
+
+		min = parseInt( $( group[ 0 ] ).css( "zIndex" ), 10 ) || 0;
+		$( group ).each( function( i ) {
+			$( this ).css( "zIndex", min + i );
+		} );
+		this.css( "zIndex", ( min + group.length ) );
+	}
+} );
+
+$.ui.plugin.add( "draggable", "zIndex", {
+	start: function( event, ui, instance ) {
+		var t = $( ui.helper ),
+			o = instance.options;
+
+		if ( t.css( "zIndex" ) ) {
+			o._zIndex = t.css( "zIndex" );
+		}
+		t.css( "zIndex", o.zIndex );
+	},
+	stop: function( event, ui, instance ) {
+		var o = instance.options;
+
+		if ( o._zIndex ) {
+			$( ui.helper ).css( "zIndex", o._zIndex );
+		}
+	}
+} );
+
+var widgetsDraggable = $.ui.draggable;
+
+
+/*!
+ * jQuery UI Resizable 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Resizable
+//>>group: Interactions
+//>>description: Enables resize functionality for any element.
+//>>docs: http://api.jqueryui.com/resizable/
+//>>demos: http://jqueryui.com/resizable/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/resizable.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.resizable", $.ui.mouse, {
+	version: "1.12.0",
+	widgetEventPrefix: "resize",
+	options: {
+		alsoResize: false,
+		animate: false,
+		animateDuration: "slow",
+		animateEasing: "swing",
+		aspectRatio: false,
+		autoHide: false,
+		classes: {
+			"ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
+		},
+		containment: false,
+		ghost: false,
+		grid: false,
+		handles: "e,s,se",
+		helper: false,
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 10,
+		minWidth: 10,
+
+		// See #7960
+		zIndex: 90,
+
+		// Callbacks
+		resize: null,
+		start: null,
+		stop: null
+	},
+
+	_num: function( value ) {
+		return parseFloat( value ) || 0;
+	},
+
+	_isNumber: function( value ) {
+		return !isNaN( parseFloat( value ) );
+	},
+
+	_hasScroll: function( el, a ) {
+
+		if ( $( el ).css( "overflow" ) === "hidden" ) {
+			return false;
+		}
+
+		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
+			has = false;
+
+		if ( el[ scroll ] > 0 ) {
+			return true;
+		}
+
+		// TODO: determine which cases actually cause this to happen
+		// if the element doesn't have the scroll set, see if it's possible to
+		// set the scroll
+		el[ scroll ] = 1;
+		has = ( el[ scroll ] > 0 );
+		el[ scroll ] = 0;
+		return has;
+	},
+
+	_create: function() {
+
+		var margins,
+			o = this.options,
+			that = this;
+		this._addClass( "ui-resizable" );
+
+		$.extend( this, {
+			_aspectRatio: !!( o.aspectRatio ),
+			aspectRatio: o.aspectRatio,
+			originalElement: this.element,
+			_proportionallyResizeElements: [],
+			_helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
+		} );
+
+		// Wrap the element if it cannot hold child nodes
+		if ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) {
+
+			this.element.wrap(
+				$( "<div class='ui-wrapper' style='overflow: hidden;'></div>" ).css( {
+					position: this.element.css( "position" ),
+					width: this.element.outerWidth(),
+					height: this.element.outerHeight(),
+					top: this.element.css( "top" ),
+					left: this.element.css( "left" )
+				} )
+			);
+
+			this.element = this.element.parent().data(
+				"ui-resizable", this.element.resizable( "instance" )
+			);
+
+			this.elementIsWrapper = true;
+
+			margins = {
+				marginTop: this.originalElement.css( "marginTop" ),
+				marginRight: this.originalElement.css( "marginRight" ),
+				marginBottom: this.originalElement.css( "marginBottom" ),
+				marginLeft: this.originalElement.css( "marginLeft" )
+			};
+
+			this.element.css( margins );
+			this.originalElement.css( "margin", 0 );
+
+			// support: Safari
+			// Prevent Safari textarea resize
+			this.originalResizeStyle = this.originalElement.css( "resize" );
+			this.originalElement.css( "resize", "none" );
+
+			this._proportionallyResizeElements.push( this.originalElement.css( {
+				position: "static",
+				zoom: 1,
+				display: "block"
+			} ) );
+
+			// Support: IE9
+			// avoid IE jump (hard set the margin)
+			this.originalElement.css( margins );
+
+			this._proportionallyResize();
+		}
+
+		this._setupHandles();
+
+		if ( o.autoHide ) {
+			$( this.element )
+				.on( "mouseenter", function() {
+					if ( o.disabled ) {
+						return;
+					}
+					that._removeClass( "ui-resizable-autohide" );
+					that._handles.show();
+				} )
+				.on( "mouseleave", function() {
+					if ( o.disabled ) {
+						return;
+					}
+					if ( !that.resizing ) {
+						that._addClass( "ui-resizable-autohide" );
+						that._handles.hide();
+					}
+				} );
+		}
+
+		this._mouseInit();
+	},
+
+	_destroy: function() {
+
+		this._mouseDestroy();
+
+		var wrapper,
+			_destroy = function( exp ) {
+				$( exp )
+					.removeData( "resizable" )
+					.removeData( "ui-resizable" )
+					.off( ".resizable" )
+					.find( ".ui-resizable-handle" )
+						.remove();
+			};
+
+		// TODO: Unwrap at same DOM position
+		if ( this.elementIsWrapper ) {
+			_destroy( this.element );
+			wrapper = this.element;
+			this.originalElement.css( {
+				position: wrapper.css( "position" ),
+				width: wrapper.outerWidth(),
+				height: wrapper.outerHeight(),
+				top: wrapper.css( "top" ),
+				left: wrapper.css( "left" )
+			} ).insertAfter( wrapper );
+			wrapper.remove();
+		}
+
+		this.originalElement.css( "resize", this.originalResizeStyle );
+		_destroy( this.originalElement );
+
+		return this;
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+
+		switch ( key ) {
+		case "handles":
+			this._removeHandles();
+			this._setupHandles();
+			break;
+		default:
+			break;
+		}
+	},
+
+	_setupHandles: function() {
+		var o = this.options, handle, i, n, hname, axis, that = this;
+		this.handles = o.handles ||
+			( !$( ".ui-resizable-handle", this.element ).length ?
+				"e,s,se" : {
+					n: ".ui-resizable-n",
+					e: ".ui-resizable-e",
+					s: ".ui-resizable-s",
+					w: ".ui-resizable-w",
+					se: ".ui-resizable-se",
+					sw: ".ui-resizable-sw",
+					ne: ".ui-resizable-ne",
+					nw: ".ui-resizable-nw"
+				} );
+
+		this._handles = $();
+		if ( this.handles.constructor === String ) {
+
+			if ( this.handles === "all" ) {
+				this.handles = "n,e,s,w,se,sw,ne,nw";
+			}
+
+			n = this.handles.split( "," );
+			this.handles = {};
+
+			for ( i = 0; i < n.length; i++ ) {
+
+				handle = $.trim( n[ i ] );
+				hname = "ui-resizable-" + handle;
+				axis = $( "<div>" );
+				this._addClass( axis, "ui-resizable-handle " + hname );
+
+				axis.css( { zIndex: o.zIndex } );
+
+				this.handles[ handle ] = ".ui-resizable-" + handle;
+				this.element.append( axis );
+			}
+
+		}
+
+		this._renderAxis = function( target ) {
+
+			var i, axis, padPos, padWrapper;
+
+			target = target || this.element;
+
+			for ( i in this.handles ) {
+
+				if ( this.handles[ i ].constructor === String ) {
+					this.handles[ i ] = this.element.children( this.handles[ i ] ).first().show();
+				} else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
+					this.handles[ i ] = $( this.handles[ i ] );
+					this._on( this.handles[ i ], { "mousedown": that._mouseDown } );
+				}
+
+				if ( this.elementIsWrapper &&
+						this.originalElement[ 0 ]
+							.nodeName
+							.match( /^(textarea|input|select|button)$/i ) ) {
+					axis = $( this.handles[ i ], this.element );
+
+					padWrapper = /sw|ne|nw|se|n|s/.test( i ) ?
+						axis.outerHeight() :
+						axis.outerWidth();
+
+					padPos = [ "padding",
+						/ne|nw|n/.test( i ) ? "Top" :
+						/se|sw|s/.test( i ) ? "Bottom" :
+						/^e$/.test( i ) ? "Right" : "Left" ].join( "" );
+
+					target.css( padPos, padWrapper );
+
+					this._proportionallyResize();
+				}
+
+				this._handles = this._handles.add( this.handles[ i ] );
+			}
+		};
+
+		// TODO: make renderAxis a prototype function
+		this._renderAxis( this.element );
+
+		this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
+		this._handles.disableSelection();
+
+		this._handles.on( "mouseover", function() {
+			if ( !that.resizing ) {
+				if ( this.className ) {
+					axis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i );
+				}
+				that.axis = axis && axis[ 1 ] ? axis[ 1 ] : "se";
+			}
+		} );
+
+		if ( o.autoHide ) {
+			this._handles.hide();
+			this._addClass( "ui-resizable-autohide" );
+		}
+	},
+
+	_removeHandles: function() {
+		this._handles.remove();
+	},
+
+	_mouseCapture: function( event ) {
+		var i, handle,
+			capture = false;
+
+		for ( i in this.handles ) {
+			handle = $( this.handles[ i ] )[ 0 ];
+			if ( handle === event.target || $.contains( handle, event.target ) ) {
+				capture = true;
+			}
+		}
+
+		return !this.options.disabled && capture;
+	},
+
+	_mouseStart: function( event ) {
+
+		var curleft, curtop, cursor,
+			o = this.options,
+			el = this.element;
+
+		this.resizing = true;
+
+		this._renderProxy();
+
+		curleft = this._num( this.helper.css( "left" ) );
+		curtop = this._num( this.helper.css( "top" ) );
+
+		if ( o.containment ) {
+			curleft += $( o.containment ).scrollLeft() || 0;
+			curtop += $( o.containment ).scrollTop() || 0;
+		}
+
+		this.offset = this.helper.offset();
+		this.position = { left: curleft, top: curtop };
+
+		this.size = this._helper ? {
+				width: this.helper.width(),
+				height: this.helper.height()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.originalSize = this._helper ? {
+				width: el.outerWidth(),
+				height: el.outerHeight()
+			} : {
+				width: el.width(),
+				height: el.height()
+			};
+
+		this.sizeDiff = {
+			width: el.outerWidth() - el.width(),
+			height: el.outerHeight() - el.height()
+		};
+
+		this.originalPosition = { left: curleft, top: curtop };
+		this.originalMousePosition = { left: event.pageX, top: event.pageY };
+
+		this.aspectRatio = ( typeof o.aspectRatio === "number" ) ?
+			o.aspectRatio :
+			( ( this.originalSize.width / this.originalSize.height ) || 1 );
+
+		cursor = $( ".ui-resizable-" + this.axis ).css( "cursor" );
+		$( "body" ).css( "cursor", cursor === "auto" ? this.axis + "-resize" : cursor );
+
+		this._addClass( "ui-resizable-resizing" );
+		this._propagate( "start", event );
+		return true;
+	},
+
+	_mouseDrag: function( event ) {
+
+		var data, props,
+			smp = this.originalMousePosition,
+			a = this.axis,
+			dx = ( event.pageX - smp.left ) || 0,
+			dy = ( event.pageY - smp.top ) || 0,
+			trigger = this._change[ a ];
+
+		this._updatePrevProperties();
+
+		if ( !trigger ) {
+			return false;
+		}
+
+		data = trigger.apply( this, [ event, dx, dy ] );
+
+		this._updateVirtualBoundaries( event.shiftKey );
+		if ( this._aspectRatio || event.shiftKey ) {
+			data = this._updateRatio( data, event );
+		}
+
+		data = this._respectSize( data, event );
+
+		this._updateCache( data );
+
+		this._propagate( "resize", event );
+
+		props = this._applyChanges();
+
+		if ( !this._helper && this._proportionallyResizeElements.length ) {
+			this._proportionallyResize();
+		}
+
+		if ( !$.isEmptyObject( props ) ) {
+			this._updatePrevProperties();
+			this._trigger( "resize", event, this.ui() );
+			this._applyChanges();
+		}
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+
+		this.resizing = false;
+		var pr, ista, soffseth, soffsetw, s, left, top,
+			o = this.options, that = this;
+
+		if ( this._helper ) {
+
+			pr = this._proportionallyResizeElements;
+			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName );
+			soffseth = ista && this._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height;
+			soffsetw = ista ? 0 : that.sizeDiff.width;
+
+			s = {
+				width: ( that.helper.width()  - soffsetw ),
+				height: ( that.helper.height() - soffseth )
+			};
+			left = ( parseFloat( that.element.css( "left" ) ) +
+				( that.position.left - that.originalPosition.left ) ) || null;
+			top = ( parseFloat( that.element.css( "top" ) ) +
+				( that.position.top - that.originalPosition.top ) ) || null;
+
+			if ( !o.animate ) {
+				this.element.css( $.extend( s, { top: top, left: left } ) );
+			}
+
+			that.helper.height( that.size.height );
+			that.helper.width( that.size.width );
+
+			if ( this._helper && !o.animate ) {
+				this._proportionallyResize();
+			}
+		}
+
+		$( "body" ).css( "cursor", "auto" );
+
+		this._removeClass( "ui-resizable-resizing" );
+
+		this._propagate( "stop", event );
+
+		if ( this._helper ) {
+			this.helper.remove();
+		}
+
+		return false;
+
+	},
+
+	_updatePrevProperties: function() {
+		this.prevPosition = {
+			top: this.position.top,
+			left: this.position.left
+		};
+		this.prevSize = {
+			width: this.size.width,
+			height: this.size.height
+		};
+	},
+
+	_applyChanges: function() {
+		var props = {};
+
+		if ( this.position.top !== this.prevPosition.top ) {
+			props.top = this.position.top + "px";
+		}
+		if ( this.position.left !== this.prevPosition.left ) {
+			props.left = this.position.left + "px";
+		}
+		if ( this.size.width !== this.prevSize.width ) {
+			props.width = this.size.width + "px";
+		}
+		if ( this.size.height !== this.prevSize.height ) {
+			props.height = this.size.height + "px";
+		}
+
+		this.helper.css( props );
+
+		return props;
+	},
+
+	_updateVirtualBoundaries: function( forceAspectRatio ) {
+		var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
+			o = this.options;
+
+		b = {
+			minWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0,
+			maxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity,
+			minHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0,
+			maxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity
+		};
+
+		if ( this._aspectRatio || forceAspectRatio ) {
+			pMinWidth = b.minHeight * this.aspectRatio;
+			pMinHeight = b.minWidth / this.aspectRatio;
+			pMaxWidth = b.maxHeight * this.aspectRatio;
+			pMaxHeight = b.maxWidth / this.aspectRatio;
+
+			if ( pMinWidth > b.minWidth ) {
+				b.minWidth = pMinWidth;
+			}
+			if ( pMinHeight > b.minHeight ) {
+				b.minHeight = pMinHeight;
+			}
+			if ( pMaxWidth < b.maxWidth ) {
+				b.maxWidth = pMaxWidth;
+			}
+			if ( pMaxHeight < b.maxHeight ) {
+				b.maxHeight = pMaxHeight;
+			}
+		}
+		this._vBoundaries = b;
+	},
+
+	_updateCache: function( data ) {
+		this.offset = this.helper.offset();
+		if ( this._isNumber( data.left ) ) {
+			this.position.left = data.left;
+		}
+		if ( this._isNumber( data.top ) ) {
+			this.position.top = data.top;
+		}
+		if ( this._isNumber( data.height ) ) {
+			this.size.height = data.height;
+		}
+		if ( this._isNumber( data.width ) ) {
+			this.size.width = data.width;
+		}
+	},
+
+	_updateRatio: function( data ) {
+
+		var cpos = this.position,
+			csize = this.size,
+			a = this.axis;
+
+		if ( this._isNumber( data.height ) ) {
+			data.width = ( data.height * this.aspectRatio );
+		} else if ( this._isNumber( data.width ) ) {
+			data.height = ( data.width / this.aspectRatio );
+		}
+
+		if ( a === "sw" ) {
+			data.left = cpos.left + ( csize.width - data.width );
+			data.top = null;
+		}
+		if ( a === "nw" ) {
+			data.top = cpos.top + ( csize.height - data.height );
+			data.left = cpos.left + ( csize.width - data.width );
+		}
+
+		return data;
+	},
+
+	_respectSize: function( data ) {
+
+		var o = this._vBoundaries,
+			a = this.axis,
+			ismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ),
+			ismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ),
+			isminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ),
+			isminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ),
+			dw = this.originalPosition.left + this.originalSize.width,
+			dh = this.originalPosition.top + this.originalSize.height,
+			cw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a );
+		if ( isminw ) {
+			data.width = o.minWidth;
+		}
+		if ( isminh ) {
+			data.height = o.minHeight;
+		}
+		if ( ismaxw ) {
+			data.width = o.maxWidth;
+		}
+		if ( ismaxh ) {
+			data.height = o.maxHeight;
+		}
+
+		if ( isminw && cw ) {
+			data.left = dw - o.minWidth;
+		}
+		if ( ismaxw && cw ) {
+			data.left = dw - o.maxWidth;
+		}
+		if ( isminh && ch ) {
+			data.top = dh - o.minHeight;
+		}
+		if ( ismaxh && ch ) {
+			data.top = dh - o.maxHeight;
+		}
+
+		// Fixing jump error on top/left - bug #2330
+		if ( !data.width && !data.height && !data.left && data.top ) {
+			data.top = null;
+		} else if ( !data.width && !data.height && !data.top && data.left ) {
+			data.left = null;
+		}
+
+		return data;
+	},
+
+	_getPaddingPlusBorderDimensions: function( element ) {
+		var i = 0,
+			widths = [],
+			borders = [
+				element.css( "borderTopWidth" ),
+				element.css( "borderRightWidth" ),
+				element.css( "borderBottomWidth" ),
+				element.css( "borderLeftWidth" )
+			],
+			paddings = [
+				element.css( "paddingTop" ),
+				element.css( "paddingRight" ),
+				element.css( "paddingBottom" ),
+				element.css( "paddingLeft" )
+			];
+
+		for ( ; i < 4; i++ ) {
+			widths[ i ] = ( parseFloat( borders[ i ] ) || 0 );
+			widths[ i ] += ( parseFloat( paddings[ i ] ) || 0 );
+		}
+
+		return {
+			height: widths[ 0 ] + widths[ 2 ],
+			width: widths[ 1 ] + widths[ 3 ]
+		};
+	},
+
+	_proportionallyResize: function() {
+
+		if ( !this._proportionallyResizeElements.length ) {
+			return;
+		}
+
+		var prel,
+			i = 0,
+			element = this.helper || this.element;
+
+		for ( ; i < this._proportionallyResizeElements.length; i++ ) {
+
+			prel = this._proportionallyResizeElements[ i ];
+
+			// TODO: Seems like a bug to cache this.outerDimensions
+			// considering that we are in a loop.
+			if ( !this.outerDimensions ) {
+				this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
+			}
+
+			prel.css( {
+				height: ( element.height() - this.outerDimensions.height ) || 0,
+				width: ( element.width() - this.outerDimensions.width ) || 0
+			} );
+
+		}
+
+	},
+
+	_renderProxy: function() {
+
+		var el = this.element, o = this.options;
+		this.elementOffset = el.offset();
+
+		if ( this._helper ) {
+
+			this.helper = this.helper || $( "<div style='overflow:hidden;'></div>" );
+
+			this._addClass( this.helper, this._helper );
+			this.helper.css( {
+				width: this.element.outerWidth(),
+				height: this.element.outerHeight(),
+				position: "absolute",
+				left: this.elementOffset.left + "px",
+				top: this.elementOffset.top + "px",
+				zIndex: ++o.zIndex //TODO: Don't modify option
+			} );
+
+			this.helper
+				.appendTo( "body" )
+				.disableSelection();
+
+		} else {
+			this.helper = this.element;
+		}
+
+	},
+
+	_change: {
+		e: function( event, dx ) {
+			return { width: this.originalSize.width + dx };
+		},
+		w: function( event, dx ) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { left: sp.left + dx, width: cs.width - dx };
+		},
+		n: function( event, dx, dy ) {
+			var cs = this.originalSize, sp = this.originalPosition;
+			return { top: sp.top + dy, height: cs.height - dy };
+		},
+		s: function( event, dx, dy ) {
+			return { height: this.originalSize.height + dy };
+		},
+		se: function( event, dx, dy ) {
+			return $.extend( this._change.s.apply( this, arguments ),
+				this._change.e.apply( this, [ event, dx, dy ] ) );
+		},
+		sw: function( event, dx, dy ) {
+			return $.extend( this._change.s.apply( this, arguments ),
+				this._change.w.apply( this, [ event, dx, dy ] ) );
+		},
+		ne: function( event, dx, dy ) {
+			return $.extend( this._change.n.apply( this, arguments ),
+				this._change.e.apply( this, [ event, dx, dy ] ) );
+		},
+		nw: function( event, dx, dy ) {
+			return $.extend( this._change.n.apply( this, arguments ),
+				this._change.w.apply( this, [ event, dx, dy ] ) );
+		}
+	},
+
+	_propagate: function( n, event ) {
+		$.ui.plugin.call( this, n, [ event, this.ui() ] );
+		( n !== "resize" && this._trigger( n, event, this.ui() ) );
+	},
+
+	plugins: {},
+
+	ui: function() {
+		return {
+			originalElement: this.originalElement,
+			element: this.element,
+			helper: this.helper,
+			position: this.position,
+			size: this.size,
+			originalSize: this.originalSize,
+			originalPosition: this.originalPosition
+		};
+	}
+
+} );
+
+/*
+ * Resizable Extensions
+ */
+
+$.ui.plugin.add( "resizable", "animate", {
+
+	stop: function( event ) {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			pr = that._proportionallyResizeElements,
+			ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ),
+			soffseth = ista && that._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height,
+			soffsetw = ista ? 0 : that.sizeDiff.width,
+			style = {
+				width: ( that.size.width - soffsetw ),
+				height: ( that.size.height - soffseth )
+			},
+			left = ( parseFloat( that.element.css( "left" ) ) +
+				( that.position.left - that.originalPosition.left ) ) || null,
+			top = ( parseFloat( that.element.css( "top" ) ) +
+				( that.position.top - that.originalPosition.top ) ) || null;
+
+		that.element.animate(
+			$.extend( style, top && left ? { top: top, left: left } : {} ), {
+				duration: o.animateDuration,
+				easing: o.animateEasing,
+				step: function() {
+
+					var data = {
+						width: parseFloat( that.element.css( "width" ) ),
+						height: parseFloat( that.element.css( "height" ) ),
+						top: parseFloat( that.element.css( "top" ) ),
+						left: parseFloat( that.element.css( "left" ) )
+					};
+
+					if ( pr && pr.length ) {
+						$( pr[ 0 ] ).css( { width: data.width, height: data.height } );
+					}
+
+					// Propagating resize, and updating values for each animation step
+					that._updateCache( data );
+					that._propagate( "resize", event );
+
+				}
+			}
+		);
+	}
+
+} );
+
+$.ui.plugin.add( "resizable", "containment", {
+
+	start: function() {
+		var element, p, co, ch, cw, width, height,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			el = that.element,
+			oc = o.containment,
+			ce = ( oc instanceof $ ) ?
+				oc.get( 0 ) :
+				( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
+
+		if ( !ce ) {
+			return;
+		}
+
+		that.containerElement = $( ce );
+
+		if ( /document/.test( oc ) || oc === document ) {
+			that.containerOffset = {
+				left: 0,
+				top: 0
+			};
+			that.containerPosition = {
+				left: 0,
+				top: 0
+			};
+
+			that.parentData = {
+				element: $( document ),
+				left: 0,
+				top: 0,
+				width: $( document ).width(),
+				height: $( document ).height() || document.body.parentNode.scrollHeight
+			};
+		} else {
+			element = $( ce );
+			p = [];
+			$( [ "Top", "Right", "Left", "Bottom" ] ).each( function( i, name ) {
+				p[ i ] = that._num( element.css( "padding" + name ) );
+			} );
+
+			that.containerOffset = element.offset();
+			that.containerPosition = element.position();
+			that.containerSize = {
+				height: ( element.innerHeight() - p[ 3 ] ),
+				width: ( element.innerWidth() - p[ 1 ] )
+			};
+
+			co = that.containerOffset;
+			ch = that.containerSize.height;
+			cw = that.containerSize.width;
+			width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
+			height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
+
+			that.parentData = {
+				element: ce,
+				left: co.left,
+				top: co.top,
+				width: width,
+				height: height
+			};
+		}
+	},
+
+	resize: function( event ) {
+		var woset, hoset, isParent, isOffsetRelative,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cp = that.position,
+			pRatio = that._aspectRatio || event.shiftKey,
+			cop = {
+				top: 0,
+				left: 0
+			},
+			ce = that.containerElement,
+			continueResize = true;
+
+		if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
+			cop = co;
+		}
+
+		if ( cp.left < ( that._helper ? co.left : 0 ) ) {
+			that.size.width = that.size.width +
+				( that._helper ?
+					( that.position.left - co.left ) :
+					( that.position.left - cop.left ) );
+
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.left = o.helper ? co.left : 0;
+		}
+
+		if ( cp.top < ( that._helper ? co.top : 0 ) ) {
+			that.size.height = that.size.height +
+				( that._helper ?
+					( that.position.top - co.top ) :
+					that.position.top );
+
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+			that.position.top = that._helper ? co.top : 0;
+		}
+
+		isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
+		isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
+
+		if ( isParent && isOffsetRelative ) {
+			that.offset.left = that.parentData.left + that.position.left;
+			that.offset.top = that.parentData.top + that.position.top;
+		} else {
+			that.offset.left = that.element.offset().left;
+			that.offset.top = that.element.offset().top;
+		}
+
+		woset = Math.abs( that.sizeDiff.width +
+			( that._helper ?
+				that.offset.left - cop.left :
+				( that.offset.left - co.left ) ) );
+
+		hoset = Math.abs( that.sizeDiff.height +
+			( that._helper ?
+				that.offset.top - cop.top :
+				( that.offset.top - co.top ) ) );
+
+		if ( woset + that.size.width >= that.parentData.width ) {
+			that.size.width = that.parentData.width - woset;
+			if ( pRatio ) {
+				that.size.height = that.size.width / that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( hoset + that.size.height >= that.parentData.height ) {
+			that.size.height = that.parentData.height - hoset;
+			if ( pRatio ) {
+				that.size.width = that.size.height * that.aspectRatio;
+				continueResize = false;
+			}
+		}
+
+		if ( !continueResize ) {
+			that.position.left = that.prevPosition.left;
+			that.position.top = that.prevPosition.top;
+			that.size.width = that.prevSize.width;
+			that.size.height = that.prevSize.height;
+		}
+	},
+
+	stop: function() {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			co = that.containerOffset,
+			cop = that.containerPosition,
+			ce = that.containerElement,
+			helper = $( that.helper ),
+			ho = helper.offset(),
+			w = helper.outerWidth() - that.sizeDiff.width,
+			h = helper.outerHeight() - that.sizeDiff.height;
+
+		if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css( {
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			} );
+		}
+
+		if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
+			$( this ).css( {
+				left: ho.left - cop.left - co.left,
+				width: w,
+				height: h
+			} );
+		}
+	}
+} );
+
+$.ui.plugin.add( "resizable", "alsoResize", {
+
+	start: function() {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options;
+
+		$( o.alsoResize ).each( function() {
+			var el = $( this );
+			el.data( "ui-resizable-alsoresize", {
+				width: parseFloat( el.width() ), height: parseFloat( el.height() ),
+				left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) )
+			} );
+		} );
+	},
+
+	resize: function( event, ui ) {
+		var that = $( this ).resizable( "instance" ),
+			o = that.options,
+			os = that.originalSize,
+			op = that.originalPosition,
+			delta = {
+				height: ( that.size.height - os.height ) || 0,
+				width: ( that.size.width - os.width ) || 0,
+				top: ( that.position.top - op.top ) || 0,
+				left: ( that.position.left - op.left ) || 0
+			};
+
+			$( o.alsoResize ).each( function() {
+				var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {},
+					css = el.parents( ui.originalElement[ 0 ] ).length ?
+							[ "width", "height" ] :
+							[ "width", "height", "top", "left" ];
+
+				$.each( css, function( i, prop ) {
+					var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 );
+					if ( sum && sum >= 0 ) {
+						style[ prop ] = sum || null;
+					}
+				} );
+
+				el.css( style );
+			} );
+	},
+
+	stop: function() {
+		$( this ).removeData( "ui-resizable-alsoresize" );
+	}
+} );
+
+$.ui.plugin.add( "resizable", "ghost", {
+
+	start: function() {
+
+		var that = $( this ).resizable( "instance" ), cs = that.size;
+
+		that.ghost = that.originalElement.clone();
+		that.ghost.css( {
+			opacity: 0.25,
+			display: "block",
+			position: "relative",
+			height: cs.height,
+			width: cs.width,
+			margin: 0,
+			left: 0,
+			top: 0
+		} );
+
+		that._addClass( that.ghost, "ui-resizable-ghost" );
+
+		// DEPRECATED
+		// TODO: remove after 1.12
+		if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) {
+
+			// Ghost option
+			that.ghost.addClass( this.options.ghost );
+		}
+
+		that.ghost.appendTo( that.helper );
+
+	},
+
+	resize: function() {
+		var that = $( this ).resizable( "instance" );
+		if ( that.ghost ) {
+			that.ghost.css( {
+				position: "relative",
+				height: that.size.height,
+				width: that.size.width
+			} );
+		}
+	},
+
+	stop: function() {
+		var that = $( this ).resizable( "instance" );
+		if ( that.ghost && that.helper ) {
+			that.helper.get( 0 ).removeChild( that.ghost.get( 0 ) );
+		}
+	}
+
+} );
+
+$.ui.plugin.add( "resizable", "grid", {
+
+	resize: function() {
+		var outerDimensions,
+			that = $( this ).resizable( "instance" ),
+			o = that.options,
+			cs = that.size,
+			os = that.originalSize,
+			op = that.originalPosition,
+			a = that.axis,
+			grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
+			gridX = ( grid[ 0 ] || 1 ),
+			gridY = ( grid[ 1 ] || 1 ),
+			ox = Math.round( ( cs.width - os.width ) / gridX ) * gridX,
+			oy = Math.round( ( cs.height - os.height ) / gridY ) * gridY,
+			newWidth = os.width + ox,
+			newHeight = os.height + oy,
+			isMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ),
+			isMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ),
+			isMinWidth = o.minWidth && ( o.minWidth > newWidth ),
+			isMinHeight = o.minHeight && ( o.minHeight > newHeight );
+
+		o.grid = grid;
+
+		if ( isMinWidth ) {
+			newWidth += gridX;
+		}
+		if ( isMinHeight ) {
+			newHeight += gridY;
+		}
+		if ( isMaxWidth ) {
+			newWidth -= gridX;
+		}
+		if ( isMaxHeight ) {
+			newHeight -= gridY;
+		}
+
+		if ( /^(se|s|e)$/.test( a ) ) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+		} else if ( /^(ne)$/.test( a ) ) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.top = op.top - oy;
+		} else if ( /^(sw)$/.test( a ) ) {
+			that.size.width = newWidth;
+			that.size.height = newHeight;
+			that.position.left = op.left - ox;
+		} else {
+			if ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) {
+				outerDimensions = that._getPaddingPlusBorderDimensions( this );
+			}
+
+			if ( newHeight - gridY > 0 ) {
+				that.size.height = newHeight;
+				that.position.top = op.top - oy;
+			} else {
+				newHeight = gridY - outerDimensions.height;
+				that.size.height = newHeight;
+				that.position.top = op.top + os.height - newHeight;
+			}
+			if ( newWidth - gridX > 0 ) {
+				that.size.width = newWidth;
+				that.position.left = op.left - ox;
+			} else {
+				newWidth = gridX - outerDimensions.width;
+				that.size.width = newWidth;
+				that.position.left = op.left + os.width - newWidth;
+			}
+		}
+	}
+
+} );
+
+var widgetsResizable = $.ui.resizable;
+
+
+/*!
+ * jQuery UI Dialog 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Dialog
+//>>group: Widgets
+//>>description: Displays customizable dialog windows.
+//>>docs: http://api.jqueryui.com/dialog/
+//>>demos: http://jqueryui.com/dialog/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/dialog.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.dialog", {
+	version: "1.12.0",
+	options: {
+		appendTo: "body",
+		autoOpen: true,
+		buttons: [],
+		classes: {
+			"ui-dialog": "ui-corner-all",
+			"ui-dialog-titlebar": "ui-corner-all"
+		},
+		closeOnEscape: true,
+		closeText: "Close",
+		draggable: true,
+		hide: null,
+		height: "auto",
+		maxHeight: null,
+		maxWidth: null,
+		minHeight: 150,
+		minWidth: 150,
+		modal: false,
+		position: {
+			my: "center",
+			at: "center",
+			of: window,
+			collision: "fit",
+
+			// Ensure the titlebar is always visible
+			using: function( pos ) {
+				var topOffset = $( this ).css( pos ).offset().top;
+				if ( topOffset < 0 ) {
+					$( this ).css( "top", pos.top - topOffset );
+				}
+			}
+		},
+		resizable: true,
+		show: null,
+		title: null,
+		width: 300,
+
+		// Callbacks
+		beforeClose: null,
+		close: null,
+		drag: null,
+		dragStart: null,
+		dragStop: null,
+		focus: null,
+		open: null,
+		resize: null,
+		resizeStart: null,
+		resizeStop: null
+	},
+
+	sizeRelatedOptions: {
+		buttons: true,
+		height: true,
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true,
+		width: true
+	},
+
+	resizableRelatedOptions: {
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true
+	},
+
+	_create: function() {
+		this.originalCss = {
+			display: this.element[ 0 ].style.display,
+			width: this.element[ 0 ].style.width,
+			minHeight: this.element[ 0 ].style.minHeight,
+			maxHeight: this.element[ 0 ].style.maxHeight,
+			height: this.element[ 0 ].style.height
+		};
+		this.originalPosition = {
+			parent: this.element.parent(),
+			index: this.element.parent().children().index( this.element )
+		};
+		this.originalTitle = this.element.attr( "title" );
+		if ( this.options.title == null && this.originalTitle != null ) {
+			this.options.title = this.originalTitle;
+		}
+
+		// Dialogs can't be disabled
+		if ( this.options.disabled ) {
+			this.options.disabled = false;
+		}
+
+		this._createWrapper();
+
+		this.element
+			.show()
+			.removeAttr( "title" )
+			.appendTo( this.uiDialog );
+
+		this._addClass( "ui-dialog-content", "ui-widget-content" );
+
+		this._createTitlebar();
+		this._createButtonPane();
+
+		if ( this.options.draggable && $.fn.draggable ) {
+			this._makeDraggable();
+		}
+		if ( this.options.resizable && $.fn.resizable ) {
+			this._makeResizable();
+		}
+
+		this._isOpen = false;
+
+		this._trackFocus();
+	},
+
+	_init: function() {
+		if ( this.options.autoOpen ) {
+			this.open();
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+		if ( element && ( element.jquery || element.nodeType ) ) {
+			return $( element );
+		}
+		return this.document.find( element || "body" ).eq( 0 );
+	},
+
+	_destroy: function() {
+		var next,
+			originalPosition = this.originalPosition;
+
+		this._untrackInstance();
+		this._destroyOverlay();
+
+		this.element
+			.removeUniqueId()
+			.css( this.originalCss )
+
+			// Without detaching first, the following becomes really slow
+			.detach();
+
+		this.uiDialog.remove();
+
+		if ( this.originalTitle ) {
+			this.element.attr( "title", this.originalTitle );
+		}
+
+		next = originalPosition.parent.children().eq( originalPosition.index );
+
+		// Don't try to place the dialog next to itself (#8613)
+		if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
+			next.before( this.element );
+		} else {
+			originalPosition.parent.append( this.element );
+		}
+	},
+
+	widget: function() {
+		return this.uiDialog;
+	},
+
+	disable: $.noop,
+	enable: $.noop,
+
+	close: function( event ) {
+		var that = this;
+
+		if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
+			return;
+		}
+
+		this._isOpen = false;
+		this._focusedElement = null;
+		this._destroyOverlay();
+		this._untrackInstance();
+
+		if ( !this.opener.filter( ":focusable" ).trigger( "focus" ).length ) {
+
+			// Hiding a focused element doesn't trigger blur in WebKit
+			// so in case we have nothing to focus on, explicitly blur the active element
+			// https://bugs.webkit.org/show_bug.cgi?id=47182
+			$.ui.safeBlur( $.ui.safeActiveElement( this.document[ 0 ] ) );
+		}
+
+		this._hide( this.uiDialog, this.options.hide, function() {
+			that._trigger( "close", event );
+		} );
+	},
+
+	isOpen: function() {
+		return this._isOpen;
+	},
+
+	moveToTop: function() {
+		this._moveToTop();
+	},
+
+	_moveToTop: function( event, silent ) {
+		var moved = false,
+			zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map( function() {
+				return +$( this ).css( "z-index" );
+			} ).get(),
+			zIndexMax = Math.max.apply( null, zIndices );
+
+		if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
+			this.uiDialog.css( "z-index", zIndexMax + 1 );
+			moved = true;
+		}
+
+		if ( moved && !silent ) {
+			this._trigger( "focus", event );
+		}
+		return moved;
+	},
+
+	open: function() {
+		var that = this;
+		if ( this._isOpen ) {
+			if ( this._moveToTop() ) {
+				this._focusTabbable();
+			}
+			return;
+		}
+
+		this._isOpen = true;
+		this.opener = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
+
+		this._size();
+		this._position();
+		this._createOverlay();
+		this._moveToTop( null, true );
+
+		// Ensure the overlay is moved to the top with the dialog, but only when
+		// opening. The overlay shouldn't move after the dialog is open so that
+		// modeless dialogs opened after the modal dialog stack properly.
+		if ( this.overlay ) {
+			this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
+		}
+
+		this._show( this.uiDialog, this.options.show, function() {
+			that._focusTabbable();
+			that._trigger( "focus" );
+		} );
+
+		// Track the dialog immediately upon openening in case a focus event
+		// somehow occurs outside of the dialog before an element inside the
+		// dialog is focused (#10152)
+		this._makeFocusTarget();
+
+		this._trigger( "open" );
+	},
+
+	_focusTabbable: function() {
+
+		// Set focus to the first match:
+		// 1. An element that was focused previously
+		// 2. First element inside the dialog matching [autofocus]
+		// 3. Tabbable element inside the content element
+		// 4. Tabbable element inside the buttonpane
+		// 5. The close button
+		// 6. The dialog itself
+		var hasFocus = this._focusedElement;
+		if ( !hasFocus ) {
+			hasFocus = this.element.find( "[autofocus]" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.element.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
+		}
+		if ( !hasFocus.length ) {
+			hasFocus = this.uiDialog;
+		}
+		hasFocus.eq( 0 ).trigger( "focus" );
+	},
+
+	_keepFocus: function( event ) {
+		function checkFocus() {
+			var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
+				isActive = this.uiDialog[ 0 ] === activeElement ||
+					$.contains( this.uiDialog[ 0 ], activeElement );
+			if ( !isActive ) {
+				this._focusTabbable();
+			}
+		}
+		event.preventDefault();
+		checkFocus.call( this );
+
+		// support: IE
+		// IE <= 8 doesn't prevent moving focus even with event.preventDefault()
+		// so we check again later
+		this._delay( checkFocus );
+	},
+
+	_createWrapper: function() {
+		this.uiDialog = $( "<div>" )
+			.hide()
+			.attr( {
+
+				// Setting tabIndex makes the div focusable
+				tabIndex: -1,
+				role: "dialog"
+			} )
+			.appendTo( this._appendTo() );
+
+		this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
+		this._on( this.uiDialog, {
+			keydown: function( event ) {
+				if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
+						event.keyCode === $.ui.keyCode.ESCAPE ) {
+					event.preventDefault();
+					this.close( event );
+					return;
+				}
+
+				// Prevent tabbing out of dialogs
+				if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
+					return;
+				}
+				var tabbables = this.uiDialog.find( ":tabbable" ),
+					first = tabbables.filter( ":first" ),
+					last = tabbables.filter( ":last" );
+
+				if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&
+						!event.shiftKey ) {
+					this._delay( function() {
+						first.trigger( "focus" );
+					} );
+					event.preventDefault();
+				} else if ( ( event.target === first[ 0 ] ||
+						event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {
+					this._delay( function() {
+						last.trigger( "focus" );
+					} );
+					event.preventDefault();
+				}
+			},
+			mousedown: function( event ) {
+				if ( this._moveToTop( event ) ) {
+					this._focusTabbable();
+				}
+			}
+		} );
+
+		// We assume that any existing aria-describedby attribute means
+		// that the dialog content is marked up properly
+		// otherwise we brute force the content as the description
+		if ( !this.element.find( "[aria-describedby]" ).length ) {
+			this.uiDialog.attr( {
+				"aria-describedby": this.element.uniqueId().attr( "id" )
+			} );
+		}
+	},
+
+	_createTitlebar: function() {
+		var uiDialogTitle;
+
+		this.uiDialogTitlebar = $( "<div>" );
+		this._addClass( this.uiDialogTitlebar,
+			"ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
+		this._on( this.uiDialogTitlebar, {
+			mousedown: function( event ) {
+
+				// Don't prevent click on close button (#8838)
+				// Focusing a dialog that is partially scrolled out of view
+				// causes the browser to scroll it into view, preventing the click event
+				if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
+
+					// Dialog isn't getting focus when dragging (#8063)
+					this.uiDialog.trigger( "focus" );
+				}
+			}
+		} );
+
+		// Support: IE
+		// Use type="button" to prevent enter keypresses in textboxes from closing the
+		// dialog in IE (#9312)
+		this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
+			.button( {
+				label: $( "<a>" ).text( this.options.closeText ).html(),
+				icon: "ui-icon-closethick",
+				showLabel: false
+			} )
+			.appendTo( this.uiDialogTitlebar );
+
+		this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
+		this._on( this.uiDialogTitlebarClose, {
+			click: function( event ) {
+				event.preventDefault();
+				this.close( event );
+			}
+		} );
+
+		uiDialogTitle = $( "<span>" ).uniqueId().prependTo( this.uiDialogTitlebar );
+		this._addClass( uiDialogTitle, "ui-dialog-title" );
+		this._title( uiDialogTitle );
+
+		this.uiDialogTitlebar.prependTo( this.uiDialog );
+
+		this.uiDialog.attr( {
+			"aria-labelledby": uiDialogTitle.attr( "id" )
+		} );
+	},
+
+	_title: function( title ) {
+		if ( this.options.title ) {
+			title.text( this.options.title );
+		} else {
+			title.html( "&#160;" );
+		}
+	},
+
+	_createButtonPane: function() {
+		this.uiDialogButtonPane = $( "<div>" );
+		this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
+			"ui-widget-content ui-helper-clearfix" );
+
+		this.uiButtonSet = $( "<div>" )
+			.appendTo( this.uiDialogButtonPane );
+		this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
+
+		this._createButtons();
+	},
+
+	_createButtons: function() {
+		var that = this,
+			buttons = this.options.buttons;
+
+		// If we already have a button pane, remove it
+		this.uiDialogButtonPane.remove();
+		this.uiButtonSet.empty();
+
+		if ( $.isEmptyObject( buttons ) || ( $.isArray( buttons ) && !buttons.length ) ) {
+			this._removeClass( this.uiDialog, "ui-dialog-buttons" );
+			return;
+		}
+
+		$.each( buttons, function( name, props ) {
+			var click, buttonOptions;
+			props = $.isFunction( props ) ?
+				{ click: props, text: name } :
+				props;
+
+			// Default to a non-submitting button
+			props = $.extend( { type: "button" }, props );
+
+			// Change the context for the click callback to be the main element
+			click = props.click;
+			buttonOptions = {
+				icon: props.icon,
+				iconPosition: props.iconPosition,
+				showLabel: props.showLabel
+			};
+
+			delete props.click;
+			delete props.icon;
+			delete props.iconPosition;
+			delete props.showLabel;
+
+			$( "<button></button>", props )
+				.button( buttonOptions )
+				.appendTo( that.uiButtonSet )
+				.on( "click", function() {
+					click.apply( that.element[ 0 ], arguments );
+				} );
+		} );
+		this._addClass( this.uiDialog, "ui-dialog-buttons" );
+		this.uiDialogButtonPane.appendTo( this.uiDialog );
+	},
+
+	_makeDraggable: function() {
+		var that = this,
+			options = this.options;
+
+		function filteredUi( ui ) {
+			return {
+				position: ui.position,
+				offset: ui.offset
+			};
+		}
+
+		this.uiDialog.draggable( {
+			cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
+			handle: ".ui-dialog-titlebar",
+			containment: "document",
+			start: function( event, ui ) {
+				that._addClass( $( this ), "ui-dialog-dragging" );
+				that._blockFrames();
+				that._trigger( "dragStart", event, filteredUi( ui ) );
+			},
+			drag: function( event, ui ) {
+				that._trigger( "drag", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var left = ui.offset.left - that.document.scrollLeft(),
+					top = ui.offset.top - that.document.scrollTop();
+
+				options.position = {
+					my: "left top",
+					at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
+						"top" + ( top >= 0 ? "+" : "" ) + top,
+					of: that.window
+				};
+				that._removeClass( $( this ), "ui-dialog-dragging" );
+				that._unblockFrames();
+				that._trigger( "dragStop", event, filteredUi( ui ) );
+			}
+		} );
+	},
+
+	_makeResizable: function() {
+		var that = this,
+			options = this.options,
+			handles = options.resizable,
+
+			// .ui-resizable has position: relative defined in the stylesheet
+			// but dialogs have to use absolute or fixed positioning
+			position = this.uiDialog.css( "position" ),
+			resizeHandles = typeof handles === "string" ?
+				handles :
+				"n,e,s,w,se,sw,ne,nw";
+
+		function filteredUi( ui ) {
+			return {
+				originalPosition: ui.originalPosition,
+				originalSize: ui.originalSize,
+				position: ui.position,
+				size: ui.size
+			};
+		}
+
+		this.uiDialog.resizable( {
+			cancel: ".ui-dialog-content",
+			containment: "document",
+			alsoResize: this.element,
+			maxWidth: options.maxWidth,
+			maxHeight: options.maxHeight,
+			minWidth: options.minWidth,
+			minHeight: this._minHeight(),
+			handles: resizeHandles,
+			start: function( event, ui ) {
+				that._addClass( $( this ), "ui-dialog-resizing" );
+				that._blockFrames();
+				that._trigger( "resizeStart", event, filteredUi( ui ) );
+			},
+			resize: function( event, ui ) {
+				that._trigger( "resize", event, filteredUi( ui ) );
+			},
+			stop: function( event, ui ) {
+				var offset = that.uiDialog.offset(),
+					left = offset.left - that.document.scrollLeft(),
+					top = offset.top - that.document.scrollTop();
+
+				options.height = that.uiDialog.height();
+				options.width = that.uiDialog.width();
+				options.position = {
+					my: "left top",
+					at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
+						"top" + ( top >= 0 ? "+" : "" ) + top,
+					of: that.window
+				};
+				that._removeClass( $( this ), "ui-dialog-resizing" );
+				that._unblockFrames();
+				that._trigger( "resizeStop", event, filteredUi( ui ) );
+			}
+		} )
+			.css( "position", position );
+	},
+
+	_trackFocus: function() {
+		this._on( this.widget(), {
+			focusin: function( event ) {
+				this._makeFocusTarget();
+				this._focusedElement = $( event.target );
+			}
+		} );
+	},
+
+	_makeFocusTarget: function() {
+		this._untrackInstance();
+		this._trackingInstances().unshift( this );
+	},
+
+	_untrackInstance: function() {
+		var instances = this._trackingInstances(),
+			exists = $.inArray( this, instances );
+		if ( exists !== -1 ) {
+			instances.splice( exists, 1 );
+		}
+	},
+
+	_trackingInstances: function() {
+		var instances = this.document.data( "ui-dialog-instances" );
+		if ( !instances ) {
+			instances = [];
+			this.document.data( "ui-dialog-instances", instances );
+		}
+		return instances;
+	},
+
+	_minHeight: function() {
+		var options = this.options;
+
+		return options.height === "auto" ?
+			options.minHeight :
+			Math.min( options.minHeight, options.height );
+	},
+
+	_position: function() {
+
+		// Need to show the dialog to get the actual offset in the position plugin
+		var isVisible = this.uiDialog.is( ":visible" );
+		if ( !isVisible ) {
+			this.uiDialog.show();
+		}
+		this.uiDialog.position( this.options.position );
+		if ( !isVisible ) {
+			this.uiDialog.hide();
+		}
+	},
+
+	_setOptions: function( options ) {
+		var that = this,
+			resize = false,
+			resizableOptions = {};
+
+		$.each( options, function( key, value ) {
+			that._setOption( key, value );
+
+			if ( key in that.sizeRelatedOptions ) {
+				resize = true;
+			}
+			if ( key in that.resizableRelatedOptions ) {
+				resizableOptions[ key ] = value;
+			}
+		} );
+
+		if ( resize ) {
+			this._size();
+			this._position();
+		}
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", resizableOptions );
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var isDraggable, isResizable,
+			uiDialog = this.uiDialog;
+
+		if ( key === "disabled" ) {
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.uiDialog.appendTo( this._appendTo() );
+		}
+
+		if ( key === "buttons" ) {
+			this._createButtons();
+		}
+
+		if ( key === "closeText" ) {
+			this.uiDialogTitlebarClose.button( {
+
+				// Ensure that we always pass a string
+				label: $( "<a>" ).text( "" + this.options.closeText ).html()
+			} );
+		}
+
+		if ( key === "draggable" ) {
+			isDraggable = uiDialog.is( ":data(ui-draggable)" );
+			if ( isDraggable && !value ) {
+				uiDialog.draggable( "destroy" );
+			}
+
+			if ( !isDraggable && value ) {
+				this._makeDraggable();
+			}
+		}
+
+		if ( key === "position" ) {
+			this._position();
+		}
+
+		if ( key === "resizable" ) {
+
+			// currently resizable, becoming non-resizable
+			isResizable = uiDialog.is( ":data(ui-resizable)" );
+			if ( isResizable && !value ) {
+				uiDialog.resizable( "destroy" );
+			}
+
+			// Currently resizable, changing handles
+			if ( isResizable && typeof value === "string" ) {
+				uiDialog.resizable( "option", "handles", value );
+			}
+
+			// Currently non-resizable, becoming resizable
+			if ( !isResizable && value !== false ) {
+				this._makeResizable();
+			}
+		}
+
+		if ( key === "title" ) {
+			this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
+		}
+	},
+
+	_size: function() {
+
+		// If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
+		// divs will both have width and height set, so we need to reset them
+		var nonContentHeight, minContentHeight, maxContentHeight,
+			options = this.options;
+
+		// Reset content sizing
+		this.element.show().css( {
+			width: "auto",
+			minHeight: 0,
+			maxHeight: "none",
+			height: 0
+		} );
+
+		if ( options.minWidth > options.width ) {
+			options.width = options.minWidth;
+		}
+
+		// Reset wrapper sizing
+		// determine the height of all the non-content elements
+		nonContentHeight = this.uiDialog.css( {
+			height: "auto",
+			width: options.width
+		} )
+			.outerHeight();
+		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
+		maxContentHeight = typeof options.maxHeight === "number" ?
+			Math.max( 0, options.maxHeight - nonContentHeight ) :
+			"none";
+
+		if ( options.height === "auto" ) {
+			this.element.css( {
+				minHeight: minContentHeight,
+				maxHeight: maxContentHeight,
+				height: "auto"
+			} );
+		} else {
+			this.element.height( Math.max( 0, options.height - nonContentHeight ) );
+		}
+
+		if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
+			this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
+		}
+	},
+
+	_blockFrames: function() {
+		this.iframeBlocks = this.document.find( "iframe" ).map( function() {
+			var iframe = $( this );
+
+			return $( "<div>" )
+				.css( {
+					position: "absolute",
+					width: iframe.outerWidth(),
+					height: iframe.outerHeight()
+				} )
+				.appendTo( iframe.parent() )
+				.offset( iframe.offset() )[ 0 ];
+		} );
+	},
+
+	_unblockFrames: function() {
+		if ( this.iframeBlocks ) {
+			this.iframeBlocks.remove();
+			delete this.iframeBlocks;
+		}
+	},
+
+	_allowInteraction: function( event ) {
+		if ( $( event.target ).closest( ".ui-dialog" ).length ) {
+			return true;
+		}
+
+		// TODO: Remove hack when datepicker implements
+		// the .ui-front logic (#8989)
+		return !!$( event.target ).closest( ".ui-datepicker" ).length;
+	},
+
+	_createOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		// We use a delay in case the overlay is created from an
+		// event that we're going to be cancelling (#2804)
+		var isOpening = true;
+		this._delay( function() {
+			isOpening = false;
+		} );
+
+		if ( !this.document.data( "ui-dialog-overlays" ) ) {
+
+			// Prevent use of anchors and inputs
+			// Using _on() for an event handler shared across many instances is
+			// safe because the dialogs stack and must be closed in reverse order
+			this._on( this.document, {
+				focusin: function( event ) {
+					if ( isOpening ) {
+						return;
+					}
+
+					if ( !this._allowInteraction( event ) ) {
+						event.preventDefault();
+						this._trackingInstances()[ 0 ]._focusTabbable();
+					}
+				}
+			} );
+		}
+
+		this.overlay = $( "<div>" )
+			.appendTo( this._appendTo() );
+
+		this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
+		this._on( this.overlay, {
+			mousedown: "_keepFocus"
+		} );
+		this.document.data( "ui-dialog-overlays",
+			( this.document.data( "ui-dialog-overlays" ) || 0 ) + 1 );
+	},
+
+	_destroyOverlay: function() {
+		if ( !this.options.modal ) {
+			return;
+		}
+
+		if ( this.overlay ) {
+			var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
+
+			if ( !overlays ) {
+				this._off( this.document, "focusin" );
+				this.document.removeData( "ui-dialog-overlays" );
+			} else {
+				this.document.data( "ui-dialog-overlays", overlays );
+			}
+
+			this.overlay.remove();
+			this.overlay = null;
+		}
+	}
+} );
+
+// DEPRECATED
+// TODO: switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for dialogClass option
+	$.widget( "ui.dialog", $.ui.dialog, {
+		options: {
+			dialogClass: ""
+		},
+		_createWrapper: function() {
+			this._super();
+			this.uiDialog.addClass( this.options.dialogClass );
+		},
+		_setOption: function( key, value ) {
+			if ( key === "dialogClass" ) {
+				this.uiDialog
+					.removeClass( this.options.dialogClass )
+					.addClass( value );
+			}
+			this._superApply( arguments );
+		}
+	} );
+}
+
+var widgetsDialog = $.ui.dialog;
+
+
+/*!
+ * jQuery UI Droppable 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Droppable
+//>>group: Interactions
+//>>description: Enables drop targets for draggable elements.
+//>>docs: http://api.jqueryui.com/droppable/
+//>>demos: http://jqueryui.com/droppable/
+
+
+
+$.widget( "ui.droppable", {
+	version: "1.12.0",
+	widgetEventPrefix: "drop",
+	options: {
+		accept: "*",
+		addClasses: true,
+		greedy: false,
+		scope: "default",
+		tolerance: "intersect",
+
+		// Callbacks
+		activate: null,
+		deactivate: null,
+		drop: null,
+		out: null,
+		over: null
+	},
+	_create: function() {
+
+		var proportions,
+			o = this.options,
+			accept = o.accept;
+
+		this.isover = false;
+		this.isout = true;
+
+		this.accept = $.isFunction( accept ) ? accept : function( d ) {
+			return d.is( accept );
+		};
+
+		this.proportions = function( /* valueToWrite */ ) {
+			if ( arguments.length ) {
+
+				// Store the droppable's proportions
+				proportions = arguments[ 0 ];
+			} else {
+
+				// Retrieve or derive the droppable's proportions
+				return proportions ?
+					proportions :
+					proportions = {
+						width: this.element[ 0 ].offsetWidth,
+						height: this.element[ 0 ].offsetHeight
+					};
+			}
+		};
+
+		this._addToManager( o.scope );
+
+		o.addClasses && this._addClass( "ui-droppable" );
+
+	},
+
+	_addToManager: function( scope ) {
+
+		// Add the reference and positions to the manager
+		$.ui.ddmanager.droppables[ scope ] = $.ui.ddmanager.droppables[ scope ] || [];
+		$.ui.ddmanager.droppables[ scope ].push( this );
+	},
+
+	_splice: function( drop ) {
+		var i = 0;
+		for ( ; i < drop.length; i++ ) {
+			if ( drop[ i ] === this ) {
+				drop.splice( i, 1 );
+			}
+		}
+	},
+
+	_destroy: function() {
+		var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+		this._splice( drop );
+	},
+
+	_setOption: function( key, value ) {
+
+		if ( key === "accept" ) {
+			this.accept = $.isFunction( value ) ? value : function( d ) {
+				return d.is( value );
+			};
+		} else if ( key === "scope" ) {
+			var drop = $.ui.ddmanager.droppables[ this.options.scope ];
+
+			this._splice( drop );
+			this._addToManager( value );
+		}
+
+		this._super( key, value );
+	},
+
+	_activate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+
+		this._addActiveClass();
+		if ( draggable ) {
+			this._trigger( "activate", event, this.ui( draggable ) );
+		}
+	},
+
+	_deactivate: function( event ) {
+		var draggable = $.ui.ddmanager.current;
+
+		this._removeActiveClass();
+		if ( draggable ) {
+			this._trigger( "deactivate", event, this.ui( draggable ) );
+		}
+	},
+
+	_over: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem ||
+				draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||
+				draggable.element ) ) ) {
+			this._addHoverClass();
+			this._trigger( "over", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_out: function( event ) {
+
+		var draggable = $.ui.ddmanager.current;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem ||
+				draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return;
+		}
+
+		if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem ||
+				draggable.element ) ) ) {
+			this._removeHoverClass();
+			this._trigger( "out", event, this.ui( draggable ) );
+		}
+
+	},
+
+	_drop: function( event, custom ) {
+
+		var draggable = custom || $.ui.ddmanager.current,
+			childrenIntersection = false;
+
+		// Bail if draggable and droppable are same element
+		if ( !draggable || ( draggable.currentItem ||
+				draggable.element )[ 0 ] === this.element[ 0 ] ) {
+			return false;
+		}
+
+		this.element
+			.find( ":data(ui-droppable)" )
+			.not( ".ui-draggable-dragging" )
+			.each( function() {
+				var inst = $( this ).droppable( "instance" );
+				if (
+					inst.options.greedy &&
+					!inst.options.disabled &&
+					inst.options.scope === draggable.options.scope &&
+					inst.accept.call(
+						inst.element[ 0 ], ( draggable.currentItem || draggable.element )
+					) &&
+					intersect(
+						draggable,
+						$.extend( inst, { offset: inst.element.offset() } ),
+						inst.options.tolerance, event
+					)
+				) {
+					childrenIntersection = true;
+					return false; }
+			} );
+		if ( childrenIntersection ) {
+			return false;
+		}
+
+		if ( this.accept.call( this.element[ 0 ],
+				( draggable.currentItem || draggable.element ) ) ) {
+			this._removeActiveClass();
+			this._removeHoverClass();
+
+			this._trigger( "drop", event, this.ui( draggable ) );
+			return this.element;
+		}
+
+		return false;
+
+	},
+
+	ui: function( c ) {
+		return {
+			draggable: ( c.currentItem || c.element ),
+			helper: c.helper,
+			position: c.position,
+			offset: c.positionAbs
+		};
+	},
+
+	// Extension points just to make backcompat sane and avoid duplicating logic
+	// TODO: Remove in 1.13 along with call to it below
+	_addHoverClass: function() {
+		this._addClass( "ui-droppable-hover" );
+	},
+
+	_removeHoverClass: function() {
+		this._removeClass( "ui-droppable-hover" );
+	},
+
+	_addActiveClass: function() {
+		this._addClass( "ui-droppable-active" );
+	},
+
+	_removeActiveClass: function() {
+		this._removeClass( "ui-droppable-active" );
+	}
+} );
+
+var intersect = $.ui.intersect = ( function() {
+	function isOverAxis( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	}
+
+	return function( draggable, droppable, toleranceMode, event ) {
+
+		if ( !droppable.offset ) {
+			return false;
+		}
+
+		var x1 = ( draggable.positionAbs ||
+				draggable.position.absolute ).left + draggable.margins.left,
+			y1 = ( draggable.positionAbs ||
+				draggable.position.absolute ).top + draggable.margins.top,
+			x2 = x1 + draggable.helperProportions.width,
+			y2 = y1 + draggable.helperProportions.height,
+			l = droppable.offset.left,
+			t = droppable.offset.top,
+			r = l + droppable.proportions().width,
+			b = t + droppable.proportions().height;
+
+		switch ( toleranceMode ) {
+		case "fit":
+			return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b );
+		case "intersect":
+			return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half
+				x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half
+				t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half
+				y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half
+		case "pointer":
+			return isOverAxis( event.pageY, t, droppable.proportions().height ) &&
+				isOverAxis( event.pageX, l, droppable.proportions().width );
+		case "touch":
+			return (
+				( y1 >= t && y1 <= b ) || // Top edge touching
+				( y2 >= t && y2 <= b ) || // Bottom edge touching
+				( y1 < t && y2 > b ) // Surrounded vertically
+			) && (
+				( x1 >= l && x1 <= r ) || // Left edge touching
+				( x2 >= l && x2 <= r ) || // Right edge touching
+				( x1 < l && x2 > r ) // Surrounded horizontally
+			);
+		default:
+			return false;
+		}
+	};
+} )();
+
+/*
+	This manager tracks offsets of draggables and droppables
+*/
+$.ui.ddmanager = {
+	current: null,
+	droppables: { "default": [] },
+	prepareOffsets: function( t, event ) {
+
+		var i, j,
+			m = $.ui.ddmanager.droppables[ t.options.scope ] || [],
+			type = event ? event.type : null, // workaround for #2317
+			list = ( t.currentItem || t.element ).find( ":data(ui-droppable)" ).addBack();
+
+		droppablesLoop: for ( i = 0; i < m.length; i++ ) {
+
+			// No disabled and non-accepted
+			if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ],
+					( t.currentItem || t.element ) ) ) ) {
+				continue;
+			}
+
+			// Filter out elements in the current dragged item
+			for ( j = 0; j < list.length; j++ ) {
+				if ( list[ j ] === m[ i ].element[ 0 ] ) {
+					m[ i ].proportions().height = 0;
+					continue droppablesLoop;
+				}
+			}
+
+			m[ i ].visible = m[ i ].element.css( "display" ) !== "none";
+			if ( !m[ i ].visible ) {
+				continue;
+			}
+
+			// Activate the droppable if used directly from draggables
+			if ( type === "mousedown" ) {
+				m[ i ]._activate.call( m[ i ], event );
+			}
+
+			m[ i ].offset = m[ i ].element.offset();
+			m[ i ].proportions( {
+				width: m[ i ].element[ 0 ].offsetWidth,
+				height: m[ i ].element[ 0 ].offsetHeight
+			} );
+
+		}
+
+	},
+	drop: function( draggable, event ) {
+
+		var dropped = false;
+
+		// Create a copy of the droppables in case the list changes during the drop (#9116)
+		$.each( ( $.ui.ddmanager.droppables[ draggable.options.scope ] || [] ).slice(), function() {
+
+			if ( !this.options ) {
+				return;
+			}
+			if ( !this.options.disabled && this.visible &&
+					intersect( draggable, this, this.options.tolerance, event ) ) {
+				dropped = this._drop.call( this, event ) || dropped;
+			}
+
+			if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ],
+					( draggable.currentItem || draggable.element ) ) ) {
+				this.isout = true;
+				this.isover = false;
+				this._deactivate.call( this, event );
+			}
+
+		} );
+		return dropped;
+
+	},
+	dragStart: function( draggable, event ) {
+
+		// Listen for scrolling so that if the dragging causes scrolling the position of the
+		// droppables can be recalculated (see #5003)
+		draggable.element.parentsUntil( "body" ).on( "scroll.droppable", function() {
+			if ( !draggable.options.refreshPositions ) {
+				$.ui.ddmanager.prepareOffsets( draggable, event );
+			}
+		} );
+	},
+	drag: function( draggable, event ) {
+
+		// If you have a highly dynamic page, you might try this option. It renders positions
+		// every time you move the mouse.
+		if ( draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+
+		// Run through all droppables and check their positions based on specific tolerance options
+		$.each( $.ui.ddmanager.droppables[ draggable.options.scope ] || [], function() {
+
+			if ( this.options.disabled || this.greedyChild || !this.visible ) {
+				return;
+			}
+
+			var parentInstance, scope, parent,
+				intersects = intersect( draggable, this, this.options.tolerance, event ),
+				c = !intersects && this.isover ?
+					"isout" :
+					( intersects && !this.isover ? "isover" : null );
+			if ( !c ) {
+				return;
+			}
+
+			if ( this.options.greedy ) {
+
+				// find droppable parents with same scope
+				scope = this.options.scope;
+				parent = this.element.parents( ":data(ui-droppable)" ).filter( function() {
+					return $( this ).droppable( "instance" ).options.scope === scope;
+				} );
+
+				if ( parent.length ) {
+					parentInstance = $( parent[ 0 ] ).droppable( "instance" );
+					parentInstance.greedyChild = ( c === "isover" );
+				}
+			}
+
+			// We just moved into a greedy child
+			if ( parentInstance && c === "isover" ) {
+				parentInstance.isover = false;
+				parentInstance.isout = true;
+				parentInstance._out.call( parentInstance, event );
+			}
+
+			this[ c ] = true;
+			this[ c === "isout" ? "isover" : "isout" ] = false;
+			this[ c === "isover" ? "_over" : "_out" ].call( this, event );
+
+			// We just moved out of a greedy child
+			if ( parentInstance && c === "isout" ) {
+				parentInstance.isout = false;
+				parentInstance.isover = true;
+				parentInstance._over.call( parentInstance, event );
+			}
+		} );
+
+	},
+	dragStop: function( draggable, event ) {
+		draggable.element.parentsUntil( "body" ).off( "scroll.droppable" );
+
+		// Call prepareOffsets one final time since IE does not fire return scroll events when
+		// overflow was caused by drag (see #5003)
+		if ( !draggable.options.refreshPositions ) {
+			$.ui.ddmanager.prepareOffsets( draggable, event );
+		}
+	}
+};
+
+// DEPRECATED
+// TODO: switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for activeClass and hoverClass options
+	$.widget( "ui.droppable", $.ui.droppable, {
+		options: {
+			hoverClass: false,
+			activeClass: false
+		},
+		_addActiveClass: function() {
+			this._super();
+			if ( this.options.activeClass ) {
+				this.element.addClass( this.options.activeClass );
+			}
+		},
+		_removeActiveClass: function() {
+			this._super();
+			if ( this.options.activeClass ) {
+				this.element.removeClass( this.options.activeClass );
+			}
+		},
+		_addHoverClass: function() {
+			this._super();
+			if ( this.options.hoverClass ) {
+				this.element.addClass( this.options.hoverClass );
+			}
+		},
+		_removeHoverClass: function() {
+			this._super();
+			if ( this.options.hoverClass ) {
+				this.element.removeClass( this.options.hoverClass );
+			}
+		}
+	} );
+}
+
+var widgetsDroppable = $.ui.droppable;
+
+
+/*!
+ * jQuery UI Progressbar 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Progressbar
+//>>group: Widgets
+// jscs:disable maximumLineLength
+//>>description: Displays a status indicator for loading state, standard percentage, and other progress indicators.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/progressbar/
+//>>demos: http://jqueryui.com/progressbar/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/progressbar.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsProgressbar = $.widget( "ui.progressbar", {
+	version: "1.12.0",
+	options: {
+		classes: {
+			"ui-progressbar": "ui-corner-all",
+			"ui-progressbar-value": "ui-corner-left",
+			"ui-progressbar-complete": "ui-corner-right"
+		},
+		max: 100,
+		value: 0,
+
+		change: null,
+		complete: null
+	},
+
+	min: 0,
+
+	_create: function() {
+
+		// Constrain initial value
+		this.oldValue = this.options.value = this._constrainedValue();
+
+		this.element.attr( {
+
+			// Only set static values; aria-valuenow and aria-valuemax are
+			// set inside _refreshValue()
+			role: "progressbar",
+			"aria-valuemin": this.min
+		} );
+		this._addClass( "ui-progressbar", "ui-widget ui-widget-content" );
+
+		this.valueDiv = $( "<div>" ).appendTo( this.element );
+		this._addClass( this.valueDiv, "ui-progressbar-value", "ui-widget-header" );
+		this._refreshValue();
+	},
+
+	_destroy: function() {
+		this.element.removeAttr( "role aria-valuemin aria-valuemax aria-valuenow" );
+
+		this.valueDiv.remove();
+	},
+
+	value: function( newValue ) {
+		if ( newValue === undefined ) {
+			return this.options.value;
+		}
+
+		this.options.value = this._constrainedValue( newValue );
+		this._refreshValue();
+	},
+
+	_constrainedValue: function( newValue ) {
+		if ( newValue === undefined ) {
+			newValue = this.options.value;
+		}
+
+		this.indeterminate = newValue === false;
+
+		// Sanitize value
+		if ( typeof newValue !== "number" ) {
+			newValue = 0;
+		}
+
+		return this.indeterminate ? false :
+			Math.min( this.options.max, Math.max( this.min, newValue ) );
+	},
+
+	_setOptions: function( options ) {
+
+		// Ensure "value" option is set after other values (like max)
+		var value = options.value;
+		delete options.value;
+
+		this._super( options );
+
+		this.options.value = this._constrainedValue( value );
+		this._refreshValue();
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "max" ) {
+
+			// Don't allow a max less than min
+			value = Math.max( this.min, value );
+		}
+		this._super( key, value );
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.element.attr( "aria-disabled", value );
+		this._toggleClass( null, "ui-state-disabled", !!value );
+	},
+
+	_percentage: function() {
+		return this.indeterminate ?
+			100 :
+			100 * ( this.options.value - this.min ) / ( this.options.max - this.min );
+	},
+
+	_refreshValue: function() {
+		var value = this.options.value,
+			percentage = this._percentage();
+
+		this.valueDiv
+			.toggle( this.indeterminate || value > this.min )
+			.width( percentage.toFixed( 0 ) + "%" );
+
+		this
+			._toggleClass( this.valueDiv, "ui-progressbar-complete", null,
+				value === this.options.max )
+			._toggleClass( "ui-progressbar-indeterminate", null, this.indeterminate );
+
+		if ( this.indeterminate ) {
+			this.element.removeAttr( "aria-valuenow" );
+			if ( !this.overlayDiv ) {
+				this.overlayDiv = $( "<div>" ).appendTo( this.valueDiv );
+				this._addClass( this.overlayDiv, "ui-progressbar-overlay" );
+			}
+		} else {
+			this.element.attr( {
+				"aria-valuemax": this.options.max,
+				"aria-valuenow": value
+			} );
+			if ( this.overlayDiv ) {
+				this.overlayDiv.remove();
+				this.overlayDiv = null;
+			}
+		}
+
+		if ( this.oldValue !== value ) {
+			this.oldValue = value;
+			this._trigger( "change" );
+		}
+		if ( value === this.options.max ) {
+			this._trigger( "complete" );
+		}
+	}
+} );
+
+
+/*!
+ * jQuery UI Selectable 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Selectable
+//>>group: Interactions
+//>>description: Allows groups of elements to be selected with the mouse.
+//>>docs: http://api.jqueryui.com/selectable/
+//>>demos: http://jqueryui.com/selectable/
+//>>css.structure: ../../themes/base/selectable.css
+
+
+
+var widgetsSelectable = $.widget( "ui.selectable", $.ui.mouse, {
+	version: "1.12.0",
+	options: {
+		appendTo: "body",
+		autoRefresh: true,
+		distance: 0,
+		filter: "*",
+		tolerance: "touch",
+
+		// Callbacks
+		selected: null,
+		selecting: null,
+		start: null,
+		stop: null,
+		unselected: null,
+		unselecting: null
+	},
+	_create: function() {
+		var that = this;
+
+		this._addClass( "ui-selectable" );
+
+		this.dragged = false;
+
+		// Cache selectee children based on filter
+		this.refresh = function() {
+			that.elementPos = $( that.element[ 0 ] ).offset();
+			that.selectees = $( that.options.filter, that.element[ 0 ] );
+			that._addClass( that.selectees, "ui-selectee" );
+			that.selectees.each( function() {
+				var $this = $( this ),
+					selecteeOffset = $this.offset(),
+					pos = {
+						left: selecteeOffset.left - that.elementPos.left,
+						top: selecteeOffset.top - that.elementPos.top
+					};
+				$.data( this, "selectable-item", {
+					element: this,
+					$element: $this,
+					left: pos.left,
+					top: pos.top,
+					right: pos.left + $this.outerWidth(),
+					bottom: pos.top + $this.outerHeight(),
+					startselected: false,
+					selected: $this.hasClass( "ui-selected" ),
+					selecting: $this.hasClass( "ui-selecting" ),
+					unselecting: $this.hasClass( "ui-unselecting" )
+				} );
+			} );
+		};
+		this.refresh();
+
+		this._mouseInit();
+
+		this.helper = $( "<div>" );
+		this._addClass( this.helper, "ui-selectable-helper" );
+	},
+
+	_destroy: function() {
+		this.selectees.removeData( "selectable-item" );
+		this._mouseDestroy();
+	},
+
+	_mouseStart: function( event ) {
+		var that = this,
+			options = this.options;
+
+		this.opos = [ event.pageX, event.pageY ];
+		this.elementPos = $( this.element[ 0 ] ).offset();
+
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		this.selectees = $( options.filter, this.element[ 0 ] );
+
+		this._trigger( "start", event );
+
+		$( options.appendTo ).append( this.helper );
+
+		// position helper (lasso)
+		this.helper.css( {
+			"left": event.pageX,
+			"top": event.pageY,
+			"width": 0,
+			"height": 0
+		} );
+
+		if ( options.autoRefresh ) {
+			this.refresh();
+		}
+
+		this.selectees.filter( ".ui-selected" ).each( function() {
+			var selectee = $.data( this, "selectable-item" );
+			selectee.startselected = true;
+			if ( !event.metaKey && !event.ctrlKey ) {
+				that._removeClass( selectee.$element, "ui-selected" );
+				selectee.selected = false;
+				that._addClass( selectee.$element, "ui-unselecting" );
+				selectee.unselecting = true;
+
+				// selectable UNSELECTING callback
+				that._trigger( "unselecting", event, {
+					unselecting: selectee.element
+				} );
+			}
+		} );
+
+		$( event.target ).parents().addBack().each( function() {
+			var doSelect,
+				selectee = $.data( this, "selectable-item" );
+			if ( selectee ) {
+				doSelect = ( !event.metaKey && !event.ctrlKey ) ||
+					!selectee.$element.hasClass( "ui-selected" );
+				that._removeClass( selectee.$element, doSelect ? "ui-unselecting" : "ui-selected" )
+					._addClass( selectee.$element, doSelect ? "ui-selecting" : "ui-unselecting" );
+				selectee.unselecting = !doSelect;
+				selectee.selecting = doSelect;
+				selectee.selected = doSelect;
+
+				// selectable (UN)SELECTING callback
+				if ( doSelect ) {
+					that._trigger( "selecting", event, {
+						selecting: selectee.element
+					} );
+				} else {
+					that._trigger( "unselecting", event, {
+						unselecting: selectee.element
+					} );
+				}
+				return false;
+			}
+		} );
+
+	},
+
+	_mouseDrag: function( event ) {
+
+		this.dragged = true;
+
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		var tmp,
+			that = this,
+			options = this.options,
+			x1 = this.opos[ 0 ],
+			y1 = this.opos[ 1 ],
+			x2 = event.pageX,
+			y2 = event.pageY;
+
+		if ( x1 > x2 ) { tmp = x2; x2 = x1; x1 = tmp; }
+		if ( y1 > y2 ) { tmp = y2; y2 = y1; y1 = tmp; }
+		this.helper.css( { left: x1, top: y1, width: x2 - x1, height: y2 - y1 } );
+
+		this.selectees.each( function() {
+			var selectee = $.data( this, "selectable-item" ),
+				hit = false,
+				offset = {};
+
+			//prevent helper from being selected if appendTo: selectable
+			if ( !selectee || selectee.element === that.element[ 0 ] ) {
+				return;
+			}
+
+			offset.left   = selectee.left   + that.elementPos.left;
+			offset.right  = selectee.right  + that.elementPos.left;
+			offset.top    = selectee.top    + that.elementPos.top;
+			offset.bottom = selectee.bottom + that.elementPos.top;
+
+			if ( options.tolerance === "touch" ) {
+				hit = ( !( offset.left > x2 || offset.right < x1 || offset.top > y2 ||
+                    offset.bottom < y1 ) );
+			} else if ( options.tolerance === "fit" ) {
+				hit = ( offset.left > x1 && offset.right < x2 && offset.top > y1 &&
+                    offset.bottom < y2 );
+			}
+
+			if ( hit ) {
+
+				// SELECT
+				if ( selectee.selected ) {
+					that._removeClass( selectee.$element, "ui-selected" );
+					selectee.selected = false;
+				}
+				if ( selectee.unselecting ) {
+					that._removeClass( selectee.$element, "ui-unselecting" );
+					selectee.unselecting = false;
+				}
+				if ( !selectee.selecting ) {
+					that._addClass( selectee.$element, "ui-selecting" );
+					selectee.selecting = true;
+
+					// selectable SELECTING callback
+					that._trigger( "selecting", event, {
+						selecting: selectee.element
+					} );
+				}
+			} else {
+
+				// UNSELECT
+				if ( selectee.selecting ) {
+					if ( ( event.metaKey || event.ctrlKey ) && selectee.startselected ) {
+						that._removeClass( selectee.$element, "ui-selecting" );
+						selectee.selecting = false;
+						that._addClass( selectee.$element, "ui-selected" );
+						selectee.selected = true;
+					} else {
+						that._removeClass( selectee.$element, "ui-selecting" );
+						selectee.selecting = false;
+						if ( selectee.startselected ) {
+							that._addClass( selectee.$element, "ui-unselecting" );
+							selectee.unselecting = true;
+						}
+
+						// selectable UNSELECTING callback
+						that._trigger( "unselecting", event, {
+							unselecting: selectee.element
+						} );
+					}
+				}
+				if ( selectee.selected ) {
+					if ( !event.metaKey && !event.ctrlKey && !selectee.startselected ) {
+						that._removeClass( selectee.$element, "ui-selected" );
+						selectee.selected = false;
+
+						that._addClass( selectee.$element, "ui-unselecting" );
+						selectee.unselecting = true;
+
+						// selectable UNSELECTING callback
+						that._trigger( "unselecting", event, {
+							unselecting: selectee.element
+						} );
+					}
+				}
+			}
+		} );
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+		var that = this;
+
+		this.dragged = false;
+
+		$( ".ui-unselecting", this.element[ 0 ] ).each( function() {
+			var selectee = $.data( this, "selectable-item" );
+			that._removeClass( selectee.$element, "ui-unselecting" );
+			selectee.unselecting = false;
+			selectee.startselected = false;
+			that._trigger( "unselected", event, {
+				unselected: selectee.element
+			} );
+		} );
+		$( ".ui-selecting", this.element[ 0 ] ).each( function() {
+			var selectee = $.data( this, "selectable-item" );
+			that._removeClass( selectee.$element, "ui-selecting" )
+				._addClass( selectee.$element, "ui-selected" );
+			selectee.selecting = false;
+			selectee.selected = true;
+			selectee.startselected = true;
+			that._trigger( "selected", event, {
+				selected: selectee.element
+			} );
+		} );
+		this._trigger( "stop", event );
+
+		this.helper.remove();
+
+		return false;
+	}
+
+} );
+
+
+/*!
+ * jQuery UI Selectmenu 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Selectmenu
+//>>group: Widgets
+// jscs:disable maximumLineLength
+//>>description: Duplicates and extends the functionality of a native HTML select element, allowing it to be customizable in behavior and appearance far beyond the limitations of a native select.
+// jscs:enable maximumLineLength
+//>>docs: http://api.jqueryui.com/selectmenu/
+//>>demos: http://jqueryui.com/selectmenu/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/selectmenu.css, ../../themes/base/button.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsSelectmenu = $.widget( "ui.selectmenu", [ $.ui.formResetMixin, {
+	version: "1.12.0",
+	defaultElement: "<select>",
+	options: {
+		appendTo: null,
+		classes: {
+			"ui-selectmenu-button-open": "ui-corner-top",
+			"ui-selectmenu-button-closed": "ui-corner-all"
+		},
+		disabled: null,
+		icons: {
+			button: "ui-icon-triangle-1-s"
+		},
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		width: false,
+
+		// Callbacks
+		change: null,
+		close: null,
+		focus: null,
+		open: null,
+		select: null
+	},
+
+	_create: function() {
+		var selectmenuId = this.element.uniqueId().attr( "id" );
+		this.ids = {
+			element: selectmenuId,
+			button: selectmenuId + "-button",
+			menu: selectmenuId + "-menu"
+		};
+
+		this._drawButton();
+		this._drawMenu();
+		this._bindFormResetHandler();
+
+		this._rendered = false;
+		this.menuItems = $();
+	},
+
+	_drawButton: function() {
+		var icon,
+			that = this,
+			item = this._parseOption(
+				this.element.find( "option:selected" ),
+				this.element[ 0 ].selectedIndex
+			);
+
+		// Associate existing label with the new button
+		this.labels = this.element.labels().attr( "for", this.ids.button );
+		this._on( this.labels, {
+			click: function( event ) {
+				this.button.focus();
+				event.preventDefault();
+			}
+		} );
+
+		// Hide original select element
+		this.element.hide();
+
+		// Create button
+		this.button = $( "<span>", {
+			tabindex: this.options.disabled ? -1 : 0,
+			id: this.ids.button,
+			role: "combobox",
+			"aria-expanded": "false",
+			"aria-autocomplete": "list",
+			"aria-owns": this.ids.menu,
+			"aria-haspopup": "true",
+			title: this.element.attr( "title" )
+		} )
+			.insertAfter( this.element );
+
+		this._addClass( this.button, "ui-selectmenu-button ui-selectmenu-button-closed",
+			"ui-button ui-widget" );
+
+		icon = $( "<span>" ).appendTo( this.button );
+		this._addClass( icon, "ui-selectmenu-icon", "ui-icon " + this.options.icons.button );
+		this.buttonItem = this._renderButtonItem( item )
+			.appendTo( this.button );
+
+		if ( this.options.width !== false ) {
+			this._resizeButton();
+		}
+
+		this._on( this.button, this._buttonEvents );
+		this.button.one( "focusin", function() {
+
+			// Delay rendering the menu items until the button receives focus.
+			// The menu may have already been rendered via a programmatic open.
+			if ( !that._rendered ) {
+				that._refreshMenu();
+			}
+		} );
+	},
+
+	_drawMenu: function() {
+		var that = this;
+
+		// Create menu
+		this.menu = $( "<ul>", {
+			"aria-hidden": "true",
+			"aria-labelledby": this.ids.button,
+			id: this.ids.menu
+		} );
+
+		// Wrap menu
+		this.menuWrap = $( "<div>" ).append( this.menu );
+		this._addClass( this.menuWrap, "ui-selectmenu-menu", "ui-front" );
+		this.menuWrap.appendTo( this._appendTo() );
+
+		// Initialize menu widget
+		this.menuInstance = this.menu
+			.menu( {
+				classes: {
+					"ui-menu": "ui-corner-bottom"
+				},
+				role: "listbox",
+				select: function( event, ui ) {
+					event.preventDefault();
+
+					// Support: IE8
+					// If the item was selected via a click, the text selection
+					// will be destroyed in IE
+					that._setSelection();
+
+					that._select( ui.item.data( "ui-selectmenu-item" ), event );
+				},
+				focus: function( event, ui ) {
+					var item = ui.item.data( "ui-selectmenu-item" );
+
+					// Prevent inital focus from firing and check if its a newly focused item
+					if ( that.focusIndex != null && item.index !== that.focusIndex ) {
+						that._trigger( "focus", event, { item: item } );
+						if ( !that.isOpen ) {
+							that._select( item, event );
+						}
+					}
+					that.focusIndex = item.index;
+
+					that.button.attr( "aria-activedescendant",
+						that.menuItems.eq( item.index ).attr( "id" ) );
+				}
+			} )
+			.menu( "instance" );
+
+		// Don't close the menu on mouseleave
+		this.menuInstance._off( this.menu, "mouseleave" );
+
+		// Cancel the menu's collapseAll on document click
+		this.menuInstance._closeOnDocumentClick = function() {
+			return false;
+		};
+
+		// Selects often contain empty items, but never contain dividers
+		this.menuInstance._isDivider = function() {
+			return false;
+		};
+	},
+
+	refresh: function() {
+		this._refreshMenu();
+		this.buttonItem.replaceWith(
+			this.buttonItem = this._renderButtonItem(
+
+				// Fall back to an empty object in case there are no options
+				this._getSelectedItem().data( "ui-selectmenu-item" ) || {}
+			)
+		);
+		if ( this.options.width === null ) {
+			this._resizeButton();
+		}
+	},
+
+	_refreshMenu: function() {
+		var item,
+			options = this.element.find( "option" );
+
+		this.menu.empty();
+
+		this._parseOptions( options );
+		this._renderMenu( this.menu, this.items );
+
+		this.menuInstance.refresh();
+		this.menuItems = this.menu.find( "li" )
+			.not( ".ui-selectmenu-optgroup" )
+				.find( ".ui-menu-item-wrapper" );
+
+		this._rendered = true;
+
+		if ( !options.length ) {
+			return;
+		}
+
+		item = this._getSelectedItem();
+
+		// Update the menu to have the correct item focused
+		this.menuInstance.focus( null, item );
+		this._setAria( item.data( "ui-selectmenu-item" ) );
+
+		// Set disabled state
+		this._setOption( "disabled", this.element.prop( "disabled" ) );
+	},
+
+	open: function( event ) {
+		if ( this.options.disabled ) {
+			return;
+		}
+
+		// If this is the first time the menu is being opened, render the items
+		if ( !this._rendered ) {
+			this._refreshMenu();
+		} else {
+
+			// Menu clears focus on close, reset focus to selected item
+			this._removeClass( this.menu.find( ".ui-state-active" ), null, "ui-state-active" );
+			this.menuInstance.focus( null, this._getSelectedItem() );
+		}
+
+		// If there are no options, don't open the menu
+		if ( !this.menuItems.length ) {
+			return;
+		}
+
+		this.isOpen = true;
+		this._toggleAttr();
+		this._resizeMenu();
+		this._position();
+
+		this._on( this.document, this._documentClick );
+
+		this._trigger( "open", event );
+	},
+
+	_position: function() {
+		this.menuWrap.position( $.extend( { of: this.button }, this.options.position ) );
+	},
+
+	close: function( event ) {
+		if ( !this.isOpen ) {
+			return;
+		}
+
+		this.isOpen = false;
+		this._toggleAttr();
+
+		this.range = null;
+		this._off( this.document );
+
+		this._trigger( "close", event );
+	},
+
+	widget: function() {
+		return this.button;
+	},
+
+	menuWidget: function() {
+		return this.menu;
+	},
+
+	_renderButtonItem: function( item ) {
+		var buttonItem = $( "<span>" );
+
+		this._setText( buttonItem, item.label );
+		this._addClass( buttonItem, "ui-selectmenu-text" );
+
+		return buttonItem;
+	},
+
+	_renderMenu: function( ul, items ) {
+		var that = this,
+			currentOptgroup = "";
+
+		$.each( items, function( index, item ) {
+			var li;
+
+			if ( item.optgroup !== currentOptgroup ) {
+				li = $( "<li>", {
+					text: item.optgroup
+				} );
+				that._addClass( li, "ui-selectmenu-optgroup", "ui-menu-divider" +
+					( item.element.parent( "optgroup" ).prop( "disabled" ) ?
+						" ui-state-disabled" :
+						"" ) );
+
+				li.appendTo( ul );
+
+				currentOptgroup = item.optgroup;
+			}
+
+			that._renderItemData( ul, item );
+		} );
+	},
+
+	_renderItemData: function( ul, item ) {
+		return this._renderItem( ul, item ).data( "ui-selectmenu-item", item );
+	},
+
+	_renderItem: function( ul, item ) {
+		var li = $( "<li>" ),
+			wrapper = $( "<div>", {
+				title: item.element.attr( "title" )
+			} );
+
+		if ( item.disabled ) {
+			this._addClass( li, null, "ui-state-disabled" );
+		}
+		this._setText( wrapper, item.label );
+
+		return li.append( wrapper ).appendTo( ul );
+	},
+
+	_setText: function( element, value ) {
+		if ( value ) {
+			element.text( value );
+		} else {
+			element.html( "&#160;" );
+		}
+	},
+
+	_move: function( direction, event ) {
+		var item, next,
+			filter = ".ui-menu-item";
+
+		if ( this.isOpen ) {
+			item = this.menuItems.eq( this.focusIndex ).parent( "li" );
+		} else {
+			item = this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
+			filter += ":not(.ui-state-disabled)";
+		}
+
+		if ( direction === "first" || direction === "last" ) {
+			next = item[ direction === "first" ? "prevAll" : "nextAll" ]( filter ).eq( -1 );
+		} else {
+			next = item[ direction + "All" ]( filter ).eq( 0 );
+		}
+
+		if ( next.length ) {
+			this.menuInstance.focus( event, next );
+		}
+	},
+
+	_getSelectedItem: function() {
+		return this.menuItems.eq( this.element[ 0 ].selectedIndex ).parent( "li" );
+	},
+
+	_toggle: function( event ) {
+		this[ this.isOpen ? "close" : "open" ]( event );
+	},
+
+	_setSelection: function() {
+		var selection;
+
+		if ( !this.range ) {
+			return;
+		}
+
+		if ( window.getSelection ) {
+			selection = window.getSelection();
+			selection.removeAllRanges();
+			selection.addRange( this.range );
+
+		// Support: IE8
+		} else {
+			this.range.select();
+		}
+
+		// Support: IE
+		// Setting the text selection kills the button focus in IE, but
+		// restoring the focus doesn't kill the selection.
+		this.button.focus();
+	},
+
+	_documentClick: {
+		mousedown: function( event ) {
+			if ( !this.isOpen ) {
+				return;
+			}
+
+			if ( !$( event.target ).closest( ".ui-selectmenu-menu, #" +
+					$.ui.escapeSelector( this.ids.button ) ).length ) {
+				this.close( event );
+			}
+		}
+	},
+
+	_buttonEvents: {
+
+		// Prevent text selection from being reset when interacting with the selectmenu (#10144)
+		mousedown: function() {
+			var selection;
+
+			if ( window.getSelection ) {
+				selection = window.getSelection();
+				if ( selection.rangeCount ) {
+					this.range = selection.getRangeAt( 0 );
+				}
+
+			// Support: IE8
+			} else {
+				this.range = document.selection.createRange();
+			}
+		},
+
+		click: function( event ) {
+			this._setSelection();
+			this._toggle( event );
+		},
+
+		keydown: function( event ) {
+			var preventDefault = true;
+			switch ( event.keyCode ) {
+			case $.ui.keyCode.TAB:
+			case $.ui.keyCode.ESCAPE:
+				this.close( event );
+				preventDefault = false;
+				break;
+			case $.ui.keyCode.ENTER:
+				if ( this.isOpen ) {
+					this._selectFocusedItem( event );
+				}
+				break;
+			case $.ui.keyCode.UP:
+				if ( event.altKey ) {
+					this._toggle( event );
+				} else {
+					this._move( "prev", event );
+				}
+				break;
+			case $.ui.keyCode.DOWN:
+				if ( event.altKey ) {
+					this._toggle( event );
+				} else {
+					this._move( "next", event );
+				}
+				break;
+			case $.ui.keyCode.SPACE:
+				if ( this.isOpen ) {
+					this._selectFocusedItem( event );
+				} else {
+					this._toggle( event );
+				}
+				break;
+			case $.ui.keyCode.LEFT:
+				this._move( "prev", event );
+				break;
+			case $.ui.keyCode.RIGHT:
+				this._move( "next", event );
+				break;
+			case $.ui.keyCode.HOME:
+			case $.ui.keyCode.PAGE_UP:
+				this._move( "first", event );
+				break;
+			case $.ui.keyCode.END:
+			case $.ui.keyCode.PAGE_DOWN:
+				this._move( "last", event );
+				break;
+			default:
+				this.menu.trigger( event );
+				preventDefault = false;
+			}
+
+			if ( preventDefault ) {
+				event.preventDefault();
+			}
+		}
+	},
+
+	_selectFocusedItem: function( event ) {
+		var item = this.menuItems.eq( this.focusIndex ).parent( "li" );
+		if ( !item.hasClass( "ui-state-disabled" ) ) {
+			this._select( item.data( "ui-selectmenu-item" ), event );
+		}
+	},
+
+	_select: function( item, event ) {
+		var oldIndex = this.element[ 0 ].selectedIndex;
+
+		// Change native select element
+		this.element[ 0 ].selectedIndex = item.index;
+		this.buttonItem.replaceWith( this.buttonItem = this._renderButtonItem( item ) );
+		this._setAria( item );
+		this._trigger( "select", event, { item: item } );
+
+		if ( item.index !== oldIndex ) {
+			this._trigger( "change", event, { item: item } );
+		}
+
+		this.close( event );
+	},
+
+	_setAria: function( item ) {
+		var id = this.menuItems.eq( item.index ).attr( "id" );
+
+		this.button.attr( {
+			"aria-labelledby": id,
+			"aria-activedescendant": id
+		} );
+		this.menu.attr( "aria-activedescendant", id );
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "icons" ) {
+			var icon = this.button.find( "span.ui-icon" );
+			this._removeClass( icon, null, this.options.icons.button )
+				._addClass( icon, null, value.button );
+		}
+
+		this._super( key, value );
+
+		if ( key === "appendTo" ) {
+			this.menuWrap.appendTo( this._appendTo() );
+		}
+
+		if ( key === "width" ) {
+			this._resizeButton();
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this.menuInstance.option( "disabled", value );
+		this.button.attr( "aria-disabled", value );
+		this._toggleClass( this.button, null, "ui-state-disabled", value );
+
+		this.element.prop( "disabled", value );
+		if ( value ) {
+			this.button.attr( "tabindex", -1 );
+			this.close();
+		} else {
+			this.button.attr( "tabindex", 0 );
+		}
+	},
+
+	_appendTo: function() {
+		var element = this.options.appendTo;
+
+		if ( element ) {
+			element = element.jquery || element.nodeType ?
+				$( element ) :
+				this.document.find( element ).eq( 0 );
+		}
+
+		if ( !element || !element[ 0 ] ) {
+			element = this.element.closest( ".ui-front, dialog" );
+		}
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_toggleAttr: function() {
+		this.button.attr( "aria-expanded", this.isOpen );
+
+		// We can't use two _toggleClass() calls here, because we need to make sure
+		// we always remove classes first and add them second, otherwise if both classes have the
+		// same theme class, it will be removed after we add it.
+		this._removeClass( this.button, "ui-selectmenu-button-" +
+			( this.isOpen ? "closed" : "open" ) )
+			._addClass( this.button, "ui-selectmenu-button-" +
+				( this.isOpen ? "open" : "closed" ) )
+			._toggleClass( this.menuWrap, "ui-selectmenu-open", null, this.isOpen );
+
+		this.menu.attr( "aria-hidden", !this.isOpen );
+	},
+
+	_resizeButton: function() {
+		var width = this.options.width;
+
+		// For `width: false`, just remove inline style and stop
+		if ( width === false ) {
+			this.button.css( "width", "" );
+			return;
+		}
+
+		// For `width: null`, match the width of the original element
+		if ( width === null ) {
+			width = this.element.show().outerWidth();
+			this.element.hide();
+		}
+
+		this.button.outerWidth( width );
+	},
+
+	_resizeMenu: function() {
+		this.menu.outerWidth( Math.max(
+			this.button.outerWidth(),
+
+			// Support: IE10
+			// IE10 wraps long text (possibly a rounding bug)
+			// so we add 1px to avoid the wrapping
+			this.menu.width( "" ).outerWidth() + 1
+		) );
+	},
+
+	_getCreateOptions: function() {
+		var options = this._super();
+
+		options.disabled = this.element.prop( "disabled" );
+
+		return options;
+	},
+
+	_parseOptions: function( options ) {
+		var that = this,
+			data = [];
+		options.each( function( index, item ) {
+			data.push( that._parseOption( $( item ), index ) );
+		} );
+		this.items = data;
+	},
+
+	_parseOption: function( option, index ) {
+		var optgroup = option.parent( "optgroup" );
+
+		return {
+			element: option,
+			index: index,
+			value: option.val(),
+			label: option.text(),
+			optgroup: optgroup.attr( "label" ) || "",
+			disabled: optgroup.prop( "disabled" ) || option.prop( "disabled" )
+		};
+	},
+
+	_destroy: function() {
+		this._unbindFormResetHandler();
+		this.menuWrap.remove();
+		this.button.remove();
+		this.element.show();
+		this.element.removeUniqueId();
+		this.labels.attr( "for", this.ids.element );
+	}
+} ] );
+
+
+/*!
+ * jQuery UI Slider 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Slider
+//>>group: Widgets
+//>>description: Displays a flexible slider with ranges and accessibility via keyboard.
+//>>docs: http://api.jqueryui.com/slider/
+//>>demos: http://jqueryui.com/slider/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/slider.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+var widgetsSlider = $.widget( "ui.slider", $.ui.mouse, {
+	version: "1.12.0",
+	widgetEventPrefix: "slide",
+
+	options: {
+		animate: false,
+		classes: {
+			"ui-slider": "ui-corner-all",
+			"ui-slider-handle": "ui-corner-all",
+
+			// Note: ui-widget-header isn't the most fittingly semantic framework class for this
+			// element, but worked best visually with a variety of themes
+			"ui-slider-range": "ui-corner-all ui-widget-header"
+		},
+		distance: 0,
+		max: 100,
+		min: 0,
+		orientation: "horizontal",
+		range: false,
+		step: 1,
+		value: 0,
+		values: null,
+
+		// Callbacks
+		change: null,
+		slide: null,
+		start: null,
+		stop: null
+	},
+
+	// Number of pages in a slider
+	// (how many times can you page up/down to go through the whole range)
+	numPages: 5,
+
+	_create: function() {
+		this._keySliding = false;
+		this._mouseSliding = false;
+		this._animateOff = true;
+		this._handleIndex = null;
+		this._detectOrientation();
+		this._mouseInit();
+		this._calculateNewMax();
+
+		this._addClass( "ui-slider ui-slider-" + this.orientation,
+			"ui-widget ui-widget-content" );
+
+		this._refresh();
+
+		this._animateOff = false;
+	},
+
+	_refresh: function() {
+		this._createRange();
+		this._createHandles();
+		this._setupEvents();
+		this._refreshValue();
+	},
+
+	_createHandles: function() {
+		var i, handleCount,
+			options = this.options,
+			existingHandles = this.element.find( ".ui-slider-handle" ),
+			handle = "<span tabindex='0'></span>",
+			handles = [];
+
+		handleCount = ( options.values && options.values.length ) || 1;
+
+		if ( existingHandles.length > handleCount ) {
+			existingHandles.slice( handleCount ).remove();
+			existingHandles = existingHandles.slice( 0, handleCount );
+		}
+
+		for ( i = existingHandles.length; i < handleCount; i++ ) {
+			handles.push( handle );
+		}
+
+		this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) );
+
+		this._addClass( this.handles, "ui-slider-handle", "ui-state-default" );
+
+		this.handle = this.handles.eq( 0 );
+
+		this.handles.each( function( i ) {
+			$( this ).data( "ui-slider-handle-index", i );
+		} );
+	},
+
+	_createRange: function() {
+		var options = this.options;
+
+		if ( options.range ) {
+			if ( options.range === true ) {
+				if ( !options.values ) {
+					options.values = [ this._valueMin(), this._valueMin() ];
+				} else if ( options.values.length && options.values.length !== 2 ) {
+					options.values = [ options.values[ 0 ], options.values[ 0 ] ];
+				} else if ( $.isArray( options.values ) ) {
+					options.values = options.values.slice( 0 );
+				}
+			}
+
+			if ( !this.range || !this.range.length ) {
+				this.range = $( "<div>" )
+					.appendTo( this.element );
+
+				this._addClass( this.range, "ui-slider-range" );
+			} else {
+				this._removeClass( this.range, "ui-slider-range-min ui-slider-range-max" );
+
+				// Handle range switching from true to min/max
+				this.range.css( {
+					"left": "",
+					"bottom": ""
+				} );
+			}
+			if ( options.range === "min" || options.range === "max" ) {
+				this._addClass( this.range, "ui-slider-range-" + options.range );
+			}
+		} else {
+			if ( this.range ) {
+				this.range.remove();
+			}
+			this.range = null;
+		}
+	},
+
+	_setupEvents: function() {
+		this._off( this.handles );
+		this._on( this.handles, this._handleEvents );
+		this._hoverable( this.handles );
+		this._focusable( this.handles );
+	},
+
+	_destroy: function() {
+		this.handles.remove();
+		if ( this.range ) {
+			this.range.remove();
+		}
+
+		this._mouseDestroy();
+	},
+
+	_mouseCapture: function( event ) {
+		var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle,
+			that = this,
+			o = this.options;
+
+		if ( o.disabled ) {
+			return false;
+		}
+
+		this.elementSize = {
+			width: this.element.outerWidth(),
+			height: this.element.outerHeight()
+		};
+		this.elementOffset = this.element.offset();
+
+		position = { x: event.pageX, y: event.pageY };
+		normValue = this._normValueFromMouse( position );
+		distance = this._valueMax() - this._valueMin() + 1;
+		this.handles.each( function( i ) {
+			var thisDistance = Math.abs( normValue - that.values( i ) );
+			if ( ( distance > thisDistance ) ||
+				( distance === thisDistance &&
+					( i === that._lastChangedValue || that.values( i ) === o.min ) ) ) {
+				distance = thisDistance;
+				closestHandle = $( this );
+				index = i;
+			}
+		} );
+
+		allowed = this._start( event, index );
+		if ( allowed === false ) {
+			return false;
+		}
+		this._mouseSliding = true;
+
+		this._handleIndex = index;
+
+		this._addClass( closestHandle, null, "ui-state-active" );
+		closestHandle.trigger( "focus" );
+
+		offset = closestHandle.offset();
+		mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" );
+		this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
+			left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
+			top: event.pageY - offset.top -
+				( closestHandle.height() / 2 ) -
+				( parseInt( closestHandle.css( "borderTopWidth" ), 10 ) || 0 ) -
+				( parseInt( closestHandle.css( "borderBottomWidth" ), 10 ) || 0 ) +
+				( parseInt( closestHandle.css( "marginTop" ), 10 ) || 0 )
+		};
+
+		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
+			this._slide( event, index, normValue );
+		}
+		this._animateOff = true;
+		return true;
+	},
+
+	_mouseStart: function() {
+		return true;
+	},
+
+	_mouseDrag: function( event ) {
+		var position = { x: event.pageX, y: event.pageY },
+			normValue = this._normValueFromMouse( position );
+
+		this._slide( event, this._handleIndex, normValue );
+
+		return false;
+	},
+
+	_mouseStop: function( event ) {
+		this._removeClass( this.handles, null, "ui-state-active" );
+		this._mouseSliding = false;
+
+		this._stop( event, this._handleIndex );
+		this._change( event, this._handleIndex );
+
+		this._handleIndex = null;
+		this._clickOffset = null;
+		this._animateOff = false;
+
+		return false;
+	},
+
+	_detectOrientation: function() {
+		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
+	},
+
+	_normValueFromMouse: function( position ) {
+		var pixelTotal,
+			pixelMouse,
+			percentMouse,
+			valueTotal,
+			valueMouse;
+
+		if ( this.orientation === "horizontal" ) {
+			pixelTotal = this.elementSize.width;
+			pixelMouse = position.x - this.elementOffset.left -
+				( this._clickOffset ? this._clickOffset.left : 0 );
+		} else {
+			pixelTotal = this.elementSize.height;
+			pixelMouse = position.y - this.elementOffset.top -
+				( this._clickOffset ? this._clickOffset.top : 0 );
+		}
+
+		percentMouse = ( pixelMouse / pixelTotal );
+		if ( percentMouse > 1 ) {
+			percentMouse = 1;
+		}
+		if ( percentMouse < 0 ) {
+			percentMouse = 0;
+		}
+		if ( this.orientation === "vertical" ) {
+			percentMouse = 1 - percentMouse;
+		}
+
+		valueTotal = this._valueMax() - this._valueMin();
+		valueMouse = this._valueMin() + percentMouse * valueTotal;
+
+		return this._trimAlignValue( valueMouse );
+	},
+
+	_uiHash: function( index, value, values ) {
+		var uiHash = {
+			handle: this.handles[ index ],
+			handleIndex: index,
+			value: value !== undefined ? value : this.value()
+		};
+
+		if ( this._hasMultipleValues() ) {
+			uiHash.value = value !== undefined ? value : this.values( index );
+			uiHash.values = values || this.values();
+		}
+
+		return uiHash;
+	},
+
+	_hasMultipleValues: function() {
+		return this.options.values && this.options.values.length;
+	},
+
+	_start: function( event, index ) {
+		return this._trigger( "start", event, this._uiHash( index ) );
+	},
+
+	_slide: function( event, index, newVal ) {
+		var allowed, otherVal,
+			currentValue = this.value(),
+			newValues = this.values();
+
+		if ( this._hasMultipleValues() ) {
+			otherVal = this.values( index ? 0 : 1 );
+			currentValue = this.values( index );
+
+			if ( this.options.values.length === 2 && this.options.range === true ) {
+				newVal =  index === 0 ? Math.min( otherVal, newVal ) : Math.max( otherVal, newVal );
+			}
+
+			newValues[ index ] = newVal;
+		}
+
+		if ( newVal === currentValue ) {
+			return;
+		}
+
+		allowed = this._trigger( "slide", event, this._uiHash( index, newVal, newValues ) );
+
+		// A slide can be canceled by returning false from the slide callback
+		if ( allowed === false ) {
+			return;
+		}
+
+		if ( this._hasMultipleValues() ) {
+			this.values( index, newVal );
+		} else {
+			this.value( newVal );
+		}
+	},
+
+	_stop: function( event, index ) {
+		this._trigger( "stop", event, this._uiHash( index ) );
+	},
+
+	_change: function( event, index ) {
+		if ( !this._keySliding && !this._mouseSliding ) {
+
+			//store the last changed value index for reference when handles overlap
+			this._lastChangedValue = index;
+			this._trigger( "change", event, this._uiHash( index ) );
+		}
+	},
+
+	value: function( newValue ) {
+		if ( arguments.length ) {
+			this.options.value = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, 0 );
+			return;
+		}
+
+		return this._value();
+	},
+
+	values: function( index, newValue ) {
+		var vals,
+			newValues,
+			i;
+
+		if ( arguments.length > 1 ) {
+			this.options.values[ index ] = this._trimAlignValue( newValue );
+			this._refreshValue();
+			this._change( null, index );
+			return;
+		}
+
+		if ( arguments.length ) {
+			if ( $.isArray( arguments[ 0 ] ) ) {
+				vals = this.options.values;
+				newValues = arguments[ 0 ];
+				for ( i = 0; i < vals.length; i += 1 ) {
+					vals[ i ] = this._trimAlignValue( newValues[ i ] );
+					this._change( null, i );
+				}
+				this._refreshValue();
+			} else {
+				if ( this._hasMultipleValues() ) {
+					return this._values( index );
+				} else {
+					return this.value();
+				}
+			}
+		} else {
+			return this._values();
+		}
+	},
+
+	_setOption: function( key, value ) {
+		var i,
+			valsLength = 0;
+
+		if ( key === "range" && this.options.range === true ) {
+			if ( value === "min" ) {
+				this.options.value = this._values( 0 );
+				this.options.values = null;
+			} else if ( value === "max" ) {
+				this.options.value = this._values( this.options.values.length - 1 );
+				this.options.values = null;
+			}
+		}
+
+		if ( $.isArray( this.options.values ) ) {
+			valsLength = this.options.values.length;
+		}
+
+		this._super( key, value );
+
+		switch ( key ) {
+			case "orientation":
+				this._detectOrientation();
+				this._removeClass( "ui-slider-horizontal ui-slider-vertical" )
+					._addClass( "ui-slider-" + this.orientation );
+				this._refreshValue();
+				if ( this.options.range ) {
+					this._refreshRange( value );
+				}
+
+				// Reset positioning from previous orientation
+				this.handles.css( value === "horizontal" ? "bottom" : "left", "" );
+				break;
+			case "value":
+				this._animateOff = true;
+				this._refreshValue();
+				this._change( null, 0 );
+				this._animateOff = false;
+				break;
+			case "values":
+				this._animateOff = true;
+				this._refreshValue();
+
+				// Start from the last handle to prevent unreachable handles (#9046)
+				for ( i = valsLength - 1; i >= 0; i-- ) {
+					this._change( null, i );
+				}
+				this._animateOff = false;
+				break;
+			case "step":
+			case "min":
+			case "max":
+				this._animateOff = true;
+				this._calculateNewMax();
+				this._refreshValue();
+				this._animateOff = false;
+				break;
+			case "range":
+				this._animateOff = true;
+				this._refresh();
+				this._animateOff = false;
+				break;
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this._toggleClass( null, "ui-state-disabled", !!value );
+	},
+
+	//internal value getter
+	// _value() returns value trimmed by min and max, aligned by step
+	_value: function() {
+		var val = this.options.value;
+		val = this._trimAlignValue( val );
+
+		return val;
+	},
+
+	//internal values getter
+	// _values() returns array of values trimmed by min and max, aligned by step
+	// _values( index ) returns single value trimmed by min and max, aligned by step
+	_values: function( index ) {
+		var val,
+			vals,
+			i;
+
+		if ( arguments.length ) {
+			val = this.options.values[ index ];
+			val = this._trimAlignValue( val );
+
+			return val;
+		} else if ( this._hasMultipleValues() ) {
+
+			// .slice() creates a copy of the array
+			// this copy gets trimmed by min and max and then returned
+			vals = this.options.values.slice();
+			for ( i = 0; i < vals.length; i += 1 ) {
+				vals[ i ] = this._trimAlignValue( vals[ i ] );
+			}
+
+			return vals;
+		} else {
+			return [];
+		}
+	},
+
+	// Returns the step-aligned value that val is closest to, between (inclusive) min and max
+	_trimAlignValue: function( val ) {
+		if ( val <= this._valueMin() ) {
+			return this._valueMin();
+		}
+		if ( val >= this._valueMax() ) {
+			return this._valueMax();
+		}
+		var step = ( this.options.step > 0 ) ? this.options.step : 1,
+			valModStep = ( val - this._valueMin() ) % step,
+			alignValue = val - valModStep;
+
+		if ( Math.abs( valModStep ) * 2 >= step ) {
+			alignValue += ( valModStep > 0 ) ? step : ( -step );
+		}
+
+		// Since JavaScript has problems with large floats, round
+		// the final value to 5 digits after the decimal point (see #4124)
+		return parseFloat( alignValue.toFixed( 5 ) );
+	},
+
+	_calculateNewMax: function() {
+		var max = this.options.max,
+			min = this._valueMin(),
+			step = this.options.step,
+			aboveMin = Math.round( ( max - min ) / step ) * step;
+		max = aboveMin + min;
+		if ( max > this.options.max ) {
+
+			//If max is not divisible by step, rounding off may increase its value
+			max -= step;
+		}
+		this.max = parseFloat( max.toFixed( this._precision() ) );
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_valueMin: function() {
+		return this.options.min;
+	},
+
+	_valueMax: function() {
+		return this.max;
+	},
+
+	_refreshRange: function( orientation ) {
+		if ( orientation === "vertical" ) {
+			this.range.css( { "width": "", "left": "" } );
+		}
+		if ( orientation === "horizontal" ) {
+			this.range.css( { "height": "", "bottom": "" } );
+		}
+	},
+
+	_refreshValue: function() {
+		var lastValPercent, valPercent, value, valueMin, valueMax,
+			oRange = this.options.range,
+			o = this.options,
+			that = this,
+			animate = ( !this._animateOff ) ? o.animate : false,
+			_set = {};
+
+		if ( this._hasMultipleValues() ) {
+			this.handles.each( function( i ) {
+				valPercent = ( that.values( i ) - that._valueMin() ) / ( that._valueMax() -
+					that._valueMin() ) * 100;
+				_set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+				if ( that.options.range === true ) {
+					if ( that.orientation === "horizontal" ) {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+								left: valPercent + "%"
+							}, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( {
+								width: ( valPercent - lastValPercent ) + "%"
+							}, {
+								queue: false,
+								duration: o.animate
+							} );
+						}
+					} else {
+						if ( i === 0 ) {
+							that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+								bottom: ( valPercent ) + "%"
+							}, o.animate );
+						}
+						if ( i === 1 ) {
+							that.range[ animate ? "animate" : "css" ]( {
+								height: ( valPercent - lastValPercent ) + "%"
+							}, {
+								queue: false,
+								duration: o.animate
+							} );
+						}
+					}
+				}
+				lastValPercent = valPercent;
+			} );
+		} else {
+			value = this.value();
+			valueMin = this._valueMin();
+			valueMax = this._valueMax();
+			valPercent = ( valueMax !== valueMin ) ?
+					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
+					0;
+			_set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+
+			if ( oRange === "min" && this.orientation === "horizontal" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					width: valPercent + "%"
+				}, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "horizontal" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					width: ( 100 - valPercent ) + "%"
+				}, o.animate );
+			}
+			if ( oRange === "min" && this.orientation === "vertical" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					height: valPercent + "%"
+				}, o.animate );
+			}
+			if ( oRange === "max" && this.orientation === "vertical" ) {
+				this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( {
+					height: ( 100 - valPercent ) + "%"
+				}, o.animate );
+			}
+		}
+	},
+
+	_handleEvents: {
+		keydown: function( event ) {
+			var allowed, curVal, newVal, step,
+				index = $( event.target ).data( "ui-slider-handle-index" );
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+				case $.ui.keyCode.END:
+				case $.ui.keyCode.PAGE_UP:
+				case $.ui.keyCode.PAGE_DOWN:
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					event.preventDefault();
+					if ( !this._keySliding ) {
+						this._keySliding = true;
+						this._addClass( $( event.target ), null, "ui-state-active" );
+						allowed = this._start( event, index );
+						if ( allowed === false ) {
+							return;
+						}
+					}
+					break;
+			}
+
+			step = this.options.step;
+			if ( this._hasMultipleValues() ) {
+				curVal = newVal = this.values( index );
+			} else {
+				curVal = newVal = this.value();
+			}
+
+			switch ( event.keyCode ) {
+				case $.ui.keyCode.HOME:
+					newVal = this._valueMin();
+					break;
+				case $.ui.keyCode.END:
+					newVal = this._valueMax();
+					break;
+				case $.ui.keyCode.PAGE_UP:
+					newVal = this._trimAlignValue(
+						curVal + ( ( this._valueMax() - this._valueMin() ) / this.numPages )
+					);
+					break;
+				case $.ui.keyCode.PAGE_DOWN:
+					newVal = this._trimAlignValue(
+						curVal - ( ( this._valueMax() - this._valueMin() ) / this.numPages ) );
+					break;
+				case $.ui.keyCode.UP:
+				case $.ui.keyCode.RIGHT:
+					if ( curVal === this._valueMax() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal + step );
+					break;
+				case $.ui.keyCode.DOWN:
+				case $.ui.keyCode.LEFT:
+					if ( curVal === this._valueMin() ) {
+						return;
+					}
+					newVal = this._trimAlignValue( curVal - step );
+					break;
+			}
+
+			this._slide( event, index, newVal );
+		},
+		keyup: function( event ) {
+			var index = $( event.target ).data( "ui-slider-handle-index" );
+
+			if ( this._keySliding ) {
+				this._keySliding = false;
+				this._stop( event, index );
+				this._change( event, index );
+				this._removeClass( $( event.target ), null, "ui-state-active" );
+			}
+		}
+	}
+} );
+
+
+/*!
+ * jQuery UI Sortable 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Sortable
+//>>group: Interactions
+//>>description: Enables items in a list to be sorted using the mouse.
+//>>docs: http://api.jqueryui.com/sortable/
+//>>demos: http://jqueryui.com/sortable/
+//>>css.structure: ../../themes/base/sortable.css
+
+
+
+var widgetsSortable = $.widget( "ui.sortable", $.ui.mouse, {
+	version: "1.12.0",
+	widgetEventPrefix: "sort",
+	ready: false,
+	options: {
+		appendTo: "parent",
+		axis: false,
+		connectWith: false,
+		containment: false,
+		cursor: "auto",
+		cursorAt: false,
+		dropOnEmpty: true,
+		forcePlaceholderSize: false,
+		forceHelperSize: false,
+		grid: false,
+		handle: false,
+		helper: "original",
+		items: "> *",
+		opacity: false,
+		placeholder: false,
+		revert: false,
+		scroll: true,
+		scrollSensitivity: 20,
+		scrollSpeed: 20,
+		scope: "default",
+		tolerance: "intersect",
+		zIndex: 1000,
+
+		// Callbacks
+		activate: null,
+		beforeStop: null,
+		change: null,
+		deactivate: null,
+		out: null,
+		over: null,
+		receive: null,
+		remove: null,
+		sort: null,
+		start: null,
+		stop: null,
+		update: null
+	},
+
+	_isOverAxis: function( x, reference, size ) {
+		return ( x >= reference ) && ( x < ( reference + size ) );
+	},
+
+	_isFloating: function( item ) {
+		return ( /left|right/ ).test( item.css( "float" ) ) ||
+			( /inline|table-cell/ ).test( item.css( "display" ) );
+	},
+
+	_create: function() {
+		this.containerCache = {};
+		this._addClass( "ui-sortable" );
+
+		//Get the items
+		this.refresh();
+
+		//Let's determine the parent's offset
+		this.offset = this.element.offset();
+
+		//Initialize mouse events for interaction
+		this._mouseInit();
+
+		this._setHandleClassName();
+
+		//We're ready to go
+		this.ready = true;
+
+	},
+
+	_setOption: function( key, value ) {
+		this._super( key, value );
+
+		if ( key === "handle" ) {
+			this._setHandleClassName();
+		}
+	},
+
+	_setHandleClassName: function() {
+		var that = this;
+		this._removeClass( this.element.find( ".ui-sortable-handle" ), "ui-sortable-handle" );
+		$.each( this.items, function() {
+			that._addClass(
+				this.instance.options.handle ?
+					this.item.find( this.instance.options.handle ) :
+					this.item,
+				"ui-sortable-handle"
+			);
+		} );
+	},
+
+	_destroy: function() {
+		this._mouseDestroy();
+
+		for ( var i = this.items.length - 1; i >= 0; i-- ) {
+			this.items[ i ].item.removeData( this.widgetName + "-item" );
+		}
+
+		return this;
+	},
+
+	_mouseCapture: function( event, overrideHandle ) {
+		var currentItem = null,
+			validHandle = false,
+			that = this;
+
+		if ( this.reverting ) {
+			return false;
+		}
+
+		if ( this.options.disabled || this.options.type === "static" ) {
+			return false;
+		}
+
+		//We have to refresh the items data once first
+		this._refreshItems( event );
+
+		//Find out if the clicked node (or one of its parents) is a actual item in this.items
+		$( event.target ).parents().each( function() {
+			if ( $.data( this, that.widgetName + "-item" ) === that ) {
+				currentItem = $( this );
+				return false;
+			}
+		} );
+		if ( $.data( event.target, that.widgetName + "-item" ) === that ) {
+			currentItem = $( event.target );
+		}
+
+		if ( !currentItem ) {
+			return false;
+		}
+		if ( this.options.handle && !overrideHandle ) {
+			$( this.options.handle, currentItem ).find( "*" ).addBack().each( function() {
+				if ( this === event.target ) {
+					validHandle = true;
+				}
+			} );
+			if ( !validHandle ) {
+				return false;
+			}
+		}
+
+		this.currentItem = currentItem;
+		this._removeCurrentsFromItems();
+		return true;
+
+	},
+
+	_mouseStart: function( event, overrideHandle, noActivation ) {
+
+		var i, body,
+			o = this.options;
+
+		this.currentContainer = this;
+
+		//We only need to call refreshPositions, because the refreshItems call has been moved to
+		// mouseCapture
+		this.refreshPositions();
+
+		//Create and append the visible helper
+		this.helper = this._createHelper( event );
+
+		//Cache the helper size
+		this._cacheHelperProportions();
+
+		/*
+		 * - Position generation -
+		 * This block generates everything position related - it's the core of draggables.
+		 */
+
+		//Cache the margins of the original element
+		this._cacheMargins();
+
+		//Get the next scrolling parent
+		this.scrollParent = this.helper.scrollParent();
+
+		//The element's absolute position on the page minus margins
+		this.offset = this.currentItem.offset();
+		this.offset = {
+			top: this.offset.top - this.margins.top,
+			left: this.offset.left - this.margins.left
+		};
+
+		$.extend( this.offset, {
+			click: { //Where the click happened, relative to the element
+				left: event.pageX - this.offset.left,
+				top: event.pageY - this.offset.top
+			},
+			parent: this._getParentOffset(),
+
+			// This is a relative to absolute position minus the actual position calculation -
+			// only used for relative positioned helper
+			relative: this._getRelativeOffset()
+		} );
+
+		// Only after we got the offset, we can change the helper's position to absolute
+		// TODO: Still need to figure out a way to make relative sorting possible
+		this.helper.css( "position", "absolute" );
+		this.cssPosition = this.helper.css( "position" );
+
+		//Generate the original position
+		this.originalPosition = this._generatePosition( event );
+		this.originalPageX = event.pageX;
+		this.originalPageY = event.pageY;
+
+		//Adjust the mouse offset relative to the helper if "cursorAt" is supplied
+		( o.cursorAt && this._adjustOffsetFromHelper( o.cursorAt ) );
+
+		//Cache the former DOM position
+		this.domPosition = {
+			prev: this.currentItem.prev()[ 0 ],
+			parent: this.currentItem.parent()[ 0 ]
+		};
+
+		// If the helper is not the original, hide the original so it's not playing any role during
+		// the drag, won't cause anything bad this way
+		if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
+			this.currentItem.hide();
+		}
+
+		//Create the placeholder
+		this._createPlaceholder();
+
+		//Set a containment if given in the options
+		if ( o.containment ) {
+			this._setContainment();
+		}
+
+		if ( o.cursor && o.cursor !== "auto" ) { // cursor option
+			body = this.document.find( "body" );
+
+			// Support: IE
+			this.storedCursor = body.css( "cursor" );
+			body.css( "cursor", o.cursor );
+
+			this.storedStylesheet =
+				$( "<style>*{ cursor: " + o.cursor + " !important; }</style>" ).appendTo( body );
+		}
+
+		if ( o.opacity ) { // opacity option
+			if ( this.helper.css( "opacity" ) ) {
+				this._storedOpacity = this.helper.css( "opacity" );
+			}
+			this.helper.css( "opacity", o.opacity );
+		}
+
+		if ( o.zIndex ) { // zIndex option
+			if ( this.helper.css( "zIndex" ) ) {
+				this._storedZIndex = this.helper.css( "zIndex" );
+			}
+			this.helper.css( "zIndex", o.zIndex );
+		}
+
+		//Prepare scrolling
+		if ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				this.scrollParent[ 0 ].tagName !== "HTML" ) {
+			this.overflowOffset = this.scrollParent.offset();
+		}
+
+		//Call callbacks
+		this._trigger( "start", event, this._uiHash() );
+
+		//Recache the helper size
+		if ( !this._preserveHelperProportions ) {
+			this._cacheHelperProportions();
+		}
+
+		//Post "activate" events to possible containers
+		if ( !noActivation ) {
+			for ( i = this.containers.length - 1; i >= 0; i-- ) {
+				this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) );
+			}
+		}
+
+		//Prepare possible droppables
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.current = this;
+		}
+
+		if ( $.ui.ddmanager && !o.dropBehaviour ) {
+			$.ui.ddmanager.prepareOffsets( this, event );
+		}
+
+		this.dragging = true;
+
+		this._addClass( this.helper, "ui-sortable-helper" );
+
+		// Execute the drag once - this causes the helper not to be visiblebefore getting its
+		// correct position
+		this._mouseDrag( event );
+		return true;
+
+	},
+
+	_mouseDrag: function( event ) {
+		var i, item, itemElement, intersection,
+			o = this.options,
+			scrolled = false;
+
+		//Compute the helpers position
+		this.position = this._generatePosition( event );
+		this.positionAbs = this._convertPositionTo( "absolute" );
+
+		if ( !this.lastPositionAbs ) {
+			this.lastPositionAbs = this.positionAbs;
+		}
+
+		//Do scrolling
+		if ( this.options.scroll ) {
+			if ( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+					this.scrollParent[ 0 ].tagName !== "HTML" ) {
+
+				if ( ( this.overflowOffset.top + this.scrollParent[ 0 ].offsetHeight ) -
+						event.pageY < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollTop =
+						scrolled = this.scrollParent[ 0 ].scrollTop + o.scrollSpeed;
+				} else if ( event.pageY - this.overflowOffset.top < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollTop =
+						scrolled = this.scrollParent[ 0 ].scrollTop - o.scrollSpeed;
+				}
+
+				if ( ( this.overflowOffset.left + this.scrollParent[ 0 ].offsetWidth ) -
+						event.pageX < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollLeft = scrolled =
+						this.scrollParent[ 0 ].scrollLeft + o.scrollSpeed;
+				} else if ( event.pageX - this.overflowOffset.left < o.scrollSensitivity ) {
+					this.scrollParent[ 0 ].scrollLeft = scrolled =
+						this.scrollParent[ 0 ].scrollLeft - o.scrollSpeed;
+				}
+
+			} else {
+
+				if ( event.pageY - this.document.scrollTop() < o.scrollSensitivity ) {
+					scrolled = this.document.scrollTop( this.document.scrollTop() - o.scrollSpeed );
+				} else if ( this.window.height() - ( event.pageY - this.document.scrollTop() ) <
+						o.scrollSensitivity ) {
+					scrolled = this.document.scrollTop( this.document.scrollTop() + o.scrollSpeed );
+				}
+
+				if ( event.pageX - this.document.scrollLeft() < o.scrollSensitivity ) {
+					scrolled = this.document.scrollLeft(
+						this.document.scrollLeft() - o.scrollSpeed
+					);
+				} else if ( this.window.width() - ( event.pageX - this.document.scrollLeft() ) <
+						o.scrollSensitivity ) {
+					scrolled = this.document.scrollLeft(
+						this.document.scrollLeft() + o.scrollSpeed
+					);
+				}
+
+			}
+
+			if ( scrolled !== false && $.ui.ddmanager && !o.dropBehaviour ) {
+				$.ui.ddmanager.prepareOffsets( this, event );
+			}
+		}
+
+		//Regenerate the absolute position used for position checks
+		this.positionAbs = this._convertPositionTo( "absolute" );
+
+		//Set the helper position
+		if ( !this.options.axis || this.options.axis !== "y" ) {
+			this.helper[ 0 ].style.left = this.position.left + "px";
+		}
+		if ( !this.options.axis || this.options.axis !== "x" ) {
+			this.helper[ 0 ].style.top = this.position.top + "px";
+		}
+
+		//Rearrange
+		for ( i = this.items.length - 1; i >= 0; i-- ) {
+
+			//Cache variables and intersection, continue if no intersection
+			item = this.items[ i ];
+			itemElement = item.item[ 0 ];
+			intersection = this._intersectsWithPointer( item );
+			if ( !intersection ) {
+				continue;
+			}
+
+			// Only put the placeholder inside the current Container, skip all
+			// items from other containers. This works because when moving
+			// an item from one container to another the
+			// currentContainer is switched before the placeholder is moved.
+			//
+			// Without this, moving items in "sub-sortables" can cause
+			// the placeholder to jitter between the outer and inner container.
+			if ( item.instance !== this.currentContainer ) {
+				continue;
+			}
+
+			// Cannot intersect with itself
+			// no useless actions that have been done before
+			// no action if the item moved is the parent of the item checked
+			if ( itemElement !== this.currentItem[ 0 ] &&
+				this.placeholder[ intersection === 1 ? "next" : "prev" ]()[ 0 ] !== itemElement &&
+				!$.contains( this.placeholder[ 0 ], itemElement ) &&
+				( this.options.type === "semi-dynamic" ?
+					!$.contains( this.element[ 0 ], itemElement ) :
+					true
+				)
+			) {
+
+				this.direction = intersection === 1 ? "down" : "up";
+
+				if ( this.options.tolerance === "pointer" || this._intersectsWithSides( item ) ) {
+					this._rearrange( event, item );
+				} else {
+					break;
+				}
+
+				this._trigger( "change", event, this._uiHash() );
+				break;
+			}
+		}
+
+		//Post events to containers
+		this._contactContainers( event );
+
+		//Interconnect with droppables
+		if ( $.ui.ddmanager ) {
+			$.ui.ddmanager.drag( this, event );
+		}
+
+		//Call callbacks
+		this._trigger( "sort", event, this._uiHash() );
+
+		this.lastPositionAbs = this.positionAbs;
+		return false;
+
+	},
+
+	_mouseStop: function( event, noPropagation ) {
+
+		if ( !event ) {
+			return;
+		}
+
+		//If we are using droppables, inform the manager about the drop
+		if ( $.ui.ddmanager && !this.options.dropBehaviour ) {
+			$.ui.ddmanager.drop( this, event );
+		}
+
+		if ( this.options.revert ) {
+			var that = this,
+				cur = this.placeholder.offset(),
+				axis = this.options.axis,
+				animation = {};
+
+			if ( !axis || axis === "x" ) {
+				animation.left = cur.left - this.offset.parent.left - this.margins.left +
+					( this.offsetParent[ 0 ] === this.document[ 0 ].body ?
+						0 :
+						this.offsetParent[ 0 ].scrollLeft
+					);
+			}
+			if ( !axis || axis === "y" ) {
+				animation.top = cur.top - this.offset.parent.top - this.margins.top +
+					( this.offsetParent[ 0 ] === this.document[ 0 ].body ?
+						0 :
+						this.offsetParent[ 0 ].scrollTop
+					);
+			}
+			this.reverting = true;
+			$( this.helper ).animate(
+				animation,
+				parseInt( this.options.revert, 10 ) || 500,
+				function() {
+					that._clear( event );
+				}
+			);
+		} else {
+			this._clear( event, noPropagation );
+		}
+
+		return false;
+
+	},
+
+	cancel: function() {
+
+		if ( this.dragging ) {
+
+			this._mouseUp( { target: null } );
+
+			if ( this.options.helper === "original" ) {
+				this.currentItem.css( this._storedCSS );
+				this._removeClass( this.currentItem, "ui-sortable-helper" );
+			} else {
+				this.currentItem.show();
+			}
+
+			//Post deactivating events to containers
+			for ( var i = this.containers.length - 1; i >= 0; i-- ) {
+				this.containers[ i ]._trigger( "deactivate", null, this._uiHash( this ) );
+				if ( this.containers[ i ].containerCache.over ) {
+					this.containers[ i ]._trigger( "out", null, this._uiHash( this ) );
+					this.containers[ i ].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		if ( this.placeholder ) {
+
+			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,
+			// it unbinds ALL events from the original node!
+			if ( this.placeholder[ 0 ].parentNode ) {
+				this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );
+			}
+			if ( this.options.helper !== "original" && this.helper &&
+					this.helper[ 0 ].parentNode ) {
+				this.helper.remove();
+			}
+
+			$.extend( this, {
+				helper: null,
+				dragging: false,
+				reverting: false,
+				_noFinalSort: null
+			} );
+
+			if ( this.domPosition.prev ) {
+				$( this.domPosition.prev ).after( this.currentItem );
+			} else {
+				$( this.domPosition.parent ).prepend( this.currentItem );
+			}
+		}
+
+		return this;
+
+	},
+
+	serialize: function( o ) {
+
+		var items = this._getItemsAsjQuery( o && o.connected ),
+			str = [];
+		o = o || {};
+
+		$( items ).each( function() {
+			var res = ( $( o.item || this ).attr( o.attribute || "id" ) || "" )
+				.match( o.expression || ( /(.+)[\-=_](.+)/ ) );
+			if ( res ) {
+				str.push(
+					( o.key || res[ 1 ] + "[]" ) +
+					"=" + ( o.key && o.expression ? res[ 1 ] : res[ 2 ] ) );
+			}
+		} );
+
+		if ( !str.length && o.key ) {
+			str.push( o.key + "=" );
+		}
+
+		return str.join( "&" );
+
+	},
+
+	toArray: function( o ) {
+
+		var items = this._getItemsAsjQuery( o && o.connected ),
+			ret = [];
+
+		o = o || {};
+
+		items.each( function() {
+			ret.push( $( o.item || this ).attr( o.attribute || "id" ) || "" );
+		} );
+		return ret;
+
+	},
+
+	/* Be careful with the following core functions */
+	_intersectsWith: function( item ) {
+
+		var x1 = this.positionAbs.left,
+			x2 = x1 + this.helperProportions.width,
+			y1 = this.positionAbs.top,
+			y2 = y1 + this.helperProportions.height,
+			l = item.left,
+			r = l + item.width,
+			t = item.top,
+			b = t + item.height,
+			dyClick = this.offset.click.top,
+			dxClick = this.offset.click.left,
+			isOverElementHeight = ( this.options.axis === "x" ) || ( ( y1 + dyClick ) > t &&
+				( y1 + dyClick ) < b ),
+			isOverElementWidth = ( this.options.axis === "y" ) || ( ( x1 + dxClick ) > l &&
+				( x1 + dxClick ) < r ),
+			isOverElement = isOverElementHeight && isOverElementWidth;
+
+		if ( this.options.tolerance === "pointer" ||
+			this.options.forcePointerForContainers ||
+			( this.options.tolerance !== "pointer" &&
+				this.helperProportions[ this.floating ? "width" : "height" ] >
+				item[ this.floating ? "width" : "height" ] )
+		) {
+			return isOverElement;
+		} else {
+
+			return ( l < x1 + ( this.helperProportions.width / 2 ) && // Right Half
+				x2 - ( this.helperProportions.width / 2 ) < r && // Left Half
+				t < y1 + ( this.helperProportions.height / 2 ) && // Bottom Half
+				y2 - ( this.helperProportions.height / 2 ) < b ); // Top Half
+
+		}
+	},
+
+	_intersectsWithPointer: function( item ) {
+		var verticalDirection, horizontalDirection,
+			isOverElementHeight = ( this.options.axis === "x" ) ||
+				this._isOverAxis(
+					this.positionAbs.top + this.offset.click.top, item.top, item.height ),
+			isOverElementWidth = ( this.options.axis === "y" ) ||
+				this._isOverAxis(
+					this.positionAbs.left + this.offset.click.left, item.left, item.width ),
+			isOverElement = isOverElementHeight && isOverElementWidth;
+
+		if ( !isOverElement ) {
+			return false;
+		}
+
+		verticalDirection = this._getDragVerticalDirection();
+		horizontalDirection = this._getDragHorizontalDirection();
+
+		return this.floating ?
+			( ( horizontalDirection === "right" || verticalDirection === "down" ) ? 2 : 1 )
+			: ( verticalDirection && ( verticalDirection === "down" ? 2 : 1 ) );
+
+	},
+
+	_intersectsWithSides: function( item ) {
+
+		var isOverBottomHalf = this._isOverAxis( this.positionAbs.top +
+				this.offset.click.top, item.top + ( item.height / 2 ), item.height ),
+			isOverRightHalf = this._isOverAxis( this.positionAbs.left +
+				this.offset.click.left, item.left + ( item.width / 2 ), item.width ),
+			verticalDirection = this._getDragVerticalDirection(),
+			horizontalDirection = this._getDragHorizontalDirection();
+
+		if ( this.floating && horizontalDirection ) {
+			return ( ( horizontalDirection === "right" && isOverRightHalf ) ||
+				( horizontalDirection === "left" && !isOverRightHalf ) );
+		} else {
+			return verticalDirection && ( ( verticalDirection === "down" && isOverBottomHalf ) ||
+				( verticalDirection === "up" && !isOverBottomHalf ) );
+		}
+
+	},
+
+	_getDragVerticalDirection: function() {
+		var delta = this.positionAbs.top - this.lastPositionAbs.top;
+		return delta !== 0 && ( delta > 0 ? "down" : "up" );
+	},
+
+	_getDragHorizontalDirection: function() {
+		var delta = this.positionAbs.left - this.lastPositionAbs.left;
+		return delta !== 0 && ( delta > 0 ? "right" : "left" );
+	},
+
+	refresh: function( event ) {
+		this._refreshItems( event );
+		this._setHandleClassName();
+		this.refreshPositions();
+		return this;
+	},
+
+	_connectWith: function() {
+		var options = this.options;
+		return options.connectWith.constructor === String ?
+			[ options.connectWith ] :
+			options.connectWith;
+	},
+
+	_getItemsAsjQuery: function( connected ) {
+
+		var i, j, cur, inst,
+			items = [],
+			queries = [],
+			connectWith = this._connectWith();
+
+		if ( connectWith && connected ) {
+			for ( i = connectWith.length - 1; i >= 0; i-- ) {
+				cur = $( connectWith[ i ], this.document[ 0 ] );
+				for ( j = cur.length - 1; j >= 0; j-- ) {
+					inst = $.data( cur[ j ], this.widgetFullName );
+					if ( inst && inst !== this && !inst.options.disabled ) {
+						queries.push( [ $.isFunction( inst.options.items ) ?
+							inst.options.items.call( inst.element ) :
+							$( inst.options.items, inst.element )
+								.not( ".ui-sortable-helper" )
+								.not( ".ui-sortable-placeholder" ), inst ] );
+					}
+				}
+			}
+		}
+
+		queries.push( [ $.isFunction( this.options.items ) ?
+			this.options.items
+				.call( this.element, null, { options: this.options, item: this.currentItem } ) :
+			$( this.options.items, this.element )
+				.not( ".ui-sortable-helper" )
+				.not( ".ui-sortable-placeholder" ), this ] );
+
+		function addItems() {
+			items.push( this );
+		}
+		for ( i = queries.length - 1; i >= 0; i-- ) {
+			queries[ i ][ 0 ].each( addItems );
+		}
+
+		return $( items );
+
+	},
+
+	_removeCurrentsFromItems: function() {
+
+		var list = this.currentItem.find( ":data(" + this.widgetName + "-item)" );
+
+		this.items = $.grep( this.items, function( item ) {
+			for ( var j = 0; j < list.length; j++ ) {
+				if ( list[ j ] === item.item[ 0 ] ) {
+					return false;
+				}
+			}
+			return true;
+		} );
+
+	},
+
+	_refreshItems: function( event ) {
+
+		this.items = [];
+		this.containers = [ this ];
+
+		var i, j, cur, inst, targetData, _queries, item, queriesLength,
+			items = this.items,
+			queries = [ [ $.isFunction( this.options.items ) ?
+				this.options.items.call( this.element[ 0 ], event, { item: this.currentItem } ) :
+				$( this.options.items, this.element ), this ] ],
+			connectWith = this._connectWith();
+
+		//Shouldn't be run the first time through due to massive slow-down
+		if ( connectWith && this.ready ) {
+			for ( i = connectWith.length - 1; i >= 0; i-- ) {
+				cur = $( connectWith[ i ], this.document[ 0 ] );
+				for ( j = cur.length - 1; j >= 0; j-- ) {
+					inst = $.data( cur[ j ], this.widgetFullName );
+					if ( inst && inst !== this && !inst.options.disabled ) {
+						queries.push( [ $.isFunction( inst.options.items ) ?
+							inst.options.items
+								.call( inst.element[ 0 ], event, { item: this.currentItem } ) :
+							$( inst.options.items, inst.element ), inst ] );
+						this.containers.push( inst );
+					}
+				}
+			}
+		}
+
+		for ( i = queries.length - 1; i >= 0; i-- ) {
+			targetData = queries[ i ][ 1 ];
+			_queries = queries[ i ][ 0 ];
+
+			for ( j = 0, queriesLength = _queries.length; j < queriesLength; j++ ) {
+				item = $( _queries[ j ] );
+
+				// Data for target checking (mouse manager)
+				item.data( this.widgetName + "-item", targetData );
+
+				items.push( {
+					item: item,
+					instance: targetData,
+					width: 0, height: 0,
+					left: 0, top: 0
+				} );
+			}
+		}
+
+	},
+
+	refreshPositions: function( fast ) {
+
+		// Determine whether items are being displayed horizontally
+		this.floating = this.items.length ?
+			this.options.axis === "x" || this._isFloating( this.items[ 0 ].item ) :
+			false;
+
+		//This has to be redone because due to the item being moved out/into the offsetParent,
+		// the offsetParent's position will change
+		if ( this.offsetParent && this.helper ) {
+			this.offset.parent = this._getParentOffset();
+		}
+
+		var i, item, t, p;
+
+		for ( i = this.items.length - 1; i >= 0; i-- ) {
+			item = this.items[ i ];
+
+			//We ignore calculating positions of all connected containers when we're not over them
+			if ( item.instance !== this.currentContainer && this.currentContainer &&
+					item.item[ 0 ] !== this.currentItem[ 0 ] ) {
+				continue;
+			}
+
+			t = this.options.toleranceElement ?
+				$( this.options.toleranceElement, item.item ) :
+				item.item;
+
+			if ( !fast ) {
+				item.width = t.outerWidth();
+				item.height = t.outerHeight();
+			}
+
+			p = t.offset();
+			item.left = p.left;
+			item.top = p.top;
+		}
+
+		if ( this.options.custom && this.options.custom.refreshContainers ) {
+			this.options.custom.refreshContainers.call( this );
+		} else {
+			for ( i = this.containers.length - 1; i >= 0; i-- ) {
+				p = this.containers[ i ].element.offset();
+				this.containers[ i ].containerCache.left = p.left;
+				this.containers[ i ].containerCache.top = p.top;
+				this.containers[ i ].containerCache.width =
+					this.containers[ i ].element.outerWidth();
+				this.containers[ i ].containerCache.height =
+					this.containers[ i ].element.outerHeight();
+			}
+		}
+
+		return this;
+	},
+
+	_createPlaceholder: function( that ) {
+		that = that || this;
+		var className,
+			o = that.options;
+
+		if ( !o.placeholder || o.placeholder.constructor === String ) {
+			className = o.placeholder;
+			o.placeholder = {
+				element: function() {
+
+					var nodeName = that.currentItem[ 0 ].nodeName.toLowerCase(),
+						element = $( "<" + nodeName + ">", that.document[ 0 ] );
+
+						that._addClass( element, "ui-sortable-placeholder",
+								className || that.currentItem[ 0 ].className )
+							._removeClass( element, "ui-sortable-helper" );
+
+					if ( nodeName === "tbody" ) {
+						that._createTrPlaceholder(
+							that.currentItem.find( "tr" ).eq( 0 ),
+							$( "<tr>", that.document[ 0 ] ).appendTo( element )
+						);
+					} else if ( nodeName === "tr" ) {
+						that._createTrPlaceholder( that.currentItem, element );
+					} else if ( nodeName === "img" ) {
+						element.attr( "src", that.currentItem.attr( "src" ) );
+					}
+
+					if ( !className ) {
+						element.css( "visibility", "hidden" );
+					}
+
+					return element;
+				},
+				update: function( container, p ) {
+
+					// 1. If a className is set as 'placeholder option, we don't force sizes -
+					// the class is responsible for that
+					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a
+					// class name is specified
+					if ( className && !o.forcePlaceholderSize ) {
+						return;
+					}
+
+					//If the element doesn't have a actual height by itself (without styles coming
+					// from a stylesheet), it receives the inline height from the dragged item
+					if ( !p.height() ) {
+						p.height(
+							that.currentItem.innerHeight() -
+							parseInt( that.currentItem.css( "paddingTop" ) || 0, 10 ) -
+							parseInt( that.currentItem.css( "paddingBottom" ) || 0, 10 ) );
+					}
+					if ( !p.width() ) {
+						p.width(
+							that.currentItem.innerWidth() -
+							parseInt( that.currentItem.css( "paddingLeft" ) || 0, 10 ) -
+							parseInt( that.currentItem.css( "paddingRight" ) || 0, 10 ) );
+					}
+				}
+			};
+		}
+
+		//Create the placeholder
+		that.placeholder = $( o.placeholder.element.call( that.element, that.currentItem ) );
+
+		//Append it after the actual current item
+		that.currentItem.after( that.placeholder );
+
+		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
+		o.placeholder.update( that, that.placeholder );
+
+	},
+
+	_createTrPlaceholder: function( sourceTr, targetTr ) {
+		var that = this;
+
+		sourceTr.children().each( function() {
+			$( "<td>&#160;</td>", that.document[ 0 ] )
+				.attr( "colspan", $( this ).attr( "colspan" ) || 1 )
+				.appendTo( targetTr );
+		} );
+	},
+
+	_contactContainers: function( event ) {
+		var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, cur, nearBottom,
+			floating, axis,
+			innermostContainer = null,
+			innermostIndex = null;
+
+		// Get innermost container that intersects with item
+		for ( i = this.containers.length - 1; i >= 0; i-- ) {
+
+			// Never consider a container that's located within the item itself
+			if ( $.contains( this.currentItem[ 0 ], this.containers[ i ].element[ 0 ] ) ) {
+				continue;
+			}
+
+			if ( this._intersectsWith( this.containers[ i ].containerCache ) ) {
+
+				// If we've already found a container and it's more "inner" than this, then continue
+				if ( innermostContainer &&
+						$.contains(
+							this.containers[ i ].element[ 0 ],
+							innermostContainer.element[ 0 ] ) ) {
+					continue;
+				}
+
+				innermostContainer = this.containers[ i ];
+				innermostIndex = i;
+
+			} else {
+
+				// container doesn't intersect. trigger "out" event if necessary
+				if ( this.containers[ i ].containerCache.over ) {
+					this.containers[ i ]._trigger( "out", event, this._uiHash( this ) );
+					this.containers[ i ].containerCache.over = 0;
+				}
+			}
+
+		}
+
+		// If no intersecting containers found, return
+		if ( !innermostContainer ) {
+			return;
+		}
+
+		// Move the item into the container if it's not there already
+		if ( this.containers.length === 1 ) {
+			if ( !this.containers[ innermostIndex ].containerCache.over ) {
+				this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) );
+				this.containers[ innermostIndex ].containerCache.over = 1;
+			}
+		} else {
+
+			// When entering a new container, we will find the item with the least distance and
+			// append our item near it
+			dist = 10000;
+			itemWithLeastDistance = null;
+			floating = innermostContainer.floating || this._isFloating( this.currentItem );
+			posProperty = floating ? "left" : "top";
+			sizeProperty = floating ? "width" : "height";
+			axis = floating ? "pageX" : "pageY";
+
+			for ( j = this.items.length - 1; j >= 0; j-- ) {
+				if ( !$.contains(
+						this.containers[ innermostIndex ].element[ 0 ], this.items[ j ].item[ 0 ] )
+				) {
+					continue;
+				}
+				if ( this.items[ j ].item[ 0 ] === this.currentItem[ 0 ] ) {
+					continue;
+				}
+
+				cur = this.items[ j ].item.offset()[ posProperty ];
+				nearBottom = false;
+				if ( event[ axis ] - cur > this.items[ j ][ sizeProperty ] / 2 ) {
+					nearBottom = true;
+				}
+
+				if ( Math.abs( event[ axis ] - cur ) < dist ) {
+					dist = Math.abs( event[ axis ] - cur );
+					itemWithLeastDistance = this.items[ j ];
+					this.direction = nearBottom ? "up" : "down";
+				}
+			}
+
+			//Check if dropOnEmpty is enabled
+			if ( !itemWithLeastDistance && !this.options.dropOnEmpty ) {
+				return;
+			}
+
+			if ( this.currentContainer === this.containers[ innermostIndex ] ) {
+				if ( !this.currentContainer.containerCache.over ) {
+					this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash() );
+					this.currentContainer.containerCache.over = 1;
+				}
+				return;
+			}
+
+			itemWithLeastDistance ?
+				this._rearrange( event, itemWithLeastDistance, null, true ) :
+				this._rearrange( event, null, this.containers[ innermostIndex ].element, true );
+			this._trigger( "change", event, this._uiHash() );
+			this.containers[ innermostIndex ]._trigger( "change", event, this._uiHash( this ) );
+			this.currentContainer = this.containers[ innermostIndex ];
+
+			//Update the placeholder
+			this.options.placeholder.update( this.currentContainer, this.placeholder );
+
+			this.containers[ innermostIndex ]._trigger( "over", event, this._uiHash( this ) );
+			this.containers[ innermostIndex ].containerCache.over = 1;
+		}
+
+	},
+
+	_createHelper: function( event ) {
+
+		var o = this.options,
+			helper = $.isFunction( o.helper ) ?
+				$( o.helper.apply( this.element[ 0 ], [ event, this.currentItem ] ) ) :
+				( o.helper === "clone" ? this.currentItem.clone() : this.currentItem );
+
+		//Add the helper to the DOM if that didn't happen already
+		if ( !helper.parents( "body" ).length ) {
+			$( o.appendTo !== "parent" ?
+				o.appendTo :
+				this.currentItem[ 0 ].parentNode )[ 0 ].appendChild( helper[ 0 ] );
+		}
+
+		if ( helper[ 0 ] === this.currentItem[ 0 ] ) {
+			this._storedCSS = {
+				width: this.currentItem[ 0 ].style.width,
+				height: this.currentItem[ 0 ].style.height,
+				position: this.currentItem.css( "position" ),
+				top: this.currentItem.css( "top" ),
+				left: this.currentItem.css( "left" )
+			};
+		}
+
+		if ( !helper[ 0 ].style.width || o.forceHelperSize ) {
+			helper.width( this.currentItem.width() );
+		}
+		if ( !helper[ 0 ].style.height || o.forceHelperSize ) {
+			helper.height( this.currentItem.height() );
+		}
+
+		return helper;
+
+	},
+
+	_adjustOffsetFromHelper: function( obj ) {
+		if ( typeof obj === "string" ) {
+			obj = obj.split( " " );
+		}
+		if ( $.isArray( obj ) ) {
+			obj = { left: +obj[ 0 ], top: +obj[ 1 ] || 0 };
+		}
+		if ( "left" in obj ) {
+			this.offset.click.left = obj.left + this.margins.left;
+		}
+		if ( "right" in obj ) {
+			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
+		}
+		if ( "top" in obj ) {
+			this.offset.click.top = obj.top + this.margins.top;
+		}
+		if ( "bottom" in obj ) {
+			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
+		}
+	},
+
+	_getParentOffset: function() {
+
+		//Get the offsetParent and cache its position
+		this.offsetParent = this.helper.offsetParent();
+		var po = this.offsetParent.offset();
+
+		// This is a special case where we need to modify a offset calculated on start, since the
+		// following happened:
+		// 1. The position of the helper is absolute, so it's position is calculated based on the
+		// next positioned parent
+		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't
+		// the document, which means that the scroll is included in the initial calculation of the
+		// offset of the parent, and never recalculated upon drag
+		if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) {
+			po.left += this.scrollParent.scrollLeft();
+			po.top += this.scrollParent.scrollTop();
+		}
+
+		// This needs to be actually done for all browsers, since pageX/pageY includes this
+		// information with an ugly IE fix
+		if ( this.offsetParent[ 0 ] === this.document[ 0 ].body ||
+				( this.offsetParent[ 0 ].tagName &&
+				this.offsetParent[ 0 ].tagName.toLowerCase() === "html" && $.ui.ie ) ) {
+			po = { top: 0, left: 0 };
+		}
+
+		return {
+			top: po.top + ( parseInt( this.offsetParent.css( "borderTopWidth" ), 10 ) || 0 ),
+			left: po.left + ( parseInt( this.offsetParent.css( "borderLeftWidth" ), 10 ) || 0 )
+		};
+
+	},
+
+	_getRelativeOffset: function() {
+
+		if ( this.cssPosition === "relative" ) {
+			var p = this.currentItem.position();
+			return {
+				top: p.top - ( parseInt( this.helper.css( "top" ), 10 ) || 0 ) +
+					this.scrollParent.scrollTop(),
+				left: p.left - ( parseInt( this.helper.css( "left" ), 10 ) || 0 ) +
+					this.scrollParent.scrollLeft()
+			};
+		} else {
+			return { top: 0, left: 0 };
+		}
+
+	},
+
+	_cacheMargins: function() {
+		this.margins = {
+			left: ( parseInt( this.currentItem.css( "marginLeft" ), 10 ) || 0 ),
+			top: ( parseInt( this.currentItem.css( "marginTop" ), 10 ) || 0 )
+		};
+	},
+
+	_cacheHelperProportions: function() {
+		this.helperProportions = {
+			width: this.helper.outerWidth(),
+			height: this.helper.outerHeight()
+		};
+	},
+
+	_setContainment: function() {
+
+		var ce, co, over,
+			o = this.options;
+		if ( o.containment === "parent" ) {
+			o.containment = this.helper[ 0 ].parentNode;
+		}
+		if ( o.containment === "document" || o.containment === "window" ) {
+			this.containment = [
+				0 - this.offset.relative.left - this.offset.parent.left,
+				0 - this.offset.relative.top - this.offset.parent.top,
+				o.containment === "document" ?
+					this.document.width() :
+					this.window.width() - this.helperProportions.width - this.margins.left,
+				( o.containment === "document" ?
+					( this.document.height() || document.body.parentNode.scrollHeight ) :
+					this.window.height() || this.document[ 0 ].body.parentNode.scrollHeight
+				) - this.helperProportions.height - this.margins.top
+			];
+		}
+
+		if ( !( /^(document|window|parent)$/ ).test( o.containment ) ) {
+			ce = $( o.containment )[ 0 ];
+			co = $( o.containment ).offset();
+			over = ( $( ce ).css( "overflow" ) !== "hidden" );
+
+			this.containment = [
+				co.left + ( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) +
+					( parseInt( $( ce ).css( "paddingLeft" ), 10 ) || 0 ) - this.margins.left,
+				co.top + ( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) +
+					( parseInt( $( ce ).css( "paddingTop" ), 10 ) || 0 ) - this.margins.top,
+				co.left + ( over ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) -
+					( parseInt( $( ce ).css( "borderLeftWidth" ), 10 ) || 0 ) -
+					( parseInt( $( ce ).css( "paddingRight" ), 10 ) || 0 ) -
+					this.helperProportions.width - this.margins.left,
+				co.top + ( over ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) -
+					( parseInt( $( ce ).css( "borderTopWidth" ), 10 ) || 0 ) -
+					( parseInt( $( ce ).css( "paddingBottom" ), 10 ) || 0 ) -
+					this.helperProportions.height - this.margins.top
+			];
+		}
+
+	},
+
+	_convertPositionTo: function( d, pos ) {
+
+		if ( !pos ) {
+			pos = this.position;
+		}
+		var mod = d === "absolute" ? 1 : -1,
+			scroll = this.cssPosition === "absolute" &&
+				!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?
+					this.offsetParent :
+					this.scrollParent,
+			scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pos.top	+
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top * mod -
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollTop() :
+					( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod )
+			),
+			left: (
+
+				// The absolute mouse position
+				pos.left +
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left * mod +
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left * mod	-
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 :
+					scroll.scrollLeft() ) * mod )
+			)
+		};
+
+	},
+
+	_generatePosition: function( event ) {
+
+		var top, left,
+			o = this.options,
+			pageX = event.pageX,
+			pageY = event.pageY,
+			scroll = this.cssPosition === "absolute" &&
+				!( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				$.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) ?
+					this.offsetParent :
+					this.scrollParent,
+				scrollIsRootNode = ( /(html|body)/i ).test( scroll[ 0 ].tagName );
+
+		// This is another very weird special case that only happens for relative elements:
+		// 1. If the css position is relative
+		// 2. and the scroll parent is the document or similar to the offset parent
+		// we have to refresh the relative offset during the scroll so there are no jumps
+		if ( this.cssPosition === "relative" && !( this.scrollParent[ 0 ] !== this.document[ 0 ] &&
+				this.scrollParent[ 0 ] !== this.offsetParent[ 0 ] ) ) {
+			this.offset.relative = this._getRelativeOffset();
+		}
+
+		/*
+		 * - Position constraining -
+		 * Constrain the position to a mix of grid, containment.
+		 */
+
+		if ( this.originalPosition ) { //If we are not dragging yet, we won't check for options
+
+			if ( this.containment ) {
+				if ( event.pageX - this.offset.click.left < this.containment[ 0 ] ) {
+					pageX = this.containment[ 0 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top < this.containment[ 1 ] ) {
+					pageY = this.containment[ 1 ] + this.offset.click.top;
+				}
+				if ( event.pageX - this.offset.click.left > this.containment[ 2 ] ) {
+					pageX = this.containment[ 2 ] + this.offset.click.left;
+				}
+				if ( event.pageY - this.offset.click.top > this.containment[ 3 ] ) {
+					pageY = this.containment[ 3 ] + this.offset.click.top;
+				}
+			}
+
+			if ( o.grid ) {
+				top = this.originalPageY + Math.round( ( pageY - this.originalPageY ) /
+					o.grid[ 1 ] ) * o.grid[ 1 ];
+				pageY = this.containment ?
+					( ( top - this.offset.click.top >= this.containment[ 1 ] &&
+						top - this.offset.click.top <= this.containment[ 3 ] ) ?
+							top :
+							( ( top - this.offset.click.top >= this.containment[ 1 ] ) ?
+								top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) :
+								top;
+
+				left = this.originalPageX + Math.round( ( pageX - this.originalPageX ) /
+					o.grid[ 0 ] ) * o.grid[ 0 ];
+				pageX = this.containment ?
+					( ( left - this.offset.click.left >= this.containment[ 0 ] &&
+						left - this.offset.click.left <= this.containment[ 2 ] ) ?
+							left :
+							( ( left - this.offset.click.left >= this.containment[ 0 ] ) ?
+								left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) :
+								left;
+			}
+
+		}
+
+		return {
+			top: (
+
+				// The absolute mouse position
+				pageY -
+
+				// Click offset (relative to the element)
+				this.offset.click.top -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.top -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.top +
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollTop() :
+					( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) )
+			),
+			left: (
+
+				// The absolute mouse position
+				pageX -
+
+				// Click offset (relative to the element)
+				this.offset.click.left -
+
+				// Only for relative positioned nodes: Relative offset from element to offset parent
+				this.offset.relative.left -
+
+				// The offsetParent's offset without borders (offset + border)
+				this.offset.parent.left +
+				( ( this.cssPosition === "fixed" ?
+					-this.scrollParent.scrollLeft() :
+					scrollIsRootNode ? 0 : scroll.scrollLeft() ) )
+			)
+		};
+
+	},
+
+	_rearrange: function( event, i, a, hardRefresh ) {
+
+		a ? a[ 0 ].appendChild( this.placeholder[ 0 ] ) :
+			i.item[ 0 ].parentNode.insertBefore( this.placeholder[ 0 ],
+				( this.direction === "down" ? i.item[ 0 ] : i.item[ 0 ].nextSibling ) );
+
+		//Various things done here to improve the performance:
+		// 1. we create a setTimeout, that calls refreshPositions
+		// 2. on the instance, we have a counter variable, that get's higher after every append
+		// 3. on the local scope, we copy the counter variable, and check in the timeout,
+		// if it's still the same
+		// 4. this lets only the last addition to the timeout stack through
+		this.counter = this.counter ? ++this.counter : 1;
+		var counter = this.counter;
+
+		this._delay( function() {
+			if ( counter === this.counter ) {
+
+				//Precompute after each DOM insertion, NOT on mousemove
+				this.refreshPositions( !hardRefresh );
+			}
+		} );
+
+	},
+
+	_clear: function( event, noPropagation ) {
+
+		this.reverting = false;
+
+		// We delay all events that have to be triggered to after the point where the placeholder
+		// has been removed and everything else normalized again
+		var i,
+			delayedTriggers = [];
+
+		// We first have to update the dom position of the actual currentItem
+		// Note: don't do it if the current item is already removed (by a user), or it gets
+		// reappended (see #4088)
+		if ( !this._noFinalSort && this.currentItem.parent().length ) {
+			this.placeholder.before( this.currentItem );
+		}
+		this._noFinalSort = null;
+
+		if ( this.helper[ 0 ] === this.currentItem[ 0 ] ) {
+			for ( i in this._storedCSS ) {
+				if ( this._storedCSS[ i ] === "auto" || this._storedCSS[ i ] === "static" ) {
+					this._storedCSS[ i ] = "";
+				}
+			}
+			this.currentItem.css( this._storedCSS );
+			this._removeClass( this.currentItem, "ui-sortable-helper" );
+		} else {
+			this.currentItem.show();
+		}
+
+		if ( this.fromOutside && !noPropagation ) {
+			delayedTriggers.push( function( event ) {
+				this._trigger( "receive", event, this._uiHash( this.fromOutside ) );
+			} );
+		}
+		if ( ( this.fromOutside ||
+				this.domPosition.prev !==
+				this.currentItem.prev().not( ".ui-sortable-helper" )[ 0 ] ||
+				this.domPosition.parent !== this.currentItem.parent()[ 0 ] ) && !noPropagation ) {
+
+			// Trigger update callback if the DOM position has changed
+			delayedTriggers.push( function( event ) {
+				this._trigger( "update", event, this._uiHash() );
+			} );
+		}
+
+		// Check if the items Container has Changed and trigger appropriate
+		// events.
+		if ( this !== this.currentContainer ) {
+			if ( !noPropagation ) {
+				delayedTriggers.push( function( event ) {
+					this._trigger( "remove", event, this._uiHash() );
+				} );
+				delayedTriggers.push( ( function( c ) {
+					return function( event ) {
+						c._trigger( "receive", event, this._uiHash( this ) );
+					};
+				} ).call( this, this.currentContainer ) );
+				delayedTriggers.push( ( function( c ) {
+					return function( event ) {
+						c._trigger( "update", event, this._uiHash( this ) );
+					};
+				} ).call( this, this.currentContainer ) );
+			}
+		}
+
+		//Post events to containers
+		function delayEvent( type, instance, container ) {
+			return function( event ) {
+				container._trigger( type, event, instance._uiHash( instance ) );
+			};
+		}
+		for ( i = this.containers.length - 1; i >= 0; i-- ) {
+			if ( !noPropagation ) {
+				delayedTriggers.push( delayEvent( "deactivate", this, this.containers[ i ] ) );
+			}
+			if ( this.containers[ i ].containerCache.over ) {
+				delayedTriggers.push( delayEvent( "out", this, this.containers[ i ] ) );
+				this.containers[ i ].containerCache.over = 0;
+			}
+		}
+
+		//Do what was originally in plugins
+		if ( this.storedCursor ) {
+			this.document.find( "body" ).css( "cursor", this.storedCursor );
+			this.storedStylesheet.remove();
+		}
+		if ( this._storedOpacity ) {
+			this.helper.css( "opacity", this._storedOpacity );
+		}
+		if ( this._storedZIndex ) {
+			this.helper.css( "zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex );
+		}
+
+		this.dragging = false;
+
+		if ( !noPropagation ) {
+			this._trigger( "beforeStop", event, this._uiHash() );
+		}
+
+		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately,
+		// it unbinds ALL events from the original node!
+		this.placeholder[ 0 ].parentNode.removeChild( this.placeholder[ 0 ] );
+
+		if ( !this.cancelHelperRemoval ) {
+			if ( this.helper[ 0 ] !== this.currentItem[ 0 ] ) {
+				this.helper.remove();
+			}
+			this.helper = null;
+		}
+
+		if ( !noPropagation ) {
+			for ( i = 0; i < delayedTriggers.length; i++ ) {
+
+				// Trigger all delayed events
+				delayedTriggers[ i ].call( this, event );
+			}
+			this._trigger( "stop", event, this._uiHash() );
+		}
+
+		this.fromOutside = false;
+		return !this.cancelHelperRemoval;
+
+	},
+
+	_trigger: function() {
+		if ( $.Widget.prototype._trigger.apply( this, arguments ) === false ) {
+			this.cancel();
+		}
+	},
+
+	_uiHash: function( _inst ) {
+		var inst = _inst || this;
+		return {
+			helper: inst.helper,
+			placeholder: inst.placeholder || $( [] ),
+			position: inst.position,
+			originalPosition: inst.originalPosition,
+			offset: inst.positionAbs,
+			item: inst.currentItem,
+			sender: _inst ? _inst.element : null
+		};
+	}
+
+} );
+
+
+/*!
+ * jQuery UI Spinner 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Spinner
+//>>group: Widgets
+//>>description: Displays buttons to easily input numbers via the keyboard or mouse.
+//>>docs: http://api.jqueryui.com/spinner/
+//>>demos: http://jqueryui.com/spinner/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/spinner.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+function spinnerModifer( fn ) {
+	return function() {
+		var previous = this.element.val();
+		fn.apply( this, arguments );
+		this._refresh();
+		if ( previous !== this.element.val() ) {
+			this._trigger( "change" );
+		}
+	};
+}
+
+$.widget( "ui.spinner", {
+	version: "1.12.0",
+	defaultElement: "<input>",
+	widgetEventPrefix: "spin",
+	options: {
+		classes: {
+			"ui-spinner": "ui-corner-all",
+			"ui-spinner-down": "ui-corner-br",
+			"ui-spinner-up": "ui-corner-tr"
+		},
+		culture: null,
+		icons: {
+			down: "ui-icon-triangle-1-s",
+			up: "ui-icon-triangle-1-n"
+		},
+		incremental: true,
+		max: null,
+		min: null,
+		numberFormat: null,
+		page: 10,
+		step: 1,
+
+		change: null,
+		spin: null,
+		start: null,
+		stop: null
+	},
+
+	_create: function() {
+
+		// handle string values that need to be parsed
+		this._setOption( "max", this.options.max );
+		this._setOption( "min", this.options.min );
+		this._setOption( "step", this.options.step );
+
+		// Only format if there is a value, prevents the field from being marked
+		// as invalid in Firefox, see #9573.
+		if ( this.value() !== "" ) {
+
+			// Format the value, but don't constrain.
+			this._value( this.element.val(), true );
+		}
+
+		this._draw();
+		this._on( this._events );
+		this._refresh();
+
+		// Turning off autocomplete prevents the browser from remembering the
+		// value when navigating through history, so we re-enable autocomplete
+		// if the page is unloaded before the widget is destroyed. #7790
+		this._on( this.window, {
+			beforeunload: function() {
+				this.element.removeAttr( "autocomplete" );
+			}
+		} );
+	},
+
+	_getCreateOptions: function() {
+		var options = this._super();
+		var element = this.element;
+
+		$.each( [ "min", "max", "step" ], function( i, option ) {
+			var value = element.attr( option );
+			if ( value != null && value.length ) {
+				options[ option ] = value;
+			}
+		} );
+
+		return options;
+	},
+
+	_events: {
+		keydown: function( event ) {
+			if ( this._start( event ) && this._keydown( event ) ) {
+				event.preventDefault();
+			}
+		},
+		keyup: "_stop",
+		focus: function() {
+			this.previous = this.element.val();
+		},
+		blur: function( event ) {
+			if ( this.cancelBlur ) {
+				delete this.cancelBlur;
+				return;
+			}
+
+			this._stop();
+			this._refresh();
+			if ( this.previous !== this.element.val() ) {
+				this._trigger( "change", event );
+			}
+		},
+		mousewheel: function( event, delta ) {
+			if ( !delta ) {
+				return;
+			}
+			if ( !this.spinning && !this._start( event ) ) {
+				return false;
+			}
+
+			this._spin( ( delta > 0 ? 1 : -1 ) * this.options.step, event );
+			clearTimeout( this.mousewheelTimer );
+			this.mousewheelTimer = this._delay( function() {
+				if ( this.spinning ) {
+					this._stop( event );
+				}
+			}, 100 );
+			event.preventDefault();
+		},
+		"mousedown .ui-spinner-button": function( event ) {
+			var previous;
+
+			// We never want the buttons to have focus; whenever the user is
+			// interacting with the spinner, the focus should be on the input.
+			// If the input is focused then this.previous is properly set from
+			// when the input first received focus. If the input is not focused
+			// then we need to set this.previous based on the value before spinning.
+			previous = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] ) ?
+				this.previous : this.element.val();
+			function checkFocus() {
+				var isActive = this.element[ 0 ] === $.ui.safeActiveElement( this.document[ 0 ] );
+				if ( !isActive ) {
+					this.element.trigger( "focus" );
+					this.previous = previous;
+
+					// support: IE
+					// IE sets focus asynchronously, so we need to check if focus
+					// moved off of the input because the user clicked on the button.
+					this._delay( function() {
+						this.previous = previous;
+					} );
+				}
+			}
+
+			// Ensure focus is on (or stays on) the text field
+			event.preventDefault();
+			checkFocus.call( this );
+
+			// Support: IE
+			// IE doesn't prevent moving focus even with event.preventDefault()
+			// so we set a flag to know when we should ignore the blur event
+			// and check (again) if focus moved off of the input.
+			this.cancelBlur = true;
+			this._delay( function() {
+				delete this.cancelBlur;
+				checkFocus.call( this );
+			} );
+
+			if ( this._start( event ) === false ) {
+				return;
+			}
+
+			this._repeat( null, $( event.currentTarget )
+				.hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+		"mouseup .ui-spinner-button": "_stop",
+		"mouseenter .ui-spinner-button": function( event ) {
+
+			// button will add ui-state-active if mouse was down while mouseleave and kept down
+			if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) {
+				return;
+			}
+
+			if ( this._start( event ) === false ) {
+				return false;
+			}
+			this._repeat( null, $( event.currentTarget )
+				.hasClass( "ui-spinner-up" ) ? 1 : -1, event );
+		},
+
+		// TODO: do we really want to consider this a stop?
+		// shouldn't we just stop the repeater and wait until mouseup before
+		// we trigger the stop event?
+		"mouseleave .ui-spinner-button": "_stop"
+	},
+
+	// Support mobile enhanced option and make backcompat more sane
+	_enhance: function() {
+		this.uiSpinner = this.element
+			.attr( "autocomplete", "off" )
+			.wrap( "<span>" )
+			.parent()
+
+				// Add buttons
+				.append(
+					"<a></a><a></a>"
+				);
+	},
+
+	_draw: function() {
+		this._enhance();
+
+		this._addClass( this.uiSpinner, "ui-spinner", "ui-widget ui-widget-content" );
+		this._addClass( "ui-spinner-input" );
+
+		this.element.attr( "role", "spinbutton" );
+
+		// Button bindings
+		this.buttons = this.uiSpinner.children( "a" )
+			.attr( "tabIndex", -1 )
+			.attr( "aria-hidden", true )
+			.button( {
+				classes: {
+					"ui-button": ""
+				}
+			} );
+
+		// TODO: Right now button does not support classes this is already updated in button PR
+		this._removeClass( this.buttons, "ui-corner-all" );
+
+		this._addClass( this.buttons.first(), "ui-spinner-button ui-spinner-up" );
+		this._addClass( this.buttons.last(), "ui-spinner-button ui-spinner-down" );
+		this.buttons.first().button( {
+			"icon": this.options.icons.up,
+			"showLabel": false
+		} );
+		this.buttons.last().button( {
+			"icon": this.options.icons.down,
+			"showLabel": false
+		} );
+
+		// IE 6 doesn't understand height: 50% for the buttons
+		// unless the wrapper has an explicit height
+		if ( this.buttons.height() > Math.ceil( this.uiSpinner.height() * 0.5 ) &&
+				this.uiSpinner.height() > 0 ) {
+			this.uiSpinner.height( this.uiSpinner.height() );
+		}
+	},
+
+	_keydown: function( event ) {
+		var options = this.options,
+			keyCode = $.ui.keyCode;
+
+		switch ( event.keyCode ) {
+		case keyCode.UP:
+			this._repeat( null, 1, event );
+			return true;
+		case keyCode.DOWN:
+			this._repeat( null, -1, event );
+			return true;
+		case keyCode.PAGE_UP:
+			this._repeat( null, options.page, event );
+			return true;
+		case keyCode.PAGE_DOWN:
+			this._repeat( null, -options.page, event );
+			return true;
+		}
+
+		return false;
+	},
+
+	_start: function( event ) {
+		if ( !this.spinning && this._trigger( "start", event ) === false ) {
+			return false;
+		}
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+		this.spinning = true;
+		return true;
+	},
+
+	_repeat: function( i, steps, event ) {
+		i = i || 500;
+
+		clearTimeout( this.timer );
+		this.timer = this._delay( function() {
+			this._repeat( 40, steps, event );
+		}, i );
+
+		this._spin( steps * this.options.step, event );
+	},
+
+	_spin: function( step, event ) {
+		var value = this.value() || 0;
+
+		if ( !this.counter ) {
+			this.counter = 1;
+		}
+
+		value = this._adjustValue( value + step * this._increment( this.counter ) );
+
+		if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false ) {
+			this._value( value );
+			this.counter++;
+		}
+	},
+
+	_increment: function( i ) {
+		var incremental = this.options.incremental;
+
+		if ( incremental ) {
+			return $.isFunction( incremental ) ?
+				incremental( i ) :
+				Math.floor( i * i * i / 50000 - i * i / 500 + 17 * i / 200 + 1 );
+		}
+
+		return 1;
+	},
+
+	_precision: function() {
+		var precision = this._precisionOf( this.options.step );
+		if ( this.options.min !== null ) {
+			precision = Math.max( precision, this._precisionOf( this.options.min ) );
+		}
+		return precision;
+	},
+
+	_precisionOf: function( num ) {
+		var str = num.toString(),
+			decimal = str.indexOf( "." );
+		return decimal === -1 ? 0 : str.length - decimal - 1;
+	},
+
+	_adjustValue: function( value ) {
+		var base, aboveMin,
+			options = this.options;
+
+		// Make sure we're at a valid step
+		// - find out where we are relative to the base (min or 0)
+		base = options.min !== null ? options.min : 0;
+		aboveMin = value - base;
+
+		// - round to the nearest step
+		aboveMin = Math.round( aboveMin / options.step ) * options.step;
+
+		// - rounding is based on 0, so adjust back to our base
+		value = base + aboveMin;
+
+		// Fix precision from bad JS floating point math
+		value = parseFloat( value.toFixed( this._precision() ) );
+
+		// Clamp the value
+		if ( options.max !== null && value > options.max ) {
+			return options.max;
+		}
+		if ( options.min !== null && value < options.min ) {
+			return options.min;
+		}
+
+		return value;
+	},
+
+	_stop: function( event ) {
+		if ( !this.spinning ) {
+			return;
+		}
+
+		clearTimeout( this.timer );
+		clearTimeout( this.mousewheelTimer );
+		this.counter = 0;
+		this.spinning = false;
+		this._trigger( "stop", event );
+	},
+
+	_setOption: function( key, value ) {
+		var prevValue, first, last;
+
+		if ( key === "culture" || key === "numberFormat" ) {
+			prevValue = this._parse( this.element.val() );
+			this.options[ key ] = value;
+			this.element.val( this._format( prevValue ) );
+			return;
+		}
+
+		if ( key === "max" || key === "min" || key === "step" ) {
+			if ( typeof value === "string" ) {
+				value = this._parse( value );
+			}
+		}
+		if ( key === "icons" ) {
+			first = this.buttons.first().find( ".ui-icon" );
+			this._removeClass( first, null, this.options.icons.up );
+			this._addClass( first, null, value.up );
+			last = this.buttons.last().find( ".ui-icon" );
+			this._removeClass( last, null, this.options.icons.down );
+			this._addClass( last, null, value.down );
+		}
+
+		this._super( key, value );
+	},
+
+	_setOptionDisabled: function( value ) {
+		this._super( value );
+
+		this._toggleClass( this.uiSpinner, null, "ui-state-disabled", !!value );
+		this.element.prop( "disabled", !!value );
+		this.buttons.button( value ? "disable" : "enable" );
+	},
+
+	_setOptions: spinnerModifer( function( options ) {
+		this._super( options );
+	} ),
+
+	_parse: function( val ) {
+		if ( typeof val === "string" && val !== "" ) {
+			val = window.Globalize && this.options.numberFormat ?
+				Globalize.parseFloat( val, 10, this.options.culture ) : +val;
+		}
+		return val === "" || isNaN( val ) ? null : val;
+	},
+
+	_format: function( value ) {
+		if ( value === "" ) {
+			return "";
+		}
+		return window.Globalize && this.options.numberFormat ?
+			Globalize.format( value, this.options.numberFormat, this.options.culture ) :
+			value;
+	},
+
+	_refresh: function() {
+		this.element.attr( {
+			"aria-valuemin": this.options.min,
+			"aria-valuemax": this.options.max,
+
+			// TODO: what should we do with values that can't be parsed?
+			"aria-valuenow": this._parse( this.element.val() )
+		} );
+	},
+
+	isValid: function() {
+		var value = this.value();
+
+		// Null is invalid
+		if ( value === null ) {
+			return false;
+		}
+
+		// If value gets adjusted, it's invalid
+		return value === this._adjustValue( value );
+	},
+
+	// Update the value without triggering change
+	_value: function( value, allowAny ) {
+		var parsed;
+		if ( value !== "" ) {
+			parsed = this._parse( value );
+			if ( parsed !== null ) {
+				if ( !allowAny ) {
+					parsed = this._adjustValue( parsed );
+				}
+				value = this._format( parsed );
+			}
+		}
+		this.element.val( value );
+		this._refresh();
+	},
+
+	_destroy: function() {
+		this.element
+			.prop( "disabled", false )
+			.removeAttr( "autocomplete role aria-valuemin aria-valuemax aria-valuenow" );
+
+		this.uiSpinner.replaceWith( this.element );
+	},
+
+	stepUp: spinnerModifer( function( steps ) {
+		this._stepUp( steps );
+	} ),
+	_stepUp: function( steps ) {
+		if ( this._start() ) {
+			this._spin( ( steps || 1 ) * this.options.step );
+			this._stop();
+		}
+	},
+
+	stepDown: spinnerModifer( function( steps ) {
+		this._stepDown( steps );
+	} ),
+	_stepDown: function( steps ) {
+		if ( this._start() ) {
+			this._spin( ( steps || 1 ) * -this.options.step );
+			this._stop();
+		}
+	},
+
+	pageUp: spinnerModifer( function( pages ) {
+		this._stepUp( ( pages || 1 ) * this.options.page );
+	} ),
+
+	pageDown: spinnerModifer( function( pages ) {
+		this._stepDown( ( pages || 1 ) * this.options.page );
+	} ),
+
+	value: function( newVal ) {
+		if ( !arguments.length ) {
+			return this._parse( this.element.val() );
+		}
+		spinnerModifer( this._value ).call( this, newVal );
+	},
+
+	widget: function() {
+		return this.uiSpinner;
+	}
+} );
+
+// DEPRECATED
+// TODO: switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for spinner html extension points
+	$.widget( "ui.spinner", $.ui.spinner, {
+		_enhance: function() {
+			this.uiSpinner = this.element
+				.attr( "autocomplete", "off" )
+				.wrap( this._uiSpinnerHtml() )
+				.parent()
+
+					// Add buttons
+					.append( this._buttonHtml() );
+		},
+		_uiSpinnerHtml: function() {
+			return "<span>";
+		},
+
+		_buttonHtml: function() {
+			return "<a></a><a></a>";
+		}
+	} );
+}
+
+var widgetsSpinner = $.ui.spinner;
+
+
+/*!
+ * jQuery UI Tabs 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Tabs
+//>>group: Widgets
+//>>description: Transforms a set of container elements into a tab structure.
+//>>docs: http://api.jqueryui.com/tabs/
+//>>demos: http://jqueryui.com/tabs/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/tabs.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.tabs", {
+	version: "1.12.0",
+	delay: 300,
+	options: {
+		active: null,
+		classes: {
+			"ui-tabs": "ui-corner-all",
+			"ui-tabs-nav": "ui-corner-all",
+			"ui-tabs-panel": "ui-corner-bottom",
+			"ui-tabs-tab": "ui-corner-top"
+		},
+		collapsible: false,
+		event: "click",
+		heightStyle: "content",
+		hide: null,
+		show: null,
+
+		// Callbacks
+		activate: null,
+		beforeActivate: null,
+		beforeLoad: null,
+		load: null
+	},
+
+	_isLocal: ( function() {
+		var rhash = /#.*$/;
+
+		return function( anchor ) {
+			var anchorUrl, locationUrl;
+
+			anchorUrl = anchor.href.replace( rhash, "" );
+			locationUrl = location.href.replace( rhash, "" );
+
+			// Decoding may throw an error if the URL isn't UTF-8 (#9518)
+			try {
+				anchorUrl = decodeURIComponent( anchorUrl );
+			} catch ( error ) {}
+			try {
+				locationUrl = decodeURIComponent( locationUrl );
+			} catch ( error ) {}
+
+			return anchor.hash.length > 1 && anchorUrl === locationUrl;
+		};
+	} )(),
+
+	_create: function() {
+		var that = this,
+			options = this.options;
+
+		this.running = false;
+
+		this._addClass( "ui-tabs", "ui-widget ui-widget-content" );
+		this._toggleClass( "ui-tabs-collapsible", null, options.collapsible );
+
+		this._processTabs();
+		options.active = this._initialActive();
+
+		// Take disabling tabs via class attribute from HTML
+		// into account and update option properly.
+		if ( $.isArray( options.disabled ) ) {
+			options.disabled = $.unique( options.disabled.concat(
+				$.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) {
+					return that.tabs.index( li );
+				} )
+			) ).sort();
+		}
+
+		// Check for length avoids error when initializing empty list
+		if ( this.options.active !== false && this.anchors.length ) {
+			this.active = this._findActive( options.active );
+		} else {
+			this.active = $();
+		}
+
+		this._refresh();
+
+		if ( this.active.length ) {
+			this.load( options.active );
+		}
+	},
+
+	_initialActive: function() {
+		var active = this.options.active,
+			collapsible = this.options.collapsible,
+			locationHash = location.hash.substring( 1 );
+
+		if ( active === null ) {
+
+			// check the fragment identifier in the URL
+			if ( locationHash ) {
+				this.tabs.each( function( i, tab ) {
+					if ( $( tab ).attr( "aria-controls" ) === locationHash ) {
+						active = i;
+						return false;
+					}
+				} );
+			}
+
+			// Check for a tab marked active via a class
+			if ( active === null ) {
+				active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) );
+			}
+
+			// No active tab, set to false
+			if ( active === null || active === -1 ) {
+				active = this.tabs.length ? 0 : false;
+			}
+		}
+
+		// Handle numbers: negative, out of range
+		if ( active !== false ) {
+			active = this.tabs.index( this.tabs.eq( active ) );
+			if ( active === -1 ) {
+				active = collapsible ? false : 0;
+			}
+		}
+
+		// Don't allow collapsible: false and active: false
+		if ( !collapsible && active === false && this.anchors.length ) {
+			active = 0;
+		}
+
+		return active;
+	},
+
+	_getCreateEventData: function() {
+		return {
+			tab: this.active,
+			panel: !this.active.length ? $() : this._getPanelForTab( this.active )
+		};
+	},
+
+	_tabKeydown: function( event ) {
+		var focusedTab = $( $.ui.safeActiveElement( this.document[ 0 ] ) ).closest( "li" ),
+			selectedIndex = this.tabs.index( focusedTab ),
+			goingForward = true;
+
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		switch ( event.keyCode ) {
+		case $.ui.keyCode.RIGHT:
+		case $.ui.keyCode.DOWN:
+			selectedIndex++;
+			break;
+		case $.ui.keyCode.UP:
+		case $.ui.keyCode.LEFT:
+			goingForward = false;
+			selectedIndex--;
+			break;
+		case $.ui.keyCode.END:
+			selectedIndex = this.anchors.length - 1;
+			break;
+		case $.ui.keyCode.HOME:
+			selectedIndex = 0;
+			break;
+		case $.ui.keyCode.SPACE:
+
+			// Activate only, no collapsing
+			event.preventDefault();
+			clearTimeout( this.activating );
+			this._activate( selectedIndex );
+			return;
+		case $.ui.keyCode.ENTER:
+
+			// Toggle (cancel delayed activation, allow collapsing)
+			event.preventDefault();
+			clearTimeout( this.activating );
+
+			// Determine if we should collapse or activate
+			this._activate( selectedIndex === this.options.active ? false : selectedIndex );
+			return;
+		default:
+			return;
+		}
+
+		// Focus the appropriate tab, based on which key was pressed
+		event.preventDefault();
+		clearTimeout( this.activating );
+		selectedIndex = this._focusNextTab( selectedIndex, goingForward );
+
+		// Navigating with control/command key will prevent automatic activation
+		if ( !event.ctrlKey && !event.metaKey ) {
+
+			// Update aria-selected immediately so that AT think the tab is already selected.
+			// Otherwise AT may confuse the user by stating that they need to activate the tab,
+			// but the tab will already be activated by the time the announcement finishes.
+			focusedTab.attr( "aria-selected", "false" );
+			this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" );
+
+			this.activating = this._delay( function() {
+				this.option( "active", selectedIndex );
+			}, this.delay );
+		}
+	},
+
+	_panelKeydown: function( event ) {
+		if ( this._handlePageNav( event ) ) {
+			return;
+		}
+
+		// Ctrl+up moves focus to the current tab
+		if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) {
+			event.preventDefault();
+			this.active.trigger( "focus" );
+		}
+	},
+
+	// Alt+page up/down moves focus to the previous/next tab (and activates)
+	_handlePageNav: function( event ) {
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) {
+			this._activate( this._focusNextTab( this.options.active - 1, false ) );
+			return true;
+		}
+		if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) {
+			this._activate( this._focusNextTab( this.options.active + 1, true ) );
+			return true;
+		}
+	},
+
+	_findNextTab: function( index, goingForward ) {
+		var lastTabIndex = this.tabs.length - 1;
+
+		function constrain() {
+			if ( index > lastTabIndex ) {
+				index = 0;
+			}
+			if ( index < 0 ) {
+				index = lastTabIndex;
+			}
+			return index;
+		}
+
+		while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) {
+			index = goingForward ? index + 1 : index - 1;
+		}
+
+		return index;
+	},
+
+	_focusNextTab: function( index, goingForward ) {
+		index = this._findNextTab( index, goingForward );
+		this.tabs.eq( index ).trigger( "focus" );
+		return index;
+	},
+
+	_setOption: function( key, value ) {
+		if ( key === "active" ) {
+
+			// _activate() will handle invalid values and update this.options
+			this._activate( value );
+			return;
+		}
+
+		this._super( key, value );
+
+		if ( key === "collapsible" ) {
+			this._toggleClass( "ui-tabs-collapsible", null, value );
+
+			// Setting collapsible: false while collapsed; open first panel
+			if ( !value && this.options.active === false ) {
+				this._activate( 0 );
+			}
+		}
+
+		if ( key === "event" ) {
+			this._setupEvents( value );
+		}
+
+		if ( key === "heightStyle" ) {
+			this._setupHeightStyle( value );
+		}
+	},
+
+	_sanitizeSelector: function( hash ) {
+		return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : "";
+	},
+
+	refresh: function() {
+		var options = this.options,
+			lis = this.tablist.children( ":has(a[href])" );
+
+		// Get disabled tabs from class attribute from HTML
+		// this will get converted to a boolean if needed in _refresh()
+		options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) {
+			return lis.index( tab );
+		} );
+
+		this._processTabs();
+
+		// Was collapsed or no tabs
+		if ( options.active === false || !this.anchors.length ) {
+			options.active = false;
+			this.active = $();
+
+		// was active, but active tab is gone
+		} else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) {
+
+			// all remaining tabs are disabled
+			if ( this.tabs.length === options.disabled.length ) {
+				options.active = false;
+				this.active = $();
+
+			// activate previous tab
+			} else {
+				this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) );
+			}
+
+		// was active, active tab still exists
+		} else {
+
+			// make sure active index is correct
+			options.active = this.tabs.index( this.active );
+		}
+
+		this._refresh();
+	},
+
+	_refresh: function() {
+		this._setOptionDisabled( this.options.disabled );
+		this._setupEvents( this.options.event );
+		this._setupHeightStyle( this.options.heightStyle );
+
+		this.tabs.not( this.active ).attr( {
+			"aria-selected": "false",
+			"aria-expanded": "false",
+			tabIndex: -1
+		} );
+		this.panels.not( this._getPanelForTab( this.active ) )
+			.hide()
+			.attr( {
+				"aria-hidden": "true"
+			} );
+
+		// Make sure one tab is in the tab order
+		if ( !this.active.length ) {
+			this.tabs.eq( 0 ).attr( "tabIndex", 0 );
+		} else {
+			this.active
+				.attr( {
+					"aria-selected": "true",
+					"aria-expanded": "true",
+					tabIndex: 0
+				} );
+			this._addClass( this.active, "ui-tabs-active", "ui-state-active" );
+			this._getPanelForTab( this.active )
+				.show()
+				.attr( {
+					"aria-hidden": "false"
+				} );
+		}
+	},
+
+	_processTabs: function() {
+		var that = this,
+			prevTabs = this.tabs,
+			prevAnchors = this.anchors,
+			prevPanels = this.panels;
+
+		this.tablist = this._getList().attr( "role", "tablist" );
+		this._addClass( this.tablist, "ui-tabs-nav",
+			"ui-helper-reset ui-helper-clearfix ui-widget-header" );
+
+		// Prevent users from focusing disabled tabs via click
+		this.tablist
+			.on( "mousedown" + this.eventNamespace, "> li", function( event ) {
+				if ( $( this ).is( ".ui-state-disabled" ) ) {
+					event.preventDefault();
+				}
+			} )
+
+			// Support: IE <9
+			// Preventing the default action in mousedown doesn't prevent IE
+			// from focusing the element, so if the anchor gets focused, blur.
+			// We don't have to worry about focusing the previously focused
+			// element since clicking on a non-focusable element should focus
+			// the body anyway.
+			.on( "focus" + this.eventNamespace, ".ui-tabs-anchor", function() {
+				if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) {
+					this.blur();
+				}
+			} );
+
+		this.tabs = this.tablist.find( "> li:has(a[href])" )
+			.attr( {
+				role: "tab",
+				tabIndex: -1
+			} );
+		this._addClass( this.tabs, "ui-tabs-tab", "ui-state-default" );
+
+		this.anchors = this.tabs.map( function() {
+			return $( "a", this )[ 0 ];
+		} )
+			.attr( {
+				role: "presentation",
+				tabIndex: -1
+			} );
+		this._addClass( this.anchors, "ui-tabs-anchor" );
+
+		this.panels = $();
+
+		this.anchors.each( function( i, anchor ) {
+			var selector, panel, panelId,
+				anchorId = $( anchor ).uniqueId().attr( "id" ),
+				tab = $( anchor ).closest( "li" ),
+				originalAriaControls = tab.attr( "aria-controls" );
+
+			// Inline tab
+			if ( that._isLocal( anchor ) ) {
+				selector = anchor.hash;
+				panelId = selector.substring( 1 );
+				panel = that.element.find( that._sanitizeSelector( selector ) );
+
+			// remote tab
+			} else {
+
+				// If the tab doesn't already have aria-controls,
+				// generate an id by using a throw-away element
+				panelId = tab.attr( "aria-controls" ) || $( {} ).uniqueId()[ 0 ].id;
+				selector = "#" + panelId;
+				panel = that.element.find( selector );
+				if ( !panel.length ) {
+					panel = that._createPanel( panelId );
+					panel.insertAfter( that.panels[ i - 1 ] || that.tablist );
+				}
+				panel.attr( "aria-live", "polite" );
+			}
+
+			if ( panel.length ) {
+				that.panels = that.panels.add( panel );
+			}
+			if ( originalAriaControls ) {
+				tab.data( "ui-tabs-aria-controls", originalAriaControls );
+			}
+			tab.attr( {
+				"aria-controls": panelId,
+				"aria-labelledby": anchorId
+			} );
+			panel.attr( "aria-labelledby", anchorId );
+		} );
+
+		this.panels.attr( "role", "tabpanel" );
+		this._addClass( this.panels, "ui-tabs-panel", "ui-widget-content" );
+
+		// Avoid memory leaks (#10056)
+		if ( prevTabs ) {
+			this._off( prevTabs.not( this.tabs ) );
+			this._off( prevAnchors.not( this.anchors ) );
+			this._off( prevPanels.not( this.panels ) );
+		}
+	},
+
+	// Allow overriding how to find the list for rare usage scenarios (#7715)
+	_getList: function() {
+		return this.tablist || this.element.find( "ol, ul" ).eq( 0 );
+	},
+
+	_createPanel: function( id ) {
+		return $( "<div>" )
+			.attr( "id", id )
+			.data( "ui-tabs-destroy", true );
+	},
+
+	_setOptionDisabled: function( disabled ) {
+		var currentItem, li, i;
+
+		if ( $.isArray( disabled ) ) {
+			if ( !disabled.length ) {
+				disabled = false;
+			} else if ( disabled.length === this.anchors.length ) {
+				disabled = true;
+			}
+		}
+
+		// Disable tabs
+		for ( i = 0; ( li = this.tabs[ i ] ); i++ ) {
+			currentItem = $( li );
+			if ( disabled === true || $.inArray( i, disabled ) !== -1 ) {
+				currentItem.attr( "aria-disabled", "true" );
+				this._addClass( currentItem, null, "ui-state-disabled" );
+			} else {
+				currentItem.removeAttr( "aria-disabled" );
+				this._removeClass( currentItem, null, "ui-state-disabled" );
+			}
+		}
+
+		this.options.disabled = disabled;
+
+		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null,
+			disabled === true );
+	},
+
+	_setupEvents: function( event ) {
+		var events = {};
+		if ( event ) {
+			$.each( event.split( " " ), function( index, eventName ) {
+				events[ eventName ] = "_eventHandler";
+			} );
+		}
+
+		this._off( this.anchors.add( this.tabs ).add( this.panels ) );
+
+		// Always prevent the default action, even when disabled
+		this._on( true, this.anchors, {
+			click: function( event ) {
+				event.preventDefault();
+			}
+		} );
+		this._on( this.anchors, events );
+		this._on( this.tabs, { keydown: "_tabKeydown" } );
+		this._on( this.panels, { keydown: "_panelKeydown" } );
+
+		this._focusable( this.tabs );
+		this._hoverable( this.tabs );
+	},
+
+	_setupHeightStyle: function( heightStyle ) {
+		var maxHeight,
+			parent = this.element.parent();
+
+		if ( heightStyle === "fill" ) {
+			maxHeight = parent.height();
+			maxHeight -= this.element.outerHeight() - this.element.height();
+
+			this.element.siblings( ":visible" ).each( function() {
+				var elem = $( this ),
+					position = elem.css( "position" );
+
+				if ( position === "absolute" || position === "fixed" ) {
+					return;
+				}
+				maxHeight -= elem.outerHeight( true );
+			} );
+
+			this.element.children().not( this.panels ).each( function() {
+				maxHeight -= $( this ).outerHeight( true );
+			} );
+
+			this.panels.each( function() {
+				$( this ).height( Math.max( 0, maxHeight -
+					$( this ).innerHeight() + $( this ).height() ) );
+			} )
+				.css( "overflow", "auto" );
+		} else if ( heightStyle === "auto" ) {
+			maxHeight = 0;
+			this.panels.each( function() {
+				maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
+			} ).height( maxHeight );
+		}
+	},
+
+	_eventHandler: function( event ) {
+		var options = this.options,
+			active = this.active,
+			anchor = $( event.currentTarget ),
+			tab = anchor.closest( "li" ),
+			clickedIsActive = tab[ 0 ] === active[ 0 ],
+			collapsing = clickedIsActive && options.collapsible,
+			toShow = collapsing ? $() : this._getPanelForTab( tab ),
+			toHide = !active.length ? $() : this._getPanelForTab( active ),
+			eventData = {
+				oldTab: active,
+				oldPanel: toHide,
+				newTab: collapsing ? $() : tab,
+				newPanel: toShow
+			};
+
+		event.preventDefault();
+
+		if ( tab.hasClass( "ui-state-disabled" ) ||
+
+				// tab is already loading
+				tab.hasClass( "ui-tabs-loading" ) ||
+
+				// can't switch durning an animation
+				this.running ||
+
+				// click on active header, but not collapsible
+				( clickedIsActive && !options.collapsible ) ||
+
+				// allow canceling activation
+				( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
+			return;
+		}
+
+		options.active = collapsing ? false : this.tabs.index( tab );
+
+		this.active = clickedIsActive ? $() : tab;
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		if ( !toHide.length && !toShow.length ) {
+			$.error( "jQuery UI Tabs: Mismatching fragment identifier." );
+		}
+
+		if ( toShow.length ) {
+			this.load( this.tabs.index( tab ), event );
+		}
+		this._toggle( event, eventData );
+	},
+
+	// Handles show/hide for selecting tabs
+	_toggle: function( event, eventData ) {
+		var that = this,
+			toShow = eventData.newPanel,
+			toHide = eventData.oldPanel;
+
+		this.running = true;
+
+		function complete() {
+			that.running = false;
+			that._trigger( "activate", event, eventData );
+		}
+
+		function show() {
+			that._addClass( eventData.newTab.closest( "li" ), "ui-tabs-active", "ui-state-active" );
+
+			if ( toShow.length && that.options.show ) {
+				that._show( toShow, that.options.show, complete );
+			} else {
+				toShow.show();
+				complete();
+			}
+		}
+
+		// Start out by hiding, then showing, then completing
+		if ( toHide.length && this.options.hide ) {
+			this._hide( toHide, this.options.hide, function() {
+				that._removeClass( eventData.oldTab.closest( "li" ),
+					"ui-tabs-active", "ui-state-active" );
+				show();
+			} );
+		} else {
+			this._removeClass( eventData.oldTab.closest( "li" ),
+				"ui-tabs-active", "ui-state-active" );
+			toHide.hide();
+			show();
+		}
+
+		toHide.attr( "aria-hidden", "true" );
+		eventData.oldTab.attr( {
+			"aria-selected": "false",
+			"aria-expanded": "false"
+		} );
+
+		// If we're switching tabs, remove the old tab from the tab order.
+		// If we're opening from collapsed state, remove the previous tab from the tab order.
+		// If we're collapsing, then keep the collapsing tab in the tab order.
+		if ( toShow.length && toHide.length ) {
+			eventData.oldTab.attr( "tabIndex", -1 );
+		} else if ( toShow.length ) {
+			this.tabs.filter( function() {
+				return $( this ).attr( "tabIndex" ) === 0;
+			} )
+				.attr( "tabIndex", -1 );
+		}
+
+		toShow.attr( "aria-hidden", "false" );
+		eventData.newTab.attr( {
+			"aria-selected": "true",
+			"aria-expanded": "true",
+			tabIndex: 0
+		} );
+	},
+
+	_activate: function( index ) {
+		var anchor,
+			active = this._findActive( index );
+
+		// Trying to activate the already active panel
+		if ( active[ 0 ] === this.active[ 0 ] ) {
+			return;
+		}
+
+		// Trying to collapse, simulate a click on the current active header
+		if ( !active.length ) {
+			active = this.active;
+		}
+
+		anchor = active.find( ".ui-tabs-anchor" )[ 0 ];
+		this._eventHandler( {
+			target: anchor,
+			currentTarget: anchor,
+			preventDefault: $.noop
+		} );
+	},
+
+	_findActive: function( index ) {
+		return index === false ? $() : this.tabs.eq( index );
+	},
+
+	_getIndex: function( index ) {
+
+		// meta-function to give users option to provide a href string instead of a numerical index.
+		if ( typeof index === "string" ) {
+			index = this.anchors.index( this.anchors.filter( "[href$='" +
+				$.ui.escapeSelector( index ) + "']" ) );
+		}
+
+		return index;
+	},
+
+	_destroy: function() {
+		if ( this.xhr ) {
+			this.xhr.abort();
+		}
+
+		this.tablist
+			.removeAttr( "role" )
+			.off( this.eventNamespace );
+
+		this.anchors
+			.removeAttr( "role tabIndex" )
+			.removeUniqueId();
+
+		this.tabs.add( this.panels ).each( function() {
+			if ( $.data( this, "ui-tabs-destroy" ) ) {
+				$( this ).remove();
+			} else {
+				$( this ).removeAttr( "role tabIndex " +
+					"aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded" );
+			}
+		} );
+
+		this.tabs.each( function() {
+			var li = $( this ),
+				prev = li.data( "ui-tabs-aria-controls" );
+			if ( prev ) {
+				li
+					.attr( "aria-controls", prev )
+					.removeData( "ui-tabs-aria-controls" );
+			} else {
+				li.removeAttr( "aria-controls" );
+			}
+		} );
+
+		this.panels.show();
+
+		if ( this.options.heightStyle !== "content" ) {
+			this.panels.css( "height", "" );
+		}
+	},
+
+	enable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === false ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = false;
+		} else {
+			index = this._getIndex( index );
+			if ( $.isArray( disabled ) ) {
+				disabled = $.map( disabled, function( num ) {
+					return num !== index ? num : null;
+				} );
+			} else {
+				disabled = $.map( this.tabs, function( li, num ) {
+					return num !== index ? num : null;
+				} );
+			}
+		}
+		this._setOptionDisabled( disabled );
+	},
+
+	disable: function( index ) {
+		var disabled = this.options.disabled;
+		if ( disabled === true ) {
+			return;
+		}
+
+		if ( index === undefined ) {
+			disabled = true;
+		} else {
+			index = this._getIndex( index );
+			if ( $.inArray( index, disabled ) !== -1 ) {
+				return;
+			}
+			if ( $.isArray( disabled ) ) {
+				disabled = $.merge( [ index ], disabled ).sort();
+			} else {
+				disabled = [ index ];
+			}
+		}
+		this._setOptionDisabled( disabled );
+	},
+
+	load: function( index, event ) {
+		index = this._getIndex( index );
+		var that = this,
+			tab = this.tabs.eq( index ),
+			anchor = tab.find( ".ui-tabs-anchor" ),
+			panel = this._getPanelForTab( tab ),
+			eventData = {
+				tab: tab,
+				panel: panel
+			},
+			complete = function( jqXHR, status ) {
+				if ( status === "abort" ) {
+					that.panels.stop( false, true );
+				}
+
+				that._removeClass( tab, "ui-tabs-loading" );
+				panel.removeAttr( "aria-busy" );
+
+				if ( jqXHR === that.xhr ) {
+					delete that.xhr;
+				}
+			};
+
+		// Not remote
+		if ( this._isLocal( anchor[ 0 ] ) ) {
+			return;
+		}
+
+		this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) );
+
+		// Support: jQuery <1.8
+		// jQuery <1.8 returns false if the request is canceled in beforeSend,
+		// but as of 1.8, $.ajax() always returns a jqXHR object.
+		if ( this.xhr && this.xhr.statusText !== "canceled" ) {
+			this._addClass( tab, "ui-tabs-loading" );
+			panel.attr( "aria-busy", "true" );
+
+			this.xhr
+				.done( function( response, status, jqXHR ) {
+
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout( function() {
+						panel.html( response );
+						that._trigger( "load", event, eventData );
+
+						complete( jqXHR, status );
+					}, 1 );
+				} )
+				.fail( function( jqXHR, status ) {
+
+					// support: jQuery <1.8
+					// http://bugs.jquery.com/ticket/11778
+					setTimeout( function() {
+						complete( jqXHR, status );
+					}, 1 );
+				} );
+		}
+	},
+
+	_ajaxSettings: function( anchor, event, eventData ) {
+		var that = this;
+		return {
+			url: anchor.attr( "href" ),
+			beforeSend: function( jqXHR, settings ) {
+				return that._trigger( "beforeLoad", event,
+					$.extend( { jqXHR: jqXHR, ajaxSettings: settings }, eventData ) );
+			}
+		};
+	},
+
+	_getPanelForTab: function( tab ) {
+		var id = $( tab ).attr( "aria-controls" );
+		return this.element.find( this._sanitizeSelector( "#" + id ) );
+	}
+} );
+
+// DEPRECATED
+// TODO: Switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for ui-tab class (now ui-tabs-tab)
+	$.widget( "ui.tabs", $.ui.tabs, {
+		_processTabs: function() {
+			this._superApply( arguments );
+			this._addClass( this.tabs, "ui-tab" );
+		}
+	} );
+}
+
+var widgetsTabs = $.ui.tabs;
+
+
+/*!
+ * jQuery UI Tooltip 1.12.0
+ * http://jqueryui.com
+ *
+ * Copyright jQuery Foundation and other contributors
+ * Released under the MIT license.
+ * http://jquery.org/license
+ */
+
+//>>label: Tooltip
+//>>group: Widgets
+//>>description: Shows additional information for any element on hover or focus.
+//>>docs: http://api.jqueryui.com/tooltip/
+//>>demos: http://jqueryui.com/tooltip/
+//>>css.structure: ../../themes/base/core.css
+//>>css.structure: ../../themes/base/tooltip.css
+//>>css.theme: ../../themes/base/theme.css
+
+
+
+$.widget( "ui.tooltip", {
+	version: "1.12.0",
+	options: {
+		classes: {
+			"ui-tooltip": "ui-corner-all ui-widget-shadow"
+		},
+		content: function() {
+
+			// support: IE<9, Opera in jQuery <1.7
+			// .text() can't accept undefined, so coerce to a string
+			var title = $( this ).attr( "title" ) || "";
+
+			// Escape title, since we're going from an attribute to raw HTML
+			return $( "<a>" ).text( title ).html();
+		},
+		hide: true,
+
+		// Disabled elements have inconsistent behavior across browsers (#8661)
+		items: "[title]:not([disabled])",
+		position: {
+			my: "left top+15",
+			at: "left bottom",
+			collision: "flipfit flip"
+		},
+		show: true,
+		track: false,
+
+		// Callbacks
+		close: null,
+		open: null
+	},
+
+	_addDescribedBy: function( elem, id ) {
+		var describedby = ( elem.attr( "aria-describedby" ) || "" ).split( /\s+/ );
+		describedby.push( id );
+		elem
+			.data( "ui-tooltip-id", id )
+			.attr( "aria-describedby", $.trim( describedby.join( " " ) ) );
+	},
+
+	_removeDescribedBy: function( elem ) {
+		var id = elem.data( "ui-tooltip-id" ),
+			describedby = ( elem.attr( "aria-describedby" ) || "" ).split( /\s+/ ),
+			index = $.inArray( id, describedby );
+
+		if ( index !== -1 ) {
+			describedby.splice( index, 1 );
+		}
+
+		elem.removeData( "ui-tooltip-id" );
+		describedby = $.trim( describedby.join( " " ) );
+		if ( describedby ) {
+			elem.attr( "aria-describedby", describedby );
+		} else {
+			elem.removeAttr( "aria-describedby" );
+		}
+	},
+
+	_create: function() {
+		this._on( {
+			mouseover: "open",
+			focusin: "open"
+		} );
+
+		// IDs of generated tooltips, needed for destroy
+		this.tooltips = {};
+
+		// IDs of parent tooltips where we removed the title attribute
+		this.parents = {};
+
+		// Append the aria-live region so tooltips announce correctly
+		this.liveRegion = $( "<div>" )
+			.attr( {
+				role: "log",
+				"aria-live": "assertive",
+				"aria-relevant": "additions"
+			} )
+			.appendTo( this.document[ 0 ].body );
+		this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible" );
+
+		this.disabledTitles = $( [] );
+	},
+
+	_setOption: function( key, value ) {
+		var that = this;
+
+		this._super( key, value );
+
+		if ( key === "content" ) {
+			$.each( this.tooltips, function( id, tooltipData ) {
+				that._updateContent( tooltipData.element );
+			} );
+		}
+	},
+
+	_setOptionDisabled: function( value ) {
+		this[ value ? "_disable" : "_enable" ]();
+	},
+
+	_disable: function() {
+		var that = this;
+
+		// Close open tooltips
+		$.each( this.tooltips, function( id, tooltipData ) {
+			var event = $.Event( "blur" );
+			event.target = event.currentTarget = tooltipData.element[ 0 ];
+			that.close( event, true );
+		} );
+
+		// Remove title attributes to prevent native tooltips
+		this.disabledTitles = this.disabledTitles.add(
+			this.element.find( this.options.items ).addBack()
+				.filter( function() {
+					var element = $( this );
+					if ( element.is( "[title]" ) ) {
+						return element
+							.data( "ui-tooltip-title", element.attr( "title" ) )
+							.removeAttr( "title" );
+					}
+				} )
+		);
+	},
+
+	_enable: function() {
+
+		// restore title attributes
+		this.disabledTitles.each( function() {
+			var element = $( this );
+			if ( element.data( "ui-tooltip-title" ) ) {
+				element.attr( "title", element.data( "ui-tooltip-title" ) );
+			}
+		} );
+		this.disabledTitles = $( [] );
+	},
+
+	open: function( event ) {
+		var that = this,
+			target = $( event ? event.target : this.element )
+
+				// we need closest here due to mouseover bubbling,
+				// but always pointing at the same event target
+				.closest( this.options.items );
+
+		// No element to show a tooltip for or the tooltip is already open
+		if ( !target.length || target.data( "ui-tooltip-id" ) ) {
+			return;
+		}
+
+		if ( target.attr( "title" ) ) {
+			target.data( "ui-tooltip-title", target.attr( "title" ) );
+		}
+
+		target.data( "ui-tooltip-open", true );
+
+		// Kill parent tooltips, custom or native, for hover
+		if ( event && event.type === "mouseover" ) {
+			target.parents().each( function() {
+				var parent = $( this ),
+					blurEvent;
+				if ( parent.data( "ui-tooltip-open" ) ) {
+					blurEvent = $.Event( "blur" );
+					blurEvent.target = blurEvent.currentTarget = this;
+					that.close( blurEvent, true );
+				}
+				if ( parent.attr( "title" ) ) {
+					parent.uniqueId();
+					that.parents[ this.id ] = {
+						element: this,
+						title: parent.attr( "title" )
+					};
+					parent.attr( "title", "" );
+				}
+			} );
+		}
+
+		this._registerCloseHandlers( event, target );
+		this._updateContent( target, event );
+	},
+
+	_updateContent: function( target, event ) {
+		var content,
+			contentOption = this.options.content,
+			that = this,
+			eventType = event ? event.type : null;
+
+		if ( typeof contentOption === "string" || contentOption.nodeType ||
+				contentOption.jquery ) {
+			return this._open( event, target, contentOption );
+		}
+
+		content = contentOption.call( target[ 0 ], function( response ) {
+
+			// IE may instantly serve a cached response for ajax requests
+			// delay this call to _open so the other call to _open runs first
+			that._delay( function() {
+
+				// Ignore async response if tooltip was closed already
+				if ( !target.data( "ui-tooltip-open" ) ) {
+					return;
+				}
+
+				// JQuery creates a special event for focusin when it doesn't
+				// exist natively. To improve performance, the native event
+				// object is reused and the type is changed. Therefore, we can't
+				// rely on the type being correct after the event finished
+				// bubbling, so we set it back to the previous value. (#8740)
+				if ( event ) {
+					event.type = eventType;
+				}
+				this._open( event, target, response );
+			} );
+		} );
+		if ( content ) {
+			this._open( event, target, content );
+		}
+	},
+
+	_open: function( event, target, content ) {
+		var tooltipData, tooltip, delayedShow, a11yContent,
+			positionOption = $.extend( {}, this.options.position );
+
+		if ( !content ) {
+			return;
+		}
+
+		// Content can be updated multiple times. If the tooltip already
+		// exists, then just update the content and bail.
+		tooltipData = this._find( target );
+		if ( tooltipData ) {
+			tooltipData.tooltip.find( ".ui-tooltip-content" ).html( content );
+			return;
+		}
+
+		// If we have a title, clear it to prevent the native tooltip
+		// we have to check first to avoid defining a title if none exists
+		// (we don't want to cause an element to start matching [title])
+		//
+		// We use removeAttr only for key events, to allow IE to export the correct
+		// accessible attributes. For mouse events, set to empty string to avoid
+		// native tooltip showing up (happens only when removing inside mouseover).
+		if ( target.is( "[title]" ) ) {
+			if ( event && event.type === "mouseover" ) {
+				target.attr( "title", "" );
+			} else {
+				target.removeAttr( "title" );
+			}
+		}
+
+		tooltipData = this._tooltip( target );
+		tooltip = tooltipData.tooltip;
+		this._addDescribedBy( target, tooltip.attr( "id" ) );
+		tooltip.find( ".ui-tooltip-content" ).html( content );
+
+		// Support: Voiceover on OS X, JAWS on IE <= 9
+		// JAWS announces deletions even when aria-relevant="additions"
+		// Voiceover will sometimes re-read the entire log region's contents from the beginning
+		this.liveRegion.children().hide();
+		a11yContent = $( "<div>" ).html( tooltip.find( ".ui-tooltip-content" ).html() );
+		a11yContent.removeAttr( "name" ).find( "[name]" ).removeAttr( "name" );
+		a11yContent.removeAttr( "id" ).find( "[id]" ).removeAttr( "id" );
+		a11yContent.appendTo( this.liveRegion );
+
+		function position( event ) {
+			positionOption.of = event;
+			if ( tooltip.is( ":hidden" ) ) {
+				return;
+			}
+			tooltip.position( positionOption );
+		}
+		if ( this.options.track && event && /^mouse/.test( event.type ) ) {
+			this._on( this.document, {
+				mousemove: position
+			} );
+
+			// trigger once to override element-relative positioning
+			position( event );
+		} else {
+			tooltip.position( $.extend( {
+				of: target
+			}, this.options.position ) );
+		}
+
+		tooltip.hide();
+
+		this._show( tooltip, this.options.show );
+
+		// Handle tracking tooltips that are shown with a delay (#8644). As soon
+		// as the tooltip is visible, position the tooltip using the most recent
+		// event.
+		// Adds the check to add the timers only when both delay and track options are set (#14682)
+		if ( this.options.track && this.options.show && this.options.show.delay ) {
+			delayedShow = this.delayedShow = setInterval( function() {
+				if ( tooltip.is( ":visible" ) ) {
+					position( positionOption.of );
+					clearInterval( delayedShow );
+				}
+			}, $.fx.interval );
+		}
+
+		this._trigger( "open", event, { tooltip: tooltip } );
+	},
+
+	_registerCloseHandlers: function( event, target ) {
+		var events = {
+			keyup: function( event ) {
+				if ( event.keyCode === $.ui.keyCode.ESCAPE ) {
+					var fakeEvent = $.Event( event );
+					fakeEvent.currentTarget = target[ 0 ];
+					this.close( fakeEvent, true );
+				}
+			}
+		};
+
+		// Only bind remove handler for delegated targets. Non-delegated
+		// tooltips will handle this in destroy.
+		if ( target[ 0 ] !== this.element[ 0 ] ) {
+			events.remove = function() {
+				this._removeTooltip( this._find( target ).tooltip );
+			};
+		}
+
+		if ( !event || event.type === "mouseover" ) {
+			events.mouseleave = "close";
+		}
+		if ( !event || event.type === "focusin" ) {
+			events.focusout = "close";
+		}
+		this._on( true, target, events );
+	},
+
+	close: function( event ) {
+		var tooltip,
+			that = this,
+			target = $( event ? event.currentTarget : this.element ),
+			tooltipData = this._find( target );
+
+		// The tooltip may already be closed
+		if ( !tooltipData ) {
+
+			// We set ui-tooltip-open immediately upon open (in open()), but only set the
+			// additional data once there's actually content to show (in _open()). So even if the
+			// tooltip doesn't have full data, we always remove ui-tooltip-open in case we're in
+			// the period between open() and _open().
+			target.removeData( "ui-tooltip-open" );
+			return;
+		}
+
+		tooltip = tooltipData.tooltip;
+
+		// Disabling closes the tooltip, so we need to track when we're closing
+		// to avoid an infinite loop in case the tooltip becomes disabled on close
+		if ( tooltipData.closing ) {
+			return;
+		}
+
+		// Clear the interval for delayed tracking tooltips
+		clearInterval( this.delayedShow );
+
+		// Only set title if we had one before (see comment in _open())
+		// If the title attribute has changed since open(), don't restore
+		if ( target.data( "ui-tooltip-title" ) && !target.attr( "title" ) ) {
+			target.attr( "title", target.data( "ui-tooltip-title" ) );
+		}
+
+		this._removeDescribedBy( target );
+
+		tooltipData.hiding = true;
+		tooltip.stop( true );
+		this._hide( tooltip, this.options.hide, function() {
+			that._removeTooltip( $( this ) );
+		} );
+
+		target.removeData( "ui-tooltip-open" );
+		this._off( target, "mouseleave focusout keyup" );
+
+		// Remove 'remove' binding only on delegated targets
+		if ( target[ 0 ] !== this.element[ 0 ] ) {
+			this._off( target, "remove" );
+		}
+		this._off( this.document, "mousemove" );
+
+		if ( event && event.type === "mouseleave" ) {
+			$.each( this.parents, function( id, parent ) {
+				$( parent.element ).attr( "title", parent.title );
+				delete that.parents[ id ];
+			} );
+		}
+
+		tooltipData.closing = true;
+		this._trigger( "close", event, { tooltip: tooltip } );
+		if ( !tooltipData.hiding ) {
+			tooltipData.closing = false;
+		}
+	},
+
+	_tooltip: function( element ) {
+		var tooltip = $( "<div>" ).attr( "role", "tooltip" ),
+			content = $( "<div>" ).appendTo( tooltip ),
+			id = tooltip.uniqueId().attr( "id" );
+
+		this._addClass( content, "ui-tooltip-content" );
+		this._addClass( tooltip, "ui-tooltip", "ui-widget ui-widget-content" );
+
+		tooltip.appendTo( this._appendTo( element ) );
+
+		return this.tooltips[ id ] = {
+			element: element,
+			tooltip: tooltip
+		};
+	},
+
+	_find: function( target ) {
+		var id = target.data( "ui-tooltip-id" );
+		return id ? this.tooltips[ id ] : null;
+	},
+
+	_removeTooltip: function( tooltip ) {
+		tooltip.remove();
+		delete this.tooltips[ tooltip.attr( "id" ) ];
+	},
+
+	_appendTo: function( target ) {
+		var element = target.closest( ".ui-front, dialog" );
+
+		if ( !element.length ) {
+			element = this.document[ 0 ].body;
+		}
+
+		return element;
+	},
+
+	_destroy: function() {
+		var that = this;
+
+		// Close open tooltips
+		$.each( this.tooltips, function( id, tooltipData ) {
+
+			// Delegate to close method to handle common cleanup
+			var event = $.Event( "blur" ),
+				element = tooltipData.element;
+			event.target = event.currentTarget = element[ 0 ];
+			that.close( event, true );
+
+			// Remove immediately; destroying an open tooltip doesn't use the
+			// hide animation
+			$( "#" + id ).remove();
+
+			// Restore the title
+			if ( element.data( "ui-tooltip-title" ) ) {
+
+				// If the title attribute has changed since open(), don't restore
+				if ( !element.attr( "title" ) ) {
+					element.attr( "title", element.data( "ui-tooltip-title" ) );
+				}
+				element.removeData( "ui-tooltip-title" );
+			}
+		} );
+		this.liveRegion.remove();
+	}
+} );
+
+// DEPRECATED
+// TODO: Switch return back to widget declaration at top of file when this is removed
+if ( $.uiBackCompat !== false ) {
+
+	// Backcompat for tooltipClass option
+	$.widget( "ui.tooltip", $.ui.tooltip, {
+		options: {
+			tooltipClass: null
+		},
+		_tooltip: function() {
+			var tooltipData = this._superApply( arguments );
+			if ( this.options.tooltipClass ) {
+				tooltipData.tooltip.addClass( this.options.tooltipClass );
+			}
+			return tooltipData;
+		}
+	} );
+}
+
+var widgetsTooltip = $.ui.tooltip;
+
+
+
+
+}));
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery-ui/jquery-ui-1.12.0.min.js b/pagure/static/vendor/jquery-ui/jquery-ui-1.12.0.min.js
new file mode 100644
index 0000000..32d6b54
--- /dev/null
+++ b/pagure/static/vendor/jquery-ui/jquery-ui-1.12.0.min.js
@@ -0,0 +1,13 @@
+/*! jQuery UI - v1.12.0 - 2016-07-08
+* http://jqueryui.com
+* Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-1-7.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
+* Copyright jQuery Foundation and other contributors; Licensed MIT */
+
+(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){function e(t){for(var e=t.css("visibility");"inherit"===e;)t=t.parent(),e=t.css("visibility");return"hidden"!==e}function i(t){for(var e,i;t.length&&t[0]!==document;){if(e=t.css("position"),("absolute"===e||"relative"===e||"fixed"===e)&&(i=parseInt(t.css("zIndex"),10),!isNaN(i)&&0!==i))return i;t=t.parent()}return 0}function s(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},t.extend(this._defaults,this.regional[""]),this.regional.en=t.extend(!0,{},this.regional[""]),this.regional["en-US"]=t.extend(!0,{},this.regional.en),this.dpDiv=n(t("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function n(e){var i="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.on("mouseout",i,function(){t(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",i,o)}function o(){t.datepicker._isDisabledDatepicker(m.inline?m.dpDiv.parent()[0]:m.input[0])||(t(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),t(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&t(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&t(this).addClass("ui-datepicker-next-hover"))}function a(e,i){t.extend(e,i);for(var s in i)null==i[s]&&(e[s]=i[s]);return e}function r(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.ui=t.ui||{},t.ui.version="1.12.0";var h=0,l=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},h=e.split(".")[0];e=e.split(".")[1];var l=h+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][l.toLowerCase()]=function(e){return!!t.data(e,l)},t[h]=t[h]||{},n=t[h][e],o=t[h][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:h,widgetName:e,widgetFullName:l}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var i,s,n=l.call(arguments,1),o=0,a=n.length;a>o;o++)for(i in n[o])s=n[o][i],n[o].hasOwnProperty(i)&&void 0!==s&&(e[i]=t.isPlainObject(s)?t.isPlainObject(e[i])?t.widget.extend({},e[i],s):t.widget.extend({},s):s);return e},t.widget.bridge=function(e,i){var s=i.prototype.widgetFullName||e;t.fn[e]=function(n){var o="string"==typeof n,a=l.call(arguments,1),r=this;return o?this.each(function(){var i,o=t.data(this,s);return"instance"===n?(r=o,!1):o?t.isFunction(o[n])&&"_"!==n.charAt(0)?(i=o[n].apply(o,a),i!==o&&void 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+n+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+n+"'")}):(a.length&&(n=t.widget.extend.apply(null,[n].concat(a))),this.each(function(){var e=t.data(this,s);e?(e.option(n||{}),e._init&&e._init()):t.data(this,s,new i(n,this))})),r}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,i){i=t(i||this.defaultElement||this)[0],this.element=t(i),this.uuid=h++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},i!==this&&(t.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===i&&this.destroy()}}),this.document=t(i.style?i.ownerDocument:i.document||i),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o,a=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,c=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;o=function(){var e=t("<div>").css("position","absolute").appendTo("body").offset({top:1.5,left:1.5}),i=1.5===e.offset().top;return e.remove(),o=function(){return i},i},t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return f.apply(this,arguments);n=t.extend({},n);var p,g,m,_,v,b,y=t(n.of),w=t.position.getWithinInfo(n.within),k=t.position.getScrollInfo(w),x=(n.collision||"flip").split(" "),C={};return b=s(y),y[0].preventDefault&&(n.at="left top"),g=b.width,m=b.height,_=b.offset,v=t.extend({},_),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):c.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=c.test(i[1])?i[1]:"center",t=u.exec(i[0]),e=u.exec(i[1]),C[this]=[t?t[0]:0,e?e[0]:0],n[this]=[d.exec(i[0])[0],d.exec(i[1])[0]]}),1===x.length&&(x[1]=x[0]),"right"===n.at[0]?v.left+=g:"center"===n.at[0]&&(v.left+=g/2),"bottom"===n.at[1]?v.top+=m:"center"===n.at[1]&&(v.top+=m/2),p=e(C.at,g,m),v.left+=p[0],v.top+=p[1],this.each(function(){var s,l,c=t(this),u=c.outerWidth(),d=c.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=u+f+i(this,"marginRight")+k.width,I=d+b+i(this,"marginBottom")+k.height,T=t.extend({},v),P=e(C.my,c.outerWidth(),c.outerHeight());"right"===n.my[0]?T.left-=u:"center"===n.my[0]&&(T.left-=u/2),"bottom"===n.my[1]?T.top-=d:"center"===n.my[1]&&(T.top-=d/2),T.left+=P[0],T.top+=P[1],o()||(T.left=h(T.left),T.top=h(T.top)),s={marginLeft:f,marginTop:b},t.each(["left","top"],function(e,i){t.ui.position[x[e]]&&t.ui.position[x[e]][i](T,{targetWidth:g,targetHeight:m,elemWidth:u,elemHeight:d,collisionPosition:s,collisionWidth:D,collisionHeight:I,offset:[p[0]+P[0],p[1]+P[1]],my:n.my,at:n.at,within:w,elem:c})}),n.using&&(l=function(t){var e=_.left-T.left,i=e+g-u,s=_.top-T.top,o=s+m-d,h={target:{element:y,left:_.left,top:_.top,width:g,height:m},element:{element:c,left:T.left,top:T.top,width:u,height:d},horizontal:0>i?"left":e>0?"right":"center",vertical:0>o?"top":s>0?"bottom":"middle"};u>g&&g>r(e+i)&&(h.horizontal="center"),d>m&&m>r(s+o)&&(h.vertical="middle"),h.important=a(r(e),r(i))>a(r(s),r(o))?"horizontal":"vertical",n.using.call(this,t,h)}),c.offset(t.extend(T,{using:l}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,o=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-o-n;e.collisionWidth>o?h>0&&0>=l?(i=t.left+h+e.collisionWidth-o-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+o-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=a(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,o=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-o-n;e.collisionHeight>o?h>0&&0>=l?(i=t.top+h+e.collisionHeight-o-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+o-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=a(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,a=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-a-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-a-o,(0>i||r(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>r(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,a=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-a-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-a-o,(0>s||r(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-h,(i>0||u>r(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var c="ui-effects-",u="ui-effects-style",d="ui-effects-animated",p=t;t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=l(),n=s._rgba=[];return i=i.toLowerCase(),f(h,function(t,o){var a,r=o.re.exec(i),h=r&&o.parse(r),l=o.space||"rgba";return h?(a=s[l](h),s[c[l].cache]=a[c[l].cache],n=s._rgba=a._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var o,a="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,h=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],l=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},p=t("<p>")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),l.fn=t.extend(l.prototype,{parse:function(n,a,r,h){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e);var u=this,d=t.type(n),p=this._rgba=[];return a!==e&&(n=[n,a,r,h],d="array"),"string"===d?this.parse(s(n)||o._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof l?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var o=s.cache;f(s.props,function(t,e){if(!u[o]&&s.to){if("alpha"===t||null==n[t])return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,!0)}),u[o]&&0>t.inArray(null,u[o].slice(0,3))&&(u[o][3]=1,s.from&&(u._rgba=s.from(u[o])))}),this):e},is:function(t){var i=l(t),s=!0,n=this;return f(c,function(t,o){var a,r=i[o.cache];return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=l(t),n=s._space(),o=c[n],a=0===this.alpha()?l("transparent"):this,r=a[o.cache]||o.to(a._rgba),h=r.slice();return s=s[o.cache],f(o.props,function(t,n){var o=n.idx,a=r[o],l=s[o],c=u[n.type]||{};null!==l&&(null===a?h[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),h[o]=i((l-a)*e+a,n)))}),this[n](h)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=l(e)._rgba;return l(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,o=t[2]/255,a=t[3],r=Math.max(s,n,o),h=Math.min(s,n,o),l=r-h,c=r+h,u=.5*c;return e=h===r?0:s===r?60*(n-o)/l+360:n===r?60*(o-s)/l+120:60*(s-n)/l+240,i=0===l?0:.5>=u?l/c:l/(2-c),[Math.round(e)%360,i,u,null==a?1:a]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],o=t[3],a=.5>=s?s*(1+i):s+i-s*i,r=2*s-a;return[Math.round(255*n(r,a,e+1/3)),Math.round(255*n(r,a,e)),Math.round(255*n(r,a,e-1/3)),o]},f(c,function(s,n){var o=n.props,a=n.cache,h=n.to,c=n.from;l.fn[s]=function(s){if(h&&!this[a]&&(this[a]=h(this._rgba)),s===e)return this[a].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[a].slice();return f(o,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=l(c(d)),n[a]=d,n):l(d)},f(o,function(e,i){l.fn[e]||(l.fn[e]=function(n){var o,a=t.type(n),h="alpha"===e?this._hsla?"hsla":"rgba":s,l=this[h](),c=l[i.idx];return"undefined"===a?c:("function"===a&&(n=n.call(this,c),a=t.type(n)),null==n&&i.empty?this:("string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[2])*("+"===o[1]?1:-1))),l[i.idx]=n,this[h](l)))})})}),l.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var o,a,r="";if("transparent"!==n&&("string"!==t.type(n)||(o=s(n)))){if(n=l(o||n),!d.rgba&&1!==n._rgba[3]){for(a="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&a&&a.style;)try{r=t.css(a,"backgroundColor"),a=a.parentNode}catch(h){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(h){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=l(e.elem,i),e.end=l(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},l.hook(a),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},o=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(p),function(){function e(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,o={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(o[i]=n[i]);return o}function i(e,i){var s,o,a={};for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o));return a}var s=["add","remove","toggle"],n={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(p.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){var h=t.speed(o,a,r);return this.queue(function(){var o,a=t(this),r=a.attr("class")||"",l=h.children?a.find("*").addBack():a;l=l.map(function(){var i=t(this);return{el:i,start:e(this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+"Class"](n[e])})},o(),l=l.map(function(){return this.end=e(this.el[0]),this.diff=i(this.start,this.end),this}),a.attr("class",r),l=l.map(function(){var e=this,i=t.Deferred(),s=t.extend({},h,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,l.get()).done(function(){o(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),h.complete.call(a[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,o){return s?t.effects.animateClass.call(this,{add:i},s,n,o):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,o){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,o):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(e){return function(i,s,n,o,a){return"boolean"==typeof s||void 0===s?n?t.effects.animateClass.call(this,s?{add:i}:{remove:i},n,o,a):e.apply(this,arguments):t.effects.animateClass.call(this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}function s(t,e){var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||["",0,i,s,0];return{top:parseFloat(o[1])||0,right:"auto"===o[2]?i:parseFloat(o[2]),bottom:"auto"===o[3]?s:parseFloat(o[3]),left:parseFloat(o[4])||0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){return function(i){return!!t(i).data(d)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==!1&&t.extend(t.effects,{save:function(t,e){for(var i=0,s=e.length;s>i;i++)null!==e[i]&&t.data(c+e[i],t[0].style[e[i]])},restore:function(t,e){for(var i,s=0,n=e.length;n>s;s++)null!==e[s]&&(i=t.data(c+e[s]),t.css(e[s],i))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},o=document.activeElement;try{o.id}catch(a){o=document.body}return e.wrap(s),(e[0]===o||t.contains(e[0],o))&&t(o).trigger("focus"),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).trigger("focus")),e}}),t.extend(t.effects,{version:"1.12.0",define:function(e,i,s){return s||(s=i,i="effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){if(0===e)return{height:0,width:0,outerHeight:0,outerWidth:0};var s="horizontal"!==i?(e||100)/100:1,n="vertical"!==i?(e||100)/100:1;return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){var s=t.queue();e>1&&s.splice.apply(s,[1,0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t.data(u,t[0].style.cssText)},restoreStyle:function(t){t[0].style.cssText=t.data(u)||"",t.removeData(u)},mode:function(t,e){var i=t.is(":hidden");return"toggle"===e&&(e=i?"show":"hide"),(i?"hide"===e:"show"===e)&&(e="none"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createPlaceholder:function(e){var i,s=e.css("position"),n=e.position();return e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s="absolute",i=t("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),"float":e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder"),e.data(c+"placeholder",i)),e.css({position:s,left:n.left,top:n.top}),i},removePlaceholder:function(t){var e=c+"placeholder",i=t.data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var o=e.cssUnit(i);o[0]>0&&(n[i]=o[0]*s+o[1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){r.removeData(d),t.effects.cleanUp(r),"hide"===s.mode&&r.hide(),a()}function a(){t.isFunction(h)&&h.call(r[0]),t.isFunction(e)&&e()}var r=t(this);s.mode=c.shift(),t.uiBackCompat===!1||o?"none"===s.mode?(r[l](),a()):n.call(r[0],s,i):(r.is(":hidden")?"hide"===l:"show"===l)?(r[l](),a()):n.call(r[0],s,a)}var s=e.apply(this,arguments),n=t.effects.effect[s.effect],o=n.mode,a=s.queue,r=a||"fx",h=s.complete,l=s.mode,c=[],u=function(e){var i=t(this),s=t.effects.mode(i,l)||o;i.data(d,!0),c.push(s),o&&("show"===s||s===o&&"hide"===s)&&i.show(),o&&"none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()};return t.fx.off||!n?l?this[l](s.duration,h):this.each(function(){h&&h.call(this)}):a===!1?this.each(u).each(i):this.queue(r,u).queue(r,i)},show:function(t){return function(s){if(i(s))return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="show",this.effect.call(this,n)}}(t.fn.show),hide:function(t){return function(s){if(i(s))return t.apply(this,arguments);
+var n=e.apply(this,arguments);return n.mode="hide",this.effect.call(this,n)}}(t.fn.hide),toggle:function(t){return function(s){if(i(s)||"boolean"==typeof s)return t.apply(this,arguments);var n=e.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){return t?this.css("clip","rect("+t.top+"px "+t.right+"px "+t.bottom+"px "+t.left+"px)"):s(this.css("clip"),this)},transfer:function(e,i){var s=t(this),n=t(e.to),o="fixed"===n.css("position"),a=t("body"),r=o?a.scrollTop():0,h=o?a.scrollLeft():0,l=n.offset(),c={top:l.top-r,left:l.left-h,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(e.className).css({top:u.top-r,left:u.left-h,height:s.innerHeight(),width:s.innerWidth(),position:o?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(),"string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=!0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}();var f=t.effects;t.effects.define("blind","hide",function(e,i){var s={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},n=t(this),o=e.direction||"up",a=n.cssClip(),r={clip:t.extend({},a)},h=t.effects.createPlaceholder(n);r.clip[s[o][0]]=r.clip[s[o][1]],"show"===e.mode&&(n.cssClip(r.clip),h&&h.css(t.effects.clipToBox(r)),r.clip=a),h&&h.animate(t.effects.clipToBox(r),e.duration,e.easing),n.animate(r,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("bounce",function(e,i){var s,n,o,a=t(this),r=e.mode,h="hide"===r,l="show"===r,c=e.direction||"up",u=e.distance,d=e.times||5,p=2*d+(l||h?1:0),f=e.duration/p,g=e.easing,m="up"===c||"down"===c?"top":"left",_="up"===c||"left"===c,v=0,b=a.queue().length;for(t.effects.createPlaceholder(a),o=a.css(m),u||(u=a["top"===m?"outerHeight":"outerWidth"]()/3),l&&(n={opacity:1},n[m]=o,a.css("opacity",0).css(m,_?2*-u:2*u).animate(n,f,g)),h&&(u/=Math.pow(2,d-1)),n={},n[m]=o;d>v;v++)s={},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g).animate(n,f,g),u=h?2*u:u/2;h&&(s={opacity:0},s[m]=(_?"-=":"+=")+u,a.animate(s,f,g)),a.queue(i),t.effects.unshift(a,b,p+1)}),t.effects.define("clip","hide",function(e,i){var s,n={},o=t(this),a=e.direction||"vertical",r="both"===a,h=r||"horizontal"===a,l=r||"vertical"===a;s=o.cssClip(),n.clip={top:l?(s.bottom-s.top)/2:s.top,right:h?(s.right-s.left)/2:s.right,bottom:l?(s.bottom-s.top)/2:s.bottom,left:h?(s.right-s.left)/2:s.left},t.effects.createPlaceholder(o),"show"===e.mode&&(o.cssClip(n.clip),n.clip=s),o.animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("drop","hide",function(e,i){var s,n=t(this),o=e.mode,a="show"===o,r=e.direction||"left",h="up"===r||"down"===r?"top":"left",l="up"===r||"left"===r?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};t.effects.createPlaceholder(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,u[h]=l+s,a&&(n.css(u),u[h]=c+s,u.opacity=1),n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("explode","hide",function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),i()}var o,a,r,h,l,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=e.mode,g="show"===f,m=p.show().css("visibility","hidden").offset(),_=Math.ceil(p.outerWidth()/d),v=Math.ceil(p.outerHeight()/u),b=[];for(o=0;u>o;o++)for(h=m.top+o*v,c=o-(u-1)/2,a=0;d>a;a++)r=m.left+a*_,l=a-(d-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*_,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:_,height:v,left:r+(g?l*_:0),top:h+(g?c*v:0),opacity:g?0:1}).animate({left:r+(g?0:l*_),top:h+(g?0:c*v),opacity:g?1:0},e.duration||500,e.easing,s)}),t.effects.define("fade","toggle",function(e,i){var s="show"===e.mode;t(this).css("opacity",s?0:1).animate({opacity:s?1:0},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("fold","hide",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=e.size||15,h=/([0-9]+)%/.exec(r),l=!!e.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=e.duration/2,d=t.effects.createPlaceholder(s),p=s.cssClip(),f={clip:t.extend({},p)},g={clip:t.extend({},p)},m=[p[c[0]],p[c[1]]],_=s.queue().length;h&&(r=parseInt(h[1],10)/100*m[a?0:1]),f.clip[c[0]]=r,g.clip[c[0]]=r,g.clip[c[1]]=0,o&&(s.cssClip(g.clip),d&&d.css(t.effects.clipToBox(g)),g.clip=p),s.queue(function(i){d&&d.animate(t.effects.clipToBox(f),u,e.easing).animate(t.effects.clipToBox(g),u,e.easing),i()}).animate(f,u,e.easing).animate(g,u,e.easing).queue(i),t.effects.unshift(s,_,4)}),t.effects.define("highlight","show",function(e,i){var s=t(this),n={backgroundColor:s.css("backgroundColor")};"hide"===e.mode&&(n.opacity=0),t.effects.saveStyle(s),s.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(n,{queue:!1,duration:e.duration,easing:e.easing,complete:i})}),t.effects.define("size",function(e,i){var s,n,o,a=t(this),r=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=e.mode,u="effect"!==c,d=e.scale||"both",p=e.origin||["middle","center"],f=a.css("position"),g=a.position(),m=t.effects.scaledDimensions(a),_=e.from||m,v=e.to||t.effects.scaledDimensions(a,0);t.effects.createPlaceholder(a),"show"===c&&(o=_,_=v,v=o),n={from:{y:_.height/m.height,x:_.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}},("box"===d||"both"===d)&&(n.from.y!==n.to.y&&(_=t.effects.setTransition(a,h,n.from.y,_),v=t.effects.setTransition(a,h,n.to.y,v)),n.from.x!==n.to.x&&(_=t.effects.setTransition(a,l,n.from.x,_),v=t.effects.setTransition(a,l,n.to.x,v))),("content"===d||"both"===d)&&n.from.y!==n.to.y&&(_=t.effects.setTransition(a,r,n.from.y,_),v=t.effects.setTransition(a,r,n.to.y,v)),p&&(s=t.effects.getBaseline(p,m),_.top=(m.outerHeight-_.outerHeight)*s.y+g.top,_.left=(m.outerWidth-_.outerWidth)*s.x+g.left,v.top=(m.outerHeight-v.outerHeight)*s.y+g.top,v.left=(m.outerWidth-v.outerWidth)*s.x+g.left),a.css(_),("content"===d||"both"===d)&&(h=h.concat(["marginTop","marginBottom"]).concat(r),l=l.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var i=t(this),s=t.effects.scaledDimensions(i),o={height:s.height*n.from.y,width:s.width*n.from.x,outerHeight:s.outerHeight*n.from.y,outerWidth:s.outerWidth*n.from.x},a={height:s.height*n.to.y,width:s.width*n.to.x,outerHeight:s.height*n.to.y,outerWidth:s.width*n.to.x};n.from.y!==n.to.y&&(o=t.effects.setTransition(i,h,n.from.y,o),a=t.effects.setTransition(i,h,n.to.y,a)),n.from.x!==n.to.x&&(o=t.effects.setTransition(i,l,n.from.x,o),a=t.effects.setTransition(i,l,n.to.x,a)),u&&t.effects.saveStyle(i),i.css(o),i.animate(a,e.duration,e.easing,function(){u&&t.effects.restoreStyle(i)})})),a.animate(v,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){var e=a.offset();0===v.opacity&&a.css("opacity",_.opacity),u||(a.css("position","static"===f?"relative":f).offset(e),t.effects.saveStyle(a)),i()}})}),t.effects.define("scale",function(e,i){var s=t(this),n=e.mode,o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"effect"!==n?0:100),a=t.extend(!0,{from:t.effects.scaledDimensions(s),to:t.effects.scaledDimensions(s,o,e.direction||"both"),origin:e.origin||["middle","center"]},e);e.fade&&(a.from.opacity=1,a.to.opacity=0),t.effects.effect.size.call(this,a,i)}),t.effects.define("puff","hide",function(e,i){var s=t.extend(!0,{},e,{fade:!0,percent:parseInt(e.percent,10)||150});t.effects.effect.scale.call(this,s,i)}),t.effects.define("pulsate","show",function(e,i){var s=t(this),n=e.mode,o="show"===n,a="hide"===n,r=o||a,h=2*(e.times||5)+(r?1:0),l=e.duration/h,c=0,u=1,d=s.queue().length;for((o||!s.is(":visible"))&&(s.css("opacity",0).show(),c=1);h>u;u++)s.animate({opacity:c},l,e.easing),c=1-c;s.animate({opacity:c},l,e.easing),s.queue(i),t.effects.unshift(s,d,h+1)}),t.effects.define("shake",function(e,i){var s=1,n=t(this),o=e.direction||"left",a=e.distance||20,r=e.times||3,h=2*r+1,l=Math.round(e.duration/h),c="up"===o||"down"===o?"top":"left",u="up"===o||"left"===o,d={},p={},f={},g=n.queue().length;for(t.effects.createPlaceholder(n),d[c]=(u?"-=":"+=")+a,p[c]=(u?"+=":"-=")+2*a,f[c]=(u?"-=":"+=")+2*a,n.animate(d,l,e.easing);r>s;s++)n.animate(p,l,e.easing).animate(f,l,e.easing);n.animate(p,l,e.easing).animate(d,l/2,e.easing).queue(i),t.effects.unshift(n,g,h+1)}),t.effects.define("slide","show",function(e,i){var s,n,o=t(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},r=e.mode,h=e.direction||"left",l="up"===h||"down"===h?"top":"left",c="up"===h||"left"===h,u=e.distance||o["top"===l?"outerHeight":"outerWidth"](!0),d={};t.effects.createPlaceholder(o),s=o.cssClip(),n=o.position()[l],d[l]=(c?-1:1)*u+n,d.clip=o.cssClip(),d.clip[a[h][1]]=d.clip[a[h][0]],"show"===r&&(o.cssClip(d.clip),o.css(l,d[l]),d.clip=s,d[l]=n),o.animate(d,{queue:!1,duration:e.duration,easing:e.easing,complete:i})});var f;t.uiBackCompat!==!1&&(f=t.effects.define("transfer",function(e,i){t(this).transfer(e,i)})),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.widget("ui.accordion",{version:"1.12.0",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=t(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||e.active!==!1&&null!=e.active||(e.active=0),this._processPanels(),0>e.active&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():t()}},_createIcons:function(){var e,i,s=this.options.icons;s&&(e=t("<span>"),this._addClass(e,"ui-accordion-header-icon","ui-icon "+s.header),e.prependTo(this.headers),i=this.active.children(".ui-accordion-header-icon"),this._removeClass(i,s.header)._addClass(i,null,s.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var t;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),t=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&t.css("height","")},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):("event"===t&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(e)),this._super(t,e),"collapsible"!==t||e||this.options.active!==!1||this._activate(0),"icons"===t&&(this._destroyIcons(),e&&this._createIcons()),void 0)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!t)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var i=t.ui.keyCode,s=this.headers.length,n=this.headers.index(e.target),o=!1;switch(e.keyCode){case i.RIGHT:case i.DOWN:o=this.headers[(n+1)%s];break;case i.LEFT:case i.UP:o=this.headers[(n-1+s)%s];break;case i.SPACE:case i.ENTER:this._eventHandler(e);break;case i.HOME:o=this.headers[0];break;case i.END:o=this.headers[s-1]}o&&(t(e.target).attr("tabIndex",-1),t(o).attr("tabIndex",0),t(o).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===t.ui.keyCode.UP&&e.ctrlKey&&t(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),e.active===!1&&e.collapsible===!0||!this.headers.length?(e.active=!1,this.active=t()):e.active===!1?this._activate(0):this.active.length&&!t.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=t()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var t=this.headers,e=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),e&&(this._off(t.not(this.headers)),this._off(e.not(this.panels)))},_refresh:function(){var e,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=t(this),i=e.uniqueId().attr("id"),s=e.next(),n=s.uniqueId().attr("id");e.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(e=n.height(),this.element.siblings(":visible").each(function(){var i=t(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(e-=i.outerHeight(!0))}),this.headers.each(function(){e-=t(this).outerHeight(!0)}),this.headers.next().each(function(){t(this).height(Math.max(0,e-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===s&&(e=0,this.headers.next().each(function(){var i=t(this).is(":visible");i||t(this).show(),e=Math.max(e,t(this).css("height","").height()),i||t(this).hide()}).height(e))},_activate:function(e){var i=this._findActive(e)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):t()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var i,s,n=this.options,o=this.active,a=t(e.currentTarget),r=a[0]===o[0],h=r&&n.collapsible,l=h?t():a.next(),c=o.next(),u={oldHeader:o,oldPanel:c,newHeader:h?t():a,newPanel:l};e.preventDefault(),r&&!n.collapsible||this._trigger("beforeActivate",e,u)===!1||(n.active=h?!1:this.headers.index(a),this.active=r?t():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),n.icons&&(i=o.children(".ui-accordion-header-icon"),this._removeClass(i,null,n.icons.activeHeader)._addClass(i,null,n.icons.header)),r||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),n.icons&&(s=a.children(".ui-accordion-header-icon"),this._removeClass(s,null,n.icons.header)._addClass(s,null,n.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(e){var i=e.newPanel,s=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,e):(s.hide(),i.show(),this._toggleComplete(e)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===parseInt(t(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(t,e,i){var s,n,o,a=this,r=0,h=t.css("box-sizing"),l=t.length&&(!e.length||t.index()<e.index()),c=this.options.animate||{},u=l&&c.down||c,d=function(){a._toggleComplete(i)};return"number"==typeof u&&(o=u),"string"==typeof u&&(n=u),n=n||u.easing||c.easing,o=o||u.duration||c.duration,e.length?t.length?(s=t.show().outerHeight(),e.animate(this.hideProps,{duration:o,easing:n,step:function(t,e){e.now=Math.round(t)}}),t.hide().animate(this.showProps,{duration:o,easing:n,complete:d,step:function(t,i){i.now=Math.round(t),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==a.options.heightStyle&&(i.now=Math.round(s-e.outerHeight()-r),r=0)}}),void 0):e.animate(this.hideProps,o,n,d):t.animate(this.showProps,o,n,d)},_toggleComplete:function(t){var e=t.oldPanel,i=e.prev();this._removeClass(e,"ui-accordion-content-active"),this._removeClass(i,"ui-accordion-header-active")._addClass(i,"ui-accordion-header-collapsed"),e.length&&(e.parent()[0].className=e.parent()[0].className),this._trigger("activate",null,t)}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.0",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",n=String.fromCharCode(e.keyCode),o=!1,clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,h=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=h.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=h.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.0",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;
+e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete;var g=/ui-corner-([a-z]){2,6}/g;t.widget("ui.controlgroup",{version:"1.12.0",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var e=this,i=[];t.each(this.options.items,function(s,n){var o,a={};return n?"controlgroupLabel"===s?(o=e.element.find(n),o.each(function(){var e=t(this);e.children(".ui-controlgroup-label-contents").length||e.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),e._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),i=i.concat(o.get()),void 0):(t.fn[s]&&(e["_"+s+"Options"]&&(a=e["_"+s+"Options"]("middle")),e.element.find(n).each(function(){var n=t(this),o=n[s]("instance"),r=t.widget.extend({},a);if("button"!==s||!n.parent(".ui-spinner").length){o||(o=n[s]()[s]("instance")),o&&(r.classes=e._resolveClassesValues(r.classes,o)),n[s](r);var h=n[s]("widget");t.data(h[0],"ui-controlgroup-data",o?o:n[s]("instance")),i.push(h[0])}})),void 0):void 0}),this.childWidgets=t(t.unique(i)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(e){this.childWidgets.each(function(){var i=t(this),s=i.data("ui-controlgroup-data");s&&s[e]&&s[e]()})},_updateCornerClass:function(t,e){var i="ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all",s=this._buildSimpleOptions(e,"label").classes.label;this._removeClass(t,null,i),this._addClass(t,null,s)},_buildSimpleOptions:function(t,e){var i="vertical"===this.options.direction,s={classes:{}};return s.classes[e]={middle:"",first:"ui-corner-"+(i?"top":"left"),last:"ui-corner-"+(i?"bottom":"right"),only:"ui-corner-all"}[t],s},_spinnerOptions:function(t){var e=this._buildSimpleOptions(t,"ui-spinner");return e.classes["ui-spinner-up"]="",e.classes["ui-spinner-down"]="",e},_buttonOptions:function(t){return this._buildSimpleOptions(t,"ui-button")},_checkboxradioOptions:function(t){return this._buildSimpleOptions(t,"ui-checkboxradio-label")},_selectmenuOptions:function(t){var e="vertical"===this.options.direction;return{width:e?"auto":!1,classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(e?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(e?"top":"left")},last:{"ui-selectmenu-button-open":e?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(e?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[t]}},_resolveClassesValues:function(e,i){var s={};return t.each(e,function(t){var n=i.options.classes[t]||"";n=n.replace(g,"").trim(),s[t]=(n+" "+e[t]).replace(/\s+/g," ")}),s},_setOption:function(t,e){return"direction"===t&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(t,e),"disabled"===t?(this._callChildMethod(e?"disable":"enable"),void 0):(this.refresh(),void 0)},refresh:function(){var e,i=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),e=this.childWidgets,this.options.onlyVisible&&(e=e.filter(":visible")),e.length&&(t.each(["first","last"],function(t,s){var n=e[s]().data("ui-controlgroup-data");if(n&&i["_"+n.widgetName+"Options"]){var o=i["_"+n.widgetName+"Options"](1===e.length?"only":s);o.classes=i._resolveClassesValues(o.classes,n),n.element[n.widgetName](o)}else i._updateCornerClass(e[s](),s)}),this._callChildMethod("refresh"))}}),t.widget("ui.checkboxradio",[t.ui.formResetMixin,{version:"1.12.0",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var e,i,s=this,n=this._super()||{};return this._readType(),i=this.element.labels(),this.label=t(i[i.length-1]),this.label.length||t.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element).each(function(){s.originalLabel+=3===this.nodeType?t(this).text():this.outerHTML}),this.originalLabel&&(n.label=this.originalLabel),e=this.element[0].disabled,null!=e&&(n.disabled=e),n},_create:function(){var t=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),t&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var e=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===e&&/radio|checkbox/.test(this.type)||t.error("Can't create checkboxradio on element.nodeName="+e+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var e,i=this.element[0].name,s="input[name='"+t.ui.escapeSelector(i)+"']";return i?(e=this.form.length?t(this.form[0].elements).filter(s):t(s).filter(function(){return 0===t(this).form().length}),e.not(this.element)):t([])},_toggleClasses:function(){var e=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",e)._toggleClass(this.icon,null,"ui-icon-blank",!e),"radio"===this.type&&this._getRadioGroup().each(function(){var e=t(this).checkboxradio("instance");e&&e._removeClass(e.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(t,e){return"label"!==t||e?(this._super(t,e),"disabled"===t?(this._toggleClass(this.label,null,"ui-state-disabled",e),this.element[0].disabled=e,void 0):(this.refresh(),void 0)):void 0},_updateIcon:function(e){var i="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=t("<span>"),this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(i+=e?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,e?"ui-icon-blank":"ui-icon-check")):i+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",i),e||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){this.label.contents().not(this.element.add(this.icon).add(this.iconSpace)).remove(),this.label.append(this.options.label)},refresh:function(){var t=this.element[0].checked,e=this.element[0].disabled;this._updateIcon(t),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),null!==this.options.label&&this._updateLabel(),e!==this.options.disabled&&this._setOptions({disabled:e})}}]),t.ui.checkboxradio,t.widget("ui.button",{version:"1.12.0",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var t,e=this._super()||{};return this.isInput=this.element.is("input"),t=this.element[0].disabled,null!=t&&(e.disabled=t),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(e.label=this.originalLabel),e},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(e){e.keyCode===t.ui.keyCode.SPACE&&(e.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(e,i){var s="iconPosition"!==e,n=s?this.options.iconPosition:i,o="top"===n||"bottom"===n;this.icon?s&&this._removeClass(this.icon,null,this.options.icon):(this.icon=t("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),s&&this._addClass(this.icon,null,i),this._attachIcon(n),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=t("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(n))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(t){this.icon[/^(?:end|bottom)/.test(t)?"before":"after"](this.iconSpace)},_attachIcon:function(t){this.element[/^(?:end|bottom)/.test(t)?"append":"prepend"](this.icon)},_setOptions:function(t){var e=void 0===t.showLabel?this.options.showLabel:t.showLabel,i=void 0===t.icon?this.options.icon:t.icon;e||i||(t.showLabel=!0),this._super(t)},_setOption:function(t,e){"icon"===t&&(e?this._updateIcon(t,e):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===t&&this._updateIcon(t,e),"showLabel"===t&&(this._toggleClass("ui-button-icon-only",null,!e),this._updateTooltip()),"label"===t&&(this.isInput?this.element.val(e):(this.element.html(e),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(t,e),"disabled"===t&&(this._toggleClass(null,"ui-state-disabled",e),this.element[0].disabled=e,e&&this.element.blur())},refresh:function(){var t=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOptions({disabled:t}),this._updateTooltip()}}),t.uiBackCompat!==!1&&(t.widget("ui.button",t.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(t,e){return"text"===t?(this._super("showLabel",e),void 0):("showLabel"===t&&(this.options.text=e),"icon"===t&&(this.options.icons.primary=e),"icons"===t&&(e.primary?(this._super("icon",e.primary),this._super("iconPosition","beginning")):e.secondary&&(this._super("icon",e.secondary),this._super("iconPosition","end"))),this._superApply(arguments),void 0)}}),t.fn.button=function(e){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?e.apply(this,arguments):(t.ui.checkboxradio||t.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(t.fn.button),t.fn.buttonset=function(){return t.ui.controlgroup||t.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))}),t.ui.button,t.extend(t.ui,{datepicker:{version:"1.12.0"}});var m;t.extend(s.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(t){return a(this._defaults,t||{}),this},_attachDatepicker:function(e,i){var s,n,o;s=e.nodeName.toLowerCase(),n="div"===s||"span"===s,e.id||(this.uuid+=1,e.id="dp"+this.uuid),o=this._newInst(t(e),n),o.settings=t.extend({},i||{}),"input"===s?this._connectDatepicker(e,o):n&&this._inlineDatepicker(e,o)},_newInst:function(e,i){var s=e[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:s,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:i,dpDiv:i?n(t("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(e,i){var s=t(e);i.append=t([]),i.trigger=t([]),s.hasClass(this.markerClassName)||(this._attachments(s,i),s.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(i),t.data(e,"datepicker",i),i.settings.disabled&&this._disableDatepicker(e))},_attachments:function(e,i){var s,n,o,a=this._get(i,"appendText"),r=this._get(i,"isRTL");i.append&&i.append.remove(),a&&(i.append=t("<span class='"+this._appendClass+"'>"+a+"</span>"),e[r?"before":"after"](i.append)),e.off("focus",this._showDatepicker),i.trigger&&i.trigger.remove(),s=this._get(i,"showOn"),("focus"===s||"both"===s)&&e.on("focus",this._showDatepicker),("button"===s||"both"===s)&&(n=this._get(i,"buttonText"),o=this._get(i,"buttonImage"),i.trigger=t(this._get(i,"buttonImageOnly")?t("<img/>").addClass(this._triggerClass).attr({src:o,alt:n,title:n}):t("<button type='button'></button>").addClass(this._triggerClass).html(o?t("<img/>").attr({src:o,alt:n,title:n}):n)),e[r?"before":"after"](i.trigger),i.trigger.on("click",function(){return t.datepicker._datepickerShowing&&t.datepicker._lastInput===e[0]?t.datepicker._hideDatepicker():t.datepicker._datepickerShowing&&t.datepicker._lastInput!==e[0]?(t.datepicker._hideDatepicker(),t.datepicker._showDatepicker(e[0])):t.datepicker._showDatepicker(e[0]),!1}))},_autoSize:function(t){if(this._get(t,"autoSize")&&!t.inline){var e,i,s,n,o=new Date(2009,11,20),a=this._get(t,"dateFormat");a.match(/[DM]/)&&(e=function(t){for(i=0,s=0,n=0;t.length>n;n++)t[n].length>i&&(i=t[n].length,s=n);return s},o.setMonth(e(this._get(t,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(e(this._get(t,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),t.input.attr("size",this._formatDate(t,o).length)}},_inlineDatepicker:function(e,i){var s=t(e);s.hasClass(this.markerClassName)||(s.addClass(this.markerClassName).append(i.dpDiv),t.data(e,"datepicker",i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(e),i.dpDiv.css("display","block"))},_dialogDatepicker:function(e,i,s,n,o){var r,h,l,c,u,d=this._dialogInst;return d||(this.uuid+=1,r="dp"+this.uuid,this._dialogInput=t("<input type='text' id='"+r+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),t("body").append(this._dialogInput),d=this._dialogInst=this._newInst(this._dialogInput,!1),d.settings={},t.data(this._dialogInput[0],"datepicker",d)),a(d.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(d,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(h=document.documentElement.clientWidth,l=document.documentElement.clientHeight,c=document.documentElement.scrollLeft||document.body.scrollLeft,u=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[h/2-100+c,l/2-150+u]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),d.settings.onSelect=s,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),t.blockUI&&t.blockUI(this.dpDiv),t.data(this._dialogInput[0],"datepicker",d),this},_destroyDatepicker:function(e){var i,s=t(e),n=t.data(e,"datepicker");s.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),t.removeData(e,"datepicker"),"input"===i?(n.append.remove(),n.trigger.remove(),s.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):("div"===i||"span"===i)&&s.removeClass(this.markerClassName).empty(),m===n&&(m=null))},_enableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().removeClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}))},_disableDatepicker:function(e){var i,s,n=t(e),o=t.data(e,"datepicker");n.hasClass(this.markerClassName)&&(i=e.nodeName.toLowerCase(),"input"===i?(e.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(s=n.children("."+this._inlineClass),s.children().addClass("ui-state-disabled"),s.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=t.map(this._disabledInputs,function(t){return t===e?null:t}),this._disabledInputs[this._disabledInputs.length]=e)},_isDisabledDatepicker:function(t){if(!t)return!1;for(var e=0;this._disabledInputs.length>e;e++)if(this._disabledInputs[e]===t)return!0;return!1},_getInst:function(e){try{return t.data(e,"datepicker")}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,i,s){var n,o,r,h,l=this._getInst(e);return 2===arguments.length&&"string"==typeof i?"defaults"===i?t.extend({},t.datepicker._defaults):l?"all"===i?t.extend({},l.settings):this._get(l,i):null:(n=i||{},"string"==typeof i&&(n={},n[i]=s),l&&(this._curInst===l&&this._hideDatepicker(),o=this._getDateDatepicker(e,!0),r=this._getMinMaxDate(l,"min"),h=this._getMinMaxDate(l,"max"),a(l.settings,n),null!==r&&void 0!==n.dateFormat&&void 0===n.minDate&&(l.settings.minDate=this._formatDate(l,r)),null!==h&&void 0!==n.dateFormat&&void 0===n.maxDate&&(l.settings.maxDate=this._formatDate(l,h)),"disabled"in n&&(n.disabled?this._disableDatepicker(e):this._enableDatepicker(e)),this._attachments(t(e),l),this._autoSize(l),this._setDate(l,o),this._updateAlternate(l),this._updateDatepicker(l)),void 0)},_changeDatepicker:function(t,e,i){this._optionDatepicker(t,e,i)},_refreshDatepicker:function(t){var e=this._getInst(t);e&&this._updateDatepicker(e)},_setDateDatepicker:function(t,e){var i=this._getInst(t);i&&(this._setDate(i,e),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(t,e){var i=this._getInst(t);return i&&!i.inline&&this._setDateFromField(i,e),i?this._getDate(i):null},_doKeyDown:function(e){var i,s,n,o=t.datepicker._getInst(e.target),a=!0,r=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,t.datepicker._datepickerShowing)switch(e.keyCode){case 9:t.datepicker._hideDatepicker(),a=!1;break;case 13:return n=t("td."+t.datepicker._dayOverClass+":not(."+t.datepicker._currentClass+")",o.dpDiv),n[0]&&t.datepicker._selectDay(e.target,o.selectedMonth,o.selectedYear,n[0]),i=t.datepicker._get(o,"onSelect"),i?(s=t.datepicker._formatDate(o),i.apply(o.input?o.input[0]:null,[s,o])):t.datepicker._hideDatepicker(),!1;case 27:t.datepicker._hideDatepicker();break;case 33:t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 34:t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&t.datepicker._clearDate(e.target),a=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&t.datepicker._gotoToday(e.target),a=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?1:-1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?-t.datepicker._get(o,"stepBigMonths"):-t.datepicker._get(o,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,-7,"D"),a=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,r?-1:1,"D"),a=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&t.datepicker._adjustDate(e.target,e.ctrlKey?+t.datepicker._get(o,"stepBigMonths"):+t.datepicker._get(o,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&t.datepicker._adjustDate(e.target,7,"D"),a=e.ctrlKey||e.metaKey;break;default:a=!1}else 36===e.keyCode&&e.ctrlKey?t.datepicker._showDatepicker(this):a=!1;a&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var i,s,n=t.datepicker._getInst(e.target);return t.datepicker._get(n,"constrainInput")?(i=t.datepicker._possibleChars(t.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),e.ctrlKey||e.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(e){var i,s=t.datepicker._getInst(e.target);if(s.input.val()!==s.lastVal)try{i=t.datepicker.parseDate(t.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,t.datepicker._getFormatConfig(s)),i&&(t.datepicker._setDateFromField(s),t.datepicker._updateAlternate(s),t.datepicker._updateDatepicker(s))}catch(n){}return!0},_showDatepicker:function(e){if(e=e.target||e,"input"!==e.nodeName.toLowerCase()&&(e=t("input",e.parentNode)[0]),!t.datepicker._isDisabledDatepicker(e)&&t.datepicker._lastInput!==e){var s,n,o,r,h,l,c;s=t.datepicker._getInst(e),t.datepicker._curInst&&t.datepicker._curInst!==s&&(t.datepicker._curInst.dpDiv.stop(!0,!0),s&&t.datepicker._datepickerShowing&&t.datepicker._hideDatepicker(t.datepicker._curInst.input[0])),n=t.datepicker._get(s,"beforeShow"),o=n?n.apply(e,[e,s]):{},o!==!1&&(a(s.settings,o),s.lastVal=null,t.datepicker._lastInput=e,t.datepicker._setDateFromField(s),t.datepicker._inDialog&&(e.value=""),t.datepicker._pos||(t.datepicker._pos=t.datepicker._findPos(e),t.datepicker._pos[1]+=e.offsetHeight),r=!1,t(e).parents().each(function(){return r|="fixed"===t(this).css("position"),!r}),h={left:t.datepicker._pos[0],top:t.datepicker._pos[1]},t.datepicker._pos=null,s.dpDiv.empty(),s.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),t.datepicker._updateDatepicker(s),h=t.datepicker._checkOffset(s,h,r),s.dpDiv.css({position:t.datepicker._inDialog&&t.blockUI?"static":r?"fixed":"absolute",display:"none",left:h.left+"px",top:h.top+"px"}),s.inline||(l=t.datepicker._get(s,"showAnim"),c=t.datepicker._get(s,"duration"),s.dpDiv.css("z-index",i(t(e))+1),t.datepicker._datepickerShowing=!0,t.effects&&t.effects.effect[l]?s.dpDiv.show(l,t.datepicker._get(s,"showOptions"),c):s.dpDiv[l||"show"](l?c:null),t.datepicker._shouldFocusInput(s)&&s.input.trigger("focus"),t.datepicker._curInst=s))
+}},_updateDatepicker:function(e){this.maxRows=4,m=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var i,s=this._getNumberOfMonths(e),n=s[1],a=17,r=e.dpDiv.find("."+this._dayOverClass+" a");r.length>0&&o.apply(r.get(0)),e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),n>1&&e.dpDiv.addClass("ui-datepicker-multi-"+n).css("width",a*n+"em"),e.dpDiv[(1!==s[0]||1!==s[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e===t.datepicker._curInst&&t.datepicker._datepickerShowing&&t.datepicker._shouldFocusInput(e)&&e.input.trigger("focus"),e.yearshtml&&(i=e.yearshtml,setTimeout(function(){i===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),i=e.yearshtml=null},0))},_shouldFocusInput:function(t){return t.input&&t.input.is(":visible")&&!t.input.is(":disabled")&&!t.input.is(":focus")},_checkOffset:function(e,i,s){var n=e.dpDiv.outerWidth(),o=e.dpDiv.outerHeight(),a=e.input?e.input.outerWidth():0,r=e.input?e.input.outerHeight():0,h=document.documentElement.clientWidth+(s?0:t(document).scrollLeft()),l=document.documentElement.clientHeight+(s?0:t(document).scrollTop());return i.left-=this._get(e,"isRTL")?n-a:0,i.left-=s&&i.left===e.input.offset().left?t(document).scrollLeft():0,i.top-=s&&i.top===e.input.offset().top+r?t(document).scrollTop():0,i.left-=Math.min(i.left,i.left+n>h&&h>n?Math.abs(i.left+n-h):0),i.top-=Math.min(i.top,i.top+o>l&&l>o?Math.abs(o+r):0),i},_findPos:function(e){for(var i,s=this._getInst(e),n=this._get(s,"isRTL");e&&("hidden"===e.type||1!==e.nodeType||t.expr.filters.hidden(e));)e=e[n?"previousSibling":"nextSibling"];return i=t(e).offset(),[i.left,i.top]},_hideDatepicker:function(e){var i,s,n,o,a=this._curInst;!a||e&&a!==t.data(e,"datepicker")||this._datepickerShowing&&(i=this._get(a,"showAnim"),s=this._get(a,"duration"),n=function(){t.datepicker._tidyDialog(a)},t.effects&&(t.effects.effect[i]||t.effects[i])?a.dpDiv.hide(i,t.datepicker._get(a,"showOptions"),s,n):a.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?s:null,n),i||n(),this._datepickerShowing=!1,o=this._get(a,"onClose"),o&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),t.blockUI&&(t.unblockUI(),t("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(t){t.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(t.datepicker._curInst){var i=t(e.target),s=t.datepicker._getInst(i[0]);(i[0].id!==t.datepicker._mainDivId&&0===i.parents("#"+t.datepicker._mainDivId).length&&!i.hasClass(t.datepicker.markerClassName)&&!i.closest("."+t.datepicker._triggerClass).length&&t.datepicker._datepickerShowing&&(!t.datepicker._inDialog||!t.blockUI)||i.hasClass(t.datepicker.markerClassName)&&t.datepicker._curInst!==s)&&t.datepicker._hideDatepicker()}},_adjustDate:function(e,i,s){var n=t(e),o=this._getInst(n[0]);this._isDisabledDatepicker(n[0])||(this._adjustInstDate(o,i+("M"===s?this._get(o,"showCurrentAtPos"):0),s),this._updateDatepicker(o))},_gotoToday:function(e){var i,s=t(e),n=this._getInst(s[0]);this._get(n,"gotoCurrent")&&n.currentDay?(n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear):(i=new Date,n.selectedDay=i.getDate(),n.drawMonth=n.selectedMonth=i.getMonth(),n.drawYear=n.selectedYear=i.getFullYear()),this._notifyChange(n),this._adjustDate(s)},_selectMonthYear:function(e,i,s){var n=t(e),o=this._getInst(n[0]);o["selected"+("M"===s?"Month":"Year")]=o["draw"+("M"===s?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(n)},_selectDay:function(e,i,s,n){var o,a=t(e);t(n).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||(o=this._getInst(a[0]),o.selectedDay=o.currentDay=t("a",n).html(),o.selectedMonth=o.currentMonth=i,o.selectedYear=o.currentYear=s,this._selectDate(e,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(e){var i=t(e);this._selectDate(i,"")},_selectDate:function(e,i){var s,n=t(e),o=this._getInst(n[0]);i=null!=i?i:this._formatDate(o),o.input&&o.input.val(i),this._updateAlternate(o),s=this._get(o,"onSelect"),s?s.apply(o.input?o.input[0]:null,[i,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(e){var i,s,n,o=this._get(e,"altField");o&&(i=this._get(e,"altFormat")||this._get(e,"dateFormat"),s=this._getDate(e),n=this.formatDate(i,s,this._getFormatConfig(e)),t(o).val(n))},noWeekends:function(t){var e=t.getDay();return[e>0&&6>e,""]},iso8601Week:function(t){var e,i=new Date(t.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),e=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((e-i)/864e5)/7)+1},parseDate:function(e,i,s){if(null==e||null==i)throw"Invalid arguments";if(i="object"==typeof i?""+i:i+"",""===i)return null;var n,o,a,r,h=0,l=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,c="string"!=typeof l?l:(new Date).getFullYear()%100+parseInt(l,10),u=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,d=(s?s.dayNames:null)||this._defaults.dayNames,p=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,f=(s?s.monthNames:null)||this._defaults.monthNames,g=-1,m=-1,_=-1,v=-1,b=!1,y=function(t){var i=e.length>n+1&&e.charAt(n+1)===t;return i&&n++,i},w=function(t){var e=y(t),s="@"===t?14:"!"===t?20:"y"===t&&e?4:"o"===t?3:2,n="y"===t?s:1,o=RegExp("^\\d{"+n+","+s+"}"),a=i.substring(h).match(o);if(!a)throw"Missing number at position "+h;return h+=a[0].length,parseInt(a[0],10)},k=function(e,s,n){var o=-1,a=t.map(y(e)?n:s,function(t,e){return[[e,t]]}).sort(function(t,e){return-(t[1].length-e[1].length)});if(t.each(a,function(t,e){var s=e[1];return i.substr(h,s.length).toLowerCase()===s.toLowerCase()?(o=e[0],h+=s.length,!1):void 0}),-1!==o)return o+1;throw"Unknown name at position "+h},x=function(){if(i.charAt(h)!==e.charAt(n))throw"Unexpected literal at position "+h;h++};for(n=0;e.length>n;n++)if(b)"'"!==e.charAt(n)||y("'")?x():b=!1;else switch(e.charAt(n)){case"d":_=w("d");break;case"D":k("D",u,d);break;case"o":v=w("o");break;case"m":m=w("m");break;case"M":m=k("M",p,f);break;case"y":g=w("y");break;case"@":r=new Date(w("@")),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"!":r=new Date((w("!")-this._ticksTo1970)/1e4),g=r.getFullYear(),m=r.getMonth()+1,_=r.getDate();break;case"'":y("'")?x():b=!0;break;default:x()}if(i.length>h&&(a=i.substr(h),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===g?g=(new Date).getFullYear():100>g&&(g+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c>=g?0:-100)),v>-1)for(m=1,_=v;;){if(o=this._getDaysInMonth(g,m-1),o>=_)break;m++,_-=o}if(r=this._daylightSavingAdjust(new Date(g,m-1,_)),r.getFullYear()!==g||r.getMonth()+1!==m||r.getDate()!==_)throw"Invalid date";return r},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(t,e,i){if(!e)return"";var s,n=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,o=(i?i.dayNames:null)||this._defaults.dayNames,a=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,r=(i?i.monthNames:null)||this._defaults.monthNames,h=function(e){var i=t.length>s+1&&t.charAt(s+1)===e;return i&&s++,i},l=function(t,e,i){var s=""+e;if(h(t))for(;i>s.length;)s="0"+s;return s},c=function(t,e,i,s){return h(t)?s[e]:i[e]},u="",d=!1;if(e)for(s=0;t.length>s;s++)if(d)"'"!==t.charAt(s)||h("'")?u+=t.charAt(s):d=!1;else switch(t.charAt(s)){case"d":u+=l("d",e.getDate(),2);break;case"D":u+=c("D",e.getDay(),n,o);break;case"o":u+=l("o",Math.round((new Date(e.getFullYear(),e.getMonth(),e.getDate()).getTime()-new Date(e.getFullYear(),0,0).getTime())/864e5),3);break;case"m":u+=l("m",e.getMonth()+1,2);break;case"M":u+=c("M",e.getMonth(),a,r);break;case"y":u+=h("y")?e.getFullYear():(10>e.getFullYear()%100?"0":"")+e.getFullYear()%100;break;case"@":u+=e.getTime();break;case"!":u+=1e4*e.getTime()+this._ticksTo1970;break;case"'":h("'")?u+="'":d=!0;break;default:u+=t.charAt(s)}return u},_possibleChars:function(t){var e,i="",s=!1,n=function(i){var s=t.length>e+1&&t.charAt(e+1)===i;return s&&e++,s};for(e=0;t.length>e;e++)if(s)"'"!==t.charAt(e)||n("'")?i+=t.charAt(e):s=!1;else switch(t.charAt(e)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":n("'")?i+="'":s=!0;break;default:i+=t.charAt(e)}return i},_get:function(t,e){return void 0!==t.settings[e]?t.settings[e]:this._defaults[e]},_setDateFromField:function(t,e){if(t.input.val()!==t.lastVal){var i=this._get(t,"dateFormat"),s=t.lastVal=t.input?t.input.val():null,n=this._getDefaultDate(t),o=n,a=this._getFormatConfig(t);try{o=this.parseDate(i,s,a)||n}catch(r){s=e?"":s}t.selectedDay=o.getDate(),t.drawMonth=t.selectedMonth=o.getMonth(),t.drawYear=t.selectedYear=o.getFullYear(),t.currentDay=s?o.getDate():0,t.currentMonth=s?o.getMonth():0,t.currentYear=s?o.getFullYear():0,this._adjustInstDate(t)}},_getDefaultDate:function(t){return this._restrictMinMax(t,this._determineDate(t,this._get(t,"defaultDate"),new Date))},_determineDate:function(e,i,s){var n=function(t){var e=new Date;return e.setDate(e.getDate()+t),e},o=function(i){try{return t.datepicker.parseDate(t.datepicker._get(e,"dateFormat"),i,t.datepicker._getFormatConfig(e))}catch(s){}for(var n=(i.toLowerCase().match(/^c/)?t.datepicker._getDate(e):null)||new Date,o=n.getFullYear(),a=n.getMonth(),r=n.getDate(),h=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=h.exec(i);l;){switch(l[2]||"d"){case"d":case"D":r+=parseInt(l[1],10);break;case"w":case"W":r+=7*parseInt(l[1],10);break;case"m":case"M":a+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a));break;case"y":case"Y":o+=parseInt(l[1],10),r=Math.min(r,t.datepicker._getDaysInMonth(o,a))}l=h.exec(i)}return new Date(o,a,r)},a=null==i||""===i?s:"string"==typeof i?o(i):"number"==typeof i?isNaN(i)?s:n(i):new Date(i.getTime());return a=a&&"Invalid Date"==""+a?s:a,a&&(a.setHours(0),a.setMinutes(0),a.setSeconds(0),a.setMilliseconds(0)),this._daylightSavingAdjust(a)},_daylightSavingAdjust:function(t){return t?(t.setHours(t.getHours()>12?t.getHours()+2:0),t):null},_setDate:function(t,e,i){var s=!e,n=t.selectedMonth,o=t.selectedYear,a=this._restrictMinMax(t,this._determineDate(t,e,new Date));t.selectedDay=t.currentDay=a.getDate(),t.drawMonth=t.selectedMonth=t.currentMonth=a.getMonth(),t.drawYear=t.selectedYear=t.currentYear=a.getFullYear(),n===t.selectedMonth&&o===t.selectedYear||i||this._notifyChange(t),this._adjustInstDate(t),t.input&&t.input.val(s?"":this._formatDate(t))},_getDate:function(t){var e=!t.currentYear||t.input&&""===t.input.val()?null:this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return e},_attachHandlers:function(e){var i=this._get(e,"stepMonths"),s="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){t.datepicker._adjustDate(s,-i,"M")},next:function(){t.datepicker._adjustDate(s,+i,"M")},hide:function(){t.datepicker._hideDatepicker()},today:function(){t.datepicker._gotoToday(s)},selectDay:function(){return t.datepicker._selectDay(s,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return t.datepicker._selectMonthYear(s,this,"M"),!1},selectYear:function(){return t.datepicker._selectMonthYear(s,this,"Y"),!1}};t(this).on(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(t){var e,i,s,n,o,a,r,h,l,c,u,d,p,f,g,m,_,v,b,y,w,k,x,C,D,I,T,P,M,S,H,z,O,A,N,W,E,F,R,L=new Date,B=this._daylightSavingAdjust(new Date(L.getFullYear(),L.getMonth(),L.getDate())),Y=this._get(t,"isRTL"),j=this._get(t,"showButtonPanel"),q=this._get(t,"hideIfNoPrevNext"),K=this._get(t,"navigationAsDateFormat"),U=this._getNumberOfMonths(t),V=this._get(t,"showCurrentAtPos"),X=this._get(t,"stepMonths"),$=1!==U[0]||1!==U[1],G=this._daylightSavingAdjust(t.currentDay?new Date(t.currentYear,t.currentMonth,t.currentDay):new Date(9999,9,9)),Q=this._getMinMaxDate(t,"min"),J=this._getMinMaxDate(t,"max"),Z=t.drawMonth-V,te=t.drawYear;if(0>Z&&(Z+=12,te--),J)for(e=this._daylightSavingAdjust(new Date(J.getFullYear(),J.getMonth()-U[0]*U[1]+1,J.getDate())),e=Q&&Q>e?Q:e;this._daylightSavingAdjust(new Date(te,Z,1))>e;)Z--,0>Z&&(Z=11,te--);for(t.drawMonth=Z,t.drawYear=te,i=this._get(t,"prevText"),i=K?this.formatDate(i,this._daylightSavingAdjust(new Date(te,Z-X,1)),this._getFormatConfig(t)):i,s=this._canAdjustMonth(t,-1,te,Z)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>":q?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+i+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"e":"w")+"'>"+i+"</span></a>",n=this._get(t,"nextText"),n=K?this.formatDate(n,this._daylightSavingAdjust(new Date(te,Z+X,1)),this._getFormatConfig(t)):n,o=this._canAdjustMonth(t,1,te,Z)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>":q?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(Y?"w":"e")+"'>"+n+"</span></a>",a=this._get(t,"currentText"),r=this._get(t,"gotoCurrent")&&t.currentDay?G:B,a=K?this.formatDate(a,r,this._getFormatConfig(t)):a,h=t.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(t,"closeText")+"</button>",l=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(Y?h:"")+(this._isInRange(t,r)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(Y?"":h)+"</div>":"",c=parseInt(this._get(t,"firstDay"),10),c=isNaN(c)?0:c,u=this._get(t,"showWeek"),d=this._get(t,"dayNames"),p=this._get(t,"dayNamesMin"),f=this._get(t,"monthNames"),g=this._get(t,"monthNamesShort"),m=this._get(t,"beforeShowDay"),_=this._get(t,"showOtherMonths"),v=this._get(t,"selectOtherMonths"),b=this._getDefaultDate(t),y="",k=0;U[0]>k;k++){for(x="",this.maxRows=4,C=0;U[1]>C;C++){if(D=this._daylightSavingAdjust(new Date(te,Z,t.selectedDay)),I=" ui-corner-all",T="",$){if(T+="<div class='ui-datepicker-group",U[1]>1)switch(C){case 0:T+=" ui-datepicker-group-first",I=" ui-corner-"+(Y?"right":"left");break;case U[1]-1:T+=" ui-datepicker-group-last",I=" ui-corner-"+(Y?"left":"right");break;default:T+=" ui-datepicker-group-middle",I=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+I+"'>"+(/all|left/.test(I)&&0===k?Y?o:s:"")+(/all|right/.test(I)&&0===k?Y?s:o:"")+this._generateMonthYearHeader(t,Z,te,Q,J,k>0||C>0,f,g)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>",P=u?"<th class='ui-datepicker-week-col'>"+this._get(t,"weekHeader")+"</th>":"",w=0;7>w;w++)M=(w+c)%7,P+="<th scope='col'"+((w+c+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+d[M]+"'>"+p[M]+"</span></th>";for(T+=P+"</tr></thead><tbody>",S=this._getDaysInMonth(te,Z),te===t.selectedYear&&Z===t.selectedMonth&&(t.selectedDay=Math.min(t.selectedDay,S)),H=(this._getFirstDayOfMonth(te,Z)-c+7)%7,z=Math.ceil((H+S)/7),O=$?this.maxRows>z?this.maxRows:z:z,this.maxRows=O,A=this._daylightSavingAdjust(new Date(te,Z,1-H)),N=0;O>N;N++){for(T+="<tr>",W=u?"<td class='ui-datepicker-week-col'>"+this._get(t,"calculateWeek")(A)+"</td>":"",w=0;7>w;w++)E=m?m.apply(t.input?t.input[0]:null,[A]):[!0,""],F=A.getMonth()!==Z,R=F&&!v||!E[0]||Q&&Q>A||J&&A>J,W+="<td class='"+((w+c+6)%7>=5?" ui-datepicker-week-end":"")+(F?" ui-datepicker-other-month":"")+(A.getTime()===D.getTime()&&Z===t.selectedMonth&&t._keyEvent||b.getTime()===A.getTime()&&b.getTime()===D.getTime()?" "+this._dayOverClass:"")+(R?" "+this._unselectableClass+" ui-state-disabled":"")+(F&&!_?"":" "+E[1]+(A.getTime()===G.getTime()?" "+this._currentClass:"")+(A.getTime()===B.getTime()?" ui-datepicker-today":""))+"'"+(F&&!_||!E[2]?"":" title='"+E[2].replace(/'/g,"&#39;")+"'")+(R?"":" data-handler='selectDay' data-event='click' data-month='"+A.getMonth()+"' data-year='"+A.getFullYear()+"'")+">"+(F&&!_?"&#xa0;":R?"<span class='ui-state-default'>"+A.getDate()+"</span>":"<a class='ui-state-default"+(A.getTime()===B.getTime()?" ui-state-highlight":"")+(A.getTime()===G.getTime()?" ui-state-active":"")+(F?" ui-priority-secondary":"")+"' href='#'>"+A.getDate()+"</a>")+"</td>",A.setDate(A.getDate()+1),A=this._daylightSavingAdjust(A);T+=W+"</tr>"}Z++,Z>11&&(Z=0,te++),T+="</tbody></table>"+($?"</div>"+(U[0]>0&&C===U[1]-1?"<div class='ui-datepicker-row-break'></div>":""):""),x+=T}y+=x}return y+=l,t._keyEvent=!1,y},_generateMonthYearHeader:function(t,e,i,s,n,o,a,r){var h,l,c,u,d,p,f,g,m=this._get(t,"changeMonth"),_=this._get(t,"changeYear"),v=this._get(t,"showMonthAfterYear"),b="<div class='ui-datepicker-title'>",y="";if(o||!m)y+="<span class='ui-datepicker-month'>"+a[e]+"</span>";else{for(h=s&&s.getFullYear()===i,l=n&&n.getFullYear()===i,y+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",c=0;12>c;c++)(!h||c>=s.getMonth())&&(!l||n.getMonth()>=c)&&(y+="<option value='"+c+"'"+(c===e?" selected='selected'":"")+">"+r[c]+"</option>");y+="</select>"}if(v||(b+=y+(!o&&m&&_?"":"&#xa0;")),!t.yearshtml)if(t.yearshtml="",o||!_)b+="<span class='ui-datepicker-year'>"+i+"</span>";else{for(u=this._get(t,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(t){var e=t.match(/c[+\-].*/)?i+parseInt(t.substring(1),10):t.match(/[+\-].*/)?d+parseInt(t,10):parseInt(t,10);return isNaN(e)?d:e},f=p(u[0]),g=Math.max(f,p(u[1]||"")),f=s?Math.max(f,s.getFullYear()):f,g=n?Math.min(g,n.getFullYear()):g,t.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";g>=f;f++)t.yearshtml+="<option value='"+f+"'"+(f===i?" selected='selected'":"")+">"+f+"</option>";t.yearshtml+="</select>",b+=t.yearshtml,t.yearshtml=null}return b+=this._get(t,"yearSuffix"),v&&(b+=(!o&&m&&_?"":"&#xa0;")+y),b+="</div>"},_adjustInstDate:function(t,e,i){var s=t.selectedYear+("Y"===i?e:0),n=t.selectedMonth+("M"===i?e:0),o=Math.min(t.selectedDay,this._getDaysInMonth(s,n))+("D"===i?e:0),a=this._restrictMinMax(t,this._daylightSavingAdjust(new Date(s,n,o)));t.selectedDay=a.getDate(),t.drawMonth=t.selectedMonth=a.getMonth(),t.drawYear=t.selectedYear=a.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(t)},_restrictMinMax:function(t,e){var i=this._getMinMaxDate(t,"min"),s=this._getMinMaxDate(t,"max"),n=i&&i>e?i:e;return s&&n>s?s:n},_notifyChange:function(t){var e=this._get(t,"onChangeMonthYear");e&&e.apply(t.input?t.input[0]:null,[t.selectedYear,t.selectedMonth+1,t])},_getNumberOfMonths:function(t){var e=this._get(t,"numberOfMonths");return null==e?[1,1]:"number"==typeof e?[1,e]:e},_getMinMaxDate:function(t,e){return this._determineDate(t,this._get(t,e+"Date"),null)},_getDaysInMonth:function(t,e){return 32-this._daylightSavingAdjust(new Date(t,e,32)).getDate()},_getFirstDayOfMonth:function(t,e){return new Date(t,e,1).getDay()},_canAdjustMonth:function(t,e,i,s){var n=this._getNumberOfMonths(t),o=this._daylightSavingAdjust(new Date(i,s+(0>e?e:n[0]*n[1]),1));return 0>e&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(t,o)},_isInRange:function(t,e){var i,s,n=this._getMinMaxDate(t,"min"),o=this._getMinMaxDate(t,"max"),a=null,r=null,h=this._get(t,"yearRange");return h&&(i=h.split(":"),s=(new Date).getFullYear(),a=parseInt(i[0],10),r=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(a+=s),i[1].match(/[+\-].*/)&&(r+=s)),(!n||e.getTime()>=n.getTime())&&(!o||e.getTime()<=o.getTime())&&(!a||e.getFullYear()>=a)&&(!r||r>=e.getFullYear())},_getFormatConfig:function(t){var e=this._get(t,"shortYearCutoff");return e="string"!=typeof e?e:(new Date).getFullYear()%100+parseInt(e,10),{shortYearCutoff:e,dayNamesShort:this._get(t,"dayNamesShort"),dayNames:this._get(t,"dayNames"),monthNamesShort:this._get(t,"monthNamesShort"),monthNames:this._get(t,"monthNames")}},_formatDate:function(t,e,i,s){e||(t.currentDay=t.selectedDay,t.currentMonth=t.selectedMonth,t.currentYear=t.selectedYear);var n=e?"object"==typeof e?e:this._daylightSavingAdjust(new Date(s,i,e)):this._daylightSavingAdjust(new Date(t.currentYear,t.currentMonth,t.currentDay));return this.formatDate(this._get(t,"dateFormat"),n,this._getFormatConfig(t))}}),t.fn.datepicker=function(e){if(!this.length)return this;t.datepicker.initialized||(t(document).on("mousedown",t.datepicker._checkExternalClick),t.datepicker.initialized=!0),0===t("#"+t.datepicker._mainDivId).length&&t("body").append(t.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof e||"isDisabled"!==e&&"getDate"!==e&&"widget"!==e?"option"===e&&2===arguments.length&&"string"==typeof arguments[1]?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof e?t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this].concat(i)):t.datepicker._attachDatepicker(this,e)}):t.datepicker["_"+e+"Datepicker"].apply(t.datepicker,[this[0]].concat(i))},t.datepicker=new s,t.datepicker.initialized=!1,t.datepicker.uuid=(new Date).getTime(),t.datepicker.version="1.12.0",t.datepicker,t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var _=!1;t(document).on("mouseup",function(){_=!1}),t.widget("ui.mouse",{version:"1.12.0",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!_){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,n="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!n&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),_=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,_=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.ui.safeBlur=function(e){e&&"body"!==e.nodeName.toLowerCase()&&t(e).trigger("blur")},t.widget("ui.draggable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(t,e){this._super(t,e),"handle"===t&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){return(this.helper||this.element).is(".ui-draggable-dragging")?(this.destroyOnClear=!0,void 0):(this._removeHandleClassName(),this._mouseDestroy(),void 0)},_mouseCapture:function(e){var i=this.options;return this._blurActiveElement(e),this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(this._blockFrames(i.iframeFix===!0?"iframe":i.iframeFix),!0):!1)},_blockFrames:function(e){this.iframeBlocks=this.document.find(e).map(function(){var e=t(this);return t("<div>").css("position","absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){var i=t.ui.safeActiveElement(this.document[0]),s=t(e.target);this._getHandle(e)&&s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===t(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(e),this.originalPosition=this.position=this._generatePosition(e,!1),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_refreshOffsets:function(t){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:t.pageX-this.offset.left,top:t.pageY-this.offset.top}},_mouseDrag:function(e,i){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e,!0),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp(new t.Event("mouseup",e)),!1;this.position=s.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1},_mouseUp:function(e){return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),this.handleElement.is(e.target)&&this.element.trigger("focus"),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new t.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return n.parents("body").length||n.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s&&n[0]===this.element[0]&&this._setPositionRelative(),n[0]===this.element[0]||/(fixed|absolute)/.test(n.css("position"))||n.css("position","absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_isRootNode:function(t){return/(html|body)/i.test(t.tagName)||t===this.document[0]},_getParentOffset:function(){var e=this.offsetParent.offset(),i=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==i&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var t=this.element.position(),e=this._isRootNode(this.scrollParent[0]);return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+(e?0:this.scrollParent.scrollTop()),left:t.left-(parseInt(this.helper.css("left"),10)||0)+(e?0:this.scrollParent.scrollLeft())}
+},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options,o=this.document[0];return this.relativeContainer=null,n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):"document"===n.containment?(this.containment=[0,0,t(o).width()-this.helperProportions.width-this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],void 0):n.containment.constructor===Array?(this.containment=n.containment,void 0):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e=/(scroll|auto)/.test(i.css("overflow")),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=i),void 0):(this.containment=null,void 0)},_convertPositionTo:function(t,e){e||(e=this.position);var i="absolute"===t?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:e.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:e.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(t,e){var i,s,n,o,a=this.options,r=this._isRootNode(this.scrollParent[0]),h=t.pageX,l=t.pageY;return r&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),e&&(this.containment&&(this.relativeContainer?(s=this.relativeContainer.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,t.pageX-this.offset.click.left<i[0]&&(h=i[0]+this.offset.click.left),t.pageY-this.offset.click.top<i[1]&&(l=i[1]+this.offset.click.top),t.pageX-this.offset.click.left>i[2]&&(h=i[2]+this.offset.click.left),t.pageY-this.offset.click.top>i[3]&&(l=i[3]+this.offset.click.top)),a.grid&&(n=a.grid[1]?this.originalPageY+Math.round((l-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,l=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-a.grid[1]:n+a.grid[1]:n,o=a.grid[0]?this.originalPageX+Math.round((h-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,h=i?o-this.offset.click.left>=i[0]||o-this.offset.click.left>i[2]?o:o-this.offset.click.left>=i[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(h=this.originalPageX),"x"===a.axis&&(l=this.originalPageY)),{top:l-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:r?0:this.offset.scroll.top),left:h-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:r?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s,this],!0),/^(drag|start|stop)/.test(e)&&(this.positionAbs=this._convertPositionTo("absolute"),s.offset=this.positionAbs),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i,s){var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){var i=t(this).sortable("instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger("activate",e,n))})},stop:function(e,i,s){var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=!1,t.each(s.sortables,function(){var t=this;t.isOver?(t.isOver=0,s.cancelHelperRemoval=!0,t.cancelHelperRemoval=!1,t._storedCSS={position:t.placeholder.css("position"),top:t.placeholder.css("top"),left:t.placeholder.css("left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=!0,t._trigger("deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){var n=!1,o=this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=!0,t.each(s.sortables,function(){return this.positionAbs=s.positionAbs,this.helperProportions=s.helperProportions,this.offset.click=s.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&t.contains(o.element[0],this.element[0])&&(n=!1),n})),n?(o.isOver||(o.isOver=1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return i.helper[0]},e.target=o.currentItem[0],o._mouseCapture(e,!0),o._mouseStart(e,!0,!0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger("toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",e,o._uiHash(o)),o._mouseStop(e,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,!0),s._trigger("fromSortable",e),s.dropped=!1,t.each(s.sortables,function(){this.refreshPositions()}))})}}),t.ui.plugin.add("draggable","cursor",{start:function(e,i,s){var n=t("body"),o=s.options;n.css("cursor")&&(o._cursor=n.css("cursor")),n.css("cursor",o.cursor)},stop:function(e,i,s){var n=s.options;n._cursor&&t("body").css("cursor",n._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("opacity")&&(o._opacity=n.css("opacity")),n.css("opacity",o.opacity)},stop:function(e,i,s){var n=s.options;n._opacity&&t(i.helper).css("opacity",n._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(!1)),i.scrollParentNotHidden[0]!==i.document[0]&&"HTML"!==i.scrollParentNotHidden[0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){var n=s.options,o=!1,a=s.scrollParentNotHidden[0],r=s.document[0];a!==r&&"HTML"!==a.tagName?(n.axis&&"x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&&"y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&&"x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&&"y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==!1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add("draggable","snap",{start:function(e,i,s){var n=s.options;s.snapElements=[],t(n.snap.constructor!==String?n.snap.items||":data(ui-draggable)":n.snap).each(function(){var e=t(this),i=e.offset();this!==s.element[0]&&s.snapElements.push({item:this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){var n,o,a,r,h,l,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height;for(d=s.snapElements.length-1;d>=0;d--)h=s.snapElements[d].left-s.margins.left,l=h+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,h-g>_||m>l+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=!1):("inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(h-_),r=g>=Math.abs(l-m),n&&(i.position.top=s._convertPositionTo("relative",{top:c-s.helperProportions.height,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l}).left)),p=n||o||a||r,"outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(h-m),r=g>=Math.abs(l-_),n&&(i.position.top=s._convertPositionTo("relative",{top:c,left:0}).top),o&&(i.position.top=s._convertPositionTo("relative",{top:u-s.helperProportions.height,left:0}).top),a&&(i.position.left=s._convertPositionTo("relative",{top:0,left:h}).left),r&&(i.position.left=s._convertPositionTo("relative",{top:0,left:l-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add("draggable","stack",{start:function(e,i,s){var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});a.length&&(n=parseInt(t(a[0]).css("zIndex"),10)||0,t(a).each(function(e){t(this).css("zIndex",n+e)}),this.css("zIndex",n+a.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i,s){var n=t(i.helper),o=s.options;n.css("zIndex")&&(o._zIndex=n.css("zIndex")),n.css("zIndex",o.zIndex)},stop:function(e,i,s){var n=s.options;n._zIndex&&t(i.helper).css("zIndex",n._zIndex)}}),t.ui.draggable,t.widget("ui.resizable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("<div>"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidth<t.width,n=this._isNumber(t.height)&&e.maxHeight&&e.maxHeight<t.height,o=this._isNumber(t.width)&&e.minWidth&&e.minWidth>t.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,g=s.maxWidth&&p>s.maxWidth,m=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),g&&(p-=l),m&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable,t.widget("ui.dialog",{version:"1.12.0",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(e){var i=t(this).css(e).offset().top;0>i&&t(this).css("top",e.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&t.fn.draggable&&this._makeDraggable(),this.options.resizable&&t.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var e=this.options.appendTo;return e&&(e.jquery||e.nodeType)?t(e):this.document.find(e||"body").eq(0)},_destroy:function(){var t,e=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),t=e.parent.children().eq(e.index),t.length&&t[0]!==this.element[0]?t.before(this.element):e.parent.append(this.element)},widget:function(){return this.uiDialog
+},disable:t.noop,enable:t.noop,close:function(e){var i=this;this._isOpen&&this._trigger("beforeClose",e)!==!1&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||t.ui.safeBlur(t.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){i._trigger("close",e)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,i){var s=!1,n=this.uiDialog.siblings(".ui-front:visible").map(function(){return+t(this).css("z-index")}).get(),o=Math.max.apply(null,n);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),s=!0),s&&!i&&this._trigger("focus",e),s},open:function(){var e=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),void 0):(this._isOpen=!0,this.opener=t(t.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){e._focusTabbable(),e._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"),void 0)},_focusTabbable:function(){var t=this._focusedElement;t||(t=this.element.find("[autofocus]")),t.length||(t=this.element.find(":tabbable")),t.length||(t=this.uiDialogButtonPane.find(":tabbable")),t.length||(t=this.uiDialogTitlebarClose.filter(":tabbable")),t.length||(t=this.uiDialog),t.eq(0).trigger("focus")},_keepFocus:function(e){function i(){var e=t.ui.safeActiveElement(this.document[0]),i=this.uiDialog[0]===e||t.contains(this.uiDialog[0],e);i||this._focusTabbable()}e.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=t("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(e){if(this.options.closeOnEscape&&!e.isDefaultPrevented()&&e.keyCode&&e.keyCode===t.ui.keyCode.ESCAPE)return e.preventDefault(),this.close(e),void 0;if(e.keyCode===t.ui.keyCode.TAB&&!e.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");e.target!==n[0]&&e.target!==this.uiDialog[0]||e.shiftKey?e.target!==s[0]&&e.target!==this.uiDialog[0]||!e.shiftKey||(this._delay(function(){n.trigger("focus")}),e.preventDefault()):(this._delay(function(){s.trigger("focus")}),e.preventDefault())}},mousedown:function(t){this._moveToTop(t)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var e;this.uiDialogTitlebar=t("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(e){t(e.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=t("<button type='button'></button>").button({label:t("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(t){t.preventDefault(),this.close(t)}}),e=t("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(e,"ui-dialog-title"),this._title(e),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":e.attr("id")})},_title:function(t){this.options.title?t.text(this.options.title):t.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=t("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=t("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var e=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),t.isEmptyObject(i)||t.isArray(i)&&!i.length?(this._removeClass(this.uiDialog,"ui-dialog-buttons"),void 0):(t.each(i,function(i,s){var n,o;s=t.isFunction(s)?{click:s,text:i}:s,s=t.extend({type:"button"},s),n=s.click,o={icon:s.icon,iconPosition:s.iconPosition,showLabel:s.showLabel},delete s.click,delete s.icon,delete s.iconPosition,delete s.showLabel,t("<button></button>",s).button(o).appendTo(e.uiButtonSet).on("click",function(){n.apply(e.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),void 0)},_makeDraggable:function(){function e(t){return{position:t.position,offset:t.offset}}var i=this,s=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(s,n){i._addClass(t(this),"ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",s,e(n))},drag:function(t,s){i._trigger("drag",t,e(s))},stop:function(n,o){var a=o.offset.left-i.document.scrollLeft(),r=o.offset.top-i.document.scrollTop();s.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" "+"top"+(r>=0?"+":"")+r,of:i.window},i._removeClass(t(this),"ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",n,e(o))}})},_makeResizable:function(){function e(t){return{originalPosition:t.originalPosition,originalSize:t.originalSize,position:t.position,size:t.size}}var i=this,s=this.options,n=s.resizable,o=this.uiDialog.css("position"),a="string"==typeof n?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:s.maxWidth,maxHeight:s.maxHeight,minWidth:s.minWidth,minHeight:this._minHeight(),handles:a,start:function(s,n){i._addClass(t(this),"ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",s,e(n))},resize:function(t,s){i._trigger("resize",t,e(s))},stop:function(n,o){var a=i.uiDialog.offset(),r=a.left-i.document.scrollLeft(),h=a.top-i.document.scrollTop();s.height=i.uiDialog.height(),s.width=i.uiDialog.width(),s.position={my:"left top",at:"left"+(r>=0?"+":"")+r+" "+"top"+(h>=0?"+":"")+h,of:i.window},i._removeClass(t(this),"ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",n,e(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(e){this._makeFocusTarget(),this._focusedElement=t(e.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var e=this._trackingInstances(),i=t.inArray(this,e);-1!==i&&e.splice(i,1)},_trackingInstances:function(){var t=this.document.data("ui-dialog-instances");return t||(t=[],this.document.data("ui-dialog-instances",t)),t},_minHeight:function(){var t=this.options;return"auto"===t.height?t.minHeight:Math.min(t.minHeight,t.height)},_position:function(){var t=this.uiDialog.is(":visible");t||this.uiDialog.show(),this.uiDialog.position(this.options.position),t||this.uiDialog.hide()},_setOptions:function(e){var i=this,s=!1,n={};t.each(e,function(t,e){i._setOption(t,e),t in i.sizeRelatedOptions&&(s=!0),t in i.resizableRelatedOptions&&(n[t]=e)}),s&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",n)},_setOption:function(e,i){var s,n,o=this.uiDialog;"disabled"!==e&&(this._super(e,i),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:t("<a>").text(""+this.options.closeText).html()}),"draggable"===e&&(s=o.is(":data(ui-draggable)"),s&&!i&&o.draggable("destroy"),!s&&i&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(n=o.is(":data(ui-resizable)"),n&&!i&&o.resizable("destroy"),n&&"string"==typeof i&&o.resizable("option","handles",i),n||i===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var t,e,i,s=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),s.minWidth>s.width&&(s.width=s.minWidth),t=this.uiDialog.css({height:"auto",width:s.width}).outerHeight(),e=Math.max(0,s.minHeight-t),i="number"==typeof s.maxHeight?Math.max(0,s.maxHeight-t):"none","auto"===s.height?this.element.css({minHeight:e,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,s.height-t)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var e=t(this);return t("<div>").css({position:"absolute",width:e.outerWidth(),height:e.outerHeight()}).appendTo(e.parent()).offset(e.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(e){return t(e.target).closest(".ui-dialog").length?!0:!!t(e.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var e=!0;this._delay(function(){e=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(t){e||this._allowInteraction(t)||(t.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=t("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var t=this.document.data("ui-dialog-overlays")-1;t?this.document.data("ui-dialog-overlays",t):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),t.uiBackCompat!==!1&&t.widget("ui.dialog",t.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(t,e){"dialogClass"===t&&this.uiDialog.removeClass(this.options.dialogClass).addClass(e),this._superApply(arguments)}}),t.ui.dialog,t.widget("ui.droppable",{version:"1.12.0",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],void 0):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},this._addToManager(i.scope),i.addClasses&&this._addClass("ui-droppable")},_addToManager:function(e){t.ui.ddmanager.droppables[e]=t.ui.ddmanager.droppables[e]||[],t.ui.ddmanager.droppables[e].push(this)},_splice:function(t){for(var e=0;t.length>e;e++)t[e]===this&&t.splice(e,1)},_destroy:function(){var e=t.ui.ddmanager.droppables[this.options.scope];this._splice(e)},_setOption:function(e,i){if("accept"===e)this.accept=t.isFunction(i)?i:function(t){return t.is(i)};else if("scope"===e){var s=t.ui.ddmanager.droppables[this.options.scope];this._splice(s),this._addToManager(i)}this._super(e,i)},_activate:function(e){var i=t.ui.ddmanager.current;this._addActiveClass(),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this._removeActiveClass(),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._addHoverClass(),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeHoverClass(),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var i=t(this).droppable("instance");return i.options.greedy&&!i.options.disabled&&i.options.scope===s.options.scope&&i.accept.call(i.element[0],s.currentItem||s.element)&&v(s,t.extend(i,{offset:i.element.offset()}),i.options.tolerance,e)?(n=!0,!1):void 0}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var v=t.ui.intersect=function(){function t(t,e,i){return t>=e&&e+i>t}return function(e,i,s,n){if(!i.offset)return!1;var o=(e.positionAbs||e.position.absolute).left+e.margins.left,a=(e.positionAbs||e.position.absolute).top+e.margins.top,r=o+e.helperProportions.width,h=a+e.helperProportions.height,l=i.offset.left,c=i.offset.top,u=l+i.proportions().width,d=c+i.proportions().height;switch(s){case"fit":return o>=l&&u>=r&&a>=c&&d>=h;case"intersect":return o+e.helperProportions.width/2>l&&u>r-e.helperProportions.width/2&&a+e.helperProportions.height/2>c&&d>h-e.helperProportions.height/2;case"pointer":return t(n.pageY,c,i.proportions().height)&&t(n.pageX,l,i.proportions().width);case"touch":return(a>=c&&d>=a||h>=c&&d>=h||c>a&&h>d)&&(o>=l&&u>=o||r>=l&&u>=r||l>o&&r>u);default:return!1}}}();t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,o=t.ui.ddmanager.droppables[e.options.scope]||[],a=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;o.length>s;s++)if(!(o[s].options.disabled||e&&!o[s].accept.call(o[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===o[s].element[0]){o[s].proportions().height=0;continue t}o[s].visible="none"!==o[s].element.css("display"),o[s].visible&&("mousedown"===a&&o[s]._activate.call(o[s],i),o[s].offset=o[s].element.offset(),o[s].proportions({width:o[s].element[0].offsetWidth,height:o[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&v(e,this,this.options.tolerance,i)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").on("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,o,a=v(e,this,this.options.tolerance,i),r=!a&&this.isover?"isout":a&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,o=this.element.parents(":data(ui-droppable)").filter(function(){return t(this).droppable("instance").options.scope===n}),o.length&&(s=t(o[0]).droppable("instance"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").off("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}},t.uiBackCompat!==!1&&t.widget("ui.droppable",t.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}}),t.ui.droppable,t.widget("ui.progressbar",{version:"1.12.0",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=t("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(t){return void 0===t?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),void 0)},_constrainedValue:function(t){return void 0===t&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t),this._toggleClass(null,"ui-state-disabled",!!t)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).width(i.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,e===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}}),t.widget("ui.selectable",t.ui.mouse,{version:"1.12.0",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e.elementPos=t(e.element[0]).offset(),e.selectees=t(e.options.filter,e.element[0]),e._addClass(e.selectees,"ui-selectee"),e.selectees.each(function(){var i=t(this),s=i.offset(),n={left:s.left-e.elementPos.left,top:s.top-e.elementPos.top};t.data(this,"selectable-item",{element:this,$element:i,left:n.left,top:n.top,right:n.left+i.outerWidth(),bottom:n.top+i.outerHeight(),startselected:!1,selected:i.hasClass("ui-selected"),selecting:i.hasClass("ui-selecting"),unselecting:i.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=t("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.elementPos=t(this.element[0]).offset(),this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(i._removeClass(s.$element,"ui-selected"),s.selected=!1,i._addClass(s.$element,"ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),i._removeClass(n.$element,s?"ui-unselecting":"ui-selected")._addClass(n.$element,s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):void 0}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,o=this.opos[0],a=this.opos[1],r=e.pageX,h=e.pageY;return o>r&&(i=r,r=o,o=i),a>h&&(i=h,h=a,a=i),this.helper.css({left:o,top:a,width:r-o,height:h-a}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),l=!1,c={};i&&i.element!==s.element[0]&&(c.left=i.left+s.elementPos.left,c.right=i.right+s.elementPos.left,c.top=i.top+s.elementPos.top,c.bottom=i.bottom+s.elementPos.top,"touch"===n.tolerance?l=!(c.left>r||o>c.right||c.top>h||a>c.bottom):"fit"===n.tolerance&&(l=c.left>o&&r>c.right&&c.top>a&&h>c.bottom),l?(i.selected&&(s._removeClass(i.$element,"ui-selected"),i.selected=!1),i.unselecting&&(s._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1),i.selecting||(s._addClass(i.$element,"ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,s._addClass(i.$element,"ui-selected"),i.selected=!0):(s._removeClass(i.$element,"ui-selecting"),i.selecting=!1,i.startselected&&(s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(s._removeClass(i.$element,"ui-selected"),i.selected=!1,s._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");i._removeClass(s.$element,"ui-selecting")._addClass(s.$element,"ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}}),t.widget("ui.selectmenu",[t.ui.formResetMixin,{version:"1.12.0",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var e=this.element.uniqueId().attr("id");this.ids={element:e,button:e+"-button",menu:e+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=t()},_drawButton:function(){var e,i=this,s=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(t){this.button.focus(),t.preventDefault()}}),this.element.hide(),this.button=t("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),e=t("<span>").appendTo(this.button),this._addClass(e,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(s).appendTo(this.button),this.options.width!==!1&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){i._rendered||i._refreshMenu()})},_drawMenu:function(){var e=this;this.menu=t("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=t("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(t,i){t.preventDefault(),e._setSelection(),e._select(i.item.data("ui-selectmenu-item"),t)},focus:function(t,i){var s=i.item.data("ui-selectmenu-item");null!=e.focusIndex&&s.index!==e.focusIndex&&(e._trigger("focus",t,{item:s}),e.isOpen||e._select(s,t)),e.focusIndex=s.index,e.button.attr("aria-activedescendant",e.menuItems.eq(s.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var t,e=this.element.find("option");this.menu.empty(),this._parseOptions(e),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,e.length&&(t=this._getSelectedItem(),this.menuInstance.focus(null,t),this._setAria(t.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(t){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",t)))},_position:function(){this.menuWrap.position(t.extend({of:this.button},this.options.position))},close:function(t){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",t))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(e){var i=t("<span>");return this._setText(i,e.label),this._addClass(i,"ui-selectmenu-text"),i},_renderMenu:function(e,i){var s=this,n="";t.each(i,function(i,o){var a;o.optgroup!==n&&(a=t("<li>",{text:o.optgroup}),s._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(e),n=o.optgroup),s._renderItemData(e,o)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-selectmenu-item",e)},_renderItem:function(e,i){var s=t("<li>"),n=t("<div>",{title:i.element.attr("title")});return i.disabled&&this._addClass(s,null,"ui-state-disabled"),this._setText(n,i.label),s.append(n).appendTo(e)},_setText:function(t,e){e?t.text(e):t.html("&#160;")},_move:function(t,e){var i,s,n=".ui-menu-item";this.isOpen?i=this.menuItems.eq(this.focusIndex).parent("li"):(i=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),n+=":not(.ui-state-disabled)"),s="first"===t||"last"===t?i["first"===t?"prevAll":"nextAll"](n).eq(-1):i[t+"All"](n).eq(0),s.length&&this.menuInstance.focus(e,s)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(t){this[this.isOpen?"close":"open"](t)},_setSelection:function(){var t;this.range&&(window.getSelection?(t=window.getSelection(),t.removeAllRanges(),t.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(e){this.isOpen&&(t(e.target).closest(".ui-selectmenu-menu, #"+t.ui.escapeSelector(this.ids.button)).length||this.close(e))}},_buttonEvents:{mousedown:function(){var t;window.getSelection?(t=window.getSelection(),t.rangeCount&&(this.range=t.getRangeAt(0))):this.range=document.selection.createRange()},click:function(t){this._setSelection(),this._toggle(t)},keydown:function(e){var i=!0;switch(e.keyCode){case t.ui.keyCode.TAB:case t.ui.keyCode.ESCAPE:this.close(e),i=!1;break;case t.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(e);break;case t.ui.keyCode.UP:e.altKey?this._toggle(e):this._move("prev",e);break;case t.ui.keyCode.DOWN:e.altKey?this._toggle(e):this._move("next",e);break;case t.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(e):this._toggle(e);break;case t.ui.keyCode.LEFT:this._move("prev",e);break;case t.ui.keyCode.RIGHT:this._move("next",e);break;case t.ui.keyCode.HOME:case t.ui.keyCode.PAGE_UP:this._move("first",e);break;case t.ui.keyCode.END:case t.ui.keyCode.PAGE_DOWN:this._move("last",e);break;default:this.menu.trigger(e),i=!1}i&&e.preventDefault()}},_selectFocusedItem:function(t){var e=this.menuItems.eq(this.focusIndex).parent("li");e.hasClass("ui-state-disabled")||this._select(e.data("ui-selectmenu-item"),t)},_select:function(t,e){var i=this.element[0].selectedIndex;this.element[0].selectedIndex=t.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(t)),this._setAria(t),this._trigger("select",e,{item:t}),t.index!==i&&this._trigger("change",e,{item:t}),this.close(e)},_setAria:function(t){var e=this.menuItems.eq(t.index).attr("id");this.button.attr({"aria-labelledby":e,"aria-activedescendant":e}),this.menu.attr("aria-activedescendant",e)},_setOption:function(t,e){if("icons"===t){var i=this.button.find("span.ui-icon");this._removeClass(i,null,this.options.icons.button)._addClass(i,null,e.button)}this._super(t,e),"appendTo"===t&&this.menuWrap.appendTo(this._appendTo()),"width"===t&&this._resizeButton()},_setOptionDisabled:function(t){this._super(t),this.menuInstance.option("disabled",t),this.button.attr("aria-disabled",t),this._toggleClass(this.button,null,"ui-state-disabled",t),this.element.prop("disabled",t),t?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var t=this.options.width;return t===!1?(this.button.css("width",""),void 0):(null===t&&(t=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(t),void 0)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var t=this._super();return t.disabled=this.element.prop("disabled"),t},_parseOptions:function(e){var i=this,s=[];e.each(function(e,n){s.push(i._parseOption(t(n),e))}),this.items=s},_parseOption:function(t,e){var i=t.parent("optgroup");return{element:t,index:e,value:t.val(),label:t.text(),optgroup:i.attr("label")||"",disabled:i.prop("disabled")||t.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),t.widget("ui.slider",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1
+},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle"),o="<span tabindex='0'></span>",a=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)a.push(o);this.handles=n.add(t(a.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options;e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=t("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),("min"===e.range||"max"===e.range)&&this._addClass(this.range,"ui-slider-range-"+e.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,o,a,r,h,l,c=this,u=this.options;return u.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-c.values(e));(n>i||n===i&&(e===c._lastChangedValue||c.values(e)===u.min))&&(n=i,o=t(this),a=e)}),r=this._start(e,a),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),h=o.offset(),l=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:e.pageX-h.left-o.width()/2,top:e.pageY-h.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,a,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,o;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),o=this._valueMin()+s*n,this._trimAlignValue(o)},_uiHash:function(t,e,i){var s={handle:this.handles[t],handleIndex:t,value:void 0!==e?e:this.value()};return this._hasMultipleValues()&&(s.value=void 0!==e?e:this.values(t),s.values=i||this.values()),s},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(t,e){return this._trigger("start",t,this._uiHash(e))},_slide:function(t,e,i){var s,n,o=this.value(),a=this.values();this._hasMultipleValues()&&(n=this.values(e?0:1),o=this.values(e),2===this.options.values.length&&this.options.range===!0&&(i=0===e?Math.min(n,i):Math.max(n,i)),a[e]=i),i!==o&&(s=this._trigger("slide",t,this._uiHash(e,i,a)),s!==!1&&(this._hasMultipleValues()?this.values(e,i):this.value(i)))},_stop:function(t,e){this._trigger("stop",t,this._uiHash(e))},_change:function(t,e){this._keySliding||this._mouseSliding||(this._lastChangedValue=e,this._trigger("change",t,this._uiHash(e)))},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),void 0):this._value()},values:function(e,i){var s,n,o;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),void 0;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this._hasMultipleValues()?this._values(e):this.value();for(s=this.options.values,n=arguments[0],o=0;s.length>o;o+=1)s[o]=this._trimAlignValue(n[o]),this._change(null,o);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),this._super(e,i),e){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(i),this.handles.css("horizontal"===i?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=n-1;s>=0;s--)this._change(null,s);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(t){this._super(t),this._toggleClass(null,"ui-state-disabled",!!t)},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this._hasMultipleValues()){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_calculateNewMax:function(){var t=this.options.max,e=this._valueMin(),i=this.options.step,s=Math.round((t-e)/i)*i;t=s+e,t>this.options.max&&(t-=i),this.max=parseFloat(t.toFixed(this._precision()))},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(t){"vertical"===t&&this.range.css({width:"",left:""}),"horizontal"===t&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var e,i,s,n,o,a=this.options.range,r=this.options,h=this,l=this._animateOff?!1:r.animate,c={};this._hasMultipleValues()?this.handles.each(function(s){i=100*((h.values(s)-h._valueMin())/(h._valueMax()-h._valueMin())),c["horizontal"===h.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[l?"animate":"css"](c,r.animate),h.options.range===!0&&("horizontal"===h.orientation?(0===s&&h.range.stop(1,1)[l?"animate":"css"]({left:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&h.range.stop(1,1)[l?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&h.range[l?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),o=this._valueMax(),i=o!==n?100*((s-n)/(o-n)):0,c["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[l?"animate":"css"](c,r.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:i+"%"},r.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({width:100-i+"%"},r.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:i+"%"},r.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[l?"animate":"css"]({height:100-i+"%"},r.animate))},_handleEvents:{keydown:function(e){var i,s,n,o,a=t(e.target).data("ui-slider-handle-index");switch(e.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(e.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(t(e.target),null,"ui-state-active"),i=this._start(e,a),i===!1))return}switch(o=this.options.step,s=n=this._hasMultipleValues()?this.values(a):this.value(),e.keyCode){case t.ui.keyCode.HOME:n=this._valueMin();break;case t.ui.keyCode.END:n=this._valueMax();break;case t.ui.keyCode.PAGE_UP:n=this._trimAlignValue(s+(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.PAGE_DOWN:n=this._trimAlignValue(s-(this._valueMax()-this._valueMin())/this.numPages);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(s===this._valueMax())return;n=this._trimAlignValue(s+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(s===this._valueMin())return;n=this._trimAlignValue(s-o)}this._slide(e,a,n)},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),this._removeClass(t(e.target),null,"ui-state-active"))}}}),t.widget("ui.sortable",t.ui.mouse,{version:"1.12.0",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(t,e,i){return t>=e&&e+i>t},_isFloating:function(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(t,e){this._super(t,e),"handle"===t&&this._setHandleClassName()},_setHandleClassName:function(){var e=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),t.each(this.items,function(){e._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):void 0}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(e),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+a.scrollSpeed:e.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-e.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+a.scrollSpeed:e.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(e.pageY-this.document.scrollTop()<a.scrollSensitivity?r=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(e.pageY-this.document.scrollTop())<a.scrollSensitivity&&(r=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),e.pageX-this.document.scrollLeft()<a.scrollSensitivity?r=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(e.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(r=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),r!==!1&&t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),i=this.items.length-1;i>=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var e,i,s="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),n="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),o=s&&n;return o?(e=this._getDragVerticalDirection(),i=this._getDragHorizontalDirection(),this.floating?"right"===i||"down"===e?2:1:e&&("down"===e?2:1)):!1},_intersectsWithSides:function(t){var e=this._isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),i=this._isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),s=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection();return this.floating&&n?"right"===n&&i||"left"===n&&!i:s&&("down"===s&&e||"up"===s&&!e)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s],this.document[0]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i],this.document[0]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.floating=this.items.length?"x"===this.options.axis||this._isFloating(this.items[0].item):!1,this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]);return e._addClass(n,"ui-sortable-placeholder",i||e.currentItem[0].className)._removeClass(n,"ui-sortable-helper"),"tbody"===s?e._createTrPlaceholder(e.currentItem.find("tr").eq(0),t("<tr>",e.document[0]).appendTo(n)):"tr"===s?e._createTrPlaceholder(e.currentItem,n):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_createTrPlaceholder:function(e,i){var s=this;e.children().each(function(){t("<td>&#160;</td>",s.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(i)})},_contactContainers:function(e){var i,s,n,o,a,r,h,l,c,u,d=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!t.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(d&&t.contains(this.containers[i].element[0],d.element[0]))continue;d=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",e,this._uiHash(this)),this.containers[i].containerCache.over=0);if(d)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(n=1e4,o=null,c=d.floating||this._isFloating(this.currentItem),a=c?"left":"top",r=c?"width":"height",u=c?"pageX":"pageY",s=this.items.length-1;s>=0;s--)t.contains(this.containers[p].element[0],this.items[s].item[0])&&this.items[s].item[0]!==this.currentItem[0]&&(h=this.items[s].item.offset()[a],l=!1,e[u]-h>this.items[s][r]/2&&(l=!0),n>Math.abs(e[u]-h)&&(n=Math.abs(e[u]-h),o=this.items[s],this.direction=l?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",e,this._uiHash()),this.currentContainer.containerCache.over=1),void 0;o?this._rearrange(e,o,null,!0):this._rearrange(e,null,this.containers[p].element,!0),this._trigger("change",e,this._uiHash()),this.containers[p]._trigger("change",e,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",e,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===n.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===n.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),e.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),e.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)
+})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}}),t.widget("ui.spinner",{version:"1.12.0",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e=this._super(),i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);null!=n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var e=this.element[0]===t.ui.safeActiveElement(this.document[0]);e||(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===t.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){var i,s,n;return"culture"===t||"numberFormat"===t?(i=this._parse(this.element.val()),this.options[t]=e,this.element.val(this._format(i)),void 0):(("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(s=this.buttons.first().find(".ui-icon"),this._removeClass(s,null,this.options.icons.up),this._addClass(s,null,e.up),n=this.buttons.last().find(".ui-icon"),this._removeClass(n,null,this.options.icons.down),this._addClass(n,null,e.down)),this._super(t,e),void 0)},_setOptionDisabled:function(t){this._super(t),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!t),this.element.prop("disabled",!!t),this.buttons.button(t?"disable":"enable")},_setOptions:r(function(t){this._super(t)}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var t=this.value();return null===t?!1:t===this._adjustValue(t)},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:r(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:r(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:r(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:r(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(r(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}}),t.uiBackCompat!==!1&&t.widget("ui.spinner",t.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}}),t.ui.spinner,t.widget("ui.tabs",{version:"1.12.0",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var t=/#.*$/;return function(e){var i,s;i=e.href.replace(t,""),s=location.href.replace(t,"");try{i=decodeURIComponent(i)}catch(n){}try{s=decodeURIComponent(s)}catch(n){}return e.hash.length>1&&i===s}}(),_create:function(){var e=this,i=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,i.collapsible),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var e=this.options.active,i=this.options.collapsible,s=location.hash.substring(1);return null===e&&(s&&this.tabs.each(function(i,n){return t(n).attr("aria-controls")===s?(e=i,!1):void 0}),null===e&&(e=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===e||-1===e)&&(e=this.tabs.length?0:!1)),e!==!1&&(e=this.tabs.index(this.tabs.eq(e)),-1===e&&(e=i?!1:0)),!i&&e===!1&&this.anchors.length&&(e=0),e},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(e){var i=t(t.ui.safeActiveElement(this.document[0])).closest("li"),s=this.tabs.index(i),n=!0;if(!this._handlePageNav(e)){switch(e.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:s++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:n=!1,s--;break;case t.ui.keyCode.END:s=this.anchors.length-1;break;case t.ui.keyCode.HOME:s=0;break;case t.ui.keyCode.SPACE:return e.preventDefault(),clearTimeout(this.activating),this._activate(s),void 0;case t.ui.keyCode.ENTER:return e.preventDefault(),clearTimeout(this.activating),this._activate(s===this.options.active?!1:s),void 0;default:return}e.preventDefault(),clearTimeout(this.activating),s=this._focusNextTab(s,n),e.ctrlKey||e.metaKey||(i.attr("aria-selected","false"),this.tabs.eq(s).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",s)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(e){return e.altKey&&e.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):e.altKey&&e.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).trigger("focus"),t},_setOption:function(t,e){return"active"===t?(this._activate(e),void 0):(this._super(t,e),"collapsible"===t&&(this._toggleClass("ui-tabs-collapsible",null,e),e||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(e),"heightStyle"===t&&this._setupHeightStyle(e),void 0)},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this,i=this.tabs,s=this.anchors,n=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=t(),this.anchors.each(function(i,s){var n,o,a,r=t(s).uniqueId().attr("id"),h=t(s).closest("li"),l=h.attr("aria-controls");e._isLocal(s)?(n=s.hash,a=n.substring(1),o=e.element.find(e._sanitizeSelector(n))):(a=h.attr("aria-controls")||t({}).uniqueId()[0].id,n="#"+a,o=e.element.find(n),o.length||(o=e._createPanel(a),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),l&&h.data("ui-tabs-aria-controls",l),h.attr({"aria-controls":a,"aria-labelledby":r}),o.attr("aria-labelledby",r)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),i&&(this._off(i.not(this.tabs)),this._off(s.not(this.anchors)),this._off(n.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(e){return t("<div>").attr("id",e).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(e){var i,s,n;for(t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1),n=0;s=this.tabs[n];n++)i=t(s),e===!0||-1!==t.inArray(n,e)?(i.attr("aria-disabled","true"),this._addClass(i,null,"ui-state-disabled")):(i.removeAttr("aria-disabled"),this._removeClass(i,null,"ui-state-disabled"));this.options.disabled=e,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,e===!0)},_setupEvents:function(e){var i={};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),o=n.closest("li"),a=o[0]===s[0],r=a&&i.collapsible,h=r?t():this._getPanelForTab(o),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():o,newPanel:h};e.preventDefault(),o.hasClass("ui-state-disabled")||o.hasClass("ui-tabs-loading")||this.running||a&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(o),this.active=a?t():o,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(o),e),this._toggle(e,c))},_toggle:function(e,i){function s(){o.running=!1,o._trigger("activate",e,i)}function n(){o._addClass(i.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,s):(a.show(),s())}var o=this,a=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){o._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),n()}):(this._removeClass(i.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r.hide(),n()),r.attr("aria-hidden","true"),i.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&r.length?i.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),i.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(e){return"string"==typeof e&&(e=this.anchors.index(this.anchors.filter("[href$='"+t.ui.escapeSelector(e)+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(e){var i=this.options.disabled;i!==!1&&(void 0===e?i=!1:(e=this._getIndex(e),i=t.isArray(i)?t.map(i,function(t){return t!==e?t:null}):t.map(this.tabs,function(t,i){return i!==e?i:null})),this._setOptionDisabled(i))},disable:function(e){var i=this.options.disabled;if(i!==!0){if(void 0===e)i=!0;else{if(e=this._getIndex(e),-1!==t.inArray(e,i))return;i=t.isArray(i)?t.merge([e],i).sort():[e]}this._setOptionDisabled(i)}},load:function(e,i){e=this._getIndex(e);var s=this,n=this.tabs.eq(e),o=n.find(".ui-tabs-anchor"),a=this._getPanelForTab(n),r={tab:n,panel:a},h=function(t,e){"abort"===e&&s.panels.stop(!1,!0),s._removeClass(n,"ui-tabs-loading"),a.removeAttr("aria-busy"),t===s.xhr&&delete s.xhr};this._isLocal(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(n,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(t,e,n){setTimeout(function(){a.html(t),s._trigger("load",i,r),h(n,e)},1)}).fail(function(t,e){setTimeout(function(){h(t,e)},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href"),beforeSend:function(e,o){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:o},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}}),t.uiBackCompat!==!1&&t.widget("ui.tabs",t.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),t.ui.tabs,t.widget("ui.tooltip",{version:"1.12.0",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var e=t(this).attr("title")||"";return t("<a>").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))},_removeDescribedBy:function(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=t("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=t([])},_setOption:function(e,i){var s=this;this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e.element)})},_setOptionDisabled:function(t){this[t?"_disable":"_enable"]()},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s.element[0],e.close(n,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var e=t(this);return e.is("[title]")?e.data("ui-tooltip-title",e.attr("title")).removeAttr("title"):void 0}))},_enable:function(){this.disabledTitles.each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))}),this.disabledTitles=t([])},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._registerCloseHandlers(e,s),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s||s.nodeType||s.jquery?this._open(e,t,s):(i=s.call(t[0],function(i){n._delay(function(){t.data("ui-tooltip-open")&&(e&&(e.type=o),this._open(e,t,i))})}),i&&this._open(e,t,i),void 0)},_open:function(e,i,s){function n(t){l.of=t,a.is(":hidden")||a.position(l)}var o,a,r,h,l=t.extend({},this.options.position);if(s){if(o=this._find(i))return o.tooltip.find(".ui-tooltip-content").html(s),void 0;i.is("[title]")&&(e&&"mouseover"===e.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),a=o.tooltip,this._addDescribedBy(i,a.attr("id")),a.find(".ui-tooltip-content").html(s),this.liveRegion.children().hide(),h=t("<div>").html(a.find(".ui-tooltip-content").html()),h.removeAttr("name").find("[name]").removeAttr("name"),h.removeAttr("id").find("[id]").removeAttr("id"),h.appendTo(this.liveRegion),this.options.track&&e&&/^mouse/.test(e.type)?(this._on(this.document,{mousemove:n}),n(e)):a.position(t.extend({of:i},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(r=this.delayedShow=setInterval(function(){a.is(":visible")&&(n(l.of),clearInterval(r))},t.fx.interval)),this._trigger("open",e,{tooltip:a})}},_registerCloseHandlers:function(e,i){var s={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var s=t.Event(e);s.currentTarget=i[0],this.close(s,!0)}}};i[0]!==this.element[0]&&(s.remove=function(){this._removeTooltip(this._find(i).tooltip)}),e&&"mouseover"!==e.type||(s.mouseleave="close"),e&&"focusin"!==e.type||(s.focusout="close"),this._on(!0,i,s)},close:function(e){var i,s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);return o?(i=o.tooltip,o.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&!n.attr("title")&&n.attr("title",n.data("ui-tooltip-title")),this._removeDescribedBy(n),o.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),o.closing=!0,this._trigger("close",e,{tooltip:i}),o.hiding||(o.closing=!1)),void 0):(n.removeData("ui-tooltip-open"),void 0)},_tooltip:function(e){var i=t("<div>").attr("role","tooltip"),s=t("<div>").appendTo(i),n=i.uniqueId().attr("id");return this._addClass(s,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(e)),this.tooltips[n]={element:e,tooltip:i}},_find:function(t){var e=t.data("ui-tooltip-id");return e?this.tooltips[e]:null},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_appendTo:function(t){var e=t.closest(".ui-front, dialog");return e.length||(e=this.document[0].body),e},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur"),o=s.element;n.target=n.currentTarget=o[0],e.close(n,!0),t("#"+i).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),t.uiBackCompat!==!1&&t.widget("ui.tooltip",t.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var t=this._superApply(arguments);return this.options.tooltipClass&&t.tooltip.addClass(this.options.tooltipClass),t}}),t.ui.tooltip});
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery-ui/jquery-ui.js b/pagure/static/vendor/jquery-ui/jquery-ui.js
new file mode 120000
index 0000000..53a1626
--- /dev/null
+++ b/pagure/static/vendor/jquery-ui/jquery-ui.js
@@ -0,0 +1 @@
+jquery-ui-1.12.0.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery-ui/jquery-ui.min.js b/pagure/static/vendor/jquery-ui/jquery-ui.min.js
new file mode 120000
index 0000000..3658d31
--- /dev/null
+++ b/pagure/static/vendor/jquery-ui/jquery-ui.min.js
@@ -0,0 +1 @@
+jquery-ui-1.12.0.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.css b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.css
new file mode 100644
index 0000000..dad94ed
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.css
@@ -0,0 +1,72 @@
+.atwho-view {
+    position:absolute;
+    top: 0;
+    left: 0;
+    display: none;
+    margin-top: 18px;
+    background: white;
+    color: black;
+    border: 1px solid #DDD;
+    border-radius: 3px;
+    box-shadow: 0 0 5px rgba(0,0,0,0.1);
+    min-width: 120px;
+    z-index: 11110 !important;
+}
+
+.atwho-view .atwho-header {
+    padding: 5px;
+    margin: 5px;
+    cursor: pointer;
+    border-bottom: solid 1px #eaeff1;
+    color: #6f8092;
+    font-size: 11px;
+    font-weight: bold;
+}
+
+.atwho-view .atwho-header .small {
+    color: #6f8092;
+    float: right;
+    padding-top: 2px;
+    margin-right: -5px;
+    font-size: 12px;
+    font-weight: normal;
+}
+
+.atwho-view .atwho-header:hover {
+    cursor: default;
+}
+
+.atwho-view .cur {
+    background: #3366FF;
+    color: white;
+}
+.atwho-view .cur small {
+    color: white;
+}
+.atwho-view strong {
+    color: #3366FF;
+}
+.atwho-view .cur strong {
+    color: white;
+    font:bold;
+}
+.atwho-view ul {
+    /* width: 100px; */
+    list-style:none;
+    padding:0;
+    margin:auto;
+    max-height: 200px;
+    overflow-y: auto;
+}
+.atwho-view ul li {
+    display: block;
+    padding: 5px 10px;
+    border-bottom: 1px solid #DDD;
+    cursor: pointer;
+    /* border-top: 1px solid #C8C8C8; */
+}
+.atwho-view small {
+    font-size: smaller;
+    color: #777;
+    font-weight: normal;
+}
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.js b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.js
new file mode 100644
index 0000000..0d295eb
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.js
@@ -0,0 +1,1202 @@
+/**
+ * at.js - 1.5.1
+ * Copyright (c) 2016 chord.luo <chord.luo@gmail.com>;
+ * Homepage: http://ichord.github.com/At.js
+ * License: MIT
+ */
+(function (root, factory) {
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module unless amdModuleId is set
+    define(["jquery"], function (a0) {
+      return (factory(a0));
+    });
+  } else if (typeof exports === 'object') {
+    // Node. Does not work with strict CommonJS, but
+    // only CommonJS-like environments that support module.exports,
+    // like Node.
+    module.exports = factory(require("jquery"));
+  } else {
+    factory(jQuery);
+  }
+}(this, function ($) {
+var DEFAULT_CALLBACKS, KEY_CODE;
+
+KEY_CODE = {
+  DOWN: 40,
+  UP: 38,
+  ESC: 27,
+  TAB: 9,
+  ENTER: 13,
+  CTRL: 17,
+  A: 65,
+  P: 80,
+  N: 78,
+  LEFT: 37,
+  UP: 38,
+  RIGHT: 39,
+  DOWN: 40,
+  BACKSPACE: 8,
+  SPACE: 32
+};
+
+DEFAULT_CALLBACKS = {
+  beforeSave: function(data) {
+    return Controller.arrayToDefaultHash(data);
+  },
+  matcher: function(flag, subtext, should_startWithSpace, acceptSpaceBar) {
+    var _a, _y, match, regexp, space;
+    flag = flag.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
+    if (should_startWithSpace) {
+      flag = '(?:^|\\s)' + flag;
+    }
+    _a = decodeURI("%C3%80");
+    _y = decodeURI("%C3%BF");
+    space = acceptSpaceBar ? "\ " : "";
+    regexp = new RegExp(flag + "([A-Za-z" + _a + "-" + _y + "0-9_" + space + "\'\.\+\-]*)$|" + flag + "([^\\x00-\\xff]*)$", 'gi');
+    match = regexp.exec(subtext);
+    if (match) {
+      return match[2] || match[1];
+    } else {
+      return null;
+    }
+  },
+  filter: function(query, data, searchKey) {
+    var _results, i, item, len;
+    _results = [];
+    for (i = 0, len = data.length; i < len; i++) {
+      item = data[i];
+      if (~new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase())) {
+        _results.push(item);
+      }
+    }
+    return _results;
+  },
+  remoteFilter: null,
+  sorter: function(query, items, searchKey) {
+    var _results, i, item, len;
+    if (!query) {
+      return items;
+    }
+    _results = [];
+    for (i = 0, len = items.length; i < len; i++) {
+      item = items[i];
+      item.atwho_order = new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase());
+      if (item.atwho_order > -1) {
+        _results.push(item);
+      }
+    }
+    return _results.sort(function(a, b) {
+      return a.atwho_order - b.atwho_order;
+    });
+  },
+  tplEval: function(tpl, map) {
+    var error, error1, template;
+    template = tpl;
+    try {
+      if (typeof tpl !== 'string') {
+        template = tpl(map);
+      }
+      return template.replace(/\$\{([^\}]*)\}/g, function(tag, key, pos) {
+        return map[key];
+      });
+    } catch (error1) {
+      error = error1;
+      return "";
+    }
+  },
+  highlighter: function(li, query) {
+    var regexp;
+    if (!query) {
+      return li;
+    }
+    regexp = new RegExp(">\\s*(\\w*?)(" + query.replace("+", "\\+") + ")(\\w*)\\s*<", 'ig');
+    return li.replace(regexp, function(str, $1, $2, $3) {
+      return '> ' + $1 + '<strong>' + $2 + '</strong>' + $3 + ' <';
+    });
+  },
+  beforeInsert: function(value, $li, e) {
+    return value;
+  },
+  beforeReposition: function(offset) {
+    return offset;
+  },
+  afterMatchFailed: function(at, el) {}
+};
+
+var App;
+
+App = (function() {
+  function App(inputor) {
+    this.currentFlag = null;
+    this.controllers = {};
+    this.aliasMaps = {};
+    this.$inputor = $(inputor);
+    this.setupRootElement();
+    this.listen();
+  }
+
+  App.prototype.createContainer = function(doc) {
+    var ref;
+    if ((ref = this.$el) != null) {
+      ref.remove();
+    }
+    return $(doc.body).append(this.$el = $("<div class='atwho-container'></div>"));
+  };
+
+  App.prototype.setupRootElement = function(iframe, asRoot) {
+    var error, error1;
+    if (asRoot == null) {
+      asRoot = false;
+    }
+    if (iframe) {
+      this.window = iframe.contentWindow;
+      this.document = iframe.contentDocument || this.window.document;
+      this.iframe = iframe;
+    } else {
+      this.document = this.$inputor[0].ownerDocument;
+      this.window = this.document.defaultView || this.document.parentWindow;
+      try {
+        this.iframe = this.window.frameElement;
+      } catch (error1) {
+        error = error1;
+        this.iframe = null;
+        if ($.fn.atwho.debug) {
+          throw new Error("iframe auto-discovery is failed.\nPlease use `setIframe` to set the target iframe manually.\n" + error);
+        }
+      }
+    }
+    return this.createContainer((this.iframeAsRoot = asRoot) ? this.document : document);
+  };
+
+  App.prototype.controller = function(at) {
+    var c, current, currentFlag, ref;
+    if (this.aliasMaps[at]) {
+      current = this.controllers[this.aliasMaps[at]];
+    } else {
+      ref = this.controllers;
+      for (currentFlag in ref) {
+        c = ref[currentFlag];
+        if (currentFlag === at) {
+          current = c;
+          break;
+        }
+      }
+    }
+    if (current) {
+      return current;
+    } else {
+      return this.controllers[this.currentFlag];
+    }
+  };
+
+  App.prototype.setContextFor = function(at) {
+    this.currentFlag = at;
+    return this;
+  };
+
+  App.prototype.reg = function(flag, setting) {
+    var base, controller;
+    controller = (base = this.controllers)[flag] || (base[flag] = this.$inputor.is('[contentEditable]') ? new EditableController(this, flag) : new TextareaController(this, flag));
+    if (setting.alias) {
+      this.aliasMaps[setting.alias] = flag;
+    }
+    controller.init(setting);
+    return this;
+  };
+
+  App.prototype.listen = function() {
+    return this.$inputor.on('compositionstart', (function(_this) {
+      return function(e) {
+        var ref;
+        if ((ref = _this.controller()) != null) {
+          ref.view.hide();
+        }
+        _this.isComposing = true;
+        return null;
+      };
+    })(this)).on('compositionend', (function(_this) {
+      return function(e) {
+        _this.isComposing = false;
+        setTimeout(function(e) {
+          return _this.dispatch(e);
+        });
+        return null;
+      };
+    })(this)).on('keyup.atwhoInner', (function(_this) {
+      return function(e) {
+        return _this.onKeyup(e);
+      };
+    })(this)).on('keydown.atwhoInner', (function(_this) {
+      return function(e) {
+        return _this.onKeydown(e);
+      };
+    })(this)).on('blur.atwhoInner', (function(_this) {
+      return function(e) {
+        var c;
+        if (c = _this.controller()) {
+          c.expectedQueryCBId = null;
+          return c.view.hide(e, c.getOpt("displayTimeout"));
+        }
+      };
+    })(this)).on('click.atwhoInner', (function(_this) {
+      return function(e) {
+        return _this.dispatch(e);
+      };
+    })(this)).on('scroll.atwhoInner', (function(_this) {
+      return function() {
+        var lastScrollTop;
+        lastScrollTop = _this.$inputor.scrollTop();
+        return function(e) {
+          var currentScrollTop, ref;
+          currentScrollTop = e.target.scrollTop;
+          if (lastScrollTop !== currentScrollTop) {
+            if ((ref = _this.controller()) != null) {
+              ref.view.hide(e);
+            }
+          }
+          lastScrollTop = currentScrollTop;
+          return true;
+        };
+      };
+    })(this)());
+  };
+
+  App.prototype.shutdown = function() {
+    var _, c, ref;
+    ref = this.controllers;
+    for (_ in ref) {
+      c = ref[_];
+      c.destroy();
+      delete this.controllers[_];
+    }
+    this.$inputor.off('.atwhoInner');
+    return this.$el.remove();
+  };
+
+  App.prototype.dispatch = function(e) {
+    var _, c, ref, results;
+    ref = this.controllers;
+    results = [];
+    for (_ in ref) {
+      c = ref[_];
+      results.push(c.lookUp(e));
+    }
+    return results;
+  };
+
+  App.prototype.onKeyup = function(e) {
+    var ref;
+    switch (e.keyCode) {
+      case KEY_CODE.ESC:
+        e.preventDefault();
+        if ((ref = this.controller()) != null) {
+          ref.view.hide();
+        }
+        break;
+      case KEY_CODE.DOWN:
+      case KEY_CODE.UP:
+      case KEY_CODE.CTRL:
+      case KEY_CODE.ENTER:
+        $.noop();
+        break;
+      case KEY_CODE.P:
+      case KEY_CODE.N:
+        if (!e.ctrlKey) {
+          this.dispatch(e);
+        }
+        break;
+      default:
+        this.dispatch(e);
+    }
+  };
+
+  App.prototype.onKeydown = function(e) {
+    var ref, view;
+    view = (ref = this.controller()) != null ? ref.view : void 0;
+    if (!(view && view.visible())) {
+      return;
+    }
+    switch (e.keyCode) {
+      case KEY_CODE.ESC:
+        e.preventDefault();
+        view.hide(e);
+        break;
+      case KEY_CODE.UP:
+        e.preventDefault();
+        view.prev();
+        break;
+      case KEY_CODE.DOWN:
+        e.preventDefault();
+        view.next();
+        break;
+      case KEY_CODE.P:
+        if (!e.ctrlKey) {
+          return;
+        }
+        e.preventDefault();
+        view.prev();
+        break;
+      case KEY_CODE.N:
+        if (!e.ctrlKey) {
+          return;
+        }
+        e.preventDefault();
+        view.next();
+        break;
+      case KEY_CODE.TAB:
+      case KEY_CODE.ENTER:
+      case KEY_CODE.SPACE:
+        if (!view.visible()) {
+          return;
+        }
+        if (!this.controller().getOpt('spaceSelectsMatch') && e.keyCode === KEY_CODE.SPACE) {
+          return;
+        }
+        if (!this.controller().getOpt('tabSelectsMatch') && e.keyCode === KEY_CODE.TAB) {
+          return;
+        }
+        if (view.highlighted()) {
+          e.preventDefault();
+          view.choose(e);
+        } else {
+          view.hide(e);
+        }
+        break;
+      default:
+        $.noop();
+    }
+  };
+
+  return App;
+
+})();
+
+var Controller,
+  slice = [].slice;
+
+Controller = (function() {
+  Controller.prototype.uid = function() {
+    return (Math.random().toString(16) + "000000000").substr(2, 8) + (new Date().getTime());
+  };
+
+  function Controller(app, at1) {
+    this.app = app;
+    this.at = at1;
+    this.$inputor = this.app.$inputor;
+    this.id = this.$inputor[0].id || this.uid();
+    this.expectedQueryCBId = null;
+    this.setting = null;
+    this.query = null;
+    this.pos = 0;
+    this.range = null;
+    if ((this.$el = $("#atwho-ground-" + this.id, this.app.$el)).length === 0) {
+      this.app.$el.append(this.$el = $("<div id='atwho-ground-" + this.id + "'></div>"));
+    }
+    this.model = new Model(this);
+    this.view = new View(this);
+  }
+
+  Controller.prototype.init = function(setting) {
+    this.setting = $.extend({}, this.setting || $.fn.atwho["default"], setting);
+    this.view.init();
+    return this.model.reload(this.setting.data);
+  };
+
+  Controller.prototype.destroy = function() {
+    this.trigger('beforeDestroy');
+    this.model.destroy();
+    this.view.destroy();
+    return this.$el.remove();
+  };
+
+  Controller.prototype.callDefault = function() {
+    var args, error, error1, funcName;
+    funcName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];
+    try {
+      return DEFAULT_CALLBACKS[funcName].apply(this, args);
+    } catch (error1) {
+      error = error1;
+      return $.error(error + " Or maybe At.js doesn't have function " + funcName);
+    }
+  };
+
+  Controller.prototype.trigger = function(name, data) {
+    var alias, eventName;
+    if (data == null) {
+      data = [];
+    }
+    data.push(this);
+    alias = this.getOpt('alias');
+    eventName = alias ? name + "-" + alias + ".atwho" : name + ".atwho";
+    return this.$inputor.trigger(eventName, data);
+  };
+
+  Controller.prototype.callbacks = function(funcName) {
+    return this.getOpt("callbacks")[funcName] || DEFAULT_CALLBACKS[funcName];
+  };
+
+  Controller.prototype.getOpt = function(at, default_value) {
+    var e, error1;
+    try {
+      return this.setting[at];
+    } catch (error1) {
+      e = error1;
+      return null;
+    }
+  };
+
+  Controller.prototype.insertContentFor = function($li) {
+    var data, tpl;
+    tpl = this.getOpt('insertTpl');
+    data = $.extend({}, $li.data('item-data'), {
+      'atwho-at': this.at
+    });
+    return this.callbacks("tplEval").call(this, tpl, data, "onInsert");
+  };
+
+  Controller.prototype.renderView = function(data) {
+    var searchKey;
+    searchKey = this.getOpt("searchKey");
+    data = this.callbacks("sorter").call(this, this.query.text, data.slice(0, 1001), searchKey);
+    return this.view.render(data.slice(0, this.getOpt('limit')));
+  };
+
+  Controller.arrayToDefaultHash = function(data) {
+    var i, item, len, results;
+    if (!$.isArray(data)) {
+      return data;
+    }
+    results = [];
+    for (i = 0, len = data.length; i < len; i++) {
+      item = data[i];
+      if ($.isPlainObject(item)) {
+        results.push(item);
+      } else {
+        results.push({
+          name: item
+        });
+      }
+    }
+    return results;
+  };
+
+  Controller.prototype.lookUp = function(e) {
+    var query, wait;
+    if (e && e.type === 'click' && !this.getOpt('lookUpOnClick')) {
+      return;
+    }
+    if (this.getOpt('suspendOnComposing') && this.app.isComposing) {
+      return;
+    }
+    query = this.catchQuery(e);
+    if (!query) {
+      this.expectedQueryCBId = null;
+      return query;
+    }
+    this.app.setContextFor(this.at);
+    if (wait = this.getOpt('delay')) {
+      this._delayLookUp(query, wait);
+    } else {
+      this._lookUp(query);
+    }
+    return query;
+  };
+
+  Controller.prototype._delayLookUp = function(query, wait) {
+    var now, remaining;
+    now = Date.now ? Date.now() : new Date().getTime();
+    this.previousCallTime || (this.previousCallTime = now);
+    remaining = wait - (now - this.previousCallTime);
+    if ((0 < remaining && remaining < wait)) {
+      this.previousCallTime = now;
+      this._stopDelayedCall();
+      return this.delayedCallTimeout = setTimeout((function(_this) {
+        return function() {
+          _this.previousCallTime = 0;
+          _this.delayedCallTimeout = null;
+          return _this._lookUp(query);
+        };
+      })(this), wait);
+    } else {
+      this._stopDelayedCall();
+      if (this.previousCallTime !== now) {
+        this.previousCallTime = 0;
+      }
+      return this._lookUp(query);
+    }
+  };
+
+  Controller.prototype._stopDelayedCall = function() {
+    if (this.delayedCallTimeout) {
+      clearTimeout(this.delayedCallTimeout);
+      return this.delayedCallTimeout = null;
+    }
+  };
+
+  Controller.prototype._generateQueryCBId = function() {
+    return {};
+  };
+
+  Controller.prototype._lookUp = function(query) {
+    var _callback;
+    _callback = function(queryCBId, data) {
+      if (queryCBId !== this.expectedQueryCBId) {
+        return;
+      }
+      if (data && data.length > 0) {
+        return this.renderView(this.constructor.arrayToDefaultHash(data));
+      } else {
+        return this.view.hide();
+      }
+    };
+    this.expectedQueryCBId = this._generateQueryCBId();
+    return this.model.query(query.text, $.proxy(_callback, this, this.expectedQueryCBId));
+  };
+
+  return Controller;
+
+})();
+
+var TextareaController,
+  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+  hasProp = {}.hasOwnProperty;
+
+TextareaController = (function(superClass) {
+  extend(TextareaController, superClass);
+
+  function TextareaController() {
+    return TextareaController.__super__.constructor.apply(this, arguments);
+  }
+
+  TextareaController.prototype.catchQuery = function() {
+    var caretPos, content, end, isString, query, start, subtext;
+    content = this.$inputor.val();
+    caretPos = this.$inputor.caret('pos', {
+      iframe: this.app.iframe
+    });
+    subtext = content.slice(0, caretPos);
+    query = this.callbacks("matcher").call(this, this.at, subtext, this.getOpt('startWithSpace'), this.getOpt("acceptSpaceBar"));
+    isString = typeof query === 'string';
+    if (isString && query.length < this.getOpt('minLen', 0)) {
+      return;
+    }
+    if (isString && query.length <= this.getOpt('maxLen', 20)) {
+      start = caretPos - query.length;
+      end = start + query.length;
+      this.pos = start;
+      query = {
+        'text': query,
+        'headPos': start,
+        'endPos': end
+      };
+      this.trigger("matched", [this.at, query.text]);
+    } else {
+      query = null;
+      this.view.hide();
+    }
+    return this.query = query;
+  };
+
+  TextareaController.prototype.rect = function() {
+    var c, iframeOffset, scaleBottom;
+    if (!(c = this.$inputor.caret('offset', this.pos - 1, {
+      iframe: this.app.iframe
+    }))) {
+      return;
+    }
+    if (this.app.iframe && !this.app.iframeAsRoot) {
+      iframeOffset = $(this.app.iframe).offset();
+      c.left += iframeOffset.left;
+      c.top += iframeOffset.top;
+    }
+    scaleBottom = this.app.document.selection ? 0 : 2;
+    return {
+      left: c.left,
+      top: c.top,
+      bottom: c.top + c.height + scaleBottom
+    };
+  };
+
+  TextareaController.prototype.insert = function(content, $li) {
+    var $inputor, source, startStr, suffix, text;
+    $inputor = this.$inputor;
+    source = $inputor.val();
+    startStr = source.slice(0, Math.max(this.query.headPos - this.at.length, 0));
+    suffix = (suffix = this.getOpt('suffix')) === "" ? suffix : suffix || " ";
+    content += suffix;
+    text = "" + startStr + content + (source.slice(this.query['endPos'] || 0));
+    $inputor.val(text);
+    $inputor.caret('pos', startStr.length + content.length, {
+      iframe: this.app.iframe
+    });
+    if (!$inputor.is(':focus')) {
+      $inputor.focus();
+    }
+    return $inputor.change();
+  };
+
+  return TextareaController;
+
+})(Controller);
+
+var EditableController,
+  extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+  hasProp = {}.hasOwnProperty;
+
+EditableController = (function(superClass) {
+  extend(EditableController, superClass);
+
+  function EditableController() {
+    return EditableController.__super__.constructor.apply(this, arguments);
+  }
+
+  EditableController.prototype._getRange = function() {
+    var sel;
+    sel = this.app.window.getSelection();
+    if (sel.rangeCount > 0) {
+      return sel.getRangeAt(0);
+    }
+  };
+
+  EditableController.prototype._setRange = function(position, node, range) {
+    if (range == null) {
+      range = this._getRange();
+    }
+    if (!range) {
+      return;
+    }
+    node = $(node)[0];
+    if (position === 'after') {
+      range.setEndAfter(node);
+      range.setStartAfter(node);
+    } else {
+      range.setEndBefore(node);
+      range.setStartBefore(node);
+    }
+    range.collapse(false);
+    return this._clearRange(range);
+  };
+
+  EditableController.prototype._clearRange = function(range) {
+    var sel;
+    if (range == null) {
+      range = this._getRange();
+    }
+    sel = this.app.window.getSelection();
+    if (this.ctrl_a_pressed == null) {
+      sel.removeAllRanges();
+      return sel.addRange(range);
+    }
+  };
+
+  EditableController.prototype._movingEvent = function(e) {
+    var ref;
+    return e.type === 'click' || ((ref = e.which) === KEY_CODE.RIGHT || ref === KEY_CODE.LEFT || ref === KEY_CODE.UP || ref === KEY_CODE.DOWN);
+  };
+
+  EditableController.prototype._unwrap = function(node) {
+    var next;
+    node = $(node).unwrap().get(0);
+    if ((next = node.nextSibling) && next.nodeValue) {
+      node.nodeValue += next.nodeValue;
+      $(next).remove();
+    }
+    return node;
+  };
+
+  EditableController.prototype.catchQuery = function(e) {
+    var $inserted, $query, _range, index, inserted, isString, lastNode, matched, offset, query, query_content, range;
+    if (!(range = this._getRange())) {
+      return;
+    }
+    if (!range.collapsed) {
+      return;
+    }
+    if (e.which === KEY_CODE.ENTER) {
+      ($query = $(range.startContainer).closest('.atwho-query')).contents().unwrap();
+      if ($query.is(':empty')) {
+        $query.remove();
+      }
+      ($query = $(".atwho-query", this.app.document)).text($query.text()).contents().last().unwrap();
+      this._clearRange();
+      return;
+    }
+    if (/firefox/i.test(navigator.userAgent)) {
+      if ($(range.startContainer).is(this.$inputor)) {
+        this._clearRange();
+        return;
+      }
+      if (e.which === KEY_CODE.BACKSPACE && range.startContainer.nodeType === document.ELEMENT_NODE && (offset = range.startOffset - 1) >= 0) {
+        _range = range.cloneRange();
+        _range.setStart(range.startContainer, offset);
+        if ($(_range.cloneContents()).contents().last().is('.atwho-inserted')) {
+          inserted = $(range.startContainer).contents().get(offset);
+          this._setRange('after', $(inserted).contents().last());
+        }
+      } else if (e.which === KEY_CODE.LEFT && range.startContainer.nodeType === document.TEXT_NODE) {
+        $inserted = $(range.startContainer.previousSibling);
+        if ($inserted.is('.atwho-inserted') && range.startOffset === 0) {
+          this._setRange('after', $inserted.contents().last());
+        }
+      }
+    }
+    $(range.startContainer).closest('.atwho-inserted').addClass('atwho-query').siblings().removeClass('atwho-query');
+    if (($query = $(".atwho-query", this.app.document)).length > 0 && $query.is(':empty') && $query.text().length === 0) {
+      $query.remove();
+    }
+    if (!this._movingEvent(e)) {
+      $query.removeClass('atwho-inserted');
+    }
+    if ($query.length > 0) {
+      switch (e.which) {
+        case KEY_CODE.LEFT:
+          this._setRange('before', $query.get(0), range);
+          $query.removeClass('atwho-query');
+          return;
+        case KEY_CODE.RIGHT:
+          this._setRange('after', $query.get(0).nextSibling, range);
+          $query.removeClass('atwho-query');
+          return;
+      }
+    }
+    if ($query.length > 0 && (query_content = $query.attr('data-atwho-at-query'))) {
+      $query.empty().html(query_content).attr('data-atwho-at-query', null);
+      this._setRange('after', $query.get(0), range);
+    }
+    _range = range.cloneRange();
+    _range.setStart(range.startContainer, 0);
+    matched = this.callbacks("matcher").call(this, this.at, _range.toString(), this.getOpt('startWithSpace'), this.getOpt("acceptSpaceBar"));
+    isString = typeof matched === 'string';
+    if ($query.length === 0 && isString && (index = range.startOffset - this.at.length - matched.length) >= 0) {
+      range.setStart(range.startContainer, index);
+      $query = $('<span/>', this.app.document).attr(this.getOpt("editableAtwhoQueryAttrs")).addClass('atwho-query');
+      range.surroundContents($query.get(0));
+      lastNode = $query.contents().last().get(0);
+      if (/firefox/i.test(navigator.userAgent)) {
+        range.setStart(lastNode, lastNode.length);
+        range.setEnd(lastNode, lastNode.length);
+        this._clearRange(range);
+      } else {
+        this._setRange('after', lastNode, range);
+      }
+    }
+    if (isString && matched.length < this.getOpt('minLen', 0)) {
+      return;
+    }
+    if (isString && matched.length <= this.getOpt('maxLen', 20)) {
+      query = {
+        text: matched,
+        el: $query
+      };
+      this.trigger("matched", [this.at, query.text]);
+      return this.query = query;
+    } else {
+      this.view.hide();
+      this.query = {
+        el: $query
+      };
+      if ($query.text().indexOf(this.at) >= 0) {
+        if (this._movingEvent(e) && $query.hasClass('atwho-inserted')) {
+          $query.removeClass('atwho-query');
+        } else if (false !== this.callbacks('afterMatchFailed').call(this, this.at, $query)) {
+          this._setRange("after", this._unwrap($query.text($query.text()).contents().first()));
+        }
+      }
+      return null;
+    }
+  };
+
+  EditableController.prototype.rect = function() {
+    var $iframe, iframeOffset, rect;
+    rect = this.query.el.offset();
+    if (this.app.iframe && !this.app.iframeAsRoot) {
+      iframeOffset = ($iframe = $(this.app.iframe)).offset();
+      rect.left += iframeOffset.left - this.$inputor.scrollLeft();
+      rect.top += iframeOffset.top - this.$inputor.scrollTop();
+    }
+    rect.bottom = rect.top + this.query.el.height();
+    return rect;
+  };
+
+  EditableController.prototype.insert = function(content, $li) {
+    var data, range, suffix, suffixNode;
+    if (!this.$inputor.is(':focus')) {
+      this.$inputor.focus();
+    }
+    suffix = (suffix = this.getOpt('suffix')) === "" ? suffix : suffix || "\u00A0";
+    data = $li.data('item-data');
+    this.query.el.removeClass('atwho-query').addClass('atwho-inserted').html(content).attr('data-atwho-at-query', "" + data['atwho-at'] + this.query.text);
+    if (range = this._getRange()) {
+      range.setEndAfter(this.query.el[0]);
+      range.collapse(false);
+      range.insertNode(suffixNode = this.app.document.createTextNode("\u200D" + suffix));
+      this._setRange('after', suffixNode, range);
+    }
+    if (!this.$inputor.is(':focus')) {
+      this.$inputor.focus();
+    }
+    return this.$inputor.change();
+  };
+
+  return EditableController;
+
+})(Controller);
+
+var Model;
+
+Model = (function() {
+  function Model(context) {
+    this.context = context;
+    this.at = this.context.at;
+    this.storage = this.context.$inputor;
+  }
+
+  Model.prototype.destroy = function() {
+    return this.storage.data(this.at, null);
+  };
+
+  Model.prototype.saved = function() {
+    return this.fetch() > 0;
+  };
+
+  Model.prototype.query = function(query, callback) {
+    var _remoteFilter, data, searchKey;
+    data = this.fetch();
+    searchKey = this.context.getOpt("searchKey");
+    data = this.context.callbacks('filter').call(this.context, query, data, searchKey) || [];
+    _remoteFilter = this.context.callbacks('remoteFilter');
+    if (data.length > 0 || (!_remoteFilter && data.length === 0)) {
+      return callback(data);
+    } else {
+      return _remoteFilter.call(this.context, query, callback);
+    }
+  };
+
+  Model.prototype.fetch = function() {
+    return this.storage.data(this.at) || [];
+  };
+
+  Model.prototype.save = function(data) {
+    return this.storage.data(this.at, this.context.callbacks("beforeSave").call(this.context, data || []));
+  };
+
+  Model.prototype.load = function(data) {
+    if (!(this.saved() || !data)) {
+      return this._load(data);
+    }
+  };
+
+  Model.prototype.reload = function(data) {
+    return this._load(data);
+  };
+
+  Model.prototype._load = function(data) {
+    if (typeof data === "string") {
+      return $.ajax(data, {
+        dataType: "json"
+      }).done((function(_this) {
+        return function(data) {
+          return _this.save(data);
+        };
+      })(this));
+    } else {
+      return this.save(data);
+    }
+  };
+
+  return Model;
+
+})();
+
+var View;
+
+View = (function() {
+  function View(context) {
+    this.context = context;
+    this.$el = $("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>");
+    this.$elUl = this.$el.children();
+    this.timeoutID = null;
+    this.context.$el.append(this.$el);
+    this.bindEvent();
+  }
+
+  View.prototype.init = function() {
+    var header_tpl, id;
+    id = this.context.getOpt("alias") || this.context.at.charCodeAt(0);
+    header_tpl = this.context.getOpt("headerTpl");
+    if (header_tpl && this.$el.children().length === 1) {
+      this.$el.prepend(header_tpl);
+    }
+    return this.$el.attr({
+      'id': "at-view-" + id
+    });
+  };
+
+  View.prototype.destroy = function() {
+    return this.$el.remove();
+  };
+
+  View.prototype.bindEvent = function() {
+    var $menu, lastCoordX, lastCoordY;
+    $menu = this.$el.find('ul');
+    lastCoordX = 0;
+    lastCoordY = 0;
+    return $menu.on('mousemove.atwho-view', 'li', (function(_this) {
+      return function(e) {
+        var $cur;
+        if (lastCoordX === e.clientX && lastCoordY === e.clientY) {
+          return;
+        }
+        lastCoordX = e.clientX;
+        lastCoordY = e.clientY;
+        $cur = $(e.currentTarget);
+        if ($cur.hasClass('cur')) {
+          return;
+        }
+        $menu.find('.cur').removeClass('cur');
+        return $cur.addClass('cur');
+      };
+    })(this)).on('click.atwho-view', 'li', (function(_this) {
+      return function(e) {
+        $menu.find('.cur').removeClass('cur');
+        $(e.currentTarget).addClass('cur');
+        _this.choose(e);
+        return e.preventDefault();
+      };
+    })(this));
+  };
+
+  View.prototype.visible = function() {
+    return this.$el.is(":visible");
+  };
+
+  View.prototype.highlighted = function() {
+    return this.$el.find(".cur").length > 0;
+  };
+
+  View.prototype.choose = function(e) {
+    var $li, content;
+    if (($li = this.$el.find(".cur")).length) {
+      content = this.context.insertContentFor($li);
+      this.context._stopDelayedCall();
+      this.context.insert(this.context.callbacks("beforeInsert").call(this.context, content, $li, e), $li);
+      this.context.trigger("inserted", [$li, e]);
+      this.hide(e);
+    }
+    if (this.context.getOpt("hideWithoutSuffix")) {
+      return this.stopShowing = true;
+    }
+  };
+
+  View.prototype.reposition = function(rect) {
+    var _window, offset, overflowOffset, ref;
+    _window = this.context.app.iframeAsRoot ? this.context.app.window : window;
+    if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {
+      rect.bottom = rect.top - this.$el.height();
+    }
+    if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {
+      rect.left = overflowOffset;
+    }
+    offset = {
+      left: rect.left,
+      top: rect.bottom
+    };
+    if ((ref = this.context.callbacks("beforeReposition")) != null) {
+      ref.call(this.context, offset);
+    }
+    this.$el.offset(offset);
+    return this.context.trigger("reposition", [offset]);
+  };
+
+  View.prototype.next = function() {
+    var cur, next, nextEl, offset;
+    cur = this.$el.find('.cur').removeClass('cur');
+    next = cur.next();
+    if (!next.length) {
+      next = this.$el.find('li:first');
+    }
+    next.addClass('cur');
+    nextEl = next[0];
+    offset = nextEl.offsetTop + nextEl.offsetHeight + (nextEl.nextSibling ? nextEl.nextSibling.offsetHeight : 0);
+    return this.scrollTop(Math.max(0, offset - this.$el.height()));
+  };
+
+  View.prototype.prev = function() {
+    var cur, offset, prev, prevEl;
+    cur = this.$el.find('.cur').removeClass('cur');
+    prev = cur.prev();
+    if (!prev.length) {
+      prev = this.$el.find('li:last');
+    }
+    prev.addClass('cur');
+    prevEl = prev[0];
+    offset = prevEl.offsetTop + prevEl.offsetHeight + (prevEl.nextSibling ? prevEl.nextSibling.offsetHeight : 0);
+    return this.scrollTop(Math.max(0, offset - this.$el.height()));
+  };
+
+  View.prototype.scrollTop = function(scrollTop) {
+    var scrollDuration;
+    scrollDuration = this.context.getOpt('scrollDuration');
+    if (scrollDuration) {
+      return this.$elUl.animate({
+        scrollTop: scrollTop
+      }, scrollDuration);
+    } else {
+      return this.$elUl.scrollTop(scrollTop);
+    }
+  };
+
+  View.prototype.show = function() {
+    var rect;
+    if (this.stopShowing) {
+      this.stopShowing = false;
+      return;
+    }
+    if (!this.visible()) {
+      this.$el.show();
+      this.$el.scrollTop(0);
+      this.context.trigger('shown');
+    }
+    if (rect = this.context.rect()) {
+      return this.reposition(rect);
+    }
+  };
+
+  View.prototype.hide = function(e, time) {
+    var callback;
+    if (!this.visible()) {
+      return;
+    }
+    if (isNaN(time)) {
+      this.$el.hide();
+      return this.context.trigger('hidden', [e]);
+    } else {
+      callback = (function(_this) {
+        return function() {
+          return _this.hide();
+        };
+      })(this);
+      clearTimeout(this.timeoutID);
+      return this.timeoutID = setTimeout(callback, time);
+    }
+  };
+
+  View.prototype.render = function(list) {
+    var $li, $ul, i, item, len, li, tpl;
+    if (!($.isArray(list) && list.length > 0)) {
+      this.hide();
+      return;
+    }
+    this.$el.find('ul').empty();
+    $ul = this.$el.find('ul');
+    tpl = this.context.getOpt('displayTpl');
+    for (i = 0, len = list.length; i < len; i++) {
+      item = list[i];
+      item = $.extend({}, item, {
+        'atwho-at': this.context.at
+      });
+      li = this.context.callbacks("tplEval").call(this.context, tpl, item, "onDisplay");
+      $li = $(this.context.callbacks("highlighter").call(this.context, li, this.context.query.text));
+      $li.data("item-data", item);
+      $ul.append($li);
+    }
+    this.show();
+    if (this.context.getOpt('highlightFirst')) {
+      return $ul.find("li:first").addClass("cur");
+    }
+  };
+
+  return View;
+
+})();
+
+var Api;
+
+Api = {
+  load: function(at, data) {
+    var c;
+    if (c = this.controller(at)) {
+      return c.model.load(data);
+    }
+  },
+  isSelecting: function() {
+    var ref;
+    return !!((ref = this.controller()) != null ? ref.view.visible() : void 0);
+  },
+  hide: function() {
+    var ref;
+    return (ref = this.controller()) != null ? ref.view.hide() : void 0;
+  },
+  reposition: function() {
+    var c;
+    if (c = this.controller()) {
+      return c.view.reposition(c.rect());
+    }
+  },
+  setIframe: function(iframe, asRoot) {
+    this.setupRootElement(iframe, asRoot);
+    return null;
+  },
+  run: function() {
+    return this.dispatch();
+  },
+  destroy: function() {
+    this.shutdown();
+    return this.$inputor.data('atwho', null);
+  }
+};
+
+$.fn.atwho = function(method) {
+  var _args, result;
+  _args = arguments;
+  result = null;
+  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
+    var $this, app;
+    if (!(app = ($this = $(this)).data("atwho"))) {
+      $this.data('atwho', (app = new App(this)));
+    }
+    if (typeof method === 'object' || !method) {
+      return app.reg(method.at, method);
+    } else if (Api[method] && app) {
+      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
+    } else {
+      return $.error("Method " + method + " does not exist on jQuery.atwho");
+    }
+  });
+  if (result != null) {
+    return result;
+  } else {
+    return this;
+  }
+};
+
+$.fn.atwho["default"] = {
+  at: void 0,
+  alias: void 0,
+  data: null,
+  displayTpl: "<li>${name}</li>",
+  insertTpl: "${atwho-at}${name}",
+  headerTpl: null,
+  callbacks: DEFAULT_CALLBACKS,
+  searchKey: "name",
+  suffix: void 0,
+  hideWithoutSuffix: false,
+  startWithSpace: true,
+  acceptSpaceBar: false,
+  highlightFirst: true,
+  limit: 5,
+  maxLen: 20,
+  minLen: 0,
+  displayTimeout: 300,
+  delay: null,
+  spaceSelectsMatch: false,
+  tabSelectsMatch: true,
+  editableAtwhoQueryAttrs: {},
+  scrollDuration: 150,
+  suspendOnComposing: true,
+  lookUpOnClick: true
+};
+
+$.fn.atwho.debug = false;
+
+}));
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.min.css b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.min.css
new file mode 100644
index 0000000..f770dc7
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.min.css
@@ -0,0 +1 @@
+.atwho-view{position:absolute;top:0;left:0;display:none;margin-top:18px;background:#fff;color:#000;border:1px solid #DDD;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.1);min-width:120px;z-index:11110!important}.atwho-view .atwho-header{padding:5px;margin:5px;cursor:pointer;border-bottom:solid 1px #eaeff1;color:#6f8092;font-size:11px;font-weight:700}.atwho-view .atwho-header .small{color:#6f8092;float:right;padding-top:2px;margin-right:-5px;font-size:12px;font-weight:400}.atwho-view .atwho-header:hover{cursor:default}.atwho-view .cur{background:#36F;color:#fff}.atwho-view .cur small{color:#fff}.atwho-view strong{color:#36F}.atwho-view .cur strong{color:#fff;font:700}.atwho-view ul{list-style:none;padding:0;margin:auto;max-height:200px;overflow-y:auto}.atwho-view ul li{display:block;padding:5px 10px;border-bottom:1px solid #DDD;cursor:pointer}.atwho-view small{font-size:smaller;color:#777;font-weight:400}
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.min.js b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.min.js
new file mode 100644
index 0000000..71e9a10
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho-1.5.1.min.js
@@ -0,0 +1 @@
+!function(t,e){"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t)}):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(this,function(t){var e,i;i={DOWN:40,UP:38,ESC:27,TAB:9,ENTER:13,CTRL:17,A:65,P:80,N:78,LEFT:37,UP:38,RIGHT:39,DOWN:40,BACKSPACE:8,SPACE:32},e={beforeSave:function(t){return r.arrayToDefaultHash(t)},matcher:function(t,e,i,n){var r,o,s,a,h;return t=t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),i&&(t="(?:^|\\s)"+t),r=decodeURI("%C3%80"),o=decodeURI("%C3%BF"),h=n?" ":"",a=new RegExp(t+"([A-Za-z"+r+"-"+o+"0-9_"+h+"'.+-]*)$|"+t+"([^\\x00-\\xff]*)$","gi"),s=a.exec(e),s?s[2]||s[1]:null},filter:function(t,e,i){var n,r,o,s;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],~new String(o[i]).toLowerCase().indexOf(t.toLowerCase())&&n.push(o);return n},remoteFilter:null,sorter:function(t,e,i){var n,r,o,s;if(!t)return e;for(n=[],r=0,s=e.length;s>r;r++)o=e[r],o.atwho_order=new String(o[i]).toLowerCase().indexOf(t.toLowerCase()),o.atwho_order>-1&&n.push(o);return n.sort(function(t,e){return t.atwho_order-e.atwho_order})},tplEval:function(t,e){var i,n,r;r=t;try{return"string"!=typeof t&&(r=t(e)),r.replace(/\$\{([^\}]*)\}/g,function(t,i,n){return e[i]})}catch(n){return i=n,""}},highlighter:function(t,e){var i;return e?(i=new RegExp(">\\s*(\\w*?)("+e.replace("+","\\+")+")(\\w*)\\s*<","ig"),t.replace(i,function(t,e,i,n){return"> "+e+"<strong>"+i+"</strong>"+n+" <"})):t},beforeInsert:function(t,e,i){return t},beforeReposition:function(t){return t},afterMatchFailed:function(t,e){}};var n;n=function(){function e(e){this.currentFlag=null,this.controllers={},this.aliasMaps={},this.$inputor=t(e),this.setupRootElement(),this.listen()}return e.prototype.createContainer=function(e){var i;return null!=(i=this.$el)&&i.remove(),t(e.body).append(this.$el=t("<div class='atwho-container'></div>"))},e.prototype.setupRootElement=function(e,i){var n,r;if(null==i&&(i=!1),e)this.window=e.contentWindow,this.document=e.contentDocument||this.window.document,this.iframe=e;else{this.document=this.$inputor[0].ownerDocument,this.window=this.document.defaultView||this.document.parentWindow;try{this.iframe=this.window.frameElement}catch(r){if(n=r,this.iframe=null,t.fn.atwho.debug)throw new Error("iframe auto-discovery is failed.\nPlease use `setIframe` to set the target iframe manually.\n"+n)}}return this.createContainer((this.iframeAsRoot=i)?this.document:document)},e.prototype.controller=function(t){var e,i,n,r;if(this.aliasMaps[t])i=this.controllers[this.aliasMaps[t]];else{r=this.controllers;for(n in r)if(e=r[n],n===t){i=e;break}}return i?i:this.controllers[this.currentFlag]},e.prototype.setContextFor=function(t){return this.currentFlag=t,this},e.prototype.reg=function(t,e){var i,n;return n=(i=this.controllers)[t]||(i[t]=this.$inputor.is("[contentEditable]")?new l(this,t):new s(this,t)),e.alias&&(this.aliasMaps[e.alias]=t),n.init(e),this},e.prototype.listen=function(){return this.$inputor.on("compositionstart",function(t){return function(e){var i;return null!=(i=t.controller())&&i.view.hide(),t.isComposing=!0,null}}(this)).on("compositionend",function(t){return function(e){return t.isComposing=!1,setTimeout(function(e){return t.dispatch(e)}),null}}(this)).on("keyup.atwhoInner",function(t){return function(e){return t.onKeyup(e)}}(this)).on("keydown.atwhoInner",function(t){return function(e){return t.onKeydown(e)}}(this)).on("blur.atwhoInner",function(t){return function(e){var i;return(i=t.controller())?(i.expectedQueryCBId=null,i.view.hide(e,i.getOpt("displayTimeout"))):void 0}}(this)).on("click.atwhoInner",function(t){return function(e){return t.dispatch(e)}}(this)).on("scroll.atwhoInner",function(t){return function(){var e;return e=t.$inputor.scrollTop(),function(i){var n,r;return n=i.target.scrollTop,e!==n&&null!=(r=t.controller())&&r.view.hide(i),e=n,!0}}}(this)())},e.prototype.shutdown=function(){var t,e,i;i=this.controllers;for(t in i)e=i[t],e.destroy(),delete this.controllers[t];return this.$inputor.off(".atwhoInner"),this.$el.remove()},e.prototype.dispatch=function(t){var e,i,n,r;n=this.controllers,r=[];for(e in n)i=n[e],r.push(i.lookUp(t));return r},e.prototype.onKeyup=function(e){var n;switch(e.keyCode){case i.ESC:e.preventDefault(),null!=(n=this.controller())&&n.view.hide();break;case i.DOWN:case i.UP:case i.CTRL:case i.ENTER:t.noop();break;case i.P:case i.N:e.ctrlKey||this.dispatch(e);break;default:this.dispatch(e)}},e.prototype.onKeydown=function(e){var n,r;if(r=null!=(n=this.controller())?n.view:void 0,r&&r.visible())switch(e.keyCode){case i.ESC:e.preventDefault(),r.hide(e);break;case i.UP:e.preventDefault(),r.prev();break;case i.DOWN:e.preventDefault(),r.next();break;case i.P:if(!e.ctrlKey)return;e.preventDefault(),r.prev();break;case i.N:if(!e.ctrlKey)return;e.preventDefault(),r.next();break;case i.TAB:case i.ENTER:case i.SPACE:if(!r.visible())return;if(!this.controller().getOpt("spaceSelectsMatch")&&e.keyCode===i.SPACE)return;if(!this.controller().getOpt("tabSelectsMatch")&&e.keyCode===i.TAB)return;r.highlighted()?(e.preventDefault(),r.choose(e)):r.hide(e);break;default:t.noop()}},e}();var r,o=[].slice;r=function(){function i(e,i){this.app=e,this.at=i,this.$inputor=this.app.$inputor,this.id=this.$inputor[0].id||this.uid(),this.expectedQueryCBId=null,this.setting=null,this.query=null,this.pos=0,this.range=null,0===(this.$el=t("#atwho-ground-"+this.id,this.app.$el)).length&&this.app.$el.append(this.$el=t("<div id='atwho-ground-"+this.id+"'></div>")),this.model=new u(this),this.view=new c(this)}return i.prototype.uid=function(){return(Math.random().toString(16)+"000000000").substr(2,8)+(new Date).getTime()},i.prototype.init=function(e){return this.setting=t.extend({},this.setting||t.fn.atwho["default"],e),this.view.init(),this.model.reload(this.setting.data)},i.prototype.destroy=function(){return this.trigger("beforeDestroy"),this.model.destroy(),this.view.destroy(),this.$el.remove()},i.prototype.callDefault=function(){var i,n,r,s;s=arguments[0],i=2<=arguments.length?o.call(arguments,1):[];try{return e[s].apply(this,i)}catch(r){return n=r,t.error(n+" Or maybe At.js doesn't have function "+s)}},i.prototype.trigger=function(t,e){var i,n;return null==e&&(e=[]),e.push(this),i=this.getOpt("alias"),n=i?t+"-"+i+".atwho":t+".atwho",this.$inputor.trigger(n,e)},i.prototype.callbacks=function(t){return this.getOpt("callbacks")[t]||e[t]},i.prototype.getOpt=function(t,e){var i,n;try{return this.setting[t]}catch(n){return i=n,null}},i.prototype.insertContentFor=function(e){var i,n;return n=this.getOpt("insertTpl"),i=t.extend({},e.data("item-data"),{"atwho-at":this.at}),this.callbacks("tplEval").call(this,n,i,"onInsert")},i.prototype.renderView=function(t){var e;return e=this.getOpt("searchKey"),t=this.callbacks("sorter").call(this,this.query.text,t.slice(0,1001),e),this.view.render(t.slice(0,this.getOpt("limit")))},i.arrayToDefaultHash=function(e){var i,n,r,o;if(!t.isArray(e))return e;for(o=[],i=0,r=e.length;r>i;i++)n=e[i],t.isPlainObject(n)?o.push(n):o.push({name:n});return o},i.prototype.lookUp=function(t){var e,i;if((!t||"click"!==t.type||this.getOpt("lookUpOnClick"))&&(!this.getOpt("suspendOnComposing")||!this.app.isComposing))return(e=this.catchQuery(t))?(this.app.setContextFor(this.at),(i=this.getOpt("delay"))?this._delayLookUp(e,i):this._lookUp(e),e):(this.expectedQueryCBId=null,e)},i.prototype._delayLookUp=function(t,e){var i,n;return i=Date.now?Date.now():(new Date).getTime(),this.previousCallTime||(this.previousCallTime=i),n=e-(i-this.previousCallTime),n>0&&e>n?(this.previousCallTime=i,this._stopDelayedCall(),this.delayedCallTimeout=setTimeout(function(e){return function(){return e.previousCallTime=0,e.delayedCallTimeout=null,e._lookUp(t)}}(this),e)):(this._stopDelayedCall(),this.previousCallTime!==i&&(this.previousCallTime=0),this._lookUp(t))},i.prototype._stopDelayedCall=function(){return this.delayedCallTimeout?(clearTimeout(this.delayedCallTimeout),this.delayedCallTimeout=null):void 0},i.prototype._generateQueryCBId=function(){return{}},i.prototype._lookUp=function(e){var i;return i=function(t,e){return t===this.expectedQueryCBId?e&&e.length>0?this.renderView(this.constructor.arrayToDefaultHash(e)):this.view.hide():void 0},this.expectedQueryCBId=this._generateQueryCBId(),this.model.query(e.text,t.proxy(i,this,this.expectedQueryCBId))},i}();var s,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;s=function(e){function i(){return i.__super__.constructor.apply(this,arguments)}return a(i,e),i.prototype.catchQuery=function(){var t,e,i,n,r,o,s;return e=this.$inputor.val(),t=this.$inputor.caret("pos",{iframe:this.app.iframe}),s=e.slice(0,t),r=this.callbacks("matcher").call(this,this.at,s,this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar")),n="string"==typeof r,n&&r.length<this.getOpt("minLen",0)?void 0:(n&&r.length<=this.getOpt("maxLen",20)?(o=t-r.length,i=o+r.length,this.pos=o,r={text:r,headPos:o,endPos:i},this.trigger("matched",[this.at,r.text])):(r=null,this.view.hide()),this.query=r)},i.prototype.rect=function(){var e,i,n;if(e=this.$inputor.caret("offset",this.pos-1,{iframe:this.app.iframe}))return this.app.iframe&&!this.app.iframeAsRoot&&(i=t(this.app.iframe).offset(),e.left+=i.left,e.top+=i.top),n=this.app.document.selection?0:2,{left:e.left,top:e.top,bottom:e.top+e.height+n}},i.prototype.insert=function(t,e){var i,n,r,o,s;return i=this.$inputor,n=i.val(),r=n.slice(0,Math.max(this.query.headPos-this.at.length,0)),o=""===(o=this.getOpt("suffix"))?o:o||" ",t+=o,s=""+r+t+n.slice(this.query.endPos||0),i.val(s),i.caret("pos",r.length+t.length,{iframe:this.app.iframe}),i.is(":focus")||i.focus(),i.change()},i}(r);var l,a=function(t,e){function i(){this.constructor=t}for(var n in e)h.call(e,n)&&(t[n]=e[n]);return i.prototype=e.prototype,t.prototype=new i,t.__super__=e.prototype,t},h={}.hasOwnProperty;l=function(e){function n(){return n.__super__.constructor.apply(this,arguments)}return a(n,e),n.prototype._getRange=function(){var t;return t=this.app.window.getSelection(),t.rangeCount>0?t.getRangeAt(0):void 0},n.prototype._setRange=function(e,i,n){return null==n&&(n=this._getRange()),n?(i=t(i)[0],"after"===e?(n.setEndAfter(i),n.setStartAfter(i)):(n.setEndBefore(i),n.setStartBefore(i)),n.collapse(!1),this._clearRange(n)):void 0},n.prototype._clearRange=function(t){var e;return null==t&&(t=this._getRange()),e=this.app.window.getSelection(),null==this.ctrl_a_pressed?(e.removeAllRanges(),e.addRange(t)):void 0},n.prototype._movingEvent=function(t){var e;return"click"===t.type||(e=t.which)===i.RIGHT||e===i.LEFT||e===i.UP||e===i.DOWN},n.prototype._unwrap=function(e){var i;return e=t(e).unwrap().get(0),(i=e.nextSibling)&&i.nodeValue&&(e.nodeValue+=i.nodeValue,t(i).remove()),e},n.prototype.catchQuery=function(e){var n,r,o,s,a,h,l,u,c,p,f,d;if((d=this._getRange())&&d.collapsed){if(e.which===i.ENTER)return(r=t(d.startContainer).closest(".atwho-query")).contents().unwrap(),r.is(":empty")&&r.remove(),(r=t(".atwho-query",this.app.document)).text(r.text()).contents().last().unwrap(),void this._clearRange();if(/firefox/i.test(navigator.userAgent)){if(t(d.startContainer).is(this.$inputor))return void this._clearRange();e.which===i.BACKSPACE&&d.startContainer.nodeType===document.ELEMENT_NODE&&(c=d.startOffset-1)>=0?(o=d.cloneRange(),o.setStart(d.startContainer,c),t(o.cloneContents()).contents().last().is(".atwho-inserted")&&(a=t(d.startContainer).contents().get(c),this._setRange("after",t(a).contents().last()))):e.which===i.LEFT&&d.startContainer.nodeType===document.TEXT_NODE&&(n=t(d.startContainer.previousSibling),n.is(".atwho-inserted")&&0===d.startOffset&&this._setRange("after",n.contents().last()))}if(t(d.startContainer).closest(".atwho-inserted").addClass("atwho-query").siblings().removeClass("atwho-query"),(r=t(".atwho-query",this.app.document)).length>0&&r.is(":empty")&&0===r.text().length&&r.remove(),this._movingEvent(e)||r.removeClass("atwho-inserted"),r.length>0)switch(e.which){case i.LEFT:return this._setRange("before",r.get(0),d),void r.removeClass("atwho-query");case i.RIGHT:return this._setRange("after",r.get(0).nextSibling,d),void r.removeClass("atwho-query")}if(r.length>0&&(f=r.attr("data-atwho-at-query"))&&(r.empty().html(f).attr("data-atwho-at-query",null),this._setRange("after",r.get(0),d)),o=d.cloneRange(),o.setStart(d.startContainer,0),u=this.callbacks("matcher").call(this,this.at,o.toString(),this.getOpt("startWithSpace"),this.getOpt("acceptSpaceBar")),h="string"==typeof u,0===r.length&&h&&(s=d.startOffset-this.at.length-u.length)>=0&&(d.setStart(d.startContainer,s),r=t("<span/>",this.app.document).attr(this.getOpt("editableAtwhoQueryAttrs")).addClass("atwho-query"),d.surroundContents(r.get(0)),l=r.contents().last().get(0),/firefox/i.test(navigator.userAgent)?(d.setStart(l,l.length),d.setEnd(l,l.length),this._clearRange(d)):this._setRange("after",l,d)),!(h&&u.length<this.getOpt("minLen",0)))return h&&u.length<=this.getOpt("maxLen",20)?(p={text:u,el:r},this.trigger("matched",[this.at,p.text]),this.query=p):(this.view.hide(),this.query={el:r},r.text().indexOf(this.at)>=0&&(this._movingEvent(e)&&r.hasClass("atwho-inserted")?r.removeClass("atwho-query"):!1!==this.callbacks("afterMatchFailed").call(this,this.at,r)&&this._setRange("after",this._unwrap(r.text(r.text()).contents().first()))),null)}},n.prototype.rect=function(){var e,i,n;return n=this.query.el.offset(),this.app.iframe&&!this.app.iframeAsRoot&&(i=(e=t(this.app.iframe)).offset(),n.left+=i.left-this.$inputor.scrollLeft(),n.top+=i.top-this.$inputor.scrollTop()),n.bottom=n.top+this.query.el.height(),n},n.prototype.insert=function(t,e){var i,n,r,o;return this.$inputor.is(":focus")||this.$inputor.focus(),r=""===(r=this.getOpt("suffix"))?r:r||" ",i=e.data("item-data"),this.query.el.removeClass("atwho-query").addClass("atwho-inserted").html(t).attr("data-atwho-at-query",""+i["atwho-at"]+this.query.text),(n=this._getRange())&&(n.setEndAfter(this.query.el[0]),n.collapse(!1),n.insertNode(o=this.app.document.createTextNode("‍"+r)),this._setRange("after",o,n)),this.$inputor.is(":focus")||this.$inputor.focus(),this.$inputor.change()},n}(r);var u;u=function(){function e(t){this.context=t,this.at=this.context.at,this.storage=this.context.$inputor}return e.prototype.destroy=function(){return this.storage.data(this.at,null)},e.prototype.saved=function(){return this.fetch()>0},e.prototype.query=function(t,e){var i,n,r;return n=this.fetch(),r=this.context.getOpt("searchKey"),n=this.context.callbacks("filter").call(this.context,t,n,r)||[],i=this.context.callbacks("remoteFilter"),n.length>0||!i&&0===n.length?e(n):i.call(this.context,t,e)},e.prototype.fetch=function(){return this.storage.data(this.at)||[]},e.prototype.save=function(t){return this.storage.data(this.at,this.context.callbacks("beforeSave").call(this.context,t||[]))},e.prototype.load=function(t){return!this.saved()&&t?this._load(t):void 0},e.prototype.reload=function(t){return this._load(t)},e.prototype._load=function(e){return"string"==typeof e?t.ajax(e,{dataType:"json"}).done(function(t){return function(e){return t.save(e)}}(this)):this.save(e)},e}();var c;c=function(){function e(e){this.context=e,this.$el=t("<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>"),this.$elUl=this.$el.children(),this.timeoutID=null,this.context.$el.append(this.$el),this.bindEvent()}return e.prototype.init=function(){var t,e;return e=this.context.getOpt("alias")||this.context.at.charCodeAt(0),t=this.context.getOpt("headerTpl"),t&&1===this.$el.children().length&&this.$el.prepend(t),this.$el.attr({id:"at-view-"+e})},e.prototype.destroy=function(){return this.$el.remove()},e.prototype.bindEvent=function(){var e,i,n;return e=this.$el.find("ul"),i=0,n=0,e.on("mousemove.atwho-view","li",function(r){return function(r){var o;if((i!==r.clientX||n!==r.clientY)&&(i=r.clientX,n=r.clientY,o=t(r.currentTarget),!o.hasClass("cur")))return e.find(".cur").removeClass("cur"),o.addClass("cur")}}(this)).on("click.atwho-view","li",function(i){return function(n){return e.find(".cur").removeClass("cur"),t(n.currentTarget).addClass("cur"),i.choose(n),n.preventDefault()}}(this))},e.prototype.visible=function(){return this.$el.is(":visible")},e.prototype.highlighted=function(){return this.$el.find(".cur").length>0},e.prototype.choose=function(t){var e,i;return(e=this.$el.find(".cur")).length&&(i=this.context.insertContentFor(e),this.context._stopDelayedCall(),this.context.insert(this.context.callbacks("beforeInsert").call(this.context,i,e,t),e),this.context.trigger("inserted",[e,t]),this.hide(t)),this.context.getOpt("hideWithoutSuffix")?this.stopShowing=!0:void 0},e.prototype.reposition=function(e){var i,n,r,o;return i=this.context.app.iframeAsRoot?this.context.app.window:window,e.bottom+this.$el.height()-t(i).scrollTop()>t(i).height()&&(e.bottom=e.top-this.$el.height()),e.left>(r=t(i).width()-this.$el.width()-5)&&(e.left=r),n={left:e.left,top:e.bottom},null!=(o=this.context.callbacks("beforeReposition"))&&o.call(this.context,n),this.$el.offset(n),this.context.trigger("reposition",[n])},e.prototype.next=function(){var t,e,i,n;return t=this.$el.find(".cur").removeClass("cur"),e=t.next(),e.length||(e=this.$el.find("li:first")),e.addClass("cur"),i=e[0],n=i.offsetTop+i.offsetHeight+(i.nextSibling?i.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,n-this.$el.height()))},e.prototype.prev=function(){var t,e,i,n;return t=this.$el.find(".cur").removeClass("cur"),i=t.prev(),i.length||(i=this.$el.find("li:last")),i.addClass("cur"),n=i[0],e=n.offsetTop+n.offsetHeight+(n.nextSibling?n.nextSibling.offsetHeight:0),this.scrollTop(Math.max(0,e-this.$el.height()))},e.prototype.scrollTop=function(t){var e;return e=this.context.getOpt("scrollDuration"),e?this.$elUl.animate({scrollTop:t},e):this.$elUl.scrollTop(t)},e.prototype.show=function(){var t;return this.stopShowing?void(this.stopShowing=!1):(this.visible()||(this.$el.show(),this.$el.scrollTop(0),this.context.trigger("shown")),(t=this.context.rect())?this.reposition(t):void 0)},e.prototype.hide=function(t,e){var i;if(this.visible())return isNaN(e)?(this.$el.hide(),this.context.trigger("hidden",[t])):(i=function(t){return function(){return t.hide()}}(this),clearTimeout(this.timeoutID),this.timeoutID=setTimeout(i,e))},e.prototype.render=function(e){var i,n,r,o,s,a,h;if(!(t.isArray(e)&&e.length>0))return void this.hide();for(this.$el.find("ul").empty(),n=this.$el.find("ul"),h=this.context.getOpt("displayTpl"),r=0,s=e.length;s>r;r++)o=e[r],o=t.extend({},o,{"atwho-at":this.context.at}),a=this.context.callbacks("tplEval").call(this.context,h,o,"onDisplay"),i=t(this.context.callbacks("highlighter").call(this.context,a,this.context.query.text)),i.data("item-data",o),n.append(i);return this.show(),this.context.getOpt("highlightFirst")?n.find("li:first").addClass("cur"):void 0},e}();var p;p={load:function(t,e){var i;return(i=this.controller(t))?i.model.load(e):void 0},isSelecting:function(){var t;return!!(null!=(t=this.controller())?t.view.visible():void 0)},hide:function(){var t;return null!=(t=this.controller())?t.view.hide():void 0},reposition:function(){var t;return(t=this.controller())?t.view.reposition(t.rect()):void 0},setIframe:function(t,e){return this.setupRootElement(t,e),null},run:function(){return this.dispatch()},destroy:function(){return this.shutdown(),this.$inputor.data("atwho",null)}},t.fn.atwho=function(e){var i,r;return i=arguments,r=null,this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function(){var o,s;return(s=(o=t(this)).data("atwho"))||o.data("atwho",s=new n(this)),"object"!=typeof e&&e?p[e]&&s?r=p[e].apply(s,Array.prototype.slice.call(i,1)):t.error("Method "+e+" does not exist on jQuery.atwho"):s.reg(e.at,e)}),null!=r?r:this},t.fn.atwho["default"]={at:void 0,alias:void 0,data:null,displayTpl:"<li>${name}</li>",insertTpl:"${atwho-at}${name}",headerTpl:null,callbacks:e,searchKey:"name",suffix:void 0,hideWithoutSuffix:!1,startWithSpace:!0,acceptSpaceBar:!1,highlightFirst:!0,limit:5,maxLen:20,minLen:0,displayTimeout:300,delay:null,spaceSelectsMatch:!1,tabSelectsMatch:!0,editableAtwhoQueryAttrs:{},scrollDuration:150,suspendOnComposing:!0,lookUpOnClick:!0},t.fn.atwho.debug=!1});
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho.css b/pagure/static/vendor/jquery.atwho/jquery.atwho.css
new file mode 120000
index 0000000..7cdb23b
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho.css
@@ -0,0 +1 @@
+jquery.atwho-1.5.1.css
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho.js b/pagure/static/vendor/jquery.atwho/jquery.atwho.js
new file mode 120000
index 0000000..71094fd
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho.js
@@ -0,0 +1 @@
+jquery.atwho-1.5.1.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho.min.css b/pagure/static/vendor/jquery.atwho/jquery.atwho.min.css
new file mode 120000
index 0000000..9f0145a
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho.min.css
@@ -0,0 +1 @@
+jquery.atwho-1.5.1.min.css
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.atwho/jquery.atwho.min.js b/pagure/static/vendor/jquery.atwho/jquery.atwho.min.js
new file mode 120000
index 0000000..e1879fd
--- /dev/null
+++ b/pagure/static/vendor/jquery.atwho/jquery.atwho.min.js
@@ -0,0 +1 @@
+jquery.atwho-1.5.1.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.caret/jquery.caret-0.3.1.js b/pagure/static/vendor/jquery.caret/jquery.caret-0.3.1.js
new file mode 100644
index 0000000..811ec63
--- /dev/null
+++ b/pagure/static/vendor/jquery.caret/jquery.caret-0.3.1.js
@@ -0,0 +1,436 @@
+(function (root, factory) {
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module.
+    define(["jquery"], function ($) {
+      return (root.returnExportsGlobal = factory($));
+    });
+  } else if (typeof exports === 'object') {
+    // Node. Does not work with strict CommonJS, but
+    // only CommonJS-like enviroments that support module.exports,
+    // like Node.
+    module.exports = factory(require("jquery"));
+  } else {
+    factory(jQuery);
+  }
+}(this, function ($) {
+
+/*
+  Implement Github like autocomplete mentions
+  http://ichord.github.com/At.js
+
+  Copyright (c) 2013 chord.luo@gmail.com
+  Licensed under the MIT license.
+*/
+
+/*
+本插件操作 textarea 或者 input 内的插入符
+只实现了获得插入符在文本框中的位置，我设置
+插入符的位置.
+*/
+
+"use strict";
+var EditableCaret, InputCaret, Mirror, Utils, discoveryIframeOf, methods, oDocument, oFrame, oWindow, pluginName, setContextBy;
+
+pluginName = 'caret';
+
+EditableCaret = (function() {
+  function EditableCaret($inputor) {
+    this.$inputor = $inputor;
+    this.domInputor = this.$inputor[0];
+  }
+
+  EditableCaret.prototype.setPos = function(pos) {
+    var fn, found, offset, sel;
+    if (sel = oWindow.getSelection()) {
+      offset = 0;
+      found = false;
+      (fn = function(pos, parent) {
+        var node, range, _i, _len, _ref, _results;
+        _ref = parent.childNodes;
+        _results = [];
+        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+          node = _ref[_i];
+          if (found) {
+            break;
+          }
+          if (node.nodeType === 3) {
+            if (offset + node.length >= pos) {
+              found = true;
+              range = oDocument.createRange();
+              range.setStart(node, pos - offset);
+              sel.removeAllRanges();
+              sel.addRange(range);
+              break;
+            } else {
+              _results.push(offset += node.length);
+            }
+          } else {
+            _results.push(fn(pos, node));
+          }
+        }
+        return _results;
+      })(pos, this.domInputor);
+    }
+    return this.domInputor;
+  };
+
+  EditableCaret.prototype.getIEPosition = function() {
+    return this.getPosition();
+  };
+
+  EditableCaret.prototype.getPosition = function() {
+    var inputor_offset, offset;
+    offset = this.getOffset();
+    inputor_offset = this.$inputor.offset();
+    offset.left -= inputor_offset.left;
+    offset.top -= inputor_offset.top;
+    return offset;
+  };
+
+  EditableCaret.prototype.getOldIEPos = function() {
+    var preCaretTextRange, textRange;
+    textRange = oDocument.selection.createRange();
+    preCaretTextRange = oDocument.body.createTextRange();
+    preCaretTextRange.moveToElementText(this.domInputor);
+    preCaretTextRange.setEndPoint("EndToEnd", textRange);
+    return preCaretTextRange.text.length;
+  };
+
+  EditableCaret.prototype.getPos = function() {
+    var clonedRange, pos, range;
+    if (range = this.range()) {
+      clonedRange = range.cloneRange();
+      clonedRange.selectNodeContents(this.domInputor);
+      clonedRange.setEnd(range.endContainer, range.endOffset);
+      pos = clonedRange.toString().length;
+      clonedRange.detach();
+      return pos;
+    } else if (oDocument.selection) {
+      return this.getOldIEPos();
+    }
+  };
+
+  EditableCaret.prototype.getOldIEOffset = function() {
+    var range, rect;
+    range = oDocument.selection.createRange().duplicate();
+    range.moveStart("character", -1);
+    rect = range.getBoundingClientRect();
+    return {
+      height: rect.bottom - rect.top,
+      left: rect.left,
+      top: rect.top
+    };
+  };
+
+  EditableCaret.prototype.getOffset = function(pos) {
+    var clonedRange, offset, range, rect, shadowCaret;
+    if (oWindow.getSelection && (range = this.range())) {
+      if (range.endOffset - 1 > 0 && range.endContainer !== this.domInputor) {
+        clonedRange = range.cloneRange();
+        clonedRange.setStart(range.endContainer, range.endOffset - 1);
+        clonedRange.setEnd(range.endContainer, range.endOffset);
+        rect = clonedRange.getBoundingClientRect();
+        offset = {
+          height: rect.height,
+          left: rect.left + rect.width,
+          top: rect.top
+        };
+        clonedRange.detach();
+      }
+      if (!offset || (offset != null ? offset.height : void 0) === 0) {
+        clonedRange = range.cloneRange();
+        shadowCaret = $(oDocument.createTextNode("|"));
+        clonedRange.insertNode(shadowCaret[0]);
+        clonedRange.selectNode(shadowCaret[0]);
+        rect = clonedRange.getBoundingClientRect();
+        offset = {
+          height: rect.height,
+          left: rect.left,
+          top: rect.top
+        };
+        shadowCaret.remove();
+        clonedRange.detach();
+      }
+    } else if (oDocument.selection) {
+      offset = this.getOldIEOffset();
+    }
+    if (offset) {
+      offset.top += $(oWindow).scrollTop();
+      offset.left += $(oWindow).scrollLeft();
+    }
+    return offset;
+  };
+
+  EditableCaret.prototype.range = function() {
+    var sel;
+    if (!oWindow.getSelection) {
+      return;
+    }
+    sel = oWindow.getSelection();
+    if (sel.rangeCount > 0) {
+      return sel.getRangeAt(0);
+    } else {
+      return null;
+    }
+  };
+
+  return EditableCaret;
+
+})();
+
+InputCaret = (function() {
+  function InputCaret($inputor) {
+    this.$inputor = $inputor;
+    this.domInputor = this.$inputor[0];
+  }
+
+  InputCaret.prototype.getIEPos = function() {
+    var endRange, inputor, len, normalizedValue, pos, range, textInputRange;
+    inputor = this.domInputor;
+    range = oDocument.selection.createRange();
+    pos = 0;
+    if (range && range.parentElement() === inputor) {
+      normalizedValue = inputor.value.replace(/\r\n/g, "\n");
+      len = normalizedValue.length;
+      textInputRange = inputor.createTextRange();
+      textInputRange.moveToBookmark(range.getBookmark());
+      endRange = inputor.createTextRange();
+      endRange.collapse(false);
+      if (textInputRange.compareEndPoints("StartToEnd", endRange) > -1) {
+        pos = len;
+      } else {
+        pos = -textInputRange.moveStart("character", -len);
+      }
+    }
+    return pos;
+  };
+
+  InputCaret.prototype.getPos = function() {
+    if (oDocument.selection) {
+      return this.getIEPos();
+    } else {
+      return this.domInputor.selectionStart;
+    }
+  };
+
+  InputCaret.prototype.setPos = function(pos) {
+    var inputor, range;
+    inputor = this.domInputor;
+    if (oDocument.selection) {
+      range = inputor.createTextRange();
+      range.move("character", pos);
+      range.select();
+    } else if (inputor.setSelectionRange) {
+      inputor.setSelectionRange(pos, pos);
+    }
+    return inputor;
+  };
+
+  InputCaret.prototype.getIEOffset = function(pos) {
+    var h, textRange, x, y;
+    textRange = this.domInputor.createTextRange();
+    pos || (pos = this.getPos());
+    textRange.move('character', pos);
+    x = textRange.boundingLeft;
+    y = textRange.boundingTop;
+    h = textRange.boundingHeight;
+    return {
+      left: x,
+      top: y,
+      height: h
+    };
+  };
+
+  InputCaret.prototype.getOffset = function(pos) {
+    var $inputor, offset, position;
+    $inputor = this.$inputor;
+    if (oDocument.selection) {
+      offset = this.getIEOffset(pos);
+      offset.top += $(oWindow).scrollTop() + $inputor.scrollTop();
+      offset.left += $(oWindow).scrollLeft() + $inputor.scrollLeft();
+      return offset;
+    } else {
+      offset = $inputor.offset();
+      position = this.getPosition(pos);
+      return offset = {
+        left: offset.left + position.left - $inputor.scrollLeft(),
+        top: offset.top + position.top - $inputor.scrollTop(),
+        height: position.height
+      };
+    }
+  };
+
+  InputCaret.prototype.getPosition = function(pos) {
+    var $inputor, at_rect, end_range, format, html, mirror, start_range;
+    $inputor = this.$inputor;
+    format = function(value) {
+      value = value.replace(/<|>|`|"|&/g, '?').replace(/\r\n|\r|\n/g, "<br/>");
+      if (/firefox/i.test(navigator.userAgent)) {
+        value = value.replace(/\s/g, '&nbsp;');
+      }
+      return value;
+    };
+    if (pos === void 0) {
+      pos = this.getPos();
+    }
+    start_range = $inputor.val().slice(0, pos);
+    end_range = $inputor.val().slice(pos);
+    html = "<span style='position: relative; display: inline;'>" + format(start_range) + "</span>";
+    html += "<span id='caret' style='position: relative; display: inline;'>|</span>";
+    html += "<span style='position: relative; display: inline;'>" + format(end_range) + "</span>";
+    mirror = new Mirror($inputor);
+    return at_rect = mirror.create(html).rect();
+  };
+
+  InputCaret.prototype.getIEPosition = function(pos) {
+    var h, inputorOffset, offset, x, y;
+    offset = this.getIEOffset(pos);
+    inputorOffset = this.$inputor.offset();
+    x = offset.left - inputorOffset.left;
+    y = offset.top - inputorOffset.top;
+    h = offset.height;
+    return {
+      left: x,
+      top: y,
+      height: h
+    };
+  };
+
+  return InputCaret;
+
+})();
+
+Mirror = (function() {
+  Mirror.prototype.css_attr = ["borderBottomWidth", "borderLeftWidth", "borderRightWidth", "borderTopStyle", "borderRightStyle", "borderBottomStyle", "borderLeftStyle", "borderTopWidth", "boxSizing", "fontFamily", "fontSize", "fontWeight", "height", "letterSpacing", "lineHeight", "marginBottom", "marginLeft", "marginRight", "marginTop", "outlineWidth", "overflow", "overflowX", "overflowY", "paddingBottom", "paddingLeft", "paddingRight", "paddingTop", "textAlign", "textOverflow", "textTransform", "whiteSpace", "wordBreak", "wordWrap"];
+
+  function Mirror($inputor) {
+    this.$inputor = $inputor;
+  }
+
+  Mirror.prototype.mirrorCss = function() {
+    var css,
+      _this = this;
+    css = {
+      position: 'absolute',
+      left: -9999,
+      top: 0,
+      zIndex: -20000
+    };
+    if (this.$inputor.prop('tagName') === 'TEXTAREA') {
+      this.css_attr.push('width');
+    }
+    $.each(this.css_attr, function(i, p) {
+      return css[p] = _this.$inputor.css(p);
+    });
+    return css;
+  };
+
+  Mirror.prototype.create = function(html) {
+    this.$mirror = $('<div></div>');
+    this.$mirror.css(this.mirrorCss());
+    this.$mirror.html(html);
+    this.$inputor.after(this.$mirror);
+    return this;
+  };
+
+  Mirror.prototype.rect = function() {
+    var $flag, pos, rect;
+    $flag = this.$mirror.find("#caret");
+    pos = $flag.position();
+    rect = {
+      left: pos.left,
+      top: pos.top,
+      height: $flag.height()
+    };
+    this.$mirror.remove();
+    return rect;
+  };
+
+  return Mirror;
+
+})();
+
+Utils = {
+  contentEditable: function($inputor) {
+    return !!($inputor[0].contentEditable && $inputor[0].contentEditable === 'true');
+  }
+};
+
+methods = {
+  pos: function(pos) {
+    if (pos || pos === 0) {
+      return this.setPos(pos);
+    } else {
+      return this.getPos();
+    }
+  },
+  position: function(pos) {
+    if (oDocument.selection) {
+      return this.getIEPosition(pos);
+    } else {
+      return this.getPosition(pos);
+    }
+  },
+  offset: function(pos) {
+    var offset;
+    offset = this.getOffset(pos);
+    return offset;
+  }
+};
+
+oDocument = null;
+
+oWindow = null;
+
+oFrame = null;
+
+setContextBy = function(settings) {
+  var iframe;
+  if (iframe = settings != null ? settings.iframe : void 0) {
+    oFrame = iframe;
+    oWindow = iframe.contentWindow;
+    return oDocument = iframe.contentDocument || oWindow.document;
+  } else {
+    oFrame = void 0;
+    oWindow = window;
+    return oDocument = document;
+  }
+};
+
+discoveryIframeOf = function($dom) {
+  var error;
+  oDocument = $dom[0].ownerDocument;
+  oWindow = oDocument.defaultView || oDocument.parentWindow;
+  try {
+    return oFrame = oWindow.frameElement;
+  } catch (_error) {
+    error = _error;
+  }
+};
+
+$.fn.caret = function(method, value, settings) {
+  var caret;
+  if (methods[method]) {
+    if ($.isPlainObject(value)) {
+      setContextBy(value);
+      value = void 0;
+    } else {
+      setContextBy(settings);
+    }
+    caret = Utils.contentEditable(this) ? new EditableCaret(this) : new InputCaret(this);
+    return methods[method].apply(caret, [value]);
+  } else {
+    return $.error("Method " + method + " does not exist on jQuery.caret");
+  }
+};
+
+$.fn.caret.EditableCaret = EditableCaret;
+
+$.fn.caret.InputCaret = InputCaret;
+
+$.fn.caret.Utils = Utils;
+
+$.fn.caret.apis = methods;
+
+
+}));
diff --git a/pagure/static/vendor/jquery.caret/jquery.caret-0.3.1.min.js b/pagure/static/vendor/jquery.caret/jquery.caret-0.3.1.min.js
new file mode 100644
index 0000000..a25584e
--- /dev/null
+++ b/pagure/static/vendor/jquery.caret/jquery.caret-0.3.1.min.js
@@ -0,0 +1,2 @@
+/*! jquery.caret 2016-02-27 */
+!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return a.returnExportsGlobal=b(c)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){"use strict";var b,c,d,e,f,g,h,i,j,k,l;k="caret",b=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.setPos=function(a){var b,c,d,e;return(e=j.getSelection())&&(d=0,c=!1,(b=function(a,f){var g,i,j,k,l,m;for(l=f.childNodes,m=[],j=0,k=l.length;k>j&&(g=l[j],!c);j++)if(3===g.nodeType){if(d+g.length>=a){c=!0,i=h.createRange(),i.setStart(g,a-d),e.removeAllRanges(),e.addRange(i);break}m.push(d+=g.length)}else m.push(b(a,g));return m})(a,this.domInputor)),this.domInputor},b.prototype.getIEPosition=function(){return this.getPosition()},b.prototype.getPosition=function(){var a,b;return b=this.getOffset(),a=this.$inputor.offset(),b.left-=a.left,b.top-=a.top,b},b.prototype.getOldIEPos=function(){var a,b;return b=h.selection.createRange(),a=h.body.createTextRange(),a.moveToElementText(this.domInputor),a.setEndPoint("EndToEnd",b),a.text.length},b.prototype.getPos=function(){var a,b,c;return(c=this.range())?(a=c.cloneRange(),a.selectNodeContents(this.domInputor),a.setEnd(c.endContainer,c.endOffset),b=a.toString().length,a.detach(),b):h.selection?this.getOldIEPos():void 0},b.prototype.getOldIEOffset=function(){var a,b;return a=h.selection.createRange().duplicate(),a.moveStart("character",-1),b=a.getBoundingClientRect(),{height:b.bottom-b.top,left:b.left,top:b.top}},b.prototype.getOffset=function(){var b,c,d,e,f;return j.getSelection&&(d=this.range())?(d.endOffset-1>0&&d.endContainer!==this.domInputor&&(b=d.cloneRange(),b.setStart(d.endContainer,d.endOffset-1),b.setEnd(d.endContainer,d.endOffset),e=b.getBoundingClientRect(),c={height:e.height,left:e.left+e.width,top:e.top},b.detach()),c&&0!==(null!=c?c.height:void 0)||(b=d.cloneRange(),f=a(h.createTextNode("|")),b.insertNode(f[0]),b.selectNode(f[0]),e=b.getBoundingClientRect(),c={height:e.height,left:e.left,top:e.top},f.remove(),b.detach())):h.selection&&(c=this.getOldIEOffset()),c&&(c.top+=a(j).scrollTop(),c.left+=a(j).scrollLeft()),c},b.prototype.range=function(){var a;if(j.getSelection)return a=j.getSelection(),a.rangeCount>0?a.getRangeAt(0):null},b}(),c=function(){function b(a){this.$inputor=a,this.domInputor=this.$inputor[0]}return b.prototype.getIEPos=function(){var a,b,c,d,e,f,g;return b=this.domInputor,f=h.selection.createRange(),e=0,f&&f.parentElement()===b&&(d=b.value.replace(/\r\n/g,"\n"),c=d.length,g=b.createTextRange(),g.moveToBookmark(f.getBookmark()),a=b.createTextRange(),a.collapse(!1),e=g.compareEndPoints("StartToEnd",a)>-1?c:-g.moveStart("character",-c)),e},b.prototype.getPos=function(){return h.selection?this.getIEPos():this.domInputor.selectionStart},b.prototype.setPos=function(a){var b,c;return b=this.domInputor,h.selection?(c=b.createTextRange(),c.move("character",a),c.select()):b.setSelectionRange&&b.setSelectionRange(a,a),b},b.prototype.getIEOffset=function(a){var b,c,d,e;return c=this.domInputor.createTextRange(),a||(a=this.getPos()),c.move("character",a),d=c.boundingLeft,e=c.boundingTop,b=c.boundingHeight,{left:d,top:e,height:b}},b.prototype.getOffset=function(b){var c,d,e;return c=this.$inputor,h.selection?(d=this.getIEOffset(b),d.top+=a(j).scrollTop()+c.scrollTop(),d.left+=a(j).scrollLeft()+c.scrollLeft(),d):(d=c.offset(),e=this.getPosition(b),d={left:d.left+e.left-c.scrollLeft(),top:d.top+e.top-c.scrollTop(),height:e.height})},b.prototype.getPosition=function(a){var b,c,e,f,g,h,i;return b=this.$inputor,f=function(a){return a=a.replace(/<|>|`|"|&/g,"?").replace(/\r\n|\r|\n/g,"<br/>"),/firefox/i.test(navigator.userAgent)&&(a=a.replace(/\s/g,"&nbsp;")),a},void 0===a&&(a=this.getPos()),i=b.val().slice(0,a),e=b.val().slice(a),g="<span style='position: relative; display: inline;'>"+f(i)+"</span>",g+="<span id='caret' style='position: relative; display: inline;'>|</span>",g+="<span style='position: relative; display: inline;'>"+f(e)+"</span>",h=new d(b),c=h.create(g).rect()},b.prototype.getIEPosition=function(a){var b,c,d,e,f;return d=this.getIEOffset(a),c=this.$inputor.offset(),e=d.left-c.left,f=d.top-c.top,b=d.height,{left:e,top:f,height:b}},b}(),d=function(){function b(a){this.$inputor=a}return b.prototype.css_attr=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderTopWidth","boxSizing","fontFamily","fontSize","fontWeight","height","letterSpacing","lineHeight","marginBottom","marginLeft","marginRight","marginTop","outlineWidth","overflow","overflowX","overflowY","paddingBottom","paddingLeft","paddingRight","paddingTop","textAlign","textOverflow","textTransform","whiteSpace","wordBreak","wordWrap"],b.prototype.mirrorCss=function(){var b,c=this;return b={position:"absolute",left:-9999,top:0,zIndex:-2e4},"TEXTAREA"===this.$inputor.prop("tagName")&&this.css_attr.push("width"),a.each(this.css_attr,function(a,d){return b[d]=c.$inputor.css(d)}),b},b.prototype.create=function(b){return this.$mirror=a("<div></div>"),this.$mirror.css(this.mirrorCss()),this.$mirror.html(b),this.$inputor.after(this.$mirror),this},b.prototype.rect=function(){var a,b,c;return a=this.$mirror.find("#caret"),b=a.position(),c={left:b.left,top:b.top,height:a.height()},this.$mirror.remove(),c},b}(),e={contentEditable:function(a){return!(!a[0].contentEditable||"true"!==a[0].contentEditable)}},g={pos:function(a){return a||0===a?this.setPos(a):this.getPos()},position:function(a){return h.selection?this.getIEPosition(a):this.getPosition(a)},offset:function(a){var b;return b=this.getOffset(a)}},h=null,j=null,i=null,l=function(a){var b;return(b=null!=a?a.iframe:void 0)?(i=b,j=b.contentWindow,h=b.contentDocument||j.document):(i=void 0,j=window,h=document)},f=function(a){var b;h=a[0].ownerDocument,j=h.defaultView||h.parentWindow;try{return i=j.frameElement}catch(c){b=c}},a.fn.caret=function(d,f,h){var i;return g[d]?(a.isPlainObject(f)?(l(f),f=void 0):l(h),i=e.contentEditable(this)?new b(this):new c(this),g[d].apply(i,[f])):a.error("Method "+d+" does not exist on jQuery.caret")},a.fn.caret.EditableCaret=b,a.fn.caret.InputCaret=c,a.fn.caret.Utils=e,a.fn.caret.apis=g});
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.caret/jquery.caret.js b/pagure/static/vendor/jquery.caret/jquery.caret.js
new file mode 120000
index 0000000..e0b716b
--- /dev/null
+++ b/pagure/static/vendor/jquery.caret/jquery.caret.js
@@ -0,0 +1 @@
+jquery.caret-0.3.1.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.caret/jquery.caret.min.js b/pagure/static/vendor/jquery.caret/jquery.caret.min.js
new file mode 120000
index 0000000..0cfd9eb
--- /dev/null
+++ b/pagure/static/vendor/jquery.caret/jquery.caret.min.js
@@ -0,0 +1 @@
+jquery.caret-0.3.1.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot-1.8.3.js b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot-1.8.3.js
new file mode 100644
index 0000000..972282a
--- /dev/null
+++ b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot-1.8.3.js
@@ -0,0 +1,759 @@
+/*
+ *	jQuery dotdotdot 1.8.3
+ *
+ *	Copyright (c) Fred Heusschen
+ *	www.frebsite.nl
+ *
+ *	Plugin website:
+ *	dotdotdot.frebsite.nl
+ *
+ *	Licensed under the MIT license.
+ *	http://en.wikipedia.org/wiki/MIT_License
+ */
+
+(function( $, undef )
+{
+	if ( $.fn.dotdotdot )
+	{
+		return;
+	}
+
+	$.fn.dotdotdot = function( o )
+	{
+		if ( this.length == 0 )
+		{
+			$.fn.dotdotdot.debug( 'No element found for "' + this.selector + '".' );
+			return this;
+		}
+		if ( this.length > 1 )
+		{
+			return this.each(
+				function()
+				{
+					$(this).dotdotdot( o );
+				}
+			);
+		}
+
+
+		var $dot = this;
+		var orgContent	= $dot.contents();
+
+		if ( $dot.data( 'dotdotdot' ) )
+		{
+			$dot.trigger( 'destroy.dot' );
+		}
+
+		$dot.data( 'dotdotdot-style', $dot.attr( 'style' ) || '' );
+		$dot.css( 'word-wrap', 'break-word' );
+		if ($dot.css( 'white-space' ) === 'nowrap')
+		{
+			$dot.css( 'white-space', 'normal' );
+		}
+
+		$dot.bind_events = function()
+		{
+			$dot.bind(
+				'update.dot',
+				function( e, c )
+				{
+					$dot.removeClass("is-truncated");
+					e.preventDefault();
+					e.stopPropagation();
+
+					switch( typeof opts.height )
+					{
+						case 'number':
+							opts.maxHeight = opts.height;
+							break;
+
+						case 'function':
+							opts.maxHeight = opts.height.call( $dot[ 0 ] );
+							break;
+
+						default:
+							opts.maxHeight = getTrueInnerHeight( $dot );
+							break;
+					}
+
+					opts.maxHeight += opts.tolerance;
+
+					if ( typeof c != 'undefined' )
+					{
+						if ( typeof c == 'string' || ('nodeType' in c && c.nodeType === 1) )
+						{
+					 		c = $('<div />').append( c ).contents();
+						}
+						if ( c instanceof $ )
+						{
+							orgContent = c;
+						}
+					}
+
+					$inr = $dot.wrapInner( '<div class="dotdotdot" />' ).children();
+					$inr.contents()
+						.detach()
+						.end()
+						.append( orgContent.clone( true ) )
+						.find( 'br' )
+						.replaceWith( '  <br />  ' )
+						.end()
+						.css({
+							'height'	: 'auto',
+							'width'		: 'auto',
+							'border'	: 'none',
+							'padding'	: 0,
+							'margin'	: 0
+						});
+
+					var after = false,
+						trunc = false;
+
+					if ( conf.afterElement )
+					{
+						after = conf.afterElement.clone( true );
+					    after.show();
+						conf.afterElement.detach();
+					}
+
+					if ( test( $inr, opts ) )
+					{
+						if ( opts.wrap == 'children' )
+						{
+							trunc = children( $inr, opts, after );
+						}
+						else
+						{
+							trunc = ellipsis( $inr, $dot, $inr, opts, after );
+						}
+					}
+					$inr.replaceWith( $inr.contents() );
+					$inr = null;
+
+					if ( $.isFunction( opts.callback ) )
+					{
+						opts.callback.call( $dot[ 0 ], trunc, orgContent );
+					}
+
+					conf.isTruncated = trunc;
+					return trunc;
+				}
+
+			).bind(
+				'isTruncated.dot',
+				function( e, fn )
+				{
+					e.preventDefault();
+					e.stopPropagation();
+
+					if ( typeof fn == 'function' )
+					{
+						fn.call( $dot[ 0 ], conf.isTruncated );
+					}
+					return conf.isTruncated;
+				}
+
+			).bind(
+				'originalContent.dot',
+				function( e, fn )
+				{
+					e.preventDefault();
+					e.stopPropagation();
+
+					if ( typeof fn == 'function' )
+					{
+						fn.call( $dot[ 0 ], orgContent );
+					}
+					return orgContent;
+				}
+
+			).bind(
+				'destroy.dot',
+				function( e )
+				{
+					e.preventDefault();
+					e.stopPropagation();
+
+					$dot.unwatch()
+						.unbind_events()
+						.contents()
+						.detach()
+						.end()
+						.append( orgContent )
+						.attr( 'style', $dot.data( 'dotdotdot-style' ) || '' )
+						.removeClass( 'is-truncated' )
+						.data( 'dotdotdot', false );
+				}
+			);
+			return $dot;
+		};	//	/bind_events
+
+		$dot.unbind_events = function()
+		{
+			$dot.unbind('.dot');
+			return $dot;
+		};	//	/unbind_events
+
+		$dot.watch = function()
+		{
+			$dot.unwatch();
+			if ( opts.watch == 'window' )
+			{
+				var $window = $(window),
+					_wWidth = $window.width(),
+					_wHeight = $window.height();
+
+				$window.bind(
+					'resize.dot' + conf.dotId,
+					function()
+					{
+						if ( _wWidth != $window.width() || _wHeight != $window.height() || !opts.windowResizeFix )
+						{
+							_wWidth = $window.width();
+							_wHeight = $window.height();
+
+							if ( watchInt )
+							{
+								clearInterval( watchInt );
+							}
+							watchInt = setTimeout(
+								function()
+								{
+									$dot.trigger( 'update.dot' );
+								}, 100
+							);
+						}
+					}
+				);
+			}
+			else
+			{
+				watchOrg = getSizes( $dot );
+				watchInt = setInterval(
+					function()
+					{
+						if ( $dot.is( ':visible' ) )
+						{
+							var watchNew = getSizes( $dot );
+							if ( watchOrg.width  != watchNew.width ||
+								 watchOrg.height != watchNew.height )
+							{
+								$dot.trigger( 'update.dot' );
+								watchOrg = watchNew;
+							}
+						}
+					}, 500
+				);
+			}
+			return $dot;
+		};
+		$dot.unwatch = function()
+		{
+			$(window).unbind( 'resize.dot' + conf.dotId );
+			if ( watchInt )
+			{
+				clearInterval( watchInt );
+			}
+			return $dot;
+		};
+
+		var	opts 		= $.extend( true, {}, $.fn.dotdotdot.defaults, o ),
+			conf		= {},
+			watchOrg	= {},
+			watchInt	= null,
+			$inr		= null;
+
+
+		if ( !( opts.lastCharacter.remove instanceof Array ) )
+		{
+			opts.lastCharacter.remove = $.fn.dotdotdot.defaultArrays.lastCharacter.remove;
+		}
+		if ( !( opts.lastCharacter.noEllipsis instanceof Array ) )
+		{
+			opts.lastCharacter.noEllipsis = $.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis;
+		}
+
+
+		conf.afterElement	= getElement( opts.after, $dot );
+		conf.isTruncated	= false;
+		conf.dotId			= dotId++;
+
+
+		$dot.data( 'dotdotdot', true )
+			.bind_events()
+			.trigger( 'update.dot' );
+
+		if ( opts.watch )
+		{
+			$dot.watch();
+		}
+
+		return $dot;
+	};
+
+
+	//	public
+	$.fn.dotdotdot.defaults = {
+		'ellipsis'			: '... ',
+		'wrap'				: 'word',
+		'fallbackToLetter'	: true,
+		'lastCharacter'		: {},
+		'tolerance'			: 0,
+		'callback'			: null,
+		'after'				: null,
+		'height'			: null,
+		'watch'				: false,
+		'windowResizeFix'	: true
+	};
+	$.fn.dotdotdot.defaultArrays = {
+		'lastCharacter'		: {
+			'remove'			: [ ' ', '\u3000', ',', ';', '.', '!', '?' ],
+			'noEllipsis'		: []
+		}
+	};
+	$.fn.dotdotdot.debug = function( msg ) {};
+
+
+	//	private
+	var dotId = 1;
+
+	function children( $elem, o, after )
+	{
+		var $elements 	= $elem.children(),
+			isTruncated	= false;
+
+		$elem.empty();
+
+		for ( var a = 0, l = $elements.length; a < l; a++ )
+		{
+			var $e = $elements.eq( a );
+			$elem.append( $e );
+			if ( after )
+			{
+				$elem.append( after );
+			}
+			if ( test( $elem, o ) )
+			{
+				$e.remove();
+				isTruncated = true;
+				break;
+			}
+			else
+			{
+				if ( after )
+				{
+					after.detach();
+				}
+			}
+		}
+		return isTruncated;
+	}
+	function ellipsis( $elem, $d, $i, o, after )
+	{
+		var isTruncated	= false;
+
+		//	Don't put the ellipsis directly inside these elements
+		var notx = 'a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style';
+
+		//	Don't remove these elements even if they are after the ellipsis
+		var noty = 'script, .dotdotdot-keep';
+
+		$elem
+			.contents()
+			.detach()
+			.each(
+				function()
+				{
+
+					var e	= this,
+						$e	= $(e);
+
+					if ( typeof e == 'undefined' )
+					{
+						return true;
+					}
+					else if ( $e.is( noty ) )
+					{
+						$elem.append( $e );
+					}
+					else if ( isTruncated )
+					{
+						return true;
+					}
+					else
+					{
+						$elem.append( $e );
+						if ( after && !$e.is( o.after ) && !$e.find( o.after ).length  )
+						{
+							$elem[ $elem.is( notx ) ? 'after' : 'append' ]( after );
+						}
+						if ( test( $i, o ) )
+						{
+							if ( e.nodeType == 3 ) // node is TEXT
+							{
+								isTruncated = ellipsisElement( $e, $d, $i, o, after );
+							}
+							else
+							{
+								isTruncated = ellipsis( $e, $d, $i, o, after );
+							}
+						}
+
+						if ( !isTruncated )
+						{
+							if ( after )
+							{
+								after.detach();
+							}
+						}
+					}
+				}
+			);
+		$d.addClass("is-truncated");
+		return isTruncated;
+	}
+	function ellipsisElement( $e, $d, $i, o, after )
+	{
+		var e = $e[ 0 ];
+
+		if ( !e )
+		{
+			return false;
+		}
+
+		var txt			= getTextContent( e ),
+			space		= ( txt.indexOf(' ') !== -1 ) ? ' ' : '\u3000',
+			separator	= ( o.wrap == 'letter' ) ? '' : space,
+			textArr		= txt.split( separator ),
+			position 	= -1,
+			midPos		= -1,
+			startPos	= 0,
+			endPos		= textArr.length - 1;
+
+
+		//	Only one word
+		if ( o.fallbackToLetter && startPos == 0 && endPos == 0 )
+		{
+			separator	= '';
+			textArr		= txt.split( separator );
+			endPos		= textArr.length - 1;
+		}
+
+		while ( startPos <= endPos && !( startPos == 0 && endPos == 0 ) )
+		{
+			var m = Math.floor( ( startPos + endPos ) / 2 );
+			if ( m == midPos )
+			{
+				break;
+			}
+			midPos = m;
+
+			setTextContent( e, textArr.slice( 0, midPos + 1 ).join( separator ) + o.ellipsis );
+			$i.children()
+				.each(
+					function()
+					{
+						$(this).toggle().toggle();
+					}
+				);
+
+			if ( !test( $i, o ) )
+			{
+				position = midPos;
+				startPos = midPos;
+			}
+			else
+			{
+				endPos = midPos;
+
+				//	Fallback to letter
+				if (o.fallbackToLetter && startPos == 0 && endPos == 0 )
+				{
+					separator	= '';
+					textArr		= textArr[ 0 ].split( separator );
+					position	= -1;
+					midPos		= -1;
+					startPos	= 0;
+					endPos		= textArr.length - 1;
+				}
+			}
+		}
+
+		if ( position != -1 && !( textArr.length == 1 && textArr[ 0 ].length == 0 ) )
+		{
+			txt = addEllipsis( textArr.slice( 0, position + 1 ).join( separator ), o );
+			setTextContent( e, txt );
+		}
+		else
+		{
+			var $w = $e.parent();
+			$e.detach();
+
+			var afterLength = ( after && after.closest($w).length ) ? after.length : 0;
+
+			if ( $w.contents().length > afterLength )
+			{
+				e = findLastTextNode( $w.contents().eq( -1 - afterLength ), $d );
+			}
+			else
+			{
+				e = findLastTextNode( $w, $d, true );
+				if ( !afterLength )
+				{
+					$w.detach();
+				}
+			}
+			if ( e )
+			{
+				txt = addEllipsis( getTextContent( e ), o );
+				setTextContent( e, txt );
+				if ( afterLength && after )
+				{
+					var $parent = after.parent();
+
+					$(e).parent().append( after );
+
+					if ( !$.trim( $parent.html() ) )
+					{
+						$parent.remove();
+					}
+				}
+			}
+		}
+
+		return true;
+	}
+	function test( $i, o )
+	{
+		return $i.innerHeight() > o.maxHeight;
+	}
+	function addEllipsis( txt, o )
+	{
+		while( $.inArray( txt.slice( -1 ), o.lastCharacter.remove ) > -1 )
+		{
+			txt = txt.slice( 0, -1 );
+		}
+		if ( $.inArray( txt.slice( -1 ), o.lastCharacter.noEllipsis ) < 0 )
+		{
+			txt += o.ellipsis;
+		}
+		return txt;
+	}
+	function getSizes( $d )
+	{
+		return {
+			'width'	: $d.innerWidth(),
+			'height': $d.innerHeight()
+		};
+	}
+	function setTextContent( e, content )
+	{
+		if ( e.innerText )
+		{
+			e.innerText = content;
+		}
+		else if ( e.nodeValue )
+		{
+			e.nodeValue = content;
+		}
+		else if (e.textContent)
+		{
+			e.textContent = content;
+		}
+
+	}
+	function getTextContent( e )
+	{
+		if ( e.innerText )
+		{
+			return e.innerText;
+		}
+		else if ( e.nodeValue )
+		{
+			return e.nodeValue;
+		}
+		else if ( e.textContent )
+		{
+			return e.textContent;
+		}
+		else
+		{
+			return "";
+		}
+	}
+	function getPrevNode( n )
+	{
+		do
+		{
+			n = n.previousSibling;
+		}
+		while ( n && n.nodeType !== 1 && n.nodeType !== 3 );
+
+		return n;
+	}
+	function findLastTextNode( $el, $top, excludeCurrent )
+	{
+		var e = $el && $el[ 0 ], p;
+		if ( e )
+		{
+			if ( !excludeCurrent )
+			{
+				if ( e.nodeType === 3 )
+				{
+					return e;
+				}
+				if ( $.trim( $el.text() ) )
+				{
+					return findLastTextNode( $el.contents().last(), $top );
+				}
+			}
+			p = getPrevNode( e );
+			while ( !p )
+			{
+				$el = $el.parent();
+				if ( $el.is( $top ) || !$el.length )
+				{
+					return false;
+				}
+				p = getPrevNode( $el[0] );
+			}
+			if ( p )
+			{
+				return findLastTextNode( $(p), $top );
+			}
+		}
+		return false;
+	}
+	function getElement( e, $i )
+	{
+		if ( !e )
+		{
+			return false;
+		}
+		if ( typeof e === 'string' )
+		{
+			e = $(e, $i);
+			return ( e.length )
+				? e
+				: false;
+		}
+		return !e.jquery
+			? false
+			: e;
+	}
+	function getTrueInnerHeight( $el )
+	{
+		var h = $el.innerHeight(),
+			a = [ 'paddingTop', 'paddingBottom' ];
+
+		for ( var z = 0, l = a.length; z < l; z++ )
+		{
+			var m = parseInt( $el.css( a[ z ] ), 10 );
+			if ( isNaN( m ) )
+			{
+				m = 0;
+			}
+			h -= m;
+		}
+		return h;
+	}
+
+
+	//	override jQuery.html
+	var _orgHtml = $.fn.html;
+	$.fn.html = function( str )
+	{
+		if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) )
+		{
+			return this.trigger( 'update', [ str ] );
+		}
+		return _orgHtml.apply( this, arguments );
+	};
+
+
+	//	override jQuery.text
+	var _orgText = $.fn.text;
+	$.fn.text = function( str )
+	{
+		if ( str != undef && !$.isFunction( str ) && this.data( 'dotdotdot' ) )
+		{
+			str = $( '<div />' ).text( str ).html();
+			return this.trigger( 'update', [ str ] );
+		}
+		return _orgText.apply( this, arguments );
+	};
+
+
+})( jQuery );
+
+/*
+
+## Automatic parsing for CSS classes
+Contributed by [Ramil Valitov](https://github.com/rvalitov)
+
+### The idea
+You can add one or several CSS classes to HTML elements to automatically invoke "jQuery.dotdotdot functionality" and some extra features. It allows to use jQuery.dotdotdot only by adding appropriate CSS classes without JS programming.
+
+### Available classes and their description
+* dot-ellipsis - automatically invoke jQuery.dotdotdot to this element. This class must be included if you plan to use other classes below.
+* dot-resize-update - automatically update if window resize event occurs. It's equivalent to option `watch:'window'`.
+* dot-timer-update - automatically update if window resize event occurs. It's equivalent to option `watch:true`.
+* dot-load-update - automatically update after the window has beem completely rendered. Can be useful if your content is generated dynamically using using JS and, hence, jQuery.dotdotdot can't correctly detect the height of the element before it's rendered completely.
+* dot-height-XXX - available height of content area in pixels, where XXX is a number, e.g. can be `dot-height-35` if you want to set maximum height for 35 pixels. It's equivalent to option `height:'XXX'`.
+
+### Usage examples
+*Adding jQuery.dotdotdot to element*
+    
+	<div class="dot-ellipsis">
+	<p>Lorem Ipsum is simply dummy text.</p>
+	</div>
+	
+*Adding jQuery.dotdotdot to element with update on window resize*
+    
+	<div class="dot-ellipsis dot-resize-update">
+	<p>Lorem Ipsum is simply dummy text.</p>
+	</div>
+	
+*Adding jQuery.dotdotdot to element with predefined height of 50px*
+    
+	<div class="dot-ellipsis dot-height-50">
+	<p>Lorem Ipsum is simply dummy text.</p>
+	</div>
+	
+*/
+
+jQuery(document).ready(function($) {
+	//We only invoke jQuery.dotdotdot on elements that have dot-ellipsis class
+	$(".dot-ellipsis").each(function(){
+		//Checking if update on window resize required
+		var watch_window=$(this).hasClass("dot-resize-update");
+		
+		//Checking if update on timer required
+		var watch_timer=$(this).hasClass("dot-timer-update");
+		
+		//Checking if height set
+		var height=0;		
+		var classList = $(this).attr('class').split(/\s+/);
+		$.each(classList, function(index, item) {
+			var matchResult = item.match(/^dot-height-(\d+)$/);
+			if(matchResult !== null)
+				height = Number(matchResult[1]);
+		});
+		
+		//Invoking jQuery.dotdotdot
+		var x = new Object();
+		if (watch_timer)
+			x.watch=true;
+		if (watch_window)
+			x.watch='window';
+		if (height>0)
+			x.height=height;
+		$(this).dotdotdot(x);
+	});
+		
+});
+
+//Updating elements (if any) on window.load event
+jQuery(window).on('load', function(){
+	jQuery(".dot-ellipsis.dot-load-update").trigger("update.dot");
+});
diff --git a/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot-1.8.3.min.js b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot-1.8.3.min.js
new file mode 100644
index 0000000..690d3a4
--- /dev/null
+++ b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot-1.8.3.min.js
@@ -0,0 +1,13 @@
+/*
+ *	jQuery dotdotdot 1.8.3
+ *
+ *	Copyright (c) Fred Heusschen
+ *	www.frebsite.nl
+ *
+ *	Plugin website:
+ *	dotdotdot.frebsite.nl
+ *
+ *	Licensed under the MIT license.
+ *	http://en.wikipedia.org/wiki/MIT_License
+ */
+!function(t,e){function n(t,e,n){var r=t.children(),o=!1;t.empty();for(var i=0,d=r.length;d>i;i++){var l=r.eq(i);if(t.append(l),n&&t.append(n),a(t,e)){l.remove(),o=!0;break}n&&n.detach()}return o}function r(e,n,i,d,l){var s=!1,c="a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style",u="script, .dotdotdot-keep";return e.contents().detach().each(function(){var h=this,f=t(h);if("undefined"==typeof h)return!0;if(f.is(u))e.append(f);else{if(s)return!0;e.append(f),!l||f.is(d.after)||f.find(d.after).length||e[e.is(c)?"after":"append"](l),a(i,d)&&(s=3==h.nodeType?o(f,n,i,d,l):r(f,n,i,d,l)),s||l&&l.detach()}}),n.addClass("is-truncated"),s}function o(e,n,r,o,d){var c=e[0];if(!c)return!1;var h=s(c),f=-1!==h.indexOf(" ")?" ":"　",p="letter"==o.wrap?"":f,g=h.split(p),v=-1,w=-1,b=0,m=g.length-1;for(o.fallbackToLetter&&0==b&&0==m&&(p="",g=h.split(p),m=g.length-1);m>=b&&(0!=b||0!=m);){var y=Math.floor((b+m)/2);if(y==w)break;w=y,l(c,g.slice(0,w+1).join(p)+o.ellipsis),r.children().each(function(){t(this).toggle().toggle()}),a(r,o)?(m=w,o.fallbackToLetter&&0==b&&0==m&&(p="",g=g[0].split(p),v=-1,w=-1,b=0,m=g.length-1)):(v=w,b=w)}if(-1==v||1==g.length&&0==g[0].length){var x=e.parent();e.detach();var C=d&&d.closest(x).length?d.length:0;if(x.contents().length>C?c=u(x.contents().eq(-1-C),n):(c=u(x,n,!0),C||x.detach()),c&&(h=i(s(c),o),l(c,h),C&&d)){var T=d.parent();t(c).parent().append(d),t.trim(T.html())||T.remove()}}else h=i(g.slice(0,v+1).join(p),o),l(c,h);return!0}function a(t,e){return t.innerHeight()>e.maxHeight}function i(e,n){for(;t.inArray(e.slice(-1),n.lastCharacter.remove)>-1;)e=e.slice(0,-1);return t.inArray(e.slice(-1),n.lastCharacter.noEllipsis)<0&&(e+=n.ellipsis),e}function d(t){return{width:t.innerWidth(),height:t.innerHeight()}}function l(t,e){t.innerText?t.innerText=e:t.nodeValue?t.nodeValue=e:t.textContent&&(t.textContent=e)}function s(t){return t.innerText?t.innerText:t.nodeValue?t.nodeValue:t.textContent?t.textContent:""}function c(t){do t=t.previousSibling;while(t&&1!==t.nodeType&&3!==t.nodeType);return t}function u(e,n,r){var o,a=e&&e[0];if(a){if(!r){if(3===a.nodeType)return a;if(t.trim(e.text()))return u(e.contents().last(),n)}for(o=c(a);!o;){if(e=e.parent(),e.is(n)||!e.length)return!1;o=c(e[0])}if(o)return u(t(o),n)}return!1}function h(e,n){return e?"string"==typeof e?(e=t(e,n),e.length?e:!1):e.jquery?e:!1:!1}function f(t){for(var e=t.innerHeight(),n=["paddingTop","paddingBottom"],r=0,o=n.length;o>r;r++){var a=parseInt(t.css(n[r]),10);isNaN(a)&&(a=0),e-=a}return e}if(!t.fn.dotdotdot){t.fn.dotdotdot=function(e){if(0==this.length)return t.fn.dotdotdot.debug('No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){t(this).dotdotdot(e)});var o=this,i=o.contents();o.data("dotdotdot")&&o.trigger("destroy.dot"),o.data("dotdotdot-style",o.attr("style")||""),o.css("word-wrap","break-word"),"nowrap"===o.css("white-space")&&o.css("white-space","normal"),o.bind_events=function(){return o.bind("update.dot",function(e,d){switch(o.removeClass("is-truncated"),e.preventDefault(),e.stopPropagation(),typeof l.height){case"number":l.maxHeight=l.height;break;case"function":l.maxHeight=l.height.call(o[0]);break;default:l.maxHeight=f(o)}l.maxHeight+=l.tolerance,"undefined"!=typeof d&&(("string"==typeof d||"nodeType"in d&&1===d.nodeType)&&(d=t("<div />").append(d).contents()),d instanceof t&&(i=d)),g=o.wrapInner('<div class="dotdotdot" />').children(),g.contents().detach().end().append(i.clone(!0)).find("br").replaceWith("  <br />  ").end().css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var c=!1,u=!1;return s.afterElement&&(c=s.afterElement.clone(!0),c.show(),s.afterElement.detach()),a(g,l)&&(u="children"==l.wrap?n(g,l,c):r(g,o,g,l,c)),g.replaceWith(g.contents()),g=null,t.isFunction(l.callback)&&l.callback.call(o[0],u,i),s.isTruncated=u,u}).bind("isTruncated.dot",function(t,e){return t.preventDefault(),t.stopPropagation(),"function"==typeof e&&e.call(o[0],s.isTruncated),s.isTruncated}).bind("originalContent.dot",function(t,e){return t.preventDefault(),t.stopPropagation(),"function"==typeof e&&e.call(o[0],i),i}).bind("destroy.dot",function(t){t.preventDefault(),t.stopPropagation(),o.unwatch().unbind_events().contents().detach().end().append(i).attr("style",o.data("dotdotdot-style")||"").removeClass("is-truncated").data("dotdotdot",!1)}),o},o.unbind_events=function(){return o.unbind(".dot"),o},o.watch=function(){if(o.unwatch(),"window"==l.watch){var e=t(window),n=e.width(),r=e.height();e.bind("resize.dot"+s.dotId,function(){n==e.width()&&r==e.height()&&l.windowResizeFix||(n=e.width(),r=e.height(),u&&clearInterval(u),u=setTimeout(function(){o.trigger("update.dot")},100))})}else c=d(o),u=setInterval(function(){if(o.is(":visible")){var t=d(o);c.width==t.width&&c.height==t.height||(o.trigger("update.dot"),c=t)}},500);return o},o.unwatch=function(){return t(window).unbind("resize.dot"+s.dotId),u&&clearInterval(u),o};var l=t.extend(!0,{},t.fn.dotdotdot.defaults,e),s={},c={},u=null,g=null;return l.lastCharacter.remove instanceof Array||(l.lastCharacter.remove=t.fn.dotdotdot.defaultArrays.lastCharacter.remove),l.lastCharacter.noEllipsis instanceof Array||(l.lastCharacter.noEllipsis=t.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis),s.afterElement=h(l.after,o),s.isTruncated=!1,s.dotId=p++,o.data("dotdotdot",!0).bind_events().trigger("update.dot"),l.watch&&o.watch(),o},t.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",fallbackToLetter:!0,lastCharacter:{},tolerance:0,callback:null,after:null,height:null,watch:!1,windowResizeFix:!0},t.fn.dotdotdot.defaultArrays={lastCharacter:{remove:[" ","　",",",";",".","!","?"],noEllipsis:[]}},t.fn.dotdotdot.debug=function(t){};var p=1,g=t.fn.html;t.fn.html=function(n){return n!=e&&!t.isFunction(n)&&this.data("dotdotdot")?this.trigger("update",[n]):g.apply(this,arguments)};var v=t.fn.text;t.fn.text=function(n){return n!=e&&!t.isFunction(n)&&this.data("dotdotdot")?(n=t("<div />").text(n).html(),this.trigger("update",[n])):v.apply(this,arguments)}}}(jQuery),jQuery(document).ready(function(t){t(".dot-ellipsis").each(function(){var e=t(this).hasClass("dot-resize-update"),n=t(this).hasClass("dot-timer-update"),r=0,o=t(this).attr("class").split(/\s+/);t.each(o,function(t,e){var n=e.match(/^dot-height-(\d+)$/);null!==n&&(r=Number(n[1]))});var a=new Object;n&&(a.watch=!0),e&&(a.watch="window"),r>0&&(a.height=r),t(this).dotdotdot(a)})}),jQuery(window).on("load",function(){jQuery(".dot-ellipsis.dot-load-update").trigger("update.dot")});
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot.js b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot.js
new file mode 120000
index 0000000..99664e0
--- /dev/null
+++ b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot.js
@@ -0,0 +1 @@
+jquery.dotdotdot-1.8.3.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot.min.js b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot.min.js
new file mode 120000
index 0000000..3a56209
--- /dev/null
+++ b/pagure/static/vendor/jquery.dotdotdot/jquery.dotdotdot.min.js
@@ -0,0 +1 @@
+jquery.dotdotdot-1.8.3.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete-1.7.1.js b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete-1.7.1.js
new file mode 100644
index 0000000..87463c4
--- /dev/null
+++ b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete-1.7.1.js
@@ -0,0 +1,1482 @@
+(function (factory) {
+  if (typeof define === 'function' && define.amd) {
+    // AMD. Register as an anonymous module.
+    define(['jquery'], factory);
+  } else if (typeof module === "object" && module.exports) {
+    var $ = require('jquery');
+    module.exports = factory($);
+  } else {
+    // Browser globals
+    factory(jQuery);
+  }
+}(function (jQuery) {
+
+/*!
+ * jQuery.textcomplete
+ *
+ * Repository: https://github.com/yuku-t/jquery-textcomplete
+ * License:    MIT (https://github.com/yuku-t/jquery-textcomplete/blob/master/LICENSE)
+ * Author:     Yuku Takahashi
+ */
+
+if (typeof jQuery === 'undefined') {
+  throw new Error('jQuery.textcomplete requires jQuery');
+}
+
++function ($) {
+  'use strict';
+
+  var warn = function (message) {
+    if (console.warn) { console.warn(message); }
+  };
+
+  var id = 1;
+
+  $.fn.textcomplete = function (strategies, option) {
+    var args = Array.prototype.slice.call(arguments);
+    return this.each(function () {
+      var self = this;
+      var $this = $(this);
+      var completer = $this.data('textComplete');
+      if (!completer) {
+        option || (option = {});
+        option._oid = id++;  // unique object id
+        completer = new $.fn.textcomplete.Completer(this, option);
+        $this.data('textComplete', completer);
+      }
+      if (typeof strategies === 'string') {
+        if (!completer) return;
+        args.shift()
+        completer[strategies].apply(completer, args);
+        if (strategies === 'destroy') {
+          $this.removeData('textComplete');
+        }
+      } else {
+        // For backward compatibility.
+        // TODO: Remove at v0.4
+        $.each(strategies, function (obj) {
+          $.each(['header', 'footer', 'placement', 'maxCount'], function (name) {
+            if (obj[name]) {
+              completer.option[name] = obj[name];
+              warn(name + 'as a strategy param is deprecated. Use option.');
+              delete obj[name];
+            }
+          });
+        });
+        completer.register($.fn.textcomplete.Strategy.parse(strategies, {
+          el: self,
+          $el: $this
+        }));
+      }
+    });
+  };
+
+}(jQuery);
+
++function ($) {
+  'use strict';
+
+  // Exclusive execution control utility.
+  //
+  // func - The function to be locked. It is executed with a function named
+  //        `free` as the first argument. Once it is called, additional
+  //        execution are ignored until the free is invoked. Then the last
+  //        ignored execution will be replayed immediately.
+  //
+  // Examples
+  //
+  //   var lockedFunc = lock(function (free) {
+  //     setTimeout(function { free(); }, 1000); // It will be free in 1 sec.
+  //     console.log('Hello, world');
+  //   });
+  //   lockedFunc();  // => 'Hello, world'
+  //   lockedFunc();  // none
+  //   lockedFunc();  // none
+  //   // 1 sec past then
+  //   // => 'Hello, world'
+  //   lockedFunc();  // => 'Hello, world'
+  //   lockedFunc();  // none
+  //
+  // Returns a wrapped function.
+  var lock = function (func) {
+    var locked, queuedArgsToReplay;
+
+    return function () {
+      // Convert arguments into a real array.
+      var args = Array.prototype.slice.call(arguments);
+      if (locked) {
+        // Keep a copy of this argument list to replay later.
+        // OK to overwrite a previous value because we only replay
+        // the last one.
+        queuedArgsToReplay = args;
+        return;
+      }
+      locked = true;
+      var self = this;
+      args.unshift(function replayOrFree() {
+        if (queuedArgsToReplay) {
+          // Other request(s) arrived while we were locked.
+          // Now that the lock is becoming available, replay
+          // the latest such request, then call back here to
+          // unlock (or replay another request that arrived
+          // while this one was in flight).
+          var replayArgs = queuedArgsToReplay;
+          queuedArgsToReplay = undefined;
+          replayArgs.unshift(replayOrFree);
+          func.apply(self, replayArgs);
+        } else {
+          locked = false;
+        }
+      });
+      func.apply(this, args);
+    };
+  };
+
+  var isString = function (obj) {
+    return Object.prototype.toString.call(obj) === '[object String]';
+  };
+
+  var uniqueId = 0;
+
+  function Completer(element, option) {
+    this.$el        = $(element);
+    this.id         = 'textcomplete' + uniqueId++;
+    this.strategies = [];
+    this.views      = [];
+    this.option     = $.extend({}, Completer.defaults, option);
+
+    if (!this.$el.is('input[type=text]') && !this.$el.is('input[type=search]') && !this.$el.is('textarea') && !element.isContentEditable && element.contentEditable != 'true') {
+      throw new Error('textcomplete must be called on a Textarea or a ContentEditable.');
+    }
+
+    // use ownerDocument to fix iframe / IE issues
+    if (element === element.ownerDocument.activeElement) {
+      // element has already been focused. Initialize view objects immediately.
+      this.initialize()
+    } else {
+      // Initialize view objects lazily.
+      var self = this;
+      this.$el.one('focus.' + this.id, function () { self.initialize(); });
+
+      // Special handling for CKEditor: lazy init on instance load
+      if ((!this.option.adapter || this.option.adapter == 'CKEditor') && typeof CKEDITOR != 'undefined' && (this.$el.is('textarea'))) {
+        CKEDITOR.on("instanceReady", function(event) {
+          event.editor.once("focus", function(event2) {
+            // replace the element with the Iframe element and flag it as CKEditor
+            self.$el = $(event.editor.editable().$);
+            if (!self.option.adapter) {
+              self.option.adapter = $.fn.textcomplete['CKEditor'];
+            }
+            self.initialize();
+          });
+        });
+      }
+    }
+  }
+
+  Completer.defaults = {
+    appendTo: 'body',
+    className: '',  // deprecated option
+    dropdownClassName: 'dropdown-menu textcomplete-dropdown',
+    maxCount: 10,
+    zIndex: '100',
+    rightEdgeOffset: 30
+  };
+
+  $.extend(Completer.prototype, {
+    // Public properties
+    // -----------------
+
+    id:         null,
+    option:     null,
+    strategies: null,
+    adapter:    null,
+    dropdown:   null,
+    $el:        null,
+    $iframe:    null,
+
+    // Public methods
+    // --------------
+
+    initialize: function () {
+      var element = this.$el.get(0);
+      
+      // check if we are in an iframe
+      // we need to alter positioning logic if using an iframe
+      if (this.$el.prop('ownerDocument') !== document && window.frames.length) {
+        for (var iframeIndex = 0; iframeIndex < window.frames.length; iframeIndex++) {
+          if (this.$el.prop('ownerDocument') === window.frames[iframeIndex].document) {
+            this.$iframe = $(window.frames[iframeIndex].frameElement);
+            break;
+          }
+        }
+      }
+      
+      
+      // Initialize view objects.
+      this.dropdown = new $.fn.textcomplete.Dropdown(element, this, this.option);
+      var Adapter, viewName;
+      if (this.option.adapter) {
+        Adapter = this.option.adapter;
+      } else {
+        if (this.$el.is('textarea') || this.$el.is('input[type=text]') || this.$el.is('input[type=search]')) {
+          viewName = typeof element.selectionEnd === 'number' ? 'Textarea' : 'IETextarea';
+        } else {
+          viewName = 'ContentEditable';
+        }
+        Adapter = $.fn.textcomplete[viewName];
+      }
+      this.adapter = new Adapter(element, this, this.option);
+    },
+
+    destroy: function () {
+      this.$el.off('.' + this.id);
+      if (this.adapter) {
+        this.adapter.destroy();
+      }
+      if (this.dropdown) {
+        this.dropdown.destroy();
+      }
+      this.$el = this.adapter = this.dropdown = null;
+    },
+
+    deactivate: function () {
+      if (this.dropdown) {
+        this.dropdown.deactivate();
+      }
+    },
+
+    // Invoke textcomplete.
+    trigger: function (text, skipUnchangedTerm) {
+      if (!this.dropdown) { this.initialize(); }
+      text != null || (text = this.adapter.getTextFromHeadToCaret());
+      var searchQuery = this._extractSearchQuery(text);
+      if (searchQuery.length) {
+        var term = searchQuery[1];
+        // Ignore shift-key, ctrl-key and so on.
+        if (skipUnchangedTerm && this._term === term && term !== "") { return; }
+        this._term = term;
+        this._search.apply(this, searchQuery);
+      } else {
+        this._term = null;
+        this.dropdown.deactivate();
+      }
+    },
+
+    fire: function (eventName) {
+      var args = Array.prototype.slice.call(arguments, 1);
+      this.$el.trigger(eventName, args);
+      return this;
+    },
+
+    register: function (strategies) {
+      Array.prototype.push.apply(this.strategies, strategies);
+    },
+
+    // Insert the value into adapter view. It is called when the dropdown is clicked
+    // or selected.
+    //
+    // value    - The selected element of the array callbacked from search func.
+    // strategy - The Strategy object.
+    // e        - Click or keydown event object.
+    select: function (value, strategy, e) {
+      this._term = null;
+      this.adapter.select(value, strategy, e);
+      this.fire('change').fire('textComplete:select', value, strategy);
+      this.adapter.focus();
+    },
+
+    // Private properties
+    // ------------------
+
+    _clearAtNext: true,
+    _term:        null,
+
+    // Private methods
+    // ---------------
+
+    // Parse the given text and extract the first matching strategy.
+    //
+    // Returns an array including the strategy, the query term and the match
+    // object if the text matches an strategy; otherwise returns an empty array.
+    _extractSearchQuery: function (text) {
+      for (var i = 0; i < this.strategies.length; i++) {
+        var strategy = this.strategies[i];
+        var context = strategy.context(text);
+        if (context || context === '') {
+          var matchRegexp = $.isFunction(strategy.match) ? strategy.match(text) : strategy.match;
+          if (isString(context)) { text = context; }
+          var match = text.match(matchRegexp);
+          if (match) { return [strategy, match[strategy.index], match]; }
+        }
+      }
+      return []
+    },
+
+    // Call the search method of selected strategy..
+    _search: lock(function (free, strategy, term, match) {
+      var self = this;
+      strategy.search(term, function (data, stillSearching) {
+        if (!self.dropdown.shown) {
+          self.dropdown.activate();
+        }
+        if (self._clearAtNext) {
+          // The first callback in the current lock.
+          self.dropdown.clear();
+          self._clearAtNext = false;
+        }
+        self.dropdown.setPosition(self.adapter.getCaretPosition());
+        self.dropdown.render(self._zip(data, strategy, term));
+        if (!stillSearching) {
+          // The last callback in the current lock.
+          free();
+          self._clearAtNext = true; // Call dropdown.clear at the next time.
+        }
+      }, match);
+    }),
+
+    // Build a parameter for Dropdown#render.
+    //
+    // Examples
+    //
+    //  this._zip(['a', 'b'], 's');
+    //  //=> [{ value: 'a', strategy: 's' }, { value: 'b', strategy: 's' }]
+    _zip: function (data, strategy, term) {
+      return $.map(data, function (value) {
+        return { value: value, strategy: strategy, term: term };
+      });
+    }
+  });
+
+  $.fn.textcomplete.Completer = Completer;
+}(jQuery);
+
++function ($) {
+  'use strict';
+
+  var $window = $(window);
+
+  var include = function (zippedData, datum) {
+    var i, elem;
+    var idProperty = datum.strategy.idProperty
+    for (i = 0; i < zippedData.length; i++) {
+      elem = zippedData[i];
+      if (elem.strategy !== datum.strategy) continue;
+      if (idProperty) {
+        if (elem.value[idProperty] === datum.value[idProperty]) return true;
+      } else {
+        if (elem.value === datum.value) return true;
+      }
+    }
+    return false;
+  };
+
+  var dropdownViews = {};
+  $(document).on('click', function (e) {
+    var id = e.originalEvent && e.originalEvent.keepTextCompleteDropdown;
+    $.each(dropdownViews, function (key, view) {
+      if (key !== id) { view.deactivate(); }
+    });
+  });
+
+  var commands = {
+    SKIP_DEFAULT: 0,
+    KEY_UP: 1,
+    KEY_DOWN: 2,
+    KEY_ENTER: 3,
+    KEY_PAGEUP: 4,
+    KEY_PAGEDOWN: 5,
+    KEY_ESCAPE: 6
+  };
+
+  // Dropdown view
+  // =============
+
+  // Construct Dropdown object.
+  //
+  // element - Textarea or contenteditable element.
+  function Dropdown(element, completer, option) {
+    this.$el       = Dropdown.createElement(option);
+    this.completer = completer;
+    this.id        = completer.id + 'dropdown';
+    this._data     = []; // zipped data.
+    this.$inputEl  = $(element);
+    this.option    = option;
+
+    // Override setPosition method.
+    if (option.listPosition) { this.setPosition = option.listPosition; }
+    if (option.height) { this.$el.height(option.height); }
+    var self = this;
+    $.each(['maxCount', 'placement', 'footer', 'header', 'noResultsMessage', 'className'], function (_i, name) {
+      if (option[name] != null) { self[name] = option[name]; }
+    });
+    this._bindEvents(element);
+    dropdownViews[this.id] = this;
+  }
+
+  $.extend(Dropdown, {
+    // Class methods
+    // -------------
+
+    createElement: function (option) {
+      var $parent = option.appendTo;
+      if (!($parent instanceof $)) { $parent = $($parent); }
+      var $el = $('<ul></ul>')
+        .addClass(option.dropdownClassName)
+        .attr('id', 'textcomplete-dropdown-' + option._oid)
+        .css({
+          display: 'none',
+          left: 0,
+          position: 'absolute',
+          zIndex: option.zIndex
+        })
+        .appendTo($parent);
+      return $el;
+    }
+  });
+
+  $.extend(Dropdown.prototype, {
+    // Public properties
+    // -----------------
+
+    $el:       null,  // jQuery object of ul.dropdown-menu element.
+    $inputEl:  null,  // jQuery object of target textarea.
+    completer: null,
+    footer:    null,
+    header:    null,
+    id:        null,
+    maxCount:  null,
+    placement: '',
+    shown:     false,
+    data:      [],     // Shown zipped data.
+    className: '',
+
+    // Public methods
+    // --------------
+
+    destroy: function () {
+      // Don't remove $el because it may be shared by several textcompletes.
+      this.deactivate();
+
+      this.$el.off('.' + this.id);
+      this.$inputEl.off('.' + this.id);
+      this.clear();
+      this.$el.remove();
+      this.$el = this.$inputEl = this.completer = null;
+      delete dropdownViews[this.id]
+    },
+
+    render: function (zippedData) {
+      var contentsHtml = this._buildContents(zippedData);
+      var unzippedData = $.map(this.data, function (d) { return d.value; });
+      if (this.data.length) {
+        var strategy = zippedData[0].strategy;
+        if (strategy.id) {
+          this.$el.attr('data-strategy', strategy.id);
+        } else {
+          this.$el.removeAttr('data-strategy');
+        }
+        this._renderHeader(unzippedData);
+        this._renderFooter(unzippedData);
+        if (contentsHtml) {
+          this._renderContents(contentsHtml);
+          this._fitToBottom();
+          this._fitToRight();
+          this._activateIndexedItem();
+        }
+        this._setScroll();
+      } else if (this.noResultsMessage) {
+        this._renderNoResultsMessage(unzippedData);
+      } else if (this.shown) {
+        this.deactivate();
+      }
+    },
+
+    setPosition: function (pos) {
+      // Make the dropdown fixed if the input is also fixed
+      // This can't be done during init, as textcomplete may be used on multiple elements on the same page
+      // Because the same dropdown is reused behind the scenes, we need to recheck every time the dropdown is showed
+      var position = 'absolute';
+      // Check if input or one of its parents has positioning we need to care about
+      this.$inputEl.add(this.$inputEl.parents()).each(function() {
+        if($(this).css('position') === 'absolute') // The element has absolute positioning, so it's all OK
+          return false;
+        if($(this).css('position') === 'fixed') {
+          pos.top -= $window.scrollTop();
+          pos.left -= $window.scrollLeft();
+          position = 'fixed';
+          return false;
+        }
+      });
+      this.$el.css(this._applyPlacement(pos));
+      this.$el.css({ position: position }); // Update positioning
+
+      return this;
+    },
+
+    clear: function () {
+      this.$el.html('');
+      this.data = [];
+      this._index = 0;
+      this._$header = this._$footer = this._$noResultsMessage = null;
+    },
+
+    activate: function () {
+      if (!this.shown) {
+        this.clear();
+        this.$el.show();
+        if (this.className) { this.$el.addClass(this.className); }
+        this.completer.fire('textComplete:show');
+        this.shown = true;
+      }
+      return this;
+    },
+
+    deactivate: function () {
+      if (this.shown) {
+        this.$el.hide();
+        if (this.className) { this.$el.removeClass(this.className); }
+        this.completer.fire('textComplete:hide');
+        this.shown = false;
+      }
+      return this;
+    },
+
+    isUp: function (e) {
+      return e.keyCode === 38 || (e.ctrlKey && e.keyCode === 80);  // UP, Ctrl-P
+    },
+
+    isDown: function (e) {
+      return e.keyCode === 40 || (e.ctrlKey && e.keyCode === 78);  // DOWN, Ctrl-N
+    },
+
+    isEnter: function (e) {
+      var modifiers = e.ctrlKey || e.altKey || e.metaKey || e.shiftKey;
+      return !modifiers && (e.keyCode === 13 || e.keyCode === 9 || (this.option.completeOnSpace === true && e.keyCode === 32))  // ENTER, TAB
+    },
+
+    isPageup: function (e) {
+      return e.keyCode === 33;  // PAGEUP
+    },
+
+    isPagedown: function (e) {
+      return e.keyCode === 34;  // PAGEDOWN
+    },
+
+    isEscape: function (e) {
+      return e.keyCode === 27;  // ESCAPE
+    },
+
+    // Private properties
+    // ------------------
+
+    _data:    null,  // Currently shown zipped data.
+    _index:   null,
+    _$header: null,
+    _$noResultsMessage: null,
+    _$footer: null,
+
+    // Private methods
+    // ---------------
+
+    _bindEvents: function () {
+      this.$el.on('mousedown.' + this.id, '.textcomplete-item', $.proxy(this._onClick, this));
+      this.$el.on('touchstart.' + this.id, '.textcomplete-item', $.proxy(this._onClick, this));
+      this.$el.on('mouseover.' + this.id, '.textcomplete-item', $.proxy(this._onMouseover, this));
+      this.$inputEl.on('keydown.' + this.id, $.proxy(this._onKeydown, this));
+    },
+
+    _onClick: function (e) {
+      var $el = $(e.target);
+      e.preventDefault();
+      e.originalEvent.keepTextCompleteDropdown = this.id;
+      if (!$el.hasClass('textcomplete-item')) {
+        $el = $el.closest('.textcomplete-item');
+      }
+      var datum = this.data[parseInt($el.data('index'), 10)];
+      this.completer.select(datum.value, datum.strategy, e);
+      var self = this;
+      // Deactive at next tick to allow other event handlers to know whether
+      // the dropdown has been shown or not.
+      setTimeout(function () {
+        self.deactivate();
+        if (e.type === 'touchstart') {
+          self.$inputEl.focus();
+        }
+      }, 0);
+    },
+
+    // Activate hovered item.
+    _onMouseover: function (e) {
+      var $el = $(e.target);
+      e.preventDefault();
+      if (!$el.hasClass('textcomplete-item')) {
+        $el = $el.closest('.textcomplete-item');
+      }
+      this._index = parseInt($el.data('index'), 10);
+      this._activateIndexedItem();
+    },
+
+    _onKeydown: function (e) {
+      if (!this.shown) { return; }
+
+      var command;
+
+      if ($.isFunction(this.option.onKeydown)) {
+        command = this.option.onKeydown(e, commands);
+      }
+
+      if (command == null) {
+        command = this._defaultKeydown(e);
+      }
+
+      switch (command) {
+        case commands.KEY_UP:
+          e.preventDefault();
+          this._up();
+          break;
+        case commands.KEY_DOWN:
+          e.preventDefault();
+          this._down();
+          break;
+        case commands.KEY_ENTER:
+          e.preventDefault();
+          this._enter(e);
+          break;
+        case commands.KEY_PAGEUP:
+          e.preventDefault();
+          this._pageup();
+          break;
+        case commands.KEY_PAGEDOWN:
+          e.preventDefault();
+          this._pagedown();
+          break;
+        case commands.KEY_ESCAPE:
+          e.preventDefault();
+          this.deactivate();
+          break;
+      }
+    },
+
+    _defaultKeydown: function (e) {
+      if (this.isUp(e)) {
+        return commands.KEY_UP;
+      } else if (this.isDown(e)) {
+        return commands.KEY_DOWN;
+      } else if (this.isEnter(e)) {
+        return commands.KEY_ENTER;
+      } else if (this.isPageup(e)) {
+        return commands.KEY_PAGEUP;
+      } else if (this.isPagedown(e)) {
+        return commands.KEY_PAGEDOWN;
+      } else if (this.isEscape(e)) {
+        return commands.KEY_ESCAPE;
+      }
+    },
+
+    _up: function () {
+      if (this._index === 0) {
+        this._index = this.data.length - 1;
+      } else {
+        this._index -= 1;
+      }
+      this._activateIndexedItem();
+      this._setScroll();
+    },
+
+    _down: function () {
+      if (this._index === this.data.length - 1) {
+        this._index = 0;
+      } else {
+        this._index += 1;
+      }
+      this._activateIndexedItem();
+      this._setScroll();
+    },
+
+    _enter: function (e) {
+      var datum = this.data[parseInt(this._getActiveElement().data('index'), 10)];
+      this.completer.select(datum.value, datum.strategy, e);
+      this.deactivate();
+    },
+
+    _pageup: function () {
+      var target = 0;
+      var threshold = this._getActiveElement().position().top - this.$el.innerHeight();
+      this.$el.children().each(function (i) {
+        if ($(this).position().top + $(this).outerHeight() > threshold) {
+          target = i;
+          return false;
+        }
+      });
+      this._index = target;
+      this._activateIndexedItem();
+      this._setScroll();
+    },
+
+    _pagedown: function () {
+      var target = this.data.length - 1;
+      var threshold = this._getActiveElement().position().top + this.$el.innerHeight();
+      this.$el.children().each(function (i) {
+        if ($(this).position().top > threshold) {
+          target = i;
+          return false
+        }
+      });
+      this._index = target;
+      this._activateIndexedItem();
+      this._setScroll();
+    },
+
+    _activateIndexedItem: function () {
+      this.$el.find('.textcomplete-item.active').removeClass('active');
+      this._getActiveElement().addClass('active');
+    },
+
+    _getActiveElement: function () {
+      return this.$el.children('.textcomplete-item:nth(' + this._index + ')');
+    },
+
+    _setScroll: function () {
+      var $activeEl = this._getActiveElement();
+      var itemTop = $activeEl.position().top;
+      var itemHeight = $activeEl.outerHeight();
+      var visibleHeight = this.$el.innerHeight();
+      var visibleTop = this.$el.scrollTop();
+      if (this._index === 0 || this._index == this.data.length - 1 || itemTop < 0) {
+        this.$el.scrollTop(itemTop + visibleTop);
+      } else if (itemTop + itemHeight > visibleHeight) {
+        this.$el.scrollTop(itemTop + itemHeight + visibleTop - visibleHeight);
+      }
+    },
+
+    _buildContents: function (zippedData) {
+      var datum, i, index;
+      var html = '';
+      for (i = 0; i < zippedData.length; i++) {
+        if (this.data.length === this.maxCount) break;
+        datum = zippedData[i];
+        if (include(this.data, datum)) { continue; }
+        index = this.data.length;
+        this.data.push(datum);
+        html += '<li class="textcomplete-item" data-index="' + index + '"><a>';
+        html +=   datum.strategy.template(datum.value, datum.term);
+        html += '</a></li>';
+      }
+      return html;
+    },
+
+    _renderHeader: function (unzippedData) {
+      if (this.header) {
+        if (!this._$header) {
+          this._$header = $('<li class="textcomplete-header"></li>').prependTo(this.$el);
+        }
+        var html = $.isFunction(this.header) ? this.header(unzippedData) : this.header;
+        this._$header.html(html);
+      }
+    },
+
+    _renderFooter: function (unzippedData) {
+      if (this.footer) {
+        if (!this._$footer) {
+          this._$footer = $('<li class="textcomplete-footer"></li>').appendTo(this.$el);
+        }
+        var html = $.isFunction(this.footer) ? this.footer(unzippedData) : this.footer;
+        this._$footer.html(html);
+      }
+    },
+
+    _renderNoResultsMessage: function (unzippedData) {
+      if (this.noResultsMessage) {
+        if (!this._$noResultsMessage) {
+          this._$noResultsMessage = $('<li class="textcomplete-no-results-message"></li>').appendTo(this.$el);
+        }
+        var html = $.isFunction(this.noResultsMessage) ? this.noResultsMessage(unzippedData) : this.noResultsMessage;
+        this._$noResultsMessage.html(html);
+      }
+    },
+
+    _renderContents: function (html) {
+      if (this._$footer) {
+        this._$footer.before(html);
+      } else {
+        this.$el.append(html);
+      }
+    },
+
+    _fitToBottom: function() {
+      var windowScrollBottom = $window.scrollTop() + $window.height();
+      var height = this.$el.height();
+      if ((this.$el.position().top + height) > windowScrollBottom) {
+        // only do this if we are not in an iframe
+        if (!this.completer.$iframe) {
+          this.$el.offset({top: windowScrollBottom - height});
+        }
+      }
+    },
+
+    _fitToRight: function() {
+      // We don't know how wide our content is until the browser positions us, and at that point it clips us
+      // to the document width so we don't know if we would have overrun it. As a heuristic to avoid that clipping
+      // (which makes our elements wrap onto the next line and corrupt the next item), if we're close to the right
+      // edge, move left. We don't know how far to move left, so just keep nudging a bit.
+      var tolerance = this.option.rightEdgeOffset; // pixels. Make wider than vertical scrollbar because we might not be able to use that space.
+      var lastOffset = this.$el.offset().left, offset;
+      var width = this.$el.width();
+      var maxLeft = $window.width() - tolerance;
+      while (lastOffset + width > maxLeft) {
+        this.$el.offset({left: lastOffset - tolerance});
+        offset = this.$el.offset().left;
+        if (offset >= lastOffset) { break; }
+        lastOffset = offset;
+      }
+    },
+
+    _applyPlacement: function (position) {
+      // If the 'placement' option set to 'top', move the position above the element.
+      if (this.placement.indexOf('top') !== -1) {
+        // Overwrite the position object to set the 'bottom' property instead of the top.
+        position = {
+          top: 'auto',
+          bottom: this.$el.parent().height() - position.top + position.lineHeight,
+          left: position.left
+        };
+      } else {
+        position.bottom = 'auto';
+        delete position.lineHeight;
+      }
+      if (this.placement.indexOf('absleft') !== -1) {
+        position.left = 0;
+      } else if (this.placement.indexOf('absright') !== -1) {
+        position.right = 0;
+        position.left = 'auto';
+      }
+      return position;
+    }
+  });
+
+  $.fn.textcomplete.Dropdown = Dropdown;
+  $.extend($.fn.textcomplete, commands);
+}(jQuery);
+
++function ($) {
+  'use strict';
+
+  // Memoize a search function.
+  var memoize = function (func) {
+    var memo = {};
+    return function (term, callback) {
+      if (memo[term]) {
+        callback(memo[term]);
+      } else {
+        func.call(this, term, function (data) {
+          memo[term] = (memo[term] || []).concat(data);
+          callback.apply(null, arguments);
+        });
+      }
+    };
+  };
+
+  function Strategy(options) {
+    $.extend(this, options);
+    if (this.cache) { this.search = memoize(this.search); }
+  }
+
+  Strategy.parse = function (strategiesArray, params) {
+    return $.map(strategiesArray, function (strategy) {
+      var strategyObj = new Strategy(strategy);
+      strategyObj.el = params.el;
+      strategyObj.$el = params.$el;
+      return strategyObj;
+    });
+  };
+
+  $.extend(Strategy.prototype, {
+    // Public properties
+    // -----------------
+
+    // Required
+    match:      null,
+    replace:    null,
+    search:     null,
+
+    // Optional
+    id:         null,
+    cache:      false,
+    context:    function () { return true; },
+    index:      2,
+    template:   function (obj) { return obj; },
+    idProperty: null
+  });
+
+  $.fn.textcomplete.Strategy = Strategy;
+
+}(jQuery);
+
++function ($) {
+  'use strict';
+
+  var now = Date.now || function () { return new Date().getTime(); };
+
+  // Returns a function, that, as long as it continues to be invoked, will not
+  // be triggered. The function will be called after it stops being called for
+  // `wait` msec.
+  //
+  // This utility function was originally implemented at Underscore.js.
+  var debounce = function (func, wait) {
+    var timeout, args, context, timestamp, result;
+    var later = function () {
+      var last = now() - timestamp;
+      if (last < wait) {
+        timeout = setTimeout(later, wait - last);
+      } else {
+        timeout = null;
+        result = func.apply(context, args);
+        context = args = null;
+      }
+    };
+
+    return function () {
+      context = this;
+      args = arguments;
+      timestamp = now();
+      if (!timeout) {
+        timeout = setTimeout(later, wait);
+      }
+      return result;
+    };
+  };
+
+  function Adapter () {}
+
+  $.extend(Adapter.prototype, {
+    // Public properties
+    // -----------------
+
+    id:        null, // Identity.
+    completer: null, // Completer object which creates it.
+    el:        null, // Textarea element.
+    $el:       null, // jQuery object of the textarea.
+    option:    null,
+
+    // Public methods
+    // --------------
+
+    initialize: function (element, completer, option) {
+      this.el        = element;
+      this.$el       = $(element);
+      this.id        = completer.id + this.constructor.name;
+      this.completer = completer;
+      this.option    = option;
+
+      if (this.option.debounce) {
+        this._onKeyup = debounce(this._onKeyup, this.option.debounce);
+      }
+
+      this._bindEvents();
+    },
+
+    destroy: function () {
+      this.$el.off('.' + this.id); // Remove all event handlers.
+      this.$el = this.el = this.completer = null;
+    },
+
+    // Update the element with the given value and strategy.
+    //
+    // value    - The selected object. It is one of the item of the array
+    //            which was callbacked from the search function.
+    // strategy - The Strategy associated with the selected value.
+    select: function (/* value, strategy */) {
+      throw new Error('Not implemented');
+    },
+
+    // Returns the caret's relative coordinates from body's left top corner.
+    getCaretPosition: function () {
+      var position = this._getCaretRelativePosition();
+      var offset = this.$el.offset();
+
+      // Calculate the left top corner of `this.option.appendTo` element.
+      var $parent = this.option.appendTo;
+      if ($parent) {
+         if (!($parent instanceof $)) { $parent = $($parent); }
+         var parentOffset = $parent.offsetParent().offset();
+         offset.top -= parentOffset.top;
+         offset.left -= parentOffset.left;
+      }
+
+      position.top += offset.top;
+      position.left += offset.left;
+      return position;
+    },
+
+    // Focus on the element.
+    focus: function () {
+      this.$el.focus();
+    },
+
+    // Private methods
+    // ---------------
+
+    _bindEvents: function () {
+      this.$el.on('keyup.' + this.id, $.proxy(this._onKeyup, this));
+    },
+
+    _onKeyup: function (e) {
+      if (this._skipSearch(e)) { return; }
+      this.completer.trigger(this.getTextFromHeadToCaret(), true);
+    },
+
+    // Suppress searching if it returns true.
+    _skipSearch: function (clickEvent) {
+      switch (clickEvent.keyCode) {
+        case 9:  // TAB
+        case 13: // ENTER
+        case 40: // DOWN
+        case 38: // UP
+        case 27: // ESC
+          return true;
+      }
+      if (clickEvent.ctrlKey) switch (clickEvent.keyCode) {
+        case 78: // Ctrl-N
+        case 80: // Ctrl-P
+          return true;
+      }
+    }
+  });
+
+  $.fn.textcomplete.Adapter = Adapter;
+}(jQuery);
+
++function ($) {
+  'use strict';
+
+  // Textarea adapter
+  // ================
+  //
+  // Managing a textarea. It doesn't know a Dropdown.
+  function Textarea(element, completer, option) {
+    this.initialize(element, completer, option);
+  }
+
+  $.extend(Textarea.prototype, $.fn.textcomplete.Adapter.prototype, {
+    // Public methods
+    // --------------
+
+    // Update the textarea with the given value and strategy.
+    select: function (value, strategy, e) {
+      var pre = this.getTextFromHeadToCaret();
+      var post = this.el.value.substring(this.el.selectionEnd);
+      var newSubstr = strategy.replace(value, e);
+      var regExp;
+      if (typeof newSubstr !== 'undefined') {
+        if ($.isArray(newSubstr)) {
+          post = newSubstr[1] + post;
+          newSubstr = newSubstr[0];
+        }
+        regExp = $.isFunction(strategy.match) ? strategy.match(pre) : strategy.match;
+        pre = pre.replace(regExp, newSubstr);
+        this.$el.val(pre + post);
+        this.el.selectionStart = this.el.selectionEnd = pre.length;
+      }
+    },
+
+    getTextFromHeadToCaret: function () {
+      return this.el.value.substring(0, this.el.selectionEnd);
+    },
+
+    // Private methods
+    // ---------------
+
+    _getCaretRelativePosition: function () {
+      var p = $.fn.textcomplete.getCaretCoordinates(this.el, this.el.selectionStart);
+      return {
+        top: p.top + this._calculateLineHeight() - this.$el.scrollTop(),
+        left: p.left - this.$el.scrollLeft(),
+        lineHeight: this._calculateLineHeight()
+      };
+    },
+
+    _calculateLineHeight: function () {
+      var lineHeight = parseInt(this.$el.css('line-height'), 10);
+      if (isNaN(lineHeight)) {
+        // http://stackoverflow.com/a/4515470/1297336
+        var parentNode = this.el.parentNode;
+        var temp = document.createElement(this.el.nodeName);
+        var style = this.el.style;
+        temp.setAttribute(
+          'style',
+          'margin:0px;padding:0px;font-family:' + style.fontFamily + ';font-size:' + style.fontSize
+        );
+        temp.innerHTML = 'test';
+        parentNode.appendChild(temp);
+        lineHeight = temp.clientHeight;
+        parentNode.removeChild(temp);
+      }
+      return lineHeight;
+    }
+  });
+
+  $.fn.textcomplete.Textarea = Textarea;
+}(jQuery);
+
++function ($) {
+  'use strict';
+
+  var sentinelChar = '吶';
+
+  function IETextarea(element, completer, option) {
+    this.initialize(element, completer, option);
+    $('<span>' + sentinelChar + '</span>').css({
+      position: 'absolute',
+      top: -9999,
+      left: -9999
+    }).insertBefore(element);
+  }
+
+  $.extend(IETextarea.prototype, $.fn.textcomplete.Textarea.prototype, {
+    // Public methods
+    // --------------
+
+    select: function (value, strategy, e) {
+      var pre = this.getTextFromHeadToCaret();
+      var post = this.el.value.substring(pre.length);
+      var newSubstr = strategy.replace(value, e);
+      var regExp;
+      if (typeof newSubstr !== 'undefined') {
+        if ($.isArray(newSubstr)) {
+          post = newSubstr[1] + post;
+          newSubstr = newSubstr[0];
+        }
+        regExp = $.isFunction(strategy.match) ? strategy.match(pre) : strategy.match;
+        pre = pre.replace(regExp, newSubstr);
+        this.$el.val(pre + post);
+        this.el.focus();
+        var range = this.el.createTextRange();
+        range.collapse(true);
+        range.moveEnd('character', pre.length);
+        range.moveStart('character', pre.length);
+        range.select();
+      }
+    },
+
+    getTextFromHeadToCaret: function () {
+      this.el.focus();
+      var range = document.selection.createRange();
+      range.moveStart('character', -this.el.value.length);
+      var arr = range.text.split(sentinelChar)
+      return arr.length === 1 ? arr[0] : arr[1];
+    }
+  });
+
+  $.fn.textcomplete.IETextarea = IETextarea;
+}(jQuery);
+
+// NOTE: TextComplete plugin has contenteditable support but it does not work
+//       fine especially on old IEs.
+//       Any pull requests are REALLY welcome.
+
++function ($) {
+  'use strict';
+
+  // ContentEditable adapter
+  // =======================
+  //
+  // Adapter for contenteditable elements.
+  function ContentEditable (element, completer, option) {
+    this.initialize(element, completer, option);
+  }
+
+  $.extend(ContentEditable.prototype, $.fn.textcomplete.Adapter.prototype, {
+    // Public methods
+    // --------------
+
+    // Update the content with the given value and strategy.
+    // When an dropdown item is selected, it is executed.
+    select: function (value, strategy, e) {
+      var pre = this.getTextFromHeadToCaret();
+      // use ownerDocument instead of window to support iframes
+      var sel = this.el.ownerDocument.getSelection();
+      
+      var range = sel.getRangeAt(0);
+      var selection = range.cloneRange();
+      selection.selectNodeContents(range.startContainer);
+      var content = selection.toString();
+      var post = content.substring(range.startOffset);
+      var newSubstr = strategy.replace(value, e);
+      var regExp;
+      if (typeof newSubstr !== 'undefined') {
+        if ($.isArray(newSubstr)) {
+          post = newSubstr[1] + post;
+          newSubstr = newSubstr[0];
+        }
+        regExp = $.isFunction(strategy.match) ? strategy.match(pre) : strategy.match;
+        pre = pre.replace(regExp, newSubstr)
+            .replace(/ $/, "&nbsp"); // &nbsp necessary at least for CKeditor to not eat spaces
+        range.selectNodeContents(range.startContainer);
+        range.deleteContents();
+        
+        // create temporary elements
+        var preWrapper = this.el.ownerDocument.createElement("div");
+        preWrapper.innerHTML = pre;
+        var postWrapper = this.el.ownerDocument.createElement("div");
+        postWrapper.innerHTML = post;
+        
+        // create the fragment thats inserted
+        var fragment = this.el.ownerDocument.createDocumentFragment();
+        var childNode;
+        var lastOfPre;
+        while (childNode = preWrapper.firstChild) {
+        	lastOfPre = fragment.appendChild(childNode);
+        }
+        while (childNode = postWrapper.firstChild) {
+        	fragment.appendChild(childNode);
+        }
+        
+        // insert the fragment & jump behind the last node in "pre"
+        range.insertNode(fragment);
+        range.setStartAfter(lastOfPre);
+        
+        range.collapse(true);
+        sel.removeAllRanges();
+        sel.addRange(range);
+      }
+    },
+
+    // Private methods
+    // ---------------
+
+    // Returns the caret's relative position from the contenteditable's
+    // left top corner.
+    //
+    // Examples
+    //
+    //   this._getCaretRelativePosition()
+    //   //=> { top: 18, left: 200, lineHeight: 16 }
+    //
+    // Dropdown's position will be decided using the result.
+    _getCaretRelativePosition: function () {
+      var range = this.el.ownerDocument.getSelection().getRangeAt(0).cloneRange();
+      var node = this.el.ownerDocument.createElement('span');
+      range.insertNode(node);
+      range.selectNodeContents(node);
+      range.deleteContents();
+      var $node = $(node);
+      var position = $node.offset();
+      position.left -= this.$el.offset().left;
+      position.top += $node.height() - this.$el.offset().top;
+      position.lineHeight = $node.height();
+      
+      // special positioning logic for iframes
+      // this is typically used for contenteditables such as tinymce or ckeditor
+      if (this.completer.$iframe) {
+        var iframePosition = this.completer.$iframe.offset();
+        position.top += iframePosition.top;
+        position.left += iframePosition.left;
+        //subtract scrollTop from element in iframe
+        position.top -= this.$el.scrollTop(); 
+      }
+      
+      $node.remove();
+      return position;
+    },
+
+    // Returns the string between the first character and the caret.
+    // Completer will be triggered with the result for start autocompleting.
+    //
+    // Example
+    //
+    //   // Suppose the html is '<b>hello</b> wor|ld' and | is the caret.
+    //   this.getTextFromHeadToCaret()
+    //   // => ' wor'  // not '<b>hello</b> wor'
+    getTextFromHeadToCaret: function () {
+      var range = this.el.ownerDocument.getSelection().getRangeAt(0);
+      var selection = range.cloneRange();
+      selection.selectNodeContents(range.startContainer);
+      return selection.toString().substring(0, range.startOffset);
+    }
+  });
+
+  $.fn.textcomplete.ContentEditable = ContentEditable;
+}(jQuery);
+
+// NOTE: TextComplete plugin has contenteditable support but it does not work
+//       fine especially on old IEs.
+//       Any pull requests are REALLY welcome.
+
++function ($) {
+  'use strict';
+
+  // CKEditor adapter
+  // =======================
+  //
+  // Adapter for CKEditor, based on contenteditable elements.
+  function CKEditor (element, completer, option) {
+    this.initialize(element, completer, option);
+  }
+
+  $.extend(CKEditor.prototype, $.fn.textcomplete.ContentEditable.prototype, {
+    _bindEvents: function () {
+      var $this = this;
+      CKEDITOR.instances["issue_notes"].on('key', function(event) {
+        var domEvent = event.data;
+        $this._onKeyup(domEvent);
+        if ($this.completer.dropdown.shown && $this._skipSearch(domEvent)) {
+          return false;
+        }
+      }, null, null, 1); // 1 = Priority = Important!
+      // we actually also need the native event, as the CKEditor one is happening to late
+      this.$el.on('keyup.' + this.id, $.proxy(this._onKeyup, this));
+    },
+});
+
+  $.fn.textcomplete.CKEditor = CKEditor;
+}(jQuery);
+
+// The MIT License (MIT)
+// 
+// Copyright (c) 2015 Jonathan Ong me@jongleberry.com
+// 
+// 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.
+//
+// https://github.com/component/textarea-caret-position
+
+(function ($) {
+
+// The properties that we copy into a mirrored div.
+// Note that some browsers, such as Firefox,
+// do not concatenate properties, i.e. padding-top, bottom etc. -> padding,
+// so we have to do every single property specifically.
+var properties = [
+  'direction',  // RTL support
+  'boxSizing',
+  'width',  // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does
+  'height',
+  'overflowX',
+  'overflowY',  // copy the scrollbar for IE
+
+  'borderTopWidth',
+  'borderRightWidth',
+  'borderBottomWidth',
+  'borderLeftWidth',
+  'borderStyle',
+
+  'paddingTop',
+  'paddingRight',
+  'paddingBottom',
+  'paddingLeft',
+
+  // https://developer.mozilla.org/en-US/docs/Web/CSS/font
+  'fontStyle',
+  'fontVariant',
+  'fontWeight',
+  'fontStretch',
+  'fontSize',
+  'fontSizeAdjust',
+  'lineHeight',
+  'fontFamily',
+
+  'textAlign',
+  'textTransform',
+  'textIndent',
+  'textDecoration',  // might not make a difference, but better be safe
+
+  'letterSpacing',
+  'wordSpacing',
+
+  'tabSize',
+  'MozTabSize'
+
+];
+
+var isBrowser = (typeof window !== 'undefined');
+var isFirefox = (isBrowser && window.mozInnerScreenX != null);
+
+function getCaretCoordinates(element, position, options) {
+  if(!isBrowser) {
+    throw new Error('textarea-caret-position#getCaretCoordinates should only be called in a browser');
+  }
+
+  var debug = options && options.debug || false;
+  if (debug) {
+    var el = document.querySelector('#input-textarea-caret-position-mirror-div');
+    if ( el ) { el.parentNode.removeChild(el); }
+  }
+
+  // mirrored div
+  var div = document.createElement('div');
+  div.id = 'input-textarea-caret-position-mirror-div';
+  document.body.appendChild(div);
+
+  var style = div.style;
+  var computed = window.getComputedStyle? getComputedStyle(element) : element.currentStyle;  // currentStyle for IE < 9
+
+  // default textarea styles
+  style.whiteSpace = 'pre-wrap';
+  if (element.nodeName !== 'INPUT')
+    style.wordWrap = 'break-word';  // only for textarea-s
+
+  // position off-screen
+  style.position = 'absolute';  // required to return coordinates properly
+  if (!debug)
+    style.visibility = 'hidden';  // not 'display: none' because we want rendering
+
+  // transfer the element's properties to the div
+  properties.forEach(function (prop) {
+    style[prop] = computed[prop];
+  });
+
+  if (isFirefox) {
+    // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275
+    if (element.scrollHeight > parseInt(computed.height))
+      style.overflowY = 'scroll';
+  } else {
+    style.overflow = 'hidden';  // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'
+  }
+
+  div.textContent = element.value.substring(0, position);
+  // the second special handling for input type="text" vs textarea: spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037
+  if (element.nodeName === 'INPUT')
+    div.textContent = div.textContent.replace(/\s/g, '\u00a0');
+
+  var span = document.createElement('span');
+  // Wrapping must be replicated *exactly*, including when a long word gets
+  // onto the next line, with whitespace at the end of the line before (#7).
+  // The  *only* reliable way to do that is to copy the *entire* rest of the
+  // textarea's content into the <span> created at the caret position.
+  // for inputs, just '.' would be enough, but why bother?
+  span.textContent = element.value.substring(position) || '.';  // || because a completely empty faux span doesn't render at all
+  div.appendChild(span);
+
+  var coordinates = {
+    top: span.offsetTop + parseInt(computed['borderTopWidth']),
+    left: span.offsetLeft + parseInt(computed['borderLeftWidth'])
+  };
+
+  if (debug) {
+    span.style.backgroundColor = '#aaa';
+  } else {
+    document.body.removeChild(div);
+  }
+
+  return coordinates;
+}
+
+$.fn.textcomplete.getCaretCoordinates = getCaretCoordinates;
+
+}(jQuery));
+
+return jQuery;
+}));
diff --git a/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete-1.7.1.min.js b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete-1.7.1.min.js
new file mode 100644
index 0000000..32f6414
--- /dev/null
+++ b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete-1.7.1.min.js
@@ -0,0 +1,3 @@
+/*! jquery-textcomplete - v1.7.1 - 2016-08-29 */
+!function(a){if("function"==typeof define&&define.amd)define(["jquery"],a);else if("object"==typeof module&&module.exports){var b=require("jquery");module.exports=a(b)}else a(jQuery)}(function(a){if("undefined"==typeof a)throw new Error("jQuery.textcomplete requires jQuery");return+function(a){"use strict";var b=function(a){console.warn&&console.warn(a)},c=1;a.fn.textcomplete=function(d,e){var f=Array.prototype.slice.call(arguments);return this.each(function(){var g=this,h=a(this),i=h.data("textComplete");if(i||(e||(e={}),e._oid=c++,i=new a.fn.textcomplete.Completer(this,e),h.data("textComplete",i)),"string"==typeof d){if(!i)return;f.shift(),i[d].apply(i,f),"destroy"===d&&h.removeData("textComplete")}else a.each(d,function(c){a.each(["header","footer","placement","maxCount"],function(a){c[a]&&(i.option[a]=c[a],b(a+"as a strategy param is deprecated. Use option."),delete c[a])})}),i.register(a.fn.textcomplete.Strategy.parse(d,{el:g,$el:h}))})}}(a),+function(a){"use strict";function b(c,d){if(this.$el=a(c),this.id="textcomplete"+e++,this.strategies=[],this.views=[],this.option=a.extend({},b.defaults,d),!(this.$el.is("input[type=text]")||this.$el.is("input[type=search]")||this.$el.is("textarea")||c.isContentEditable||"true"==c.contentEditable))throw new Error("textcomplete must be called on a Textarea or a ContentEditable.");if(c===c.ownerDocument.activeElement)this.initialize();else{var f=this;this.$el.one("focus."+this.id,function(){f.initialize()}),this.option.adapter&&"CKEditor"!=this.option.adapter||"undefined"==typeof CKEDITOR||!this.$el.is("textarea")||CKEDITOR.on("instanceReady",function(b){b.editor.once("focus",function(c){f.$el=a(b.editor.editable().$),f.option.adapter||(f.option.adapter=a.fn.textcomplete.CKEditor),f.initialize()})})}}var c=function(a){var b,c;return function(){var d=Array.prototype.slice.call(arguments);if(b)return void(c=d);b=!0;var e=this;d.unshift(function f(){if(c){var d=c;c=void 0,d.unshift(f),a.apply(e,d)}else b=!1}),a.apply(this,d)}},d=function(a){return"[object String]"===Object.prototype.toString.call(a)},e=0;b.defaults={appendTo:"body",className:"",dropdownClassName:"dropdown-menu textcomplete-dropdown",maxCount:10,zIndex:"100",rightEdgeOffset:30},a.extend(b.prototype,{id:null,option:null,strategies:null,adapter:null,dropdown:null,$el:null,$iframe:null,initialize:function(){var b=this.$el.get(0);if(this.$el.prop("ownerDocument")!==document&&window.frames.length)for(var c=0;c<window.frames.length;c++)if(this.$el.prop("ownerDocument")===window.frames[c].document){this.$iframe=a(window.frames[c].frameElement);break}this.dropdown=new a.fn.textcomplete.Dropdown(b,this,this.option);var d,e;this.option.adapter?d=this.option.adapter:(e=this.$el.is("textarea")||this.$el.is("input[type=text]")||this.$el.is("input[type=search]")?"number"==typeof b.selectionEnd?"Textarea":"IETextarea":"ContentEditable",d=a.fn.textcomplete[e]),this.adapter=new d(b,this,this.option)},destroy:function(){this.$el.off("."+this.id),this.adapter&&this.adapter.destroy(),this.dropdown&&this.dropdown.destroy(),this.$el=this.adapter=this.dropdown=null},deactivate:function(){this.dropdown&&this.dropdown.deactivate()},trigger:function(a,b){this.dropdown||this.initialize(),null!=a||(a=this.adapter.getTextFromHeadToCaret());var c=this._extractSearchQuery(a);if(c.length){var d=c[1];if(b&&this._term===d&&""!==d)return;this._term=d,this._search.apply(this,c)}else this._term=null,this.dropdown.deactivate()},fire:function(a){var b=Array.prototype.slice.call(arguments,1);return this.$el.trigger(a,b),this},register:function(a){Array.prototype.push.apply(this.strategies,a)},select:function(a,b,c){this._term=null,this.adapter.select(a,b,c),this.fire("change").fire("textComplete:select",a,b),this.adapter.focus()},_clearAtNext:!0,_term:null,_extractSearchQuery:function(b){for(var c=0;c<this.strategies.length;c++){var e=this.strategies[c],f=e.context(b);if(f||""===f){var g=a.isFunction(e.match)?e.match(b):e.match;d(f)&&(b=f);var h=b.match(g);if(h)return[e,h[e.index],h]}}return[]},_search:c(function(a,b,c,d){var e=this;b.search(c,function(d,f){e.dropdown.shown||e.dropdown.activate(),e._clearAtNext&&(e.dropdown.clear(),e._clearAtNext=!1),e.dropdown.setPosition(e.adapter.getCaretPosition()),e.dropdown.render(e._zip(d,b,c)),f||(a(),e._clearAtNext=!0)},d)}),_zip:function(b,c,d){return a.map(b,function(a){return{value:a,strategy:c,term:d}})}}),a.fn.textcomplete.Completer=b}(a),+function(a){"use strict";function b(c,d,f){this.$el=b.createElement(f),this.completer=d,this.id=d.id+"dropdown",this._data=[],this.$inputEl=a(c),this.option=f,f.listPosition&&(this.setPosition=f.listPosition),f.height&&this.$el.height(f.height);var g=this;a.each(["maxCount","placement","footer","header","noResultsMessage","className"],function(a,b){null!=f[b]&&(g[b]=f[b])}),this._bindEvents(c),e[this.id]=this}var c=a(window),d=function(a,b){var c,d,e=b.strategy.idProperty;for(c=0;c<a.length;c++)if(d=a[c],d.strategy===b.strategy)if(e){if(d.value[e]===b.value[e])return!0}else if(d.value===b.value)return!0;return!1},e={};a(document).on("click",function(b){var c=b.originalEvent&&b.originalEvent.keepTextCompleteDropdown;a.each(e,function(a,b){a!==c&&b.deactivate()})});var f={SKIP_DEFAULT:0,KEY_UP:1,KEY_DOWN:2,KEY_ENTER:3,KEY_PAGEUP:4,KEY_PAGEDOWN:5,KEY_ESCAPE:6};a.extend(b,{createElement:function(b){var c=b.appendTo;c instanceof a||(c=a(c));var d=a("<ul></ul>").addClass(b.dropdownClassName).attr("id","textcomplete-dropdown-"+b._oid).css({display:"none",left:0,position:"absolute",zIndex:b.zIndex}).appendTo(c);return d}}),a.extend(b.prototype,{$el:null,$inputEl:null,completer:null,footer:null,header:null,id:null,maxCount:null,placement:"",shown:!1,data:[],className:"",destroy:function(){this.deactivate(),this.$el.off("."+this.id),this.$inputEl.off("."+this.id),this.clear(),this.$el.remove(),this.$el=this.$inputEl=this.completer=null,delete e[this.id]},render:function(b){var c=this._buildContents(b),d=a.map(this.data,function(a){return a.value});if(this.data.length){var e=b[0].strategy;e.id?this.$el.attr("data-strategy",e.id):this.$el.removeAttr("data-strategy"),this._renderHeader(d),this._renderFooter(d),c&&(this._renderContents(c),this._fitToBottom(),this._fitToRight(),this._activateIndexedItem()),this._setScroll()}else this.noResultsMessage?this._renderNoResultsMessage(d):this.shown&&this.deactivate()},setPosition:function(b){var d="absolute";return this.$inputEl.add(this.$inputEl.parents()).each(function(){return"absolute"===a(this).css("position")?!1:"fixed"===a(this).css("position")?(b.top-=c.scrollTop(),b.left-=c.scrollLeft(),d="fixed",!1):void 0}),this.$el.css(this._applyPlacement(b)),this.$el.css({position:d}),this},clear:function(){this.$el.html(""),this.data=[],this._index=0,this._$header=this._$footer=this._$noResultsMessage=null},activate:function(){return this.shown||(this.clear(),this.$el.show(),this.className&&this.$el.addClass(this.className),this.completer.fire("textComplete:show"),this.shown=!0),this},deactivate:function(){return this.shown&&(this.$el.hide(),this.className&&this.$el.removeClass(this.className),this.completer.fire("textComplete:hide"),this.shown=!1),this},isUp:function(a){return 38===a.keyCode||a.ctrlKey&&80===a.keyCode},isDown:function(a){return 40===a.keyCode||a.ctrlKey&&78===a.keyCode},isEnter:function(a){var b=a.ctrlKey||a.altKey||a.metaKey||a.shiftKey;return!b&&(13===a.keyCode||9===a.keyCode||this.option.completeOnSpace===!0&&32===a.keyCode)},isPageup:function(a){return 33===a.keyCode},isPagedown:function(a){return 34===a.keyCode},isEscape:function(a){return 27===a.keyCode},_data:null,_index:null,_$header:null,_$noResultsMessage:null,_$footer:null,_bindEvents:function(){this.$el.on("mousedown."+this.id,".textcomplete-item",a.proxy(this._onClick,this)),this.$el.on("touchstart."+this.id,".textcomplete-item",a.proxy(this._onClick,this)),this.$el.on("mouseover."+this.id,".textcomplete-item",a.proxy(this._onMouseover,this)),this.$inputEl.on("keydown."+this.id,a.proxy(this._onKeydown,this))},_onClick:function(b){var c=a(b.target);b.preventDefault(),b.originalEvent.keepTextCompleteDropdown=this.id,c.hasClass("textcomplete-item")||(c=c.closest(".textcomplete-item"));var d=this.data[parseInt(c.data("index"),10)];this.completer.select(d.value,d.strategy,b);var e=this;setTimeout(function(){e.deactivate(),"touchstart"===b.type&&e.$inputEl.focus()},0)},_onMouseover:function(b){var c=a(b.target);b.preventDefault(),c.hasClass("textcomplete-item")||(c=c.closest(".textcomplete-item")),this._index=parseInt(c.data("index"),10),this._activateIndexedItem()},_onKeydown:function(b){if(this.shown){var c;switch(a.isFunction(this.option.onKeydown)&&(c=this.option.onKeydown(b,f)),null==c&&(c=this._defaultKeydown(b)),c){case f.KEY_UP:b.preventDefault(),this._up();break;case f.KEY_DOWN:b.preventDefault(),this._down();break;case f.KEY_ENTER:b.preventDefault(),this._enter(b);break;case f.KEY_PAGEUP:b.preventDefault(),this._pageup();break;case f.KEY_PAGEDOWN:b.preventDefault(),this._pagedown();break;case f.KEY_ESCAPE:b.preventDefault(),this.deactivate()}}},_defaultKeydown:function(a){return this.isUp(a)?f.KEY_UP:this.isDown(a)?f.KEY_DOWN:this.isEnter(a)?f.KEY_ENTER:this.isPageup(a)?f.KEY_PAGEUP:this.isPagedown(a)?f.KEY_PAGEDOWN:this.isEscape(a)?f.KEY_ESCAPE:void 0},_up:function(){0===this._index?this._index=this.data.length-1:this._index-=1,this._activateIndexedItem(),this._setScroll()},_down:function(){this._index===this.data.length-1?this._index=0:this._index+=1,this._activateIndexedItem(),this._setScroll()},_enter:function(a){var b=this.data[parseInt(this._getActiveElement().data("index"),10)];this.completer.select(b.value,b.strategy,a),this.deactivate()},_pageup:function(){var b=0,c=this._getActiveElement().position().top-this.$el.innerHeight();this.$el.children().each(function(d){return a(this).position().top+a(this).outerHeight()>c?(b=d,!1):void 0}),this._index=b,this._activateIndexedItem(),this._setScroll()},_pagedown:function(){var b=this.data.length-1,c=this._getActiveElement().position().top+this.$el.innerHeight();this.$el.children().each(function(d){return a(this).position().top>c?(b=d,!1):void 0}),this._index=b,this._activateIndexedItem(),this._setScroll()},_activateIndexedItem:function(){this.$el.find(".textcomplete-item.active").removeClass("active"),this._getActiveElement().addClass("active")},_getActiveElement:function(){return this.$el.children(".textcomplete-item:nth("+this._index+")")},_setScroll:function(){var a=this._getActiveElement(),b=a.position().top,c=a.outerHeight(),d=this.$el.innerHeight(),e=this.$el.scrollTop();0===this._index||this._index==this.data.length-1||0>b?this.$el.scrollTop(b+e):b+c>d&&this.$el.scrollTop(b+c+e-d)},_buildContents:function(a){var b,c,e,f="";for(c=0;c<a.length&&this.data.length!==this.maxCount;c++)b=a[c],d(this.data,b)||(e=this.data.length,this.data.push(b),f+='<li class="textcomplete-item" data-index="'+e+'"><a>',f+=b.strategy.template(b.value,b.term),f+="</a></li>");return f},_renderHeader:function(b){if(this.header){this._$header||(this._$header=a('<li class="textcomplete-header"></li>').prependTo(this.$el));var c=a.isFunction(this.header)?this.header(b):this.header;this._$header.html(c)}},_renderFooter:function(b){if(this.footer){this._$footer||(this._$footer=a('<li class="textcomplete-footer"></li>').appendTo(this.$el));var c=a.isFunction(this.footer)?this.footer(b):this.footer;this._$footer.html(c)}},_renderNoResultsMessage:function(b){if(this.noResultsMessage){this._$noResultsMessage||(this._$noResultsMessage=a('<li class="textcomplete-no-results-message"></li>').appendTo(this.$el));var c=a.isFunction(this.noResultsMessage)?this.noResultsMessage(b):this.noResultsMessage;this._$noResultsMessage.html(c)}},_renderContents:function(a){this._$footer?this._$footer.before(a):this.$el.append(a)},_fitToBottom:function(){var a=c.scrollTop()+c.height(),b=this.$el.height();this.$el.position().top+b>a&&(this.completer.$iframe||this.$el.offset({top:a-b}))},_fitToRight:function(){for(var a,b=this.option.rightEdgeOffset,d=this.$el.offset().left,e=this.$el.width(),f=c.width()-b;d+e>f&&(this.$el.offset({left:d-b}),a=this.$el.offset().left,!(a>=d));)d=a},_applyPlacement:function(a){return-1!==this.placement.indexOf("top")?a={top:"auto",bottom:this.$el.parent().height()-a.top+a.lineHeight,left:a.left}:(a.bottom="auto",delete a.lineHeight),-1!==this.placement.indexOf("absleft")?a.left=0:-1!==this.placement.indexOf("absright")&&(a.right=0,a.left="auto"),a}}),a.fn.textcomplete.Dropdown=b,a.extend(a.fn.textcomplete,f)}(a),+function(a){"use strict";function b(b){a.extend(this,b),this.cache&&(this.search=c(this.search))}var c=function(a){var b={};return function(c,d){b[c]?d(b[c]):a.call(this,c,function(a){b[c]=(b[c]||[]).concat(a),d.apply(null,arguments)})}};b.parse=function(c,d){return a.map(c,function(a){var c=new b(a);return c.el=d.el,c.$el=d.$el,c})},a.extend(b.prototype,{match:null,replace:null,search:null,id:null,cache:!1,context:function(){return!0},index:2,template:function(a){return a},idProperty:null}),a.fn.textcomplete.Strategy=b}(a),+function(a){"use strict";function b(){}var c=Date.now||function(){return(new Date).getTime()},d=function(a,b){var d,e,f,g,h,i=function(){var j=c()-g;b>j?d=setTimeout(i,b-j):(d=null,h=a.apply(f,e),f=e=null)};return function(){return f=this,e=arguments,g=c(),d||(d=setTimeout(i,b)),h}};a.extend(b.prototype,{id:null,completer:null,el:null,$el:null,option:null,initialize:function(b,c,e){this.el=b,this.$el=a(b),this.id=c.id+this.constructor.name,this.completer=c,this.option=e,this.option.debounce&&(this._onKeyup=d(this._onKeyup,this.option.debounce)),this._bindEvents()},destroy:function(){this.$el.off("."+this.id),this.$el=this.el=this.completer=null},select:function(){throw new Error("Not implemented")},getCaretPosition:function(){var b=this._getCaretRelativePosition(),c=this.$el.offset(),d=this.option.appendTo;if(d){d instanceof a||(d=a(d));var e=d.offsetParent().offset();c.top-=e.top,c.left-=e.left}return b.top+=c.top,b.left+=c.left,b},focus:function(){this.$el.focus()},_bindEvents:function(){this.$el.on("keyup."+this.id,a.proxy(this._onKeyup,this))},_onKeyup:function(a){this._skipSearch(a)||this.completer.trigger(this.getTextFromHeadToCaret(),!0)},_skipSearch:function(a){switch(a.keyCode){case 9:case 13:case 40:case 38:case 27:return!0}if(a.ctrlKey)switch(a.keyCode){case 78:case 80:return!0}}}),a.fn.textcomplete.Adapter=b}(a),+function(a){"use strict";function b(a,b,c){this.initialize(a,b,c)}a.extend(b.prototype,a.fn.textcomplete.Adapter.prototype,{select:function(b,c,d){var e,f=this.getTextFromHeadToCaret(),g=this.el.value.substring(this.el.selectionEnd),h=c.replace(b,d);"undefined"!=typeof h&&(a.isArray(h)&&(g=h[1]+g,h=h[0]),e=a.isFunction(c.match)?c.match(f):c.match,f=f.replace(e,h),this.$el.val(f+g),this.el.selectionStart=this.el.selectionEnd=f.length)},getTextFromHeadToCaret:function(){return this.el.value.substring(0,this.el.selectionEnd)},_getCaretRelativePosition:function(){var b=a.fn.textcomplete.getCaretCoordinates(this.el,this.el.selectionStart);return{top:b.top+this._calculateLineHeight()-this.$el.scrollTop(),left:b.left-this.$el.scrollLeft(),lineHeight:this._calculateLineHeight()}},_calculateLineHeight:function(){var a=parseInt(this.$el.css("line-height"),10);if(isNaN(a)){var b=this.el.parentNode,c=document.createElement(this.el.nodeName),d=this.el.style;c.setAttribute("style","margin:0px;padding:0px;font-family:"+d.fontFamily+";font-size:"+d.fontSize),c.innerHTML="test",b.appendChild(c),a=c.clientHeight,b.removeChild(c)}return a}}),a.fn.textcomplete.Textarea=b}(a),+function(a){"use strict";function b(b,d,e){this.initialize(b,d,e),a("<span>"+c+"</span>").css({position:"absolute",top:-9999,left:-9999}).insertBefore(b)}var c="吶";a.extend(b.prototype,a.fn.textcomplete.Textarea.prototype,{select:function(b,c,d){var e,f=this.getTextFromHeadToCaret(),g=this.el.value.substring(f.length),h=c.replace(b,d);if("undefined"!=typeof h){a.isArray(h)&&(g=h[1]+g,h=h[0]),e=a.isFunction(c.match)?c.match(f):c.match,f=f.replace(e,h),this.$el.val(f+g),this.el.focus();var i=this.el.createTextRange();i.collapse(!0),i.moveEnd("character",f.length),i.moveStart("character",f.length),i.select()}},getTextFromHeadToCaret:function(){this.el.focus();var a=document.selection.createRange();a.moveStart("character",-this.el.value.length);var b=a.text.split(c);return 1===b.length?b[0]:b[1]}}),a.fn.textcomplete.IETextarea=b}(a),+function(a){"use strict";function b(a,b,c){this.initialize(a,b,c)}a.extend(b.prototype,a.fn.textcomplete.Adapter.prototype,{select:function(b,c,d){var e=this.getTextFromHeadToCaret(),f=this.el.ownerDocument.getSelection(),g=f.getRangeAt(0),h=g.cloneRange();h.selectNodeContents(g.startContainer);var i,j=h.toString(),k=j.substring(g.startOffset),l=c.replace(b,d);if("undefined"!=typeof l){a.isArray(l)&&(k=l[1]+k,l=l[0]),i=a.isFunction(c.match)?c.match(e):c.match,e=e.replace(i,l).replace(/ $/,"&nbsp"),g.selectNodeContents(g.startContainer),g.deleteContents();var m=this.el.ownerDocument.createElement("div");m.innerHTML=e;var n=this.el.ownerDocument.createElement("div");n.innerHTML=k;for(var o,p,q=this.el.ownerDocument.createDocumentFragment();o=m.firstChild;)p=q.appendChild(o);for(;o=n.firstChild;)q.appendChild(o);g.insertNode(q),g.setStartAfter(p),g.collapse(!0),f.removeAllRanges(),f.addRange(g)}},_getCaretRelativePosition:function(){var b=this.el.ownerDocument.getSelection().getRangeAt(0).cloneRange(),c=this.el.ownerDocument.createElement("span");b.insertNode(c),b.selectNodeContents(c),b.deleteContents();var d=a(c),e=d.offset();if(e.left-=this.$el.offset().left,e.top+=d.height()-this.$el.offset().top,e.lineHeight=d.height(),this.completer.$iframe){var f=this.completer.$iframe.offset();e.top+=f.top,e.left+=f.left,e.top-=this.$el.scrollTop()}return d.remove(),e},getTextFromHeadToCaret:function(){var a=this.el.ownerDocument.getSelection().getRangeAt(0),b=a.cloneRange();return b.selectNodeContents(a.startContainer),b.toString().substring(0,a.startOffset)}}),a.fn.textcomplete.ContentEditable=b}(a),+function(a){"use strict";function b(a,b,c){this.initialize(a,b,c)}a.extend(b.prototype,a.fn.textcomplete.ContentEditable.prototype,{_bindEvents:function(){var b=this;CKEDITOR.instances.issue_notes.on("key",function(a){var c=a.data;return b._onKeyup(c),b.completer.dropdown.shown&&b._skipSearch(c)?!1:void 0},null,null,1),this.$el.on("keyup."+this.id,a.proxy(this._onKeyup,this))}}),a.fn.textcomplete.CKEditor=b}(a),function(a){function b(a,b,f){if(!d)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");var g=f&&f.debug||!1;if(g){var h=document.querySelector("#input-textarea-caret-position-mirror-div");h&&h.parentNode.removeChild(h)}var i=document.createElement("div");i.id="input-textarea-caret-position-mirror-div",document.body.appendChild(i);var j=i.style,k=window.getComputedStyle?getComputedStyle(a):a.currentStyle;j.whiteSpace="pre-wrap","INPUT"!==a.nodeName&&(j.wordWrap="break-word"),j.position="absolute",g||(j.visibility="hidden"),c.forEach(function(a){j[a]=k[a]}),e?a.scrollHeight>parseInt(k.height)&&(j.overflowY="scroll"):j.overflow="hidden",i.textContent=a.value.substring(0,b),"INPUT"===a.nodeName&&(i.textContent=i.textContent.replace(/\s/g," "));var l=document.createElement("span");l.textContent=a.value.substring(b)||".",i.appendChild(l);var m={top:l.offsetTop+parseInt(k.borderTopWidth),left:l.offsetLeft+parseInt(k.borderLeftWidth)};return g?l.style.backgroundColor="#aaa":document.body.removeChild(i),m}var c=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],d="undefined"!=typeof window,e=d&&null!=window.mozInnerScreenX;a.fn.textcomplete.getCaretCoordinates=b}(a),a});
+//# sourceMappingURL=dist/jquery.textcomplete.min.map
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete.js b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete.js
new file mode 120000
index 0000000..a2bee68
--- /dev/null
+++ b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete.js
@@ -0,0 +1 @@
+jquery.textcomplete-1.7.1.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete.min.js b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete.min.js
new file mode 120000
index 0000000..8406123
--- /dev/null
+++ b/pagure/static/vendor/jquery.textcomplete/jquery.textcomplete.min.js
@@ -0,0 +1 @@
+jquery.textcomplete-1.7.1.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery/jquery-1.10.2.js b/pagure/static/vendor/jquery/jquery-1.10.2.js
new file mode 100644
index 0000000..c5c6482
--- /dev/null
+++ b/pagure/static/vendor/jquery/jquery-1.10.2.js
@@ -0,0 +1,9789 @@
+/*!
+ * jQuery JavaScript Library v1.10.2
+ * http://jquery.com/
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ *
+ * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2013-07-03T13:48Z
+ */
+(function( window, undefined ) {
+
+// Can't do this because several apps including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through "use strict" call chains. (#13335)
+// Support: Firefox 18+
+//"use strict";
+var
+	// The deferred used on DOM ready
+	readyList,
+
+	// A central reference to the root jQuery(document)
+	rootjQuery,
+
+	// Support: IE<10
+	// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`
+	core_strundefined = typeof undefined,
+
+	// Use the correct document accordingly with window argument (sandbox)
+	location = window.location,
+	document = window.document,
+	docElem = document.documentElement,
+
+	// Map over jQuery in case of overwrite
+	_jQuery = window.jQuery,
+
+	// Map over the $ in case of overwrite
+	_$ = window.$,
+
+	// [[Class]] -> type pairs
+	class2type = {},
+
+	// List of deleted data cache ids, so we can reuse them
+	core_deletedIds = [],
+
+	core_version = "1.10.2",
+
+	// Save a reference to some core methods
+	core_concat = core_deletedIds.concat,
+	core_push = core_deletedIds.push,
+	core_slice = core_deletedIds.slice,
+	core_indexOf = core_deletedIds.indexOf,
+	core_toString = class2type.toString,
+	core_hasOwn = class2type.hasOwnProperty,
+	core_trim = core_version.trim,
+
+	// Define a local copy of jQuery
+	jQuery = function( selector, context ) {
+		// The jQuery object is actually just the init constructor 'enhanced'
+		return new jQuery.fn.init( selector, context, rootjQuery );
+	},
+
+	// Used for matching numbers
+	core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
+
+	// Used for splitting on whitespace
+	core_rnotwhite = /\S+/g,
+
+	// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
+	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
+
+	// A simple way to check for HTML strings
+	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
+	// Strict HTML recognition (#11290: must start with <)
+	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
+
+	// Match a standalone tag
+	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
+
+	// JSON RegExp
+	rvalidchars = /^[\],:{}\s]*$/,
+	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
+	rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,
+	rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,
+
+	// Matches dashed string for camelizing
+	rmsPrefix = /^-ms-/,
+	rdashAlpha = /-([\da-z])/gi,
+
+	// Used by jQuery.camelCase as callback to replace()
+	fcamelCase = function( all, letter ) {
+		return letter.toUpperCase();
+	},
+
+	// The ready event handler
+	completed = function( event ) {
+
+		// readyState === "complete" is good enough for us to call the dom ready in oldIE
+		if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
+			detach();
+			jQuery.ready();
+		}
+	},
+	// Clean-up method for dom ready events
+	detach = function() {
+		if ( document.addEventListener ) {
+			document.removeEventListener( "DOMContentLoaded", completed, false );
+			window.removeEventListener( "load", completed, false );
+
+		} else {
+			document.detachEvent( "onreadystatechange", completed );
+			window.detachEvent( "onload", completed );
+		}
+	};
+
+jQuery.fn = jQuery.prototype = {
+	// The current version of jQuery being used
+	jquery: core_version,
+
+	constructor: jQuery,
+	init: function( selector, context, rootjQuery ) {
+		var match, elem;
+
+		// HANDLE: $(""), $(null), $(undefined), $(false)
+		if ( !selector ) {
+			return this;
+		}
+
+		// Handle HTML strings
+		if ( typeof selector === "string" ) {
+			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
+				// Assume that strings that start and end with <> are HTML and skip the regex check
+				match = [ null, selector, null ];
+
+			} else {
+				match = rquickExpr.exec( selector );
+			}
+
+			// Match html or make sure no context is specified for #id
+			if ( match && (match[1] || !context) ) {
+
+				// HANDLE: $(html) -> $(array)
+				if ( match[1] ) {
+					context = context instanceof jQuery ? context[0] : context;
+
+					// scripts is true for back-compat
+					jQuery.merge( this, jQuery.parseHTML(
+						match[1],
+						context && context.nodeType ? context.ownerDocument || context : document,
+						true
+					) );
+
+					// HANDLE: $(html, props)
+					if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
+						for ( match in context ) {
+							// Properties of context are called as methods if possible
+							if ( jQuery.isFunction( this[ match ] ) ) {
+								this[ match ]( context[ match ] );
+
+							// ...and otherwise set as attributes
+							} else {
+								this.attr( match, context[ match ] );
+							}
+						}
+					}
+
+					return this;
+
+				// HANDLE: $(#id)
+				} else {
+					elem = document.getElementById( match[2] );
+
+					// Check parentNode to catch when Blackberry 4.6 returns
+					// nodes that are no longer in the document #6963
+					if ( elem && elem.parentNode ) {
+						// Handle the case where IE and Opera return items
+						// by name instead of ID
+						if ( elem.id !== match[2] ) {
+							return rootjQuery.find( selector );
+						}
+
+						// Otherwise, we inject the element directly into the jQuery object
+						this.length = 1;
+						this[0] = elem;
+					}
+
+					this.context = document;
+					this.selector = selector;
+					return this;
+				}
+
+			// HANDLE: $(expr, $(...))
+			} else if ( !context || context.jquery ) {
+				return ( context || rootjQuery ).find( selector );
+
+			// HANDLE: $(expr, context)
+			// (which is just equivalent to: $(context).find(expr)
+			} else {
+				return this.constructor( context ).find( selector );
+			}
+
+		// HANDLE: $(DOMElement)
+		} else if ( selector.nodeType ) {
+			this.context = this[0] = selector;
+			this.length = 1;
+			return this;
+
+		// HANDLE: $(function)
+		// Shortcut for document ready
+		} else if ( jQuery.isFunction( selector ) ) {
+			return rootjQuery.ready( selector );
+		}
+
+		if ( selector.selector !== undefined ) {
+			this.selector = selector.selector;
+			this.context = selector.context;
+		}
+
+		return jQuery.makeArray( selector, this );
+	},
+
+	// Start with an empty selector
+	selector: "",
+
+	// The default length of a jQuery object is 0
+	length: 0,
+
+	toArray: function() {
+		return core_slice.call( this );
+	},
+
+	// Get the Nth element in the matched element set OR
+	// Get the whole matched element set as a clean array
+	get: function( num ) {
+		return num == null ?
+
+			// Return a 'clean' array
+			this.toArray() :
+
+			// Return just the object
+			( num < 0 ? this[ this.length + num ] : this[ num ] );
+	},
+
+	// Take an array of elements and push it onto the stack
+	// (returning the new matched element set)
+	pushStack: function( elems ) {
+
+		// Build a new jQuery matched element set
+		var ret = jQuery.merge( this.constructor(), elems );
+
+		// Add the old object onto the stack (as a reference)
+		ret.prevObject = this;
+		ret.context = this.context;
+
+		// Return the newly-formed element set
+		return ret;
+	},
+
+	// Execute a callback for every element in the matched set.
+	// (You can seed the arguments with an array of args, but this is
+	// only used internally.)
+	each: function( callback, args ) {
+		return jQuery.each( this, callback, args );
+	},
+
+	ready: function( fn ) {
+		// Add the callback
+		jQuery.ready.promise().done( fn );
+
+		return this;
+	},
+
+	slice: function() {
+		return this.pushStack( core_slice.apply( this, arguments ) );
+	},
+
+	first: function() {
+		return this.eq( 0 );
+	},
+
+	last: function() {
+		return this.eq( -1 );
+	},
+
+	eq: function( i ) {
+		var len = this.length,
+			j = +i + ( i < 0 ? len : 0 );
+		return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
+	},
+
+	map: function( callback ) {
+		return this.pushStack( jQuery.map(this, function( elem, i ) {
+			return callback.call( elem, i, elem );
+		}));
+	},
+
+	end: function() {
+		return this.prevObject || this.constructor(null);
+	},
+
+	// For internal use only.
+	// Behaves like an Array's method, not like a jQuery method.
+	push: core_push,
+	sort: [].sort,
+	splice: [].splice
+};
+
+// Give the init function the jQuery prototype for later instantiation
+jQuery.fn.init.prototype = jQuery.fn;
+
+jQuery.extend = jQuery.fn.extend = function() {
+	var src, copyIsArray, copy, name, options, clone,
+		target = arguments[0] || {},
+		i = 1,
+		length = arguments.length,
+		deep = false;
+
+	// Handle a deep copy situation
+	if ( typeof target === "boolean" ) {
+		deep = target;
+		target = arguments[1] || {};
+		// skip the boolean and the target
+		i = 2;
+	}
+
+	// Handle case when target is a string or something (possible in deep copy)
+	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
+		target = {};
+	}
+
+	// extend jQuery itself if only one argument is passed
+	if ( length === i ) {
+		target = this;
+		--i;
+	}
+
+	for ( ; i < length; i++ ) {
+		// Only deal with non-null/undefined values
+		if ( (options = arguments[ i ]) != null ) {
+			// Extend the base object
+			for ( name in options ) {
+				src = target[ name ];
+				copy = options[ name ];
+
+				// Prevent never-ending loop
+				if ( target === copy ) {
+					continue;
+				}
+
+				// Recurse if we're merging plain objects or arrays
+				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
+					if ( copyIsArray ) {
+						copyIsArray = false;
+						clone = src && jQuery.isArray(src) ? src : [];
+
+					} else {
+						clone = src && jQuery.isPlainObject(src) ? src : {};
+					}
+
+					// Never move original objects, clone them
+					target[ name ] = jQuery.extend( deep, clone, copy );
+
+				// Don't bring in undefined values
+				} else if ( copy !== undefined ) {
+					target[ name ] = copy;
+				}
+			}
+		}
+	}
+
+	// Return the modified object
+	return target;
+};
+
+jQuery.extend({
+	// Unique for each copy of jQuery on the page
+	// Non-digits removed to match rinlinejQuery
+	expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ),
+
+	noConflict: function( deep ) {
+		if ( window.$ === jQuery ) {
+			window.$ = _$;
+		}
+
+		if ( deep && window.jQuery === jQuery ) {
+			window.jQuery = _jQuery;
+		}
+
+		return jQuery;
+	},
+
+	// Is the DOM ready to be used? Set to true once it occurs.
+	isReady: false,
+
+	// A counter to track how many items to wait for before
+	// the ready event fires. See #6781
+	readyWait: 1,
+
+	// Hold (or release) the ready event
+	holdReady: function( hold ) {
+		if ( hold ) {
+			jQuery.readyWait++;
+		} else {
+			jQuery.ready( true );
+		}
+	},
+
+	// Handle when the DOM is ready
+	ready: function( wait ) {
+
+		// Abort if there are pending holds or we're already ready
+		if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
+			return;
+		}
+
+		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
+		if ( !document.body ) {
+			return setTimeout( jQuery.ready );
+		}
+
+		// Remember that the DOM is ready
+		jQuery.isReady = true;
+
+		// If a normal DOM Ready event fired, decrement, and wait if need be
+		if ( wait !== true && --jQuery.readyWait > 0 ) {
+			return;
+		}
+
+		// If there are functions bound, to execute
+		readyList.resolveWith( document, [ jQuery ] );
+
+		// Trigger any bound ready events
+		if ( jQuery.fn.trigger ) {
+			jQuery( document ).trigger("ready").off("ready");
+		}
+	},
+
+	// See test/unit/core.js for details concerning isFunction.
+	// Since version 1.3, DOM methods and functions like alert
+	// aren't supported. They return false on IE (#2968).
+	isFunction: function( obj ) {
+		return jQuery.type(obj) === "function";
+	},
+
+	isArray: Array.isArray || function( obj ) {
+		return jQuery.type(obj) === "array";
+	},
+
+	isWindow: function( obj ) {
+		/* jshint eqeqeq: false */
+		return obj != null && obj == obj.window;
+	},
+
+	isNumeric: function( obj ) {
+		return !isNaN( parseFloat(obj) ) && isFinite( obj );
+	},
+
+	type: function( obj ) {
+		if ( obj == null ) {
+			return String( obj );
+		}
+		return typeof obj === "object" || typeof obj === "function" ?
+			class2type[ core_toString.call(obj) ] || "object" :
+			typeof obj;
+	},
+
+	isPlainObject: function( obj ) {
+		var key;
+
+		// Must be an Object.
+		// Because of IE, we also have to check the presence of the constructor property.
+		// Make sure that DOM nodes and window objects don't pass through, as well
+		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
+			return false;
+		}
+
+		try {
+			// Not own constructor property must be Object
+			if ( obj.constructor &&
+				!core_hasOwn.call(obj, "constructor") &&
+				!core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
+				return false;
+			}
+		} catch ( e ) {
+			// IE8,9 Will throw exceptions on certain host objects #9897
+			return false;
+		}
+
+		// Support: IE<9
+		// Handle iteration over inherited properties before own properties.
+		if ( jQuery.support.ownLast ) {
+			for ( key in obj ) {
+				return core_hasOwn.call( obj, key );
+			}
+		}
+
+		// Own properties are enumerated firstly, so to speed up,
+		// if last one is own, then all properties are own.
+		for ( key in obj ) {}
+
+		return key === undefined || core_hasOwn.call( obj, key );
+	},
+
+	isEmptyObject: function( obj ) {
+		var name;
+		for ( name in obj ) {
+			return false;
+		}
+		return true;
+	},
+
+	error: function( msg ) {
+		throw new Error( msg );
+	},
+
+	// data: string of html
+	// context (optional): If specified, the fragment will be created in this context, defaults to document
+	// keepScripts (optional): If true, will include scripts passed in the html string
+	parseHTML: function( data, context, keepScripts ) {
+		if ( !data || typeof data !== "string" ) {
+			return null;
+		}
+		if ( typeof context === "boolean" ) {
+			keepScripts = context;
+			context = false;
+		}
+		context = context || document;
+
+		var parsed = rsingleTag.exec( data ),
+			scripts = !keepScripts && [];
+
+		// Single tag
+		if ( parsed ) {
+			return [ context.createElement( parsed[1] ) ];
+		}
+
+		parsed = jQuery.buildFragment( [ data ], context, scripts );
+		if ( scripts ) {
+			jQuery( scripts ).remove();
+		}
+		return jQuery.merge( [], parsed.childNodes );
+	},
+
+	parseJSON: function( data ) {
+		// Attempt to parse using the native JSON parser first
+		if ( window.JSON && window.JSON.parse ) {
+			return window.JSON.parse( data );
+		}
+
+		if ( data === null ) {
+			return data;
+		}
+
+		if ( typeof data === "string" ) {
+
+			// Make sure leading/trailing whitespace is removed (IE can't handle it)
+			data = jQuery.trim( data );
+
+			if ( data ) {
+				// Make sure the incoming data is actual JSON
+				// Logic borrowed from http://json.org/json2.js
+				if ( rvalidchars.test( data.replace( rvalidescape, "@" )
+					.replace( rvalidtokens, "]" )
+					.replace( rvalidbraces, "")) ) {
+
+					return ( new Function( "return " + data ) )();
+				}
+			}
+		}
+
+		jQuery.error( "Invalid JSON: " + data );
+	},
+
+	// Cross-browser xml parsing
+	parseXML: function( data ) {
+		var xml, tmp;
+		if ( !data || typeof data !== "string" ) {
+			return null;
+		}
+		try {
+			if ( window.DOMParser ) { // Standard
+				tmp = new DOMParser();
+				xml = tmp.parseFromString( data , "text/xml" );
+			} else { // IE
+				xml = new ActiveXObject( "Microsoft.XMLDOM" );
+				xml.async = "false";
+				xml.loadXML( data );
+			}
+		} catch( e ) {
+			xml = undefined;
+		}
+		if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
+			jQuery.error( "Invalid XML: " + data );
+		}
+		return xml;
+	},
+
+	noop: function() {},
+
+	// Evaluates a script in a global context
+	// Workarounds based on findings by Jim Driscoll
+	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
+	globalEval: function( data ) {
+		if ( data && jQuery.trim( data ) ) {
+			// We use execScript on Internet Explorer
+			// We use an anonymous function so that context is window
+			// rather than jQuery in Firefox
+			( window.execScript || function( data ) {
+				window[ "eval" ].call( window, data );
+			} )( data );
+		}
+	},
+
+	// Convert dashed to camelCase; used by the css and data modules
+	// Microsoft forgot to hump their vendor prefix (#9572)
+	camelCase: function( string ) {
+		return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
+	},
+
+	nodeName: function( elem, name ) {
+		return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
+	},
+
+	// args is for internal usage only
+	each: function( obj, callback, args ) {
+		var value,
+			i = 0,
+			length = obj.length,
+			isArray = isArraylike( obj );
+
+		if ( args ) {
+			if ( isArray ) {
+				for ( ; i < length; i++ ) {
+					value = callback.apply( obj[ i ], args );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( i in obj ) {
+					value = callback.apply( obj[ i ], args );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			}
+
+		// A special, fast, case for the most common use of each
+		} else {
+			if ( isArray ) {
+				for ( ; i < length; i++ ) {
+					value = callback.call( obj[ i ], i, obj[ i ] );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			} else {
+				for ( i in obj ) {
+					value = callback.call( obj[ i ], i, obj[ i ] );
+
+					if ( value === false ) {
+						break;
+					}
+				}
+			}
+		}
+
+		return obj;
+	},
+
+	// Use native String.trim function wherever possible
+	trim: core_trim && !core_trim.call("\uFEFF\xA0") ?
+		function( text ) {
+			return text == null ?
+				"" :
+				core_trim.call( text );
+		} :
+
+		// Otherwise use our own trimming functionality
+		function( text ) {
+			return text == null ?
+				"" :
+				( text + "" ).replace( rtrim, "" );
+		},
+
+	// results is for internal usage only
+	makeArray: function( arr, results ) {
+		var ret = results || [];
+
+		if ( arr != null ) {
+			if ( isArraylike( Object(arr) ) ) {
+				jQuery.merge( ret,
+					typeof arr === "string" ?
+					[ arr ] : arr
+				);
+			} else {
+				core_push.call( ret, arr );
+			}
+		}
+
+		return ret;
+	},
+
+	inArray: function( elem, arr, i ) {
+		var len;
+
+		if ( arr ) {
+			if ( core_indexOf ) {
+				return core_indexOf.call( arr, elem, i );
+			}
+
+			len = arr.length;
+			i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
+
+			for ( ; i < len; i++ ) {
+				// Skip accessing in sparse arrays
+				if ( i in arr && arr[ i ] === elem ) {
+					return i;
+				}
+			}
+		}
+
+		return -1;
+	},
+
+	merge: function( first, second ) {
+		var l = second.length,
+			i = first.length,
+			j = 0;
+
+		if ( typeof l === "number" ) {
+			for ( ; j < l; j++ ) {
+				first[ i++ ] = second[ j ];
+			}
+		} else {
+			while ( second[j] !== undefined ) {
+				first[ i++ ] = second[ j++ ];
+			}
+		}
+
+		first.length = i;
+
+		return first;
+	},
+
+	grep: function( elems, callback, inv ) {
+		var retVal,
+			ret = [],
+			i = 0,
+			length = elems.length;
+		inv = !!inv;
+
+		// Go through the array, only saving the items
+		// that pass the validator function
+		for ( ; i < length; i++ ) {
+			retVal = !!callback( elems[ i ], i );
+			if ( inv !== retVal ) {
+				ret.push( elems[ i ] );
+			}
+		}
+
+		return ret;
+	},
+
+	// arg is for internal usage only
+	map: function( elems, callback, arg ) {
+		var value,
+			i = 0,
+			length = elems.length,
+			isArray = isArraylike( elems ),
+			ret = [];
+
+		// Go through the array, translating each of the items to their
+		if ( isArray ) {
+			for ( ; i < length; i++ ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret[ ret.length ] = value;
+				}
+			}
+
+		// Go through every key on the object,
+		} else {
+			for ( i in elems ) {
+				value = callback( elems[ i ], i, arg );
+
+				if ( value != null ) {
+					ret[ ret.length ] = value;
+				}
+			}
+		}
+
+		// Flatten any nested arrays
+		return core_concat.apply( [], ret );
+	},
+
+	// A global GUID counter for objects
+	guid: 1,
+
+	// Bind a function to a context, optionally partially applying any
+	// arguments.
+	proxy: function( fn, context ) {
+		var args, proxy, tmp;
+
+		if ( typeof context === "string" ) {
+			tmp = fn[ context ];
+			context = fn;
+			fn = tmp;
+		}
+
+		// Quick check to determine if target is callable, in the spec
+		// this throws a TypeError, but we will just return undefined.
+		if ( !jQuery.isFunction( fn ) ) {
+			return undefined;
+		}
+
+		// Simulated bind
+		args = core_slice.call( arguments, 2 );
+		proxy = function() {
+			return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) );
+		};
+
+		// Set the guid of unique handler to the same of original handler, so it can be removed
+		proxy.guid = fn.guid = fn.guid || jQuery.guid++;
+
+		return proxy;
+	},
+
+	// Multifunctional method to get and set values of a collection
+	// The value/s can optionally be executed if it's a function
+	access: function( elems, fn, key, value, chainable, emptyGet, raw ) {
+		var i = 0,
+			length = elems.length,
+			bulk = key == null;
+
+		// Sets many values
+		if ( jQuery.type( key ) === "object" ) {
+			chainable = true;
+			for ( i in key ) {
+				jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
+			}
+
+		// Sets one value
+		} else if ( value !== undefined ) {
+			chainable = true;
+
+			if ( !jQuery.isFunction( value ) ) {
+				raw = true;
+			}
+
+			if ( bulk ) {
+				// Bulk operations run against the entire set
+				if ( raw ) {
+					fn.call( elems, value );
+					fn = null;
+
+				// ...except when executing function values
+				} else {
+					bulk = fn;
+					fn = function( elem, key, value ) {
+						return bulk.call( jQuery( elem ), value );
+					};
+				}
+			}
+
+			if ( fn ) {
+				for ( ; i < length; i++ ) {
+					fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
+				}
+			}
+		}
+
+		return chainable ?
+			elems :
+
+			// Gets
+			bulk ?
+				fn.call( elems ) :
+				length ? fn( elems[0], key ) : emptyGet;
+	},
+
+	now: function() {
+		return ( new Date() ).getTime();
+	},
+
+	// A method for quickly swapping in/out CSS properties to get correct calculations.
+	// Note: this method belongs to the css module but it's needed here for the support module.
+	// If support gets modularized, this method should be moved back to the css module.
+	swap: function( elem, options, callback, args ) {
+		var ret, name,
+			old = {};
+
+		// Remember the old values, and insert the new ones
+		for ( name in options ) {
+			old[ name ] = elem.style[ name ];
+			elem.style[ name ] = options[ name ];
+		}
+
+		ret = callback.apply( elem, args || [] );
+
+		// Revert the old values
+		for ( name in options ) {
+			elem.style[ name ] = old[ name ];
+		}
+
+		return ret;
+	}
+});
+
+jQuery.ready.promise = function( obj ) {
+	if ( !readyList ) {
+
+		readyList = jQuery.Deferred();
+
+		// Catch cases where $(document).ready() is called after the browser event has already occurred.
+		// we once tried to use readyState "interactive" here, but it caused issues like the one
+		// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
+		if ( document.readyState === "complete" ) {
+			// Handle it asynchronously to allow scripts the opportunity to delay ready
+			setTimeout( jQuery.ready );
+
+		// Standards-based browsers support DOMContentLoaded
+		} else if ( document.addEventListener ) {
+			// Use the handy event callback
+			document.addEventListener( "DOMContentLoaded", completed, false );
+
+			// A fallback to window.onload, that will always work
+			window.addEventListener( "load", completed, false );
+
+		// If IE event model is used
+		} else {
+			// Ensure firing before onload, maybe late but safe also for iframes
+			document.attachEvent( "onreadystatechange", completed );
+
+			// A fallback to window.onload, that will always work
+			window.attachEvent( "onload", completed );
+
+			// If IE and not a frame
+			// continually check to see if the document is ready
+			var top = false;
+
+			try {
+				top = window.frameElement == null && document.documentElement;
+			} catch(e) {}
+
+			if ( top && top.doScroll ) {
+				(function doScrollCheck() {
+					if ( !jQuery.isReady ) {
+
+						try {
+							// Use the trick by Diego Perini
+							// http://javascript.nwbox.com/IEContentLoaded/
+							top.doScroll("left");
+						} catch(e) {
+							return setTimeout( doScrollCheck, 50 );
+						}
+
+						// detach all dom ready events
+						detach();
+
+						// and execute any waiting functions
+						jQuery.ready();
+					}
+				})();
+			}
+		}
+	}
+	return readyList.promise( obj );
+};
+
+// Populate the class2type map
+jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
+	class2type[ "[object " + name + "]" ] = name.toLowerCase();
+});
+
+function isArraylike( obj ) {
+	var length = obj.length,
+		type = jQuery.type( obj );
+
+	if ( jQuery.isWindow( obj ) ) {
+		return false;
+	}
+
+	if ( obj.nodeType === 1 && length ) {
+		return true;
+	}
+
+	return type === "array" || type !== "function" &&
+		( length === 0 ||
+		typeof length === "number" && length > 0 && ( length - 1 ) in obj );
+}
+
+// All jQuery objects should point back to these
+rootjQuery = jQuery(document);
+/*!
+ * Sizzle CSS Selector Engine v1.10.2
+ * http://sizzlejs.com/
+ *
+ * Copyright 2013 jQuery Foundation, Inc. and other contributors
+ * Released under the MIT license
+ * http://jquery.org/license
+ *
+ * Date: 2013-07-03
+ */
+(function( window, undefined ) {
+
+var i,
+	support,
+	cachedruns,
+	Expr,
+	getText,
+	isXML,
+	compile,
+	outermostContext,
+	sortInput,
+
+	// Local document vars
+	setDocument,
+	document,
+	docElem,
+	documentIsHTML,
+	rbuggyQSA,
+	rbuggyMatches,
+	matches,
+	contains,
+
+	// Instance-specific data
+	expando = "sizzle" + -(new Date()),
+	preferredDoc = window.document,
+	dirruns = 0,
+	done = 0,
+	classCache = createCache(),
+	tokenCache = createCache(),
+	compilerCache = createCache(),
+	hasDuplicate = false,
+	sortOrder = function( a, b ) {
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+		return 0;
+	},
+
+	// General-purpose constants
+	strundefined = typeof undefined,
+	MAX_NEGATIVE = 1 << 31,
+
+	// Instance methods
+	hasOwn = ({}).hasOwnProperty,
+	arr = [],
+	pop = arr.pop,
+	push_native = arr.push,
+	push = arr.push,
+	slice = arr.slice,
+	// Use a stripped-down indexOf if we can't use a native one
+	indexOf = arr.indexOf || function( elem ) {
+		var i = 0,
+			len = this.length;
+		for ( ; i < len; i++ ) {
+			if ( this[i] === elem ) {
+				return i;
+			}
+		}
+		return -1;
+	},
+
+	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
+
+	// Regular expressions
+
+	// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace
+	whitespace = "[\\x20\\t\\r\\n\\f]",
+	// http://www.w3.org/TR/css3-syntax/#characters
+	characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
+
+	// Loosely modeled on CSS identifier characters
+	// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors
+	// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
+	identifier = characterEncoding.replace( "w", "w#" ),
+
+	// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors
+	attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
+		"*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
+
+	// Prefer arguments quoted,
+	//   then not containing pseudos/brackets,
+	//   then attribute selectors/non-parenthetical expressions,
+	//   then anything else
+	// These preferences are here to reduce the number of selectors
+	//   needing tokenize in the PSEUDO preFilter
+	pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)",
+
+	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
+	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
+
+	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
+	rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
+
+	rsibling = new RegExp( whitespace + "*[+~]" ),
+	rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ),
+
+	rpseudo = new RegExp( pseudos ),
+	ridentifier = new RegExp( "^" + identifier + "$" ),
+
+	matchExpr = {
+		"ID": new RegExp( "^#(" + characterEncoding + ")" ),
+		"CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ),
+		"TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ),
+		"ATTR": new RegExp( "^" + attributes ),
+		"PSEUDO": new RegExp( "^" + pseudos ),
+		"CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
+			"*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
+			"*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
+		"bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
+		// For use in libraries implementing .is()
+		// We use this for POS matching in `select`
+		"needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
+			whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
+	},
+
+	rnative = /^[^{]+\{\s*\[native \w/,
+
+	// Easily-parseable/retrievable ID or TAG or CLASS selectors
+	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
+
+	rinputs = /^(?:input|select|textarea|button)$/i,
+	rheader = /^h\d$/i,
+
+	rescape = /'|\\/g,
+
+	// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
+	runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
+	funescape = function( _, escaped, escapedWhitespace ) {
+		var high = "0x" + escaped - 0x10000;
+		// NaN means non-codepoint
+		// Support: Firefox
+		// Workaround erroneous numeric interpretation of +"0x"
+		return high !== high || escapedWhitespace ?
+			escaped :
+			// BMP codepoint
+			high < 0 ?
+				String.fromCharCode( high + 0x10000 ) :
+				// Supplemental Plane codepoint (surrogate pair)
+				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
+	};
+
+// Optimize for push.apply( _, NodeList )
+try {
+	push.apply(
+		(arr = slice.call( preferredDoc.childNodes )),
+		preferredDoc.childNodes
+	);
+	// Support: Android<4.0
+	// Detect silently failing push.apply
+	arr[ preferredDoc.childNodes.length ].nodeType;
+} catch ( e ) {
+	push = { apply: arr.length ?
+
+		// Leverage slice if possible
+		function( target, els ) {
+			push_native.apply( target, slice.call(els) );
+		} :
+
+		// Support: IE<9
+		// Otherwise append directly
+		function( target, els ) {
+			var j = target.length,
+				i = 0;
+			// Can't trust NodeList.length
+			while ( (target[j++] = els[i++]) ) {}
+			target.length = j - 1;
+		}
+	};
+}
+
+function Sizzle( selector, context, results, seed ) {
+	var match, elem, m, nodeType,
+		// QSA vars
+		i, groups, old, nid, newContext, newSelector;
+
+	if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
+		setDocument( context );
+	}
+
+	context = context || document;
+	results = results || [];
+
+	if ( !selector || typeof selector !== "string" ) {
+		return results;
+	}
+
+	if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
+		return [];
+	}
+
+	if ( documentIsHTML && !seed ) {
+
+		// Shortcuts
+		if ( (match = rquickExpr.exec( selector )) ) {
+			// Speed-up: Sizzle("#ID")
+			if ( (m = match[1]) ) {
+				if ( nodeType === 9 ) {
+					elem = context.getElementById( m );
+					// Check parentNode to catch when Blackberry 4.6 returns
+					// nodes that are no longer in the document #6963
+					if ( elem && elem.parentNode ) {
+						// Handle the case where IE, Opera, and Webkit return items
+						// by name instead of ID
+						if ( elem.id === m ) {
+							results.push( elem );
+							return results;
+						}
+					} else {
+						return results;
+					}
+				} else {
+					// Context is not a document
+					if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&
+						contains( context, elem ) && elem.id === m ) {
+						results.push( elem );
+						return results;
+					}
+				}
+
+			// Speed-up: Sizzle("TAG")
+			} else if ( match[2] ) {
+				push.apply( results, context.getElementsByTagName( selector ) );
+				return results;
+
+			// Speed-up: Sizzle(".CLASS")
+			} else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) {
+				push.apply( results, context.getElementsByClassName( m ) );
+				return results;
+			}
+		}
+
+		// QSA path
+		if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
+			nid = old = expando;
+			newContext = context;
+			newSelector = nodeType === 9 && selector;
+
+			// qSA works strangely on Element-rooted queries
+			// We can work around this by specifying an extra ID on the root
+			// and working up from there (Thanks to Andrew Dupont for the technique)
+			// IE 8 doesn't work on object elements
+			if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
+				groups = tokenize( selector );
+
+				if ( (old = context.getAttribute("id")) ) {
+					nid = old.replace( rescape, "\\$&" );
+				} else {
+					context.setAttribute( "id", nid );
+				}
+				nid = "[id='" + nid + "'] ";
+
+				i = groups.length;
+				while ( i-- ) {
+					groups[i] = nid + toSelector( groups[i] );
+				}
+				newContext = rsibling.test( selector ) && context.parentNode || context;
+				newSelector = groups.join(",");
+			}
+
+			if ( newSelector ) {
+				try {
+					push.apply( results,
+						newContext.querySelectorAll( newSelector )
+					);
+					return results;
+				} catch(qsaError) {
+				} finally {
+					if ( !old ) {
+						context.removeAttribute("id");
+					}
+				}
+			}
+		}
+	}
+
+	// All others
+	return select( selector.replace( rtrim, "$1" ), context, results, seed );
+}
+
+/**
+ * Create key-value caches of limited size
+ * @returns {Function(string, Object)} Returns the Object data after storing it on itself with
+ *	property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
+ *	deleting the oldest entry
+ */
+function createCache() {
+	var keys = [];
+
+	function cache( key, value ) {
+		// Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
+		if ( keys.push( key += " " ) > Expr.cacheLength ) {
+			// Only keep the most recent entries
+			delete cache[ keys.shift() ];
+		}
+		return (cache[ key ] = value);
+	}
+	return cache;
+}
+
+/**
+ * Mark a function for special use by Sizzle
+ * @param {Function} fn The function to mark
+ */
+function markFunction( fn ) {
+	fn[ expando ] = true;
+	return fn;
+}
+
+/**
+ * Support testing using an element
+ * @param {Function} fn Passed the created div and expects a boolean result
+ */
+function assert( fn ) {
+	var div = document.createElement("div");
+
+	try {
+		return !!fn( div );
+	} catch (e) {
+		return false;
+	} finally {
+		// Remove from its parent by default
+		if ( div.parentNode ) {
+			div.parentNode.removeChild( div );
+		}
+		// release memory in IE
+		div = null;
+	}
+}
+
+/**
+ * Adds the same handler for all of the specified attrs
+ * @param {String} attrs Pipe-separated list of attributes
+ * @param {Function} handler The method that will be applied
+ */
+function addHandle( attrs, handler ) {
+	var arr = attrs.split("|"),
+		i = attrs.length;
+
+	while ( i-- ) {
+		Expr.attrHandle[ arr[i] ] = handler;
+	}
+}
+
+/**
+ * Checks document order of two siblings
+ * @param {Element} a
+ * @param {Element} b
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
+ */
+function siblingCheck( a, b ) {
+	var cur = b && a,
+		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
+			( ~b.sourceIndex || MAX_NEGATIVE ) -
+			( ~a.sourceIndex || MAX_NEGATIVE );
+
+	// Use IE sourceIndex if available on both nodes
+	if ( diff ) {
+		return diff;
+	}
+
+	// Check if b follows a
+	if ( cur ) {
+		while ( (cur = cur.nextSibling) ) {
+			if ( cur === b ) {
+				return -1;
+			}
+		}
+	}
+
+	return a ? 1 : -1;
+}
+
+/**
+ * Returns a function to use in pseudos for input types
+ * @param {String} type
+ */
+function createInputPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return name === "input" && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for buttons
+ * @param {String} type
+ */
+function createButtonPseudo( type ) {
+	return function( elem ) {
+		var name = elem.nodeName.toLowerCase();
+		return (name === "input" || name === "button") && elem.type === type;
+	};
+}
+
+/**
+ * Returns a function to use in pseudos for positionals
+ * @param {Function} fn
+ */
+function createPositionalPseudo( fn ) {
+	return markFunction(function( argument ) {
+		argument = +argument;
+		return markFunction(function( seed, matches ) {
+			var j,
+				matchIndexes = fn( [], seed.length, argument ),
+				i = matchIndexes.length;
+
+			// Match elements found at the specified indexes
+			while ( i-- ) {
+				if ( seed[ (j = matchIndexes[i]) ] ) {
+					seed[j] = !(matches[j] = seed[j]);
+				}
+			}
+		});
+	});
+}
+
+/**
+ * Detect xml
+ * @param {Element|Object} elem An element or a document
+ */
+isXML = Sizzle.isXML = function( elem ) {
+	// documentElement is verified for cases where it doesn't yet exist
+	// (such as loading iframes in IE - #4833)
+	var documentElement = elem && (elem.ownerDocument || elem).documentElement;
+	return documentElement ? documentElement.nodeName !== "HTML" : false;
+};
+
+// Expose support vars for convenience
+support = Sizzle.support = {};
+
+/**
+ * Sets document-related variables once based on the current document
+ * @param {Element|Object} [doc] An element or document object to use to set the document
+ * @returns {Object} Returns the current document
+ */
+setDocument = Sizzle.setDocument = function( node ) {
+	var doc = node ? node.ownerDocument || node : preferredDoc,
+		parent = doc.defaultView;
+
+	// If no document and documentElement is available, return
+	if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
+		return document;
+	}
+
+	// Set our document
+	document = doc;
+	docElem = doc.documentElement;
+
+	// Support tests
+	documentIsHTML = !isXML( doc );
+
+	// Support: IE>8
+	// If iframe document is assigned to "document" variable and if iframe has been reloaded,
+	// IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936
+	// IE6-8 do not support the defaultView property so parent will be undefined
+	if ( parent && parent.attachEvent && parent !== parent.top ) {
+		parent.attachEvent( "onbeforeunload", function() {
+			setDocument();
+		});
+	}
+
+	/* Attributes
+	---------------------------------------------------------------------- */
+
+	// Support: IE<8
+	// Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans)
+	support.attributes = assert(function( div ) {
+		div.className = "i";
+		return !div.getAttribute("className");
+	});
+
+	/* getElement(s)By*
+	---------------------------------------------------------------------- */
+
+	// Check if getElementsByTagName("*") returns only elements
+	support.getElementsByTagName = assert(function( div ) {
+		div.appendChild( doc.createComment("") );
+		return !div.getElementsByTagName("*").length;
+	});
+
+	// Check if getElementsByClassName can be trusted
+	support.getElementsByClassName = assert(function( div ) {
+		div.innerHTML = "<div class='a'></div><div class='a i'></div>";
+
+		// Support: Safari<4
+		// Catch class over-caching
+		div.firstChild.className = "i";
+		// Support: Opera<10
+		// Catch gEBCN failure to find non-leading classes
+		return div.getElementsByClassName("i").length === 2;
+	});
+
+	// Support: IE<10
+	// Check if getElementById returns elements by name
+	// The broken getElementById methods don't pick up programatically-set names,
+	// so use a roundabout getElementsByName test
+	support.getById = assert(function( div ) {
+		docElem.appendChild( div ).id = expando;
+		return !doc.getElementsByName || !doc.getElementsByName( expando ).length;
+	});
+
+	// ID find and filter
+	if ( support.getById ) {
+		Expr.find["ID"] = function( id, context ) {
+			if ( typeof context.getElementById !== strundefined && documentIsHTML ) {
+				var m = context.getElementById( id );
+				// Check parentNode to catch when Blackberry 4.6 returns
+				// nodes that are no longer in the document #6963
+				return m && m.parentNode ? [m] : [];
+			}
+		};
+		Expr.filter["ID"] = function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				return elem.getAttribute("id") === attrId;
+			};
+		};
+	} else {
+		// Support: IE6/7
+		// getElementById is not reliable as a find shortcut
+		delete Expr.find["ID"];
+
+		Expr.filter["ID"] =  function( id ) {
+			var attrId = id.replace( runescape, funescape );
+			return function( elem ) {
+				var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id");
+				return node && node.value === attrId;
+			};
+		};
+	}
+
+	// Tag
+	Expr.find["TAG"] = support.getElementsByTagName ?
+		function( tag, context ) {
+			if ( typeof context.getElementsByTagName !== strundefined ) {
+				return context.getElementsByTagName( tag );
+			}
+		} :
+		function( tag, context ) {
+			var elem,
+				tmp = [],
+				i = 0,
+				results = context.getElementsByTagName( tag );
+
+			// Filter out possible comments
+			if ( tag === "*" ) {
+				while ( (elem = results[i++]) ) {
+					if ( elem.nodeType === 1 ) {
+						tmp.push( elem );
+					}
+				}
+
+				return tmp;
+			}
+			return results;
+		};
+
+	// Class
+	Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
+		if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) {
+			return context.getElementsByClassName( className );
+		}
+	};
+
+	/* QSA/matchesSelector
+	---------------------------------------------------------------------- */
+
+	// QSA and matchesSelector support
+
+	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
+	rbuggyMatches = [];
+
+	// qSa(:focus) reports false when true (Chrome 21)
+	// We allow this because of a bug in IE8/9 that throws an error
+	// whenever `document.activeElement` is accessed on an iframe
+	// So, we allow :focus to pass through QSA all the time to avoid the IE error
+	// See http://bugs.jquery.com/ticket/13378
+	rbuggyQSA = [];
+
+	if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {
+		// Build QSA regex
+		// Regex strategy adopted from Diego Perini
+		assert(function( div ) {
+			// Select is set to empty string on purpose
+			// This is to test IE's treatment of not explicitly
+			// setting a boolean content attribute,
+			// since its presence should be enough
+			// http://bugs.jquery.com/ticket/12359
+			div.innerHTML = "<select><option selected=''></option></select>";
+
+			// Support: IE8
+			// Boolean attributes and "value" are not treated correctly
+			if ( !div.querySelectorAll("[selected]").length ) {
+				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
+			}
+
+			// Webkit/Opera - :checked should return selected option elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":checked").length ) {
+				rbuggyQSA.push(":checked");
+			}
+		});
+
+		assert(function( div ) {
+
+			// Support: Opera 10-12/IE8
+			// ^= $= *= and empty values
+			// Should not select anything
+			// Support: Windows 8 Native Apps
+			// The type attribute is restricted during .innerHTML assignment
+			var input = doc.createElement("input");
+			input.setAttribute( "type", "hidden" );
+			div.appendChild( input ).setAttribute( "t", "" );
+
+			if ( div.querySelectorAll("[t^='']").length ) {
+				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
+			}
+
+			// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
+			// IE8 throws error here and will not see later tests
+			if ( !div.querySelectorAll(":enabled").length ) {
+				rbuggyQSA.push( ":enabled", ":disabled" );
+			}
+
+			// Opera 10-11 does not throw on post-comma invalid pseudos
+			div.querySelectorAll("*,:x");
+			rbuggyQSA.push(",.*:");
+		});
+	}
+
+	if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector ||
+		docElem.mozMatchesSelector ||
+		docElem.oMatchesSelector ||
+		docElem.msMatchesSelector) )) ) {
+
+		assert(function( div ) {
+			// Check to see if it's possible to do matchesSelector
+			// on a disconnected node (IE 9)
+			support.disconnectedMatch = matches.call( div, "div" );
+
+			// This should fail with an exception
+			// Gecko does not error, returns false instead
+			matches.call( div, "[s!='']:x" );
+			rbuggyMatches.push( "!=", pseudos );
+		});
+	}
+
+	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
+	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
+
+	/* Contains
+	---------------------------------------------------------------------- */
+
+	// Element contains another
+	// Purposefully does not implement inclusive descendent
+	// As in, an element does not contain itself
+	contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ?
+		function( a, b ) {
+			var adown = a.nodeType === 9 ? a.documentElement : a,
+				bup = b && b.parentNode;
+			return a === bup || !!( bup && bup.nodeType === 1 && (
+				adown.contains ?
+					adown.contains( bup ) :
+					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
+			));
+		} :
+		function( a, b ) {
+			if ( b ) {
+				while ( (b = b.parentNode) ) {
+					if ( b === a ) {
+						return true;
+					}
+				}
+			}
+			return false;
+		};
+
+	/* Sorting
+	---------------------------------------------------------------------- */
+
+	// Document order sorting
+	sortOrder = docElem.compareDocumentPosition ?
+	function( a, b ) {
+
+		// Flag for duplicate removal
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+		}
+
+		var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );
+
+		if ( compare ) {
+			// Disconnected nodes
+			if ( compare & 1 ||
+				(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
+
+				// Choose the first element that is related to our preferred document
+				if ( a === doc || contains(preferredDoc, a) ) {
+					return -1;
+				}
+				if ( b === doc || contains(preferredDoc, b) ) {
+					return 1;
+				}
+
+				// Maintain original order
+				return sortInput ?
+					( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+					0;
+			}
+
+			return compare & 4 ? -1 : 1;
+		}
+
+		// Not directly comparable, sort on existence of method
+		return a.compareDocumentPosition ? -1 : 1;
+	} :
+	function( a, b ) {
+		var cur,
+			i = 0,
+			aup = a.parentNode,
+			bup = b.parentNode,
+			ap = [ a ],
+			bp = [ b ];
+
+		// Exit early if the nodes are identical
+		if ( a === b ) {
+			hasDuplicate = true;
+			return 0;
+
+		// Parentless nodes are either documents or disconnected
+		} else if ( !aup || !bup ) {
+			return a === doc ? -1 :
+				b === doc ? 1 :
+				aup ? -1 :
+				bup ? 1 :
+				sortInput ?
+				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
+				0;
+
+		// If the nodes are siblings, we can do a quick check
+		} else if ( aup === bup ) {
+			return siblingCheck( a, b );
+		}
+
+		// Otherwise we need full lists of their ancestors for comparison
+		cur = a;
+		while ( (cur = cur.parentNode) ) {
+			ap.unshift( cur );
+		}
+		cur = b;
+		while ( (cur = cur.parentNode) ) {
+			bp.unshift( cur );
+		}
+
+		// Walk down the tree looking for a discrepancy
+		while ( ap[i] === bp[i] ) {
+			i++;
+		}
+
+		return i ?
+			// Do a sibling check if the nodes have a common ancestor
+			siblingCheck( ap[i], bp[i] ) :
+
+			// Otherwise nodes in our document sort first
+			ap[i] === preferredDoc ? -1 :
+			bp[i] === preferredDoc ? 1 :
+			0;
+	};
+
+	return doc;
+};
+
+Sizzle.matches = function( expr, elements ) {
+	return Sizzle( expr, null, null, elements );
+};
+
+Sizzle.matchesSelector = function( elem, expr ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	// Make sure that attribute selectors are quoted
+	expr = expr.replace( rattributeQuotes, "='$1']" );
+
+	if ( support.matchesSelector && documentIsHTML &&
+		( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
+		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
+
+		try {
+			var ret = matches.call( elem, expr );
+
+			// IE 9's matchesSelector returns false on disconnected nodes
+			if ( ret || support.disconnectedMatch ||
+					// As well, disconnected nodes are said to be in a document
+					// fragment in IE 9
+					elem.document && elem.document.nodeType !== 11 ) {
+				return ret;
+			}
+		} catch(e) {}
+	}
+
+	return Sizzle( expr, document, null, [elem] ).length > 0;
+};
+
+Sizzle.contains = function( context, elem ) {
+	// Set document vars if needed
+	if ( ( context.ownerDocument || context ) !== document ) {
+		setDocument( context );
+	}
+	return contains( context, elem );
+};
+
+Sizzle.attr = function( elem, name ) {
+	// Set document vars if needed
+	if ( ( elem.ownerDocument || elem ) !== document ) {
+		setDocument( elem );
+	}
+
+	var fn = Expr.attrHandle[ name.toLowerCase() ],
+		// Don't get fooled by Object.prototype properties (jQuery #13807)
+		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
+			fn( elem, name, !documentIsHTML ) :
+			undefined;
+
+	return val === undefined ?
+		support.attributes || !documentIsHTML ?
+			elem.getAttribute( name ) :
+			(val = elem.getAttributeNode(name)) && val.specified ?
+				val.value :
+				null :
+		val;
+};
+
+Sizzle.error = function( msg ) {
+	throw new Error( "Syntax error, unrecognized expression: " + msg );
+};
+
+/**
+ * Document sorting and removing duplicates
+ * @param {ArrayLike} results
+ */
+Sizzle.uniqueSort = function( results ) {
+	var elem,
+		duplicates = [],
+		j = 0,
+		i = 0;
+
+	// Unless we *know* we can detect duplicates, assume their presence
+	hasDuplicate = !support.detectDuplicates;
+	sortInput = !support.sortStable && results.slice( 0 );
+	results.sort( sortOrder );
+
+	if ( hasDuplicate ) {
+		while ( (elem = results[i++]) ) {
+			if ( elem === results[ i ] ) {
+				j = duplicates.push( i );
+			}
+		}
+		while ( j-- ) {
+			results.splice( duplicates[ j ], 1 );
+		}
+	}
+
+	return results;
+};
+
+/**
+ * Utility function for retrieving the text value of an array of DOM nodes
+ * @param {Array|Element} elem
+ */
+getText = Sizzle.getText = function( elem ) {
+	var node,
+		ret = "",
+		i = 0,
+		nodeType = elem.nodeType;
+
+	if ( !nodeType ) {
+		// If no nodeType, this is expected to be an array
+		for ( ; (node = elem[i]); i++ ) {
+			// Do not traverse comment nodes
+			ret += getText( node );
+		}
+	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
+		// Use textContent for elements
+		// innerText usage removed for consistency of new lines (see #11153)
+		if ( typeof elem.textContent === "string" ) {
+			return elem.textContent;
+		} else {
+			// Traverse its children
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				ret += getText( elem );
+			}
+		}
+	} else if ( nodeType === 3 || nodeType === 4 ) {
+		return elem.nodeValue;
+	}
+	// Do not include comment or processing instruction nodes
+
+	return ret;
+};
+
+Expr = Sizzle.selectors = {
+
+	// Can be adjusted by the user
+	cacheLength: 50,
+
+	createPseudo: markFunction,
+
+	match: matchExpr,
+
+	attrHandle: {},
+
+	find: {},
+
+	relative: {
+		">": { dir: "parentNode", first: true },
+		" ": { dir: "parentNode" },
+		"+": { dir: "previousSibling", first: true },
+		"~": { dir: "previousSibling" }
+	},
+
+	preFilter: {
+		"ATTR": function( match ) {
+			match[1] = match[1].replace( runescape, funescape );
+
+			// Move the given value to match[3] whether quoted or unquoted
+			match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape );
+
+			if ( match[2] === "~=" ) {
+				match[3] = " " + match[3] + " ";
+			}
+
+			return match.slice( 0, 4 );
+		},
+
+		"CHILD": function( match ) {
+			/* matches from matchExpr["CHILD"]
+				1 type (only|nth|...)
+				2 what (child|of-type)
+				3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
+				4 xn-component of xn+y argument ([+-]?\d*n|)
+				5 sign of xn-component
+				6 x of xn-component
+				7 sign of y-component
+				8 y of y-component
+			*/
+			match[1] = match[1].toLowerCase();
+
+			if ( match[1].slice( 0, 3 ) === "nth" ) {
+				// nth-* requires argument
+				if ( !match[3] ) {
+					Sizzle.error( match[0] );
+				}
+
+				// numeric x and y parameters for Expr.filter.CHILD
+				// remember that false/true cast respectively to 0/1
+				match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
+				match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
+
+			// other types prohibit arguments
+			} else if ( match[3] ) {
+				Sizzle.error( match[0] );
+			}
+
+			return match;
+		},
+
+		"PSEUDO": function( match ) {
+			var excess,
+				unquoted = !match[5] && match[2];
+
+			if ( matchExpr["CHILD"].test( match[0] ) ) {
+				return null;
+			}
+
+			// Accept quoted arguments as-is
+			if ( match[3] && match[4] !== undefined ) {
+				match[2] = match[4];
+
+			// Strip excess characters from unquoted arguments
+			} else if ( unquoted && rpseudo.test( unquoted ) &&
+				// Get excess from tokenize (recursively)
+				(excess = tokenize( unquoted, true )) &&
+				// advance to the next closing parenthesis
+				(excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
+
+				// excess is a negative index
+				match[0] = match[0].slice( 0, excess );
+				match[2] = unquoted.slice( 0, excess );
+			}
+
+			// Return only captures needed by the pseudo filter method (type and argument)
+			return match.slice( 0, 3 );
+		}
+	},
+
+	filter: {
+
+		"TAG": function( nodeNameSelector ) {
+			var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
+			return nodeNameSelector === "*" ?
+				function() { return true; } :
+				function( elem ) {
+					return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
+				};
+		},
+
+		"CLASS": function( className ) {
+			var pattern = classCache[ className + " " ];
+
+			return pattern ||
+				(pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
+				classCache( className, function( elem ) {
+					return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" );
+				});
+		},
+
+		"ATTR": function( name, operator, check ) {
+			return function( elem ) {
+				var result = Sizzle.attr( elem, name );
+
+				if ( result == null ) {
+					return operator === "!=";
+				}
+				if ( !operator ) {
+					return true;
+				}
+
+				result += "";
+
+				return operator === "=" ? result === check :
+					operator === "!=" ? result !== check :
+					operator === "^=" ? check && result.indexOf( check ) === 0 :
+					operator === "*=" ? check && result.indexOf( check ) > -1 :
+					operator === "$=" ? check && result.slice( -check.length ) === check :
+					operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 :
+					operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
+					false;
+			};
+		},
+
+		"CHILD": function( type, what, argument, first, last ) {
+			var simple = type.slice( 0, 3 ) !== "nth",
+				forward = type.slice( -4 ) !== "last",
+				ofType = what === "of-type";
+
+			return first === 1 && last === 0 ?
+
+				// Shortcut for :nth-*(n)
+				function( elem ) {
+					return !!elem.parentNode;
+				} :
+
+				function( elem, context, xml ) {
+					var cache, outerCache, node, diff, nodeIndex, start,
+						dir = simple !== forward ? "nextSibling" : "previousSibling",
+						parent = elem.parentNode,
+						name = ofType && elem.nodeName.toLowerCase(),
+						useCache = !xml && !ofType;
+
+					if ( parent ) {
+
+						// :(first|last|only)-(child|of-type)
+						if ( simple ) {
+							while ( dir ) {
+								node = elem;
+								while ( (node = node[ dir ]) ) {
+									if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {
+										return false;
+									}
+								}
+								// Reverse direction for :only-* (if we haven't yet done so)
+								start = dir = type === "only" && !start && "nextSibling";
+							}
+							return true;
+						}
+
+						start = [ forward ? parent.firstChild : parent.lastChild ];
+
+						// non-xml :nth-child(...) stores cache data on `parent`
+						if ( forward && useCache ) {
+							// Seek `elem` from a previously-cached index
+							outerCache = parent[ expando ] || (parent[ expando ] = {});
+							cache = outerCache[ type ] || [];
+							nodeIndex = cache[0] === dirruns && cache[1];
+							diff = cache[0] === dirruns && cache[2];
+							node = nodeIndex && parent.childNodes[ nodeIndex ];
+
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+
+								// Fallback to seeking `elem` from the start
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								// When found, cache indexes on `parent` and break
+								if ( node.nodeType === 1 && ++diff && node === elem ) {
+									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
+									break;
+								}
+							}
+
+						// Use previously-cached element index if available
+						} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {
+							diff = cache[1];
+
+						// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)
+						} else {
+							// Use the same loop as above to seek `elem` from the start
+							while ( (node = ++nodeIndex && node && node[ dir ] ||
+								(diff = nodeIndex = 0) || start.pop()) ) {
+
+								if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {
+									// Cache the index of each encountered element
+									if ( useCache ) {
+										(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];
+									}
+
+									if ( node === elem ) {
+										break;
+									}
+								}
+							}
+						}
+
+						// Incorporate the offset, then check against cycle size
+						diff -= last;
+						return diff === first || ( diff % first === 0 && diff / first >= 0 );
+					}
+				};
+		},
+
+		"PSEUDO": function( pseudo, argument ) {
+			// pseudo-class names are case-insensitive
+			// http://www.w3.org/TR/selectors/#pseudo-classes
+			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
+			// Remember that setFilters inherits from pseudos
+			var args,
+				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
+					Sizzle.error( "unsupported pseudo: " + pseudo );
+
+			// The user may use createPseudo to indicate that
+			// arguments are needed to create the filter function
+			// just as Sizzle does
+			if ( fn[ expando ] ) {
+				return fn( argument );
+			}
+
+			// But maintain support for old signatures
+			if ( fn.length > 1 ) {
+				args = [ pseudo, pseudo, "", argument ];
+				return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
+					markFunction(function( seed, matches ) {
+						var idx,
+							matched = fn( seed, argument ),
+							i = matched.length;
+						while ( i-- ) {
+							idx = indexOf.call( seed, matched[i] );
+							seed[ idx ] = !( matches[ idx ] = matched[i] );
+						}
+					}) :
+					function( elem ) {
+						return fn( elem, 0, args );
+					};
+			}
+
+			return fn;
+		}
+	},
+
+	pseudos: {
+		// Potentially complex pseudos
+		"not": markFunction(function( selector ) {
+			// Trim the selector passed to compile
+			// to avoid treating leading and trailing
+			// spaces as combinators
+			var input = [],
+				results = [],
+				matcher = compile( selector.replace( rtrim, "$1" ) );
+
+			return matcher[ expando ] ?
+				markFunction(function( seed, matches, context, xml ) {
+					var elem,
+						unmatched = matcher( seed, null, xml, [] ),
+						i = seed.length;
+
+					// Match elements unmatched by `matcher`
+					while ( i-- ) {
+						if ( (elem = unmatched[i]) ) {
+							seed[i] = !(matches[i] = elem);
+						}
+					}
+				}) :
+				function( elem, context, xml ) {
+					input[0] = elem;
+					matcher( input, null, xml, results );
+					return !results.pop();
+				};
+		}),
+
+		"has": markFunction(function( selector ) {
+			return function( elem ) {
+				return Sizzle( selector, elem ).length > 0;
+			};
+		}),
+
+		"contains": markFunction(function( text ) {
+			return function( elem ) {
+				return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
+			};
+		}),
+
+		// "Whether an element is represented by a :lang() selector
+		// is based solely on the element's language value
+		// being equal to the identifier C,
+		// or beginning with the identifier C immediately followed by "-".
+		// The matching of C against the element's language value is performed case-insensitively.
+		// The identifier C does not have to be a valid language name."
+		// http://www.w3.org/TR/selectors/#lang-pseudo
+		"lang": markFunction( function( lang ) {
+			// lang value must be a valid identifier
+			if ( !ridentifier.test(lang || "") ) {
+				Sizzle.error( "unsupported lang: " + lang );
+			}
+			lang = lang.replace( runescape, funescape ).toLowerCase();
+			return function( elem ) {
+				var elemLang;
+				do {
+					if ( (elemLang = documentIsHTML ?
+						elem.lang :
+						elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
+
+						elemLang = elemLang.toLowerCase();
+						return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
+					}
+				} while ( (elem = elem.parentNode) && elem.nodeType === 1 );
+				return false;
+			};
+		}),
+
+		// Miscellaneous
+		"target": function( elem ) {
+			var hash = window.location && window.location.hash;
+			return hash && hash.slice( 1 ) === elem.id;
+		},
+
+		"root": function( elem ) {
+			return elem === docElem;
+		},
+
+		"focus": function( elem ) {
+			return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
+		},
+
+		// Boolean properties
+		"enabled": function( elem ) {
+			return elem.disabled === false;
+		},
+
+		"disabled": function( elem ) {
+			return elem.disabled === true;
+		},
+
+		"checked": function( elem ) {
+			// In CSS3, :checked should return both checked and selected elements
+			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
+			var nodeName = elem.nodeName.toLowerCase();
+			return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
+		},
+
+		"selected": function( elem ) {
+			// Accessing this property makes selected-by-default
+			// options in Safari work properly
+			if ( elem.parentNode ) {
+				elem.parentNode.selectedIndex;
+			}
+
+			return elem.selected === true;
+		},
+
+		// Contents
+		"empty": function( elem ) {
+			// http://www.w3.org/TR/selectors/#empty-pseudo
+			// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
+			//   not comment, processing instructions, or others
+			// Thanks to Diego Perini for the nodeName shortcut
+			//   Greater than "@" means alpha characters (specifically not starting with "#" or "?")
+			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
+				if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) {
+					return false;
+				}
+			}
+			return true;
+		},
+
+		"parent": function( elem ) {
+			return !Expr.pseudos["empty"]( elem );
+		},
+
+		// Element/input types
+		"header": function( elem ) {
+			return rheader.test( elem.nodeName );
+		},
+
+		"input": function( elem ) {
+			return rinputs.test( elem.nodeName );
+		},
+
+		"button": function( elem ) {
+			var name = elem.nodeName.toLowerCase();
+			return name === "input" && elem.type === "button" || name === "button";
+		},
+
+		"text": function( elem ) {
+			var attr;
+			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc)
+			// use getAttribute instead to test this case
+			return elem.nodeName.toLowerCase() === "input" &&
+				elem.type === "text" &&
+				( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type );
+		},
+
+		// Position-in-collection
+		"first": createPositionalPseudo(function() {
+			return [ 0 ];
+		}),
+
+		"last": createPositionalPseudo(function( matchIndexes, length ) {
+			return [ length - 1 ];
+		}),
+
+		"eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			return [ argument < 0 ? argument + length : argument ];
+		}),
+
+		"even": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 0;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"odd": createPositionalPseudo(function( matchIndexes, length ) {
+			var i = 1;
+			for ( ; i < length; i += 2 ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; --i >= 0; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		}),
+
+		"gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
+			var i = argument < 0 ? argument + length : argument;
+			for ( ; ++i < length; ) {
+				matchIndexes.push( i );
+			}
+			return matchIndexes;
+		})
+	}
+};
+
+Expr.pseudos["nth"] = Expr.pseudos["eq"];
+
+// Add button/input type pseudos
+for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
+	Expr.pseudos[ i ] = createInputPseudo( i );
+}
+for ( i in { submit: true, reset: true } ) {
+	Expr.pseudos[ i ] = createButtonPseudo( i );
+}
+
+// Easy API for creating new setFilters
+function setFilters() {}
+setFilters.prototype = Expr.filters = Expr.pseudos;
+Expr.setFilters = new setFilters();
+
+function tokenize( selector, parseOnly ) {
+	var matched, match, tokens, type,
+		soFar, groups, preFilters,
+		cached = tokenCache[ selector + " " ];
+
+	if ( cached ) {
+		return parseOnly ? 0 : cached.slice( 0 );
+	}
+
+	soFar = selector;
+	groups = [];
+	preFilters = Expr.preFilter;
+
+	while ( soFar ) {
+
+		// Comma and first run
+		if ( !matched || (match = rcomma.exec( soFar )) ) {
+			if ( match ) {
+				// Don't consume trailing commas as valid
+				soFar = soFar.slice( match[0].length ) || soFar;
+			}
+			groups.push( tokens = [] );
+		}
+
+		matched = false;
+
+		// Combinators
+		if ( (match = rcombinators.exec( soFar )) ) {
+			matched = match.shift();
+			tokens.push({
+				value: matched,
+				// Cast descendant combinators to space
+				type: match[0].replace( rtrim, " " )
+			});
+			soFar = soFar.slice( matched.length );
+		}
+
+		// Filters
+		for ( type in Expr.filter ) {
+			if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
+				(match = preFilters[ type ]( match ))) ) {
+				matched = match.shift();
+				tokens.push({
+					value: matched,
+					type: type,
+					matches: match
+				});
+				soFar = soFar.slice( matched.length );
+			}
+		}
+
+		if ( !matched ) {
+			break;
+		}
+	}
+
+	// Return the length of the invalid excess
+	// if we're just parsing
+	// Otherwise, throw an error or return tokens
+	return parseOnly ?
+		soFar.length :
+		soFar ?
+			Sizzle.error( selector ) :
+			// Cache the tokens
+			tokenCache( selector, groups ).slice( 0 );
+}
+
+function toSelector( tokens ) {
+	var i = 0,
+		len = tokens.length,
+		selector = "";
+	for ( ; i < len; i++ ) {
+		selector += tokens[i].value;
+	}
+	return selector;
+}
+
+function addCombinator( matcher, combinator, base ) {
+	var dir = combinator.dir,
+		checkNonElements = base && dir === "parentNode",
+		doneName = done++;
+
+	return combinator.first ?
+		// Check against closest ancestor/preceding element
+		function( elem, context, xml ) {
+			while ( (elem = elem[ dir ]) ) {
+				if ( elem.nodeType === 1 || checkNonElements ) {
+					return matcher( elem, context, xml );
+				}
+			}
+		} :
+
+		// Check against all ancestor/preceding elements
+		function( elem, context, xml ) {
+			var data, cache, outerCache,
+				dirkey = dirruns + " " + doneName;
+
+			// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching
+			if ( xml ) {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						if ( matcher( elem, context, xml ) ) {
+							return true;
+						}
+					}
+				}
+			} else {
+				while ( (elem = elem[ dir ]) ) {
+					if ( elem.nodeType === 1 || checkNonElements ) {
+						outerCache = elem[ expando ] || (elem[ expando ] = {});
+						if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) {
+							if ( (data = cache[1]) === true || data === cachedruns ) {
+								return data === true;
+							}
+						} else {
+							cache = outerCache[ dir ] = [ dirkey ];
+							cache[1] = matcher( elem, context, xml ) || cachedruns;
+							if ( cache[1] === true ) {
+								return true;
+							}
+						}
+					}
+				}
+			}
+		};
+}
+
+function elementMatcher( matchers ) {
+	return matchers.length > 1 ?
+		function( elem, context, xml ) {
+			var i = matchers.length;
+			while ( i-- ) {
+				if ( !matchers[i]( elem, context, xml ) ) {
+					return false;
+				}
+			}
+			return true;
+		} :
+		matchers[0];
+}
+
+function condense( unmatched, map, filter, context, xml ) {
+	var elem,
+		newUnmatched = [],
+		i = 0,
+		len = unmatched.length,
+		mapped = map != null;
+
+	for ( ; i < len; i++ ) {
+		if ( (elem = unmatched[i]) ) {
+			if ( !filter || filter( elem, context, xml ) ) {
+				newUnmatched.push( elem );
+				if ( mapped ) {
+					map.push( i );
+				}
+			}
+		}
+	}
+
+	return newUnmatched;
+}
+
+function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
+	if ( postFilter && !postFilter[ expando ] ) {
+		postFilter = setMatcher( postFilter );
+	}
+	if ( postFinder && !postFinder[ expando ] ) {
+		postFinder = setMatcher( postFinder, postSelector );
+	}
+	return markFunction(function( seed, results, context, xml ) {
+		var temp, i, elem,
+			preMap = [],
+			postMap = [],
+			preexisting = results.length,
+
+			// Get initial elements from seed or context
+			elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
+
+			// Prefilter to get matcher input, preserving a map for seed-results synchronization
+			matcherIn = preFilter && ( seed || !selector ) ?
+				condense( elems, preMap, preFilter, context, xml ) :
+				elems,
+
+			matcherOut = matcher ?
+				// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
+				postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
+
+					// ...intermediate processing is necessary
+					[] :
+
+					// ...otherwise use results directly
+					results :
+				matcherIn;
+
+		// Find primary matches
+		if ( matcher ) {
+			matcher( matcherIn, matcherOut, context, xml );
+		}
+
+		// Apply postFilter
+		if ( postFilter ) {
+			temp = condense( matcherOut, postMap );
+			postFilter( temp, [], context, xml );
+
+			// Un-match failing elements by moving them back to matcherIn
+			i = temp.length;
+			while ( i-- ) {
+				if ( (elem = temp[i]) ) {
+					matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
+				}
+			}
+		}
+
+		if ( seed ) {
+			if ( postFinder || preFilter ) {
+				if ( postFinder ) {
+					// Get the final matcherOut by condensing this intermediate into postFinder contexts
+					temp = [];
+					i = matcherOut.length;
+					while ( i-- ) {
+						if ( (elem = matcherOut[i]) ) {
+							// Restore matcherIn since elem is not yet a final match
+							temp.push( (matcherIn[i] = elem) );
+						}
+					}
+					postFinder( null, (matcherOut = []), temp, xml );
+				}
+
+				// Move matched elements from seed to results to keep them synchronized
+				i = matcherOut.length;
+				while ( i-- ) {
+					if ( (elem = matcherOut[i]) &&
+						(temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) {
+
+						seed[temp] = !(results[temp] = elem);
+					}
+				}
+			}
+
+		// Add elements to results, through postFinder if defined
+		} else {
+			matcherOut = condense(
+				matcherOut === results ?
+					matcherOut.splice( preexisting, matcherOut.length ) :
+					matcherOut
+			);
+			if ( postFinder ) {
+				postFinder( null, results, matcherOut, xml );
+			} else {
+				push.apply( results, matcherOut );
+			}
+		}
+	});
+}
+
+function matcherFromTokens( tokens ) {
+	var checkContext, matcher, j,
+		len = tokens.length,
+		leadingRelative = Expr.relative[ tokens[0].type ],
+		implicitRelative = leadingRelative || Expr.relative[" "],
+		i = leadingRelative ? 1 : 0,
+
+		// The foundational matcher ensures that elements are reachable from top-level context(s)
+		matchContext = addCombinator( function( elem ) {
+			return elem === checkContext;
+		}, implicitRelative, true ),
+		matchAnyContext = addCombinator( function( elem ) {
+			return indexOf.call( checkContext, elem ) > -1;
+		}, implicitRelative, true ),
+		matchers = [ function( elem, context, xml ) {
+			return ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
+				(checkContext = context).nodeType ?
+					matchContext( elem, context, xml ) :
+					matchAnyContext( elem, context, xml ) );
+		} ];
+
+	for ( ; i < len; i++ ) {
+		if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
+			matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
+		} else {
+			matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
+
+			// Return special upon seeing a positional matcher
+			if ( matcher[ expando ] ) {
+				// Find the next relative operator (if any) for proper handling
+				j = ++i;
+				for ( ; j < len; j++ ) {
+					if ( Expr.relative[ tokens[j].type ] ) {
+						break;
+					}
+				}
+				return setMatcher(
+					i > 1 && elementMatcher( matchers ),
+					i > 1 && toSelector(
+						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
+						tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
+					).replace( rtrim, "$1" ),
+					matcher,
+					i < j && matcherFromTokens( tokens.slice( i, j ) ),
+					j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
+					j < len && toSelector( tokens )
+				);
+			}
+			matchers.push( matcher );
+		}
+	}
+
+	return elementMatcher( matchers );
+}
+
+function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
+	// A counter to specify which element is currently being matched
+	var matcherCachedRuns = 0,
+		bySet = setMatchers.length > 0,
+		byElement = elementMatchers.length > 0,
+		superMatcher = function( seed, context, xml, results, expandContext ) {
+			var elem, j, matcher,
+				setMatched = [],
+				matchedCount = 0,
+				i = "0",
+				unmatched = seed && [],
+				outermost = expandContext != null,
+				contextBackup = outermostContext,
+				// We must always have either seed elements or context
+				elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ),
+				// Use integer dirruns iff this is the outermost matcher
+				dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);
+
+			if ( outermost ) {
+				outermostContext = context !== document && context;
+				cachedruns = matcherCachedRuns;
+			}
+
+			// Add elements passing elementMatchers directly to results
+			// Keep `i` a string if there are no elements so `matchedCount` will be "00" below
+			for ( ; (elem = elems[i]) != null; i++ ) {
+				if ( byElement && elem ) {
+					j = 0;
+					while ( (matcher = elementMatchers[j++]) ) {
+						if ( matcher( elem, context, xml ) ) {
+							results.push( elem );
+							break;
+						}
+					}
+					if ( outermost ) {
+						dirruns = dirrunsUnique;
+						cachedruns = ++matcherCachedRuns;
+					}
+				}
+
+				// Track unmatched elements for set filters
+				if ( bySet ) {
+					// They will have gone through all possible matchers
+					if ( (elem = !matcher && elem) ) {
+						matchedCount--;
+					}
+
+					// Lengthen the array for every element, matched or not
+					if ( seed ) {
+						unmatched.push( elem );
+					}
+				}
+			}
+
+			// Apply set filters to unmatched elements
+			matchedCount += i;
+			if ( bySet && i !== matchedCount ) {
+				j = 0;
+				while ( (matcher = setMatchers[j++]) ) {
+					matcher( unmatched, setMatched, context, xml );
+				}
+
+				if ( seed ) {
+					// Reintegrate element matches to eliminate the need for sorting
+					if ( matchedCount > 0 ) {
+						while ( i-- ) {
+							if ( !(unmatched[i] || setMatched[i]) ) {
+								setMatched[i] = pop.call( results );
+							}
+						}
+					}
+
+					// Discard index placeholder values to get only actual matches
+					setMatched = condense( setMatched );
+				}
+
+				// Add matches to results
+				push.apply( results, setMatched );
+
+				// Seedless set matches succeeding multiple successful matchers stipulate sorting
+				if ( outermost && !seed && setMatched.length > 0 &&
+					( matchedCount + setMatchers.length ) > 1 ) {
+
+					Sizzle.uniqueSort( results );
+				}
+			}
+
+			// Override manipulation of globals by nested matchers
+			if ( outermost ) {
+				dirruns = dirrunsUnique;
+				outermostContext = contextBackup;
+			}
+
+			return unmatched;
+		};
+
+	return bySet ?
+		markFunction( superMatcher ) :
+		superMatcher;
+}
+
+compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) {
+	var i,
+		setMatchers = [],
+		elementMatchers = [],
+		cached = compilerCache[ selector + " " ];
+
+	if ( !cached ) {
+		// Generate a function of recursive functions that can be used to check each element
+		if ( !group ) {
+			group = tokenize( selector );
+		}
+		i = group.length;
+		while ( i-- ) {
+			cached = matcherFromTokens( group[i] );
+			if ( cached[ expando ] ) {
+				setMatchers.push( cached );
+			} else {
+				elementMatchers.push( cached );
+			}
+		}
+
+		// Cache the compiled function
+		cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
+	}
+	return cached;
+};
+
+function multipleContexts( selector, contexts, results ) {
+	var i = 0,
+		len = contexts.length;
+	for ( ; i < len; i++ ) {
+		Sizzle( selector, contexts[i], results );
+	}
+	return results;
+}
+
+function select( selector, context, results, seed ) {
+	var i, tokens, token, type, find,
+		match = tokenize( selector );
+
+	if ( !seed ) {
+		// Try to minimize operations if there is only one group
+		if ( match.length === 1 ) {
+
+			// Take a shortcut and set the context if the root selector is an ID
+			tokens = match[0] = match[0].slice( 0 );
+			if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
+					support.getById && context.nodeType === 9 && documentIsHTML &&
+					Expr.relative[ tokens[1].type ] ) {
+
+				context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
+				if ( !context ) {
+					return results;
+				}
+				selector = selector.slice( tokens.shift().value.length );
+			}
+
+			// Fetch a seed set for right-to-left matching
+			i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
+			while ( i-- ) {
+				token = tokens[i];
+
+				// Abort if we hit a combinator
+				if ( Expr.relative[ (type = token.type) ] ) {
+					break;
+				}
+				if ( (find = Expr.find[ type ]) ) {
+					// Search, expanding context for leading sibling combinators
+					if ( (seed = find(
+						token.matches[0].replace( runescape, funescape ),
+						rsibling.test( tokens[0].type ) && context.parentNode || context
+					)) ) {
+
+						// If seed is empty or no tokens remain, we can return early
+						tokens.splice( i, 1 );
+						selector = seed.length && toSelector( tokens );
+						if ( !selector ) {
+							push.apply( results, seed );
+							return results;
+						}
+
+						break;
+					}
+				}
+			}
+		}
+	}
+
+	// Compile and execute a filtering function
+	// Provide `match` to avoid retokenization if we modified the selector above
+	compile( selector, match )(
+		seed,
+		context,
+		!documentIsHTML,
+		results,
+		rsibling.test( selector )
+	);
+	return results;
+}
+
+// One-time assignments
+
+// Sort stability
+support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
+
+// Support: Chrome<14
+// Always assume duplicates if they aren't passed to the comparison function
+support.detectDuplicates = hasDuplicate;
+
+// Initialize against the default document
+setDocument();
+
+// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
+// Detached nodes confoundingly follow *each other*
+support.sortDetached = assert(function( div1 ) {
+	// Should return 1, but returns 4 (following)
+	return div1.compareDocumentPosition( document.createElement("div") ) & 1;
+});
+
+// Support: IE<8
+// Prevent attribute/property "interpolation"
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !assert(function( div ) {
+	div.innerHTML = "<a href='#'></a>";
+	return div.firstChild.getAttribute("href") === "#" ;
+}) ) {
+	addHandle( "type|href|height|width", function( elem, name, isXML ) {
+		if ( !isXML ) {
+			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
+		}
+	});
+}
+
+// Support: IE<9
+// Use defaultValue in place of getAttribute("value")
+if ( !support.attributes || !assert(function( div ) {
+	div.innerHTML = "<input/>";
+	div.firstChild.setAttribute( "value", "" );
+	return div.firstChild.getAttribute( "value" ) === "";
+}) ) {
+	addHandle( "value", function( elem, name, isXML ) {
+		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
+			return elem.defaultValue;
+		}
+	});
+}
+
+// Support: IE<9
+// Use getAttributeNode to fetch booleans when getAttribute lies
+if ( !assert(function( div ) {
+	return div.getAttribute("disabled") == null;
+}) ) {
+	addHandle( booleans, function( elem, name, isXML ) {
+		var val;
+		if ( !isXML ) {
+			return (val = elem.getAttributeNode( name )) && val.specified ?
+				val.value :
+				elem[ name ] === true ? name.toLowerCase() : null;
+		}
+	});
+}
+
+jQuery.find = Sizzle;
+jQuery.expr = Sizzle.selectors;
+jQuery.expr[":"] = jQuery.expr.pseudos;
+jQuery.unique = Sizzle.uniqueSort;
+jQuery.text = Sizzle.getText;
+jQuery.isXMLDoc = Sizzle.isXML;
+jQuery.contains = Sizzle.contains;
+
+
+})( window );
+// String to Object options format cache
+var optionsCache = {};
+
+// Convert String-formatted options into Object-formatted ones and store in cache
+function createOptions( options ) {
+	var object = optionsCache[ options ] = {};
+	jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) {
+		object[ flag ] = true;
+	});
+	return object;
+}
+
+/*
+ * Create a callback list using the following parameters:
+ *
+ *	options: an optional list of space-separated options that will change how
+ *			the callback list behaves or a more traditional option object
+ *
+ * By default a callback list will act like an event callback list and can be
+ * "fired" multiple times.
+ *
+ * Possible options:
+ *
+ *	once:			will ensure the callback list can only be fired once (like a Deferred)
+ *
+ *	memory:			will keep track of previous values and will call any callback added
+ *					after the list has been fired right away with the latest "memorized"
+ *					values (like a Deferred)
+ *
+ *	unique:			will ensure a callback can only be added once (no duplicate in the list)
+ *
+ *	stopOnFalse:	interrupt callings when a callback returns false
+ *
+ */
+jQuery.Callbacks = function( options ) {
+
+	// Convert options from String-formatted to Object-formatted if needed
+	// (we check in cache first)
+	options = typeof options === "string" ?
+		( optionsCache[ options ] || createOptions( options ) ) :
+		jQuery.extend( {}, options );
+
+	var // Flag to know if list is currently firing
+		firing,
+		// Last fire value (for non-forgettable lists)
+		memory,
+		// Flag to know if list was already fired
+		fired,
+		// End of the loop when firing
+		firingLength,
+		// Index of currently firing callback (modified by remove if needed)
+		firingIndex,
+		// First callback to fire (used internally by add and fireWith)
+		firingStart,
+		// Actual callback list
+		list = [],
+		// Stack of fire calls for repeatable lists
+		stack = !options.once && [],
+		// Fire callbacks
+		fire = function( data ) {
+			memory = options.memory && data;
+			fired = true;
+			firingIndex = firingStart || 0;
+			firingStart = 0;
+			firingLength = list.length;
+			firing = true;
+			for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+				if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
+					memory = false; // To prevent further calls using add
+					break;
+				}
+			}
+			firing = false;
+			if ( list ) {
+				if ( stack ) {
+					if ( stack.length ) {
+						fire( stack.shift() );
+					}
+				} else if ( memory ) {
+					list = [];
+				} else {
+					self.disable();
+				}
+			}
+		},
+		// Actual Callbacks object
+		self = {
+			// Add a callback or a collection of callbacks to the list
+			add: function() {
+				if ( list ) {
+					// First, we save the current length
+					var start = list.length;
+					(function add( args ) {
+						jQuery.each( args, function( _, arg ) {
+							var type = jQuery.type( arg );
+							if ( type === "function" ) {
+								if ( !options.unique || !self.has( arg ) ) {
+									list.push( arg );
+								}
+							} else if ( arg && arg.length && type !== "string" ) {
+								// Inspect recursively
+								add( arg );
+							}
+						});
+					})( arguments );
+					// Do we need to add the callbacks to the
+					// current firing batch?
+					if ( firing ) {
+						firingLength = list.length;
+					// With memory, if we're not firing then
+					// we should call right away
+					} else if ( memory ) {
+						firingStart = start;
+						fire( memory );
+					}
+				}
+				return this;
+			},
+			// Remove a callback from the list
+			remove: function() {
+				if ( list ) {
+					jQuery.each( arguments, function( _, arg ) {
+						var index;
+						while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
+							list.splice( index, 1 );
+							// Handle firing indexes
+							if ( firing ) {
+								if ( index <= firingLength ) {
+									firingLength--;
+								}
+								if ( index <= firingIndex ) {
+									firingIndex--;
+								}
+							}
+						}
+					});
+				}
+				return this;
+			},
+			// Check if a given callback is in the list.
+			// If no argument is given, return whether or not list has callbacks attached.
+			has: function( fn ) {
+				return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
+			},
+			// Remove all callbacks from the list
+			empty: function() {
+				list = [];
+				firingLength = 0;
+				return this;
+			},
+			// Have the list do nothing anymore
+			disable: function() {
+				list = stack = memory = undefined;
+				return this;
+			},
+			// Is it disabled?
+			disabled: function() {
+				return !list;
+			},
+			// Lock the list in its current state
+			lock: function() {
+				stack = undefined;
+				if ( !memory ) {
+					self.disable();
+				}
+				return this;
+			},
+			// Is it locked?
+			locked: function() {
+				return !stack;
+			},
+			// Call all callbacks with the given context and arguments
+			fireWith: function( context, args ) {
+				if ( list && ( !fired || stack ) ) {
+					args = args || [];
+					args = [ context, args.slice ? args.slice() : args ];
+					if ( firing ) {
+						stack.push( args );
+					} else {
+						fire( args );
+					}
+				}
+				return this;
+			},
+			// Call all the callbacks with the given arguments
+			fire: function() {
+				self.fireWith( this, arguments );
+				return this;
+			},
+			// To know if the callbacks have already been called at least once
+			fired: function() {
+				return !!fired;
+			}
+		};
+
+	return self;
+};
+jQuery.extend({
+
+	Deferred: function( func ) {
+		var tuples = [
+				// action, add listener, listener list, final state
+				[ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ],
+				[ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ],
+				[ "notify", "progress", jQuery.Callbacks("memory") ]
+			],
+			state = "pending",
+			promise = {
+				state: function() {
+					return state;
+				},
+				always: function() {
+					deferred.done( arguments ).fail( arguments );
+					return this;
+				},
+				then: function( /* fnDone, fnFail, fnProgress */ ) {
+					var fns = arguments;
+					return jQuery.Deferred(function( newDefer ) {
+						jQuery.each( tuples, function( i, tuple ) {
+							var action = tuple[ 0 ],
+								fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];
+							// deferred[ done | fail | progress ] for forwarding actions to newDefer
+							deferred[ tuple[1] ](function() {
+								var returned = fn && fn.apply( this, arguments );
+								if ( returned && jQuery.isFunction( returned.promise ) ) {
+									returned.promise()
+										.done( newDefer.resolve )
+										.fail( newDefer.reject )
+										.progress( newDefer.notify );
+								} else {
+									newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );
+								}
+							});
+						});
+						fns = null;
+					}).promise();
+				},
+				// Get a promise for this deferred
+				// If obj is provided, the promise aspect is added to the object
+				promise: function( obj ) {
+					return obj != null ? jQuery.extend( obj, promise ) : promise;
+				}
+			},
+			deferred = {};
+
+		// Keep pipe for back-compat
+		promise.pipe = promise.then;
+
+		// Add list-specific methods
+		jQuery.each( tuples, function( i, tuple ) {
+			var list = tuple[ 2 ],
+				stateString = tuple[ 3 ];
+
+			// promise[ done | fail | progress ] = list.add
+			promise[ tuple[1] ] = list.add;
+
+			// Handle state
+			if ( stateString ) {
+				list.add(function() {
+					// state = [ resolved | rejected ]
+					state = stateString;
+
+				// [ reject_list | resolve_list ].disable; progress_list.lock
+				}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+			}
+
+			// deferred[ resolve | reject | notify ]
+			deferred[ tuple[0] ] = function() {
+				deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments );
+				return this;
+			};
+			deferred[ tuple[0] + "With" ] = list.fireWith;
+		});
+
+		// Make the deferred a promise
+		promise.promise( deferred );
+
+		// Call given func if any
+		if ( func ) {
+			func.call( deferred, deferred );
+		}
+
+		// All done!
+		return deferred;
+	},
+
+	// Deferred helper
+	when: function( subordinate /* , ..., subordinateN */ ) {
+		var i = 0,
+			resolveValues = core_slice.call( arguments ),
+			length = resolveValues.length,
+
+			// the count of uncompleted subordinates
+			remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,
+
+			// the master Deferred. If resolveValues consist of only a single Deferred, just use that.
+			deferred = remaining === 1 ? subordinate : jQuery.Deferred(),
+
+			// Update function for both resolve and progress values
+			updateFunc = function( i, contexts, values ) {
+				return function( value ) {
+					contexts[ i ] = this;
+					values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value;
+					if( values === progressValues ) {
+						deferred.notifyWith( contexts, values );
+					} else if ( !( --remaining ) ) {
+						deferred.resolveWith( contexts, values );
+					}
+				};
+			},
+
+			progressValues, progressContexts, resolveContexts;
+
+		// add listeners to Deferred subordinates; treat others as resolved
+		if ( length > 1 ) {
+			progressValues = new Array( length );
+			progressContexts = new Array( length );
+			resolveContexts = new Array( length );
+			for ( ; i < length; i++ ) {
+				if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {
+					resolveValues[ i ].promise()
+						.done( updateFunc( i, resolveContexts, resolveValues ) )
+						.fail( deferred.reject )
+						.progress( updateFunc( i, progressContexts, progressValues ) );
+				} else {
+					--remaining;
+				}
+			}
+		}
+
+		// if we're not waiting on anything, resolve the master
+		if ( !remaining ) {
+			deferred.resolveWith( resolveContexts, resolveValues );
+		}
+
+		return deferred.promise();
+	}
+});
+jQuery.support = (function( support ) {
+
+	var all, a, input, select, fragment, opt, eventName, isSupported, i,
+		div = document.createElement("div");
+
+	// Setup
+	div.setAttribute( "className", "t" );
+	div.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>";
+
+	// Finish early in limited (non-browser) environments
+	all = div.getElementsByTagName("*") || [];
+	a = div.getElementsByTagName("a")[ 0 ];
+	if ( !a || !a.style || !all.length ) {
+		return support;
+	}
+
+	// First batch of tests
+	select = document.createElement("select");
+	opt = select.appendChild( document.createElement("option") );
+	input = div.getElementsByTagName("input")[ 0 ];
+
+	a.style.cssText = "top:1px;float:left;opacity:.5";
+
+	// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
+	support.getSetAttribute = div.className !== "t";
+
+	// IE strips leading whitespace when .innerHTML is used
+	support.leadingWhitespace = div.firstChild.nodeType === 3;
+
+	// Make sure that tbody elements aren't automatically inserted
+	// IE will insert them into empty tables
+	support.tbody = !div.getElementsByTagName("tbody").length;
+
+	// Make sure that link elements get serialized correctly by innerHTML
+	// This requires a wrapper element in IE
+	support.htmlSerialize = !!div.getElementsByTagName("link").length;
+
+	// Get the style information from getAttribute
+	// (IE uses .cssText instead)
+	support.style = /top/.test( a.getAttribute("style") );
+
+	// Make sure that URLs aren't manipulated
+	// (IE normalizes it by default)
+	support.hrefNormalized = a.getAttribute("href") === "/a";
+
+	// Make sure that element opacity exists
+	// (IE uses filter instead)
+	// Use a regex to work around a WebKit issue. See #5145
+	support.opacity = /^0.5/.test( a.style.opacity );
+
+	// Verify style float existence
+	// (IE uses styleFloat instead of cssFloat)
+	support.cssFloat = !!a.style.cssFloat;
+
+	// Check the default checkbox/radio value ("" on WebKit; "on" elsewhere)
+	support.checkOn = !!input.value;
+
+	// Make sure that a selected-by-default option has a working selected property.
+	// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
+	support.optSelected = opt.selected;
+
+	// Tests for enctype support on a form (#6743)
+	support.enctype = !!document.createElement("form").enctype;
+
+	// Makes sure cloning an html5 element does not cause problems
+	// Where outerHTML is undefined, this still works
+	support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav></:nav>";
+
+	// Will be defined later
+	support.inlineBlockNeedsLayout = false;
+	support.shrinkWrapBlocks = false;
+	support.pixelPosition = false;
+	support.deleteExpando = true;
+	support.noCloneEvent = true;
+	support.reliableMarginRight = true;
+	support.boxSizingReliable = true;
+
+	// Make sure checked status is properly cloned
+	input.checked = true;
+	support.noCloneChecked = input.cloneNode( true ).checked;
+
+	// Make sure that the options inside disabled selects aren't marked as disabled
+	// (WebKit marks them as disabled)
+	select.disabled = true;
+	support.optDisabled = !opt.disabled;
+
+	// Support: IE<9
+	try {
+		delete div.test;
+	} catch( e ) {
+		support.deleteExpando = false;
+	}
+
+	// Check if we can trust getAttribute("value")
+	input = document.createElement("input");
+	input.setAttribute( "value", "" );
+	support.input = input.getAttribute( "value" ) === "";
+
+	// Check if an input maintains its value after becoming a radio
+	input.value = "t";
+	input.setAttribute( "type", "radio" );
+	support.radioValue = input.value === "t";
+
+	// #11217 - WebKit loses check when the name is after the checked attribute
+	input.setAttribute( "checked", "t" );
+	input.setAttribute( "name", "t" );
+
+	fragment = document.createDocumentFragment();
+	fragment.appendChild( input );
+
+	// Check if a disconnected checkbox will retain its checked
+	// value of true after appended to the DOM (IE6/7)
+	support.appendChecked = input.checked;
+
+	// WebKit doesn't clone checked state correctly in fragments
+	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
+
+	// Support: IE<9
+	// Opera does not clone events (and typeof div.attachEvent === undefined).
+	// IE9-10 clones events bound via attachEvent, but they don't trigger with .click()
+	if ( div.attachEvent ) {
+		div.attachEvent( "onclick", function() {
+			support.noCloneEvent = false;
+		});
+
+		div.cloneNode( true ).click();
+	}
+
+	// Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event)
+	// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)
+	for ( i in { submit: true, change: true, focusin: true }) {
+		div.setAttribute( eventName = "on" + i, "t" );
+
+		support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false;
+	}
+
+	div.style.backgroundClip = "content-box";
+	div.cloneNode( true ).style.backgroundClip = "";
+	support.clearCloneStyle = div.style.backgroundClip === "content-box";
+
+	// Support: IE<9
+	// Iteration over object's inherited properties before its own.
+	for ( i in jQuery( support ) ) {
+		break;
+	}
+	support.ownLast = i !== "0";
+
+	// Run tests that need a body at doc ready
+	jQuery(function() {
+		var container, marginDiv, tds,
+			divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",
+			body = document.getElementsByTagName("body")[0];
+
+		if ( !body ) {
+			// Return for frameset docs that don't have a body
+			return;
+		}
+
+		container = document.createElement("div");
+		container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px";
+
+		body.appendChild( container ).appendChild( div );
+
+		// Support: IE8
+		// Check if table cells still have offsetWidth/Height when they are set
+		// to display:none and there are still other visible table cells in a
+		// table row; if so, offsetWidth/Height are not reliable for use when
+		// determining if an element has been hidden directly using
+		// display:none (it is still safe to use offsets if a parent element is
+		// hidden; don safety goggles and see bug #4512 for more information).
+		div.innerHTML = "<table><tr><td></td><td>t</td></tr></table>";
+		tds = div.getElementsByTagName("td");
+		tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none";
+		isSupported = ( tds[ 0 ].offsetHeight === 0 );
+
+		tds[ 0 ].style.display = "";
+		tds[ 1 ].style.display = "none";
+
+		// Support: IE8
+		// Check if empty table cells still have offsetWidth/Height
+		support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
+
+		// Check box-sizing and margin behavior.
+		div.innerHTML = "";
+		div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;";
+
+		// Workaround failing boxSizing test due to offsetWidth returning wrong value
+		// with some non-1 values of body zoom, ticket #13543
+		jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() {
+			support.boxSizing = div.offsetWidth === 4;
+		});
+
+		// Use window.getComputedStyle because jsdom on node.js will break without it.
+		if ( window.getComputedStyle ) {
+			support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%";
+			support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px";
+
+			// Check if div with explicit width and no margin-right incorrectly
+			// gets computed margin-right based on width of container. (#3333)
+			// Fails in WebKit before Feb 2011 nightlies
+			// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+			marginDiv = div.appendChild( document.createElement("div") );
+			marginDiv.style.cssText = div.style.cssText = divReset;
+			marginDiv.style.marginRight = marginDiv.style.width = "0";
+			div.style.width = "1px";
+
+			support.reliableMarginRight =
+				!parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
+		}
+
+		if ( typeof div.style.zoom !== core_strundefined ) {
+			// Support: IE<8
+			// Check if natively block-level elements act like inline-block
+			// elements when setting their display to 'inline' and giving
+			// them layout
+			div.innerHTML = "";
+			div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1";
+			support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 );
+
+			// Support: IE6
+			// Check if elements with layout shrink-wrap their children
+			div.style.display = "block";
+			div.innerHTML = "<div></div>";
+			div.firstChild.style.width = "5px";
+			support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
+
+			if ( support.inlineBlockNeedsLayout ) {
+				// Prevent IE 6 from affecting layout for positioned elements #11048
+				// Prevent IE from shrinking the body in IE 7 mode #12869
+				// Support: IE<8
+				body.style.zoom = 1;
+			}
+		}
+
+		body.removeChild( container );
+
+		// Null elements to avoid leaks in IE
+		container = div = tds = marginDiv = null;
+	});
+
+	// Null elements to avoid leaks in IE
+	all = select = fragment = opt = a = input = null;
+
+	return support;
+})({});
+
+var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
+	rmultiDash = /([A-Z])/g;
+
+function internalData( elem, name, data, pvt /* Internal Use Only */ ){
+	if ( !jQuery.acceptData( elem ) ) {
+		return;
+	}
+
+	var ret, thisCache,
+		internalKey = jQuery.expando,
+
+		// We have to handle DOM nodes and JS objects differently because IE6-7
+		// can't GC object references properly across the DOM-JS boundary
+		isNode = elem.nodeType,
+
+		// Only DOM nodes need the global jQuery cache; JS object data is
+		// attached directly to the object so GC can occur automatically
+		cache = isNode ? jQuery.cache : elem,
+
+		// Only defining an ID for JS objects if its cache already exists allows
+		// the code to shortcut on the same path as a DOM node with no cache
+		id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
+
+	// Avoid doing any more work than we need to when trying to get data on an
+	// object that has no data at all
+	if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) {
+		return;
+	}
+
+	if ( !id ) {
+		// Only DOM nodes need a new unique ID for each element since their data
+		// ends up in the global cache
+		if ( isNode ) {
+			id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++;
+		} else {
+			id = internalKey;
+		}
+	}
+
+	if ( !cache[ id ] ) {
+		// Avoid exposing jQuery metadata on plain JS objects when the object
+		// is serialized using JSON.stringify
+		cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
+	}
+
+	// An object can be passed to jQuery.data instead of a key/value pair; this gets
+	// shallow copied over onto the existing cache
+	if ( typeof name === "object" || typeof name === "function" ) {
+		if ( pvt ) {
+			cache[ id ] = jQuery.extend( cache[ id ], name );
+		} else {
+			cache[ id ].data = jQuery.extend( cache[ id ].data, name );
+		}
+	}
+
+	thisCache = cache[ id ];
+
+	// jQuery data() is stored in a separate object inside the object's internal data
+	// cache in order to avoid key collisions between internal data and user-defined
+	// data.
+	if ( !pvt ) {
+		if ( !thisCache.data ) {
+			thisCache.data = {};
+		}
+
+		thisCache = thisCache.data;
+	}
+
+	if ( data !== undefined ) {
+		thisCache[ jQuery.camelCase( name ) ] = data;
+	}
+
+	// Check for both converted-to-camel and non-converted data property names
+	// If a data property was specified
+	if ( typeof name === "string" ) {
+
+		// First Try to find as-is property data
+		ret = thisCache[ name ];
+
+		// Test for null|undefined property data
+		if ( ret == null ) {
+
+			// Try to find the camelCased property
+			ret = thisCache[ jQuery.camelCase( name ) ];
+		}
+	} else {
+		ret = thisCache;
+	}
+
+	return ret;
+}
+
+function internalRemoveData( elem, name, pvt ) {
+	if ( !jQuery.acceptData( elem ) ) {
+		return;
+	}
+
+	var thisCache, i,
+		isNode = elem.nodeType,
+
+		// See jQuery.data for more information
+		cache = isNode ? jQuery.cache : elem,
+		id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
+
+	// If there is already no cache entry for this object, there is no
+	// purpose in continuing
+	if ( !cache[ id ] ) {
+		return;
+	}
+
+	if ( name ) {
+
+		thisCache = pvt ? cache[ id ] : cache[ id ].data;
+
+		if ( thisCache ) {
+
+			// Support array or space separated string names for data keys
+			if ( !jQuery.isArray( name ) ) {
+
+				// try the string as a key before any manipulation
+				if ( name in thisCache ) {
+					name = [ name ];
+				} else {
+
+					// split the camel cased version by spaces unless a key with the spaces exists
+					name = jQuery.camelCase( name );
+					if ( name in thisCache ) {
+						name = [ name ];
+					} else {
+						name = name.split(" ");
+					}
+				}
+			} else {
+				// If "name" is an array of keys...
+				// When data is initially created, via ("key", "val") signature,
+				// keys will be converted to camelCase.
+				// Since there is no way to tell _how_ a key was added, remove
+				// both plain key and camelCase key. #12786
+				// This will only penalize the array argument path.
+				name = name.concat( jQuery.map( name, jQuery.camelCase ) );
+			}
+
+			i = name.length;
+			while ( i-- ) {
+				delete thisCache[ name[i] ];
+			}
+
+			// If there is no data left in the cache, we want to continue
+			// and let the cache object itself get destroyed
+			if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) {
+				return;
+			}
+		}
+	}
+
+	// See jQuery.data for more information
+	if ( !pvt ) {
+		delete cache[ id ].data;
+
+		// Don't destroy the parent cache unless the internal data object
+		// had been the only thing left in it
+		if ( !isEmptyDataObject( cache[ id ] ) ) {
+			return;
+		}
+	}
+
+	// Destroy the cache
+	if ( isNode ) {
+		jQuery.cleanData( [ elem ], true );
+
+	// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
+	/* jshint eqeqeq: false */
+	} else if ( jQuery.support.deleteExpando || cache != cache.window ) {
+		/* jshint eqeqeq: true */
+		delete cache[ id ];
+
+	// When all else fails, null
+	} else {
+		cache[ id ] = null;
+	}
+}
+
+jQuery.extend({
+	cache: {},
+
+	// The following elements throw uncatchable exceptions if you
+	// attempt to add expando properties to them.
+	noData: {
+		"applet": true,
+		"embed": true,
+		// Ban all objects except for Flash (which handle expandos)
+		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+	},
+
+	hasData: function( elem ) {
+		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
+		return !!elem && !isEmptyDataObject( elem );
+	},
+
+	data: function( elem, name, data ) {
+		return internalData( elem, name, data );
+	},
+
+	removeData: function( elem, name ) {
+		return internalRemoveData( elem, name );
+	},
+
+	// For internal use only.
+	_data: function( elem, name, data ) {
+		return internalData( elem, name, data, true );
+	},
+
+	_removeData: function( elem, name ) {
+		return internalRemoveData( elem, name, true );
+	},
+
+	// A method for determining if a DOM node can handle the data expando
+	acceptData: function( elem ) {
+		// Do not set data on non-element because it will not be cleared (#8335).
+		if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) {
+			return false;
+		}
+
+		var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ];
+
+		// nodes accept data unless otherwise specified; rejection can be conditional
+		return !noData || noData !== true && elem.getAttribute("classid") === noData;
+	}
+});
+
+jQuery.fn.extend({
+	data: function( key, value ) {
+		var attrs, name,
+			data = null,
+			i = 0,
+			elem = this[0];
+
+		// Special expections of .data basically thwart jQuery.access,
+		// so implement the relevant behavior ourselves
+
+		// Gets all values
+		if ( key === undefined ) {
+			if ( this.length ) {
+				data = jQuery.data( elem );
+
+				if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
+					attrs = elem.attributes;
+					for ( ; i < attrs.length; i++ ) {
+						name = attrs[i].name;
+
+						if ( name.indexOf("data-") === 0 ) {
+							name = jQuery.camelCase( name.slice(5) );
+
+							dataAttr( elem, name, data[ name ] );
+						}
+					}
+					jQuery._data( elem, "parsedAttrs", true );
+				}
+			}
+
+			return data;
+		}
+
+		// Sets multiple values
+		if ( typeof key === "object" ) {
+			return this.each(function() {
+				jQuery.data( this, key );
+			});
+		}
+
+		return arguments.length > 1 ?
+
+			// Sets one value
+			this.each(function() {
+				jQuery.data( this, key, value );
+			}) :
+
+			// Gets one value
+			// Try to fetch any internally stored data first
+			elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null;
+	},
+
+	removeData: function( key ) {
+		return this.each(function() {
+			jQuery.removeData( this, key );
+		});
+	}
+});
+
+function dataAttr( elem, key, data ) {
+	// If nothing was found internally, try to fetch any
+	// data from the HTML5 data-* attribute
+	if ( data === undefined && elem.nodeType === 1 ) {
+
+		var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
+
+		data = elem.getAttribute( name );
+
+		if ( typeof data === "string" ) {
+			try {
+				data = data === "true" ? true :
+					data === "false" ? false :
+					data === "null" ? null :
+					// Only convert to a number if it doesn't change the string
+					+data + "" === data ? +data :
+					rbrace.test( data ) ? jQuery.parseJSON( data ) :
+						data;
+			} catch( e ) {}
+
+			// Make sure we set the data so it isn't changed later
+			jQuery.data( elem, key, data );
+
+		} else {
+			data = undefined;
+		}
+	}
+
+	return data;
+}
+
+// checks a cache object for emptiness
+function isEmptyDataObject( obj ) {
+	var name;
+	for ( name in obj ) {
+
+		// if the public data object is empty, the private is still empty
+		if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) {
+			continue;
+		}
+		if ( name !== "toJSON" ) {
+			return false;
+		}
+	}
+
+	return true;
+}
+jQuery.extend({
+	queue: function( elem, type, data ) {
+		var queue;
+
+		if ( elem ) {
+			type = ( type || "fx" ) + "queue";
+			queue = jQuery._data( elem, type );
+
+			// Speed up dequeue by getting out quickly if this is just a lookup
+			if ( data ) {
+				if ( !queue || jQuery.isArray(data) ) {
+					queue = jQuery._data( elem, type, jQuery.makeArray(data) );
+				} else {
+					queue.push( data );
+				}
+			}
+			return queue || [];
+		}
+	},
+
+	dequeue: function( elem, type ) {
+		type = type || "fx";
+
+		var queue = jQuery.queue( elem, type ),
+			startLength = queue.length,
+			fn = queue.shift(),
+			hooks = jQuery._queueHooks( elem, type ),
+			next = function() {
+				jQuery.dequeue( elem, type );
+			};
+
+		// If the fx queue is dequeued, always remove the progress sentinel
+		if ( fn === "inprogress" ) {
+			fn = queue.shift();
+			startLength--;
+		}
+
+		if ( fn ) {
+
+			// Add a progress sentinel to prevent the fx queue from being
+			// automatically dequeued
+			if ( type === "fx" ) {
+				queue.unshift( "inprogress" );
+			}
+
+			// clear up the last queue stop function
+			delete hooks.stop;
+			fn.call( elem, next, hooks );
+		}
+
+		if ( !startLength && hooks ) {
+			hooks.empty.fire();
+		}
+	},
+
+	// not intended for public consumption - generates a queueHooks object, or returns the current one
+	_queueHooks: function( elem, type ) {
+		var key = type + "queueHooks";
+		return jQuery._data( elem, key ) || jQuery._data( elem, key, {
+			empty: jQuery.Callbacks("once memory").add(function() {
+				jQuery._removeData( elem, type + "queue" );
+				jQuery._removeData( elem, key );
+			})
+		});
+	}
+});
+
+jQuery.fn.extend({
+	queue: function( type, data ) {
+		var setter = 2;
+
+		if ( typeof type !== "string" ) {
+			data = type;
+			type = "fx";
+			setter--;
+		}
+
+		if ( arguments.length < setter ) {
+			return jQuery.queue( this[0], type );
+		}
+
+		return data === undefined ?
+			this :
+			this.each(function() {
+				var queue = jQuery.queue( this, type, data );
+
+				// ensure a hooks for this queue
+				jQuery._queueHooks( this, type );
+
+				if ( type === "fx" && queue[0] !== "inprogress" ) {
+					jQuery.dequeue( this, type );
+				}
+			});
+	},
+	dequeue: function( type ) {
+		return this.each(function() {
+			jQuery.dequeue( this, type );
+		});
+	},
+	// Based off of the plugin by Clint Helfers, with permission.
+	// http://blindsignals.com/index.php/2009/07/jquery-delay/
+	delay: function( time, type ) {
+		time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
+		type = type || "fx";
+
+		return this.queue( type, function( next, hooks ) {
+			var timeout = setTimeout( next, time );
+			hooks.stop = function() {
+				clearTimeout( timeout );
+			};
+		});
+	},
+	clearQueue: function( type ) {
+		return this.queue( type || "fx", [] );
+	},
+	// Get a promise resolved when queues of a certain type
+	// are emptied (fx is the type by default)
+	promise: function( type, obj ) {
+		var tmp,
+			count = 1,
+			defer = jQuery.Deferred(),
+			elements = this,
+			i = this.length,
+			resolve = function() {
+				if ( !( --count ) ) {
+					defer.resolveWith( elements, [ elements ] );
+				}
+			};
+
+		if ( typeof type !== "string" ) {
+			obj = type;
+			type = undefined;
+		}
+		type = type || "fx";
+
+		while( i-- ) {
+			tmp = jQuery._data( elements[ i ], type + "queueHooks" );
+			if ( tmp && tmp.empty ) {
+				count++;
+				tmp.empty.add( resolve );
+			}
+		}
+		resolve();
+		return defer.promise( obj );
+	}
+});
+var nodeHook, boolHook,
+	rclass = /[\t\r\n\f]/g,
+	rreturn = /\r/g,
+	rfocusable = /^(?:input|select|textarea|button|object)$/i,
+	rclickable = /^(?:a|area)$/i,
+	ruseDefault = /^(?:checked|selected)$/i,
+	getSetAttribute = jQuery.support.getSetAttribute,
+	getSetInput = jQuery.support.input;
+
+jQuery.fn.extend({
+	attr: function( name, value ) {
+		return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
+	},
+
+	removeAttr: function( name ) {
+		return this.each(function() {
+			jQuery.removeAttr( this, name );
+		});
+	},
+
+	prop: function( name, value ) {
+		return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 );
+	},
+
+	removeProp: function( name ) {
+		name = jQuery.propFix[ name ] || name;
+		return this.each(function() {
+			// try/catch handles cases where IE balks (such as removing a property on window)
+			try {
+				this[ name ] = undefined;
+				delete this[ name ];
+			} catch( e ) {}
+		});
+	},
+
+	addClass: function( value ) {
+		var classes, elem, cur, clazz, j,
+			i = 0,
+			len = this.length,
+			proceed = typeof value === "string" && value;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).addClass( value.call( this, j, this.className ) );
+			});
+		}
+
+		if ( proceed ) {
+			// The disjunction here is for better compressibility (see removeClass)
+			classes = ( value || "" ).match( core_rnotwhite ) || [];
+
+			for ( ; i < len; i++ ) {
+				elem = this[ i ];
+				cur = elem.nodeType === 1 && ( elem.className ?
+					( " " + elem.className + " " ).replace( rclass, " " ) :
+					" "
+				);
+
+				if ( cur ) {
+					j = 0;
+					while ( (clazz = classes[j++]) ) {
+						if ( cur.indexOf( " " + clazz + " " ) < 0 ) {
+							cur += clazz + " ";
+						}
+					}
+					elem.className = jQuery.trim( cur );
+
+				}
+			}
+		}
+
+		return this;
+	},
+
+	removeClass: function( value ) {
+		var classes, elem, cur, clazz, j,
+			i = 0,
+			len = this.length,
+			proceed = arguments.length === 0 || typeof value === "string" && value;
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( j ) {
+				jQuery( this ).removeClass( value.call( this, j, this.className ) );
+			});
+		}
+		if ( proceed ) {
+			classes = ( value || "" ).match( core_rnotwhite ) || [];
+
+			for ( ; i < len; i++ ) {
+				elem = this[ i ];
+				// This expression is here for better compressibility (see addClass)
+				cur = elem.nodeType === 1 && ( elem.className ?
+					( " " + elem.className + " " ).replace( rclass, " " ) :
+					""
+				);
+
+				if ( cur ) {
+					j = 0;
+					while ( (clazz = classes[j++]) ) {
+						// Remove *all* instances
+						while ( cur.indexOf( " " + clazz + " " ) >= 0 ) {
+							cur = cur.replace( " " + clazz + " ", " " );
+						}
+					}
+					elem.className = value ? jQuery.trim( cur ) : "";
+				}
+			}
+		}
+
+		return this;
+	},
+
+	toggleClass: function( value, stateVal ) {
+		var type = typeof value;
+
+		if ( typeof stateVal === "boolean" && type === "string" ) {
+			return stateVal ? this.addClass( value ) : this.removeClass( value );
+		}
+
+		if ( jQuery.isFunction( value ) ) {
+			return this.each(function( i ) {
+				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
+			});
+		}
+
+		return this.each(function() {
+			if ( type === "string" ) {
+				// toggle individual class names
+				var className,
+					i = 0,
+					self = jQuery( this ),
+					classNames = value.match( core_rnotwhite ) || [];
+
+				while ( (className = classNames[ i++ ]) ) {
+					// check each className given, space separated list
+					if ( self.hasClass( className ) ) {
+						self.removeClass( className );
+					} else {
+						self.addClass( className );
+					}
+				}
+
+			// Toggle whole class name
+			} else if ( type === core_strundefined || type === "boolean" ) {
+				if ( this.className ) {
+					// store className if set
+					jQuery._data( this, "__className__", this.className );
+				}
+
+				// If the element has a class name or if we're passed "false",
+				// then remove the whole classname (if there was one, the above saved it).
+				// Otherwise bring back whatever was previously saved (if anything),
+				// falling back to the empty string if nothing was stored.
+				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
+			}
+		});
+	},
+
+	hasClass: function( selector ) {
+		var className = " " + selector + " ",
+			i = 0,
+			l = this.length;
+		for ( ; i < l; i++ ) {
+			if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) {
+				return true;
+			}
+		}
+
+		return false;
+	},
+
+	val: function( value ) {
+		var ret, hooks, isFunction,
+			elem = this[0];
+
+		if ( !arguments.length ) {
+			if ( elem ) {
+				hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];
+
+				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
+					return ret;
+				}
+
+				ret = elem.value;
+
+				return typeof ret === "string" ?
+					// handle most common string cases
+					ret.replace(rreturn, "") :
+					// handle cases where value is null/undef or number
+					ret == null ? "" : ret;
+			}
+
+			return;
+		}
+
+		isFunction = jQuery.isFunction( value );
+
+		return this.each(function( i ) {
+			var val;
+
+			if ( this.nodeType !== 1 ) {
+				return;
+			}
+
+			if ( isFunction ) {
+				val = value.call( this, i, jQuery( this ).val() );
+			} else {
+				val = value;
+			}
+
+			// Treat null/undefined as ""; convert numbers to string
+			if ( val == null ) {
+				val = "";
+			} else if ( typeof val === "number" ) {
+				val += "";
+			} else if ( jQuery.isArray( val ) ) {
+				val = jQuery.map(val, function ( value ) {
+					return value == null ? "" : value + "";
+				});
+			}
+
+			hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];
+
+			// If set returns undefined, fall back to normal setting
+			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
+				this.value = val;
+			}
+		});
+	}
+});
+
+jQuery.extend({
+	valHooks: {
+		option: {
+			get: function( elem ) {
+				// Use proper attribute retrieval(#6932, #12072)
+				var val = jQuery.find.attr( elem, "value" );
+				return val != null ?
+					val :
+					elem.text;
+			}
+		},
+		select: {
+			get: function( elem ) {
+				var value, option,
+					options = elem.options,
+					index = elem.selectedIndex,
+					one = elem.type === "select-one" || index < 0,
+					values = one ? null : [],
+					max = one ? index + 1 : options.length,
+					i = index < 0 ?
+						max :
+						one ? index : 0;
+
+				// Loop through all the selected options
+				for ( ; i < max; i++ ) {
+					option = options[ i ];
+
+					// oldIE doesn't update selected after form reset (#2551)
+					if ( ( option.selected || i === index ) &&
+							// Don't return options that are disabled or in a disabled optgroup
+							( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) &&
+							( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) {
+
+						// Get the specific value for the option
+						value = jQuery( option ).val();
+
+						// We don't need an array for one selects
+						if ( one ) {
+							return value;
+						}
+
+						// Multi-Selects return an array
+						values.push( value );
+					}
+				}
+
+				return values;
+			},
+
+			set: function( elem, value ) {
+				var optionSet, option,
+					options = elem.options,
+					values = jQuery.makeArray( value ),
+					i = options.length;
+
+				while ( i-- ) {
+					option = options[ i ];
+					if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) {
+						optionSet = true;
+					}
+				}
+
+				// force browsers to behave consistently when non-matching value is set
+				if ( !optionSet ) {
+					elem.selectedIndex = -1;
+				}
+				return values;
+			}
+		}
+	},
+
+	attr: function( elem, name, value ) {
+		var hooks, ret,
+			nType = elem.nodeType;
+
+		// don't get/set attributes on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		// Fallback to prop when attributes are not supported
+		if ( typeof elem.getAttribute === core_strundefined ) {
+			return jQuery.prop( elem, name, value );
+		}
+
+		// All attributes are lowercase
+		// Grab necessary hook if one is defined
+		if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
+			name = name.toLowerCase();
+			hooks = jQuery.attrHooks[ name ] ||
+				( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
+		}
+
+		if ( value !== undefined ) {
+
+			if ( value === null ) {
+				jQuery.removeAttr( elem, name );
+
+			} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
+				return ret;
+
+			} else {
+				elem.setAttribute( name, value + "" );
+				return value;
+			}
+
+		} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
+			return ret;
+
+		} else {
+			ret = jQuery.find.attr( elem, name );
+
+			// Non-existent attributes return null, we normalize to undefined
+			return ret == null ?
+				undefined :
+				ret;
+		}
+	},
+
+	removeAttr: function( elem, value ) {
+		var name, propName,
+			i = 0,
+			attrNames = value && value.match( core_rnotwhite );
+
+		if ( attrNames && elem.nodeType === 1 ) {
+			while ( (name = attrNames[i++]) ) {
+				propName = jQuery.propFix[ name ] || name;
+
+				// Boolean attributes get special treatment (#10870)
+				if ( jQuery.expr.match.bool.test( name ) ) {
+					// Set corresponding property to false
+					if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+						elem[ propName ] = false;
+					// Support: IE<9
+					// Also clear defaultChecked/defaultSelected (if appropriate)
+					} else {
+						elem[ jQuery.camelCase( "default-" + name ) ] =
+							elem[ propName ] = false;
+					}
+
+				// See #9699 for explanation of this approach (setting first, then removal)
+				} else {
+					jQuery.attr( elem, name, "" );
+				}
+
+				elem.removeAttribute( getSetAttribute ? name : propName );
+			}
+		}
+	},
+
+	attrHooks: {
+		type: {
+			set: function( elem, value ) {
+				if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
+					// Setting the type on a radio button after the value resets the value in IE6-9
+					// Reset value to default in case type is set after value during creation
+					var val = elem.value;
+					elem.setAttribute( "type", value );
+					if ( val ) {
+						elem.value = val;
+					}
+					return value;
+				}
+			}
+		}
+	},
+
+	propFix: {
+		"for": "htmlFor",
+		"class": "className"
+	},
+
+	prop: function( elem, name, value ) {
+		var ret, hooks, notxml,
+			nType = elem.nodeType;
+
+		// don't get/set properties on text, comment and attribute nodes
+		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
+			return;
+		}
+
+		notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
+
+		if ( notxml ) {
+			// Fix name and attach hooks
+			name = jQuery.propFix[ name ] || name;
+			hooks = jQuery.propHooks[ name ];
+		}
+
+		if ( value !== undefined ) {
+			return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
+				ret :
+				( elem[ name ] = value );
+
+		} else {
+			return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
+				ret :
+				elem[ name ];
+		}
+	},
+
+	propHooks: {
+		tabIndex: {
+			get: function( elem ) {
+				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
+				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
+				// Use proper attribute retrieval(#12072)
+				var tabindex = jQuery.find.attr( elem, "tabindex" );
+
+				return tabindex ?
+					parseInt( tabindex, 10 ) :
+					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
+						0 :
+						-1;
+			}
+		}
+	}
+});
+
+// Hooks for boolean attributes
+boolHook = {
+	set: function( elem, value, name ) {
+		if ( value === false ) {
+			// Remove boolean attributes when set to false
+			jQuery.removeAttr( elem, name );
+		} else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) {
+			// IE<8 needs the *property* name
+			elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name );
+
+		// Use defaultChecked and defaultSelected for oldIE
+		} else {
+			elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true;
+		}
+
+		return name;
+	}
+};
+jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
+	var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr;
+
+	jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ?
+		function( elem, name, isXML ) {
+			var fn = jQuery.expr.attrHandle[ name ],
+				ret = isXML ?
+					undefined :
+					/* jshint eqeqeq: false */
+					(jQuery.expr.attrHandle[ name ] = undefined) !=
+						getter( elem, name, isXML ) ?
+
+						name.toLowerCase() :
+						null;
+			jQuery.expr.attrHandle[ name ] = fn;
+			return ret;
+		} :
+		function( elem, name, isXML ) {
+			return isXML ?
+				undefined :
+				elem[ jQuery.camelCase( "default-" + name ) ] ?
+					name.toLowerCase() :
+					null;
+		};
+});
+
+// fix oldIE attroperties
+if ( !getSetInput || !getSetAttribute ) {
+	jQuery.attrHooks.value = {
+		set: function( elem, value, name ) {
+			if ( jQuery.nodeName( elem, "input" ) ) {
+				// Does not return so that setAttribute is also used
+				elem.defaultValue = value;
+			} else {
+				// Use nodeHook if defined (#1954); otherwise setAttribute is fine
+				return nodeHook && nodeHook.set( elem, value, name );
+			}
+		}
+	};
+}
+
+// IE6/7 do not support getting/setting some attributes with get/setAttribute
+if ( !getSetAttribute ) {
+
+	// Use this for any attribute in IE6/7
+	// This fixes almost every IE6/7 issue
+	nodeHook = {
+		set: function( elem, value, name ) {
+			// Set the existing or create a new attribute node
+			var ret = elem.getAttributeNode( name );
+			if ( !ret ) {
+				elem.setAttributeNode(
+					(ret = elem.ownerDocument.createAttribute( name ))
+				);
+			}
+
+			ret.value = value += "";
+
+			// Break association with cloned elements by also using setAttribute (#9646)
+			return name === "value" || value === elem.getAttribute( name ) ?
+				value :
+				undefined;
+		}
+	};
+	jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords =
+		// Some attributes are constructed with empty-string values when not defined
+		function( elem, name, isXML ) {
+			var ret;
+			return isXML ?
+				undefined :
+				(ret = elem.getAttributeNode( name )) && ret.value !== "" ?
+					ret.value :
+					null;
+		};
+	jQuery.valHooks.button = {
+		get: function( elem, name ) {
+			var ret = elem.getAttributeNode( name );
+			return ret && ret.specified ?
+				ret.value :
+				undefined;
+		},
+		set: nodeHook.set
+	};
+
+	// Set contenteditable to false on removals(#10429)
+	// Setting to empty string throws an error as an invalid value
+	jQuery.attrHooks.contenteditable = {
+		set: function( elem, value, name ) {
+			nodeHook.set( elem, value === "" ? false : value, name );
+		}
+	};
+
+	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
+	// This is for removals
+	jQuery.each([ "width", "height" ], function( i, name ) {
+		jQuery.attrHooks[ name ] = {
+			set: function( elem, value ) {
+				if ( value === "" ) {
+					elem.setAttribute( name, "auto" );
+					return value;
+				}
+			}
+		};
+	});
+}
+
+
+// Some attributes require a special call on IE
+// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
+if ( !jQuery.support.hrefNormalized ) {
+	// href/src property should get the full normalized URL (#10299/#12915)
+	jQuery.each([ "href", "src" ], function( i, name ) {
+		jQuery.propHooks[ name ] = {
+			get: function( elem ) {
+				return elem.getAttribute( name, 4 );
+			}
+		};
+	});
+}
+
+if ( !jQuery.support.style ) {
+	jQuery.attrHooks.style = {
+		get: function( elem ) {
+			// Return undefined in the case of empty string
+			// Note: IE uppercases css property names, but if we were to .toLowerCase()
+			// .cssText, that would destroy case senstitivity in URL's, like in "background"
+			return elem.style.cssText || undefined;
+		},
+		set: function( elem, value ) {
+			return ( elem.style.cssText = value + "" );
+		}
+	};
+}
+
+// Safari mis-reports the default selected property of an option
+// Accessing the parent's selectedIndex property fixes it
+if ( !jQuery.support.optSelected ) {
+	jQuery.propHooks.selected = {
+		get: function( elem ) {
+			var parent = elem.parentNode;
+
+			if ( parent ) {
+				parent.selectedIndex;
+
+				// Make sure that it also works with optgroups, see #5701
+				if ( parent.parentNode ) {
+					parent.parentNode.selectedIndex;
+				}
+			}
+			return null;
+		}
+	};
+}
+
+jQuery.each([
+	"tabIndex",
+	"readOnly",
+	"maxLength",
+	"cellSpacing",
+	"cellPadding",
+	"rowSpan",
+	"colSpan",
+	"useMap",
+	"frameBorder",
+	"contentEditable"
+], function() {
+	jQuery.propFix[ this.toLowerCase() ] = this;
+});
+
+// IE6/7 call enctype encoding
+if ( !jQuery.support.enctype ) {
+	jQuery.propFix.enctype = "encoding";
+}
+
+// Radios and checkboxes getter/setter
+jQuery.each([ "radio", "checkbox" ], function() {
+	jQuery.valHooks[ this ] = {
+		set: function( elem, value ) {
+			if ( jQuery.isArray( value ) ) {
+				return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 );
+			}
+		}
+	};
+	if ( !jQuery.support.checkOn ) {
+		jQuery.valHooks[ this ].get = function( elem ) {
+			// Support: Webkit
+			// "" is returned instead of "on" if a value isn't specified
+			return elem.getAttribute("value") === null ? "on" : elem.value;
+		};
+	}
+});
+var rformElems = /^(?:input|select|textarea)$/i,
+	rkeyEvent = /^key/,
+	rmouseEvent = /^(?:mouse|contextmenu)|click/,
+	rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
+	rtypenamespace = /^([^.]*)(?:\.(.+)|)$/;
+
+function returnTrue() {
+	return true;
+}
+
+function returnFalse() {
+	return false;
+}
+
+function safeActiveElement() {
+	try {
+		return document.activeElement;
+	} catch ( err ) { }
+}
+
+/*
+ * Helper functions for managing events -- not part of the public interface.
+ * Props to Dean Edwards' addEvent library for many of the ideas.
+ */
+jQuery.event = {
+
+	global: {},
+
+	add: function( elem, types, handler, data, selector ) {
+		var tmp, events, t, handleObjIn,
+			special, eventHandle, handleObj,
+			handlers, type, namespaces, origType,
+			elemData = jQuery._data( elem );
+
+		// Don't attach events to noData or text/comment nodes (but allow plain objects)
+		if ( !elemData ) {
+			return;
+		}
+
+		// Caller can pass in an object of custom data in lieu of the handler
+		if ( handler.handler ) {
+			handleObjIn = handler;
+			handler = handleObjIn.handler;
+			selector = handleObjIn.selector;
+		}
+
+		// Make sure that the handler has a unique ID, used to find/remove it later
+		if ( !handler.guid ) {
+			handler.guid = jQuery.guid++;
+		}
+
+		// Init the element's event structure and main handler, if this is the first
+		if ( !(events = elemData.events) ) {
+			events = elemData.events = {};
+		}
+		if ( !(eventHandle = elemData.handle) ) {
+			eventHandle = elemData.handle = function( e ) {
+				// Discard the second event of a jQuery.event.trigger() and
+				// when an event is called after a page has unloaded
+				return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ?
+					jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
+					undefined;
+			};
+			// Add elem as a property of the handle fn to prevent a memory leak with IE non-native events
+			eventHandle.elem = elem;
+		}
+
+		// Handle multiple events separated by a space
+		types = ( types || "" ).match( core_rnotwhite ) || [""];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tmp[1];
+			namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+			// There *must* be a type, no attaching namespace-only handlers
+			if ( !type ) {
+				continue;
+			}
+
+			// If event changes its type, use the special event handlers for the changed type
+			special = jQuery.event.special[ type ] || {};
+
+			// If selector defined, determine special event api type, otherwise given type
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+
+			// Update special based on newly reset type
+			special = jQuery.event.special[ type ] || {};
+
+			// handleObj is passed to all event handlers
+			handleObj = jQuery.extend({
+				type: type,
+				origType: origType,
+				data: data,
+				handler: handler,
+				guid: handler.guid,
+				selector: selector,
+				needsContext: selector && jQuery.expr.match.needsContext.test( selector ),
+				namespace: namespaces.join(".")
+			}, handleObjIn );
+
+			// Init the event handler queue if we're the first
+			if ( !(handlers = events[ type ]) ) {
+				handlers = events[ type ] = [];
+				handlers.delegateCount = 0;
+
+				// Only use addEventListener/attachEvent if the special events handler returns false
+				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
+					// Bind the global event handler to the element
+					if ( elem.addEventListener ) {
+						elem.addEventListener( type, eventHandle, false );
+
+					} else if ( elem.attachEvent ) {
+						elem.attachEvent( "on" + type, eventHandle );
+					}
+				}
+			}
+
+			if ( special.add ) {
+				special.add.call( elem, handleObj );
+
+				if ( !handleObj.handler.guid ) {
+					handleObj.handler.guid = handler.guid;
+				}
+			}
+
+			// Add to the element's handler list, delegates in front
+			if ( selector ) {
+				handlers.splice( handlers.delegateCount++, 0, handleObj );
+			} else {
+				handlers.push( handleObj );
+			}
+
+			// Keep track of which events have ever been used, for event optimization
+			jQuery.event.global[ type ] = true;
+		}
+
+		// Nullify elem to prevent memory leaks in IE
+		elem = null;
+	},
+
+	// Detach an event or set of events from an element
+	remove: function( elem, types, handler, selector, mappedTypes ) {
+		var j, handleObj, tmp,
+			origCount, t, events,
+			special, handlers, type,
+			namespaces, origType,
+			elemData = jQuery.hasData( elem ) && jQuery._data( elem );
+
+		if ( !elemData || !(events = elemData.events) ) {
+			return;
+		}
+
+		// Once for each type.namespace in types; type may be omitted
+		types = ( types || "" ).match( core_rnotwhite ) || [""];
+		t = types.length;
+		while ( t-- ) {
+			tmp = rtypenamespace.exec( types[t] ) || [];
+			type = origType = tmp[1];
+			namespaces = ( tmp[2] || "" ).split( "." ).sort();
+
+			// Unbind all events (on this namespace, if provided) for the element
+			if ( !type ) {
+				for ( type in events ) {
+					jQuery.event.remove( elem, type + types[ t ], handler, selector, true );
+				}
+				continue;
+			}
+
+			special = jQuery.event.special[ type ] || {};
+			type = ( selector ? special.delegateType : special.bindType ) || type;
+			handlers = events[ type ] || [];
+			tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" );
+
+			// Remove matching events
+			origCount = j = handlers.length;
+			while ( j-- ) {
+				handleObj = handlers[ j ];
+
+				if ( ( mappedTypes || origType === handleObj.origType ) &&
+					( !handler || handler.guid === handleObj.guid ) &&
+					( !tmp || tmp.test( handleObj.namespace ) ) &&
+					( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) {
+					handlers.splice( j, 1 );
+
+					if ( handleObj.selector ) {
+						handlers.delegateCount--;
+					}
+					if ( special.remove ) {
+						special.remove.call( elem, handleObj );
+					}
+				}
+			}
+
+			// Remove generic event handler if we removed something and no more handlers exist
+			// (avoids potential for endless recursion during removal of special event handlers)
+			if ( origCount && !handlers.length ) {
+				if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {
+					jQuery.removeEvent( elem, type, elemData.handle );
+				}
+
+				delete events[ type ];
+			}
+		}
+
+		// Remove the expando if it's no longer used
+		if ( jQuery.isEmptyObject( events ) ) {
+			delete elemData.handle;
+
+			// removeData also checks for emptiness and clears the expando if empty
+			// so use it instead of delete
+			jQuery._removeData( elem, "events" );
+		}
+	},
+
+	trigger: function( event, data, elem, onlyHandlers ) {
+		var handle, ontype, cur,
+			bubbleType, special, tmp, i,
+			eventPath = [ elem || document ],
+			type = core_hasOwn.call( event, "type" ) ? event.type : event,
+			namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : [];
+
+		cur = tmp = elem = elem || document;
+
+		// Don't do events on text and comment nodes
+		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
+			return;
+		}
+
+		// focus/blur morphs to focusin/out; ensure we're not firing them right now
+		if ( rfocusMorph.test( type + jQuery.event.triggered ) ) {
+			return;
+		}
+
+		if ( type.indexOf(".") >= 0 ) {
+			// Namespaced trigger; create a regexp to match event type in handle()
+			namespaces = type.split(".");
+			type = namespaces.shift();
+			namespaces.sort();
+		}
+		ontype = type.indexOf(":") < 0 && "on" + type;
+
+		// Caller can pass in a jQuery.Event object, Object, or just an event type string
+		event = event[ jQuery.expando ] ?
+			event :
+			new jQuery.Event( type, typeof event === "object" && event );
+
+		// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)
+		event.isTrigger = onlyHandlers ? 2 : 3;
+		event.namespace = namespaces.join(".");
+		event.namespace_re = event.namespace ?
+			new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) :
+			null;
+
+		// Clean up the event in case it is being reused
+		event.result = undefined;
+		if ( !event.target ) {
+			event.target = elem;
+		}
+
+		// Clone any incoming data and prepend the event, creating the handler arg list
+		data = data == null ?
+			[ event ] :
+			jQuery.makeArray( data, [ event ] );
+
+		// Allow special events to draw outside the lines
+		special = jQuery.event.special[ type ] || {};
+		if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {
+			return;
+		}
+
+		// Determine event propagation path in advance, per W3C events spec (#9951)
+		// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)
+		if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {
+
+			bubbleType = special.delegateType || type;
+			if ( !rfocusMorph.test( bubbleType + type ) ) {
+				cur = cur.parentNode;
+			}
+			for ( ; cur; cur = cur.parentNode ) {
+				eventPath.push( cur );
+				tmp = cur;
+			}
+
+			// Only add window if we got to document (e.g., not plain obj or detached DOM)
+			if ( tmp === (elem.ownerDocument || document) ) {
+				eventPath.push( tmp.defaultView || tmp.parentWindow || window );
+			}
+		}
+
+		// Fire handlers on the event path
+		i = 0;
+		while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {
+
+			event.type = i > 1 ?
+				bubbleType :
+				special.bindType || type;
+
+			// jQuery handler
+			handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" );
+			if ( handle ) {
+				handle.apply( cur, data );
+			}
+
+			// Native handler
+			handle = ontype && cur[ ontype ];
+			if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) {
+				event.preventDefault();
+			}
+		}
+		event.type = type;
+
+		// If nobody prevented the default action, do it now
+		if ( !onlyHandlers && !event.isDefaultPrevented() ) {
+
+			if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&
+				jQuery.acceptData( elem ) ) {
+
+				// Call a native DOM method on the target with the same name name as the event.
+				// Can't use an .isFunction() check here because IE6/7 fails that test.
+				// Don't do default actions on window, that's where global variables be (#6170)
+				if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {
+
+					// Don't re-trigger an onFOO event when we call its FOO() method
+					tmp = elem[ ontype ];
+
+					if ( tmp ) {
+						elem[ ontype ] = null;
+					}
+
+					// Prevent re-triggering of the same event, since we already bubbled it above
+					jQuery.event.triggered = type;
+					try {
+						elem[ type ]();
+					} catch ( e ) {
+						// IE<9 dies on focus/blur to hidden element (#1486,#12518)
+						// only reproducible on winXP IE8 native, not IE9 in IE8 mode
+					}
+					jQuery.event.triggered = undefined;
+
+					if ( tmp ) {
+						elem[ ontype ] = tmp;
+					}
+				}
+			}
+		}
+
+		return event.result;
+	},
+
+	dispatch: function( event ) {
+
+		// Make a writable jQuery.Event from the native event object
+		event = jQuery.event.fix( event );
+
+		var i, ret, handleObj, matched, j,
+			handlerQueue = [],
+			args = core_slice.call( arguments ),
+			handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [],
+			special = jQuery.event.special[ event.type ] || {};
+
+		// Use the fix-ed jQuery.Event rather than the (read-only) native event
+		args[0] = event;
+		event.delegateTarget = this;
+
+		// Call the preDispatch hook for the mapped type, and let it bail if desired
+		if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {
+			return;
+		}
+
+		// Determine handlers
+		handlerQueue = jQuery.event.handlers.call( this, event, handlers );
+
+		// Run delegates first; they may want to stop propagation beneath us
+		i = 0;
+		while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {
+			event.currentTarget = matched.elem;
+
+			j = 0;
+			while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {
+
+				// Triggered event must either 1) have no namespace, or
+				// 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace).
+				if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {
+
+					event.handleObj = handleObj;
+					event.data = handleObj.data;
+
+					ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )
+							.apply( matched.elem, args );
+
+					if ( ret !== undefined ) {
+						if ( (event.result = ret) === false ) {
+							event.preventDefault();
+							event.stopPropagation();
+						}
+					}
+				}
+			}
+		}
+
+		// Call the postDispatch hook for the mapped type
+		if ( special.postDispatch ) {
+			special.postDispatch.call( this, event );
+		}
+
+		return event.result;
+	},
+
+	handlers: function( event, handlers ) {
+		var sel, handleObj, matches, i,
+			handlerQueue = [],
+			delegateCount = handlers.delegateCount,
+			cur = event.target;
+
+		// Find delegate handlers
+		// Black-hole SVG <use> instance trees (#13180)
+		// Avoid non-left-click bubbling in Firefox (#3861)
+		if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) {
+
+			/* jshint eqeqeq: false */
+			for ( ; cur != this; cur = cur.parentNode || this ) {
+				/* jshint eqeqeq: true */
+
+				// Don't check non-elements (#13208)
+				// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
+				if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) {
+					matches = [];
+					for ( i = 0; i < delegateCount; i++ ) {
+						handleObj = handlers[ i ];
+
+						// Don't conflict with Object.prototype properties (#13203)
+						sel = handleObj.selector + " ";
+
+						if ( matches[ sel ] === undefined ) {
+							matches[ sel ] = handleObj.needsContext ?
+								jQuery( sel, this ).index( cur ) >= 0 :
+								jQuery.find( sel, this, null, [ cur ] ).length;
+						}
+						if ( matches[ sel ] ) {
+							matches.push( handleObj );
+						}
+					}
+					if ( matches.length ) {
+						handlerQueue.push({ elem: cur, handlers: matches });
+					}
+				}
+			}
+		}
+
+		// Add the remaining (directly-bound) handlers
+		if ( delegateCount < handlers.length ) {
+			handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) });
+		}
+
+		return handlerQueue;
+	},
+
+	fix: function( event ) {
+		if ( event[ jQuery.expando ] ) {
+			return event;
+		}
+
+		// Create a writable copy of the event object and normalize some properties
+		var i, prop, copy,
+			type = event.type,
+			originalEvent = event,
+			fixHook = this.fixHooks[ type ];
+
+		if ( !fixHook ) {
+			this.fixHooks[ type ] = fixHook =
+				rmouseEvent.test( type ) ? this.mouseHooks :
+				rkeyEvent.test( type ) ? this.keyHooks :
+				{};
+		}
+		copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
+		event = new jQuery.Event( originalEvent );
+
+		i = copy.length;
+		while ( i-- ) {
+			prop = copy[ i ];
+			event[ prop ] = originalEvent[ prop ];
+		}
+
+		// Support: IE<9
+		// Fix target property (#1925)
+		if ( !event.target ) {
+			event.target = originalEvent.srcElement || document;
+		}
+
+		// Support: Chrome 23+, Safari?
+		// Target should not be a text node (#504, #13143)
+		if ( event.target.nodeType === 3 ) {
+			event.target = event.target.parentNode;
+		}
+
+		// Support: IE<9
+		// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)
+		event.metaKey = !!event.metaKey;
+
+		return fixHook.filter ? fixHook.filter( event, originalEvent ) : event;
+	},
+
+	// Includes some event props shared by KeyEvent and MouseEvent
+	props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
+
+	fixHooks: {},
+
+	keyHooks: {
+		props: "char charCode key keyCode".split(" "),
+		filter: function( event, original ) {
+
+			// Add which for key events
+			if ( event.which == null ) {
+				event.which = original.charCode != null ? original.charCode : original.keyCode;
+			}
+
+			return event;
+		}
+	},
+
+	mouseHooks: {
+		props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
+		filter: function( event, original ) {
+			var body, eventDoc, doc,
+				button = original.button,
+				fromElement = original.fromElement;
+
+			// Calculate pageX/Y if missing and clientX/Y available
+			if ( event.pageX == null && original.clientX != null ) {
+				eventDoc = event.target.ownerDocument || document;
+				doc = eventDoc.documentElement;
+				body = eventDoc.body;
+
+				event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 );
+				event.pageY = original.clientY + ( doc && doc.scrollTop  || body && body.scrollTop  || 0 ) - ( doc && doc.clientTop  || body && body.clientTop  || 0 );
+			}
+
+			// Add relatedTarget, if necessary
+			if ( !event.relatedTarget && fromElement ) {
+				event.relatedTarget = fromElement === event.target ? original.toElement : fromElement;
+			}
+
+			// Add which for click: 1 === left; 2 === middle; 3 === right
+			// Note: button is not normalized, so don't use it
+			if ( !event.which && button !== undefined ) {
+				event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );
+			}
+
+			return event;
+		}
+	},
+
+	special: {
+		load: {
+			// Prevent triggered image.load events from bubbling to window.load
+			noBubble: true
+		},
+		focus: {
+			// Fire native event if possible so blur/focus sequence is correct
+			trigger: function() {
+				if ( this !== safeActiveElement() && this.focus ) {
+					try {
+						this.focus();
+						return false;
+					} catch ( e ) {
+						// Support: IE<9
+						// If we error on focus to hidden element (#1486, #12518),
+						// let .trigger() run the handlers
+					}
+				}
+			},
+			delegateType: "focusin"
+		},
+		blur: {
+			trigger: function() {
+				if ( this === safeActiveElement() && this.blur ) {
+					this.blur();
+					return false;
+				}
+			},
+			delegateType: "focusout"
+		},
+		click: {
+			// For checkbox, fire native event so checked state will be right
+			trigger: function() {
+				if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) {
+					this.click();
+					return false;
+				}
+			},
+
+			// For cross-browser consistency, don't fire native .click() on links
+			_default: function( event ) {
+				return jQuery.nodeName( event.target, "a" );
+			}
+		},
+
+		beforeunload: {
+			postDispatch: function( event ) {
+
+				// Even when returnValue equals to undefined Firefox will still show alert
+				if ( event.result !== undefined ) {
+					event.originalEvent.returnValue = event.result;
+				}
+			}
+		}
+	},
+
+	simulate: function( type, elem, event, bubble ) {
+		// Piggyback on a donor event to simulate a different one.
+		// Fake originalEvent to avoid donor's stopPropagation, but if the
+		// simulated event prevents default then we do the same on the donor.
+		var e = jQuery.extend(
+			new jQuery.Event(),
+			event,
+			{
+				type: type,
+				isSimulated: true,
+				originalEvent: {}
+			}
+		);
+		if ( bubble ) {
+			jQuery.event.trigger( e, null, elem );
+		} else {
+			jQuery.event.dispatch.call( elem, e );
+		}
+		if ( e.isDefaultPrevented() ) {
+			event.preventDefault();
+		}
+	}
+};
+
+jQuery.removeEvent = document.removeEventListener ?
+	function( elem, type, handle ) {
+		if ( elem.removeEventListener ) {
+			elem.removeEventListener( type, handle, false );
+		}
+	} :
+	function( elem, type, handle ) {
+		var name = "on" + type;
+
+		if ( elem.detachEvent ) {
+
+			// #8545, #7054, preventing memory leaks for custom events in IE6-8
+			// detachEvent needed property on element, by name of that event, to properly expose it to GC
+			if ( typeof elem[ name ] === core_strundefined ) {
+				elem[ name ] = null;
+			}
+
+			elem.detachEvent( name, handle );
+		}
+	};
+
+jQuery.Event = function( src, props ) {
+	// Allow instantiation without the 'new' keyword
+	if ( !(this instanceof jQuery.Event) ) {
+		return new jQuery.Event( src, props );
+	}
+
+	// Event object
+	if ( src && src.type ) {
+		this.originalEvent = src;
+		this.type = src.type;
+
+		// Events bubbling up the document may have been marked as prevented
+		// by a handler lower down the tree; reflect the correct value.
+		this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false ||
+			src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse;
+
+	// Event type
+	} else {
+		this.type = src;
+	}
+
+	// Put explicitly provided properties onto the event object
+	if ( props ) {
+		jQuery.extend( this, props );
+	}
+
+	// Create a timestamp if incoming event doesn't have one
+	this.timeStamp = src && src.timeStamp || jQuery.now();
+
+	// Mark it as fixed
+	this[ jQuery.expando ] = true;
+};
+
+// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
+// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
+jQuery.Event.prototype = {
+	isDefaultPrevented: returnFalse,
+	isPropagationStopped: returnFalse,
+	isImmediatePropagationStopped: returnFalse,
+
+	preventDefault: function() {
+		var e = this.originalEvent;
+
+		this.isDefaultPrevented = returnTrue;
+		if ( !e ) {
+			return;
+		}
+
+		// If preventDefault exists, run it on the original event
+		if ( e.preventDefault ) {
+			e.preventDefault();
+
+		// Support: IE
+		// Otherwise set the returnValue property of the original event to false
+		} else {
+			e.returnValue = false;
+		}
+	},
+	stopPropagation: function() {
+		var e = this.originalEvent;
+
+		this.isPropagationStopped = returnTrue;
+		if ( !e ) {
+			return;
+		}
+		// If stopPropagation exists, run it on the original event
+		if ( e.stopPropagation ) {
+			e.stopPropagation();
+		}
+
+		// Support: IE
+		// Set the cancelBubble property of the original event to true
+		e.cancelBubble = true;
+	},
+	stopImmediatePropagation: function() {
+		this.isImmediatePropagationStopped = returnTrue;
+		this.stopPropagation();
+	}
+};
+
+// Create mouseenter/leave events using mouseover/out and event-time checks
+jQuery.each({
+	mouseenter: "mouseover",
+	mouseleave: "mouseout"
+}, function( orig, fix ) {
+	jQuery.event.special[ orig ] = {
+		delegateType: fix,
+		bindType: fix,
+
+		handle: function( event ) {
+			var ret,
+				target = this,
+				related = event.relatedTarget,
+				handleObj = event.handleObj;
+
+			// For mousenter/leave call the handler if related is outside the target.
+			// NB: No relatedTarget if the mouse left/entered the browser window
+			if ( !related || (related !== target && !jQuery.contains( target, related )) ) {
+				event.type = handleObj.origType;
+				ret = handleObj.handler.apply( this, arguments );
+				event.type = fix;
+			}
+			return ret;
+		}
+	};
+});
+
+// IE submit delegation
+if ( !jQuery.support.submitBubbles ) {
+
+	jQuery.event.special.submit = {
+		setup: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
+				return false;
+			}
+
+			// Lazy-add a submit handler when a descendant form may potentially be submitted
+			jQuery.event.add( this, "click._submit keypress._submit", function( e ) {
+				// Node name check avoids a VML-related crash in IE (#9807)
+				var elem = e.target,
+					form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined;
+				if ( form && !jQuery._data( form, "submitBubbles" ) ) {
+					jQuery.event.add( form, "submit._submit", function( event ) {
+						event._submit_bubble = true;
+					});
+					jQuery._data( form, "submitBubbles", true );
+				}
+			});
+			// return undefined since we don't need an event listener
+		},
+
+		postDispatch: function( event ) {
+			// If form was submitted by the user, bubble the event up the tree
+			if ( event._submit_bubble ) {
+				delete event._submit_bubble;
+				if ( this.parentNode && !event.isTrigger ) {
+					jQuery.event.simulate( "submit", this.parentNode, event, true );
+				}
+			}
+		},
+
+		teardown: function() {
+			// Only need this for delegated form submit events
+			if ( jQuery.nodeName( this, "form" ) ) {
+				return false;
+			}
+
+			// Remove delegated handlers; cleanData eventually reaps submit handlers attached above
+			jQuery.event.remove( this, "._submit" );
+		}
+	};
+}
+
+// IE change delegation and checkbox/radio fix
+if ( !jQuery.support.changeBubbles ) {
+
+	jQuery.event.special.change = {
+
+		setup: function() {
+
+			if ( rformElems.test( this.nodeName ) ) {
+				// IE doesn't fire change on a check/radio until blur; trigger it on click
+				// after a propertychange. Eat the blur-change in special.change.handle.
+				// This still fires onchange a second time for check/radio after blur.
+				if ( this.type === "checkbox" || this.type === "radio" ) {
+					jQuery.event.add( this, "propertychange._change", function( event ) {
+						if ( event.originalEvent.propertyName === "checked" ) {
+							this._just_changed = true;
+						}
+					});
+					jQuery.event.add( this, "click._change", function( event ) {
+						if ( this._just_changed && !event.isTrigger ) {
+							this._just_changed = false;
+						}
+						// Allow triggered, simulated change events (#11500)
+						jQuery.event.simulate( "change", this, event, true );
+					});
+				}
+				return false;
+			}
+			// Delegated event; lazy-add a change handler on descendant inputs
+			jQuery.event.add( this, "beforeactivate._change", function( e ) {
+				var elem = e.target;
+
+				if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) {
+					jQuery.event.add( elem, "change._change", function( event ) {
+						if ( this.parentNode && !event.isSimulated && !event.isTrigger ) {
+							jQuery.event.simulate( "change", this.parentNode, event, true );
+						}
+					});
+					jQuery._data( elem, "changeBubbles", true );
+				}
+			});
+		},
+
+		handle: function( event ) {
+			var elem = event.target;
+
+			// Swallow native change events from checkbox/radio, we already triggered them above
+			if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) {
+				return event.handleObj.handler.apply( this, arguments );
+			}
+		},
+
+		teardown: function() {
+			jQuery.event.remove( this, "._change" );
+
+			return !rformElems.test( this.nodeName );
+		}
+	};
+}
+
+// Create "bubbling" focus and blur events
+if ( !jQuery.support.focusinBubbles ) {
+	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
+
+		// Attach a single capturing handler while someone wants focusin/focusout
+		var attaches = 0,
+			handler = function( event ) {
+				jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true );
+			};
+
+		jQuery.event.special[ fix ] = {
+			setup: function() {
+				if ( attaches++ === 0 ) {
+					document.addEventListener( orig, handler, true );
+				}
+			},
+			teardown: function() {
+				if ( --attaches === 0 ) {
+					document.removeEventListener( orig, handler, true );
+				}
+			}
+		};
+	});
+}
+
+jQuery.fn.extend({
+
+	on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
+		var type, origFn;
+
+		// Types can be a map of types/handlers
+		if ( typeof types === "object" ) {
+			// ( types-Object, selector, data )
+			if ( typeof selector !== "string" ) {
+				// ( types-Object, data )
+				data = data || selector;
+				selector = undefined;
+			}
+			for ( type in types ) {
+				this.on( type, selector, data, types[ type ], one );
+			}
+			return this;
+		}
+
+		if ( data == null && fn == null ) {
+			// ( types, fn )
+			fn = selector;
+			data = selector = undefined;
+		} else if ( fn == null ) {
+			if ( typeof selector === "string" ) {
+				// ( types, selector, fn )
+				fn = data;
+				data = undefined;
+			} else {
+				// ( types, data, fn )
+				fn = data;
+				data = selector;
+				selector = undefined;
+			}
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		} else if ( !fn ) {
+			return this;
+		}
+
+		if ( one === 1 ) {
+			origFn = fn;
+			fn = function( event ) {
+				// Can use an empty set, since event contains the info
+				jQuery().off( event );
+				return origFn.apply( this, arguments );
+			};
+			// Use same guid so caller can remove using origFn
+			fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );
+		}
+		return this.each( function() {
+			jQuery.event.add( this, types, fn, data, selector );
+		});
+	},
+	one: function( types, selector, data, fn ) {
+		return this.on( types, selector, data, fn, 1 );
+	},
+	off: function( types, selector, fn ) {
+		var handleObj, type;
+		if ( types && types.preventDefault && types.handleObj ) {
+			// ( event )  dispatched jQuery.Event
+			handleObj = types.handleObj;
+			jQuery( types.delegateTarget ).off(
+				handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType,
+				handleObj.selector,
+				handleObj.handler
+			);
+			return this;
+		}
+		if ( typeof types === "object" ) {
+			// ( types-object [, selector] )
+			for ( type in types ) {
+				this.off( type, selector, types[ type ] );
+			}
+			return this;
+		}
+		if ( selector === false || typeof selector === "function" ) {
+			// ( types [, fn] )
+			fn = selector;
+			selector = undefined;
+		}
+		if ( fn === false ) {
+			fn = returnFalse;
+		}
+		return this.each(function() {
+			jQuery.event.remove( this, types, fn, selector );
+		});
+	},
+
+	trigger: function( type, data ) {
+		return this.each(function() {
+			jQuery.event.trigger( type, data, this );
+		});
+	},
+	triggerHandler: function( type, data ) {
+		var elem = this[0];
+		if ( elem ) {
+			return jQuery.event.trigger( type, data, elem, true );
+		}
+	}
+});
+var isSimple = /^.[^:#\[\.,]*$/,
+	rparentsprev = /^(?:parents|prev(?:Until|All))/,
+	rneedsContext = jQuery.expr.match.needsContext,
+	// methods guaranteed to produce a unique set when starting from a unique set
+	guaranteedUnique = {
+		children: true,
+		contents: true,
+		next: true,
+		prev: true
+	};
+
+jQuery.fn.extend({
+	find: function( selector ) {
+		var i,
+			ret = [],
+			self = this,
+			len = self.length;
+
+		if ( typeof selector !== "string" ) {
+			return this.pushStack( jQuery( selector ).filter(function() {
+				for ( i = 0; i < len; i++ ) {
+					if ( jQuery.contains( self[ i ], this ) ) {
+						return true;
+					}
+				}
+			}) );
+		}
+
+		for ( i = 0; i < len; i++ ) {
+			jQuery.find( selector, self[ i ], ret );
+		}
+
+		// Needed because $( selector, context ) becomes $( context ).find( selector )
+		ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
+		ret.selector = this.selector ? this.selector + " " + selector : selector;
+		return ret;
+	},
+
+	has: function( target ) {
+		var i,
+			targets = jQuery( target, this ),
+			len = targets.length;
+
+		return this.filter(function() {
+			for ( i = 0; i < len; i++ ) {
+				if ( jQuery.contains( this, targets[i] ) ) {
+					return true;
+				}
+			}
+		});
+	},
+
+	not: function( selector ) {
+		return this.pushStack( winnow(this, selector || [], true) );
+	},
+
+	filter: function( selector ) {
+		return this.pushStack( winnow(this, selector || [], false) );
+	},
+
+	is: function( selector ) {
+		return !!winnow(
+			this,
+
+			// If this is a positional/relative selector, check membership in the returned set
+			// so $("p:first").is("p:last") won't return true for a doc with two "p".
+			typeof selector === "string" && rneedsContext.test( selector ) ?
+				jQuery( selector ) :
+				selector || [],
+			false
+		).length;
+	},
+
+	closest: function( selectors, context ) {
+		var cur,
+			i = 0,
+			l = this.length,
+			ret = [],
+			pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ?
+				jQuery( selectors, context || this.context ) :
+				0;
+
+		for ( ; i < l; i++ ) {
+			for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {
+				// Always skip document fragments
+				if ( cur.nodeType < 11 && (pos ?
+					pos.index(cur) > -1 :
+
+					// Don't pass non-elements to Sizzle
+					cur.nodeType === 1 &&
+						jQuery.find.matchesSelector(cur, selectors)) ) {
+
+					cur = ret.push( cur );
+					break;
+				}
+			}
+		}
+
+		return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret );
+	},
+
+	// Determine the position of an element within
+	// the matched set of elements
+	index: function( elem ) {
+
+		// No argument, return index in parent
+		if ( !elem ) {
+			return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1;
+		}
+
+		// index in selector
+		if ( typeof elem === "string" ) {
+			return jQuery.inArray( this[0], jQuery( elem ) );
+		}
+
+		// Locate the position of the desired element
+		return jQuery.inArray(
+			// If it receives a jQuery object, the first element is used
+			elem.jquery ? elem[0] : elem, this );
+	},
+
+	add: function( selector, context ) {
+		var set = typeof selector === "string" ?
+				jQuery( selector, context ) :
+				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
+			all = jQuery.merge( this.get(), set );
+
+		return this.pushStack( jQuery.unique(all) );
+	},
+
+	addBack: function( selector ) {
+		return this.add( selector == null ?
+			this.prevObject : this.prevObject.filter(selector)
+		);
+	}
+});
+
+function sibling( cur, dir ) {
+	do {
+		cur = cur[ dir ];
+	} while ( cur && cur.nodeType !== 1 );
+
+	return cur;
+}
+
+jQuery.each({
+	parent: function( elem ) {
+		var parent = elem.parentNode;
+		return parent && parent.nodeType !== 11 ? parent : null;
+	},
+	parents: function( elem ) {
+		return jQuery.dir( elem, "parentNode" );
+	},
+	parentsUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "parentNode", until );
+	},
+	next: function( elem ) {
+		return sibling( elem, "nextSibling" );
+	},
+	prev: function( elem ) {
+		return sibling( elem, "previousSibling" );
+	},
+	nextAll: function( elem ) {
+		return jQuery.dir( elem, "nextSibling" );
+	},
+	prevAll: function( elem ) {
+		return jQuery.dir( elem, "previousSibling" );
+	},
+	nextUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "nextSibling", until );
+	},
+	prevUntil: function( elem, i, until ) {
+		return jQuery.dir( elem, "previousSibling", until );
+	},
+	siblings: function( elem ) {
+		return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
+	},
+	children: function( elem ) {
+		return jQuery.sibling( elem.firstChild );
+	},
+	contents: function( elem ) {
+		return jQuery.nodeName( elem, "iframe" ) ?
+			elem.contentDocument || elem.contentWindow.document :
+			jQuery.merge( [], elem.childNodes );
+	}
+}, function( name, fn ) {
+	jQuery.fn[ name ] = function( until, selector ) {
+		var ret = jQuery.map( this, fn, until );
+
+		if ( name.slice( -5 ) !== "Until" ) {
+			selector = until;
+		}
+
+		if ( selector && typeof selector === "string" ) {
+			ret = jQuery.filter( selector, ret );
+		}
+
+		if ( this.length > 1 ) {
+			// Remove duplicates
+			if ( !guaranteedUnique[ name ] ) {
+				ret = jQuery.unique( ret );
+			}
+
+			// Reverse order for parents* and prev-derivatives
+			if ( rparentsprev.test( name ) ) {
+				ret = ret.reverse();
+			}
+		}
+
+		return this.pushStack( ret );
+	};
+});
+
+jQuery.extend({
+	filter: function( expr, elems, not ) {
+		var elem = elems[ 0 ];
+
+		if ( not ) {
+			expr = ":not(" + expr + ")";
+		}
+
+		return elems.length === 1 && elem.nodeType === 1 ?
+			jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
+			jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
+				return elem.nodeType === 1;
+			}));
+	},
+
+	dir: function( elem, dir, until ) {
+		var matched = [],
+			cur = elem[ dir ];
+
+		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
+			if ( cur.nodeType === 1 ) {
+				matched.push( cur );
+			}
+			cur = cur[dir];
+		}
+		return matched;
+	},
+
+	sibling: function( n, elem ) {
+		var r = [];
+
+		for ( ; n; n = n.nextSibling ) {
+			if ( n.nodeType === 1 && n !== elem ) {
+				r.push( n );
+			}
+		}
+
+		return r;
+	}
+});
+
+// Implement the identical functionality for filter and not
+function winnow( elements, qualifier, not ) {
+	if ( jQuery.isFunction( qualifier ) ) {
+		return jQuery.grep( elements, function( elem, i ) {
+			/* jshint -W018 */
+			return !!qualifier.call( elem, i, elem ) !== not;
+		});
+
+	}
+
+	if ( qualifier.nodeType ) {
+		return jQuery.grep( elements, function( elem ) {
+			return ( elem === qualifier ) !== not;
+		});
+
+	}
+
+	if ( typeof qualifier === "string" ) {
+		if ( isSimple.test( qualifier ) ) {
+			return jQuery.filter( qualifier, elements, not );
+		}
+
+		qualifier = jQuery.filter( qualifier, elements );
+	}
+
+	return jQuery.grep( elements, function( elem ) {
+		return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not;
+	});
+}
+function createSafeFragment( document ) {
+	var list = nodeNames.split( "|" ),
+		safeFrag = document.createDocumentFragment();
+
+	if ( safeFrag.createElement ) {
+		while ( list.length ) {
+			safeFrag.createElement(
+				list.pop()
+			);
+		}
+	}
+	return safeFrag;
+}
+
+var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" +
+		"header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
+	rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g,
+	rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"),
+	rleadingWhitespace = /^\s+/,
+	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
+	rtagName = /<([\w:]+)/,
+	rtbody = /<tbody/i,
+	rhtml = /<|&#?\w+;/,
+	rnoInnerhtml = /<(?:script|style|link)/i,
+	manipulation_rcheckableType = /^(?:checkbox|radio)$/i,
+	// checked="checked" or checked
+	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
+	rscriptType = /^$|\/(?:java|ecma)script/i,
+	rscriptTypeMasked = /^true\/(.*)/,
+	rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
+
+	// We have to close these tags to support XHTML (#13200)
+	wrapMap = {
+		option: [ 1, "<select multiple='multiple'>", "</select>" ],
+		legend: [ 1, "<fieldset>", "</fieldset>" ],
+		area: [ 1, "<map>", "</map>" ],
+		param: [ 1, "<object>", "</object>" ],
+		thead: [ 1, "<table>", "</table>" ],
+		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
+		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
+		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
+
+		// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,
+		// unless wrapped in a div with non-breaking characters in front of it.
+		_default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X<div>", "</div>"  ]
+	},
+	safeFragment = createSafeFragment( document ),
+	fragmentDiv = safeFragment.appendChild( document.createElement("div") );
+
+wrapMap.optgroup = wrapMap.option;
+wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
+wrapMap.th = wrapMap.td;
+
+jQuery.fn.extend({
+	text: function( value ) {
+		return jQuery.access( this, function( value ) {
+			return value === undefined ?
+				jQuery.text( this ) :
+				this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) );
+		}, null, value, arguments.length );
+	},
+
+	append: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.appendChild( elem );
+			}
+		});
+	},
+
+	prepend: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
+				var target = manipulationTarget( this, elem );
+				target.insertBefore( elem, target.firstChild );
+			}
+		});
+	},
+
+	before: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this );
+			}
+		});
+	},
+
+	after: function() {
+		return this.domManip( arguments, function( elem ) {
+			if ( this.parentNode ) {
+				this.parentNode.insertBefore( elem, this.nextSibling );
+			}
+		});
+	},
+
+	// keepData is for internal use only--do not document
+	remove: function( selector, keepData ) {
+		var elem,
+			elems = selector ? jQuery.filter( selector, this ) : this,
+			i = 0;
+
+		for ( ; (elem = elems[i]) != null; i++ ) {
+
+			if ( !keepData && elem.nodeType === 1 ) {
+				jQuery.cleanData( getAll( elem ) );
+			}
+
+			if ( elem.parentNode ) {
+				if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) {
+					setGlobalEval( getAll( elem, "script" ) );
+				}
+				elem.parentNode.removeChild( elem );
+			}
+		}
+
+		return this;
+	},
+
+	empty: function() {
+		var elem,
+			i = 0;
+
+		for ( ; (elem = this[i]) != null; i++ ) {
+			// Remove element nodes and prevent memory leaks
+			if ( elem.nodeType === 1 ) {
+				jQuery.cleanData( getAll( elem, false ) );
+			}
+
+			// Remove any remaining nodes
+			while ( elem.firstChild ) {
+				elem.removeChild( elem.firstChild );
+			}
+
+			// If this is a select, ensure that it displays empty (#12336)
+			// Support: IE<9
+			if ( elem.options && jQuery.nodeName( elem, "select" ) ) {
+				elem.options.length = 0;
+			}
+		}
+
+		return this;
+	},
+
+	clone: function( dataAndEvents, deepDataAndEvents ) {
+		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
+		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
+
+		return this.map( function () {
+			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
+		});
+	},
+
+	html: function( value ) {
+		return jQuery.access( this, function( value ) {
+			var elem = this[0] || {},
+				i = 0,
+				l = this.length;
+
+			if ( value === undefined ) {
+				return elem.nodeType === 1 ?
+					elem.innerHTML.replace( rinlinejQuery, "" ) :
+					undefined;
+			}
+
+			// See if we can take a shortcut and just use innerHTML
+			if ( typeof value === "string" && !rnoInnerhtml.test( value ) &&
+				( jQuery.support.htmlSerialize || !rnoshimcache.test( value )  ) &&
+				( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&
+				!wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) {
+
+				value = value.replace( rxhtmlTag, "<$1></$2>" );
+
+				try {
+					for (; i < l; i++ ) {
+						// Remove element nodes and prevent memory leaks
+						elem = this[i] || {};
+						if ( elem.nodeType === 1 ) {
+							jQuery.cleanData( getAll( elem, false ) );
+							elem.innerHTML = value;
+						}
+					}
+
+					elem = 0;
+
+				// If using innerHTML throws an exception, use the fallback method
+				} catch(e) {}
+			}
+
+			if ( elem ) {
+				this.empty().append( value );
+			}
+		}, null, value, arguments.length );
+	},
+
+	replaceWith: function() {
+		var
+			// Snapshot the DOM in case .domManip sweeps something relevant into its fragment
+			args = jQuery.map( this, function( elem ) {
+				return [ elem.nextSibling, elem.parentNode ];
+			}),
+			i = 0;
+
+		// Make the changes, replacing each context element with the new content
+		this.domManip( arguments, function( elem ) {
+			var next = args[ i++ ],
+				parent = args[ i++ ];
+
+			if ( parent ) {
+				// Don't use the snapshot next if it has moved (#13810)
+				if ( next && next.parentNode !== parent ) {
+					next = this.nextSibling;
+				}
+				jQuery( this ).remove();
+				parent.insertBefore( elem, next );
+			}
+		// Allow new content to include elements from the context set
+		}, true );
+
+		// Force removal if there was no new content (e.g., from empty arguments)
+		return i ? this : this.remove();
+	},
+
+	detach: function( selector ) {
+		return this.remove( selector, true );
+	},
+
+	domManip: function( args, callback, allowIntersection ) {
+
+		// Flatten any nested arrays
+		args = core_concat.apply( [], args );
+
+		var first, node, hasScripts,
+			scripts, doc, fragment,
+			i = 0,
+			l = this.length,
+			set = this,
+			iNoClone = l - 1,
+			value = args[0],
+			isFunction = jQuery.isFunction( value );
+
+		// We can't cloneNode fragments that contain checked, in WebKit
+		if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) {
+			return this.each(function( index ) {
+				var self = set.eq( index );
+				if ( isFunction ) {
+					args[0] = value.call( this, index, self.html() );
+				}
+				self.domManip( args, callback, allowIntersection );
+			});
+		}
+
+		if ( l ) {
+			fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this );
+			first = fragment.firstChild;
+
+			if ( fragment.childNodes.length === 1 ) {
+				fragment = first;
+			}
+
+			if ( first ) {
+				scripts = jQuery.map( getAll( fragment, "script" ), disableScript );
+				hasScripts = scripts.length;
+
+				// Use the original fragment for the last item instead of the first because it can end up
+				// being emptied incorrectly in certain situations (#8070).
+				for ( ; i < l; i++ ) {
+					node = fragment;
+
+					if ( i !== iNoClone ) {
+						node = jQuery.clone( node, true, true );
+
+						// Keep references to cloned scripts for later restoration
+						if ( hasScripts ) {
+							jQuery.merge( scripts, getAll( node, "script" ) );
+						}
+					}
+
+					callback.call( this[i], node, i );
+				}
+
+				if ( hasScripts ) {
+					doc = scripts[ scripts.length - 1 ].ownerDocument;
+
+					// Reenable scripts
+					jQuery.map( scripts, restoreScript );
+
+					// Evaluate executable scripts on first document insertion
+					for ( i = 0; i < hasScripts; i++ ) {
+						node = scripts[ i ];
+						if ( rscriptType.test( node.type || "" ) &&
+							!jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) {
+
+							if ( node.src ) {
+								// Hope ajax is available...
+								jQuery._evalUrl( node.src );
+							} else {
+								jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) );
+							}
+						}
+					}
+				}
+
+				// Fix #11809: Avoid leaking memory
+				fragment = first = null;
+			}
+		}
+
+		return this;
+	}
+});
+
+// Support: IE<8
+// Manipulating tables requires a tbody
+function manipulationTarget( elem, content ) {
+	return jQuery.nodeName( elem, "table" ) &&
+		jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ?
+
+		elem.getElementsByTagName("tbody")[0] ||
+			elem.appendChild( elem.ownerDocument.createElement("tbody") ) :
+		elem;
+}
+
+// Replace/restore the type attribute of script elements for safe DOM manipulation
+function disableScript( elem ) {
+	elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type;
+	return elem;
+}
+function restoreScript( elem ) {
+	var match = rscriptTypeMasked.exec( elem.type );
+	if ( match ) {
+		elem.type = match[1];
+	} else {
+		elem.removeAttribute("type");
+	}
+	return elem;
+}
+
+// Mark scripts as having already been evaluated
+function setGlobalEval( elems, refElements ) {
+	var elem,
+		i = 0;
+	for ( ; (elem = elems[i]) != null; i++ ) {
+		jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) );
+	}
+}
+
+function cloneCopyEvent( src, dest ) {
+
+	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
+		return;
+	}
+
+	var type, i, l,
+		oldData = jQuery._data( src ),
+		curData = jQuery._data( dest, oldData ),
+		events = oldData.events;
+
+	if ( events ) {
+		delete curData.handle;
+		curData.events = {};
+
+		for ( type in events ) {
+			for ( i = 0, l = events[ type ].length; i < l; i++ ) {
+				jQuery.event.add( dest, type, events[ type ][ i ] );
+			}
+		}
+	}
+
+	// make the cloned public data object a copy from the original
+	if ( curData.data ) {
+		curData.data = jQuery.extend( {}, curData.data );
+	}
+}
+
+function fixCloneNodeIssues( src, dest ) {
+	var nodeName, e, data;
+
+	// We do not need to do anything for non-Elements
+	if ( dest.nodeType !== 1 ) {
+		return;
+	}
+
+	nodeName = dest.nodeName.toLowerCase();
+
+	// IE6-8 copies events bound via attachEvent when using cloneNode.
+	if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) {
+		data = jQuery._data( dest );
+
+		for ( e in data.events ) {
+			jQuery.removeEvent( dest, e, data.handle );
+		}
+
+		// Event data gets referenced instead of copied if the expando gets copied too
+		dest.removeAttribute( jQuery.expando );
+	}
+
+	// IE blanks contents when cloning scripts, and tries to evaluate newly-set text
+	if ( nodeName === "script" && dest.text !== src.text ) {
+		disableScript( dest ).text = src.text;
+		restoreScript( dest );
+
+	// IE6-10 improperly clones children of object elements using classid.
+	// IE10 throws NoModificationAllowedError if parent is null, #12132.
+	} else if ( nodeName === "object" ) {
+		if ( dest.parentNode ) {
+			dest.outerHTML = src.outerHTML;
+		}
+
+		// This path appears unavoidable for IE9. When cloning an object
+		// element in IE9, the outerHTML strategy above is not sufficient.
+		// If the src has innerHTML and the destination does not,
+		// copy the src.innerHTML into the dest.innerHTML. #10324
+		if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) {
+			dest.innerHTML = src.innerHTML;
+		}
+
+	} else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) {
+		// IE6-8 fails to persist the checked state of a cloned checkbox
+		// or radio button. Worse, IE6-7 fail to give the cloned element
+		// a checked appearance if the defaultChecked value isn't also set
+
+		dest.defaultChecked = dest.checked = src.checked;
+
+		// IE6-7 get confused and end up setting the value of a cloned
+		// checkbox/radio button to an empty string instead of "on"
+		if ( dest.value !== src.value ) {
+			dest.value = src.value;
+		}
+
+	// IE6-8 fails to return the selected option to the default selected
+	// state when cloning options
+	} else if ( nodeName === "option" ) {
+		dest.defaultSelected = dest.selected = src.defaultSelected;
+
+	// IE6-8 fails to set the defaultValue to the correct value when
+	// cloning other types of input fields
+	} else if ( nodeName === "input" || nodeName === "textarea" ) {
+		dest.defaultValue = src.defaultValue;
+	}
+}
+
+jQuery.each({
+	appendTo: "append",
+	prependTo: "prepend",
+	insertBefore: "before",
+	insertAfter: "after",
+	replaceAll: "replaceWith"
+}, function( name, original ) {
+	jQuery.fn[ name ] = function( selector ) {
+		var elems,
+			i = 0,
+			ret = [],
+			insert = jQuery( selector ),
+			last = insert.length - 1;
+
+		for ( ; i <= last; i++ ) {
+			elems = i === last ? this : this.clone(true);
+			jQuery( insert[i] )[ original ]( elems );
+
+			// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()
+			core_push.apply( ret, elems.get() );
+		}
+
+		return this.pushStack( ret );
+	};
+});
+
+function getAll( context, tag ) {
+	var elems, elem,
+		i = 0,
+		found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) :
+			typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) :
+			undefined;
+
+	if ( !found ) {
+		for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) {
+			if ( !tag || jQuery.nodeName( elem, tag ) ) {
+				found.push( elem );
+			} else {
+				jQuery.merge( found, getAll( elem, tag ) );
+			}
+		}
+	}
+
+	return tag === undefined || tag && jQuery.nodeName( context, tag ) ?
+		jQuery.merge( [ context ], found ) :
+		found;
+}
+
+// Used in buildFragment, fixes the defaultChecked property
+function fixDefaultChecked( elem ) {
+	if ( manipulation_rcheckableType.test( elem.type ) ) {
+		elem.defaultChecked = elem.checked;
+	}
+}
+
+jQuery.extend({
+	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
+		var destElements, node, clone, i, srcElements,
+			inPage = jQuery.contains( elem.ownerDocument, elem );
+
+		if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) {
+			clone = elem.cloneNode( true );
+
+		// IE<=8 does not properly clone detached, unknown element nodes
+		} else {
+			fragmentDiv.innerHTML = elem.outerHTML;
+			fragmentDiv.removeChild( clone = fragmentDiv.firstChild );
+		}
+
+		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
+				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
+
+			// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2
+			destElements = getAll( clone );
+			srcElements = getAll( elem );
+
+			// Fix all IE cloning issues
+			for ( i = 0; (node = srcElements[i]) != null; ++i ) {
+				// Ensure that the destination node is not null; Fixes #9587
+				if ( destElements[i] ) {
+					fixCloneNodeIssues( node, destElements[i] );
+				}
+			}
+		}
+
+		// Copy the events from the original to the clone
+		if ( dataAndEvents ) {
+			if ( deepDataAndEvents ) {
+				srcElements = srcElements || getAll( elem );
+				destElements = destElements || getAll( clone );
+
+				for ( i = 0; (node = srcElements[i]) != null; i++ ) {
+					cloneCopyEvent( node, destElements[i] );
+				}
+			} else {
+				cloneCopyEvent( elem, clone );
+			}
+		}
+
+		// Preserve script evaluation history
+		destElements = getAll( clone, "script" );
+		if ( destElements.length > 0 ) {
+			setGlobalEval( destElements, !inPage && getAll( elem, "script" ) );
+		}
+
+		destElements = srcElements = node = null;
+
+		// Return the cloned set
+		return clone;
+	},
+
+	buildFragment: function( elems, context, scripts, selection ) {
+		var j, elem, contains,
+			tmp, tag, tbody, wrap,
+			l = elems.length,
+
+			// Ensure a safe fragment
+			safe = createSafeFragment( context ),
+
+			nodes = [],
+			i = 0;
+
+		for ( ; i < l; i++ ) {
+			elem = elems[ i ];
+
+			if ( elem || elem === 0 ) {
+
+				// Add nodes directly
+				if ( jQuery.type( elem ) === "object" ) {
+					jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );
+
+				// Convert non-html into a text node
+				} else if ( !rhtml.test( elem ) ) {
+					nodes.push( context.createTextNode( elem ) );
+
+				// Convert html into DOM nodes
+				} else {
+					tmp = tmp || safe.appendChild( context.createElement("div") );
+
+					// Deserialize a standard representation
+					tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase();
+					wrap = wrapMap[ tag ] || wrapMap._default;
+
+					tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1></$2>" ) + wrap[2];
+
+					// Descend through wrappers to the right content
+					j = wrap[0];
+					while ( j-- ) {
+						tmp = tmp.lastChild;
+					}
+
+					// Manually add leading whitespace removed by IE
+					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
+						nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) );
+					}
+
+					// Remove IE's autoinserted <tbody> from table fragments
+					if ( !jQuery.support.tbody ) {
+
+						// String was a <table>, *may* have spurious <tbody>
+						elem = tag === "table" && !rtbody.test( elem ) ?
+							tmp.firstChild :
+
+							// String was a bare <thead> or <tfoot>
+							wrap[1] === "<table>" && !rtbody.test( elem ) ?
+								tmp :
+								0;
+
+						j = elem && elem.childNodes.length;
+						while ( j-- ) {
+							if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) {
+								elem.removeChild( tbody );
+							}
+						}
+					}
+
+					jQuery.merge( nodes, tmp.childNodes );
+
+					// Fix #12392 for WebKit and IE > 9
+					tmp.textContent = "";
+
+					// Fix #12392 for oldIE
+					while ( tmp.firstChild ) {
+						tmp.removeChild( tmp.firstChild );
+					}
+
+					// Remember the top-level container for proper cleanup
+					tmp = safe.lastChild;
+				}
+			}
+		}
+
+		// Fix #11356: Clear elements from fragment
+		if ( tmp ) {
+			safe.removeChild( tmp );
+		}
+
+		// Reset defaultChecked for any radios and checkboxes
+		// about to be appended to the DOM in IE 6/7 (#8060)
+		if ( !jQuery.support.appendChecked ) {
+			jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked );
+		}
+
+		i = 0;
+		while ( (elem = nodes[ i++ ]) ) {
+
+			// #4087 - If origin and destination elements are the same, and this is
+			// that element, do not do anything
+			if ( selection && jQuery.inArray( elem, selection ) !== -1 ) {
+				continue;
+			}
+
+			contains = jQuery.contains( elem.ownerDocument, elem );
+
+			// Append to fragment
+			tmp = getAll( safe.appendChild( elem ), "script" );
+
+			// Preserve script evaluation history
+			if ( contains ) {
+				setGlobalEval( tmp );
+			}
+
+			// Capture executables
+			if ( scripts ) {
+				j = 0;
+				while ( (elem = tmp[ j++ ]) ) {
+					if ( rscriptType.test( elem.type || "" ) ) {
+						scripts.push( elem );
+					}
+				}
+			}
+		}
+
+		tmp = null;
+
+		return safe;
+	},
+
+	cleanData: function( elems, /* internal */ acceptData ) {
+		var elem, type, id, data,
+			i = 0,
+			internalKey = jQuery.expando,
+			cache = jQuery.cache,
+			deleteExpando = jQuery.support.deleteExpando,
+			special = jQuery.event.special;
+
+		for ( ; (elem = elems[i]) != null; i++ ) {
+
+			if ( acceptData || jQuery.acceptData( elem ) ) {
+
+				id = elem[ internalKey ];
+				data = id && cache[ id ];
+
+				if ( data ) {
+					if ( data.events ) {
+						for ( type in data.events ) {
+							if ( special[ type ] ) {
+								jQuery.event.remove( elem, type );
+
+							// This is a shortcut to avoid jQuery.event.remove's overhead
+							} else {
+								jQuery.removeEvent( elem, type, data.handle );
+							}
+						}
+					}
+
+					// Remove cache only if it was not already removed by jQuery.event.remove
+					if ( cache[ id ] ) {
+
+						delete cache[ id ];
+
+						// IE does not allow us to delete expando properties from nodes,
+						// nor does it have a removeAttribute function on Document nodes;
+						// we must handle all of these cases
+						if ( deleteExpando ) {
+							delete elem[ internalKey ];
+
+						} else if ( typeof elem.removeAttribute !== core_strundefined ) {
+							elem.removeAttribute( internalKey );
+
+						} else {
+							elem[ internalKey ] = null;
+						}
+
+						core_deletedIds.push( id );
+					}
+				}
+			}
+		}
+	},
+
+	_evalUrl: function( url ) {
+		return jQuery.ajax({
+			url: url,
+			type: "GET",
+			dataType: "script",
+			async: false,
+			global: false,
+			"throws": true
+		});
+	}
+});
+jQuery.fn.extend({
+	wrapAll: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function(i) {
+				jQuery(this).wrapAll( html.call(this, i) );
+			});
+		}
+
+		if ( this[0] ) {
+			// The elements to wrap the target around
+			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
+
+			if ( this[0].parentNode ) {
+				wrap.insertBefore( this[0] );
+			}
+
+			wrap.map(function() {
+				var elem = this;
+
+				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
+					elem = elem.firstChild;
+				}
+
+				return elem;
+			}).append( this );
+		}
+
+		return this;
+	},
+
+	wrapInner: function( html ) {
+		if ( jQuery.isFunction( html ) ) {
+			return this.each(function(i) {
+				jQuery(this).wrapInner( html.call(this, i) );
+			});
+		}
+
+		return this.each(function() {
+			var self = jQuery( this ),
+				contents = self.contents();
+
+			if ( contents.length ) {
+				contents.wrapAll( html );
+
+			} else {
+				self.append( html );
+			}
+		});
+	},
+
+	wrap: function( html ) {
+		var isFunction = jQuery.isFunction( html );
+
+		return this.each(function(i) {
+			jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html );
+		});
+	},
+
+	unwrap: function() {
+		return this.parent().each(function() {
+			if ( !jQuery.nodeName( this, "body" ) ) {
+				jQuery( this ).replaceWith( this.childNodes );
+			}
+		}).end();
+	}
+});
+var iframe, getStyles, curCSS,
+	ralpha = /alpha\([^)]*\)/i,
+	ropacity = /opacity\s*=\s*([^)]*)/,
+	rposition = /^(top|right|bottom|left)$/,
+	// swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
+	// see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
+	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
+	rmargin = /^margin/,
+	rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ),
+	rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ),
+	rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ),
+	elemdisplay = { BODY: "block" },
+
+	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
+	cssNormalTransform = {
+		letterSpacing: 0,
+		fontWeight: 400
+	},
+
+	cssExpand = [ "Top", "Right", "Bottom", "Left" ],
+	cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
+
+// return a css property mapped to a potentially vendor prefixed property
+function vendorPropName( style, name ) {
+
+	// shortcut for names that are not vendor prefixed
+	if ( name in style ) {
+		return name;
+	}
+
+	// check for vendor prefixed names
+	var capName = name.charAt(0).toUpperCase() + name.slice(1),
+		origName = name,
+		i = cssPrefixes.length;
+
+	while ( i-- ) {
+		name = cssPrefixes[ i ] + capName;
+		if ( name in style ) {
+			return name;
+		}
+	}
+
+	return origName;
+}
+
+function isHidden( elem, el ) {
+	// isHidden might be called from jQuery#filter function;
+	// in that case, element will be second argument
+	elem = el || elem;
+	return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
+}
+
+function showHide( elements, show ) {
+	var display, elem, hidden,
+		values = [],
+		index = 0,
+		length = elements.length;
+
+	for ( ; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+
+		values[ index ] = jQuery._data( elem, "olddisplay" );
+		display = elem.style.display;
+		if ( show ) {
+			// Reset the inline display of this element to learn if it is
+			// being hidden by cascaded rules or not
+			if ( !values[ index ] && display === "none" ) {
+				elem.style.display = "";
+			}
+
+			// Set elements which have been overridden with display: none
+			// in a stylesheet to whatever the default browser style is
+			// for such an element
+			if ( elem.style.display === "" && isHidden( elem ) ) {
+				values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) );
+			}
+		} else {
+
+			if ( !values[ index ] ) {
+				hidden = isHidden( elem );
+
+				if ( display && display !== "none" || !hidden ) {
+					jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
+				}
+			}
+		}
+	}
+
+	// Set the display of most of the elements in a second loop
+	// to avoid the constant reflow
+	for ( index = 0; index < length; index++ ) {
+		elem = elements[ index ];
+		if ( !elem.style ) {
+			continue;
+		}
+		if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
+			elem.style.display = show ? values[ index ] || "" : "none";
+		}
+	}
+
+	return elements;
+}
+
+jQuery.fn.extend({
+	css: function( name, value ) {
+		return jQuery.access( this, function( elem, name, value ) {
+			var len, styles,
+				map = {},
+				i = 0;
+
+			if ( jQuery.isArray( name ) ) {
+				styles = getStyles( elem );
+				len = name.length;
+
+				for ( ; i < len; i++ ) {
+					map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
+				}
+
+				return map;
+			}
+
+			return value !== undefined ?
+				jQuery.style( elem, name, value ) :
+				jQuery.css( elem, name );
+		}, name, value, arguments.length > 1 );
+	},
+	show: function() {
+		return showHide( this, true );
+	},
+	hide: function() {
+		return showHide( this );
+	},
+	toggle: function( state ) {
+		if ( typeof state === "boolean" ) {
+			return state ? this.show() : this.hide();
+		}
+
+		return this.each(function() {
+			if ( isHidden( this ) ) {
+				jQuery( this ).show();
+			} else {
+				jQuery( this ).hide();
+			}
+		});
+	}
+});
+
+jQuery.extend({
+	// Add in style property hooks for overriding the default
+	// behavior of getting and setting a style property
+	cssHooks: {
+		opacity: {
+			get: function( elem, computed ) {
+				if ( computed ) {
+					// We should always get a number back from opacity
+					var ret = curCSS( elem, "opacity" );
+					return ret === "" ? "1" : ret;
+				}
+			}
+		}
+	},
+
+	// Don't automatically add "px" to these possibly-unitless properties
+	cssNumber: {
+		"columnCount": true,
+		"fillOpacity": true,
+		"fontWeight": true,
+		"lineHeight": true,
+		"opacity": true,
+		"order": true,
+		"orphans": true,
+		"widows": true,
+		"zIndex": true,
+		"zoom": true
+	},
+
+	// Add in properties whose names you wish to fix before
+	// setting or getting the value
+	cssProps: {
+		// normalize float css property
+		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
+	},
+
+	// Get and set the style property on a DOM Node
+	style: function( elem, name, value, extra ) {
+		// Don't set styles on text and comment nodes
+		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
+			return;
+		}
+
+		// Make sure that we're working with the right name
+		var ret, type, hooks,
+			origName = jQuery.camelCase( name ),
+			style = elem.style;
+
+		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
+
+		// gets hook for the prefixed version
+		// followed by the unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// Check if we're setting a value
+		if ( value !== undefined ) {
+			type = typeof value;
+
+			// convert relative number strings (+= or -=) to relative numbers. #7345
+			if ( type === "string" && (ret = rrelNum.exec( value )) ) {
+				value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
+				// Fixes bug #9237
+				type = "number";
+			}
+
+			// Make sure that NaN and null values aren't set. See: #7116
+			if ( value == null || type === "number" && isNaN( value ) ) {
+				return;
+			}
+
+			// If a number was passed in, add 'px' to the (except for certain CSS properties)
+			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
+				value += "px";
+			}
+
+			// Fixes #8908, it can be done more correctly by specifing setters in cssHooks,
+			// but it would mean to define eight (for every problematic property) identical functions
+			if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) {
+				style[ name ] = "inherit";
+			}
+
+			// If a hook was provided, use that value, otherwise just set the specified value
+			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
+
+				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
+				// Fixes bug #5509
+				try {
+					style[ name ] = value;
+				} catch(e) {}
+			}
+
+		} else {
+			// If a hook was provided get the non-computed value from there
+			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
+				return ret;
+			}
+
+			// Otherwise just get the value from the style object
+			return style[ name ];
+		}
+	},
+
+	css: function( elem, name, extra, styles ) {
+		var num, val, hooks,
+			origName = jQuery.camelCase( name );
+
+		// Make sure that we're working with the right name
+		name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
+
+		// gets hook for the prefixed version
+		// followed by the unprefixed version
+		hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
+
+		// If a hook was provided get the computed value from there
+		if ( hooks && "get" in hooks ) {
+			val = hooks.get( elem, true, extra );
+		}
+
+		// Otherwise, if a way to get the computed value exists, use that
+		if ( val === undefined ) {
+			val = curCSS( elem, name, styles );
+		}
+
+		//convert "normal" to computed value
+		if ( val === "normal" && name in cssNormalTransform ) {
+			val = cssNormalTransform[ name ];
+		}
+
+		// Return, converting to number if forced or a qualifier was provided and val looks numeric
+		if ( extra === "" || extra ) {
+			num = parseFloat( val );
+			return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
+		}
+		return val;
+	}
+});
+
+// NOTE: we've included the "window" in window.getComputedStyle
+// because jsdom on node.js will break without it.
+if ( window.getComputedStyle ) {
+	getStyles = function( elem ) {
+		return window.getComputedStyle( elem, null );
+	};
+
+	curCSS = function( elem, name, _computed ) {
+		var width, minWidth, maxWidth,
+			computed = _computed || getStyles( elem ),
+
+			// getPropertyValue is only needed for .css('filter') in IE9, see #12537
+			ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined,
+			style = elem.style;
+
+		if ( computed ) {
+
+			if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
+				ret = jQuery.style( elem, name );
+			}
+
+			// A tribute to the "awesome hack by Dean Edwards"
+			// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
+			// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
+			// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
+			if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
+
+				// Remember the original values
+				width = style.width;
+				minWidth = style.minWidth;
+				maxWidth = style.maxWidth;
+
+				// Put in the new values to get a computed value out
+				style.minWidth = style.maxWidth = style.width = ret;
+				ret = computed.width;
+
+				// Revert the changed values
+				style.width = width;
+				style.minWidth = minWidth;
+				style.maxWidth = maxWidth;
+			}
+		}
+
+		return ret;
+	};
+} else if ( document.documentElement.currentStyle ) {
+	getStyles = function( elem ) {
+		return elem.currentStyle;
+	};
+
+	curCSS = function( elem, name, _computed ) {
+		var left, rs, rsLeft,
+			computed = _computed || getStyles( elem ),
+			ret = computed ? computed[ name ] : undefined,
+			style = elem.style;
+
+		// Avoid setting ret to empty string here
+		// so we don't default to auto
+		if ( ret == null && style && style[ name ] ) {
+			ret = style[ name ];
+		}
+
+		// From the awesome hack by Dean Edwards
+		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
+
+		// If we're not dealing with a regular pixel number
+		// but a number that has a weird ending, we need to convert it to pixels
+		// but not position css attributes, as those are proportional to the parent element instead
+		// and we can't measure the parent instead because it might trigger a "stacking dolls" problem
+		if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) {
+
+			// Remember the original values
+			left = style.left;
+			rs = elem.runtimeStyle;
+			rsLeft = rs && rs.left;
+
+			// Put in the new values to get a computed value out
+			if ( rsLeft ) {
+				rs.left = elem.currentStyle.left;
+			}
+			style.left = name === "fontSize" ? "1em" : ret;
+			ret = style.pixelLeft + "px";
+
+			// Revert the changed values
+			style.left = left;
+			if ( rsLeft ) {
+				rs.left = rsLeft;
+			}
+		}
+
+		return ret === "" ? "auto" : ret;
+	};
+}
+
+function setPositiveNumber( elem, value, subtract ) {
+	var matches = rnumsplit.exec( value );
+	return matches ?
+		// Guard against undefined "subtract", e.g., when used as in cssHooks
+		Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
+		value;
+}
+
+function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
+	var i = extra === ( isBorderBox ? "border" : "content" ) ?
+		// If we already have the right measurement, avoid augmentation
+		4 :
+		// Otherwise initialize for horizontal or vertical properties
+		name === "width" ? 1 : 0,
+
+		val = 0;
+
+	for ( ; i < 4; i += 2 ) {
+		// both box models exclude margin, so add it if we want it
+		if ( extra === "margin" ) {
+			val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
+		}
+
+		if ( isBorderBox ) {
+			// border-box includes padding, so remove it if we want content
+			if ( extra === "content" ) {
+				val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+			}
+
+			// at this point, extra isn't border nor margin, so remove border
+			if ( extra !== "margin" ) {
+				val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		} else {
+			// at this point, extra isn't content, so add padding
+			val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
+
+			// at this point, extra isn't content nor padding, so add border
+			if ( extra !== "padding" ) {
+				val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
+			}
+		}
+	}
+
+	return val;
+}
+
+function getWidthOrHeight( elem, name, extra ) {
+
+	// Start with offset property, which is equivalent to the border-box value
+	var valueIsBorderBox = true,
+		val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
+		styles = getStyles( elem ),
+		isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
+
+	// some non-html elements return undefined for offsetWidth, so check for null/undefined
+	// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
+	// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
+	if ( val <= 0 || val == null ) {
+		// Fall back to computed then uncomputed css if necessary
+		val = curCSS( elem, name, styles );
+		if ( val < 0 || val == null ) {
+			val = elem.style[ name ];
+		}
+
+		// Computed unit is not pixels. Stop here and return.
+		if ( rnumnonpx.test(val) ) {
+			return val;
+		}
+
+		// we need the check for style in case a browser which returns unreliable values
+		// for getComputedStyle silently falls back to the reliable elem.style
+		valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] );
+
+		// Normalize "", auto, and prepare for extra
+		val = parseFloat( val ) || 0;
+	}
+
+	// use the active box-sizing model to add/subtract irrelevant styles
+	return ( val +
+		augmentWidthOrHeight(
+			elem,
+			name,
+			extra || ( isBorderBox ? "border" : "content" ),
+			valueIsBorderBox,
+			styles
+		)
+	) + "px";
+}
+
+// Try to determine the default display value of an element
+function css_defaultDisplay( nodeName ) {
+	var doc = document,
+		display = elemdisplay[ nodeName ];
+
+	if ( !display ) {
+		display = actualDisplay( nodeName, doc );
+
+		// If the simple way fails, read from inside an iframe
+		if ( display === "none" || !display ) {
+			// Use the already-created iframe if possible
+			iframe = ( iframe ||
+				jQuery("<iframe frameborder='0' width='0' height='0'/>")
+				.css( "cssText", "display:block !important" )
+			).appendTo( doc.documentElement );
+
+			// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
+			doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document;
+			doc.write("<!doctype html><html><body>");
+			doc.close();
+
+			display = actualDisplay( nodeName, doc );
+			iframe.detach();
+		}
+
+		// Store the correct default display
+		elemdisplay[ nodeName ] = display;
+	}
+
+	return display;
+}
+
+// Called ONLY from within css_defaultDisplay
+function actualDisplay( name, doc ) {
+	var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
+		display = jQuery.css( elem[0], "display" );
+	elem.remove();
+	return display;
+}
+
+jQuery.each([ "height", "width" ], function( i, name ) {
+	jQuery.cssHooks[ name ] = {
+		get: function( elem, computed, extra ) {
+			if ( computed ) {
+				// certain elements can have dimension info if we invisibly show them
+				// however, it must have a current display style that would benefit from this
+				return elem.offsetWidth === 0 && rdisplayswap.test( jQuery.css( elem, "display" ) ) ?
+					jQuery.swap( elem, cssShow, function() {
+						return getWidthOrHeight( elem, name, extra );
+					}) :
+					getWidthOrHeight( elem, name, extra );
+			}
+		},
+
+		set: function( elem, value, extra ) {
+			var styles = extra && getStyles( elem );
+			return setPositiveNumber( elem, value, extra ?
+				augmentWidthOrHeight(
+					elem,
+					name,
+					extra,
+					jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
+					styles
+				) : 0
+			);
+		}
+	};
+});
+
+if ( !jQuery.support.opacity ) {
+	jQuery.cssHooks.opacity = {
+		get: function( elem, computed ) {
+			// IE uses filters for opacity
+			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
+				( 0.01 * parseFloat( RegExp.$1 ) ) + "" :
+				computed ? "1" : "";
+		},
+
+		set: function( elem, value ) {
+			var style = elem.style,
+				currentStyle = elem.currentStyle,
+				opacity = jQuery.isNumeric( value ) ? "alpha(opacity=" + value * 100 + ")" : "",
+				filter = currentStyle && currentStyle.filter || style.filter || "";
+
+			// IE has trouble with opacity if it does not have layout
+			// Force it by setting the zoom level
+			style.zoom = 1;
+
+			// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
+			// if value === "", then remove inline opacity #12685
+			if ( ( value >= 1 || value === "" ) &&
+					jQuery.trim( filter.replace( ralpha, "" ) ) === "" &&
+					style.removeAttribute ) {
+
+				// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
+				// if "filter:" is present at all, clearType is disabled, we want to avoid this
+				// style.removeAttribute is IE Only, but so apparently is this code path...
+				style.removeAttribute( "filter" );
+
+				// if there is no filter style applied in a css rule or unset inline opacity, we are done
+				if ( value === "" || currentStyle && !currentStyle.filter ) {
+					return;
+				}
+			}
+
+			// otherwise, set new filter values
+			style.filter = ralpha.test( filter ) ?
+				filter.replace( ralpha, opacity ) :
+				filter + " " + opacity;
+		}
+	};
+}
+
+// These hooks cannot be added until DOM ready because the support test
+// for it is not run until after DOM ready
+jQuery(function() {
+	if ( !jQuery.support.reliableMarginRight ) {
+		jQuery.cssHooks.marginRight = {
+			get: function( elem, computed ) {
+				if ( computed ) {
+					// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
+					// Work around by temporarily setting element display to inline-block
+					return jQuery.swap( elem, { "display": "inline-block" },
+						curCSS, [ elem, "marginRight" ] );
+				}
+			}
+		};
+	}
+
+	// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
+	// getComputedStyle returns percent when specified for top/left/bottom/right
+	// rather than make the css module depend on the offset module, we just check for it here
+	if ( !jQuery.support.pixelPosition && jQuery.fn.position ) {
+		jQuery.each( [ "top", "left" ], function( i, prop ) {
+			jQuery.cssHooks[ prop ] = {
+				get: function( elem, computed ) {
+					if ( computed ) {
+						computed = curCSS( elem, prop );
+						// if curCSS returns percentage, fallback to offset
+						return rnumnonpx.test( computed ) ?
+							jQuery( elem ).position()[ prop ] + "px" :
+							computed;
+					}
+				}
+			};
+		});
+	}
+
+});
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+	jQuery.expr.filters.hidden = function( elem ) {
+		// Support: Opera <= 12.12
+		// Opera reports offsetWidths and offsetHeights less than zero on some elements
+		return elem.offsetWidth <= 0 && elem.offsetHeight <= 0 ||
+			(!jQuery.support.reliableHiddenOffsets && ((elem.style && elem.style.display) || jQuery.css( elem, "display" )) === "none");
+	};
+
+	jQuery.expr.filters.visible = function( elem ) {
+		return !jQuery.expr.filters.hidden( elem );
+	};
+}
+
+// These hooks are used by animate to expand properties
+jQuery.each({
+	margin: "",
+	padding: "",
+	border: "Width"
+}, function( prefix, suffix ) {
+	jQuery.cssHooks[ prefix + suffix ] = {
+		expand: function( value ) {
+			var i = 0,
+				expanded = {},
+
+				// assumes a single number if not a string
+				parts = typeof value === "string" ? value.split(" ") : [ value ];
+
+			for ( ; i < 4; i++ ) {
+				expanded[ prefix + cssExpand[ i ] + suffix ] =
+					parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
+			}
+
+			return expanded;
+		}
+	};
+
+	if ( !rmargin.test( prefix ) ) {
+		jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
+	}
+});
+var r20 = /%20/g,
+	rbracket = /\[\]$/,
+	rCRLF = /\r?\n/g,
+	rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
+	rsubmittable = /^(?:input|select|textarea|keygen)/i;
+
+jQuery.fn.extend({
+	serialize: function() {
+		return jQuery.param( this.serializeArray() );
+	},
+	serializeArray: function() {
+		return this.map(function(){
+			// Can add propHook for "elements" to filter or add form elements
+			var elements = jQuery.prop( this, "elements" );
+			return elements ? jQuery.makeArray( elements ) : this;
+		})
+		.filter(function(){
+			var type = this.type;
+			// Use .is(":disabled") so that fieldset[disabled] works
+			return this.name && !jQuery( this ).is( ":disabled" ) &&
+				rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
+				( this.checked || !manipulation_rcheckableType.test( type ) );
+		})
+		.map(function( i, elem ){
+			var val = jQuery( this ).val();
+
+			return val == null ?
+				null :
+				jQuery.isArray( val ) ?
+					jQuery.map( val, function( val ){
+						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+					}) :
+					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
+		}).get();
+	}
+});
+
+//Serialize an array of form elements or a set of
+//key/values into a query string
+jQuery.param = function( a, traditional ) {
+	var prefix,
+		s = [],
+		add = function( key, value ) {
+			// If value is a function, invoke it and return its value
+			value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
+			s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
+		};
+
+	// Set traditional to true for jQuery <= 1.3.2 behavior.
+	if ( traditional === undefined ) {
+		traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
+	}
+
+	// If an array was passed in, assume that it is an array of form elements.
+	if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
+		// Serialize the form elements
+		jQuery.each( a, function() {
+			add( this.name, this.value );
+		});
+
+	} else {
+		// If traditional, encode the "old" way (the way 1.3.2 or older
+		// did it), otherwise encode params recursively.
+		for ( prefix in a ) {
+			buildParams( prefix, a[ prefix ], traditional, add );
+		}
+	}
+
+	// Return the resulting serialization
+	return s.join( "&" ).replace( r20, "+" );
+};
+
+function buildParams( prefix, obj, traditional, add ) {
+	var name;
+
+	if ( jQuery.isArray( obj ) ) {
+		// Serialize array item.
+		jQuery.each( obj, function( i, v ) {
+			if ( traditional || rbracket.test( prefix ) ) {
+				// Treat each array item as a scalar.
+				add( prefix, v );
+
+			} else {
+				// Item is non-scalar (array or object), encode its numeric index.
+				buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
+			}
+		});
+
+	} else if ( !traditional && jQuery.type( obj ) === "object" ) {
+		// Serialize object item.
+		for ( name in obj ) {
+			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
+		}
+
+	} else {
+		// Serialize scalar item.
+		add( prefix, obj );
+	}
+}
+jQuery.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 contextmenu").split(" "), function( i, name ) {
+
+	// Handle event binding
+	jQuery.fn[ name ] = function( data, fn ) {
+		return arguments.length > 0 ?
+			this.on( name, null, data, fn ) :
+			this.trigger( name );
+	};
+});
+
+jQuery.fn.extend({
+	hover: function( fnOver, fnOut ) {
+		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+	},
+
+	bind: function( types, data, fn ) {
+		return this.on( types, null, data, fn );
+	},
+	unbind: function( types, fn ) {
+		return this.off( types, null, fn );
+	},
+
+	delegate: function( selector, types, data, fn ) {
+		return this.on( types, selector, data, fn );
+	},
+	undelegate: function( selector, types, fn ) {
+		// ( namespace ) or ( selector, types [, fn] )
+		return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn );
+	}
+});
+var
+	// Document location
+	ajaxLocParts,
+	ajaxLocation,
+	ajax_nonce = jQuery.now(),
+
+	ajax_rquery = /\?/,
+	rhash = /#.*$/,
+	rts = /([?&])_=[^&]*/,
+	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
+	// #7653, #8125, #8152: local protocol detection
+	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
+	rnoContent = /^(?:GET|HEAD)$/,
+	rprotocol = /^\/\//,
+	rurl = /^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,
+
+	// Keep a copy of the old load method
+	_load = jQuery.fn.load,
+
+	/* Prefilters
+	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
+	 * 2) These are called:
+	 *    - BEFORE asking for a transport
+	 *    - AFTER param serialization (s.data is a string if s.processData is true)
+	 * 3) key is the dataType
+	 * 4) the catchall symbol "*" can be used
+	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
+	 */
+	prefilters = {},
+
+	/* Transports bindings
+	 * 1) key is the dataType
+	 * 2) the catchall symbol "*" can be used
+	 * 3) selection will start with transport dataType and THEN go to "*" if needed
+	 */
+	transports = {},
+
+	// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
+	allTypes = "*/".concat("*");
+
+// #8138, IE may throw an exception when accessing
+// a field from window.location if document.domain has been set
+try {
+	ajaxLocation = location.href;
+} catch( e ) {
+	// Use the href attribute of an A element
+	// since IE will modify it given document.location
+	ajaxLocation = document.createElement( "a" );
+	ajaxLocation.href = "";
+	ajaxLocation = ajaxLocation.href;
+}
+
+// Segment location into parts
+ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
+
+// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
+function addToPrefiltersOrTransports( structure ) {
+
+	// dataTypeExpression is optional and defaults to "*"
+	return function( dataTypeExpression, func ) {
+
+		if ( typeof dataTypeExpression !== "string" ) {
+			func = dataTypeExpression;
+			dataTypeExpression = "*";
+		}
+
+		var dataType,
+			i = 0,
+			dataTypes = dataTypeExpression.toLowerCase().match( core_rnotwhite ) || [];
+
+		if ( jQuery.isFunction( func ) ) {
+			// For each dataType in the dataTypeExpression
+			while ( (dataType = dataTypes[i++]) ) {
+				// Prepend if requested
+				if ( dataType[0] === "+" ) {
+					dataType = dataType.slice( 1 ) || "*";
+					(structure[ dataType ] = structure[ dataType ] || []).unshift( func );
+
+				// Otherwise append
+				} else {
+					(structure[ dataType ] = structure[ dataType ] || []).push( func );
+				}
+			}
+		}
+	};
+}
+
+// Base inspection function for prefilters and transports
+function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {
+
+	var inspected = {},
+		seekingTransport = ( structure === transports );
+
+	function inspect( dataType ) {
+		var selected;
+		inspected[ dataType ] = true;
+		jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {
+			var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );
+			if( typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[ dataTypeOrTransport ] ) {
+				options.dataTypes.unshift( dataTypeOrTransport );
+				inspect( dataTypeOrTransport );
+				return false;
+			} else if ( seekingTransport ) {
+				return !( selected = dataTypeOrTransport );
+			}
+		});
+		return selected;
+	}
+
+	return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" );
+}
+
+// A special extend for ajax options
+// that takes "flat" options (not to be deep extended)
+// Fixes #9887
+function ajaxExtend( target, src ) {
+	var deep, key,
+		flatOptions = jQuery.ajaxSettings.flatOptions || {};
+
+	for ( key in src ) {
+		if ( src[ key ] !== undefined ) {
+			( flatOptions[ key ] ? target : ( deep || (deep = {}) ) )[ key ] = src[ key ];
+		}
+	}
+	if ( deep ) {
+		jQuery.extend( true, target, deep );
+	}
+
+	return target;
+}
+
+jQuery.fn.load = function( url, params, callback ) {
+	if ( typeof url !== "string" && _load ) {
+		return _load.apply( this, arguments );
+	}
+
+	var selector, response, type,
+		self = this,
+		off = url.indexOf(" ");
+
+	if ( off >= 0 ) {
+		selector = url.slice( off, url.length );
+		url = url.slice( 0, off );
+	}
+
+	// If it's a function
+	if ( jQuery.isFunction( params ) ) {
+
+		// We assume that it's the callback
+		callback = params;
+		params = undefined;
+
+	// Otherwise, build a param string
+	} else if ( params && typeof params === "object" ) {
+		type = "POST";
+	}
+
+	// If we have elements to modify, make the request
+	if ( self.length > 0 ) {
+		jQuery.ajax({
+			url: url,
+
+			// if "type" variable is undefined, then "GET" method will be used
+			type: type,
+			dataType: "html",
+			data: params
+		}).done(function( responseText ) {
+
+			// Save response for use in complete callback
+			response = arguments;
+
+			self.html( selector ?
+
+				// If a selector was specified, locate the right elements in a dummy div
+				// Exclude scripts to avoid IE 'Permission Denied' errors
+				jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
+
+				// Otherwise use the full result
+				responseText );
+
+		}).complete( callback && function( jqXHR, status ) {
+			self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
+		});
+	}
+
+	return this;
+};
+
+// Attach a bunch of functions for handling common AJAX events
+jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){
+	jQuery.fn[ type ] = function( fn ){
+		return this.on( type, fn );
+	};
+});
+
+jQuery.extend({
+
+	// Counter for holding the number of active queries
+	active: 0,
+
+	// Last-Modified header cache for next request
+	lastModified: {},
+	etag: {},
+
+	ajaxSettings: {
+		url: ajaxLocation,
+		type: "GET",
+		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
+		global: true,
+		processData: true,
+		async: true,
+		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
+		/*
+		timeout: 0,
+		data: null,
+		dataType: null,
+		username: null,
+		password: null,
+		cache: null,
+		throws: false,
+		traditional: false,
+		headers: {},
+		*/
+
+		accepts: {
+			"*": allTypes,
+			text: "text/plain",
+			html: "text/html",
+			xml: "application/xml, text/xml",
+			json: "application/json, text/javascript"
+		},
+
+		contents: {
+			xml: /xml/,
+			html: /html/,
+			json: /json/
+		},
+
+		responseFields: {
+			xml: "responseXML",
+			text: "responseText",
+			json: "responseJSON"
+		},
+
+		// Data converters
+		// Keys separate source (or catchall "*") and destination types with a single space
+		converters: {
+
+			// Convert anything to text
+			"* text": String,
+
+			// Text to html (true = no transformation)
+			"text html": true,
+
+			// Evaluate text as a json expression
+			"text json": jQuery.parseJSON,
+
+			// Parse text as xml
+			"text xml": jQuery.parseXML
+		},
+
+		// For options that shouldn't be deep extended:
+		// you can add your own custom options here if
+		// and when you create one that shouldn't be
+		// deep extended (see ajaxExtend)
+		flatOptions: {
+			url: true,
+			context: true
+		}
+	},
+
+	// Creates a full fledged settings object into target
+	// with both ajaxSettings and settings fields.
+	// If target is omitted, writes into ajaxSettings.
+	ajaxSetup: function( target, settings ) {
+		return settings ?
+
+			// Building a settings object
+			ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :
+
+			// Extending ajaxSettings
+			ajaxExtend( jQuery.ajaxSettings, target );
+	},
+
+	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
+	ajaxTransport: addToPrefiltersOrTransports( transports ),
+
+	// Main method
+	ajax: function( url, options ) {
+
+		// If url is an object, simulate pre-1.5 signature
+		if ( typeof url === "object" ) {
+			options = url;
+			url = undefined;
+		}
+
+		// Force options to be an object
+		options = options || {};
+
+		var // Cross-domain detection vars
+			parts,
+			// Loop variable
+			i,
+			// URL without anti-cache param
+			cacheURL,
+			// Response headers as string
+			responseHeadersString,
+			// timeout handle
+			timeoutTimer,
+
+			// To know if global events are to be dispatched
+			fireGlobals,
+
+			transport,
+			// Response headers
+			responseHeaders,
+			// Create the final options object
+			s = jQuery.ajaxSetup( {}, options ),
+			// Callbacks context
+			callbackContext = s.context || s,
+			// Context for global events is callbackContext if it is a DOM node or jQuery collection
+			globalEventContext = s.context && ( callbackContext.nodeType || callbackContext.jquery ) ?
+				jQuery( callbackContext ) :
+				jQuery.event,
+			// Deferreds
+			deferred = jQuery.Deferred(),
+			completeDeferred = jQuery.Callbacks("once memory"),
+			// Status-dependent callbacks
+			statusCode = s.statusCode || {},
+			// Headers (they are sent all at once)
+			requestHeaders = {},
+			requestHeadersNames = {},
+			// The jqXHR state
+			state = 0,
+			// Default abort message
+			strAbort = "canceled",
+			// Fake xhr
+			jqXHR = {
+				readyState: 0,
+
+				// Builds headers hashtable if needed
+				getResponseHeader: function( key ) {
+					var match;
+					if ( state === 2 ) {
+						if ( !responseHeaders ) {
+							responseHeaders = {};
+							while ( (match = rheaders.exec( responseHeadersString )) ) {
+								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
+							}
+						}
+						match = responseHeaders[ key.toLowerCase() ];
+					}
+					return match == null ? null : match;
+				},
+
+				// Raw string
+				getAllResponseHeaders: function() {
+					return state === 2 ? responseHeadersString : null;
+				},
+
+				// Caches the header
+				setRequestHeader: function( name, value ) {
+					var lname = name.toLowerCase();
+					if ( !state ) {
+						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
+						requestHeaders[ name ] = value;
+					}
+					return this;
+				},
+
+				// Overrides response content-type header
+				overrideMimeType: function( type ) {
+					if ( !state ) {
+						s.mimeType = type;
+					}
+					return this;
+				},
+
+				// Status-dependent callbacks
+				statusCode: function( map ) {
+					var code;
+					if ( map ) {
+						if ( state < 2 ) {
+							for ( code in map ) {
+								// Lazy-add the new callback in a way that preserves old ones
+								statusCode[ code ] = [ statusCode[ code ], map[ code ] ];
+							}
+						} else {
+							// Execute the appropriate callbacks
+							jqXHR.always( map[ jqXHR.status ] );
+						}
+					}
+					return this;
+				},
+
+				// Cancel the request
+				abort: function( statusText ) {
+					var finalText = statusText || strAbort;
+					if ( transport ) {
+						transport.abort( finalText );
+					}
+					done( 0, finalText );
+					return this;
+				}
+			};
+
+		// Attach deferreds
+		deferred.promise( jqXHR ).complete = completeDeferred.add;
+		jqXHR.success = jqXHR.done;
+		jqXHR.error = jqXHR.fail;
+
+		// Remove hash character (#7531: and string promotion)
+		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
+		// Handle falsy url in the settings object (#10093: consistency with old signature)
+		// We also use the url parameter if available
+		s.url = ( ( url || s.url || ajaxLocation ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
+
+		// Alias method option to type as per ticket #12004
+		s.type = options.method || options.type || s.method || s.type;
+
+		// Extract dataTypes list
+		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().match( core_rnotwhite ) || [""];
+
+		// A cross-domain request is in order when we have a protocol:host:port mismatch
+		if ( s.crossDomain == null ) {
+			parts = rurl.exec( s.url.toLowerCase() );
+			s.crossDomain = !!( parts &&
+				( parts[ 1 ] !== ajaxLocParts[ 1 ] || parts[ 2 ] !== ajaxLocParts[ 2 ] ||
+					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? "80" : "443" ) ) !==
+						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? "80" : "443" ) ) )
+			);
+		}
+
+		// Convert data if not already a string
+		if ( s.data && s.processData && typeof s.data !== "string" ) {
+			s.data = jQuery.param( s.data, s.traditional );
+		}
+
+		// Apply prefilters
+		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
+
+		// If request was aborted inside a prefilter, stop there
+		if ( state === 2 ) {
+			return jqXHR;
+		}
+
+		// We can fire global events as of now if asked to
+		fireGlobals = s.global;
+
+		// Watch for a new set of requests
+		if ( fireGlobals && jQuery.active++ === 0 ) {
+			jQuery.event.trigger("ajaxStart");
+		}
+
+		// Uppercase the type
+		s.type = s.type.toUpperCase();
+
+		// Determine if request has content
+		s.hasContent = !rnoContent.test( s.type );
+
+		// Save the URL in case we're toying with the If-Modified-Since
+		// and/or If-None-Match header later on
+		cacheURL = s.url;
+
+		// More options handling for requests with no content
+		if ( !s.hasContent ) {
+
+			// If data is available, append data to url
+			if ( s.data ) {
+				cacheURL = ( s.url += ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + s.data );
+				// #9682: remove data so that it's not used in an eventual retry
+				delete s.data;
+			}
+
+			// Add anti-cache in url if needed
+			if ( s.cache === false ) {
+				s.url = rts.test( cacheURL ) ?
+
+					// If there is already a '_' parameter, set its value
+					cacheURL.replace( rts, "$1_=" + ajax_nonce++ ) :
+
+					// Otherwise add one to the end
+					cacheURL + ( ajax_rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ajax_nonce++;
+			}
+		}
+
+		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+		if ( s.ifModified ) {
+			if ( jQuery.lastModified[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] );
+			}
+			if ( jQuery.etag[ cacheURL ] ) {
+				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] );
+			}
+		}
+
+		// Set the correct header, if data is being sent
+		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
+			jqXHR.setRequestHeader( "Content-Type", s.contentType );
+		}
+
+		// Set the Accepts header for the server, depending on the dataType
+		jqXHR.setRequestHeader(
+			"Accept",
+			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
+				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
+				s.accepts[ "*" ]
+		);
+
+		// Check for headers option
+		for ( i in s.headers ) {
+			jqXHR.setRequestHeader( i, s.headers[ i ] );
+		}
+
+		// Allow custom headers/mimetypes and early abort
+		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
+			// Abort if not done already and return
+			return jqXHR.abort();
+		}
+
+		// aborting is no longer a cancellation
+		strAbort = "abort";
+
+		// Install callbacks on deferreds
+		for ( i in { success: 1, error: 1, complete: 1 } ) {
+			jqXHR[ i ]( s[ i ] );
+		}
+
+		// Get transport
+		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
+
+		// If no transport, we auto-abort
+		if ( !transport ) {
+			done( -1, "No Transport" );
+		} else {
+			jqXHR.readyState = 1;
+
+			// Send global event
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
+			}
+			// Timeout
+			if ( s.async && s.timeout > 0 ) {
+				timeoutTimer = setTimeout(function() {
+					jqXHR.abort("timeout");
+				}, s.timeout );
+			}
+
+			try {
+				state = 1;
+				transport.send( requestHeaders, done );
+			} catch ( e ) {
+				// Propagate exception as error if not done
+				if ( state < 2 ) {
+					done( -1, e );
+				// Simply rethrow otherwise
+				} else {
+					throw e;
+				}
+			}
+		}
+
+		// Callback for when everything is done
+		function done( status, nativeStatusText, responses, headers ) {
+			var isSuccess, success, error, response, modified,
+				statusText = nativeStatusText;
+
+			// Called once
+			if ( state === 2 ) {
+				return;
+			}
+
+			// State is "done" now
+			state = 2;
+
+			// Clear timeout if it exists
+			if ( timeoutTimer ) {
+				clearTimeout( timeoutTimer );
+			}
+
+			// Dereference transport for early garbage collection
+			// (no matter how long the jqXHR object will be used)
+			transport = undefined;
+
+			// Cache response headers
+			responseHeadersString = headers || "";
+
+			// Set readyState
+			jqXHR.readyState = status > 0 ? 4 : 0;
+
+			// Determine if successful
+			isSuccess = status >= 200 && status < 300 || status === 304;
+
+			// Get response data
+			if ( responses ) {
+				response = ajaxHandleResponses( s, jqXHR, responses );
+			}
+
+			// Convert no matter what (that way responseXXX fields are always set)
+			response = ajaxConvert( s, response, jqXHR, isSuccess );
+
+			// If successful, handle type chaining
+			if ( isSuccess ) {
+
+				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
+				if ( s.ifModified ) {
+					modified = jqXHR.getResponseHeader("Last-Modified");
+					if ( modified ) {
+						jQuery.lastModified[ cacheURL ] = modified;
+					}
+					modified = jqXHR.getResponseHeader("etag");
+					if ( modified ) {
+						jQuery.etag[ cacheURL ] = modified;
+					}
+				}
+
+				// if no content
+				if ( status === 204 || s.type === "HEAD" ) {
+					statusText = "nocontent";
+
+				// if not modified
+				} else if ( status === 304 ) {
+					statusText = "notmodified";
+
+				// If we have data, let's convert it
+				} else {
+					statusText = response.state;
+					success = response.data;
+					error = response.error;
+					isSuccess = !error;
+				}
+			} else {
+				// We extract error from statusText
+				// then normalize statusText and status for non-aborts
+				error = statusText;
+				if ( status || !statusText ) {
+					statusText = "error";
+					if ( status < 0 ) {
+						status = 0;
+					}
+				}
+			}
+
+			// Set data for the fake xhr object
+			jqXHR.status = status;
+			jqXHR.statusText = ( nativeStatusText || statusText ) + "";
+
+			// Success/Error
+			if ( isSuccess ) {
+				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
+			} else {
+				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
+			}
+
+			// Status-dependent callbacks
+			jqXHR.statusCode( statusCode );
+			statusCode = undefined;
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError",
+					[ jqXHR, s, isSuccess ? success : error ] );
+			}
+
+			// Complete
+			completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
+
+			if ( fireGlobals ) {
+				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
+				// Handle the global AJAX counter
+				if ( !( --jQuery.active ) ) {
+					jQuery.event.trigger("ajaxStop");
+				}
+			}
+		}
+
+		return jqXHR;
+	},
+
+	getJSON: function( url, data, callback ) {
+		return jQuery.get( url, data, callback, "json" );
+	},
+
+	getScript: function( url, callback ) {
+		return jQuery.get( url, undefined, callback, "script" );
+	}
+});
+
+jQuery.each( [ "get", "post" ], function( i, method ) {
+	jQuery[ method ] = function( url, data, callback, type ) {
+		// shift arguments if data argument was omitted
+		if ( jQuery.isFunction( data ) ) {
+			type = type || callback;
+			callback = data;
+			data = undefined;
+		}
+
+		return jQuery.ajax({
+			url: url,
+			type: method,
+			dataType: type,
+			data: data,
+			success: callback
+		});
+	};
+});
+
+/* Handles responses to an ajax request:
+ * - finds the right dataType (mediates between content-type and expected dataType)
+ * - returns the corresponding response
+ */
+function ajaxHandleResponses( s, jqXHR, responses ) {
+	var firstDataType, ct, finalDataType, type,
+		contents = s.contents,
+		dataTypes = s.dataTypes;
+
+	// Remove auto dataType and get content-type in the process
+	while( dataTypes[ 0 ] === "*" ) {
+		dataTypes.shift();
+		if ( ct === undefined ) {
+			ct = s.mimeType || jqXHR.getResponseHeader("Content-Type");
+		}
+	}
+
+	// Check if we're dealing with a known content-type
+	if ( ct ) {
+		for ( type in contents ) {
+			if ( contents[ type ] && contents[ type ].test( ct ) ) {
+				dataTypes.unshift( type );
+				break;
+			}
+		}
+	}
+
+	// Check to see if we have a response for the expected dataType
+	if ( dataTypes[ 0 ] in responses ) {
+		finalDataType = dataTypes[ 0 ];
+	} else {
+		// Try convertible dataTypes
+		for ( type in responses ) {
+			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
+				finalDataType = type;
+				break;
+			}
+			if ( !firstDataType ) {
+				firstDataType = type;
+			}
+		}
+		// Or just use first one
+		finalDataType = finalDataType || firstDataType;
+	}
+
+	// If we found a dataType
+	// We add the dataType to the list if needed
+	// and return the corresponding response
+	if ( finalDataType ) {
+		if ( finalDataType !== dataTypes[ 0 ] ) {
+			dataTypes.unshift( finalDataType );
+		}
+		return responses[ finalDataType ];
+	}
+}
+
+/* Chain conversions given the request and the original response
+ * Also sets the responseXXX fields on the jqXHR instance
+ */
+function ajaxConvert( s, response, jqXHR, isSuccess ) {
+	var conv2, current, conv, tmp, prev,
+		converters = {},
+		// Work with a copy of dataTypes in case we need to modify it for conversion
+		dataTypes = s.dataTypes.slice();
+
+	// Create converters map with lowercased keys
+	if ( dataTypes[ 1 ] ) {
+		for ( conv in s.converters ) {
+			converters[ conv.toLowerCase() ] = s.converters[ conv ];
+		}
+	}
+
+	current = dataTypes.shift();
+
+	// Convert to each sequential dataType
+	while ( current ) {
+
+		if ( s.responseFields[ current ] ) {
+			jqXHR[ s.responseFields[ current ] ] = response;
+		}
+
+		// Apply the dataFilter if provided
+		if ( !prev && isSuccess && s.dataFilter ) {
+			response = s.dataFilter( response, s.dataType );
+		}
+
+		prev = current;
+		current = dataTypes.shift();
+
+		if ( current ) {
+
+			// There's only work to do if current dataType is non-auto
+			if ( current === "*" ) {
+
+				current = prev;
+
+			// Convert response if prev dataType is non-auto and differs from current
+			} else if ( prev !== "*" && prev !== current ) {
+
+				// Seek a direct converter
+				conv = converters[ prev + " " + current ] || converters[ "* " + current ];
+
+				// If none found, seek a pair
+				if ( !conv ) {
+					for ( conv2 in converters ) {
+
+						// If conv2 outputs current
+						tmp = conv2.split( " " );
+						if ( tmp[ 1 ] === current ) {
+
+							// If prev can be converted to accepted input
+							conv = converters[ prev + " " + tmp[ 0 ] ] ||
+								converters[ "* " + tmp[ 0 ] ];
+							if ( conv ) {
+								// Condense equivalence converters
+								if ( conv === true ) {
+									conv = converters[ conv2 ];
+
+								// Otherwise, insert the intermediate dataType
+								} else if ( converters[ conv2 ] !== true ) {
+									current = tmp[ 0 ];
+									dataTypes.unshift( tmp[ 1 ] );
+								}
+								break;
+							}
+						}
+					}
+				}
+
+				// Apply converter (if not an equivalence)
+				if ( conv !== true ) {
+
+					// Unless errors are allowed to bubble, catch and return them
+					if ( conv && s[ "throws" ] ) {
+						response = conv( response );
+					} else {
+						try {
+							response = conv( response );
+						} catch ( e ) {
+							return { state: "parsererror", error: conv ? e : "No conversion from " + prev + " to " + current };
+						}
+					}
+				}
+			}
+		}
+	}
+
+	return { state: "success", data: response };
+}
+// Install script dataType
+jQuery.ajaxSetup({
+	accepts: {
+		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
+	},
+	contents: {
+		script: /(?:java|ecma)script/
+	},
+	converters: {
+		"text script": function( text ) {
+			jQuery.globalEval( text );
+			return text;
+		}
+	}
+});
+
+// Handle cache's special case and global
+jQuery.ajaxPrefilter( "script", function( s ) {
+	if ( s.cache === undefined ) {
+		s.cache = false;
+	}
+	if ( s.crossDomain ) {
+		s.type = "GET";
+		s.global = false;
+	}
+});
+
+// Bind script tag hack transport
+jQuery.ajaxTransport( "script", function(s) {
+
+	// This transport only deals with cross domain requests
+	if ( s.crossDomain ) {
+
+		var script,
+			head = document.head || jQuery("head")[0] || document.documentElement;
+
+		return {
+
+			send: function( _, callback ) {
+
+				script = document.createElement("script");
+
+				script.async = true;
+
+				if ( s.scriptCharset ) {
+					script.charset = s.scriptCharset;
+				}
+
+				script.src = s.url;
+
+				// Attach handlers for all browsers
+				script.onload = script.onreadystatechange = function( _, isAbort ) {
+
+					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
+
+						// Handle memory leak in IE
+						script.onload = script.onreadystatechange = null;
+
+						// Remove the script
+						if ( script.parentNode ) {
+							script.parentNode.removeChild( script );
+						}
+
+						// Dereference the script
+						script = null;
+
+						// Callback if not abort
+						if ( !isAbort ) {
+							callback( 200, "success" );
+						}
+					}
+				};
+
+				// Circumvent IE6 bugs with base elements (#2709 and #4378) by prepending
+				// Use native DOM manipulation to avoid our domManip AJAX trickery
+				head.insertBefore( script, head.firstChild );
+			},
+
+			abort: function() {
+				if ( script ) {
+					script.onload( undefined, true );
+				}
+			}
+		};
+	}
+});
+var oldCallbacks = [],
+	rjsonp = /(=)\?(?=&|$)|\?\?/;
+
+// Default jsonp settings
+jQuery.ajaxSetup({
+	jsonp: "callback",
+	jsonpCallback: function() {
+		var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( ajax_nonce++ ) );
+		this[ callback ] = true;
+		return callback;
+	}
+});
+
+// Detect, normalize options and install callbacks for jsonp requests
+jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
+
+	var callbackName, overwritten, responseContainer,
+		jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
+			"url" :
+			typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
+		);
+
+	// Handle iff the expected data type is "jsonp" or we have a parameter to set
+	if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
+
+		// Get callback name, remembering preexisting value associated with it
+		callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
+			s.jsonpCallback() :
+			s.jsonpCallback;
+
+		// Insert callback into url or form data
+		if ( jsonProp ) {
+			s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
+		} else if ( s.jsonp !== false ) {
+			s.url += ( ajax_rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
+		}
+
+		// Use data converter to retrieve json after script execution
+		s.converters["script json"] = function() {
+			if ( !responseContainer ) {
+				jQuery.error( callbackName + " was not called" );
+			}
+			return responseContainer[ 0 ];
+		};
+
+		// force json dataType
+		s.dataTypes[ 0 ] = "json";
+
+		// Install callback
+		overwritten = window[ callbackName ];
+		window[ callbackName ] = function() {
+			responseContainer = arguments;
+		};
+
+		// Clean-up function (fires after converters)
+		jqXHR.always(function() {
+			// Restore preexisting value
+			window[ callbackName ] = overwritten;
+
+			// Save back as free
+			if ( s[ callbackName ] ) {
+				// make sure that re-using the options doesn't screw things around
+				s.jsonpCallback = originalSettings.jsonpCallback;
+
+				// save the callback name for future use
+				oldCallbacks.push( callbackName );
+			}
+
+			// Call if it was a function and we have a response
+			if ( responseContainer && jQuery.isFunction( overwritten ) ) {
+				overwritten( responseContainer[ 0 ] );
+			}
+
+			responseContainer = overwritten = undefined;
+		});
+
+		// Delegate to script
+		return "script";
+	}
+});
+var xhrCallbacks, xhrSupported,
+	xhrId = 0,
+	// #5280: Internet Explorer will keep connections alive if we don't abort on unload
+	xhrOnUnloadAbort = window.ActiveXObject && function() {
+		// Abort all pending requests
+		var key;
+		for ( key in xhrCallbacks ) {
+			xhrCallbacks[ key ]( undefined, true );
+		}
+	};
+
+// Functions to create xhrs
+function createStandardXHR() {
+	try {
+		return new window.XMLHttpRequest();
+	} catch( e ) {}
+}
+
+function createActiveXHR() {
+	try {
+		return new window.ActiveXObject("Microsoft.XMLHTTP");
+	} catch( e ) {}
+}
+
+// Create the request object
+// (This is still attached to ajaxSettings for backward compatibility)
+jQuery.ajaxSettings.xhr = window.ActiveXObject ?
+	/* Microsoft failed to properly
+	 * implement the XMLHttpRequest in IE7 (can't request local files),
+	 * so we use the ActiveXObject when it is available
+	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
+	 * we need a fallback.
+	 */
+	function() {
+		return !this.isLocal && createStandardXHR() || createActiveXHR();
+	} :
+	// For all other browsers, use the standard XMLHttpRequest object
+	createStandardXHR;
+
+// Determine support properties
+xhrSupported = jQuery.ajaxSettings.xhr();
+jQuery.support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
+xhrSupported = jQuery.support.ajax = !!xhrSupported;
+
+// Create transport if the browser can provide an xhr
+if ( xhrSupported ) {
+
+	jQuery.ajaxTransport(function( s ) {
+		// Cross domain only allowed if supported through XMLHttpRequest
+		if ( !s.crossDomain || jQuery.support.cors ) {
+
+			var callback;
+
+			return {
+				send: function( headers, complete ) {
+
+					// Get a new xhr
+					var handle, i,
+						xhr = s.xhr();
+
+					// Open the socket
+					// Passing null username, generates a login popup on Opera (#2865)
+					if ( s.username ) {
+						xhr.open( s.type, s.url, s.async, s.username, s.password );
+					} else {
+						xhr.open( s.type, s.url, s.async );
+					}
+
+					// Apply custom fields if provided
+					if ( s.xhrFields ) {
+						for ( i in s.xhrFields ) {
+							xhr[ i ] = s.xhrFields[ i ];
+						}
+					}
+
+					// Override mime type if needed
+					if ( s.mimeType && xhr.overrideMimeType ) {
+						xhr.overrideMimeType( s.mimeType );
+					}
+
+					// X-Requested-With header
+					// For cross-domain requests, seeing as conditions for a preflight are
+					// akin to a jigsaw puzzle, we simply never set it to be sure.
+					// (it can always be set on a per-request basis or even using ajaxSetup)
+					// For same-domain requests, won't change header if already provided.
+					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
+						headers["X-Requested-With"] = "XMLHttpRequest";
+					}
+
+					// Need an extra try/catch for cross domain requests in Firefox 3
+					try {
+						for ( i in headers ) {
+							xhr.setRequestHeader( i, headers[ i ] );
+						}
+					} catch( err ) {}
+
+					// Do send the request
+					// This may raise an exception which is actually
+					// handled in jQuery.ajax (so no try/catch here)
+					xhr.send( ( s.hasContent && s.data ) || null );
+
+					// Listener
+					callback = function( _, isAbort ) {
+						var status, responseHeaders, statusText, responses;
+
+						// Firefox throws exceptions when accessing properties
+						// of an xhr when a network error occurred
+						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
+						try {
+
+							// Was never called and is aborted or complete
+							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
+
+								// Only called once
+								callback = undefined;
+
+								// Do not keep as active anymore
+								if ( handle ) {
+									xhr.onreadystatechange = jQuery.noop;
+									if ( xhrOnUnloadAbort ) {
+										delete xhrCallbacks[ handle ];
+									}
+								}
+
+								// If it's an abort
+								if ( isAbort ) {
+									// Abort it manually if needed
+									if ( xhr.readyState !== 4 ) {
+										xhr.abort();
+									}
+								} else {
+									responses = {};
+									status = xhr.status;
+									responseHeaders = xhr.getAllResponseHeaders();
+
+									// When requesting binary data, IE6-9 will throw an exception
+									// on any attempt to access responseText (#11426)
+									if ( typeof xhr.responseText === "string" ) {
+										responses.text = xhr.responseText;
+									}
+
+									// Firefox throws an exception when accessing
+									// statusText for faulty cross-domain requests
+									try {
+										statusText = xhr.statusText;
+									} catch( e ) {
+										// We normalize with Webkit giving an empty statusText
+										statusText = "";
+									}
+
+									// Filter status for non standard behaviors
+
+									// If the request is local and we have data: assume a success
+									// (success with no data won't get notified, that's the best we
+									// can do given current implementations)
+									if ( !status && s.isLocal && !s.crossDomain ) {
+										status = responses.text ? 200 : 404;
+									// IE - #1450: sometimes returns 1223 when it should be 204
+									} else if ( status === 1223 ) {
+										status = 204;
+									}
+								}
+							}
+						} catch( firefoxAccessException ) {
+							if ( !isAbort ) {
+								complete( -1, firefoxAccessException );
+							}
+						}
+
+						// Call complete if needed
+						if ( responses ) {
+							complete( status, statusText, responses, responseHeaders );
+						}
+					};
+
+					if ( !s.async ) {
+						// if we're in sync mode we fire the callback
+						callback();
+					} else if ( xhr.readyState === 4 ) {
+						// (IE6 & IE7) if it's in cache and has been
+						// retrieved directly we need to fire the callback
+						setTimeout( callback );
+					} else {
+						handle = ++xhrId;
+						if ( xhrOnUnloadAbort ) {
+							// Create the active xhrs callbacks list if needed
+							// and attach the unload handler
+							if ( !xhrCallbacks ) {
+								xhrCallbacks = {};
+								jQuery( window ).unload( xhrOnUnloadAbort );
+							}
+							// Add to list of active xhrs callbacks
+							xhrCallbacks[ handle ] = callback;
+						}
+						xhr.onreadystatechange = callback;
+					}
+				},
+
+				abort: function() {
+					if ( callback ) {
+						callback( undefined, true );
+					}
+				}
+			};
+		}
+	});
+}
+var fxNow, timerId,
+	rfxtypes = /^(?:toggle|show|hide)$/,
+	rfxnum = new RegExp( "^(?:([+-])=|)(" + core_pnum + ")([a-z%]*)$", "i" ),
+	rrun = /queueHooks$/,
+	animationPrefilters = [ defaultPrefilter ],
+	tweeners = {
+		"*": [function( prop, value ) {
+			var tween = this.createTween( prop, value ),
+				target = tween.cur(),
+				parts = rfxnum.exec( value ),
+				unit = parts && parts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
+
+				// Starting value computation is required for potential unit mismatches
+				start = ( jQuery.cssNumber[ prop ] || unit !== "px" && +target ) &&
+					rfxnum.exec( jQuery.css( tween.elem, prop ) ),
+				scale = 1,
+				maxIterations = 20;
+
+			if ( start && start[ 3 ] !== unit ) {
+				// Trust units reported by jQuery.css
+				unit = unit || start[ 3 ];
+
+				// Make sure we update the tween properties later on
+				parts = parts || [];
+
+				// Iteratively approximate from a nonzero starting point
+				start = +target || 1;
+
+				do {
+					// If previous iteration zeroed out, double until we get *something*
+					// Use a string for doubling factor so we don't accidentally see scale as unchanged below
+					scale = scale || ".5";
+
+					// Adjust and apply
+					start = start / scale;
+					jQuery.style( tween.elem, prop, start + unit );
+
+				// Update scale, tolerating zero or NaN from tween.cur()
+				// And breaking the loop if scale is unchanged or perfect, or if we've just had enough
+				} while ( scale !== (scale = tween.cur() / target) && scale !== 1 && --maxIterations );
+			}
+
+			// Update tween properties
+			if ( parts ) {
+				start = tween.start = +start || +target || 0;
+				tween.unit = unit;
+				// If a +=/-= token was provided, we're doing a relative animation
+				tween.end = parts[ 1 ] ?
+					start + ( parts[ 1 ] + 1 ) * parts[ 2 ] :
+					+parts[ 2 ];
+			}
+
+			return tween;
+		}]
+	};
+
+// Animations created synchronously will run synchronously
+function createFxNow() {
+	setTimeout(function() {
+		fxNow = undefined;
+	});
+	return ( fxNow = jQuery.now() );
+}
+
+function createTween( value, prop, animation ) {
+	var tween,
+		collection = ( tweeners[ prop ] || [] ).concat( tweeners[ "*" ] ),
+		index = 0,
+		length = collection.length;
+	for ( ; index < length; index++ ) {
+		if ( (tween = collection[ index ].call( animation, prop, value )) ) {
+
+			// we're done with this property
+			return tween;
+		}
+	}
+}
+
+function Animation( elem, properties, options ) {
+	var result,
+		stopped,
+		index = 0,
+		length = animationPrefilters.length,
+		deferred = jQuery.Deferred().always( function() {
+			// don't match elem in the :animated selector
+			delete tick.elem;
+		}),
+		tick = function() {
+			if ( stopped ) {
+				return false;
+			}
+			var currentTime = fxNow || createFxNow(),
+				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
+				// archaic crash bug won't allow us to use 1 - ( 0.5 || 0 ) (#12497)
+				temp = remaining / animation.duration || 0,
+				percent = 1 - temp,
+				index = 0,
+				length = animation.tweens.length;
+
+			for ( ; index < length ; index++ ) {
+				animation.tweens[ index ].run( percent );
+			}
+
+			deferred.notifyWith( elem, [ animation, percent, remaining ]);
+
+			if ( percent < 1 && length ) {
+				return remaining;
+			} else {
+				deferred.resolveWith( elem, [ animation ] );
+				return false;
+			}
+		},
+		animation = deferred.promise({
+			elem: elem,
+			props: jQuery.extend( {}, properties ),
+			opts: jQuery.extend( true, { specialEasing: {} }, options ),
+			originalProperties: properties,
+			originalOptions: options,
+			startTime: fxNow || createFxNow(),
+			duration: options.duration,
+			tweens: [],
+			createTween: function( prop, end ) {
+				var tween = jQuery.Tween( elem, animation.opts, prop, end,
+						animation.opts.specialEasing[ prop ] || animation.opts.easing );
+				animation.tweens.push( tween );
+				return tween;
+			},
+			stop: function( gotoEnd ) {
+				var index = 0,
+					// if we are going to the end, we want to run all the tweens
+					// otherwise we skip this part
+					length = gotoEnd ? animation.tweens.length : 0;
+				if ( stopped ) {
+					return this;
+				}
+				stopped = true;
+				for ( ; index < length ; index++ ) {
+					animation.tweens[ index ].run( 1 );
+				}
+
+				// resolve when we played the last frame
+				// otherwise, reject
+				if ( gotoEnd ) {
+					deferred.resolveWith( elem, [ animation, gotoEnd ] );
+				} else {
+					deferred.rejectWith( elem, [ animation, gotoEnd ] );
+				}
+				return this;
+			}
+		}),
+		props = animation.props;
+
+	propFilter( props, animation.opts.specialEasing );
+
+	for ( ; index < length ; index++ ) {
+		result = animationPrefilters[ index ].call( animation, elem, props, animation.opts );
+		if ( result ) {
+			return result;
+		}
+	}
+
+	jQuery.map( props, createTween, animation );
+
+	if ( jQuery.isFunction( animation.opts.start ) ) {
+		animation.opts.start.call( elem, animation );
+	}
+
+	jQuery.fx.timer(
+		jQuery.extend( tick, {
+			elem: elem,
+			anim: animation,
+			queue: animation.opts.queue
+		})
+	);
+
+	// attach callbacks from options
+	return animation.progress( animation.opts.progress )
+		.done( animation.opts.done, animation.opts.complete )
+		.fail( animation.opts.fail )
+		.always( animation.opts.always );
+}
+
+function propFilter( props, specialEasing ) {
+	var index, name, easing, value, hooks;
+
+	// camelCase, specialEasing and expand cssHook pass
+	for ( index in props ) {
+		name = jQuery.camelCase( index );
+		easing = specialEasing[ name ];
+		value = props[ index ];
+		if ( jQuery.isArray( value ) ) {
+			easing = value[ 1 ];
+			value = props[ index ] = value[ 0 ];
+		}
+
+		if ( index !== name ) {
+			props[ name ] = value;
+			delete props[ index ];
+		}
+
+		hooks = jQuery.cssHooks[ name ];
+		if ( hooks && "expand" in hooks ) {
+			value = hooks.expand( value );
+			delete props[ name ];
+
+			// not quite $.extend, this wont overwrite keys already present.
+			// also - reusing 'index' from above because we have the correct "name"
+			for ( index in value ) {
+				if ( !( index in props ) ) {
+					props[ index ] = value[ index ];
+					specialEasing[ index ] = easing;
+				}
+			}
+		} else {
+			specialEasing[ name ] = easing;
+		}
+	}
+}
+
+jQuery.Animation = jQuery.extend( Animation, {
+
+	tweener: function( props, callback ) {
+		if ( jQuery.isFunction( props ) ) {
+			callback = props;
+			props = [ "*" ];
+		} else {
+			props = props.split(" ");
+		}
+
+		var prop,
+			index = 0,
+			length = props.length;
+
+		for ( ; index < length ; index++ ) {
+			prop = props[ index ];
+			tweeners[ prop ] = tweeners[ prop ] || [];
+			tweeners[ prop ].unshift( callback );
+		}
+	},
+
+	prefilter: function( callback, prepend ) {
+		if ( prepend ) {
+			animationPrefilters.unshift( callback );
+		} else {
+			animationPrefilters.push( callback );
+		}
+	}
+});
+
+function defaultPrefilter( elem, props, opts ) {
+	/* jshint validthis: true */
+	var prop, value, toggle, tween, hooks, oldfire,
+		anim = this,
+		orig = {},
+		style = elem.style,
+		hidden = elem.nodeType && isHidden( elem ),
+		dataShow = jQuery._data( elem, "fxshow" );
+
+	// handle queue: false promises
+	if ( !opts.queue ) {
+		hooks = jQuery._queueHooks( elem, "fx" );
+		if ( hooks.unqueued == null ) {
+			hooks.unqueued = 0;
+			oldfire = hooks.empty.fire;
+			hooks.empty.fire = function() {
+				if ( !hooks.unqueued ) {
+					oldfire();
+				}
+			};
+		}
+		hooks.unqueued++;
+
+		anim.always(function() {
+			// doing this makes sure that the complete handler will be called
+			// before this completes
+			anim.always(function() {
+				hooks.unqueued--;
+				if ( !jQuery.queue( elem, "fx" ).length ) {
+					hooks.empty.fire();
+				}
+			});
+		});
+	}
+
+	// height/width overflow pass
+	if ( elem.nodeType === 1 && ( "height" in props || "width" in props ) ) {
+		// Make sure that nothing sneaks out
+		// Record all 3 overflow attributes because IE does not
+		// change the overflow attribute when overflowX and
+		// overflowY are set to the same value
+		opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
+
+		// Set display property to inline-block for height/width
+		// animations on inline elements that are having width/height animated
+		if ( jQuery.css( elem, "display" ) === "inline" &&
+				jQuery.css( elem, "float" ) === "none" ) {
+
+			// inline-level elements accept inline-block;
+			// block-level elements need to be inline with layout
+			if ( !jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay( elem.nodeName ) === "inline" ) {
+				style.display = "inline-block";
+
+			} else {
+				style.zoom = 1;
+			}
+		}
+	}
+
+	if ( opts.overflow ) {
+		style.overflow = "hidden";
+		if ( !jQuery.support.shrinkWrapBlocks ) {
+			anim.always(function() {
+				style.overflow = opts.overflow[ 0 ];
+				style.overflowX = opts.overflow[ 1 ];
+				style.overflowY = opts.overflow[ 2 ];
+			});
+		}
+	}
+
+
+	// show/hide pass
+	for ( prop in props ) {
+		value = props[ prop ];
+		if ( rfxtypes.exec( value ) ) {
+			delete props[ prop ];
+			toggle = toggle || value === "toggle";
+			if ( value === ( hidden ? "hide" : "show" ) ) {
+				continue;
+			}
+			orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
+		}
+	}
+
+	if ( !jQuery.isEmptyObject( orig ) ) {
+		if ( dataShow ) {
+			if ( "hidden" in dataShow ) {
+				hidden = dataShow.hidden;
+			}
+		} else {
+			dataShow = jQuery._data( elem, "fxshow", {} );
+		}
+
+		// store state if its toggle - enables .stop().toggle() to "reverse"
+		if ( toggle ) {
+			dataShow.hidden = !hidden;
+		}
+		if ( hidden ) {
+			jQuery( elem ).show();
+		} else {
+			anim.done(function() {
+				jQuery( elem ).hide();
+			});
+		}
+		anim.done(function() {
+			var prop;
+			jQuery._removeData( elem, "fxshow" );
+			for ( prop in orig ) {
+				jQuery.style( elem, prop, orig[ prop ] );
+			}
+		});
+		for ( prop in orig ) {
+			tween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
+
+			if ( !( prop in dataShow ) ) {
+				dataShow[ prop ] = tween.start;
+				if ( hidden ) {
+					tween.end = tween.start;
+					tween.start = prop === "width" || prop === "height" ? 1 : 0;
+				}
+			}
+		}
+	}
+}
+
+function Tween( elem, options, prop, end, easing ) {
+	return new Tween.prototype.init( elem, options, prop, end, easing );
+}
+jQuery.Tween = Tween;
+
+Tween.prototype = {
+	constructor: Tween,
+	init: function( elem, options, prop, end, easing, unit ) {
+		this.elem = elem;
+		this.prop = prop;
+		this.easing = easing || "swing";
+		this.options = options;
+		this.start = this.now = this.cur();
+		this.end = end;
+		this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" );
+	},
+	cur: function() {
+		var hooks = Tween.propHooks[ this.prop ];
+
+		return hooks && hooks.get ?
+			hooks.get( this ) :
+			Tween.propHooks._default.get( this );
+	},
+	run: function( percent ) {
+		var eased,
+			hooks = Tween.propHooks[ this.prop ];
+
+		if ( this.options.duration ) {
+			this.pos = eased = jQuery.easing[ this.easing ](
+				percent, this.options.duration * percent, 0, 1, this.options.duration
+			);
+		} else {
+			this.pos = eased = percent;
+		}
+		this.now = ( this.end - this.start ) * eased + this.start;
+
+		if ( this.options.step ) {
+			this.options.step.call( this.elem, this.now, this );
+		}
+
+		if ( hooks && hooks.set ) {
+			hooks.set( this );
+		} else {
+			Tween.propHooks._default.set( this );
+		}
+		return this;
+	}
+};
+
+Tween.prototype.init.prototype = Tween.prototype;
+
+Tween.propHooks = {
+	_default: {
+		get: function( tween ) {
+			var result;
+
+			if ( tween.elem[ tween.prop ] != null &&
+				(!tween.elem.style || tween.elem.style[ tween.prop ] == null) ) {
+				return tween.elem[ tween.prop ];
+			}
+
+			// passing an empty string as a 3rd parameter to .css will automatically
+			// attempt a parseFloat and fallback to a string if the parse fails
+			// so, simple values such as "10px" are parsed to Float.
+			// complex values such as "rotate(1rad)" are returned as is.
+			result = jQuery.css( tween.elem, tween.prop, "" );
+			// Empty strings, null, undefined and "auto" are converted to 0.
+			return !result || result === "auto" ? 0 : result;
+		},
+		set: function( tween ) {
+			// use step hook for back compat - use cssHook if its there - use .style if its
+			// available and use plain properties where available
+			if ( jQuery.fx.step[ tween.prop ] ) {
+				jQuery.fx.step[ tween.prop ]( tween );
+			} else if ( tween.elem.style && ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || jQuery.cssHooks[ tween.prop ] ) ) {
+				jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
+			} else {
+				tween.elem[ tween.prop ] = tween.now;
+			}
+		}
+	}
+};
+
+// Support: IE <=9
+// Panic based approach to setting things on disconnected nodes
+
+Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {
+	set: function( tween ) {
+		if ( tween.elem.nodeType && tween.elem.parentNode ) {
+			tween.elem[ tween.prop ] = tween.now;
+		}
+	}
+};
+
+jQuery.each([ "toggle", "show", "hide" ], function( i, name ) {
+	var cssFn = jQuery.fn[ name ];
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return speed == null || typeof speed === "boolean" ?
+			cssFn.apply( this, arguments ) :
+			this.animate( genFx( name, true ), speed, easing, callback );
+	};
+});
+
+jQuery.fn.extend({
+	fadeTo: function( speed, to, easing, callback ) {
+
+		// show any hidden elements after setting opacity to 0
+		return this.filter( isHidden ).css( "opacity", 0 ).show()
+
+			// animate to the value specified
+			.end().animate({ opacity: to }, speed, easing, callback );
+	},
+	animate: function( prop, speed, easing, callback ) {
+		var empty = jQuery.isEmptyObject( prop ),
+			optall = jQuery.speed( speed, easing, callback ),
+			doAnimation = function() {
+				// Operate on a copy of prop so per-property easing won't be lost
+				var anim = Animation( this, jQuery.extend( {}, prop ), optall );
+
+				// Empty animations, or finishing resolves immediately
+				if ( empty || jQuery._data( this, "finish" ) ) {
+					anim.stop( true );
+				}
+			};
+			doAnimation.finish = doAnimation;
+
+		return empty || optall.queue === false ?
+			this.each( doAnimation ) :
+			this.queue( optall.queue, doAnimation );
+	},
+	stop: function( type, clearQueue, gotoEnd ) {
+		var stopQueue = function( hooks ) {
+			var stop = hooks.stop;
+			delete hooks.stop;
+			stop( gotoEnd );
+		};
+
+		if ( typeof type !== "string" ) {
+			gotoEnd = clearQueue;
+			clearQueue = type;
+			type = undefined;
+		}
+		if ( clearQueue && type !== false ) {
+			this.queue( type || "fx", [] );
+		}
+
+		return this.each(function() {
+			var dequeue = true,
+				index = type != null && type + "queueHooks",
+				timers = jQuery.timers,
+				data = jQuery._data( this );
+
+			if ( index ) {
+				if ( data[ index ] && data[ index ].stop ) {
+					stopQueue( data[ index ] );
+				}
+			} else {
+				for ( index in data ) {
+					if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
+						stopQueue( data[ index ] );
+					}
+				}
+			}
+
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && (type == null || timers[ index ].queue === type) ) {
+					timers[ index ].anim.stop( gotoEnd );
+					dequeue = false;
+					timers.splice( index, 1 );
+				}
+			}
+
+			// start the next in the queue if the last step wasn't forced
+			// timers currently will call their complete callbacks, which will dequeue
+			// but only if they were gotoEnd
+			if ( dequeue || !gotoEnd ) {
+				jQuery.dequeue( this, type );
+			}
+		});
+	},
+	finish: function( type ) {
+		if ( type !== false ) {
+			type = type || "fx";
+		}
+		return this.each(function() {
+			var index,
+				data = jQuery._data( this ),
+				queue = data[ type + "queue" ],
+				hooks = data[ type + "queueHooks" ],
+				timers = jQuery.timers,
+				length = queue ? queue.length : 0;
+
+			// enable finishing flag on private data
+			data.finish = true;
+
+			// empty the queue first
+			jQuery.queue( this, type, [] );
+
+			if ( hooks && hooks.stop ) {
+				hooks.stop.call( this, true );
+			}
+
+			// look for any active animations, and finish them
+			for ( index = timers.length; index--; ) {
+				if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
+					timers[ index ].anim.stop( true );
+					timers.splice( index, 1 );
+				}
+			}
+
+			// look for any animations in the old queue and finish them
+			for ( index = 0; index < length; index++ ) {
+				if ( queue[ index ] && queue[ index ].finish ) {
+					queue[ index ].finish.call( this );
+				}
+			}
+
+			// turn off finishing flag
+			delete data.finish;
+		});
+	}
+});
+
+// Generate parameters to create a standard animation
+function genFx( type, includeWidth ) {
+	var which,
+		attrs = { height: type },
+		i = 0;
+
+	// if we include width, step value is 1 to do all cssExpand values,
+	// if we don't include width, step value is 2 to skip over Left and Right
+	includeWidth = includeWidth? 1 : 0;
+	for( ; i < 4 ; i += 2 - includeWidth ) {
+		which = cssExpand[ i ];
+		attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
+	}
+
+	if ( includeWidth ) {
+		attrs.opacity = attrs.width = type;
+	}
+
+	return attrs;
+}
+
+// Generate shortcuts for custom animations
+jQuery.each({
+	slideDown: genFx("show"),
+	slideUp: genFx("hide"),
+	slideToggle: genFx("toggle"),
+	fadeIn: { opacity: "show" },
+	fadeOut: { opacity: "hide" },
+	fadeToggle: { opacity: "toggle" }
+}, function( name, props ) {
+	jQuery.fn[ name ] = function( speed, easing, callback ) {
+		return this.animate( props, speed, easing, callback );
+	};
+});
+
+jQuery.speed = function( speed, easing, fn ) {
+	var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
+		complete: fn || !fn && easing ||
+			jQuery.isFunction( speed ) && speed,
+		duration: speed,
+		easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
+	};
+
+	opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
+		opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[ opt.duration ] : jQuery.fx.speeds._default;
+
+	// normalize opt.queue - true/undefined/null -> "fx"
+	if ( opt.queue == null || opt.queue === true ) {
+		opt.queue = "fx";
+	}
+
+	// Queueing
+	opt.old = opt.complete;
+
+	opt.complete = function() {
+		if ( jQuery.isFunction( opt.old ) ) {
+			opt.old.call( this );
+		}
+
+		if ( opt.queue ) {
+			jQuery.dequeue( this, opt.queue );
+		}
+	};
+
+	return opt;
+};
+
+jQuery.easing = {
+	linear: function( p ) {
+		return p;
+	},
+	swing: function( p ) {
+		return 0.5 - Math.cos( p*Math.PI ) / 2;
+	}
+};
+
+jQuery.timers = [];
+jQuery.fx = Tween.prototype.init;
+jQuery.fx.tick = function() {
+	var timer,
+		timers = jQuery.timers,
+		i = 0;
+
+	fxNow = jQuery.now();
+
+	for ( ; i < timers.length; i++ ) {
+		timer = timers[ i ];
+		// Checks the timer has not already been removed
+		if ( !timer() && timers[ i ] === timer ) {
+			timers.splice( i--, 1 );
+		}
+	}
+
+	if ( !timers.length ) {
+		jQuery.fx.stop();
+	}
+	fxNow = undefined;
+};
+
+jQuery.fx.timer = function( timer ) {
+	if ( timer() && jQuery.timers.push( timer ) ) {
+		jQuery.fx.start();
+	}
+};
+
+jQuery.fx.interval = 13;
+
+jQuery.fx.start = function() {
+	if ( !timerId ) {
+		timerId = setInterval( jQuery.fx.tick, jQuery.fx.interval );
+	}
+};
+
+jQuery.fx.stop = function() {
+	clearInterval( timerId );
+	timerId = null;
+};
+
+jQuery.fx.speeds = {
+	slow: 600,
+	fast: 200,
+	// Default speed
+	_default: 400
+};
+
+// Back Compat <1.8 extension point
+jQuery.fx.step = {};
+
+if ( jQuery.expr && jQuery.expr.filters ) {
+	jQuery.expr.filters.animated = function( elem ) {
+		return jQuery.grep(jQuery.timers, function( fn ) {
+			return elem === fn.elem;
+		}).length;
+	};
+}
+jQuery.fn.offset = function( options ) {
+	if ( arguments.length ) {
+		return options === undefined ?
+			this :
+			this.each(function( i ) {
+				jQuery.offset.setOffset( this, options, i );
+			});
+	}
+
+	var docElem, win,
+		box = { top: 0, left: 0 },
+		elem = this[ 0 ],
+		doc = elem && elem.ownerDocument;
+
+	if ( !doc ) {
+		return;
+	}
+
+	docElem = doc.documentElement;
+
+	// Make sure it's not a disconnected DOM node
+	if ( !jQuery.contains( docElem, elem ) ) {
+		return box;
+	}
+
+	// If we don't have gBCR, just use 0,0 rather than error
+	// BlackBerry 5, iOS 3 (original iPhone)
+	if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
+		box = elem.getBoundingClientRect();
+	}
+	win = getWindow( doc );
+	return {
+		top: box.top  + ( win.pageYOffset || docElem.scrollTop )  - ( docElem.clientTop  || 0 ),
+		left: box.left + ( win.pageXOffset || docElem.scrollLeft ) - ( docElem.clientLeft || 0 )
+	};
+};
+
+jQuery.offset = {
+
+	setOffset: function( elem, options, i ) {
+		var position = jQuery.css( elem, "position" );
+
+		// set position first, in-case top/left are set even on static elem
+		if ( position === "static" ) {
+			elem.style.position = "relative";
+		}
+
+		var curElem = jQuery( elem ),
+			curOffset = curElem.offset(),
+			curCSSTop = jQuery.css( elem, "top" ),
+			curCSSLeft = jQuery.css( elem, "left" ),
+			calculatePosition = ( position === "absolute" || position === "fixed" ) && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
+			props = {}, curPosition = {}, curTop, curLeft;
+
+		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
+		if ( calculatePosition ) {
+			curPosition = curElem.position();
+			curTop = curPosition.top;
+			curLeft = curPosition.left;
+		} else {
+			curTop = parseFloat( curCSSTop ) || 0;
+			curLeft = parseFloat( curCSSLeft ) || 0;
+		}
+
+		if ( jQuery.isFunction( options ) ) {
+			options = options.call( elem, i, curOffset );
+		}
+
+		if ( options.top != null ) {
+			props.top = ( options.top - curOffset.top ) + curTop;
+		}
+		if ( options.left != null ) {
+			props.left = ( options.left - curOffset.left ) + curLeft;
+		}
+
+		if ( "using" in options ) {
+			options.using.call( elem, props );
+		} else {
+			curElem.css( props );
+		}
+	}
+};
+
+
+jQuery.fn.extend({
+
+	position: function() {
+		if ( !this[ 0 ] ) {
+			return;
+		}
+
+		var offsetParent, offset,
+			parentOffset = { top: 0, left: 0 },
+			elem = this[ 0 ];
+
+		// fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is it's only offset parent
+		if ( jQuery.css( elem, "position" ) === "fixed" ) {
+			// we assume that getBoundingClientRect is available when computed position is fixed
+			offset = elem.getBoundingClientRect();
+		} else {
+			// Get *real* offsetParent
+			offsetParent = this.offsetParent();
+
+			// Get correct offsets
+			offset = this.offset();
+			if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
+				parentOffset = offsetParent.offset();
+			}
+
+			// Add offsetParent borders
+			parentOffset.top  += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
+			parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
+		}
+
+		// Subtract parent offsets and element margins
+		// note: when an element has margin: auto the offsetLeft and marginLeft
+		// are the same in Safari causing offset.left to incorrectly be 0
+		return {
+			top:  offset.top  - parentOffset.top - jQuery.css( elem, "marginTop", true ),
+			left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true)
+		};
+	},
+
+	offsetParent: function() {
+		return this.map(function() {
+			var offsetParent = this.offsetParent || docElem;
+			while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position") === "static" ) ) {
+				offsetParent = offsetParent.offsetParent;
+			}
+			return offsetParent || docElem;
+		});
+	}
+});
+
+
+// Create scrollLeft and scrollTop methods
+jQuery.each( {scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( method, prop ) {
+	var top = /Y/.test( prop );
+
+	jQuery.fn[ method ] = function( val ) {
+		return jQuery.access( this, function( elem, method, val ) {
+			var win = getWindow( elem );
+
+			if ( val === undefined ) {
+				return win ? (prop in win) ? win[ prop ] :
+					win.document.documentElement[ method ] :
+					elem[ method ];
+			}
+
+			if ( win ) {
+				win.scrollTo(
+					!top ? val : jQuery( win ).scrollLeft(),
+					top ? val : jQuery( win ).scrollTop()
+				);
+
+			} else {
+				elem[ method ] = val;
+			}
+		}, method, val, arguments.length, null );
+	};
+});
+
+function getWindow( elem ) {
+	return jQuery.isWindow( elem ) ?
+		elem :
+		elem.nodeType === 9 ?
+			elem.defaultView || elem.parentWindow :
+			false;
+}
+// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods
+jQuery.each( { Height: "height", Width: "width" }, function( name, type ) {
+	jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, function( defaultExtra, funcName ) {
+		// margin is only for outerHeight, outerWidth
+		jQuery.fn[ funcName ] = function( margin, value ) {
+			var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ),
+				extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" );
+
+			return jQuery.access( this, function( elem, type, value ) {
+				var doc;
+
+				if ( jQuery.isWindow( elem ) ) {
+					// As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there
+					// isn't a whole lot we can do. See pull request at this URL for discussion:
+					// https://github.com/jquery/jquery/pull/764
+					return elem.document.documentElement[ "client" + name ];
+				}
+
+				// Get document width or height
+				if ( elem.nodeType === 9 ) {
+					doc = elem.documentElement;
+
+					// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest
+					// unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it.
+					return Math.max(
+						elem.body[ "scroll" + name ], doc[ "scroll" + name ],
+						elem.body[ "offset" + name ], doc[ "offset" + name ],
+						doc[ "client" + name ]
+					);
+				}
+
+				return value === undefined ?
+					// Get width or height on the element, requesting but not forcing parseFloat
+					jQuery.css( elem, type, extra ) :
+
+					// Set width or height on the element
+					jQuery.style( elem, type, value, extra );
+			}, type, chainable ? margin : undefined, chainable, null );
+		};
+	});
+});
+// Limit scope pollution from any deprecated API
+// (function() {
+
+// The number of elements contained in the matched element set
+jQuery.fn.size = function() {
+	return this.length;
+};
+
+jQuery.fn.andSelf = jQuery.fn.addBack;
+
+// })();
+if ( typeof module === "object" && module && typeof module.exports === "object" ) {
+	// Expose jQuery as module.exports in loaders that implement the Node
+	// module pattern (including browserify). Do not create the global, since
+	// the user will be storing it themselves locally, and globals are frowned
+	// upon in the Node module world.
+	module.exports = jQuery;
+} else {
+	// Otherwise expose jQuery to the global object as usual
+	window.jQuery = window.$ = jQuery;
+
+	// Register as a named AMD module, since jQuery can be concatenated with other
+	// files that may use define, but not via a proper concatenation script that
+	// understands anonymous AMD modules. A named AMD is safest and most robust
+	// way to register. Lowercase jquery is used because AMD module names are
+	// derived from file names, and jQuery is normally delivered in a lowercase
+	// file name. Do this after creating the global so that if an AMD module wants
+	// to call noConflict to hide this version of jQuery, it will work.
+	if ( typeof define === "function" && define.amd ) {
+		define( "jquery", [], function () { return jQuery; } );
+	}
+}
+
+})( window );
diff --git a/pagure/static/vendor/jquery/jquery-1.10.2.min.js b/pagure/static/vendor/jquery/jquery-1.10.2.min.js
new file mode 100755
index 0000000..29b3a2c
--- /dev/null
+++ b/pagure/static/vendor/jquery/jquery-1.10.2.min.js
@@ -0,0 +1,6 @@
+/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery.min.map
+*/
+(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
+}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
+u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.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 contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
diff --git a/pagure/static/vendor/jquery/jquery.js b/pagure/static/vendor/jquery/jquery.js
new file mode 120000
index 0000000..99ed19d
--- /dev/null
+++ b/pagure/static/vendor/jquery/jquery.js
@@ -0,0 +1 @@
+jquery-1.10.2.js
\ No newline at end of file
diff --git a/pagure/static/vendor/jquery/jquery.min.js b/pagure/static/vendor/jquery/jquery.min.js
new file mode 120000
index 0000000..64ef93e
--- /dev/null
+++ b/pagure/static/vendor/jquery/jquery.min.js
@@ -0,0 +1 @@
+jquery-1.10.2.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/open-iconic/css/open-iconic-1.1.1.css b/pagure/static/vendor/open-iconic/css/open-iconic-1.1.1.css
new file mode 100644
index 0000000..301a138
--- /dev/null
+++ b/pagure/static/vendor/open-iconic/css/open-iconic-1.1.1.css
@@ -0,0 +1,511 @@
+
+@font-face {
+  font-family: 'Icons';
+  src: url('../fonts/open-iconic.eot');
+  src: url('../fonts/open-iconic.eot?#iconic-sm') format('embedded-opentype'), url('../fonts/open-iconic.woff') format('woff'), url('../fonts/open-iconic.ttf') format('truetype'), url('../fonts/open-iconic.otf') format('opentype'), url('../fonts/open-iconic.svg#iconic-sm') format('svg');
+  font-weight: normal;
+  font-style: normal;
+}
+
+.oi[data-glyph].oi-text-replace {
+  font-size: 0;
+  line-height: 0;
+}
+
+.oi[data-glyph].oi-text-replace:before {
+  width: 1em;
+  text-align: center;
+}
+
+.oi[data-glyph]:before {
+  font-family: 'Icons';
+  display: inline-block;
+  speak: none;
+  line-height: 1;
+  vertical-align: baseline;
+  font-weight: normal;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.oi[data-glyph]:empty:before {
+  width: 1em;
+  text-align: center;
+  box-sizing: content-box;
+}
+
+.oi[data-glyph].oi-align-left:before {
+  text-align: left;
+}
+
+.oi[data-glyph].oi-align-right:before {
+  text-align: right;
+}
+
+.oi[data-glyph].oi-align-center:before {
+  text-align: center;
+}
+
+.oi[data-glyph].oi-flip-horizontal:before {
+  -webkit-transform: scale(-1, 1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, 1);
+}
+.oi[data-glyph].oi-flip-vertical:before {
+  -webkit-transform: scale(1, -1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(1, -1);
+}
+.oi[data-glyph].oi-flip-horizontal-vertical:before {
+  -webkit-transform: scale(-1, -1);
+  -ms-transform: scale(-1, 1);
+  transform: scale(-1, -1);
+}
+
+
+.oi[data-glyph=account-login]:before { content:'\e000'; }
+
+.oi[data-glyph=account-logout]:before { content:'\e001'; }
+
+.oi[data-glyph=action-redo]:before { content:'\e002'; }
+
+.oi[data-glyph=action-undo]:before { content:'\e003'; }
+
+.oi[data-glyph=align-center]:before { content:'\e004'; }
+
+.oi[data-glyph=align-left]:before { content:'\e005'; }
+
+.oi[data-glyph=align-right]:before { content:'\e006'; }
+
+.oi[data-glyph=aperture]:before { content:'\e007'; }
+
+.oi[data-glyph=arrow-bottom]:before { content:'\e008'; }
+
+.oi[data-glyph=arrow-circle-bottom]:before { content:'\e009'; }
+
+.oi[data-glyph=arrow-circle-left]:before { content:'\e00a'; }
+
+.oi[data-glyph=arrow-circle-right]:before { content:'\e00b'; }
+
+.oi[data-glyph=arrow-circle-top]:before { content:'\e00c'; }
+
+.oi[data-glyph=arrow-left]:before { content:'\e00d'; }
+
+.oi[data-glyph=arrow-right]:before { content:'\e00e'; }
+
+.oi[data-glyph=arrow-thick-bottom]:before { content:'\e00f'; }
+
+.oi[data-glyph=arrow-thick-left]:before { content:'\e010'; }
+
+.oi[data-glyph=arrow-thick-right]:before { content:'\e011'; }
+
+.oi[data-glyph=arrow-thick-top]:before { content:'\e012'; }
+
+.oi[data-glyph=arrow-top]:before { content:'\e013'; }
+
+.oi[data-glyph=audio-spectrum]:before { content:'\e014'; }
+
+.oi[data-glyph=audio]:before { content:'\e015'; }
+
+.oi[data-glyph=badge]:before { content:'\e016'; }
+
+.oi[data-glyph=ban]:before { content:'\e017'; }
+
+.oi[data-glyph=bar-chart]:before { content:'\e018'; }
+
+.oi[data-glyph=basket]:before { content:'\e019'; }
+
+.oi[data-glyph=battery-empty]:before { content:'\e01a'; }
+
+.oi[data-glyph=battery-full]:before { content:'\e01b'; }
+
+.oi[data-glyph=beaker]:before { content:'\e01c'; }
+
+.oi[data-glyph=bell]:before { content:'\e01d'; }
+
+.oi[data-glyph=bluetooth]:before { content:'\e01e'; }
+
+.oi[data-glyph=bold]:before { content:'\e01f'; }
+
+.oi[data-glyph=bolt]:before { content:'\e020'; }
+
+.oi[data-glyph=book]:before { content:'\e021'; }
+
+.oi[data-glyph=bookmark]:before { content:'\e022'; }
+
+.oi[data-glyph=box]:before { content:'\e023'; }
+
+.oi[data-glyph=briefcase]:before { content:'\e024'; }
+
+.oi[data-glyph=british-pound]:before { content:'\e025'; }
+
+.oi[data-glyph=browser]:before { content:'\e026'; }
+
+.oi[data-glyph=brush]:before { content:'\e027'; }
+
+.oi[data-glyph=bug]:before { content:'\e028'; }
+
+.oi[data-glyph=bullhorn]:before { content:'\e029'; }
+
+.oi[data-glyph=calculator]:before { content:'\e02a'; }
+
+.oi[data-glyph=calendar]:before { content:'\e02b'; }
+
+.oi[data-glyph=camera-slr]:before { content:'\e02c'; }
+
+.oi[data-glyph=caret-bottom]:before { content:'\e02d'; }
+
+.oi[data-glyph=caret-left]:before { content:'\e02e'; }
+
+.oi[data-glyph=caret-right]:before { content:'\e02f'; }
+
+.oi[data-glyph=caret-top]:before { content:'\e030'; }
+
+.oi[data-glyph=cart]:before { content:'\e031'; }
+
+.oi[data-glyph=chat]:before { content:'\e032'; }
+
+.oi[data-glyph=check]:before { content:'\e033'; }
+
+.oi[data-glyph=chevron-bottom]:before { content:'\e034'; }
+
+.oi[data-glyph=chevron-left]:before { content:'\e035'; }
+
+.oi[data-glyph=chevron-right]:before { content:'\e036'; }
+
+.oi[data-glyph=chevron-top]:before { content:'\e037'; }
+
+.oi[data-glyph=circle-check]:before { content:'\e038'; }
+
+.oi[data-glyph=circle-x]:before { content:'\e039'; }
+
+.oi[data-glyph=clipboard]:before { content:'\e03a'; }
+
+.oi[data-glyph=clock]:before { content:'\e03b'; }
+
+.oi[data-glyph=cloud-download]:before { content:'\e03c'; }
+
+.oi[data-glyph=cloud-upload]:before { content:'\e03d'; }
+
+.oi[data-glyph=cloud]:before { content:'\e03e'; }
+
+.oi[data-glyph=cloudy]:before { content:'\e03f'; }
+
+.oi[data-glyph=code]:before { content:'\e040'; }
+
+.oi[data-glyph=cog]:before { content:'\e041'; }
+
+.oi[data-glyph=collapse-down]:before { content:'\e042'; }
+
+.oi[data-glyph=collapse-left]:before { content:'\e043'; }
+
+.oi[data-glyph=collapse-right]:before { content:'\e044'; }
+
+.oi[data-glyph=collapse-up]:before { content:'\e045'; }
+
+.oi[data-glyph=command]:before { content:'\e046'; }
+
+.oi[data-glyph=comment-square]:before { content:'\e047'; }
+
+.oi[data-glyph=compass]:before { content:'\e048'; }
+
+.oi[data-glyph=contrast]:before { content:'\e049'; }
+
+.oi[data-glyph=copywriting]:before { content:'\e04a'; }
+
+.oi[data-glyph=credit-card]:before { content:'\e04b'; }
+
+.oi[data-glyph=crop]:before { content:'\e04c'; }
+
+.oi[data-glyph=dashboard]:before { content:'\e04d'; }
+
+.oi[data-glyph=data-transfer-download]:before { content:'\e04e'; }
+
+.oi[data-glyph=data-transfer-upload]:before { content:'\e04f'; }
+
+.oi[data-glyph=delete]:before { content:'\e050'; }
+
+.oi[data-glyph=dial]:before { content:'\e051'; }
+
+.oi[data-glyph=document]:before { content:'\e052'; }
+
+.oi[data-glyph=dollar]:before { content:'\e053'; }
+
+.oi[data-glyph=double-quote-sans-left]:before { content:'\e054'; }
+
+.oi[data-glyph=double-quote-sans-right]:before { content:'\e055'; }
+
+.oi[data-glyph=double-quote-serif-left]:before { content:'\e056'; }
+
+.oi[data-glyph=double-quote-serif-right]:before { content:'\e057'; }
+
+.oi[data-glyph=droplet]:before { content:'\e058'; }
+
+.oi[data-glyph=eject]:before { content:'\e059'; }
+
+.oi[data-glyph=elevator]:before { content:'\e05a'; }
+
+.oi[data-glyph=ellipses]:before { content:'\e05b'; }
+
+.oi[data-glyph=envelope-closed]:before { content:'\e05c'; }
+
+.oi[data-glyph=envelope-open]:before { content:'\e05d'; }
+
+.oi[data-glyph=euro]:before { content:'\e05e'; }
+
+.oi[data-glyph=excerpt]:before { content:'\e05f'; }
+
+.oi[data-glyph=expand-down]:before { content:'\e060'; }
+
+.oi[data-glyph=expand-left]:before { content:'\e061'; }
+
+.oi[data-glyph=expand-right]:before { content:'\e062'; }
+
+.oi[data-glyph=expand-up]:before { content:'\e063'; }
+
+.oi[data-glyph=external-link]:before { content:'\e064'; }
+
+.oi[data-glyph=eye]:before { content:'\e065'; }
+
+.oi[data-glyph=eyedropper]:before { content:'\e066'; }
+
+.oi[data-glyph=file]:before { content:'\e067'; }
+
+.oi[data-glyph=fire]:before { content:'\e068'; }
+
+.oi[data-glyph=flag]:before { content:'\e069'; }
+
+.oi[data-glyph=flash]:before { content:'\e06a'; }
+
+.oi[data-glyph=folder]:before { content:'\e06b'; }
+
+.oi[data-glyph=fork]:before { content:'\e06c'; }
+
+.oi[data-glyph=fullscreen-enter]:before { content:'\e06d'; }
+
+.oi[data-glyph=fullscreen-exit]:before { content:'\e06e'; }
+
+.oi[data-glyph=globe]:before { content:'\e06f'; }
+
+.oi[data-glyph=graph]:before { content:'\e070'; }
+
+.oi[data-glyph=grid-four-up]:before { content:'\e071'; }
+
+.oi[data-glyph=grid-three-up]:before { content:'\e072'; }
+
+.oi[data-glyph=grid-two-up]:before { content:'\e073'; }
+
+.oi[data-glyph=hard-drive]:before { content:'\e074'; }
+
+.oi[data-glyph=header]:before { content:'\e075'; }
+
+.oi[data-glyph=headphones]:before { content:'\e076'; }
+
+.oi[data-glyph=heart]:before { content:'\e077'; }
+
+.oi[data-glyph=home]:before { content:'\e078'; }
+
+.oi[data-glyph=image]:before { content:'\e079'; }
+
+.oi[data-glyph=inbox]:before { content:'\e07a'; }
+
+.oi[data-glyph=infinity]:before { content:'\e07b'; }
+
+.oi[data-glyph=info]:before { content:'\e07c'; }
+
+.oi[data-glyph=italic]:before { content:'\e07d'; }
+
+.oi[data-glyph=justify-center]:before { content:'\e07e'; }
+
+.oi[data-glyph=justify-left]:before { content:'\e07f'; }
+
+.oi[data-glyph=justify-right]:before { content:'\e080'; }
+
+.oi[data-glyph=key]:before { content:'\e081'; }
+
+.oi[data-glyph=laptop]:before { content:'\e082'; }
+
+.oi[data-glyph=layers]:before { content:'\e083'; }
+
+.oi[data-glyph=lightbulb]:before { content:'\e084'; }
+
+.oi[data-glyph=link-broken]:before { content:'\e085'; }
+
+.oi[data-glyph=link-intact]:before { content:'\e086'; }
+
+.oi[data-glyph=list-rich]:before { content:'\e087'; }
+
+.oi[data-glyph=list]:before { content:'\e088'; }
+
+.oi[data-glyph=location]:before { content:'\e089'; }
+
+.oi[data-glyph=lock-locked]:before { content:'\e08a'; }
+
+.oi[data-glyph=lock-unlocked]:before { content:'\e08b'; }
+
+.oi[data-glyph=loop-circular]:before { content:'\e08c'; }
+
+.oi[data-glyph=loop-square]:before { content:'\e08d'; }
+
+.oi[data-glyph=loop]:before { content:'\e08e'; }
+
+.oi[data-glyph=magnifying-glass]:before { content:'\e08f'; }
+
+.oi[data-glyph=map-marker]:before { content:'\e090'; }
+
+.oi[data-glyph=map]:before { content:'\e091'; }
+
+.oi[data-glyph=media-pause]:before { content:'\e092'; }
+
+.oi[data-glyph=media-play]:before { content:'\e093'; }
+
+.oi[data-glyph=media-record]:before { content:'\e094'; }
+
+.oi[data-glyph=media-skip-backward]:before { content:'\e095'; }
+
+.oi[data-glyph=media-skip-forward]:before { content:'\e096'; }
+
+.oi[data-glyph=media-step-backward]:before { content:'\e097'; }
+
+.oi[data-glyph=media-step-forward]:before { content:'\e098'; }
+
+.oi[data-glyph=media-stop]:before { content:'\e099'; }
+
+.oi[data-glyph=medical-cross]:before { content:'\e09a'; }
+
+.oi[data-glyph=menu]:before { content:'\e09b'; }
+
+.oi[data-glyph=microphone]:before { content:'\e09c'; }
+
+.oi[data-glyph=minus]:before { content:'\e09d'; }
+
+.oi[data-glyph=monitor]:before { content:'\e09e'; }
+
+.oi[data-glyph=moon]:before { content:'\e09f'; }
+
+.oi[data-glyph=move]:before { content:'\e0a0'; }
+
+.oi[data-glyph=musical-note]:before { content:'\e0a1'; }
+
+.oi[data-glyph=paperclip]:before { content:'\e0a2'; }
+
+.oi[data-glyph=pencil]:before { content:'\e0a3'; }
+
+.oi[data-glyph=people]:before { content:'\e0a4'; }
+
+.oi[data-glyph=person]:before { content:'\e0a5'; }
+
+.oi[data-glyph=phone]:before { content:'\e0a6'; }
+
+.oi[data-glyph=pie-chart]:before { content:'\e0a7'; }
+
+.oi[data-glyph=pin]:before { content:'\e0a8'; }
+
+.oi[data-glyph=play-circle]:before { content:'\e0a9'; }
+
+.oi[data-glyph=plus]:before { content:'\e0aa'; }
+
+.oi[data-glyph=power-standby]:before { content:'\e0ab'; }
+
+.oi[data-glyph=print]:before { content:'\e0ac'; }
+
+.oi[data-glyph=project]:before { content:'\e0ad'; }
+
+.oi[data-glyph=pulse]:before { content:'\e0ae'; }
+
+.oi[data-glyph=puzzle-piece]:before { content:'\e0af'; }
+
+.oi[data-glyph=question-mark]:before { content:'\e0b0'; }
+
+.oi[data-glyph=rain]:before { content:'\e0b1'; }
+
+.oi[data-glyph=random]:before { content:'\e0b2'; }
+
+.oi[data-glyph=reload]:before { content:'\e0b3'; }
+
+.oi[data-glyph=resize-both]:before { content:'\e0b4'; }
+
+.oi[data-glyph=resize-height]:before { content:'\e0b5'; }
+
+.oi[data-glyph=resize-width]:before { content:'\e0b6'; }
+
+.oi[data-glyph=rss-alt]:before { content:'\e0b7'; }
+
+.oi[data-glyph=rss]:before { content:'\e0b8'; }
+
+.oi[data-glyph=script]:before { content:'\e0b9'; }
+
+.oi[data-glyph=share-boxed]:before { content:'\e0ba'; }
+
+.oi[data-glyph=share]:before { content:'\e0bb'; }
+
+.oi[data-glyph=shield]:before { content:'\e0bc'; }
+
+.oi[data-glyph=signal]:before { content:'\e0bd'; }
+
+.oi[data-glyph=signpost]:before { content:'\e0be'; }
+
+.oi[data-glyph=sort-ascending]:before { content:'\e0bf'; }
+
+.oi[data-glyph=sort-descending]:before { content:'\e0c0'; }
+
+.oi[data-glyph=spreadsheet]:before { content:'\e0c1'; }
+
+.oi[data-glyph=star]:before { content:'\e0c2'; }
+
+.oi[data-glyph=sun]:before { content:'\e0c3'; }
+
+.oi[data-glyph=tablet]:before { content:'\e0c4'; }
+
+.oi[data-glyph=tag]:before { content:'\e0c5'; }
+
+.oi[data-glyph=tags]:before { content:'\e0c6'; }
+
+.oi[data-glyph=target]:before { content:'\e0c7'; }
+
+.oi[data-glyph=task]:before { content:'\e0c8'; }
+
+.oi[data-glyph=terminal]:before { content:'\e0c9'; }
+
+.oi[data-glyph=text]:before { content:'\e0ca'; }
+
+.oi[data-glyph=thumb-down]:before { content:'\e0cb'; }
+
+.oi[data-glyph=thumb-up]:before { content:'\e0cc'; }
+
+.oi[data-glyph=timer]:before { content:'\e0cd'; }
+
+.oi[data-glyph=transfer]:before { content:'\e0ce'; }
+
+.oi[data-glyph=trash]:before { content:'\e0cf'; }
+
+.oi[data-glyph=underline]:before { content:'\e0d0'; }
+
+.oi[data-glyph=vertical-align-bottom]:before { content:'\e0d1'; }
+
+.oi[data-glyph=vertical-align-center]:before { content:'\e0d2'; }
+
+.oi[data-glyph=vertical-align-top]:before { content:'\e0d3'; }
+
+.oi[data-glyph=video]:before { content:'\e0d4'; }
+
+.oi[data-glyph=volume-high]:before { content:'\e0d5'; }
+
+.oi[data-glyph=volume-low]:before { content:'\e0d6'; }
+
+.oi[data-glyph=volume-off]:before { content:'\e0d7'; }
+
+.oi[data-glyph=warning]:before { content:'\e0d8'; }
+
+.oi[data-glyph=wifi]:before { content:'\e0d9'; }
+
+.oi[data-glyph=wrench]:before { content:'\e0da'; }
+
+.oi[data-glyph=x]:before { content:'\e0db'; }
+
+.oi[data-glyph=yen]:before { content:'\e0dc'; }
+
+.oi[data-glyph=zoom-in]:before { content:'\e0dd'; }
+
+.oi[data-glyph=zoom-out]:before { content:'\e0de'; }
diff --git a/pagure/static/vendor/open-iconic/css/open-iconic-1.1.1.min.css b/pagure/static/vendor/open-iconic/css/open-iconic-1.1.1.min.css
new file mode 100644
index 0000000..1f6afb8
--- /dev/null
+++ b/pagure/static/vendor/open-iconic/css/open-iconic-1.1.1.min.css
@@ -0,0 +1 @@
+@font-face{font-family:Icons;src:url(../fonts/open-iconic.eot);src:url(../fonts/open-iconic.eot?#iconic-sm) format('embedded-opentype'),url(../fonts/open-iconic.woff) format('woff'),url(../fonts/open-iconic.ttf) format('truetype'),url(../fonts/open-iconic.otf) format('opentype'),url(../fonts/open-iconic.svg#iconic-sm) format('svg');font-weight:400;font-style:normal}.oi[data-glyph].oi-text-replace{font-size:0;line-height:0}.oi[data-glyph].oi-text-replace:before{width:1em;text-align:center}.oi[data-glyph]:before{font-family:Icons;display:inline-block;speak:none;line-height:1;vertical-align:baseline;font-weight:400;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.oi[data-glyph]:empty:before{width:1em;text-align:center;box-sizing:content-box}.oi[data-glyph].oi-align-left:before{text-align:left}.oi[data-glyph].oi-align-right:before{text-align:right}.oi[data-glyph].oi-align-center:before{text-align:center}.oi[data-glyph].oi-flip-horizontal:before{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.oi[data-glyph].oi-flip-vertical:before{-webkit-transform:scale(1,-1);-ms-transform:scale(-1,1);transform:scale(1,-1)}.oi[data-glyph].oi-flip-horizontal-vertical:before{-webkit-transform:scale(-1,-1);-ms-transform:scale(-1,1);transform:scale(-1,-1)}.oi[data-glyph=account-login]:before{content:'\e000'}.oi[data-glyph=account-logout]:before{content:'\e001'}.oi[data-glyph=action-redo]:before{content:'\e002'}.oi[data-glyph=action-undo]:before{content:'\e003'}.oi[data-glyph=align-center]:before{content:'\e004'}.oi[data-glyph=align-left]:before{content:'\e005'}.oi[data-glyph=align-right]:before{content:'\e006'}.oi[data-glyph=aperture]:before{content:'\e007'}.oi[data-glyph=arrow-bottom]:before{content:'\e008'}.oi[data-glyph=arrow-circle-bottom]:before{content:'\e009'}.oi[data-glyph=arrow-circle-left]:before{content:'\e00a'}.oi[data-glyph=arrow-circle-right]:before{content:'\e00b'}.oi[data-glyph=arrow-circle-top]:before{content:'\e00c'}.oi[data-glyph=arrow-left]:before{content:'\e00d'}.oi[data-glyph=arrow-right]:before{content:'\e00e'}.oi[data-glyph=arrow-thick-bottom]:before{content:'\e00f'}.oi[data-glyph=arrow-thick-left]:before{content:'\e010'}.oi[data-glyph=arrow-thick-right]:before{content:'\e011'}.oi[data-glyph=arrow-thick-top]:before{content:'\e012'}.oi[data-glyph=arrow-top]:before{content:'\e013'}.oi[data-glyph=audio-spectrum]:before{content:'\e014'}.oi[data-glyph=audio]:before{content:'\e015'}.oi[data-glyph=badge]:before{content:'\e016'}.oi[data-glyph=ban]:before{content:'\e017'}.oi[data-glyph=bar-chart]:before{content:'\e018'}.oi[data-glyph=basket]:before{content:'\e019'}.oi[data-glyph=battery-empty]:before{content:'\e01a'}.oi[data-glyph=battery-full]:before{content:'\e01b'}.oi[data-glyph=beaker]:before{content:'\e01c'}.oi[data-glyph=bell]:before{content:'\e01d'}.oi[data-glyph=bluetooth]:before{content:'\e01e'}.oi[data-glyph=bold]:before{content:'\e01f'}.oi[data-glyph=bolt]:before{content:'\e020'}.oi[data-glyph=book]:before{content:'\e021'}.oi[data-glyph=bookmark]:before{content:'\e022'}.oi[data-glyph=box]:before{content:'\e023'}.oi[data-glyph=briefcase]:before{content:'\e024'}.oi[data-glyph=british-pound]:before{content:'\e025'}.oi[data-glyph=browser]:before{content:'\e026'}.oi[data-glyph=brush]:before{content:'\e027'}.oi[data-glyph=bug]:before{content:'\e028'}.oi[data-glyph=bullhorn]:before{content:'\e029'}.oi[data-glyph=calculator]:before{content:'\e02a'}.oi[data-glyph=calendar]:before{content:'\e02b'}.oi[data-glyph=camera-slr]:before{content:'\e02c'}.oi[data-glyph=caret-bottom]:before{content:'\e02d'}.oi[data-glyph=caret-left]:before{content:'\e02e'}.oi[data-glyph=caret-right]:before{content:'\e02f'}.oi[data-glyph=caret-top]:before{content:'\e030'}.oi[data-glyph=cart]:before{content:'\e031'}.oi[data-glyph=chat]:before{content:'\e032'}.oi[data-glyph=check]:before{content:'\e033'}.oi[data-glyph=chevron-bottom]:before{content:'\e034'}.oi[data-glyph=chevron-left]:before{content:'\e035'}.oi[data-glyph=chevron-right]:before{content:'\e036'}.oi[data-glyph=chevron-top]:before{content:'\e037'}.oi[data-glyph=circle-check]:before{content:'\e038'}.oi[data-glyph=circle-x]:before{content:'\e039'}.oi[data-glyph=clipboard]:before{content:'\e03a'}.oi[data-glyph=clock]:before{content:'\e03b'}.oi[data-glyph=cloud-download]:before{content:'\e03c'}.oi[data-glyph=cloud-upload]:before{content:'\e03d'}.oi[data-glyph=cloud]:before{content:'\e03e'}.oi[data-glyph=cloudy]:before{content:'\e03f'}.oi[data-glyph=code]:before{content:'\e040'}.oi[data-glyph=cog]:before{content:'\e041'}.oi[data-glyph=collapse-down]:before{content:'\e042'}.oi[data-glyph=collapse-left]:before{content:'\e043'}.oi[data-glyph=collapse-right]:before{content:'\e044'}.oi[data-glyph=collapse-up]:before{content:'\e045'}.oi[data-glyph=command]:before{content:'\e046'}.oi[data-glyph=comment-square]:before{content:'\e047'}.oi[data-glyph=compass]:before{content:'\e048'}.oi[data-glyph=contrast]:before{content:'\e049'}.oi[data-glyph=copywriting]:before{content:'\e04a'}.oi[data-glyph=credit-card]:before{content:'\e04b'}.oi[data-glyph=crop]:before{content:'\e04c'}.oi[data-glyph=dashboard]:before{content:'\e04d'}.oi[data-glyph=data-transfer-download]:before{content:'\e04e'}.oi[data-glyph=data-transfer-upload]:before{content:'\e04f'}.oi[data-glyph=delete]:before{content:'\e050'}.oi[data-glyph=dial]:before{content:'\e051'}.oi[data-glyph=document]:before{content:'\e052'}.oi[data-glyph=dollar]:before{content:'\e053'}.oi[data-glyph=double-quote-sans-left]:before{content:'\e054'}.oi[data-glyph=double-quote-sans-right]:before{content:'\e055'}.oi[data-glyph=double-quote-serif-left]:before{content:'\e056'}.oi[data-glyph=double-quote-serif-right]:before{content:'\e057'}.oi[data-glyph=droplet]:before{content:'\e058'}.oi[data-glyph=eject]:before{content:'\e059'}.oi[data-glyph=elevator]:before{content:'\e05a'}.oi[data-glyph=ellipses]:before{content:'\e05b'}.oi[data-glyph=envelope-closed]:before{content:'\e05c'}.oi[data-glyph=envelope-open]:before{content:'\e05d'}.oi[data-glyph=euro]:before{content:'\e05e'}.oi[data-glyph=excerpt]:before{content:'\e05f'}.oi[data-glyph=expand-down]:before{content:'\e060'}.oi[data-glyph=expand-left]:before{content:'\e061'}.oi[data-glyph=expand-right]:before{content:'\e062'}.oi[data-glyph=expand-up]:before{content:'\e063'}.oi[data-glyph=external-link]:before{content:'\e064'}.oi[data-glyph=eye]:before{content:'\e065'}.oi[data-glyph=eyedropper]:before{content:'\e066'}.oi[data-glyph=file]:before{content:'\e067'}.oi[data-glyph=fire]:before{content:'\e068'}.oi[data-glyph=flag]:before{content:'\e069'}.oi[data-glyph=flash]:before{content:'\e06a'}.oi[data-glyph=folder]:before{content:'\e06b'}.oi[data-glyph=fork]:before{content:'\e06c'}.oi[data-glyph=fullscreen-enter]:before{content:'\e06d'}.oi[data-glyph=fullscreen-exit]:before{content:'\e06e'}.oi[data-glyph=globe]:before{content:'\e06f'}.oi[data-glyph=graph]:before{content:'\e070'}.oi[data-glyph=grid-four-up]:before{content:'\e071'}.oi[data-glyph=grid-three-up]:before{content:'\e072'}.oi[data-glyph=grid-two-up]:before{content:'\e073'}.oi[data-glyph=hard-drive]:before{content:'\e074'}.oi[data-glyph=header]:before{content:'\e075'}.oi[data-glyph=headphones]:before{content:'\e076'}.oi[data-glyph=heart]:before{content:'\e077'}.oi[data-glyph=home]:before{content:'\e078'}.oi[data-glyph=image]:before{content:'\e079'}.oi[data-glyph=inbox]:before{content:'\e07a'}.oi[data-glyph=infinity]:before{content:'\e07b'}.oi[data-glyph=info]:before{content:'\e07c'}.oi[data-glyph=italic]:before{content:'\e07d'}.oi[data-glyph=justify-center]:before{content:'\e07e'}.oi[data-glyph=justify-left]:before{content:'\e07f'}.oi[data-glyph=justify-right]:before{content:'\e080'}.oi[data-glyph=key]:before{content:'\e081'}.oi[data-glyph=laptop]:before{content:'\e082'}.oi[data-glyph=layers]:before{content:'\e083'}.oi[data-glyph=lightbulb]:before{content:'\e084'}.oi[data-glyph=link-broken]:before{content:'\e085'}.oi[data-glyph=link-intact]:before{content:'\e086'}.oi[data-glyph=list-rich]:before{content:'\e087'}.oi[data-glyph=list]:before{content:'\e088'}.oi[data-glyph=location]:before{content:'\e089'}.oi[data-glyph=lock-locked]:before{content:'\e08a'}.oi[data-glyph=lock-unlocked]:before{content:'\e08b'}.oi[data-glyph=loop-circular]:before{content:'\e08c'}.oi[data-glyph=loop-square]:before{content:'\e08d'}.oi[data-glyph=loop]:before{content:'\e08e'}.oi[data-glyph=magnifying-glass]:before{content:'\e08f'}.oi[data-glyph=map-marker]:before{content:'\e090'}.oi[data-glyph=map]:before{content:'\e091'}.oi[data-glyph=media-pause]:before{content:'\e092'}.oi[data-glyph=media-play]:before{content:'\e093'}.oi[data-glyph=media-record]:before{content:'\e094'}.oi[data-glyph=media-skip-backward]:before{content:'\e095'}.oi[data-glyph=media-skip-forward]:before{content:'\e096'}.oi[data-glyph=media-step-backward]:before{content:'\e097'}.oi[data-glyph=media-step-forward]:before{content:'\e098'}.oi[data-glyph=media-stop]:before{content:'\e099'}.oi[data-glyph=medical-cross]:before{content:'\e09a'}.oi[data-glyph=menu]:before{content:'\e09b'}.oi[data-glyph=microphone]:before{content:'\e09c'}.oi[data-glyph=minus]:before{content:'\e09d'}.oi[data-glyph=monitor]:before{content:'\e09e'}.oi[data-glyph=moon]:before{content:'\e09f'}.oi[data-glyph=move]:before{content:'\e0a0'}.oi[data-glyph=musical-note]:before{content:'\e0a1'}.oi[data-glyph=paperclip]:before{content:'\e0a2'}.oi[data-glyph=pencil]:before{content:'\e0a3'}.oi[data-glyph=people]:before{content:'\e0a4'}.oi[data-glyph=person]:before{content:'\e0a5'}.oi[data-glyph=phone]:before{content:'\e0a6'}.oi[data-glyph=pie-chart]:before{content:'\e0a7'}.oi[data-glyph=pin]:before{content:'\e0a8'}.oi[data-glyph=play-circle]:before{content:'\e0a9'}.oi[data-glyph=plus]:before{content:'\e0aa'}.oi[data-glyph=power-standby]:before{content:'\e0ab'}.oi[data-glyph=print]:before{content:'\e0ac'}.oi[data-glyph=project]:before{content:'\e0ad'}.oi[data-glyph=pulse]:before{content:'\e0ae'}.oi[data-glyph=puzzle-piece]:before{content:'\e0af'}.oi[data-glyph=question-mark]:before{content:'\e0b0'}.oi[data-glyph=rain]:before{content:'\e0b1'}.oi[data-glyph=random]:before{content:'\e0b2'}.oi[data-glyph=reload]:before{content:'\e0b3'}.oi[data-glyph=resize-both]:before{content:'\e0b4'}.oi[data-glyph=resize-height]:before{content:'\e0b5'}.oi[data-glyph=resize-width]:before{content:'\e0b6'}.oi[data-glyph=rss-alt]:before{content:'\e0b7'}.oi[data-glyph=rss]:before{content:'\e0b8'}.oi[data-glyph=script]:before{content:'\e0b9'}.oi[data-glyph=share-boxed]:before{content:'\e0ba'}.oi[data-glyph=share]:before{content:'\e0bb'}.oi[data-glyph=shield]:before{content:'\e0bc'}.oi[data-glyph=signal]:before{content:'\e0bd'}.oi[data-glyph=signpost]:before{content:'\e0be'}.oi[data-glyph=sort-ascending]:before{content:'\e0bf'}.oi[data-glyph=sort-descending]:before{content:'\e0c0'}.oi[data-glyph=spreadsheet]:before{content:'\e0c1'}.oi[data-glyph=star]:before{content:'\e0c2'}.oi[data-glyph=sun]:before{content:'\e0c3'}.oi[data-glyph=tablet]:before{content:'\e0c4'}.oi[data-glyph=tag]:before{content:'\e0c5'}.oi[data-glyph=tags]:before{content:'\e0c6'}.oi[data-glyph=target]:before{content:'\e0c7'}.oi[data-glyph=task]:before{content:'\e0c8'}.oi[data-glyph=terminal]:before{content:'\e0c9'}.oi[data-glyph=text]:before{content:'\e0ca'}.oi[data-glyph=thumb-down]:before{content:'\e0cb'}.oi[data-glyph=thumb-up]:before{content:'\e0cc'}.oi[data-glyph=timer]:before{content:'\e0cd'}.oi[data-glyph=transfer]:before{content:'\e0ce'}.oi[data-glyph=trash]:before{content:'\e0cf'}.oi[data-glyph=underline]:before{content:'\e0d0'}.oi[data-glyph=vertical-align-bottom]:before{content:'\e0d1'}.oi[data-glyph=vertical-align-center]:before{content:'\e0d2'}.oi[data-glyph=vertical-align-top]:before{content:'\e0d3'}.oi[data-glyph=video]:before{content:'\e0d4'}.oi[data-glyph=volume-high]:before{content:'\e0d5'}.oi[data-glyph=volume-low]:before{content:'\e0d6'}.oi[data-glyph=volume-off]:before{content:'\e0d7'}.oi[data-glyph=warning]:before{content:'\e0d8'}.oi[data-glyph=wifi]:before{content:'\e0d9'}.oi[data-glyph=wrench]:before{content:'\e0da'}.oi[data-glyph=x]:before{content:'\e0db'}.oi[data-glyph=yen]:before{content:'\e0dc'}.oi[data-glyph=zoom-in]:before{content:'\e0dd'}.oi[data-glyph=zoom-out]:before{content:'\e0de'}
\ No newline at end of file
diff --git a/pagure/static/vendor/open-iconic/css/open-iconic.css b/pagure/static/vendor/open-iconic/css/open-iconic.css
new file mode 120000
index 0000000..547a306
--- /dev/null
+++ b/pagure/static/vendor/open-iconic/css/open-iconic.css
@@ -0,0 +1 @@
+open-iconic-1.1.1.css
\ No newline at end of file
diff --git a/pagure/static/vendor/open-iconic/css/open-iconic.min.css b/pagure/static/vendor/open-iconic/css/open-iconic.min.css
new file mode 120000
index 0000000..7382a37
--- /dev/null
+++ b/pagure/static/vendor/open-iconic/css/open-iconic.min.css
@@ -0,0 +1 @@
+open-iconic-1.1.1.min.css
\ No newline at end of file
diff --git a/pagure/static/vendor/open-iconic/fonts/open-iconic.eot b/pagure/static/vendor/open-iconic/fonts/open-iconic.eot
new file mode 100644
index 0000000..f98177d
Binary files /dev/null and b/pagure/static/vendor/open-iconic/fonts/open-iconic.eot differ
diff --git a/pagure/static/vendor/open-iconic/fonts/open-iconic.otf b/pagure/static/vendor/open-iconic/fonts/open-iconic.otf
new file mode 100644
index 0000000..f6bd684
Binary files /dev/null and b/pagure/static/vendor/open-iconic/fonts/open-iconic.otf differ
diff --git a/pagure/static/vendor/open-iconic/fonts/open-iconic.svg b/pagure/static/vendor/open-iconic/fonts/open-iconic.svg
new file mode 100644
index 0000000..559edd9
--- /dev/null
+++ b/pagure/static/vendor/open-iconic/fonts/open-iconic.svg
@@ -0,0 +1,543 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2014-7-1: Created.
+-->
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+Created by FontForge 20120731 at Tue Jul  1 20:39:22 2014
+ By P.J. Onori
+Created by P.J. Onori with FontForge 2.0 (http://fontforge.sf.net)
+</metadata>
+<defs>
+<font id="open-iconic" horiz-adv-x="800" >
+  <font-face
+    font-family="Icons"
+    font-weight="400"
+    font-stretch="normal"
+    units-per-em="800"
+    panose-1="2 0 5 3 0 0 0 0 0 0"
+    ascent="800"
+    descent="0"
+    bbox="-0.5 -101 802 800.126"
+    underline-thickness="50"
+    underline-position="-100"
+    unicode-range="U+E000-E0DE"
+  />
+    <missing-glyph />
+    <glyph glyph-name="" unicode="&#xe000;"
+d="M300 700h500v-700h-500v100h400v500h-400v100zM400 500l200 -150l-200 -150v100h-400v100h400v100z" />
+    <glyph glyph-name="1" unicode="&#xe001;"
+d="M300 700h500v-700h-500v100h400v500h-400v100zM200 500v-100h400v-100h-400v-100l-200 150z" />
+    <glyph glyph-name="2" unicode="&#xe002;"
+d="M350 700c193 0 350 -157 350 -350v-50h100l-200 -200l-200 200h100v50c0 138 -112 250 -250 250s-250 -112 -250 -250c0 193 157 350 350 350z" />
+    <glyph glyph-name="3" unicode="&#xe003;"
+d="M450 700c193 0 350 -157 350 -350c0 138 -112 250 -250 250s-250 -112 -250 -250v-50h100l-200 -200l-200 200h100v50c0 193 157 350 350 350z" />
+    <glyph glyph-name="4" unicode="&#xe004;"
+d="M0 700h800v-100h-800v100zM100 500h600v-100h-600v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
+    <glyph glyph-name="5" unicode="&#xe005;"
+d="M0 700h800v-100h-800v100zM0 500h600v-100h-600v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
+    <glyph glyph-name="6" unicode="&#xe006;"
+d="M0 700h800v-100h-800v100zM200 500h600v-100h-600v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
+    <glyph glyph-name="7" unicode="&#xe007;"
+d="M400 700c75 0 146 -23 206 -59l-75 -225l-322 234c57 31 122 50 191 50zM125 588l191 -138l-310 -222c-4 24 -6 47 -6 72c0 114 49 215 125 288zM688 575c69 -72 112 -168 112 -275c0 -35 -8 -68 -16 -100h-218zM216 253l112 -347c-128 23 -232 109 -287 222zM372 100
+h372c-64 -109 -177 -185 -310 -197z" />
+    <glyph glyph-name="8" unicode="&#xe008;" horiz-adv-x="600"
+d="M200 800h100v-500h200l-247 -300l-253 300h200v500z" />
+    <glyph glyph-name="9" unicode="&#xe009;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 700v-300h-200l300 -300l300 300h-200v300h-200z" />
+    <glyph glyph-name="a" unicode="&#xe00a;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300l300 -300v200h300v200h-300v200z" />
+    <glyph glyph-name="b" unicode="&#xe00b;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700v-200h-300v-200h300v-200l300 300z" />
+    <glyph glyph-name="c" unicode="&#xe00c;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700l-300 -300h200v-300h200v300h200z" />
+    <glyph glyph-name="d" unicode="&#xe00d;"
+d="M300 600v-200h500v-100h-500v-200l-300 247z" />
+    <glyph glyph-name="e" unicode="&#xe00e;"
+d="M500 600l300 -247l-300 -253v200h-500v100h500v200z" />
+    <glyph glyph-name="f" unicode="&#xe00f;" horiz-adv-x="600"
+d="M200 800h200v-500h200l-297 -300l-303 300h200v500z" />
+    <glyph glyph-name="10" unicode="&#xe010;"
+d="M300 700v-200h500v-200h-500v-200l-300 297z" />
+    <glyph glyph-name="11" unicode="&#xe011;"
+d="M500 700l300 -297l-300 -303v200h-500v200h500v200z" />
+    <glyph glyph-name="12" unicode="&#xe012;" horiz-adv-x="600"
+d="M297 800l303 -300h-200v-500h-200v500h-200z" />
+    <glyph glyph-name="13" unicode="&#xe013;" horiz-adv-x="600"
+d="M247 800l253 -300h-200v-500h-100v500h-200z" />
+    <glyph glyph-name="14" unicode="&#xe014;"
+d="M400 800h100v-800h-100v800zM200 700h100v-600h-100v600zM600 600h100v-400h-100v400zM0 500h100v-200h-100v200z" />
+    <glyph glyph-name="15" unicode="&#xe015;"
+d="M116 600l72 -72c-54 -54 -88 -126 -88 -209s34 -159 88 -213l-72 -72c-72 72 -116 175 -116 285s44 209 116 281zM684 600c72 -72 116 -171 116 -281s-44 -213 -116 -285l-72 72c54 54 88 130 88 213s-34 155 -88 209zM259 460l69 -72c-18 -18 -28 -41 -28 -69
+s10 -54 28 -72l-69 -72c-36 36 -59 89 -59 144s23 105 59 141zM541 459c36 -36 59 -85 59 -140s-23 -108 -59 -144l-69 72c18 18 28 44 28 72s-10 51 -28 69z" />
+    <glyph glyph-name="16" unicode="&#xe016;" horiz-adv-x="400"
+d="M200 800c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM100 319c31 -11 65 -19 100 -19s68 8 100 19v-319l-100 100l-100 -100v319z" />
+    <glyph glyph-name="17" unicode="&#xe017;"
+d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300c0 -66 21 -126 56 -175l419 419c-49 35 -109 56 -175 56zM644 575l-419 -419c49 -35 109 -56 175 -56c166 0 300 134 300 300
+c0 66 -21 126 -56 175z" />
+    <glyph glyph-name="18" unicode="&#xe018;"
+d="M0 700h100v-600h700v-100h-800v700zM500 700h200v-500h-200v500zM200 500h200v-300h-200v300z" />
+    <glyph glyph-name="19" unicode="&#xe019;"
+d="M397 800c13 1 23 -4 34 -13c2 -2 214 -254 241 -287h128v-100h-100v-366c0 -18 -16 -34 -34 -34h-532c-18 0 -34 16 -34 34v366h-100v100h128l234 281c9 11 22 18 35 19zM400 672l-144 -172h288zM250 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50
+v100c0 28 -22 50 -50 50zM550 300c-28 0 -50 -22 -50 -50v-100c0 -28 22 -50 50 -50s50 22 50 50v100c0 28 -22 50 -50 50z" />
+    <glyph glyph-name="1a" unicode="&#xe01a;"
+d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9zM100 600v-400h500v400h-500z" />
+    <glyph glyph-name="1b" unicode="&#xe01b;"
+d="M9 700h682c6 0 9 -4 9 -10v-190h100v-200h-100v-191c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v582c0 6 3 9 9 9z" />
+    <glyph glyph-name="1c" unicode="&#xe01c;"
+d="M92 650c0 23 19 50 45 50h3h5h5h500c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-141c9 -17 120 -231 166 -309c16 -26 34 -61 34 -106c0 -39 -15 -77 -41 -103h-3c-26 -25 -62 -41 -100 -41h-512c-39 0 -77 15 -103 41s-41 64 -41 103c0 46 18 80 34 106
+c46 78 157 292 166 309v141h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51zM500 600h-200v-162l-6 -10s-63 -123 -119 -228h450c-56 105 -119 228 -119 228l-6 10v162z" />
+    <glyph glyph-name="1d" unicode="&#xe01d;"
+d="M400 800c110 0 200 -90 200 -200c0 -104 52 -198 134 -266c41 -34 66 -82 66 -134h-800c0 52 25 100 66 134c82 68 134 162 134 266c0 110 90 200 200 200zM300 100h200c0 -55 -45 -100 -100 -100s-100 45 -100 100z" />
+    <glyph glyph-name="1e" unicode="&#xe01e;" horiz-adv-x="600"
+d="M150 800h50l350 -250l-225 -147l225 -153l-350 -250h-50v250l-75 -75l-75 75l150 150l-150 150l75 75l75 -75v250zM250 650v-200l150 100zM250 350v-200l150 100z" />
+    <glyph glyph-name="1f" unicode="&#xe01f;"
+d="M0 800h500c110 0 200 -90 200 -200c0 -47 -17 -91 -44 -125c85 -40 144 -125 144 -225c0 -138 -112 -250 -250 -250h-550v100c55 0 100 45 100 100v400c0 55 -45 100 -100 100v100zM300 700v-200h100c55 0 100 45 100 100s-45 100 -100 100h-100zM300 400v-300h150
+c83 0 150 67 150 150s-67 150 -150 150h-150z" />
+    <glyph glyph-name="20" unicode="&#xe020;" horiz-adv-x="600"
+d="M300 800v-300h200l-300 -500v300h-200z" />
+    <glyph glyph-name="21" unicode="&#xe021;"
+d="M100 800h300v-300l100 100l100 -100v300h50c28 0 50 -22 50 -50v-550h-550c-28 0 -50 -22 -50 -50s22 -50 50 -50h550v-100h-550c-83 0 -150 67 -150 150v550l3 19c8 39 39 70 78 78z" />
+    <glyph glyph-name="22" unicode="&#xe022;" horiz-adv-x="400"
+d="M0 800h400v-800l-200 200l-200 -200v800z" />
+    <glyph glyph-name="23" unicode="&#xe023;"
+d="M0 800h800v-100h-800v100zM0 600h300v-103h203v103h297v-591c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v591z" />
+    <glyph glyph-name="24" unicode="&#xe024;"
+d="M300 800h200c55 0 100 -45 100 -100v-100h191c6 0 9 -3 9 -9v-241c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v241c0 6 3 9 9 9h191v100c0 55 45 100 100 100zM300 700v-100h200v100h-200zM0 209c16 -6 32 -9 50 -9h700c18 0 34 3 50 9v-200c0 -6 -3 -9 -9 -9h-782
+c-6 0 -9 3 -9 9v200z" />
+    <glyph glyph-name="25" unicode="&#xe025;" horiz-adv-x="600"
+d="M300 800c58 0 110 -16 147 -53s53 -89 53 -147h-100c0 39 -11 61 -25 75s-36 25 -75 25c-35 0 -55 -10 -72 -31s-28 -55 -28 -94c0 -51 20 -107 28 -175h172v-100h-178c-14 -60 -49 -127 -113 -200h491v-100h-600v122l16 12c69 69 95 121 106 166h-122v100h125
+c-8 50 -25 106 -25 175c0 58 16 114 50 156c34 43 88 69 150 69z" />
+    <glyph glyph-name="26" unicode="&#xe026;"
+d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-700c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v700v2c0 20 15 42 34 48zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50zM350 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h300c28 0 50 22 50 50
+s-22 50 -50 50h-300zM100 400v-400h600v400h-600z" />
+    <glyph glyph-name="27" unicode="&#xe027;"
+d="M744 797l6 -3l44 -44c4 -4 3 -8 0 -12l-266 -375l-15 -13l-25 -12c-23 72 -78 127 -150 150l12 25l13 15l375 266zM266 400c74 0 134 -60 134 -134c0 -147 -119 -266 -266 -266c-48 0 -95 12 -134 34c80 46 134 133 134 232c0 74 58 134 132 134z" />
+    <glyph glyph-name="28" unicode="&#xe028;"
+d="M9 451c0 23 19 50 46 50c8 0 19 -3 26 -7l131 -66l29 22c-79 81 -1 250 118 250s197 -167 119 -250l28 -22l131 66c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-115 -56c9 -16 19 -33 25 -50h68c28 0 50 -22 50 -50s-22 -50 -50 -50h-50
+c0 -23 -2 -45 -6 -66l78 -40c21 -5 37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11l-65 35c-24 -46 -62 -86 -103 -110c-35 19 -60 45 -60 72v135v4v5v6v5v5v87c0 28 -22 50 -50 50c-24 0 -45 -17 -50 -40c1 -3 1 -8 1 -11s0 -8 -1 -11v-82v-4v-5v-144
+c0 -28 -24 -53 -59 -72c-41 25 -79 64 -103 110l-66 -35c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49l78 40c-4 21 -6 43 -6 66h-50h-5c-28 0 -50 22 -50 50c0 26 22 50 50 50h5h69c6 17 16 34 25 50l-116 56c-16 7 -28 27 -28 45z" />
+    <glyph glyph-name="29" unicode="&#xe029;"
+d="M600 700h91c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-91v600zM210 503l290 147v-500l-250 125v-3c-15 0 -25 -8 -28 -22l75 -178c11 -25 0 -58 -25 -69s-58 0 -69 25l-103 272h-91c-6 0 -9 3 -9 9v182c0 6 3 9 9 9h182z" />
+    <glyph glyph-name="2a" unicode="&#xe02a;"
+d="M9 800h682c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM100 700v-200h500v200h-500zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-300h100v300h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
+    <glyph glyph-name="2b" unicode="&#xe02b;"
+d="M0 800h700v-200h-700v200zM0 500h700v-491c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v491zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100z" />
+    <glyph glyph-name="2c" unicode="&#xe02c;"
+d="M409 800h182c6 0 10 -4 12 -9l94 -182c2 -5 6 -9 12 -9h82c6 0 9 -3 9 -9v-582c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v441c0 83 67 150 150 150h141c6 0 10 4 12 9l94 182c2 5 6 9 12 9zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z
+M500 500c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM500 400c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
+    <glyph glyph-name="2d" unicode="&#xe02d;"
+d="M0 600h800l-400 -400z" />
+    <glyph glyph-name="2e" unicode="&#xe02e;" horiz-adv-x="400"
+d="M400 800v-800l-400 400z" />
+    <glyph glyph-name="2f" unicode="&#xe02f;" horiz-adv-x="400"
+d="M0 800l400 -400l-400 -400v800z" />
+    <glyph glyph-name="30" unicode="&#xe030;"
+d="M400 600l400 -400h-800z" />
+    <glyph glyph-name="31" unicode="&#xe031;"
+d="M0 550c0 23 20 50 46 50h3h5h4h200c17 0 37 -13 44 -28l38 -72h444c14 0 19 -12 15 -25l-81 -250c-4 -13 -21 -25 -35 -25h-350c-14 0 -30 12 -34 25c-27 83 -54 167 -81 250l-10 25h-150c-2 0 -5 -1 -7 -1c-28 0 -51 23 -51 51zM358 100c28 0 50 -22 50 -50
+s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM658 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
+    <glyph glyph-name="32" unicode="&#xe032;"
+d="M0 700h500v-100h-300v-300h-100l-100 -100v500zM300 500h500v-500l-100 100h-400v400z" />
+    <glyph glyph-name="33" unicode="&#xe033;"
+d="M641 700l143 -141l-493 -493c-71 76 -146 148 -219 222l-72 71l141 141c50 -51 101 -101 153 -150c116 117 234 231 347 350z" />
+    <glyph glyph-name="34" unicode="&#xe034;"
+d="M150 600l250 -250l250 250l150 -150l-400 -400l-400 400z" />
+    <glyph glyph-name="35" unicode="&#xe035;" horiz-adv-x="600"
+d="M400 800l150 -150l-250 -250l250 -250l-150 -150l-400 400z" />
+    <glyph glyph-name="36" unicode="&#xe036;" horiz-adv-x="600"
+d="M150 800l400 -400l-400 -400l-150 150l250 250l-250 250z" />
+    <glyph glyph-name="37" unicode="&#xe037;"
+d="M400 600l400 -400l-150 -150l-250 250l-250 -250l-150 150z" />
+    <glyph glyph-name="38" unicode="&#xe038;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM600 622l-250 -250l-100 100l-72 -72l172 -172l322 322z" />
+    <glyph glyph-name="39" unicode="&#xe039;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM250 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
+    <glyph glyph-name="3a" unicode="&#xe03a;"
+d="M350 800c28 0 50 -22 50 -50v-50h75c14 0 25 -11 25 -25v-75h-300v75c0 14 11 25 25 25h75v50c0 28 22 50 50 50zM25 700h75v-200h500v200h75c14 0 25 -11 25 -25v-650c0 -14 -11 -25 -25 -25h-650c-14 0 -25 11 -25 25v650c0 14 11 25 25 25z" />
+    <glyph glyph-name="3b" unicode="&#xe03b;"
+d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM350 600h100v-181c23 -24 47 -47 72 -69l-72 -72c-27 30 -55 59 -84 88l-16 12
+v222z" />
+    <glyph glyph-name="3c" unicode="&#xe03c;"
+d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-191v50c0 83 -67 150 -150 150s-150 -67 -150 -150v-50h-272c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM434 400h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1
+v-150h150l-200 -200l-200 200h150v150v2c0 20 15 42 34 48z" />
+    <glyph glyph-name="3d" unicode="&#xe03d;"
+d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -18 -3 -34 -9 -50h-141l-200 200l-200 -200h-222c-17 30 -28 63 -28 100c0 110 90 200 200 200c23 114 129 200 250 200zM450 350l250 -250h-200v-50c0 -28 -22 -50 -50 -50s-50 22 -50 50v50h-200z" />
+    <glyph glyph-name="3e" unicode="&#xe03e;"
+d="M450 700c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200s90 200 200 200c23 114 129 200 250 200z" />
+    <glyph glyph-name="3f" unicode="&#xe03f;"
+d="M250 800c82 0 154 -40 200 -100c-143 0 -270 -85 -325 -209c-36 -10 -70 -25 -100 -47c-16 33 -25 67 -25 106c0 138 112 250 250 250zM450 600c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -83 -67 -150 -150 -150h-450c-110 0 -200 90 -200 200
+s90 200 200 200c23 114 129 200 250 200z" />
+    <glyph glyph-name="40" unicode="&#xe040;"
+d="M500 700h100l-300 -600h-100zM100 600h100l-100 -200l100 -200h-100l-100 200zM600 600h100l100 -200l-100 -200h-100l100 200z" />
+    <glyph glyph-name="41" unicode="&#xe041;"
+d="M350 800h100l50 -119l28 -12l119 50l72 -72l-50 -119l12 -28l119 -50v-100l-119 -50l-12 -28l50 -119l-72 -72l-119 50l-28 -12l-50 -119h-100l-50 119l-28 12l-119 -50l-72 72l50 119l-12 28l-119 50v100l119 50l12 28l-50 119l72 72l119 -50l28 12zM400 550
+c-83 0 -150 -67 -150 -150s67 -150 150 -150s150 67 150 150s-67 150 -150 150z" />
+    <glyph glyph-name="42" unicode="&#xe042;"
+d="M0 800h800v-200h-800v200zM200 500h400l-200 -200zM0 100h800v-100h-800v100z" />
+    <glyph glyph-name="43" unicode="&#xe043;"
+d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM500 600v-400l-200 200z" />
+    <glyph glyph-name="44" unicode="&#xe044;"
+d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM300 600l200 -200l-200 -200v400z" />
+    <glyph glyph-name="45" unicode="&#xe045;"
+d="M0 800h800v-100h-800v100zM400 500l200 -200h-400zM0 200h800v-200h-800v200z" />
+    <glyph glyph-name="46" unicode="&#xe046;"
+d="M150 700c83 0 150 -67 150 -150v-50h100v50c0 83 67 150 150 150s150 -67 150 -150s-67 -150 -150 -150h-50v-100h50c83 0 150 -67 150 -150s-67 -150 -150 -150s-150 67 -150 150v50h-100v-50c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150h50v100h-50
+c-83 0 -150 67 -150 150s67 150 150 150zM150 600c-28 0 -50 -22 -50 -50s22 -50 50 -50h50v50c0 28 -22 50 -50 50zM550 600c-28 0 -50 -22 -50 -50v-50h50c28 0 50 22 50 50s-22 50 -50 50zM300 400v-100h100v100h-100zM150 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
+s50 22 50 50v50h-50zM500 200v-50c0 -28 22 -50 50 -50s50 22 50 50s-22 50 -50 50h-50z" />
+    <glyph glyph-name="47" unicode="&#xe047;"
+d="M0 791c0 5 4 9 9 9h782c6 0 9 -4 9 -10v-790l-200 200h-591c-6 0 -9 3 -9 9v582z" />
+    <glyph glyph-name="48" unicode="&#xe048;"
+d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM600 600l-100 -300l-300 -100l100 300zM400 450c-28 0 -50 -22 -50 -50
+s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
+    <glyph glyph-name="49" unicode="&#xe049;"
+d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700v-600c166 0 300 134 300 300s-134 300 -300 300z" />
+    <glyph glyph-name="4a" unicode="&#xe04a;"
+d="M0 800h800v-100h-800v100zM0 600h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100zM750 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
+    <glyph glyph-name="4b" unicode="&#xe04b;"
+d="M25 700h750c14 0 25 -11 25 -25v-75h-800v75c0 14 11 25 25 25zM0 500h800v-375c0 -14 -11 -25 -25 -25h-750c-14 0 -25 11 -25 25v375zM100 300v-100h100v100h-100zM300 300v-100h100v100h-100z" />
+    <glyph glyph-name="4c" unicode="&#xe04c;"
+d="M100 800h100v-100h450l100 100l50 -50l-100 -100v-450h100v-100h-100v-100h-100v100h-500v500h-100v100h100v100zM200 600v-350l350 350h-350zM600 550l-350 -350h350v350z" />
+    <glyph glyph-name="4d" unicode="&#xe04d;"
+d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z
+M200 452c0 20 15 42 34 48h3h3h8c12 0 28 -7 36 -16l91 -90l25 6c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100l6 25l-90 91c-9 8 -16 24 -16 36zM550 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
+    <glyph glyph-name="4e" unicode="&#xe04e;"
+d="M300 800h200v-300h200l-300 -300l-300 300h200v300zM0 100h800v-100h-800v100z" />
+    <glyph glyph-name="4f" unicode="&#xe04f;"
+d="M0 800h800v-100h-800v100zM400 600l300 -300h-200v-300h-200v300h-200z" />
+    <glyph glyph-name="50" unicode="&#xe050;"
+d="M200 700h600v-600h-600l-200 300zM350 622l-72 -72l150 -150l-150 -150l72 -72l150 150l150 -150l72 72l-150 150l150 150l-72 72l-150 -150z" />
+    <glyph glyph-name="51" unicode="&#xe051;"
+d="M400 700c220 0 400 -180 400 -400h-100c0 166 -134 300 -300 300s-300 -134 -300 -300h-100c0 220 180 400 400 400zM341 491l59 -88l59 88c81 -25 141 -101 141 -191c0 -110 -90 -200 -200 -200s-200 90 -200 200c0 90 60 166 141 191z" />
+    <glyph glyph-name="52" unicode="&#xe052;"
+d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300zM100 600v-100h100v100h-100zM100 400v-100h100v100h-100zM100 200v-100h400v100h-400z" />
+    <glyph glyph-name="53" unicode="&#xe053;" horiz-adv-x="600"
+d="M200 700h100v-100h75c30 0 58 -6 81 -22s44 -44 44 -78v-100h-100v94c-4 3 -13 6 -25 6h-250c-14 0 -25 -11 -25 -25v-50c0 -15 20 -40 34 -44l257 -65c66 -16 109 -73 109 -141v-50c0 -68 -57 -125 -125 -125h-75v-100h-100v100h-75c-30 0 -58 6 -81 22s-44 44 -44 78
+v100h100v-94c4 -3 13 -6 25 -6h250c14 0 25 11 25 25v50c0 15 -20 40 -34 44l-257 65c-66 16 -109 73 -109 141v50c0 68 57 125 125 125h75v100z" />
+    <glyph glyph-name="54" unicode="&#xe054;"
+d="M0 700h300v-300l-300 -300v600zM500 700h300v-300l-300 -300v600z" />
+    <glyph glyph-name="55" unicode="&#xe055;"
+d="M300 700v-600h-300v300zM800 700v-600h-300v300z" />
+    <glyph glyph-name="56" unicode="&#xe056;"
+d="M300 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300zM800 700v-100c-111 0 -200 -89 -200 -200h200v-300h-300v300c0 165 135 300 300 300z" />
+    <glyph glyph-name="57" unicode="&#xe057;"
+d="M0 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300zM500 700h300v-300c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-200v300z" />
+    <glyph glyph-name="58" unicode="&#xe058;" horiz-adv-x="600"
+d="M300 800l34 -34c11 -11 266 -270 266 -488c0 -165 -135 -300 -300 -300s-300 135 -300 300c0 218 255 477 266 488zM150 328c-28 0 -50 -22 -50 -50c0 -110 90 -200 200 -200c28 0 50 22 50 50s-22 50 -50 50c-55 0 -100 45 -100 100c0 28 -22 50 -50 50z" />
+    <glyph glyph-name="59" unicode="&#xe059;"
+d="M400 800l400 -500h-800zM0 200h800v-200h-800v200z" />
+    <glyph glyph-name="5a" unicode="&#xe05a;" horiz-adv-x="600"
+d="M300 800l300 -300h-600zM0 300h600l-300 -300z" />
+    <glyph glyph-name="5b" unicode="&#xe05b;"
+d="M0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200z" />
+    <glyph glyph-name="5c" unicode="&#xe05c;"
+d="M0 700h800v-100l-400 -200l-400 200v100zM0 500l400 -200l400 200v-400h-800v400z" />
+    <glyph glyph-name="5d" unicode="&#xe05d;"
+d="M400 800l400 -200v-600h-800v600zM400 688l-300 -150v-188l300 -150l300 150v188zM200 500h400v-100l-200 -100l-200 100v100z" />
+    <glyph glyph-name="5e" unicode="&#xe05e;"
+d="M600 700c69 0 134 -19 191 -50l-16 -106c-49 35 -109 56 -175 56c-131 0 -240 -84 -281 -200h331l-16 -100h-334c0 -36 8 -68 19 -100h297l-16 -100h-222c55 -61 133 -100 222 -100c78 0 147 30 200 78v-122c-59 -35 -127 -56 -200 -56c-147 0 -274 82 -344 200h-256
+l19 100h197c-8 32 -16 66 -16 100h-200l25 100h191c45 172 198 300 384 300z" />
+    <glyph glyph-name="5f" unicode="&#xe05f;"
+d="M0 700h700v-100h-700v100zM0 500h500v-100h-500v100zM0 300h800v-100h-800v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100z" />
+    <glyph glyph-name="60" unicode="&#xe060;"
+d="M0 800h800v-100h-800v100zM200 600h400l-200 -200zM0 200h800v-200h-800v200z" />
+    <glyph glyph-name="61" unicode="&#xe061;"
+d="M0 800h100v-800h-100v800zM600 800h200v-800h-200v800zM200 600l200 -200l-200 -200v400z" />
+    <glyph glyph-name="62" unicode="&#xe062;"
+d="M0 800h200v-800h-200v800zM700 800h100v-800h-100v800zM600 600v-400l-200 200z" />
+    <glyph glyph-name="63" unicode="&#xe063;"
+d="M0 800h800v-200h-800v200zM400 400l200 -200h-400zM0 100h800v-100h-800v100z" />
+    <glyph glyph-name="64" unicode="&#xe064;"
+d="M0 800h200v-100h-100v-600h600v100h100v-200h-800v800zM400 800h400v-400l-150 150l-250 -250l-100 100l250 250z" />
+    <glyph glyph-name="65" unicode="&#xe065;"
+d="M403 700c247 0 397 -300 397 -300s-150 -300 -397 -300c-253 0 -403 300 -403 300s150 300 403 300zM400 600c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200zM400 500c10 0 19 -3 28 -6c-16 -8 -28 -24 -28 -44c0 -28 22 -50 50 -50
+c20 0 36 12 44 28c3 -9 6 -18 6 -28c0 -55 -45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
+    <glyph glyph-name="66" unicode="&#xe066;" horiz-adv-x="900"
+d="M331 700h3h3c3 1 7 1 10 1c12 0 29 -8 37 -17l94 -93l66 65c57 57 155 57 212 0c58 -58 58 -154 0 -212l-65 -66l93 -94c10 -8 18 -25 18 -38c0 -28 -22 -50 -50 -50c-13 0 -32 9 -40 20l-62 65l-381 -381h-269v272l375 381l-63 63c-9 8 -16 24 -16 36c0 20 16 42 35 48z
+M447 481l-313 -315l128 -132l316 316z" />
+    <glyph glyph-name="67" unicode="&#xe067;"
+d="M0 800h300v-400h400v-400h-700v800zM400 800l300 -300h-300v300z" />
+    <glyph glyph-name="68" unicode="&#xe068;"
+d="M200 800c0 0 200 -100 200 -300s-298 -302 -200 -500c0 0 -200 100 -200 300s300 300 200 500zM500 500c0 0 200 -100 200 -300c0 -150 -60 -200 -100 -200h-300c0 200 300 300 200 500z" />
+    <glyph glyph-name="69" unicode="&#xe069;"
+d="M0 800h100v-800h-100v800zM200 800h300v-100h300l-200 -203l200 -197h-400v100h-200v400z" />
+    <glyph glyph-name="6a" unicode="&#xe06a;" horiz-adv-x="400"
+d="M150 800h150l-100 -200h200l-150 -300h150l-300 -300l-100 300h134l66 200h-200z" />
+    <glyph glyph-name="6b" unicode="&#xe06b;"
+d="M0 800h300v-100h500v-100h-800v200zM0 500h800v-450c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v450z" />
+    <glyph glyph-name="6c" unicode="&#xe06c;"
+d="M150 800c83 0 150 -67 150 -150c0 -66 -41 -121 -100 -141v-118c15 5 33 9 50 9h200c28 0 50 22 50 50v59c-59 20 -100 75 -100 141c0 83 67 150 150 150s150 -67 150 -150c0 -66 -41 -121 -100 -141v-59c0 -82 -68 -150 -150 -150h-200c-14 0 -25 -7 -34 -16
+c50 -24 84 -74 84 -134c0 -83 -67 -150 -150 -150s-150 67 -150 150c0 66 41 121 100 141v218c-59 20 -100 75 -100 141c0 83 67 150 150 150z" />
+    <glyph glyph-name="6d" unicode="&#xe06d;"
+d="M0 800h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400zM500 400l150 -150l150 150v-400h-400l150 150l-150 150z" />
+    <glyph glyph-name="6e" unicode="&#xe06e;"
+d="M100 800l150 -150l150 150v-400h-400l150 150l-150 150zM400 400h400l-150 -150l150 -150l-100 -100l-150 150l-150 -150v400z" />
+    <glyph glyph-name="6f" unicode="&#xe06f;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM400 700c-56 0 -108 -17 -153 -44l22 -19c33 -18 13 -48 -13 -59c-30 -13 -77 10 -65 -41c13 -55 -27 -3 -47 -15c-42 -26 49 -152 31 -156l-59 34c-8 0 -13 -5 -16 -10
+c1 -30 10 -57 19 -84c28 -11 77 -2 100 -25c47 -28 97 -115 75 -159c34 -13 68 -22 106 -22c101 0 193 48 247 125c3 24 -8 44 -50 44c-69 0 -156 13 -153 97c2 46 101 108 66 143c-30 30 12 39 12 66c0 37 -65 32 -69 50s20 36 41 56c-30 10 -60 19 -94 19zM631 591
+c-38 -11 -94 -35 -87 -53c6 -15 52 -1 65 -13c11 -10 16 -59 44 -31l22 22v3c-11 26 -26 50 -44 72z" />
+    <glyph glyph-name="70" unicode="&#xe070;"
+d="M703 800l97 -100l-400 -400l-100 100l-200 -203l-100 100l300 303l100 -100zM0 100h800v-100h-800v100z" />
+    <glyph glyph-name="71" unicode="&#xe071;"
+d="M0 700h100v-100h-100v100zM200 700h100v-100h-100v100zM400 700h100v-100h-100v100zM600 700h100v-100h-100v100zM0 500h100v-100h-100v100zM200 500h100v-100h-100v100zM400 500h100v-100h-100v100zM600 500h100v-100h-100v100zM0 300h100v-100h-100v100zM200 300h100
+v-100h-100v100zM400 300h100v-100h-100v100zM600 300h100v-100h-100v100zM0 100h100v-100h-100v100zM200 100h100v-100h-100v100zM400 100h100v-100h-100v100zM600 100h100v-100h-100v100z" />
+    <glyph glyph-name="72" unicode="&#xe072;"
+d="M0 800h200v-200h-200v200zM300 800h200v-200h-200v200zM600 800h200v-200h-200v200zM0 500h200v-200h-200v200zM300 500h200v-200h-200v200zM600 500h200v-200h-200v200zM0 200h200v-200h-200v200zM300 200h200v-200h-200v200zM600 200h200v-200h-200v200z" />
+    <glyph glyph-name="73" unicode="&#xe073;"
+d="M0 800h300v-300h-300v300zM500 800h300v-300h-300v300zM0 300h300v-300h-300v300zM500 300h300v-300h-300v300z" />
+    <glyph glyph-name="74" unicode="&#xe074;"
+d="M19 800h662c11 0 19 -8 19 -19v-331c0 -28 -22 -50 -50 -50h-600c-28 0 -50 22 -50 50v331c0 11 8 19 19 19zM0 309c16 -6 32 -9 50 -9h600c18 0 34 3 50 9v-290c0 -11 -8 -19 -19 -19h-662c-11 0 -19 8 -19 19v290zM550 200c-28 0 -50 -22 -50 -50s22 -50 50 -50
+s50 22 50 50s-22 50 -50 50z" />
+    <glyph glyph-name="75" unicode="&#xe075;"
+d="M0 700h300v-100h-50c-28 0 -50 -22 -50 -50v-150h300v150c0 28 -22 50 -50 50h-50v100h300v-100h-50c-28 0 -50 -22 -50 -50v-400c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50v150h-300v-150c0 -28 22 -50 50 -50h50v-100h-300v100h50c28 0 50 22 50 50
+v400c0 28 -22 50 -50 50h-50v100z" />
+    <glyph glyph-name="76" unicode="&#xe076;"
+d="M400 700c165 0 300 -135 300 -300v-100h50c28 0 50 -22 50 -50v-200c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v350c0 111 -89 200 -200 200s-200 -89 -200 -200v-350c0 -28 -22 -50 -50 -50h-100c-28 0 -50 22 -50 50v200c0 28 22 50 50 50h50v100
+c0 165 135 300 300 300z" />
+    <glyph glyph-name="77" unicode="&#xe077;"
+d="M0 500c0 109 91 200 200 200s200 -91 200 -200c0 109 91 200 200 200s200 -91 200 -200c0 -55 -23 -105 -59 -141l-341 -340l-341 340c-36 36 -59 86 -59 141z" />
+    <glyph glyph-name="78" unicode="&#xe078;"
+d="M400 700l400 -300l-100 3v-403h-200v200h-200v-200h-200v400h-100z" />
+    <glyph glyph-name="79" unicode="&#xe079;"
+d="M0 800h800v-800h-800v800zM100 700v-300l100 100l400 -400h100v100l-200 200l100 100l100 -100v300h-600z" />
+    <glyph glyph-name="7a" unicode="&#xe07a;"
+d="M19 800h762c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-762c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 600v-300h100l100 -100h200l100 100h100v300h-600z" />
+    <glyph glyph-name="7b" unicode="&#xe07b;"
+d="M200 600c80 0 142 -56 200 -122c58 66 119 122 200 122c131 0 200 -101 200 -200s-69 -200 -200 -200c-81 0 -142 56 -200 122c-58 -66 -121 -122 -200 -122c-131 0 -200 101 -200 200s69 200 200 200zM200 500c-74 0 -100 -54 -100 -100s26 -100 100 -100
+c42 0 88 47 134 100c-46 53 -92 100 -134 100zM600 500c-43 0 -88 -47 -134 -100c46 -53 91 -100 134 -100c74 0 100 54 100 100s-26 100 -100 100z" />
+    <glyph glyph-name="7c" unicode="&#xe07c;" horiz-adv-x="400"
+d="M300 800c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100zM150 550c83 0 150 -69 150 -150c0 -66 -100 -214 -100 -250c0 -28 22 -50 50 -50s50 22 50 50h100c0 -83 -67 -150 -150 -150s-150 64 -150 150s100 222 100 250s-22 50 -50 50
+s-50 -22 -50 -50h-100c0 83 67 150 150 150z" />
+    <glyph glyph-name="7d" unicode="&#xe07d;"
+d="M200 800h500v-100h-122c-77 -197 -156 -392 -234 -588l-6 -12h162v-100h-500v100h122c77 197 156 392 234 588l7 12h-163v100z" />
+    <glyph glyph-name="7e" unicode="&#xe07e;"
+d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM100 100h600v-100h-600v100z" />
+    <glyph glyph-name="7f" unicode="&#xe07f;"
+d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM0 100h600v-100h-600v100z" />
+    <glyph glyph-name="80" unicode="&#xe080;"
+d="M0 700h800v-100h-800v100zM0 500h800v-100h-800v100zM0 300h800v-100h-800v100zM200 100h600v-100h-600v100z" />
+    <glyph glyph-name="81" unicode="&#xe081;"
+d="M550 800c138 0 250 -112 250 -250s-112 -250 -250 -250c-16 0 -32 0 -47 3l-3 -3v-100h-200v-200h-300v200l303 303c-3 15 -3 31 -3 47c0 138 112 250 250 250zM600 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
+    <glyph glyph-name="82" unicode="&#xe082;"
+d="M134 600h3h4h4h5h500c28 0 50 -22 50 -50v-350h100v-150c0 -28 -22 -50 -50 -50h-700c-28 0 -50 22 -50 50v150h100v350v2c0 20 15 42 34 48zM200 500v-300h100v-100h200v100h100v300h-400z" />
+    <glyph glyph-name="83" unicode="&#xe083;"
+d="M0 800h400v-400h-400v400zM500 600h100v-400h-400v100h300v300zM700 400h100v-400h-400v100h300v300z" />
+    <glyph glyph-name="84" unicode="&#xe084;" horiz-adv-x="600"
+d="M337 694c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-300 -150c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50c0 21 16 44 37 49zM437 544c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-400 -200c-8 -6 -21 -11 -31 -11c-28 0 -50 22 -50 50
+c0 21 16 44 37 49zM437 344c6 4 12 7 21 7c28 0 50 -22 50 -50c0 -17 -12 -37 -27 -45l-106 -56c24 -4 43 -26 43 -50c0 -28 -23 -51 -51 -51c-2 0 -6 1 -8 1h-200c-26 1 -48 24 -48 50c0 16 12 36 26 44zM151 -50c0 23 20 50 46 50h3h4h5h100c28 0 50 -22 50 -50
+s-22 -50 -50 -50h-100c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
+    <glyph glyph-name="85" unicode="&#xe085;"
+d="M199 800h100v-200h-200v100h100v100zM586 797h1c18 1 38 1 56 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0l-44 -44
+c-8 -13 -27 -24 -42 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43l43 44c32 33 72 53 128 56zM208 490c4 5 14 16 22 16h3c2 0 6 1 8 1c28 0 50 -22 50 -50c0 -11 -6 -27 -14 -35l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0l44 44c8 13 27 24 42 24
+c28 0 50 -22 50 -50c0 -15 -11 -35 -24 -43l-43 -44c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281zM499 200h200v-100h-100v-100h-100v200z" />
+    <glyph glyph-name="86" unicode="&#xe086;"
+d="M586 797c18 1 39 1 57 -3c36 -8 69 -26 97 -54c78 -78 78 -203 0 -281l-150 -150c-62 -62 -132 -81 -182 -78s-69 17 -84 25s-26 27 -26 44c0 28 22 51 50 51c8 0 19 -3 26 -7c0 0 15 -11 41 -13s62 3 106 47l150 150c40 40 39 105 0 144c-41 41 -110 34 -144 0
+c-8 -13 -28 -24 -43 -24c-28 0 -50 22 -50 50c0 15 11 35 24 43c32 33 72 53 128 56zM386 566c50 -2 64 -17 85 -22s37 -28 37 -49c0 -28 -22 -50 -50 -50c-10 0 -23 5 -31 11c0 0 -19 9 -47 10s-63 -4 -103 -44l-150 -150c-40 -40 -39 -105 0 -144c41 -41 110 -34 144 0
+c8 13 27 24 42 24c28 0 50 -22 50 -50c0 -15 -10 -35 -23 -43c-22 -22 -48 -37 -75 -47c-70 -25 -151 -9 -207 47c-78 78 -78 203 0 281l150 150c60 60 128 78 178 76z" />
+    <glyph glyph-name="87" unicode="&#xe087;"
+d="M0 700h300v-300h-300v300zM400 700h400v-100h-400v100zM400 500h300v-100h-300v100zM0 300h300v-300h-300v300zM400 300h400v-100h-400v100zM400 100h300v-100h-300v100z" />
+    <glyph glyph-name="88" unicode="&#xe088;"
+d="M50 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 700h600v-100h-600v100zM50 500c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 500h600v-100h-600v100zM50 300c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
+s22 50 50 50zM200 300h600v-100h-600v100zM50 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM200 100h600v-100h-600v100z" />
+    <glyph glyph-name="89" unicode="&#xe089;"
+d="M800 800l-400 -800l-100 300l-300 100z" />
+    <glyph glyph-name="8a" unicode="&#xe08a;" horiz-adv-x="600"
+d="M300 700c110 0 200 -90 200 -200v-100h100v-400h-600v400h100v100c0 110 90 200 200 200zM300 600c-56 0 -100 -44 -100 -100v-100h200v100c0 56 -44 100 -100 100z" />
+    <glyph glyph-name="8b" unicode="&#xe08b;" horiz-adv-x="600"
+d="M300 800c110 0 200 -90 200 -200v-200h100v-400h-600v400h400v200c0 56 -44 100 -100 100s-100 -44 -100 -100h-100c0 110 90 200 200 200z" />
+    <glyph glyph-name="8c" unicode="&#xe08c;"
+d="M400 700v-100c-111 0 -200 -89 -200 -200h100l-150 -200l-150 200h100c0 165 135 300 300 300zM650 600l150 -200h-100c0 -165 -135 -300 -300 -300v100c111 0 200 89 200 200h-100z" />
+    <glyph glyph-name="8d" unicode="&#xe08d;"
+d="M100 800h600v-300h100l-150 -250l-150 250h100v200h-400v-100h-100v200zM150 550l150 -250h-100v-200h400v100h100v-200h-600v300h-100z" />
+    <glyph glyph-name="8e" unicode="&#xe08e;"
+d="M600 700l200 -150l-200 -150v100h-500v-100h-100v100c0 55 45 100 100 100h500v100zM200 300v-100h500v100h100v-100c0 -55 -45 -100 -100 -100h-500v-100l-200 150z" />
+    <glyph glyph-name="8f" unicode="&#xe08f;" horiz-adv-x="900"
+d="M350 800c193 0 350 -157 350 -350c0 -60 -17 -117 -44 -166c5 -3 12 -8 16 -12l100 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 100c-4 3 -9 9 -12 13c-49 -26 -107 -41 -166 -41c-193 0 -350 157 -350 350s157 350 350 350zM350 200
+c142 0 250 108 250 250c0 139 -111 250 -250 250s-250 -111 -250 -250s111 -250 250 -250z" />
+    <glyph glyph-name="90" unicode="&#xe090;" horiz-adv-x="600"
+d="M300 800c166 0 300 -134 300 -300c0 -200 -300 -500 -300 -500s-300 300 -300 500c0 166 134 300 300 300zM300 700c-110 0 -200 -90 -200 -200s90 -200 200 -200s200 90 200 200s-90 200 -200 200z" />
+    <glyph glyph-name="91" unicode="&#xe091;" horiz-adv-x="900"
+d="M0 800h800v-541c1 -3 1 -8 1 -11s0 -7 -1 -10v-238h-800v800zM495 250c0 26 22 50 50 50h5h150v400h-600v-600h600v100h-150h-5c-28 0 -50 22 -50 50zM350 600c83 0 150 -67 150 -150c0 -100 -150 -250 -150 -250s-150 150 -150 250c0 83 67 150 150 150zM350 500
+c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
+    <glyph glyph-name="92" unicode="&#xe092;" horiz-adv-x="600"
+d="M0 700h200v-600h-200v600zM400 700h200v-600h-200v600z" />
+    <glyph glyph-name="93" unicode="&#xe093;" horiz-adv-x="600"
+d="M0 700l600 -300l-600 -300v600z" />
+    <glyph glyph-name="94" unicode="&#xe094;" horiz-adv-x="600"
+d="M300 700c166 0 300 -134 300 -300s-134 -300 -300 -300s-300 134 -300 300s134 300 300 300z" />
+    <glyph glyph-name="95" unicode="&#xe095;"
+d="M400 700v-600l-400 300zM400 400l400 300v-600z" />
+    <glyph glyph-name="96" unicode="&#xe096;"
+d="M0 700l400 -300l-400 -300v600zM400 100v600l400 -300z" />
+    <glyph glyph-name="97" unicode="&#xe097;"
+d="M0 700h200v-600h-200v600zM200 400l500 300v-600z" />
+    <glyph glyph-name="98" unicode="&#xe098;"
+d="M0 700l500 -300l-500 -300v600zM500 100v600h200v-600h-200z" />
+    <glyph glyph-name="99" unicode="&#xe099;" horiz-adv-x="600"
+d="M0 700h600v-600h-600v600z" />
+    <glyph glyph-name="9a" unicode="&#xe09a;"
+d="M200 800h400v-200h200v-400h-200v-200h-400v200h-200v400h200v200z" />
+    <glyph glyph-name="9b" unicode="&#xe09b;"
+d="M0 700h800v-100h-800v100zM0 403h800v-100h-800v100zM0 103h800v-100h-800v100z" />
+    <glyph glyph-name="9c" unicode="&#xe09c;" horiz-adv-x="600"
+d="M278 700c7 2 13 4 22 4c55 0 100 -45 100 -100v-4v-200c0 -55 -45 -100 -100 -100s-100 45 -100 100v200v2c0 44 35 88 78 98zM34 500h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-50c0 -111 89 -200 200 -200s200 89 200 200v50c0 28 22 50 50 50s50 -22 50 -50v-50
+c0 -148 -109 -270 -250 -294v-106h50c55 0 100 -45 100 -100h-400c0 55 45 100 100 100h50v106c-141 24 -250 146 -250 294v50v2c0 20 15 42 34 48z" />
+    <glyph glyph-name="9d" unicode="&#xe09d;"
+d="M0 500h800v-200h-800v200z" />
+    <glyph glyph-name="9e" unicode="&#xe09e;"
+d="M34 700h4h3h4h5h700c28 0 50 -22 50 -50v-500c0 -28 -22 -50 -50 -50h-250v-100h100c55 0 100 -45 100 -100h-600c0 55 45 100 100 100h100v100h-250c-28 0 -50 22 -50 50v500v2c0 20 15 42 34 48zM100 600v-400h600v400h-600z" />
+    <glyph glyph-name="9f" unicode="&#xe09f;"
+d="M272 700c-14 -40 -22 -83 -22 -128c0 -221 179 -400 400 -400c45 0 88 8 128 22c-53 -158 -202 -272 -378 -272c-221 0 -400 179 -400 400c0 176 114 325 272 378z" />
+    <glyph glyph-name="a0" unicode="&#xe0a0;"
+d="M350 700l150 -150h-100v-150h150v100l150 -150l-150 -150v100h-150v-150h100l-150 -150l-150 150h100v150h-150v-100l-150 150l150 150v-100h150v150h-100z" />
+    <glyph glyph-name="a1" unicode="&#xe0a1;"
+d="M800 800v-550c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v206c-201 -6 -327 -27 -400 -50v-397c0 -83 -67 -150 -150 -150s-150 67 -150 150s67 150 150 150c17 0 35 -4 50 -9v409s100 100 600 100z" />
+    <glyph glyph-name="a2" unicode="&#xe0a2;" horiz-adv-x="700"
+d="M499 700c51 0 102 -20 141 -59c78 -78 78 -203 0 -281l-250 -244c-48 -48 -127 -48 -175 0s-48 127 0 175l96 97l69 -69l-90 -94l-7 -3c-10 -10 -10 -28 0 -38s28 -10 38 0l250 247c37 40 39 102 0 141s-104 40 -144 0l-278 -275c-66 -69 -68 -179 0 -247
+c69 -69 181 -69 250 0l9 12l116 113l69 -69l-125 -125c-107 -107 -281 -107 -388 0s-107 281 0 388l278 272c39 39 90 59 141 59z" />
+    <glyph glyph-name="a3" unicode="&#xe0a3;"
+d="M600 800l200 -200l-100 -100l-200 200zM400 600l200 -200l-400 -400h-200v200z" />
+    <glyph glyph-name="a4" unicode="&#xe0a4;"
+d="M550 800c83 0 150 -90 150 -200s-67 -200 -150 -200c-22 0 -40 8 -59 19c6 26 9 52 9 81c0 84 -27 158 -72 212c27 52 71 88 122 88zM250 700c83 0 150 -90 150 -200s-67 -200 -150 -200s-150 90 -150 200s67 200 150 200zM725 384c44 -22 75 -66 75 -118v-166h-200v66
+c0 50 -17 96 -44 134c66 2 126 33 169 84zM75 284c45 -53 106 -84 175 -84s130 31 175 84c44 -22 75 -66 75 -118v-166h-500v166c0 52 31 96 75 118z" />
+    <glyph glyph-name="a5" unicode="&#xe0a5;"
+d="M400 800c110 0 200 -112 200 -250s-90 -250 -200 -250s-200 112 -200 250s90 250 200 250zM191 300c54 -61 128 -100 209 -100s155 39 209 100c106 -5 191 -92 191 -200v-100h-800v100c0 108 85 195 191 200z" />
+    <glyph glyph-name="a6" unicode="&#xe0a6;" horiz-adv-x="600"
+d="M19 800h462c11 0 19 -8 19 -19v-762c0 -11 -8 -19 -19 -19h-462c-11 0 -19 8 -19 19v762c0 11 8 19 19 19zM100 700v-500h300v500h-300zM250 150c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
+    <glyph glyph-name="a7" unicode="&#xe0a7;"
+d="M350 800c17 0 34 -1 50 -3v-397l-297 297c63 64 150 103 247 103zM500 694c169 -25 300 -168 300 -344c0 -193 -157 -350 -350 -350c-85 0 -161 31 -222 81l272 272v341zM91 562l237 -234l-212 -212c-70 55 -116 138 -116 234c0 84 35 158 91 212z" />
+    <glyph glyph-name="a8" unicode="&#xe0a8;"
+d="M92 650c0 23 20 50 46 50h3h4h5h400c28 0 50 -22 50 -50s-22 -50 -50 -50h-50v-200h100c55 0 100 -45 100 -100h-300v-300l-56 -100l-44 100v300h-300c0 55 45 100 100 100h100v200h-50c-2 0 -6 -1 -8 -1c-28 0 -50 23 -50 51z" />
+    <glyph glyph-name="a9" unicode="&#xe0a9;"
+d="M400 800c221 0 400 -179 400 -400s-179 -400 -400 -400s-400 179 -400 400s179 400 400 400zM300 600v-400l300 200z" />
+    <glyph glyph-name="aa" unicode="&#xe0aa;"
+d="M300 800h200v-300h300v-200h-300v-300h-200v300h-300v200h300v300z" />
+    <glyph glyph-name="ab" unicode="&#xe0ab;"
+d="M300 800h100v-400h-100v400zM172 656l62 -78l-40 -31c-58 -46 -94 -117 -94 -197c0 -139 111 -250 250 -250s250 111 250 250c0 80 -39 151 -97 197l-37 31l62 78l38 -31c82 -64 134 -164 134 -275c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 111 53 211 134 275z
+" />
+    <glyph glyph-name="ac" unicode="&#xe0ac;"
+d="M200 800h400v-200h-400v200zM9 500h782c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-91v200h-600v-200h-91c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM200 300h400v-300h-400v300z" />
+    <glyph glyph-name="ad" unicode="&#xe0ad;"
+d="M0 700h100v-700h-100v700zM700 700h100v-700h-100v700zM200 600h200v-100h-200v100zM300 400h200v-100h-200v100zM400 200h200v-100h-200v100z" />
+    <glyph glyph-name="ae" unicode="&#xe0ae;"
+d="M325 700c42 -141 87 -280 131 -419c29 74 59 148 88 222c30 -57 58 -114 87 -172h169v-100h-231l-13 28c-37 -92 -74 -184 -112 -275c-38 129 -79 257 -119 385c-42 -133 -83 -267 -125 -400c-28 88 -56 175 -84 262h-116v100h188l9 -34l3 -6c42 137 83 273 125 409z" />
+    <glyph glyph-name="af" unicode="&#xe0af;"
+d="M200 600c0 57 43 100 100 100s100 -43 100 -100c0 -28 -18 -48 -28 -72c-3 -6 -3 -16 -3 -28h231v-231c12 0 22 0 28 3c24 10 44 28 72 28c57 0 100 -43 100 -100s-43 -100 -100 -100c-28 0 -48 18 -72 28c-6 3 -16 3 -28 3v-231h-231c0 12 0 22 3 28c10 24 28 44 28 72
+c0 57 -43 100 -100 100s-100 -43 -100 -100c0 -28 18 -48 28 -72c3 -6 3 -16 3 -28h-231v600h231c0 12 0 22 -3 28c-10 24 -28 44 -28 72z" />
+    <glyph glyph-name="b0" unicode="&#xe0b0;" horiz-adv-x="500"
+d="M247 700c84 0 148 -20 191 -59s59 -93 59 -141c0 -117 -69 -181 -119 -225s-81 -67 -81 -150v-25h-100v25c0 117 65 181 115 225s85 67 85 150c0 25 -8 48 -28 66s-56 34 -122 34s-97 -18 -116 -37s-27 -43 -31 -69l-100 12c5 38 19 88 59 128s103 66 188 66zM197 0h100
+v-100h-100v100z" />
+    <glyph glyph-name="b1" unicode="&#xe0b1;"
+d="M450 800c138 0 250 -112 250 -250v-50c58 -21 100 -85 100 -150c0 -69 -48 -127 -112 -144c-22 55 -75 94 -138 94c-20 0 -39 -5 -56 -12c-17 64 -75 112 -144 112s-127 -48 -144 -112c-17 7 -36 12 -56 12c-37 0 -71 -12 -97 -34c-33 36 -53 82 -53 134
+c0 110 90 200 200 200c23 114 129 200 250 200zM334 300h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-200c0 -28 -22 -50 -50 -50s-50 22 -50 50v200v2c0 20 15 42 34 48zM134 200h4h3c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2
+c0 20 15 42 34 48zM534 200h3h4c3 0 6 1 9 1c28 0 50 -22 50 -50v-1v-100c0 -28 -22 -50 -50 -50s-50 22 -50 50v100v2c0 20 15 42 34 48z" />
+    <glyph glyph-name="b2" unicode="&#xe0b2;"
+d="M600 800l200 -150l-200 -150v100h-50l-153 -191l175 -206l6 -3h22v100l200 -150l-200 -150v100h-25c-35 0 -56 12 -78 38l-166 190l-153 -190c-22 -27 -43 -38 -78 -38h-100v100h100l166 206l-163 191l-3 3h-100v100h100c34 0 56 -12 78 -38l153 -178l141 178
+c22 27 43 38 78 38h50v100z" />
+    <glyph glyph-name="b3" unicode="&#xe0b3;"
+d="M400 800c110 0 209 -47 281 -119l119 119v-300h-300l109 109c-54 55 -126 91 -209 91c-166 0 -300 -134 -300 -300s134 -300 300 -300c83 0 158 34 212 88l72 -72c-72 -72 -174 -116 -284 -116c-220 0 -400 180 -400 400s180 400 400 400z" />
+    <glyph glyph-name="b4" unicode="&#xe0b4;"
+d="M400 800h400v-400l-166 166l-400 -400l166 -166h-400v400l166 -166l400 400z" />
+    <glyph glyph-name="b5" unicode="&#xe0b5;" horiz-adv-x="600"
+d="M250 800l250 -300h-200v-200h200l-250 -300l-250 300h200v200h-200z" />
+    <glyph glyph-name="b6" unicode="&#xe0b6;"
+d="M300 600v-200h200v200l300 -250l-300 -250v200h-200v-200l-300 250z" />
+    <glyph glyph-name="b7" unicode="&#xe0b7;"
+d="M0 800c441 0 800 -359 800 -800h-200c0 333 -267 600 -600 600v200zM0 500c275 0 500 -225 500 -500h-200c0 167 -133 300 -300 300v200zM0 200c110 0 200 -90 200 -200h-200v200z" />
+    <glyph glyph-name="b8" unicode="&#xe0b8;"
+d="M100 800c386 0 700 -314 700 -700h-100c0 332 -268 600 -600 600v100zM100 600c276 0 500 -224 500 -500h-100c0 222 -178 400 -400 400v100zM100 400c165 0 300 -135 300 -300h-100c0 111 -89 200 -200 200v100zM100 200c55 0 100 -45 100 -100s-45 -100 -100 -100
+s-100 45 -100 100s45 100 100 100z" />
+    <glyph glyph-name="b9" unicode="&#xe0b9;"
+d="M300 800h400c55 0 100 -45 100 -100v-200h-400v150c0 28 -22 50 -50 50s-50 -22 -50 -50v-250h400v-300c0 -55 -45 -100 -100 -100h-500c-55 0 -100 45 -100 100v200h100v-150c0 -28 22 -50 50 -50s50 22 50 50v550c0 55 45 100 100 100z" />
+    <glyph glyph-name="ba" unicode="&#xe0ba;"
+d="M75 700h225v-100h-200v-500h400v100h100v-125c0 -41 -34 -75 -75 -75h-450c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM600 700l200 -200l-200 -200v100h-200c-94 0 -173 -65 -194 -153c23 199 189 353 394 353v100z" />
+    <glyph glyph-name="bb" unicode="&#xe0bb;"
+d="M500 700l300 -284l-300 -316v200h-100c-200 0 -348 -102 -400 -300c0 295 100 500 500 500v200z" />
+    <glyph glyph-name="bc" unicode="&#xe0bc;"
+d="M381 791l19 9l19 -9c127 -53 253 -108 381 -160v-31c0 -166 -67 -313 -147 -419c-40 -53 -83 -97 -125 -128s-82 -53 -128 -53s-86 22 -128 53s-85 75 -125 128c-80 107 -147 253 -147 419v31c128 52 254 107 381 160zM400 100v591l-294 -122c8 -126 58 -243 122 -328
+c35 -46 73 -86 106 -110s62 -31 66 -31z" />
+    <glyph glyph-name="bd" unicode="&#xe0bd;"
+d="M600 800h100v-800h-100v800zM400 700h100v-700h-100v700zM200 500h100v-500h-100v500zM0 300h100v-300h-100v300z" />
+    <glyph glyph-name="be" unicode="&#xe0be;"
+d="M300 800h100v-200h200l100 -100l-100 -100h-200v-400h-100v500h-200l-100 100l100 100h200v100z" />
+    <glyph glyph-name="bf" unicode="&#xe0bf;"
+d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h200v-100h-200v100zM400 600h300v-100h-300v100zM400 400h400v-100h-400v100z" />
+    <glyph glyph-name="c0" unicode="&#xe0c0;"
+d="M200 800h100v-600h200l-250 -200l-250 200h200v600zM400 800h400v-100h-400v100zM400 600h300v-100h-300v100zM400 400h200v-100h-200v100z" />
+    <glyph glyph-name="c1" unicode="&#xe0c1;"
+d="M75 700h650c41 0 75 -34 75 -75v-550c0 -41 -34 -75 -75 -75h-650c-41 0 -75 34 -75 75v550c0 41 34 75 75 75zM100 600v-100h100v100h-100zM300 600v-100h400v100h-400zM100 400v-100h100v100h-100zM300 400v-100h400v100h-400zM100 200v-100h100v100h-100zM300 200
+v-100h400v100h-400z" />
+    <glyph glyph-name="c2" unicode="&#xe0c2;"
+d="M400 800l100 -300h300l-250 -200l100 -300l-250 200l-250 -200l100 300l-250 200h300z" />
+    <glyph glyph-name="c3" unicode="&#xe0c3;"
+d="M400 800c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM650 700c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 600c110 0 200 -90 200 -200
+s-90 -200 -200 -200s-200 90 -200 200s90 200 200 200zM50 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM750 450c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM150 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50
+s22 50 50 50zM650 200c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50zM400 100c28 0 50 -22 50 -50s-22 -50 -50 -50s-50 22 -50 50s22 50 50 50z" />
+    <glyph glyph-name="c4" unicode="&#xe0c4;"
+d="M34 800h632c18 0 34 -16 34 -34v-732c0 -18 -16 -34 -34 -34h-632c-18 0 -34 16 -34 34v732c0 18 16 34 34 34zM100 700v-500h500v500h-500zM350 150c-38 0 -63 -42 -44 -75s69 -33 88 0s-6 75 -44 75z" />
+    <glyph glyph-name="c5" unicode="&#xe0c5;"
+d="M0 800h300l500 -500l-300 -300l-500 500v300zM200 700c-55 0 -100 -45 -100 -100s45 -100 100 -100s100 45 100 100s-45 100 -100 100z" />
+    <glyph glyph-name="c6" unicode="&#xe0c6;"
+d="M0 600h200l300 -300l-200 -200l-300 300v200zM340 600h160l300 -300l-200 -200l-78 78l119 122zM150 500c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
+    <glyph glyph-name="c7" unicode="&#xe0c7;"
+d="M400 800c220 0 400 -180 400 -400s-180 -400 -400 -400s-400 180 -400 400s180 400 400 400zM400 700c-166 0 -300 -134 -300 -300s134 -300 300 -300s300 134 300 300s-134 300 -300 300zM400 600c110 0 200 -90 200 -200s-90 -200 -200 -200s-200 90 -200 200
+s90 200 200 200zM400 500c-56 0 -100 -44 -100 -100s44 -100 100 -100s100 44 100 100s-44 100 -100 100z" />
+    <glyph glyph-name="c8" unicode="&#xe0c8;"
+d="M0 700h559l-100 -100h-359v-500h500v159l100 100v-359h-700v700zM700 700l100 -100l-400 -400l-200 200l100 100l100 -100z" />
+    <glyph glyph-name="c9" unicode="&#xe0c9;"
+d="M9 800h782c6 0 9 -3 9 -9v-782c0 -6 -3 -9 -9 -9h-782c-6 0 -9 3 -9 9v782c0 6 3 9 9 9zM150 722l-72 -72l100 -100l-100 -100l72 -72l172 172zM400 500v-100h300v100h-300z" />
+    <glyph glyph-name="ca" unicode="&#xe0ca;"
+d="M0 800h800v-200h-50c0 55 -45 100 -100 100h-150v-550c0 -28 22 -50 50 -50h50v-100h-400v100h50c28 0 50 22 50 50v550h-150c-55 0 -100 -45 -100 -100h-50v200z" />
+    <glyph glyph-name="cb" unicode="&#xe0cb;"
+d="M0 700h100v-400h-100v400zM200 700h350c21 0 39 -13 47 -31c0 0 103 -291 103 -319s-22 -50 -50 -50h-150c-28 0 -50 -25 -50 -50s39 -158 47 -184s-5 -55 -31 -63s-52 5 -66 31s-109 219 -128 238s-44 28 -72 28v400z" />
+    <glyph glyph-name="cc" unicode="&#xe0cc;"
+d="M400 666c10 19 28 32 47 34l19 -3c26 -8 39 -37 31 -63s-47 -159 -47 -184s22 -50 50 -50h150c28 0 50 -22 50 -50s-103 -319 -103 -319c-8 -18 -26 -31 -47 -31h-350v400c28 0 53 9 72 28s114 212 128 238zM0 400h100v-400h-100v400z" />
+    <glyph glyph-name="cd" unicode="&#xe0cd;"
+d="M200 700h300v-100h-100v-6c25 -4 50 -8 72 -16l-34 -94c-28 11 -58 16 -88 16c-139 0 -250 -111 -250 -250s111 -250 250 -250s250 111 250 250c0 31 -5 60 -16 88l91 37c14 -38 25 -81 25 -125c0 -193 -157 -350 -350 -350s-350 157 -350 350c0 176 130 323 300 347v3
+h-100v100zM700 584c0 0 -296 -348 -316 -368s-48 -20 -68 0s-20 48 0 68s384 300 384 300z" />
+    <glyph glyph-name="ce" unicode="&#xe0ce;"
+d="M600 700l200 -150l-200 -150v100h-600v100h600v100zM200 300v-100h600v-100h-600v-100l-200 150z" />
+    <glyph glyph-name="cf" unicode="&#xe0cf;"
+d="M300 800h100c55 0 100 -45 100 -100h100c55 0 100 -45 100 -100h-700c0 55 45 100 100 100h100c0 55 45 100 100 100zM100 500h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-350c0 -28 22 -50 50 -50s50 22 50 50v350h100v-481c0 -11 -8 -19 -19 -19h-462
+c-11 0 -19 8 -19 19v481z" />
+    <glyph glyph-name="d0" unicode="&#xe0d0;"
+d="M100 800h200v-400c0 -55 45 -100 100 -100s100 45 100 100v400h100v-400c0 -110 -90 -200 -200 -200h-50c-138 0 -250 90 -250 200v400zM0 100h700v-100h-700v100z" />
+    <glyph glyph-name="d1" unicode="&#xe0d1;"
+d="M9 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM609 700h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282
+c0 6 3 9 9 9zM0 100h800v-100h-800v100z" />
+    <glyph glyph-name="d2" unicode="&#xe0d2;"
+d="M10 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 4 9 10 9zM610 700h181c6 0 9 -3 9 -9v-191h-200v191c0 6 5 9 10 9zM310 600h181c6 0 9 -3 9 -9v-91h-200v91c0 6 4 9 10 9zM0 400h800v-100h-800v100zM0 200h200v-191c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v191zM300 200
+h200v-91c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v91zM600 200h200v-191c0 -6 -3 -9 -9 -9h-181c-6 0 -10 3 -10 9v191z" />
+    <glyph glyph-name="d3" unicode="&#xe0d3;"
+d="M0 700h800v-100h-800v100zM9 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v482c0 6 3 9 9 9zM309 500h182c6 0 9 -3 9 -9v-282c0 -6 -3 -9 -9 -9h-182c-6 0 -9 3 -9 9v282c0 6 3 9 9 9zM609 500h182c6 0 9 -3 9 -9v-482c0 -6 -3 -9 -9 -9h-182
+c-6 0 -9 3 -9 9v482c0 6 3 9 9 9z" />
+    <glyph glyph-name="d4" unicode="&#xe0d4;"
+d="M50 600h500c28 0 50 -22 50 -50v-150l100 100h100v-300h-100l-100 100v-150c0 -28 -22 -50 -50 -50h-500c-28 0 -50 22 -50 50v400c0 28 22 50 50 50z" />
+    <glyph glyph-name="d5" unicode="&#xe0d5;"
+d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 600v100c26 0 52 -4 75 -10c130 -33 225 -150 225 -290s-95 -258 -225 -291h-3c-23 -6 -47 -9 -72 -9v100c17 0 34 2 50 6c86 22 150 100 150 194s-64 172 -150 194c-16 4 -33 6 -50 6zM500 500l25 -3
+c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
+    <glyph glyph-name="d6" unicode="&#xe0d6;" horiz-adv-x="600"
+d="M334 800h66v-800h-66l-134 200h-200v400h200zM500 500l25 -3c44 -11 75 -51 75 -97s-32 -86 -75 -97l-25 -3v200z" />
+    <glyph glyph-name="d7" unicode="&#xe0d7;" horiz-adv-x="400"
+d="M334 800h66v-800h-66l-134 200h-200v400h200z" />
+    <glyph glyph-name="d8" unicode="&#xe0d8;"
+d="M309 800h82c6 0 10 -4 12 -9l294 -682l3 -19v-81c0 -6 -3 -9 -9 -9h-682c-6 0 -9 3 -9 9v81l3 19l294 682c2 5 6 9 12 9zM300 500v-200h100v200h-100zM300 200v-100h100v100h-100z" />
+    <glyph glyph-name="d9" unicode="&#xe0d9;"
+d="M375 800c138 0 269 -39 378 -109l-53 -82c-93 60 -205 91 -325 91c-119 0 -229 -32 -322 -91l-53 82c109 70 237 109 375 109zM375 500c78 0 154 -23 216 -62l-53 -85c-46 30 -104 47 -163 47c-60 0 -112 -17 -159 -47l-54 85c62 40 134 62 213 62zM375 200
+c55 0 100 -45 100 -100s-45 -100 -100 -100s-100 45 -100 100s45 100 100 100z" />
+    <glyph glyph-name="da" unicode="&#xe0da;" horiz-adv-x="900"
+d="M551 800c16 0 32 0 47 -3l-97 -97v-200h200l97 97c3 -15 3 -31 3 -47c0 -138 -112 -250 -250 -250c-32 0 -62 8 -90 19l-288 -291c-20 -20 -46 -28 -72 -28s-52 8 -72 28c-39 39 -39 105 0 144l291 287c-11 28 -19 59 -19 91c0 138 112 250 250 250zM101 150
+c-28 0 -50 -22 -50 -50s22 -50 50 -50s50 22 50 50s-22 50 -50 50z" />
+    <glyph glyph-name="db" unicode="&#xe0db;"
+d="M141 700c84 -84 169 -167 253 -250c82 83 167 165 247 250l143 -141l-253 -253c84 -82 167 -166 253 -247l-143 -143c-81 86 -165 169 -247 253l-253 -253l-141 143c85 80 167 164 250 247c-83 84 -166 169 -250 253z" />
+    <glyph glyph-name="dc" unicode="&#xe0dc;"
+d="M0 800h100l231 -300h38l231 300h100l-225 -300h225v-100h-300v-100h300v-100h-300v-200h-100v200h-300v100h300v100h-300v100h225z" />
+    <glyph glyph-name="dd" unicode="&#xe0dd;" horiz-adv-x="900"
+d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
+c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM300 600h100v-100h100v-100h-100v-100h-100v100h-100v100h100v100z" />
+    <glyph glyph-name="de" unicode="&#xe0de;" horiz-adv-x="900"
+d="M350 800c193 0 350 -157 350 -350c0 -61 -17 -119 -44 -169c4 -2 10 -6 13 -9l103 -100c16 -16 30 -49 30 -72c0 -56 -46 -102 -102 -102c-23 0 -56 14 -72 30l-100 103c-3 3 -7 9 -9 13c-50 -28 -108 -44 -169 -44c-193 0 -350 157 -350 350s157 350 350 350zM350 700
+c-139 0 -250 -111 -250 -250s111 -250 250 -250c62 0 119 23 163 60c7 11 19 25 31 31l3 3c34 43 53 97 53 156c0 139 -111 250 -250 250zM200 500h300v-100h-300v100z" />
+  </font>
+</defs></svg>
diff --git a/pagure/static/vendor/open-iconic/fonts/open-iconic.ttf b/pagure/static/vendor/open-iconic/fonts/open-iconic.ttf
new file mode 100644
index 0000000..fab6048
Binary files /dev/null and b/pagure/static/vendor/open-iconic/fonts/open-iconic.ttf differ
diff --git a/pagure/static/vendor/open-iconic/fonts/open-iconic.woff b/pagure/static/vendor/open-iconic/fonts/open-iconic.woff
new file mode 100644
index 0000000..f930998
Binary files /dev/null and b/pagure/static/vendor/open-iconic/fonts/open-iconic.woff differ
diff --git a/pagure/static/vendor/selectize/selectize-0.12.3.js b/pagure/static/vendor/selectize/selectize-0.12.3.js
new file mode 100644
index 0000000..e07d88f
--- /dev/null
+++ b/pagure/static/vendor/selectize/selectize-0.12.3.js
@@ -0,0 +1,3829 @@
+/**
+ * sifter.js
+ * Copyright (c) 2013 Brian Reavis & contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
+ * file except in compliance with the License. You may obtain a copy of the License at:
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ * ANY KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ *
+ * @author Brian Reavis <brian@thirdroute.com>
+ */
+
+(function(root, factory) {
+	if (typeof define === 'function' && define.amd) {
+		define('sifter', factory);
+	} else if (typeof exports === 'object') {
+		module.exports = factory();
+	} else {
+		root.Sifter = factory();
+	}
+}(this, function() {
+
+	/**
+	 * Textually searches arrays and hashes of objects
+	 * by property (or multiple properties). Designed
+	 * specifically for autocomplete.
+	 *
+	 * @constructor
+	 * @param {array|object} items
+	 * @param {object} items
+	 */
+	var Sifter = function(items, settings) {
+		this.items = items;
+		this.settings = settings || {diacritics: true};
+	};
+
+	/**
+	 * Splits a search string into an array of individual
+	 * regexps to be used to match results.
+	 *
+	 * @param {string} query
+	 * @returns {array}
+	 */
+	Sifter.prototype.tokenize = function(query) {
+		query = trim(String(query || '').toLowerCase());
+		if (!query || !query.length) return [];
+
+		var i, n, regex, letter;
+		var tokens = [];
+		var words = query.split(/ +/);
+
+		for (i = 0, n = words.length; i < n; i++) {
+			regex = escape_regex(words[i]);
+			if (this.settings.diacritics) {
+				for (letter in DIACRITICS) {
+					if (DIACRITICS.hasOwnProperty(letter)) {
+						regex = regex.replace(new RegExp(letter, 'g'), DIACRITICS[letter]);
+					}
+				}
+			}
+			tokens.push({
+				string : words[i],
+				regex  : new RegExp(regex, 'i')
+			});
+		}
+
+		return tokens;
+	};
+
+	/**
+	 * Iterates over arrays and hashes.
+	 *
+	 * ```
+	 * this.iterator(this.items, function(item, id) {
+	 *    // invoked for each item
+	 * });
+	 * ```
+	 *
+	 * @param {array|object} object
+	 */
+	Sifter.prototype.iterator = function(object, callback) {
+		var iterator;
+		if (is_array(object)) {
+			iterator = Array.prototype.forEach || function(callback) {
+				for (var i = 0, n = this.length; i < n; i++) {
+					callback(this[i], i, this);
+				}
+			};
+		} else {
+			iterator = function(callback) {
+				for (var key in this) {
+					if (this.hasOwnProperty(key)) {
+						callback(this[key], key, this);
+					}
+				}
+			};
+		}
+
+		iterator.apply(object, [callback]);
+	};
+
+	/**
+	 * Returns a function to be used to score individual results.
+	 *
+	 * Good matches will have a higher score than poor matches.
+	 * If an item is not a match, 0 will be returned by the function.
+	 *
+	 * @param {object|string} search
+	 * @param {object} options (optional)
+	 * @returns {function}
+	 */
+	Sifter.prototype.getScoreFunction = function(search, options) {
+		var self, fields, tokens, token_count, nesting;
+
+		self        = this;
+		search      = self.prepareSearch(search, options);
+		tokens      = search.tokens;
+		fields      = search.options.fields;
+		token_count = tokens.length;
+		nesting     = search.options.nesting;
+
+		/**
+		 * Calculates how close of a match the
+		 * given value is against a search token.
+		 *
+		 * @param {mixed} value
+		 * @param {object} token
+		 * @return {number}
+		 */
+		var scoreValue = function(value, token) {
+			var score, pos;
+
+			if (!value) return 0;
+			value = String(value || '');
+			pos = value.search(token.regex);
+			if (pos === -1) return 0;
+			score = token.string.length / value.length;
+			if (pos === 0) score += 0.5;
+			return score;
+		};
+
+		/**
+		 * Calculates the score of an object
+		 * against the search query.
+		 *
+		 * @param {object} token
+		 * @param {object} data
+		 * @return {number}
+		 */
+		var scoreObject = (function() {
+			var field_count = fields.length;
+			if (!field_count) {
+				return function() { return 0; };
+			}
+			if (field_count === 1) {
+				return function(token, data) {
+					return scoreValue(getattr(data, fields[0], nesting), token);
+				};
+			}
+			return function(token, data) {
+				for (var i = 0, sum = 0; i < field_count; i++) {
+					sum += scoreValue(getattr(data, fields[i], nesting), token);
+				}
+				return sum / field_count;
+			};
+		})();
+
+		if (!token_count) {
+			return function() { return 0; };
+		}
+		if (token_count === 1) {
+			return function(data) {
+				return scoreObject(tokens[0], data);
+			};
+		}
+
+		if (search.options.conjunction === 'and') {
+			return function(data) {
+				var score;
+				for (var i = 0, sum = 0; i < token_count; i++) {
+					score = scoreObject(tokens[i], data);
+					if (score <= 0) return 0;
+					sum += score;
+				}
+				return sum / token_count;
+			};
+		} else {
+			return function(data) {
+				for (var i = 0, sum = 0; i < token_count; i++) {
+					sum += scoreObject(tokens[i], data);
+				}
+				return sum / token_count;
+			};
+		}
+	};
+
+	/**
+	 * Returns a function that can be used to compare two
+	 * results, for sorting purposes. If no sorting should
+	 * be performed, `null` will be returned.
+	 *
+	 * @param {string|object} search
+	 * @param {object} options
+	 * @return function(a,b)
+	 */
+	Sifter.prototype.getSortFunction = function(search, options) {
+		var i, n, self, field, fields, fields_count, multiplier, multipliers, get_field, implicit_score, sort;
+
+		self   = this;
+		search = self.prepareSearch(search, options);
+		sort   = (!search.query && options.sort_empty) || options.sort;
+
+		/**
+		 * Fetches the specified sort field value
+		 * from a search result item.
+		 *
+		 * @param  {string} name
+		 * @param  {object} result
+		 * @return {mixed}
+		 */
+		get_field = function(name, result) {
+			if (name === '$score') return result.score;
+			return getattr(self.items[result.id], name, options.nesting);
+		};
+
+		// parse options
+		fields = [];
+		if (sort) {
+			for (i = 0, n = sort.length; i < n; i++) {
+				if (search.query || sort[i].field !== '$score') {
+					fields.push(sort[i]);
+				}
+			}
+		}
+
+		// the "$score" field is implied to be the primary
+		// sort field, unless it's manually specified
+		if (search.query) {
+			implicit_score = true;
+			for (i = 0, n = fields.length; i < n; i++) {
+				if (fields[i].field === '$score') {
+					implicit_score = false;
+					break;
+				}
+			}
+			if (implicit_score) {
+				fields.unshift({field: '$score', direction: 'desc'});
+			}
+		} else {
+			for (i = 0, n = fields.length; i < n; i++) {
+				if (fields[i].field === '$score') {
+					fields.splice(i, 1);
+					break;
+				}
+			}
+		}
+
+		multipliers = [];
+		for (i = 0, n = fields.length; i < n; i++) {
+			multipliers.push(fields[i].direction === 'desc' ? -1 : 1);
+		}
+
+		// build function
+		fields_count = fields.length;
+		if (!fields_count) {
+			return null;
+		} else if (fields_count === 1) {
+			field = fields[0].field;
+			multiplier = multipliers[0];
+			return function(a, b) {
+				return multiplier * cmp(
+					get_field(field, a),
+					get_field(field, b)
+				);
+			};
+		} else {
+			return function(a, b) {
+				var i, result, a_value, b_value, field;
+				for (i = 0; i < fields_count; i++) {
+					field = fields[i].field;
+					result = multipliers[i] * cmp(
+						get_field(field, a),
+						get_field(field, b)
+					);
+					if (result) return result;
+				}
+				return 0;
+			};
+		}
+	};
+
+	/**
+	 * Parses a search query and returns an object
+	 * with tokens and fields ready to be populated
+	 * with results.
+	 *
+	 * @param {string} query
+	 * @param {object} options
+	 * @returns {object}
+	 */
+	Sifter.prototype.prepareSearch = function(query, options) {
+		if (typeof query === 'object') return query;
+
+		options = extend({}, options);
+
+		var option_fields     = options.fields;
+		var option_sort       = options.sort;
+		var option_sort_empty = options.sort_empty;
+
+		if (option_fields && !is_array(option_fields)) options.fields = [option_fields];
+		if (option_sort && !is_array(option_sort)) options.sort = [option_sort];
+		if (option_sort_empty && !is_array(option_sort_empty)) options.sort_empty = [option_sort_empty];
+
+		return {
+			options : options,
+			query   : String(query || '').toLowerCase(),
+			tokens  : this.tokenize(query),
+			total   : 0,
+			items   : []
+		};
+	};
+
+	/**
+	 * Searches through all items and returns a sorted array of matches.
+	 *
+	 * The `options` parameter can contain:
+	 *
+	 *   - fields {string|array}
+	 *   - sort {array}
+	 *   - score {function}
+	 *   - filter {bool}
+	 *   - limit {integer}
+	 *
+	 * Returns an object containing:
+	 *
+	 *   - options {object}
+	 *   - query {string}
+	 *   - tokens {array}
+	 *   - total {int}
+	 *   - items {array}
+	 *
+	 * @param {string} query
+	 * @param {object} options
+	 * @returns {object}
+	 */
+	Sifter.prototype.search = function(query, options) {
+		var self = this, value, score, search, calculateScore;
+		var fn_sort;
+		var fn_score;
+
+		search  = this.prepareSearch(query, options);
+		options = search.options;
+		query   = search.query;
+
+		// generate result scoring function
+		fn_score = options.score || self.getScoreFunction(search);
+
+		// perform search and sort
+		if (query.length) {
+			self.iterator(self.items, function(item, id) {
+				score = fn_score(item);
+				if (options.filter === false || score > 0) {
+					search.items.push({'score': score, 'id': id});
+				}
+			});
+		} else {
+			self.iterator(self.items, function(item, id) {
+				search.items.push({'score': 1, 'id': id});
+			});
+		}
+
+		fn_sort = self.getSortFunction(search, options);
+		if (fn_sort) search.items.sort(fn_sort);
+
+		// apply limits
+		search.total = search.items.length;
+		if (typeof options.limit === 'number') {
+			search.items = search.items.slice(0, options.limit);
+		}
+
+		return search;
+	};
+
+	// utilities
+	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+	var cmp = function(a, b) {
+		if (typeof a === 'number' && typeof b === 'number') {
+			return a > b ? 1 : (a < b ? -1 : 0);
+		}
+		a = asciifold(String(a || ''));
+		b = asciifold(String(b || ''));
+		if (a > b) return 1;
+		if (b > a) return -1;
+		return 0;
+	};
+
+	var extend = function(a, b) {
+		var i, n, k, object;
+		for (i = 1, n = arguments.length; i < n; i++) {
+			object = arguments[i];
+			if (!object) continue;
+			for (k in object) {
+				if (object.hasOwnProperty(k)) {
+					a[k] = object[k];
+				}
+			}
+		}
+		return a;
+	};
+
+	/**
+	 * A property getter resolving dot-notation
+	 * @param  {Object}  obj     The root object to fetch property on
+	 * @param  {String}  name    The optionally dotted property name to fetch
+	 * @param  {Boolean} nesting Handle nesting or not
+	 * @return {Object}          The resolved property value
+	 */
+	var getattr = function(obj, name, nesting) {
+	    if (!obj || !name) return;
+	    if (!nesting) return obj[name];
+	    var names = name.split(".");
+	    while(names.length && (obj = obj[names.shift()]));
+	    return obj;
+	};
+
+	var trim = function(str) {
+		return (str + '').replace(/^\s+|\s+$|/g, '');
+	};
+
+	var escape_regex = function(str) {
+		return (str + '').replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1');
+	};
+
+	var is_array = Array.isArray || (typeof $ !== 'undefined' && $.isArray) || function(object) {
+		return Object.prototype.toString.call(object) === '[object Array]';
+	};
+
+	var DIACRITICS = {
+		'a': '[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]',
+		'b': '[b␢βΒB฿𐌁ᛒ]',
+		'c': '[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄＣｃ]',
+		'd': '[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅＤｄð]',
+		'e': '[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇＥｅɘǝƏƐε]',
+		'f': '[fƑƒḞḟ]',
+		'g': '[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]',
+		'h': '[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]',
+		'i': '[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪＩｉ]',
+		'j': '[jȷĴĵɈɉʝɟʲ]',
+		'k': '[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]',
+		'l': '[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟＬｌ]',
+		'n': '[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴＮｎŊŋ]',
+		'o': '[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]',
+		'p': '[pṔṕṖṗⱣᵽƤƥᵱ]',
+		'q': '[qꝖꝗʠɊɋꝘꝙq̃]',
+		'r': '[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]',
+		's': '[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]',
+		't': '[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]',
+		'u': '[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]',
+		'v': '[vṼṽṾṿƲʋꝞꝟⱱʋ]',
+		'w': '[wẂẃẀẁŴŵẄẅẆẇẈẉ]',
+		'x': '[xẌẍẊẋχ]',
+		'y': '[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]',
+		'z': '[zŹźẐẑŽžŻżẒẓẔẕƵƶ]'
+	};
+
+	var asciifold = (function() {
+		var i, n, k, chunk;
+		var foreignletters = '';
+		var lookup = {};
+		for (k in DIACRITICS) {
+			if (DIACRITICS.hasOwnProperty(k)) {
+				chunk = DIACRITICS[k].substring(2, DIACRITICS[k].length - 1);
+				foreignletters += chunk;
+				for (i = 0, n = chunk.length; i < n; i++) {
+					lookup[chunk.charAt(i)] = k;
+				}
+			}
+		}
+		var regexp = new RegExp('[' +  foreignletters + ']', 'g');
+		return function(str) {
+			return str.replace(regexp, function(foreignletter) {
+				return lookup[foreignletter];
+			}).toLowerCase();
+		};
+	})();
+
+
+	// export
+	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+	return Sifter;
+}));
+
+
+
+/**
+ * microplugin.js
+ * Copyright (c) 2013 Brian Reavis & contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
+ * file except in compliance with the License. You may obtain a copy of the License at:
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ * ANY KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ *
+ * @author Brian Reavis <brian@thirdroute.com>
+ */
+
+(function(root, factory) {
+	if (typeof define === 'function' && define.amd) {
+		define('microplugin', factory);
+	} else if (typeof exports === 'object') {
+		module.exports = factory();
+	} else {
+		root.MicroPlugin = factory();
+	}
+}(this, function() {
+	var MicroPlugin = {};
+
+	MicroPlugin.mixin = function(Interface) {
+		Interface.plugins = {};
+
+		/**
+		 * Initializes the listed plugins (with options).
+		 * Acceptable formats:
+		 *
+		 * List (without options):
+		 *   ['a', 'b', 'c']
+		 *
+		 * List (with options):
+		 *   [{'name': 'a', options: {}}, {'name': 'b', options: {}}]
+		 *
+		 * Hash (with options):
+		 *   {'a': { ... }, 'b': { ... }, 'c': { ... }}
+		 *
+		 * @param {mixed} plugins
+		 */
+		Interface.prototype.initializePlugins = function(plugins) {
+			var i, n, key;
+			var self  = this;
+			var queue = [];
+
+			self.plugins = {
+				names     : [],
+				settings  : {},
+				requested : {},
+				loaded    : {}
+			};
+
+			if (utils.isArray(plugins)) {
+				for (i = 0, n = plugins.length; i < n; i++) {
+					if (typeof plugins[i] === 'string') {
+						queue.push(plugins[i]);
+					} else {
+						self.plugins.settings[plugins[i].name] = plugins[i].options;
+						queue.push(plugins[i].name);
+					}
+				}
+			} else if (plugins) {
+				for (key in plugins) {
+					if (plugins.hasOwnProperty(key)) {
+						self.plugins.settings[key] = plugins[key];
+						queue.push(key);
+					}
+				}
+			}
+
+			while (queue.length) {
+				self.require(queue.shift());
+			}
+		};
+
+		Interface.prototype.loadPlugin = function(name) {
+			var self    = this;
+			var plugins = self.plugins;
+			var plugin  = Interface.plugins[name];
+
+			if (!Interface.plugins.hasOwnProperty(name)) {
+				throw new Error('Unable to find "' +  name + '" plugin');
+			}
+
+			plugins.requested[name] = true;
+			plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);
+			plugins.names.push(name);
+		};
+
+		/**
+		 * Initializes a plugin.
+		 *
+		 * @param {string} name
+		 */
+		Interface.prototype.require = function(name) {
+			var self = this;
+			var plugins = self.plugins;
+
+			if (!self.plugins.loaded.hasOwnProperty(name)) {
+				if (plugins.requested[name]) {
+					throw new Error('Plugin has circular dependency ("' + name + '")');
+				}
+				self.loadPlugin(name);
+			}
+
+			return plugins.loaded[name];
+		};
+
+		/**
+		 * Registers a plugin.
+		 *
+		 * @param {string} name
+		 * @param {function} fn
+		 */
+		Interface.define = function(name, fn) {
+			Interface.plugins[name] = {
+				'name' : name,
+				'fn'   : fn
+			};
+		};
+	};
+
+	var utils = {
+		isArray: Array.isArray || function(vArg) {
+			return Object.prototype.toString.call(vArg) === '[object Array]';
+		}
+	};
+
+	return MicroPlugin;
+}));
+
+/**
+ * selectize.js (v0.12.3)
+ * Copyright (c) 2013–2015 Brian Reavis & contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
+ * file except in compliance with the License. You may obtain a copy of the License at:
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ * ANY KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ *
+ * @author Brian Reavis <brian@thirdroute.com>
+ */
+
+/*jshint curly:false */
+/*jshint browser:true */
+
+(function(root, factory) {
+	if (typeof define === 'function' && define.amd) {
+		define('selectize', ['jquery','sifter','microplugin'], factory);
+	} else if (typeof exports === 'object') {
+		module.exports = factory(require('jquery'), require('sifter'), require('microplugin'));
+	} else {
+		root.Selectize = factory(root.jQuery, root.Sifter, root.MicroPlugin);
+	}
+}(this, function($, Sifter, MicroPlugin) {
+	'use strict';
+
+	var highlight = function($element, pattern) {
+		if (typeof pattern === 'string' && !pattern.length) return;
+		var regex = (typeof pattern === 'string') ? new RegExp(pattern, 'i') : pattern;
+	
+		var highlight = function(node) {
+			var skip = 0;
+			if (node.nodeType === 3) {
+				var pos = node.data.search(regex);
+				if (pos >= 0 && node.data.length > 0) {
+					var match = node.data.match(regex);
+					var spannode = document.createElement('span');
+					spannode.className = 'highlight';
+					var middlebit = node.splitText(pos);
+					var endbit = middlebit.splitText(match[0].length);
+					var middleclone = middlebit.cloneNode(true);
+					spannode.appendChild(middleclone);
+					middlebit.parentNode.replaceChild(spannode, middlebit);
+					skip = 1;
+				}
+			} else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
+				for (var i = 0; i < node.childNodes.length; ++i) {
+					i += highlight(node.childNodes[i]);
+				}
+			}
+			return skip;
+		};
+	
+		return $element.each(function() {
+			highlight(this);
+		});
+	};
+	
+	/**
+	 * removeHighlight fn copied from highlight v5 and
+	 * edited to remove with() and pass js strict mode
+	 */
+	jQuery.fn.removeHighlight = function() {
+		return this.find("span.highlight").each(function() {
+			this.parentNode.firstChild.nodeName;
+			var parent = this.parentNode;
+			parent.replaceChild(this.firstChild, this);
+			parent.normalize();
+		}).end();
+	};
+	
+	
+	var MicroEvent = function() {};
+	MicroEvent.prototype = {
+		on: function(event, fct){
+			this._events = this._events || {};
+			this._events[event] = this._events[event] || [];
+			this._events[event].push(fct);
+		},
+		off: function(event, fct){
+			var n = arguments.length;
+			if (n === 0) return delete this._events;
+			if (n === 1) return delete this._events[event];
+	
+			this._events = this._events || {};
+			if (event in this._events === false) return;
+			this._events[event].splice(this._events[event].indexOf(fct), 1);
+		},
+		trigger: function(event /* , args... */){
+			this._events = this._events || {};
+			if (event in this._events === false) return;
+			for (var i = 0; i < this._events[event].length; i++){
+				this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));
+			}
+		}
+	};
+	
+	/**
+	 * Mixin will delegate all MicroEvent.js function in the destination object.
+	 *
+	 * - MicroEvent.mixin(Foobar) will make Foobar able to use MicroEvent
+	 *
+	 * @param {object} the object which will support MicroEvent
+	 */
+	MicroEvent.mixin = function(destObject){
+		var props = ['on', 'off', 'trigger'];
+		for (var i = 0; i < props.length; i++){
+			destObject.prototype[props[i]] = MicroEvent.prototype[props[i]];
+		}
+	};
+	
+	var IS_MAC        = /Mac/.test(navigator.userAgent);
+	
+	var KEY_A         = 65;
+	var KEY_COMMA     = 188;
+	var KEY_RETURN    = 13;
+	var KEY_ESC       = 27;
+	var KEY_LEFT      = 37;
+	var KEY_UP        = 38;
+	var KEY_P         = 80;
+	var KEY_RIGHT     = 39;
+	var KEY_DOWN      = 40;
+	var KEY_N         = 78;
+	var KEY_BACKSPACE = 8;
+	var KEY_DELETE    = 46;
+	var KEY_SHIFT     = 16;
+	var KEY_CMD       = IS_MAC ? 91 : 17;
+	var KEY_CTRL      = IS_MAC ? 18 : 17;
+	var KEY_TAB       = 9;
+	
+	var TAG_SELECT    = 1;
+	var TAG_INPUT     = 2;
+	
+	// for now, android support in general is too spotty to support validity
+	var SUPPORTS_VALIDITY_API = !/android/i.test(window.navigator.userAgent) && !!document.createElement('input').validity;
+	
+	
+	var isset = function(object) {
+		return typeof object !== 'undefined';
+	};
+	
+	/**
+	 * Converts a scalar to its best string representation
+	 * for hash keys and HTML attribute values.
+	 *
+	 * Transformations:
+	 *   'str'     -> 'str'
+	 *   null      -> ''
+	 *   undefined -> ''
+	 *   true      -> '1'
+	 *   false     -> '0'
+	 *   0         -> '0'
+	 *   1         -> '1'
+	 *
+	 * @param {string} value
+	 * @returns {string|null}
+	 */
+	var hash_key = function(value) {
+		if (typeof value === 'undefined' || value === null) return null;
+		if (typeof value === 'boolean') return value ? '1' : '0';
+		return value + '';
+	};
+	
+	/**
+	 * Escapes a string for use within HTML.
+	 *
+	 * @param {string} str
+	 * @returns {string}
+	 */
+	var escape_html = function(str) {
+		return (str + '')
+			.replace(/&/g, '&amp;')
+			.replace(/</g, '&lt;')
+			.replace(/>/g, '&gt;')
+			.replace(/"/g, '&quot;');
+	};
+	
+	/**
+	 * Escapes "$" characters in replacement strings.
+	 *
+	 * @param {string} str
+	 * @returns {string}
+	 */
+	var escape_replace = function(str) {
+		return (str + '').replace(/\$/g, '$$$$');
+	};
+	
+	var hook = {};
+	
+	/**
+	 * Wraps `method` on `self` so that `fn`
+	 * is invoked before the original method.
+	 *
+	 * @param {object} self
+	 * @param {string} method
+	 * @param {function} fn
+	 */
+	hook.before = function(self, method, fn) {
+		var original = self[method];
+		self[method] = function() {
+			fn.apply(self, arguments);
+			return original.apply(self, arguments);
+		};
+	};
+	
+	/**
+	 * Wraps `method` on `self` so that `fn`
+	 * is invoked after the original method.
+	 *
+	 * @param {object} self
+	 * @param {string} method
+	 * @param {function} fn
+	 */
+	hook.after = function(self, method, fn) {
+		var original = self[method];
+		self[method] = function() {
+			var result = original.apply(self, arguments);
+			fn.apply(self, arguments);
+			return result;
+		};
+	};
+	
+	/**
+	 * Wraps `fn` so that it can only be invoked once.
+	 *
+	 * @param {function} fn
+	 * @returns {function}
+	 */
+	var once = function(fn) {
+		var called = false;
+		return function() {
+			if (called) return;
+			called = true;
+			fn.apply(this, arguments);
+		};
+	};
+	
+	/**
+	 * Wraps `fn` so that it can only be called once
+	 * every `delay` milliseconds (invoked on the falling edge).
+	 *
+	 * @param {function} fn
+	 * @param {int} delay
+	 * @returns {function}
+	 */
+	var debounce = function(fn, delay) {
+		var timeout;
+		return function() {
+			var self = this;
+			var args = arguments;
+			window.clearTimeout(timeout);
+			timeout = window.setTimeout(function() {
+				fn.apply(self, args);
+			}, delay);
+		};
+	};
+	
+	/**
+	 * Debounce all fired events types listed in `types`
+	 * while executing the provided `fn`.
+	 *
+	 * @param {object} self
+	 * @param {array} types
+	 * @param {function} fn
+	 */
+	var debounce_events = function(self, types, fn) {
+		var type;
+		var trigger = self.trigger;
+		var event_args = {};
+	
+		// override trigger method
+		self.trigger = function() {
+			var type = arguments[0];
+			if (types.indexOf(type) !== -1) {
+				event_args[type] = arguments;
+			} else {
+				return trigger.apply(self, arguments);
+			}
+		};
+	
+		// invoke provided function
+		fn.apply(self, []);
+		self.trigger = trigger;
+	
+		// trigger queued events
+		for (type in event_args) {
+			if (event_args.hasOwnProperty(type)) {
+				trigger.apply(self, event_args[type]);
+			}
+		}
+	};
+	
+	/**
+	 * A workaround for http://bugs.jquery.com/ticket/6696
+	 *
+	 * @param {object} $parent - Parent element to listen on.
+	 * @param {string} event - Event name.
+	 * @param {string} selector - Descendant selector to filter by.
+	 * @param {function} fn - Event handler.
+	 */
+	var watchChildEvent = function($parent, event, selector, fn) {
+		$parent.on(event, selector, function(e) {
+			var child = e.target;
+			while (child && child.parentNode !== $parent[0]) {
+				child = child.parentNode;
+			}
+			e.currentTarget = child;
+			return fn.apply(this, [e]);
+		});
+	};
+	
+	/**
+	 * Determines the current selection within a text input control.
+	 * Returns an object containing:
+	 *   - start
+	 *   - length
+	 *
+	 * @param {object} input
+	 * @returns {object}
+	 */
+	var getSelection = function(input) {
+		var result = {};
+		if ('selectionStart' in input) {
+			result.start = input.selectionStart;
+			result.length = input.selectionEnd - result.start;
+		} else if (document.selection) {
+			input.focus();
+			var sel = document.selection.createRange();
+			var selLen = document.selection.createRange().text.length;
+			sel.moveStart('character', -input.value.length);
+			result.start = sel.text.length - selLen;
+			result.length = selLen;
+		}
+		return result;
+	};
+	
+	/**
+	 * Copies CSS properties from one element to another.
+	 *
+	 * @param {object} $from
+	 * @param {object} $to
+	 * @param {array} properties
+	 */
+	var transferStyles = function($from, $to, properties) {
+		var i, n, styles = {};
+		if (properties) {
+			for (i = 0, n = properties.length; i < n; i++) {
+				styles[properties[i]] = $from.css(properties[i]);
+			}
+		} else {
+			styles = $from.css();
+		}
+		$to.css(styles);
+	};
+	
+	/**
+	 * Measures the width of a string within a
+	 * parent element (in pixels).
+	 *
+	 * @param {string} str
+	 * @param {object} $parent
+	 * @returns {int}
+	 */
+	var measureString = function(str, $parent) {
+		if (!str) {
+			return 0;
+		}
+	
+		var $test = $('<test>').css({
+			position: 'absolute',
+			top: -99999,
+			left: -99999,
+			width: 'auto',
+			padding: 0,
+			whiteSpace: 'pre'
+		}).text(str).appendTo('body');
+	
+		transferStyles($parent, $test, [
+			'letterSpacing',
+			'fontSize',
+			'fontFamily',
+			'fontWeight',
+			'textTransform'
+		]);
+	
+		var width = $test.width();
+		$test.remove();
+	
+		return width;
+	};
+	
+	/**
+	 * Sets up an input to grow horizontally as the user
+	 * types. If the value is changed manually, you can
+	 * trigger the "update" handler to resize:
+	 *
+	 * $input.trigger('update');
+	 *
+	 * @param {object} $input
+	 */
+	var autoGrow = function($input) {
+		var currentWidth = null;
+	
+		var update = function(e, options) {
+			var value, keyCode, printable, placeholder, width;
+			var shift, character, selection;
+			e = e || window.event || {};
+			options = options || {};
+	
+			if (e.metaKey || e.altKey) return;
+			if (!options.force && $input.data('grow') === false) return;
+	
+			value = $input.val();
+			if (e.type && e.type.toLowerCase() === 'keydown') {
+				keyCode = e.keyCode;
+				printable = (
+					(keyCode >= 97 && keyCode <= 122) || // a-z
+					(keyCode >= 65 && keyCode <= 90)  || // A-Z
+					(keyCode >= 48 && keyCode <= 57)  || // 0-9
+					keyCode === 32 // space
+				);
+	
+				if (keyCode === KEY_DELETE || keyCode === KEY_BACKSPACE) {
+					selection = getSelection($input[0]);
+					if (selection.length) {
+						value = value.substring(0, selection.start) + value.substring(selection.start + selection.length);
+					} else if (keyCode === KEY_BACKSPACE && selection.start) {
+						value = value.substring(0, selection.start - 1) + value.substring(selection.start + 1);
+					} else if (keyCode === KEY_DELETE && typeof selection.start !== 'undefined') {
+						value = value.substring(0, selection.start) + value.substring(selection.start + 1);
+					}
+				} else if (printable) {
+					shift = e.shiftKey;
+					character = String.fromCharCode(e.keyCode);
+					if (shift) character = character.toUpperCase();
+					else character = character.toLowerCase();
+					value += character;
+				}
+			}
+	
+			placeholder = $input.attr('placeholder');
+			if (!value && placeholder) {
+				value = placeholder;
+			}
+	
+			width = measureString(value, $input) + 4;
+			if (width !== currentWidth) {
+				currentWidth = width;
+				$input.width(width);
+				$input.triggerHandler('resize');
+			}
+		};
+	
+		$input.on('keydown keyup update blur', update);
+		update();
+	};
+	
+	var domToString = function(d) {
+		var tmp = document.createElement('div');
+	
+		tmp.appendChild(d.cloneNode(true));
+	
+		return tmp.innerHTML;
+	};
+	
+	var logError = function(message, options){
+		if(!options) options = {};
+		var component = "Selectize";
+	
+		console.error(component + ": " + message)
+	
+		if(options.explanation){
+			// console.group is undefined in <IE11
+			if(console.group) console.group();
+			console.error(options.explanation);
+			if(console.group) console.groupEnd();
+		}
+	}
+	
+	
+	var Selectize = function($input, settings) {
+		var key, i, n, dir, input, self = this;
+		input = $input[0];
+		input.selectize = self;
+	
+		// detect rtl environment
+		var computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);
+		dir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;
+		dir = dir || $input.parents('[dir]:first').attr('dir') || '';
+	
+		// setup default state
+		$.extend(self, {
+			order            : 0,
+			settings         : settings,
+			$input           : $input,
+			tabIndex         : $input.attr('tabindex') || '',
+			tagType          : input.tagName.toLowerCase() === 'select' ? TAG_SELECT : TAG_INPUT,
+			rtl              : /rtl/i.test(dir),
+	
+			eventNS          : '.selectize' + (++Selectize.count),
+			highlightedValue : null,
+			isOpen           : false,
+			isDisabled       : false,
+			isRequired       : $input.is('[required]'),
+			isInvalid        : false,
+			isLocked         : false,
+			isFocused        : false,
+			isInputHidden    : false,
+			isSetup          : false,
+			isShiftDown      : false,
+			isCmdDown        : false,
+			isCtrlDown       : false,
+			ignoreFocus      : false,
+			ignoreBlur       : false,
+			ignoreHover      : false,
+			hasOptions       : false,
+			currentResults   : null,
+			lastValue        : '',
+			caretPos         : 0,
+			loading          : 0,
+			loadedSearches   : {},
+	
+			$activeOption    : null,
+			$activeItems     : [],
+	
+			optgroups        : {},
+			options          : {},
+			userOptions      : {},
+			items            : [],
+			renderCache      : {},
+			onSearchChange   : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)
+		});
+	
+		// search system
+		self.sifter = new Sifter(this.options, {diacritics: settings.diacritics});
+	
+		// build options table
+		if (self.settings.options) {
+			for (i = 0, n = self.settings.options.length; i < n; i++) {
+				self.registerOption(self.settings.options[i]);
+			}
+			delete self.settings.options;
+		}
+	
+		// build optgroup table
+		if (self.settings.optgroups) {
+			for (i = 0, n = self.settings.optgroups.length; i < n; i++) {
+				self.registerOptionGroup(self.settings.optgroups[i]);
+			}
+			delete self.settings.optgroups;
+		}
+	
+		// option-dependent defaults
+		self.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');
+		if (typeof self.settings.hideSelected !== 'boolean') {
+			self.settings.hideSelected = self.settings.mode === 'multi';
+		}
+	
+		self.initializePlugins(self.settings.plugins);
+		self.setupCallbacks();
+		self.setupTemplates();
+		self.setup();
+	};
+	
+	// mixins
+	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+	
+	MicroEvent.mixin(Selectize);
+	
+	if(typeof MicroPlugin !== "undefined"){
+		MicroPlugin.mixin(Selectize);
+	}else{
+		logError("Dependency MicroPlugin is missing",
+			{explanation:
+				"Make sure you either: (1) are using the \"standalone\" "+
+				"version of Selectize, or (2) require MicroPlugin before you "+
+				"load Selectize."}
+		);
+	}
+	
+	
+	// methods
+	// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+	
+	$.extend(Selectize.prototype, {
+	
+		/**
+		 * Creates all elements and sets up event bindings.
+		 */
+		setup: function() {
+			var self      = this;
+			var settings  = self.settings;
+			var eventNS   = self.eventNS;
+			var $window   = $(window);
+			var $document = $(document);
+			var $input    = self.$input;
+	
+			var $wrapper;
+			var $control;
+			var $control_input;
+			var $dropdown;
+			var $dropdown_content;
+			var $dropdown_parent;
+			var inputMode;
+			var timeout_blur;
+			var timeout_focus;
+			var classes;
+			var classes_plugins;
+			var inputId;
+	
+			inputMode         = self.settings.mode;
+			classes           = $input.attr('class') || '';
+	
+			$wrapper          = $('<div>').addClass(settings.wrapperClass).addClass(classes).addClass(inputMode);
+			$control          = $('<div>').addClass(settings.inputClass).addClass('items').appendTo($wrapper);
+			$control_input    = $('<input type="text" autocomplete="off" />').appendTo($control).attr('tabindex', $input.is(':disabled') ? '-1' : self.tabIndex);
+			$dropdown_parent  = $(settings.dropdownParent || $wrapper);
+			$dropdown         = $('<div>').addClass(settings.dropdownClass).addClass(inputMode).hide().appendTo($dropdown_parent);
+			$dropdown_content = $('<div>').addClass(settings.dropdownContentClass).appendTo($dropdown);
+	
+			if(inputId = $input.attr('id')) {
+				$control_input.attr('id', inputId + '-selectized');
+				$("label[for='"+inputId+"']").attr('for', inputId + '-selectized');
+			}
+	
+			if(self.settings.copyClassesToDropdown) {
+				$dropdown.addClass(classes);
+			}
+	
+			$wrapper.css({
+				width: $input[0].style.width
+			});
+	
+			if (self.plugins.names.length) {
+				classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');
+				$wrapper.addClass(classes_plugins);
+				$dropdown.addClass(classes_plugins);
+			}
+	
+			if ((settings.maxItems === null || settings.maxItems > 1) && self.tagType === TAG_SELECT) {
+				$input.attr('multiple', 'multiple');
+			}
+	
+			if (self.settings.placeholder) {
+				$control_input.attr('placeholder', settings.placeholder);
+			}
+	
+			// if splitOn was not passed in, construct it from the delimiter to allow pasting universally
+			if (!self.settings.splitOn && self.settings.delimiter) {
+				var delimiterEscaped = self.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+				self.settings.splitOn = new RegExp('\\s*' + delimiterEscaped + '+\\s*');
+			}
+	
+			if ($input.attr('autocorrect')) {
+				$control_input.attr('autocorrect', $input.attr('autocorrect'));
+			}
+	
+			if ($input.attr('autocapitalize')) {
+				$control_input.attr('autocapitalize', $input.attr('autocapitalize'));
+			}
+	
+			self.$wrapper          = $wrapper;
+			self.$control          = $control;
+			self.$control_input    = $control_input;
+			self.$dropdown         = $dropdown;
+			self.$dropdown_content = $dropdown_content;
+	
+			$dropdown.on('mouseenter', '[data-selectable]', function() { return self.onOptionHover.apply(self, arguments); });
+			$dropdown.on('mousedown click', '[data-selectable]', function() { return self.onOptionSelect.apply(self, arguments); });
+			watchChildEvent($control, 'mousedown', '*:not(input)', function() { return self.onItemSelect.apply(self, arguments); });
+			autoGrow($control_input);
+	
+			$control.on({
+				mousedown : function() { return self.onMouseDown.apply(self, arguments); },
+				click     : function() { return self.onClick.apply(self, arguments); }
+			});
+	
+			$control_input.on({
+				mousedown : function(e) { e.stopPropagation(); },
+				keydown   : function() { return self.onKeyDown.apply(self, arguments); },
+				keyup     : function() { return self.onKeyUp.apply(self, arguments); },
+				keypress  : function() { return self.onKeyPress.apply(self, arguments); },
+				resize    : function() { self.positionDropdown.apply(self, []); },
+				blur      : function() { return self.onBlur.apply(self, arguments); },
+				focus     : function() { self.ignoreBlur = false; return self.onFocus.apply(self, arguments); },
+				paste     : function() { return self.onPaste.apply(self, arguments); }
+			});
+	
+			$document.on('keydown' + eventNS, function(e) {
+				self.isCmdDown = e[IS_MAC ? 'metaKey' : 'ctrlKey'];
+				self.isCtrlDown = e[IS_MAC ? 'altKey' : 'ctrlKey'];
+				self.isShiftDown = e.shiftKey;
+			});
+	
+			$document.on('keyup' + eventNS, function(e) {
+				if (e.keyCode === KEY_CTRL) self.isCtrlDown = false;
+				if (e.keyCode === KEY_SHIFT) self.isShiftDown = false;
+				if (e.keyCode === KEY_CMD) self.isCmdDown = false;
+			});
+	
+			$document.on('mousedown' + eventNS, function(e) {
+				if (self.isFocused) {
+					// prevent events on the dropdown scrollbar from causing the control to blur
+					if (e.target === self.$dropdown[0] || e.target.parentNode === self.$dropdown[0]) {
+						return false;
+					}
+					// blur on click outside
+					if (!self.$control.has(e.target).length && e.target !== self.$control[0]) {
+						self.blur(e.target);
+					}
+				}
+			});
+	
+			$window.on(['scroll' + eventNS, 'resize' + eventNS].join(' '), function() {
+				if (self.isOpen) {
+					self.positionDropdown.apply(self, arguments);
+				}
+			});
+			$window.on('mousemove' + eventNS, function() {
+				self.ignoreHover = false;
+			});
+	
+			// store original children and tab index so that they can be
+			// restored when the destroy() method is called.
+			this.revertSettings = {
+				$children : $input.children().detach(),
+				tabindex  : $input.attr('tabindex')
+			};
+	
+			$input.attr('tabindex', -1).hide().after(self.$wrapper);
+	
+			if ($.isArray(settings.items)) {
+				self.setValue(settings.items);
+				delete settings.items;
+			}
+	
+			// feature detect for the validation API
+			if (SUPPORTS_VALIDITY_API) {
+				$input.on('invalid' + eventNS, function(e) {
+					e.preventDefault();
+					self.isInvalid = true;
+					self.refreshState();
+				});
+			}
+	
+			self.updateOriginalInput();
+			self.refreshItems();
+			self.refreshState();
+			self.updatePlaceholder();
+			self.isSetup = true;
+	
+			if ($input.is(':disabled')) {
+				self.disable();
+			}
+	
+			self.on('change', this.onChange);
+	
+			$input.data('selectize', self);
+			$input.addClass('selectized');
+			self.trigger('initialize');
+	
+			// preload options
+			if (settings.preload === true) {
+				self.onSearchChange('');
+			}
+	
+		},
+	
+		/**
+		 * Sets up default rendering functions.
+		 */
+		setupTemplates: function() {
+			var self = this;
+			var field_label = self.settings.labelField;
+			var field_optgroup = self.settings.optgroupLabelField;
+	
+			var templates = {
+				'optgroup': function(data) {
+					return '<div class="optgroup">' + data.html + '</div>';
+				},
+				'optgroup_header': function(data, escape) {
+					return '<div class="optgroup-header">' + escape(data[field_optgroup]) + '</div>';
+				},
+				'option': function(data, escape) {
+					return '<div class="option">' + escape(data[field_label]) + '</div>';
+				},
+				'item': function(data, escape) {
+					return '<div class="item">' + escape(data[field_label]) + '</div>';
+				},
+				'option_create': function(data, escape) {
+					return '<div class="create">Add <strong>' + escape(data.input) + '</strong>&hellip;</div>';
+				}
+			};
+	
+			self.settings.render = $.extend({}, templates, self.settings.render);
+		},
+	
+		/**
+		 * Maps fired events to callbacks provided
+		 * in the settings used when creating the control.
+		 */
+		setupCallbacks: function() {
+			var key, fn, callbacks = {
+				'initialize'      : 'onInitialize',
+				'change'          : 'onChange',
+				'item_add'        : 'onItemAdd',
+				'item_remove'     : 'onItemRemove',
+				'clear'           : 'onClear',
+				'option_add'      : 'onOptionAdd',
+				'option_remove'   : 'onOptionRemove',
+				'option_clear'    : 'onOptionClear',
+				'optgroup_add'    : 'onOptionGroupAdd',
+				'optgroup_remove' : 'onOptionGroupRemove',
+				'optgroup_clear'  : 'onOptionGroupClear',
+				'dropdown_open'   : 'onDropdownOpen',
+				'dropdown_close'  : 'onDropdownClose',
+				'type'            : 'onType',
+				'load'            : 'onLoad',
+				'focus'           : 'onFocus',
+				'blur'            : 'onBlur'
+			};
+	
+			for (key in callbacks) {
+				if (callbacks.hasOwnProperty(key)) {
+					fn = this.settings[callbacks[key]];
+					if (fn) this.on(key, fn);
+				}
+			}
+		},
+	
+		/**
+		 * Triggered when the main control element
+		 * has a click event.
+		 *
+		 * @param {object} e
+		 * @return {boolean}
+		 */
+		onClick: function(e) {
+			var self = this;
+	
+			// necessary for mobile webkit devices (manual focus triggering
+			// is ignored unless invoked within a click event)
+			if (!self.isFocused) {
+				self.focus();
+				e.preventDefault();
+			}
+		},
+	
+		/**
+		 * Triggered when the main control element
+		 * has a mouse down event.
+		 *
+		 * @param {object} e
+		 * @return {boolean}
+		 */
+		onMouseDown: function(e) {
+			var self = this;
+			var defaultPrevented = e.isDefaultPrevented();
+			var $target = $(e.target);
+	
+			if (self.isFocused) {
+				// retain focus by preventing native handling. if the
+				// event target is the input it should not be modified.
+				// otherwise, text selection within the input won't work.
+				if (e.target !== self.$control_input[0]) {
+					if (self.settings.mode === 'single') {
+						// toggle dropdown
+						self.isOpen ? self.close() : self.open();
+					} else if (!defaultPrevented) {
+						self.setActiveItem(null);
+					}
+					return false;
+				}
+			} else {
+				// give control focus
+				if (!defaultPrevented) {
+					window.setTimeout(function() {
+						self.focus();
+					}, 0);
+				}
+			}
+		},
+	
+		/**
+		 * Triggered when the value of the control has been changed.
+		 * This should propagate the event to the original DOM
+		 * input / select element.
+		 */
+		onChange: function() {
+			this.$input.trigger('change');
+		},
+	
+		/**
+		 * Triggered on <input> paste.
+		 *
+		 * @param {object} e
+		 * @returns {boolean}
+		 */
+		onPaste: function(e) {
+			var self = this;
+	
+			if (self.isFull() || self.isInputHidden || self.isLocked) {
+				e.preventDefault();
+				return;
+			}
+	
+			// If a regex or string is included, this will split the pasted
+			// input and create Items for each separate value
+			if (self.settings.splitOn) {
+	
+				// Wait for pasted text to be recognized in value
+				setTimeout(function() {
+					var pastedText = self.$control_input.val();
+					if(!pastedText.match(self.settings.splitOn)){ return }
+	
+					var splitInput = $.trim(pastedText).split(self.settings.splitOn);
+					for (var i = 0, n = splitInput.length; i < n; i++) {
+						self.createItem(splitInput[i]);
+					}
+				}, 0);
+			}
+		},
+	
+		/**
+		 * Triggered on <input> keypress.
+		 *
+		 * @param {object} e
+		 * @returns {boolean}
+		 */
+		onKeyPress: function(e) {
+			if (this.isLocked) return e && e.preventDefault();
+			var character = String.fromCharCode(e.keyCode || e.which);
+			if (this.settings.create && this.settings.mode === 'multi' && character === this.settings.delimiter) {
+				this.createItem();
+				e.preventDefault();
+				return false;
+			}
+		},
+	
+		/**
+		 * Triggered on <input> keydown.
+		 *
+		 * @param {object} e
+		 * @returns {boolean}
+		 */
+		onKeyDown: function(e) {
+			var isInput = e.target === this.$control_input[0];
+			var self = this;
+	
+			if (self.isLocked) {
+				if (e.keyCode !== KEY_TAB) {
+					e.preventDefault();
+				}
+				return;
+			}
+	
+			switch (e.keyCode) {
+				case KEY_A:
+					if (self.isCmdDown) {
+						self.selectAll();
+						return;
+					}
+					break;
+				case KEY_ESC:
+					if (self.isOpen) {
+						e.preventDefault();
+						e.stopPropagation();
+						self.close();
+					}
+					return;
+				case KEY_N:
+					if (!e.ctrlKey || e.altKey) break;
+				case KEY_DOWN:
+					if (!self.isOpen && self.hasOptions) {
+						self.open();
+					} else if (self.$activeOption) {
+						self.ignoreHover = true;
+						var $next = self.getAdjacentOption(self.$activeOption, 1);
+						if ($next.length) self.setActiveOption($next, true, true);
+					}
+					e.preventDefault();
+					return;
+				case KEY_P:
+					if (!e.ctrlKey || e.altKey) break;
+				case KEY_UP:
+					if (self.$activeOption) {
+						self.ignoreHover = true;
+						var $prev = self.getAdjacentOption(self.$activeOption, -1);
+						if ($prev.length) self.setActiveOption($prev, true, true);
+					}
+					e.preventDefault();
+					return;
+				case KEY_RETURN:
+					if (self.isOpen && self.$activeOption) {
+						self.onOptionSelect({currentTarget: self.$activeOption});
+						e.preventDefault();
+					}
+					return;
+				case KEY_LEFT:
+					self.advanceSelection(-1, e);
+					return;
+				case KEY_RIGHT:
+					self.advanceSelection(1, e);
+					return;
+				case KEY_TAB:
+					if (self.settings.selectOnTab && self.isOpen && self.$activeOption) {
+						self.onOptionSelect({currentTarget: self.$activeOption});
+	
+						// Default behaviour is to jump to the next field, we only want this
+						// if the current field doesn't accept any more entries
+						if (!self.isFull()) {
+							e.preventDefault();
+						}
+					}
+					if (self.settings.create && self.createItem()) {
+						e.preventDefault();
+					}
+					return;
+				case KEY_BACKSPACE:
+				case KEY_DELETE:
+					self.deleteSelection(e);
+					return;
+			}
+	
+			if ((self.isFull() || self.isInputHidden) && !(IS_MAC ? e.metaKey : e.ctrlKey)) {
+				e.preventDefault();
+				return;
+			}
+		},
+	
+		/**
+		 * Triggered on <input> keyup.
+		 *
+		 * @param {object} e
+		 * @returns {boolean}
+		 */
+		onKeyUp: function(e) {
+			var self = this;
+	
+			if (self.isLocked) return e && e.preventDefault();
+			var value = self.$control_input.val() || '';
+			if (self.lastValue !== value) {
+				self.lastValue = value;
+				self.onSearchChange(value);
+				self.refreshOptions();
+				self.trigger('type', value);
+			}
+		},
+	
+		/**
+		 * Invokes the user-provide option provider / loader.
+		 *
+		 * Note: this function is debounced in the Selectize
+		 * constructor (by `settings.loadThrottle` milliseconds)
+		 *
+		 * @param {string} value
+		 */
+		onSearchChange: function(value) {
+			var self = this;
+			var fn = self.settings.load;
+			if (!fn) return;
+			if (self.loadedSearches.hasOwnProperty(value)) return;
+			self.loadedSearches[value] = true;
+			self.load(function(callback) {
+				fn.apply(self, [value, callback]);
+			});
+		},
+	
+		/**
+		 * Triggered on <input> focus.
+		 *
+		 * @param {object} e (optional)
+		 * @returns {boolean}
+		 */
+		onFocus: function(e) {
+			var self = this;
+			var wasFocused = self.isFocused;
+	
+			if (self.isDisabled) {
+				self.blur();
+				e && e.preventDefault();
+				return false;
+			}
+	
+			if (self.ignoreFocus) return;
+			self.isFocused = true;
+			if (self.settings.preload === 'focus') self.onSearchChange('');
+	
+			if (!wasFocused) self.trigger('focus');
+	
+			if (!self.$activeItems.length) {
+				self.showInput();
+				self.setActiveItem(null);
+				self.refreshOptions(!!self.settings.openOnFocus);
+			}
+	
+			self.refreshState();
+		},
+	
+		/**
+		 * Triggered on <input> blur.
+		 *
+		 * @param {object} e
+		 * @param {Element} dest
+		 */
+		onBlur: function(e, dest) {
+			var self = this;
+			if (!self.isFocused) return;
+			self.isFocused = false;
+	
+			if (self.ignoreFocus) {
+				return;
+			} else if (!self.ignoreBlur && document.activeElement === self.$dropdown_content[0]) {
+				// necessary to prevent IE closing the dropdown when the scrollbar is clicked
+				self.ignoreBlur = true;
+				self.onFocus(e);
+				return;
+			}
+	
+			var deactivate = function() {
+				self.close();
+				self.setTextboxValue('');
+				self.setActiveItem(null);
+				self.setActiveOption(null);
+				self.setCaret(self.items.length);
+				self.refreshState();
+	
+				// IE11 bug: element still marked as active
+				dest && dest.focus();
+	
+				self.ignoreFocus = false;
+				self.trigger('blur');
+			};
+	
+			self.ignoreFocus = true;
+			if (self.settings.create && self.settings.createOnBlur) {
+				self.createItem(null, false, deactivate);
+			} else {
+				deactivate();
+			}
+		},
+	
+		/**
+		 * Triggered when the user rolls over
+		 * an option in the autocomplete dropdown menu.
+		 *
+		 * @param {object} e
+		 * @returns {boolean}
+		 */
+		onOptionHover: function(e) {
+			if (this.ignoreHover) return;
+			this.setActiveOption(e.currentTarget, false);
+		},
+	
+		/**
+		 * Triggered when the user clicks on an option
+		 * in the autocomplete dropdown menu.
+		 *
+		 * @param {object} e
+		 * @returns {boolean}
+		 */
+		onOptionSelect: function(e) {
+			var value, $target, $option, self = this;
+	
+			if (e.preventDefault) {
+				e.preventDefault();
+				e.stopPropagation();
+			}
+	
+			$target = $(e.currentTarget);
+			if ($target.hasClass('create')) {
+				self.createItem(null, function() {
+					if (self.settings.closeAfterSelect) {
+						self.close();
+					}
+				});
+			} else {
+				value = $target.attr('data-value');
+				if (typeof value !== 'undefined') {
+					self.lastQuery = null;
+					self.setTextboxValue('');
+					self.addItem(value);
+					if (self.settings.closeAfterSelect) {
+						self.close();
+					} else if (!self.settings.hideSelected && e.type && /mouse/.test(e.type)) {
+						self.setActiveOption(self.getOption(value));
+					}
+				}
+			}
+		},
+	
+		/**
+		 * Triggered when the user clicks on an item
+		 * that has been selected.
+		 *
+		 * @param {object} e
+		 * @returns {boolean}
+		 */
+		onItemSelect: function(e) {
+			var self = this;
+	
+			if (self.isLocked) return;
+			if (self.settings.mode === 'multi') {
+				e.preventDefault();
+				self.setActiveItem(e.currentTarget, e);
+			}
+		},
+	
+		/**
+		 * Invokes the provided method that provides
+		 * results to a callback---which are then added
+		 * as options to the control.
+		 *
+		 * @param {function} fn
+		 */
+		load: function(fn) {
+			var self = this;
+			var $wrapper = self.$wrapper.addClass(self.settings.loadingClass);
+	
+			self.loading++;
+			fn.apply(self, [function(results) {
+				self.loading = Math.max(self.loading - 1, 0);
+				if (results && results.length) {
+					self.addOption(results);
+					self.refreshOptions(self.isFocused && !self.isInputHidden);
+				}
+				if (!self.loading) {
+					$wrapper.removeClass(self.settings.loadingClass);
+				}
+				self.trigger('load', results);
+			}]);
+		},
+	
+		/**
+		 * Sets the input field of the control to the specified value.
+		 *
+		 * @param {string} value
+		 */
+		setTextboxValue: function(value) {
+			var $input = this.$control_input;
+			var changed = $input.val() !== value;
+			if (changed) {
+				$input.val(value).triggerHandler('update');
+				this.lastValue = value;
+			}
+		},
+	
+		/**
+		 * Returns the value of the control. If multiple items
+		 * can be selected (e.g. <select multiple>), this returns
+		 * an array. If only one item can be selected, this
+		 * returns a string.
+		 *
+		 * @returns {mixed}
+		 */
+		getValue: function() {
+			if (this.tagType === TAG_SELECT && this.$input.attr('multiple')) {
+				return this.items;
+			} else {
+				return this.items.join(this.settings.delimiter);
+			}
+		},
+	
+		/**
+		 * Resets the selected items to the given value.
+		 *
+		 * @param {mixed} value
+		 */
+		setValue: function(value, silent) {
+			var events = silent ? [] : ['change'];
+	
+			debounce_events(this, events, function() {
+				this.clear(silent);
+				this.addItems(value, silent);
+			});
+		},
+	
+		/**
+		 * Sets the selected item.
+		 *
+		 * @param {object} $item
+		 * @param {object} e (optional)
+		 */
+		setActiveItem: function($item, e) {
+			var self = this;
+			var eventName;
+			var i, idx, begin, end, item, swap;
+			var $last;
+	
+			if (self.settings.mode === 'single') return;
+			$item = $($item);
+	
+			// clear the active selection
+			if (!$item.length) {
+				$(self.$activeItems).removeClass('active');
+				self.$activeItems = [];
+				if (self.isFocused) {
+					self.showInput();
+				}
+				return;
+			}
+	
+			// modify selection
+			eventName = e && e.type.toLowerCase();
+	
+			if (eventName === 'mousedown' && self.isShiftDown && self.$activeItems.length) {
+				$last = self.$control.children('.active:last');
+				begin = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$last[0]]);
+				end   = Array.prototype.indexOf.apply(self.$control[0].childNodes, [$item[0]]);
+				if (begin > end) {
+					swap  = begin;
+					begin = end;
+					end   = swap;
+				}
+				for (i = begin; i <= end; i++) {
+					item = self.$control[0].childNodes[i];
+					if (self.$activeItems.indexOf(item) === -1) {
+						$(item).addClass('active');
+						self.$activeItems.push(item);
+					}
+				}
+				e.preventDefault();
+			} else if ((eventName === 'mousedown' && self.isCtrlDown) || (eventName === 'keydown' && this.isShiftDown)) {
+				if ($item.hasClass('active')) {
+					idx = self.$activeItems.indexOf($item[0]);
+					self.$activeItems.splice(idx, 1);
+					$item.removeClass('active');
+				} else {
+					self.$activeItems.push($item.addClass('active')[0]);
+				}
+			} else {
+				$(self.$activeItems).removeClass('active');
+				self.$activeItems = [$item.addClass('active')[0]];
+			}
+	
+			// ensure control has focus
+			self.hideInput();
+			if (!this.isFocused) {
+				self.focus();
+			}
+		},
+	
+		/**
+		 * Sets the selected item in the dropdown menu
+		 * of available options.
+		 *
+		 * @param {object} $object
+		 * @param {boolean} scroll
+		 * @param {boolean} animate
+		 */
+		setActiveOption: function($option, scroll, animate) {
+			var height_menu, height_item, y;
+			var scroll_top, scroll_bottom;
+			var self = this;
+	
+			if (self.$activeOption) self.$activeOption.removeClass('active');
+			self.$activeOption = null;
+	
+			$option = $($option);
+			if (!$option.length) return;
+	
+			self.$activeOption = $option.addClass('active');
+	
+			if (scroll || !isset(scroll)) {
+	
+				height_menu   = self.$dropdown_content.height();
+				height_item   = self.$activeOption.outerHeight(true);
+				scroll        = self.$dropdown_content.scrollTop() || 0;
+				y             = self.$activeOption.offset().top - self.$dropdown_content.offset().top + scroll;
+				scroll_top    = y;
+				scroll_bottom = y - height_menu + height_item;
+	
+				if (y + height_item > height_menu + scroll) {
+					self.$dropdown_content.stop().animate({scrollTop: scroll_bottom}, animate ? self.settings.scrollDuration : 0);
+				} else if (y < scroll) {
+					self.$dropdown_content.stop().animate({scrollTop: scroll_top}, animate ? self.settings.scrollDuration : 0);
+				}
+	
+			}
+		},
+	
+		/**
+		 * Selects all items (CTRL + A).
+		 */
+		selectAll: function() {
+			var self = this;
+			if (self.settings.mode === 'single') return;
+	
+			self.$activeItems = Array.prototype.slice.apply(self.$control.children(':not(input)').addClass('active'));
+			if (self.$activeItems.length) {
+				self.hideInput();
+				self.close();
+			}
+			self.focus();
+		},
+	
+		/**
+		 * Hides the input element out of view, while
+		 * retaining its focus.
+		 */
+		hideInput: function() {
+			var self = this;
+	
+			self.setTextboxValue('');
+			self.$control_input.css({opacity: 0, position: 'absolute', left: self.rtl ? 10000 : -10000});
+			self.isInputHidden = true;
+		},
+	
+		/**
+		 * Restores input visibility.
+		 */
+		showInput: function() {
+			this.$control_input.css({opacity: 1, position: 'relative', left: 0});
+			this.isInputHidden = false;
+		},
+	
+		/**
+		 * Gives the control focus.
+		 */
+		focus: function() {
+			var self = this;
+			if (self.isDisabled) return;
+	
+			self.ignoreFocus = true;
+			self.$control_input[0].focus();
+			window.setTimeout(function() {
+				self.ignoreFocus = false;
+				self.onFocus();
+			}, 0);
+		},
+	
+		/**
+		 * Forces the control out of focus.
+		 *
+		 * @param {Element} dest
+		 */
+		blur: function(dest) {
+			this.$control_input[0].blur();
+			this.onBlur(null, dest);
+		},
+	
+		/**
+		 * Returns a function that scores an object
+		 * to show how good of a match it is to the
+		 * provided query.
+		 *
+		 * @param {string} query
+		 * @param {object} options
+		 * @return {function}
+		 */
+		getScoreFunction: function(query) {
+			return this.sifter.getScoreFunction(query, this.getSearchOptions());
+		},
+	
+		/**
+		 * Returns search options for sifter (the system
+		 * for scoring and sorting results).
+		 *
+		 * @see https://github.com/brianreavis/sifter.js
+		 * @return {object}
+		 */
+		getSearchOptions: function() {
+			var settings = this.settings;
+			var sort = settings.sortField;
+			if (typeof sort === 'string') {
+				sort = [{field: sort}];
+			}
+	
+			return {
+				fields      : settings.searchField,
+				conjunction : settings.searchConjunction,
+				sort        : sort
+			};
+		},
+	
+		/**
+		 * Searches through available options and returns
+		 * a sorted array of matches.
+		 *
+		 * Returns an object containing:
+		 *
+		 *   - query {string}
+		 *   - tokens {array}
+		 *   - total {int}
+		 *   - items {array}
+		 *
+		 * @param {string} query
+		 * @returns {object}
+		 */
+		search: function(query) {
+			var i, value, score, result, calculateScore;
+			var self     = this;
+			var settings = self.settings;
+			var options  = this.getSearchOptions();
+	
+			// validate user-provided result scoring function
+			if (settings.score) {
+				calculateScore = self.settings.score.apply(this, [query]);
+				if (typeof calculateScore !== 'function') {
+					throw new Error('Selectize "score" setting must be a function that returns a function');
+				}
+			}
+	
+			// perform search
+			if (query !== self.lastQuery) {
+				self.lastQuery = query;
+				result = self.sifter.search(query, $.extend(options, {score: calculateScore}));
+				self.currentResults = result;
+			} else {
+				result = $.extend(true, {}, self.currentResults);
+			}
+	
+			// filter out selected items
+			if (settings.hideSelected) {
+				for (i = result.items.length - 1; i >= 0; i--) {
+					if (self.items.indexOf(hash_key(result.items[i].id)) !== -1) {
+						result.items.splice(i, 1);
+					}
+				}
+			}
+	
+			return result;
+		},
+	
+		/**
+		 * Refreshes the list of available options shown
+		 * in the autocomplete dropdown menu.
+		 *
+		 * @param {boolean} triggerDropdown
+		 */
+		refreshOptions: function(triggerDropdown) {
+			var i, j, k, n, groups, groups_order, option, option_html, optgroup, optgroups, html, html_children, has_create_option;
+			var $active, $active_before, $create;
+	
+			if (typeof triggerDropdown === 'undefined') {
+				triggerDropdown = true;
+			}
+	
+			var self              = this;
+			var query             = $.trim(self.$control_input.val());
+			var results           = self.search(query);
+			var $dropdown_content = self.$dropdown_content;
+			var active_before     = self.$activeOption && hash_key(self.$activeOption.attr('data-value'));
+	
+			// build markup
+			n = results.items.length;
+			if (typeof self.settings.maxOptions === 'number') {
+				n = Math.min(n, self.settings.maxOptions);
+			}
+	
+			// render and group available options individually
+			groups = {};
+			groups_order = [];
+	
+			for (i = 0; i < n; i++) {
+				option      = self.options[results.items[i].id];
+				option_html = self.render('option', option);
+				optgroup    = option[self.settings.optgroupField] || '';
+				optgroups   = $.isArray(optgroup) ? optgroup : [optgroup];
+	
+				for (j = 0, k = optgroups && optgroups.length; j < k; j++) {
+					optgroup = optgroups[j];
+					if (!self.optgroups.hasOwnProperty(optgroup)) {
+						optgroup = '';
+					}
+					if (!groups.hasOwnProperty(optgroup)) {
+						groups[optgroup] = document.createDocumentFragment();
+						groups_order.push(optgroup);
+					}
+					groups[optgroup].appendChild(option_html);
+				}
+			}
+	
+			// sort optgroups
+			if (this.settings.lockOptgroupOrder) {
+				groups_order.sort(function(a, b) {
+					var a_order = self.optgroups[a].$order || 0;
+					var b_order = self.optgroups[b].$order || 0;
+					return a_order - b_order;
+				});
+			}
+	
+			// render optgroup headers & join groups
+			html = document.createDocumentFragment();
+			for (i = 0, n = groups_order.length; i < n; i++) {
+				optgroup = groups_order[i];
+				if (self.optgroups.hasOwnProperty(optgroup) && groups[optgroup].childNodes.length) {
+					// render the optgroup header and options within it,
+					// then pass it to the wrapper template
+					html_children = document.createDocumentFragment();
+					html_children.appendChild(self.render('optgroup_header', self.optgroups[optgroup]));
+					html_children.appendChild(groups[optgroup]);
+	
+					html.appendChild(self.render('optgroup', $.extend({}, self.optgroups[optgroup], {
+						html: domToString(html_children),
+						dom:  html_children
+					})));
+				} else {
+					html.appendChild(groups[optgroup]);
+				}
+			}
+	
+			$dropdown_content.html(html);
+	
+			// highlight matching terms inline
+			if (self.settings.highlight && results.query.length && results.tokens.length) {
+				$dropdown_content.removeHighlight();
+				for (i = 0, n = results.tokens.length; i < n; i++) {
+					highlight($dropdown_content, results.tokens[i].regex);
+				}
+			}
+	
+			// add "selected" class to selected options
+			if (!self.settings.hideSelected) {
+				for (i = 0, n = self.items.length; i < n; i++) {
+					self.getOption(self.items[i]).addClass('selected');
+				}
+			}
+	
+			// add create option
+			has_create_option = self.canCreate(query);
+			if (has_create_option) {
+				$dropdown_content.prepend(self.render('option_create', {input: query}));
+				$create = $($dropdown_content[0].childNodes[0]);
+			}
+	
+			// activate
+			self.hasOptions = results.items.length > 0 || has_create_option;
+			if (self.hasOptions) {
+				if (results.items.length > 0) {
+					$active_before = active_before && self.getOption(active_before);
+					if ($active_before && $active_before.length) {
+						$active = $active_before;
+					} else if (self.settings.mode === 'single' && self.items.length) {
+						$active = self.getOption(self.items[0]);
+					}
+					if (!$active || !$active.length) {
+						if ($create && !self.settings.addPrecedence) {
+							$active = self.getAdjacentOption($create, 1);
+						} else {
+							$active = $dropdown_content.find('[data-selectable]:first');
+						}
+					}
+				} else {
+					$active = $create;
+				}
+				self.setActiveOption($active);
+				if (triggerDropdown && !self.isOpen) { self.open(); }
+			} else {
+				self.setActiveOption(null);
+				if (triggerDropdown && self.isOpen) { self.close(); }
+			}
+		},
+	
+		/**
+		 * Adds an available option. If it already exists,
+		 * nothing will happen. Note: this does not refresh
+		 * the options list dropdown (use `refreshOptions`
+		 * for that).
+		 *
+		 * Usage:
+		 *
+		 *   this.addOption(data)
+		 *
+		 * @param {object|array} data
+		 */
+		addOption: function(data) {
+			var i, n, value, self = this;
+	
+			if ($.isArray(data)) {
+				for (i = 0, n = data.length; i < n; i++) {
+					self.addOption(data[i]);
+				}
+				return;
+			}
+	
+			if (value = self.registerOption(data)) {
+				self.userOptions[value] = true;
+				self.lastQuery = null;
+				self.trigger('option_add', value, data);
+			}
+		},
+	
+		/**
+		 * Registers an option to the pool of options.
+		 *
+		 * @param {object} data
+		 * @return {boolean|string}
+		 */
+		registerOption: function(data) {
+			var key = hash_key(data[this.settings.valueField]);
+			if (typeof key === 'undefined' || key === null || this.options.hasOwnProperty(key)) return false;
+			data.$order = data.$order || ++this.order;
+			this.options[key] = data;
+			return key;
+		},
+	
+		/**
+		 * Registers an option group to the pool of option groups.
+		 *
+		 * @param {object} data
+		 * @return {boolean|string}
+		 */
+		registerOptionGroup: function(data) {
+			var key = hash_key(data[this.settings.optgroupValueField]);
+			if (!key) return false;
+	
+			data.$order = data.$order || ++this.order;
+			this.optgroups[key] = data;
+			return key;
+		},
+	
+		/**
+		 * Registers a new optgroup for options
+		 * to be bucketed into.
+		 *
+		 * @param {string} id
+		 * @param {object} data
+		 */
+		addOptionGroup: function(id, data) {
+			data[this.settings.optgroupValueField] = id;
+			if (id = this.registerOptionGroup(data)) {
+				this.trigger('optgroup_add', id, data);
+			}
+		},
+	
+		/**
+		 * Removes an existing option group.
+		 *
+		 * @param {string} id
+		 */
+		removeOptionGroup: function(id) {
+			if (this.optgroups.hasOwnProperty(id)) {
+				delete this.optgroups[id];
+				this.renderCache = {};
+				this.trigger('optgroup_remove', id);
+			}
+		},
+	
+		/**
+		 * Clears all existing option groups.
+		 */
+		clearOptionGroups: function() {
+			this.optgroups = {};
+			this.renderCache = {};
+			this.trigger('optgroup_clear');
+		},
+	
+		/**
+		 * Updates an option available for selection. If
+		 * it is visible in the selected items or options
+		 * dropdown, it will be re-rendered automatically.
+		 *
+		 * @param {string} value
+		 * @param {object} data
+		 */
+		updateOption: function(value, data) {
+			var self = this;
+			var $item, $item_new;
+			var value_new, index_item, cache_items, cache_options, order_old;
+	
+			value     = hash_key(value);
+			value_new = hash_key(data[self.settings.valueField]);
+	
+			// sanity checks
+			if (value === null) return;
+			if (!self.options.hasOwnProperty(value)) return;
+			if (typeof value_new !== 'string') throw new Error('Value must be set in option data');
+	
+			order_old = self.options[value].$order;
+	
+			// update references
+			if (value_new !== value) {
+				delete self.options[value];
+				index_item = self.items.indexOf(value);
+				if (index_item !== -1) {
+					self.items.splice(index_item, 1, value_new);
+				}
+			}
+			data.$order = data.$order || order_old;
+			self.options[value_new] = data;
+	
+			// invalidate render cache
+			cache_items = self.renderCache['item'];
+			cache_options = self.renderCache['option'];
+	
+			if (cache_items) {
+				delete cache_items[value];
+				delete cache_items[value_new];
+			}
+			if (cache_options) {
+				delete cache_options[value];
+				delete cache_options[value_new];
+			}
+	
+			// update the item if it's selected
+			if (self.items.indexOf(value_new) !== -1) {
+				$item = self.getItem(value);
+				$item_new = $(self.render('item', data));
+				if ($item.hasClass('active')) $item_new.addClass('active');
+				$item.replaceWith($item_new);
+			}
+	
+			// invalidate last query because we might have updated the sortField
+			self.lastQuery = null;
+	
+			// update dropdown contents
+			if (self.isOpen) {
+				self.refreshOptions(false);
+			}
+		},
+	
+		/**
+		 * Removes a single option.
+		 *
+		 * @param {string} value
+		 * @param {boolean} silent
+		 */
+		removeOption: function(value, silent) {
+			var self = this;
+			value = hash_key(value);
+	
+			var cache_items = self.renderCache['item'];
+			var cache_options = self.renderCache['option'];
+			if (cache_items) delete cache_items[value];
+			if (cache_options) delete cache_options[value];
+	
+			delete self.userOptions[value];
+			delete self.options[value];
+			self.lastQuery = null;
+			self.trigger('option_remove', value);
+			self.removeItem(value, silent);
+		},
+	
+		/**
+		 * Clears all options.
+		 */
+		clearOptions: function() {
+			var self = this;
+	
+			self.loadedSearches = {};
+			self.userOptions = {};
+			self.renderCache = {};
+			self.options = self.sifter.items = {};
+			self.lastQuery = null;
+			self.trigger('option_clear');
+			self.clear();
+		},
+	
+		/**
+		 * Returns the jQuery element of the option
+		 * matching the given value.
+		 *
+		 * @param {string} value
+		 * @returns {object}
+		 */
+		getOption: function(value) {
+			return this.getElementWithValue(value, this.$dropdown_content.find('[data-selectable]'));
+		},
+	
+		/**
+		 * Returns the jQuery element of the next or
+		 * previous selectable option.
+		 *
+		 * @param {object} $option
+		 * @param {int} direction  can be 1 for next or -1 for previous
+		 * @return {object}
+		 */
+		getAdjacentOption: function($option, direction) {
+			var $options = this.$dropdown.find('[data-selectable]');
+			var index    = $options.index($option) + direction;
+	
+			return index >= 0 && index < $options.length ? $options.eq(index) : $();
+		},
+	
+		/**
+		 * Finds the first element with a "data-value" attribute
+		 * that matches the given value.
+		 *
+		 * @param {mixed} value
+		 * @param {object} $els
+		 * @return {object}
+		 */
+		getElementWithValue: function(value, $els) {
+			value = hash_key(value);
+	
+			if (typeof value !== 'undefined' && value !== null) {
+				for (var i = 0, n = $els.length; i < n; i++) {
+					if ($els[i].getAttribute('data-value') === value) {
+						return $($els[i]);
+					}
+				}
+			}
+	
+			return $();
+		},
+	
+		/**
+		 * Returns the jQuery element of the item
+		 * matching the given value.
+		 *
+		 * @param {string} value
+		 * @returns {object}
+		 */
+		getItem: function(value) {
+			return this.getElementWithValue(value, this.$control.children());
+		},
+	
+		/**
+		 * "Selects" multiple items at once. Adds them to the list
+		 * at the current caret position.
+		 *
+		 * @param {string} value
+		 * @param {boolean} silent
+		 */
+		addItems: function(values, silent) {
+			var items = $.isArray(values) ? values : [values];
+			for (var i = 0, n = items.length; i < n; i++) {
+				this.isPending = (i < n - 1);
+				this.addItem(items[i], silent);
+			}
+		},
+	
+		/**
+		 * "Selects" an item. Adds it to the list
+		 * at the current caret position.
+		 *
+		 * @param {string} value
+		 * @param {boolean} silent
+		 */
+		addItem: function(value, silent) {
+			var events = silent ? [] : ['change'];
+	
+			debounce_events(this, events, function() {
+				var $item, $option, $options;
+				var self = this;
+				var inputMode = self.settings.mode;
+				var i, active, value_next, wasFull;
+				value = hash_key(value);
+	
+				if (self.items.indexOf(value) !== -1) {
+					if (inputMode === 'single') self.close();
+					return;
+				}
+	
+				if (!self.options.hasOwnProperty(value)) return;
+				if (inputMode === 'single') self.clear(silent);
+				if (inputMode === 'multi' && self.isFull()) return;
+	
+				$item = $(self.render('item', self.options[value]));
+				wasFull = self.isFull();
+				self.items.splice(self.caretPos, 0, value);
+				self.insertAtCaret($item);
+				if (!self.isPending || (!wasFull && self.isFull())) {
+					self.refreshState();
+				}
+	
+				if (self.isSetup) {
+					$options = self.$dropdown_content.find('[data-selectable]');
+	
+					// update menu / remove the option (if this is not one item being added as part of series)
+					if (!self.isPending) {
+						$option = self.getOption(value);
+						value_next = self.getAdjacentOption($option, 1).attr('data-value');
+						self.refreshOptions(self.isFocused && inputMode !== 'single');
+						if (value_next) {
+							self.setActiveOption(self.getOption(value_next));
+						}
+					}
+	
+					// hide the menu if the maximum number of items have been selected or no options are left
+					if (!$options.length || self.isFull()) {
+						self.close();
+					} else {
+						self.positionDropdown();
+					}
+	
+					self.updatePlaceholder();
+					self.trigger('item_add', value, $item);
+					self.updateOriginalInput({silent: silent});
+				}
+			});
+		},
+	
+		/**
+		 * Removes the selected item matching
+		 * the provided value.
+		 *
+		 * @param {string} value
+		 */
+		removeItem: function(value, silent) {
+			var self = this;
+			var $item, i, idx;
+	
+			$item = (value instanceof $) ? value : self.getItem(value);
+			value = hash_key($item.attr('data-value'));
+			i = self.items.indexOf(value);
+	
+			if (i !== -1) {
+				$item.remove();
+				if ($item.hasClass('active')) {
+					idx = self.$activeItems.indexOf($item[0]);
+					self.$activeItems.splice(idx, 1);
+				}
+	
+				self.items.splice(i, 1);
+				self.lastQuery = null;
+				if (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {
+					self.removeOption(value, silent);
+				}
+	
+				if (i < self.caretPos) {
+					self.setCaret(self.caretPos - 1);
+				}
+	
+				self.refreshState();
+				self.updatePlaceholder();
+				self.updateOriginalInput({silent: silent});
+				self.positionDropdown();
+				self.trigger('item_remove', value, $item);
+			}
+		},
+	
+		/**
+		 * Invokes the `create` method provided in the
+		 * selectize options that should provide the data
+		 * for the new item, given the user input.
+		 *
+		 * Once this completes, it will be added
+		 * to the item list.
+		 *
+		 * @param {string} value
+		 * @param {boolean} [triggerDropdown]
+		 * @param {function} [callback]
+		 * @return {boolean}
+		 */
+		createItem: function(input, triggerDropdown) {
+			var self  = this;
+			var caret = self.caretPos;
+			input = input || $.trim(self.$control_input.val() || '');
+	
+			var callback = arguments[arguments.length - 1];
+			if (typeof callback !== 'function') callback = function() {};
+	
+			if (typeof triggerDropdown !== 'boolean') {
+				triggerDropdown = true;
+			}
+	
+			if (!self.canCreate(input)) {
+				callback();
+				return false;
+			}
+	
+			self.lock();
+	
+			var setup = (typeof self.settings.create === 'function') ? this.settings.create : function(input) {
+				var data = {};
+				data[self.settings.labelField] = input;
+				data[self.settings.valueField] = input;
+				return data;
+			};
+	
+			var create = once(function(data) {
+				self.unlock();
+	
+				if (!data || typeof data !== 'object') return callback();
+				var value = hash_key(data[self.settings.valueField]);
+				if (typeof value !== 'string') return callback();
+	
+				self.setTextboxValue('');
+				self.addOption(data);
+				self.setCaret(caret);
+				self.addItem(value);
+				self.refreshOptions(triggerDropdown && self.settings.mode !== 'single');
+				callback(data);
+			});
+	
+			var output = setup.apply(this, [input, create]);
+			if (typeof output !== 'undefined') {
+				create(output);
+			}
+	
+			return true;
+		},
+	
+		/**
+		 * Re-renders the selected item lists.
+		 */
+		refreshItems: function() {
+			this.lastQuery = null;
+	
+			if (this.isSetup) {
+				this.addItem(this.items);
+			}
+	
+			this.refreshState();
+			this.updateOriginalInput();
+		},
+	
+		/**
+		 * Updates all state-dependent attributes
+		 * and CSS classes.
+		 */
+		refreshState: function() {
+			this.refreshValidityState();
+			this.refreshClasses();
+		},
+	
+		/**
+		 * Update the `required` attribute of both input and control input.
+		 *
+		 * The `required` property needs to be activated on the control input
+		 * for the error to be displayed at the right place. `required` also
+		 * needs to be temporarily deactivated on the input since the input is
+		 * hidden and can't show errors.
+		 */
+		refreshValidityState: function() {
+			if (!this.isRequired) return false;
+	
+			var invalid = !this.items.length;
+	
+			this.isInvalid = invalid;
+			this.$control_input.prop('required', invalid);
+			this.$input.prop('required', !invalid);
+		},
+	
+		/**
+		 * Updates all state-dependent CSS classes.
+		 */
+		refreshClasses: function() {
+			var self     = this;
+			var isFull   = self.isFull();
+			var isLocked = self.isLocked;
+	
+			self.$wrapper
+				.toggleClass('rtl', self.rtl);
+	
+			self.$control
+				.toggleClass('focus', self.isFocused)
+				.toggleClass('disabled', self.isDisabled)
+				.toggleClass('required', self.isRequired)
+				.toggleClass('invalid', self.isInvalid)
+				.toggleClass('locked', isLocked)
+				.toggleClass('full', isFull).toggleClass('not-full', !isFull)
+				.toggleClass('input-active', self.isFocused && !self.isInputHidden)
+				.toggleClass('dropdown-active', self.isOpen)
+				.toggleClass('has-options', !$.isEmptyObject(self.options))
+				.toggleClass('has-items', self.items.length > 0);
+	
+			self.$control_input.data('grow', !isFull && !isLocked);
+		},
+	
+		/**
+		 * Determines whether or not more items can be added
+		 * to the control without exceeding the user-defined maximum.
+		 *
+		 * @returns {boolean}
+		 */
+		isFull: function() {
+			return this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;
+		},
+	
+		/**
+		 * Refreshes the original <select> or <input>
+		 * element to reflect the current state.
+		 */
+		updateOriginalInput: function(opts) {
+			var i, n, options, label, self = this;
+			opts = opts || {};
+	
+			if (self.tagType === TAG_SELECT) {
+				options = [];
+				for (i = 0, n = self.items.length; i < n; i++) {
+					label = self.options[self.items[i]][self.settings.labelField] || '';
+					options.push('<option value="' + escape_html(self.items[i]) + '" selected="selected">' + escape_html(label) + '</option>');
+				}
+				if (!options.length && !this.$input.attr('multiple')) {
+					options.push('<option value="" selected="selected"></option>');
+				}
+				self.$input.html(options.join(''));
+			} else {
+				self.$input.val(self.getValue());
+				self.$input.attr('value',self.$input.val());
+			}
+	
+			if (self.isSetup) {
+				if (!opts.silent) {
+					self.trigger('change', self.$input.val());
+				}
+			}
+		},
+	
+		/**
+		 * Shows/hide the input placeholder depending
+		 * on if there items in the list already.
+		 */
+		updatePlaceholder: function() {
+			if (!this.settings.placeholder) return;
+			var $input = this.$control_input;
+	
+			if (this.items.length) {
+				$input.removeAttr('placeholder');
+			} else {
+				$input.attr('placeholder', this.settings.placeholder);
+			}
+			$input.triggerHandler('update', {force: true});
+		},
+	
+		/**
+		 * Shows the autocomplete dropdown containing
+		 * the available options.
+		 */
+		open: function() {
+			var self = this;
+	
+			if (self.isLocked || self.isOpen || (self.settings.mode === 'multi' && self.isFull())) return;
+			self.focus();
+			self.isOpen = true;
+			self.refreshState();
+			self.$dropdown.css({visibility: 'hidden', display: 'block'});
+			self.positionDropdown();
+			self.$dropdown.css({visibility: 'visible'});
+			self.trigger('dropdown_open', self.$dropdown);
+		},
+	
+		/**
+		 * Closes the autocomplete dropdown menu.
+		 */
+		close: function() {
+			var self = this;
+			var trigger = self.isOpen;
+	
+			if (self.settings.mode === 'single' && self.items.length) {
+				self.hideInput();
+				self.$control_input.blur(); // close keyboard on iOS
+			}
+	
+			self.isOpen = false;
+			self.$dropdown.hide();
+			self.setActiveOption(null);
+			self.refreshState();
+	
+			if (trigger) self.trigger('dropdown_close', self.$dropdown);
+		},
+	
+		/**
+		 * Calculates and applies the appropriate
+		 * position of the dropdown.
+		 */
+		positionDropdown: function() {
+			var $control = this.$control;
+			var offset = this.settings.dropdownParent === 'body' ? $control.offset() : $control.position();
+			offset.top += $control.outerHeight(true);
+	
+			this.$dropdown.css({
+				width : $control.outerWidth(),
+				top   : offset.top,
+				left  : offset.left
+			});
+		},
+	
+		/**
+		 * Resets / clears all selected items
+		 * from the control.
+		 *
+		 * @param {boolean} silent
+		 */
+		clear: function(silent) {
+			var self = this;
+	
+			if (!self.items.length) return;
+			self.$control.children(':not(input)').remove();
+			self.items = [];
+			self.lastQuery = null;
+			self.setCaret(0);
+			self.setActiveItem(null);
+			self.updatePlaceholder();
+			self.updateOriginalInput({silent: silent});
+			self.refreshState();
+			self.showInput();
+			self.trigger('clear');
+		},
+	
+		/**
+		 * A helper method for inserting an element
+		 * at the current caret position.
+		 *
+		 * @param {object} $el
+		 */
+		insertAtCaret: function($el) {
+			var caret = Math.min(this.caretPos, this.items.length);
+			if (caret === 0) {
+				this.$control.prepend($el);
+			} else {
+				$(this.$control[0].childNodes[caret]).before($el);
+			}
+			this.setCaret(caret + 1);
+		},
+	
+		/**
+		 * Removes the current selected item(s).
+		 *
+		 * @param {object} e (optional)
+		 * @returns {boolean}
+		 */
+		deleteSelection: function(e) {
+			var i, n, direction, selection, values, caret, option_select, $option_select, $tail;
+			var self = this;
+	
+			direction = (e && e.keyCode === KEY_BACKSPACE) ? -1 : 1;
+			selection = getSelection(self.$control_input[0]);
+	
+			if (self.$activeOption && !self.settings.hideSelected) {
+				option_select = self.getAdjacentOption(self.$activeOption, -1).attr('data-value');
+			}
+	
+			// determine items that will be removed
+			values = [];
+	
+			if (self.$activeItems.length) {
+				$tail = self.$control.children('.active:' + (direction > 0 ? 'last' : 'first'));
+				caret = self.$control.children(':not(input)').index($tail);
+				if (direction > 0) { caret++; }
+	
+				for (i = 0, n = self.$activeItems.length; i < n; i++) {
+					values.push($(self.$activeItems[i]).attr('data-value'));
+				}
+				if (e) {
+					e.preventDefault();
+					e.stopPropagation();
+				}
+			} else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {
+				if (direction < 0 && selection.start === 0 && selection.length === 0) {
+					values.push(self.items[self.caretPos - 1]);
+				} else if (direction > 0 && selection.start === self.$control_input.val().length) {
+					values.push(self.items[self.caretPos]);
+				}
+			}
+	
+			// allow the callback to abort
+			if (!values.length || (typeof self.settings.onDelete === 'function' && self.settings.onDelete.apply(self, [values]) === false)) {
+				return false;
+			}
+	
+			// perform removal
+			if (typeof caret !== 'undefined') {
+				self.setCaret(caret);
+			}
+			while (values.length) {
+				self.removeItem(values.pop());
+			}
+	
+			self.showInput();
+			self.positionDropdown();
+			self.refreshOptions(true);
+	
+			// select previous option
+			if (option_select) {
+				$option_select = self.getOption(option_select);
+				if ($option_select.length) {
+					self.setActiveOption($option_select);
+				}
+			}
+	
+			return true;
+		},
+	
+		/**
+		 * Selects the previous / next item (depending
+		 * on the `direction` argument).
+		 *
+		 * > 0 - right
+		 * < 0 - left
+		 *
+		 * @param {int} direction
+		 * @param {object} e (optional)
+		 */
+		advanceSelection: function(direction, e) {
+			var tail, selection, idx, valueLength, cursorAtEdge, $tail;
+			var self = this;
+	
+			if (direction === 0) return;
+			if (self.rtl) direction *= -1;
+	
+			tail = direction > 0 ? 'last' : 'first';
+			selection = getSelection(self.$control_input[0]);
+	
+			if (self.isFocused && !self.isInputHidden) {
+				valueLength = self.$control_input.val().length;
+				cursorAtEdge = direction < 0
+					? selection.start === 0 && selection.length === 0
+					: selection.start === valueLength;
+	
+				if (cursorAtEdge && !valueLength) {
+					self.advanceCaret(direction, e);
+				}
+			} else {
+				$tail = self.$control.children('.active:' + tail);
+				if ($tail.length) {
+					idx = self.$control.children(':not(input)').index($tail);
+					self.setActiveItem(null);
+					self.setCaret(direction > 0 ? idx + 1 : idx);
+				}
+			}
+		},
+	
+		/**
+		 * Moves the caret left / right.
+		 *
+		 * @param {int} direction
+		 * @param {object} e (optional)
+		 */
+		advanceCaret: function(direction, e) {
+			var self = this, fn, $adj;
+	
+			if (direction === 0) return;
+	
+			fn = direction > 0 ? 'next' : 'prev';
+			if (self.isShiftDown) {
+				$adj = self.$control_input[fn]();
+				if ($adj.length) {
+					self.hideInput();
+					self.setActiveItem($adj);
+					e && e.preventDefault();
+				}
+			} else {
+				self.setCaret(self.caretPos + direction);
+			}
+		},
+	
+		/**
+		 * Moves the caret to the specified index.
+		 *
+		 * @param {int} i
+		 */
+		setCaret: function(i) {
+			var self = this;
+	
+			if (self.settings.mode === 'single') {
+				i = self.items.length;
+			} else {
+				i = Math.max(0, Math.min(self.items.length, i));
+			}
+	
+			if(!self.isPending) {
+				// the input must be moved by leaving it in place and moving the
+				// siblings, due to the fact that focus cannot be restored once lost
+				// on mobile webkit devices
+				var j, n, fn, $children, $child;
+				$children = self.$control.children(':not(input)');
+				for (j = 0, n = $children.length; j < n; j++) {
+					$child = $($children[j]).detach();
+					if (j <  i) {
+						self.$control_input.before($child);
+					} else {
+						self.$control.append($child);
+					}
+				}
+			}
+	
+			self.caretPos = i;
+		},
+	
+		/**
+		 * Disables user input on the control. Used while
+		 * items are being asynchronously created.
+		 */
+		lock: function() {
+			this.close();
+			this.isLocked = true;
+			this.refreshState();
+		},
+	
+		/**
+		 * Re-enables user input on the control.
+		 */
+		unlock: function() {
+			this.isLocked = false;
+			this.refreshState();
+		},
+	
+		/**
+		 * Disables user input on the control completely.
+		 * While disabled, it cannot receive focus.
+		 */
+		disable: function() {
+			var self = this;
+			self.$input.prop('disabled', true);
+			self.$control_input.prop('disabled', true).prop('tabindex', -1);
+			self.isDisabled = true;
+			self.lock();
+		},
+	
+		/**
+		 * Enables the control so that it can respond
+		 * to focus and user input.
+		 */
+		enable: function() {
+			var self = this;
+			self.$input.prop('disabled', false);
+			self.$control_input.prop('disabled', false).prop('tabindex', self.tabIndex);
+			self.isDisabled = false;
+			self.unlock();
+		},
+	
+		/**
+		 * Completely destroys the control and
+		 * unbinds all event listeners so that it can
+		 * be garbage collected.
+		 */
+		destroy: function() {
+			var self = this;
+			var eventNS = self.eventNS;
+			var revertSettings = self.revertSettings;
+	
+			self.trigger('destroy');
+			self.off();
+			self.$wrapper.remove();
+			self.$dropdown.remove();
+	
+			self.$input
+				.html('')
+				.append(revertSettings.$children)
+				.removeAttr('tabindex')
+				.removeClass('selectized')
+				.attr({tabindex: revertSettings.tabindex})
+				.show();
+	
+			self.$control_input.removeData('grow');
+			self.$input.removeData('selectize');
+	
+			$(window).off(eventNS);
+			$(document).off(eventNS);
+			$(document.body).off(eventNS);
+	
+			delete self.$input[0].selectize;
+		},
+	
+		/**
+		 * A helper method for rendering "item" and
+		 * "option" templates, given the data.
+		 *
+		 * @param {string} templateName
+		 * @param {object} data
+		 * @returns {string}
+		 */
+		render: function(templateName, data) {
+			var value, id, label;
+			var html = '';
+			var cache = false;
+			var self = this;
+			var regex_tag = /^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?)/i;
+	
+			if (templateName === 'option' || templateName === 'item') {
+				value = hash_key(data[self.settings.valueField]);
+				cache = !!value;
+			}
+	
+			// pull markup from cache if it exists
+			if (cache) {
+				if (!isset(self.renderCache[templateName])) {
+					self.renderCache[templateName] = {};
+				}
+				if (self.renderCache[templateName].hasOwnProperty(value)) {
+					return self.renderCache[templateName][value];
+				}
+			}
+	
+			// render markup
+			html = $(self.settings.render[templateName].apply(this, [data, escape_html]));
+	
+			// add mandatory attributes
+			if (templateName === 'option' || templateName === 'option_create') {
+				html.attr('data-selectable', '');
+			}
+			else if (templateName === 'optgroup') {
+				id = data[self.settings.optgroupValueField] || '';
+				html.attr('data-group', id);
+			}
+			if (templateName === 'option' || templateName === 'item') {
+				html.attr('data-value', value || '');
+			}
+	
+			// update cache
+			if (cache) {
+				self.renderCache[templateName][value] = html[0];
+			}
+	
+			return html[0];
+		},
+	
+		/**
+		 * Clears the render cache for a template. If
+		 * no template is given, clears all render
+		 * caches.
+		 *
+		 * @param {string} templateName
+		 */
+		clearCache: function(templateName) {
+			var self = this;
+			if (typeof templateName === 'undefined') {
+				self.renderCache = {};
+			} else {
+				delete self.renderCache[templateName];
+			}
+		},
+	
+		/**
+		 * Determines whether or not to display the
+		 * create item prompt, given a user input.
+		 *
+		 * @param {string} input
+		 * @return {boolean}
+		 */
+		canCreate: function(input) {
+			var self = this;
+			if (!self.settings.create) return false;
+			var filter = self.settings.createFilter;
+			return input.length
+				&& (typeof filter !== 'function' || filter.apply(self, [input]))
+				&& (typeof filter !== 'string' || new RegExp(filter).test(input))
+				&& (!(filter instanceof RegExp) || filter.test(input));
+		}
+	
+	});
+	
+	
+	Selectize.count = 0;
+	Selectize.defaults = {
+		options: [],
+		optgroups: [],
+	
+		plugins: [],
+		delimiter: ',',
+		splitOn: null, // regexp or string for splitting up values from a paste command
+		persist: true,
+		diacritics: true,
+		create: false,
+		createOnBlur: false,
+		createFilter: null,
+		highlight: true,
+		openOnFocus: true,
+		maxOptions: 1000,
+		maxItems: null,
+		hideSelected: null,
+		addPrecedence: false,
+		selectOnTab: false,
+		preload: false,
+		allowEmptyOption: false,
+		closeAfterSelect: false,
+	
+		scrollDuration: 60,
+		loadThrottle: 300,
+		loadingClass: 'loading',
+	
+		dataAttr: 'data-data',
+		optgroupField: 'optgroup',
+		valueField: 'value',
+		labelField: 'text',
+		optgroupLabelField: 'label',
+		optgroupValueField: 'value',
+		lockOptgroupOrder: false,
+	
+		sortField: '$order',
+		searchField: ['text'],
+		searchConjunction: 'and',
+	
+		mode: null,
+		wrapperClass: 'selectize-control',
+		inputClass: 'selectize-input',
+		dropdownClass: 'selectize-dropdown',
+		dropdownContentClass: 'selectize-dropdown-content',
+	
+		dropdownParent: null,
+	
+		copyClassesToDropdown: true,
+	
+		/*
+		load                 : null, // function(query, callback) { ... }
+		score                : null, // function(search) { ... }
+		onInitialize         : null, // function() { ... }
+		onChange             : null, // function(value) { ... }
+		onItemAdd            : null, // function(value, $item) { ... }
+		onItemRemove         : null, // function(value) { ... }
+		onClear              : null, // function() { ... }
+		onOptionAdd          : null, // function(value, data) { ... }
+		onOptionRemove       : null, // function(value) { ... }
+		onOptionClear        : null, // function() { ... }
+		onOptionGroupAdd     : null, // function(id, data) { ... }
+		onOptionGroupRemove  : null, // function(id) { ... }
+		onOptionGroupClear   : null, // function() { ... }
+		onDropdownOpen       : null, // function($dropdown) { ... }
+		onDropdownClose      : null, // function($dropdown) { ... }
+		onType               : null, // function(str) { ... }
+		onDelete             : null, // function(values) { ... }
+		*/
+	
+		render: {
+			/*
+			item: null,
+			optgroup: null,
+			optgroup_header: null,
+			option: null,
+			option_create: null
+			*/
+		}
+	};
+	
+	
+	$.fn.selectize = function(settings_user) {
+		var defaults             = $.fn.selectize.defaults;
+		var settings             = $.extend({}, defaults, settings_user);
+		var attr_data            = settings.dataAttr;
+		var field_label          = settings.labelField;
+		var field_value          = settings.valueField;
+		var field_optgroup       = settings.optgroupField;
+		var field_optgroup_label = settings.optgroupLabelField;
+		var field_optgroup_value = settings.optgroupValueField;
+	
+		/**
+		 * Initializes selectize from a <input type="text"> element.
+		 *
+		 * @param {object} $input
+		 * @param {object} settings_element
+		 */
+		var init_textbox = function($input, settings_element) {
+			var i, n, values, option;
+	
+			var data_raw = $input.attr(attr_data);
+	
+			if (!data_raw) {
+				var value = $.trim($input.val() || '');
+				if (!settings.allowEmptyOption && !value.length) return;
+				values = value.split(settings.delimiter);
+				for (i = 0, n = values.length; i < n; i++) {
+					option = {};
+					option[field_label] = values[i];
+					option[field_value] = values[i];
+					settings_element.options.push(option);
+				}
+				settings_element.items = values;
+			} else {
+				settings_element.options = JSON.parse(data_raw);
+				for (i = 0, n = settings_element.options.length; i < n; i++) {
+					settings_element.items.push(settings_element.options[i][field_value]);
+				}
+			}
+		};
+	
+		/**
+		 * Initializes selectize from a <select> element.
+		 *
+		 * @param {object} $input
+		 * @param {object} settings_element
+		 */
+		var init_select = function($input, settings_element) {
+			var i, n, tagName, $children, order = 0;
+			var options = settings_element.options;
+			var optionsMap = {};
+	
+			var readData = function($el) {
+				var data = attr_data && $el.attr(attr_data);
+				if (typeof data === 'string' && data.length) {
+					return JSON.parse(data);
+				}
+				return null;
+			};
+	
+			var addOption = function($option, group) {
+				$option = $($option);
+	
+				var value = hash_key($option.val());
+				if (!value && !settings.allowEmptyOption) return;
+	
+				// if the option already exists, it's probably been
+				// duplicated in another optgroup. in this case, push
+				// the current group to the "optgroup" property on the
+				// existing option so that it's rendered in both places.
+				if (optionsMap.hasOwnProperty(value)) {
+					if (group) {
+						var arr = optionsMap[value][field_optgroup];
+						if (!arr) {
+							optionsMap[value][field_optgroup] = group;
+						} else if (!$.isArray(arr)) {
+							optionsMap[value][field_optgroup] = [arr, group];
+						} else {
+							arr.push(group);
+						}
+					}
+					return;
+				}
+	
+				var option             = readData($option) || {};
+				option[field_label]    = option[field_label] || $option.text();
+				option[field_value]    = option[field_value] || value;
+				option[field_optgroup] = option[field_optgroup] || group;
+	
+				optionsMap[value] = option;
+				options.push(option);
+	
+				if ($option.is(':selected')) {
+					settings_element.items.push(value);
+				}
+			};
+	
+			var addGroup = function($optgroup) {
+				var i, n, id, optgroup, $options;
+	
+				$optgroup = $($optgroup);
+				id = $optgroup.attr('label');
+	
+				if (id) {
+					optgroup = readData($optgroup) || {};
+					optgroup[field_optgroup_label] = id;
+					optgroup[field_optgroup_value] = id;
+					settings_element.optgroups.push(optgroup);
+				}
+	
+				$options = $('option', $optgroup);
+				for (i = 0, n = $options.length; i < n; i++) {
+					addOption($options[i], id);
+				}
+			};
+	
+			settings_element.maxItems = $input.attr('multiple') ? null : 1;
+	
+			$children = $input.children();
+			for (i = 0, n = $children.length; i < n; i++) {
+				tagName = $children[i].tagName.toLowerCase();
+				if (tagName === 'optgroup') {
+					addGroup($children[i]);
+				} else if (tagName === 'option') {
+					addOption($children[i]);
+				}
+			}
+		};
+	
+		return this.each(function() {
+			if (this.selectize) return;
+	
+			var instance;
+			var $input = $(this);
+			var tag_name = this.tagName.toLowerCase();
+			var placeholder = $input.attr('placeholder') || $input.attr('data-placeholder');
+			if (!placeholder && !settings.allowEmptyOption) {
+				placeholder = $input.children('option[value=""]').text();
+			}
+	
+			var settings_element = {
+				'placeholder' : placeholder,
+				'options'     : [],
+				'optgroups'   : [],
+				'items'       : []
+			};
+	
+			if (tag_name === 'select') {
+				init_select($input, settings_element);
+			} else {
+				init_textbox($input, settings_element);
+			}
+	
+			instance = new Selectize($input, $.extend(true, {}, defaults, settings_element, settings_user));
+		});
+	};
+	
+	$.fn.selectize.defaults = Selectize.defaults;
+	$.fn.selectize.support = {
+		validity: SUPPORTS_VALIDITY_API
+	};
+	
+	
+	Selectize.define('drag_drop', function(options) {
+		if (!$.fn.sortable) throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');
+		if (this.settings.mode !== 'multi') return;
+		var self = this;
+	
+		self.lock = (function() {
+			var original = self.lock;
+			return function() {
+				var sortable = self.$control.data('sortable');
+				if (sortable) sortable.disable();
+				return original.apply(self, arguments);
+			};
+		})();
+	
+		self.unlock = (function() {
+			var original = self.unlock;
+			return function() {
+				var sortable = self.$control.data('sortable');
+				if (sortable) sortable.enable();
+				return original.apply(self, arguments);
+			};
+		})();
+	
+		self.setup = (function() {
+			var original = self.setup;
+			return function() {
+				original.apply(this, arguments);
+	
+				var $control = self.$control.sortable({
+					items: '[data-value]',
+					forcePlaceholderSize: true,
+					disabled: self.isLocked,
+					start: function(e, ui) {
+						ui.placeholder.css('width', ui.helper.css('width'));
+						$control.css({overflow: 'visible'});
+					},
+					stop: function() {
+						$control.css({overflow: 'hidden'});
+						var active = self.$activeItems ? self.$activeItems.slice() : null;
+						var values = [];
+						$control.children('[data-value]').each(function() {
+							values.push($(this).attr('data-value'));
+						});
+						self.setValue(values);
+						self.setActiveItem(active);
+					}
+				});
+			};
+		})();
+	
+	});
+	
+	Selectize.define('dropdown_header', function(options) {
+		var self = this;
+	
+		options = $.extend({
+			title         : 'Untitled',
+			headerClass   : 'selectize-dropdown-header',
+			titleRowClass : 'selectize-dropdown-header-title',
+			labelClass    : 'selectize-dropdown-header-label',
+			closeClass    : 'selectize-dropdown-header-close',
+	
+			html: function(data) {
+				return (
+					'<div class="' + data.headerClass + '">' +
+						'<div class="' + data.titleRowClass + '">' +
+							'<span class="' + data.labelClass + '">' + data.title + '</span>' +
+							'<a href="javascript:void(0)" class="' + data.closeClass + '">&times;</a>' +
+						'</div>' +
+					'</div>'
+				);
+			}
+		}, options);
+	
+		self.setup = (function() {
+			var original = self.setup;
+			return function() {
+				original.apply(self, arguments);
+				self.$dropdown_header = $(options.html(options));
+				self.$dropdown.prepend(self.$dropdown_header);
+			};
+		})();
+	
+	});
+	
+	Selectize.define('optgroup_columns', function(options) {
+		var self = this;
+	
+		options = $.extend({
+			equalizeWidth  : true,
+			equalizeHeight : true
+		}, options);
+	
+		this.getAdjacentOption = function($option, direction) {
+			var $options = $option.closest('[data-group]').find('[data-selectable]');
+			var index    = $options.index($option) + direction;
+	
+			return index >= 0 && index < $options.length ? $options.eq(index) : $();
+		};
+	
+		this.onKeyDown = (function() {
+			var original = self.onKeyDown;
+			return function(e) {
+				var index, $option, $options, $optgroup;
+	
+				if (this.isOpen && (e.keyCode === KEY_LEFT || e.keyCode === KEY_RIGHT)) {
+					self.ignoreHover = true;
+					$optgroup = this.$activeOption.closest('[data-group]');
+					index = $optgroup.find('[data-selectable]').index(this.$activeOption);
+	
+					if(e.keyCode === KEY_LEFT) {
+						$optgroup = $optgroup.prev('[data-group]');
+					} else {
+						$optgroup = $optgroup.next('[data-group]');
+					}
+	
+					$options = $optgroup.find('[data-selectable]');
+					$option  = $options.eq(Math.min($options.length - 1, index));
+					if ($option.length) {
+						this.setActiveOption($option);
+					}
+					return;
+				}
+	
+				return original.apply(this, arguments);
+			};
+		})();
+	
+		var getScrollbarWidth = function() {
+			var div;
+			var width = getScrollbarWidth.width;
+			var doc = document;
+	
+			if (typeof width === 'undefined') {
+				div = doc.createElement('div');
+				div.innerHTML = '<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>';
+				div = div.firstChild;
+				doc.body.appendChild(div);
+				width = getScrollbarWidth.width = div.offsetWidth - div.clientWidth;
+				doc.body.removeChild(div);
+			}
+			return width;
+		};
+	
+		var equalizeSizes = function() {
+			var i, n, height_max, width, width_last, width_parent, $optgroups;
+	
+			$optgroups = $('[data-group]', self.$dropdown_content);
+			n = $optgroups.length;
+			if (!n || !self.$dropdown_content.width()) return;
+	
+			if (options.equalizeHeight) {
+				height_max = 0;
+				for (i = 0; i < n; i++) {
+					height_max = Math.max(height_max, $optgroups.eq(i).height());
+				}
+				$optgroups.css({height: height_max});
+			}
+	
+			if (options.equalizeWidth) {
+				width_parent = self.$dropdown_content.innerWidth() - getScrollbarWidth();
+				width = Math.round(width_parent / n);
+				$optgroups.css({width: width});
+				if (n > 1) {
+					width_last = width_parent - width * (n - 1);
+					$optgroups.eq(n - 1).css({width: width_last});
+				}
+			}
+		};
+	
+		if (options.equalizeHeight || options.equalizeWidth) {
+			hook.after(this, 'positionDropdown', equalizeSizes);
+			hook.after(this, 'refreshOptions', equalizeSizes);
+		}
+	
+	
+	});
+	
+	Selectize.define('remove_button', function(options) {
+		options = $.extend({
+				label     : '&times;',
+				title     : 'Remove',
+				className : 'remove',
+				append    : true
+			}, options);
+	
+			var singleClose = function(thisRef, options) {
+	
+				options.className = 'remove-single';
+	
+				var self = thisRef;
+				var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
+	
+				/**
+				 * Appends an element as a child (with raw HTML).
+				 *
+				 * @param {string} html_container
+				 * @param {string} html_element
+				 * @return {string}
+				 */
+				var append = function(html_container, html_element) {
+					return html_container + html_element;
+				};
+	
+				thisRef.setup = (function() {
+					var original = self.setup;
+					return function() {
+						// override the item rendering method to add the button to each
+						if (options.append) {
+							var id = $(self.$input.context).attr('id');
+							var selectizer = $('#'+id);
+	
+							var render_item = self.settings.render.item;
+							self.settings.render.item = function(data) {
+								return append(render_item.apply(thisRef, arguments), html);
+							};
+						}
+	
+						original.apply(thisRef, arguments);
+	
+						// add event listener
+						thisRef.$control.on('click', '.' + options.className, function(e) {
+							e.preventDefault();
+							if (self.isLocked) return;
+	
+							self.clear();
+						});
+	
+					};
+				})();
+			};
+	
+			var multiClose = function(thisRef, options) {
+	
+				var self = thisRef;
+				var html = '<a href="javascript:void(0)" class="' + options.className + '" tabindex="-1" title="' + escape_html(options.title) + '">' + options.label + '</a>';
+	
+				/**
+				 * Appends an element as a child (with raw HTML).
+				 *
+				 * @param {string} html_container
+				 * @param {string} html_element
+				 * @return {string}
+				 */
+				var append = function(html_container, html_element) {
+					var pos = html_container.search(/(<\/[^>]+>\s*)$/);
+					return html_container.substring(0, pos) + html_element + html_container.substring(pos);
+				};
+	
+				thisRef.setup = (function() {
+					var original = self.setup;
+					return function() {
+						// override the item rendering method to add the button to each
+						if (options.append) {
+							var render_item = self.settings.render.item;
+							self.settings.render.item = function(data) {
+								return append(render_item.apply(thisRef, arguments), html);
+							};
+						}
+	
+						original.apply(thisRef, arguments);
+	
+						// add event listener
+						thisRef.$control.on('click', '.' + options.className, function(e) {
+							e.preventDefault();
+							if (self.isLocked) return;
+	
+							var $item = $(e.currentTarget).parent();
+							self.setActiveItem($item);
+							if (self.deleteSelection()) {
+								self.setCaret(self.items.length);
+							}
+						});
+	
+					};
+				})();
+			};
+	
+			if (this.settings.mode === 'single') {
+				singleClose(this, options);
+				return;
+			} else {
+				multiClose(this, options);
+			}
+	});
+	
+	
+	Selectize.define('restore_on_backspace', function(options) {
+		var self = this;
+	
+		options.text = options.text || function(option) {
+			return option[this.settings.labelField];
+		};
+	
+		this.onKeyDown = (function() {
+			var original = self.onKeyDown;
+			return function(e) {
+				var index, option;
+				if (e.keyCode === KEY_BACKSPACE && this.$control_input.val() === '' && !this.$activeItems.length) {
+					index = this.caretPos - 1;
+					if (index >= 0 && index < this.items.length) {
+						option = this.options[this.items[index]];
+						if (this.deleteSelection(e)) {
+							this.setTextboxValue(options.text.apply(this, [option]));
+							this.refreshOptions(true);
+						}
+						e.preventDefault();
+						return;
+					}
+				}
+				return original.apply(this, arguments);
+			};
+		})();
+	});
+	
+
+	return Selectize;
+}));
\ No newline at end of file
diff --git a/pagure/static/vendor/selectize/selectize-0.12.3.min.js b/pagure/static/vendor/selectize/selectize-0.12.3.min.js
new file mode 100644
index 0000000..34abddd
--- /dev/null
+++ b/pagure/static/vendor/selectize/selectize-0.12.3.min.js
@@ -0,0 +1,3 @@
+/*! selectize.js - v0.12.3 | https://github.com/selectize/selectize.js | Apache License (v2) */
+!function(a,b){"function"==typeof define&&define.amd?define("sifter",b):"object"==typeof exports?module.exports=b():a.Sifter=b()}(this,function(){var a=function(a,b){this.items=a,this.settings=b||{diacritics:!0}};a.prototype.tokenize=function(a){if(a=e(String(a||"").toLowerCase()),!a||!a.length)return[];var b,c,d,g,i=[],j=a.split(/ +/);for(b=0,c=j.length;b<c;b++){if(d=f(j[b]),this.settings.diacritics)for(g in h)h.hasOwnProperty(g)&&(d=d.replace(new RegExp(g,"g"),h[g]));i.push({string:j[b],regex:new RegExp(d,"i")})}return i},a.prototype.iterator=function(a,b){var c;c=g(a)?Array.prototype.forEach||function(a){for(var b=0,c=this.length;b<c;b++)a(this[b],b,this)}:function(a){for(var b in this)this.hasOwnProperty(b)&&a(this[b],b,this)},c.apply(a,[b])},a.prototype.getScoreFunction=function(a,b){var c,e,f,g,h;c=this,a=c.prepareSearch(a,b),f=a.tokens,e=a.options.fields,g=f.length,h=a.options.nesting;var i=function(a,b){var c,d;return a?(a=String(a||""),d=a.search(b.regex),d===-1?0:(c=b.string.length/a.length,0===d&&(c+=.5),c)):0},j=function(){var a=e.length;return a?1===a?function(a,b){return i(d(b,e[0],h),a)}:function(b,c){for(var f=0,g=0;f<a;f++)g+=i(d(c,e[f],h),b);return g/a}:function(){return 0}}();return g?1===g?function(a){return j(f[0],a)}:"and"===a.options.conjunction?function(a){for(var b,c=0,d=0;c<g;c++){if(b=j(f[c],a),b<=0)return 0;d+=b}return d/g}:function(a){for(var b=0,c=0;b<g;b++)c+=j(f[b],a);return c/g}:function(){return 0}},a.prototype.getSortFunction=function(a,c){var e,f,g,h,i,j,k,l,m,n,o;if(g=this,a=g.prepareSearch(a,c),o=!a.query&&c.sort_empty||c.sort,m=function(a,b){return"$score"===a?b.score:d(g.items[b.id],a,c.nesting)},i=[],o)for(e=0,f=o.length;e<f;e++)(a.query||"$score"!==o[e].field)&&i.push(o[e]);if(a.query){for(n=!0,e=0,f=i.length;e<f;e++)if("$score"===i[e].field){n=!1;break}n&&i.unshift({field:"$score",direction:"desc"})}else for(e=0,f=i.length;e<f;e++)if("$score"===i[e].field){i.splice(e,1);break}for(l=[],e=0,f=i.length;e<f;e++)l.push("desc"===i[e].direction?-1:1);return j=i.length,j?1===j?(h=i[0].field,k=l[0],function(a,c){return k*b(m(h,a),m(h,c))}):function(a,c){var d,e,f;for(d=0;d<j;d++)if(f=i[d].field,e=l[d]*b(m(f,a),m(f,c)))return e;return 0}:null},a.prototype.prepareSearch=function(a,b){if("object"==typeof a)return a;b=c({},b);var d=b.fields,e=b.sort,f=b.sort_empty;return d&&!g(d)&&(b.fields=[d]),e&&!g(e)&&(b.sort=[e]),f&&!g(f)&&(b.sort_empty=[f]),{options:b,query:String(a||"").toLowerCase(),tokens:this.tokenize(a),total:0,items:[]}},a.prototype.search=function(a,b){var c,d,e,f,g=this;return d=this.prepareSearch(a,b),b=d.options,a=d.query,f=b.score||g.getScoreFunction(d),a.length?g.iterator(g.items,function(a,e){c=f(a),(b.filter===!1||c>0)&&d.items.push({score:c,id:e})}):g.iterator(g.items,function(a,b){d.items.push({score:1,id:b})}),e=g.getSortFunction(d,b),e&&d.items.sort(e),d.total=d.items.length,"number"==typeof b.limit&&(d.items=d.items.slice(0,b.limit)),d};var b=function(a,b){return"number"==typeof a&&"number"==typeof b?a>b?1:a<b?-1:0:(a=i(String(a||"")),b=i(String(b||"")),a>b?1:b>a?-1:0)},c=function(a,b){var c,d,e,f;for(c=1,d=arguments.length;c<d;c++)if(f=arguments[c])for(e in f)f.hasOwnProperty(e)&&(a[e]=f[e]);return a},d=function(a,b,c){if(a&&b){if(!c)return a[b];for(var d=b.split(".");d.length&&(a=a[d.shift()]););return a}},e=function(a){return(a+"").replace(/^\s+|\s+$|/g,"")},f=function(a){return(a+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},g=Array.isArray||"undefined"!=typeof $&&$.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},h={a:"[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]",b:"[b␢βΒB฿𐌁ᛒ]",c:"[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄＣｃ]",d:"[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅＤｄð]",e:"[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇＥｅɘǝƏƐε]",f:"[fƑƒḞḟ]",g:"[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]",h:"[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]",i:"[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪＩｉ]",j:"[jȷĴĵɈɉʝɟʲ]",k:"[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]",l:"[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟＬｌ]",n:"[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴＮｎŊŋ]",o:"[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]",p:"[pṔṕṖṗⱣᵽƤƥᵱ]",q:"[qꝖꝗʠɊɋꝘꝙq̃]",r:"[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]",s:"[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]",t:"[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]",u:"[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]",v:"[vṼṽṾṿƲʋꝞꝟⱱʋ]",w:"[wẂẃẀẁŴŵẄẅẆẇẈẉ]",x:"[xẌẍẊẋχ]",y:"[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]",z:"[zŹźẐẑŽžŻżẒẓẔẕƵƶ]"},i=function(){var a,b,c,d,e="",f={};for(c in h)if(h.hasOwnProperty(c))for(d=h[c].substring(2,h[c].length-1),e+=d,a=0,b=d.length;a<b;a++)f[d.charAt(a)]=c;var g=new RegExp("["+e+"]","g");return function(a){return a.replace(g,function(a){return f[a]}).toLowerCase()}}();return a}),function(a,b){"function"==typeof define&&define.amd?define("microplugin",b):"object"==typeof exports?module.exports=b():a.MicroPlugin=b()}(this,function(){var a={};a.mixin=function(a){a.plugins={},a.prototype.initializePlugins=function(a){var c,d,e,f=this,g=[];if(f.plugins={names:[],settings:{},requested:{},loaded:{}},b.isArray(a))for(c=0,d=a.length;c<d;c++)"string"==typeof a[c]?g.push(a[c]):(f.plugins.settings[a[c].name]=a[c].options,g.push(a[c].name));else if(a)for(e in a)a.hasOwnProperty(e)&&(f.plugins.settings[e]=a[e],g.push(e));for(;g.length;)f.require(g.shift())},a.prototype.loadPlugin=function(b){var c=this,d=c.plugins,e=a.plugins[b];if(!a.plugins.hasOwnProperty(b))throw new Error('Unable to find "'+b+'" plugin');d.requested[b]=!0,d.loaded[b]=e.fn.apply(c,[c.plugins.settings[b]||{}]),d.names.push(b)},a.prototype.require=function(a){var b=this,c=b.plugins;if(!b.plugins.loaded.hasOwnProperty(a)){if(c.requested[a])throw new Error('Plugin has circular dependency ("'+a+'")');b.loadPlugin(a)}return c.loaded[a]},a.define=function(b,c){a.plugins[b]={name:b,fn:c}}};var b={isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}};return a}),function(a,b){"function"==typeof define&&define.amd?define("selectize",["jquery","sifter","microplugin"],b):"object"==typeof exports?module.exports=b(require("jquery"),require("sifter"),require("microplugin")):a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}(this,function(a,b,c){"use strict";var d=function(a,b){if("string"!=typeof b||b.length){var c="string"==typeof b?new RegExp(b,"i"):b,d=function(a){var b=0;if(3===a.nodeType){var e=a.data.search(c);if(e>=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement("span");g.className="highlight";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName))for(var j=0;j<a.childNodes.length;++j)j+=d(a.childNodes[j]);return b};return a.each(function(){d(this)})}};jQuery.fn.removeHighlight=function(){return this.find("span.highlight").each(function(){this.parentNode.firstChild.nodeName;var a=this.parentNode;a.replaceChild(this.firstChild,this),a.normalize()}).end()};var e=function(){};e.prototype={on:function(a,b){this._events=this._events||{},this._events[a]=this._events[a]||[],this._events[a].push(b)},off:function(a,b){var c=arguments.length;return 0===c?delete this._events:1===c?delete this._events[a]:(this._events=this._events||{},void(a in this._events!=!1&&this._events[a].splice(this._events[a].indexOf(b),1)))},trigger:function(a){if(this._events=this._events||{},a in this._events!=!1)for(var b=0;b<this._events[a].length;b++)this._events[a][b].apply(this,Array.prototype.slice.call(arguments,1))}},e.mixin=function(a){for(var b=["on","off","trigger"],c=0;c<b.length;c++)a.prototype[b[c]]=e.prototype[b[c]]};var f=/Mac/.test(navigator.userAgent),g=65,h=13,i=27,j=37,k=38,l=80,m=39,n=40,o=78,p=8,q=46,r=16,s=f?91:17,t=f?18:17,u=9,v=1,w=2,x=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("input").validity,y=function(a){return"undefined"!=typeof a},z=function(a){return"undefined"==typeof a||null===a?null:"boolean"==typeof a?a?"1":"0":a+""},A=function(a){return(a+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},B={};B.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},B.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var C=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},D=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},E=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];return b.indexOf(c)===-1?e.apply(a,arguments):void(f[c]=arguments)},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},F=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},G=function(a){var b={};if("selectionStart"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart("character",-a.value.length),b.start=c.text.length-d,b.length=d}return b},H=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;d<e;d++)f[c[d]]=a.css(c[d]);else f=a.css();b.css(f)},I=function(b,c){if(!b)return 0;var d=a("<test>").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).text(b).appendTo("body");H(c,d,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]);var e=d.width();return d.remove(),e},J=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||a.data("grow")!==!1)&&(e=a.val(),c.type&&"keydown"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=97&&f<=122||f>=65&&f<=90||f>=48&&f<=57||32===f,f===q||f===p?(l=G(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):f===p&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):f===q&&"undefined"!=typeof l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr("placeholder"),!e&&h&&(e=h),i=I(e,a)+4,i!==b&&(b=i,a.width(i),a.triggerHandler("resize")))};a.on("keydown keyup update blur",c),c()},K=function(a){var b=document.createElement("div");return b.appendChild(a.cloneNode(!0)),b.innerHTML},L=function(a,b){b||(b={});var c="Selectize";console.error(c+": "+a),b.explanation&&(console.group&&console.group(),console.error(b.explanation),console.group&&console.groupEnd())},M=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue("direction"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents("[dir]:first").attr("dir")||"",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr("tabindex")||"",tagType:"select"===h.tagName.toLowerCase()?v:w,rtl:/rtl/i.test(g),eventNS:".selectize"+ ++M.count,highlightedValue:null,isOpen:!1,isDisabled:!1,isRequired:c.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:D(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;e<f;e++)i.registerOption(i.settings.options[e]);delete i.settings.options}if(i.settings.optgroups){for(e=0,f=i.settings.optgroups.length;e<f;e++)i.registerOptionGroup(i.settings.optgroups[e]);delete i.settings.optgroups}i.settings.mode=i.settings.mode||(1===i.settings.maxItems?"single":"multi"),"boolean"!=typeof i.settings.hideSelected&&(i.settings.hideSelected="multi"===i.settings.mode),i.initializePlugins(i.settings.plugins),i.setupCallbacks(),i.setupTemplates(),i.setup()};return e.mixin(M),"undefined"!=typeof c?c.mixin(M):L("Dependency MicroPlugin is missing",{explanation:'Make sure you either: (1) are using the "standalone" version of Selectize, or (2) require MicroPlugin before you load Selectize.'}),a.extend(M.prototype,{setup:function(){var b,c,d,e,g,h,i,j,k,l,m=this,n=m.settings,o=m.eventNS,p=a(window),q=a(document),u=m.$input;if(i=m.settings.mode,j=u.attr("class")||"",b=a("<div>").addClass(n.wrapperClass).addClass(j).addClass(i),c=a("<div>").addClass(n.inputClass).addClass("items").appendTo(b),d=a('<input type="text" autocomplete="off" />').appendTo(c).attr("tabindex",u.is(":disabled")?"-1":m.tabIndex),h=a(n.dropdownParent||b),e=a("<div>").addClass(n.dropdownClass).addClass(i).hide().appendTo(h),g=a("<div>").addClass(n.dropdownContentClass).appendTo(e),(l=u.attr("id"))&&(d.attr("id",l+"-selectized"),a("label[for='"+l+"']").attr("for",l+"-selectized")),m.settings.copyClassesToDropdown&&e.addClass(j),b.css({width:u[0].style.width}),m.plugins.names.length&&(k="plugin-"+m.plugins.names.join(" plugin-"),b.addClass(k),e.addClass(k)),(null===n.maxItems||n.maxItems>1)&&m.tagType===v&&u.attr("multiple","multiple"),m.settings.placeholder&&d.attr("placeholder",n.placeholder),!m.settings.splitOn&&m.settings.delimiter){var w=m.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");m.settings.splitOn=new RegExp("\\s*"+w+"+\\s*")}u.attr("autocorrect")&&d.attr("autocorrect",u.attr("autocorrect")),u.attr("autocapitalize")&&d.attr("autocapitalize",u.attr("autocapitalize")),m.$wrapper=b,m.$control=c,m.$control_input=d,m.$dropdown=e,m.$dropdown_content=g,e.on("mouseenter","[data-selectable]",function(){return m.onOptionHover.apply(m,arguments)}),e.on("mousedown click","[data-selectable]",function(){return m.onOptionSelect.apply(m,arguments)}),F(c,"mousedown","*:not(input)",function(){return m.onItemSelect.apply(m,arguments)}),J(d),c.on({mousedown:function(){return m.onMouseDown.apply(m,arguments)},click:function(){return m.onClick.apply(m,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return m.onKeyDown.apply(m,arguments)},keyup:function(){return m.onKeyUp.apply(m,arguments)},keypress:function(){return m.onKeyPress.apply(m,arguments)},resize:function(){m.positionDropdown.apply(m,[])},blur:function(){return m.onBlur.apply(m,arguments)},focus:function(){return m.ignoreBlur=!1,m.onFocus.apply(m,arguments)},paste:function(){return m.onPaste.apply(m,arguments)}}),q.on("keydown"+o,function(a){m.isCmdDown=a[f?"metaKey":"ctrlKey"],m.isCtrlDown=a[f?"altKey":"ctrlKey"],m.isShiftDown=a.shiftKey}),q.on("keyup"+o,function(a){a.keyCode===t&&(m.isCtrlDown=!1),a.keyCode===r&&(m.isShiftDown=!1),a.keyCode===s&&(m.isCmdDown=!1)}),q.on("mousedown"+o,function(a){if(m.isFocused){if(a.target===m.$dropdown[0]||a.target.parentNode===m.$dropdown[0])return!1;m.$control.has(a.target).length||a.target===m.$control[0]||m.blur(a.target)}}),p.on(["scroll"+o,"resize"+o].join(" "),function(){m.isOpen&&m.positionDropdown.apply(m,arguments)}),p.on("mousemove"+o,function(){m.ignoreHover=!1}),this.revertSettings={$children:u.children().detach(),tabindex:u.attr("tabindex")},u.attr("tabindex",-1).hide().after(m.$wrapper),a.isArray(n.items)&&(m.setValue(n.items),delete n.items),x&&u.on("invalid"+o,function(a){a.preventDefault(),m.isInvalid=!0,m.refreshState()}),m.updateOriginalInput(),m.refreshItems(),m.refreshState(),m.updatePlaceholder(),m.isSetup=!0,u.is(":disabled")&&m.disable(),m.on("change",this.onChange),u.data("selectize",m),u.addClass("selectized"),m.trigger("initialize"),n.preload===!0&&m.onSearchChange("")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'<div class="optgroup">'+a.html+"</div>"},optgroup_header:function(a,b){return'<div class="optgroup-header">'+b(a[d])+"</div>"},option:function(a,b){return'<div class="option">'+b(a[c])+"</div>"},item:function(a,b){return'<div class="item">'+b(a[c])+"</div>"},option_create:function(a,b){return'<div class="create">Add <strong>'+b(a.input)+"</strong>&hellip;</div>"}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]],b&&this.on(a,b))},onClick:function(a){var b=this;b.isFocused||(b.focus(),a.preventDefault())},onMouseDown:function(b){var c=this,d=b.isDefaultPrevented();a(b.target);if(c.isFocused){if(b.target!==c.$control_input[0])return"single"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(b){var c=this;return c.isFull()||c.isInputHidden||c.isLocked?void b.preventDefault():void(c.settings.splitOn&&setTimeout(function(){var b=c.$control_input.val();if(b.match(c.settings.splitOn))for(var d=a.trim(b).split(c.settings.splitOn),e=0,f=d.length;e<f;e++)c.createItem(d[e])},0))},onKeyPress:function(a){if(this.isLocked)return a&&a.preventDefault();var b=String.fromCharCode(a.keyCode||a.which);return this.settings.create&&"multi"===this.settings.mode&&b===this.settings.delimiter?(this.createItem(),a.preventDefault(),!1):void 0},onKeyDown:function(a){var b=(a.target===this.$control_input[0],this);if(b.isLocked)return void(a.keyCode!==u&&a.preventDefault());switch(a.keyCode){case g:if(b.isCmdDown)return void b.selectAll();break;case i:return void(b.isOpen&&(a.preventDefault(),a.stopPropagation(),b.close()));case o:if(!a.ctrlKey||a.altKey)break;case n:if(!b.isOpen&&b.hasOptions)b.open();else if(b.$activeOption){b.ignoreHover=!0;var c=b.getAdjacentOption(b.$activeOption,1);c.length&&b.setActiveOption(c,!0,!0)}return void a.preventDefault();case l:if(!a.ctrlKey||a.altKey)break;case k:if(b.$activeOption){b.ignoreHover=!0;var d=b.getAdjacentOption(b.$activeOption,-1);d.length&&b.setActiveOption(d,!0,!0)}return void a.preventDefault();case h:return void(b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),a.preventDefault()));case j:return void b.advanceSelection(-1,a);case m:return void b.advanceSelection(1,a);case u:return b.settings.selectOnTab&&b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),b.isFull()||a.preventDefault()),void(b.settings.create&&b.createItem()&&a.preventDefault());case p:case q:return void b.deleteSelection(a)}return!b.isFull()&&!b.isInputHidden||(f?a.metaKey:a.ctrlKey)?void 0:void a.preventDefault()},onKeyUp:function(a){var b=this;if(b.isLocked)return a&&a.preventDefault();var c=b.$control_input.val()||"";b.lastValue!==c&&(b.lastValue=c,b.onSearchChange(c),b.refreshOptions(),b.trigger("type",c))},onSearchChange:function(a){var b=this,c=b.settings.load;c&&(b.loadedSearches.hasOwnProperty(a)||(b.loadedSearches[a]=!0,b.load(function(d){c.apply(b,[a,d])})))},onFocus:function(a){var b=this,c=b.isFocused;return b.isDisabled?(b.blur(),a&&a.preventDefault(),!1):void(b.ignoreFocus||(b.isFocused=!0,"focus"===b.settings.preload&&b.onSearchChange(""),c||b.trigger("focus"),b.$activeItems.length||(b.showInput(),b.setActiveItem(null),b.refreshOptions(!!b.settings.openOnFocus)),b.refreshState()))},onBlur:function(a,b){var c=this;if(c.isFocused&&(c.isFocused=!1,!c.ignoreFocus)){if(!c.ignoreBlur&&document.activeElement===c.$dropdown_content[0])return c.ignoreBlur=!0,void c.onFocus(a);var d=function(){c.close(),c.setTextboxValue(""),c.setActiveItem(null),c.setActiveOption(null),c.setCaret(c.items.length),c.refreshState(),b&&b.focus(),c.ignoreFocus=!1,c.trigger("blur")};c.ignoreFocus=!0,c.settings.create&&c.settings.createOnBlur?c.createItem(null,!1,d):d()}},onOptionHover:function(a){this.ignoreHover||this.setActiveOption(a.currentTarget,!1)},onOptionSelect:function(b){var c,d,e=this;b.preventDefault&&(b.preventDefault(),b.stopPropagation()),d=a(b.currentTarget),d.hasClass("create")?e.createItem(null,function(){e.settings.closeAfterSelect&&e.close()}):(c=d.attr("data-value"),"undefined"!=typeof c&&(e.lastQuery=null,e.setTextboxValue(""),e.addItem(c),e.settings.closeAfterSelect?e.close():!e.settings.hideSelected&&b.type&&/mouse/.test(b.type)&&e.setActiveOption(e.getOption(c))))},onItemSelect:function(a){var b=this;b.isLocked||"multi"===b.settings.mode&&(a.preventDefault(),b.setActiveItem(a.currentTarget,a))},load:function(a){var b=this,c=b.$wrapper.addClass(b.settings.loadingClass);b.loading++,a.apply(b,[function(a){b.loading=Math.max(b.loading-1,0),a&&a.length&&(b.addOption(a),b.refreshOptions(b.isFocused&&!b.isInputHidden)),b.loading||c.removeClass(b.settings.loadingClass),b.trigger("load",a)}])},setTextboxValue:function(a){var b=this.$control_input,c=b.val()!==a;c&&(b.val(a).triggerHandler("update"),this.lastValue=a)},getValue:function(){return this.tagType===v&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(a,b){var c=b?[]:["change"];E(this,c,function(){this.clear(b),this.addItems(a,b)})},setActiveItem:function(b,c){var d,e,f,g,h,i,j,k,l=this;if("single"!==l.settings.mode){if(b=a(b),!b.length)return a(l.$activeItems).removeClass("active"),l.$activeItems=[],void(l.isFocused&&l.showInput());if(d=c&&c.type.toLowerCase(),"mousedown"===d&&l.isShiftDown&&l.$activeItems.length){for(k=l.$control.children(".active:last"),g=Array.prototype.indexOf.apply(l.$control[0].childNodes,[k[0]]),h=Array.prototype.indexOf.apply(l.$control[0].childNodes,[b[0]]),g>h&&(j=g,g=h,h=j),e=g;e<=h;e++)i=l.$control[0].childNodes[e],l.$activeItems.indexOf(i)===-1&&(a(i).addClass("active"),l.$activeItems.push(i));c.preventDefault()}else"mousedown"===d&&l.isCtrlDown||"keydown"===d&&this.isShiftDown?b.hasClass("active")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass("active")):l.$activeItems.push(b.addClass("active")[0]):(a(l.$activeItems).removeClass("active"),l.$activeItems=[b.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,j=this;j.$activeOption&&j.$activeOption.removeClass("active"),j.$activeOption=null,b=a(b),b.length&&(j.$activeOption=b.addClass("active"),!c&&y(c)||(e=j.$dropdown_content.height(),f=j.$activeOption.outerHeight(!0),c=j.$dropdown_content.scrollTop()||0,g=j.$activeOption.offset().top-j.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?j.$dropdown_content.stop().animate({scrollTop:i},d?j.settings.scrollDuration:0):g<c&&j.$dropdown_content.stop().animate({scrollTop:h},d?j.settings.scrollDuration:0)))},selectAll:function(){var a=this;"single"!==a.settings.mode&&(a.$activeItems=Array.prototype.slice.apply(a.$control.children(":not(input)").addClass("active")),a.$activeItems.length&&(a.hideInput(),a.close()),a.focus())},hideInput:function(){var a=this;a.setTextboxValue(""),a.$control_input.css({opacity:0,position:"absolute",left:a.rtl?1e4:-1e4}),a.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var a=this;a.isDisabled||(a.ignoreFocus=!0,a.$control_input[0].focus(),window.setTimeout(function(){a.ignoreFocus=!1,a.onFocus()},0))},blur:function(a){this.$control_input[0].blur(),this.onBlur(null,a)},getScoreFunction:function(a){return this.sifter.getScoreFunction(a,this.getSearchOptions())},getSearchOptions:function(){var a=this.settings,b=a.sortField;return"string"==typeof b&&(b=[{field:b}]),{fields:a.searchField,conjunction:a.searchConjunction,sort:b}},search:function(b){var c,d,e,f=this,g=f.settings,h=this.getSearchOptions();if(g.score&&(e=f.settings.score.apply(this,[b]),"function"!=typeof e))throw new Error('Selectize "score" setting must be a function that returns a function');if(b!==f.lastQuery?(f.lastQuery=b,d=f.sifter.search(b,a.extend(h,{score:e})),f.currentResults=d):d=a.extend(!0,{},f.currentResults),g.hideSelected)for(c=d.items.length-1;c>=0;c--)f.items.indexOf(z(d.items[c].id))!==-1&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;"undefined"==typeof b&&(b=!0);var t=this,u=a.trim(t.$control_input.val()),v=t.search(u),w=t.$dropdown_content,x=t.$activeOption&&z(t.$activeOption.attr("data-value"));for(g=v.items.length,"number"==typeof t.settings.maxOptions&&(g=Math.min(g,t.settings.maxOptions)),h={},i=[],c=0;c<g;c++)for(j=t.options[v.items[c].id],k=t.render("option",j),l=j[t.settings.optgroupField]||"",m=a.isArray(l)?l:[l],e=0,f=m&&m.length;e<f;e++)l=m[e],t.optgroups.hasOwnProperty(l)||(l=""),h.hasOwnProperty(l)||(h[l]=document.createDocumentFragment(),i.push(l)),h[l].appendChild(k);for(this.settings.lockOptgroupOrder&&i.sort(function(a,b){var c=t.optgroups[a].$order||0,d=t.optgroups[b].$order||0;return c-d}),n=document.createDocumentFragment(),c=0,g=i.length;c<g;c++)l=i[c],t.optgroups.hasOwnProperty(l)&&h[l].childNodes.length?(o=document.createDocumentFragment(),o.appendChild(t.render("optgroup_header",t.optgroups[l])),o.appendChild(h[l]),n.appendChild(t.render("optgroup",a.extend({},t.optgroups[l],{html:K(o),dom:o})))):n.appendChild(h[l]);if(w.html(n),t.settings.highlight&&v.query.length&&v.tokens.length)for(w.removeHighlight(),c=0,g=v.tokens.length;c<g;c++)d(w,v.tokens[c].regex);if(!t.settings.hideSelected)for(c=0,g=t.items.length;c<g;c++)t.getOption(t.items[c]).addClass("selected");p=t.canCreate(u),p&&(w.prepend(t.render("option_create",{input:u})),s=a(w[0].childNodes[0])),t.hasOptions=v.items.length>0||p,t.hasOptions?(v.items.length>0?(r=x&&t.getOption(x),r&&r.length?q=r:"single"===t.settings.mode&&t.items.length&&(q=t.getOption(t.items[0])),q&&q.length||(q=s&&!t.settings.addPrecedence?t.getAdjacentOption(s,1):w.find("[data-selectable]:first"))):q=s,t.setActiveOption(q),b&&!t.isOpen&&t.open()):(t.setActiveOption(null),b&&t.isOpen&&t.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;c<d;c++)f.addOption(b[c]);else(e=f.registerOption(b))&&(f.userOptions[e]=!0,f.lastQuery=null,f.trigger("option_add",e,b))},registerOption:function(a){var b=z(a[this.settings.valueField]);return"undefined"!=typeof b&&null!==b&&!this.options.hasOwnProperty(b)&&(a.$order=a.$order||++this.order,this.options[b]=a,b)},registerOptionGroup:function(a){var b=z(a[this.settings.optgroupValueField]);return!!b&&(a.$order=a.$order||++this.order,this.optgroups[b]=a,b)},addOptionGroup:function(a,b){b[this.settings.optgroupValueField]=a,(a=this.registerOptionGroup(b))&&this.trigger("optgroup_add",a,b)},removeOptionGroup:function(a){this.optgroups.hasOwnProperty(a)&&(delete this.optgroups[a],this.renderCache={},this.trigger("optgroup_remove",a))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function(b,c){var d,e,f,g,h,i,j,k=this;if(b=z(b),f=z(c[k.settings.valueField]),null!==b&&k.options.hasOwnProperty(b)){if("string"!=typeof f)throw new Error("Value must be set in option data");j=k.options[b].$order,f!==b&&(delete k.options[b],g=k.items.indexOf(b),g!==-1&&k.items.splice(g,1,f)),c.$order=c.$order||j,k.options[f]=c,h=k.renderCache.item,i=k.renderCache.option,h&&(delete h[b],delete h[f]),i&&(delete i[b],delete i[f]),k.items.indexOf(f)!==-1&&(d=k.getItem(b),e=a(k.render("item",c)),d.hasClass("active")&&e.addClass("active"),d.replaceWith(e)),k.lastQuery=null,k.isOpen&&k.refreshOptions(!1)}},removeOption:function(a,b){var c=this;a=z(a);var d=c.renderCache.item,e=c.renderCache.option;d&&delete d[a],e&&delete e[a],delete c.userOptions[a],delete c.options[a],c.lastQuery=null,c.trigger("option_remove",a),c.removeItem(a,b)},clearOptions:function(){var a=this;a.loadedSearches={},a.userOptions={},a.renderCache={},a.options=a.sifter.items={},a.lastQuery=null,a.trigger("option_clear"),a.clear()},getOption:function(a){return this.getElementWithValue(a,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(b,c){var d=this.$dropdown.find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},getElementWithValue:function(b,c){if(b=z(b),"undefined"!=typeof b&&null!==b)for(var d=0,e=c.length;d<e;d++)if(c[d].getAttribute("data-value")===b)return a(c[d]);return a()},getItem:function(a){return this.getElementWithValue(a,this.$control.children())},addItems:function(b,c){for(var d=a.isArray(b)?b:[b],e=0,f=d.length;e<f;e++)this.isPending=e<f-1,this.addItem(d[e],c)},addItem:function(b,c){var d=c?[]:["change"];E(this,d,function(){var d,e,f,g,h,i=this,j=i.settings.mode;return b=z(b),i.items.indexOf(b)!==-1?void("single"===j&&i.close()):void(i.options.hasOwnProperty(b)&&("single"===j&&i.clear(c),"multi"===j&&i.isFull()||(d=a(i.render("item",i.options[b])),h=i.isFull(),i.items.splice(i.caretPos,0,b),i.insertAtCaret(d),(!i.isPending||!h&&i.isFull())&&i.refreshState(),i.isSetup&&(f=i.$dropdown_content.find("[data-selectable]"),i.isPending||(e=i.getOption(b),g=i.getAdjacentOption(e,1).attr("data-value"),i.refreshOptions(i.isFocused&&"single"!==j),g&&i.setActiveOption(i.getOption(g))),!f.length||i.isFull()?i.close():i.positionDropdown(),i.updatePlaceholder(),i.trigger("item_add",b,d),i.updateOriginalInput({silent:c})))))})},removeItem:function(b,c){var d,e,f,g=this;d=b instanceof a?b:g.getItem(b),b=z(d.attr("data-value")),e=g.items.indexOf(b),e!==-1&&(d.remove(),d.hasClass("active")&&(f=g.$activeItems.indexOf(d[0]),g.$activeItems.splice(f,1)),g.items.splice(e,1),g.lastQuery=null,!g.settings.persist&&g.userOptions.hasOwnProperty(b)&&g.removeOption(b,c),e<g.caretPos&&g.setCaret(g.caretPos-1),g.refreshState(),g.updatePlaceholder(),g.updateOriginalInput({silent:c}),g.positionDropdown(),g.trigger("item_remove",b,d))},createItem:function(b,c){var d=this,e=d.caretPos;b=b||a.trim(d.$control_input.val()||"");var f=arguments[arguments.length-1];if("function"!=typeof f&&(f=function(){}),"boolean"!=typeof c&&(c=!0),!d.canCreate(b))return f(),!1;d.lock();var g="function"==typeof d.settings.create?this.settings.create:function(a){var b={};return b[d.settings.labelField]=a,b[d.settings.valueField]=a,b},h=C(function(a){if(d.unlock(),!a||"object"!=typeof a)return f();var b=z(a[d.settings.valueField]);return"string"!=typeof b?f():(d.setTextboxValue(""),d.addOption(a),d.setCaret(e),d.addItem(b),d.refreshOptions(c&&"single"!==d.settings.mode),void f(a))}),i=g.apply(this,[b,h]);return"undefined"!=typeof i&&h(i),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){this.refreshValidityState(),this.refreshClasses()},refreshValidityState:function(){if(!this.isRequired)return!1;var a=!this.items.length;this.isInvalid=a,this.$control_input.prop("required",a),this.$input.prop("required",!a)},refreshClasses:function(){var b=this,c=b.isFull(),d=b.isLocked;b.$wrapper.toggleClass("rtl",b.rtl),b.$control.toggleClass("focus",b.isFocused).toggleClass("disabled",b.isDisabled).toggleClass("required",b.isRequired).toggleClass("invalid",b.isInvalid).toggleClass("locked",d).toggleClass("full",c).toggleClass("not-full",!c).toggleClass("input-active",b.isFocused&&!b.isInputHidden).toggleClass("dropdown-active",b.isOpen).toggleClass("has-options",!a.isEmptyObject(b.options)).toggleClass("has-items",b.items.length>0),b.$control_input.data("grow",!c&&!d)},isFull:function(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},f.tagType===v){for(d=[],b=0,c=f.items.length;b<c;b++)e=f.options[f.items[b]][f.settings.labelField]||"",d.push('<option value="'+A(f.items[b])+'" selected="selected">'+A(e)+"</option>");d.length||this.$input.attr("multiple")||d.push('<option value="" selected="selected"></option>'),
+f.$input.html(d.join(""))}else f.$input.val(f.getValue()),f.$input.attr("value",f.$input.val());f.isSetup&&(a.silent||f.trigger("change",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr("placeholder"):a.attr("placeholder",this.settings.placeholder),a.triggerHandler("update",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||"multi"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:"hidden",display:"block"}),a.positionDropdown(),a.$dropdown.css({visibility:"visible"}),a.trigger("dropdown_open",a.$dropdown))},close:function(){var a=this,b=a.isOpen;"single"===a.settings.mode&&a.items.length&&(a.hideInput(),a.$control_input.blur()),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger("dropdown_close",a.$dropdown)},positionDropdown:function(){var a=this.$control,b="body"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a.outerWidth(),top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(":not(input)").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger("clear"))},insertAtCaret:function(b){var c=Math.min(this.caretPos,this.items.length);0===c?this.$control.prepend(b):a(this.$control[0].childNodes[c]).before(b),this.setCaret(c+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&b.keyCode===p?-1:1,f=G(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr("data-value")),g=[],l.$activeItems.length){for(k=l.$control.children(".active:"+(e>0?"last":"first")),h=l.$control.children(":not(input)").index(k),e>0&&h++,c=0,d=l.$activeItems.length;c<d;c++)g.push(a(l.$activeItems[c]).attr("data-value"));b&&(b.preventDefault(),b.stopPropagation())}else(l.isFocused||"single"===l.settings.mode)&&l.items.length&&(e<0&&0===f.start&&0===f.length?g.push(l.items[l.caretPos-1]):e>0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||"function"==typeof l.settings.onDelete&&l.settings.onDelete.apply(l,[g])===!1)return!1;for("undefined"!=typeof h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h,i=this;0!==a&&(i.rtl&&(a*=-1),c=a>0?"last":"first",d=G(i.$control_input[0]),i.isFocused&&!i.isInputHidden?(f=i.$control_input.val().length,g=a<0?0===d.start&&0===d.length:d.start===f,g&&!f&&i.advanceCaret(a,b)):(h=i.$control.children(".active:"+c),h.length&&(e=i.$control.children(":not(input)").index(h),i.setActiveItem(null),i.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?"next":"prev",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b="single"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(":not(input)"),d=0,e=f.length;d<e;d++)g=a(f[d]).detach(),d<b?c.$control_input.before(g):c.$control.append(g)}c.caretPos=b},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){var a=this;a.$input.prop("disabled",!0),a.$control_input.prop("disabled",!0).prop("tabindex",-1),a.isDisabled=!0,a.lock()},enable:function(){var a=this;a.$input.prop("disabled",!1),a.$control_input.prop("disabled",!1).prop("tabindex",a.tabIndex),a.isDisabled=!1,a.unlock()},destroy:function(){var b=this,c=b.eventNS,d=b.revertSettings;b.trigger("destroy"),b.off(),b.$wrapper.remove(),b.$dropdown.remove(),b.$input.html("").append(d.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:d.tabindex}).show(),b.$control_input.removeData("grow"),b.$input.removeData("selectize"),a(window).off(c),a(document).off(c),a(document.body).off(c),delete b.$input[0].selectize},render:function(b,c){var d,e,f="",g=!1,h=this;return"option"!==b&&"item"!==b||(d=z(c[h.settings.valueField]),g=!!d),g&&(y(h.renderCache[b])||(h.renderCache[b]={}),h.renderCache[b].hasOwnProperty(d))?h.renderCache[b][d]:(f=a(h.settings.render[b].apply(this,[c,A])),"option"===b||"option_create"===b?f.attr("data-selectable",""):"optgroup"===b&&(e=c[h.settings.optgroupValueField]||"",f.attr("data-group",e)),"option"!==b&&"item"!==b||f.attr("data-value",d||""),g&&(h.renderCache[b][d]=f[0]),f[0])},clearCache:function(a){var b=this;"undefined"==typeof a?b.renderCache={}:delete b.renderCache[a]},canCreate:function(a){var b=this;if(!b.settings.create)return!1;var c=b.settings.createFilter;return a.length&&("function"!=typeof c||c.apply(b,[a]))&&("string"!=typeof c||new RegExp(c).test(a))&&(!(c instanceof RegExp)||c.test(a))}}),M.count=0,M.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},a.fn.selectize=function(b){var c=a.fn.selectize.defaults,d=a.extend({},c,b),e=d.dataAttr,f=d.labelField,g=d.valueField,h=d.optgroupField,i=d.optgroupLabelField,j=d.optgroupValueField,k=function(b,c){var h,i,j,k,l=b.attr(e);if(l)for(c.options=JSON.parse(l),h=0,i=c.options.length;h<i;h++)c.items.push(c.options[h][g]);else{var m=a.trim(b.val()||"");if(!d.allowEmptyOption&&!m.length)return;for(j=m.split(d.delimiter),h=0,i=j.length;h<i;h++)k={},k[f]=j[h],k[g]=j[h],c.options.push(k);c.items=j}},l=function(b,c){var k,l,m,n,o=c.options,p={},q=function(a){var b=e&&a.attr(e);return"string"==typeof b&&b.length?JSON.parse(b):null},r=function(b,e){b=a(b);var i=z(b.val());if(i||d.allowEmptyOption)if(p.hasOwnProperty(i)){if(e){var j=p[i][h];j?a.isArray(j)?j.push(e):p[i][h]=[j,e]:p[i][h]=e}}else{var k=q(b)||{};k[f]=k[f]||b.text(),k[g]=k[g]||i,k[h]=k[h]||e,p[i]=k,o.push(k),b.is(":selected")&&c.items.push(i)}},s=function(b){var d,e,f,g,h;for(b=a(b),f=b.attr("label"),f&&(g=q(b)||{},g[i]=f,g[j]=f,c.optgroups.push(g)),h=a("option",b),d=0,e=h.length;d<e;d++)r(h[d],f)};for(c.maxItems=b.attr("multiple")?null:1,n=b.children(),k=0,l=n.length;k<l;k++)m=n[k].tagName.toLowerCase(),"optgroup"===m?s(n[k]):"option"===m&&r(n[k])};return this.each(function(){if(!this.selectize){var e,f=a(this),g=this.tagName.toLowerCase(),h=f.attr("placeholder")||f.attr("data-placeholder");h||d.allowEmptyOption||(h=f.children('option[value=""]').text());var i={placeholder:h,options:[],optgroups:[],items:[]};"select"===g?l(f,i):k(f,i),e=new M(f,a.extend(!0,{},c,i,b))}})},a.fn.selectize.defaults=M.defaults,a.fn.selectize.support={validity:x},M.define("drag_drop",function(b){if(!a.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');if("multi"===this.settings.mode){var c=this;c.lock=function(){var a=c.lock;return function(){var b=c.$control.data("sortable");return b&&b.disable(),a.apply(c,arguments)}}(),c.unlock=function(){var a=c.unlock;return function(){var b=c.$control.data("sortable");return b&&b.enable(),a.apply(c,arguments)}}(),c.setup=function(){var b=c.setup;return function(){b.apply(this,arguments);var d=c.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:c.isLocked,start:function(a,b){b.placeholder.css("width",b.helper.css("width")),d.css({overflow:"visible"})},stop:function(){d.css({overflow:"hidden"});var b=c.$activeItems?c.$activeItems.slice():null,e=[];d.children("[data-value]").each(function(){e.push(a(this).attr("data-value"))}),c.setValue(e),c.setActiveItem(b)}})}}()}}),M.define("dropdown_header",function(b){var c=this;b=a.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(a){return'<div class="'+a.headerClass+'"><div class="'+a.titleRowClass+'"><span class="'+a.labelClass+'">'+a.title+'</span><a href="javascript:void(0)" class="'+a.closeClass+'">&times;</a></div></div>'}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),M.define("optgroup_columns",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest("[data-group]").find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},this.onKeyDown=function(){var a=c.onKeyDown;return function(b){var d,e,f,g;return!this.isOpen||b.keyCode!==j&&b.keyCode!==m?a.apply(this,arguments):(c.ignoreHover=!0,g=this.$activeOption.closest("[data-group]"),d=g.find("[data-selectable]").index(this.$activeOption),g=b.keyCode===j?g.prev("[data-group]"):g.next("[data-group]"),f=g.find("[data-selectable]"),e=f.eq(Math.min(f.length-1,d)),void(e.length&&this.setActiveOption(e)))}}();var d=function(){var a,b=d.width,c=document;return"undefined"==typeof b&&(a=c.createElement("div"),a.innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a("[data-group]",c.$dropdown_content),f=k.length,f&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;e<f;e++)g=Math.max(g,k.eq(e).height());k.css({height:g})}b.equalizeWidth&&(j=c.$dropdown_content.innerWidth()-d(),h=Math.round(j/f),k.css({width:h}),f>1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(B.after(this,"positionDropdown",e),B.after(this,"refreshOptions",e))}),M.define("remove_button",function(b){b=a.extend({label:"&times;",title:"Remove",className:"remove",append:!0},b);var c=function(b,c){c.className="remove-single";var d=b,e='<a href="javascript:void(0)" class="'+c.className+'" tabindex="-1" title="'+A(c.title)+'">'+c.label+"</a>",f=function(a,b){return a+b};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=a(d.$input.context).attr("id"),i=(a("#"+h),d.settings.render.item);d.settings.render.item=function(a){return f(i.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(a){a.preventDefault(),d.isLocked||d.clear()})}}()},d=function(b,c){var d=b,e='<a href="javascript:void(0)" class="'+c.className+'" tabindex="-1" title="'+A(c.title)+'">'+c.label+"</a>",f=function(a,b){var c=a.search(/(<\/[^>]+>\s*)$/);return a.substring(0,c)+b+a.substring(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=d.settings.render.item;d.settings.render.item=function(a){return f(h.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(b){if(b.preventDefault(),!d.isLocked){var c=a(b.currentTarget).parent();d.setActiveItem(c),d.deleteSelection()&&d.setCaret(d.items.length)}})}}()};return"single"===this.settings.mode?void c(this,b):void d(this,b)}),M.define("restore_on_backspace",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return b.keyCode===p&&""===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1,d>=0&&d<this.items.length)?(e=this.options[this.items[d]],this.deleteSelection(b)&&(this.setTextboxValue(a.text.apply(this,[e])),this.refreshOptions(!0)),void b.preventDefault()):c.apply(this,arguments)}}()}),M});
\ No newline at end of file
diff --git a/pagure/static/vendor/selectize/selectize.bootstrap3-0.12.3.css b/pagure/static/vendor/selectize/selectize.bootstrap3-0.12.3.css
new file mode 100644
index 0000000..30d0ae4
--- /dev/null
+++ b/pagure/static/vendor/selectize/selectize.bootstrap3-0.12.3.css
@@ -0,0 +1,407 @@
+/**
+ * selectize.bootstrap3.css (v0.12.3) - Bootstrap 3 Theme
+ * Copyright (c) 2013–2015 Brian Reavis & contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
+ * file except in compliance with the License. You may obtain a copy of the License at:
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ * ANY KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ *
+ * @author Brian Reavis <brian@thirdroute.com>
+ */
+.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder {
+  visibility: visible !important;
+  background: #f2f2f2 !important;
+  background: rgba(0, 0, 0, 0.06) !important;
+  border: 0 none !important;
+  -webkit-box-shadow: inset 0 0 12px 4px #ffffff;
+  box-shadow: inset 0 0 12px 4px #ffffff;
+}
+.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after {
+  content: '!';
+  visibility: hidden;
+}
+.selectize-control.plugin-drag_drop .ui-sortable-helper {
+  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
+  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
+}
+.selectize-dropdown-header {
+  position: relative;
+  padding: 3px 12px;
+  border-bottom: 1px solid #d0d0d0;
+  background: #f8f8f8;
+  -webkit-border-radius: 4px 4px 0 0;
+  -moz-border-radius: 4px 4px 0 0;
+  border-radius: 4px 4px 0 0;
+}
+.selectize-dropdown-header-close {
+  position: absolute;
+  right: 12px;
+  top: 50%;
+  color: #333333;
+  opacity: 0.4;
+  margin-top: -12px;
+  line-height: 20px;
+  font-size: 20px !important;
+}
+.selectize-dropdown-header-close:hover {
+  color: #000000;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup {
+  border-right: 1px solid #f2f2f2;
+  border-top: 0 none;
+  float: left;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child {
+  border-right: 0 none;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup:before {
+  display: none;
+}
+.selectize-dropdown.plugin-optgroup_columns .optgroup-header {
+  border-top: 0 none;
+}
+.selectize-control.plugin-remove_button [data-value] {
+  position: relative;
+  padding-right: 24px !important;
+}
+.selectize-control.plugin-remove_button [data-value] .remove {
+  z-index: 1;
+  /* fixes ie bug (see #392) */
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  width: 17px;
+  text-align: center;
+  font-weight: bold;
+  font-size: 12px;
+  color: inherit;
+  text-decoration: none;
+  vertical-align: middle;
+  display: inline-block;
+  padding: 1px 0 0 0;
+  border-left: 1px solid rgba(0, 0, 0, 0);
+  -webkit-border-radius: 0 2px 2px 0;
+  -moz-border-radius: 0 2px 2px 0;
+  border-radius: 0 2px 2px 0;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+.selectize-control.plugin-remove_button [data-value] .remove:hover {
+  background: rgba(0, 0, 0, 0.05);
+}
+.selectize-control.plugin-remove_button [data-value].active .remove {
+  border-left-color: rgba(0, 0, 0, 0);
+}
+.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover {
+  background: none;
+}
+.selectize-control.plugin-remove_button .disabled [data-value] .remove {
+  border-left-color: rgba(77, 77, 77, 0);
+}
+.selectize-control.plugin-remove_button .remove-single {
+  position: absolute;
+  right: 28px;
+  top: 6px;
+  font-size: 23px;
+}
+.selectize-control {
+  position: relative;
+}
+.selectize-dropdown,
+.selectize-input,
+.selectize-input input {
+  color: #333333;
+  font-family: inherit;
+  font-size: inherit;
+  line-height: 20px;
+  -webkit-font-smoothing: inherit;
+}
+.selectize-input,
+.selectize-control.single .selectize-input.input-active {
+  background: #ffffff;
+  cursor: text;
+  display: inline-block;
+}
+.selectize-input {
+  border: 1px solid #cccccc;
+  padding: 6px 12px;
+  display: inline-block;
+  width: 100%;
+  overflow: hidden;
+  position: relative;
+  z-index: 1;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.selectize-control.multi .selectize-input.has-items {
+  padding: 5px 12px 2px;
+}
+.selectize-input.full {
+  background-color: #ffffff;
+}
+.selectize-input.disabled,
+.selectize-input.disabled * {
+  cursor: default !important;
+}
+.selectize-input.focus {
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15);
+}
+.selectize-input.dropdown-active {
+  -webkit-border-radius: 4px 4px 0 0;
+  -moz-border-radius: 4px 4px 0 0;
+  border-radius: 4px 4px 0 0;
+}
+.selectize-input > * {
+  vertical-align: baseline;
+  display: -moz-inline-stack;
+  display: inline-block;
+  zoom: 1;
+  *display: inline;
+}
+.selectize-control.multi .selectize-input > div {
+  cursor: pointer;
+  margin: 0 3px 3px 0;
+  padding: 1px 3px;
+  background: #efefef;
+  color: #333333;
+  border: 0 solid rgba(0, 0, 0, 0);
+}
+.selectize-control.multi .selectize-input > div.active {
+  background: #428bca;
+  color: #ffffff;
+  border: 0 solid rgba(0, 0, 0, 0);
+}
+.selectize-control.multi .selectize-input.disabled > div,
+.selectize-control.multi .selectize-input.disabled > div.active {
+  color: #808080;
+  background: #ffffff;
+  border: 0 solid rgba(77, 77, 77, 0);
+}
+.selectize-input > input {
+  display: inline-block !important;
+  padding: 0 !important;
+  min-height: 0 !important;
+  max-height: none !important;
+  max-width: 100% !important;
+  margin: 0 !important;
+  text-indent: 0 !important;
+  border: 0 none !important;
+  background: none !important;
+  line-height: inherit !important;
+  -webkit-user-select: auto !important;
+  -webkit-box-shadow: none !important;
+  box-shadow: none !important;
+}
+.selectize-input > input::-ms-clear {
+  display: none;
+}
+.selectize-input > input:focus {
+  outline: none !important;
+}
+.selectize-input::after {
+  content: ' ';
+  display: block;
+  clear: left;
+}
+.selectize-input.dropdown-active::before {
+  content: ' ';
+  display: block;
+  position: absolute;
+  background: #ffffff;
+  height: 1px;
+  bottom: 0;
+  left: 0;
+  right: 0;
+}
+.selectize-dropdown {
+  position: absolute;
+  z-index: 10;
+  border: 1px solid #d0d0d0;
+  background: #ffffff;
+  margin: -1px 0 0 0;
+  border-top: 0 none;
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+  -webkit-border-radius: 0 0 4px 4px;
+  -moz-border-radius: 0 0 4px 4px;
+  border-radius: 0 0 4px 4px;
+}
+.selectize-dropdown [data-selectable] {
+  cursor: pointer;
+  overflow: hidden;
+}
+.selectize-dropdown [data-selectable] .highlight {
+  background: rgba(255, 237, 40, 0.4);
+  -webkit-border-radius: 1px;
+  -moz-border-radius: 1px;
+  border-radius: 1px;
+}
+.selectize-dropdown [data-selectable],
+.selectize-dropdown .optgroup-header {
+  padding: 3px 12px;
+}
+.selectize-dropdown .optgroup:first-child .optgroup-header {
+  border-top: 0 none;
+}
+.selectize-dropdown .optgroup-header {
+  color: #777777;
+  background: #ffffff;
+  cursor: default;
+}
+.selectize-dropdown .active {
+  background-color: #f5f5f5;
+  color: #262626;
+}
+.selectize-dropdown .active.create {
+  color: #262626;
+}
+.selectize-dropdown .create {
+  color: rgba(51, 51, 51, 0.5);
+}
+.selectize-dropdown-content {
+  overflow-y: auto;
+  overflow-x: hidden;
+  max-height: 200px;
+}
+.selectize-control.single .selectize-input,
+.selectize-control.single .selectize-input input {
+  cursor: pointer;
+}
+.selectize-control.single .selectize-input.input-active,
+.selectize-control.single .selectize-input.input-active input {
+  cursor: text;
+}
+.selectize-control.single .selectize-input:after {
+  content: ' ';
+  display: block;
+  position: absolute;
+  top: 50%;
+  right: 17px;
+  margin-top: -3px;
+  width: 0;
+  height: 0;
+  border-style: solid;
+  border-width: 5px 5px 0 5px;
+  border-color: #333333 transparent transparent transparent;
+}
+.selectize-control.single .selectize-input.dropdown-active:after {
+  margin-top: -4px;
+  border-width: 0 5px 5px 5px;
+  border-color: transparent transparent #333333 transparent;
+}
+.selectize-control.rtl.single .selectize-input:after {
+  left: 17px;
+  right: auto;
+}
+.selectize-control.rtl .selectize-input > input {
+  margin: 0 4px 0 -2px !important;
+}
+.selectize-control .selectize-input.disabled {
+  opacity: 0.5;
+  background-color: #ffffff;
+}
+.selectize-dropdown,
+.selectize-dropdown.form-control {
+  height: auto;
+  padding: 0;
+  margin: 2px 0 0 0;
+  z-index: 1000;
+  background: #ffffff;
+  border: 1px solid #cccccc;
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+}
+.selectize-dropdown .optgroup-header {
+  font-size: 12px;
+  line-height: 1.42857143;
+}
+.selectize-dropdown .optgroup:first-child:before {
+  display: none;
+}
+.selectize-dropdown .optgroup:before {
+  content: ' ';
+  display: block;
+  height: 1px;
+  margin: 9px 0;
+  overflow: hidden;
+  background-color: #e5e5e5;
+  margin-left: -12px;
+  margin-right: -12px;
+}
+.selectize-dropdown-content {
+  padding: 5px 0;
+}
+.selectize-dropdown-header {
+  padding: 6px 12px;
+}
+.selectize-input {
+  min-height: 34px;
+}
+.selectize-input.dropdown-active {
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+}
+.selectize-input.dropdown-active::before {
+  display: none;
+}
+.selectize-input.focus {
+  border-color: #66afe9;
+  outline: 0;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+.has-error .selectize-input {
+  border-color: #a94442;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-error .selectize-input:focus {
+  border-color: #843534;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+}
+.selectize-control.multi .selectize-input.has-items {
+  padding-left: 9px;
+  padding-right: 9px;
+}
+.selectize-control.multi .selectize-input > div {
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
+}
+.form-control.selectize-control {
+  padding: 0;
+  height: auto;
+  border: none;
+  background: none;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
+}
diff --git a/pagure/static/vendor/selectize/selectize.bootstrap3.css b/pagure/static/vendor/selectize/selectize.bootstrap3.css
new file mode 120000
index 0000000..ce39ccb
--- /dev/null
+++ b/pagure/static/vendor/selectize/selectize.bootstrap3.css
@@ -0,0 +1 @@
+selectize.bootstrap3-0.12.3.css
\ No newline at end of file
diff --git a/pagure/static/vendor/selectize/selectize.js b/pagure/static/vendor/selectize/selectize.js
new file mode 120000
index 0000000..adf078f
--- /dev/null
+++ b/pagure/static/vendor/selectize/selectize.js
@@ -0,0 +1 @@
+selectize-0.12.3.js
\ No newline at end of file
diff --git a/pagure/static/vendor/selectize/selectize.min.js b/pagure/static/vendor/selectize/selectize.min.js
new file mode 120000
index 0000000..dd41f29
--- /dev/null
+++ b/pagure/static/vendor/selectize/selectize.min.js
@@ -0,0 +1 @@
+selectize-0.12.3.min.js
\ No newline at end of file
diff --git a/pagure/static/vendor/stupidtable/stupidtable-1.0.1.js b/pagure/static/vendor/stupidtable/stupidtable-1.0.1.js
new file mode 100644
index 0000000..851ba4c
--- /dev/null
+++ b/pagure/static/vendor/stupidtable/stupidtable-1.0.1.js
@@ -0,0 +1,135 @@
+// Stupid jQuery table plugin.
+
+(function($) {
+  $.fn.stupidtable = function(sortFns) {
+    return this.each(function() {
+      var $table = $(this);
+      sortFns = sortFns || {};
+      sortFns = $.extend({}, $.fn.stupidtable.default_sort_fns, sortFns);
+      $table.data('sortFns', sortFns);
+
+      $table.on("click.stupidtable", "thead th", function() {
+          $(this).stupidsort();
+      });
+    });
+  };
+
+
+  // Expects $("#mytable").stupidtable() to have already been called.
+  // Call on a table header.
+  $.fn.stupidsort = function(force_direction){
+    var $this_th = $(this);
+    var th_index = 0; // we'll increment this soon
+    var dir = $.fn.stupidtable.dir;
+    var $table = $this_th.closest("table");
+    var datatype = $this_th.data("sort") || null;
+
+    // No datatype? Nothing to do.
+    if (datatype === null) {
+      return;
+    }
+
+    // Account for colspans
+    $this_th.parents("tr").find("th").slice(0, $(this).index()).each(function() {
+      var cols = $(this).attr("colspan") || 1;
+      th_index += parseInt(cols,10);
+    });
+
+    var sort_dir;
+    if(arguments.length == 1){
+        sort_dir = force_direction;
+    }
+    else{
+        sort_dir = force_direction || $this_th.data("sort-default") || dir.ASC;
+        if ($this_th.data("sort-dir"))
+           sort_dir = $this_th.data("sort-dir") === dir.ASC ? dir.DESC : dir.ASC;
+    }
+
+
+    $table.trigger("beforetablesort", {column: th_index, direction: sort_dir});
+
+    // More reliable method of forcing a redraw
+    $table.css("display");
+
+    // Run sorting asynchronously on a timout to force browser redraw after
+    // `beforetablesort` callback. Also avoids locking up the browser too much.
+    setTimeout(function() {
+      // Gather the elements for this column
+      var column = [];
+      var sortFns = $table.data('sortFns');
+      var sortMethod = sortFns[datatype];
+      var trs = $table.children("tbody").children("tr");
+
+      // Extract the data for the column that needs to be sorted and pair it up
+      // with the TR itself into a tuple. This way sorting the values will
+      // incidentally sort the trs.
+      trs.each(function(index,tr) {
+        var $e = $(tr).children().eq(th_index);
+        var sort_val = $e.data("sort-value");
+
+        // Store and read from the .data cache for display text only sorts
+        // instead of looking through the DOM every time
+        if(typeof(sort_val) === "undefined"){
+          var txt = $e.text();
+          $e.data('sort-value', txt);
+          sort_val = txt;
+        }
+        column.push([sort_val, tr]);
+      });
+
+      // Sort by the data-order-by value
+      column.sort(function(a, b) { return sortMethod(a[0], b[0]); });
+      if (sort_dir != dir.ASC)
+        column.reverse();
+
+      // Replace the content of tbody with the sorted rows. Strangely
+      // enough, .append accomplishes this for us.
+      trs = $.map(column, function(kv) { return kv[1]; });
+      $table.children("tbody").append(trs);
+
+      // Reset siblings
+      $table.find("th").data("sort-dir", null).removeClass("sorting-desc sorting-asc");
+      $this_th.data("sort-dir", sort_dir).addClass("sorting-"+sort_dir);
+
+      $table.trigger("aftertablesort", {column: th_index, direction: sort_dir});
+      $table.css("display");
+    }, 10);
+
+    return $this_th;
+  };
+
+  // Call on a sortable td to update its value in the sort. This should be the
+  // only mechanism used to update a cell's sort value. If your display value is
+  // different from your sort value, use jQuery's .text() or .html() to update
+  // the td contents, Assumes stupidtable has already been called for the table.
+  $.fn.updateSortVal = function(new_sort_val){
+  var $this_td = $(this);
+    if($this_td.is('[data-sort-value]')){
+      // For visual consistency with the .data cache
+      $this_td.attr('data-sort-value', new_sort_val);
+    }
+    $this_td.data("sort-value", new_sort_val);
+    return $this_td;
+  };
+
+  // ------------------------------------------------------------------
+  // Default settings
+  // ------------------------------------------------------------------
+  $.fn.stupidtable.dir = {ASC: "asc", DESC: "desc"};
+  $.fn.stupidtable.default_sort_fns = {
+    "int": function(a, b) {
+      return parseInt(a, 10) - parseInt(b, 10);
+    },
+    "float": function(a, b) {
+      return parseFloat(a) - parseFloat(b);
+    },
+    "string": function(a, b) {
+      return a.localeCompare(b);
+    },
+    "string-ins": function(a, b) {
+      a = a.toLocaleLowerCase();
+      b = b.toLocaleLowerCase();
+      return a.localeCompare(b);
+    }
+  };
+})(jQuery);
diff --git a/pagure/static/vendor/stupidtable/stupidtable-1.0.1.min.js b/pagure/static/vendor/stupidtable/stupidtable-1.0.1.min.js
new file mode 100644
index 0000000..bc7bfd3
--- /dev/null
+++ b/pagure/static/vendor/stupidtable/stupidtable-1.0.1.min.js
@@ -0,0 +1,4 @@
+(function(c){c.fn.stupidtable=function(b){return this.each(function(){var a=c(this);b=b||{};b=c.extend({},c.fn.stupidtable.default_sort_fns,b);a.data("sortFns",b);a.on("click.stupidtable","thead th",function(){c(this).stupidsort()})})};c.fn.stupidsort=function(b){var a=c(this),g=0,f=c.fn.stupidtable.dir,e=a.closest("table"),k=a.data("sort")||null;if(null!==k){a.parents("tr").find("th").slice(0,c(this).index()).each(function(){var a=c(this).attr("colspan")||1;g+=parseInt(a,10)});var d;1==arguments.length?
+d=b:(d=b||a.data("sort-default")||f.ASC,a.data("sort-dir")&&(d=a.data("sort-dir")===f.ASC?f.DESC:f.ASC));e.trigger("beforetablesort",{column:g,direction:d});e.css("display");setTimeout(function(){var b=[],l=e.data("sortFns")[k],h=e.children("tbody").children("tr");h.each(function(a,e){var d=c(e).children().eq(g),f=d.data("sort-value");"undefined"===typeof f&&(f=d.text(),d.data("sort-value",f));b.push([f,e])});b.sort(function(a,b){return l(a[0],b[0])});d!=f.ASC&&b.reverse();h=c.map(b,function(a){return a[1]});
+e.children("tbody").append(h);e.find("th").data("sort-dir",null).removeClass("sorting-desc sorting-asc");a.data("sort-dir",d).addClass("sorting-"+d);e.trigger("aftertablesort",{column:g,direction:d});e.css("display")},10);return a}};c.fn.updateSortVal=function(b){var a=c(this);a.is("[data-sort-value]")&&a.attr("data-sort-value",b);a.data("sort-value",b);return a};c.fn.stupidtable.dir={ASC:"asc",DESC:"desc"};c.fn.stupidtable.default_sort_fns={"int":function(b,a){return parseInt(b,10)-parseInt(a,10)},
+"float":function(b,a){return parseFloat(b)-parseFloat(a)},string:function(b,a){return b.localeCompare(a)},"string-ins":function(b,a){b=b.toLocaleLowerCase();a=a.toLocaleLowerCase();return b.localeCompare(a)}}})(jQuery);
diff --git a/pagure/static/vendor/stupidtable/stupidtable.js b/pagure/static/vendor/stupidtable/stupidtable.js
new file mode 120000
index 0000000..eb10d05
--- /dev/null
+++ b/pagure/static/vendor/stupidtable/stupidtable.js
@@ -0,0 +1 @@
+stupidtable-1.0.1.js
\ No newline at end of file
diff --git a/pagure/static/vendor/stupidtable/stupidtable.min.js b/pagure/static/vendor/stupidtable/stupidtable.min.js
new file mode 120000
index 0000000..8a5a092
--- /dev/null
+++ b/pagure/static/vendor/stupidtable/stupidtable.min.js
@@ -0,0 +1 @@
+stupidtable-1.0.1.min.js
\ No newline at end of file

From 2295bff16cc9952f7deddcd990c6f435dec29532 Mon Sep 17 00:00:00 2001
From: Shengjing Zhu <zsj950618@gmail.com>
Date: Jun 13 2017 10:54:46 +0000
Subject: [PATCH 2/2] adjust vendor js/css move in templates


Signed-off-by: Shengjing Zhu <zsj950618@gmail.com>

---

diff --git a/pagure/static/vendor/cal-heatmap/cal-heatmap.css b/pagure/static/vendor/cal-heatmap/cal-heatmap.css
new file mode 120000
index 0000000..02c2c1f
--- /dev/null
+++ b/pagure/static/vendor/cal-heatmap/cal-heatmap.css
@@ -0,0 +1 @@
+cal-heatmap.3.3.10.css
\ No newline at end of file
diff --git a/pagure/static/vendor/cal-heatmap/cal-heatmap.js b/pagure/static/vendor/cal-heatmap/cal-heatmap.js
new file mode 120000
index 0000000..0d6679d
--- /dev/null
+++ b/pagure/static/vendor/cal-heatmap/cal-heatmap.js
@@ -0,0 +1 @@
+cal-heatmap.3.3.10.js
\ No newline at end of file
diff --git a/pagure/static/vendor/cal-heatmap/cal-heatmap.min.js b/pagure/static/vendor/cal-heatmap/cal-heatmap.min.js
new file mode 120000
index 0000000..a722d4c
--- /dev/null
+++ b/pagure/static/vendor/cal-heatmap/cal-heatmap.min.js
@@ -0,0 +1 @@
+cal-heatmap.3.3.10.min.js
\ No newline at end of file
diff --git a/pagure/templates/_render_repo.html b/pagure/templates/_render_repo.html
index aa0e600..e726fba 100644
--- a/pagure/templates/_render_repo.html
+++ b/pagure/templates/_render_repo.html
@@ -268,13 +268,13 @@
 
 {% macro render_activity_graph(username) %}
 <script type="text/javascript"src="{{
-  url_for('static', filename='jquery.min.js') }}"></script>
+  url_for('static', filename='vendor/jquery/jquery.min.js') }}"></script>
 <script type="text/javascript" src="{{
-  url_for('static', filename='d3/d3.v3.min.js') }}"></script>
+  url_for('static', filename='vendor/d3/d3.v3.min.js') }}"></script>
 <script type="text/javascript" src="{{
-  url_for('static', filename='cal-heatmap/cal-heatmap.3.3.10.min.js') }}"></script>
+  url_for('static', filename='vendor/cal-heatmap/cal-heatmap.min.js') }}"></script>
 <link rel="stylesheet" href="{{
-  url_for('static', filename='cal-heatmap/cal-heatmap.3.3.10.css') }}" />
+  url_for('static', filename='vendor/cal-heatmap/cal-heatmap.css') }}" />
 
 
 <div class="card" id="user_graph">
diff --git a/pagure/templates/add_deploykey.html b/pagure/templates/add_deploykey.html
index 6ff6dde..2ae2027 100644
--- a/pagure/templates/add_deploykey.html
+++ b/pagure/templates/add_deploykey.html
@@ -5,7 +5,7 @@
 {% set tag = "home" %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
diff --git a/pagure/templates/add_group_project.html b/pagure/templates/add_group_project.html
index 42ef076..af8de2b 100644
--- a/pagure/templates/add_group_project.html
+++ b/pagure/templates/add_group_project.html
@@ -4,7 +4,7 @@
 {% set tag = "groups" %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -75,7 +75,7 @@
 {% block jscripts %}
 {{ super() }}
 <script type="text/javascript"
-        src="{{ url_for('static', filename='selectize.min.js') }}"></script>
+        src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}"></script>
 <script type="text/javascript">
 $( document ).ready(function() {
   var group_to_update = "{{ group_to_update }}";
diff --git a/pagure/templates/add_user.html b/pagure/templates/add_user.html
index d57c7ec..aacb1e5 100644
--- a/pagure/templates/add_user.html
+++ b/pagure/templates/add_user.html
@@ -4,7 +4,7 @@
 {% set tag = "home" %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -73,7 +73,7 @@
 {% block jscripts %}
 {{ super() }}
 <script type="text/javascript"
-        src="{{ url_for('static', filename='selectize.min.js') }}"></script>
+        src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}"></script>
 <script type="text/javascript">
 $( document ).ready(function() {
   var user_to_update = "{{ user_to_update }}";
diff --git a/pagure/templates/edit_file.html b/pagure/templates/edit_file.html
index e83d0fa..3f83895 100644
--- a/pagure/templates/edit_file.html
+++ b/pagure/templates/edit_file.html
@@ -5,8 +5,8 @@
     repo.namespace + '/' if repo.namespace }}{{ repo.name }}{% endblock %}
 {% set tag = "home" %}
 {% block header %}
-<script src="{{ url_for('static', filename='codemirror/codemirror.js') }}"></script>
-<link rel="stylesheet" href="{{ url_for('static', filename='codemirror/codemirror.css') }}">
+<script src="{{ url_for('static', filename='vendor/codemirror/codemirror.js') }}"></script>
+<link rel="stylesheet" href="{{ url_for('static', filename='vendor/codemirror/codemirror.css') }}">
 {% endblock%}
 
 {% block repo %}
diff --git a/pagure/templates/group_info.html b/pagure/templates/group_info.html
index efb102e..27c1c13 100644
--- a/pagure/templates/group_info.html
+++ b/pagure/templates/group_info.html
@@ -6,7 +6,7 @@
 {% from "_browseheader.html" import browse_header %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -115,7 +115,7 @@
 
 {% block jscripts %}
   {{ super() }}
-  <script src="{{ url_for('static', filename='selectize.min.js') }}" type="text/javascript"> </script>
+  <script src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}" type="text/javascript"> </script>
   <script type="text/javascript">
   $(document).ready(function() {
     $('#headerSearch').on('keypress keydown keyup', function(e) {
diff --git a/pagure/templates/group_list.html b/pagure/templates/group_list.html
index a2b6905..77313fe 100644
--- a/pagure/templates/group_list.html
+++ b/pagure/templates/group_list.html
@@ -6,7 +6,7 @@
 {% from "_browseheader.html" import browse_header %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -80,7 +80,7 @@
 
 {% block jscripts %}
     {{ super() }}
-<script src="{{ url_for('static', filename='selectize.min.js') }}" type="text/javascript"> </script>
+<script src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}" type="text/javascript"> </script>
 <script type="text/javascript">
 $(document).ready(function() {
   $('#headerSearch').on('keypress keydown keyup', function(e) {
diff --git a/pagure/templates/index.html b/pagure/templates/index.html
index befe15b..dfbcbc2 100644
--- a/pagure/templates/index.html
+++ b/pagure/templates/index.html
@@ -8,7 +8,7 @@
 
 
 {% block header %}
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -28,9 +28,9 @@
 
 {% block jscripts %}
     {{ super() }}
-<script src="{{ url_for('static', filename='jdenticon.min.js') }}" type="text/javascript"></script>
-<script src="{{ url_for('static', filename='selectize.min.js') }}" type="text/javascript"> </script>
-<script src="{{ url_for('static', filename='jquery.dotdotdot.min.js') }}" type="text/javascript"></script>
+<script src="{{ url_for('static', filename='vendor/jdenticon/jdenticon.min.js') }}" type="text/javascript"></script>
+<script src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}" type="text/javascript"> </script>
+<script src="{{ url_for('static', filename='vendor/jquery.dotdotdot/jquery.dotdotdot.min.js') }}" type="text/javascript"></script>
 <script type="text/javascript">
 $(document).ready(function() {
   $('#headerSearch').on('keypress keydown keyup', function(e) {
diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html
index 892a985..83e078b 100644
--- a/pagure/templates/issue.html
+++ b/pagure/templates/issue.html
@@ -7,11 +7,11 @@
 {% set tag = "home"%}
 
 {% block header %}
-<link href="{{ url_for('static', filename='emoji/emojione.sprites.css') }}"
+<link href="{{ url_for('static', filename='vendor/emojione/emojione.sprites.css') }}"
   rel="stylesheet" />
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
-<link href="{{ url_for('static', filename='atwho/jquery.atwho.css') }}"
+<link href="{{ url_for('static', filename='vendor/jquery.atwho/jquery.atwho.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -432,10 +432,10 @@
   var UPLOAD_URL = "{{ url_for('upload_issue', repo=repo.name, username=username, namespace=repo.namespace, issueid=issue.id) }}";
 </script>
 <script type="text/javascript"
-    src="{{ url_for('static', filename='emoji/jquery.textcomplete.min.js') }}">
+    src="{{ url_for('static', filename='vendor/jquery.textcomplete/jquery.textcomplete.min.js') }}">
 </script>
 <script type="text/javascript"
-    src="{{ url_for('static', filename='emoji/emojione.min.js') }}">
+    src="{{ url_for('static', filename='vendor/emojione/emojione.min.js') }}">
 </script>
 <script type="text/javascript"
     src="{{ url_for('static', filename='emoji/emojicomplete.js') }}">
@@ -444,9 +444,9 @@
   src="{{ url_for('static', filename='upload.js') }}">
 </script>
 
-<script type="text/javascript" src="{{ url_for('static', filename='selectize.min.js') }}"></script>
-<script type="text/javascript" src="{{ url_for('static', filename='atwho/jquery.caret.min.js') }}"></script>
-<script type="text/javascript" src="{{ url_for('static', filename='atwho/jquery.atwho.min.js') }}"></script>
+<script type="text/javascript" src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}"></script>
+<script type="text/javascript" src="{{ url_for('static', filename='vendor/jquery.caret/jquery.caret.min.js') }}"></script>
+<script type="text/javascript" src="{{ url_for('static', filename='vendor/jquery.atwho/jquery.atwho.min.js') }}"></script>
 
 <script type="text/javascript">
 
@@ -777,14 +777,14 @@ $( document ).ready(function() {
 
   var emojiStrategy;
   $.getJSON(
-    '{{ url_for("static", filename="emoji/emoji_strategy.json") }}',
+    '{{ url_for("static", filename="vendor/emojione/emoji_strategy.json") }}',
     function( data ) {
       emojiStrategy =  data;
     }
   );
 
   var folder = '{{url_for("static", filename="emoji/png/") }}';
-  var json_url = '{{ url_for("static", filename="emoji/emoji_strategy.json") }}';
+  var json_url = '{{ url_for("static", filename="vendor/emojione/emoji_strategy.json") }}';
   emoji_complete(json_url, folder);
 
   $(".comment_body").each(function(ind, obj) {
diff --git a/pagure/templates/issues.html b/pagure/templates/issues.html
index ed34bc1..a06b4c1 100644
--- a/pagure/templates/issues.html
+++ b/pagure/templates/issues.html
@@ -352,7 +352,7 @@
 {{ super() }}
 
 <script type="text/javascript"
-  src="{{ url_for('static', filename='stupidtable.min.js') }}">
+  src="{{ url_for('static', filename='vendor/stupidtable/stupidtable.min.js') }}">
 </script>
 <script>
 $.ready(function() {
diff --git a/pagure/templates/master.html b/pagure/templates/master.html
index 333a736..5064055 100644
--- a/pagure/templates/master.html
+++ b/pagure/templates/master.html
@@ -9,11 +9,11 @@
         type="text/css" rel="stylesheet" />
     <link href="{{ url_for('static', filename='pagure.css') }}"
         type="text/css" rel="stylesheet" />
-    <link href="{{ url_for('static', filename='open-iconic/css/open-iconic.min.css') }}"
+    <link href="{{ url_for('static', filename='vendor/open-iconic/css/open-iconic.min.css') }}"
         type="text/css" rel="stylesheet" />
     <link href="{{ url_for('static', filename='fonts/fonts.css') }}"
         rel="stylesheet" type="text/css" />
-    <link href="{{ url_for('static', filename='hack_fonts/css/hack-extended.min.css') }}"
+    <link href="{{ url_for('static', filename='vendor/hack_fonts/css/hack-extended.min.css') }}"
         type="text/css" rel="stylesheet" />
     {% block header %}{% endblock %}
   </head>
@@ -169,11 +169,11 @@
     {% block jscripts %}
     <script type="text/javascript"
         src="{{ url_for('static',
-            filename='jquery.min.js') }}">
+            filename='vendor/jquery/jquery.min.js') }}">
     </script>
     <script type="text/javascript"
         src="{{ url_for('static',
-            filename='jquery-ui.min.js') }}">
+            filename='vendor/jquery-ui/jquery-ui.min.js') }}">
     </script>
     <script type="text/javascript"
         src="{{ config['BOOTSTRAP_URLS_JS'] }}">
diff --git a/pagure/templates/new_issue.html b/pagure/templates/new_issue.html
index 8c8daec..e03f36f 100644
--- a/pagure/templates/new_issue.html
+++ b/pagure/templates/new_issue.html
@@ -8,9 +8,9 @@
 {% set tag = "home" %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='emoji/emojione.sprites.css') }}"
+<link href="{{ url_for('static', filename='vendor/emojione/emojione.sprites.css') }}"
   rel="stylesheet" />
-<link href="{{ url_for('static', filename='atwho/jquery.atwho.css') }}"
+<link href="{{ url_for('static', filename='vendor/jquery.atwho/jquery.atwho.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -131,19 +131,19 @@
 {% block jscripts %}
 {{ super() }}
 <script type="text/javascript"
-    src="{{ url_for('static', filename='emoji/jquery.textcomplete.min.js') }}">
+    src="{{ url_for('static', filename='vendor/jquery.textcomplete/jquery.textcomplete.min.js') }}">
 </script>
 <script type="text/javascript"
-    src="{{ url_for('static', filename='emoji/emojione.min.js') }}">
+    src="{{ url_for('static', filename='vendor/emojione/emojione.min.js') }}">
 </script>
 <script type="text/javascript"
     src="{{ url_for('static', filename='emoji/emojicomplete.js') }}">
 </script>
 <script type="text/javascript"
-    src="{{ url_for('static', filename='atwho/jquery.caret.min.js') }}">
+    src="{{ url_for('static', filename='vendor/jquery.caret/jquery.caret.min.js') }}">
 </script>
 <script type="text/javascript"
-    src="{{ url_for('static', filename='atwho/jquery.atwho.min.js') }}">
+    src="{{ url_for('static', filename='vendor/jquery.atwho/jquery.atwho.min.js') }}">
 </script>
 
 <script type="text/javascript">
@@ -181,14 +181,14 @@ $(document).ready(function() {
 
   var emojiStrategy;
   $.getJSON(
-    '{{ url_for("static", filename="emoji/emoji_strategy.json") }}',
+    '{{ url_for("static", filename="vendor/emojione/emoji_strategy.json") }}',
     function( data ) {
       emojiStrategy =  data;
     }
   );
 
   var folder = '{{url_for("static", filename="emoji/png/") }}';
-  var json_url = '{{ url_for("static", filename="emoji/emoji_strategy.json") }}';
+  var json_url = '{{ url_for("static", filename="vendor/emojione/emoji_strategy.json") }}';
   emoji_complete(json_url, folder);
 
   $("#type").on("change", function() {
diff --git a/pagure/templates/pull_request.html b/pagure/templates/pull_request.html
index 3b21acb..25771e4 100644
--- a/pagure/templates/pull_request.html
+++ b/pagure/templates/pull_request.html
@@ -17,11 +17,11 @@
 {% set tag = "home" %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='emoji/emojione.sprites.css') }}"
+<link href="{{ url_for('static', filename='vendor/emojione/emojione.sprites.css') }}"
   rel="stylesheet" />
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
-<link href="{{ url_for('static', filename='atwho/jquery.atwho.css') }}"
+<link href="{{ url_for('static', filename='vendor/jquery.atwho/jquery.atwho.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -834,17 +834,17 @@
 {% block jscripts %}
 {{ super() }}
 <script type="text/javascript"
-    src="{{ url_for('static', filename='emoji/jquery.textcomplete.min.js') }}">
+    src="{{ url_for('static', filename='vendor/jquery.textcomplete/jquery.textcomplete.min.js') }}">
 </script>
 <script type="text/javascript"
-    src="{{ url_for('static', filename='emoji/emojione.min.js') }}">
+    src="{{ url_for('static', filename='vendor/emojione/emojione.min.js') }}">
 </script>
 <script type="text/javascript"
     src="{{ url_for('static', filename='emoji/emojicomplete.js') }}">
 </script>
-<script src="{{ url_for('static', filename='selectize.min.js') }}" type="text/javascript"> </script>
-<script type="text/javascript" src="{{ url_for('static', filename='atwho/jquery.caret.min.js') }}"></script>
-<script type="text/javascript" src="{{ url_for('static', filename='atwho/jquery.atwho.min.js') }}"></script>
+<script src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}" type="text/javascript"> </script>
+<script type="text/javascript" src="{{ url_for('static', filename='vendor/jquery.caret/jquery.caret.min.js') }}"></script>
+<script type="text/javascript" src="{{ url_for('static', filename='vendor/jquery.atwho/jquery.atwho.min.js') }}"></script>
 
 <script type="text/javascript">
 function cancel_edit_btn() {
@@ -984,7 +984,7 @@ $(document).ready(function() {
   });
 
   var folder = '{{url_for("static", filename="emoji/png/") }}';
-  var json_url = '{{ url_for("static", filename="emoji/emoji_strategy.json") }}';
+  var json_url = '{{ url_for("static", filename="vendor/emojione/emoji_strategy.json") }}';
 
 
   var branchselect = $('#branch_select').selectize({
diff --git a/pagure/templates/pull_request_title.html b/pagure/templates/pull_request_title.html
index 91cb6bd..b9f2b52 100644
--- a/pagure/templates/pull_request_title.html
+++ b/pagure/templates/pull_request_title.html
@@ -6,9 +6,9 @@
 {% set tag = "home" %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='emoji/emojione.sprites.css') }}"
+<link href="{{ url_for('static', filename='vendor/emojione/emojione.sprites.css') }}"
   rel="stylesheet" />
-  <link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+  <link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
diff --git a/pagure/templates/roadmap.html b/pagure/templates/roadmap.html
index 6b7f072..98995aa 100644
--- a/pagure/templates/roadmap.html
+++ b/pagure/templates/roadmap.html
@@ -281,7 +281,7 @@
 {{ super() }}
 
 <script type="text/javascript"
-  src="{{ url_for('static', filename='stupidtable.min.js') }}">
+  src="{{ url_for('static', filename='vendor/stupidtable/stupidtable.min.js') }}">
 </script>
 <script>
 $.ready(function() {
diff --git a/pagure/templates/user_info.html b/pagure/templates/user_info.html
index 51968dd..4e97e7a 100644
--- a/pagure/templates/user_info.html
+++ b/pagure/templates/user_info.html
@@ -6,7 +6,7 @@
 
 
 {% block header %}
-  <link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+  <link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -70,7 +70,7 @@
         });
       });
     </script>
-<script src="{{ url_for('static', filename='selectize.min.js') }}" type="text/javascript"> </script>
+<script src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}" type="text/javascript"> </script>
 <script type="text/javascript">
 $(document).ready(function() {
   $('#headerSearch').on('keypress keydown keyup', function(e) {
diff --git a/pagure/templates/user_list.html b/pagure/templates/user_list.html
index 0160fc8..1e4214d 100644
--- a/pagure/templates/user_list.html
+++ b/pagure/templates/user_list.html
@@ -4,7 +4,7 @@
 {% from "_browseheader.html" import browse_header %}
 
 {% block header %}
-<link href="{{ url_for('static', filename='selectize.bootstrap3.css') }}"
+<link href="{{ url_for('static', filename='vendor/selectize/selectize.bootstrap3.css') }}"
   rel="stylesheet" />
 {% endblock %}
 
@@ -108,7 +108,7 @@
 
 {% block jscripts %}
     {{ super() }}
-<script src="{{ url_for('static', filename='selectize.min.js') }}" type="text/javascript"> </script>
+<script src="{{ url_for('static', filename='vendor/selectize/selectize.min.js') }}" type="text/javascript"> </script>
 <script type="text/javascript">
 $(document).ready(function() {
   $('#headerSearch').on('keypress keydown keyup', function(e) {

